All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_pe_crypto.cpp:55,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_pe_crypto.cpp:59,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_pe_crypto.cpp:60,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_pe_crypto.cpp:60,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_pe_crypto.cpp:60,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_pe_crypto.cpp:60,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_pe_crypto.cpp:65,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_pe_crypto.cpp:68,1
    - Dst: encrypt
      Src: /src/libtorrent/test/test_pe_crypto.cpp:68,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_pe_crypto.cpp:69,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:70,1
    - Dst: lt::span::size
      Src: /src/libtorrent/test/test_pe_crypto.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_pe_crypto.cpp:78,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_pe_crypto.cpp:79,1
    - Dst: decrypt
      Src: /src/libtorrent/test/test_pe_crypto.cpp:79,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_pe_crypto.cpp:80,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:81,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:83,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_pe_crypto.cpp:87,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_pe_crypto.cpp:90,1
    - Dst: encrypt
      Src: /src/libtorrent/test/test_pe_crypto.cpp:90,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:91,1
    - Dst: lt::span::size
      Src: /src/libtorrent/test/test_pe_crypto.cpp:91,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_pe_crypto.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:93,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_pe_crypto.cpp:98,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_pe_crypto.cpp:99,1
    - Dst: decrypt
      Src: /src/libtorrent/test/test_pe_crypto.cpp:99,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_pe_crypto.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - lt::crypto_plugin
    - lt::crypto_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 106
    functionName: test_enc_handler
    functionSourceFile: /src/libtorrent/test/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::data
    - Catch::Generators::random
    - std::tie
    - decrypt
    - std::vector::begin
    - encrypt
    - std::copy
    - lt::span::size
    - std::vector::end
    - libtorrent::aux::random_bytes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_enc_handler(lt::crypto_plugin& a, lt::crypto_plugin& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_pe_crypto.cpp:55,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_pe_crypto.cpp:59,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_pe_crypto.cpp:60,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_pe_crypto.cpp:60,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_pe_crypto.cpp:60,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_pe_crypto.cpp:60,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_pe_crypto.cpp:65,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_pe_crypto.cpp:68,1
    - Dst: encrypt
      Src: /src/libtorrent/test/test_pe_crypto.cpp:68,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_pe_crypto.cpp:69,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:70,1
    - Dst: lt::span::size
      Src: /src/libtorrent/test/test_pe_crypto.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_pe_crypto.cpp:78,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_pe_crypto.cpp:79,1
    - Dst: decrypt
      Src: /src/libtorrent/test/test_pe_crypto.cpp:79,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_pe_crypto.cpp:80,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:81,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:83,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_pe_crypto.cpp:87,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_pe_crypto.cpp:90,1
    - Dst: encrypt
      Src: /src/libtorrent/test/test_pe_crypto.cpp:90,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:91,1
    - Dst: lt::span::size
      Src: /src/libtorrent/test/test_pe_crypto.cpp:91,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_pe_crypto.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:93,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_pe_crypto.cpp:98,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_pe_crypto.cpp:99,1
    - Dst: decrypt
      Src: /src/libtorrent/test/test_pe_crypto.cpp:99,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_pe_crypto.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - lt::crypto_plugin
    - lt::crypto_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 106
    functionName: test_enc_handler
    functionSourceFile: /src/libtorrent/test/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::data
    - Catch::Generators::random
    - std::tie
    - decrypt
    - std::vector::begin
    - encrypt
    - std::copy
    - lt::span::size
    - std::vector::end
    - libtorrent::aux::random_bytes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_enc_handler(lt::crypto_plugin& a, lt::crypto_plugin& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dh_key_exchange::compute_secret
      Src: /src/libtorrent/test/test_pe_crypto.cpp:120,1
    - Dst: get_local_key
      Src: /src/libtorrent/test/test_pe_crypto.cpp:120,1
    - Dst: compute_secret
      Src: /src/libtorrent/test/test_pe_crypto.cpp:121,1
    - Dst: dh_key_exchange::get_local_key
      Src: /src/libtorrent/test/test_pe_crypto.cpp:121,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_pe_crypto.cpp:123,1
    - Dst: dh_key_exchange::get_secret
      Src: /src/libtorrent/test/test_pe_crypto.cpp:123,1
    - Dst: get_secret
      Src: /src/libtorrent/test/test_pe_crypto.cpp:123,1
    - Dst: dh_key_exchange::get_secret
      Src: /src/libtorrent/test/test_pe_crypto.cpp:124,1
    - Dst: get_secret
      Src: /src/libtorrent/test/test_pe_crypto.cpp:124,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_pe_crypto.cpp:126,1
    - Dst: dh_key_exchange::get_local_key
      Src: /src/libtorrent/test/test_pe_crypto.cpp:127,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_pe_crypto.cpp:129,1
    - Dst: get_local_key
      Src: /src/libtorrent/test/test_pe_crypto.cpp:130,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_pe_crypto.cpp:132,1
    - Dst: dh_key_exchange::get_secret
      Src: /src/libtorrent/test/test_pe_crypto.cpp:133,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_pe_crypto.cpp:135,1
    - Dst: get_secret
      Src: /src/libtorrent/test/test_pe_crypto.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - get_secret
    - dh_key_exchange::compute_secret
    - get_local_key
    - compute_secret
    - dh_key_exchange::get_local_key
    - std::printf
    - dh_key_exchange::get_secret
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(diffie_hellman)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/libtorrent/test/test_pe_crypto.cpp:145,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_pe_crypto.cpp:146,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_pe_crypto.cpp:148,1
    - Dst: rc4_handler::set_incoming_key
      Src: /src/libtorrent/test/test_pe_crypto.cpp:150,1
    - Dst: rc4_handler::set_outgoing_key
      Src: /src/libtorrent/test/test_pe_crypto.cpp:151,1
    - Dst: rc4_handler::set_incoming_key
      Src: /src/libtorrent/test/test_pe_crypto.cpp:153,1
    - Dst: rc4_handler::set_outgoing_key
      Src: /src/libtorrent/test/test_pe_crypto.cpp:154,1
    - Dst: test_enc_handler
      Src: /src/libtorrent/test/test_pe_crypto.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - hasher
    - rc4_handler::set_incoming_key
    - rc4_handler::set_outgoing_key
    - std::printf
    - test_enc_handler
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rc4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_pe_crypto.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:41,1
    - Dst: aux::timestamp_history::add_sample
      Src: /src/libtorrent/test/test_timestamp_history.cpp:41,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:42,1
    - Dst: aux::timestamp_history::base
      Src: /src/libtorrent/test/test_timestamp_history.cpp:42,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:43,1
    - Dst: aux::timestamp_history::add_sample
      Src: /src/libtorrent/test/test_timestamp_history.cpp:43,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:44,1
    - Dst: aux::timestamp_history::base
      Src: /src/libtorrent/test/test_timestamp_history.cpp:44,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:45,1
    - Dst: aux::timestamp_history::add_sample
      Src: /src/libtorrent/test/test_timestamp_history.cpp:45,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:46,1
    - Dst: aux::timestamp_history::base
      Src: /src/libtorrent/test/test_timestamp_history.cpp:46,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:47,1
    - Dst: aux::timestamp_history::add_sample
      Src: /src/libtorrent/test/test_timestamp_history.cpp:47,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:48,1
    - Dst: aux::timestamp_history::base
      Src: /src/libtorrent/test/test_timestamp_history.cpp:48,1
    - Dst: aux::timestamp_history::add_sample
      Src: /src/libtorrent/test/test_timestamp_history.cpp:51,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_timestamp_history.cpp:52,1
    - Dst: aux::timestamp_history::base
      Src: /src/libtorrent/test/test_timestamp_history.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::timestamp_history::add_sample
    - aux::timestamp_history::base
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(timestamp_history)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_ed25519.cpp:54,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:56,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_ed25519.cpp:56,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_ed25519.cpp:57,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/test/test_ed25519.cpp:57,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ed25519.cpp:59,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:59,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:61,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_ed25519.cpp:61,1
    - Dst: ed25519_sign
      Src: /src/libtorrent/test/test_ed25519.cpp:62,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ed25519.cpp:64,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:64,1
    - Dst: ed25519_verify
      Src: /src/libtorrent/test/test_ed25519.cpp:66,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ed25519.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - seed
    - pub
    - sig_hex
    - message
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 69
    functionName: test_vector
    functionSourceFile: /src/libtorrent/test/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - ed25519_sign
    - std::vector::data
    - libtorrent::aux::from_hex
    - std::array::data
    - libtorrent::aux::to_hex
    - std::tie
    - ed25519_create_keypair
    - ed25519_verify
    - TEST_CHECK
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void test_vector(std::string seed, std::string pub, std::string sig_hex,
      std::string message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_ed25519.cpp:54,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:56,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_ed25519.cpp:56,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_ed25519.cpp:57,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/test/test_ed25519.cpp:57,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ed25519.cpp:59,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:59,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:61,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_ed25519.cpp:61,1
    - Dst: ed25519_sign
      Src: /src/libtorrent/test/test_ed25519.cpp:62,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ed25519.cpp:64,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:64,1
    - Dst: ed25519_verify
      Src: /src/libtorrent/test/test_ed25519.cpp:66,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ed25519.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - seed
    - pub
    - sig_hex
    - message
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 69
    functionName: test_vector
    functionSourceFile: /src/libtorrent/test/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - ed25519_sign
    - std::vector::data
    - libtorrent::aux::from_hex
    - std::array::data
    - libtorrent::aux::to_hex
    - std::tie
    - ed25519_create_keypair
    - ed25519_verify
    - TEST_CHECK
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void test_vector(std::string seed, std::string pub, std::string sig_hex,
      std::string message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:76,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:85,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:94,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:103,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:113,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:123,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:133,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:143,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:153,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:163,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:173,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_ed25519.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 201
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - test_vector
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ed25519_test_vec1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/test/test_ed25519.cpp:205,1
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/test/test_ed25519.cpp:206,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ed25519.cpp:208,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ed25519.cpp:217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ed25519.cpp:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 219
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - ed25519_create_seed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/test/test_ed25519.cpp:224,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_ed25519.cpp:228,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/test/test_ed25519.cpp:228,1
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/test/test_ed25519.cpp:235,1
    - Dst: ed25519_add_scalar
      Src: /src/libtorrent/test/test_ed25519.cpp:239,1
    - Dst: ed25519_add_scalar
      Src: /src/libtorrent/test/test_ed25519.cpp:245,1
    - Dst: ed25519_sign
      Src: /src/libtorrent/test/test_ed25519.cpp:249,1
    - Dst: ed25519_verify
      Src: /src/libtorrent/test/test_ed25519.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ed25519.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 252
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - ed25519_sign
    - ed25519_add_scalar
    - ed25519_create_seed
    - std::tie
    - ed25519_create_keypair
    - ed25519_verify
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/test/test_ed25519.cpp:257,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_ed25519.cpp:261,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/test/test_ed25519.cpp:261,1
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/test/test_ed25519.cpp:266,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_ed25519.cpp:270,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/test/test_ed25519.cpp:270,1
    - Dst: ed25519_key_exchange
      Src: /src/libtorrent/test/test_ed25519.cpp:273,1
    - Dst: ed25519_key_exchange
      Src: /src/libtorrent/test/test_ed25519.cpp:278,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ed25519.cpp:281,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:281,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_ed25519.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 282
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - ed25519_create_seed
    - libtorrent::aux::to_hex
    - std::tie
    - ed25519_create_keypair
    - ed25519_key_exchange
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(key_exchange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ed25519.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/test_similar_torrent.cpp:65,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_similar_torrent.cpp:66,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:70,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:71,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:74,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:76,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:80,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:80,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:80,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:85,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:85,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_similar_torrent.cpp:90,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:90,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:90,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_similar_torrent.cpp:91,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:91,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:91,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:93,1
    - Dst: lt::create_torrent::add_collection
      Src: /src/libtorrent/test/test_similar_torrent.cpp:95,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_similar_torrent.cpp:97,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_similar_torrent.cpp:97,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_similar_torrent.cpp:97,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:98,1
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/test_similar_torrent.cpp:101,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_similar_torrent.cpp:102,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:107,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:107,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:107,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:112,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:112,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:112,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:118,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:118,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:118,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:123,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:123,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:123,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_similar_torrent.cpp:128,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:128,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:128,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_similar_torrent.cpp:129,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:129,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:129,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:131,1
    - Dst: lt::create_torrent::add_collection
      Src: /src/libtorrent/test/test_similar_torrent.cpp:133,1
    - Dst: lt::create_torrent::add_similar_torrent
      Src: /src/libtorrent/test/test_similar_torrent.cpp:135,1
    - Dst: auto::info_hash
      Src: /src/libtorrent/test/test_similar_torrent.cpp:135,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_similar_torrent.cpp:137,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_similar_torrent.cpp:137,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_similar_torrent.cpp:137,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:138,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_similar_torrent.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_similar_torrent.cpp:144,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_similar_torrent.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_similar_torrent.cpp:148,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_similar_torrent.cpp:151,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_similar_torrent.cpp:152,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_similar_torrent.cpp:153,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_similar_torrent.cpp:154,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_similar_torrent.cpp:155,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_similar_torrent.cpp:167,1
    - Dst: wait_for_seeding
      Src: /src/libtorrent/test/test_similar_torrent.cpp:169,1
    - Dst: lt::add_torrent_params::ti::reset
      Src: /src/libtorrent/test/test_similar_torrent.cpp:173,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:174,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_similar_torrent.cpp:181,1
    - Dst: lt::torrent_handle::set_metadata
      Src: /src/libtorrent/test/test_similar_torrent.cpp:185,1
    - Dst: auto::info_section
      Src: /src/libtorrent/test/test_similar_torrent.cpp:185,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_similar_torrent.cpp:192,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_similar_torrent.cpp:195,1
    - Dst: lt::alert_cast<lt::state_changed_alert>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:198,1
    - Dst: lt::alert_cast<lt::file_completed_alert>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:205,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:208,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:208,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_similar_torrent.cpp:214,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_similar_torrent.cpp:214,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_similar_torrent.cpp:216,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_similar_torrent.cpp:219,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_similar_torrent.cpp:219,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 87
    argCount: 3
    argNames:
    - sflags
    - cflags1
    - cflags2
    argTypes:
    - similar_test_t
    - lt::create_flags_t
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 223
    functionName: test
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::info_hash
    - auto::info_hashes
    - lt::add_torrent_params::ti::reset
    - ofstream::write
    - std::vector::size
    - lt::settings_pack::set_bool
    - lt::create_torrent::add_similar_torrent
    - libtorrent::bencode
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - lt::session::wait_for_alert
    - std::make_shared<lt::torrent_info>
    - std::size_t
    - libtorrent::aux::random_bytes
    - lt::file_storage::add_file
    - lt::create_torrent::add_collection
    - TEST_ERROR
    - time_now
    - wait_for_seeding
    - lt::alert_cast<lt::state_changed_alert>
    - TORRENT_ASSERT
    - libtorrent::set_piece_hashes
    - lt::session::add_torrent
    - lt::torrent_handle::set_metadata
    - std::vector::data
    - remove_all
    - lt::alert_cast<lt::file_completed_alert>
    - lt::settings_pack::set_int
    - std::int64_t
    - lt::create_torrent::generate
    - auto::info_section
    - libtorrent::create_directories
    - back_inserter
    linkageType: ''
    returnType: std::array<bool, 2>
    signature: "std::array<bool, 2> test(\n\t similar_test_t const sflags\n\t, lt::create_flags_t
      const cflags1\n\t, lt::create_flags_t const cflags2)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/test_similar_torrent.cpp:65,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_similar_torrent.cpp:66,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:70,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:71,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:74,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:76,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:80,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:80,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:80,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:85,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:85,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_similar_torrent.cpp:90,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:90,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:90,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_similar_torrent.cpp:91,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:91,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:91,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:93,1
    - Dst: lt::create_torrent::add_collection
      Src: /src/libtorrent/test/test_similar_torrent.cpp:95,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_similar_torrent.cpp:97,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_similar_torrent.cpp:97,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_similar_torrent.cpp:97,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:98,1
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/test_similar_torrent.cpp:101,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_similar_torrent.cpp:102,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:107,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:107,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:107,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:112,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:112,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:112,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:118,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:118,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:118,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/test_similar_torrent.cpp:123,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_similar_torrent.cpp:123,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:123,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_similar_torrent.cpp:128,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:128,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:128,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_similar_torrent.cpp:129,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:129,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_similar_torrent.cpp:129,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:131,1
    - Dst: lt::create_torrent::add_collection
      Src: /src/libtorrent/test/test_similar_torrent.cpp:133,1
    - Dst: lt::create_torrent::add_similar_torrent
      Src: /src/libtorrent/test/test_similar_torrent.cpp:135,1
    - Dst: auto::info_hash
      Src: /src/libtorrent/test/test_similar_torrent.cpp:135,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_similar_torrent.cpp:137,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_similar_torrent.cpp:137,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_similar_torrent.cpp:137,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:138,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_similar_torrent.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_similar_torrent.cpp:144,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_similar_torrent.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_similar_torrent.cpp:148,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_similar_torrent.cpp:151,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_similar_torrent.cpp:152,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_similar_torrent.cpp:153,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_similar_torrent.cpp:154,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_similar_torrent.cpp:155,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_similar_torrent.cpp:167,1
    - Dst: wait_for_seeding
      Src: /src/libtorrent/test/test_similar_torrent.cpp:169,1
    - Dst: lt::add_torrent_params::ti::reset
      Src: /src/libtorrent/test/test_similar_torrent.cpp:173,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_similar_torrent.cpp:174,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_similar_torrent.cpp:181,1
    - Dst: lt::torrent_handle::set_metadata
      Src: /src/libtorrent/test/test_similar_torrent.cpp:185,1
    - Dst: auto::info_section
      Src: /src/libtorrent/test/test_similar_torrent.cpp:185,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_similar_torrent.cpp:192,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_similar_torrent.cpp:195,1
    - Dst: lt::alert_cast<lt::state_changed_alert>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:198,1
    - Dst: lt::alert_cast<lt::file_completed_alert>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:205,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_similar_torrent.cpp:208,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_similar_torrent.cpp:208,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_similar_torrent.cpp:214,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_similar_torrent.cpp:214,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_similar_torrent.cpp:216,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_similar_torrent.cpp:219,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_similar_torrent.cpp:219,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 87
    argCount: 3
    argNames:
    - sflags
    - cflags1
    - cflags2
    argTypes:
    - similar_test_t
    - lt::create_flags_t
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 223
    functionName: test
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::info_hash
    - auto::info_hashes
    - lt::add_torrent_params::ti::reset
    - ofstream::write
    - std::vector::size
    - lt::settings_pack::set_bool
    - lt::create_torrent::add_similar_torrent
    - libtorrent::bencode
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - lt::session::wait_for_alert
    - std::make_shared<lt::torrent_info>
    - std::size_t
    - libtorrent::aux::random_bytes
    - lt::file_storage::add_file
    - lt::create_torrent::add_collection
    - TEST_ERROR
    - time_now
    - wait_for_seeding
    - lt::alert_cast<lt::state_changed_alert>
    - TORRENT_ASSERT
    - libtorrent::set_piece_hashes
    - lt::session::add_torrent
    - lt::torrent_handle::set_metadata
    - std::vector::data
    - remove_all
    - lt::alert_cast<lt::file_completed_alert>
    - lt::settings_pack::set_int
    - std::int64_t
    - lt::create_torrent::generate
    - auto::info_section
    - libtorrent::create_directories
    - back_inserter
    linkageType: ''
    returnType: std::array<bool, 2>
    signature: "std::array<bool, 2> test(\n\t similar_test_t const sflags\n\t, lt::create_flags_t
      const cflags1\n\t, lt::create_flags_t const cflags2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:237,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:237,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v1_no_pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:243,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:243,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:248,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:248,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v1_collection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:253,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:253,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v1_magnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:258,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:258,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v1_magnet_collection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:263,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:263,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v2_magnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:268,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:268,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v2_magnet_collection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:273,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:273,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_hybrid_magnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:278,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:278,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v1_v2_magnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:283,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:283,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_seed_mode_v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:290,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:290,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_seed_mode_v1_no_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:295,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:295,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(single_shared_files_v1_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:300,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:300,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(single_shared_files_v1_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:306,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:306,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v1_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:311,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:311,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:316,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:316,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_v2_collection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:321,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:321,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_seed_mode_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:326,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:326,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_seed_mode_v2_no_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:331,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:331,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(single_shared_files_v2_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:336,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:336,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(single_shared_files_v2_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:341,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:341,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_hybrid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_similar_torrent.cpp:346,1
    - Dst: test
      Src: /src/libtorrent/test/test_similar_torrent.cpp:346,1
    - Dst: bools
      Src: /src/libtorrent/test/test_similar_torrent.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_similar_torrent.cpp
    functionUses: 0
    functionsReached:
    - bools
    - test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shared_files_hybrid_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:52,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:52,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:53,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:53,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:54,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:54,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:55,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:55,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:56,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:56,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:57,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - maybe_url_encode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(maybe_url_encode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:64,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_string.cpp:64,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_string.cpp:66,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:67,1
    - Dst: std::strcmp
      Src: /src/libtorrent/test/test_string.cpp:67,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:69,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_string.cpp:69,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:70,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_string.cpp:70,1
    - Dst: std::strchr
      Src: /src/libtorrent/test/test_string.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:78,1
    - Dst: libtorrent::aux::is_hex
      Src: /src/libtorrent/test/test_string.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:81,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/test/test_string.cpp:81,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:82,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/test/test_string.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:83,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/test/test_string.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:84,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/test/test_string.cpp:84,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:85,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/test/test_string.cpp:85,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:86,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/test/test_string.cpp:86,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:87,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/test/test_string.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 88
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::aux::is_hex
    - libtorrent::aux::from_hex
    - libtorrent::aux::to_hex
    - libtorrent::aux::hex_to_int
    - std::strchr
    - TEST_CHECK
    - std::strcmp
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:92,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:92,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:93,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:93,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:94,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:94,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:95,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:95,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:96,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:96,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:97,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:97,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:98,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:99,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:99,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:100,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:100,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:101,1
    - Dst: is_space
      Src: /src/libtorrent/test/test_string.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - is_space
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_space)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:106,1
    - Dst: to_lower
      Src: /src/libtorrent/test/test_string.cpp:106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:107,1
    - Dst: to_lower
      Src: /src/libtorrent/test/test_string.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:108,1
    - Dst: to_lower
      Src: /src/libtorrent/test/test_string.cpp:108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:109,1
    - Dst: to_lower
      Src: /src/libtorrent/test/test_string.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - to_lower
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(to_lower)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:114,1
    - Dst: string_equal_no_case
      Src: /src/libtorrent/test/test_string.cpp:114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:115,1
    - Dst: string_equal_no_case
      Src: /src/libtorrent/test/test_string.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:116,1
    - Dst: string_equal_no_case
      Src: /src/libtorrent/test/test_string.cpp:116,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:117,1
    - Dst: string_equal_no_case
      Src: /src/libtorrent/test/test_string.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:118,1
    - Dst: string_equal_no_case
      Src: /src/libtorrent/test/test_string.cpp:118,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:119,1
    - Dst: string_equal_no_case
      Src: /src/libtorrent/test/test_string.cpp:119,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:121,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/test/test_string.cpp:121,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:122,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/test/test_string.cpp:122,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:123,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/test/test_string.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:124,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/test/test_string.cpp:124,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:126,1
    - Dst: string_ends_with
      Src: /src/libtorrent/test/test_string.cpp:126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:127,1
    - Dst: string_ends_with
      Src: /src/libtorrent/test/test_string.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:128,1
    - Dst: string_ends_with
      Src: /src/libtorrent/test/test_string.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:129,1
    - Dst: string_ends_with
      Src: /src/libtorrent/test/test_string.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:130,1
    - Dst: string_ends_with
      Src: /src/libtorrent/test/test_string.cpp:130,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:131,1
    - Dst: string_ends_with
      Src: /src/libtorrent/test/test_string.cpp:131,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:132,1
    - Dst: string_ends_with
      Src: /src/libtorrent/test/test_string.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 133
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - string_ends_with
    - string_equal_no_case
    - string_begins_no_case
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(string_equal_no_case)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:137,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:137,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:138,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:138,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:138,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:139,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:139,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_string.cpp:139,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:140,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:140,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_string.cpp:140,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:142,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:142,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:142,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:143,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:143,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:144,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:144,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:145,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:145,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:145,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:146,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:146,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:146,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:147,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:147,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:148,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:148,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:149,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:149,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:150,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:150,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:151,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:151,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:151,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:152,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:152,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:152,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:153,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:153,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:153,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:154,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:154,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:154,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:155,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:155,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:156,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:156,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:156,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:157,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:157,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:157,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:159,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:159,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:159,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:160,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:160,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:161,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:161,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:162,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:162,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:162,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:163,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:163,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:164,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:164,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:164,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:165,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:165,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:166,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:166,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:167,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:167,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:168,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:168,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:169,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:169,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:170,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:170,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:170,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:171,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:171,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:172,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:172,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:173,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:173,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:173,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:174,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:174,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:175,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:175,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:176,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:176,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:176,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:178,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:178,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:178,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:179,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:179,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:180,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:180,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:181,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:181,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:182,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:182,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:182,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:183,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:183,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:184,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:184,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:184,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:185,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:185,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:185,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:186,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:186,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:187,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:187,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:187,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:188,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:188,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:188,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:189,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:189,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:189,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:190,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:190,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:191,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:191,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:192,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:192,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:194,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:194,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:195,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:195,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:195,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:196,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:196,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:196,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:197,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:197,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:197,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:198,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:198,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:198,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:199,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:199,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:199,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:200,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:200,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:200,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:201,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:201,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:201,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:202,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:202,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:202,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:203,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:203,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:204,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:204,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:205,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:205,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:206,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:206,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:206,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:207,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:207,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:207,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:208,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:208,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:208,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:209,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:209,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:210,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:210,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:210,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:211,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_string.cpp:211,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 212
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - libtorrent::min
    - std::string
    - libtorrent::aux::max
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(to_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<char>
      Src: /src/libtorrent/test/test_string.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (str)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: to_vec
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - std::vector<char>
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> to_vec(char const (&str)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:225,1
    - Dst: begin
      Src: /src/libtorrent/test/test_string.cpp:225,1
    - Dst: end
      Src: /src/libtorrent/test/test_string.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: to_str
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - begin
    linkageType: ''
    returnType: std::string
    signature: std::string to_str(std::vector<char> const& v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/libtorrent/test/test_string.cpp:232,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_string.cpp:232,1
    - Dst: std::string::end
      Src: /src/libtorrent/test/test_string.cpp:232,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_string.cpp:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: transcode_alphabet
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - std::transform
    - std::back_inserter
    - std::string::begin
    - std::string::end
    linkageType: ''
    returnType: std::string
    signature: std::string transcode_alphabet(std::string in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<char>
      Src: /src/libtorrent/test/test_string.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (str)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: to_vec
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - std::vector<char>
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> to_vec(char const (&str)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:225,1
    - Dst: begin
      Src: /src/libtorrent/test/test_string.cpp:225,1
    - Dst: end
      Src: /src/libtorrent/test/test_string.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: to_str
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - begin
    linkageType: ''
    returnType: std::string
    signature: std::string to_str(std::vector<char> const& v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/libtorrent/test/test_string.cpp:232,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_string.cpp:232,1
    - Dst: std::string::end
      Src: /src/libtorrent/test/test_string.cpp:232,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_string.cpp:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: transcode_alphabet
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - std::transform
    - std::back_inserter
    - std::string::begin
    - std::string::end
    linkageType: ''
    returnType: std::string
    signature: std::string transcode_alphabet(std::string in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:245,1
    - Dst: base64encode
      Src: /src/libtorrent/test/test_string.cpp:245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:246,1
    - Dst: base64encode
      Src: /src/libtorrent/test/test_string.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:247,1
    - Dst: base64encode
      Src: /src/libtorrent/test/test_string.cpp:247,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:248,1
    - Dst: base64encode
      Src: /src/libtorrent/test/test_string.cpp:248,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:249,1
    - Dst: base64encode
      Src: /src/libtorrent/test/test_string.cpp:249,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:250,1
    - Dst: base64encode
      Src: /src/libtorrent/test/test_string.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:251,1
    - Dst: base64encode
      Src: /src/libtorrent/test/test_string.cpp:251,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:253,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/test/test_string.cpp:253,1
    - Dst: to_vec
      Src: /src/libtorrent/test/test_string.cpp:253,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:254,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/test/test_string.cpp:254,1
    - Dst: to_vec
      Src: /src/libtorrent/test/test_string.cpp:254,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:255,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/test/test_string.cpp:255,1
    - Dst: to_vec
      Src: /src/libtorrent/test/test_string.cpp:255,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:256,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/test/test_string.cpp:256,1
    - Dst: to_vec
      Src: /src/libtorrent/test/test_string.cpp:256,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:257,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/test/test_string.cpp:257,1
    - Dst: to_vec
      Src: /src/libtorrent/test/test_string.cpp:257,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:258,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/test/test_string.cpp:258,1
    - Dst: to_vec
      Src: /src/libtorrent/test/test_string.cpp:258,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:259,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/test/test_string.cpp:259,1
    - Dst: to_vec
      Src: /src/libtorrent/test/test_string.cpp:259,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_string.cpp:263,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:264,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/test/test_string.cpp:264,1
    - Dst: transcode_alphabet
      Src: /src/libtorrent/test/test_string.cpp:264,1
    - Dst: base64encode
      Src: /src/libtorrent/test/test_string.cpp:264,1
    - Dst: to_str
      Src: /src/libtorrent/test/test_string.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 266
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - to_str
    - std::vector::push_back
    - base64decode_i2p
    - transcode_alphabet
    - to_vec
    - base64encode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(base64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:274,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/test/test_string.cpp:274,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:275,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/test/test_string.cpp:275,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:276,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/test/test_string.cpp:276,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:277,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/test/test_string.cpp:277,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:278,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/test/test_string.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:279,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/test/test_string.cpp:279,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:280,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/test/test_string.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:286,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:286,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/test/test_string.cpp:286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:289,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:289,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:290,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:290,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:291,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:291,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:292,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:292,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:293,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:293,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:294,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:294,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:295,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:295,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:297,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:297,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:298,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:298,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:299,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:299,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:300,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:300,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:303,1
    - Dst: base32decode
      Src: /src/libtorrent/test/test_string.cpp:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 304
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - base32encode_i2p
    - base32decode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(base32)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:310,1
    - Dst: escape_string
      Src: /src/libtorrent/test/test_string.cpp:310,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:314,1
    - Dst: escape_path
      Src: /src/libtorrent/test/test_string.cpp:314,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:318,1
    - Dst: unescape_string
      Src: /src/libtorrent/test/test_string.cpp:318,1
    - Dst: escape_path
      Src: /src/libtorrent/test/test_string.cpp:318,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:319,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_string.cpp:320,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_string.cpp:320,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:324,1
    - Dst: need_encoding
      Src: /src/libtorrent/test/test_string.cpp:324,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_string.cpp:324,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:325,1
    - Dst: need_encoding
      Src: /src/libtorrent/test/test_string.cpp:325,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_string.cpp:325,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:326,1
    - Dst: need_encoding
      Src: /src/libtorrent/test/test_string.cpp:326,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:329,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:329,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:330,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:330,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:331,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:331,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:333,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/test/test_string.cpp:333,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:336,1
    - Dst: unescape_string
      Src: /src/libtorrent/test/test_string.cpp:336,1
    - Dst: escape_string
      Src: /src/libtorrent/test/test_string.cpp:336,1
    - Dst: unescape_string
      Src: /src/libtorrent/test/test_string.cpp:338,1
    - Dst: escape_string
      Src: /src/libtorrent/test/test_string.cpp:338,1
    - Dst: unescape_string
      Src: /src/libtorrent/test/test_string.cpp:340,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:341,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_string.cpp:341,1
    - Dst: unescape_string
      Src: /src/libtorrent/test/test_string.cpp:342,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:343,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_string.cpp:343,1
    - Dst: unescape_string
      Src: /src/libtorrent/test/test_string.cpp:346,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:347,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_string.cpp:347,1
    - Dst: unescape_string
      Src: /src/libtorrent/test/test_string.cpp:348,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:349,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_string.cpp:349,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_string.cpp:350,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:352,1
    - Dst: unescape_string
      Src: /src/libtorrent/test/test_string.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 353
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - maybe_url_encode
    - error_code
    - need_encoding
    - escape_string
    - error_code::clear
    - error_code::message
    - strlen
    - escape_path
    - std::printf
    - unescape_string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(escape_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:359,1
    - Dst: read_until
      Src: /src/libtorrent/test/test_string.cpp:359,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_string.cpp:359,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:362,1
    - Dst: read_until
      Src: /src/libtorrent/test/test_string.cpp:362,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_string.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 364
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - read_until
    - TEST_CHECK
    - strlen
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_until)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_path_to_posix
      Src: /src/libtorrent/test/test_string.cpp:369,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - convert_path_to_posix
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_string.cpp:380,1
    - Dst: parse_listen_interfaces
      Src: /src/libtorrent/test/test_string.cpp:382,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:383,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_string.cpp:383,1
    - Dst: std::vector<listen_interface_t>::size
      Src: /src/libtorrent/test/test_string.cpp:383,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:384,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:388,1
    - Dst: print_listen_interfaces
      Src: /src/libtorrent/test/test_string.cpp:388,1
    - Dst: print_listen_interfaces
      Src: /src/libtorrent/test/test_string.cpp:389,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_string.cpp:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - input
    - expected
    - expected_e
    - output
    argTypes:
    - char*
    - std::vector<listen_interface_t>
    - std::vector<std::string>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 394
    functionName: test_parse_interface
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - std::vector<listen_interface_t>::size
    - TEST_EQUAL
    - TEST_CHECK
    - TORRENT_UNUSED
    - auto::size
    - print_listen_interfaces
    - std::printf
    - parse_listen_interfaces
    linkageType: ''
    returnType: void
    signature: "void test_parse_interface(char const* input\n\t, std::vector<listen_interface_t>
      const expected\n\t, std::vector<std::string> const expected_e\n\t, string_view
      const output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_string.cpp:380,1
    - Dst: parse_listen_interfaces
      Src: /src/libtorrent/test/test_string.cpp:382,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:383,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_string.cpp:383,1
    - Dst: std::vector<listen_interface_t>::size
      Src: /src/libtorrent/test/test_string.cpp:383,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:384,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:388,1
    - Dst: print_listen_interfaces
      Src: /src/libtorrent/test/test_string.cpp:388,1
    - Dst: print_listen_interfaces
      Src: /src/libtorrent/test/test_string.cpp:389,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_string.cpp:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - input
    - expected
    - expected_e
    - output
    argTypes:
    - char*
    - std::vector<listen_interface_t>
    - std::vector<std::string>
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 394
    functionName: test_parse_interface
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - std::vector<listen_interface_t>::size
    - TEST_EQUAL
    - TEST_CHECK
    - TORRENT_UNUSED
    - auto::size
    - print_listen_interfaces
    - std::printf
    - parse_listen_interfaces
    linkageType: ''
    returnType: void
    signature: "void test_parse_interface(char const* input\n\t, std::vector<listen_interface_t>
      const expected\n\t, std::vector<std::string> const expected_e\n\t, string_view
      const output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_comma_separated_string
      Src: /src/libtorrent/test/test_string.cpp:401,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - parse_comma_separated_string
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:407,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:418,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:424,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:430,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:436,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:437,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:438,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:439,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:440,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:441,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:444,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:448,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:451,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:455,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:459,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:460,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:461,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:462,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:463,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:464,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:467,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:470,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:473,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:476,1
    - Dst: test_parse_interface
      Src: /src/libtorrent/test/test_string.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 480
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - test_parse_interface
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_interface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:484,1
    - Dst: split_string_quotes
      Src: /src/libtorrent/test/test_string.cpp:484,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:484,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:485,1
    - Dst: split_string_quotes
      Src: /src/libtorrent/test/test_string.cpp:485,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:485,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:486,1
    - Dst: split_string_quotes
      Src: /src/libtorrent/test/test_string.cpp:486,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:486,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:487,1
    - Dst: split_string_quotes
      Src: /src/libtorrent/test/test_string.cpp:487,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:487,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:488,1
    - Dst: split_string_quotes
      Src: /src/libtorrent/test/test_string.cpp:488,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:488,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:489,1
    - Dst: split_string_quotes
      Src: /src/libtorrent/test/test_string.cpp:489,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:489,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:490,1
    - Dst: split_string_quotes
      Src: /src/libtorrent/test/test_string.cpp:490,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:490,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:491,1
    - Dst: split_string_quotes
      Src: /src/libtorrent/test/test_string.cpp:491,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - split_string_quotes
    - TEST_CHECK
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(split_string_quotes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:496,1
    - Dst: split_string
      Src: /src/libtorrent/test/test_string.cpp:496,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:496,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:497,1
    - Dst: split_string
      Src: /src/libtorrent/test/test_string.cpp:497,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:497,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:498,1
    - Dst: split_string
      Src: /src/libtorrent/test/test_string.cpp:498,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:498,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:499,1
    - Dst: split_string
      Src: /src/libtorrent/test/test_string.cpp:499,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:499,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:500,1
    - Dst: split_string
      Src: /src/libtorrent/test/test_string.cpp:500,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:500,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:501,1
    - Dst: split_string
      Src: /src/libtorrent/test/test_string.cpp:501,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:501,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:502,1
    - Dst: split_string
      Src: /src/libtorrent/test/test_string.cpp:502,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:502,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:503,1
    - Dst: split_string
      Src: /src/libtorrent/test/test_string.cpp:503,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_string.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 504
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - split_string
    - TEST_CHECK
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(split_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:508,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:508,1
    - Dst: convert_from_native
      Src: /src/libtorrent/test/test_string.cpp:508,1
    - Dst: convert_to_native
      Src: /src/libtorrent/test/test_string.cpp:508,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:509,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_string.cpp:509,1
    - Dst: convert_from_native
      Src: /src/libtorrent/test/test_string.cpp:510,1
    - Dst: convert_to_native
      Src: /src/libtorrent/test/test_string.cpp:510,1
    - Dst: convert_from_native
      Src: /src/libtorrent/test/test_string.cpp:511,1
    - Dst: convert_to_native
      Src: /src/libtorrent/test/test_string.cpp:511,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:513,1
    - Dst: convert_to_native
      Src: /src/libtorrent/test/test_string.cpp:513,1
    - Dst: convert_to_native
      Src: /src/libtorrent/test/test_string.cpp:514,1
    - Dst: convert_to_native
      Src: /src/libtorrent/test/test_string.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 515
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - convert_to_native
    - TEST_EQUAL
    - convert_from_native
    - std::string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(convert_from_native)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:519,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:519,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:520,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:520,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:521,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:521,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:522,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:522,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:523,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:523,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:524,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:524,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:525,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:525,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:526,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:526,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:527,1
    - Dst: trim
      Src: /src/libtorrent/test/test_string.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 528
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - trim
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(trim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:533,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/test/test_string.cpp:533,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:534,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/test/test_string.cpp:534,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:535,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/test/test_string.cpp:535,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:536,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/test/test_string.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 537
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - is_i2p_url
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(i2p_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:546,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_string.cpp:546,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:547,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:548,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_string.cpp:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - string_view
    - TEST_CHECK
    - strlen
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(string_ptr_zero_termination)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:554,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_string.cpp:554,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:558,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_string.cpp:558,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 562
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - string_view
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(string_ptr_move_construct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:567,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_string.cpp:567,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_string.cpp:571,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:573,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_string.cpp:573,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_string.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 577
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - string_view
    - std::move
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(string_ptr_move_assign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:582,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:582,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:583,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:583,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:584,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:584,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:585,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:585,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:587,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:587,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:588,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:588,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:589,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:589,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:590,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:590,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:591,1
    - Dst: find_first_of
      Src: /src/libtorrent/test/test_string.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 592
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - find_first_of
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_first_of)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:596,1
    - Dst: strip_string
      Src: /src/libtorrent/test/test_string.cpp:596,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:597,1
    - Dst: strip_string
      Src: /src/libtorrent/test/test_string.cpp:597,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:598,1
    - Dst: strip_string
      Src: /src/libtorrent/test/test_string.cpp:598,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:599,1
    - Dst: strip_string
      Src: /src/libtorrent/test/test_string.cpp:599,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:600,1
    - Dst: strip_string
      Src: /src/libtorrent/test/test_string.cpp:600,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:601,1
    - Dst: strip_string
      Src: /src/libtorrent/test/test_string.cpp:601,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_string.cpp:602,1
    - Dst: strip_string
      Src: /src/libtorrent/test/test_string.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 603
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_string.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - strip_string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(strip_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: torrent_args
    functionSourceFile: /src/libtorrent/test/make_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_args()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: '& name(char const* n)'
    functionSourceFile: /src/libtorrent/test/make_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_args
    signature: torrent_args & name(char const* n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/test/make_torrent.hpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& file(char const* f)'
    functionSourceFile: /src/libtorrent/test/make_torrent.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: torrent_args
    signature: torrent_args & file(char const* f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - u
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& url_seed(char const* u)'
    functionSourceFile: /src/libtorrent/test/make_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_args
    signature: torrent_args & url_seed(char const* u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - u
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& http_seed(char const* u)'
    functionSourceFile: /src/libtorrent/test/make_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_args
    signature: torrent_args & http_seed(char const* u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '& priv()'
    functionSourceFile: /src/libtorrent/test/make_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_args
    signature: torrent_args & priv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& collection(std::string c)'
    functionSourceFile: /src/libtorrent/test/make_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_args
    signature: torrent_args & collection(std::string c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - test_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_TEST(test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - line
    - ','
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: TEST_REPORT_AUX
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_REPORT_AUX(x, line, file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: TEST_CHECK
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: TEST_EQUAL
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_EQUAL(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: TEST_NE
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_NE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: TEST_CHECK
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 159
    functionName: TEST_EQUAL
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_EQUAL(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: TEST_NE
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_NE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: TEST_ERROR
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ERROR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: TEST_NOTHROW
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_NOTHROW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: TEST_THROW
    functionSourceFile: /src/libtorrent/test/test.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_THROW(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:94,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_storage.cpp:96,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:99,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_storage.cpp:100,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:100,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:102,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: delete_dirs
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - remove_all
    - std::string::c_str
    - exists
    - error_code::message
    - std::printf
    - complete
    linkageType: ''
    returnType: void
    signature: void delete_dirs(std::string path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_storage.cpp:107,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:108,1
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:125,1
    - Dst: file
      Src: /src/libtorrent/test/test_storage.cpp:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - status
    - ' error'
    - done
    - oversized
    argTypes:
    - lt::status_t
    - storage_error
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: on_check_resume_data
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - ec::message
    - time_now_string
    - file
    linkageType: ''
    returnType: void
    signature: void on_check_resume_data(lt::status_t const status, storage_error
      const& error, bool* done, bool* oversized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_storage.cpp:145,1
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' error'
    - done
    argTypes:
    - storage_error
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: on_piece_checked
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - ec::message
    - time_now_string
    linkageType: ''
    returnType: void
    signature: "void on_piece_checked(piece_index_t, sha1_hash const&\n\t, storage_error
      const& error, bool* done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:152,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_storage.cpp:153,1
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:153,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:154,1
    - Dst: file
      Src: /src/libtorrent/test/test_storage.cpp:154,1
    - Dst: operation_name
      Src: /src/libtorrent/test/test_storage.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - call
    - ret
    - ' ec'
    argTypes:
    - char*
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: print_error
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - ec::message
    - time_now_string
    - file
    - operation_name
    - std::printf
    linkageType: ''
    returnType: void
    signature: void print_error(char const* call, int ret, storage_error const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restart
      Src: /src/libtorrent/test/test_storage.cpp:161,1
    - Dst: run_one
      Src: /src/libtorrent/test/test_storage.cpp:162,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_storage.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ios'
    - ' done'
    argTypes:
    - io_context
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: run_until
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - time_now_string
    - restart
    - run_one
    linkageType: ''
    returnType: void
    signature: void run_until(io_context& ios, bool const& done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:170,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:170,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:171,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:171,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:171,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:172,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:172,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:172,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:173,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:173,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:173,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:174,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:174,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:174,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:174,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:177,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/test/test_storage.cpp:177,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:178,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:180,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:180,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_storage.cpp:180,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:183,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:187,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:188,1
    - Dst: system_error
      Src: /src/libtorrent/test/test_storage.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' fs'
    - ' buf'
    argTypes:
    - file_storage
    - std::vector<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 193
    functionName: setup_torrent_info
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - hasher
    - add_file
    - combine_path
    - system_error
    - error_code::message
    - std::back_inserter
    - lt::create_torrent::generate
    - std::vector<char>
    - std::printf
    - bencode
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: "std::shared_ptr<torrent_info> setup_torrent_info(file_storage& fs\n\t,
      std::vector<char>& buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<mmap_storage>
      Src: /src/libtorrent/test/test_storage.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' fp'
    argTypes:
    - storage_params
    - aux::file_view_pool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: make_storage
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<mmap_storage>
    linkageType: ''
    returnType: std::shared_ptr<mmap_storage>
    signature: "std::shared_ptr<mmap_storage> make_storage(storage_params const& p\n\t,
      aux::file_view_pool& fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<posix_storage>
      Src: /src/libtorrent/test/test_storage.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: make_storage
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<posix_storage>
    linkageType: ''
    returnType: std::shared_ptr<posix_storage>
    signature: "std::shared_ptr<posix_storage> make_storage(storage_params const&
      p\n\t, int&)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_torrent_info
      Src: /src/libtorrent/test/test_storage.cpp:243,1
    - Dst: make_storage
      Src: /src/libtorrent/test/test_storage.cpp:255,1
    - Dst: auto::initialize
      Src: /src/libtorrent/test/test_storage.cpp:259,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_storage.cpp:262,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:262,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:263,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:264,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:264,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:264,1
    - Dst: system_error
      Src: /src/libtorrent/test/test_storage.cpp:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ' fs'
    - ' fp'
    - ' buf'
    - ' test_path'
    - ' set'
    argTypes:
    - file_storage
    - FilePool
    - std::vector<char>
    - std::string
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 269
    functionName: setup_torrent
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - setup_torrent_info
    - storage_error::file
    - storage_error::ec::message
    - system_error
    - make_storage
    - auto::initialize
    - std::printf
    - TEST_ERROR
    linkageType: ''
    returnType: std::shared_ptr<StorageType>
    signature: "std::shared_ptr<StorageType> setup_torrent(file_storage& fs\n\t, FilePool&
      fp\n\t, std::vector<char>& buf\n\t, std::string const& test_path\n\t, aux::session_settings&
      set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<mmap_storage>::write
      Src: /src/libtorrent/test/test_storage.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - ' sett'
    - buf
    - piece
    - offset
    - mode
    - ' error'
    argTypes:
    - std::shared_ptr<mmap_storage>
    - aux::session_settings
    - span<char>
    - piece_index_t
    - int
    - aux::open_mode_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 280
    functionName: write
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 3
    functionsReached:
    - std::shared_ptr<mmap_storage>::write
    linkageType: ''
    returnType: int
    signature: "int write(std::shared_ptr<mmap_storage> s\n\t, aux::session_settings
      const& sett\n\t, span<char> buf\n\t, piece_index_t const piece, int const offset\n\t,
      aux::open_mode_t const mode\n\t, storage_error& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<mmap_storage>::read
      Src: /src/libtorrent/test/test_storage.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - ' sett'
    - buf
    - piece
    - offset
    - mode
    - ' ec'
    argTypes:
    - std::shared_ptr<mmap_storage>
    - aux::session_settings
    - span<char>
    - piece_index_t
    - int
    - aux::open_mode_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: read
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<mmap_storage>::read
    linkageType: ''
    returnType: int
    signature: "int read(std::shared_ptr<mmap_storage> s\n\t, aux::session_settings
      const& sett\n\t, span<char> buf\n\t, piece_index_t piece\n\t, int const offset\n\t,
      aux::open_mode_t mode\n\t, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<mmap_storage>::release_files
      Src: /src/libtorrent/test/test_storage.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - ' ec'
    argTypes:
    - std::shared_ptr<mmap_storage>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: release_files
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<mmap_storage>::release_files
    linkageType: ''
    returnType: void
    signature: void release_files(std::shared_ptr<mmap_storage> s, storage_error&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<posix_storage>::write
      Src: /src/libtorrent/test/test_storage.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ' sett'
    - buf
    - piece
    - offset
    - ' error'
    argTypes:
    - std::shared_ptr<posix_storage>
    - aux::session_settings
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: write
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 4
    functionsReached:
    - std::shared_ptr<posix_storage>::write
    linkageType: ''
    returnType: int
    signature: "int write(std::shared_ptr<posix_storage> s\n\t, aux::session_settings
      const& sett\n\t, span<char> buf\n\t, piece_index_t const piece\n\t, int const
      offset\n\t, aux::open_mode_t\n\t, storage_error& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<posix_storage>::read
      Src: /src/libtorrent/test/test_storage.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ' sett'
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - std::shared_ptr<posix_storage>
    - aux::session_settings
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: read
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 2
    functionsReached:
    - std::shared_ptr<posix_storage>::read
    linkageType: ''
    returnType: int
    signature: "int read(std::shared_ptr<posix_storage> s\n\t, aux::session_settings
      const& sett\n\t, span<char> buf\n\t, piece_index_t piece\n\t, int offset\n\t,
      aux::open_mode_t\n\t, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: release_files
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void release_files(std::shared_ptr<posix_storage>, storage_error&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: new_piece
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> new_piece(std::size_t const size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_storage.cpp:335,1
    - Dst: num_files
      Src: /src/libtorrent/test/test_storage.cpp:335,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:338,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:338,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:339,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:340,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:342,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:343,1
    - Dst: std::shared_ptr<torrent_info>::num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:343,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:345,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:346,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:347,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:359,1
    - Dst: make_storage
      Src: /src/libtorrent/test/test_storage.cpp:368,1
    - Dst: auto::initialize
      Src: /src/libtorrent/test/test_storage.cpp:371,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:372,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:373,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:378,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:380,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:381,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:381,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:382,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:382,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:384,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:386,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:386,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:387,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:387,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:390,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:391,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:392,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:392,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:393,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:393,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:394,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:394,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:397,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:398,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:399,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:399,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:400,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:400,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:401,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:401,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:405,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:406,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:406,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:407,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:407,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:408,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:412,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:413,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:413,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:414,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:414,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:417,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:418,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:418,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:419,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:419,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:423,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:424,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:424,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:425,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:425,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:426,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:429,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:430,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:430,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:431,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:432,1
    - Dst: release_files
      Src: /src/libtorrent/test/test_storage.cpp:434,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 3
    argNames:
    - info
    - ' fs'
    - storage_mode
    argTypes:
    - std::shared_ptr<torrent_info>
    - file_storage
    - lt::storage_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 436
    functionName: run_storage_tests
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - write
    - make_storage
    - span<char>
    - release_files
    - num_pieces
    - error_code::message
    - std::shared_ptr<torrent_info>::num_pieces
    - TEST_EQUAL
    - current_working_directory
    - num_files
    - TORRENT_ASSERT
    - create_directory
    - auto::initialize
    - print_error
    - TEST_CHECK
    - new_piece
    - read
    - complete
    linkageType: ''
    returnType: void
    signature: "void run_storage_tests(std::shared_ptr<torrent_info> info\n\t, file_storage&
      fs\n\t, lt::storage_mode_t storage_mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:441,1
    - Dst: setup_torrent
      Src: /src/libtorrent/test/test_storage.cpp:449,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:455,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:455,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:455,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:455,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:456,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:456,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:459,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:459,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:459,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:459,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:460,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:463,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:463,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:463,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:463,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:464,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_storage.cpp:466,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:469,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:471,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:471,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:471,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:471,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:472,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:473,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:473,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:473,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:473,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:474,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:474,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_storage.cpp:477,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:477,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:477,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:478,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:482,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:484,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:486,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:486,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:486,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:486,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:487,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:487,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_storage.cpp:488,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:488,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:488,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:489,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:493,1
    - Dst: auto::delete_files
      Src: /src/libtorrent/test/test_storage.cpp:495,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:496,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_storage.cpp:500,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:500,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:501,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:502,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:502,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:502,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:505,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:505,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ' test_path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 506
    functionName: test_remove
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - setup_torrent
    - storage_error::file
    - combine_path
    - storage_error::ec::message
    - delete_dirs
    - std::vector::resize
    - write
    - stat_file
    - exists
    - print_error
    - auto::delete_files
    - std::printf
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void test_remove(std::string const& test_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:511,1
    - Dst: setup_torrent
      Src: /src/libtorrent/test/test_storage.cpp:519,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:523,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_storage.cpp:524,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:526,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:526,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:526,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:526,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:527,1
    - Dst: auto::rename_file
      Src: /src/libtorrent/test/test_storage.cpp:531,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:534,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:535,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:537,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:539,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_storage.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' test_path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 540
    functionName: test_rename
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::file_path
    - setup_torrent
    - auto::files
    - combine_path
    - storage_error::ec::message
    - delete_dirs
    - auto::rename_file
    - exists
    - file_storage::file_range
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_rename(std::string const& test_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_storage.cpp:546,1
    - Dst: CreateFileW
      Src: /src/libtorrent/test/test_storage.cpp:548,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/test_storage.cpp:548,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:550,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:552,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/libtorrent/test/test_storage.cpp:552,1
    - Dst: CloseHandle
      Src: /src/libtorrent/test/test_storage.cpp:553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: libtorrent::stat
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_storage.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: file_size_on_disk
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - TEST_EQUAL
    - c_str
    - CreateFileW
    - libtorrent::stat
    - std::int64_t
    - GetFileInformationByHandleEx
    - convert_to_native_path_string
    - TEST_CHECK
    - native_path_string::c_str
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_size_on_disk(std::string const& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_storage.cpp:546,1
    - Dst: CreateFileW
      Src: /src/libtorrent/test/test_storage.cpp:548,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/test_storage.cpp:548,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:550,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:552,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/libtorrent/test/test_storage.cpp:552,1
    - Dst: CloseHandle
      Src: /src/libtorrent/test/test_storage.cpp:553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: libtorrent::stat
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_storage.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: file_size_on_disk
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - TEST_EQUAL
    - c_str
    - CreateFileW
    - libtorrent::stat
    - std::int64_t
    - GetFileInformationByHandleEx
    - convert_to_native_path_string
    - TEST_CHECK
    - native_path_string::c_str
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_size_on_disk(std::string const& path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:566,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:567,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:567,1
    - Dst: fs_supports_prealloc
      Src: /src/libtorrent/test/test_storage.cpp:569,1
    - Dst: setup_torrent_info
      Src: /src/libtorrent/test/test_storage.cpp:576,1
    - Dst: make_storage
      Src: /src/libtorrent/test/test_storage.cpp:594,1
    - Dst: auto::initialize
      Src: /src/libtorrent/test/test_storage.cpp:598,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_storage.cpp:601,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:601,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:602,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:603,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:603,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:603,1
    - Dst: system_error
      Src: /src/libtorrent/test/test_storage.cpp:604,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:607,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:608,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_storage.cpp:611,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:613,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:615,1
    - Dst: file_storage::piece_index_at_file
      Src: /src/libtorrent/test/test_storage.cpp:615,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:616,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:616,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:617,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:622,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_storage.cpp:623,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:627,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:631,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:632,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:633,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:633,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:635,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:637,1
    - Dst: file_size_on_disk
      Src: /src/libtorrent/test/test_storage.cpp:637,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:637,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:641,1
    - Dst: file_size_on_disk
      Src: /src/libtorrent/test/test_storage.cpp:641,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:641,1
    - Dst: auto::set_file_priority
      Src: /src/libtorrent/test/test_storage.cpp:649,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:650,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_storage.cpp:652,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:656,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_storage.cpp:657,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:658,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:659,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:661,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:663,1
    - Dst: file_size_on_disk
      Src: /src/libtorrent/test/test_storage.cpp:663,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:663,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:667,1
    - Dst: file_size_on_disk
      Src: /src/libtorrent/test/test_storage.cpp:667,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:667,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 670
    functionName: test_pre_allocate
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - fs_supports_prealloc
    - setup_torrent_info
    - static_cast<int>
    - span::size
    - delete_dirs
    - write
    - system_error
    - file_size_on_disk
    - make_storage
    - span<char>
    - error_code::message
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - storage_error::file
    - stat_file
    - auto::initialize
    - auto::set_file_priority
    - file_storage::file_range
    - TEST_CHECK
    - file_storage::file_path
    - combine_path
    - storage_error::ec::message
    - new_piece
    - file_storage::piece_index_at_file
    - file_storage::file_size
    - complete
    linkageType: ''
    returnType: void
    signature: void test_pre_allocate()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:682,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:687,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:690,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:691,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:692,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:694,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:695,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:698,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:698,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:699,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_storage.cpp:699,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:700,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_storage.cpp:700,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:701,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:701,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:703,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:703,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:704,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_storage.cpp:707,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_storage.cpp:709,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:709,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:709,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:710,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_storage.cpp:710,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_storage.cpp:710,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_storage.cpp:711,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:711,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:711,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:712,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_storage.cpp:712,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_storage.cpp:712,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:715,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:715,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_storage.cpp:715,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:716,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_storage.cpp:723,1
    - Dst: disk_constructor
      Src: /src/libtorrent/test/test_storage.cpp:724,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/test/test_storage.cpp:729,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_storage.cpp:729,1
    - Dst: std::shared_ptr::num_files
      Src: /src/libtorrent/test/test_storage.cpp:729,1
    - Dst: std::unique_ptr::new_torrent
      Src: /src/libtorrent/test/test_storage.cpp:741,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:741,1
    - Dst: std::shared_ptr<void>
      Src: /src/libtorrent/test/test_storage.cpp:741,1
    - Dst: std::unique_ptr::async_check_files
      Src: /src/libtorrent/test/test_storage.cpp:747,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_storage.cpp:748,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:749,1
    - Dst: boost::asio::io_context::restart
      Src: /src/libtorrent/test/test_storage.cpp:750,1
    - Dst: run_until
      Src: /src/libtorrent/test/test_storage.cpp:751,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:753,1
    - Dst: std::shared_ptr::piece_range
      Src: /src/libtorrent/test/test_storage.cpp:755,1
    - Dst: std::unique_ptr::async_hash
      Src: /src/libtorrent/test/test_storage.cpp:758,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_storage.cpp:760,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:761,1
    - Dst: boost::asio::io_context::restart
      Src: /src/libtorrent/test/test_storage.cpp:762,1
    - Dst: run_until
      Src: /src/libtorrent/test/test_storage.cpp:763,1
    - Dst: std::unique_ptr::abort
      Src: /src/libtorrent/test/test_storage.cpp:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - flags
    - disk_constructor
    argTypes:
    - check_files_flag_t
    - lt::disk_io_constructor_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 767
    functionName: test_check_files
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::set_hash
    - std::vector::size
    - std::move
    - run_until
    - std::unique_ptr::async_hash
    - delete_dirs
    - std::unique_ptr::async_check_files
    - aux::vector::resize
    - boost::asio::io_context::restart
    - std::unique_ptr::new_torrent
    - std::unique_ptr::submit_jobs
    - std::make_shared<torrent_info>
    - hasher
    - aux::session_settings::set_int
    - file_storage::add_file
    - std::shared_ptr<void>
    - error_code::message
    - std::size_t
    - current_working_directory
    - TEST_EQUAL
    - std::unique_ptr::abort
    - ofstream
    - libtorrent::aux::max
    - create_directory
    - disk_constructor
    - bencode
    - std::streamsize
    - std::bind
    - std::vector::data
    - std::vector::push_back
    - combine_path
    - new_piece
    - std::shared_ptr::piece_range
    - std::shared_ptr::num_files
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: void
    signature: "void test_check_files(check_files_flag_t const flags\n\t, lt::disk_io_constructor_type
      const disk_constructor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:773,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:778,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:779,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:780,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:781,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:783,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:786,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:787,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:788,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:789,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:790,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:791,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:792,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:793,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:803,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:803,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:804,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:804,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:805,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:805,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:806,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:806,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:807,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:807,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:810,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:810,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_storage.cpp:810,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:811,1
    - Dst: run_storage_tests
      Src: /src/libtorrent/test/test_storage.cpp:814,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:817,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:820,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:820,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:820,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:821,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:821,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:821,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 824
    functionName: run_test
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::num_pieces
    - current_working_directory
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - file_storage::total_size
    - hasher
    - combine_path
    - file_storage::add_file
    - new_piece
    - delete_dirs
    - exists
    - std::back_inserter
    - lt::create_torrent::generate
    - complete
    - bencode
    - run_storage_tests
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void run_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 830
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_sparse_mmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_oversized_mmap_zero_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_oversized_mmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 845
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_allocate_mmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pre_allocate
      Src: /src/libtorrent/test/test_storage.cpp:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_pre_allocate
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_pre_allocate_mmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 3
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_sparse_posix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 860
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_oversized_zero_prio_posix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 865
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_oversized_posix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 871
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_allocate_posix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_rename
      Src: /src/libtorrent/test/test_storage.cpp:884,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 885
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - test_rename
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_mmap_disk_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove
      Src: /src/libtorrent/test/test_storage.cpp:889,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 887
    functionDepth: 4
    functionLinenumber: 887
    functionLinenumberEnd: 890
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - test_remove
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_mmap_disk_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_rename
      Src: /src/libtorrent/test/test_storage.cpp:895,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 896
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - test_rename
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_posix_disk_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove
      Src: /src/libtorrent/test/test_storage.cpp:900,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 898
    functionDepth: 4
    functionLinenumber: 898
    functionLinenumberEnd: 901
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - test_remove
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_posix_disk_io)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:905,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:908,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:910,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:910,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:911,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:912,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:913,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_storage.cpp:914,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_storage.cpp:915,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:916,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:916,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:916,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:917,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:917,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:922,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:926,1
    - Dst: std::cref
      Src: /src/libtorrent/test/test_storage.cpp:926,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:927,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:930,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:930,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:932,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:933,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:933,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:933,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:934,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:934,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_storage.cpp:939,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:940,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_storage.cpp:946,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_storage.cpp:946,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:952,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:956,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:957,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:958,1
    - Dst: write_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:959,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_storage.cpp:959,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_storage.cpp:960,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:961,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:962,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:964,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:964,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:964,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:964,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:965,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:965,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:965,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_storage.cpp:968,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:972,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:976,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:976,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_storage.cpp:979,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:988,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:993,1
    - Dst: std::cref
      Src: /src/libtorrent/test/test_storage.cpp:993,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:994,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:996,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:996,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:998,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:999,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1002,1
    - Dst: alert_cast<fastresume_rejected_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1002,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1004,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 1
    argNames:
    - test_deprecated
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 1005
    functionName: test_fastresume
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::this_thread::sleep_for
    - delete_dirs
    - alert_cast<fastresume_rejected_alert>
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - ofstream::close
    - print_alerts
    - torrent_handle::save_resume_data
    - error_code::message
    - std::printf
    - current_working_directory
    - TEST_EQUAL
    - read_resume_data
    - entry::to_string
    - std::cref
    - libtorrent::total_milliseconds
    - write_resume_data
    - create_directory
    - lt::session::add_torrent
    - TEST_CHECK
    - lt::session::remove_torrent
    - bencode
    - TORRENT_UNUSED
    - libtorrent::create_torrent::create_torrent
    - combine_path
    - alert_cast<save_resume_data_alert>
    - wait_for_alert
    - exists
    - std::back_inserter
    - settings
    - complete
    linkageType: ''
    returnType: void
    signature: void test_fastresume(bool const test_deprecated)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:94,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_storage.cpp:96,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:99,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_storage.cpp:100,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:100,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:102,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: delete_dirs
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 6
    functionsReached:
    - TEST_CHECK
    - remove_all
    - std::string::c_str
    - exists
    - error_code::message
    - std::printf
    - complete
    linkageType: ''
    returnType: void
    signature: void delete_dirs(std::string path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_storage.cpp:107,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:108,1
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:125,1
    - Dst: file
      Src: /src/libtorrent/test/test_storage.cpp:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - status
    - ' error'
    - done
    - oversized
    argTypes:
    - lt::status_t
    - storage_error
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: on_check_resume_data
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - ec::message
    - time_now_string
    - file
    linkageType: ''
    returnType: void
    signature: void on_check_resume_data(lt::status_t const status, storage_error
      const& error, bool* done, bool* oversized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_storage.cpp:145,1
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' error'
    - done
    argTypes:
    - storage_error
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: on_piece_checked
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - ec::message
    - time_now_string
    linkageType: ''
    returnType: void
    signature: "void on_piece_checked(piece_index_t, sha1_hash const&\n\t, storage_error
      const& error, bool* done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:152,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_storage.cpp:153,1
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:153,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:154,1
    - Dst: file
      Src: /src/libtorrent/test/test_storage.cpp:154,1
    - Dst: operation_name
      Src: /src/libtorrent/test/test_storage.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - call
    - ret
    - ' ec'
    argTypes:
    - char*
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: print_error
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - ec::message
    - time_now_string
    - file
    - operation_name
    - std::printf
    linkageType: ''
    returnType: void
    signature: void print_error(char const* call, int ret, storage_error const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restart
      Src: /src/libtorrent/test/test_storage.cpp:161,1
    - Dst: run_one
      Src: /src/libtorrent/test/test_storage.cpp:162,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_storage.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ios'
    - ' done'
    argTypes:
    - io_context
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: run_until
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 1
    functionsReached:
    - time_now_string
    - restart
    - run_one
    linkageType: ''
    returnType: void
    signature: void run_until(io_context& ios, bool const& done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:170,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:170,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:171,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:171,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:171,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:172,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:172,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:172,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:173,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:173,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:173,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_storage.cpp:174,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:174,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:174,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:174,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:177,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/test/test_storage.cpp:177,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:178,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:180,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:180,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_storage.cpp:180,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:183,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:187,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:188,1
    - Dst: system_error
      Src: /src/libtorrent/test/test_storage.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' fs'
    - ' buf'
    argTypes:
    - file_storage
    - std::vector<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 193
    functionName: setup_torrent_info
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - hasher
    - add_file
    - combine_path
    - system_error
    - error_code::message
    - std::back_inserter
    - lt::create_torrent::generate
    - std::vector<char>
    - std::printf
    - bencode
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: "std::shared_ptr<torrent_info> setup_torrent_info(file_storage& fs\n\t,
      std::vector<char>& buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<mmap_storage>
      Src: /src/libtorrent/test/test_storage.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' fp'
    argTypes:
    - storage_params
    - aux::file_view_pool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: make_storage
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 3
    functionsReached:
    - std::make_shared<mmap_storage>
    linkageType: ''
    returnType: std::shared_ptr<mmap_storage>
    signature: "std::shared_ptr<mmap_storage> make_storage(storage_params const& p\n\t,
      aux::file_view_pool& fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<posix_storage>
      Src: /src/libtorrent/test/test_storage.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: make_storage
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 3
    functionsReached:
    - std::make_shared<posix_storage>
    linkageType: ''
    returnType: std::shared_ptr<posix_storage>
    signature: "std::shared_ptr<posix_storage> make_storage(storage_params const&
      p\n\t, int&)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_torrent_info
      Src: /src/libtorrent/test/test_storage.cpp:243,1
    - Dst: make_storage
      Src: /src/libtorrent/test/test_storage.cpp:255,1
    - Dst: auto::initialize
      Src: /src/libtorrent/test/test_storage.cpp:259,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_storage.cpp:262,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:262,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:263,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:264,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:264,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:264,1
    - Dst: system_error
      Src: /src/libtorrent/test/test_storage.cpp:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ' fs'
    - ' fp'
    - ' buf'
    - ' test_path'
    - ' set'
    argTypes:
    - file_storage
    - FilePool
    - std::vector<char>
    - std::string
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 269
    functionName: setup_torrent
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - setup_torrent_info
    - storage_error::file
    - storage_error::ec::message
    - system_error
    - make_storage
    - auto::initialize
    - std::printf
    - TEST_ERROR
    linkageType: ''
    returnType: std::shared_ptr<StorageType>
    signature: "std::shared_ptr<StorageType> setup_torrent(file_storage& fs\n\t, FilePool&
      fp\n\t, std::vector<char>& buf\n\t, std::string const& test_path\n\t, aux::session_settings&
      set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<mmap_storage>::write
      Src: /src/libtorrent/test/test_storage.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - ' sett'
    - buf
    - piece
    - offset
    - mode
    - ' error'
    argTypes:
    - std::shared_ptr<mmap_storage>
    - aux::session_settings
    - span<char>
    - piece_index_t
    - int
    - aux::open_mode_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 280
    functionName: write
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 8
    functionsReached:
    - std::shared_ptr<mmap_storage>::write
    linkageType: ''
    returnType: int
    signature: "int write(std::shared_ptr<mmap_storage> s\n\t, aux::session_settings
      const& sett\n\t, span<char> buf\n\t, piece_index_t const piece, int const offset\n\t,
      aux::open_mode_t const mode\n\t, storage_error& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<mmap_storage>::read
      Src: /src/libtorrent/test/test_storage.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - ' sett'
    - buf
    - piece
    - offset
    - mode
    - ' ec'
    argTypes:
    - std::shared_ptr<mmap_storage>
    - aux::session_settings
    - span<char>
    - piece_index_t
    - int
    - aux::open_mode_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: read
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 4
    functionsReached:
    - std::shared_ptr<mmap_storage>::read
    linkageType: ''
    returnType: int
    signature: "int read(std::shared_ptr<mmap_storage> s\n\t, aux::session_settings
      const& sett\n\t, span<char> buf\n\t, piece_index_t piece\n\t, int const offset\n\t,
      aux::open_mode_t mode\n\t, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<mmap_storage>::release_files
      Src: /src/libtorrent/test/test_storage.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - ' ec'
    argTypes:
    - std::shared_ptr<mmap_storage>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: release_files
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 3
    functionsReached:
    - std::shared_ptr<mmap_storage>::release_files
    linkageType: ''
    returnType: void
    signature: void release_files(std::shared_ptr<mmap_storage> s, storage_error&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<posix_storage>::write
      Src: /src/libtorrent/test/test_storage.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ' sett'
    - buf
    - piece
    - offset
    - ' error'
    argTypes:
    - std::shared_ptr<posix_storage>
    - aux::session_settings
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: write
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 9
    functionsReached:
    - std::shared_ptr<posix_storage>::write
    linkageType: ''
    returnType: int
    signature: "int write(std::shared_ptr<posix_storage> s\n\t, aux::session_settings
      const& sett\n\t, span<char> buf\n\t, piece_index_t const piece\n\t, int const
      offset\n\t, aux::open_mode_t\n\t, storage_error& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<posix_storage>::read
      Src: /src/libtorrent/test/test_storage.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ' sett'
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - std::shared_ptr<posix_storage>
    - aux::session_settings
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: read
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 5
    functionsReached:
    - std::shared_ptr<posix_storage>::read
    linkageType: ''
    returnType: int
    signature: "int read(std::shared_ptr<posix_storage> s\n\t, aux::session_settings
      const& sett\n\t, span<char> buf\n\t, piece_index_t piece\n\t, int offset\n\t,
      aux::open_mode_t\n\t, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: release_files
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void release_files(std::shared_ptr<posix_storage>, storage_error&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: new_piece
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> new_piece(std::size_t const size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_storage.cpp:335,1
    - Dst: num_files
      Src: /src/libtorrent/test/test_storage.cpp:335,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:338,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:338,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:339,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:340,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:342,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:343,1
    - Dst: std::shared_ptr<torrent_info>::num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:343,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:345,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:346,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:347,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:359,1
    - Dst: make_storage
      Src: /src/libtorrent/test/test_storage.cpp:368,1
    - Dst: auto::initialize
      Src: /src/libtorrent/test/test_storage.cpp:371,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:372,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:373,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:378,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:380,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:381,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:381,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:382,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:382,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:384,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:386,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:386,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:387,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:387,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:390,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:391,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:392,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:392,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:393,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:393,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:394,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:394,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:397,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:398,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:399,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:399,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:400,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:400,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:401,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:401,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:405,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:406,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:406,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:407,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:407,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:408,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:412,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:413,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:413,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:414,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:414,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:417,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:418,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:418,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:419,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:419,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:423,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:424,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:424,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:425,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:425,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:426,1
    - Dst: read
      Src: /src/libtorrent/test/test_storage.cpp:429,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:430,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:430,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:431,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:432,1
    - Dst: release_files
      Src: /src/libtorrent/test/test_storage.cpp:434,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 3
    argNames:
    - info
    - ' fs'
    - storage_mode
    argTypes:
    - std::shared_ptr<torrent_info>
    - file_storage
    - lt::storage_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 436
    functionName: run_storage_tests
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 1
    functionsReached:
    - span::size
    - write
    - make_storage
    - span<char>
    - release_files
    - num_pieces
    - error_code::message
    - std::shared_ptr<torrent_info>::num_pieces
    - TEST_EQUAL
    - current_working_directory
    - num_files
    - TORRENT_ASSERT
    - create_directory
    - auto::initialize
    - print_error
    - TEST_CHECK
    - new_piece
    - read
    - complete
    linkageType: ''
    returnType: void
    signature: "void run_storage_tests(std::shared_ptr<torrent_info> info\n\t, file_storage&
      fs\n\t, lt::storage_mode_t storage_mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:441,1
    - Dst: setup_torrent
      Src: /src/libtorrent/test/test_storage.cpp:449,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:455,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:455,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:455,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:455,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:456,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:456,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:459,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:459,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:459,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:459,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:460,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:463,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:463,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:463,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:463,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:464,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_storage.cpp:466,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:469,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:471,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:471,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:471,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:471,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:472,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:473,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:473,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:473,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:473,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:474,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:474,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_storage.cpp:477,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:477,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:477,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:478,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:482,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:484,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:486,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:486,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:486,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:486,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:487,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:487,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_storage.cpp:488,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:488,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:488,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:489,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:493,1
    - Dst: auto::delete_files
      Src: /src/libtorrent/test/test_storage.cpp:495,1
    - Dst: print_error
      Src: /src/libtorrent/test/test_storage.cpp:496,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_storage.cpp:500,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:500,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:501,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:502,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:502,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:502,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:505,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:505,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ' test_path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 506
    functionName: test_remove
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - setup_torrent
    - storage_error::file
    - combine_path
    - storage_error::ec::message
    - delete_dirs
    - std::vector::resize
    - write
    - stat_file
    - exists
    - print_error
    - auto::delete_files
    - std::printf
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void test_remove(std::string const& test_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:511,1
    - Dst: setup_torrent
      Src: /src/libtorrent/test/test_storage.cpp:519,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:523,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_storage.cpp:524,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:526,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:526,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:526,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:526,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:527,1
    - Dst: auto::rename_file
      Src: /src/libtorrent/test/test_storage.cpp:531,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:534,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:535,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:537,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:539,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_storage.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' test_path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 540
    functionName: test_rename
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - file_storage::file_path
    - setup_torrent
    - auto::files
    - combine_path
    - storage_error::ec::message
    - delete_dirs
    - auto::rename_file
    - exists
    - file_storage::file_range
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_rename(std::string const& test_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_storage.cpp:546,1
    - Dst: CreateFileW
      Src: /src/libtorrent/test/test_storage.cpp:548,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/test_storage.cpp:548,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:550,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:552,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/libtorrent/test/test_storage.cpp:552,1
    - Dst: CloseHandle
      Src: /src/libtorrent/test/test_storage.cpp:553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: libtorrent::stat
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_storage.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: file_size_on_disk
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 1
    functionsReached:
    - CloseHandle
    - TEST_EQUAL
    - c_str
    - CreateFileW
    - libtorrent::stat
    - std::int64_t
    - GetFileInformationByHandleEx
    - convert_to_native_path_string
    - TEST_CHECK
    - native_path_string::c_str
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_size_on_disk(std::string const& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_storage.cpp:546,1
    - Dst: CreateFileW
      Src: /src/libtorrent/test/test_storage.cpp:548,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/test_storage.cpp:548,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:550,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:552,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/libtorrent/test/test_storage.cpp:552,1
    - Dst: CloseHandle
      Src: /src/libtorrent/test/test_storage.cpp:553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: libtorrent::stat
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_storage.cpp:557,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_storage.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: file_size_on_disk
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 1
    functionsReached:
    - CloseHandle
    - TEST_EQUAL
    - c_str
    - CreateFileW
    - libtorrent::stat
    - std::int64_t
    - GetFileInformationByHandleEx
    - convert_to_native_path_string
    - TEST_CHECK
    - native_path_string::c_str
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_size_on_disk(std::string const& path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:566,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:567,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:567,1
    - Dst: fs_supports_prealloc
      Src: /src/libtorrent/test/test_storage.cpp:569,1
    - Dst: setup_torrent_info
      Src: /src/libtorrent/test/test_storage.cpp:576,1
    - Dst: make_storage
      Src: /src/libtorrent/test/test_storage.cpp:594,1
    - Dst: auto::initialize
      Src: /src/libtorrent/test/test_storage.cpp:598,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_storage.cpp:601,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:601,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:602,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:603,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:603,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:603,1
    - Dst: system_error
      Src: /src/libtorrent/test/test_storage.cpp:604,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:607,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_storage.cpp:608,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_storage.cpp:611,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:613,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:615,1
    - Dst: file_storage::piece_index_at_file
      Src: /src/libtorrent/test/test_storage.cpp:615,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:616,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_storage.cpp:616,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:617,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:622,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_storage.cpp:623,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:627,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:631,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:632,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:633,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:633,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:635,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:637,1
    - Dst: file_size_on_disk
      Src: /src/libtorrent/test/test_storage.cpp:637,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:637,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:641,1
    - Dst: file_size_on_disk
      Src: /src/libtorrent/test/test_storage.cpp:641,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:641,1
    - Dst: auto::set_file_priority
      Src: /src/libtorrent/test/test_storage.cpp:649,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:650,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_storage.cpp:652,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:656,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_storage.cpp:657,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:658,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:659,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:661,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:663,1
    - Dst: file_size_on_disk
      Src: /src/libtorrent/test/test_storage.cpp:663,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:663,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:667,1
    - Dst: file_size_on_disk
      Src: /src/libtorrent/test/test_storage.cpp:667,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_storage.cpp:667,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 670
    functionName: test_pre_allocate
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 1
    functionsReached:
    - fs_supports_prealloc
    - setup_torrent_info
    - static_cast<int>
    - span::size
    - delete_dirs
    - write
    - system_error
    - file_size_on_disk
    - make_storage
    - span<char>
    - error_code::message
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - storage_error::file
    - stat_file
    - auto::initialize
    - auto::set_file_priority
    - file_storage::file_range
    - TEST_CHECK
    - file_storage::file_path
    - combine_path
    - storage_error::ec::message
    - new_piece
    - file_storage::piece_index_at_file
    - file_storage::file_size
    - complete
    linkageType: ''
    returnType: void
    signature: void test_pre_allocate()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:682,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:687,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:690,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:691,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:692,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:694,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:695,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:698,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:698,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:699,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_storage.cpp:699,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:700,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_storage.cpp:700,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:701,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:701,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:703,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:703,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:704,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_storage.cpp:707,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_storage.cpp:709,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:709,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:709,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:710,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_storage.cpp:710,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_storage.cpp:710,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_storage.cpp:711,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:711,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:711,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:712,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_storage.cpp:712,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_storage.cpp:712,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:715,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:715,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_storage.cpp:715,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:716,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_storage.cpp:723,1
    - Dst: disk_constructor
      Src: /src/libtorrent/test/test_storage.cpp:724,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/test/test_storage.cpp:729,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_storage.cpp:729,1
    - Dst: std::shared_ptr::num_files
      Src: /src/libtorrent/test/test_storage.cpp:729,1
    - Dst: std::unique_ptr::new_torrent
      Src: /src/libtorrent/test/test_storage.cpp:741,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:741,1
    - Dst: std::shared_ptr<void>
      Src: /src/libtorrent/test/test_storage.cpp:741,1
    - Dst: std::unique_ptr::async_check_files
      Src: /src/libtorrent/test/test_storage.cpp:747,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_storage.cpp:748,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:749,1
    - Dst: boost::asio::io_context::restart
      Src: /src/libtorrent/test/test_storage.cpp:750,1
    - Dst: run_until
      Src: /src/libtorrent/test/test_storage.cpp:751,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:753,1
    - Dst: std::shared_ptr::piece_range
      Src: /src/libtorrent/test/test_storage.cpp:755,1
    - Dst: std::unique_ptr::async_hash
      Src: /src/libtorrent/test/test_storage.cpp:758,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_storage.cpp:760,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:761,1
    - Dst: boost::asio::io_context::restart
      Src: /src/libtorrent/test/test_storage.cpp:762,1
    - Dst: run_until
      Src: /src/libtorrent/test/test_storage.cpp:763,1
    - Dst: std::unique_ptr::abort
      Src: /src/libtorrent/test/test_storage.cpp:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - flags
    - disk_constructor
    argTypes:
    - check_files_flag_t
    - lt::disk_io_constructor_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 767
    functionName: test_check_files
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 8
    functionsReached:
    - lt::create_torrent::set_hash
    - std::vector::size
    - std::move
    - run_until
    - std::unique_ptr::async_hash
    - delete_dirs
    - std::unique_ptr::async_check_files
    - aux::vector::resize
    - boost::asio::io_context::restart
    - std::unique_ptr::new_torrent
    - std::unique_ptr::submit_jobs
    - std::make_shared<torrent_info>
    - hasher
    - aux::session_settings::set_int
    - file_storage::add_file
    - std::shared_ptr<void>
    - error_code::message
    - std::size_t
    - current_working_directory
    - TEST_EQUAL
    - std::unique_ptr::abort
    - ofstream
    - libtorrent::aux::max
    - create_directory
    - disk_constructor
    - bencode
    - std::streamsize
    - std::bind
    - std::vector::data
    - std::vector::push_back
    - combine_path
    - new_piece
    - std::shared_ptr::piece_range
    - std::shared_ptr::num_files
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: void
    signature: "void test_check_files(check_files_flag_t const flags\n\t, lt::disk_io_constructor_type
      const disk_constructor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:773,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:778,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:779,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:780,1
    - Dst: new_piece
      Src: /src/libtorrent/test/test_storage.cpp:781,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:783,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:786,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:787,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:788,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:789,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:790,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:791,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:792,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:793,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:803,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:803,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:804,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:804,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:805,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:805,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:806,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:806,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_storage.cpp:807,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_storage.cpp:807,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:810,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:810,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_storage.cpp:810,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:811,1
    - Dst: run_storage_tests
      Src: /src/libtorrent/test/test_storage.cpp:814,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:817,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:820,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:820,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:820,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:821,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:821,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:821,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 824
    functionName: run_test
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::num_pieces
    - current_working_directory
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - file_storage::total_size
    - hasher
    - combine_path
    - file_storage::add_file
    - new_piece
    - delete_dirs
    - exists
    - std::back_inserter
    - lt::create_torrent::generate
    - complete
    - bencode
    - run_storage_tests
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void run_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 830
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_sparse_mmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_oversized_mmap_zero_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_oversized_mmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 845
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_allocate_mmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pre_allocate
      Src: /src/libtorrent/test/test_storage.cpp:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_pre_allocate
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_pre_allocate_mmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 3
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_sparse_posix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 860
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_oversized_zero_prio_posix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 865
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_oversized_posix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_check_files
      Src: /src/libtorrent/test/test_storage.cpp:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 871
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_check_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(check_files_allocate_posix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_rename
      Src: /src/libtorrent/test/test_storage.cpp:884,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 885
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - test_rename
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_mmap_disk_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove
      Src: /src/libtorrent/test/test_storage.cpp:889,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 887
    functionDepth: 4
    functionLinenumber: 887
    functionLinenumberEnd: 890
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - test_remove
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_mmap_disk_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_rename
      Src: /src/libtorrent/test/test_storage.cpp:895,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 896
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - test_rename
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_posix_disk_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove
      Src: /src/libtorrent/test/test_storage.cpp:900,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 898
    functionDepth: 4
    functionLinenumber: 898
    functionLinenumberEnd: 901
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - test_remove
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_posix_disk_io)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:905,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:908,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:910,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:910,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:911,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:912,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:913,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_storage.cpp:914,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_storage.cpp:915,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:916,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:916,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:916,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:917,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:917,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:922,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:926,1
    - Dst: std::cref
      Src: /src/libtorrent/test/test_storage.cpp:926,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:927,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:930,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:930,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:932,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:933,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:933,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:933,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:934,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:934,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_storage.cpp:939,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:940,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_storage.cpp:946,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_storage.cpp:946,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:952,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:956,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:957,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:958,1
    - Dst: write_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:959,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_storage.cpp:959,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_storage.cpp:960,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:961,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:962,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:964,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:964,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:964,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:964,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:965,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:965,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:965,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_storage.cpp:968,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:972,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:976,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:976,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_storage.cpp:979,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:988,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:993,1
    - Dst: std::cref
      Src: /src/libtorrent/test/test_storage.cpp:993,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:994,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:996,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:996,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:998,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:999,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1002,1
    - Dst: alert_cast<fastresume_rejected_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1002,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1004,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 1
    argNames:
    - test_deprecated
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 1005
    functionName: test_fastresume
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::this_thread::sleep_for
    - delete_dirs
    - alert_cast<fastresume_rejected_alert>
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - ofstream::close
    - print_alerts
    - torrent_handle::save_resume_data
    - error_code::message
    - std::printf
    - current_working_directory
    - TEST_EQUAL
    - read_resume_data
    - entry::to_string
    - std::cref
    - libtorrent::total_milliseconds
    - write_resume_data
    - create_directory
    - lt::session::add_torrent
    - TEST_CHECK
    - lt::session::remove_torrent
    - bencode
    - TORRENT_UNUSED
    - libtorrent::create_torrent::create_torrent
    - combine_path
    - alert_cast<save_resume_data_alert>
    - wait_for_alert
    - exists
    - std::back_inserter
    - settings
    - complete
    linkageType: ''
    returnType: void
    signature: void test_fastresume(bool const test_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fastresume
      Src: /src/libtorrent/test/test_storage.cpp:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1012
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_fastresume
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(fastresume)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fastresume
      Src: /src/libtorrent/test/test_storage.cpp:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1018
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_fastresume
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(fastresume_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<lt::file_renamed_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1025,1
    - Dst: alert_cast<lt::file_rename_failed_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1027
    functionName: got_file_rename_alert
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<lt::file_rename_failed_alert>
    - alert_cast<lt::file_renamed_alert>
    linkageType: ''
    returnType: bool
    signature: bool got_file_rename_alert(alert const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<lt::file_renamed_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1025,1
    - Dst: alert_cast<lt::file_rename_failed_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1027
    functionName: got_file_rename_alert
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<lt::file_rename_failed_alert>
    - alert_cast<lt::file_renamed_alert>
    linkageType: ''
    returnType: bool
    signature: bool got_file_rename_alert(alert const* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_torrent_info
      Src: /src/libtorrent/test/test_storage.cpp:1035,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:1037,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_storage.cpp:1038,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1045,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:1045,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:1048,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_storage.cpp:1051,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:1052,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_storage.cpp:1056,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_storage.cpp:1056,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_storage.cpp:1060,1
    - Dst: std::shared_ptr::piece_length
      Src: /src/libtorrent/test/test_storage.cpp:1060,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_storage.cpp:1061,1
    - Dst: torrent_handle::add_piece
      Src: /src/libtorrent/test/test_storage.cpp:1062,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1066,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:1068,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1070,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_storage.cpp:1074,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_storage.cpp:1076,1
    - Dst: torrent_handle::rename_file
      Src: /src/libtorrent/test/test_storage.cpp:1077,1
    - Dst: std::string::substr
      Src: /src/libtorrent/test/test_storage.cpp:1077,1
    - Dst: std::shared_ptr::num_files
      Src: /src/libtorrent/test/test_storage.cpp:1081,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:1083,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1085,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1088,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1088,1
    - Dst: std::shared_ptr::name
      Src: /src/libtorrent/test/test_storage.cpp:1088,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1090,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:1091,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1092,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1094,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1099,1
    - Dst: second::substr
      Src: /src/libtorrent/test/test_storage.cpp:1099,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1101
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - setup_torrent_info
    - std::shared_ptr::piece_length
    - second::substr
    - std::move
    - std::this_thread::sleep_for
    - torrent_handle::status
    - print_alerts
    - torrent_handle::save_resume_data
    - torrent_handle::rename_file
    - std::size_t
    - std::string::substr
    - settings_pack::set_bool
    - TEST_EQUAL
    - libtorrent::total_milliseconds
    - lt::session::add_torrent
    - std::shared_ptr::name
    - file_storage::file_range
    - std::shared_ptr::num_pieces
    - TEST_CHECK
    - file_storage::file_path
    - file_storage::piece_range
    - alert_cast<save_resume_data_alert>
    - wait_for_alert
    - exists
    - std::shared_ptr::num_files
    - settings
    - torrent_handle::add_piece
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:1107,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1110,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:1111,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1111,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:1112,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1113,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1114,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_storage.cpp:1115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1116,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1116,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1116,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:1120,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:1124,1
    - Dst: std::cref
      Src: /src/libtorrent/test/test_storage.cpp:1124,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1125,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1127,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:1127,1
    - Dst: torrent_handle::rename_file
      Src: /src/libtorrent/test/test_storage.cpp:1129,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_storage.cpp:1134,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:1135,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_storage.cpp:1137,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_storage.cpp:1137,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:1140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1141,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1143,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:1144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1145,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1146,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1149,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1149,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1150,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1150,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1151,1
    - Dst: add_torrent_params::renamed_files::empty
      Src: /src/libtorrent/test/test_storage.cpp:1151,1
    - Dst: write_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1153,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_storage.cpp:1155,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:1159,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:1164,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:1164,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_storage.cpp:1165,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1174,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:1176,1
    - Dst: std::cref
      Src: /src/libtorrent/test/test_storage.cpp:1176,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1177,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1179,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:1179,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:1184,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_storage.cpp:1185,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_storage.cpp:1188,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_storage.cpp:1188,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1190,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1192,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:1193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1194,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1195,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1196,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1198,1
    - Dst: add_torrent_params::renamed_files::empty
      Src: /src/libtorrent/test/test_storage.cpp:1198,1
    - Dst: write_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1200,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_storage.cpp:1201,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_storage.cpp:1203,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1203,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1205,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:1206,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 1
    argNames:
    - test_deprecated
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1207
    functionName: test_rename_file_fastresume
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::this_thread::sleep_for
    - delete_dirs
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - ofstream::close
    - print_alerts
    - torrent_handle::save_resume_data
    - torrent_handle::rename_file
    - error_code::message
    - current_working_directory
    - read_resume_data
    - entry::to_string
    - std::cref
    - libtorrent::total_milliseconds
    - write_resume_data
    - create_directory
    - lt::session::add_torrent
    - add_torrent_params::renamed_files::empty
    - TEST_CHECK
    - lt::session::remove_torrent
    - bencode
    - TORRENT_UNUSED
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - alert_cast<save_resume_data_alert>
    - wait_for_alert
    - exists
    - std::back_inserter
    - settings
    linkageType: ''
    returnType: void
    signature: void test_rename_file_fastresume(bool test_deprecated)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:1107,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1110,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:1111,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1111,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:1112,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1113,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1114,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_storage.cpp:1115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1116,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1116,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1116,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:1120,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:1124,1
    - Dst: std::cref
      Src: /src/libtorrent/test/test_storage.cpp:1124,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1125,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1127,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:1127,1
    - Dst: torrent_handle::rename_file
      Src: /src/libtorrent/test/test_storage.cpp:1129,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_storage.cpp:1134,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:1135,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_storage.cpp:1137,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_storage.cpp:1137,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:1140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1141,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1143,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:1144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1145,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1146,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1149,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1149,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1150,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1150,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1151,1
    - Dst: add_torrent_params::renamed_files::empty
      Src: /src/libtorrent/test/test_storage.cpp:1151,1
    - Dst: write_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1153,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_storage.cpp:1155,1
    - Dst: settings
      Src: /src/libtorrent/test/test_storage.cpp:1159,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_storage.cpp:1164,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_storage.cpp:1164,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_storage.cpp:1165,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1174,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_storage.cpp:1176,1
    - Dst: std::cref
      Src: /src/libtorrent/test/test_storage.cpp:1176,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1177,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1179,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_storage.cpp:1179,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_storage.cpp:1184,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_storage.cpp:1185,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_storage.cpp:1188,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_storage.cpp:1188,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1190,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1192,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_storage.cpp:1193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1194,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_storage.cpp:1195,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1196,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1198,1
    - Dst: add_torrent_params::renamed_files::empty
      Src: /src/libtorrent/test/test_storage.cpp:1198,1
    - Dst: write_resume_data
      Src: /src/libtorrent/test/test_storage.cpp:1200,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_storage.cpp:1201,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_storage.cpp:1203,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1203,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1205,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_storage.cpp:1206,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 1
    argNames:
    - test_deprecated
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1207
    functionName: test_rename_file_fastresume
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::this_thread::sleep_for
    - delete_dirs
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - ofstream::close
    - print_alerts
    - torrent_handle::save_resume_data
    - torrent_handle::rename_file
    - error_code::message
    - current_working_directory
    - read_resume_data
    - entry::to_string
    - std::cref
    - libtorrent::total_milliseconds
    - write_resume_data
    - create_directory
    - lt::session::add_torrent
    - add_torrent_params::renamed_files::empty
    - TEST_CHECK
    - lt::session::remove_torrent
    - bencode
    - TORRENT_UNUSED
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - alert_cast<save_resume_data_alert>
    - wait_for_alert
    - exists
    - std::back_inserter
    - settings
    linkageType: ''
    returnType: void
    signature: void test_rename_file_fastresume(bool test_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_rename_file_fastresume
      Src: /src/libtorrent/test/test_storage.cpp:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1211
    functionDepth: 3
    functionLinenumber: 1211
    functionLinenumberEnd: 1214
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_rename_file_fastresume
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_file_fastresume)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_rename_file_fastresume
      Src: /src/libtorrent/test/test_storage.cpp:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1217
    functionDepth: 3
    functionLinenumber: 1217
    functionLinenumberEnd: 1220
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_rename_file_fastresume
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_file_fastresume_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1233
    functionName: fill_pattern
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_pattern(span<char> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/test/test_storage.cpp:1237,1
    - Dst: data
      Src: /src/libtorrent/test/test_storage.cpp:1237,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' buf'
    - counter
    argTypes:
    - std::vector<char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1244
    functionName: check_pattern
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: bool check_pattern(std::vector<char> const& buf, int counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1233
    functionName: fill_pattern
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_pattern(span<char> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/test/test_storage.cpp:1237,1
    - Dst: data
      Src: /src/libtorrent/test/test_storage.cpp:1237,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' buf'
    - counter
    argTypes:
    - std::vector<char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1244
    functionName: check_pattern
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: bool check_pattern(std::vector<char> const& buf, int counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/test/test_storage.cpp:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mmap_disk_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/test/test_storage.cpp:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1251
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(posix_disk_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1258,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1258,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1259,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1259,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1260,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1260,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1261,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1261,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_storage.cpp:1262,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1263,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1265
    functionName: make_fs
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - combine_path
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: file_storage
    signature: file_storage make_fs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stripe_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1269
    functionName: test_fileop
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_fileop(int stripe_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/test/test_storage.cpp:1275,1
    - Dst: resize
      Src: /src/libtorrent/test/test_storage.cpp:1277,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:1277,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_storage.cpp:1280,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_storage.cpp:1280,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1280,1
    - Dst: span<char>::first
      Src: /src/libtorrent/test/test_storage.cpp:1281,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1285,1
    - Dst: resize
      Src: /src/libtorrent/test/test_storage.cpp:1286,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_storage.cpp:1288,1
    - Dst: span<char>::data
      Src: /src/libtorrent/test/test_storage.cpp:1288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - file_index
    - file_offset
    - buf
    argTypes:
    - file_index_t
    - std::int64_t
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1290
    functionName: "operator()(file_index_t const file_index, std::int64_t const file_offset\n\t\t,
      span<char> buf, storage_error&)"
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::memcpy
    - span<char>::first
    - span<char>::data
    - std::min
    - resize
    - std::size_t
    - end_index
    - span<char>::size
    - size
    linkageType: ''
    returnType: int
    signature: "int operator()(file_index_t const file_index, std::int64_t const file_offset\n\t\t,
      span<char> buf, storage_error&)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1299
    functionName: test_read_fileop
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_read_fileop(int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1304,1
    - Dst: span<char>::first
      Src: /src/libtorrent/test/test_storage.cpp:1305,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1311,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1313
    functionName: "operator()(file_index_t, std::int64_t /*file_offset*/\n\t\t, span<char>
      buf, storage_error&)"
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - span<char>::size
    - span<char>::first
    linkageType: ''
    returnType: int
    signature: "int operator()(file_index_t, std::int64_t /*file_offset*/\n\t\t, span<char>
      buf, storage_error&)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - error_file
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1323
    functionName: test_error_fileop
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_error_fileop(file_index_t error_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file
      Src: /src/libtorrent/test/test_storage.cpp:1330,1
    - Dst: ec::assign
      Src: /src/libtorrent/test/test_storage.cpp:1331,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/test/test_storage.cpp:1332,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - file_index
    - buf
    - ' ec'
    argTypes:
    - file_index_t
    - span<char>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1337
    functionName: "operator()(file_index_t const file_index, std::int64_t /*file_offset*/\n\t\t,
      span<char> buf, storage_error& ec)"
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - ec::assign
    - file
    - span<char>::size
    - boost::system::generic_category
    linkageType: ''
    returnType: int
    signature: "int operator()(file_index_t const file_index, std::int64_t /*file_offset*/\n\t\t,
      span<char> buf, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1258,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1258,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1259,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1259,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1260,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1260,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1261,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1261,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_storage.cpp:1262,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1263,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1265
    functionName: make_fs
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - combine_path
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: file_storage
    signature: file_storage make_fs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stripe_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1269
    functionName: test_fileop
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_fileop(int stripe_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/test/test_storage.cpp:1275,1
    - Dst: resize
      Src: /src/libtorrent/test/test_storage.cpp:1277,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:1277,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_storage.cpp:1280,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_storage.cpp:1280,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1280,1
    - Dst: span<char>::first
      Src: /src/libtorrent/test/test_storage.cpp:1281,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1285,1
    - Dst: resize
      Src: /src/libtorrent/test/test_storage.cpp:1286,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_storage.cpp:1288,1
    - Dst: span<char>::data
      Src: /src/libtorrent/test/test_storage.cpp:1288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - file_index
    - file_offset
    - buf
    argTypes:
    - file_index_t
    - std::int64_t
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1290
    functionName: "operator()(file_index_t const file_index, std::int64_t const file_offset\n\t\t,
      span<char> buf, storage_error&)"
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::memcpy
    - span<char>::first
    - span<char>::data
    - std::min
    - resize
    - std::size_t
    - end_index
    - span<char>::size
    - size
    linkageType: ''
    returnType: int
    signature: "int operator()(file_index_t const file_index, std::int64_t const file_offset\n\t\t,
      span<char> buf, storage_error&)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1299
    functionName: test_read_fileop
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_read_fileop(int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1304,1
    - Dst: span<char>::first
      Src: /src/libtorrent/test/test_storage.cpp:1305,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1311,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1313
    functionName: "operator()(file_index_t, std::int64_t /*file_offset*/\n\t\t, span<char>
      buf, storage_error&)"
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - span<char>::size
    - span<char>::first
    linkageType: ''
    returnType: int
    signature: "int operator()(file_index_t, std::int64_t /*file_offset*/\n\t\t, span<char>
      buf, storage_error&)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - error_file
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1323
    functionName: test_error_fileop
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_error_fileop(file_index_t error_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file
      Src: /src/libtorrent/test/test_storage.cpp:1330,1
    - Dst: ec::assign
      Src: /src/libtorrent/test/test_storage.cpp:1331,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/test/test_storage.cpp:1332,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_storage.cpp:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - file_index
    - buf
    - ' ec'
    argTypes:
    - file_index_t
    - span<char>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1337
    functionName: "operator()(file_index_t const file_index, std::int64_t /*file_offset*/\n\t\t,
      span<char> buf, storage_error& ec)"
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - ec::assign
    - file
    - span<char>::size
    - boost::system::generic_category
    linkageType: ''
    returnType: int
    signature: "int operator()(file_index_t const file_index, std::int64_t /*file_offset*/\n\t\t,
      span<char> buf, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_fs
      Src: /src/libtorrent/test/test_storage.cpp:1346,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_storage.cpp:1350,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1350,1
    - Dst: fill_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1351,1
    - Dst: readwrite
      Src: /src/libtorrent/test/test_storage.cpp:1353,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_storage.cpp:1354,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1356,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1356,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1357,1
    - Dst: test_fileop::m_file_data::size
      Src: /src/libtorrent/test/test_storage.cpp:1357,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1358,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1358,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1359,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1359,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1360,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1360,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1361,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1361,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1363,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1363,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1364,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1364,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1365,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1365,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1366,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1344
    functionDepth: 2
    functionLinenumber: 1344
    functionLinenumberEnd: 1367
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_fileop::m_file_data::size
    - TEST_EQUAL
    - file_storage::total_size
    - make_fs
    - std::ref
    - check_pattern
    - readwrite
    - std::size_t
    - fill_pattern
    - size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(readwrite_stripe_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_fs
      Src: /src/libtorrent/test/test_storage.cpp:1371,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1375,1
    - Dst: fill_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1376,1
    - Dst: readwrite
      Src: /src/libtorrent/test/test_storage.cpp:1378,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_storage.cpp:1378,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1380,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1380,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1381,1
    - Dst: test_fileop::m_file_data::size
      Src: /src/libtorrent/test/test_storage.cpp:1381,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1382,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1382,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1383,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1383,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1384,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1384,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1385,1
    - Dst: size
      Src: /src/libtorrent/test/test_storage.cpp:1385,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1387,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1387,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1388,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1388,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1389,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1389,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1390,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1391
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_fileop::m_file_data::size
    - TEST_EQUAL
    - file_storage::total_size
    - make_fs
    - std::ref
    - check_pattern
    - readwrite
    - fill_pattern
    - size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(readwrite_single_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_fs
      Src: /src/libtorrent/test/test_storage.cpp:1395,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1399,1
    - Dst: readwrite
      Src: /src/libtorrent/test/test_storage.cpp:1402,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_storage.cpp:1402,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1404,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1404,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1405,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1393
    functionDepth: 2
    functionLinenumber: 1393
    functionLinenumberEnd: 1406
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::total_size
    - make_fs
    - std::ref
    - check_pattern
    - readwrite
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(readwrite_read)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_fs
      Src: /src/libtorrent/test/test_storage.cpp:1410,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1414,1
    - Dst: readwrite
      Src: /src/libtorrent/test/test_storage.cpp:1417,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_storage.cpp:1417,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1419,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:1419,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:1419,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1421,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_storage.cpp:1422,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1423,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1408
    functionDepth: 2
    functionLinenumber: 1408
    functionLinenumberEnd: 1424
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - TEST_EQUAL
    - storage_error::file
    - file_storage::total_size
    - std::vector::resize
    - make_fs
    - std::ref
    - check_pattern
    - readwrite
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(readwrite_read_short)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_fs
      Src: /src/libtorrent/test/test_storage.cpp:1428,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1432,1
    - Dst: readwrite
      Src: /src/libtorrent/test/test_storage.cpp:1435,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_storage.cpp:1435,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1437,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1438,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_storage.cpp:1438,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:1438,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1439,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1440,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_storage.cpp:1441,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1426
    functionDepth: 2
    functionLinenumber: 1426
    functionLinenumberEnd: 1442
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - TEST_EQUAL
    - storage_error::file
    - file_storage::total_size
    - storage_error::ec::message
    - make_fs
    - std::ref
    - readwrite
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(readwrite_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1447,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1447,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1448,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1448,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1449,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1449,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1450,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1450,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1451,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1451,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_storage.cpp:1452,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1453,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1453,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1457,1
    - Dst: readwrite
      Src: /src/libtorrent/test/test_storage.cpp:1460,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_storage.cpp:1460,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1462,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_storage.cpp:1462,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1463,1
    - Dst: check_pattern
      Src: /src/libtorrent/test/test_storage.cpp:1463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1464
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::total_size
    - combine_path
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - std::ref
    - check_pattern
    - readwrite
    - file_storage::set_num_pieces
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(readwrite_zero_size_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:1470,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:1471,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1472,1
    - Dst: setup_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1479,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1483,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:1484,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1486,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1486,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1486,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1486,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1487,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1487,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1487,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1487,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1488,1
    - Dst: auto::move_storage
      Src: /src/libtorrent/test/test_storage.cpp:1490,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1491,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:1492,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:1494,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1496,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1496,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1498,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1498,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1498,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1498,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1499,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1499,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1499,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1467
    functionDepth: 3
    functionLinenumber: 1467
    functionLinenumberEnd: 1500
    functionName: test_move_storage_to_self
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - current_working_directory
    - setup_torrent
    - TEST_CHECK
    - storage_error::file
    - combine_path
    - auto::move_storage
    - delete_dirs
    - storage_error::ec::message
    - write
    - exists
    - complete
    linkageType: ''
    returnType: void
    signature: void test_move_storage_to_self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:1505,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1506,1
    - Dst: setup_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1513,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:1517,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1519,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1519,1
    - Dst: auto::move_storage
      Src: /src/libtorrent/test/test_storage.cpp:1520,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1521,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1523,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1523,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1523,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1523,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1524,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1527,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1527,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1527,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1527,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1528,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1529,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1529,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1529,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1529,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1503
    functionDepth: 3
    functionLinenumber: 1503
    functionLinenumberEnd: 1531
    functionName: test_move_storage_into_self
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - TEST_EQUAL
    - setup_torrent
    - TEST_CHECK
    - combine_path
    - delete_dirs
    - write
    - exists
    - auto::move_storage
    linkageType: ''
    returnType: void
    signature: void test_move_storage_into_self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_storage.cpp:1536,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:1537,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1538,1
    - Dst: setup_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1545,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1549,1
    - Dst: write
      Src: /src/libtorrent/test/test_storage.cpp:1550,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1552,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1553,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1553,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1553,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1553,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1554,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1554,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1554,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1554,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1555,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1556,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1556,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1556,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1556,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1557,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1557,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1557,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1557,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1558,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_storage.cpp:1562,1
    - Dst: auto::move_storage
      Src: /src/libtorrent/test/test_storage.cpp:1562,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1563,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1564,1
    - Dst: storage_error::file
      Src: /src/libtorrent/test/test_storage.cpp:1565,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/test_storage.cpp:1567,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1570,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1570,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1571,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1571,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1571,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1571,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1572,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1572,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1572,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - flags
    argTypes:
    - move_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1534
    functionDepth: 3
    functionLinenumber: 1534
    functionLinenumberEnd: 1573
    functionName: test_move_storage_reset
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - current_working_directory
    - setup_torrent
    - TEST_CHECK
    - storage_error::file
    - combine_path
    - std::tie
    - delete_dirs
    - auto::move_storage
    - write
    - storage_error::ec::message
    - exists
    - complete
    linkageType: ''
    returnType: void
    signature: void test_move_storage_reset(move_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_move_storage_to_self
      Src: /src/libtorrent/test/test_storage.cpp:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1576
    functionDepth: 4
    functionLinenumber: 1576
    functionLinenumberEnd: 1579
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_move_storage_to_self
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(move_default_storage_to_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_move_storage_into_self
      Src: /src/libtorrent/test/test_storage.cpp:1583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1581
    functionDepth: 4
    functionLinenumber: 1581
    functionLinenumberEnd: 1584
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_move_storage_into_self
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(move_default_storage_into_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_move_storage_reset
      Src: /src/libtorrent/test/test_storage.cpp:1588,1
    - Dst: test_move_storage_reset
      Src: /src/libtorrent/test/test_storage.cpp:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1586
    functionDepth: 4
    functionLinenumber: 1586
    functionLinenumberEnd: 1590
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_move_storage_reset
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(move_default_storage_reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_move_storage_to_self
      Src: /src/libtorrent/test/test_storage.cpp:1595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1593
    functionDepth: 4
    functionLinenumber: 1593
    functionLinenumberEnd: 1596
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_move_storage_to_self
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(move_posix_storage_to_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_move_storage_into_self
      Src: /src/libtorrent/test/test_storage.cpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1598
    functionDepth: 4
    functionLinenumber: 1598
    functionLinenumberEnd: 1601
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_move_storage_into_self
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(move_posix_storage_into_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_move_storage_reset
      Src: /src/libtorrent/test/test_storage.cpp:1605,1
    - Dst: test_move_storage_reset
      Src: /src/libtorrent/test/test_storage.cpp:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1603
    functionDepth: 4
    functionLinenumber: 1603
    functionLinenumberEnd: 1607
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_move_storage_reset
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(move_posix_storage_reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1612,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1612,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1613,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1613,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1613,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1614,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1614,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1614,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1615,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1615,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1615,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1618,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_storage.cpp:1618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1609
    functionDepth: 1
    functionLinenumber: 1609
    functionLinenumberEnd: 1619
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::paths
    - TEST_CHECK
    - combine_path
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(storage_paths_string_pooling)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:1624,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1625,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1625,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:1627,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1628,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1628,1
    - Dst: setup_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1635,1
    - Dst: auto::write
      Src: /src/libtorrent/test/test_storage.cpp:1639,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_storage.cpp:1642,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1642,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1642,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1643,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1644,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_storage.cpp:1646,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1646,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1646,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_storage.cpp:1647,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1647,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1647,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1647,1
    - Dst: auto::move_storage
      Src: /src/libtorrent/test/test_storage.cpp:1649,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_storage.cpp:1650,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1653,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1653,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1653,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1653,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1654,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1656,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1656,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1656,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1656,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1657,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1658,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1658,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1658,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1658,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1659,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1662,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1662,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1662,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1662,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1664,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1664,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1664,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1664,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1666,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1666,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1666,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1666,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1667,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1668,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1668,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1668,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1668,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1669,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1670,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1670,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1670,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1670,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1671,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1672,1
    - Dst: exists
      Src: /src/libtorrent/test/test_storage.cpp:1672,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1672,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1672,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1622
    functionDepth: 3
    functionLinenumber: 1622
    functionLinenumberEnd: 1674
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - setup_torrent
    - combine_path
    - auto::move_storage
    - delete_dirs
    - ofstream
    - auto::write
    - create_directory
    - exists
    - complete
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dont_move_intermingled_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one
      Src: /src/libtorrent/test/test_storage.cpp:1683,1
    - Dst: restart
      Src: /src/libtorrent/test/test_storage.cpp:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1686
    functionName: sync
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - restart
    - run_one
    linkageType: ''
    returnType: void
    signature: void sync(lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_storage.cpp:1694,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_storage.cpp:1695,1
    - Dst: constructor
      Src: /src/libtorrent/test/test_storage.cpp:1698,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1701,1
    - Dst: lt::file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1702,1
    - Dst: lt::file_storage::set_piece_length
      Src: /src/libtorrent/test/test_storage.cpp:1703,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:1705,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1706,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1706,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/test/test_storage.cpp:1713,1
    - Dst: std::unique_ptr::new_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1715,1
    - Dst: std::unique_ptr::async_check_files
      Src: /src/libtorrent/test/test_storage.cpp:1719,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1722,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1723,1
    - Dst: fun
      Src: /src/libtorrent/test/test_storage.cpp:1725,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/test/test_storage.cpp:1725,1
    - Dst: lt::storage_holder::reset
      Src: /src/libtorrent/test/test_storage.cpp:1727,1
    - Dst: std::unique_ptr::abort
      Src: /src/libtorrent/test/test_storage.cpp:1728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - constructor
    - fun
    argTypes:
    - lt::disk_io_constructor_type
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1729
    functionName: test_unaligned_read
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::submit_jobs
    - lt::file_storage::set_piece_length
    - std::unique_ptr::abort
    - fun
    - lt::settings_pack::set_int
    - combine_path
    - delete_dirs
    - std::unique_ptr::new_torrent
    - constructor
    - lt::storage_holder::reset
    - bind_sha1_hash
    - lt::file_storage::set_num_pieces
    - std::unique_ptr::async_check_files
    - std::unique_ptr::get
    - lt::file_storage::add_file
    - complete
    - sync
    linkageType: ''
    returnType: void
    signature: void test_unaligned_read(lt::disk_io_constructor_type constructor,
      Fun fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' outstanding'
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1733
    functionName: write_handler
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_handler(int& outstanding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:1737,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - lt::storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1734
    functionDepth: 1
    functionLinenumber: 1734
    functionLinenumberEnd: 1739
    functionName: operator()(lt::storage_error const& ec) const
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - ec::message
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void operator()(lt::storage_error const& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' outstanding'
    - expected
    argTypes:
    - int
    - lt::span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1745
    functionName: read_handler
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void read_handler(int& outstanding, lt::span<char const> expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:1749,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1750,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1751,1
    - Dst: lt::span<char const>
      Src: /src/libtorrent/test/test_storage.cpp:1751,1
    - Dst: lt::disk_buffer_holder::data
      Src: /src/libtorrent/test/test_storage.cpp:1751,1
    - Dst: lt::disk_buffer_holder::size
      Src: /src/libtorrent/test/test_storage.cpp:1751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h
    - ' ec'
    argTypes:
    - lt::disk_buffer_holder
    - lt::storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1752
    functionName: operator()(lt::disk_buffer_holder h, lt::storage_error const& ec)
      const
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - lt::span<char const>
    - lt::disk_buffer_holder::data
    - ec::message
    - lt::disk_buffer_holder::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void operator()(lt::disk_buffer_holder h, lt::storage_error const&
      ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:1760,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1768,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1769,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1772,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1772,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1772,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1774,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1774,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1774,1
    - Dst: lt::disk_interface*::async_read
      Src: /src/libtorrent/test/test_storage.cpp:1776,1
    - Dst: read_handler
      Src: /src/libtorrent/test/test_storage.cpp:1776,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1777,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - disk_io
    - ' t'
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::disk_interface*
    - lt::storage_holder
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1757
    functionDepth: 1
    functionLinenumber: 1757
    functionLinenumberEnd: 1779
    functionName: both_sides_from_store_buffer
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - sync
    - std::vector::begin
    - lt::disk_interface*::submit_jobs
    - write_handler
    - libtorrent::aux::random_bytes
    - lt::disk_interface*::async_read
    - lt::disk_interface*::async_write
    - read_handler
    linkageType: ''
    returnType: void
    signature: void both_sides_from_store_buffer(lt::disk_interface* disk_io, lt::storage_holder
      const& t, lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:1784,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1792,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1793,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1796,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1796,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1796,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1798,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1799,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1802,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1802,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1802,1
    - Dst: lt::disk_interface*::async_read
      Src: /src/libtorrent/test/test_storage.cpp:1804,1
    - Dst: read_handler
      Src: /src/libtorrent/test/test_storage.cpp:1804,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1805,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - disk_io
    - ' t'
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::disk_interface*
    - lt::storage_holder
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1781
    functionDepth: 1
    functionLinenumber: 1781
    functionLinenumberEnd: 1807
    functionName: first_side_from_store_buffer
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - read_handler
    - std::vector::begin
    - lt::disk_interface*::submit_jobs
    - write_handler
    - libtorrent::aux::random_bytes
    - lt::disk_interface*::async_read
    - lt::disk_interface*::async_write
    - sync
    linkageType: ''
    returnType: void
    signature: void first_side_from_store_buffer(lt::disk_interface* disk_io, lt::storage_holder
      const& t, lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:1812,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1820,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1821,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1824,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1824,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1824,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1825,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1826,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1829,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1829,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1829,1
    - Dst: lt::disk_interface*::async_read
      Src: /src/libtorrent/test/test_storage.cpp:1831,1
    - Dst: read_handler
      Src: /src/libtorrent/test/test_storage.cpp:1831,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1832,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - disk_io
    - ' t'
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::disk_interface*
    - lt::storage_holder
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1834
    functionName: second_side_from_store_buffer
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - read_handler
    - std::vector::begin
    - lt::disk_interface*::submit_jobs
    - write_handler
    - libtorrent::aux::random_bytes
    - lt::disk_interface*::async_read
    - lt::disk_interface*::async_write
    - sync
    linkageType: ''
    returnType: void
    signature: void second_side_from_store_buffer(lt::disk_interface* disk_io, lt::storage_holder
      const& t, lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:1839,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1847,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1848,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1851,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1851,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1851,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1853,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1853,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1853,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1854,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1855,1
    - Dst: lt::disk_interface*::async_read
      Src: /src/libtorrent/test/test_storage.cpp:1858,1
    - Dst: read_handler
      Src: /src/libtorrent/test/test_storage.cpp:1858,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1859,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - disk_io
    - ' t'
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::disk_interface*
    - lt::storage_holder
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1836
    functionDepth: 1
    functionLinenumber: 1836
    functionLinenumberEnd: 1861
    functionName: none_from_store_buffer
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - read_handler
    - std::vector::begin
    - lt::disk_interface*::submit_jobs
    - write_handler
    - libtorrent::aux::random_bytes
    - lt::disk_interface*::async_read
    - lt::disk_interface*::async_write
    - sync
    linkageType: ''
    returnType: void
    signature: void none_from_store_buffer(lt::disk_interface* disk_io, lt::storage_holder
      const& t, lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one
      Src: /src/libtorrent/test/test_storage.cpp:1683,1
    - Dst: restart
      Src: /src/libtorrent/test/test_storage.cpp:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1686
    functionName: sync
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 5
    functionsReached:
    - restart
    - run_one
    linkageType: ''
    returnType: void
    signature: void sync(lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_storage.cpp:1694,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_storage.cpp:1695,1
    - Dst: constructor
      Src: /src/libtorrent/test/test_storage.cpp:1698,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_storage.cpp:1701,1
    - Dst: lt::file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_storage.cpp:1702,1
    - Dst: lt::file_storage::set_piece_length
      Src: /src/libtorrent/test/test_storage.cpp:1703,1
    - Dst: complete
      Src: /src/libtorrent/test/test_storage.cpp:1705,1
    - Dst: delete_dirs
      Src: /src/libtorrent/test/test_storage.cpp:1706,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_storage.cpp:1706,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/test/test_storage.cpp:1713,1
    - Dst: std::unique_ptr::new_torrent
      Src: /src/libtorrent/test/test_storage.cpp:1715,1
    - Dst: std::unique_ptr::async_check_files
      Src: /src/libtorrent/test/test_storage.cpp:1719,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1722,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1723,1
    - Dst: fun
      Src: /src/libtorrent/test/test_storage.cpp:1725,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/test/test_storage.cpp:1725,1
    - Dst: lt::storage_holder::reset
      Src: /src/libtorrent/test/test_storage.cpp:1727,1
    - Dst: std::unique_ptr::abort
      Src: /src/libtorrent/test/test_storage.cpp:1728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - constructor
    - fun
    argTypes:
    - lt::disk_io_constructor_type
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1729
    functionName: test_unaligned_read
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::submit_jobs
    - lt::file_storage::set_piece_length
    - std::unique_ptr::abort
    - fun
    - lt::settings_pack::set_int
    - combine_path
    - delete_dirs
    - std::unique_ptr::new_torrent
    - constructor
    - lt::storage_holder::reset
    - bind_sha1_hash
    - lt::file_storage::set_num_pieces
    - std::unique_ptr::async_check_files
    - std::unique_ptr::get
    - lt::file_storage::add_file
    - complete
    - sync
    linkageType: ''
    returnType: void
    signature: void test_unaligned_read(lt::disk_io_constructor_type constructor,
      Fun fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' outstanding'
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1733
    functionName: write_handler
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_handler(int& outstanding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:1737,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - lt::storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1734
    functionDepth: 1
    functionLinenumber: 1734
    functionLinenumberEnd: 1739
    functionName: operator()(lt::storage_error const& ec) const
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - ec::message
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void operator()(lt::storage_error const& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' outstanding'
    - expected
    argTypes:
    - int
    - lt::span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1745
    functionName: read_handler
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void read_handler(int& outstanding, lt::span<char const> expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec::message
      Src: /src/libtorrent/test/test_storage.cpp:1749,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1750,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_storage.cpp:1751,1
    - Dst: lt::span<char const>
      Src: /src/libtorrent/test/test_storage.cpp:1751,1
    - Dst: lt::disk_buffer_holder::data
      Src: /src/libtorrent/test/test_storage.cpp:1751,1
    - Dst: lt::disk_buffer_holder::size
      Src: /src/libtorrent/test/test_storage.cpp:1751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h
    - ' ec'
    argTypes:
    - lt::disk_buffer_holder
    - lt::storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1752
    functionName: operator()(lt::disk_buffer_holder h, lt::storage_error const& ec)
      const
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - lt::span<char const>
    - lt::disk_buffer_holder::data
    - ec::message
    - lt::disk_buffer_holder::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void operator()(lt::disk_buffer_holder h, lt::storage_error const&
      ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:1760,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1768,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1769,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1772,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1772,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1772,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1774,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1774,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1774,1
    - Dst: lt::disk_interface*::async_read
      Src: /src/libtorrent/test/test_storage.cpp:1776,1
    - Dst: read_handler
      Src: /src/libtorrent/test/test_storage.cpp:1776,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1777,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - disk_io
    - ' t'
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::disk_interface*
    - lt::storage_holder
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1757
    functionDepth: 1
    functionLinenumber: 1757
    functionLinenumberEnd: 1779
    functionName: both_sides_from_store_buffer
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - sync
    - std::vector::begin
    - lt::disk_interface*::submit_jobs
    - write_handler
    - libtorrent::aux::random_bytes
    - lt::disk_interface*::async_read
    - lt::disk_interface*::async_write
    - read_handler
    linkageType: ''
    returnType: void
    signature: void both_sides_from_store_buffer(lt::disk_interface* disk_io, lt::storage_holder
      const& t, lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:1784,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1792,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1793,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1796,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1796,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1796,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1798,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1799,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1802,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1802,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1802,1
    - Dst: lt::disk_interface*::async_read
      Src: /src/libtorrent/test/test_storage.cpp:1804,1
    - Dst: read_handler
      Src: /src/libtorrent/test/test_storage.cpp:1804,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1805,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - disk_io
    - ' t'
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::disk_interface*
    - lt::storage_holder
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1781
    functionDepth: 1
    functionLinenumber: 1781
    functionLinenumberEnd: 1807
    functionName: first_side_from_store_buffer
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - read_handler
    - std::vector::begin
    - lt::disk_interface*::submit_jobs
    - write_handler
    - libtorrent::aux::random_bytes
    - lt::disk_interface*::async_read
    - lt::disk_interface*::async_write
    - sync
    linkageType: ''
    returnType: void
    signature: void first_side_from_store_buffer(lt::disk_interface* disk_io, lt::storage_holder
      const& t, lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:1812,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1820,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1821,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1824,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1824,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1824,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1825,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1826,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1829,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1829,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1829,1
    - Dst: lt::disk_interface*::async_read
      Src: /src/libtorrent/test/test_storage.cpp:1831,1
    - Dst: read_handler
      Src: /src/libtorrent/test/test_storage.cpp:1831,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1832,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - disk_io
    - ' t'
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::disk_interface*
    - lt::storage_holder
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1834
    functionName: second_side_from_store_buffer
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - read_handler
    - std::vector::begin
    - lt::disk_interface*::submit_jobs
    - write_handler
    - libtorrent::aux::random_bytes
    - lt::disk_interface*::async_read
    - lt::disk_interface*::async_write
    - sync
    linkageType: ''
    returnType: void
    signature: void second_side_from_store_buffer(lt::disk_interface* disk_io, lt::storage_holder
      const& t, lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_storage.cpp:1839,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1847,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_storage.cpp:1848,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1851,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1851,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1851,1
    - Dst: lt::disk_interface*::async_write
      Src: /src/libtorrent/test/test_storage.cpp:1853,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_storage.cpp:1853,1
    - Dst: write_handler
      Src: /src/libtorrent/test/test_storage.cpp:1853,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1854,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1855,1
    - Dst: lt::disk_interface*::async_read
      Src: /src/libtorrent/test/test_storage.cpp:1858,1
    - Dst: read_handler
      Src: /src/libtorrent/test/test_storage.cpp:1858,1
    - Dst: lt::disk_interface*::submit_jobs
      Src: /src/libtorrent/test/test_storage.cpp:1859,1
    - Dst: sync
      Src: /src/libtorrent/test/test_storage.cpp:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - disk_io
    - ' t'
    - ' ioc'
    - ' outstanding'
    argTypes:
    - lt::disk_interface*
    - lt::storage_holder
    - lt::io_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1836
    functionDepth: 1
    functionLinenumber: 1836
    functionLinenumberEnd: 1861
    functionName: none_from_store_buffer
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - read_handler
    - std::vector::begin
    - lt::disk_interface*::submit_jobs
    - write_handler
    - libtorrent::aux::random_bytes
    - lt::disk_interface*::async_read
    - lt::disk_interface*::async_write
    - sync
    linkageType: ''
    returnType: void
    signature: void none_from_store_buffer(lt::disk_interface* disk_io, lt::storage_holder
      const& t, lt::io_context& ioc, int& outstanding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_unaligned_read
      Src: /src/libtorrent/test/test_storage.cpp:1868,1
    - Dst: test_unaligned_read
      Src: /src/libtorrent/test/test_storage.cpp:1869,1
    - Dst: test_unaligned_read
      Src: /src/libtorrent/test/test_storage.cpp:1870,1
    - Dst: test_unaligned_read
      Src: /src/libtorrent/test/test_storage.cpp:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1866
    functionDepth: 3
    functionLinenumber: 1866
    functionLinenumberEnd: 1872
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_unaligned_read
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mmap_unaligned_read_both_store_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_unaligned_read
      Src: /src/libtorrent/test/test_storage.cpp:1877,1
    - Dst: test_unaligned_read
      Src: /src/libtorrent/test/test_storage.cpp:1878,1
    - Dst: test_unaligned_read
      Src: /src/libtorrent/test/test_storage.cpp:1879,1
    - Dst: test_unaligned_read
      Src: /src/libtorrent/test/test_storage.cpp:1880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1875
    functionDepth: 3
    functionLinenumber: 1875
    functionLinenumberEnd: 1881
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_storage.cpp
    functionUses: 0
    functionsReached:
    - test_unaligned_read
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(posix_unaligned_read_both_store_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:47,1
    - Dst: address_to_bytes
      Src: /src/libtorrent/test/test_socket_io.cpp:47,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_socket_io.cpp:47,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:48,1
    - Dst: address_to_bytes
      Src: /src/libtorrent/test/test_socket_io.cpp:48,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_socket_io.cpp:48,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:51,1
    - Dst: endpoint_to_bytes
      Src: /src/libtorrent/test/test_socket_io.cpp:51,1
    - Dst: uep
      Src: /src/libtorrent/test/test_socket_io.cpp:51,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:52,1
    - Dst: endpoint_to_bytes
      Src: /src/libtorrent/test/test_socket_io.cpp:52,1
    - Dst: uep
      Src: /src/libtorrent/test/test_socket_io.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_socket_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - address_to_bytes
    - endpoint_to_bytes
    - addr4
    - uep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(address_to_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_address
      Src: /src/libtorrent/test/test_socket_io.cpp:58,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_socket_io.cpp:58,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_socket_io.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:59,1
    - Dst: read_v4_address
      Src: /src/libtorrent/test/test_socket_io.cpp:60,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_socket_io.cpp:60,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:61,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_socket_io.cpp:61,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:63,1
    - Dst: write_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:64,1
    - Dst: uep
      Src: /src/libtorrent/test/test_socket_io.cpp:64,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_socket_io.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:66,1
    - Dst: read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/test/test_socket_io.cpp:67,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_socket_io.cpp:67,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:68,1
    - Dst: uep
      Src: /src/libtorrent/test/test_socket_io.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_socket_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - write_address
    - read_v4_address
    - write_endpoint
    - read_v4_endpoint<udp::endpoint>
    - std::string::begin
    - std::string::clear
    - std::back_inserter
    - addr4
    - uep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_v4_address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_address
      Src: /src/libtorrent/test/test_socket_io.cpp:74,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_socket_io.cpp:74,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_socket_io.cpp:74,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:75,1
    - Dst: equal
      Src: /src/libtorrent/test/test_socket_io.cpp:75,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_socket_io.cpp:75,1
    - Dst: std::string::end
      Src: /src/libtorrent/test/test_socket_io.cpp:75,1
    - Dst: read_v6_address
      Src: /src/libtorrent/test/test_socket_io.cpp:76,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_socket_io.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:77,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_socket_io.cpp:77,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:79,1
    - Dst: write_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:80,1
    - Dst: uep
      Src: /src/libtorrent/test/test_socket_io.cpp:80,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_socket_io.cpp:81,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:82,1
    - Dst: equal
      Src: /src/libtorrent/test/test_socket_io.cpp:82,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_socket_io.cpp:82,1
    - Dst: std::string::end
      Src: /src/libtorrent/test/test_socket_io.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:84,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_socket_io.cpp:84,1
    - Dst: read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/test/test_socket_io.cpp:85,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_socket_io.cpp:85,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:86,1
    - Dst: uep
      Src: /src/libtorrent/test/test_socket_io.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_socket_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - addr6
    - write_address
    - read_v6_endpoint<udp::endpoint>
    - write_endpoint
    - std::string::begin
    - std::string::end
    - read_v6_address
    - equal
    - std::string::clear
    - std::string::size
    - std::back_inserter
    - TEST_CHECK
    - uep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_v6_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_socket_io.cpp:95,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:96,1
    - Dst: read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/test/test_socket_io.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:99,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_socket_io.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:100,1
    - Dst: uep
      Src: /src/libtorrent/test/test_socket_io.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:101,1
    - Dst: uep
      Src: /src/libtorrent/test/test_socket_io.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_socket_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - read_endpoint_list<udp::endpoint>
    - bdecode
    - TEST_CHECK
    - uep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_endpoint_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:109,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:110,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:111,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:113,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:114,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:115,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:118,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:119,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:121,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:122,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:123,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:125,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:126,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:127,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:130,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:131,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:134,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:135,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:140,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:141,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:145,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:146,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:149,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 151
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_socket_io.cpp
    functionUses: 0
    functionsReached:
    - error_code::clear
    - parse_endpoint
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_invalid_ipv4_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:156,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:156,1
    - Dst: ep
      Src: /src/libtorrent/test/test_socket_io.cpp:156,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:157,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:158,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:160,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:160,1
    - Dst: ep
      Src: /src/libtorrent/test/test_socket_io.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:161,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:162,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:164,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:164,1
    - Dst: ep
      Src: /src/libtorrent/test/test_socket_io.cpp:164,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:165,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_socket_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - ep
    - error_code::clear
    - parse_endpoint
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_valid_ip4_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:175,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:176,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:178,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:179,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:180,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:182,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:183,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:184,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:187,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:188,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:191,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:192,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:195,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_socket_io.cpp:195,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:196,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:198,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:199,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:200,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:202,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:203,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_socket_io.cpp:203,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 205
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_socket_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - error_code::clear
    - parse_endpoint
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_invalid_ipv6_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:210,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:210,1
    - Dst: ep
      Src: /src/libtorrent/test/test_socket_io.cpp:210,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:211,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:212,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_socket_io.cpp:214,1
    - Dst: parse_endpoint
      Src: /src/libtorrent/test/test_socket_io.cpp:214,1
    - Dst: ep
      Src: /src/libtorrent/test/test_socket_io.cpp:214,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_socket_io.cpp:215,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_socket_io.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 217
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_socket_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - ep
    - error_code::clear
    - parse_endpoint
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_valid_ipv6_endpoint)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_xml.cpp:324,1
    - Dst: append
      Src: /src/libtorrent/test/test_xml.cpp:326,1
    - Dst: string_view::begin
      Src: /src/libtorrent/test/test_xml.cpp:326,1
    - Dst: string_view::end
      Src: /src/libtorrent/test/test_xml.cpp:326,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_xml.cpp:329,1
    - Dst: string_view::empty
      Src: /src/libtorrent/test/test_xml.cpp:329,1
    - Dst: append
      Src: /src/libtorrent/test/test_xml.cpp:331,1
    - Dst: string_view::begin
      Src: /src/libtorrent/test/test_xml.cpp:331,1
    - Dst: string_view::end
      Src: /src/libtorrent/test/test_xml.cpp:331,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_xml.cpp:335,1
    - Dst: string_view::empty
      Src: /src/libtorrent/test/test_xml.cpp:335,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - ' out'
    - token
    - s
    - val
    argTypes:
    - std::string
    - int
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 337
    functionName: parser_callback
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - string_view::end
    - append
    - string_view::empty
    - string_view::begin
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void parser_callback(std::string& out, int token, string_view s\n\t,
      string_view val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml_parse
      Src: /src/libtorrent/test/test_xml.cpp:342,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_xml.cpp:342,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_xml.cpp:343,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_xml.cpp:344,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_xml.cpp:345,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - in
    - expected
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: test_parse
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - TEST_EQUAL
    - std::string::c_str
    - std::ref
    - xml_parse
    - std::printf
    linkageType: ''
    returnType: void
    signature: void test_parse(char const* in, char const* expected)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_xml.cpp:324,1
    - Dst: append
      Src: /src/libtorrent/test/test_xml.cpp:326,1
    - Dst: string_view::begin
      Src: /src/libtorrent/test/test_xml.cpp:326,1
    - Dst: string_view::end
      Src: /src/libtorrent/test/test_xml.cpp:326,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_xml.cpp:329,1
    - Dst: string_view::empty
      Src: /src/libtorrent/test/test_xml.cpp:329,1
    - Dst: append
      Src: /src/libtorrent/test/test_xml.cpp:331,1
    - Dst: string_view::begin
      Src: /src/libtorrent/test/test_xml.cpp:331,1
    - Dst: string_view::end
      Src: /src/libtorrent/test/test_xml.cpp:331,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_xml.cpp:335,1
    - Dst: string_view::empty
      Src: /src/libtorrent/test/test_xml.cpp:335,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - ' out'
    - token
    - s
    - val
    argTypes:
    - std::string
    - int
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 337
    functionName: parser_callback
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - string_view::end
    - append
    - string_view::empty
    - string_view::begin
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void parser_callback(std::string& out, int token, string_view s\n\t,
      string_view val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml_parse
      Src: /src/libtorrent/test/test_xml.cpp:342,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_xml.cpp:342,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_xml.cpp:343,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_xml.cpp:344,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_xml.cpp:345,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - in
    - expected
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: test_parse
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - TEST_EQUAL
    - std::string::c_str
    - std::ref
    - xml_parse
    - std::printf
    linkageType: ''
    returnType: void
    signature: void test_parse(char const* in, char const* expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml_parse
      Src: /src/libtorrent/test/test_xml.cpp:354,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_xml.cpp:354,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_xml.cpp:354,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:360,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:361,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:362,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 364
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::bind
    - xml_parse
    - std::ref
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_parser1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml_parse
      Src: /src/libtorrent/test/test_xml.cpp:369,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_xml.cpp:369,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_xml.cpp:369,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:375,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:376,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:377,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 379
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::bind
    - xml_parse
    - std::ref
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_parser2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml_parse
      Src: /src/libtorrent/test/test_xml.cpp:384,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_xml.cpp:384,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_xml.cpp:384,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::bind
    - xml_parse
    - std::ref
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_parser3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml_parse
      Src: /src/libtorrent/test/test_xml.cpp:393,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_xml.cpp:393,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_xml.cpp:393,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:397,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::bind
    - xml_parse
    - std::ref
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_parser4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml_parse
      Src: /src/libtorrent/test/test_xml.cpp:404,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_xml.cpp:404,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_xml.cpp:404,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:410,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:411,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_xml.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 413
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::bind
    - xml_parse
    - std::ref
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_parser5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(xml_tag_comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty_tag_whitespace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(xml_tag_no_attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(xml_tag_no_attribute_whitespace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(attribute_missing_quote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(attribute_whitespace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unterminated_cdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unterminated_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unquoted_attribute_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unterminated_attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse
      Src: /src/libtorrent/test/test_xml.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_xml.cpp
    functionUses: 0
    functionsReached:
    - test_parse
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unterminated_tag_with_attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_ffs.cpp:44,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/test/test_ffs.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - char*
    - std::uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: to_binary
    functionSourceFile: /src/libtorrent/test/test_ffs.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    - libtorrent::aux::from_hex
    linkageType: ''
    returnType: void
    signature: void to_binary(char const* s, std::uint32_t* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ffs.cpp:76,1
    - Dst: to_binary
      Src: /src/libtorrent/test/test_ffs.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:79,1
    - Dst: libtorrent::aux::count_leading_zeros_sw
      Src: /src/libtorrent/test/test_ffs.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:81,1
    - Dst: libtorrent::aux::count_leading_zeros_hw
      Src: /src/libtorrent/test/test_ffs.cpp:81,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:83,1
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/test/test_ffs.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 85
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ffs.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::count_leading_zeros_hw
    - TEST_EQUAL
    - libtorrent::aux::count_leading_zeros_sw
    - libtorrent::aux::count_leading_zeros
    - std::printf
    - to_binary
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(count_leading_zeros)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:90,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/test/test_ffs.cpp:90,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:92,1
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/test/test_ffs.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:94,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/test/test_ffs.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:97,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/test/test_ffs.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:99,1
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/test/test_ffs.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:101,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/test/test_ffs.cpp:101,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/test/test_ffs.cpp:103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:104,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/test/test_ffs.cpp:104,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:106,1
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/test/test_ffs.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:108,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/test/test_ffs.cpp:108,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/test/test_ffs.cpp:110,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:111,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/test/test_ffs.cpp:111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:113,1
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/test/test_ffs.cpp:113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:115,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/test/test_ffs.cpp:115,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/test/test_ffs.cpp:117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:118,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/test/test_ffs.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:120,1
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/test/test_ffs.cpp:120,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:122,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/test/test_ffs.cpp:122,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/test/test_ffs.cpp:124,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:125,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/test/test_ffs.cpp:125,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:127,1
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/test/test_ffs.cpp:127,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:129,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/test/test_ffs.cpp:129,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/test/test_ffs.cpp:132,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:134,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/test/test_ffs.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:136,1
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/test/test_ffs.cpp:136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ffs.cpp:138,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/test/test_ffs.cpp:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 139
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ffs.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::count_trailing_ones_hw
    - TEST_EQUAL
    - libtorrent::aux::host_to_network
    - libtorrent::aux::count_trailing_ones_sw
    - libtorrent::aux::count_trailing_ones
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(count_trailing_ones_u32)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:78,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:81,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:81,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:82,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:82,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:87,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:88,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:89,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_tracker.cpp:89,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:91,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:93,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_tracker.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 95
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_tracker_response
    - tracker_response::peers::size
    - error_code
    - peer_id
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_hostname_peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:102,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:105,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:106,1
    - Dst: tracker_response::peers4::size
      Src: /src/libtorrent/test/test_tracker.cpp:106,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:111,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_tracker.cpp:111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:112,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:114,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_tracker.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 117
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_tracker_response
    - error_code
    - tracker_response::peers::size
    - tracker_response::peers4::size
    - sha1_hash
    - addr4
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_peers4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:166,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_tracker.cpp:167,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:170,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:170,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:171,1
    - Dst: tracker_response::i2p_peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:171,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:175,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 180
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_tracker_response
    - error_code
    - tracker_response::peers::size
    - tracker_response::i2p_peers::size
    - reinterpret_cast<char const*>
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_i2p_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:187,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:188,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:190,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:190,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:191,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:191,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:192,1
    - Dst: tracker_response::peers4::size
      Src: /src/libtorrent/test/test_tracker.cpp:192,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:193,1
    - Dst: tracker_response::interval::count
      Src: /src/libtorrent/test/test_tracker.cpp:193,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:194,1
    - Dst: tracker_response::min_interval::count
      Src: /src/libtorrent/test/test_tracker.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - tracker_response::interval::count
    - parse_tracker_response
    - tracker_response::peers::size
    - error_code
    - tracker_response::min_interval::count
    - tracker_response::peers4::size
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:201,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:202,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:204,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:204,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:205,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:205,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_tracker_response
    - tracker_response::peers::size
    - error_code
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_warning)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:213,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:214,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:216,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:217,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:217,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 219
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sha1_hash
    - parse_tracker_response
    - tracker_response::peers::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_failure_reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:226,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:227,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:229,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:229,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:230,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:231,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:232,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 234
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sha1_hash
    - parse_tracker_response
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_scrape_response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:241,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:244,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:244,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:245,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:246,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:247,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sha1_hash
    - parse_tracker_response
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_scrape_response_with_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:255,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:256,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:258,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:258,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:259,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:259,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:260,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_tracker.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_tracker_response
    - tracker_response::peers::size
    - error_code
    - sha1_hash
    - addr4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_external_ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/test/test_tracker.cpp:268,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_tracker.cpp:269,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:271,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:271,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:272,1
    - Dst: tracker_response::peers::size
      Src: /src/libtorrent/test/test_tracker.cpp:272,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:273,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_tracker.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - addr6
    - parse_tracker_response
    - tracker_response::peers::size
    - error_code
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_external_ip6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_tracker.cpp:282,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_tracker.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:284,1
    - Dst: extract_peer_info
      Src: /src/libtorrent/test/test_tracker.cpp:285,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:286,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - peer_field
    - expected_ec
    - expected_ret
    argTypes:
    - char*
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: extract_peer
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - extract_peer_info
    - strlen
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: peer_entry
    signature: peer_entry extract_peer(char const* peer_field, error_code expected_ec,
      bool expected_ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_tracker.cpp:282,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_tracker.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:284,1
    - Dst: extract_peer_info
      Src: /src/libtorrent/test/test_tracker.cpp:285,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:286,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - peer_field
    - expected_ec
    - expected_ret
    argTypes:
    - char*
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: extract_peer
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - extract_peer_info
    - strlen
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: peer_entry
    signature: peer_entry extract_peer(char const* peer_field, error_code expected_ec,
      bool expected_ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract_peer
      Src: /src/libtorrent/test/test_tracker.cpp:294,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:295,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:296,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:297,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_tracker.cpp:297,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - extract_peer
    - peer_id
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(extract_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract_peer
      Src: /src/libtorrent/test/test_tracker.cpp:303,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_tracker.cpp:304,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:305,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:306,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_tracker.cpp:306,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 308
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - extract_peer
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(extract_peer_hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract_peer
      Src: /src/libtorrent/test/test_tracker.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - extract_peer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(extract_peer_not_a_dictionary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract_peer
      Src: /src/libtorrent/test/test_tracker.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - extract_peer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(extract_peer_missing_ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract_peer
      Src: /src/libtorrent/test/test_tracker.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - extract_peer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(extract_peer_missing_port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_connect_alert>
      Src: /src/libtorrent/test/test_tracker.cpp:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - ' ep'
    argTypes:
    - lt::alert*
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: connect_alert
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_connect_alert>
    linkageType: ''
    returnType: bool
    signature: bool connect_alert(lt::alert const* a, tcp::endpoint& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_udp_tracker
      Src: /src/libtorrent/test/test_tracker.cpp:347,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:349,1
    - Dst: settings
      Src: /src/libtorrent/test/test_tracker.cpp:351,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:352,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:353,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:354,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_tracker.cpp:356,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_tracker.cpp:359,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_tracker.cpp:360,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_tracker.cpp:361,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:362,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_tracker.cpp:363,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_tracker.cpp:367,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_tracker.cpp:367,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_tracker.cpp:368,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:375,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_tracker.cpp:380,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_tracker.cpp:380,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_tracker.cpp:380,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:382,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_tracker.cpp:385,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_tracker.cpp:385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:389,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:389,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_tracker.cpp:393,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_tracker.cpp:393,1
    - Dst: auto::remove_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:395,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_tracker.cpp:399,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_tracker.cpp:399,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_tracker.cpp:399,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:400,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_tracker.cpp:403,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_tracker.cpp:403,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:406,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/test/test_tracker.cpp:407,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/test/test_tracker.cpp:408,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:409,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:410,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_tracker.cpp:412,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:413,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:416,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:416,1
    - Dst: stop_udp_tracker
      Src: /src/libtorrent/test/test_tracker.cpp:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - ' iface'
    - tracker
    - ' expected_peer'
    argTypes:
    - std::string
    - address
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 419
    functionName: test_udp_tracker
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - num_udp_announces
    - stop_udp_tracker
    - ofstream::close
    - print_alerts
    - settings_pack::set_bool
    - std::printf
    - TEST_EQUAL
    - std::snprintf
    - libtorrent::total_milliseconds
    - create_directory
    - TEST_CHECK
    - std::bind
    - auto::remove_torrent
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - add_torrent_params::trackers::push_back
    - combine_path
    - c_str
    - auto::add_torrent
    - auto::reset
    - libtorrent::print_endpoint
    - std::make_unique<lt::session>
    - std::ref
    - settings
    - settings_pack::set_int
    - start_udp_tracker
    linkageType: ''
    returnType: void
    signature: void test_udp_tracker(std::string const& iface, address tracker, tcp::endpoint
      const& expected_peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_connect_alert>
      Src: /src/libtorrent/test/test_tracker.cpp:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - ' ep'
    argTypes:
    - lt::alert*
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: connect_alert
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_connect_alert>
    linkageType: ''
    returnType: bool
    signature: bool connect_alert(lt::alert const* a, tcp::endpoint& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_udp_tracker
      Src: /src/libtorrent/test/test_tracker.cpp:347,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:349,1
    - Dst: settings
      Src: /src/libtorrent/test/test_tracker.cpp:351,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:352,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:353,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:354,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_tracker.cpp:356,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_tracker.cpp:359,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_tracker.cpp:360,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_tracker.cpp:361,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:362,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_tracker.cpp:363,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_tracker.cpp:367,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_tracker.cpp:367,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_tracker.cpp:368,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:375,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_tracker.cpp:380,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_tracker.cpp:380,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_tracker.cpp:380,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:382,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_tracker.cpp:385,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_tracker.cpp:385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:389,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:389,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_tracker.cpp:393,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_tracker.cpp:393,1
    - Dst: auto::remove_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:395,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_tracker.cpp:399,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_tracker.cpp:399,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_tracker.cpp:399,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:400,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_tracker.cpp:403,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_tracker.cpp:403,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:406,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/test/test_tracker.cpp:407,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/test/test_tracker.cpp:408,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:409,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:410,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_tracker.cpp:412,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:413,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:416,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_tracker.cpp:416,1
    - Dst: stop_udp_tracker
      Src: /src/libtorrent/test/test_tracker.cpp:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - ' iface'
    - tracker
    - ' expected_peer'
    argTypes:
    - std::string
    - address
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 419
    functionName: test_udp_tracker
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - num_udp_announces
    - stop_udp_tracker
    - ofstream::close
    - print_alerts
    - settings_pack::set_bool
    - std::printf
    - TEST_EQUAL
    - std::snprintf
    - libtorrent::total_milliseconds
    - create_directory
    - TEST_CHECK
    - std::bind
    - auto::remove_torrent
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - add_torrent_params::trackers::push_back
    - combine_path
    - c_str
    - auto::add_torrent
    - auto::reset
    - libtorrent::print_endpoint
    - std::make_unique<lt::session>
    - std::ref
    - settings
    - settings_pack::set_int
    - start_udp_tracker
    linkageType: ''
    returnType: void
    signature: void test_udp_tracker(std::string const& iface, address tracker, tcp::endpoint
      const& expected_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_udp_tracker
      Src: /src/libtorrent/test/test_tracker.cpp:429,1
    - Dst: address_v4::any
      Src: /src/libtorrent/test/test_tracker.cpp:429,1
    - Dst: ep
      Src: /src/libtorrent/test/test_tracker.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - address_v4::any
    - test_udp_tracker
    - ep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(udp_tracker_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_tracker.cpp:434,1
    - Dst: test_udp_tracker
      Src: /src/libtorrent/test/test_tracker.cpp:439,1
    - Dst: address_v6::any
      Src: /src/libtorrent/test/test_tracker.cpp:439,1
    - Dst: ep
      Src: /src/libtorrent/test/test_tracker.cpp:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - ep
    - supports_ipv6
    - test_udp_tracker
    - address_v6::any
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(udp_tracker_v6)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_tracker.cpp:445,1
    - Dst: settings
      Src: /src/libtorrent/test/test_tracker.cpp:447,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:448,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:449,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:450,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:451,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_tracker.cpp:452,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_tracker.cpp:452,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_tracker.cpp:454,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_tracker.cpp:457,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_tracker.cpp:458,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_tracker.cpp:459,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:460,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_tracker.cpp:461,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_tracker.cpp:465,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_tracker.cpp:467,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:474,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_tracker.cpp:476,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:477,1
    - Dst: lt::torrent_status::current_tracker::empty
      Src: /src/libtorrent/test/test_tracker.cpp:477,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:480,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_tracker.cpp:482,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:483,1
    - Dst: lt::torrent_status::current_tracker::empty
      Src: /src/libtorrent/test/test_tracker.cpp:483,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:484,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_tracker.cpp:488,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:489,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:491,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_tracker.cpp:492,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:493,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_tracker.cpp:497,1
    - Dst: ep
      Src: /src/libtorrent/test/test_tracker.cpp:497,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_tracker.cpp:498,1
    - Dst: ep
      Src: /src/libtorrent/test/test_tracker.cpp:498,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_tracker.cpp:499,1
    - Dst: ep
      Src: /src/libtorrent/test/test_tracker.cpp:499,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:502,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_tracker.cpp:502,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:506,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_tracker.cpp:507,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:508,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:510,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_tracker.cpp:511,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 513
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - lt::torrent_status::current_tracker::empty
    - test_listen_interface
    - torrent_handle::status
    - ofstream::close
    - torrent_handle::save_resume_data
    - settings_pack::set_bool
    - stop_web_server
    - std::printf
    - TEST_EQUAL
    - std::snprintf
    - create_directory
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - add_torrent_params::trackers::push_back
    - combine_path
    - auto::add_torrent
    - alert_cast<save_resume_data_alert>
    - auto::reset
    - start_web_server
    - std::make_unique<lt::session>
    - ep
    - wait_for_alert
    - std::set::count
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - std::set::insert
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_tracker.cpp:520,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:521,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:522,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:523,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:524,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_tracker.cpp:525,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_tracker.cpp:525,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_tracker.cpp:527,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_tracker.cpp:530,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_tracker.cpp:531,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_tracker.cpp:532,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:533,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_tracker.cpp:534,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_tracker.cpp:538,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_tracker.cpp:540,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:547,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_tracker.cpp:549,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:550,1
    - Dst: lt::torrent_status::current_tracker::empty
      Src: /src/libtorrent/test/test_tracker.cpp:550,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:553,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_tracker.cpp:555,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:556,1
    - Dst: lt::torrent_status::current_tracker::empty
      Src: /src/libtorrent/test/test_tracker.cpp:556,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:559,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_tracker.cpp:561,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:562,1
    - Dst: lt::torrent_status::current_tracker::empty
      Src: /src/libtorrent/test/test_tracker.cpp:562,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:564,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_tracker.cpp:565,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 567
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - lt::torrent_status::current_tracker::empty
    - test_listen_interface
    - torrent_handle::status
    - ofstream::close
    - settings_pack::set_bool
    - std::printf
    - std::snprintf
    - create_directory
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - add_torrent_params::trackers::push_back
    - combine_path
    - auto::add_torrent
    - auto::reset
    - std::make_unique<lt::session>
    - wait_for_alert
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(current_tracker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_tracker.cpp:573,1
    - Dst: settings
      Src: /src/libtorrent/test/test_tracker.cpp:575,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:576,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:577,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:578,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:579,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_tracker.cpp:580,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_tracker.cpp:580,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_tracker.cpp:582,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:583,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:584,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:585,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_tracker.cpp:587,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_tracker.cpp:590,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_tracker.cpp:591,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_tracker.cpp:592,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:593,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_tracker.cpp:594,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_tracker.cpp:599,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_tracker.cpp:601,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:608,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:611,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:614,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:618,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:621,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_tracker.cpp:622,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:623,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:625,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_tracker.cpp:626,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - proxy_trackers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 628
    functionName: test_proxy
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_listen_interface
    - ofstream::close
    - settings_pack::set_bool
    - stop_web_server
    - std::printf
    - std::snprintf
    - create_directory
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - add_torrent_params::trackers::push_back
    - combine_path
    - auto::add_torrent
    - auto::reset
    - start_web_server
    - std::make_unique<lt::session>
    - wait_for_alert
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void test_proxy(bool proxy_trackers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_tracker.cpp:573,1
    - Dst: settings
      Src: /src/libtorrent/test/test_tracker.cpp:575,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:576,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:577,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:578,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:579,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_tracker.cpp:580,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_tracker.cpp:580,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_tracker.cpp:582,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:583,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:584,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:585,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_tracker.cpp:587,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_tracker.cpp:590,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_tracker.cpp:591,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_tracker.cpp:592,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:593,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_tracker.cpp:594,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_tracker.cpp:599,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_tracker.cpp:601,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:608,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:611,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:614,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tracker.cpp:618,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:621,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_tracker.cpp:622,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:623,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:625,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_tracker.cpp:626,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - proxy_trackers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 628
    functionName: test_proxy
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_listen_interface
    - ofstream::close
    - settings_pack::set_bool
    - stop_web_server
    - std::printf
    - std::snprintf
    - create_directory
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - add_torrent_params::trackers::push_back
    - combine_path
    - auto::add_torrent
    - auto::reset
    - start_web_server
    - std::make_unique<lt::session>
    - wait_for_alert
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void test_proxy(bool proxy_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:634,1
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_tracker.cpp:635,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:637,1
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_tracker.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 640
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_proxy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_tracker.cpp:649,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_tracker.cpp:655,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_tracker.cpp:655,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_tracker.cpp:658,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:661,1
    - Dst: pop_alerts
      Src: /src/libtorrent/test/test_tracker.cpp:663,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:666,1
    - Dst: what
      Src: /src/libtorrent/test/test_tracker.cpp:666,1
    - Dst: message
      Src: /src/libtorrent/test/test_tracker.cpp:666,1
    - Dst: type
      Src: /src/libtorrent/test/test_tracker.cpp:667,1
    - Dst: message
      Src: /src/libtorrent/test/test_tracker.cpp:669,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_tracker.cpp:670,1
    - Dst: settings
      Src: /src/libtorrent/test/test_tracker.cpp:682,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:683,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:684,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_tracker.cpp:685,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:686,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_tracker.cpp:691,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_tracker.cpp:692,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_tracker.cpp:693,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:694,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_tracker.cpp:695,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:703,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_tracker.cpp:706,1
    - Dst: torrent_handle::add_tracker
      Src: /src/libtorrent/test/test_tracker.cpp:708,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:713,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:715,1
    - Dst: count_stopped_events
      Src: /src/libtorrent/test/test_tracker.cpp:717,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:718,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 719
    functionName: test_stop_tracker_timeout
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - seconds
    - ofstream::close
    - message
    - type
    - settings_pack::set_bool
    - std::printf
    - time_now
    - TEST_EQUAL
    - torrent_handle::add_tracker
    - std::snprintf
    - create_directory
    - lt::session::add_torrent
    - lt::session::remove_torrent
    - count_stopped_events
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - start_web_server
    - wait_for_alert
    - settings_pack::set_str
    - std::string::find
    - settings
    - settings_pack::set_int
    - what
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void test_stop_tracker_timeout(int const timeout)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_tracker.cpp:649,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_tracker.cpp:655,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_tracker.cpp:655,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_tracker.cpp:658,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:661,1
    - Dst: pop_alerts
      Src: /src/libtorrent/test/test_tracker.cpp:663,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:666,1
    - Dst: what
      Src: /src/libtorrent/test/test_tracker.cpp:666,1
    - Dst: message
      Src: /src/libtorrent/test/test_tracker.cpp:666,1
    - Dst: type
      Src: /src/libtorrent/test/test_tracker.cpp:667,1
    - Dst: message
      Src: /src/libtorrent/test/test_tracker.cpp:669,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_tracker.cpp:670,1
    - Dst: settings
      Src: /src/libtorrent/test/test_tracker.cpp:682,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:683,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_tracker.cpp:684,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_tracker.cpp:685,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_tracker.cpp:686,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_tracker.cpp:691,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_tracker.cpp:692,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_tracker.cpp:693,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:694,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_tracker.cpp:695,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:703,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_tracker.cpp:706,1
    - Dst: torrent_handle::add_tracker
      Src: /src/libtorrent/test/test_tracker.cpp:708,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_tracker.cpp:713,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_tracker.cpp:715,1
    - Dst: count_stopped_events
      Src: /src/libtorrent/test/test_tracker.cpp:717,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tracker.cpp:718,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 719
    functionName: test_stop_tracker_timeout
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - seconds
    - ofstream::close
    - message
    - type
    - settings_pack::set_bool
    - std::printf
    - time_now
    - TEST_EQUAL
    - torrent_handle::add_tracker
    - std::snprintf
    - create_directory
    - lt::session::add_torrent
    - lt::session::remove_torrent
    - count_stopped_events
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - start_web_server
    - wait_for_alert
    - settings_pack::set_str
    - std::string::find
    - settings
    - settings_pack::set_int
    - what
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void test_stop_tracker_timeout(int const timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:724,1
    - Dst: test_stop_tracker_timeout
      Src: /src/libtorrent/test/test_tracker.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 726
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_stop_tracker_timeout
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stop_tracker_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_tracker.cpp:730,1
    - Dst: test_stop_tracker_timeout
      Src: /src/libtorrent/test/test_tracker.cpp:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 732
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_stop_tracker_timeout
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stop_tracker_timeout_zero_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' c'
    - first
    - count
    argTypes:
    - std::vector<sha256_hash>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: range
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 7
    functionsReached:
    - s
    linkageType: ''
    returnType: span<sha256_hash const>
    signature: span<sha256_hash const> range(std::vector<sha256_hash> const& c, int
      first, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: rand_sha256
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash rand_sha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_merkle_tree.cpp:76,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:76,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - target
    argTypes:
    - span<sha256_hash const>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: build_proof
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - merkle_get_parent
    - std::vector::push_back
    - merkle_get_sibling
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> build_proof(span<sha256_hash const> tree,
      int target, int end = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/test/test_merkle_tree.cpp:85,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:85,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:85,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_merkle_tree.cpp:86,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/test/test_merkle_tree.cpp:86,1
    - Dst: span<sha256_hash const>::end
      Src: /src/libtorrent/test/test_merkle_tree.cpp:86,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_merkle_tree.cpp:86,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hashes
    argTypes:
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: corrupt
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - span<sha256_hash const>::size
    - span<sha256_hash const>::end
    - std::vector::reserve
    - std::copy
    - std::size_t
    - std::back_inserter
    - span<sha256_hash const>::begin
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> corrupt(span<sha256_hash const> hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<bool>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:93,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: all_set
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - std::vector<bool>
    - std::size_t
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> all_set(int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<bool>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:98,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: none_set
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - std::vector<bool>
    - std::size_t
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> none_set(int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_merkle_tree.cpp:105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_merkle_tree.cpp:106,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:106,1
    - Dst: std::vector<bool>::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:106,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - bits
    - start
    - count
    argTypes:
    - std::vector<bool>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: set_range
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::vector<bool>::size
    - std::size_t
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> set_range(std::vector<bool> bits, int start, int
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' c'
    - first
    - count
    argTypes:
    - std::vector<sha256_hash>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: range
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 7
    functionsReached:
    - s
    linkageType: ''
    returnType: span<sha256_hash const>
    signature: span<sha256_hash const> range(std::vector<sha256_hash> const& c, int
      first, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: rand_sha256
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash rand_sha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_merkle_tree.cpp:76,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:76,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - target
    argTypes:
    - span<sha256_hash const>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: build_proof
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - merkle_get_parent
    - std::vector::push_back
    - merkle_get_sibling
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> build_proof(span<sha256_hash const> tree,
      int target, int end = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/test/test_merkle_tree.cpp:85,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:85,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:85,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_merkle_tree.cpp:86,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/test/test_merkle_tree.cpp:86,1
    - Dst: span<sha256_hash const>::end
      Src: /src/libtorrent/test/test_merkle_tree.cpp:86,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_merkle_tree.cpp:86,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hashes
    argTypes:
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: corrupt
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - span<sha256_hash const>::size
    - span<sha256_hash const>::end
    - std::vector::reserve
    - std::copy
    - std::size_t
    - std::back_inserter
    - span<sha256_hash const>::begin
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> corrupt(span<sha256_hash const> hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<bool>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:93,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: all_set
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - std::vector<bool>
    - std::size_t
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> all_set(int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<bool>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:98,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: none_set
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - std::vector<bool>
    - std::size_t
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> none_set(int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_merkle_tree.cpp:105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_merkle_tree.cpp:106,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:106,1
    - Dst: std::vector<bool>::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:106,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - bits
    - start
    - count
    argTypes:
    - std::vector<bool>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: set_range
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::vector<bool>::size
    - std::size_t
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> set_range(std::vector<bool> bits, int start, int
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:119,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:120,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:123,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:124,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:124,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:128,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:129,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:129,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:136,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:138,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:138,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:140,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:140,1
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:145,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:146,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:146,1
    - Dst: end_index
      Src: /src/libtorrent/test/test_merkle_tree.cpp:146,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:147,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:149,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 151
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - aux::merkle_tree::load_tree
    - aux::merkle_tree::compare_node
    - aux::merkle_tree::has_node
    - end_index
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(load_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:157,1
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:158,1
    - Dst: aux::merkle_tree::load_sparse_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:159,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:162,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:162,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:163,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:167,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:168,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:168,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:175,1
    - Dst: size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:176,1
    - Dst: aux::merkle_tree::load_sparse_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:180,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:182,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:182,1
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:187,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle_tree.cpp:188,1
    - Dst: size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:190,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:192,1
    - Dst: aux::merkle_tree::load_sparse_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:193,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:196,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:196,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:197,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:197,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:201,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:201,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:202,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:202,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle_tree.cpp:209,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:209,1
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:210,1
    - Dst: size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:211,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:213,1
    - Dst: aux::merkle_tree::load_sparse_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:214,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:214,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:215,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:218,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:219,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:223,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:223,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 226
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - merkle_first_leaf
    - merkle_num_leafs
    - span<sha256_hash const>
    - std::size_t
    - aux::merkle_tree::compare_node
    - aux::merkle_tree::has_node
    - aux::merkle_tree::load_sparse_tree
    - size
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(load_sparse_tree)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_merkle_tree.cpp:236,1
    - Dst: build_sparse_vector
      Src: /src/libtorrent/test/test_merkle_tree.cpp:236,1
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:238,1
    - Dst: aux::merkle_tree::load_sparse_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:239,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:241,1
    - Dst: build_vector
      Src: /src/libtorrent/test/test_merkle_tree.cpp:241,1
    - Dst: aux::merkle_tree::build_vector
      Src: /src/libtorrent/test/test_merkle_tree.cpp:241,1
    - Dst: size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:244,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:245,1
    - Dst: has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:245,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:245,1
    - Dst: has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:247,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:248,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_merkle_tree.cpp:248,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:249,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:250,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_merkle_tree.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:252,1
    - Dst: compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:252,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:253,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' t'
    - block_count
    - blocks_per_piece
    argTypes:
    - aux::merkle_tree
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 255
    functionName: test_roundtrip
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - aux::merkle_tree::build_vector
    - TEST_EQUAL
    - is_all_zeros
    - build_vector
    - std::tie
    - compare_node
    - aux::merkle_tree::compare_node
    - aux::merkle_tree::has_node
    - build_sparse_vector
    - has_node
    - aux::merkle_tree::load_sparse_tree
    - size
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: "void test_roundtrip(aux::merkle_tree const& t\n\t, int const block_count\n\t,
      int const blocks_per_piece)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_merkle_tree.cpp:236,1
    - Dst: build_sparse_vector
      Src: /src/libtorrent/test/test_merkle_tree.cpp:236,1
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:238,1
    - Dst: aux::merkle_tree::load_sparse_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:239,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:241,1
    - Dst: build_vector
      Src: /src/libtorrent/test/test_merkle_tree.cpp:241,1
    - Dst: aux::merkle_tree::build_vector
      Src: /src/libtorrent/test/test_merkle_tree.cpp:241,1
    - Dst: size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:244,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:245,1
    - Dst: has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:245,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:245,1
    - Dst: has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:247,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:248,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_merkle_tree.cpp:248,1
    - Dst: aux::merkle_tree::has_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:249,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:250,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_merkle_tree.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:252,1
    - Dst: compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:252,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:253,1
    - Dst: aux::merkle_tree::compare_node
      Src: /src/libtorrent/test/test_merkle_tree.cpp:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' t'
    - block_count
    - blocks_per_piece
    argTypes:
    - aux::merkle_tree
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 255
    functionName: test_roundtrip
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - aux::merkle_tree::build_vector
    - TEST_EQUAL
    - is_all_zeros
    - build_vector
    - std::tie
    - compare_node
    - aux::merkle_tree::compare_node
    - aux::merkle_tree::has_node
    - build_sparse_vector
    - has_node
    - aux::merkle_tree::load_sparse_tree
    - size
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: "void test_roundtrip(aux::merkle_tree const& t\n\t, int const block_count\n\t,
      int const blocks_per_piece)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:260,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_merkle_tree.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(roundtrip_empty_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:266,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:267,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_merkle_tree.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    - aux::merkle_tree::load_tree
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(roundtrip_full_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:273,1
    - Dst: end_index
      Src: /src/libtorrent/test/test_merkle_tree.cpp:275,1
    - Dst: end_index
      Src: /src/libtorrent/test/test_merkle_tree.cpp:275,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:277,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_merkle_tree.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    - end_index
    - aux::merkle_tree::load_tree
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(roundtrip_piece_layer_tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:283,1
    - Dst: end_index
      Src: /src/libtorrent/test/test_merkle_tree.cpp:285,1
    - Dst: end_index
      Src: /src/libtorrent/test/test_merkle_tree.cpp:285,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:291,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_merkle_tree.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 293
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    - end_index
    - aux::merkle_tree::load_tree
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(roundtrip_partial_tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:297,1
    - Dst: end_index
      Src: /src/libtorrent/test/test_merkle_tree.cpp:299,1
    - Dst: end_index
      Src: /src/libtorrent/test/test_merkle_tree.cpp:299,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:305,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_merkle_tree.cpp:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    - end_index
    - aux::merkle_tree::load_tree
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(roundtrip_more_partial_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:311,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:312,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:312,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_merkle_tree.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    - span<sha256_hash const>
    - aux::merkle_tree::load_tree
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(roundtrip_one_block_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:318,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:319,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:319,1
    - Dst: verified_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:319,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:319,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_merkle_tree.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - verified_t
    - std::size_t
    - aux::merkle_tree::load_tree
    - test_roundtrip
    - span<sha256_hash const>
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(roundtrip_two_block_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: auto::resize
      Src: /src/libtorrent/test/test_merkle_tree.cpp:326,1
    - Dst: clear
      Src: /src/libtorrent/test/test_merkle_tree.cpp:327,1
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:328,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:329,1
    - Dst: verified_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:329,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:329,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_merkle_tree.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - verified_t
    - std::size_t
    - aux::merkle_tree::load_tree
    - auto::resize
    - clear
    - test_roundtrip
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(roundtrip_two_block_partial_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:336,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:338,1
    - Dst: aux::merkle_tree::build_vector
      Src: /src/libtorrent/test/test_merkle_tree.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - aux::merkle_tree::build_vector
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(small_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:350,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:352,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:352,1
    - Dst: aux::merkle_tree::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:352,1
    - Dst: aux::merkle_tree::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:354,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - aux::merkle_tree::size
    - aux::merkle_tree::load_tree
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sparse_merkle_tree_block_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:361,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:362,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:362,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:362,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:363,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:363,1
    - Dst: aux::merkle_tree::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:363,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:366,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle_tree.cpp:367,1
    - Dst: aux::merkle_tree::get_piece_layer
      Src: /src/libtorrent/test/test_merkle_tree.cpp:368,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:370,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:370,1
    - Dst: all_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:370,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:372,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:372,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:373,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 377
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - all_set
    - none_set
    - aux::merkle_tree::size
    - merkle_first_leaf
    - aux::merkle_tree::get_piece_layer
    - merkle_num_leafs
    - auto::size
    - aux::merkle_tree::load_tree
    - aux::merkle_tree::verified_leafs
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_piece_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:381,1
    - Dst: aux::merkle_tree::load_piece_layer
      Src: /src/libtorrent/test/test_merkle_tree.cpp:385,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:385,1
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:385,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:385,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:387,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle_tree.cpp:388,1
    - Dst: aux::merkle_tree::get_piece_layer
      Src: /src/libtorrent/test/test_merkle_tree.cpp:389,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:391,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:391,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:391,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:393,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:393,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:394,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 398
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - none_set
    - test_piece_size
    - merkle_first_leaf
    - aux::merkle_tree::get_piece_layer
    - aux::merkle_tree::load_piece_layer
    - merkle_num_leafs
    - auto::size
    - aux::merkle_tree::verified_leafs
    - span<char const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_piece_layer_piece_layer_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:402,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/test/test_merkle_tree.cpp:404,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:404,1
    - Dst: aux::merkle_tree::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:404,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:408,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:409,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:409,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:409,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:414,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:415,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:415,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:415,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:420,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:421,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:421,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:421,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:426,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:427,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:427,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:427,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:432,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:433,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:433,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:433,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:437,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:438,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:438,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:438,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:443,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:444,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:444,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:444,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:447,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:447,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:447,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:449,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:450,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:450,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:451,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:451,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:451,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:453,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:453,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:453,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:458,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:459,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:459,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:459,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:465,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:466,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:466,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:466,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:470,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:470,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:470,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:475,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:476,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:476,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:476,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:480,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:480,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:480,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:485,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:486,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:486,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:486,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:490,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:490,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:490,1
    - Dst: aux::merkle_tree::get_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:496,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:497,1
    - Dst: s
      Src: /src/libtorrent/test/test_merkle_tree.cpp:497,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 499
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - aux::merkle_tree::size
    - aux::merkle_tree::get_hashes
    - merkle_get_sibling
    - range
    - aux::merkle_tree::load_tree
    - s
    - merkle_get_parent
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_tree_get_hashes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:518,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:521,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:521,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:521,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:521,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:523,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:527,1
    - Dst: passed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:527,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:528,1
    - Dst: failed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:528,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:532,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:536,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:538,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:538,1
    - Dst: all_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 540
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - passed::size
    - all_set
    - failed::size
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - pdiff
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_full_tree)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:547,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:550,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:550,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:551,1
    - Dst: build_proof
      Src: /src/libtorrent/test/test_merkle_tree.cpp:552,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:554,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:558,1
    - Dst: passed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:558,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:559,1
    - Dst: failed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:559,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle_tree.cpp:562,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:564,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:565,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:565,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:565,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle_tree.cpp:573,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:574,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:576,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_merkle_tree.cpp:576,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:583,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:585,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_merkle_tree.cpp:585,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_merkle_tree.cpp:589,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:590,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:590,1
    - Dst: set_range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:590,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:590,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 593
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - passed::size
    - none_set
    - is_all_zeros
    - set_range
    - failed::size
    - build_proof
    - merkle_get_sibling
    - std::min
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - pdiff
    - merkle_get_parent
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_one_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:600,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:603,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:603,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:604,1
    - Dst: corrupt
      Src: /src/libtorrent/test/test_merkle_tree.cpp:605,1
    - Dst: build_proof
      Src: /src/libtorrent/test/test_merkle_tree.cpp:605,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:607,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:608,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:608,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 610
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - none_set
    - corrupt
    - build_proof
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - pdiff
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_one_piece_invalid_proof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:617,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:620,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:620,1
    - Dst: corrupt
      Src: /src/libtorrent/test/test_merkle_tree.cpp:621,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:621,1
    - Dst: build_proof
      Src: /src/libtorrent/test/test_merkle_tree.cpp:622,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:624,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:625,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:625,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 627
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - none_set
    - corrupt
    - build_proof
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - pdiff
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_one_piece_invalid_hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:635,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_merkle_tree.cpp:638,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:641,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:642,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:642,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:646,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:646,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:646,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:646,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:648,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:652,1
    - Dst: passed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:652,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:652,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:653,1
    - Dst: failed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:653,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:658,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:662,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:662,1
    - Dst: all_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:662,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 665
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - passed::size
    - all_set
    - failed::size
    - std::get<0>
    - std::min
    - data
    - range
    - aux::merkle_tree::add_hashes
    - std::size_t
    - aux::merkle_tree::verified_leafs
    - pdiff
    - span<sha256_hash const>
    - TEST_CHECK
    - aux::merkle_tree::set_block
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_full_tree_existing_valid_blocks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:675,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_merkle_tree.cpp:678,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:682,1
    - Dst: rand_sha256
      Src: /src/libtorrent/test/test_merkle_tree.cpp:682,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:683,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:683,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:687,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:687,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:687,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:687,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:689,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:693,1
    - Dst: passed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:693,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:694,1
    - Dst: failed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:694,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_merkle_tree.cpp:694,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:699,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:699,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:700,1
    - Dst: second::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:700,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_merkle_tree.cpp:700,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:701,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:706,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:711,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:711,1
    - Dst: all_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:711,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 714
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - TEST_EQUAL
    - passed::size
    - all_set
    - second::size
    - failed::size
    - std::get<0>
    - std::min
    - rand_sha256
    - data
    - range
    - aux::merkle_tree::add_hashes
    - std::size_t
    - aux::merkle_tree::verified_leafs
    - pdiff
    - span<sha256_hash const>
    - TEST_CHECK
    - aux::merkle_tree::set_block
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_full_tree_existing_invalid_blocks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:719,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:723,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:723,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:723,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:723,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:724,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:728,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:728,1
    - Dst: all_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:728,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:734,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:735,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:735,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:736,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:736,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:737,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 739
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - all_set
    - aux::merkle_tree::set_block
    - std::get<0>
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - std::get<2>
    - pdiff
    - std::get<1>
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_full_block_layer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:744,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:748,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:748,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:748,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:748,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:749,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:753,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:753,1
    - Dst: all_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:753,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:759,1
    - Dst: rand_sha256
      Src: /src/libtorrent/test/test_merkle_tree.cpp:759,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:760,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:760,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:761,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:761,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:762,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 764
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - all_set
    - aux::merkle_tree::set_block
    - std::get<0>
    - rand_sha256
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - std::get<2>
    - pdiff
    - std::get<1>
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_invalid_full_block_layer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:769,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:773,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:773,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:773,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:773,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:774,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:780,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:783,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:783,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:784,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:784,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:785,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:785,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:786,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:786,1
    - Dst: set_range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:786,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:786,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:790,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:790,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:791,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:791,1
    - Dst: set_range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:791,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:791,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 794
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - none_set
    - set_range
    - aux::merkle_tree::set_block
    - std::get<0>
    - range
    - aux::merkle_tree::add_hashes
    - std::get<2>
    - aux::merkle_tree::verified_leafs
    - pdiff
    - std::get<1>
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_full_piece_layer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:799,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:803,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:803,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:803,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:803,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:804,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:810,1
    - Dst: rand_sha256
      Src: /src/libtorrent/test/test_merkle_tree.cpp:810,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:813,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:813,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:814,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:814,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:815,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:815,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:819,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:819,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:821,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:821,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 823
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - none_set
    - aux::merkle_tree::set_block
    - std::get<0>
    - rand_sha256
    - range
    - aux::merkle_tree::add_hashes
    - std::get<2>
    - aux::merkle_tree::verified_leafs
    - pdiff
    - std::get<1>
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_invalid_full_piece_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:828,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:834,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:835,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:835,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:836,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:836,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:836,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:840,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:842,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:842,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:843,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:843,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:844,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:844,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:846,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:846,1
    - Dst: all_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 847
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - all_set
    - none_set
    - std::get<0>
    - data
    - std::get<2>
    - aux::merkle_tree::verified_leafs
    - std::get<1>
    - TEST_CHECK
    - aux::merkle_tree::set_block
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_empty_tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:852,1
    - Dst: aux::merkle_tree::set_block
      Src: /src/libtorrent/test/test_merkle_tree.cpp:858,1
    - Dst: rand_sha256
      Src: /src/libtorrent/test/test_merkle_tree.cpp:858,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:860,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:860,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:862,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:862,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:863,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:863,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 865
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - none_set
    - std::get<0>
    - rand_sha256
    - data
    - aux::merkle_tree::verified_leafs
    - TEST_CHECK
    - aux::merkle_tree::set_block
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_invalid_empty_tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:869,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:871,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:871,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:871,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:871,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:873,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:877,1
    - Dst: passed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:877,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:878,1
    - Dst: failed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:878,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:881,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:883,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:883,1
    - Dst: all_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 884
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - passed::size
    - all_set
    - failed::size
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - pdiff
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_block_layer_no_padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:888,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:891,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:891,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:891,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:891,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:893,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:897,1
    - Dst: passed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:897,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:898,1
    - Dst: failed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:898,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:901,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:904,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_merkle_tree.cpp:904,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:906,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:906,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 907
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - passed::size
    - none_set
    - is_all_zeros
    - failed::size
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - pdiff
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_piece_layer_no_padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/test_merkle_tree.cpp:911,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:915,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:915,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:915,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_merkle_tree.cpp:915,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:916,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:920,1
    - Dst: aux::merkle_tree::add_hashes
      Src: /src/libtorrent/test/test_merkle_tree.cpp:925,1
    - Dst: pdiff
      Src: /src/libtorrent/test/test_merkle_tree.cpp:925,1
    - Dst: range
      Src: /src/libtorrent/test/test_merkle_tree.cpp:925,1
    - Dst: build_proof
      Src: /src/libtorrent/test/test_merkle_tree.cpp:925,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:926,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:929,1
    - Dst: passed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:929,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle_tree.cpp:930,1
    - Dst: failed::size
      Src: /src/libtorrent/test/test_merkle_tree.cpp:930,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:933,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle_tree.cpp:935,1
    - Dst: aux::merkle_tree::verified_leafs
      Src: /src/libtorrent/test/test_merkle_tree.cpp:935,1
    - Dst: none_set
      Src: /src/libtorrent/test/test_merkle_tree.cpp:935,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 936
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - passed::size
    - none_set
    - failed::size
    - build_proof
    - range
    - aux::merkle_tree::add_hashes
    - aux::merkle_tree::verified_leafs
    - pdiff
    - span<sha256_hash const>
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_hashes_partial_proofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/test/test_bitfield.cpp:48,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_bitfield.cpp:48,1
    - Dst: size
      Src: /src/libtorrent/test/test_bitfield.cpp:48,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:51,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bitfield.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: print_bitfield
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - size
    - std::size_t
    - std::printf
    - std::string::reserve
    linkageType: ''
    returnType: void
    signature: void print_bitfield(bitfield const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_all
      Src: /src/libtorrent/test/test_bitfield.cpp:56,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:59,1
    - Dst: size
      Src: /src/libtorrent/test/test_bitfield.cpp:59,1
    - Dst: begin
      Src: /src/libtorrent/test/test_bitfield.cpp:60,1
    - Dst: end
      Src: /src/libtorrent/test/test_bitfield.cpp:60,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:62,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:63,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:66,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:67,1
    - Dst: size
      Src: /src/libtorrent/test/test_bitfield.cpp:67,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:68,1
    - Dst: count
      Src: /src/libtorrent/test/test_bitfield.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' test1'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: test_iterators
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - count
    - set_all
    - std::printf
    - begin
    - end
    - size
    linkageType: ''
    returnType: void
    signature: void test_iterators(bitfield& test1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/test/test_bitfield.cpp:48,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_bitfield.cpp:48,1
    - Dst: size
      Src: /src/libtorrent/test/test_bitfield.cpp:48,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:51,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bitfield.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: print_bitfield
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - size
    - std::size_t
    - std::printf
    - std::string::reserve
    linkageType: ''
    returnType: void
    signature: void print_bitfield(bitfield const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_all
      Src: /src/libtorrent/test/test_bitfield.cpp:56,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:59,1
    - Dst: size
      Src: /src/libtorrent/test/test_bitfield.cpp:59,1
    - Dst: begin
      Src: /src/libtorrent/test/test_bitfield.cpp:60,1
    - Dst: end
      Src: /src/libtorrent/test/test_bitfield.cpp:60,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:62,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:63,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:66,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:67,1
    - Dst: size
      Src: /src/libtorrent/test/test_bitfield.cpp:67,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:68,1
    - Dst: count
      Src: /src/libtorrent/test/test_bitfield.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' test1'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: test_iterators
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - count
    - set_all
    - std::printf
    - begin
    - end
    - size
    linkageType: ''
    returnType: void
    signature: void test_iterators(bitfield& test1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:76,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:77,1
    - Dst: bitfield::empty
      Src: /src/libtorrent/test/test_bitfield.cpp:77,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:78,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:78,1
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:80,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:80,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:81,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:82,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:82,1
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:84,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:84,1
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:85,1
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:86,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:87,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:87,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bitfield.cpp:88,1
    - Dst: bitfield::all_set
      Src: /src/libtorrent/test/test_bitfield.cpp:88,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:89,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:90,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:90,1
    - Dst: std::distance
      Src: /src/libtorrent/test/test_bitfield.cpp:91,1
    - Dst: bitfield::begin
      Src: /src/libtorrent/test/test_bitfield.cpp:91,1
    - Dst: bitfield::end
      Src: /src/libtorrent/test/test_bitfield.cpp:91,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bitfield.cpp:92,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bitfield.cpp:93,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:95,1
    - Dst: bitfield::set_all
      Src: /src/libtorrent/test/test_bitfield.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:98,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:98,1
    - Dst: bitfield::clear_all
      Src: /src/libtorrent/test/test_bitfield.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:101,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:101,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:103,1
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:104,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:106,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:106,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:107,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:108,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:108,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:109,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:109,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:110,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:110,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:114,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:115,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:116,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:116,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:117,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:117,1
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:119,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:120,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:121,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:121,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bitfield.cpp:124,1
    - Dst: bitfield::all_set
      Src: /src/libtorrent/test/test_bitfield.cpp:124,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:125,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:125,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bitfield.cpp:127,1
    - Dst: bitfield::all_set
      Src: /src/libtorrent/test/test_bitfield.cpp:127,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:128,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:128,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bitfield.cpp:130,1
    - Dst: bitfield::all_set
      Src: /src/libtorrent/test/test_bitfield.cpp:130,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:131,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:131,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:132,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bitfield.cpp:133,1
    - Dst: bitfield::all_set
      Src: /src/libtorrent/test/test_bitfield.cpp:133,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:134,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:134,1
    - Dst: bitfield::assign
      Src: /src/libtorrent/test/test_bitfield.cpp:137,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/test/test_bitfield.cpp:137,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:139,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:140,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:140,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:141,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:142,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:142,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:143,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:143,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:144,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:144,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:145,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:145,1
    - Dst: bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:148,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:148,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:149,1
    - Dst: bitfield::empty
      Src: /src/libtorrent/test/test_bitfield.cpp:149,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:150,1
    - Dst: bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:150,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:153,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:153,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:154,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:154,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:155,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:155,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:156,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:156,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:157,1
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 158
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - bitfield::set_all
    - bitfield::set_bit
    - reinterpret_cast<char*>
    - print_bitfield
    - bitfield::count
    - bitfield::clear_all
    - bitfield::resize
    - bitfield::all_set
    - std::printf
    - TEST_EQUAL
    - bitfield::get_bit
    - bitfield::clear_bit
    - bitfield::assign
    - bitfield::begin
    - bitfield::empty
    - bitfield::end
    - bitfield::size
    - TEST_CHECK
    - std::distance
    - bitfield
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bitfield)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::assign
      Src: /src/libtorrent/test/test_bitfield.cpp:164,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/test/test_bitfield.cpp:164,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:166,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:166,1
    - Dst: bitfield::assign
      Src: /src/libtorrent/test/test_bitfield.cpp:169,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/test/test_bitfield.cpp:169,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:170,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:171,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - reinterpret_cast<char*>
    - print_bitfield
    - bitfield::assign
    - bitfield::count
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_assign3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:179,1
    - Dst: test_iterators
      Src: /src/libtorrent/test/test_bitfield.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - bitfield::resize
    - test_iterators
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_iterators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::assign
      Src: /src/libtorrent/test/test_bitfield.cpp:192,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:193,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:194,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:195,1
    - Dst: bitfield::all_set
      Src: /src/libtorrent/test/test_bitfield.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 197
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_bitfield
    - bitfield::all_set
    - bitfield::assign
    - bitfield::count
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_assign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/libtorrent/test/test_bitfield.cpp:205,1
    - Dst: bitfield::assign
      Src: /src/libtorrent/test/test_bitfield.cpp:207,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:208,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:209,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:209,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:210,1
    - Dst: bitfield::all_set
      Src: /src/libtorrent/test/test_bitfield.cpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_bitfield.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_bitfield
    - TORRENT_ASSERT
    - bitfield::all_set
    - bitfield::assign
    - std::memset
    - bitfield::count
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_assign2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_bitfield.cpp:221,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_bitfield.cpp:223,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:224,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:225,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:226,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:226,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:230,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:231,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:232,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::array::data
    - std::array::fill
    - bitfield::resize
    - print_bitfield
    - bitfield::count
    - bitfield::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_resize_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_bitfield.cpp:239,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_bitfield.cpp:241,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:243,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:243,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:244,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:244,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:248,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:249,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:250,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:250,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:251,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 253
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::array::data
    - std::array::fill
    - bitfield::resize
    - print_bitfield
    - bitfield::count
    - bitfield::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_resize_up)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_bitfield.cpp:258,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_bitfield.cpp:260,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:264,1
    - Dst: print_bitfield
      Src: /src/libtorrent/test/test_bitfield.cpp:265,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:266,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:266,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:267,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::array::data
    - std::array::fill
    - bitfield::resize
    - print_bitfield
    - bitfield::count
    - bitfield::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_resize_down)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:274,1
    - Dst: bitfield::find_first_set
      Src: /src/libtorrent/test/test_bitfield.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_first_set
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_first_set_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:280,1
    - Dst: bitfield::find_first_set
      Src: /src/libtorrent/test/test_bitfield.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_first_set
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_first_set_small)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:286,1
    - Dst: bitfield::find_first_set
      Src: /src/libtorrent/test/test_bitfield.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_first_set
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_first_set_large)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:292,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:293,1
    - Dst: bitfield::find_first_set
      Src: /src/libtorrent/test/test_bitfield.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::set_bit
    - bitfield::find_first_set
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_first_set_early)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:299,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:300,1
    - Dst: bitfield::find_first_set
      Src: /src/libtorrent/test/test_bitfield.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::set_bit
    - bitfield::find_first_set
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_first_set_late)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:306,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_last_clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_last_clear_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:312,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_last_clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_last_clear_small)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:318,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_last_clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_last_clear_large)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:324,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:325,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_last_clear
    - bitfield::clear_bit
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_last_clear_early)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:331,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:332,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_last_clear
    - bitfield::clear_bit
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_last_clear_late)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:338,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:339,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:340,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:340,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:343,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:344,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:345,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:346,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:346,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:349,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:350,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:351,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:352,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:353,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:353,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:356,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:357,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:358,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:359,1
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/test/test_bitfield.cpp:360,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:361,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 362
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::find_last_clear
    - bitfield::clear_bit
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(find_last_clear_misc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:368,1
    - Dst: bitfield::none_set
      Src: /src/libtorrent/test/test_bitfield.cpp:368,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:369,1
    - Dst: bitfield::all_set
      Src: /src/libtorrent/test/test_bitfield.cpp:369,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:370,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:370,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:371,1
    - Dst: bitfield::num_words
      Src: /src/libtorrent/test/test_bitfield.cpp:371,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:372,1
    - Dst: bitfield::empty
      Src: /src/libtorrent/test/test_bitfield.cpp:372,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bitfield.cpp:373,1
    - Dst: bitfield::data
      Src: /src/libtorrent/test/test_bitfield.cpp:373,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:374,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:374,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:375,1
    - Dst: bitfield::find_first_set
      Src: /src/libtorrent/test/test_bitfield.cpp:375,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:376,1
    - Dst: bitfield::find_last_clear
      Src: /src/libtorrent/test/test_bitfield.cpp:376,1
    - Dst: bitfield::clear_all
      Src: /src/libtorrent/test/test_bitfield.cpp:378,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:379,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:379,1
    - Dst: bitfield::clear
      Src: /src/libtorrent/test/test_bitfield.cpp:381,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:382,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:382,1
    - Dst: bitfield::set_all
      Src: /src/libtorrent/test/test_bitfield.cpp:384,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:385,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 389
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - bitfield::set_all
    - TEST_EQUAL
    - bitfield::none_set
    - bitfield::data
    - bitfield::find_first_set
    - bitfield::num_words
    - bitfield::clear
    - bitfield::all_set
    - bitfield::find_last_clear
    - bitfield::empty
    - bitfield::count
    - bitfield::size
    - bitfield::clear_all
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(not_initialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:396,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:396,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:397,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::count
    - bitfield::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(self_assign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::assign
      Src: /src/libtorrent/test/test_bitfield.cpp:405,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/test/test_bitfield.cpp:405,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:406,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - reinterpret_cast<char*>
    - bitfield::assign
    - bitfield::count
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(not_initialized_assign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:413,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:414,1
    - Dst: bitfield::count
      Src: /src/libtorrent/test/test_bitfield.cpp:414,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/test/test_bitfield.cpp:417,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:418,1
    - Dst: bitfield::size
      Src: /src/libtorrent/test/test_bitfield.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 419
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bitfield::resize
    - bitfield::count
    - bitfield::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(not_initialized_resize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typed_bitfield::range
      Src: /src/libtorrent/test/test_bitfield.cpp:425,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bitfield.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bitfield.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - typed_bitfield::range
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bitfield_index_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:61,1
    - Dst: begin
      Src: /src/libtorrent/test/test_remap_files.cpp:61,1
    - Dst: end
      Src: /src/libtorrent/test/test_remap_files.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: all_of
    functionSourceFile: /src/libtorrent/test/test_remap_files.cpp
    functionUses: 1
    functionsReached:
    - begin
    - end
    - all_of
    linkageType: ''
    returnType: bool
    signature: bool all_of(std::vector<bool> const& v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make_torrent
      Src: /src/libtorrent/test/test_remap_files.cpp:72,1
    - Dst: make_file_storage
      Src: /src/libtorrent/test/test_remap_files.cpp:77,1
    - Dst: auto::remap_files
      Src: /src/libtorrent/test/test_remap_files.cpp:79,1
    - Dst: settings
      Src: /src/libtorrent/test/test_remap_files.cpp:89,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_remap_files.cpp:90,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_remap_files.cpp:100,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:103,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:106,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remap_files.cpp:110,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remap_files.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:112,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:114,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_remap_files.cpp:117,1
    - Dst: generate_piece
      Src: /src/libtorrent/test/test_remap_files.cpp:119,1
    - Dst: file_storage::piece_size
      Src: /src/libtorrent/test/test_remap_files.cpp:119,1
    - Dst: torrent_handle::add_piece
      Src: /src/libtorrent/test/test_remap_files.cpp:120,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_remap_files.cpp:120,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_remap_files.cpp:125,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/test/test_remap_files.cpp:125,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_remap_files.cpp:126,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/test/test_remap_files.cpp:126,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_remap_files.cpp:127,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_remap_files.cpp:127,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:129,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:129,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:129,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_remap_files.cpp:131,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_remap_files.cpp:131,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:135,1
    - Dst: printf
      Src: /src/libtorrent/test/test_remap_files.cpp:139,1
    - Dst: message
      Src: /src/libtorrent/test/test_remap_files.cpp:139,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_remap_files.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_remap_files.cpp:145,1
    - Dst: auto::piece_size
      Src: /src/libtorrent/test/test_remap_files.cpp:145,1
    - Dst: generate_piece
      Src: /src/libtorrent/test/test_remap_files.cpp:147,1
    - Dst: auto::piece_size
      Src: /src/libtorrent/test/test_remap_files.cpp:147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: read_piece_alert*::buffer::get
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:149,1
    - Dst: alert_cast<file_completed_alert>
      Src: /src/libtorrent/test/test_remap_files.cpp:153,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:157,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/test/test_remap_files.cpp:161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:165,1
    - Dst: torrent_handle::read_piece
      Src: /src/libtorrent/test/test_remap_files.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:172,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:173,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:173,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:174,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:174,1
    - Dst: file_index_t
      Src: /src/libtorrent/test/test_remap_files.cpp:179,1
    - Dst: std::array::size
      Src: /src/libtorrent/test/test_remap_files.cpp:179,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_remap_files.cpp:181,1
    - Dst: exists
      Src: /src/libtorrent/test/test_remap_files.cpp:182,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remap_files.cpp:184,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remap_files.cpp:184,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:185,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_remap_files.cpp:188,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_remap_files.cpp:188,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:189,1
    - Dst: exists
      Src: /src/libtorrent/test/test_remap_files.cpp:189,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:192,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_remap_files.cpp:195,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_remap_files.cpp:197,1
    - Dst: torrent_handle::force_recheck
      Src: /src/libtorrent/test/test_remap_files.cpp:200,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:204,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remap_files.cpp:206,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remap_files.cpp:206,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:207,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:210,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:212,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 213
    functionName: test_remap_files
    functionSourceFile: /src/libtorrent/test/test_remap_files.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - make_file_storage
    - std::this_thread::sleep_for
    - torrent_handle::read_piece
    - auto::piece_size
    - alert_cast<piece_finished_alert>
    - generate_piece
    - all_of
    - read_piece_alert*::buffer::get
    - torrent_handle::status
    - torrent_handle::force_recheck
    - std::memcmp
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - message
    - lt::session::wait_for_alert
    - auto::remap_files
    - std::size_t
    - file_index_t
    - alert_cast<file_completed_alert>
    - std::printf
    - file_storage::piece_size
    - TEST_EQUAL
    - libtorrent::total_milliseconds
    - lt::session::pop_alerts
    - lt::session::add_torrent
    - make_torrent
    - TEST_CHECK
    - std::array::size
    - std::vector::data
    - file_storage::file_path
    - file_storage::piece_range
    - printf
    - std::string::c_str
    - file_storage::num_pieces
    - alert_cast<read_piece_alert>
    - file_storage::num_files
    - exists
    - settings
    - settings_pack::set_int
    - torrent_handle::add_piece
    linkageType: ''
    returnType: void
    signature: void test_remap_files(storage_mode_t storage_mode = storage_mode_sparse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:61,1
    - Dst: begin
      Src: /src/libtorrent/test/test_remap_files.cpp:61,1
    - Dst: end
      Src: /src/libtorrent/test/test_remap_files.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: all_of
    functionSourceFile: /src/libtorrent/test/test_remap_files.cpp
    functionUses: 3
    functionsReached:
    - begin
    - end
    - all_of
    linkageType: ''
    returnType: bool
    signature: bool all_of(std::vector<bool> const& v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make_torrent
      Src: /src/libtorrent/test/test_remap_files.cpp:72,1
    - Dst: make_file_storage
      Src: /src/libtorrent/test/test_remap_files.cpp:77,1
    - Dst: auto::remap_files
      Src: /src/libtorrent/test/test_remap_files.cpp:79,1
    - Dst: settings
      Src: /src/libtorrent/test/test_remap_files.cpp:89,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_remap_files.cpp:90,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_remap_files.cpp:100,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:103,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:106,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remap_files.cpp:110,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remap_files.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:112,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:114,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_remap_files.cpp:117,1
    - Dst: generate_piece
      Src: /src/libtorrent/test/test_remap_files.cpp:119,1
    - Dst: file_storage::piece_size
      Src: /src/libtorrent/test/test_remap_files.cpp:119,1
    - Dst: torrent_handle::add_piece
      Src: /src/libtorrent/test/test_remap_files.cpp:120,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_remap_files.cpp:120,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_remap_files.cpp:125,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/test/test_remap_files.cpp:125,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_remap_files.cpp:126,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/test/test_remap_files.cpp:126,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_remap_files.cpp:127,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_remap_files.cpp:127,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:129,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:129,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:129,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_remap_files.cpp:131,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_remap_files.cpp:131,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:135,1
    - Dst: printf
      Src: /src/libtorrent/test/test_remap_files.cpp:139,1
    - Dst: message
      Src: /src/libtorrent/test/test_remap_files.cpp:139,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_remap_files.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_remap_files.cpp:145,1
    - Dst: auto::piece_size
      Src: /src/libtorrent/test/test_remap_files.cpp:145,1
    - Dst: generate_piece
      Src: /src/libtorrent/test/test_remap_files.cpp:147,1
    - Dst: auto::piece_size
      Src: /src/libtorrent/test/test_remap_files.cpp:147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: read_piece_alert*::buffer::get
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_remap_files.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:149,1
    - Dst: alert_cast<file_completed_alert>
      Src: /src/libtorrent/test/test_remap_files.cpp:153,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:157,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/test/test_remap_files.cpp:161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:165,1
    - Dst: torrent_handle::read_piece
      Src: /src/libtorrent/test/test_remap_files.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:172,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:173,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:173,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:174,1
    - Dst: all_of
      Src: /src/libtorrent/test/test_remap_files.cpp:174,1
    - Dst: file_index_t
      Src: /src/libtorrent/test/test_remap_files.cpp:179,1
    - Dst: std::array::size
      Src: /src/libtorrent/test/test_remap_files.cpp:179,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_remap_files.cpp:181,1
    - Dst: exists
      Src: /src/libtorrent/test/test_remap_files.cpp:182,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remap_files.cpp:184,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remap_files.cpp:184,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:185,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_remap_files.cpp:188,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_remap_files.cpp:188,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:189,1
    - Dst: exists
      Src: /src/libtorrent/test/test_remap_files.cpp:189,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:192,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_remap_files.cpp:195,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_remap_files.cpp:197,1
    - Dst: torrent_handle::force_recheck
      Src: /src/libtorrent/test/test_remap_files.cpp:200,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:204,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remap_files.cpp:206,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remap_files.cpp:206,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:207,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remap_files.cpp:210,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remap_files.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remap_files.cpp:212,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 213
    functionName: test_remap_files
    functionSourceFile: /src/libtorrent/test/test_remap_files.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - make_file_storage
    - std::this_thread::sleep_for
    - torrent_handle::read_piece
    - auto::piece_size
    - alert_cast<piece_finished_alert>
    - generate_piece
    - all_of
    - read_piece_alert*::buffer::get
    - torrent_handle::status
    - torrent_handle::force_recheck
    - std::memcmp
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - message
    - lt::session::wait_for_alert
    - auto::remap_files
    - std::size_t
    - file_index_t
    - alert_cast<file_completed_alert>
    - std::printf
    - file_storage::piece_size
    - TEST_EQUAL
    - libtorrent::total_milliseconds
    - lt::session::pop_alerts
    - lt::session::add_torrent
    - make_torrent
    - TEST_CHECK
    - std::array::size
    - std::vector::data
    - file_storage::file_path
    - file_storage::piece_range
    - printf
    - std::string::c_str
    - file_storage::num_pieces
    - alert_cast<read_piece_alert>
    - file_storage::num_files
    - exists
    - settings
    - settings_pack::set_int
    - torrent_handle::add_piece
    linkageType: ''
    returnType: void
    signature: void test_remap_files(storage_mode_t storage_mode = storage_mode_sparse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remap_files
      Src: /src/libtorrent/test/test_remap_files.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remap_files.cpp
    functionUses: 0
    functionsReached:
    - test_remap_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remap_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:53,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:54,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:55,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:56,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:68,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:79,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:80,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:81,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:82,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:83,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:84,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:85,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:86,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:87,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:88,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:89,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:90,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:91,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:92,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:93,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:94,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:95,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:96,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:97,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:98,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:99,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:100,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:101,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:102,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:103,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:104,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:105,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:106,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:107,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:108,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:109,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:110,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:111,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:112,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:113,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:114,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:115,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:116,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:117,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:118,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:119,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:120,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:121,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:122,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:123,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:124,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:125,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:126,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:127,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:128,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:129,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:130,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:131,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:133,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:137,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:139,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:143,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:144,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:145,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:147,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:148,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:149,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:150,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:151,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:153,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:157,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:160,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:161,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:162,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:163,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:164,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:165,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:166,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:167,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:168,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:169,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:170,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:171,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:172,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:173,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:174,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:175,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:176,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:177,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:178,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:179,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:180,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:181,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:182,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:183,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:184,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:185,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:186,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:187,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:188,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:189,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:190,1
    - Dst: TEST_ALERT_TYPE
      Src: /src/libtorrent/test/test_alert_types.cpp:191,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:195,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 197
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_types.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_ALERT_TYPE
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alerts_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - seq
    - ','
    - prio
    - ','
    - cat
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: TEST_ALERT_TYPE
    functionSourceFile: /src/libtorrent/test/test_alert_types.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ALERT_TYPE(name, seq, prio, cat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:203,1
    - Dst: aux::alert_manager::should_post
      Src: /src/libtorrent/test/test_alert_types.cpp:203,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:205,1
    - Dst: rand_tcp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:206,1
    - Dst: rand_tcp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:207,1
    - Dst: rand_tcp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:208,1
    - Dst: rand_tcp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:209,1
    - Dst: rand_tcp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:210,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_types.cpp:213,1
    - Dst: alert_cast<dht_get_peers_reply_alert>
      Src: /src/libtorrent/test/test_alert_types.cpp:215,1
    - Dst: aux::alert_manager::wait_for_alert
      Src: /src/libtorrent/test/test_alert_types.cpp:215,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_alert_types.cpp:215,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:216,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:218,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:219,1
    - Dst: auto*::num_peers
      Src: /src/libtorrent/test/test_alert_types.cpp:219,1
    - Dst: auto*::peers
      Src: /src/libtorrent/test/test_alert_types.cpp:221,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_alert_types.cpp:222,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_alert_types.cpp:222,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_alert_types.cpp:222,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_alert_types.cpp:223,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_alert_types.cpp:223,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_alert_types.cpp:223,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 225
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_types.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - TEST_CHECK
    - aux::alert_manager::should_post
    - rand_hash
    - seconds
    - std::vector::begin
    - aux::alert_manager::wait_for_alert
    - auto*::peers
    - auto*::num_peers
    - std::vector::end
    - rand_tcp_ep
    - std::sort
    - alert_cast<dht_get_peers_reply_alert>
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_get_peers_reply_alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:231,1
    - Dst: aux::alert_manager::should_post
      Src: /src/libtorrent/test/test_alert_types.cpp:231,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:233,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:234,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:235,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:236,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:237,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:238,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:239,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:240,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:241,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:242,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:243,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:245,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:246,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:247,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:248,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:249,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_types.cpp:251,1
    - Dst: alert_cast<dht_live_nodes_alert>
      Src: /src/libtorrent/test/test_alert_types.cpp:253,1
    - Dst: aux::alert_manager::wait_for_alert
      Src: /src/libtorrent/test/test_alert_types.cpp:253,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_alert_types.cpp:253,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:256,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:257,1
    - Dst: auto*::num_nodes
      Src: /src/libtorrent/test/test_alert_types.cpp:257,1
    - Dst: auto*::nodes
      Src: /src/libtorrent/test/test_alert_types.cpp:259,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_alert_types.cpp:260,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_alert_types.cpp:260,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_alert_types.cpp:260,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_alert_types.cpp:261,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_alert_types.cpp:261,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_alert_types.cpp:261,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 263
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_types.cpp
    functionUses: 0
    functionsReached:
    - auto*::nodes
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - rand_udp_ep
    - aux::alert_manager::should_post
    - rand_hash
    - std::vector::emplace_back
    - seconds
    - std::vector::begin
    - alert_cast<dht_live_nodes_alert>
    - aux::alert_manager::wait_for_alert
    - auto::end
    - auto::begin
    - std::vector::end
    - auto*::num_nodes
    - std::sort
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_live_nodes_alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_types.cpp:272,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_types.cpp:273,1
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_types.cpp:274,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:275,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_alert_types.cpp:275,1
    - Dst: alert_cast<session_stats_header_alert>
      Src: /src/libtorrent/test/test_alert_types.cpp:277,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:280,1
    - Dst: auto*::message
      Src: /src/libtorrent/test/test_alert_types.cpp:280,1
    - Dst: alert_cast<session_stats_alert>
      Src: /src/libtorrent/test/test_alert_types.cpp:283,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:284,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:286,1
    - Dst: auto*::message
      Src: /src/libtorrent/test/test_alert_types.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 288
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_types.cpp
    functionUses: 0
    functionsReached:
    - auto*::message
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - std::vector::size
    - alert_cast<session_stats_header_alert>
    - aux::alert_manager::get_all
    - alert_cast<session_stats_alert>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_stats_alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:294,1
    - Dst: aux::alert_manager::should_post
      Src: /src/libtorrent/test/test_alert_types.cpp:294,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:296,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:297,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_alert_types.cpp:298,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:300,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:301,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:302,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:303,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:304,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:308,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:309,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:310,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:311,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_alert_types.cpp:312,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:313,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:314,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:315,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:316,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_alert_types.cpp:317,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:319,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:320,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:321,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:322,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_alert_types.cpp:323,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_types.cpp:325,1
    - Dst: alert_cast<dht_sample_infohashes_alert>
      Src: /src/libtorrent/test/test_alert_types.cpp:327,1
    - Dst: aux::alert_manager::wait_for_alert
      Src: /src/libtorrent/test/test_alert_types.cpp:327,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_alert_types.cpp:327,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:328,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:330,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:331,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:332,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:333,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:334,1
    - Dst: auto*::num_samples
      Src: /src/libtorrent/test/test_alert_types.cpp:334,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:335,1
    - Dst: auto*::samples
      Src: /src/libtorrent/test/test_alert_types.cpp:335,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:336,1
    - Dst: auto*::num_nodes
      Src: /src/libtorrent/test/test_alert_types.cpp:336,1
    - Dst: auto*::nodes
      Src: /src/libtorrent/test/test_alert_types.cpp:338,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_alert_types.cpp:339,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_alert_types.cpp:339,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_alert_types.cpp:339,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_alert_types.cpp:340,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_alert_types.cpp:340,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_alert_types.cpp:340,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_types.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 342
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_types.cpp
    functionUses: 0
    functionsReached:
    - auto*::nodes
    - alert_cast<dht_sample_infohashes_alert>
    - std::vector::emplace_back
    - seconds
    - std::vector::begin
    - auto::begin
    - std::vector::end
    - auto*::num_nodes
    - rand_hash
    - TEST_EQUAL
    - rand_udp_ep
    - auto*::samples
    - auto*::num_samples
    - TEST_CHECK
    - aux::alert_manager::emplace_alert
    - aux::alert_manager::should_post
    - aux::alert_manager::wait_for_alert
    - auto::end
    - std::sort
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_sample_infohashes_alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:348,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:348,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:349,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:349,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:350,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:350,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:351,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:351,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:352,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:352,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:353,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:353,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:354,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:354,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:355,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:355,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:356,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:356,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_types.cpp:357,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/test/test_alert_types.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 358
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_types.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - performance_warning_str
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(performance_warning)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~natpmp_callback()
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~natpmp_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_natpmp.cpp:59,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_natpmp.cpp:60,1
    - Dst: message
      Src: /src/libtorrent/test/test_natpmp.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mapping
    - ' ip'
    - port
    - protocol
    - ' err'
    argTypes:
    - port_mapping_t
    - address
    - int
    - portmap_protocol
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: on_port_mapping
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - print_address
    - message
    linkageType: ''
    returnType: void
    signature: "void on_port_mapping(port_mapping_t const mapping\n\t\t\t, address
      const& ip, int port\n\t\t\t, portmap_protocol const protocol, error_code const&
      err\n\t\t\t, portmap_transport, aux::listen_socket_handle const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: should_log_portmap
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log_portmap(portmap_transport) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: log_portmap
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_portmap(portmap_transport, char const* msg, aux::listen_socket_handle
      const&) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~natpmp_callback()
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~natpmp_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_natpmp.cpp:59,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_natpmp.cpp:60,1
    - Dst: message
      Src: /src/libtorrent/test/test_natpmp.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mapping
    - ' ip'
    - port
    - protocol
    - ' err'
    argTypes:
    - port_mapping_t
    - address
    - int
    - portmap_protocol
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: on_port_mapping
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - print_address
    - message
    linkageType: ''
    returnType: void
    signature: "void on_port_mapping(port_mapping_t const mapping\n\t\t\t, address
      const& ip, int port\n\t\t\t, portmap_protocol const protocol, error_code const&
      err\n\t\t\t, portmap_transport, aux::listen_socket_handle const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: should_log_portmap
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log_portmap(portmap_transport) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: log_portmap
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_portmap(portmap_transport, char const* msg, aux::listen_socket_handle
      const&) const override
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::enum_routes
      Src: /src/libtorrent/test/test_natpmp.cpp:89,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_natpmp.cpp:92,1
    - Dst: libtorrent::enum_net_interfaces
      Src: /src/libtorrent/test/test_natpmp.cpp:95,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_natpmp.cpp:98,1
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_natpmp.cpp:104,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_natpmp.cpp:104,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_natpmp.cpp:104,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_natpmp.cpp:105,1
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_natpmp.cpp:107,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_natpmp.cpp:107,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_natpmp.cpp:107,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/test/test_natpmp.cpp:109,1
    - Dst: interface_address::is_loopback
      Src: /src/libtorrent/test/test_natpmp.cpp:110,1
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_natpmp.cpp:111,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_natpmp.cpp:111,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_natpmp.cpp:111,1
    - Dst: destination::is_unspecified
      Src: /src/libtorrent/test/test_natpmp.cpp:112,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_natpmp.cpp:112,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_natpmp.cpp:113,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_natpmp.cpp:118,1
    - Dst: std::make_shared<natpmp>
      Src: /src/libtorrent/test/test_natpmp.cpp:136,1
    - Dst: auto::start
      Src: /src/libtorrent/test/test_natpmp.cpp:137,1
    - Dst: auto::add_mapping
      Src: /src/libtorrent/test/test_natpmp.cpp:141,1
    - Dst: atoi
      Src: /src/libtorrent/test/test_natpmp.cpp:142,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_natpmp.cpp:142,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_natpmp.cpp:142,1
    - Dst: atoi
      Src: /src/libtorrent/test/test_natpmp.cpp:142,1
    - Dst: auto::add_mapping
      Src: /src/libtorrent/test/test_natpmp.cpp:143,1
    - Dst: atoi
      Src: /src/libtorrent/test/test_natpmp.cpp:143,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_natpmp.cpp:144,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_natpmp.cpp:144,1
    - Dst: atoi
      Src: /src/libtorrent/test/test_natpmp.cpp:144,1
    - Dst: deadline_timer::expires_after
      Src: /src/libtorrent/test/test_natpmp.cpp:146,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_natpmp.cpp:146,1
    - Dst: deadline_timer::async_wait
      Src: /src/libtorrent/test/test_natpmp.cpp:147,1
    - Dst: io_context::io_context::stop
      Src: /src/libtorrent/test/test_natpmp.cpp:147,1
    - Dst: io_context::restart
      Src: /src/libtorrent/test/test_natpmp.cpp:152,1
    - Dst: io_context::run
      Src: /src/libtorrent/test/test_natpmp.cpp:153,1
    - Dst: deadline_timer::expires_after
      Src: /src/libtorrent/test/test_natpmp.cpp:154,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_natpmp.cpp:154,1
    - Dst: deadline_timer::async_wait
      Src: /src/libtorrent/test/test_natpmp.cpp:155,1
    - Dst: io_context::io_context::stop
      Src: /src/libtorrent/test/test_natpmp.cpp:155,1
    - Dst: auto::delete_mapping
      Src: /src/libtorrent/test/test_natpmp.cpp:159,1
    - Dst: io_context::restart
      Src: /src/libtorrent/test/test_natpmp.cpp:162,1
    - Dst: io_context::run
      Src: /src/libtorrent/test/test_natpmp.cpp:163,1
    - Dst: auto::close
      Src: /src/libtorrent/test/test_natpmp.cpp:164,1
    - Dst: io_context::restart
      Src: /src/libtorrent/test/test_natpmp.cpp:166,1
    - Dst: io_context::run
      Src: /src/libtorrent/test/test_natpmp.cpp:167,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 169
    functionName: main
    functionSourceFile: /src/libtorrent/test/test_natpmp.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - seconds
    - std::vector::begin
    - deadline_timer::expires_after
    - deadline_timer::async_wait
    - std::vector::end
    - io_context::restart
    - auto::add_mapping
    - atoi
    - error_code::message
    - interface_address::is_loopback
    - auto::delete_mapping
    - interface_address::is_v4
    - io_context::io_context::stop
    - destination::is_unspecified
    - std::find_if
    - auto::start
    - auto::close
    - std::make_shared<natpmp>
    - libtorrent::enum_routes
    - libtorrent::enum_net_interfaces
    - string_view
    - local_endpoint
    - io_context::run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: unit_test::test_counter
    functionSourceFile: /src/libtorrent/test/test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test.cpp:57,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:58,1
    - Dst: push_back
      Src: /src/libtorrent/test/test.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - err
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: unit_test::report_failure
    functionSourceFile: /src/libtorrent/test/test.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::snprintf
    - std::printf
    linkageType: ''
    returnType: void
    signature: void report_failure(char const* err, char const* file, int line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/test/test.cpp:68,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:72,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:81,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:87,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:94,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 100
    functionName: unit_test::print_failures
    functionSourceFile: /src/libtorrent/test/test.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    - strlen
    linkageType: ''
    returnType: int
    signature: int print_failures()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: unit_test::test_counter
    functionSourceFile: /src/libtorrent/test/test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test.cpp:57,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:58,1
    - Dst: push_back
      Src: /src/libtorrent/test/test.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - err
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: unit_test::report_failure
    functionSourceFile: /src/libtorrent/test/test.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::snprintf
    - std::printf
    linkageType: ''
    returnType: void
    signature: void report_failure(char const* err, char const* file, int line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/test/test.cpp:68,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:72,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:81,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:87,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:94,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test.cpp:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 100
    functionName: unit_test::print_failures
    functionSourceFile: /src/libtorrent/test/test.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    - strlen
    linkageType: ''
    returnType: int
    signature: int print_failures()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:59,1
    - Dst: empty
      Src: /src/libtorrent/test/test_ip_filter.cpp:59,1
    - Dst: empty
      Src: /src/libtorrent/test/test_ip_filter.cpp:60,1
    - Dst: front
      Src: /src/libtorrent/test/test_ip_filter.cpp:62,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:64,1
    - Dst: front
      Src: /src/libtorrent/test/test_ip_filter.cpp:64,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:64,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:65,1
    - Dst: back
      Src: /src/libtorrent/test/test_ip_filter.cpp:65,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:65,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:69,1
    - Dst: front
      Src: /src/libtorrent/test/test_ip_filter.cpp:69,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:69,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:70,1
    - Dst: back
      Src: /src/libtorrent/test/test_ip_filter.cpp:70,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:70,1
    - Dst: begin
      Src: /src/libtorrent/test/test_ip_filter.cpp:73,1
    - Dst: std::next
      Src: /src/libtorrent/test/test_ip_filter.cpp:73,1
    - Dst: begin
      Src: /src/libtorrent/test/test_ip_filter.cpp:73,1
    - Dst: end
      Src: /src/libtorrent/test/test_ip_filter.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ip_filter.cpp:76,1
    - Dst: access
      Src: /src/libtorrent/test/test_ip_filter.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ip_filter.cpp:77,1
    - Dst: access
      Src: /src/libtorrent/test/test_ip_filter.cpp:77,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:78,1
    - Dst: libtorrent::aux::plus_one
      Src: /src/libtorrent/test/test_ip_filter.cpp:78,1
    - Dst: auto::last::to_bytes
      Src: /src/libtorrent/test/test_ip_filter.cpp:78,1
    - Dst: first::to_bytes
      Src: /src/libtorrent/test/test_ip_filter.cpp:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' r'
    - ' f'
    argTypes:
    - std::vector<ip_range<T>>
    - ip_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: test_rules_invariant
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::aux::plus_one
    - access
    - auto::last::to_bytes
    - begin
    - empty
    - end
    - first::to_bytes
    - front
    - std::next
    - back
    - addr
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_rules_invariant(std::vector<ip_range<T>> const& r, ip_filter
      const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session::get_ip_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:85,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ip_filter.cpp:86,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_ip_filter.cpp:86,1
    - Dst: export_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - export_filter
    - TEST_EQUAL
    - session::get_ip_filter
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_get_ip_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:100,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:100,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:100,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:101,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:101,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:101,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_ip_filter.cpp:103,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:103,1
    - Dst: test_rules_invariant
      Src: /src/libtorrent/test/test_ip_filter.cpp:104,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - test_rules_invariant
    - std::get<0>
    - ip_filter::add_rule
    - ip_filter::export_filter
    - addr
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(joining_ranges_at_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:113,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:113,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:113,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:114,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:114,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:114,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_ip_filter.cpp:116,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:116,1
    - Dst: test_rules_invariant
      Src: /src/libtorrent/test/test_ip_filter.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - test_rules_invariant
    - std::get<0>
    - ip_filter::add_rule
    - ip_filter::export_filter
    - addr
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(joining_ranges_at_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:126,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:126,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:126,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:127,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:127,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:127,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_ip_filter.cpp:129,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:129,1
    - Dst: test_rules_invariant
      Src: /src/libtorrent/test/test_ip_filter.cpp:130,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - test_rules_invariant
    - std::get<0>
    - ip_filter::add_rule
    - ip_filter::export_filter
    - addr
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(joining_overlapping_ranges_at_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:139,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:139,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:139,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:140,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:140,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:140,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_ip_filter.cpp:142,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:142,1
    - Dst: test_rules_invariant
      Src: /src/libtorrent/test/test_ip_filter.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - test_rules_invariant
    - std::get<0>
    - ip_filter::add_rule
    - ip_filter::export_filter
    - addr
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(joining_overlapping_ranges_at_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:152,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:152,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:152,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:153,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:153,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:153,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:154,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:154,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:154,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:155,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:155,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:155,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:157,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:157,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:157,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_ip_filter.cpp:159,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:159,1
    - Dst: test_rules_invariant
      Src: /src/libtorrent/test/test_ip_filter.cpp:160,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:164,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:164,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:165,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:165,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:166,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 169
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - test_rules_invariant
    - std::get<0>
    - ip_filter::add_rule
    - ip_filter::export_filter
    - addr
    - addr4
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(joining_multiple_overlapping_ranges_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:175,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:175,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:175,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:176,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:176,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:176,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:177,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:177,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:177,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:178,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:178,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:178,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:180,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:180,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:180,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_ip_filter.cpp:182,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:182,1
    - Dst: test_rules_invariant
      Src: /src/libtorrent/test/test_ip_filter.cpp:183,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:187,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:187,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:188,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:188,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:189,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_ip_filter.cpp:189,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - test_rules_invariant
    - std::get<0>
    - ip_filter::add_rule
    - ip_filter::export_filter
    - addr
    - addr4
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(joining_multiple_overlapping_ranges_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr6
      Src: /src/libtorrent/test/test_ip_filter.cpp:200,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_ip_filter.cpp:200,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_ip_filter.cpp:201,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_ip_filter.cpp:201,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_ip_filter.cpp:202,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_ip_filter.cpp:202,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:206,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:206,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:206,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:207,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:207,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:207,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_ip_filter.cpp:210,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/test/test_ip_filter.cpp:210,1
    - Dst: test_rules_invariant
      Src: /src/libtorrent/test/test_ip_filter.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - addr6
    - test_rules_invariant
    - ip_filter::add_rule
    - ip_filter::export_filter
    - addr
    - std::get<1>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:220,1
    - Dst: ip_filter::empty
      Src: /src/libtorrent/test/test_ip_filter.cpp:220,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:222,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:222,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:223,1
    - Dst: ip_filter::empty
      Src: /src/libtorrent/test/test_ip_filter.cpp:223,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:228,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:228,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:228,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:229,1
    - Dst: ip_filter::empty
      Src: /src/libtorrent/test/test_ip_filter.cpp:229,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:234,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:234,1
    - Dst: addr
      Src: /src/libtorrent/test/test_ip_filter.cpp:234,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:235,1
    - Dst: ip_filter::empty
      Src: /src/libtorrent/test/test_ip_filter.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 237
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - addr
    - ip_filter::empty
    - TEST_CHECK
    - ip_filter::add_rule
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(default_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:244,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:245,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:246,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:246,1
    - Dst: port_filter::add_rule
      Src: /src/libtorrent/test/test_ip_filter.cpp:249,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:251,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:251,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:252,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:252,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:253,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:253,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:254,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:254,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:255,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:255,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:256,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:256,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:257,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:257,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_filter.cpp:258,1
    - Dst: port_filter::access
      Src: /src/libtorrent/test/test_ip_filter.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 259
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - port_filter::add_rule
    - port_filter::access
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(port_filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/test/test_piece_picker.cpp:64,1
    - Dst: typed_bitfield::end_index
      Src: /src/libtorrent/test/test_piece_picker.cpp:66,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:67,1
    - Dst: typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - have_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: string2vec
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - typed_bitfield::end_index
    - typed_bitfield::set_bit
    - strlen
    linkageType: ''
    returnType: typed_bitfield<piece_index_t>
    signature: typed_bitfield<piece_index_t> string2vec(char const* have_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: initializer
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initializer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: initializer
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initializer()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/test/test_piece_picker.cpp:122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_piece_picker.cpp:123,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_piece_picker.cpp:123,1
    - Dst: std::make_shared<piece_picker>
      Src: /src/libtorrent/test/test_piece_picker.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:126,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:128,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:130,1
    - Dst: assert
      Src: /src/libtorrent/test/test_piece_picker.cpp:131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_piece_picker.cpp:135,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:136,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:139,1
    - Dst: auto::end_index
      Src: /src/libtorrent/test/test_piece_picker.cpp:141,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:157,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:157,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:157,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:160,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:162,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:162,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:162,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:163,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:164,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:164,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:164,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:167,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:168,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:169,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:171,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:171,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:172,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:172,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:172,1
    - Dst: auto::piece_info
      Src: /src/libtorrent/test/test_piece_picker.cpp:176,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:178,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:179,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:182,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:184,1
    - Dst: auto::is_piece_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:184,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:187,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:189,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:194,1
    - Dst: auto::piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:194,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:197,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:200,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:202,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:202,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:202,1
    - Dst: auto::get_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:206,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:207,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:209,1
    - Dst: assert
      Src: /src/libtorrent/test/test_piece_picker.cpp:210,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:211,1
    - Dst: auto::check_invariant
      Src: /src/libtorrent/test/test_piece_picker.cpp:215,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 4
    argNames:
    - availability
    - have_str
    - priority
    - partial
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (avail >= 0)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libtorrent/test/test_piece_picker.cpp
    - condition: (avail >= 0)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/libtorrent/test/test_piece_picker.cpp
    constantsTouched: []
    func_position:
      end: 218
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 218
    functionName: setup_picker
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::get_availability
    - auto::piece_info
    - auto::piece_priority
    - strlen
    - auto::mark_as_downloading
    - piece_block
    - auto::is_downloaded
    - auto::is_requested
    - auto::is_finished
    - auto::mark_as_writing
    - TEST_EQUAL
    - assert
    - auto::end_index
    - TORRENT_ASSERT
    - auto::set_piece_priority
    - auto::inc_refcount
    - auto::piece_flushed
    - piece_index_t
    - std::make_shared<piece_picker>
    - TEST_CHECK
    - auto::is_piece_finished
    - string2vec
    - auto::mark_as_finished
    - auto::check_invariant
    - std::int64_t
    linkageType: ''
    returnType: std::shared_ptr<piece_picker>
    signature: "std::shared_ptr<piece_picker> setup_picker(\n\tchar const* availability\n\t,
      char const* have_str\n\t, char const* priority\n\t, char const* partial\n\t,
      int const piece_size = default_piece_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<piece_picker>::check_invariant
      Src: /src/libtorrent/test/test_piece_picker.cpp:224,1
    - Dst: begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/test/test_piece_picker.cpp:229,1
    - Dst: std::shared_ptr<piece_picker>::num_peers
      Src: /src/libtorrent/test/test_piece_picker.cpp:231,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_piece_picker.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/test/test_piece_picker.cpp:237,1
    - Dst: std::insert_iterator<std::set<piece_block>>
      Src: /src/libtorrent/test/test_piece_picker.cpp:238,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:238,1
    - Dst: size
      Src: /src/libtorrent/test/test_piece_picker.cpp:239,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:239,1
    - Dst: size
      Src: /src/libtorrent/test/test_piece_picker.cpp:240,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - p
    - ' picked'
    argTypes:
    - std::shared_ptr<piece_picker>
    - std::vector<piece_block>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 241
    functionName: verify_pick
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<piece_picker>::check_invariant
    - std::shared_ptr<piece_picker>::num_peers
    - begin
    - end
    - std::copy
    - std::set::end
    - std::set::size
    - std::insert_iterator<std::set<piece_block>>
    - size
    linkageType: ''
    returnType: bool
    signature: "bool verify_pick(std::shared_ptr<piece_picker> p\n\t, std::vector<piece_block>
      const& picked, bool allow_multi_blocks = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:246,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_piece_picker.cpp:247,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_piece_picker.cpp:249,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_piece_picker.cpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::shared_ptr<piece_picker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: print_availability
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    - get_availability
    linkageType: ''
    returnType: void
    signature: void print_availability(std::shared_ptr<piece_picker> const& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:256,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:257,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' p'
    - a
    argTypes:
    - std::shared_ptr<piece_picker>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: verify_availability
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - aux::vector::end
    - aux::vector::begin
    - get_availability
    linkageType: ''
    returnType: bool
    signature: bool verify_availability(std::shared_ptr<piece_picker> const& p, char
      const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' picked'
    argTypes:
    - std::vector<piece_block>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: print_pick
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_pick(std::vector<piece_block> const& picked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:283,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:283,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:287,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' p'
    - availability
    - num_blocks
    - prefer_contiguous_blocks
    - peer_struct_arg
    argTypes:
    - std::shared_ptr<piece_picker>
    - char*
    - int
    - int
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 289
    functionName: pick_pieces
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 1
    functionsReached:
    - pick_pieces
    - print_pick
    - string2vec
    - verify_pick
    - TEST_CHECK
    linkageType: ''
    returnType: std::vector<piece_block>
    signature: "std::vector<piece_block> pick_pieces(std::shared_ptr<piece_picker>
      const& p\n\t, char const* availability\n\t, int num_blocks\n\t, int prefer_contiguous_blocks\n\t,
      torrent_peer* peer_struct_arg\n\t, picker_options_t const options = piece_picker::rarest_first\n\t,
      std::vector<piece_index_t> const& suggested_pieces = empty_vector)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:294,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:296,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::shared_ptr<piece_picker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: test_pick
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - std::vector::size
    - piece_index_t
    linkageType: ''
    returnType: piece_index_t
    signature: "piece_index_t test_pick(std::shared_ptr<piece_picker> const& p\n\t,
      picker_options_t const options = piece_picker::rarest_first)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/test/test_piece_picker.cpp:64,1
    - Dst: typed_bitfield::end_index
      Src: /src/libtorrent/test/test_piece_picker.cpp:66,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:67,1
    - Dst: typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - have_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: string2vec
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - typed_bitfield::end_index
    - typed_bitfield::set_bit
    - strlen
    linkageType: ''
    returnType: typed_bitfield<piece_index_t>
    signature: typed_bitfield<piece_index_t> string2vec(char const* have_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: initializer
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initializer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: initializer
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initializer()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/test/test_piece_picker.cpp:122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_piece_picker.cpp:123,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_piece_picker.cpp:123,1
    - Dst: std::make_shared<piece_picker>
      Src: /src/libtorrent/test/test_piece_picker.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:126,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:128,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:130,1
    - Dst: assert
      Src: /src/libtorrent/test/test_piece_picker.cpp:131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_piece_picker.cpp:135,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:136,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:139,1
    - Dst: auto::end_index
      Src: /src/libtorrent/test/test_piece_picker.cpp:141,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:157,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:157,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:157,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:160,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:162,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:162,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:162,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:163,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:164,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:164,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:164,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:167,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:168,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:169,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:171,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:171,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:172,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:172,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:172,1
    - Dst: auto::piece_info
      Src: /src/libtorrent/test/test_piece_picker.cpp:176,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:178,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:179,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:182,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:184,1
    - Dst: auto::is_piece_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:184,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:187,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:189,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:194,1
    - Dst: auto::piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:194,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:197,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:200,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:202,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:202,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:202,1
    - Dst: auto::get_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:206,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:207,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:209,1
    - Dst: assert
      Src: /src/libtorrent/test/test_piece_picker.cpp:210,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:211,1
    - Dst: auto::check_invariant
      Src: /src/libtorrent/test/test_piece_picker.cpp:215,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 4
    argNames:
    - availability
    - have_str
    - priority
    - partial
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (avail >= 0)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libtorrent/test/test_piece_picker.cpp
    - condition: (avail >= 0)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/libtorrent/test/test_piece_picker.cpp
    constantsTouched: []
    func_position:
      end: 218
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 218
    functionName: setup_picker
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::get_availability
    - auto::piece_info
    - auto::piece_priority
    - strlen
    - auto::mark_as_downloading
    - piece_block
    - auto::is_downloaded
    - auto::is_requested
    - auto::is_finished
    - auto::mark_as_writing
    - TEST_EQUAL
    - assert
    - auto::end_index
    - TORRENT_ASSERT
    - auto::set_piece_priority
    - auto::inc_refcount
    - auto::piece_flushed
    - piece_index_t
    - std::make_shared<piece_picker>
    - TEST_CHECK
    - auto::is_piece_finished
    - string2vec
    - auto::mark_as_finished
    - auto::check_invariant
    - std::int64_t
    linkageType: ''
    returnType: std::shared_ptr<piece_picker>
    signature: "std::shared_ptr<piece_picker> setup_picker(\n\tchar const* availability\n\t,
      char const* have_str\n\t, char const* priority\n\t, char const* partial\n\t,
      int const piece_size = default_piece_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<piece_picker>::check_invariant
      Src: /src/libtorrent/test/test_piece_picker.cpp:224,1
    - Dst: begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/test/test_piece_picker.cpp:229,1
    - Dst: std::shared_ptr<piece_picker>::num_peers
      Src: /src/libtorrent/test/test_piece_picker.cpp:231,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_piece_picker.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/test/test_piece_picker.cpp:237,1
    - Dst: std::insert_iterator<std::set<piece_block>>
      Src: /src/libtorrent/test/test_piece_picker.cpp:238,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:238,1
    - Dst: size
      Src: /src/libtorrent/test/test_piece_picker.cpp:239,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:239,1
    - Dst: size
      Src: /src/libtorrent/test/test_piece_picker.cpp:240,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - p
    - ' picked'
    argTypes:
    - std::shared_ptr<piece_picker>
    - std::vector<piece_block>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 241
    functionName: verify_pick
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<piece_picker>::check_invariant
    - std::shared_ptr<piece_picker>::num_peers
    - begin
    - end
    - std::copy
    - std::set::end
    - std::set::size
    - std::insert_iterator<std::set<piece_block>>
    - size
    linkageType: ''
    returnType: bool
    signature: "bool verify_pick(std::shared_ptr<piece_picker> p\n\t, std::vector<piece_block>
      const& picked, bool allow_multi_blocks = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:246,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_piece_picker.cpp:247,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_piece_picker.cpp:249,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_piece_picker.cpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::shared_ptr<piece_picker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: print_availability
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    - get_availability
    linkageType: ''
    returnType: void
    signature: void print_availability(std::shared_ptr<piece_picker> const& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:256,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:257,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' p'
    - a
    argTypes:
    - std::shared_ptr<piece_picker>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: verify_availability
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - aux::vector::end
    - aux::vector::begin
    - get_availability
    linkageType: ''
    returnType: bool
    signature: bool verify_availability(std::shared_ptr<piece_picker> const& p, char
      const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' picked'
    argTypes:
    - std::vector<piece_block>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: print_pick
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_pick(std::vector<piece_block> const& picked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:283,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:283,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:287,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' p'
    - availability
    - num_blocks
    - prefer_contiguous_blocks
    - peer_struct_arg
    argTypes:
    - std::shared_ptr<piece_picker>
    - char*
    - int
    - int
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 289
    functionName: pick_pieces
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 3
    functionsReached:
    - pick_pieces
    - print_pick
    - string2vec
    - verify_pick
    - TEST_CHECK
    linkageType: ''
    returnType: std::vector<piece_block>
    signature: "std::vector<piece_block> pick_pieces(std::shared_ptr<piece_picker>
      const& p\n\t, char const* availability\n\t, int num_blocks\n\t, int prefer_contiguous_blocks\n\t,
      torrent_peer* peer_struct_arg\n\t, picker_options_t const options = piece_picker::rarest_first\n\t,
      std::vector<piece_index_t> const& suggested_pieces = empty_vector)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:294,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:296,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::shared_ptr<piece_picker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: test_pick
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - std::vector::size
    - piece_index_t
    linkageType: ''
    returnType: piece_index_t
    signature: "piece_index_t test_pick(std::shared_ptr<piece_picker> const& p\n\t,
      picker_options_t const options = piece_picker::rarest_first)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:310,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:310,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:310,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:311,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:311,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:311,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:312,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:312,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:312,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:314,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:314,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:314,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:315,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:315,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:315,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:316,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:316,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:316,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:318,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:318,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:318,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:319,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:319,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:319,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:320,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:320,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:320,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:321,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:321,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:321,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:322,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:322,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:322,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:323,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:323,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:323,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:324,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:324,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - piece_block
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:329,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:332,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:332,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:333,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:334,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:335,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:335,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:338,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:339,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:339,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:340,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:341,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:342,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:342,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:345,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:346,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:346,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:347,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:348,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:349,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:349,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:352,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:353,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:353,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:354,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:355,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:356,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 357
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::is_finished
    - auto::mark_as_finished
    - auto::abort_download
    - auto::mark_as_downloading
    - auto::is_downloaded
    - auto::is_requested
    - setup_picker
    - auto::mark_as_writing
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(abort_download_states)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:362,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:363,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:365,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:365,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:366,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:366,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:366,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:366,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:366,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:366,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:368,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:369,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:371,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:371,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:372,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:372,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:372,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:372,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:372,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:372,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:374,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:375,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:377,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:377,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:378,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:378,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:378,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:378,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:378,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:378,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:380,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:381,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:383,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:383,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:384,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:384,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:384,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:384,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:384,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:384,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:386,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:387,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:388,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:389,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:391,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:391,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:392,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:392,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:392,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:392,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:392,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:392,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:394,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:395,1
    - Dst: auto::write_failed
      Src: /src/libtorrent/test/test_piece_picker.cpp:396,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:397,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:399,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:399,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:399,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:399,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:399,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:399,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:400,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:400,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:400,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:400,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:400,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:401,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:401,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:401,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:401,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:401,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:401,1
    - Dst: auto::restore_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:402,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:403,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:405,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:405,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:406,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:406,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:406,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:406,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:406,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:406,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:408,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:409,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:410,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:411,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:412,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:414,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:414,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:415,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:415,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:415,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:415,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:415,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 416
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - auto::abort_download
    - auto::mark_as_finished
    - auto::mark_as_downloading
    - std::find
    - piece_block
    - auto::restore_piece
    - auto::end
    - auto::is_requested
    - setup_picker
    - auto::begin
    - auto::write_failed
    - auto::mark_as_writing
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(abort_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:420,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:422,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:423,1
    - Dst: auto::piece_info
      Src: /src/libtorrent/test/test_piece_picker.cpp:424,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:425,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:426,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:427,1
    - Dst: auto::piece_info
      Src: /src/libtorrent/test/test_piece_picker.cpp:428,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:429,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:430,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:431,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:433,1
    - Dst: auto::is_requested
      Src: /src/libtorrent/test/test_piece_picker.cpp:433,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:434,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:434,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:434,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:434,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:434,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 435
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::mark_as_finished
    - auto::abort_download
    - pick_pieces
    - auto::mark_as_downloading
    - auto::piece_info
    - std::find
    - piece_block
    - auto::end
    - auto::is_requested
    - setup_picker
    - auto::begin
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(abort_download2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:439,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:441,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:442,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:443,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:444,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:445,1
    - Dst: auto::get_downloaders
      Src: /src/libtorrent/test/test_piece_picker.cpp:448,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:449,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:449,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:450,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:451,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:452,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:453,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:456,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:457,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:458,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:459,1
    - Dst: auto::get_downloaders
      Src: /src/libtorrent/test/test_piece_picker.cpp:462,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:464,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:464,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:465,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:466,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:467,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:468,1
    - Dst: auto::get_downloaders
      Src: /src/libtorrent/test/test_piece_picker.cpp:474,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:476,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:476,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:477,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:478,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:479,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:480,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:485,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:489,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:489,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:491,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_piece_picker.cpp:493,1
    - Dst: auto::num_peers
      Src: /src/libtorrent/test/test_piece_picker.cpp:493,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:494,1
    - Dst: auto::num_peers
      Src: /src/libtorrent/test/test_piece_picker.cpp:494,1
    - Dst: auto::abort_download
      Src: /src/libtorrent/test/test_piece_picker.cpp:496,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_piece_picker.cpp:498,1
    - Dst: auto::num_peers
      Src: /src/libtorrent/test/test_piece_picker.cpp:498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:499,1
    - Dst: auto::num_peers
      Src: /src/libtorrent/test/test_piece_picker.cpp:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 500
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - auto::abort_download
    - auto::mark_as_downloading
    - piece_block
    - auto::num_peers
    - auto::get_downloaders
    - setup_picker
    - auto::mark_as_writing
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_downloaders)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:506,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:507,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - test_pick
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pick_lowest_availability)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:517,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:518,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:520,1
    - Dst: std::map::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:520,1
    - Dst: std::map::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:521,1
    - Dst: std::map::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:522,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 525
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::map::size
    - std::map::begin
    - std::map::end
    - setup_picker
    - test_pick
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(random_pick_at_same_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:531,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:532,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:532,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:534,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:535,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:535,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:537,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:538,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 539
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - test_pick
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pick_highest_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:543,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:544,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:547,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:549,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:549,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:549,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:549,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:556,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:557,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 541
    functionDepth: 4
    functionLinenumber: 541
    functionLinenumberEnd: 559
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - piece_block
    - auto::size
    - std::size_t
    - setup_picker
    - test_pick
    - piece_index_t
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reverse_rarest_first)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:567,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:568,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:570,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:570,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:571,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:572,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:572,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:574,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:575,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:577,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:577,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:578,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:579,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:579,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:581,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:582,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:584,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:584,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:585,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:586,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:586,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:586,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 588
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - pick_pieces
    - piece_block
    - auto::size
    - std::size_t
    - setup_picker
    - piece_index_t
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pick_whole_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:595,1
    - Dst: auto::distributed_copies
      Src: /src/libtorrent/test/test_piece_picker.cpp:596,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:597,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_piece_picker.cpp:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 598
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - auto::distributed_copies
    - TEST_CHECK
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(distributed_copies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:603,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:604,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:604,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:605,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:605,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:606,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:606,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:607,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 608
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - test_pick
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(filtered_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:613,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:614,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:614,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:615,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:615,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:616,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:617,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:618,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:618,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:619,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:619,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:620,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:621,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:621,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:622,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 623
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::is_piece_flushed
    - pick_pieces
    - auto::front
    - auto::size
    - auto::we_dont_have
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(we_dont_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:628,1
    - Dst: auto::inc_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:629,1
    - Dst: auto::get_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:632,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:633,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:633,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:634,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:635,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:636,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:637,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:638,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:640,1
    - Dst: auto::get_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:642,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:643,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:643,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:645,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:646,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:647,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:648,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 650
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::get_availability
    - setup_picker
    - auto::dec_refcount
    - auto::inc_refcount_all
    - aux::vector::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dec_refcount_split_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:655,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:656,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:657,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:659,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:659,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:660,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:660,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:661,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:661,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:662,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:662,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:663,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:663,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:664,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:664,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:666,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:667,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:667,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:668,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:668,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:669,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:669,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:670,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:670,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:671,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:671,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:672,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:672,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:674,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:676,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:676,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:677,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:677,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:678,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:678,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:679,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:679,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:680,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:680,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:681,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:681,1
    - Dst: auto::resize
      Src: /src/libtorrent/test/test_piece_picker.cpp:683,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:686,1
    - Dst: auto::piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:686,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:688,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:688,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:689,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:689,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:690,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:690,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:691,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:691,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:692,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:692,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:693,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 694
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - TEST_EQUAL
    - auto::have
    - auto::have_want
    - auto::piece_priority
    - auto::set_piece_priority
    - auto::piece_flushed
    - auto::resize
    - setup_picker
    - auto::set_pad_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:698,1
    - Dst: auto::we_have_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:700,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:702,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:702,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:703,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:703,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:704,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:704,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:706,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:706,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:707,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:707,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:708,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:708,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:710,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:710,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:711,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:711,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:712,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 713
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - TEST_EQUAL
    - auto::we_have_all
    - auto::have
    - auto::have_want
    - setup_picker
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(we_have_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:718,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:719,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:720,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:720,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:721,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:722,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:722,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:723,1
    - Dst: auto::num_peers
      Src: /src/libtorrent/test/test_piece_picker.cpp:723,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:723,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:724,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:725,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:725,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:726,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 727
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - auto::front
    - auto::mark_as_downloading
    - auto::num_peers
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dont_pick_requested_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:732,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:733,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:734,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:734,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:735,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:736,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:736,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:737,1
    - Dst: auto::num_peers
      Src: /src/libtorrent/test/test_piece_picker.cpp:737,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:737,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:738,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:739,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:739,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:740,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:740,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:741,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 742
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - auto::front
    - auto::mark_as_downloading
    - auto::num_peers
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(downloading_piece_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:758,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:759,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:761,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:761,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:762,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:762,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:762,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:763,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 744
    functionDepth: 3
    functionLinenumber: 744
    functionLinenumberEnd: 764
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - auto::front
    - piece_block
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_piece_order_rarest_first)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:771,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:772,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:774,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:774,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:775,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:775,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 776
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - auto::front
    - piece_block
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_piece_order_most_complete)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:782,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:783,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:785,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:785,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:786,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:786,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:786,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:787,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:787,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:788,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 789
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - auto::front
    - piece_block
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_piece_order_sequential)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:794,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:795,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:797,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:797,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:798,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:798,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:798,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:799,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:799,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:800,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 801
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - auto::front
    - piece_block
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(random_picking_downloading_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:807,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:808,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:810,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:810,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:811,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:811,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:811,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:812,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:812,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:813,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 803
    functionDepth: 3
    functionLinenumber: 803
    functionLinenumberEnd: 814
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - auto::front
    - piece_block
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(random_picking_downloading_piece_prefer_contiguous)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:821,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:822,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:824,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:824,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:825,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:826,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 827
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - pick_pieces
    - print_pick
    - verify_pick
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(prefer_contiguous_no_duplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:834,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:836,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:839,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:839,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:840,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:841,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - pick_pieces
    - print_pick
    - verify_pick
    - auto::size
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(prefer_contiguous_suggested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:847,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:848,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:850,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:850,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:851,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:852,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:852,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:852,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 854
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - piece_block
    - auto::size
    - std::size_t
    - setup_picker
    - piece_index_t
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sequential_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:859,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:860,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:862,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:862,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:863,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:864,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:864,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:864,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 866
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - piece_block
    - auto::size
    - std::size_t
    - setup_picker
    - piece_index_t
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reverse_sequential_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:871,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:872,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:877,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:877,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:881,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:881,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:881,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:884,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:885,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:885,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 886
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - pick_pieces
    - auto::size
    - std::size_t
    - setup_picker
    - piece_index_t
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(priority_sequential_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:891,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:894,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:894,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:895,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:895,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:896,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:898,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:898,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:899,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:899,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:900,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:900,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:901,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 902
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::cursor
    - auto::is_finished
    - auto::reverse_cursor
    - setup_picker
    - auto::piece_flushed
    - auto::is_seeding
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_up_we_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:907,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:910,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:910,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:911,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:911,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:912,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:914,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:914,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:915,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:915,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:916,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:916,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:917,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 904
    functionDepth: 3
    functionLinenumber: 904
    functionLinenumberEnd: 918
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::cursor
    - auto::is_finished
    - auto::set_piece_priority
    - auto::reverse_cursor
    - setup_picker
    - auto::is_seeding
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_up_set_piece_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:923,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:926,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:926,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:927,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:927,1
    - Dst: next
      Src: /src/libtorrent/test/test_piece_picker.cpp:927,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:928,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:930,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:930,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:931,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:931,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:932,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:932,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:933,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 920
    functionDepth: 3
    functionLinenumber: 920
    functionLinenumberEnd: 934
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::cursor
    - auto::is_finished
    - auto::reverse_cursor
    - next
    - setup_picker
    - auto::piece_flushed
    - auto::is_seeding
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_down_we_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:939,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:942,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:942,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:943,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:943,1
    - Dst: next
      Src: /src/libtorrent/test/test_piece_picker.cpp:943,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:944,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:946,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:946,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:947,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:947,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:948,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:948,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:949,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 950
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::cursor
    - auto::is_finished
    - auto::set_piece_priority
    - auto::reverse_cursor
    - next
    - setup_picker
    - auto::is_seeding
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_down_set_piece_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:955,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:959,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:959,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:960,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:960,1
    - Dst: next
      Src: /src/libtorrent/test/test_piece_picker.cpp:960,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:961,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:962,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:964,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:964,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:965,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:965,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:966,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:966,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:967,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 952
    functionDepth: 3
    functionLinenumber: 952
    functionLinenumberEnd: 968
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::cursor
    - auto::is_finished
    - auto::set_piece_priority
    - auto::reverse_cursor
    - next
    - setup_picker
    - auto::is_seeding
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_in_set_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:973,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:977,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:977,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:978,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:978,1
    - Dst: next
      Src: /src/libtorrent/test/test_piece_picker.cpp:978,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:979,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:980,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:982,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:982,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:983,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:983,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:984,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:984,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:985,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 970
    functionDepth: 3
    functionLinenumber: 970
    functionLinenumberEnd: 986
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::cursor
    - auto::is_finished
    - auto::reverse_cursor
    - next
    - setup_picker
    - auto::piece_flushed
    - auto::is_seeding
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_in_we_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:990,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:991,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:991,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:992,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:992,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:993,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:993,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:994,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:994,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:997,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:998,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:998,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:999,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:999,1
    - Dst: next
      Src: /src/libtorrent/test/test_piece_picker.cpp:999,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1001,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1001,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1002,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:1002,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1003,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1003,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1004,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 988
    functionDepth: 3
    functionLinenumber: 988
    functionLinenumberEnd: 1005
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - auto::cursor
    - auto::we_dont_have
    - auto::reverse_cursor
    - next
    - setup_picker
    - auto::is_seeding
    - auto::is_finished
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_up_we_dont_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1009,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1010,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1010,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1011,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:1011,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1012,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1012,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1013,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1013,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1016,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1017,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1017,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1018,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1018,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1020,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1020,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1021,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:1021,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1022,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1022,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1023,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1007
    functionDepth: 3
    functionLinenumber: 1007
    functionLinenumberEnd: 1024
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - auto::cursor
    - auto::we_dont_have
    - auto::reverse_cursor
    - setup_picker
    - auto::is_seeding
    - auto::is_finished
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_down_we_dont_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1028,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1029,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1029,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1030,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:1030,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1031,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1031,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1032,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1032,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1037,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1038,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1039,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1039,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1040,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1040,1
    - Dst: next
      Src: /src/libtorrent/test/test_piece_picker.cpp:1040,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1042,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1042,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1043,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:1043,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1044,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1044,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1045,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1026
    functionDepth: 3
    functionLinenumber: 1026
    functionLinenumberEnd: 1046
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - auto::cursor
    - auto::we_dont_have
    - auto::reverse_cursor
    - next
    - setup_picker
    - auto::is_seeding
    - auto::is_finished
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors_sweep_out_we_dont_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1051,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1052,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1052,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1053,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1053,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1054,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1055,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1055,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1056,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1056,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1057,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1058,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1058,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1059,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1059,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1060,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1061,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1061,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1062,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1062,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1063,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1064,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1064,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1065,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1065,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1066,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1067,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1068,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1069,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1069,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1070,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1070,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1072,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1073,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1073,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1074,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1074,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1075,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1076,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1076,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1077,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1077,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1078,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1079,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1079,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1080,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1080,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1081,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1082,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1082,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1083,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1083,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1084,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1085,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1085,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1086,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1086,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1087,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1088,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1089,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1090,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1090,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1091,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1091,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1092,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1093,1
    - Dst: auto::cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1093,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1094,1
    - Dst: auto::reverse_cursor
      Src: /src/libtorrent/test/test_piece_picker.cpp:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1095
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::cursor
    - auto::set_piece_priority
    - auto::reverse_cursor
    - setup_picker
    - auto::piece_flushed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(cursors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1101,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1102,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1102,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1104,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1104,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1105,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1105,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1106,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1107,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1108,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1108,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1109,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1109,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1110,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1110,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1112,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1113,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1117,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1117,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1119,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1120,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:1120,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1120,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:1120,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1123,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1124,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1125,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1126,1
    - Dst: auto::piece_priorities
      Src: /src/libtorrent/test/test_piece_picker.cpp:1129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1130,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1130,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1097
    functionDepth: 3
    functionLinenumber: 1097
    functionLinenumberEnd: 1133
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - TEST_EQUAL
    - auto::have
    - std::vector::size
    - auto::have_want
    - auto::mark_as_finished
    - pick_pieces
    - piece_block
    - auto::size
    - auto::set_piece_priority
    - auto::we_dont_have
    - std::size_t
    - auto::piece_priorities
    - setup_picker
    - auto::piece_flushed
    - piece_index_t
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_priorities)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1138,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1139,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1140,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1141,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1142,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1145,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1145,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1146,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:1146,1
    - Dst: auto::restore_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1148,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1150,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1151,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:1151,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1153,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1154,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1155,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1156,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1157,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1159,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1160,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1161,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:1161,1
    - Dst: auto::restore_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1163,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1164,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1165,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1166,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:1166,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1168,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1170,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1170,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1171,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1135
    functionDepth: 3
    functionLinenumber: 1135
    functionLinenumberEnd: 1172
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::mark_as_finished
    - pick_pieces
    - auto::front
    - auto::restore_piece
    - auto::size
    - auto::set_piece_priority
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(restore_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1177,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1178,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1179,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1180,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1183,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1183,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1184,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1184,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1184,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1185,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1185,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1185,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1186,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1186,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1186,1
    - Dst: auto::get_download_queue
      Src: /src/libtorrent/test/test_piece_picker.cpp:1189,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1190,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1190,1
    - Dst: auto::blocks_for_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1191,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1192,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1193,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1195,1
    - Dst: auto::restore_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1199,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1201,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1201,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1201,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1202,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1202,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1202,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1203,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1203,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1204,1
    - Dst: auto::is_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1204,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1204,1
    - Dst: auto::get_download_queue
      Src: /src/libtorrent/test/test_piece_picker.cpp:1207,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1208,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1208,1
    - Dst: auto::blocks_for_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1209,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1210,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1211,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1212,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1215
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_EQUAL
    - auto::mark_as_finished
    - piece_block
    - auto::restore_piece
    - auto::size
    - auto::blocks_for_piece
    - setup_picker
    - auto::is_finished
    - auto::get_download_queue
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(restore_piece_finished_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1220,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1221,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1222,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1223,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1224,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1226,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:1226,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1226,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1227,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:1227,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1227,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1228,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:1228,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1228,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1229,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:1229,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1229,1
    - Dst: auto::get_download_queue
      Src: /src/libtorrent/test/test_piece_picker.cpp:1232,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1233,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1233,1
    - Dst: auto::blocks_for_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1236,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1237,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1238,1
    - Dst: auto::restore_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1242,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1244,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:1244,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1245,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:1245,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1246,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:1246,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1247,1
    - Dst: auto::is_downloaded
      Src: /src/libtorrent/test/test_piece_picker.cpp:1247,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1247,1
    - Dst: auto::get_download_queue
      Src: /src/libtorrent/test/test_piece_picker.cpp:1250,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1251,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1251,1
    - Dst: auto::blocks_for_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1252,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1253,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1255,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1217
    functionDepth: 3
    functionLinenumber: 1217
    functionLinenumberEnd: 1258
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - piece_block
    - auto::restore_piece
    - auto::size
    - auto::is_downloaded
    - auto::blocks_for_piece
    - setup_picker
    - auto::mark_as_writing
    - TEST_CHECK
    - auto::get_download_queue
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(restore_piece_downloading_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1263,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_piece_picker.cpp:1266,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1266,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1267,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1267,1
    - Dst: std::set::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1269,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1272,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1273,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_piece_picker.cpp:1274,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1276,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1260
    functionDepth: 4
    functionLinenumber: 1260
    functionLinenumberEnd: 1277
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::set::clear
    - std::set::size
    - setup_picker
    - test_pick
    - auto::piece_flushed
    - std::set::insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(random_pick)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1283,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1284,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1285,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1288,1
    - Dst: auto::pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1289,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1289,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1292,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1292,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1293,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1295,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1295,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1297,1
    - Dst: auto::pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1298,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1298,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1302,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1302,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1303,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1305,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1305,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1307,1
    - Dst: auto::pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1308,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1308,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1311,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1311,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1312,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1314,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1314,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1317,1
    - Dst: auto::pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1318,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1318,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1322,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1322,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1323,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1325,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1325,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1326,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1326,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1329,1
    - Dst: auto::lock_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1330,1
    - Dst: auto::pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1331,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1331,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1334,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1334,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1335,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1337,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1337,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1338,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1338,1
    - Dst: auto::restore_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1340,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1341,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1342,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1343,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1344,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1345,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1346,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1347,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1349,1
    - Dst: auto::pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1350,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1350,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1353,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1353,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1354,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1356,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1356,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1358,1
    - Dst: auto::pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1359,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1359,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1362,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1362,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1363,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1365,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1365,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_piece_picker.cpp:1367,1
    - Dst: auto::pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1368,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1368,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1371,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1371,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1372,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1374,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1279
    functionDepth: 3
    functionLinenumber: 1279
    functionLinenumberEnd: 1375
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - string2vec
    - std::vector::clear
    - auto::pick_pieces
    - auto::mark_as_downloading
    - verify_pick
    - print_pick
    - auto::restore_piece
    - auto::lock_piece
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(picking_downloading_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1380,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1381,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1382,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1383,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1384,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1385,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1386,1
    - Dst: auto::get_downloaders
      Src: /src/libtorrent/test/test_piece_picker.cpp:1393,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1394,1
    - Dst: auto::get_downloaders
      Src: /src/libtorrent/test/test_piece_picker.cpp:1395,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1396,1
    - Dst: auto::get_downloaders
      Src: /src/libtorrent/test/test_piece_picker.cpp:1397,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1398,1
    - Dst: auto::get_downloaders
      Src: /src/libtorrent/test/test_piece_picker.cpp:1399,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1400,1
    - Dst: auto::clear_peer
      Src: /src/libtorrent/test/test_piece_picker.cpp:1402,1
    - Dst: auto::get_downloaders
      Src: /src/libtorrent/test/test_piece_picker.cpp:1403,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1377
    functionDepth: 3
    functionLinenumber: 1377
    functionLinenumberEnd: 1405
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::mark_as_downloading
    - auto::get_downloaders
    - setup_picker
    - auto::clear_peer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(clear_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1410,1
    - Dst: auto::distributed_copies
      Src: /src/libtorrent/test/test_piece_picker.cpp:1411,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1413,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_piece_picker.cpp:1413,1
    - Dst: auto::inc_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1414,1
    - Dst: auto::distributed_copies
      Src: /src/libtorrent/test/test_piece_picker.cpp:1415,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1416,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_piece_picker.cpp:1416,1
    - Dst: auto::dec_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1417,1
    - Dst: auto::distributed_copies
      Src: /src/libtorrent/test/test_piece_picker.cpp:1418,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1420,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_piece_picker.cpp:1420,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1421,1
    - Dst: auto::dec_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1422,1
    - Dst: auto::distributed_copies
      Src: /src/libtorrent/test/test_piece_picker.cpp:1423,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1425,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_piece_picker.cpp:1425,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1426,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1407
    functionDepth: 4
    functionLinenumber: 1407
    functionLinenumberEnd: 1427
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    - auto::dec_refcount_all
    - test_pick
    - setup_picker
    - auto::distributed_copies
    - auto::inc_refcount
    - auto::inc_refcount_all
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(have_all_have_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1432,1
    - Dst: auto::distributed_copies
      Src: /src/libtorrent/test/test_piece_picker.cpp:1433,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1435,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_piece_picker.cpp:1435,1
    - Dst: auto::inc_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1436,1
    - Dst: auto::distributed_copies
      Src: /src/libtorrent/test/test_piece_picker.cpp:1437,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1439,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_piece_picker.cpp:1439,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1440,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1429
    functionDepth: 4
    functionLinenumber: 1429
    functionLinenumberEnd: 1441
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    - test_pick
    - setup_picker
    - auto::distributed_copies
    - auto::inc_refcount_all
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(have_all_have_none_seq_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1446,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1447,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1447,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1449,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1450,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1450,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1452,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1453,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1454,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1454,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1457,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1458,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1460,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1461,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1461,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1462,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1462,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1463,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1463,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1464,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1464,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1465,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1465,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1466,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1466,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1467,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1467,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1468,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1469,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1471,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1471,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1472,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1472,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1473,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1473,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1474,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1474,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1475,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1475,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1476,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1476,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1477,1
    - Dst: typed_bitfield::get_bit
      Src: /src/libtorrent/test/test_piece_picker.cpp:1477,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1478,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1479,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1443
    functionDepth: 4
    functionLinenumber: 1443
    functionLinenumberEnd: 1480
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - string2vec
    - typed_bitfield::get_bit
    - auto::inc_refcount
    - setup_picker
    - test_pick
    - auto::dec_refcount
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(inc_ref_dec_ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1485,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1486,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1488,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1488,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:1489,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1490,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1492,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:1492,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:1493,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1497,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1499,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1499,1
    - Dst: auto::front
      Src: /src/libtorrent/test/test_piece_picker.cpp:1500,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1501,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1503,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:1503,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_piece_picker.cpp:1504,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1510,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1511,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1512,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1514,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1514,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1515,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_piece_picker.cpp:1515,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:1515,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:1515,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1515,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:1515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1482
    functionDepth: 3
    functionLinenumber: 1482
    functionLinenumberEnd: 1516
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - pick_pieces
    - auto::front
    - auto::mark_as_downloading
    - std::find
    - piece_block
    - auto::size
    - auto::end
    - setup_picker
    - auto::begin
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(prefer_cnotiguous_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1520,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1521,1
    - Dst: print_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1526,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1527,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1527,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_piece_picker.cpp:1530,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1532,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1532,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1518
    functionDepth: 3
    functionLinenumber: 1518
    functionLinenumberEnd: 1535
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - pick_pieces
    - print_pick
    - auto::size
    - std::set::size
    - setup_picker
    - std::set::insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(prefer_aligned_whole_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1540,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1541,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1542,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1545,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1545,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1546,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1547,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:1547,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1547,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1551,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1554,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1554,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1555,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1556,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:1556,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1537
    functionDepth: 3
    functionLinenumber: 1537
    functionLinenumberEnd: 1557
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::mark_as_finished
    - pick_pieces
    - piece_block
    - auto::size
    - std::size_t
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parole_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1562,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1566,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1568,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1568,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1569,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1570,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:1570,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1570,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1571,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1572,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1573,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1574,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1576,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1578,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1578,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1579,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1580,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:1580,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1580,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1582,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1583,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1585,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1585,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1586,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1587,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:1587,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:1587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1559
    functionDepth: 3
    functionLinenumber: 1559
    functionLinenumberEnd: 1588
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - piece_block
    - auto::size
    - auto::set_piece_priority
    - std::size_t
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(suggested_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1594,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1596,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1597,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1598,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1598,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1599,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1600,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1600,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1602,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1603,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1603,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1604,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1605,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1590
    functionDepth: 3
    functionLinenumber: 1590
    functionLinenumberEnd: 1606
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - string2vec
    - pick_pieces
    - verify_availability
    - auto::inc_refcount
    - setup_picker
    - auto::dec_refcount
    - print_availability
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bitfield_optimization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1611,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1614,1
    - Dst: auto::inc_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1616,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1617,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1618,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1618,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1620,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1621,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1621,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1622,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1623,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1623,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1625,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1626,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1626,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1627,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1627,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1629,1
    - Dst: auto::dec_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1630,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1631,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1631,1
    - Dst: auto::inc_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1633,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1634,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1635,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1635,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1637,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1638,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1639,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1640,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1640,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1642,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1642,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1643,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1644,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1644,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1646,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1646,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1647,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1648,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1648,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1650,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1650,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1651,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1652,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1652,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1654,1
    - Dst: string2vec
      Src: /src/libtorrent/test/test_piece_picker.cpp:1654,1
    - Dst: print_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1655,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:1656,1
    - Dst: verify_availability
      Src: /src/libtorrent/test/test_piece_picker.cpp:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1608
    functionDepth: 3
    functionLinenumber: 1608
    functionLinenumberEnd: 1657
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pick_pieces
    - string2vec
    - verify_availability
    - auto::inc_refcount
    - auto::dec_refcount_all
    - setup_picker
    - auto::dec_refcount
    - auto::inc_refcount_all
    - print_availability
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_optimization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1662,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1666,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1669,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1669,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1672,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1659
    functionDepth: 4
    functionLinenumber: 1659
    functionLinenumberEnd: 1673
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - TEST_EQUAL
    - auto::mark_as_downloading
    - test_pick
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reversed_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1678,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1681,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1683,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1683,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1687,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1688,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1675
    functionDepth: 4
    functionLinenumber: 1675
    functionLinenumberEnd: 1689
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - TEST_EQUAL
    - auto::mark_as_downloading
    - test_pick
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reversed_piece_upgrade)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1697,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1700,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1704,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1707,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1708
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::mark_as_finished
    - auto::mark_as_downloading
    - setup_picker
    - test_pick
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reversed_piece_downgrade)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1712,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1714,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1715,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1716,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1717,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1719,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1720,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1721,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1710
    functionDepth: 3
    functionLinenumber: 1710
    functionLinenumberEnd: 1723
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - auto::piece_stats
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1727,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1729,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1729,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1730,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1730,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1731,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1731,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1732,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1732,1
    - Dst: auto::piece_passed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1734,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1735,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1735,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1736,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1736,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1738,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1739,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1739,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1741,1
    - Dst: auto::piece_passed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1742,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1743,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1743,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1745,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1745,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1746,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1746,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1747,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1747,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1748,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1748,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1752,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1753,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1754,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1755,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1725
    functionDepth: 3
    functionLinenumber: 1725
    functionLinenumberEnd: 1756
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::have
    - auto::is_piece_flushed
    - auto::mark_as_finished
    - auto::num_have
    - auto::have_piece
    - setup_picker
    - auto::piece_flushed
    - auto::piece_passed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_passed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1760,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1762,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1762,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1763,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1763,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1764,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1764,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1765,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1765,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1767,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1768,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1768,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1769,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1769,1
    - Dst: auto::piece_passed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1771,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1772,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1772,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1773,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1758
    functionDepth: 3
    functionLinenumber: 1758
    functionLinenumberEnd: 1774
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::have
    - auto::mark_as_finished
    - auto::num_have
    - auto::have_piece
    - setup_picker
    - auto::piece_passed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_passed_causing_we_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1778,1
    - Dst: auto::inc_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1779,1
    - Dst: auto::inc_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1780,1
    - Dst: auto::inc_refcount_all
      Src: /src/libtorrent/test/test_piece_picker.cpp:1781,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1783,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1783,1
    - Dst: auto::dec_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:1785,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1787,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1787,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1788,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1788,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1789,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1789,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1790,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1776
    functionDepth: 3
    functionLinenumber: 1776
    functionLinenumberEnd: 1791
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::piece_stats
    - TEST_EQUAL
    - setup_picker
    - auto::dec_refcount
    - auto::inc_refcount_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(break_one_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1795,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1796,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1796,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1797,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1797,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1798,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1798,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1799,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1799,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1800,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1800,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1801,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1801,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1802,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1802,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1804,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1806,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1806,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1807,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1807,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1808,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1808,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1809,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1809,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1810,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1810,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1811,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1811,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1813,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1814,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1814,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1815,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1815,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1816,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1816,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1817,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1817,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1818,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1818,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1819,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1819,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1820,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1820,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1822,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1824,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1824,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1825,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1825,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1826,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1826,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1827,1
    - Dst: auto::num_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1827,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1828,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1828,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1829,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1829,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1830,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:1830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1793
    functionDepth: 3
    functionLinenumber: 1793
    functionLinenumberEnd: 1831
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - TEST_EQUAL
    - auto::have
    - auto::have_want
    - auto::num_have
    - auto::have_piece
    - auto::we_dont_have
    - setup_picker
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(we_dont_have2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1835,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1837,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1837,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1838,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1838,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1839,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1839,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1840,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1840,1
    - Dst: auto::piece_passed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1842,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1844,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1844,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1845,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1845,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1846,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1846,1
    - Dst: auto::we_dont_have
      Src: /src/libtorrent/test/test_piece_picker.cpp:1848,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1850,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1850,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1851,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1851,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1852,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1833
    functionDepth: 3
    functionLinenumber: 1833
    functionLinenumberEnd: 1853
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::is_piece_flushed
    - auto::have_piece
    - auto::we_dont_have
    - setup_picker
    - auto::piece_passed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dont_have_but_passed_hash_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1857,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1859,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1859,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1860,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1860,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1861,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1861,1
    - Dst: auto::piece_passed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1863,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1865,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1865,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1866,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1866,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1867,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1867,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1869,1
    - Dst: auto::write_failed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1870,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1872,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1872,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1873,1
    - Dst: auto::have_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1873,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1874,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1874,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1881,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1882,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1882,1
    - Dst: auto::restore_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1884,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1886,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1887,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1887,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1890,1
    - Dst: auto::lock_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:1891,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:1893,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1894,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1855
    functionDepth: 3
    functionLinenumber: 1855
    functionLinenumberEnd: 1895
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::is_piece_flushed
    - pick_pieces
    - auto::restore_piece
    - auto::size
    - auto::have_piece
    - auto::lock_piece
    - setup_picker
    - auto::write_failed
    - auto::mark_as_writing
    - auto::piece_passed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_failed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1899,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1901,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1902,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1904,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1906,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1907,1
    - Dst: auto::write_failed
      Src: /src/libtorrent/test/test_piece_picker.cpp:1909,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1911,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1897
    functionDepth: 3
    functionLinenumber: 1897
    functionLinenumberEnd: 1913
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::piece_stats
    - TEST_EQUAL
    - setup_picker
    - auto::write_failed
    - auto::mark_as_writing
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_failed_clear_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1917,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1919,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1920,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1922,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1924,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1925,1
    - Dst: auto::mark_as_canceled
      Src: /src/libtorrent/test/test_piece_picker.cpp:1927,1
    - Dst: auto::piece_stats
      Src: /src/libtorrent/test/test_piece_picker.cpp:1928,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1915
    functionDepth: 3
    functionLinenumber: 1915
    functionLinenumberEnd: 1930
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::piece_stats
    - auto::mark_as_canceled
    - TEST_EQUAL
    - setup_picker
    - auto::mark_as_writing
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_canceled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1934,1
    - Dst: auto::get_download_queue
      Src: /src/libtorrent/test/test_piece_picker.cpp:1936,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1939,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1939,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1941,1
    - Dst: std::count_if
      Src: /src/libtorrent/test/test_piece_picker.cpp:1941,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:1941,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:1941,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1943,1
    - Dst: std::count_if
      Src: /src/libtorrent/test/test_piece_picker.cpp:1943,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:1943,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:1943,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1945,1
    - Dst: std::count_if
      Src: /src/libtorrent/test/test_piece_picker.cpp:1945,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:1945,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1932
    functionDepth: 3
    functionLinenumber: 1932
    functionLinenumberEnd: 1947
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::count_if
    - auto::size
    - auto::end
    - setup_picker
    - auto::begin
    - auto::get_download_queue
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_download_queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1951,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1953,1
    - Dst: auto::get_download_queue_size
      Src: /src/libtorrent/test/test_piece_picker.cpp:1953,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1955,1
    - Dst: auto::get_download_queue_sizes
      Src: /src/libtorrent/test/test_piece_picker.cpp:1961,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1963,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1964,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1965,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1949
    functionDepth: 3
    functionLinenumber: 1949
    functionLinenumberEnd: 1967
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::get_download_queue_size
    - auto::set_piece_priority
    - auto::get_download_queue_sizes
    - setup_picker
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_download_queue_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:1971,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:1974,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1975,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:1976,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:1977,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1978,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1981,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1981,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1984,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1985,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1988,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:1990,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:1990,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:1991,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:1995,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1996,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:1999,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1969
    functionDepth: 4
    functionLinenumber: 1969
    functionLinenumberEnd: 2001
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::mark_as_finished
    - auto::mark_as_downloading
    - auto::set_piece_priority
    - TEST_NE
    - setup_picker
    - test_pick
    - auto::mark_as_writing
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reprioritize_downloading)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2005,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2010,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:2010,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2011,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2016,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2018,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2018,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2019,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2023,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2024,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2028,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2030,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2030,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2031,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2036,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2037,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2041,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2043,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2043,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2003
    functionDepth: 4
    functionLinenumber: 2003
    functionLinenumberEnd: 2046
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::mark_as_downloading
    - piece_block
    - auto::set_piece_priority
    - TEST_NE
    - setup_picker
    - test_pick
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reprioritize_fully_downloading)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2050,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2054,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2055,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2059,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2061,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2061,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2062,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2066,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2067,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:2068,1
    - Dst: auto::mark_as_writing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2069,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2070,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2074,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2076,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2076,1
    - Dst: TEST_NE
      Src: /src/libtorrent/test/test_piece_picker.cpp:2077,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2082,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2083,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2086,1
    - Dst: test_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2048
    functionDepth: 4
    functionLinenumber: 2048
    functionLinenumberEnd: 2087
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::mark_as_finished
    - auto::mark_as_downloading
    - auto::set_piece_priority
    - TEST_NE
    - setup_picker
    - test_pick
    - auto::mark_as_writing
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(download_filtered_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2091,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2092,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2094,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2095,1
    - Dst: auto::get_download_queue
      Src: /src/libtorrent/test/test_piece_picker.cpp:2097,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2099,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:2099,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2103,1
    - Dst: auto::blocks_for_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2107,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2108,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2089
    functionDepth: 3
    functionLinenumber: 2089
    functionLinenumberEnd: 2110
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::mark_as_downloading
    - auto::size
    - auto::blocks_for_piece
    - setup_picker
    - auto::set_pad_bytes
    - auto::get_download_queue
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_pad_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2115,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2116,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2117,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2118,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2121,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2121,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2112
    functionDepth: 3
    functionLinenumber: 2112
    functionLinenumberEnd: 2122
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - TEST_EQUAL
    - std::int64_t
    - setup_picker
    - auto::set_pad_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_pad_bytes_overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2128,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2129,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2130,1
    - Dst: auto::pad_bytes_in_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2130,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2131,1
    - Dst: auto::pad_bytes_in_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2131,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2132,1
    - Dst: auto::pad_bytes_in_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2124
    functionDepth: 3
    functionLinenumber: 2124
    functionLinenumberEnd: 2134
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - TEST_EQUAL
    - auto::set_pad_bytes
    - auto::pad_bytes_in_piece
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_bytes_in_piece_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_piece_picker.cpp:2141,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_piece_picker.cpp:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - piece_count
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2143
    functionName: operator==(piece_count const& lhs, piece_count const& rhs)
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_count const& lhs, piece_count const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_piece_picker.cpp:2141,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_piece_picker.cpp:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - piece_count
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2143
    functionName: operator==(piece_count const& lhs, piece_count const& rhs)
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_count const& lhs, piece_count const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_piece_picker.cpp:2141,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_piece_picker.cpp:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - piece_count
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2143
    functionName: operator==(piece_count const& lhs, piece_count const& rhs)
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_count const& lhs, piece_count const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_piece_picker.cpp:2141,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_piece_picker.cpp:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - piece_count
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2143
    functionName: operator==(piece_count const& lhs, piece_count const& rhs)
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_count const& lhs, piece_count const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2151,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2151,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2152,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2152,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2153,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2153,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2154,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2154,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2156,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2156,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2157,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2157,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2158,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2158,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2159,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2159,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2161,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2162,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2162,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2163,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2164,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2164,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2166,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2167,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2168,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2169,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2148
    functionDepth: 3
    functionLinenumber: 2148
    functionLinenumberEnd: 2170
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - auto::all_pieces
    - setup_picker
    - auto::set_pad_bytes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(num_pad_bytes_want)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2174,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2176,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2176,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2177,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2177,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2178,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2178,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2179,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2179,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2181,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2182,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2182,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2183,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2184,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2184,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2185,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2186,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2187,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2187,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2188,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2188,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2189,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2189,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2191,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2192,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2193,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2194,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2172
    functionDepth: 3
    functionLinenumber: 2172
    functionLinenumberEnd: 2195
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - auto::all_pieces
    - auto::set_piece_priority
    - setup_picker
    - auto::set_pad_bytes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(num_pad_bytes_want_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2199,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2200,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2201,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2201,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2202,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2202,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2203,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2204,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2204,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2206,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2206,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2207,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2207,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2208,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2208,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2209,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2209,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2210,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2211,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2212,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2212,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2213,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2213,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2214,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2214,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2215,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2216,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2217,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2218,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2219,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2197
    functionDepth: 3
    functionLinenumber: 2197
    functionLinenumberEnd: 2220
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - auto::all_pieces
    - auto::set_pad_bytes
    - setup_picker
    - auto::piece_flushed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(num_pad_bytes_want_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2224,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2225,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2226,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2227,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2229,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2230,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2231,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2231,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2232,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2233,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2222
    functionDepth: 3
    functionLinenumber: 2222
    functionLinenumberEnd: 2234
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - auto::all_pieces
    - auto::set_pad_bytes
    - setup_picker
    - auto::piece_flushed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(num_pad_bytes_we_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2238,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2239,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2240,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2241,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2243,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2245,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2246,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2247,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2247,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2248,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2236
    functionDepth: 3
    functionLinenumber: 2236
    functionLinenumberEnd: 2249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - auto::all_pieces
    - auto::set_pad_bytes
    - auto::set_piece_priority
    - setup_picker
    - auto::piece_flushed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(num_pad_bytes_dont_want_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2253,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2254,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2255,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2256,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2258,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2259,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2260,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2260,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2261,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2261,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2262,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2262,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2263,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2251
    functionDepth: 3
    functionLinenumber: 2251
    functionLinenumberEnd: 2264
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - auto::all_pieces
    - auto::set_pad_bytes
    - auto::set_piece_priority
    - setup_picker
    - auto::piece_flushed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(num_pad_bytes_have_dont_want)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2268,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2269,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2270,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2271,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2272,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2273,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2275,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2275,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2276,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2276,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2277,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2277,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2278,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2266
    functionDepth: 3
    functionLinenumber: 2266
    functionLinenumberEnd: 2279
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - auto::all_pieces
    - auto::set_pad_bytes
    - auto::set_piece_priority
    - setup_picker
    - auto::piece_flushed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(have_dont_want_pad_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2284,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2285,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2286,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2287,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2287,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2288,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2288,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2289,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2289,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2293,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2294,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2295,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2295,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2296,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2296,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2297,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2297,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2298,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2298,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2302,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2303,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2304,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2304,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2305,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2305,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2306,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2306,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2307,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2307,1
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2311,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2312,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2313,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2314,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2314,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2315,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2315,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2316,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2316,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2317,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2281
    functionDepth: 3
    functionLinenumber: 2281
    functionLinenumberEnd: 2319
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - auto::set_pad_bytes
    - auto::is_piece_flushed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_bytes_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_piece_picker.cpp:2327,1
    - Dst: piece_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2327,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2327,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_piece_picker.cpp:2333,1
    - Dst: piece_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2333,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2333,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_piece_picker.cpp:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2321
    functionDepth: 1
    functionLinenumber: 2321
    functionLinenumberEnd: 2341
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - TEST_THROW
    - piece_picker
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2345,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2346,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2348,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2351,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2351,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2352,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:2352,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2353,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2354,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2343
    functionDepth: 3
    functionLinenumber: 2343
    functionLinenumberEnd: 2357
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - pick_pieces
    - verify_pick
    - setup_picker
    - auto::set_pad_bytes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_pick_more_than_one_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2361,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2362,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2364,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2367,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2367,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2368,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:2368,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2369,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2370,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2371,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2359
    functionDepth: 3
    functionLinenumber: 2359
    functionLinenumberEnd: 2374
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - pick_pieces
    - verify_pick
    - setup_picker
    - auto::set_pad_bytes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_pick_full_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2378,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2379,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2381,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2384,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2384,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2385,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:2385,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2386,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2387,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2388,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2376
    functionDepth: 3
    functionLinenumber: 2376
    functionLinenumberEnd: 2391
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - pick_pieces
    - verify_pick
    - setup_picker
    - auto::set_pad_bytes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_pick_less_than_one_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2395,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2396,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2398,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2401,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2401,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2402,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:2402,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2403,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2404,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2393
    functionDepth: 3
    functionLinenumber: 2393
    functionLinenumberEnd: 2407
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - pick_pieces
    - verify_pick
    - setup_picker
    - auto::set_pad_bytes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_pick_exactly_one_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<piece_picker>
      Src: /src/libtorrent/test/test_piece_picker.cpp:2411,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:2413,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:2414,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:2415,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2417,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2419,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2422,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2422,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2423,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:2423,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2424,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2425,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2409
    functionDepth: 3
    functionLinenumber: 2409
    functionLinenumberEnd: 2428
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - pick_pieces
    - verify_pick
    - auto::inc_refcount
    - auto::set_pad_bytes
    - std::make_shared<piece_picker>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_pick_short_last_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<piece_picker>
      Src: /src/libtorrent/test/test_piece_picker.cpp:2432,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:2434,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:2435,1
    - Dst: auto::inc_refcount
      Src: /src/libtorrent/test/test_piece_picker.cpp:2436,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2438,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2440,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2443,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2443,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2444,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:2444,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_piece_picker.cpp:2445,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_piece_picker.cpp:2445,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_piece_picker.cpp:2445,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2446,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2447,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2448,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2449,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2450,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2451,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2452,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2453,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2454,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2455,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2430
    functionDepth: 3
    functionLinenumber: 2430
    functionLinenumberEnd: 2458
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - pick_pieces
    - verify_pick
    - std::vector::begin
    - std::sort
    - std::vector::end
    - auto::inc_refcount
    - auto::set_pad_bytes
    - std::make_shared<piece_picker>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_pick_short_last_piece_prefer_contiguous)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<piece_picker>
      Src: /src/libtorrent/test/test_piece_picker.cpp:2464,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2467,1
    - Dst: auto::set_piece_priority
      Src: /src/libtorrent/test/test_piece_picker.cpp:2468,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2469,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2470,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2471,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2473,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2473,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2474,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2474,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2475,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2475,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2476,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2461
    functionDepth: 1
    functionLinenumber: 2461
    functionLinenumberEnd: 2477
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - auto::all_pieces
    - auto::set_piece_priority
    - auto::piece_flushed
    - auto::set_pad_bytes
    - std::make_shared<piece_picker>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_blocks_some_wanted_odd_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2481,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2482,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2484,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2485,1
    - Dst: auto::get_download_queue
      Src: /src/libtorrent/test/test_piece_picker.cpp:2487,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2489,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_piece_picker.cpp:2489,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2490,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2491,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2492,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2493,1
    - Dst: auto::blocks_for_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2495,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2496,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2497,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2479
    functionDepth: 3
    functionLinenumber: 2479
    functionLinenumberEnd: 2500
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::mark_as_downloading
    - auto::size
    - auto::blocks_for_piece
    - setup_picker
    - auto::set_pad_bytes
    - auto::get_download_queue
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_downloading)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2504,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2505,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2507,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:2507,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:2509,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2511,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:2511,1
    - Dst: auto::piece_passed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2512,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2513,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:2513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2502
    functionDepth: 3
    functionLinenumber: 2502
    functionLinenumberEnd: 2514
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::mark_as_finished
    - setup_picker
    - auto::set_pad_bytes
    - auto::is_seeding
    - TEST_CHECK
    - auto::piece_passed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_seeding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2518,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2519,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2520,1
    - Dst: auto::is_piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2520,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2522,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:2522,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:2524,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:2525,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:2526,1
    - Dst: auto::mark_as_finished
      Src: /src/libtorrent/test/test_piece_picker.cpp:2527,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2529,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:2529,1
    - Dst: auto::piece_passed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2530,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2531,1
    - Dst: auto::is_seeding
      Src: /src/libtorrent/test/test_piece_picker.cpp:2531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2516
    functionDepth: 3
    functionLinenumber: 2516
    functionLinenumberEnd: 2532
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::is_piece_flushed
    - auto::mark_as_finished
    - setup_picker
    - auto::set_pad_bytes
    - auto::is_seeding
    - TEST_CHECK
    - auto::piece_passed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mark_as_pad_whole_piece_seeding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2536,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2537,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2539,1
    - Dst: auto::pad_bytes_in_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2539,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2540,1
    - Dst: auto::pad_bytes_in_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2534
    functionDepth: 3
    functionLinenumber: 2534
    functionLinenumberEnd: 2541
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - TEST_EQUAL
    - auto::set_pad_bytes
    - auto::pad_bytes_in_piece
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_bytes_in_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2545,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2546,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2548,1
    - Dst: auto::pad_bytes_in_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2548,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2549,1
    - Dst: auto::pad_bytes_in_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2543
    functionDepth: 3
    functionLinenumber: 2543
    functionLinenumberEnd: 2550
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - setup_picker
    - TEST_EQUAL
    - auto::set_pad_bytes
    - auto::pad_bytes_in_piece
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_bytes_in_last_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2556,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2559,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2563
    functionName: validate_piece_count
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void validate_piece_count(piece_count const& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2567,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2568,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2565
    functionDepth: 1
    functionLinenumber: 2565
    functionLinenumberEnd: 2570
    functionName: validate_all_pieces
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void validate_all_pieces(piece_count const& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2574,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2575,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2572
    functionDepth: 1
    functionLinenumber: 2572
    functionLinenumberEnd: 2577
    functionName: validate_no_pieces
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void validate_no_pieces(piece_count const& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2556,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2559,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2563
    functionName: validate_piece_count
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void validate_piece_count(piece_count const& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2567,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2568,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2565
    functionDepth: 1
    functionLinenumber: 2565
    functionLinenumberEnd: 2570
    functionName: validate_all_pieces
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void validate_all_pieces(piece_count const& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2574,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2575,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2572
    functionDepth: 1
    functionLinenumber: 2572
    functionLinenumberEnd: 2577
    functionName: validate_no_pieces
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void validate_no_pieces(piece_count const& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2582,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2583,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2584,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2586,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2586,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2587,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2587,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2588,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2588,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2589,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2589,1
    - Dst: validate_all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2591,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2591,1
    - Dst: validate_no_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2592,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2592,1
    - Dst: validate_no_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2593,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2593,1
    - Dst: validate_no_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2594,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2580
    functionDepth: 3
    functionLinenumber: 2580
    functionLinenumberEnd: 2595
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - validate_no_pieces
    - validate_all_pieces
    - auto::all_pieces
    - setup_picker
    - auto::set_pad_bytes
    - validate_piece_count
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_blocks_all_filtered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2599,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2600,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2601,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2603,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2603,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2604,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2604,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2605,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2605,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2606,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2606,1
    - Dst: validate_all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2608,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2608,1
    - Dst: validate_all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2609,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2609,1
    - Dst: validate_no_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2610,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2610,1
    - Dst: validate_no_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2611,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2597
    functionDepth: 3
    functionLinenumber: 2597
    functionLinenumberEnd: 2612
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - auto::have
    - auto::have_want
    - validate_no_pieces
    - validate_all_pieces
    - auto::all_pieces
    - setup_picker
    - auto::set_pad_bytes
    - validate_piece_count
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_blocks_all_wanted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2616,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2617,1
    - Dst: auto::set_pad_bytes
      Src: /src/libtorrent/test/test_piece_picker.cpp:2618,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2620,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2620,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2621,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2621,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2622,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2622,1
    - Dst: validate_piece_count
      Src: /src/libtorrent/test/test_piece_picker.cpp:2623,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2623,1
    - Dst: validate_all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2625,1
    - Dst: auto::all_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2625,1
    - Dst: validate_no_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2626,1
    - Dst: auto::have
      Src: /src/libtorrent/test/test_piece_picker.cpp:2626,1
    - Dst: validate_no_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2627,1
    - Dst: auto::have_want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2627,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2629,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2629,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2630,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2630,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2631,1
    - Dst: auto::want
      Src: /src/libtorrent/test/test_piece_picker.cpp:2631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2614
    functionDepth: 3
    functionLinenumber: 2614
    functionLinenumberEnd: 2632
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::want
    - TEST_EQUAL
    - auto::have
    - auto::have_want
    - validate_no_pieces
    - validate_all_pieces
    - auto::all_pieces
    - setup_picker
    - auto::set_pad_bytes
    - validate_piece_count
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_blocks_some_wanted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2636,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2637,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2637,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2638,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2638,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2639,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2639,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2640,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2640,1
    - Dst: auto::mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2644,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:2644,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2646,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2646,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2647,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2647,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2648,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2648,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2649,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2649,1
    - Dst: auto::started_hash_job
      Src: /src/libtorrent/test/test_piece_picker.cpp:2651,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2652,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2652,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2653,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2653,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2654,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2654,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2655,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2655,1
    - Dst: auto::completed_hash_job
      Src: /src/libtorrent/test/test_piece_picker.cpp:2657,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2658,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2658,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2659,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2659,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2660,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2660,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2661,1
    - Dst: auto::is_hashing
      Src: /src/libtorrent/test/test_piece_picker.cpp:2661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2634
    functionDepth: 3
    functionLinenumber: 2634
    functionLinenumberEnd: 2662
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - auto::is_hashing
    - auto::started_hash_job
    - auto::completed_hash_job
    - auto::mark_as_downloading
    - piece_block
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(started_hash_job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_piece_picker.cpp:2670,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:2670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - blocks
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2666
    functionDepth: 0
    functionLinenumber: 2666
    functionLinenumberEnd: 2672
    functionName: full_piece
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - piece_block
    linkageType: ''
    returnType: std::vector<piece_block>
    signature: std::vector<piece_block> full_piece(piece_index_t const p, int const
      blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' p'
    - blocks
    - peer
    - opts
    argTypes:
    - std::shared_ptr<piece_picker>
    - std::vector<piece_block>
    - torrent_peer*
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2673
    functionDepth: 0
    functionLinenumber: 2673
    functionLinenumberEnd: 2678
    functionName: mark_downloading
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - mark_as_downloading
    linkageType: ''
    returnType: void
    signature: "void mark_downloading(std::shared_ptr<piece_picker> const& p, std::vector<piece_block>
      const blocks\n\t, torrent_peer* const peer, picker_options_t const opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_piece_picker.cpp:2670,1
    - Dst: piece_block
      Src: /src/libtorrent/test/test_piece_picker.cpp:2670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - blocks
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2666
    functionDepth: 0
    functionLinenumber: 2666
    functionLinenumberEnd: 2672
    functionName: full_piece
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - piece_block
    linkageType: ''
    returnType: std::vector<piece_block>
    signature: std::vector<piece_block> full_piece(piece_index_t const p, int const
      blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_as_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' p'
    - blocks
    - peer
    - opts
    argTypes:
    - std::shared_ptr<piece_picker>
    - std::vector<piece_block>
    - torrent_peer*
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2673
    functionDepth: 0
    functionLinenumber: 2673
    functionLinenumberEnd: 2678
    functionName: mark_downloading
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - mark_as_downloading
    linkageType: ''
    returnType: void
    signature: "void mark_downloading(std::shared_ptr<piece_picker> const& p, std::vector<piece_block>
      const blocks\n\t, torrent_peer* const peer, picker_options_t const opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2688,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2690,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2692,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2692,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2693,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2693,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2694,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2694,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2698,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2699,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2699,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2700,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2700,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2701,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2701,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2705,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2706,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2706,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2707,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2707,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2708,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2708,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2711,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2712,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2712,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2713,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2713,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2714,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2714,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2717,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2718,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2718,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2719,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2719,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2720,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2681
    functionDepth: 3
    functionLinenumber: 2681
    functionLinenumberEnd: 2721
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - mark_downloading
    - pick_pieces
    - full_piece
    - verify_pick
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_extent_affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2729,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2732,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2732,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2737,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2739,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2739,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2740,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2723
    functionDepth: 3
    functionLinenumber: 2723
    functionLinenumberEnd: 2741
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - mark_downloading
    - pick_pieces
    - full_piece
    - verify_pick
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_extent_affinity_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2749,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2752,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2752,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2756,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2758,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2758,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2759,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2743
    functionDepth: 3
    functionLinenumber: 2743
    functionLinenumberEnd: 2760
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - mark_downloading
    - pick_pieces
    - full_piece
    - verify_pick
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_extent_affinity_large_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2769,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2771,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2771,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2772,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2772,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2773,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2773,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2774,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2774,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2775,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2775,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2779,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2779,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2784,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2786,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2786,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2787,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2762
    functionDepth: 3
    functionLinenumber: 2762
    functionLinenumberEnd: 2788
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - mark_downloading
    - pick_pieces
    - full_piece
    - verify_pick
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_extent_affinity_active_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2798,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2800,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2800,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2801,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2801,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2802,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2802,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2803,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2803,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2804,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2804,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2808,1
    - Dst: auto::piece_flushed
      Src: /src/libtorrent/test/test_piece_picker.cpp:2809,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2813,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2817,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2817,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2822,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2824,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2824,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2825,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2790
    functionDepth: 3
    functionLinenumber: 2790
    functionLinenumberEnd: 2826
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - mark_downloading
    - pick_pieces
    - full_piece
    - verify_pick
    - setup_picker
    - auto::piece_flushed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_extent_affinity_clear_done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_picker
      Src: /src/libtorrent/test/test_piece_picker.cpp:2837,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2840,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2840,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2841,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2841,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2842,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2842,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2843,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2843,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2844,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2844,1
    - Dst: mark_downloading
      Src: /src/libtorrent/test/test_piece_picker.cpp:2851,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2851,1
    - Dst: pick_pieces
      Src: /src/libtorrent/test/test_piece_picker.cpp:2856,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2858,1
    - Dst: verify_pick
      Src: /src/libtorrent/test/test_piece_picker.cpp:2858,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_piece_picker.cpp:2859,1
    - Dst: full_piece
      Src: /src/libtorrent/test/test_piece_picker.cpp:2859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2828
    functionDepth: 3
    functionLinenumber: 2828
    functionLinenumberEnd: 2860
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - mark_downloading
    - pick_pieces
    - full_piece
    - verify_pick
    - setup_picker
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_extent_affinity_no_duplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2866,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_piece_picker.cpp:2866,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_piece_picker.cpp:2867,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_piece_picker.cpp:2867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2862
    functionDepth: 1
    functionLinenumber: 2862
    functionLinenumberEnd: 2868
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::aux::max
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_block_exported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_url_seed.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_url_seed.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_ssl_keepalive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_url_seed.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_url_seed.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_url_seed.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_url_seed.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_keepalive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_url_seed.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_url_seed.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_url_seed.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_url_seed.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_keepalive_rename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:59,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:59,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:60,1
    - Dst: aux::torrent_list::begin
      Src: /src/libtorrent/test/test_torrent_list.cpp:60,1
    - Dst: aux::torrent_list::end
      Src: /src/libtorrent/test/test_torrent_list.cpp:60,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:61,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:61,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:62,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:62,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:63,1
    - Dst: aux::torrent_list::begin
      Src: /src/libtorrent/test/test_torrent_list.cpp:63,1
    - Dst: aux::torrent_list::end
      Src: /src/libtorrent/test/test_torrent_list.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - aux::torrent_list::empty
    - aux::torrent_list::insert
    - aux::torrent_list::end
    - std::make_shared<int>
    - aux::torrent_list::begin
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:69,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:69,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:70,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:70,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:71,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:71,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:72,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:72,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:72,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:73,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:73,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:74,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:74,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:75,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:77,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:77,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:78,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:79,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::insert
    - ih
    - aux::torrent_list::size
    - std::make_shared<int>
    - aux::torrent_list::find
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:85,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:86,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:86,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:86,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:87,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:87,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:88,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:88,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:88,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:89,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:89,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:90,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::insert
    - aux::torrent_list::size
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_duplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:96,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:96,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:97,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:97,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:98,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:99,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:99,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:100,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:101,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:102,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::insert
    - aux::torrent_list::size
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_duplicates_v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:108,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:109,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:109,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:109,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:110,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:111,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:111,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:112,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:112,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:113,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:114,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::insert
    - aux::torrent_list::size
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_duplicates_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:120,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:120,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:121,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:121,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:121,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:121,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:122,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:122,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:123,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:125,1
    - Dst: aux::torrent_list::erase
      Src: /src/libtorrent/test/test_torrent_list.cpp:125,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:125,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:126,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:127,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::insert
    - ih
    - aux::torrent_list::erase
    - aux::torrent_list::size
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_duplicates_self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:133,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:133,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:134,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:136,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:137,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:138,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::insert
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_truncated_list_lookup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:144,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:144,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:144,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:145,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:145,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:145,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:147,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:148,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:149,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::insert
    - ih
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_lookup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:155,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:155,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:155,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:156,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:156,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:156,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:157,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:157,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:157,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:158,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:158,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:158,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent_list.cpp:165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:170,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:171,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::push_back
    - aux::torrent_list::insert
    - ih
    - std::make_shared<int>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:179,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:180,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:183,1
    - Dst: aux::torrent_list::erase
      Src: /src/libtorrent/test/test_torrent_list.cpp:183,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:184,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:184,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:186,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:187,1
    - Dst: aux::torrent_list::erase
      Src: /src/libtorrent/test/test_torrent_list.cpp:187,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:187,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:188,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:188,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:189,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::empty
    - aux::torrent_list::insert
    - aux::torrent_list::erase
    - ih
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_erase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:195,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:195,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:195,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:196,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:196,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:196,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:198,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:198,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:199,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:199,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:200,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:200,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:203,1
    - Dst: aux::torrent_list::erase
      Src: /src/libtorrent/test/test_torrent_list.cpp:203,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:204,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:204,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:205,1
    - Dst: aux::torrent_list::size
      Src: /src/libtorrent/test/test_torrent_list.cpp:205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:206,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:206,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:207,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::torrent_list::empty
    - aux::torrent_list::insert
    - ih
    - aux::torrent_list::erase
    - aux::torrent_list::size
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_erase2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:213,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:213,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:213,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:214,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:214,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:214,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:215,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:215,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:215,1
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:216,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:216,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:218,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:220,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:221,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:221,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:222,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:223,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:223,1
    - Dst: aux::torrent_list::clear
      Src: /src/libtorrent/test/test_torrent_list.cpp:225,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:226,1
    - Dst: aux::torrent_list::empty
      Src: /src/libtorrent/test/test_torrent_list.cpp:226,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:228,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:228,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:229,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:229,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:230,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:231,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 232
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - aux::torrent_list::empty
    - aux::torrent_list::insert
    - ih
    - aux::torrent_list::clear
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::torrent_list::insert
      Src: /src/libtorrent/test/test_torrent_list.cpp:238,1
    - Dst: ih
      Src: /src/libtorrent/test/test_torrent_list.cpp:238,1
    - Dst: std::make_shared<int>
      Src: /src/libtorrent/test/test_torrent_list.cpp:238,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:240,1
    - Dst: aux::torrent_list::find
      Src: /src/libtorrent/test/test_torrent_list.cpp:240,1
    - Dst: hasher::update
      Src: /src/libtorrent/test/test_torrent_list.cpp:243,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_list.cpp:244,1
    - Dst: aux::torrent_list::find_obfuscated
      Src: /src/libtorrent/test/test_torrent_list.cpp:244,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/test_torrent_list.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_list.cpp:246,1
    - Dst: aux::torrent_list::find_obfuscated
      Src: /src/libtorrent/test/test_torrent_list.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - hasher::final
    - aux::torrent_list::insert
    - ih
    - hasher::update
    - aux::torrent_list::find_obfuscated
    - std::make_shared<int>
    - aux::torrent_list::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_list_obfuscated_lookup)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~B()
    functionSourceFile: /src/libtorrent/test/test_alloca.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~B()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~B()
    functionSourceFile: /src/libtorrent/test/test_alloca.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~B()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/test/test_alloca.cpp:56,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alloca.cpp:58,1
    - Dst: size
      Src: /src/libtorrent/test/test_alloca.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alloca.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alloca.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TORRENT_ALLOCA
    - size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alloca_construct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/test/test_alloca.cpp:69,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alloca.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alloca.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TORRENT_ALLOCA
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alloca_destruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/test/test_alloca.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alloca.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alloca.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TORRENT_ALLOCA
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alloca_large)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/bittorrent_peer.cpp:61,1
    - Dst: piece_length
      Src: /src/libtorrent/test/bittorrent_peer.cpp:62,1
    - Dst: reserve
      Src: /src/libtorrent/test/bittorrent_peer.cpp:65,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:65,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/bittorrent_peer.cpp:65,1
    - Dst: peer_conn::start_conn
      Src: /src/libtorrent/test/bittorrent_peer.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' ios'
    - on_msg
    - ' ti'
    - ' ep'
    - mode
    argTypes:
    - io_context
    - std::function<void(int, char const*, int)>
    - torrent_info
    - tcp::endpoint
    - peer_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: peer_conn::peer_conn
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<std::size_t>
    - piece_length
    - num_pieces
    - reserve
    - peer_conn::start_conn
    linkageType: ''
    returnType: void
    signature: "void peer_conn::peer_conn(io_context& ios\n\t, std::function<void(int,
      char const*, int)> on_msg\n\t, torrent_info const& ti\n\t, tcp::endpoint const&
      ep\n\t, peer_mode_t const mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_connect
      Src: /src/libtorrent/test/bittorrent_peer.cpp:72,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: peer_conn::start_conn
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 1
    functionsReached:
    - async_connect
    - std::bind
    linkageType: ''
    returnType: void
    signature: void peer_conn::start_conn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:79,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:87,1
    - Dst: malloc
      Src: /src/libtorrent/test/bittorrent_peer.cpp:87,1
    - Dst: memcpy
      Src: /src/libtorrent/test/bittorrent_peer.cpp:88,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/bittorrent_peer.cpp:89,1
    - Dst: info_hash
      Src: /src/libtorrent/test/bittorrent_peer.cpp:89,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/bittorrent_peer.cpp:90,1
    - Dst: async_write
      Src: /src/libtorrent/test/bittorrent_peer.cpp:92,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:92,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: peer_conn::on_connect
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - std::bind
    - async_write
    - std::memcpy
    - info_hash
    - memcpy
    - both_sides_from_store_buffer
    - static_cast<char*>
    - libtorrent::aux::random_bytes
    - malloc
    linkageType: ''
    returnType: void
    signature: void peer_conn::on_connect(error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtorrent/test/bittorrent_peer.cpp:99,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:102,1
    - Dst: async_read
      Src: /src/libtorrent/test/bittorrent_peer.cpp:107,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:107,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:107,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - h
    - ' ec'
    argTypes:
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: peer_conn::on_handshake
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - free
    - peer_conn::close
    - std::bind
    - async_read
    - both_sides_from_store_buffer
    - data
    linkageType: ''
    returnType: void
    signature: void peer_conn::on_handshake(char* h, error_code const& ec, size_t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:115,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/test/bittorrent_peer.cpp:126,1
    - Dst: peer_conn::work_download
      Src: /src/libtorrent/test/bittorrent_peer.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 132
    functionName: peer_conn::on_handshake2
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - peer_conn::work_download
    - peer_conn::write_have_all
    linkageType: ''
    returnType: void
    signature: void peer_conn::on_handshake2(error_code const& ec, size_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:140,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:142,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/bittorrent_peer.cpp:143,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:145,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/bittorrent_peer.cpp:146,1
    - Dst: async_write
      Src: /src/libtorrent/test/bittorrent_peer.cpp:147,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:147,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:147,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:148,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:148,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:149,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/bittorrent_peer.cpp:154,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:155,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:156,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/bittorrent_peer.cpp:157,1
    - Dst: std::fill
      Src: /src/libtorrent/test/bittorrent_peer.cpp:158,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:161,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/bittorrent_peer.cpp:162,1
    - Dst: async_write
      Src: /src/libtorrent/test/bittorrent_peer.cpp:163,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:163,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:163,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:164,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 167
    functionName: peer_conn::write_have_all
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - async_write
    - std::fill
    - static_cast<std::size_t>
    - write_uint32
    - num_pieces
    - both_sides_from_store_buffer
    - write_uint8
    - data
    linkageType: ''
    returnType: void
    signature: void peer_conn::write_have_all()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:173,1
    - Dst: async_read
      Src: /src/libtorrent/test/bittorrent_peer.cpp:178,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:178,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:178,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: peer_conn::on_have_all_sent
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - std::bind
    - async_read
    - both_sides_from_store_buffer
    - data
    linkageType: ''
    returnType: void
    signature: void peer_conn::on_have_all_sent(error_code const& ec, size_t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/bittorrent_peer.cpp:187,1
    - Dst: empty
      Src: /src/libtorrent/test/bittorrent_peer.cpp:190,1
    - Dst: empty
      Src: /src/libtorrent/test/bittorrent_peer.cpp:190,1
    - Dst: size
      Src: /src/libtorrent/test/bittorrent_peer.cpp:195,1
    - Dst: front
      Src: /src/libtorrent/test/bittorrent_peer.cpp:197,1
    - Dst: erase
      Src: /src/libtorrent/test/bittorrent_peer.cpp:198,1
    - Dst: begin
      Src: /src/libtorrent/test/bittorrent_peer.cpp:198,1
    - Dst: size
      Src: /src/libtorrent/test/bittorrent_peer.cpp:201,1
    - Dst: front
      Src: /src/libtorrent/test/bittorrent_peer.cpp:203,1
    - Dst: erase
      Src: /src/libtorrent/test/bittorrent_peer.cpp:204,1
    - Dst: begin
      Src: /src/libtorrent/test/bittorrent_peer.cpp:204,1
    - Dst: size
      Src: /src/libtorrent/test/bittorrent_peer.cpp:207,1
    - Dst: front
      Src: /src/libtorrent/test/bittorrent_peer.cpp:209,1
    - Dst: erase
      Src: /src/libtorrent/test/bittorrent_peer.cpp:210,1
    - Dst: begin
      Src: /src/libtorrent/test/bittorrent_peer.cpp:210,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/test/bittorrent_peer.cpp:215,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:222,1
    - Dst: malloc
      Src: /src/libtorrent/test/bittorrent_peer.cpp:222,1
    - Dst: std::copy
      Src: /src/libtorrent/test/bittorrent_peer.cpp:223,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:225,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:226,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:227,1
    - Dst: async_write
      Src: /src/libtorrent/test/bittorrent_peer.cpp:228,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:228,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:229,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 240
    functionName: peer_conn::write_request
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_write
    - begin
    - erase
    - empty
    - front
    - TORRENT_ASSERT_FAIL
    - std::copy
    - write_uint32
    - both_sides_from_store_buffer
    - static_cast<char*>
    - malloc
    - size
    linkageType: ''
    returnType: bool
    signature: bool peer_conn::write_request()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtorrent/test/bittorrent_peer.cpp:244,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:247,1
    - Dst: peer_conn::work_download
      Src: /src/libtorrent/test/bittorrent_peer.cpp:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - m
    - ' ec'
    argTypes:
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: peer_conn::on_req_sent
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - free
    - peer_conn::close
    - peer_conn::work_download
    linkageType: ''
    returnType: void
    signature: void peer_conn::on_req_sent(char* m, error_code const& ec, size_t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/bittorrent_peer.cpp:256,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/bittorrent_peer.cpp:263,1
    - Dst: message
      Src: /src/libtorrent/test/bittorrent_peer.cpp:263,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/bittorrent_peer.cpp:267,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/bittorrent_peer.cpp:269,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/bittorrent_peer.cpp:270,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/bittorrent_peer.cpp:274,1
    - Dst: is_v6
      Src: /src/libtorrent/test/bittorrent_peer.cpp:275,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/bittorrent_peer.cpp:276,1
    - Dst: to_string
      Src: /src/libtorrent/test/bittorrent_peer.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/bittorrent_peer.cpp:277,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/bittorrent_peer.cpp:279,1
    - Dst: to_string
      Src: /src/libtorrent/test/bittorrent_peer.cpp:279,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/bittorrent_peer.cpp:280,1
    - Dst: std::printf
      Src: /src/libtorrent/test/bittorrent_peer.cpp:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fmt
    - ' ec'
    argTypes:
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 283
    functionName: peer_conn::close
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 5
    functionsReached:
    - is_v6
    - time_now
    - to_string
    - message
    - std::snprintf
    - std::int64_t
    - local_endpoint
    - total_milliseconds
    - std::printf
    linkageType: ''
    returnType: void
    signature: void peer_conn::close(char const* fmt, error_code const& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/bittorrent_peer.cpp:287,1
    - Dst: empty
      Src: /src/libtorrent/test/bittorrent_peer.cpp:288,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/bittorrent_peer.cpp:291,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:293,1
    - Dst: error_code
      Src: /src/libtorrent/test/bittorrent_peer.cpp:293,1
    - Dst: peer_conn::write_request
      Src: /src/libtorrent/test/bittorrent_peer.cpp:300,1
    - Dst: async_read
      Src: /src/libtorrent/test/bittorrent_peer.cpp:304,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:304,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 306
    functionName: peer_conn::work_download
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 2
    functionsReached:
    - peer_conn::close
    - std::bind
    - error_code
    - empty
    - num_pieces
    - async_read
    - both_sides_from_store_buffer
    - peer_conn::write_request
    - data
    linkageType: ''
    returnType: void
    signature: void peer_conn::work_download()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::start_conn
      Src: /src/libtorrent/test/bittorrent_peer.cpp:315,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:321,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:324,1
    - Dst: read_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:325,1
    - Dst: size
      Src: /src/libtorrent/test/bittorrent_peer.cpp:326,1
    - Dst: std::printf
      Src: /src/libtorrent/test/bittorrent_peer.cpp:328,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:329,1
    - Dst: error_code
      Src: /src/libtorrent/test/bittorrent_peer.cpp:329,1
    - Dst: async_read
      Src: /src/libtorrent/test/bittorrent_peer.cpp:335,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:335,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:335,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:336,1
    - Dst: async_read
      Src: /src/libtorrent/test/bittorrent_peer.cpp:340,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:340,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:340,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: peer_conn::on_msg_length
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - std::bind
    - std::printf
    - error_code
    - read_uint32
    - async_read
    - both_sides_from_store_buffer
    - peer_conn::start_conn
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void peer_conn::on_msg_length(error_code const& ec, size_t)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::start_conn
      Src: /src/libtorrent/test/bittorrent_peer.cpp:352,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:358,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:361,1
    - Dst: read_uint8
      Src: /src/libtorrent/test/bittorrent_peer.cpp:362,1
    - Dst: m_on_msg
      Src: /src/libtorrent/test/bittorrent_peer.cpp:364,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:373,1
    - Dst: error_code
      Src: /src/libtorrent/test/bittorrent_peer.cpp:373,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:376,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:377,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:378,1
    - Dst: peer_conn::write_piece
      Src: /src/libtorrent/test/bittorrent_peer.cpp:379,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:383,1
    - Dst: error_code
      Src: /src/libtorrent/test/bittorrent_peer.cpp:383,1
    - Dst: async_read
      Src: /src/libtorrent/test/bittorrent_peer.cpp:389,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:389,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:389,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:390,1
    - Dst: clear
      Src: /src/libtorrent/test/bittorrent_peer.cpp:397,1
    - Dst: size
      Src: /src/libtorrent/test/bittorrent_peer.cpp:398,1
    - Dst: push_back
      Src: /src/libtorrent/test/bittorrent_peer.cpp:399,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/test/bittorrent_peer.cpp:400,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:404,1
    - Dst: empty
      Src: /src/libtorrent/test/bittorrent_peer.cpp:405,1
    - Dst: push_back
      Src: /src/libtorrent/test/bittorrent_peer.cpp:405,1
    - Dst: insert
      Src: /src/libtorrent/test/bittorrent_peer.cpp:406,1
    - Dst: begin
      Src: /src/libtorrent/test/bittorrent_peer.cpp:406,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:406,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/bittorrent_peer.cpp:406,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:406,1
    - Dst: size
      Src: /src/libtorrent/test/bittorrent_peer.cpp:406,1
    - Dst: reserve
      Src: /src/libtorrent/test/bittorrent_peer.cpp:410,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:410,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/bittorrent_peer.cpp:410,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/bittorrent_peer.cpp:417,1
    - Dst: push_back
      Src: /src/libtorrent/test/bittorrent_peer.cpp:418,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/test/bittorrent_peer.cpp:424,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:439,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:440,1
    - Dst: peer_conn::write_have
      Src: /src/libtorrent/test/bittorrent_peer.cpp:444,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:450,1
    - Dst: std::find
      Src: /src/libtorrent/test/bittorrent_peer.cpp:451,1
    - Dst: begin
      Src: /src/libtorrent/test/bittorrent_peer.cpp:451,1
    - Dst: end
      Src: /src/libtorrent/test/bittorrent_peer.cpp:451,1
    - Dst: end
      Src: /src/libtorrent/test/bittorrent_peer.cpp:452,1
    - Dst: erase
      Src: /src/libtorrent/test/bittorrent_peer.cpp:454,1
    - Dst: push_back
      Src: /src/libtorrent/test/bittorrent_peer.cpp:455,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:460,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:461,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:462,1
    - Dst: empty
      Src: /src/libtorrent/test/bittorrent_peer.cpp:467,1
    - Dst: back
      Src: /src/libtorrent/test/bittorrent_peer.cpp:467,1
    - Dst: push_back
      Src: /src/libtorrent/test/bittorrent_peer.cpp:468,1
    - Dst: std::min
      Src: /src/libtorrent/test/bittorrent_peer.cpp:472,1
    - Dst: push_back
      Src: /src/libtorrent/test/bittorrent_peer.cpp:475,1
    - Dst: std::printf
      Src: /src/libtorrent/test/bittorrent_peer.cpp:481,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:493,1
    - Dst: std::find
      Src: /src/libtorrent/test/bittorrent_peer.cpp:494,1
    - Dst: begin
      Src: /src/libtorrent/test/bittorrent_peer.cpp:494,1
    - Dst: end
      Src: /src/libtorrent/test/bittorrent_peer.cpp:494,1
    - Dst: end
      Src: /src/libtorrent/test/bittorrent_peer.cpp:495,1
    - Dst: erase
      Src: /src/libtorrent/test/bittorrent_peer.cpp:497,1
    - Dst: push_back
      Src: /src/libtorrent/test/bittorrent_peer.cpp:498,1
    - Dst: peer_conn::work_download
      Src: /src/libtorrent/test/bittorrent_peer.cpp:501,1
    - Dst: async_read
      Src: /src/libtorrent/test/bittorrent_peer.cpp:505,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:505,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:505,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:506,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 509
    functionName: peer_conn::on_message
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - empty
    - static_cast<std::size_t>
    - std::min
    - peer_conn::write_have
    - peer_conn::start_conn
    - libtorrent::aux::random_shuffle
    - data
    - push_back
    - Catch::Generators::random
    - peer_conn::work_download
    - end
    - static_cast<std::uint32_t>
    - std::find
    - num_pieces
    - back
    - clear
    - std::printf
    - peer_conn::close
    - libtorrent::aux::read_int32
    - m_on_msg
    - erase
    - async_read
    - reserve
    - peer_conn::write_piece
    - size
    - std::bind
    - error_code
    - insert
    - both_sides_from_store_buffer
    - read_uint8
    linkageType: ''
    returnType: void
    signature: void peer_conn::on_message(error_code const& ec, size_t bytes_transferred)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:533,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:534,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/bittorrent_peer.cpp:535,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/bittorrent_peer.cpp:536,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:537,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:538,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:540,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:540,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:540,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:540,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:541,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:541,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/bittorrent_peer.cpp:541,1
    - Dst: async_write
      Src: /src/libtorrent/test/bittorrent_peer.cpp:542,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - piece
    - start
    - length
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 544
    functionName: peer_conn::write_piece
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - async_write
    - static_cast<std::size_t>
    - write_uint32
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - write_uint8
    - data
    linkageType: ''
    returnType: void
    signature: void peer_conn::write_piece(int piece, int start, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:550,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:551,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/bittorrent_peer.cpp:552,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/bittorrent_peer.cpp:553,1
    - Dst: async_write
      Src: /src/libtorrent/test/bittorrent_peer.cpp:554,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/bittorrent_peer.cpp:554,1
    - Dst: data
      Src: /src/libtorrent/test/bittorrent_peer.cpp:554,1
    - Dst: std::bind
      Src: /src/libtorrent/test/bittorrent_peer.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - piece
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 556
    functionName: peer_conn::write_have
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - async_write
    - write_uint32
    - both_sides_from_store_buffer
    - write_uint8
    - data
    linkageType: ''
    returnType: void
    signature: void peer_conn::write_have(int piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/bittorrent_peer.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: peer_conn::abort
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    linkageType: ''
    returnType: void
    signature: void peer_conn::abort()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/test/test_utp.cpp:62,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_utp.cpp:67,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_utp.cpp:68,1
    - Dst: settings
      Src: /src/libtorrent/test/test_utp.cpp:76,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:77,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:78,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:79,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:80,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_utp.cpp:81,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_utp.cpp:82,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:83,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:84,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:85,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:86,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:87,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_utp.cpp:88,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_utp.cpp:89,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_utp.cpp:89,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_utp.cpp:92,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_utp.cpp:92,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_utp.cpp:98,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_utp.cpp:99,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_utp.cpp:102,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_utp.cpp:103,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_utp.cpp:103,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_utp.cpp:106,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_utp.cpp:107,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_utp.cpp:116,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_utp.cpp:116,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_utp.cpp:123,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_utp.cpp:124,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_utp.cpp:126,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_utp.cpp:126,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_utp.cpp:128,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_utp.cpp:129,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_utp.cpp:131,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:135,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:140,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_utp.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:141,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_utp.cpp:141,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_utp.cpp:144,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_utp.cpp:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 146
    functionName: test_transfer
    functionSourceFile: /src/libtorrent/test/test_utp.cpp
    functionUses: 0
    functionsReached:
    - print_ses_rate
    - std::this_thread::sleep_for
    - test_listen_interface
    - libtorrent::aux::set_utp_stream_logging
    - error_code::clear
    - error_code::value
    - torrent_handle::status
    - print_alerts
    - setup_transfer
    - error_code::message
    - settings_pack::set_bool
    - std::printf
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - std::ofstream::close
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - std::tie
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void test_transfer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/test/test_utp.cpp:62,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_utp.cpp:67,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_utp.cpp:68,1
    - Dst: settings
      Src: /src/libtorrent/test/test_utp.cpp:76,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:77,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:78,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:79,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:80,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_utp.cpp:81,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_utp.cpp:82,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:83,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:84,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:85,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:86,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_utp.cpp:87,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_utp.cpp:88,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_utp.cpp:89,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_utp.cpp:89,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_utp.cpp:92,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_utp.cpp:92,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_utp.cpp:98,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_utp.cpp:99,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_utp.cpp:102,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_utp.cpp:103,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_utp.cpp:103,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_utp.cpp:106,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_utp.cpp:107,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_utp.cpp:116,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_utp.cpp:116,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_utp.cpp:123,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_utp.cpp:124,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_utp.cpp:126,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_utp.cpp:126,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_utp.cpp:128,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_utp.cpp:129,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_utp.cpp:131,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:135,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:140,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_utp.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:141,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_utp.cpp:141,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_utp.cpp:144,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_utp.cpp:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 146
    functionName: test_transfer
    functionSourceFile: /src/libtorrent/test/test_utp.cpp
    functionUses: 0
    functionsReached:
    - print_ses_rate
    - std::this_thread::sleep_for
    - test_listen_interface
    - libtorrent::aux::set_utp_stream_logging
    - error_code::clear
    - error_code::value
    - torrent_handle::status
    - print_alerts
    - setup_transfer
    - error_code::message
    - settings_pack::set_bool
    - std::printf
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - std::ofstream::close
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - std::tie
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void test_transfer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_utp.cpp:152,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_utp.cpp:155,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_utp.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_utp.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    - remove_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:163,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/test/test_utp.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:164,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/test/test_utp.cpp:164,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:165,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/test/test_utp.cpp:165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:166,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/test/test_utp.cpp:166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:167,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/test/test_utp.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utp.cpp:168,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/test/test_utp.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_utp.cpp
    functionUses: 0
    functionsReached:
    - compare_less_wrap
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(compare_less_wrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:66,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:66,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:66,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:68,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_create_torrent.cpp:71,1
    - Dst: std::strstr
      Src: /src/libtorrent/test/test_create_torrent.cpp:72,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:74,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:78,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_create_torrent.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - libtorrent::bencode
    - memcmp
    - lt::create_torrent::generate_buf
    - std::back_inserter
    - std::strstr
    - lt::create_torrent::generate
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_verbatim_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:105,1
    - Dst: lt::create_torrent::piece_length
      Src: /src/libtorrent/test/test_create_torrent.cpp:105,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_create_torrent.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 107
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - lt::file_storage::add_file
    - lt::create_torrent::piece_length
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(auto_piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:114,1
    - Dst: lt::create_torrent::piece_length
      Src: /src/libtorrent/test/test_create_torrent.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - piece_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: test_piece_size
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 1
    functionsReached:
    - lt::file_storage::add_file
    - lt::create_torrent::piece_length
    linkageType: ''
    returnType: int
    signature: int test_piece_size(int const piece_size, lt::create_flags_t const
      f = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:114,1
    - Dst: lt::create_torrent::piece_length
      Src: /src/libtorrent/test/test_create_torrent.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - piece_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: test_piece_size
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 1
    functionsReached:
    - lt::file_storage::add_file
    - lt::create_torrent::piece_length
    linkageType: ''
    returnType: int
    signature: int test_piece_size(int const piece_size, lt::create_flags_t const
      f = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:123,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:123,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:124,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:124,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:125,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:125,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:126,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:126,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:127,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_piece_size
    - TEST_EQUAL
    - TEST_THROW
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_size_restriction_16kB)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:133,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:133,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:134,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:134,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:135,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:135,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:136,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:136,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:137,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:137,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:138,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_piece_size
    - TEST_EQUAL
    - TEST_THROW
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_size_quanta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:144,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:144,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:145,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:145,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:146,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_piece_size
    - TEST_EQUAL
    - TEST_THROW
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_size_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:153,1
    - Dst: lt::torrent_info::comment
      Src: /src/libtorrent/test/test_create_torrent.cpp:153,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:154,1
    - Dst: lt::torrent_info::trackers
      Src: /src/libtorrent/test/test_create_torrent.cpp:154,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:155,1
    - Dst: lt::torrent_info::trackers
      Src: /src/libtorrent/test/test_create_torrent.cpp:155,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:160,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:160,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:161,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:161,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:164,1
    - Dst: lt::torrent_info::comment
      Src: /src/libtorrent/test/test_create_torrent.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:165,1
    - Dst: lt::torrent_info::trackers
      Src: /src/libtorrent/test/test_create_torrent.cpp:165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:166,1
    - Dst: lt::torrent_info::trackers
      Src: /src/libtorrent/test/test_create_torrent.cpp:166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:167,1
    - Dst: lt::torrent_info::info_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:167,1
    - Dst: lt::torrent_info::info_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:168,1
    - Dst: lt::torrent_info::hash_for_piece
      Src: /src/libtorrent/test/test_create_torrent.cpp:168,1
    - Dst: lt::torrent_info::hash_for_piece
      Src: /src/libtorrent/test/test_create_torrent.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 169
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::torrent_info::comment
    - libtorrent::bencode
    - lt::torrent_info::info_hashes
    - lt::create_torrent::generate_buf
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::torrent_info::hash_for_piece
    - lt::torrent_info::trackers
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_torrent_round_trip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_parent_path
      Src: /src/libtorrent/test/test_create_torrent.cpp:175,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/test/test_create_torrent.cpp:175,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/test/test_create_torrent.cpp:176,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/test/test_create_torrent.cpp:176,1
    - Dst: load_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:181,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/test/test_create_torrent.cpp:183,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:189,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:190,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:191,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:191,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/test/test_create_torrent.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:195,1
    - Dst: lt::bdecode_node::dict_find
      Src: /src/libtorrent/test/test_create_torrent.cpp:195,1
    - Dst: lt::bdecode_node::dict_find
      Src: /src/libtorrent/test/test_create_torrent.cpp:196,1
    - Dst: lt::bdecode_node::dict_find
      Src: /src/libtorrent/test/test_create_torrent.cpp:198,1
    - Dst: lt::bdecode_node::dict_find
      Src: /src/libtorrent/test/test_create_torrent.cpp:199,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: test_round_trip_torrent
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bencode
    - libtorrent::combine_path
    - libtorrent::bdecode
    - lt::create_torrent::generate_buf
    - load_file
    - libtorrent::current_working_directory
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::bdecode_node::dict_find
    - TEST_CHECK
    - libtorrent::has_parent_path
    linkageType: ''
    returnType: void
    signature: void test_round_trip_torrent(std::string const& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_parent_path
      Src: /src/libtorrent/test/test_create_torrent.cpp:175,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/test/test_create_torrent.cpp:175,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/test/test_create_torrent.cpp:176,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/test/test_create_torrent.cpp:176,1
    - Dst: load_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:181,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/test/test_create_torrent.cpp:183,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:189,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:190,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:191,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:191,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/test/test_create_torrent.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:195,1
    - Dst: lt::bdecode_node::dict_find
      Src: /src/libtorrent/test/test_create_torrent.cpp:195,1
    - Dst: lt::bdecode_node::dict_find
      Src: /src/libtorrent/test/test_create_torrent.cpp:196,1
    - Dst: lt::bdecode_node::dict_find
      Src: /src/libtorrent/test/test_create_torrent.cpp:198,1
    - Dst: lt::bdecode_node::dict_find
      Src: /src/libtorrent/test/test_create_torrent.cpp:199,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: test_round_trip_torrent
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bencode
    - libtorrent::combine_path
    - libtorrent::bdecode
    - lt::create_torrent::generate_buf
    - load_file
    - libtorrent::current_working_directory
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::bdecode_node::dict_find
    - TEST_CHECK
    - libtorrent::has_parent_path
    linkageType: ''
    returnType: void
    signature: void test_round_trip_torrent(std::string const& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_round_trip_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_round_trip_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_torrent_round_trip_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_round_trip_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_round_trip_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_torrent_round_trip_hybrid_missing_tailpad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_round_trip_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_round_trip_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_torrent_round_trip_hybrid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_round_trip_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_round_trip_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_torrent_round_trip_empty_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:236,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:237,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:238,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:239,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:242,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:243,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:244,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:245,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:252,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:253,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:254,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:255,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:256,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:256,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:257,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 259
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::generate_buf
    - TEST_THROW
    - lt::create_torrent::set_hash2
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_path_conflict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:264,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:265,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:269,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:269,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:269,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:270,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:270,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:270,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:271,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:271,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:271,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:273,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:273,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:273,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:274,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:274,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:274,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:277,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:277,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:277,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:278,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:280,1
    - Dst: lt::torrent_info::info_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:281,1
    - Dst: lt::torrent_info::info_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:281,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:282,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:283,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:283,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:284,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:284,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:285,1
    - Dst: lt::torrent_info::name
      Src: /src/libtorrent/test/test_create_torrent.cpp:285,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:289,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:289,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:289,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:290,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:290,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 293
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::torrent_info::files
    - libtorrent::bencode
    - lt::torrent_info::info_hashes
    - p
    - lt::create_torrent::generate_buf
    - libtorrent::aux::max
    - lt::torrent_info::name
    - lt::create_torrent::set_hash2
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:298,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:301,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_create_torrent.cpp:301,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::file_storage::add_file
    - lt::create_torrent::set_hash
    - libtorrent::aux::max
    - TEST_THROW
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_only_set_hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::error_code::message
      Src: /src/libtorrent/test/test_create_torrent.cpp:311,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/test/test_create_torrent.cpp:312,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/test/test_create_torrent.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: check
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 2
    functionsReached:
    - std::runtime_error
    - lt::error_code::message
    linkageType: ''
    returnType: void
    signature: void check(int ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::error_code::message
      Src: /src/libtorrent/test/test_create_torrent.cpp:311,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/test/test_create_torrent.cpp:312,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/test/test_create_torrent.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: check
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 2
    functionsReached:
    - std::runtime_error
    - lt::error_code::message
    linkageType: ''
    returnType: void
    signature: void check(int ret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/test_create_torrent.cpp:323,1
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/test_create_torrent.cpp:324,1
    - Dst: check
      Src: /src/libtorrent/test/test_create_torrent.cpp:326,1
    - Dst: truncate
      Src: /src/libtorrent/test/test_create_torrent.cpp:326,1
    - Dst: check
      Src: /src/libtorrent/test/test_create_torrent.cpp:328,1
    - Dst: truncate
      Src: /src/libtorrent/test/test_create_torrent.cpp:328,1
    - Dst: check
      Src: /src/libtorrent/test/test_create_torrent.cpp:329,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/test/test_create_torrent.cpp:329,1
    - Dst: check
      Src: /src/libtorrent/test/test_create_torrent.cpp:330,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/test/test_create_torrent.cpp:330,1
    - Dst: check
      Src: /src/libtorrent/test/test_create_torrent.cpp:331,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/test/test_create_torrent.cpp:331,1
    - Dst: check
      Src: /src/libtorrent/test/test_create_torrent.cpp:332,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/test/test_create_torrent.cpp:332,1
    - Dst: libtorrent::add_files
      Src: /src/libtorrent/test/test_create_torrent.cpp:335,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:339,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:342,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:342,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:342,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:343,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:343,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:348,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:350,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:356,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:356,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:361,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:361,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 366
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_EQUAL
    - check
    - back_inserter
    - truncate
    - libtorrent::bencode
    - lt::torrent_info::files
    - libtorrent::file_storage::symlink
    - lt::create_torrent::generate_buf
    - libtorrent::set_piece_hashes
    - lt::create_torrent::generate
    - libtorrent::create_directories
    - libtorrent::add_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_torrent_symlink)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/libtorrent/test/test_create_torrent.cpp:375,1
    - Dst: truncate
      Src: /src/libtorrent/test/test_create_torrent.cpp:375,1
    - Dst: check
      Src: /src/libtorrent/test/test_create_torrent.cpp:376,1
    - Dst: ::chmod
      Src: /src/libtorrent/test/test_create_torrent.cpp:376,1
    - Dst: libtorrent::add_files
      Src: /src/libtorrent/test/test_create_torrent.cpp:379,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:382,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:384,1
    - Dst: lt::entry::to_string
      Src: /src/libtorrent/test/test_create_torrent.cpp:386,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:388,1
    - Dst: string
      Src: /src/libtorrent/test/test_create_torrent.cpp:388,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:389,1
    - Dst: string
      Src: /src/libtorrent/test/test_create_torrent.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 390
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - check
    - truncate
    - ::chmod
    - string
    - lt::entry::to_string
    - libtorrent::set_piece_hashes
    - lt::create_torrent::generate
    - libtorrent::add_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:396,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_create_torrent.cpp:400,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:400,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:400,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - p
    - TEST_THROW
    - libtorrent::aux::max
    - lt::create_torrent::set_hash2
    - lt::file_storage::add_file
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v1_only_set_hash2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:408,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:409,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:413,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:413,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:413,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:414,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:414,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:414,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:415,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:415,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:415,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:417,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:417,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:417,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:418,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:418,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:418,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:421,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:421,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:421,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:422,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:422,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:424,1
    - Dst: lt::torrent_info::info_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:424,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:425,1
    - Dst: lt::torrent_info::info_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:425,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:426,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:426,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:427,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:427,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:428,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:428,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:429,1
    - Dst: lt::torrent_info::name
      Src: /src/libtorrent/test/test_create_torrent.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 430
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::torrent_info::files
    - libtorrent::bencode
    - lt::torrent_info::info_hashes
    - p
    - lt::create_torrent::generate_buf
    - libtorrent::aux::max
    - lt::torrent_info::name
    - lt::create_torrent::set_hash2
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(implicit_v2_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:437,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:438,1
    - Dst: lt::file_storage::piece_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:441,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_create_torrent.cpp:442,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:442,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:445,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:445,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:445,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:446,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:446,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:448,1
    - Dst: lt::torrent_info::info_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:448,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:449,1
    - Dst: lt::torrent_info::info_hashes
      Src: /src/libtorrent/test/test_create_torrent.cpp:449,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:450,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:450,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:451,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:451,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:452,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:452,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:453,1
    - Dst: lt::torrent_info::name
      Src: /src/libtorrent/test/test_create_torrent.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 454
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::create_torrent::set_hash
    - lt::torrent_info::files
    - libtorrent::bencode
    - lt::torrent_info::info_hashes
    - lt::create_torrent::generate_buf
    - libtorrent::aux::max
    - lt::torrent_info::name
    - lt::file_storage::piece_range
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(implicit_v1_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:462,1
    - Dst: lt::file_storage::piece_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:464,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_create_torrent.cpp:465,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:465,1
    - Dst: f
      Src: /src/libtorrent/test/test_create_torrent.cpp:467,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:470,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:470,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:470,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:471,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:471,1
    - Dst: setup_torrent_info
      Src: /src/libtorrent/test/test_create_torrent.cpp:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: test_field
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - setup_torrent_info
    - lt::create_torrent::set_hash
    - libtorrent::bencode
    - lt::create_torrent::generate_buf
    - f
    - libtorrent::aux::max
    - lt::file_storage::piece_range
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: lt::torrent_info
    signature: lt::torrent_info test_field(Fun f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:462,1
    - Dst: lt::file_storage::piece_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:464,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_create_torrent.cpp:465,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:465,1
    - Dst: f
      Src: /src/libtorrent/test/test_create_torrent.cpp:467,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:470,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:470,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:470,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:471,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:471,1
    - Dst: setup_torrent_info
      Src: /src/libtorrent/test/test_create_torrent.cpp:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: test_field
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - setup_torrent_info
    - lt::create_torrent::set_hash
    - libtorrent::bencode
    - lt::create_torrent::generate_buf
    - f
    - libtorrent::aux::max
    - lt::file_storage::piece_range
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: lt::torrent_info
    signature: lt::torrent_info test_field(Fun f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_field
      Src: /src/libtorrent/test/test_create_torrent.cpp:478,1
    - Dst: set_creation_date
      Src: /src/libtorrent/test/test_create_torrent.cpp:479,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:481,1
    - Dst: auto::creation_date
      Src: /src/libtorrent/test/test_create_torrent.cpp:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 482
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_field
    - TEST_EQUAL
    - set_creation_date
    - auto::creation_date
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_creation_date)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_field
      Src: /src/libtorrent/test/test_create_torrent.cpp:486,1
    - Dst: set_creation_date
      Src: /src/libtorrent/test/test_create_torrent.cpp:487,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:489,1
    - Dst: auto::creation_date
      Src: /src/libtorrent/test/test_create_torrent.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_field
    - TEST_EQUAL
    - set_creation_date
    - auto::creation_date
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(creation_date)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_field
      Src: /src/libtorrent/test/test_create_torrent.cpp:494,1
    - Dst: set_comment
      Src: /src/libtorrent/test/test_create_torrent.cpp:495,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:497,1
    - Dst: auto::comment
      Src: /src/libtorrent/test/test_create_torrent.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_field
    - TEST_EQUAL
    - auto::comment
    - set_comment
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_field
      Src: /src/libtorrent/test/test_create_torrent.cpp:502,1
    - Dst: set_creator
      Src: /src/libtorrent/test/test_create_torrent.cpp:503,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:505,1
    - Dst: auto::creator
      Src: /src/libtorrent/test/test_create_torrent.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 506
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_field
    - TEST_EQUAL
    - set_creator
    - auto::creator
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(creator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_field
      Src: /src/libtorrent/test/test_create_torrent.cpp:510,1
    - Dst: add_node
      Src: /src/libtorrent/test/test_create_torrent.cpp:511,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:514,1
    - Dst: auto::nodes
      Src: /src/libtorrent/test/test_create_torrent.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_field
    - add_node
    - TEST_CHECK
    - auto::nodes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_field
      Src: /src/libtorrent/test/test_create_torrent.cpp:519,1
    - Dst: set_root_cert
      Src: /src/libtorrent/test/test_create_torrent.cpp:520,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:522,1
    - Dst: auto::ssl_cert
      Src: /src/libtorrent/test/test_create_torrent.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 523
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_field
    - TEST_EQUAL
    - auto::ssl_cert
    - set_root_cert
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ssl_cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_field
      Src: /src/libtorrent/test/test_create_torrent.cpp:527,1
    - Dst: set_priv
      Src: /src/libtorrent/test/test_create_torrent.cpp:528,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:530,1
    - Dst: auto::priv
      Src: /src/libtorrent/test/test_create_torrent.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 531
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_field
    - set_priv
    - auto::priv
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:536,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:537,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:538,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:542,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:542,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:542,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:543,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:543,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:543,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:544,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:544,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:544,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:545,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:545,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:545,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:548,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:548,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:548,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:549,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:549,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:552,1
    - Dst: lt::torrent_info::piece_layer
      Src: /src/libtorrent/test/test_create_torrent.cpp:552,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:552,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:553,1
    - Dst: lt::torrent_info::piece_layer
      Src: /src/libtorrent/test/test_create_torrent.cpp:553,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:553,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:554,1
    - Dst: lt::torrent_info::piece_layer
      Src: /src/libtorrent/test/test_create_torrent.cpp:554,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_create_torrent.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 555
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bencode
    - test_piece_size
    - p
    - lt::torrent_info::piece_layer
    - lt::create_torrent::generate_buf
    - libtorrent::aux::max
    - lt::create_torrent::set_hash2
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:560,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:561,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:562,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:566,1
    - Dst: p
      Src: /src/libtorrent/test/test_create_torrent.cpp:566,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:566,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:569,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:570,1
    - Dst: find_key
      Src: /src/libtorrent/test/test_create_torrent.cpp:570,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:571,1
    - Dst: find_key
      Src: /src/libtorrent/test/test_create_torrent.cpp:571,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:572,1
    - Dst: find_key
      Src: /src/libtorrent/test/test_create_torrent.cpp:572,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:574,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:574,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:577,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:577,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:578,1
    - Dst: lt::torrent_info::files
      Src: /src/libtorrent/test/test_create_torrent.cpp:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 579
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::torrent_info::files
    - libtorrent::bencode
    - p
    - libtorrent::aux::max
    - find_key
    - lt::create_torrent::set_hash2
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pieces_root_empty_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lt::create_torrent::set_creation_date
      Src: /src/libtorrent/test/test_create_torrent.cpp:587,1
    - Dst: piece_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:589,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_create_torrent.cpp:590,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:590,1
    - Dst: file_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:592,1
    - Dst: pad_file_at
      Src: /src/libtorrent/test/test_create_torrent.cpp:593,1
    - Dst: file_piece_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:594,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:595,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:595,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:596,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:598,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:598,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:600,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:600,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:601,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - ' fs'
    - piece_size
    - flags
    argTypes:
    - lt::file_storage
    - int
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 603
    functionName: test_create_torrent
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - file_piece_range
    - lt::create_torrent::set_hash
    - libtorrent::bencode
    - lt::create_torrent::generate_buf
    - libtorrent::aux::max
    - pad_file_at
    - lt::create_torrent::set_hash2
    - lt::create_torrent::generate
    - std::back_inserter
    - lt::create_torrent::set_creation_date
    - piece_range
    - file_range
    - TEST_CHECK
    linkageType: ''
    returnType: std::string
    signature: "std::string test_create_torrent(lt::file_storage& fs, int const piece_size\n\t,
      lt::create_flags_t const flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lt::create_torrent::set_creation_date
      Src: /src/libtorrent/test/test_create_torrent.cpp:587,1
    - Dst: piece_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:589,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_create_torrent.cpp:590,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:590,1
    - Dst: file_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:592,1
    - Dst: pad_file_at
      Src: /src/libtorrent/test/test_create_torrent.cpp:593,1
    - Dst: file_piece_range
      Src: /src/libtorrent/test/test_create_torrent.cpp:594,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_create_torrent.cpp:595,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_create_torrent.cpp:595,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_create_torrent.cpp:596,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:598,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:598,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/test/test_create_torrent.cpp:600,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_create_torrent.cpp:600,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_create_torrent.cpp:601,1
    - Dst: lt::create_torrent::generate_buf
      Src: /src/libtorrent/test/test_create_torrent.cpp:601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - ' fs'
    - piece_size
    - flags
    argTypes:
    - lt::file_storage
    - int
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 603
    functionName: test_create_torrent
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - file_piece_range
    - lt::create_torrent::set_hash
    - libtorrent::bencode
    - lt::create_torrent::generate_buf
    - libtorrent::aux::max
    - pad_file_at
    - lt::create_torrent::set_hash2
    - lt::create_torrent::generate
    - std::back_inserter
    - lt::create_torrent::set_creation_date
    - piece_range
    - file_range
    - TEST_CHECK
    linkageType: ''
    returnType: std::string
    signature: "std::string test_create_torrent(lt::file_storage& fs, int const piece_size\n\t,
      lt::create_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:610,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:611,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:612,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 626
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v1_tail_padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:632,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:633,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:634,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:635,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 650
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v1_empty_file_placement)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:657,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:658,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:659,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 673
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v1_file_sorting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:679,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:680,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:681,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 694
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v1_no_tail_padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:700,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:701,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:702,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:703,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 717
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v1_empty_file_placement_backwards_compatibility)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:724,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:725,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:726,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 738
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v1_no_padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:743,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:744,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:745,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 773
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hybrid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:778,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:779,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 796
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hybrid_single_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:801,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:802,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 821
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hybrid_single_file_with_directory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:827,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:828,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:829,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 856
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hybrid_no_tail_padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:861,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_create_torrent.cpp:862,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_create_torrent.cpp:863,1
    - Dst: test_create_torrent
      Src: /src/libtorrent/test/test_create_torrent.cpp:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 880
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_create_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::add_file
    - test_create_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_only_file_sorting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_chunked.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_chunked.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_chunked.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_chunked.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_chunked.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_chunked.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_chunked.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_chunked.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_sha1_hash.cpp:43,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/test/test_sha1_hash.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: to_hash
    functionSourceFile: /src/libtorrent/test/test_sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - sha1_hash::data
    - libtorrent::aux::from_hex
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash to_hash(char const* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:51,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:52,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:53,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:54,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:55,1
    - Dst: sha1_hash::is_all_zeros
      Src: /src/libtorrent/test/test_sha1_hash.cpp:55,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:57,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:58,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:60,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:61,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:62,1
    - Dst: sha1_hash::clear
      Src: /src/libtorrent/test/test_sha1_hash.cpp:63,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:64,1
    - Dst: sha1_hash::is_all_zeros
      Src: /src/libtorrent/test/test_sha1_hash.cpp:64,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:66,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:67,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:69,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:69,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:71,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:72,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:74,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:74,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:78,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:78,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:79,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:81,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:82,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:82,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:84,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:86,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:86,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:88,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:88,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:90,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:92,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:92,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:94,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:96,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:96,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:100,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:100,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:102,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:104,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:104,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:108,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:110,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sha1_hash.cpp:112,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 113
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - to_hash
    - sha1_hash::clear
    - sha1_hash::is_all_zeros
    - sha1_hash
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sha1_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_sha1_hash.cpp:144,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_sha1_hash.cpp:145,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_sha1_hash.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 147
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::printf
    - to_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(count_leading_zeroes)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:59,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_read_piece.cpp:63,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:64,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:65,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:65,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_read_piece.cpp:67,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:68,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:69,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:69,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_read_piece.cpp:71,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_read_piece.cpp:71,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:72,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:73,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:73,1
    - Dst: create_random_files
      Src: /src/libtorrent/test/test_read_piece.cpp:80,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_read_piece.cpp:80,1
    - Dst: add_files
      Src: /src/libtorrent/test/test_read_piece.cpp:82,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_read_piece.cpp:82,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/test/test_read_piece.cpp:86,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:87,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:88,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:88,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_piece.cpp:91,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_piece.cpp:91,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_read_piece.cpp:91,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_read_piece.cpp:92,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:94,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_read_piece.cpp:95,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_read_piece.cpp:95,1
    - Dst: settings
      Src: /src/libtorrent/test/test_read_piece.cpp:97,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_read_piece.cpp:98,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_read_piece.cpp:98,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_read_piece.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:109,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:110,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:111,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:112,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_read_piece.cpp:112,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_read_piece.cpp:114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:117,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_read_piece.cpp:117,1
    - Dst: torrent_handle::set_piece_deadline
      Src: /src/libtorrent/test/test_read_piece.cpp:121,1
    - Dst: torrent_handle::read_piece
      Src: /src/libtorrent/test/test_read_piece.cpp:125,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_read_piece.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:130,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_read_piece.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_piece.cpp:137,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_read_piece.cpp:141,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:142,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:143,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 144
    functionName: test_read_piece
    functionSourceFile: /src/libtorrent/test/test_read_piece.cpp
    functionUses: 0
    functionsReached:
    - auto::info_hashes
    - torrent_handle::read_piece
    - test_listen_interface
    - error_code::value
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - add_files
    - error_code::message
    - set_piece_hashes
    - std::printf
    - TEST_EQUAL
    - libtorrent::aux::to_hex
    - create_directory
    - lt::session::add_torrent
    - bencode
    - TEST_CHECK
    - remove_all
    - combine_path
    - create_random_files
    - torrent_handle::is_valid
    - alert_cast<read_piece_alert>
    - wait_for_alert
    - settings_pack::set_str
    - std::back_inserter
    - settings
    - lt::create_torrent::generate
    - torrent_handle::set_piece_deadline
    linkageType: ''
    returnType: void
    signature: void test_read_piece(int flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:59,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_read_piece.cpp:63,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:64,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:65,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:65,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_read_piece.cpp:67,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:68,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:69,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:69,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_read_piece.cpp:71,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_read_piece.cpp:71,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:72,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:73,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:73,1
    - Dst: create_random_files
      Src: /src/libtorrent/test/test_read_piece.cpp:80,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_read_piece.cpp:80,1
    - Dst: add_files
      Src: /src/libtorrent/test/test_read_piece.cpp:82,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_read_piece.cpp:82,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/test/test_read_piece.cpp:86,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:87,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:88,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:88,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_piece.cpp:91,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_piece.cpp:91,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_read_piece.cpp:91,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_read_piece.cpp:92,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:94,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_read_piece.cpp:95,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_read_piece.cpp:95,1
    - Dst: settings
      Src: /src/libtorrent/test/test_read_piece.cpp:97,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_read_piece.cpp:98,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_read_piece.cpp:98,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_read_piece.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:109,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:110,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:111,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:112,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_read_piece.cpp:112,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_read_piece.cpp:114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:117,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_read_piece.cpp:117,1
    - Dst: torrent_handle::set_piece_deadline
      Src: /src/libtorrent/test/test_read_piece.cpp:121,1
    - Dst: torrent_handle::read_piece
      Src: /src/libtorrent/test/test_read_piece.cpp:125,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_read_piece.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:130,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_read_piece.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_piece.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_piece.cpp:137,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_read_piece.cpp:141,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_read_piece.cpp:142,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_read_piece.cpp:143,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_read_piece.cpp:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 144
    functionName: test_read_piece
    functionSourceFile: /src/libtorrent/test/test_read_piece.cpp
    functionUses: 0
    functionsReached:
    - auto::info_hashes
    - torrent_handle::read_piece
    - test_listen_interface
    - error_code::value
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - add_files
    - error_code::message
    - set_piece_hashes
    - std::printf
    - TEST_EQUAL
    - libtorrent::aux::to_hex
    - create_directory
    - lt::session::add_torrent
    - bencode
    - TEST_CHECK
    - remove_all
    - combine_path
    - create_random_files
    - torrent_handle::is_valid
    - alert_cast<read_piece_alert>
    - wait_for_alert
    - settings_pack::set_str
    - std::back_inserter
    - settings
    - lt::create_torrent::generate
    - torrent_handle::set_piece_deadline
    linkageType: ''
    returnType: void
    signature: void test_read_piece(int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_read_piece
      Src: /src/libtorrent/test/test_read_piece.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_piece.cpp
    functionUses: 0
    functionsReached:
    - test_read_piece
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_read_piece
      Src: /src/libtorrent/test/test_read_piece.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_piece.cpp
    functionUses: 0
    functionsReached:
    - test_read_piece
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_read_piece
      Src: /src/libtorrent/test/test_read_piece.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_piece.cpp
    functionUses: 0
    functionsReached:
    - test_read_piece
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(time_critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/test/test_fast_extension.cpp:69,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/test/test_fast_extension.cpp:76,1
    - Dst: va_end
      Src: /src/libtorrent/test/test_fast_extension.cpp:80,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_fast_extension.cpp:82,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_fast_extension.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: log
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - time_now_string
    - va_end
    - std::vsnprintf
    - std::printf
    linkageType: ''
    returnType: void
    signature: void log(char const* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_fast_extension.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: print_session_log
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - print_alerts
    linkageType: ''
    returnType: void
    signature: void print_session_log(lt::session& ses)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libtorrent/test/test_fast_extension.cpp:95,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:95,1
    - Dst: span<char>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:95,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:96,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:99,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:99,1
    - Dst: span<char>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:102,1
    - Dst: read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:103,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:104,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:106,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:107,1
    - Dst: read
      Src: /src/libtorrent/test/test_fast_extension.cpp:111,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:111,1
    - Dst: span<char>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:111,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_fast_extension.cpp:111,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:112,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:115,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' s'
    - buffer
    argTypes:
    - tcp::socket
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 119
    functionName: read_message
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - read_int32
    - read
    - both_sides_from_store_buffer
    - log
    - error_code::message
    - std::size_t
    - span<char>::data
    - span<char>::size
    - TEST_ERROR
    linkageType: ''
    returnType: int
    signature: int read_message(tcp::socket& s, span<char> buffer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/test/test_fast_extension.cpp:130,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:144,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:147,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_fast_extension.cpp:148,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:148,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:149,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:150,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_fast_extension.cpp:151,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_fast_extension.cpp:152,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:154,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:156,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:157,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_fast_extension.cpp:158,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:160,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_fast_extension.cpp:162,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_fast_extension.cpp:163,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_fast_extension.cpp:163,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/test/test_fast_extension.cpp:163,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:167,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/test/test_fast_extension.cpp:167,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 168
    functionName: print_message
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::stringstream::str
    - libtorrent::aux::read_int32
    - print_entry
    - span<char const>::data
    - std::snprintf
    - log
    - span<char const>::size
    - span<char const>::subspan
    - span<char const>::empty
    - piece_index_t
    - bdecode
    linkageType: ''
    returnType: void
    signature: void print_message(span<char const> buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:172,1
    - Dst: write_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:176,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:178,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:178,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:179,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:180,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' s'
    - piece
    argTypes:
    - tcp::socket
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: send_allow_fast
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - write_int32
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_allow_fast(tcp::socket& s, int piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:185,1
    - Dst: write_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:189,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:191,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:191,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:192,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:193,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' s'
    - piece
    argTypes:
    - tcp::socket
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: send_suggest_piece
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - write_int32
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_suggest_piece(tcp::socket& s, int piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:198,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:201,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:201,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:202,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:203,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: send_keepalive
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_keepalive(tcp::socket& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:208,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:211,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:211,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:212,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:213,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: send_unchoke
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_unchoke(tcp::socket& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:218,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:221,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:221,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:222,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:223,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: send_have_all
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_have_all(tcp::socket& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:228,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:231,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:231,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:232,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:233,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 234
    functionName: send_have_none
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_have_none(tcp::socket& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:240,1
    - Dst: write_uint16
      Src: /src/libtorrent/test/test_fast_extension.cpp:243,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:245,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:245,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:246,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:247,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' s'
    - port
    argTypes:
    - tcp::socket
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: send_dht_port
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - write_uint16
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_dht_port(tcp::socket& s, int port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/test/test_fast_extension.cpp:254,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_fast_extension.cpp:257,1
    - Dst: begin
      Src: /src/libtorrent/test/test_fast_extension.cpp:257,1
    - Dst: end
      Src: /src/libtorrent/test/test_fast_extension.cpp:257,1
    - Dst: data
      Src: /src/libtorrent/test/test_fast_extension.cpp:258,1
    - Dst: write_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:259,1
    - Dst: write_int8
      Src: /src/libtorrent/test/test_fast_extension.cpp:260,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:261,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: data
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: size
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:268,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:269,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' s'
    - bits
    argTypes:
    - tcp::socket
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 270
    functionName: send_bitfield
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - write_int32
    - begin
    - std::fill
    - boost::asio::transfer_all
    - TEST_ERROR
    - write
    - end
    - log
    - both_sides_from_store_buffer
    - std::size_t
    - write_int8
    - strlen
    - error_code::message
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send_bitfield(tcp::socket& s, char const* bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:277,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_fast_extension.cpp:279,1
    - Dst: v1::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:279,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:280,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:280,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:281,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:284,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:284,1
    - Dst: read
      Src: /src/libtorrent/test/test_fast_extension.cpp:289,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:289,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:290,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:293,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:293,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:296,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:298,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:299,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_fast_extension.cpp:299,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:303,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:307,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:312,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:314,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:317,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_fast_extension.cpp:317,1
    - Dst: v1::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - ' s'
    - ' ih'
    - buffer
    argTypes:
    - tcp::socket
    - info_hash_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 318
    functionName: do_handshake
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - boost::asio::transfer_all
    - std::memcmp
    - TEST_ERROR
    - write
    - read
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_CHECK
    - v1::data
    linkageType: ''
    returnType: void
    signature: void do_handshake(tcp::socket& s, info_hash_t const& ih, char* buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_fast_extension.cpp:328,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_fast_extension.cpp:330,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_fast_extension.cpp:330,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:335,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:335,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:336,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:337,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:340,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:340,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:340,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:341,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:342,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' e'
    argTypes:
    - tcp::socket
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 343
    functionName: send_extension_handshake
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - boost::asio::transfer_all
    - std::vector::resize
    - write
    - write_uint32
    - both_sides_from_store_buffer
    - error_code::message
    - std::back_inserter
    - write_uint8
    - bencode
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_extension_handshake(tcp::socket& s, entry const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:349,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_fast_extension.cpp:349,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:352,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_fast_extension.cpp:352,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:353,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:354,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:356,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:356,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:357,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:358,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' s'
    - req
    argTypes:
    - tcp::socket
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: send_request
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - boost::asio::transfer_all
    - write
    - write_uint32
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_request(tcp::socket& s, peer_request req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:365,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:368,1
    - Dst: entry
      Src: /src/libtorrent/test/test_fast_extension.cpp:369,1
    - Dst: span<char>::first
      Src: /src/libtorrent/test/test_fast_extension.cpp:371,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:372,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_fast_extension.cpp:380,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/test/test_fast_extension.cpp:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ' s'
    - recv_buffer
    argTypes:
    - tcp::socket
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 382
    functionName: read_extension_handshake
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - span<char>::first
    - entry
    - read_message
    - span<char>::subspan
    - print_message
    - bdecode
    - TEST_ERROR
    linkageType: ''
    returnType: entry
    signature: entry read_extension_handshake(tcp::socket& s, span<char> recv_buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_fast_extension.cpp:393,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_fast_extension.cpp:398,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_fast_extension.cpp:398,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:403,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:403,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:404,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:405,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:407,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:410,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:410,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:410,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:411,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:412,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ' s'
    - ut_metadata_msg
    - type
    - piece
    argTypes:
    - tcp::socket
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 413
    functionName: send_ut_metadata_msg
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - boost::asio::transfer_all
    - std::vector::resize
    - write
    - write_uint32
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - std::back_inserter
    - write_uint8
    - bencode
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_ut_metadata_msg(tcp::socket& s, int ut_metadata_msg, int
      type, int piece)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:419,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:422,1
    - Dst: entry
      Src: /src/libtorrent/test/test_fast_extension.cpp:423,1
    - Dst: span<char>::first
      Src: /src/libtorrent/test/test_fast_extension.cpp:425,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:426,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_fast_extension.cpp:434,1
    - Dst: auto::subspan
      Src: /src/libtorrent/test/test_fast_extension.cpp:434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - ' s'
    - recv_buffer
    argTypes:
    - tcp::socket
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 436
    functionName: read_ut_metadata_msg
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - auto::subspan
    - span<char>::first
    - entry
    - read_message
    - print_message
    - bdecode
    - TEST_ERROR
    linkageType: ''
    returnType: entry
    signature: entry read_ut_metadata_msg(tcp::socket& s, span<char> recv_buffer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: create_directory
      Src: /src/libtorrent/test/test_fast_extension.cpp:451,1
    - Dst: std::ofstream::open
      Src: /src/libtorrent/test/test_fast_extension.cpp:452,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_fast_extension.cpp:452,1
    - Dst: remove
      Src: /src/libtorrent/test/test_fast_extension.cpp:458,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_fast_extension.cpp:458,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:459,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:459,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_fast_extension.cpp:462,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:463,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_fast_extension.cpp:464,1
    - Dst: settings
      Src: /src/libtorrent/test/test_fast_extension.cpp:466,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_fast_extension.cpp:467,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_fast_extension.cpp:467,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:468,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:469,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:470,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:471,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_fast_extension.cpp:472,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_fast_extension.cpp:473,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:474,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:475,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:477,1
    - Dst: reset
      Src: /src/libtorrent/test/test_fast_extension.cpp:479,1
    - Dst: lt::session::session
      Src: /src/libtorrent/test/test_fast_extension.cpp:479,1
    - Dst: add_torrent
      Src: /src/libtorrent/test/test_fast_extension.cpp:491,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_fast_extension.cpp:495,1
    - Dst: connect
      Src: /src/libtorrent/test/test_fast_extension.cpp:500,1
    - Dst: ep
      Src: /src/libtorrent/test/test_fast_extension.cpp:500,1
    - Dst: listen_port
      Src: /src/libtorrent/test/test_fast_extension.cpp:500,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:501,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:501,1
    - Dst: tcp::acceptor::open
      Src: /src/libtorrent/test/test_fast_extension.cpp:506,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_fast_extension.cpp:506,1
    - Dst: tcp::acceptor::bind
      Src: /src/libtorrent/test/test_fast_extension.cpp:507,1
    - Dst: ep
      Src: /src/libtorrent/test/test_fast_extension.cpp:507,1
    - Dst: tcp::acceptor::listen
      Src: /src/libtorrent/test/test_fast_extension.cpp:508,1
    - Dst: tcp::acceptor::local_endpoint
      Src: /src/libtorrent/test/test_fast_extension.cpp:509,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:511,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:512,1
    - Dst: tcp::acceptor::accept
      Src: /src/libtorrent/test/test_fast_extension.cpp:513,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 4
    argNames:
    - ' s'
    - ' ioc'
    - ' ih'
    - ' ses'
    argTypes:
    - tcp::socket
    - io_context
    - info_hash_t
    - std::shared_ptr<lt::session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 519
    functionName: setup_peer
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - tcp::acceptor::open
    - test_listen_interface
    - add_torrent
    - wait_for_downloading
    - torrent_handle::connect_peer
    - reset
    - tcp::acceptor::listen
    - std::ofstream::open
    - listen_port
    - log
    - error_code::message
    - remove
    - settings_pack::set_bool
    - print_session_log
    - tcp::acceptor::local_endpoint
    - TEST_ERROR
    - create_directory
    - tcp::acceptor::bind
    - lt::session::session
    - connect
    - tcp::acceptor::accept
    - std::ofstream::close
    - rand_v4
    - libtorrent::create_torrent::create_torrent
    - combine_path
    - std::shared_ptr::info_hashes
    - ep
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: "std::shared_ptr<torrent_info> setup_peer(tcp::socket& s, io_context&
      ioc\n\t, info_hash_t& ih\n\t, std::shared_ptr<lt::session>& ses, bool incoming
      = true\n\t, bool const magnet_link = false, bool const dht = false\n\t, torrent_flags_t
      const flags = torrent_flags_t{}\n\t, torrent_handle* th = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/test/test_fast_extension.cpp:69,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/test/test_fast_extension.cpp:76,1
    - Dst: va_end
      Src: /src/libtorrent/test/test_fast_extension.cpp:80,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_fast_extension.cpp:82,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_fast_extension.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: log
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 14
    functionsReached:
    - va_start
    - time_now_string
    - va_end
    - std::vsnprintf
    - std::printf
    linkageType: ''
    returnType: void
    signature: void log(char const* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_fast_extension.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: print_session_log
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 1
    functionsReached:
    - print_alerts
    linkageType: ''
    returnType: void
    signature: void print_session_log(lt::session& ses)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libtorrent/test/test_fast_extension.cpp:95,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:95,1
    - Dst: span<char>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:95,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:96,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:99,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:99,1
    - Dst: span<char>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:102,1
    - Dst: read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:103,1
    - Dst: span<char>::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:104,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:106,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:107,1
    - Dst: read
      Src: /src/libtorrent/test/test_fast_extension.cpp:111,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:111,1
    - Dst: span<char>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:111,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_fast_extension.cpp:111,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:112,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:115,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' s'
    - buffer
    argTypes:
    - tcp::socket
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 119
    functionName: read_message
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 2
    functionsReached:
    - boost::asio::transfer_all
    - read_int32
    - read
    - both_sides_from_store_buffer
    - log
    - error_code::message
    - std::size_t
    - span<char>::data
    - span<char>::size
    - TEST_ERROR
    linkageType: ''
    returnType: int
    signature: int read_message(tcp::socket& s, span<char> buffer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/test/test_fast_extension.cpp:130,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:144,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:147,1
    - Dst: piece_index_t
      Src: /src/libtorrent/test/test_fast_extension.cpp:148,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:148,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:149,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:150,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_fast_extension.cpp:151,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_fast_extension.cpp:152,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:154,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:156,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:157,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_fast_extension.cpp:158,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:160,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_fast_extension.cpp:162,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_fast_extension.cpp:163,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_fast_extension.cpp:163,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/test/test_fast_extension.cpp:163,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:167,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/test/test_fast_extension.cpp:167,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 168
    functionName: print_message
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::stringstream::str
    - libtorrent::aux::read_int32
    - print_entry
    - span<char const>::data
    - std::snprintf
    - log
    - span<char const>::size
    - span<char const>::subspan
    - span<char const>::empty
    - piece_index_t
    - bdecode
    linkageType: ''
    returnType: void
    signature: void print_message(span<char const> buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:172,1
    - Dst: write_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:176,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:178,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:178,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:179,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:180,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' s'
    - piece
    argTypes:
    - tcp::socket
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: send_allow_fast
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - write_int32
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_allow_fast(tcp::socket& s, int piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:185,1
    - Dst: write_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:189,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:191,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:191,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:192,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:193,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' s'
    - piece
    argTypes:
    - tcp::socket
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: send_suggest_piece
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - write_int32
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_suggest_piece(tcp::socket& s, int piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:198,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:201,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:201,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:202,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:203,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: send_keepalive
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_keepalive(tcp::socket& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:208,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:211,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:211,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:212,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:213,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: send_unchoke
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_unchoke(tcp::socket& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:218,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:221,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:221,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:222,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:223,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: send_have_all
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_have_all(tcp::socket& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:228,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:231,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:231,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:232,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:233,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 234
    functionName: send_have_none
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_have_none(tcp::socket& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:240,1
    - Dst: write_uint16
      Src: /src/libtorrent/test/test_fast_extension.cpp:243,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:245,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:245,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:246,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:247,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' s'
    - port
    argTypes:
    - tcp::socket
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: send_dht_port
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - write_uint16
    - boost::asio::transfer_all
    - write
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_dht_port(tcp::socket& s, int port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/test/test_fast_extension.cpp:254,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_fast_extension.cpp:257,1
    - Dst: begin
      Src: /src/libtorrent/test/test_fast_extension.cpp:257,1
    - Dst: end
      Src: /src/libtorrent/test/test_fast_extension.cpp:257,1
    - Dst: data
      Src: /src/libtorrent/test/test_fast_extension.cpp:258,1
    - Dst: write_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:259,1
    - Dst: write_int8
      Src: /src/libtorrent/test/test_fast_extension.cpp:260,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:261,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: data
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: size
      Src: /src/libtorrent/test/test_fast_extension.cpp:267,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:268,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:269,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' s'
    - bits
    argTypes:
    - tcp::socket
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 270
    functionName: send_bitfield
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - write_int32
    - begin
    - std::fill
    - boost::asio::transfer_all
    - TEST_ERROR
    - write
    - end
    - log
    - both_sides_from_store_buffer
    - std::size_t
    - write_int8
    - strlen
    - error_code::message
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send_bitfield(tcp::socket& s, char const* bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:277,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_fast_extension.cpp:279,1
    - Dst: v1::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:279,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:280,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:280,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:281,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:284,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:284,1
    - Dst: read
      Src: /src/libtorrent/test/test_fast_extension.cpp:289,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:289,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:290,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:293,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:293,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:296,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:298,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:299,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_fast_extension.cpp:299,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:303,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:307,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:312,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:314,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:317,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_fast_extension.cpp:317,1
    - Dst: v1::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - ' s'
    - ' ih'
    - buffer
    argTypes:
    - tcp::socket
    - info_hash_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 318
    functionName: do_handshake
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - boost::asio::transfer_all
    - std::memcmp
    - TEST_ERROR
    - write
    - read
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_CHECK
    - v1::data
    linkageType: ''
    returnType: void
    signature: void do_handshake(tcp::socket& s, info_hash_t const& ih, char* buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_fast_extension.cpp:328,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_fast_extension.cpp:330,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_fast_extension.cpp:330,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:335,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:335,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:336,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:337,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:340,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:340,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:340,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:341,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:342,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' e'
    argTypes:
    - tcp::socket
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 343
    functionName: send_extension_handshake
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - boost::asio::transfer_all
    - std::vector::resize
    - write
    - write_uint32
    - both_sides_from_store_buffer
    - error_code::message
    - std::back_inserter
    - write_uint8
    - bencode
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_extension_handshake(tcp::socket& s, entry const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:349,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_fast_extension.cpp:349,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:352,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_fast_extension.cpp:352,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:353,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:354,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:356,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:356,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:357,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:358,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' s'
    - req
    argTypes:
    - tcp::socket
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: send_request
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - boost::asio::transfer_all
    - write
    - write_uint32
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_request(tcp::socket& s, peer_request req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:365,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:368,1
    - Dst: entry
      Src: /src/libtorrent/test/test_fast_extension.cpp:369,1
    - Dst: span<char>::first
      Src: /src/libtorrent/test/test_fast_extension.cpp:371,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:372,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_fast_extension.cpp:380,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/test/test_fast_extension.cpp:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ' s'
    - recv_buffer
    argTypes:
    - tcp::socket
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 382
    functionName: read_extension_handshake
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - span<char>::first
    - entry
    - read_message
    - span<char>::subspan
    - print_message
    - bdecode
    - TEST_ERROR
    linkageType: ''
    returnType: entry
    signature: entry read_extension_handshake(tcp::socket& s, span<char> recv_buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_fast_extension.cpp:393,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_fast_extension.cpp:398,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_fast_extension.cpp:398,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:403,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:403,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:404,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:405,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:407,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:410,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:410,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:410,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:411,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:412,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ' s'
    - ut_metadata_msg
    - type
    - piece
    argTypes:
    - tcp::socket
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 413
    functionName: send_ut_metadata_msg
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - boost::asio::transfer_all
    - std::vector::resize
    - write
    - write_uint32
    - log
    - both_sides_from_store_buffer
    - error_code::message
    - std::back_inserter
    - write_uint8
    - bencode
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void send_ut_metadata_msg(tcp::socket& s, int ut_metadata_msg, int
      type, int piece)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:419,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:422,1
    - Dst: entry
      Src: /src/libtorrent/test/test_fast_extension.cpp:423,1
    - Dst: span<char>::first
      Src: /src/libtorrent/test/test_fast_extension.cpp:425,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:426,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_fast_extension.cpp:434,1
    - Dst: auto::subspan
      Src: /src/libtorrent/test/test_fast_extension.cpp:434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - ' s'
    - recv_buffer
    argTypes:
    - tcp::socket
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 436
    functionName: read_ut_metadata_msg
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - auto::subspan
    - span<char>::first
    - entry
    - read_message
    - print_message
    - bdecode
    - TEST_ERROR
    linkageType: ''
    returnType: entry
    signature: entry read_ut_metadata_msg(tcp::socket& s, span<char> recv_buffer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: create_directory
      Src: /src/libtorrent/test/test_fast_extension.cpp:451,1
    - Dst: std::ofstream::open
      Src: /src/libtorrent/test/test_fast_extension.cpp:452,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_fast_extension.cpp:452,1
    - Dst: remove
      Src: /src/libtorrent/test/test_fast_extension.cpp:458,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_fast_extension.cpp:458,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:459,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:459,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_fast_extension.cpp:462,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:463,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_fast_extension.cpp:464,1
    - Dst: settings
      Src: /src/libtorrent/test/test_fast_extension.cpp:466,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_fast_extension.cpp:467,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_fast_extension.cpp:467,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:468,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:469,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:470,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:471,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_fast_extension.cpp:472,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_fast_extension.cpp:473,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:474,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:475,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_fast_extension.cpp:477,1
    - Dst: reset
      Src: /src/libtorrent/test/test_fast_extension.cpp:479,1
    - Dst: lt::session::session
      Src: /src/libtorrent/test/test_fast_extension.cpp:479,1
    - Dst: add_torrent
      Src: /src/libtorrent/test/test_fast_extension.cpp:491,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_fast_extension.cpp:495,1
    - Dst: connect
      Src: /src/libtorrent/test/test_fast_extension.cpp:500,1
    - Dst: ep
      Src: /src/libtorrent/test/test_fast_extension.cpp:500,1
    - Dst: listen_port
      Src: /src/libtorrent/test/test_fast_extension.cpp:500,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:501,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:501,1
    - Dst: tcp::acceptor::open
      Src: /src/libtorrent/test/test_fast_extension.cpp:506,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_fast_extension.cpp:506,1
    - Dst: tcp::acceptor::bind
      Src: /src/libtorrent/test/test_fast_extension.cpp:507,1
    - Dst: ep
      Src: /src/libtorrent/test/test_fast_extension.cpp:507,1
    - Dst: tcp::acceptor::listen
      Src: /src/libtorrent/test/test_fast_extension.cpp:508,1
    - Dst: tcp::acceptor::local_endpoint
      Src: /src/libtorrent/test/test_fast_extension.cpp:509,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:511,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:512,1
    - Dst: tcp::acceptor::accept
      Src: /src/libtorrent/test/test_fast_extension.cpp:513,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 4
    argNames:
    - ' s'
    - ' ioc'
    - ' ih'
    - ' ses'
    argTypes:
    - tcp::socket
    - io_context
    - info_hash_t
    - std::shared_ptr<lt::session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 519
    functionName: setup_peer
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - tcp::acceptor::open
    - test_listen_interface
    - add_torrent
    - wait_for_downloading
    - torrent_handle::connect_peer
    - reset
    - tcp::acceptor::listen
    - std::ofstream::open
    - listen_port
    - log
    - error_code::message
    - remove
    - settings_pack::set_bool
    - print_session_log
    - tcp::acceptor::local_endpoint
    - TEST_ERROR
    - create_directory
    - tcp::acceptor::bind
    - lt::session::session
    - connect
    - tcp::acceptor::accept
    - std::ofstream::close
    - rand_v4
    - libtorrent::create_torrent::create_torrent
    - combine_path
    - std::shared_ptr::info_hashes
    - ep
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: "std::shared_ptr<torrent_info> setup_peer(tcp::socket& s, io_context&
      ioc\n\t, info_hash_t& ih\n\t, std::shared_ptr<lt::session>& ses, bool incoming
      = true\n\t, bool const magnet_link = false, bool const dht = false\n\t, torrent_flags_t
      const flags = torrent_flags_t{}\n\t, torrent_handle* th = nullptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:533,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:536,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:537,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:538,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:539,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:542,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:543,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:544,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:545,1
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_fast_extension.cpp:547,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_fast_extension.cpp:547,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:547,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_fast_extension.cpp:548,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_fast_extension.cpp:548,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:549,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_fast_extension.cpp:551,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:553,1
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:554,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_fast_extension.cpp:556,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:557,1
    - Dst: auto::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:562,1
    - Dst: read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:563,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_fast_extension.cpp:565,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_fast_extension.cpp:565,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:566,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:567,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:567,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:568,1
    - Dst: std::vector::erase
      Src: /src/libtorrent/test/test_fast_extension.cpp:569,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:573,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:574,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:574,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:575,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:578,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:578,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:581,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:581,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:582,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:585,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:585,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:589,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:590,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:591,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:591,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:592,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 593
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - write
    - do_handshake
    - std::vector::begin
    - std::vector::end
    - read_message
    - setup_peer
    - boost::asio::transfer_all
    - std::find
    - log
    - error_code::message
    - span<char const>
    - print_message
    - print_session_log
    - send_have_all
    - TEST_ERROR
    - tcp::socket::close
    - read_int32
    - libtorrent::total_milliseconds
    - TEST_CHECK
    - auto::data
    - std::vector::erase
    - std::bind
    - std::for_each
    - std::vector::push_back
    - std::vector::empty
    - std::ref
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reject_fast)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:603,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:606,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:607,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:608,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:609,1
    - Dst: send_suggest_piece
      Src: /src/libtorrent/test/test_fast_extension.cpp:613,1
    - Dst: send_unchoke
      Src: /src/libtorrent/test/test_fast_extension.cpp:614,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:615,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:615,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:616,1
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:618,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_fast_extension.cpp:619,1
    - Dst: auto::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:625,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:626,1
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:629,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_fast_extension.cpp:630,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:632,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:633,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 635
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - libtorrent::aux::read_int32
    - read_message
    - setup_peer
    - send_unchoke
    - std::this_thread::sleep_for
    - tcp::socket::close
    - do_handshake
    - libtorrent::total_milliseconds
    - send_have_all
    - span<char const>
    - print_session_log
    - send_suggest_piece
    - auto::data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_suggest)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:645,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:648,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:649,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:650,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:651,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:654,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:655,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:656,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:657,1
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_fast_extension.cpp:659,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_fast_extension.cpp:659,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_fast_extension.cpp:660,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_fast_extension.cpp:660,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:661,1
    - Dst: send_unchoke
      Src: /src/libtorrent/test/test_fast_extension.cpp:663,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:664,1
    - Dst: send_keepalive
      Src: /src/libtorrent/test/test_fast_extension.cpp:666,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:667,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_fast_extension.cpp:670,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:672,1
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:673,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_fast_extension.cpp:675,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:676,1
    - Dst: auto::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:682,1
    - Dst: read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:683,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_fast_extension.cpp:685,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_fast_extension.cpp:685,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:686,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:687,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:687,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:688,1
    - Dst: std::vector::erase
      Src: /src/libtorrent/test/test_fast_extension.cpp:689,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:693,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:694,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:694,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:695,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:698,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:698,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:701,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:701,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:702,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:705,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:705,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:709,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:710,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:712,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:713,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:713,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:714,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 715
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - write
    - do_handshake
    - std::vector::begin
    - std::vector::end
    - read_message
    - setup_peer
    - send_unchoke
    - boost::asio::transfer_all
    - std::find
    - log
    - error_code::message
    - span<char const>
    - print_message
    - print_session_log
    - send_have_all
    - TEST_ERROR
    - tcp::socket::close
    - read_int32
    - libtorrent::total_milliseconds
    - TEST_CHECK
    - auto::data
    - std::for_each
    - std::bind
    - std::vector::erase
    - std::vector::push_back
    - std::vector::empty
    - std::ref
    - send_keepalive
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reject_suggest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:725,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:728,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:729,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:730,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:731,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:734,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:735,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:736,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:737,1
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_fast_extension.cpp:739,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_fast_extension.cpp:739,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_fast_extension.cpp:739,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_fast_extension.cpp:740,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_fast_extension.cpp:740,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:741,1
    - Dst: send_unchoke
      Src: /src/libtorrent/test/test_fast_extension.cpp:743,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:744,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_fast_extension.cpp:747,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:749,1
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:750,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_fast_extension.cpp:752,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:753,1
    - Dst: auto::data
      Src: /src/libtorrent/test/test_fast_extension.cpp:761,1
    - Dst: read_int32
      Src: /src/libtorrent/test/test_fast_extension.cpp:762,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_fast_extension.cpp:766,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/test/test_fast_extension.cpp:767,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:768,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:770,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:771,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:773,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:774,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:774,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:775,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 776
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - do_handshake
    - std::vector::begin
    - std::vector::end
    - read_message
    - setup_peer
    - send_unchoke
    - std::vector::pop_back
    - span<char const>
    - print_message
    - print_session_log
    - send_have_all
    - tcp::socket::close
    - TEST_EQUAL
    - std::vector::back
    - read_int32
    - libtorrent::total_milliseconds
    - TEST_CHECK
    - auto::data
    - std::for_each
    - std::bind
    - std::vector::push_back
    - std::vector::empty
    - std::ref
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(suggest_order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:786,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:787,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:790,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:791,1
    - Dst: std::string::resize
      Src: /src/libtorrent/test/test_fast_extension.cpp:794,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_fast_extension.cpp:794,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_fast_extension.cpp:794,1
    - Dst: send_bitfield
      Src: /src/libtorrent/test/test_fast_extension.cpp:795,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_fast_extension.cpp:795,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:796,1
    - Dst: send_bitfield
      Src: /src/libtorrent/test/test_fast_extension.cpp:798,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_fast_extension.cpp:798,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:799,1
    - Dst: send_bitfield
      Src: /src/libtorrent/test/test_fast_extension.cpp:801,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_fast_extension.cpp:801,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:802,1
    - Dst: send_bitfield
      Src: /src/libtorrent/test/test_fast_extension.cpp:804,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_fast_extension.cpp:804,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:805,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:807,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:808,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:808,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 810
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - setup_peer
    - std::this_thread::sleep_for
    - do_handshake
    - std::string::c_str
    - libtorrent::total_milliseconds
    - std::string::resize
    - std::size_t
    - print_session_log
    - std::shared_ptr::num_pieces
    - send_bitfield
    - tcp::socket::close
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multiple_bitfields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:820,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:823,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:825,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:827,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:828,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:829,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:830,1
    - Dst: send_have_none
      Src: /src/libtorrent/test/test_fast_extension.cpp:831,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:832,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:833,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:834,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:836,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:837,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:838,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:838,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 840
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - send_have_none
    - setup_peer
    - std::this_thread::sleep_for
    - do_handshake
    - libtorrent::total_milliseconds
    - print_session_log
    - send_have_all
    - tcp::socket::close
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multiple_have_all)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:854,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:858,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:859,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:860,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:861,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:863,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:863,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:864,1
    - Dst: torrent_handle::get_peer_info
      Src: /src/libtorrent/test/test_fast_extension.cpp:867,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:869,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:869,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:870,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:873,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:879,1
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:881,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_fast_extension.cpp:883,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:884,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_fast_extension.cpp:892,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_fast_extension.cpp:893,1
    - Dst: auto::subspan
      Src: /src/libtorrent/test/test_fast_extension.cpp:893,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:896,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:897,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:899,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:901,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_fast_extension.cpp:901,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_fast_extension.cpp:902,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:903,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/test/test_fast_extension.cpp:905,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:906,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/test/test_fast_extension.cpp:909,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:911,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:914,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:915,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_fast_extension.cpp:916,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_fast_extension.cpp:917,1
    - Dst: write
      Src: /src/libtorrent/test/test_fast_extension.cpp:919,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_fast_extension.cpp:919,1
    - Dst: boost::asio::transfer_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:920,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:921,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_fast_extension.cpp:921,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:923,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:925,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:925,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:927,1
    - Dst: torrent_handle::get_peer_info
      Src: /src/libtorrent/test/test_fast_extension.cpp:929,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:931,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:931,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:932,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:934,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:935,1
    - Dst: pieces::count
      Src: /src/libtorrent/test/test_fast_extension.cpp:935,1
    - Dst: pieces::size
      Src: /src/libtorrent/test/test_fast_extension.cpp:935,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:936,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:937,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:938,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:939,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:941,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 843
    functionDepth: 3
    functionLinenumber: 843
    functionLinenumberEnd: 942
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - std::vector::size
    - std::this_thread::sleep_for
    - write
    - do_handshake
    - error_code::clear
    - bdecode
    - auto::subspan
    - read_message
    - setup_peer
    - bdecode_node::int_value
    - boost::asio::transfer_all
    - bdecode_node::dict_find_int
    - log
    - error_code::message
    - span<char const>
    - print_message
    - print_session_log
    - bdecode_node::dict_find_dict
    - send_have_all
    - TEST_ERROR
    - TEST_EQUAL
    - pieces::size
    - libtorrent::total_milliseconds
    - write_uint32
    - pieces::count
    - torrent_handle::get_peer_info
    - write_uint8
    - TEST_CHECK
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dont_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:952,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:955,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:956,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:957,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:958,1
    - Dst: send_extension_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:961,1
    - Dst: read_extension_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:963,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:968,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:968,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:970,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:970,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:972,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:972,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:973,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:973,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:977,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:977,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fast_extension.cpp:978,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 944
    functionDepth: 4
    functionLinenumber: 944
    functionLinenumberEnd: 980
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - setup_peer
    - do_handshake
    - integer
    - send_extension_handshake
    - print_session_log
    - read_extension_handshake
    - send_have_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(extension_handshake)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:995,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:998,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:999,1
    - Dst: send_have_all
      Src: /src/libtorrent/test/test_fast_extension.cpp:1000,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:1001,1
    - Dst: send_extension_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:1005,1
    - Dst: read_extension_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:1007,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1009,1
    - Dst: log
      Src: /src/libtorrent/test/test_fast_extension.cpp:1011,1
    - Dst: send_ut_metadata_msg
      Src: /src/libtorrent/test/test_fast_extension.cpp:1017,1
    - Dst: send_ut_metadata_msg
      Src: /src/libtorrent/test/test_fast_extension.cpp:1021,1
    - Dst: read_ut_metadata_msg
      Src: /src/libtorrent/test/test_fast_extension.cpp:1023,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:1026,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1026,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:1027,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1027,1
    - Dst: read_ut_metadata_msg
      Src: /src/libtorrent/test/test_fast_extension.cpp:1029,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:1032,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1032,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fast_extension.cpp:1033,1
    - Dst: integer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1033,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 987
    functionDepth: 4
    functionLinenumber: 987
    functionLinenumberEnd: 1036
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - send_ut_metadata_msg
    - TEST_EQUAL
    - setup_peer
    - do_handshake
    - log
    - integer
    - read_ut_metadata_msg
    - send_extension_handshake
    - print_session_log
    - read_extension_handshake
    - send_have_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_metadata_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1048,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:1051,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:1052,1
    - Dst: send_have_none
      Src: /src/libtorrent/test/test_fast_extension.cpp:1053,1
    - Dst: send_request
      Src: /src/libtorrent/test/test_fast_extension.cpp:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1060
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - send_request
    - send_have_none
    - setup_peer
    - do_handshake
    - print_session_log
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1070,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:1073,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:1074,1
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:1080,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:1083,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_fast_extension.cpp:1086,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:1087,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:1096,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - incoming
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1100
    functionName: have_all_test
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - read_message
    - setup_peer
    - do_handshake
    - print_message
    - span<char const>
    - print_session_log
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void have_all_test(bool const incoming)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1070,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:1073,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:1074,1
    - Dst: read_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:1080,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:1083,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_fast_extension.cpp:1086,1
    - Dst: print_message
      Src: /src/libtorrent/test/test_fast_extension.cpp:1087,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_fast_extension.cpp:1096,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - incoming
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1100
    functionName: have_all_test
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - read_message
    - setup_peer
    - do_handshake
    - print_message
    - span<char const>
    - print_session_log
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void have_all_test(bool const incoming)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: have_all_test
      Src: /src/libtorrent/test/test_fast_extension.cpp:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1104
    functionDepth: 4
    functionLinenumber: 1104
    functionLinenumberEnd: 1108
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - have_all_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(outgoing_have_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: have_all_test
      Src: /src/libtorrent/test/test_fast_extension.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1110
    functionDepth: 4
    functionLinenumber: 1110
    functionLinenumberEnd: 1114
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - have_all_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(incoming_have_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_peer
      Src: /src/libtorrent/test/test_fast_extension.cpp:1124,1
    - Dst: do_handshake
      Src: /src/libtorrent/test/test_fast_extension.cpp:1127,1
    - Dst: send_dht_port
      Src: /src/libtorrent/test/test_fast_extension.cpp:1128,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:1129,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/test/test_fast_extension.cpp:1131,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_fast_extension.cpp:1132,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_fast_extension.cpp:1132,1
    - Dst: print_session_log
      Src: /src/libtorrent/test/test_fast_extension.cpp:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1116
    functionDepth: 3
    functionLinenumber: 1116
    functionLinenumberEnd: 1134
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fast_extension.cpp
    functionUses: 0
    functionsReached:
    - setup_peer
    - std::this_thread::sleep_for
    - do_handshake
    - libtorrent::total_milliseconds
    - print_session_log
    - send_dht_port
    - tcp::socket::close
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_port_no_support)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_remove_torrent.cpp:71,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_remove_torrent.cpp:73,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_remove_torrent.cpp:73,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_remove_torrent.cpp:76,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_remove_torrent.cpp:76,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_remove_torrent.cpp:85,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_remove_torrent.cpp:86,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_remove_torrent.cpp:87,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:89,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_remove_torrent.cpp:91,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_remove_torrent.cpp:93,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_remove_torrent.cpp:94,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_remove_torrent.cpp:97,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_remove_torrent.cpp:97,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_remove_torrent.cpp:105,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_remove_torrent.cpp:105,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_remove_torrent.cpp:105,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_remove_torrent.cpp:106,1
    - Dst: torrent_handle::set_upload_limit
      Src: /src/libtorrent/test/test_remove_torrent.cpp:110,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_remove_torrent.cpp:110,1
    - Dst: std::shared_ptr::total_size
      Src: /src/libtorrent/test/test_remove_torrent.cpp:110,1
    - Dst: torrent_handle::set_download_limit
      Src: /src/libtorrent/test/test_remove_torrent.cpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_remove_torrent.cpp:111,1
    - Dst: std::shared_ptr::total_size
      Src: /src/libtorrent/test/test_remove_torrent.cpp:111,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remove_torrent.cpp:119,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remove_torrent.cpp:120,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remove_torrent.cpp:122,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remove_torrent.cpp:125,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:137,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_remove_torrent.cpp:143,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remove_torrent.cpp:147,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remove_torrent.cpp:147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:151,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:153,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:154,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:158,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:159,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_remove_torrent.cpp:164,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_remove_torrent.cpp:164,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remove_torrent.cpp:166,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remove_torrent.cpp:166,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_remove_torrent.cpp:170,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_remove_torrent.cpp:171,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_remove_torrent.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:181,1
    - Dst: exists
      Src: /src/libtorrent/test/test_remove_torrent.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:182,1
    - Dst: exists
      Src: /src/libtorrent/test/test_remove_torrent.cpp:182,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_remove_torrent.cpp:185,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_remove_torrent.cpp:185,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_remove_torrent.cpp:186,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_remove_torrent.cpp:186,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 1
    argNames:
    - remove_options
    argTypes:
    - remove_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 187
    functionName: test_remove_torrent
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - torrent_handle::prioritize_pieces
    - std::this_thread::sleep_for
    - test_listen_interface
    - std::vector::begin
    - torrent_handle::set_upload_limit
    - torrent_handle::status
    - wait_for_listen
    - print_alerts
    - setup_transfer
    - TEST_ERROR
    - std::shared_ptr::total_size
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - torrent_handle::set_download_limit
    - std::ofstream::close
    - TEST_CHECK
    - lt::session::remove_torrent
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - std::vector::push_back
    - std::tie
    - std::fill
    - torrent_handle::is_valid
    - exists
    - settings_pack::set_str
    - settings
    linkageType: ''
    returnType: void
    signature: "void test_remove_torrent(remove_flags_t const remove_options\n\t,
      test_case const test = complete_download)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_remove_torrent.cpp:71,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_remove_torrent.cpp:73,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_remove_torrent.cpp:73,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_remove_torrent.cpp:76,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_remove_torrent.cpp:76,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_remove_torrent.cpp:85,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_remove_torrent.cpp:86,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_remove_torrent.cpp:87,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:89,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_remove_torrent.cpp:91,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_remove_torrent.cpp:93,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_remove_torrent.cpp:94,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_remove_torrent.cpp:97,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_remove_torrent.cpp:97,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_remove_torrent.cpp:105,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_remove_torrent.cpp:105,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_remove_torrent.cpp:105,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_remove_torrent.cpp:106,1
    - Dst: torrent_handle::set_upload_limit
      Src: /src/libtorrent/test/test_remove_torrent.cpp:110,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_remove_torrent.cpp:110,1
    - Dst: std::shared_ptr::total_size
      Src: /src/libtorrent/test/test_remove_torrent.cpp:110,1
    - Dst: torrent_handle::set_download_limit
      Src: /src/libtorrent/test/test_remove_torrent.cpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_remove_torrent.cpp:111,1
    - Dst: std::shared_ptr::total_size
      Src: /src/libtorrent/test/test_remove_torrent.cpp:111,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remove_torrent.cpp:119,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_remove_torrent.cpp:120,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remove_torrent.cpp:122,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_remove_torrent.cpp:125,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:137,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_remove_torrent.cpp:143,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remove_torrent.cpp:147,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remove_torrent.cpp:147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:151,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:153,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:154,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:158,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:159,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_remove_torrent.cpp:164,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_remove_torrent.cpp:164,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_remove_torrent.cpp:166,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_remove_torrent.cpp:166,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_remove_torrent.cpp:170,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_remove_torrent.cpp:171,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_remove_torrent.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:181,1
    - Dst: exists
      Src: /src/libtorrent/test/test_remove_torrent.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_remove_torrent.cpp:182,1
    - Dst: exists
      Src: /src/libtorrent/test/test_remove_torrent.cpp:182,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_remove_torrent.cpp:185,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_remove_torrent.cpp:185,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_remove_torrent.cpp:186,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_remove_torrent.cpp:186,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 1
    argNames:
    - remove_options
    argTypes:
    - remove_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 187
    functionName: test_remove_torrent
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - torrent_handle::prioritize_pieces
    - std::this_thread::sleep_for
    - test_listen_interface
    - std::vector::begin
    - torrent_handle::set_upload_limit
    - torrent_handle::status
    - wait_for_listen
    - print_alerts
    - setup_transfer
    - TEST_ERROR
    - std::shared_ptr::total_size
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - torrent_handle::set_download_limit
    - std::ofstream::close
    - TEST_CHECK
    - lt::session::remove_torrent
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - std::vector::push_back
    - std::tie
    - std::fill
    - torrent_handle::is_valid
    - exists
    - settings_pack::set_str
    - settings
    linkageType: ''
    returnType: void
    signature: "void test_remove_torrent(remove_flags_t const remove_options\n\t,
      test_case const test = complete_download)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_and_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_files_and_partfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_and_just_partfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_partial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_and_files_partial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_mid_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_and_files_mid_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_twice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_torrent
      Src: /src/libtorrent/test/test_remove_torrent.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_remove_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_torrent_and_files_twice)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/web_seed_suite.cpp:67,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/test/web_seed_suite.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/web_seed_suite.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_error_alert>
    - alert_cast<peer_disconnected_alert>
    linkageType: ''
    returnType: bool
    signature: bool on_alert(alert const* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/web_seed_suite.cpp:67,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/test/web_seed_suite.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/web_seed_suite.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_error_alert>
    - alert_cast<peer_disconnected_alert>
    linkageType: ''
    returnType: bool
    signature: bool on_alert(alert const* a)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/web_seed_suite.cpp:86,1
    - Dst: std::shared_ptr<torrent_info>::web_seeds
      Src: /src/libtorrent/test/web_seed_suite.cpp:86,1
    - Dst: remove_all
      Src: /src/libtorrent/test/web_seed_suite.cpp:92,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:96,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/web_seed_suite.cpp:108,1
    - Dst: start_proxy
      Src: /src/libtorrent/test/web_seed_suite.cpp:111,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:114,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:117,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:118,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:119,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/web_seed_suite.cpp:120,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/web_seed_suite.cpp:121,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/web_seed_suite.cpp:122,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:126,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:127,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:128,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/web_seed_suite.cpp:129,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/web_seed_suite.cpp:130,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/web_seed_suite.cpp:131,1
    - Dst: apply_settings
      Src: /src/libtorrent/test/web_seed_suite.cpp:133,1
    - Dst: add_torrent
      Src: /src/libtorrent/test/web_seed_suite.cpp:145,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:146,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:147,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/web_seed_suite.cpp:147,1
    - Dst: std::shared_ptr<torrent_info>::name
      Src: /src/libtorrent/test/web_seed_suite.cpp:148,1
    - Dst: torrent_handle::replace_trackers
      Src: /src/libtorrent/test/web_seed_suite.cpp:151,1
    - Dst: std::shared_ptr<torrent_info>::total_size
      Src: /src/libtorrent/test/web_seed_suite.cpp:153,1
    - Dst: std::shared_ptr<torrent_info>::files
      Src: /src/libtorrent/test/web_seed_suite.cpp:155,1
    - Dst: file_range
      Src: /src/libtorrent/test/web_seed_suite.cpp:157,1
    - Dst: file_flags
      Src: /src/libtorrent/test/web_seed_suite.cpp:159,1
    - Dst: file_size
      Src: /src/libtorrent/test/web_seed_suite.cpp:160,1
    - Dst: get_counters
      Src: /src/libtorrent/test/web_seed_suite.cpp:164,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/web_seed_suite.cpp:168,1
    - Dst: get_counters
      Src: /src/libtorrent/test/web_seed_suite.cpp:170,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/web_seed_suite.cpp:172,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/web_seed_suite.cpp:173,1
    - Dst: torrent_handle::url_seeds
      Src: /src/libtorrent/test/web_seed_suite.cpp:175,1
    - Dst: torrent_handle::http_seeds
      Src: /src/libtorrent/test/web_seed_suite.cpp:175,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:177,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:184,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:185,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:187,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/web_seed_suite.cpp:190,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/web_seed_suite.cpp:198,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/web_seed_suite.cpp:198,1
    - Dst: get_counters
      Src: /src/libtorrent/test/web_seed_suite.cpp:201,1
    - Dst: std::shared_ptr<torrent_info>::files
      Src: /src/libtorrent/test/web_seed_suite.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/web_seed_suite.cpp:211,1
    - Dst: torrent_handle::url_seeds
      Src: /src/libtorrent/test/web_seed_suite.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/web_seed_suite.cpp:212,1
    - Dst: torrent_handle::http_seeds
      Src: /src/libtorrent/test/web_seed_suite.cpp:212,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/web_seed_suite.cpp:219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/web_seed_suite.cpp:220,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/web_seed_suite.cpp:227,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/web_seed_suite.cpp:228,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/web_seed_suite.cpp:233,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/web_seed_suite.cpp:233,1
    - Dst: stop_proxy
      Src: /src/libtorrent/test/web_seed_suite.cpp:235,1
    - Dst: torrent_handle::flush_cache
      Src: /src/libtorrent/test/web_seed_suite.cpp:237,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/web_seed_suite.cpp:240,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/web_seed_suite.cpp:242,1
    - Dst: file_range
      Src: /src/libtorrent/test/web_seed_suite.cpp:246,1
    - Dst: pad_file_at
      Src: /src/libtorrent/test/web_seed_suite.cpp:248,1
    - Dst: combine_path
      Src: /src/libtorrent/test/web_seed_suite.cpp:249,1
    - Dst: file_path
      Src: /src/libtorrent/test/web_seed_suite.cpp:249,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:250,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:250,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/web_seed_suite.cpp:251,1
    - Dst: exists
      Src: /src/libtorrent/test/web_seed_suite.cpp:251,1
    - Dst: remove_torrent
      Src: /src/libtorrent/test/web_seed_suite.cpp:255,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 80
    argCount: 9
    argNames:
    - ' ses'
    - torrent_file
    - proxy
    - protocol
    - url_seed
    - chunked_encoding
    - test_ban
    - keepalive
    - proxy_peers
    argTypes:
    - lt::session
    - std::shared_ptr<torrent_info>
    - int
    - char*
    - bool
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 256
    functionName: test_transfer
    functionSourceFile: /src/libtorrent/test/web_seed_suite.cpp
    functionUses: 1
    functionsReached:
    - apply_settings
    - print_ses_rate
    - std::this_thread::sleep_for
    - file_size
    - std::shared_ptr<torrent_info>::name
    - torrent_handle::flush_cache
    - pad_file_at
    - add_torrent
    - torrent_handle::status
    - stop_proxy
    - print_alerts
    - file_path
    - start_proxy
    - settings_pack::set_bool
    - file_range
    - file_flags
    - std::printf
    - remove_torrent
    - current_working_directory
    - TEST_EQUAL
    - std::shared_ptr<torrent_info>::total_size
    - torrent_handle::replace_trackers
    - libtorrent::total_milliseconds
    - TORRENT_ASSERT
    - torrent_handle::http_seeds
    - TEST_CHECK
    - remove_all
    - std::shared_ptr<torrent_info>::web_seeds
    - combine_path
    - std::string::c_str
    - get_counters
    - wait_for_alert
    - std::shared_ptr<torrent_info>::files
    - exists
    - settings_pack::set_str
    - torrent_handle::url_seeds
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: "void test_transfer(lt::session& ses, std::shared_ptr<torrent_info>
      torrent_file\n\t, int proxy, char const* protocol, bool url_seed\n\t, bool chunked_encoding,
      bool test_ban, bool keepalive, bool proxy_peers)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_web_server
      Src: /src/libtorrent/test/web_seed_suite.cpp:271,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/web_seed_suite.cpp:278,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:278,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:279,1
    - Dst: create_directories
      Src: /src/libtorrent/test/web_seed_suite.cpp:281,1
    - Dst: combine_path
      Src: /src/libtorrent/test/web_seed_suite.cpp:281,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/web_seed_suite.cpp:284,1
    - Dst: torrent_args
      Src: /src/libtorrent/test/web_seed_suite.cpp:284,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/web_seed_suite.cpp:299,1
    - Dst: torrent_args
      Src: /src/libtorrent/test/web_seed_suite.cpp:299,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/web_seed_suite.cpp:310,1
    - Dst: torrent_args
      Src: /src/libtorrent/test/web_seed_suite.cpp:310,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/web_seed_suite.cpp:319,1
    - Dst: torrent_args
      Src: /src/libtorrent/test/web_seed_suite.cpp:319,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/web_seed_suite.cpp:328,1
    - Dst: torrent_args
      Src: /src/libtorrent/test/web_seed_suite.cpp:328,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/web_seed_suite.cpp:339,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:340,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/web_seed_suite.cpp:343,1
    - Dst: torrent_args
      Src: /src/libtorrent/test/web_seed_suite.cpp:343,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/web_seed_suite.cpp:351,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:351,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:352,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/web_seed_suite.cpp:355,1
    - Dst: torrent_args
      Src: /src/libtorrent/test/web_seed_suite.cpp:355,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:362,1
    - Dst: make_test_torrent
      Src: /src/libtorrent/test/web_seed_suite.cpp:364,1
    - Dst: generate_files
      Src: /src/libtorrent/test/web_seed_suite.cpp:368,1
    - Dst: std::printf
      Src: /src/libtorrent/test/web_seed_suite.cpp:372,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/web_seed_suite.cpp:373,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/web_seed_suite.cpp:374,1
    - Dst: settings
      Src: /src/libtorrent/test/web_seed_suite.cpp:379,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/web_seed_suite.cpp:380,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/web_seed_suite.cpp:381,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/web_seed_suite.cpp:381,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/web_seed_suite.cpp:382,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/web_seed_suite.cpp:383,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/web_seed_suite.cpp:384,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/web_seed_suite.cpp:385,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/web_seed_suite.cpp:386,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/web_seed_suite.cpp:389,1
    - Dst: std::shared_ptr::rename_file
      Src: /src/libtorrent/test/web_seed_suite.cpp:394,1
    - Dst: combine_path
      Src: /src/libtorrent/test/web_seed_suite.cpp:394,1
    - Dst: combine_path
      Src: /src/libtorrent/test/web_seed_suite.cpp:394,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/web_seed_suite.cpp:395,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/web_seed_suite.cpp:401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 8
    argNames:
    - proxy
    - protocol
    - test_url_seed
    - chunked_encoding
    - test_ban
    - keepalive
    - test_rename
    - proxy_peers
    argTypes:
    - int
    - char*
    - bool
    - bool
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 403
    functionName: run_http_suite
    functionSourceFile: /src/libtorrent/test/web_seed_suite.cpp
    functionUses: 9
    functionsReached:
    - test_listen_interface
    - torrent_args
    - create_directories
    - error_code::message
    - settings_pack::set_bool
    - stop_web_server
    - std::printf
    - std::snprintf
    - make_test_torrent
    - std::shared_ptr::rename_file
    - test_transfer
    - TEST_CHECK
    - std::vector::push_back
    - generate_files
    - combine_path
    - std::string::c_str
    - start_web_server
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: int
    signature: "int run_http_suite(int proxy, char const* protocol, bool test_url_seed\n\t,
      bool chunked_encoding, bool test_ban, bool keepalive, bool test_rename\n\t,
      bool proxy_peers)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lt::session*::pop_alerts
      Src: /src/libtorrent/test/print_alerts.cpp:46,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/print_alerts.cpp:48,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/print_alerts.cpp:49,1
    - Dst: alert_cast<peer_log_alert>
      Src: /src/libtorrent/test/print_alerts.cpp:53,1
    - Dst: alert*::timestamp
      Src: /src/libtorrent/test/print_alerts.cpp:64,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/print_alerts.cpp:65,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/test/print_alerts.cpp:65,1
    - Dst: std::printf
      Src: /src/libtorrent/test/print_alerts.cpp:66,1
    - Dst: alert*::what
      Src: /src/libtorrent/test/print_alerts.cpp:67,1
    - Dst: alert*::message
      Src: /src/libtorrent/test/print_alerts.cpp:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ses
    - start_time
    argTypes:
    - lt::session*
    - lt::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 71
    functionName: print_alerts
    functionSourceFile: /src/libtorrent/test/print_alerts.cpp
    functionUses: 18
    functionsReached:
    - alert_cast<peer_log_alert>
    - std::vector::begin
    - lt::session*::pop_alerts
    - std::uint32_t
    - lt::duration_cast<lt::milliseconds>
    - alert*::message
    - alert*::timestamp
    - std::vector::end
    - std::printf
    - alert*::what
    linkageType: ''
    returnType: void
    signature: void print_alerts(lt::session* ses, lt::time_point start_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_swarm
      Src: /src/libtorrent/test/test_time_critical.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_time_critical.cpp
    functionUses: 0
    functionsReached:
    - test_swarm
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(time_crititcal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_time_critical.cpp:47,1
    - Dst: lt::add_torrent_params::piece_priorities::resize
      Src: /src/libtorrent/test/test_time_critical.cpp:53,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_time_critical.cpp:53,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_time_critical.cpp:53,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_time_critical.cpp:55,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_time_critical.cpp:57,1
    - Dst: auto::set_piece_deadline
      Src: /src/libtorrent/test/test_time_critical.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_time_critical.cpp
    functionUses: 0
    functionsReached:
    - auto::set_piece_deadline
    - auto::num_pieces
    - lt::session::add_torrent
    - std::size_t
    - generate_torrent
    - wait_for_downloading
    - lt::add_torrent_params::piece_priorities::resize
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(time_crititcal_zero_prio)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:84,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:86,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:87,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:88,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:89,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:90,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:91,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_info_hash.cpp:94,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 98
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_info_hash.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ordering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:104,1
    - Dst: lt::info_hash_t::has_v1
      Src: /src/libtorrent/test/test_info_hash.cpp:104,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:105,1
    - Dst: lt::info_hash_t::has_v2
      Src: /src/libtorrent/test/test_info_hash.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:106,1
    - Dst: lt::info_hash_t::has
      Src: /src/libtorrent/test/test_info_hash.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:107,1
    - Dst: lt::info_hash_t::has
      Src: /src/libtorrent/test/test_info_hash.cpp:107,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:108,1
    - Dst: lt::info_hash_t::get_best
      Src: /src/libtorrent/test/test_info_hash.cpp:108,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:113,1
    - Dst: lt::info_hash_t::has_v1
      Src: /src/libtorrent/test/test_info_hash.cpp:113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:114,1
    - Dst: lt::info_hash_t::has_v2
      Src: /src/libtorrent/test/test_info_hash.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:115,1
    - Dst: lt::info_hash_t::has
      Src: /src/libtorrent/test/test_info_hash.cpp:115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:116,1
    - Dst: lt::info_hash_t::has
      Src: /src/libtorrent/test/test_info_hash.cpp:116,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:117,1
    - Dst: lt::info_hash_t::get_best
      Src: /src/libtorrent/test/test_info_hash.cpp:117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:122,1
    - Dst: lt::info_hash_t::has_v1
      Src: /src/libtorrent/test/test_info_hash.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:123,1
    - Dst: lt::info_hash_t::has_v2
      Src: /src/libtorrent/test/test_info_hash.cpp:123,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:124,1
    - Dst: lt::info_hash_t::has
      Src: /src/libtorrent/test/test_info_hash.cpp:124,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:125,1
    - Dst: lt::info_hash_t::has
      Src: /src/libtorrent/test/test_info_hash.cpp:125,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:126,1
    - Dst: lt::info_hash_t::get_best
      Src: /src/libtorrent/test/test_info_hash.cpp:126,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:131,1
    - Dst: lt::info_hash_t::has_v1
      Src: /src/libtorrent/test/test_info_hash.cpp:131,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:132,1
    - Dst: lt::info_hash_t::has_v2
      Src: /src/libtorrent/test/test_info_hash.cpp:132,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:133,1
    - Dst: lt::info_hash_t::has
      Src: /src/libtorrent/test/test_info_hash.cpp:133,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:134,1
    - Dst: lt::info_hash_t::has
      Src: /src/libtorrent/test/test_info_hash.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:135,1
    - Dst: lt::info_hash_t::get_best
      Src: /src/libtorrent/test/test_info_hash.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 137
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_info_hash.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::info_hash_t::has_v2
    - lt::info_hash_t::get_best
    - lt::info_hash_t::has_v1
    - lt::info_hash_t::has
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(has)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:143,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:144,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:145,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:146,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:148,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:149,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:150,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:151,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:153,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:154,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:155,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:156,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:158,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:159,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:160,1
    - Dst: std::unordered_set::emplace
      Src: /src/libtorrent/test/test_info_hash.cpp:161,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_info_hash.cpp:163,1
    - Dst: std::unordered_set::size
      Src: /src/libtorrent/test/test_info_hash.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_info_hash.cpp
    functionUses: 0
    functionsReached:
    - std::unordered_set::emplace
    - TEST_EQUAL
    - std::unordered_set::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(std_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/broadcast_socket.cpp:55,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/broadcast_socket.cpp:59,1
    - Dst: address
      Src: /src/libtorrent/test/broadcast_socket.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - multicast_endpoint
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: libtorrent::broadcast_socket::broadcast_socket
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - address
    - std::move
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::broadcast_socket(\n\t\tudp::endpoint multicast_endpoint)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/broadcast_socket.cpp:65,1
    - Dst: enum_net_interfaces
      Src: /src/libtorrent/test/broadcast_socket.cpp:67,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/test/broadcast_socket.cpp:69,1
    - Dst: libtorrent::broadcast_socket::open_multicast_socket
      Src: /src/libtorrent/test/broadcast_socket.cpp:70,1
    - Dst: address_v6::any
      Src: /src/libtorrent/test/broadcast_socket.cpp:70,1
    - Dst: libtorrent::broadcast_socket::open_multicast_socket
      Src: /src/libtorrent/test/broadcast_socket.cpp:72,1
    - Dst: address_v4::any
      Src: /src/libtorrent/test/broadcast_socket.cpp:72,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:77,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:77,1
    - Dst: interface_address::is_loopback
      Src: /src/libtorrent/test/broadcast_socket.cpp:79,1
    - Dst: error_code
      Src: /src/libtorrent/test/broadcast_socket.cpp:81,1
    - Dst: libtorrent::broadcast_socket::open_multicast_socket
      Src: /src/libtorrent/test/broadcast_socket.cpp:83,1
    - Dst: libtorrent::broadcast_socket::open_unicast_socket
      Src: /src/libtorrent/test/broadcast_socket.cpp:84,1
    - Dst: netmask::is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:85,1
    - Dst: netmask::to_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:85,1
    - Dst: address_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - handler
    - ' ios'
    - ' ec'
    - loopback
    argTypes:
    - receive_handler_t
    - io_context
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 87
    functionName: libtorrent::broadcast_socket::open
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::is_v6
    - std::move
    - address_v4
    - libtorrent::aux::is_v4
    - error_code
    - address_v6::any
    - interface_address::is_v4
    - libtorrent::broadcast_socket::open_unicast_socket
    - address_v4::any
    - netmask::is_v4
    - libtorrent::broadcast_socket::open_multicast_socket
    - enum_net_interfaces
    - interface_address::is_loopback
    - netmask::to_v4
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::open(receive_handler_t handler\n\t\t, io_context&
      ios, error_code& ec, bool loopback)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<udp::socket>
      Src: /src/libtorrent/test/broadcast_socket.cpp:94,1
    - Dst: std::shared_ptr::open
      Src: /src/libtorrent/test/broadcast_socket.cpp:95,1
    - Dst: is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:95,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:95,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/broadcast_socket.cpp:95,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:97,1
    - Dst: udp::socket::reuse_address
      Src: /src/libtorrent/test/broadcast_socket.cpp:97,1
    - Dst: std::shared_ptr::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:99,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.cpp:99,1
    - Dst: port
      Src: /src/libtorrent/test/broadcast_socket.cpp:99,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:101,1
    - Dst: join_group
      Src: /src/libtorrent/test/broadcast_socket.cpp:101,1
    - Dst: address
      Src: /src/libtorrent/test/broadcast_socket.cpp:101,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:103,1
    - Dst: hops
      Src: /src/libtorrent/test/broadcast_socket.cpp:103,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:105,1
    - Dst: enable_loopback
      Src: /src/libtorrent/test/broadcast_socket.cpp:105,1
    - Dst: emplace_back
      Src: /src/libtorrent/test/broadcast_socket.cpp:107,1
    - Dst: back
      Src: /src/libtorrent/test/broadcast_socket.cpp:108,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/test/broadcast_socket.cpp:109,1
    - Dst: std::shared_ptr::async_receive_from
      Src: /src/libtorrent/test/broadcast_socket.cpp:110,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:110,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - ' ios'
    - ' addr'
    - loopback
    - ' ec'
    argTypes:
    - io_context
    - address
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 113
    functionName: libtorrent::broadcast_socket::open_multicast_socket
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr::async_receive_from
    - udp::socket::reuse_address
    - std::shared_ptr::bind
    - emplace_back
    - std::shared_ptr::open
    - ADD_OUTSTANDING_ASYNC
    - enable_loopback
    - rand_v6
    - back
    - address
    - hops
    - std::make_shared<udp::socket>
    - port
    - join_group
    - std::bind
    - rand_v4
    - std::shared_ptr::set_option
    - both_sides_from_store_buffer
    - local_endpoint
    - is_v4
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::open_multicast_socket(io_context& ios\n\t\t,
      address const& addr, bool loopback, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<udp::socket>
      Src: /src/libtorrent/test/broadcast_socket.cpp:119,1
    - Dst: std::shared_ptr::open
      Src: /src/libtorrent/test/broadcast_socket.cpp:120,1
    - Dst: is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:120,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:120,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/broadcast_socket.cpp:120,1
    - Dst: emplace_back
      Src: /src/libtorrent/test/broadcast_socket.cpp:123,1
    - Dst: back
      Src: /src/libtorrent/test/broadcast_socket.cpp:124,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:128,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/test/broadcast_socket.cpp:131,1
    - Dst: std::shared_ptr::async_receive_from
      Src: /src/libtorrent/test/broadcast_socket.cpp:132,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' ios'
    - ' addr'
    - ' mask'
    argTypes:
    - io_context
    - address
    - address_v4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: libtorrent::broadcast_socket::open_unicast_socket
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - rand_v4
    - rand_v6
    - std::shared_ptr::async_receive_from
    - std::shared_ptr::open
    - std::shared_ptr::set_option
    - std::make_shared<udp::socket>
    - both_sides_from_store_buffer
    - back
    - emplace_back
    - is_v4
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::open_unicast_socket(io_context& ios, address
      const& addr\n\t\t, address_v4 const& mask)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket::send_to
      Src: /src/libtorrent/test/broadcast_socket.cpp:145,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:145,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:145,1
    - Dst: socket::close
      Src: /src/libtorrent/test/broadcast_socket.cpp:148,1
    - Dst: socket::reset
      Src: /src/libtorrent/test/broadcast_socket.cpp:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - buffer
    - size
    - ' to'
    - ' ec'
    argTypes:
    - char*
    - int
    - udp::endpoint
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 157
    functionName: libtorrent::broadcast_socket::send_to
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - socket::send_to
    - both_sides_from_store_buffer
    - std::size_t
    - socket::close
    - socket::reset
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::send_to(char const* buffer, int size\n\t\t,
      udp::endpoint const& to, error_code& ec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket::send_to
      Src: /src/libtorrent/test/broadcast_socket.cpp:168,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:168,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:168,1
    - Dst: can_broadcast
      Src: /src/libtorrent/test/broadcast_socket.cpp:172,1
    - Dst: socket::send_to
      Src: /src/libtorrent/test/broadcast_socket.cpp:173,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:173,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:173,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.cpp:174,1
    - Dst: broadcast_address
      Src: /src/libtorrent/test/broadcast_socket.cpp:174,1
    - Dst: port
      Src: /src/libtorrent/test/broadcast_socket.cpp:174,1
    - Dst: socket::close
      Src: /src/libtorrent/test/broadcast_socket.cpp:178,1
    - Dst: socket::reset
      Src: /src/libtorrent/test/broadcast_socket.cpp:179,1
    - Dst: socket::send_to
      Src: /src/libtorrent/test/broadcast_socket.cpp:190,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:190,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:190,1
    - Dst: socket::close
      Src: /src/libtorrent/test/broadcast_socket.cpp:193,1
    - Dst: socket::reset
      Src: /src/libtorrent/test/broadcast_socket.cpp:194,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - buffer
    - size
    - ' ec'
    - flags
    argTypes:
    - char*
    - int
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 203
    functionName: libtorrent::broadcast_socket::send
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - socket::send_to
    - can_broadcast
    - both_sides_from_store_buffer
    - broadcast_address
    - std::size_t
    - local_endpoint
    - socket::close
    - socket::reset
    - port
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::send(char const* buffer, int const size\n\t\t,
      error_code& ec, int const flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/test/broadcast_socket.cpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/broadcast_socket.cpp:209,1
    - Dst: libtorrent::broadcast_socket::maybe_abort
      Src: /src/libtorrent/test/broadcast_socket.cpp:214,1
    - Dst: m_on_receive
      Src: /src/libtorrent/test/broadcast_socket.cpp:217,1
    - Dst: socket_entry*::buffer::data
      Src: /src/libtorrent/test/broadcast_socket.cpp:217,1
    - Dst: libtorrent::broadcast_socket::maybe_abort
      Src: /src/libtorrent/test/broadcast_socket.cpp:219,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/test/broadcast_socket.cpp:221,1
    - Dst: socket_entry*::socket::async_receive_from
      Src: /src/libtorrent/test/broadcast_socket.cpp:222,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:222,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - s
    - ' ec'
    - bytes_transferred
    argTypes:
    - socket_entry*
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: libtorrent::broadcast_socket::on_receive
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - libtorrent::broadcast_socket::maybe_abort
    - TORRENT_ASSERT
    - m_on_receive
    - both_sides_from_store_buffer
    - socket_entry*::buffer::data
    - socket_entry*::socket::async_receive_from
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::on_receive(socket_entry* s, error_code const&
      ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: receive_handler_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: libtorrent::broadcast_socket::maybe_abort
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 1
    functionsReached:
    - receive_handler_t
    linkageType: ''
    returnType: bool
    signature: bool broadcast_socket::maybe_abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/test/broadcast_socket.cpp:243,1
    - Dst: begin
      Src: /src/libtorrent/test/broadcast_socket.cpp:243,1
    - Dst: end
      Src: /src/libtorrent/test/broadcast_socket.cpp:243,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:243,1
    - Dst: std::for_each
      Src: /src/libtorrent/test/broadcast_socket.cpp:244,1
    - Dst: begin
      Src: /src/libtorrent/test/broadcast_socket.cpp:244,1
    - Dst: end
      Src: /src/libtorrent/test/broadcast_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:244,1
    - Dst: libtorrent::broadcast_socket::maybe_abort
      Src: /src/libtorrent/test/broadcast_socket.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: libtorrent::broadcast_socket::close
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - libtorrent::broadcast_socket::maybe_abort
    - begin
    - end
    - std::for_each
    linkageType: ''
    returnType: void
    signature: void broadcast_socket::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/broadcast_socket.cpp:55,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/broadcast_socket.cpp:59,1
    - Dst: address
      Src: /src/libtorrent/test/broadcast_socket.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - multicast_endpoint
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: libtorrent::broadcast_socket::broadcast_socket
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - address
    - std::move
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::broadcast_socket(\n\t\tudp::endpoint multicast_endpoint)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/broadcast_socket.cpp:65,1
    - Dst: enum_net_interfaces
      Src: /src/libtorrent/test/broadcast_socket.cpp:67,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/test/broadcast_socket.cpp:69,1
    - Dst: libtorrent::broadcast_socket::open_multicast_socket
      Src: /src/libtorrent/test/broadcast_socket.cpp:70,1
    - Dst: address_v6::any
      Src: /src/libtorrent/test/broadcast_socket.cpp:70,1
    - Dst: libtorrent::broadcast_socket::open_multicast_socket
      Src: /src/libtorrent/test/broadcast_socket.cpp:72,1
    - Dst: address_v4::any
      Src: /src/libtorrent/test/broadcast_socket.cpp:72,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:77,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:77,1
    - Dst: interface_address::is_loopback
      Src: /src/libtorrent/test/broadcast_socket.cpp:79,1
    - Dst: error_code
      Src: /src/libtorrent/test/broadcast_socket.cpp:81,1
    - Dst: libtorrent::broadcast_socket::open_multicast_socket
      Src: /src/libtorrent/test/broadcast_socket.cpp:83,1
    - Dst: libtorrent::broadcast_socket::open_unicast_socket
      Src: /src/libtorrent/test/broadcast_socket.cpp:84,1
    - Dst: netmask::is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:85,1
    - Dst: netmask::to_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:85,1
    - Dst: address_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - handler
    - ' ios'
    - ' ec'
    - loopback
    argTypes:
    - receive_handler_t
    - io_context
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 87
    functionName: libtorrent::broadcast_socket::open
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::is_v6
    - std::move
    - address_v4
    - libtorrent::aux::is_v4
    - error_code
    - address_v6::any
    - interface_address::is_v4
    - libtorrent::broadcast_socket::open_unicast_socket
    - address_v4::any
    - netmask::is_v4
    - libtorrent::broadcast_socket::open_multicast_socket
    - enum_net_interfaces
    - interface_address::is_loopback
    - netmask::to_v4
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::open(receive_handler_t handler\n\t\t, io_context&
      ios, error_code& ec, bool loopback)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<udp::socket>
      Src: /src/libtorrent/test/broadcast_socket.cpp:94,1
    - Dst: std::shared_ptr::open
      Src: /src/libtorrent/test/broadcast_socket.cpp:95,1
    - Dst: is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:95,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:95,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/broadcast_socket.cpp:95,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:97,1
    - Dst: udp::socket::reuse_address
      Src: /src/libtorrent/test/broadcast_socket.cpp:97,1
    - Dst: std::shared_ptr::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:99,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.cpp:99,1
    - Dst: port
      Src: /src/libtorrent/test/broadcast_socket.cpp:99,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:101,1
    - Dst: join_group
      Src: /src/libtorrent/test/broadcast_socket.cpp:101,1
    - Dst: address
      Src: /src/libtorrent/test/broadcast_socket.cpp:101,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:103,1
    - Dst: hops
      Src: /src/libtorrent/test/broadcast_socket.cpp:103,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:105,1
    - Dst: enable_loopback
      Src: /src/libtorrent/test/broadcast_socket.cpp:105,1
    - Dst: emplace_back
      Src: /src/libtorrent/test/broadcast_socket.cpp:107,1
    - Dst: back
      Src: /src/libtorrent/test/broadcast_socket.cpp:108,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/test/broadcast_socket.cpp:109,1
    - Dst: std::shared_ptr::async_receive_from
      Src: /src/libtorrent/test/broadcast_socket.cpp:110,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:110,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - ' ios'
    - ' addr'
    - loopback
    - ' ec'
    argTypes:
    - io_context
    - address
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 113
    functionName: libtorrent::broadcast_socket::open_multicast_socket
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 2
    functionsReached:
    - std::shared_ptr::async_receive_from
    - udp::socket::reuse_address
    - std::shared_ptr::bind
    - emplace_back
    - std::shared_ptr::open
    - ADD_OUTSTANDING_ASYNC
    - enable_loopback
    - rand_v6
    - back
    - address
    - hops
    - std::make_shared<udp::socket>
    - port
    - join_group
    - std::bind
    - rand_v4
    - std::shared_ptr::set_option
    - both_sides_from_store_buffer
    - local_endpoint
    - is_v4
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::open_multicast_socket(io_context& ios\n\t\t,
      address const& addr, bool loopback, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<udp::socket>
      Src: /src/libtorrent/test/broadcast_socket.cpp:119,1
    - Dst: std::shared_ptr::open
      Src: /src/libtorrent/test/broadcast_socket.cpp:120,1
    - Dst: is_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:120,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/broadcast_socket.cpp:120,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/broadcast_socket.cpp:120,1
    - Dst: emplace_back
      Src: /src/libtorrent/test/broadcast_socket.cpp:123,1
    - Dst: back
      Src: /src/libtorrent/test/broadcast_socket.cpp:124,1
    - Dst: std::shared_ptr::set_option
      Src: /src/libtorrent/test/broadcast_socket.cpp:128,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/test/broadcast_socket.cpp:131,1
    - Dst: std::shared_ptr::async_receive_from
      Src: /src/libtorrent/test/broadcast_socket.cpp:132,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' ios'
    - ' addr'
    - ' mask'
    argTypes:
    - io_context
    - address
    - address_v4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: libtorrent::broadcast_socket::open_unicast_socket
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - rand_v4
    - rand_v6
    - std::shared_ptr::async_receive_from
    - std::shared_ptr::open
    - std::shared_ptr::set_option
    - std::make_shared<udp::socket>
    - both_sides_from_store_buffer
    - back
    - emplace_back
    - is_v4
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::open_unicast_socket(io_context& ios, address
      const& addr\n\t\t, address_v4 const& mask)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket::send_to
      Src: /src/libtorrent/test/broadcast_socket.cpp:145,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:145,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:145,1
    - Dst: socket::close
      Src: /src/libtorrent/test/broadcast_socket.cpp:148,1
    - Dst: socket::reset
      Src: /src/libtorrent/test/broadcast_socket.cpp:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - buffer
    - size
    - ' to'
    - ' ec'
    argTypes:
    - char*
    - int
    - udp::endpoint
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 157
    functionName: libtorrent::broadcast_socket::send_to
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - socket::send_to
    - both_sides_from_store_buffer
    - std::size_t
    - socket::close
    - socket::reset
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::send_to(char const* buffer, int size\n\t\t,
      udp::endpoint const& to, error_code& ec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket::send_to
      Src: /src/libtorrent/test/broadcast_socket.cpp:168,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:168,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:168,1
    - Dst: can_broadcast
      Src: /src/libtorrent/test/broadcast_socket.cpp:172,1
    - Dst: socket::send_to
      Src: /src/libtorrent/test/broadcast_socket.cpp:173,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:173,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:173,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.cpp:174,1
    - Dst: broadcast_address
      Src: /src/libtorrent/test/broadcast_socket.cpp:174,1
    - Dst: port
      Src: /src/libtorrent/test/broadcast_socket.cpp:174,1
    - Dst: socket::close
      Src: /src/libtorrent/test/broadcast_socket.cpp:178,1
    - Dst: socket::reset
      Src: /src/libtorrent/test/broadcast_socket.cpp:179,1
    - Dst: socket::send_to
      Src: /src/libtorrent/test/broadcast_socket.cpp:190,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:190,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:190,1
    - Dst: socket::close
      Src: /src/libtorrent/test/broadcast_socket.cpp:193,1
    - Dst: socket::reset
      Src: /src/libtorrent/test/broadcast_socket.cpp:194,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - buffer
    - size
    - ' ec'
    - flags
    argTypes:
    - char*
    - int
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 203
    functionName: libtorrent::broadcast_socket::send
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - socket::send_to
    - can_broadcast
    - both_sides_from_store_buffer
    - broadcast_address
    - std::size_t
    - local_endpoint
    - socket::close
    - socket::reset
    - port
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::send(char const* buffer, int const size\n\t\t,
      error_code& ec, int const flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/test/broadcast_socket.cpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/broadcast_socket.cpp:209,1
    - Dst: libtorrent::broadcast_socket::maybe_abort
      Src: /src/libtorrent/test/broadcast_socket.cpp:214,1
    - Dst: m_on_receive
      Src: /src/libtorrent/test/broadcast_socket.cpp:217,1
    - Dst: socket_entry*::buffer::data
      Src: /src/libtorrent/test/broadcast_socket.cpp:217,1
    - Dst: libtorrent::broadcast_socket::maybe_abort
      Src: /src/libtorrent/test/broadcast_socket.cpp:219,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/test/broadcast_socket.cpp:221,1
    - Dst: socket_entry*::socket::async_receive_from
      Src: /src/libtorrent/test/broadcast_socket.cpp:222,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/broadcast_socket.cpp:222,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - s
    - ' ec'
    - bytes_transferred
    argTypes:
    - socket_entry*
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: libtorrent::broadcast_socket::on_receive
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - libtorrent::broadcast_socket::maybe_abort
    - TORRENT_ASSERT
    - m_on_receive
    - both_sides_from_store_buffer
    - socket_entry*::buffer::data
    - socket_entry*::socket::async_receive_from
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: "void broadcast_socket::on_receive(socket_entry* s, error_code const&
      ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: receive_handler_t
      Src: /src/libtorrent/test/broadcast_socket.cpp:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: libtorrent::broadcast_socket::maybe_abort
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 3
    functionsReached:
    - receive_handler_t
    linkageType: ''
    returnType: bool
    signature: bool broadcast_socket::maybe_abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/test/broadcast_socket.cpp:243,1
    - Dst: begin
      Src: /src/libtorrent/test/broadcast_socket.cpp:243,1
    - Dst: end
      Src: /src/libtorrent/test/broadcast_socket.cpp:243,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:243,1
    - Dst: std::for_each
      Src: /src/libtorrent/test/broadcast_socket.cpp:244,1
    - Dst: begin
      Src: /src/libtorrent/test/broadcast_socket.cpp:244,1
    - Dst: end
      Src: /src/libtorrent/test/broadcast_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/test/broadcast_socket.cpp:244,1
    - Dst: libtorrent::broadcast_socket::maybe_abort
      Src: /src/libtorrent/test/broadcast_socket.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: libtorrent::broadcast_socket::close
    functionSourceFile: /src/libtorrent/test/broadcast_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - libtorrent::broadcast_socket::maybe_abort
    - begin
    - end
    - std::for_each
    linkageType: ''
    returnType: void
    signature: void broadcast_socket::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/test_truncate.cpp:47,1
    - Dst: libtorrent::has_parent_path
      Src: /src/libtorrent/test/test_truncate.cpp:47,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_truncate.cpp:48,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_truncate.cpp:49,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_truncate.cpp:51,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_truncate.cpp:51,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_truncate.cpp:51,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_truncate.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - size
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: create_file
    functionSourceFile: /src/libtorrent/test/test_truncate.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - c_str
    - std::streamsize
    - std::ofstream::write
    - libtorrent::create_directories
    - TEST_CHECK
    - libtorrent::has_parent_path
    linkageType: ''
    returnType: void
    signature: void create_file(std::string const& name, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/test/test_truncate.cpp:58,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/test/test_truncate.cpp:59,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_truncate.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: file_size
    functionSourceFile: /src/libtorrent/test/test_truncate.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::stat_file
    - lt::error_code::message
    - TEST_CHECK
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_size(std::string const& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/test_truncate.cpp:47,1
    - Dst: libtorrent::has_parent_path
      Src: /src/libtorrent/test/test_truncate.cpp:47,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_truncate.cpp:48,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_truncate.cpp:49,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_truncate.cpp:51,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_truncate.cpp:51,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_truncate.cpp:51,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_truncate.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - size
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: create_file
    functionSourceFile: /src/libtorrent/test/test_truncate.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - c_str
    - std::streamsize
    - std::ofstream::write
    - libtorrent::create_directories
    - TEST_CHECK
    - libtorrent::has_parent_path
    linkageType: ''
    returnType: void
    signature: void create_file(std::string const& name, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/test/test_truncate.cpp:58,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/test/test_truncate.cpp:59,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_truncate.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: file_size
    functionSourceFile: /src/libtorrent/test/test_truncate.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::stat_file
    - lt::error_code::message
    - TEST_CHECK
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_size(std::string const& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_truncate.cpp:70,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:70,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_truncate.cpp:71,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:71,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_truncate.cpp:72,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:72,1
    - Dst: create_file
      Src: /src/libtorrent/test/test_truncate.cpp:74,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:74,1
    - Dst: create_file
      Src: /src/libtorrent/test/test_truncate.cpp:75,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:75,1
    - Dst: create_file
      Src: /src/libtorrent/test/test_truncate.cpp:76,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:76,1
    - Dst: libtorrent::truncate_files
      Src: /src/libtorrent/test/test_truncate.cpp:79,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_truncate.cpp:80,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_truncate.cpp:82,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_truncate.cpp:82,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_truncate.cpp:83,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_truncate.cpp:83,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_truncate.cpp:84,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_truncate.cpp:84,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_truncate.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::truncate_files
    - create_file
    - combine_path
    - file_size
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(truncate_small_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_truncate.cpp:92,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:92,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_truncate.cpp:93,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:93,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/test/test_truncate.cpp:94,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:94,1
    - Dst: create_file
      Src: /src/libtorrent/test/test_truncate.cpp:96,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:96,1
    - Dst: create_file
      Src: /src/libtorrent/test/test_truncate.cpp:97,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:97,1
    - Dst: create_file
      Src: /src/libtorrent/test/test_truncate.cpp:98,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:98,1
    - Dst: libtorrent::truncate_files
      Src: /src/libtorrent/test/test_truncate.cpp:101,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_truncate.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_truncate.cpp:104,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_truncate.cpp:104,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:104,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_truncate.cpp:105,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_truncate.cpp:105,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_truncate.cpp:106,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_truncate.cpp:106,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_truncate.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 107
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_truncate.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::truncate_files
    - create_file
    - combine_path
    - file_size
    - lt::file_storage::add_file
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(truncate_large_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::cut
      Src: /src/libtorrent/test/test_receive_buffer.cpp:45,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:47,1
    - Dst: receive_buffer::packet_size
      Src: /src/libtorrent/test/test_receive_buffer.cpp:47,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:48,1
    - Dst: receive_buffer::packet_bytes_remaining
      Src: /src/libtorrent/test/test_receive_buffer.cpp:48,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:49,1
    - Dst: receive_buffer::packet_finished
      Src: /src/libtorrent/test/test_receive_buffer.cpp:49,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:50,1
    - Dst: receive_buffer::pos
      Src: /src/libtorrent/test/test_receive_buffer.cpp:50,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:51,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - receive_buffer::packet_finished
    - receive_buffer::capacity
    - receive_buffer::pos
    - receive_buffer::packet_size
    - receive_buffer::packet_bytes_remaining
    - receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::cut
      Src: /src/libtorrent/test/test_receive_buffer.cpp:58,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:60,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:62,1
    - Dst: receive_buffer::advance_pos
      Src: /src/libtorrent/test/test_receive_buffer.cpp:63,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:65,1
    - Dst: receive_buffer::pos_at_end
      Src: /src/libtorrent/test/test_receive_buffer.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - receive_buffer::reserve
    - receive_buffer::advance_pos
    - receive_buffer::pos_at_end
    - receive_buffer::received
    - receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_pos_at_end_false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::cut
      Src: /src/libtorrent/test/test_receive_buffer.cpp:71,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:72,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:73,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:74,1
    - Dst: receive_buffer::advance_pos
      Src: /src/libtorrent/test/test_receive_buffer.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:76,1
    - Dst: receive_buffer::pos_at_end
      Src: /src/libtorrent/test/test_receive_buffer.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - receive_buffer::reserve
    - receive_buffer::advance_pos
    - receive_buffer::pos_at_end
    - receive_buffer::received
    - receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_pos_at_end_true)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::cut
      Src: /src/libtorrent/test/test_receive_buffer.cpp:83,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:84,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:85,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:86,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:90,1
    - Dst: receive_buffer::packet_finished
      Src: /src/libtorrent/test/test_receive_buffer.cpp:90,1
    - Dst: receive_buffer::advance_pos
      Src: /src/libtorrent/test/test_receive_buffer.cpp:91,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:93,1
    - Dst: receive_buffer::packet_finished
      Src: /src/libtorrent/test/test_receive_buffer.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - receive_buffer::reserve
    - receive_buffer::advance_pos
    - receive_buffer::packet_finished
    - receive_buffer::received
    - receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_packet_finished)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reset
      Src: /src/libtorrent/test/test_receive_buffer.cpp:99,1
    - Dst: receive_buffer::grow
      Src: /src/libtorrent/test/test_receive_buffer.cpp:100,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:104,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:104,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:105,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - receive_buffer::grow
    - receive_buffer::reset
    - receive_buffer::capacity
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_grow_floor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:111,1
    - Dst: receive_buffer::grow
      Src: /src/libtorrent/test/test_receive_buffer.cpp:112,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:114,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:115,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - receive_buffer::reserve
    - receive_buffer::grow
    - TEST_CHECK
    - receive_buffer::capacity
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_grow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:121,1
    - Dst: receive_buffer::grow
      Src: /src/libtorrent/test/test_receive_buffer.cpp:122,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:124,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:124,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:125,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:125,1
    - Dst: printf
      Src: /src/libtorrent/test/test_receive_buffer.cpp:126,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - receive_buffer::reserve
    - printf
    - receive_buffer::capacity
    - receive_buffer::grow
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_grow_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reset
      Src: /src/libtorrent/test/test_receive_buffer.cpp:132,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:137,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:138,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - receive_buffer::reserve
    - receive_buffer::reset
    - receive_buffer::capacity
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_reserve_minimum_grow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:146,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:146,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:147,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - receive_buffer::reserve
    - TEST_CHECK
    - receive_buffer::capacity
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_reserve_grow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:153,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:155,1
    - Dst: receive_buffer::reset
      Src: /src/libtorrent/test/test_receive_buffer.cpp:157,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:158,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:160,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:160,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:162,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:164,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:165,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_receive_buffer.cpp:165,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_receive_buffer.cpp:165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:166,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_receive_buffer.cpp:166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:167,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_receive_buffer.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - receive_buffer::reserve
    - receive_buffer::reset
    - receive_buffer::capacity
    - auto::size
    - auto::begin
    - receive_buffer::received
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_reserve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reset
      Src: /src/libtorrent/test/test_receive_buffer.cpp:173,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:178,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:179,1
    - Dst: receive_buffer::normalize
      Src: /src/libtorrent/test/test_receive_buffer.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:183,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:183,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:184,1
    - Dst: receive_buffer::reset
      Src: /src/libtorrent/test/test_receive_buffer.cpp:190,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:191,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:192,1
    - Dst: receive_buffer::normalize
      Src: /src/libtorrent/test/test_receive_buffer.cpp:193,1
    - Dst: printf
      Src: /src/libtorrent/test/test_receive_buffer.cpp:194,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:194,1
    - Dst: receive_buffer::watermark
      Src: /src/libtorrent/test/test_receive_buffer.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:197,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:197,1
    - Dst: printf
      Src: /src/libtorrent/test/test_receive_buffer.cpp:198,1
    - Dst: receive_buffer::capacity
      Src: /src/libtorrent/test/test_receive_buffer.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 199
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - receive_buffer::reserve
    - receive_buffer::normalize
    - printf
    - receive_buffer::reset
    - receive_buffer::capacity
    - receive_buffer::watermark
    - receive_buffer::received
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(receive_buffer_normalize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reset
      Src: /src/libtorrent/test/test_receive_buffer.cpp:204,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:205,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:206,1
    - Dst: receive_buffer::normalize
      Src: /src/libtorrent/test/test_receive_buffer.cpp:207,1
    - Dst: receive_buffer::reset
      Src: /src/libtorrent/test/test_receive_buffer.cpp:209,1
    - Dst: receive_buffer::max_receive
      Src: /src/libtorrent/test/test_receive_buffer.cpp:210,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_receive_buffer.cpp:211,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:212,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:213,1
    - Dst: receive_buffer::max_receive
      Src: /src/libtorrent/test/test_receive_buffer.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 214
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - receive_buffer::reserve
    - receive_buffer::max_receive
    - receive_buffer::normalize
    - receive_buffer::reset
    - receive_buffer::received
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(receive_buffer_max_receive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reset
      Src: /src/libtorrent/test/test_receive_buffer.cpp:219,1
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:220,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:221,1
    - Dst: receive_buffer::normalize
      Src: /src/libtorrent/test/test_receive_buffer.cpp:222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:224,1
    - Dst: receive_buffer::watermark
      Src: /src/libtorrent/test/test_receive_buffer.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - receive_buffer::reserve
    - receive_buffer::normalize
    - receive_buffer::reset
    - receive_buffer::watermark
    - receive_buffer::received
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(receive_buffer_watermark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::reserve
      Src: /src/libtorrent/test/test_receive_buffer.cpp:232,1
    - Dst: receive_buffer::cut
      Src: /src/libtorrent/test/test_receive_buffer.cpp:233,1
    - Dst: receive_buffer::received
      Src: /src/libtorrent/test/test_receive_buffer.cpp:234,1
    - Dst: receive_buffer::advance_pos
      Src: /src/libtorrent/test/test_receive_buffer.cpp:235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:237,1
    - Dst: receive_buffer::cut
      Src: /src/libtorrent/test/test_receive_buffer.cpp:239,1
    - Dst: receive_buffer::advance_pos
      Src: /src/libtorrent/test/test_receive_buffer.cpp:240,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:241,1
    - Dst: receive_buffer::mutable_buffer
      Src: /src/libtorrent/test/test_receive_buffer.cpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_receive_buffer.cpp:255,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_receive_buffer.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 256
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - receive_buffer::reserve
    - span::size
    - receive_buffer::advance_pos
    - receive_buffer::mutable_buffer
    - receive_buffer::received
    - receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recv_buffer_mutable_buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: is_checking
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_checking(int const state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: is_checking
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_checking(int const state)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:96,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_checking.cpp:106,1
    - Dst: fprintf
      Src: /src/libtorrent/test/test_checking.cpp:107,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:108,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:108,1
    - Dst: create_random_files
      Src: /src/libtorrent/test/test_checking.cpp:118,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/test/test_checking.cpp:123,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:124,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:125,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:125,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_checking.cpp:128,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_checking.cpp:128,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_checking.cpp:128,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_checking.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:130,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_checking.cpp:130,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:132,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_checking.cpp:133,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_checking.cpp:133,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_checking.cpp:138,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:142,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:144,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:145,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:146,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_checking.cpp:150,1
    - Dst: truncate
      Src: /src/libtorrent/test/test_checking.cpp:152,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:152,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:155,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:156,1
    - Dst: strerror
      Src: /src/libtorrent/test/test_checking.cpp:156,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:164,1
    - Dst: create_random_files
      Src: /src/libtorrent/test/test_checking.cpp:170,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:176,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_checking.cpp:177,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:180,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:182,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:184,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:185,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:186,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:186,1
    - Dst: SetFileAttributesA
      Src: /src/libtorrent/test/test_checking.cpp:189,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:189,1
    - Dst: chmod
      Src: /src/libtorrent/test/test_checking.cpp:191,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:191,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_checking.cpp:198,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:199,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:200,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:200,1
    - Dst: rename
      Src: /src/libtorrent/test/test_checking.cpp:201,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:202,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:203,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:203,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_checking.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:212,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_checking.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:220,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_checking.cpp:224,1
    - Dst: fprintf
      Src: /src/libtorrent/test/test_checking.cpp:225,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:226,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:226,1
    - Dst: rename
      Src: /src/libtorrent/test/test_checking.cpp:227,1
    - Dst: fprintf
      Src: /src/libtorrent/test/test_checking.cpp:228,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:229,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:229,1
    - Dst: torrent_handle::force_recheck
      Src: /src/libtorrent/test/test_checking.cpp:230,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_checking.cpp:236,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_checking.cpp:238,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:240,1
    - Dst: torrent_status::errc::message
      Src: /src/libtorrent/test/test_checking.cpp:240,1
    - Dst: is_checking
      Src: /src/libtorrent/test/test_checking.cpp:242,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_checking.cpp:243,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_checking.cpp:243,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:248,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_checking.cpp:250,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_checking.cpp:250,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_checking.cpp:251,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:253,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:255,1
    - Dst: torrent_status::errc::message
      Src: /src/libtorrent/test/test_checking.cpp:255,1
    - Dst: torrent_handle::file_progress
      Src: /src/libtorrent/test/test_checking.cpp:256,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_checking.cpp:258,1
    - Dst: file_range
      Src: /src/libtorrent/test/test_checking.cpp:259,1
    - Dst: pad_file_at
      Src: /src/libtorrent/test/test_checking.cpp:261,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:262,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_checking.cpp:262,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_checking.cpp:263,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_checking.cpp:263,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_checking.cpp:263,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_checking.cpp:264,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_checking.cpp:264,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_checking.cpp:264,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:267,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:268,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_checking.cpp:268,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:272,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_checking.cpp:272,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:273,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:275,1
    - Dst: torrent_status::errc::message
      Src: /src/libtorrent/test/test_checking.cpp:275,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_checking.cpp:281,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:284,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:286,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:288,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:289,1
    - Dst: SetFileAttributesA
      Src: /src/libtorrent/test/test_checking.cpp:291,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:291,1
    - Dst: chmod
      Src: /src/libtorrent/test/test_checking.cpp:293,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:293,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_checking.cpp:298,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:299,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:300,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:300,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 301
    functionName: test_checking
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::info_hashes
    - auto::files
    - std::this_thread::sleep_for
    - fprintf
    - file_size
    - pad_file_at
    - torrent_status::errc::message
    - error_code::value
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - torrent_handle::force_recheck
    - SetFileAttributesA
    - print_alerts
    - error_code::message
    - auto::is_valid
    - std::size_t
    - file_range
    - set_piece_hashes
    - std::printf
    - rename
    - is_checking
    - libtorrent::aux::to_hex
    - truncate
    - auto::num_pieces
    - std::snprintf
    - libtorrent::total_milliseconds
    - auto::size
    - create_directory
    - lt::session::add_torrent
    - TEST_CHECK
    - bencode
    - chmod
    - remove_all
    - create_random_files
    - combine_path
    - std::string::c_str
    - strerror
    - wait_for_alert
    - torrent_handle::file_progress
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: void
    signature: void test_checking(int const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: is_checking
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_checking(int const state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: is_checking
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_checking(int const state)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:96,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_checking.cpp:106,1
    - Dst: fprintf
      Src: /src/libtorrent/test/test_checking.cpp:107,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:108,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:108,1
    - Dst: create_random_files
      Src: /src/libtorrent/test/test_checking.cpp:118,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/test/test_checking.cpp:123,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:124,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:125,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:125,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_checking.cpp:128,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_checking.cpp:128,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_checking.cpp:128,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_checking.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:130,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_checking.cpp:130,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:132,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_checking.cpp:133,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_checking.cpp:133,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_checking.cpp:138,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:142,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:144,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:145,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:146,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_checking.cpp:150,1
    - Dst: truncate
      Src: /src/libtorrent/test/test_checking.cpp:152,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:152,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:155,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:156,1
    - Dst: strerror
      Src: /src/libtorrent/test/test_checking.cpp:156,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:164,1
    - Dst: create_random_files
      Src: /src/libtorrent/test/test_checking.cpp:170,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:176,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_checking.cpp:177,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:180,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:182,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:184,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:185,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:186,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:186,1
    - Dst: SetFileAttributesA
      Src: /src/libtorrent/test/test_checking.cpp:189,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:189,1
    - Dst: chmod
      Src: /src/libtorrent/test/test_checking.cpp:191,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:191,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_checking.cpp:198,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:199,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:200,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:200,1
    - Dst: rename
      Src: /src/libtorrent/test/test_checking.cpp:201,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:202,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:203,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:203,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_checking.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:212,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_checking.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:220,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_checking.cpp:224,1
    - Dst: fprintf
      Src: /src/libtorrent/test/test_checking.cpp:225,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:226,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:226,1
    - Dst: rename
      Src: /src/libtorrent/test/test_checking.cpp:227,1
    - Dst: fprintf
      Src: /src/libtorrent/test/test_checking.cpp:228,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:229,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:229,1
    - Dst: torrent_handle::force_recheck
      Src: /src/libtorrent/test/test_checking.cpp:230,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_checking.cpp:236,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_checking.cpp:238,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:240,1
    - Dst: torrent_status::errc::message
      Src: /src/libtorrent/test/test_checking.cpp:240,1
    - Dst: is_checking
      Src: /src/libtorrent/test/test_checking.cpp:242,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_checking.cpp:243,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_checking.cpp:243,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:248,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_checking.cpp:250,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_checking.cpp:250,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_checking.cpp:251,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:253,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:255,1
    - Dst: torrent_status::errc::message
      Src: /src/libtorrent/test/test_checking.cpp:255,1
    - Dst: torrent_handle::file_progress
      Src: /src/libtorrent/test/test_checking.cpp:256,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_checking.cpp:258,1
    - Dst: file_range
      Src: /src/libtorrent/test/test_checking.cpp:259,1
    - Dst: pad_file_at
      Src: /src/libtorrent/test/test_checking.cpp:261,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:262,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_checking.cpp:262,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_checking.cpp:263,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_checking.cpp:263,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_checking.cpp:263,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_checking.cpp:264,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_checking.cpp:264,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_checking.cpp:264,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:267,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:268,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_checking.cpp:268,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:272,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_checking.cpp:272,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:273,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:275,1
    - Dst: torrent_status::errc::message
      Src: /src/libtorrent/test/test_checking.cpp:275,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_checking.cpp:281,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:284,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_checking.cpp:286,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:288,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_checking.cpp:289,1
    - Dst: SetFileAttributesA
      Src: /src/libtorrent/test/test_checking.cpp:291,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:291,1
    - Dst: chmod
      Src: /src/libtorrent/test/test_checking.cpp:293,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_checking.cpp:293,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_checking.cpp:298,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_checking.cpp:299,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:300,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:300,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 301
    functionName: test_checking
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::info_hashes
    - auto::files
    - std::this_thread::sleep_for
    - fprintf
    - file_size
    - pad_file_at
    - torrent_status::errc::message
    - error_code::value
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - torrent_handle::force_recheck
    - SetFileAttributesA
    - print_alerts
    - error_code::message
    - auto::is_valid
    - std::size_t
    - file_range
    - set_piece_hashes
    - std::printf
    - rename
    - is_checking
    - libtorrent::aux::to_hex
    - truncate
    - auto::num_pieces
    - std::snprintf
    - libtorrent::total_milliseconds
    - auto::size
    - create_directory
    - lt::session::add_torrent
    - TEST_CHECK
    - bencode
    - chmod
    - remove_all
    - create_random_files
    - combine_path
    - std::string::c_str
    - strerror
    - wait_for_alert
    - torrent_handle::file_progress
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: void
    signature: void test_checking(int const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(checking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_only_corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(incomplete)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(extended)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(force_recheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(checking_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_only_corrupt_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_only_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(incomplete_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(corrupt_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(single_file_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(single_file_corrupt_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(single_file_incomplete_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_checking
      Src: /src/libtorrent/test/test_checking.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - test_checking
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(force_recheck_v2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtorrent/test/test_checking.cpp:388,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_checking.cpp:390,1
    - Dst: printf
      Src: /src/libtorrent/test/test_checking.cpp:391,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:391,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:391,1
    - Dst: create_random_files
      Src: /src/libtorrent/test/test_checking.cpp:398,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_checking.cpp:399,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_checking.cpp:399,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/test/test_checking.cpp:402,1
    - Dst: printf
      Src: /src/libtorrent/test/test_checking.cpp:403,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:403,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:403,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_checking.cpp:406,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_checking.cpp:406,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_checking.cpp:406,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_checking.cpp:407,1
    - Dst: printf
      Src: /src/libtorrent/test/test_checking.cpp:408,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_checking.cpp:409,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_checking.cpp:409,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_checking.cpp:409,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:410,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:412,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_checking.cpp:412,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_checking.cpp:415,1
    - Dst: auto::num_files
      Src: /src/libtorrent/test/test_checking.cpp:415,1
    - Dst: add_torrent_params::file_priorities::resize
      Src: /src/libtorrent/test/test_checking.cpp:420,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_checking.cpp:420,1
    - Dst: auto::num_files
      Src: /src/libtorrent/test/test_checking.cpp:420,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_checking.cpp:424,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_checking.cpp:426,1
    - Dst: auto::num_files
      Src: /src/libtorrent/test/test_checking.cpp:426,1
    - Dst: torrent_handle::prioritize_files
      Src: /src/libtorrent/test/test_checking.cpp:428,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:429,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_checking.cpp:429,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_checking.cpp:430,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_checking.cpp:431,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_checking.cpp:431,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_checking.cpp:433,1
    - Dst: fprintf
      Src: /src/libtorrent/test/test_checking.cpp:434,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_checking.cpp:434,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_checking.cpp:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 435
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_checking.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - auto::info_hashes
    - seconds
    - session::add_torrent
    - fprintf
    - error_code::value
    - torrent_handle::status
    - std::make_shared<torrent_info>
    - error_code::message
    - auto::is_valid
    - std::size_t
    - set_piece_hashes
    - torrent_handle::prioritize_files
    - TEST_EQUAL
    - auto::num_files
    - libtorrent::aux::to_hex
    - add_torrent_params::file_priorities::resize
    - create_directory
    - TEST_CHECK
    - bencode
    - remove_all
    - create_random_files
    - printf
    - wait_for_alert
    - file_storage::num_files
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(discrete_checking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5_pw.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5_pw.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5_pw.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5_pw.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5_pw.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5_pw.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5_pw.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5_pw.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/test/make_torrent.cpp:50,1
    - Dst: m_files::size
      Src: /src/libtorrent/test/make_torrent.cpp:65,1
    - Dst: find
      Src: /src/libtorrent/test/make_torrent.cpp:69,1
    - Dst: find
      Src: /src/libtorrent/test/make_torrent.cpp:71,1
    - Dst: substr
      Src: /src/libtorrent/test/make_torrent.cpp:72,1
    - Dst: find
      Src: /src/libtorrent/test/make_torrent.cpp:72,1
    - Dst: atoi
      Src: /src/libtorrent/test/make_torrent.cpp:75,1
    - Dst: c_str
      Src: /src/libtorrent/test/make_torrent.cpp:75,1
    - Dst: list
      Src: /src/libtorrent/test/make_torrent.cpp:83,1
    - Dst: m_files::size
      Src: /src/libtorrent/test/make_torrent.cpp:84,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/make_torrent.cpp:86,1
    - Dst: atoi
      Src: /src/libtorrent/test/make_torrent.cpp:87,1
    - Dst: c_str
      Src: /src/libtorrent/test/make_torrent.cpp:87,1
    - Dst: push_back
      Src: /src/libtorrent/test/make_torrent.cpp:89,1
    - Dst: entry
      Src: /src/libtorrent/test/make_torrent.cpp:89,1
    - Dst: back
      Src: /src/libtorrent/test/make_torrent.cpp:90,1
    - Dst: find
      Src: /src/libtorrent/test/make_torrent.cpp:92,1
    - Dst: string
      Src: /src/libtorrent/test/make_torrent.cpp:94,1
    - Dst: std::deque::push_back
      Src: /src/libtorrent/test/make_torrent.cpp:95,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/make_torrent.cpp:95,1
    - Dst: find
      Src: /src/libtorrent/test/make_torrent.cpp:97,1
    - Dst: string
      Src: /src/libtorrent/test/make_torrent.cpp:98,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/make_torrent.cpp:101,1
    - Dst: find
      Src: /src/libtorrent/test/make_torrent.cpp:104,1
    - Dst: find
      Src: /src/libtorrent/test/make_torrent.cpp:106,1
    - Dst: substr
      Src: /src/libtorrent/test/make_torrent.cpp:107,1
    - Dst: find
      Src: /src/libtorrent/test/make_torrent.cpp:107,1
    - Dst: list
      Src: /src/libtorrent/test/make_torrent.cpp:109,1
    - Dst: m_url_seed::empty
      Src: /src/libtorrent/test/make_torrent.cpp:115,1
    - Dst: m_http_seed::empty
      Src: /src/libtorrent/test/make_torrent.cpp:120,1
    - Dst: m_collection::empty
      Src: /src/libtorrent/test/make_torrent.cpp:125,1
    - Dst: list
      Src: /src/libtorrent/test/make_torrent.cpp:127,1
    - Dst: push_back
      Src: /src/libtorrent/test/make_torrent.cpp:128,1
    - Dst: std::deque::empty
      Src: /src/libtorrent/test/make_torrent.cpp:146,1
    - Dst: std::deque::front
      Src: /src/libtorrent/test/make_torrent.cpp:146,1
    - Dst: std::deque::pop_front
      Src: /src/libtorrent/test/make_torrent.cpp:147,1
    - Dst: std::deque::empty
      Src: /src/libtorrent/test/make_torrent.cpp:149,1
    - Dst: std::deque::front
      Src: /src/libtorrent/test/make_torrent.cpp:149,1
    - Dst: hasher::update
      Src: /src/libtorrent/test/make_torrent.cpp:151,1
    - Dst: hasher::update
      Src: /src/libtorrent/test/make_torrent.cpp:155,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/make_torrent.cpp:158,1
    - Dst: bencode
      Src: /src/libtorrent/test/make_torrent.cpp:164,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/make_torrent.cpp:164,1
    - Dst: fopen
      Src: /src/libtorrent/test/make_torrent.cpp:166,1
    - Dst: fwrite
      Src: /src/libtorrent/test/make_torrent.cpp:167,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/make_torrent.cpp:167,1
    - Dst: fclose
      Src: /src/libtorrent/test/make_torrent.cpp:168,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/make_torrent.cpp:170,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - torrent_args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 171
    functionName: make_test_torrent
    functionSourceFile: /src/libtorrent/test/make_torrent.cpp
    functionUses: 1
    functionsReached:
    - std::vector::size
    - static_cast<std::size_t>
    - fwrite
    - substr
    - push_back
    - m_url_seed::empty
    - hasher::final
    - std::deque::front
    - std::make_shared<torrent_info>
    - entry
    - std::make_pair
    - list
    - atoi
    - std::deque::push_back
    - std::deque::empty
    - m_collection::empty
    - back
    - std::deque::pop_front
    - m_http_seed::empty
    - std::snprintf
    - m_files::size
    - fclose
    - bencode
    - c_str
    - string
    - find
    - dict
    - hasher::update
    - std::back_inserter
    - fopen
    linkageType: ''
    returnType: std::shared_ptr<lt::torrent_info>
    signature: std::shared_ptr<lt::torrent_info> make_test_torrent(torrent_args const&
      args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/test/make_torrent.cpp:179,1
    - Dst: files
      Src: /src/libtorrent/test/make_torrent.cpp:191,1
    - Dst: piece_range
      Src: /src/libtorrent/test/make_torrent.cpp:193,1
    - Dst: piece_size
      Src: /src/libtorrent/test/make_torrent.cpp:195,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/make_torrent.cpp:196,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/make_torrent.cpp:196,1
    - Dst: piece_length
      Src: /src/libtorrent/test/make_torrent.cpp:196,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/make_torrent.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/make_torrent.cpp:199,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/make_torrent.cpp:199,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/make_torrent.cpp:202,1
    - Dst: aux::posix_storage::write
      Src: /src/libtorrent/test/make_torrent.cpp:207,1
    - Dst: std::printf
      Src: /src/libtorrent/test/make_torrent.cpp:210,1
    - Dst: storage_error::ec::message
      Src: /src/libtorrent/test/make_torrent.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' ti'
    - ' path'
    - alternate_data
    argTypes:
    - lt::torrent_info
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 214
    functionName: generate_files
    functionSourceFile: /src/libtorrent/test/make_torrent.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - aux::posix_storage::write
    - storage_error::ec::message
    - files
    - std::vector::resize
    - static_cast<std::size_t>
    - static_cast<char>
    - piece_length
    - piece_size
    - piece_range
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void generate_files(lt::torrent_info const& ti, std::string const&
      path\n\t, bool alternate_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/test_priority.cpp:65,1
    - Dst: make_error_code
      Src: /src/libtorrent/test/test_priority.cpp:66,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/test/test_priority.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_error_alert>
    - make_error_code
    - alert_cast<peer_disconnected_alert>
    linkageType: ''
    returnType: bool
    signature: bool on_alert(alert const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_all
      Src: /src/libtorrent/test/test_priority.cpp:77,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_priority.cpp:78,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_priority.cpp:79,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_priority.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: cleanup
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - remove_all
    linkageType: ''
    returnType: void
    signature: void cleanup()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/libtorrent/test/test_priority.cpp:88,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_priority.cpp:97,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:99,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:100,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_priority.cpp:102,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_priority.cpp:103,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:104,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_priority.cpp:105,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:107,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:108,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:109,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:110,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/test/test_priority.cpp:112,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_priority.cpp:112,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:114,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/test/test_priority.cpp:119,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_priority.cpp:119,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_priority.cpp:126,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_priority.cpp:128,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_priority.cpp:129,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_priority.cpp:131,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_priority.cpp:132,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_priority.cpp:137,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_priority.cpp:137,1
    - Dst: torrent_handle::torrent_file
      Src: /src/libtorrent/test/test_priority.cpp:140,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_priority.cpp:141,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_priority.cpp:143,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:143,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:143,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_priority.cpp:144,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_priority.cpp:146,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:151,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:152,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:154,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:155,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_priority.cpp:159,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:173,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:176,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:181,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:192,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:195,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:195,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:196,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:196,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:198,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_priority.cpp:202,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_priority.cpp:203,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:203,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:203,1
    - Dst: std::ostream_iterator<download_priority_t>
      Src: /src/libtorrent/test/test_priority.cpp:204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: equal
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: torrent_handle::force_recheck
      Src: /src/libtorrent/test/test_priority.cpp:209,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_priority.cpp:211,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_priority.cpp:212,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:212,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:212,1
    - Dst: std::ostream_iterator<download_priority_t>
      Src: /src/libtorrent/test/test_priority.cpp:213,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: equal
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:225,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:226,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:228,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:234,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:237,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_priority.cpp:244,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_priority.cpp:245,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:245,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:245,1
    - Dst: std::ostream_iterator<download_priority_t>
      Src: /src/libtorrent/test/test_priority.cpp:245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: equal
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: torrent_handle::pause
      Src: /src/libtorrent/test/test_priority.cpp:249,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_priority.cpp:250,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:252,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_priority.cpp:253,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_priority.cpp:257,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_priority.cpp:260,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_priority.cpp:260,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_priority.cpp:262,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_priority.cpp:263,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:264,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:265,1
    - Dst: alert*::message
      Src: /src/libtorrent/test/test_priority.cpp:268,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_priority.cpp:269,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_priority.cpp:271,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_priority.cpp:271,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:272,1
    - Dst: alert_cast<save_resume_data_failed_alert>
      Src: /src/libtorrent/test/test_priority.cpp:275,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:277,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_priority.cpp:280,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_priority.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_priority.cpp:285,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_priority.cpp:287,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:290,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_priority.cpp:292,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:296,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:296,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_priority.cpp:300,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_priority.cpp:310,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:311,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:318,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_priority.cpp:319,1
    - Dst: torrent_handle::resume
      Src: /src/libtorrent/test/test_priority.cpp:321,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:328,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:329,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:331,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:332,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:334,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:338,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:338,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:343,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:344,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_priority.cpp:346,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:346,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:346,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_priority.cpp:347,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:349,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:349,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_priority.cpp:351,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:351,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:351,1
    - Dst: std::ostream_iterator<download_priority_t>
      Src: /src/libtorrent/test/test_priority.cpp:352,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:356,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:357,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:364,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:365,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:368,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:369,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:371,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:372,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_priority.cpp:375,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:379,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:380,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:384,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:388,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:388,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:391,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:393,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:394,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_priority.cpp:396,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_priority.cpp:396,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_priority.cpp:397,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_priority.cpp:397,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 182
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 398
    functionName: test_transfer
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 2
    functionsReached:
    - torrent_handle::prioritize_pieces
    - print_ses_rate
    - std::vector::size
    - std::this_thread::sleep_for
    - lt::settings_pack::set_bool
    - seconds
    - test_listen_interface
    - std::vector::begin
    - lt::settings_pack::set_str
    - torrent_handle::torrent_file
    - std::vector::end
    - aux::vector::end
    - alert_cast<save_resume_data_failed_alert>
    - torrent_handle::status
    - ofstream::close
    - torrent_handle::force_recheck
    - wait_for_listen
    - print_alerts
    - setup_transfer
    - torrent_handle::save_resume_data
    - alert*::message
    - lt::session::wait_for_alert
    - std::copy
    - std::size_t
    - write_resume_data_buf
    - std::printf
    - TEST_EQUAL
    - time_now
    - aux::vector::begin
    - read_resume_data
    - torrent_handle::get_piece_priorities
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - lt::session::pop_alerts
    - lt::session::add_torrent
    - static_cast<std::uint8_t>
    - TEST_CHECK
    - cleanup
    - lt::session::remove_torrent
    - TORRENT_UNUSED
    - torrent_handle::resume
    - libtorrent::create_torrent::create_torrent
    - std::vector::push_back
    - std::vector::empty
    - lt::settings_pack::set_int
    - std::tie
    - std::fill
    - torrent_handle::pause
    - alert_cast<save_resume_data_alert>
    - total_seconds
    - wait_for_alert
    - equal
    - std::ostream_iterator<download_priority_t>
    linkageType: ''
    returnType: void
    signature: void test_transfer(settings_pack const& sett, bool test_deprecated
      = false)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/test_priority.cpp:65,1
    - Dst: make_error_code
      Src: /src/libtorrent/test/test_priority.cpp:66,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/test/test_priority.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_error_alert>
    - make_error_code
    - alert_cast<peer_disconnected_alert>
    linkageType: ''
    returnType: bool
    signature: bool on_alert(alert const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_all
      Src: /src/libtorrent/test/test_priority.cpp:77,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_priority.cpp:78,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_priority.cpp:79,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_priority.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: cleanup
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 1
    functionsReached:
    - remove_all
    linkageType: ''
    returnType: void
    signature: void cleanup()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/libtorrent/test/test_priority.cpp:88,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_priority.cpp:97,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:99,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:100,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_priority.cpp:102,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_priority.cpp:103,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:104,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_priority.cpp:105,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:107,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:108,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:109,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:110,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/test/test_priority.cpp:112,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_priority.cpp:112,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_priority.cpp:114,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/test/test_priority.cpp:119,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_priority.cpp:119,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_priority.cpp:126,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_priority.cpp:128,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_priority.cpp:129,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_priority.cpp:131,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_priority.cpp:132,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_priority.cpp:137,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_priority.cpp:137,1
    - Dst: torrent_handle::torrent_file
      Src: /src/libtorrent/test/test_priority.cpp:140,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_priority.cpp:141,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_priority.cpp:143,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:143,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:143,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_priority.cpp:144,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_priority.cpp:146,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:151,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:152,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:154,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:155,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_priority.cpp:159,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:173,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:176,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:181,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:192,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:195,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:195,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:196,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:196,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:198,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_priority.cpp:202,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_priority.cpp:203,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:203,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:203,1
    - Dst: std::ostream_iterator<download_priority_t>
      Src: /src/libtorrent/test/test_priority.cpp:204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: equal
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:206,1
    - Dst: torrent_handle::force_recheck
      Src: /src/libtorrent/test/test_priority.cpp:209,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_priority.cpp:211,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_priority.cpp:212,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:212,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:212,1
    - Dst: std::ostream_iterator<download_priority_t>
      Src: /src/libtorrent/test/test_priority.cpp:213,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: equal
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:215,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:225,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:226,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:228,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:234,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:237,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_priority.cpp:244,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_priority.cpp:245,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:245,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:245,1
    - Dst: std::ostream_iterator<download_priority_t>
      Src: /src/libtorrent/test/test_priority.cpp:245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: equal
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:247,1
    - Dst: torrent_handle::pause
      Src: /src/libtorrent/test/test_priority.cpp:249,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_priority.cpp:250,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:252,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_priority.cpp:253,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_priority.cpp:257,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_priority.cpp:260,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_priority.cpp:260,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_priority.cpp:262,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_priority.cpp:263,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:264,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:265,1
    - Dst: alert*::message
      Src: /src/libtorrent/test/test_priority.cpp:268,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_priority.cpp:269,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_priority.cpp:271,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_priority.cpp:271,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:272,1
    - Dst: alert_cast<save_resume_data_failed_alert>
      Src: /src/libtorrent/test/test_priority.cpp:275,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:277,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_priority.cpp:280,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_priority.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_priority.cpp:285,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_priority.cpp:287,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:290,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_priority.cpp:292,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:296,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:296,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_priority.cpp:300,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_priority.cpp:310,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:311,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:318,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_priority.cpp:319,1
    - Dst: torrent_handle::resume
      Src: /src/libtorrent/test/test_priority.cpp:321,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:328,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:329,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:331,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:332,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:334,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:338,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:338,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:343,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:344,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_priority.cpp:346,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:346,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:346,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_priority.cpp:347,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:349,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:349,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_priority.cpp:351,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/test/test_priority.cpp:351,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/test/test_priority.cpp:351,1
    - Dst: std::ostream_iterator<download_priority_t>
      Src: /src/libtorrent/test/test_priority.cpp:352,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:356,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:357,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:364,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:365,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:368,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:369,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:371,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:372,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_priority.cpp:375,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:379,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:380,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:384,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:388,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:388,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:391,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_priority.cpp:393,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:394,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_priority.cpp:396,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_priority.cpp:396,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_priority.cpp:397,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_priority.cpp:397,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 182
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 398
    functionName: test_transfer
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 2
    functionsReached:
    - torrent_handle::prioritize_pieces
    - print_ses_rate
    - std::vector::size
    - std::this_thread::sleep_for
    - lt::settings_pack::set_bool
    - seconds
    - test_listen_interface
    - std::vector::begin
    - lt::settings_pack::set_str
    - torrent_handle::torrent_file
    - std::vector::end
    - aux::vector::end
    - alert_cast<save_resume_data_failed_alert>
    - torrent_handle::status
    - ofstream::close
    - torrent_handle::force_recheck
    - wait_for_listen
    - print_alerts
    - setup_transfer
    - torrent_handle::save_resume_data
    - alert*::message
    - lt::session::wait_for_alert
    - std::copy
    - std::size_t
    - write_resume_data_buf
    - std::printf
    - TEST_EQUAL
    - time_now
    - aux::vector::begin
    - read_resume_data
    - torrent_handle::get_piece_priorities
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - lt::session::pop_alerts
    - lt::session::add_torrent
    - static_cast<std::uint8_t>
    - TEST_CHECK
    - cleanup
    - lt::session::remove_torrent
    - TORRENT_UNUSED
    - torrent_handle::resume
    - libtorrent::create_torrent::create_torrent
    - std::vector::push_back
    - std::vector::empty
    - lt::settings_pack::set_int
    - std::tie
    - std::fill
    - torrent_handle::pause
    - alert_cast<save_resume_data_alert>
    - total_seconds
    - wait_for_alert
    - equal
    - std::ostream_iterator<download_priority_t>
    linkageType: ''
    returnType: void
    signature: void test_transfer(settings_pack const& sett, bool test_deprecated
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_priority.cpp:405,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_priority.cpp:406,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_priority.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    - settings
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_priority.cpp:414,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_priority.cpp:415,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_priority.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    - settings
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(priority_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_priority.cpp:429,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:431,1
    - Dst: torrent_handle::prioritize_files
      Src: /src/libtorrent/test/test_priority.cpp:436,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:438,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:438,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:439,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_priority.cpp:439,1
    - Dst: torrent_handle::prioritize_files
      Src: /src/libtorrent/test/test_priority.cpp:442,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:443,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:443,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:444,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_priority.cpp:444,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_priority.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 447
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::prioritize_files
    - std::this_thread::sleep_for
    - libtorrent::total_milliseconds
    - torrent_handle::get_file_priorities
    - lt::session::add_torrent
    - lt::session::remove_torrent
    - sha1_hash
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_metadata_prioritize_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_priority.cpp:456,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:458,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:460,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:462,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:462,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:463,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:463,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:464,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:465,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:465,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:466,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:466,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_priority.cpp:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 469
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::file_priority
    - std::this_thread::sleep_for
    - libtorrent::total_milliseconds
    - lt::session::add_torrent
    - sha1_hash
    - lt::session::remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_metadata_file_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_priority.cpp:478,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:480,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_priority.cpp:483,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:484,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_priority.cpp:484,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_priority.cpp:485,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:486,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_priority.cpp:486,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_priority.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 489
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::piece_priority
    - lt::session::add_torrent
    - sha1_hash
    - lt::session::remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_metadata_piece_prio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_priority.cpp:493,1
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_priority.cpp:496,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:503,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_priority.cpp:505,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:506,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_priority.cpp:509,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_priority.cpp:509,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_priority.cpp:512,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:514,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:514,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 517
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - auto::files
    - torrent_handle::file_priority
    - std::this_thread::sleep_for
    - torrent_handle::get_file_priorities
    - lt::session::add_torrent
    - milliseconds
    - generate_torrent
    - std::size_t
    - settings
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priority_multiple_calls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_priority.cpp:521,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_priority.cpp:525,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_priority.cpp:527,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/test_priority.cpp:528,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:535,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:538,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_priority.cpp:541,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:545,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:548,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:549,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:553,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:553,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:555,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:557,1
    - Dst: auto::piece_range
      Src: /src/libtorrent/test/test_priority.cpp:559,1
    - Dst: torrent_handle::add_piece
      Src: /src/libtorrent/test/test_priority.cpp:560,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_priority.cpp:560,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:562,1
    - Dst: exists
      Src: /src/libtorrent/test/test_priority.cpp:562,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:566,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:567,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:568,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:568,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:570,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:570,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:573,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_priority.cpp:577,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:578,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:579,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:579,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:582,1
    - Dst: exists
      Src: /src/libtorrent/test/test_priority.cpp:582,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 583
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::status
    - std::vector::data
    - libtorrent::create_torrent::create_torrent
    - ofstream::close
    - torrent_handle::file_priority
    - std::vector::size
    - print_alerts
    - std::this_thread::sleep_for
    - torrent_handle::add_piece
    - libtorrent::total_milliseconds
    - create_directory
    - lt::session::add_torrent
    - auto::piece_range
    - exists
    - settings
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(export_file_while_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_priority.cpp:590,1
    - Dst: add_torrent_params::file_priorities::resize
      Src: /src/libtorrent/test/test_priority.cpp:596,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:599,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:601,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_priority.cpp:601,1
    - Dst: torrent_handle::prioritize_pieces
      Src: /src/libtorrent/test/test_priority.cpp:604,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:605,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_priority.cpp:605,1
    - Dst: lt::session::pause
      Src: /src/libtorrent/test/test_priority.cpp:607,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_priority.cpp:608,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_priority.cpp:610,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_priority.cpp:611,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:620,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:622,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_priority.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 624
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::prioritize_pieces
    - torrent_handle::piece_priority
    - alert_cast<save_resume_data_alert>
    - add_torrent_params::file_priorities::resize
    - torrent_handle::save_resume_data
    - wait_for_alert
    - lt::session::add_torrent
    - generate_torrent
    - lt::session::pause
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_piece_priority_after_resume)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uniform_int_distribution<int>
      Src: /src/libtorrent/test/test_priority.cpp:630,1
    - Dst: file_index_t
      Src: /src/libtorrent/test/test_priority.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - num_files
    argTypes:
    - Engine
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: rand_file
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - std::uniform_int_distribution<int>
    linkageType: ''
    returnType: lt::file_index_t
    signature: lt::file_index_t rand_file(Engine& rng, int num_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uniform_int_distribution<int>
      Src: /src/libtorrent/test/test_priority.cpp:637,1
    - Dst: lt::download_priority_t
      Src: /src/libtorrent/test/test_priority.cpp:638,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_priority.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Engine
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 639
    functionName: rand_prio
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - lt::download_priority_t
    - static_cast<std::uint8_t>
    - std::uniform_int_distribution<int>
    linkageType: ''
    returnType: lt::download_priority_t
    signature: lt::download_priority_t rand_prio(Engine& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uniform_int_distribution<int>
      Src: /src/libtorrent/test/test_priority.cpp:630,1
    - Dst: file_index_t
      Src: /src/libtorrent/test/test_priority.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - num_files
    argTypes:
    - Engine
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: rand_file
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - std::uniform_int_distribution<int>
    linkageType: ''
    returnType: lt::file_index_t
    signature: lt::file_index_t rand_file(Engine& rng, int num_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uniform_int_distribution<int>
      Src: /src/libtorrent/test/test_priority.cpp:637,1
    - Dst: lt::download_priority_t
      Src: /src/libtorrent/test/test_priority.cpp:638,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_priority.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Engine
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 639
    functionName: rand_prio
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - lt::download_priority_t
    - static_cast<std::uint8_t>
    - std::uniform_int_distribution<int>
    linkageType: ''
    returnType: lt::download_priority_t
    signature: lt::download_priority_t rand_prio(Engine& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_priority.cpp:645,1
    - Dst: auto::num_files
      Src: /src/libtorrent/test/test_priority.cpp:646,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_priority.cpp:657,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:658,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:658,1
    - Dst: rand_file
      Src: /src/libtorrent/test/test_priority.cpp:664,1
    - Dst: rand_prio
      Src: /src/libtorrent/test/test_priority.cpp:665,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_priority.cpp:666,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:672,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:672,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_priority.cpp:676,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_priority.cpp:679,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_priority.cpp:679,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_priority.cpp:680,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:693,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_priority.cpp:694,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_priority.cpp:694,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_priority.cpp:696,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_priority.cpp:697,1
    - Dst: map_block
      Src: /src/libtorrent/test/test_priority.cpp:703,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_priority.cpp:703,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_priority.cpp:706,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_priority.cpp:709,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 713
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_priority.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::status
    - auto::files
    - auto::num_files
    - torrent_handle::file_priority
    - std::this_thread::sleep_for
    - torrent_handle::get_piece_priorities
    - rand_file
    - libtorrent::total_milliseconds
    - torrent_handle::get_file_priorities
    - rand_prio
    - lt::session::add_torrent
    - piece_length
    - generate_torrent
    - std::max
    - map_block
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priority_stress_test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:49,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:49,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:50,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:50,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:51,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:51,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:51,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:52,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:52,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:52,1
    - Dst: set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:54,1
    - Dst: set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:55,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:55,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:57,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:57,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:58,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:59,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:60,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:60,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:61,1
    - Dst: name
      Src: /src/libtorrent/test/test_file_storage.cpp:61,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:63,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:63,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:63,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:64,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:64,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:64,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:65,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:65,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:65,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:66,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:66,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:66,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:66,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:68,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:68,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:69,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:69,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:70,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:71,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:71,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:73,1
    - Dst: file_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:73,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:74,1
    - Dst: file_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:75,1
    - Dst: file_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:76,1
    - Dst: file_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:78,1
    - Dst: total_size
      Src: /src/libtorrent/test/test_file_storage.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:79,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:79,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file_storage.cpp:80,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:80,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:81,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 82
    functionName: setup_test_storage
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - total_size
    - add_file
    - combine_path
    - set_num_pieces
    - name
    - set_piece_length
    - libtorrent::aux::calc_num_pieces
    - file_path
    - piece_length
    - num_pieces
    - file_size
    - file_name
    - file_offset
    - std::printf
    linkageType: ''
    returnType: void
    signature: void setup_test_storage(file_storage& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::path_index_t
      Src: /src/libtorrent/test/test_file_storage.cpp:85,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/test/test_file_storage.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: operator""_path(unsigned long long i)
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - aux::path_index_t
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: aux::path_index_t
    signature: aux::path_index_t operator""_path(unsigned long long i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:49,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:49,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:50,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:50,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:51,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:51,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:51,1
    - Dst: add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:52,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:52,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:52,1
    - Dst: set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:54,1
    - Dst: set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:55,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:55,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:57,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:57,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:58,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:59,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:60,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:60,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:61,1
    - Dst: name
      Src: /src/libtorrent/test/test_file_storage.cpp:61,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:63,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:63,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:63,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:64,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:64,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:64,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:65,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:65,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:65,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:66,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:66,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:66,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:66,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:68,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:68,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:69,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:69,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:70,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:71,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:71,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:73,1
    - Dst: file_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:73,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:74,1
    - Dst: file_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:75,1
    - Dst: file_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:76,1
    - Dst: file_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:78,1
    - Dst: total_size
      Src: /src/libtorrent/test/test_file_storage.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:79,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:79,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file_storage.cpp:80,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:80,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:81,1
    - Dst: num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 82
    functionName: setup_test_storage
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - total_size
    - add_file
    - combine_path
    - set_num_pieces
    - name
    - set_piece_length
    - libtorrent::aux::calc_num_pieces
    - file_path
    - piece_length
    - num_pieces
    - file_size
    - file_name
    - file_offset
    - std::printf
    linkageType: ''
    returnType: void
    signature: void setup_test_storage(file_storage& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::path_index_t
      Src: /src/libtorrent/test/test_file_storage.cpp:85,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/test/test_file_storage.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: operator""_path(unsigned long long i)
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - aux::path_index_t
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: aux::path_index_t
    signature: aux::path_index_t operator""_path(unsigned long long i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:92,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:93,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:93,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:94,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:95,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:95,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:96,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:96,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:97,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:98,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:98,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:99,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:99,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:100,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:101,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:102,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:102,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:105,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:105,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:106,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:107,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:107,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:108,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:108,1
    - Dst: file_storage::canonicalize
      Src: /src/libtorrent/test/test_file_storage.cpp:112,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:114,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:115,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:116,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:116,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:117,1
    - Dst: file_storage::paths
      Src: /src/libtorrent/test/test_file_storage.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::canonicalize
    - combine_path
    - file_storage::add_file
    - file_storage::paths
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(coalesce_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test_storage
      Src: /src/libtorrent/test/test_file_storage.cpp:124,1
    - Dst: file_storage::rename_file
      Src: /src/libtorrent/test/test_file_storage.cpp:126,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:126,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:126,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:127,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:127,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:127,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:127,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:128,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:129,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:129,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:129,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:130,1
    - Dst: file_storage::rename_file
      Src: /src/libtorrent/test/test_file_storage.cpp:135,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:136,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:136,1
    - Dst: file_storage::rename_file
      Src: /src/libtorrent/test/test_file_storage.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:139,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:139,1
    - Dst: file_storage::rename_file
      Src: /src/libtorrent/test/test_file_storage.cpp:142,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:142,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:143,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:143,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:143,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::file_path
    - combine_path
    - file_storage::rename_file
    - setup_test_storage
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test_storage
      Src: /src/libtorrent/test/test_file_storage.cpp:153,1
    - Dst: file_storage::set_name
      Src: /src/libtorrent/test/test_file_storage.cpp:155,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:156,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:156,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:156,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::file_path
    - combine_path
    - setup_test_storage
    - file_storage::set_name
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:165,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:165,1
    - Dst: file_storage::rename_file
      Src: /src/libtorrent/test/test_file_storage.cpp:167,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:167,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:168,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:168,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:168,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:168,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:169,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:169,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:169,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:169,1
    - Dst: file_storage::rename_file
      Src: /src/libtorrent/test/test_file_storage.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:173,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:174,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:174,1
    - Dst: file_storage::rename_file
      Src: /src/libtorrent/test/test_file_storage.cpp:176,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:177,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:178,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:178,1
    - Dst: file_storage::rename_file
      Src: /src/libtorrent/test/test_file_storage.cpp:181,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:182,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:182,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::file_path
    - combine_path
    - file_storage::add_file
    - file_storage::rename_file
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_file2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:189,1
    - Dst: file_storage::add_file_borrow
      Src: /src/libtorrent/test/test_file_storage.cpp:194,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:199,1
    - Dst: file_storage::file_name_ptr
      Src: /src/libtorrent/test/test_file_storage.cpp:199,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:200,1
    - Dst: file_storage::file_name_len
      Src: /src/libtorrent/test/test_file_storage.cpp:200,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:202,1
    - Dst: file_storage::file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:202,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_file_storage.cpp:202,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:203,1
    - Dst: file_storage::hash
      Src: /src/libtorrent/test/test_file_storage.cpp:203,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:203,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:204,1
    - Dst: file_storage::root
      Src: /src/libtorrent/test/test_file_storage.cpp:204,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:204,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:206,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:206,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:206,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:207,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:207,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:207,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 209
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file_borrow
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::file_path
    - sha256_hash
    - file_storage::file_name_ptr
    - combine_path
    - file_storage::file_name_len
    - string_view
    - file_storage::root
    - file_storage::file_name
    - sha1_hash
    - file_storage::hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pointer_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:214,1
    - Dst: file_storage::add_file_borrow
      Src: /src/libtorrent/test/test_file_storage.cpp:216,1
    - Dst: file_storage::add_file_borrow
      Src: /src/libtorrent/test/test_file_storage.cpp:218,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:221,1
    - Dst: file_storage::file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:221,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:222,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:222,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file_borrow
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::file_path
    - combine_path
    - file_storage::file_name
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_path1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:228,1
    - Dst: file_storage::add_file_borrow
      Src: /src/libtorrent/test/test_file_storage.cpp:230,1
    - Dst: file_storage::add_file_borrow
      Src: /src/libtorrent/test/test_file_storage.cpp:232,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:235,1
    - Dst: file_storage::file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:236,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:236,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:236,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file_borrow
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::file_path
    - combine_path
    - file_storage::file_name
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_path2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:243,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:244,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:244,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:245,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:245,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:246,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:246,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:247,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:247,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:248,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:248,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:250,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:250,1
    - Dst: file_storage::map_file
      Src: /src/libtorrent/test/test_file_storage.cpp:253,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:255,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:256,1
    - Dst: file_storage::map_file
      Src: /src/libtorrent/test/test_file_storage.cpp:257,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:258,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:259,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:260,1
    - Dst: file_storage::map_file
      Src: /src/libtorrent/test/test_file_storage.cpp:261,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:262,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:263,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 265
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - combine_path
    - file_storage::add_file
    - file_storage::map_file
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(map_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:272,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:273,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:273,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:274,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:274,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file_storage.cpp:276,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:276,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file_storage.cpp:277,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:277,1
    - Dst: file_storage::file_path_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:278,1
    - Dst: file_storage::file_path_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:279,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::file_path
    - combine_path
    - file_storage::add_file
    - std::printf
    - file_storage::file_path_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_path_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:287,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:288,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:288,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:289,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:289,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:290,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:290,1
    - Dst: file_storage::canonicalize
      Src: /src/libtorrent/test/test_file_storage.cpp:292,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:294,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_file_storage.cpp:294,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:296,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:296,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:297,1
    - Dst: file_storage::file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:297,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:298,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:298,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:300,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:300,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:301,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:301,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:303,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:303,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:304,1
    - Dst: file_storage::file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:304,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:305,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:305,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:307,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:307,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:308,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:308,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:310,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:310,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:311,1
    - Dst: file_storage::file_name
      Src: /src/libtorrent/test/test_file_storage.cpp:311,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:312,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:312,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:314,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_file_storage.cpp:314,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:315,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 316
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::canonicalize
    - combine_path
    - file_storage::add_file
    - file_storage::num_files
    - file_storage::file_name
    - file_storage::file_size
    - file_storage::pad_file_at
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(canonicalize_pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:322,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:323,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:323,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:323,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:324,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:324,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:324,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:325,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:325,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:325,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:326,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:326,1
    - Dst: file_storage::canonicalize
      Src: /src/libtorrent/test/test_file_storage.cpp:328,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:330,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_file_storage.cpp:330,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:332,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:332,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:332,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:332,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:333,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:333,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:333,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:334,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:334,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:334,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:334,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:335,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:335,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:335,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 336
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::canonicalize
    - file_storage::file_path
    - combine_path
    - file_storage::add_file
    - file_storage::num_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(canonicalize_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:342,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:343,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:343,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:344,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:344,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:345,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:345,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:346,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:346,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:353,1
    - Dst: libtorrent::aux::file_piece_range_exclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:353,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:353,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:354,1
    - Dst: libtorrent::aux::file_piece_range_exclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:354,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:354,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:355,1
    - Dst: libtorrent::aux::file_piece_range_exclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:355,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 356
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - libtorrent::aux::file_piece_range_exclusive
    - combine_path
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - std::make_tuple
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_range_exclusive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:362,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:363,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:363,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:364,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:364,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:365,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:365,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:366,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:366,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:373,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:373,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:373,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:374,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:374,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:374,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:375,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:375,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 376
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - combine_path
    - file_storage::add_file
    - libtorrent::aux::file_piece_range_inclusive
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - std::make_tuple
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_range_inclusive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:382,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:383,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:383,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:384,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:384,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:385,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:385,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:392,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:392,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:392,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:393,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:393,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:393,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:395,1
    - Dst: libtorrent::aux::file_piece_range_exclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:395,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:395,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:396,1
    - Dst: libtorrent::aux::file_piece_range_exclusive
      Src: /src/libtorrent/test/test_file_storage.cpp:396,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file_storage.cpp:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 397
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - libtorrent::aux::file_piece_range_exclusive
    - combine_path
    - file_storage::add_file
    - libtorrent::aux::file_piece_range_inclusive
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - std::make_tuple
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:402,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:403,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:404,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:404,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:405,1
    - Dst: file_storage::piece_size
      Src: /src/libtorrent/test/test_file_storage.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::piece_size
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_size_last_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:411,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:412,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:413,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:413,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:414,1
    - Dst: file_storage::piece_size
      Src: /src/libtorrent/test/test_file_storage.cpp:414,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:415,1
    - Dst: file_storage::piece_size
      Src: /src/libtorrent/test/test_file_storage.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::piece_size
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_size_middle_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:421,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:422,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:423,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:424,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:425,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:426,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:430,1
    - Dst: file_storage::file_index_at_offset
      Src: /src/libtorrent/test/test_file_storage.cpp:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::file_index_at_offset
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_index_at_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:437,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:438,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:439,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:440,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:441,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:442,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:443,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:443,1
    - Dst: file_storage::map_block
      Src: /src/libtorrent/test/test_file_storage.cpp:447,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:448,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_file_storage.cpp:448,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:453,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:454,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 460
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - std::vector::size
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - file_storage::map_block
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(map_block_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:465,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:466,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:467,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:468,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:469,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:470,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:471,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:471,1
    - Dst: file_storage::map_block
      Src: /src/libtorrent/test/test_file_storage.cpp:475,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:476,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_file_storage.cpp:476,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:478,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:479,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 483
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - std::vector::size
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - file_storage::map_block
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(map_block_mid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:494,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:498,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:500,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:504,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:507,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:510,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:513,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:516,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:519,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:522,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:525,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:526,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_storage.cpp:526,1
    - Dst: file_storage::sanitize_symlinks
      Src: /src/libtorrent/test/test_file_storage.cpp:528,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:531,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:531,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:532,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:532,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:533,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:533,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:536,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:536,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:537,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:537,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:538,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:538,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:539,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:539,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:542,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 543
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::total_size
    - file_storage::add_file
    - file_storage::sanitize_symlinks
    - file_storage::symlink
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_symlinks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:548,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:549,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:550,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_storage.cpp:550,1
    - Dst: file_storage::sanitize_symlinks
      Src: /src/libtorrent/test/test_file_storage.cpp:552,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:554,1
    - Dst: file_storage::file_path
      Src: /src/libtorrent/test/test_file_storage.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 555
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::file_path
    - file_storage::total_size
    - file_storage::add_file
    - file_storage::sanitize_symlinks
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_symlinks_single_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:560,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:562,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:563,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:564,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:565,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:566,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:567,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:568,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:569,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:570,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:573,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:574,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_storage.cpp:574,1
    - Dst: file_storage::sanitize_symlinks
      Src: /src/libtorrent/test/test_file_storage.cpp:576,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:578,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:578,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:579,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:579,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:580,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:580,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:581,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:581,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:582,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:582,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:583,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:583,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:584,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:584,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:585,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:585,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:586,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 587
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::total_size
    - file_storage::add_file
    - file_storage::sanitize_symlinks
    - file_storage::symlink
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_symlinks_cascade)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:592,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:594,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:595,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:599,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:602,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:603,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_storage.cpp:603,1
    - Dst: file_storage::sanitize_symlinks
      Src: /src/libtorrent/test/test_file_storage.cpp:605,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:607,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:607,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:608,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:608,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:611,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 612
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::total_size
    - file_storage::add_file
    - file_storage::sanitize_symlinks
    - file_storage::symlink
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_symlinks_circular)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:617,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:618,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:619,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:620,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:621,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:623,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:624,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:625,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:626,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:628,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:629,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:630,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:631,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:632,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 634
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - file_storage::symlink
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(query_symlinks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:639,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:640,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:641,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:642,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:643,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:645,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:645,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:646,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:646,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:647,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:647,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:648,1
    - Dst: file_storage::symlink
      Src: /src/libtorrent/test/test_file_storage.cpp:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 649
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - file_storage::symlink
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(query_symlinks2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:654,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:655,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:656,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:659,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:660,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:661,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:663,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 664
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:669,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:670,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:671,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:674,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:675,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:677,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 678
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_num_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:683,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:684,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:685,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:688,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:689,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:690,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:692,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 693
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:698,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:699,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:700,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:703,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:704,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:705,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:707,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 708
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:713,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:714,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:715,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:718,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:719,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:720,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:723,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 724
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_hidden)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:729,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:730,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:731,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:734,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:735,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:736,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:739,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 740
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:745,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:746,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:747,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:748,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:749,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:752,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:753,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:754,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:755,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:756,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:759,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 760
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_empty_file_order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:765,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:766,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:767,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:770,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:771,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:772,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:775,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 776
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_mtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:781,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:782,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:783,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:786,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:787,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:788,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:790,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 791
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:796,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:797,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:798,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:801,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:802,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:803,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:805,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 806
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_different_symlink)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:811,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:812,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:813,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:816,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:817,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:818,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:820,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 821
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(files_compatible_same_symlink)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:826,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:827,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:828,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:829,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:830,1
    - Dst: file_storage::remove_tail_padding
      Src: /src/libtorrent/test/test_file_storage.cpp:832,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:835,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:836,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:837,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:838,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:840,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 841
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - file_storage::add_file
    - file_storage::remove_tail_padding
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_tail_padding_not_last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:846,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:847,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:848,1
    - Dst: file_storage::remove_tail_padding
      Src: /src/libtorrent/test/test_file_storage.cpp:850,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:853,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:854,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:856,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 857
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - file_storage::add_file
    - file_storage::remove_tail_padding
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_tail_padding_last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:862,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:863,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:864,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:865,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:866,1
    - Dst: file_storage::remove_tail_padding
      Src: /src/libtorrent/test/test_file_storage.cpp:868,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:871,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:872,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:873,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:874,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:875,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:877,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/test/test_file_storage.cpp:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 878
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - file_storage::add_file
    - file_storage::remove_tail_padding
    - libtorrent::aux::files_compatible
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_tail_padding_no_op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:886,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_file_storage.cpp:887,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:887,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:890,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:891,1
    - Dst: make_error_code
      Src: /src/libtorrent/test/test_file_storage.cpp:891,1
    - Dst: TEST_NOTHROW
      Src: /src/libtorrent/test/test_file_storage.cpp:894,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 895
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - TEST_NOTHROW
    - file_storage::add_file
    - make_error_code
    - TEST_THROW
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(large_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:900,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:902,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_file_storage.cpp:902,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_file_storage.cpp:902,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_file_storage.cpp:905,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:905,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:908,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:909,1
    - Dst: make_error_code
      Src: /src/libtorrent/test/test_file_storage.cpp:909,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - file_storage::set_piece_length
    - TEST_EQUAL
    - file_storage::add_file
    - c_str
    - make_error_code
    - TEST_THROW
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(large_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:918,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_file_storage.cpp:922,1
    - Dst: file_storage::add_file_borrow
      Src: /src/libtorrent/test/test_file_storage.cpp:922,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_file_storage.cpp:922,1
    - Dst: file_storage::add_file_borrow
      Src: /src/libtorrent/test/test_file_storage.cpp:925,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_file_storage.cpp:925,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:926,1
    - Dst: make_error_code
      Src: /src/libtorrent/test/test_file_storage.cpp:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 927
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file_borrow
    - TEST_EQUAL
    - file_storage::set_piece_length
    - make_error_code
    - string_view
    - TEST_THROW
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(large_filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:932,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:935,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:937,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:937,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:938,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:938,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:939,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:939,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:941,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:942,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:944,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:944,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:945,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:945,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:946,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:946,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:948,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:950,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:950,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:951,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:951,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:952,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:952,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:953,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:953,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:954,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:954,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:955,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:955,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:957,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:959,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:959,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:960,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:960,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:962,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:962,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:963,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:963,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:964,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:964,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:965,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:965,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:966,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:966,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:967,1
    - Dst: file_storage::piece_size2
      Src: /src/libtorrent/test/test_file_storage.cpp:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 968
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::add_file
    - file_storage::num_pieces
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - file_storage::piece_size2
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_size2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:973,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:974,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:975,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:976,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:977,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:978,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:979,1
    - Dst: file_storage::canonicalize
      Src: /src/libtorrent/test/test_file_storage.cpp:981,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:986,1
    - Dst: file_storage::file_num_blocks
      Src: /src/libtorrent/test/test_file_storage.cpp:986,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:988,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:988,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:989,1
    - Dst: file_storage::file_num_blocks
      Src: /src/libtorrent/test/test_file_storage.cpp:989,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:991,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:991,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:992,1
    - Dst: file_storage::file_num_blocks
      Src: /src/libtorrent/test/test_file_storage.cpp:992,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:993,1
    - Dst: file_storage::file_num_blocks
      Src: /src/libtorrent/test/test_file_storage.cpp:993,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:995,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:995,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:996,1
    - Dst: file_storage::file_num_blocks
      Src: /src/libtorrent/test/test_file_storage.cpp:996,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:998,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:998,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:999,1
    - Dst: file_storage::file_num_blocks
      Src: /src/libtorrent/test/test_file_storage.cpp:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 1000
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::canonicalize
    - file_storage::file_num_blocks
    - file_storage::add_file
    - file_storage::pad_file_at
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_num_blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1005,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1006,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1007,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1008,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1009,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1010,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1011,1
    - Dst: file_storage::canonicalize
      Src: /src/libtorrent/test/test_file_storage.cpp:1013,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1018,1
    - Dst: file_storage::file_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1018,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1020,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:1020,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1021,1
    - Dst: file_storage::file_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1021,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1023,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:1023,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1024,1
    - Dst: file_storage::file_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1024,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1025,1
    - Dst: file_storage::file_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1025,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1027,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:1027,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1028,1
    - Dst: file_storage::file_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1028,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1030,1
    - Dst: file_storage::pad_file_at
      Src: /src/libtorrent/test/test_file_storage.cpp:1030,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1031,1
    - Dst: file_storage::file_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1032
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::canonicalize
    - file_storage::add_file
    - file_storage::file_num_pieces
    - file_storage::pad_file_at
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_num_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1038,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1039,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1040,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1040,1
    - Dst: file_storage::file_first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - piece_size
    - file_size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1042
    functionName: first_piece_node
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_storage::file_first_piece_node
    - file_storage::set_piece_length
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: int
    signature: int first_piece_node(int piece_size, int file_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1047,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1048,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1049,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1049,1
    - Dst: file_storage::file_first_block_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - file_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1051
    functionName: first_block_node
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_storage::set_piece_length
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - file_storage::file_first_block_node
    linkageType: ''
    returnType: int
    signature: int first_block_node(int file_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1038,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1039,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1040,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1040,1
    - Dst: file_storage::file_first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - piece_size
    - file_size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1042
    functionName: first_piece_node
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 2
    functionsReached:
    - file_storage::file_first_piece_node
    - file_storage::set_piece_length
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: int
    signature: int first_piece_node(int piece_size, int file_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1047,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1048,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1049,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1049,1
    - Dst: file_storage::file_first_block_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - file_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1051
    functionName: first_block_node
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 2
    functionsReached:
    - file_storage::set_piece_length
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - file_storage::file_first_block_node
    linkageType: ''
    returnType: int
    signature: int first_block_node(int file_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1060,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1060,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1061,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1061,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1062,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1062,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1063,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1063,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1064,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1064,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1068,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1068,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1069,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1069,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1070,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1070,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1072,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1072,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1073,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1073,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1074,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1074,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1077,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1077,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1080,1
    - Dst: first_piece_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1081
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - first_piece_node
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_first_piece_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1090,1
    - Dst: first_block_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1090,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1093,1
    - Dst: first_block_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1093,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1096,1
    - Dst: first_block_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1096,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1097,1
    - Dst: first_block_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1097,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1098,1
    - Dst: first_block_node
      Src: /src/libtorrent/test/test_file_storage.cpp:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1099
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - first_block_node
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_first_block_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1104,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1107,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:1107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1108,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1109,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:1109,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1111
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - TEST_CHECK
    - combine_path
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mismatching_file_hash1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1116,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1119,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:1119,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1120,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1121,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file_storage.cpp:1121,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1123
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - TEST_CHECK
    - combine_path
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mismatching_file_hash2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1128,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1131,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1132,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1134,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_file_storage.cpp:1136,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1137
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - TEST_THROW
    - file_storage::set_piece_length
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_detection_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1142,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1145,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1146,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1148,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_file_storage.cpp:1151,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1152
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - TEST_THROW
    - file_storage::set_piece_length
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_detection_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1165,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1166,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1167,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_storage.cpp:1167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1168,1
    - Dst: file_storage::blocks_in_piece2
      Src: /src/libtorrent/test/test_file_storage.cpp:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1170
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::add_file
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    - file_storage::blocks_in_piece2
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(blocks_in_piece2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1175,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1176,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1177,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1178,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1179,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1181,1
    - Dst: file_storage::file_index_for_root
      Src: /src/libtorrent/test/test_file_storage.cpp:1181,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:1181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1182,1
    - Dst: file_storage::file_index_for_root
      Src: /src/libtorrent/test/test_file_storage.cpp:1182,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:1182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1183,1
    - Dst: file_storage::file_index_for_root
      Src: /src/libtorrent/test/test_file_storage.cpp:1183,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:1183,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1184,1
    - Dst: file_storage::file_index_for_root
      Src: /src/libtorrent/test/test_file_storage.cpp:1184,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:1184,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1185,1
    - Dst: file_storage::file_index_for_root
      Src: /src/libtorrent/test/test_file_storage.cpp:1185,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_file_storage.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1186
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::file_index_for_root
    - sha256_hash
    - file_storage::add_file
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_index_for_root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_storage.cpp:1191,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1194,1
    - Dst: libtorrent::aux::size_on_disk
      Src: /src/libtorrent/test/test_file_storage.cpp:1194,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1195,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1197,1
    - Dst: libtorrent::aux::size_on_disk
      Src: /src/libtorrent/test/test_file_storage.cpp:1197,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1200,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1201,1
    - Dst: libtorrent::aux::size_on_disk
      Src: /src/libtorrent/test/test_file_storage.cpp:1201,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_storage.cpp:1202,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_storage.cpp:1204,1
    - Dst: libtorrent::aux::size_on_disk
      Src: /src/libtorrent/test/test_file_storage.cpp:1204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file_storage.cpp:1205,1
    - Dst: libtorrent::aux::size_on_disk
      Src: /src/libtorrent/test/test_file_storage.cpp:1205,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_storage.cpp:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1206
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::total_size
    - file_storage::add_file
    - libtorrent::aux::size_on_disk
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(size_on_disk_explicit_pads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_ban.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_ban.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_ban.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_ban.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_ban.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_ban.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_ban.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_ban.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/libtorrent/test/test_bloom_filter.cpp:47,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_bloom_filter.cpp:48,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_bloom_filter.cpp:49,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_bloom_filter.cpp:50,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:51,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:51,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:52,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:52,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:53,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:53,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:54,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:54,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/test/test_bloom_filter.cpp:56,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:57,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:57,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:58,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:58,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:59,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:59,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:60,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:60,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/test/test_bloom_filter.cpp:62,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:63,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:63,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:64,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:64,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:65,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:65,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:66,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: test_set_and_get
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - bloom_filter::set
    - bloom_filter::find
    - hasher
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_set_and_get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_bloom_filter.cpp:75,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_bloom_filter.cpp:75,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:76,1
    - Dst: has_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:76,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_bloom_filter.cpp:81,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_bloom_filter.cpp:81,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:82,1
    - Dst: has_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:82,1
    - Dst: set_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:83,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:84,1
    - Dst: has_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:84,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:88,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_bloom_filter.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 89
    functionName: test_set_bits
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::uint8_t
    - memcmp
    - set_bits
    - TEST_CHECK
    - has_bits
    linkageType: ''
    returnType: void
    signature: void test_set_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:95,1
    - Dst: count_zero_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:95,1
    - Dst: set_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:99,1
    - Dst: count_zero_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:102,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_bloom_filter.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: test_count_zeroes
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - set_bits
    - TEST_EQUAL
    - memcmp
    - count_zero_bits
    linkageType: ''
    returnType: void
    signature: void test_count_zeroes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bloom_filter::from_string
      Src: /src/libtorrent/test/test_bloom_filter.cpp:110,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/test/test_bloom_filter.cpp:110,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/test/test_bloom_filter.cpp:112,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:113,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_bloom_filter.cpp:113,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bloom_filter.cpp:113,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:116,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:116,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/test/test_bloom_filter.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:118,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:118,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/test/test_bloom_filter.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:123,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_bloom_filter.cpp:123,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bloom_filter.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 124
    functionName: test_to_from_string
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bloom_filter::set
    - bloom_filter::from_string
    - memcmp
    - reinterpret_cast<char*>
    - std::string::c_str
    - bloom_filter::to_string
    - bloom_filter::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_to_from_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/libtorrent/test/test_bloom_filter.cpp:47,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_bloom_filter.cpp:48,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_bloom_filter.cpp:49,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_bloom_filter.cpp:50,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:51,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:51,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:52,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:52,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:53,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:53,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:54,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:54,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/test/test_bloom_filter.cpp:56,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:57,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:57,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:58,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:58,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:59,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:59,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:60,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:60,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/test/test_bloom_filter.cpp:62,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:63,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:63,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:64,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:64,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:65,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:65,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:66,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: test_set_and_get
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - bloom_filter::set
    - bloom_filter::find
    - hasher
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_set_and_get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_bloom_filter.cpp:75,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_bloom_filter.cpp:75,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:76,1
    - Dst: has_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:76,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_bloom_filter.cpp:81,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_bloom_filter.cpp:81,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:82,1
    - Dst: has_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:82,1
    - Dst: set_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:83,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:84,1
    - Dst: has_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:84,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:88,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_bloom_filter.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 89
    functionName: test_set_bits
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::uint8_t
    - memcmp
    - set_bits
    - TEST_CHECK
    - has_bits
    linkageType: ''
    returnType: void
    signature: void test_set_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:95,1
    - Dst: count_zero_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:95,1
    - Dst: set_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:99,1
    - Dst: count_zero_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:102,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_bloom_filter.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: test_count_zeroes
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - set_bits
    - TEST_EQUAL
    - memcmp
    - count_zero_bits
    linkageType: ''
    returnType: void
    signature: void test_count_zeroes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bloom_filter::from_string
      Src: /src/libtorrent/test/test_bloom_filter.cpp:110,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/test/test_bloom_filter.cpp:110,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/test/test_bloom_filter.cpp:112,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:113,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_bloom_filter.cpp:113,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bloom_filter.cpp:113,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:116,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:116,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/test/test_bloom_filter.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bloom_filter.cpp:118,1
    - Dst: bloom_filter::find
      Src: /src/libtorrent/test/test_bloom_filter.cpp:118,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/test/test_bloom_filter.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bloom_filter.cpp:123,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_bloom_filter.cpp:123,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bloom_filter.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 124
    functionName: test_to_from_string
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bloom_filter::set
    - bloom_filter::from_string
    - memcmp
    - reinterpret_cast<char*>
    - std::string::c_str
    - bloom_filter::to_string
    - bloom_filter::find
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_to_from_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_set_and_get
      Src: /src/libtorrent/test/test_bloom_filter.cpp:130,1
    - Dst: test_set_bits
      Src: /src/libtorrent/test/test_bloom_filter.cpp:131,1
    - Dst: test_count_zeroes
      Src: /src/libtorrent/test/test_bloom_filter.cpp:132,1
    - Dst: test_to_from_string
      Src: /src/libtorrent/test/test_bloom_filter.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - test_count_zeroes
    - test_to_from_string
    - test_set_and_get
    - test_set_bits
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bloom_filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/libtorrent/test/test_peer_classes.cpp:47,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:48,1
    - Dst: peer_class*::get_info
      Src: /src/libtorrent/test/test_peer_classes.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - id
    - ' p'
    argTypes:
    - peer_class_t
    - peer_class_pool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: class_name
    functionSourceFile: /src/libtorrent/test/test_peer_classes.cpp
    functionUses: 0
    functionsReached:
    - at
    - TEST_CHECK
    - peer_class*::get_info
    linkageType: ''
    returnType: std::string
    signature: std::string class_name(peer_class_t id, peer_class_pool const& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/libtorrent/test/test_peer_classes.cpp:47,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:48,1
    - Dst: peer_class*::get_info
      Src: /src/libtorrent/test/test_peer_classes.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - id
    - ' p'
    argTypes:
    - peer_class_t
    - peer_class_pool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: class_name
    functionSourceFile: /src/libtorrent/test/test_peer_classes.cpp
    functionUses: 0
    functionsReached:
    - at
    - TEST_CHECK
    - peer_class*::get_info
    linkageType: ''
    returnType: std::string
    signature: std::string class_name(peer_class_t id, peer_class_pool const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_class_pool::new_peer_class
      Src: /src/libtorrent/test/test_peer_classes.cpp:60,1
    - Dst: peer_class_pool::new_peer_class
      Src: /src/libtorrent/test/test_peer_classes.cpp:61,1
    - Dst: peer_class_pool::new_peer_class
      Src: /src/libtorrent/test/test_peer_classes.cpp:66,1
    - Dst: peer_class_pool::decref
      Src: /src/libtorrent/test/test_peer_classes.cpp:67,1
    - Dst: peer_class_pool::new_peer_class
      Src: /src/libtorrent/test/test_peer_classes.cpp:70,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:72,1
    - Dst: next
      Src: /src/libtorrent/test/test_peer_classes.cpp:72,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_classes.cpp:75,1
    - Dst: class_name
      Src: /src/libtorrent/test/test_peer_classes.cpp:75,1
    - Dst: peer_class_pool::incref
      Src: /src/libtorrent/test/test_peer_classes.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_classes.cpp:77,1
    - Dst: class_name
      Src: /src/libtorrent/test/test_peer_classes.cpp:77,1
    - Dst: peer_class_pool::decref
      Src: /src/libtorrent/test/test_peer_classes.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_classes.cpp:79,1
    - Dst: class_name
      Src: /src/libtorrent/test/test_peer_classes.cpp:79,1
    - Dst: peer_class_pool::decref
      Src: /src/libtorrent/test/test_peer_classes.cpp:80,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:82,1
    - Dst: peer_class_pool::at
      Src: /src/libtorrent/test/test_peer_classes.cpp:82,1
    - Dst: peer_class_pool::at
      Src: /src/libtorrent/test/test_peer_classes.cpp:85,1
    - Dst: peer_class_pool::at
      Src: /src/libtorrent/test/test_peer_classes.cpp:86,1
    - Dst: peer_class_pool::at
      Src: /src/libtorrent/test/test_peer_classes.cpp:89,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_classes.cpp:90,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_classes.cpp:91,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:98,1
    - Dst: peer_class_type_filter::apply
      Src: /src/libtorrent/test/test_peer_classes.cpp:98,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:98,1
    - Dst: peer_class_type_filter::disallow
      Src: /src/libtorrent/test/test_peer_classes.cpp:102,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:102,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:103,1
    - Dst: peer_class_type_filter::apply
      Src: /src/libtorrent/test/test_peer_classes.cpp:103,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:105,1
    - Dst: peer_class_type_filter::apply
      Src: /src/libtorrent/test/test_peer_classes.cpp:105,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:105,1
    - Dst: peer_class_type_filter::allow
      Src: /src/libtorrent/test/test_peer_classes.cpp:107,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:108,1
    - Dst: peer_class_type_filter::apply
      Src: /src/libtorrent/test/test_peer_classes.cpp:108,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:111,1
    - Dst: peer_class_type_filter::apply
      Src: /src/libtorrent/test/test_peer_classes.cpp:111,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:111,1
    - Dst: peer_class_type_filter::add
      Src: /src/libtorrent/test/test_peer_classes.cpp:112,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:112,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:113,1
    - Dst: peer_class_type_filter::apply
      Src: /src/libtorrent/test/test_peer_classes.cpp:113,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:113,1
    - Dst: peer_class_type_filter::remove
      Src: /src/libtorrent/test/test_peer_classes.cpp:114,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:115,1
    - Dst: peer_class_type_filter::apply
      Src: /src/libtorrent/test/test_peer_classes.cpp:115,1
    - Dst: static_cast<lt::peer_class_type_filter::socket_type_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:115,1
    - Dst: peer_class_pool::decref
      Src: /src/libtorrent/test/test_peer_classes.cpp:117,1
    - Dst: peer_class_pool::decref
      Src: /src/libtorrent/test/test_peer_classes.cpp:118,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:119,1
    - Dst: peer_class_pool::at
      Src: /src/libtorrent/test/test_peer_classes.cpp:119,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:120,1
    - Dst: peer_class_pool::at
      Src: /src/libtorrent/test/test_peer_classes.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 121
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_classes.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - peer_class_type_filter::disallow
    - static_cast<lt::peer_class_type_filter::socket_type_t>
    - peer_class_type_filter::remove
    - peer_class_type_filter::allow
    - peer_class_type_filter::add
    - peer_class_pool::new_peer_class
    - peer_class_pool::incref
    - peer_class_type_filter::apply
    - peer_class_pool::decref
    - next
    - class_name
    - peer_class_pool::at
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(peer_class)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session::create_peer_class
      Src: /src/libtorrent/test/test_peer_classes.cpp:127,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_peer_classes.cpp:130,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_peer_classes.cpp:130,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_peer_classes.cpp:131,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/test/test_peer_classes.cpp:132,1
    - Dst: session::set_peer_class_filter
      Src: /src/libtorrent/test/test_peer_classes.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:135,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_peer_classes.cpp:135,1
    - Dst: session::get_peer_class_filter
      Src: /src/libtorrent/test/test_peer_classes.cpp:135,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_peer_classes.cpp:136,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/test/test_peer_classes.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_classes.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - session::get_peer_class_filter
    - static_cast<std::uint32_t>
    - std::get<0>
    - ip_filter::add_rule
    - session::create_peer_class
    - ip_filter::export_filter
    - session::set_peer_class_filter
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_peer_class_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session::create_peer_class
      Src: /src/libtorrent/test/test_peer_classes.cpp:143,1
    - Dst: peer_class_type_filter::add
      Src: /src/libtorrent/test/test_peer_classes.cpp:146,1
    - Dst: peer_class_type_filter::disallow
      Src: /src/libtorrent/test/test_peer_classes.cpp:147,1
    - Dst: session::set_peer_class_type_filter
      Src: /src/libtorrent/test/test_peer_classes.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_classes.cpp:150,1
    - Dst: session::get_peer_class_type_filter
      Src: /src/libtorrent/test/test_peer_classes.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_classes.cpp
    functionUses: 0
    functionsReached:
    - session::get_peer_class_type_filter
    - peer_class_type_filter::disallow
    - session::set_peer_class_type_filter
    - peer_class_type_filter::add
    - session::create_peer_class
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_peer_class_type_filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_directories
      Src: /src/libtorrent/test/setup_transfer.cpp:86,1
    - Dst: ofstream
      Src: /src/libtorrent/test/setup_transfer.cpp:89,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:89,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/setup_transfer.cpp:89,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:89,1
    - Dst: ofstream
      Src: /src/libtorrent/test/setup_transfer.cpp:90,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:90,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/setup_transfer.cpp:90,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:90,1
    - Dst: ofstream
      Src: /src/libtorrent/test/setup_transfer.cpp:91,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:91,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/setup_transfer.cpp:91,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:91,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/setup_transfer.cpp:94,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/setup_transfer.cpp:95,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/setup_transfer.cpp:96,1
    - Dst: lt::create_torrent::set_comment
      Src: /src/libtorrent/test/setup_transfer.cpp:99,1
    - Dst: lt::create_torrent::set_creator
      Src: /src/libtorrent/test/setup_transfer.cpp:100,1
    - Dst: lt::create_torrent::add_tracker
      Src: /src/libtorrent/test/setup_transfer.cpp:101,1
    - Dst: lt::create_torrent::add_url_seed
      Src: /src/libtorrent/test/setup_transfer.cpp:102,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:104,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/setup_transfer.cpp:104,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/test/setup_transfer.cpp:107,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/setup_transfer.cpp:112,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/setup_transfer.cpp:115,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/setup_transfer.cpp:116,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/setup_transfer.cpp:119,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/setup_transfer.cpp:122,1
    - Dst: file_storage::file_index_at_piece
      Src: /src/libtorrent/test/setup_transfer.cpp:123,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/setup_transfer.cpp:124,1
    - Dst: file_storage::piece_index_at_file
      Src: /src/libtorrent/test/setup_transfer.cpp:124,1
    - Dst: bencode
      Src: /src/libtorrent/test/setup_transfer.cpp:129,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/setup_transfer.cpp:129,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/setup_transfer.cpp:129,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/setup_transfer.cpp:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - with_files
    - with_hashes
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 131
    functionName: generate_torrent
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 4
    functionsReached:
    - std::vector::size
    - lt::create_torrent::set_hash
    - lt::create_torrent::add_url_seed
    - std::make_shared<torrent_info>
    - create_directories
    - file_storage::add_file
    - lt::create_torrent::set_hash2
    - libtorrent::aux::random_bytes
    - lt::create_torrent::add_tracker
    - lt::create_torrent::set_creator
    - ofstream
    - libtorrent::set_piece_hashes
    - file_storage::file_index_at_piece
    - TEST_CHECK
    - std::streamsize
    - lt::create_torrent::num_pieces
    - bencode
    - std::vector::data
    - lt::create_torrent::set_comment
    - file_storage::piece_range
    - file_storage::piece_index_at_file
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> generate_torrent(bool const with_files,
      bool const with_hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: init_rand_address
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_rand_address()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/test/setup_transfer.cpp:154,1
    - Dst: address_v4::is_unspecified
      Src: /src/libtorrent/test/setup_transfer.cpp:155,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/test/setup_transfer.cpp:155,1
    - Dst: address_v4::is_loopback
      Src: /src/libtorrent/test/setup_transfer.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: rand_v4
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 6
    functionsReached:
    - address_v4::is_unspecified
    - libtorrent::aux::is_local
    - address_v4
    - address_v4::is_loopback
    linkageType: ''
    returnType: address
    signature: address rand_v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/setup_transfer.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: rand_hash
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash rand_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/setup_transfer.cpp:169,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/test/setup_transfer.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: to_hash
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 2
    functionsReached:
    - sha1_hash::data
    - libtorrent::aux::from_hex
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash to_hash(char const* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/setup_transfer.cpp:176,1
    - Dst: span<std::uint8_t>::size
      Src: /src/libtorrent/test/setup_transfer.cpp:176,1
    - Dst: span<std::uint8_t const>::size
      Src: /src/libtorrent/test/setup_transfer.cpp:176,1
    - Dst: span<std::uint8_t>::size
      Src: /src/libtorrent/test/setup_transfer.cpp:178,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/setup_transfer.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - target
    - add
    argTypes:
    - span<std::uint8_t>
    - span<std::uint8_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: add_mp
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - span<std::uint8_t const>::size
    - span<std::uint8_t>::size
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: void add_mp(span<std::uint8_t> target, span<std::uint8_t const> add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/setup_transfer.cpp:176,1
    - Dst: span<std::uint8_t>::size
      Src: /src/libtorrent/test/setup_transfer.cpp:176,1
    - Dst: span<std::uint8_t const>::size
      Src: /src/libtorrent/test/setup_transfer.cpp:176,1
    - Dst: span<std::uint8_t>::size
      Src: /src/libtorrent/test/setup_transfer.cpp:178,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/setup_transfer.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - target
    - add
    argTypes:
    - span<std::uint8_t>
    - span<std::uint8_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: add_mp
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - span<std::uint8_t const>::size
    - span<std::uint8_t>::size
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: void add_mp(span<std::uint8_t> target, span<std::uint8_t const> add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_mp
      Src: /src/libtorrent/test/setup_transfer.cpp:196,1
    - Dst: address_v6
      Src: /src/libtorrent/test/setup_transfer.cpp:197,1
    - Dst: address_v6::is_unspecified
      Src: /src/libtorrent/test/setup_transfer.cpp:199,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/test/setup_transfer.cpp:199,1
    - Dst: address_v6::is_loopback
      Src: /src/libtorrent/test/setup_transfer.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: rand_v6
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 4
    functionsReached:
    - address_v6::is_loopback
    - add_mp
    - address_v6
    - address_v6::is_unspecified
    - libtorrent::aux::is_local
    linkageType: ''
    returnType: address
    signature: address rand_v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:209,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/setup_transfer.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: rand_tcp_ep
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 1
    functionsReached:
    - rand_addr
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint rand_tcp_ep(lt::address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:215,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/setup_transfer.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: rand_udp_ep
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 2
    functionsReached:
    - rand_addr
    - local_endpoint
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint rand_udp_ep(lt::address(&rand_addr)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:226,1
    - Dst: tcp::socket::open
      Src: /src/libtorrent/test/setup_transfer.cpp:234,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/setup_transfer.cpp:234,1
    - Dst: tcp::socket::bind
      Src: /src/libtorrent/test/setup_transfer.cpp:237,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:237,1
    - Dst: make_address_v6
      Src: /src/libtorrent/test/setup_transfer.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: supports_ipv6
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 1
    functionsReached:
    - rand_v6
    - local_endpoint
    - make_address
    - tcp::socket::bind
    - make_address_v6
    - tcp::socket::open
    linkageType: ''
    returnType: bool
    signature: bool supports_ipv6()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post_session_stats
      Src: /src/libtorrent/test/setup_transfer.cpp:245,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/setup_transfer.cpp:248,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:251,1
    - Dst: alert_cast<session_stats_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:254,1
    - Dst: session_stats_metrics
      Src: /src/libtorrent/test/setup_transfer.cpp:257,1
    - Dst: session_stats_alert*::counters
      Src: /src/libtorrent/test/setup_transfer.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 261
    functionName: get_counters
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 1
    functionsReached:
    - alert_cast<session_stats_alert>
    - post_session_stats
    - wait_for_alert
    - session_stats_alert*::counters
    - session_stats_metrics
    - TEST_CHECK
    linkageType: ''
    returnType: std::map<std::string, std::int64_t>
    signature: std::map<std::string, std::int64_t> get_counters(lt::session& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_log_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:266,1
    - Dst: alert_cast<session_stats_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:274,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:275,1
    - Dst: alert_cast<block_finished_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:276,1
    - Dst: alert_cast<block_downloading_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 282
    functionName: should_print
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<block_downloading_alert>
    - alert_cast<peer_log_alert>
    - alert_cast<session_stats_alert>
    - alert_cast<piece_finished_alert>
    - alert_cast<block_finished_alert>
    linkageType: ''
    returnType: bool
    signature: bool should_print(lt::alert* a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_log_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:266,1
    - Dst: alert_cast<session_stats_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:274,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:275,1
    - Dst: alert_cast<block_finished_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:276,1
    - Dst: alert_cast<block_downloading_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 282
    functionName: should_print
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<block_downloading_alert>
    - alert_cast<peer_log_alert>
    - alert_cast<session_stats_alert>
    - alert_cast<piece_finished_alert>
    - alert_cast<block_finished_alert>
    linkageType: ''
    returnType: bool
    signature: bool should_print(lt::alert* a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/setup_transfer.cpp:295,1
    - Dst: time_now
      Src: /src/libtorrent/test/setup_transfer.cpp:299,1
    - Dst: empty
      Src: /src/libtorrent/test/setup_transfer.cpp:304,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/setup_transfer.cpp:306,1
    - Dst: pop_alerts
      Src: /src/libtorrent/test/setup_transfer.cpp:307,1
    - Dst: begin
      Src: /src/libtorrent/test/setup_transfer.cpp:309,1
    - Dst: end
      Src: /src/libtorrent/test/setup_transfer.cpp:309,1
    - Dst: should_print
      Src: /src/libtorrent/test/setup_transfer.cpp:312,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:314,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:314,1
    - Dst: auto::what
      Src: /src/libtorrent/test/setup_transfer.cpp:315,1
    - Dst: auto::message
      Src: /src/libtorrent/test/setup_transfer.cpp:315,1
    - Dst: auto::type
      Src: /src/libtorrent/test/setup_transfer.cpp:317,1
    - Dst: clear
      Src: /src/libtorrent/test/setup_transfer.cpp:320,1
    - Dst: erase
      Src: /src/libtorrent/test/setup_transfer.cpp:321,1
    - Dst: begin
      Src: /src/libtorrent/test/setup_transfer.cpp:321,1
    - Dst: std::next
      Src: /src/libtorrent/test/setup_transfer.cpp:321,1
    - Dst: clear
      Src: /src/libtorrent/test/setup_transfer.cpp:325,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' ses'
    - type
    - name
    - p
    - timeout
    argTypes:
    - lt::session
    - int
    - char*
    - pop_alerts
    - lt::time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 327
    functionName: wait_for_alert
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 29
    functionsReached:
    - time_now
    - begin
    - auto::what
    - erase
    - empty
    - end
    - auto::message
    - wait_for_alert
    - time_now_string
    - std::next
    - auto::type
    - should_print
    - clear
    - std::printf
    - pop_alerts
    linkageType: ''
    returnType: alert
    signature: "alert * wait_for_alert(lt::session& ses, int type, char const* name\n\t,
      pop_alerts const p, lt::time_duration timeout)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/test/setup_transfer.cpp:332,1
    - Dst: fopen
      Src: /src/libtorrent/test/setup_transfer.cpp:333,1
    - Dst: c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:333,1
    - Dst: assign
      Src: /src/libtorrent/test/setup_transfer.cpp:336,1
    - Dst: boost::system::system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:336,1
    - Dst: fseek
      Src: /src/libtorrent/test/setup_transfer.cpp:340,1
    - Dst: assign
      Src: /src/libtorrent/test/setup_transfer.cpp:343,1
    - Dst: boost::system::system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:343,1
    - Dst: fclose
      Src: /src/libtorrent/test/setup_transfer.cpp:344,1
    - Dst: ftell
      Src: /src/libtorrent/test/setup_transfer.cpp:347,1
    - Dst: assign
      Src: /src/libtorrent/test/setup_transfer.cpp:350,1
    - Dst: boost::system::system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:350,1
    - Dst: fclose
      Src: /src/libtorrent/test/setup_transfer.cpp:351,1
    - Dst: fclose
      Src: /src/libtorrent/test/setup_transfer.cpp:357,1
    - Dst: fseek
      Src: /src/libtorrent/test/setup_transfer.cpp:361,1
    - Dst: assign
      Src: /src/libtorrent/test/setup_transfer.cpp:364,1
    - Dst: boost::system::system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:364,1
    - Dst: fclose
      Src: /src/libtorrent/test/setup_transfer.cpp:365,1
    - Dst: resize
      Src: /src/libtorrent/test/setup_transfer.cpp:369,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/setup_transfer.cpp:369,1
    - Dst: fclose
      Src: /src/libtorrent/test/setup_transfer.cpp:372,1
    - Dst: fread
      Src: /src/libtorrent/test/setup_transfer.cpp:376,1
    - Dst: size
      Src: /src/libtorrent/test/setup_transfer.cpp:376,1
    - Dst: assign
      Src: /src/libtorrent/test/setup_transfer.cpp:379,1
    - Dst: boost::system::system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:379,1
    - Dst: fclose
      Src: /src/libtorrent/test/setup_transfer.cpp:380,1
    - Dst: fclose
      Src: /src/libtorrent/test/setup_transfer.cpp:384,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 4
    argNames:
    - ' filename'
    - ' v'
    - ' ec'
    - limit
    argTypes:
    - std::string
    - std::vector<char>
    - lt::error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 389
    functionName: load_file
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 2
    functionsReached:
    - fseek
    - c_str
    - static_cast<std::size_t>
    - ftell
    - fread
    - resize
    - assign
    - clear
    - fopen
    - size
    - boost::system::system_category
    - fclose
    linkageType: ''
    returnType: int
    signature: "int load_file(std::string const& filename, std::vector<char>& v\n\t,
      lt::error_code& ec, int limit)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:395,1
    - Dst: get_torrents
      Src: /src/libtorrent/test/setup_transfer.cpp:395,1
    - Dst: pop_alerts
      Src: /src/libtorrent/test/setup_transfer.cpp:397,1
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:400,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:402,1
    - Dst: time_to_string
      Src: /src/libtorrent/test/setup_transfer.cpp:402,1
    - Dst: timestamp
      Src: /src/libtorrent/test/setup_transfer.cpp:402,1
    - Dst: what
      Src: /src/libtorrent/test/setup_transfer.cpp:403,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:404,1
    - Dst: peer_disconnected_alert*::message
      Src: /src/libtorrent/test/setup_transfer.cpp:404,1
    - Dst: type
      Src: /src/libtorrent/test/setup_transfer.cpp:406,1
    - Dst: fprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:408,1
    - Dst: message
      Src: /src/libtorrent/test/setup_transfer.cpp:408,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:409,1
    - Dst: type
      Src: /src/libtorrent/test/setup_transfer.cpp:411,1
    - Dst: fprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:413,1
    - Dst: message
      Src: /src/libtorrent/test/setup_transfer.cpp:413,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:414,1
    - Dst: should_print
      Src: /src/libtorrent/test/setup_transfer.cpp:416,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:418,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:418,1
    - Dst: what
      Src: /src/libtorrent/test/setup_transfer.cpp:418,1
    - Dst: message
      Src: /src/libtorrent/test/setup_transfer.cpp:418,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:421,1
    - Dst: alert_cast<fastresume_rejected_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:421,1
    - Dst: alert_cast<invalid_request_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:423,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:426,1
    - Dst: invalid_request_alert*::message
      Src: /src/libtorrent/test/setup_transfer.cpp:426,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:427,1
    - Dst: std::any_of
      Src: /src/libtorrent/test/setup_transfer.cpp:430,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/setup_transfer.cpp:430,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/setup_transfer.cpp:430,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 6
    argNames:
    - ' ses'
    - name
    - allow_no_torrents
    - allow_failed_fastresume
    - predicate
    - no_output
    argTypes:
    - lt::session
    - char*
    - bool
    - bool
    - std::function<bool(lt::alert const*)>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 431
    functionName: print_alerts
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 23
    functionsReached:
    - std::vector::begin
    - timestamp
    - peer_disconnected_alert*::message
    - fprintf
    - alert_cast<fastresume_rejected_alert>
    - std::vector::end
    - time_to_string
    - get_torrents
    - message
    - print_endpoint
    - should_print
    - type
    - alert_cast<peer_disconnected_alert>
    - std::printf
    - TEST_CHECK
    - alert_cast<invalid_request_alert>
    - time_now_string
    - std::any_of
    - what
    - invalid_request_alert*::message
    - pop_alerts
    linkageType: ''
    returnType: bool
    signature: "bool print_alerts(lt::session& ses, char const* name\n\t, bool allow_no_torrents,
      bool allow_failed_fastresume\n\t, std::function<bool(lt::alert const*)> predicate,
      bool no_output)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_alerts
      Src: /src/libtorrent/test/setup_transfer.cpp:439,1
    - Dst: alert_cast<listen_failed_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:440,1
    - Dst: alert_cast<listen_succeeded_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:440,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/setup_transfer.cpp:443,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/setup_transfer.cpp:443,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' ses'
    - name
    argTypes:
    - lt::session
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 447
    functionName: wait_for_listen
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 4
    functionsReached:
    - alert_cast<listen_succeeded_alert>
    - print_alerts
    - wait_for_alert
    - milliseconds
    - alert_cast<listen_failed_alert>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void wait_for_listen(lt::session& ses, char const* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/setup_transfer.cpp:451,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/setup_transfer.cpp:456,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:459,1
    - Dst: time_now
      Src: /src/libtorrent/test/setup_transfer.cpp:463,1
    - Dst: seconds
      Src: /src/libtorrent/test/setup_transfer.cpp:463,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/setup_transfer.cpp:464,1
    - Dst: seconds
      Src: /src/libtorrent/test/setup_transfer.cpp:464,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:468,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/setup_transfer.cpp:470,1
    - Dst: time_now
      Src: /src/libtorrent/test/setup_transfer.cpp:470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ' ses'
    - name
    argTypes:
    - lt::session
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 472
    functionName: wait_for_downloading
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 3
    functionsReached:
    - time_now
    - print_alerts
    - seconds
    - wait_for_alert
    - total_milliseconds
    - std::printf
    - alert_cast<state_changed_alert>
    linkageType: ''
    returnType: void
    signature: void wait_for_downloading(lt::session& ses, char const* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/setup_transfer.cpp:476,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/setup_transfer.cpp:481,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/test/setup_transfer.cpp:484,1
    - Dst: time_now
      Src: /src/libtorrent/test/setup_transfer.cpp:488,1
    - Dst: seconds
      Src: /src/libtorrent/test/setup_transfer.cpp:488,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/setup_transfer.cpp:489,1
    - Dst: seconds
      Src: /src/libtorrent/test/setup_transfer.cpp:489,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:493,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/setup_transfer.cpp:495,1
    - Dst: time_now
      Src: /src/libtorrent/test/setup_transfer.cpp:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ' ses'
    - name
    argTypes:
    - lt::session
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 497
    functionName: wait_for_seeding
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 2
    functionsReached:
    - time_now
    - print_alerts
    - seconds
    - wait_for_alert
    - total_milliseconds
    - std::printf
    - alert_cast<state_changed_alert>
    linkageType: ''
    returnType: void
    signature: void wait_for_seeding(lt::session& ses, char const* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:506,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/test/setup_transfer.cpp:506,1
    - Dst: lt::torrent_status*::errc::message
      Src: /src/libtorrent/test/setup_transfer.cpp:512,1
    - Dst: c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:512,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:515,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/test/setup_transfer.cpp:515,1
    - Dst: lt::torrent_status*::errc::message
      Src: /src/libtorrent/test/setup_transfer.cpp:521,1
    - Dst: c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:521,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:523,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/test/setup_transfer.cpp:523,1
    - Dst: lt::torrent_status*::errc::message
      Src: /src/libtorrent/test/setup_transfer.cpp:529,1
    - Dst: c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:529,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - time
    - st1
    - st2
    - st3
    argTypes:
    - float
    - lt::torrent_status*
    - lt::torrent_status*
    - lt::torrent_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 532
    functionName: print_ses_rate
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 5
    functionsReached:
    - c_str
    - static_cast<double>
    - std::printf
    - lt::torrent_status*::errc::message
    linkageType: ''
    returnType: void
    signature: "void print_ses_rate(float const time\n\t, lt::torrent_status const*
      st1\n\t, lt::torrent_status const* st2\n\t, lt::torrent_status const* st3)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:547,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:549,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/test/setup_transfer.cpp:554,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/test/setup_transfer.cpp:555,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/test/setup_transfer.cpp:556,1
    - Dst: CreateProcessA
      Src: /src/libtorrent/test/setup_transfer.cpp:557,1
    - Dst: GetLastError
      Src: /src/libtorrent/test/setup_transfer.cpp:562,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:563,1
    - Dst: error_code
      Src: /src/libtorrent/test/setup_transfer.cpp:563,1
    - Dst: system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:563,1
    - Dst: QueryFullProcessImageNameA
      Src: /src/libtorrent/test/setup_transfer.cpp:568,1
    - Dst: GetLastError
      Src: /src/libtorrent/test/setup_transfer.cpp:570,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:571,1
    - Dst: error_code
      Src: /src/libtorrent/test/setup_transfer.cpp:572,1
    - Dst: system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:572,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:576,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:584,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:593,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:596,1
    - Dst: posix_spawnp
      Src: /src/libtorrent/test/setup_transfer.cpp:598,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:601,1
    - Dst: strerror
      Src: /src/libtorrent/test/setup_transfer.cpp:601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 606
    functionName: async_run
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - std::vector::push_back
    - error_code
    - std::snprintf
    - strerror
    - GetStdHandle
    - CreateProcessA
    - QueryFullProcessImageNameA
    - GetLastError
    - posix_spawnp
    - std::printf
    linkageType: ''
    returnType: pid_type
    signature: pid_type async_run(char const* cmdline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenProcess
      Src: /src/libtorrent/test/setup_transfer.cpp:611,1
    - Dst: TerminateProcess
      Src: /src/libtorrent/test/setup_transfer.cpp:613,1
    - Dst: WaitForSingleObject
      Src: /src/libtorrent/test/setup_transfer.cpp:614,1
    - Dst: CloseHandle
      Src: /src/libtorrent/test/setup_transfer.cpp:615,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:617,1
    - Dst: kill
      Src: /src/libtorrent/test/setup_transfer.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - pid_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 620
    functionName: stop_process
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - TerminateProcess
    - kill
    - OpenProcess
    - std::printf
    - WaitForSingleObject
    linkageType: ''
    returnType: void
    signature: void stop_process(pid_type p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:547,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:549,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/test/setup_transfer.cpp:554,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/test/setup_transfer.cpp:555,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/test/setup_transfer.cpp:556,1
    - Dst: CreateProcessA
      Src: /src/libtorrent/test/setup_transfer.cpp:557,1
    - Dst: GetLastError
      Src: /src/libtorrent/test/setup_transfer.cpp:562,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:563,1
    - Dst: error_code
      Src: /src/libtorrent/test/setup_transfer.cpp:563,1
    - Dst: system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:563,1
    - Dst: QueryFullProcessImageNameA
      Src: /src/libtorrent/test/setup_transfer.cpp:568,1
    - Dst: GetLastError
      Src: /src/libtorrent/test/setup_transfer.cpp:570,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:571,1
    - Dst: error_code
      Src: /src/libtorrent/test/setup_transfer.cpp:572,1
    - Dst: system_category
      Src: /src/libtorrent/test/setup_transfer.cpp:572,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:576,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:584,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:593,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:596,1
    - Dst: posix_spawnp
      Src: /src/libtorrent/test/setup_transfer.cpp:598,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:601,1
    - Dst: strerror
      Src: /src/libtorrent/test/setup_transfer.cpp:601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 606
    functionName: async_run
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - std::vector::push_back
    - error_code
    - std::snprintf
    - strerror
    - GetStdHandle
    - CreateProcessA
    - QueryFullProcessImageNameA
    - GetLastError
    - posix_spawnp
    - std::printf
    linkageType: ''
    returnType: pid_type
    signature: pid_type async_run(char const* cmdline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenProcess
      Src: /src/libtorrent/test/setup_transfer.cpp:611,1
    - Dst: TerminateProcess
      Src: /src/libtorrent/test/setup_transfer.cpp:613,1
    - Dst: WaitForSingleObject
      Src: /src/libtorrent/test/setup_transfer.cpp:614,1
    - Dst: CloseHandle
      Src: /src/libtorrent/test/setup_transfer.cpp:615,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:617,1
    - Dst: kill
      Src: /src/libtorrent/test/setup_transfer.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - pid_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 620
    functionName: stop_process
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - TerminateProcess
    - kill
    - OpenProcess
    - std::printf
    - WaitForSingleObject
    linkageType: ''
    returnType: void
    signature: void stop_process(pid_type p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/test/setup_transfer.cpp:635,1
    - Dst: end
      Src: /src/libtorrent/test/setup_transfer.cpp:637,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:639,1
    - Dst: stop_process
      Src: /src/libtorrent/test/setup_transfer.cpp:641,1
    - Dst: erase
      Src: /src/libtorrent/test/setup_transfer.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 643
    functionName: stop_proxy
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 1
    functionsReached:
    - stop_process
    - erase
    - end
    - find
    - std::printf
    linkageType: ''
    returnType: void
    signature: void stop_proxy(int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/test/setup_transfer.cpp:648,1
    - Dst: stop_process
      Src: /src/libtorrent/test/setup_transfer.cpp:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 653
    functionName: stop_all_proxies
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - stop_process
    - clear
    linkageType: ''
    returnType: void
    signature: void stop_all_proxies()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 658
    functionName: wait_for_port
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wait_for_port(int)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tcp::socket::open
      Src: /src/libtorrent/test/setup_transfer.cpp:669,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/setup_transfer.cpp:669,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:672,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/setup_transfer.cpp:673,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/setup_transfer.cpp:673,1
    - Dst: tcp::socket::connect
      Src: /src/libtorrent/test/setup_transfer.cpp:676,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:676,1
    - Dst: make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:676,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/setup_transfer.cpp:677,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:682,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/setup_transfer.cpp:687,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/setup_transfer.cpp:687,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:692,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/setup_transfer.cpp:693,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/setup_transfer.cpp:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 698
    functionName: wait_for_port
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - rand_v4
    - std::uint16_t
    - std::this_thread::sleep_for
    - libtorrent::total_milliseconds
    - error_code::message
    - local_endpoint
    - make_address
    - tcp::socket::connect
    - std::printf
    - tcp::socket::open
    linkageType: ''
    returnType: void
    signature: void wait_for_port(int const port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariable
      Src: /src/libtorrent/test/setup_transfer.cpp:706,1
    - Dst: GetEnvironmentVariable
      Src: /src/libtorrent/test/setup_transfer.cpp:710,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:710,1
    - Dst: DWORD
      Src: /src/libtorrent/test/setup_transfer.cpp:710,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:710,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:711,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/setup_transfer.cpp:711,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:711,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:711,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:714,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 717
    functionName: get_python
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::emplace_back
    - GetEnvironmentVariable
    - DWORD
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_python()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::int64_t
      Src: /src/libtorrent/test/setup_transfer.cpp:721,1
    - Dst: ::getpid
      Src: /src/libtorrent/test/setup_transfer.cpp:721,1
    - Dst: std::rand
      Src: /src/libtorrent/test/setup_transfer.cpp:721,1
    - Dst: tcp::socket::open
      Src: /src/libtorrent/test/setup_transfer.cpp:729,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/setup_transfer.cpp:729,1
    - Dst: tcp::socket::bind
      Src: /src/libtorrent/test/setup_transfer.cpp:731,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:731,1
    - Dst: make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:731,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/setup_transfer.cpp:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 735
    functionName: find_available_port
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - std::rand
    - std::uint16_t
    - std::int64_t
    - local_endpoint
    - make_address
    - tcp::socket::bind
    - tcp::socket::open
    - ::getpid
    linkageType: ''
    returnType: int
    signature: int find_available_port()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 658
    functionName: wait_for_port
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wait_for_port(int)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tcp::socket::open
      Src: /src/libtorrent/test/setup_transfer.cpp:669,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/setup_transfer.cpp:669,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:672,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/setup_transfer.cpp:673,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/setup_transfer.cpp:673,1
    - Dst: tcp::socket::connect
      Src: /src/libtorrent/test/setup_transfer.cpp:676,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:676,1
    - Dst: make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:676,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/setup_transfer.cpp:677,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:682,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/setup_transfer.cpp:687,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/setup_transfer.cpp:687,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:692,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/setup_transfer.cpp:693,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/setup_transfer.cpp:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 698
    functionName: wait_for_port
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - rand_v4
    - std::uint16_t
    - std::this_thread::sleep_for
    - libtorrent::total_milliseconds
    - error_code::message
    - local_endpoint
    - make_address
    - tcp::socket::connect
    - std::printf
    - tcp::socket::open
    linkageType: ''
    returnType: void
    signature: void wait_for_port(int const port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariable
      Src: /src/libtorrent/test/setup_transfer.cpp:706,1
    - Dst: GetEnvironmentVariable
      Src: /src/libtorrent/test/setup_transfer.cpp:710,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:710,1
    - Dst: DWORD
      Src: /src/libtorrent/test/setup_transfer.cpp:710,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:710,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:711,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/setup_transfer.cpp:711,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:711,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:711,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:714,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/setup_transfer.cpp:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 717
    functionName: get_python
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::emplace_back
    - GetEnvironmentVariable
    - DWORD
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_python()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::int64_t
      Src: /src/libtorrent/test/setup_transfer.cpp:721,1
    - Dst: ::getpid
      Src: /src/libtorrent/test/setup_transfer.cpp:721,1
    - Dst: std::rand
      Src: /src/libtorrent/test/setup_transfer.cpp:721,1
    - Dst: tcp::socket::open
      Src: /src/libtorrent/test/setup_transfer.cpp:729,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/setup_transfer.cpp:729,1
    - Dst: tcp::socket::bind
      Src: /src/libtorrent/test/setup_transfer.cpp:731,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:731,1
    - Dst: make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:731,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/setup_transfer.cpp:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 735
    functionName: find_available_port
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - std::rand
    - std::uint16_t
    - std::int64_t
    - local_endpoint
    - make_address
    - tcp::socket::bind
    - tcp::socket::open
    - ::getpid
    linkageType: ''
    returnType: int
    signature: int find_available_port()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/test/setup_transfer.cpp:743,1
    - Dst: end
      Src: /src/libtorrent/test/setup_transfer.cpp:744,1
    - Dst: find_available_port
      Src: /src/libtorrent/test/setup_transfer.cpp:749,1
    - Dst: get_python
      Src: /src/libtorrent/test/setup_transfer.cpp:782,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:786,1
    - Dst: c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:786,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:788,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:788,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:789,1
    - Dst: async_run
      Src: /src/libtorrent/test/setup_transfer.cpp:790,1
    - Dst: insert
      Src: /src/libtorrent/test/setup_transfer.cpp:793,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/setup_transfer.cpp:793,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:794,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:794,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/setup_transfer.cpp:795,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/setup_transfer.cpp:795,1
    - Dst: wait_for_port
      Src: /src/libtorrent/test/setup_transfer.cpp:796,1
    - Dst: abort
      Src: /src/libtorrent/test/setup_transfer.cpp:799,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - proxy_type
    - require_host
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 800
    functionName: start_proxy
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 1
    functionsReached:
    - begin
    - c_str
    - async_run
    - std::make_pair
    - insert
    - std::snprintf
    - end
    - std::this_thread::sleep_for
    - libtorrent::total_milliseconds
    - time_now_string
    - abort
    - wait_for_port
    - find_available_port
    - std::printf
    - get_python
    linkageType: ''
    returnType: int
    signature: int start_proxy(int proxy_type, bool const require_host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/setup_transfer.cpp:813,1
    - Dst: rand
      Src: /src/libtorrent/test/setup_transfer.cpp:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - idx
    - piece_size
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 816
    functionName: generate_piece
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 2
    functionsReached:
    - rand
    - static_cast<char>
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> generate_piece(piece_index_t const idx, int const
      piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<const int>::size
      Src: /src/libtorrent/test/setup_transfer.cpp:823,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:826,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:828,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:828,1
    - Dst: combine_path
      Src: /src/libtorrent/test/setup_transfer.cpp:830,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/setup_transfer.cpp:832,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/setup_transfer.cpp:835,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/setup_transfer.cpp:836,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/setup_transfer.cpp:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - file_sizes
    - piece_size
    - base_name
    argTypes:
    - span<const int>
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 839
    functionName: make_file_storage
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 2
    functionsReached:
    - file_storage::set_piece_length
    - combine_path
    - span<const int>::size
    - file_storage::add_file
    - std::snprintf
    - std::string::c_str
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: lt::file_storage
    signature: "lt::file_storage make_file_storage(span<const int> const file_sizes\n\t,
      int const piece_size, std::string base_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_file_storage
      Src: /src/libtorrent/test/setup_transfer.cpp:845,1
    - Dst: make_torrent
      Src: /src/libtorrent/test/setup_transfer.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file_sizes
    - piece_size
    argTypes:
    - span<const int>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 847
    functionName: make_torrent
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 3
    functionsReached:
    - make_file_storage
    - make_torrent
    linkageType: ''
    returnType: std::shared_ptr<lt::torrent_info>
    signature: "std::shared_ptr<lt::torrent_info> make_torrent(span<const int> const
      file_sizes\n\t, int const piece_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_length
      Src: /src/libtorrent/test/setup_transfer.cpp:851,1
    - Dst: piece_range
      Src: /src/libtorrent/test/setup_transfer.cpp:853,1
    - Dst: generate_piece
      Src: /src/libtorrent/test/setup_transfer.cpp:855,1
    - Dst: piece_size
      Src: /src/libtorrent/test/setup_transfer.cpp:855,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/setup_transfer.cpp:856,1
    - Dst: hasher
      Src: /src/libtorrent/test/setup_transfer.cpp:856,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/setup_transfer.cpp:858,1
    - Dst: piece_length
      Src: /src/libtorrent/test/setup_transfer.cpp:858,1
    - Dst: piece_length
      Src: /src/libtorrent/test/setup_transfer.cpp:860,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:861,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/test/setup_transfer.cpp:863,1
    - Dst: hasher256
      Src: /src/libtorrent/test/setup_transfer.cpp:864,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:864,1
    - Dst: std::min
      Src: /src/libtorrent/test/setup_transfer.cpp:864,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:864,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/test/setup_transfer.cpp:866,1
    - Dst: piece_length
      Src: /src/libtorrent/test/setup_transfer.cpp:866,1
    - Dst: file_index_at_piece
      Src: /src/libtorrent/test/setup_transfer.cpp:867,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/setup_transfer.cpp:868,1
    - Dst: piece_index_at_file
      Src: /src/libtorrent/test/setup_transfer.cpp:868,1
    - Dst: bencode
      Src: /src/libtorrent/test/setup_transfer.cpp:872,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/setup_transfer.cpp:872,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/setup_transfer.cpp:872,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/setup_transfer.cpp:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - lt::file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 874
    functionName: make_torrent
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 3
    functionsReached:
    - lt::create_torrent::set_hash
    - std::vector::size
    - piece_index_at_file
    - std::min
    - generate_piece
    - file_index_at_piece
    - piece_range
    - merkle_fill_tree
    - std::make_shared<torrent_info>
    - hasher
    - hasher256
    - aux::vector::end_index
    - lt::create_torrent::set_hash2
    - merkle_num_nodes
    - bencode
    - std::vector::data
    - piece_length
    - std::back_inserter
    - lt::create_torrent::generate
    - piece_size
    linkageType: ''
    returnType: std::shared_ptr<lt::torrent_info>
    signature: std::shared_ptr<lt::torrent_info> make_torrent(lt::file_storage& fs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<const int>::size
      Src: /src/libtorrent/test/setup_transfer.cpp:881,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/setup_transfer.cpp:883,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:885,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:887,1
    - Dst: combine_path
      Src: /src/libtorrent/test/setup_transfer.cpp:889,1
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/test/setup_transfer.cpp:890,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:891,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:892,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/setup_transfer.cpp:892,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/setup_transfer.cpp:892,1
    - Dst: combine_path
      Src: /src/libtorrent/test/setup_transfer.cpp:894,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:895,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:895,1
    - Dst: file_storage*::add_file
      Src: /src/libtorrent/test/setup_transfer.cpp:898,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:899,1
    - Dst: std::min
      Src: /src/libtorrent/test/setup_transfer.cpp:902,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/setup_transfer.cpp:902,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/test/setup_transfer.cpp:902,1
    - Dst: ofstream::write
      Src: /src/libtorrent/test/setup_transfer.cpp:903,1
    - Dst: aux::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ' path'
    - file_sizes
    - fs
    argTypes:
    - std::string
    - span<const int>
    - file_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 907
    functionName: create_random_files
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 5
    functionsReached:
    - error_code::value
    - static_cast<int>
    - aux::vector::size
    - file_storage*::add_file
    - ofstream::write
    - aux::vector::data
    - combine_path
    - span<const int>::size
    - std::snprintf
    - libtorrent::create_directories
    - std::string::c_str
    - std::min
    - error_code::message
    - libtorrent::aux::random_bytes
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void create_random_files(std::string const& path, span<const int>
      file_sizes\n\t, file_storage* fs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/setup_transfer.cpp:920,1
    - Dst: lt::create_torrent::add_tracker
      Src: /src/libtorrent/test/setup_transfer.cpp:924,1
    - Dst: lt::create_torrent::add_tracker
      Src: /src/libtorrent/test/setup_transfer.cpp:925,1
    - Dst: std::string::empty
      Src: /src/libtorrent/test/setup_transfer.cpp:928,1
    - Dst: load_file
      Src: /src/libtorrent/test/setup_transfer.cpp:932,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:935,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/setup_transfer.cpp:935,1
    - Dst: std::copy
      Src: /src/libtorrent/test/setup_transfer.cpp:940,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/setup_transfer.cpp:940,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/setup_transfer.cpp:940,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/setup_transfer.cpp:940,1
    - Dst: lt::create_torrent::set_root_cert
      Src: /src/libtorrent/test/setup_transfer.cpp:941,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/test/setup_transfer.cpp:946,1
    - Dst: hasher
      Src: /src/libtorrent/test/setup_transfer.cpp:952,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/setup_transfer.cpp:953,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/setup_transfer.cpp:954,1
    - Dst: hasher256
      Src: /src/libtorrent/test/setup_transfer.cpp:963,1
    - Dst: span<char>
      Src: /src/libtorrent/test/setup_transfer.cpp:963,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/test/setup_transfer.cpp:964,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/setup_transfer.cpp:964,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/test/setup_transfer.cpp:966,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/setup_transfer.cpp:966,1
    - Dst: lt::create_torrent::end_piece
      Src: /src/libtorrent/test/setup_transfer.cpp:968,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/setup_transfer.cpp:969,1
    - Dst: std::ostream*::write
      Src: /src/libtorrent/test/setup_transfer.cpp:976,1
    - Dst: aux::vector::data
      Src: /src/libtorrent/test/setup_transfer.cpp:976,1
    - Dst: std::min
      Src: /src/libtorrent/test/setup_transfer.cpp:976,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/test/setup_transfer.cpp:976,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/test/setup_transfer.cpp:977,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/setup_transfer.cpp:981,1
    - Dst: bencode
      Src: /src/libtorrent/test/setup_transfer.cpp:984,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/setup_transfer.cpp:984,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/setup_transfer.cpp:986,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 7
    argNames:
    - file
    - name
    - piece_size
    - num_pieces
    - add_tracker
    - flags
    - ssl_certificate
    argTypes:
    - std::ostream*
    - char*
    - int
    - int
    - bool
    - lt::create_flags_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 987
    functionName: create_torrent
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 32
    functionsReached:
    - lt::create_torrent::set_hash
    - aux::vector::data
    - std::ostream*::write
    - std::vector::begin
    - std::min
    - std::vector::end
    - lt::create_torrent::set_root_cert
    - span<char>
    - merkle_fill_tree
    - std::make_shared<torrent_info>
    - hasher
    - file_storage::add_file
    - hasher256
    - std::copy
    - load_file
    - error_code::message
    - aux::vector::end_index
    - lt::create_torrent::set_hash2
    - std::printf
    - lt::create_torrent::add_tracker
    - merkle_num_leafs
    - bencode
    - file_storage::piece_range
    - std::string::empty
    - std::back_inserter
    - lt::create_torrent::end_piece
    - lt::create_torrent::generate
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: "std::shared_ptr<torrent_info> create_torrent(std::ostream* file\n\t,
      char const* name, int piece_size\n\t, int num_pieces, bool add_tracker, lt::create_flags_t
      const flags\n\t, std::string ssl_certificate)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/setup_transfer.cpp:997,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/setup_transfer.cpp:998,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/setup_transfer.cpp:1003,1
    - Dst: lt::session*::apply_settings
      Src: /src/libtorrent/test/setup_transfer.cpp:1004,1
    - Dst: lt::session*::apply_settings
      Src: /src/libtorrent/test/setup_transfer.cpp:1005,1
    - Dst: lt::session*::apply_settings
      Src: /src/libtorrent/test/setup_transfer.cpp:1006,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/setup_transfer.cpp:1012,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/setup_transfer.cpp:1012,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/setup_transfer.cpp:1013,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/test/setup_transfer.cpp:1014,1
    - Dst: lt::session*::set_peer_class_filter
      Src: /src/libtorrent/test/setup_transfer.cpp:1015,1
    - Dst: lt::session*::set_peer_class_filter
      Src: /src/libtorrent/test/setup_transfer.cpp:1016,1
    - Dst: lt::session*::set_peer_class_filter
      Src: /src/libtorrent/test/setup_transfer.cpp:1017,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/setup_transfer.cpp:1020,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/setup_transfer.cpp:1021,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/setup_transfer.cpp:1022,1
    - Dst: lt::session*::apply_settings
      Src: /src/libtorrent/test/setup_transfer.cpp:1023,1
    - Dst: lt::session*::apply_settings
      Src: /src/libtorrent/test/setup_transfer.cpp:1024,1
    - Dst: lt::session*::apply_settings
      Src: /src/libtorrent/test/setup_transfer.cpp:1027,1
    - Dst: create_directory
      Src: /src/libtorrent/test/setup_transfer.cpp:1034,1
    - Dst: combine_path
      Src: /src/libtorrent/test/setup_transfer.cpp:1035,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:1036,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/setup_transfer.cpp:1037,1
    - Dst: ofstream::close
      Src: /src/libtorrent/test/setup_transfer.cpp:1038,1
    - Dst: remove_all
      Src: /src/libtorrent/test/setup_transfer.cpp:1041,1
    - Dst: combine_path
      Src: /src/libtorrent/test/setup_transfer.cpp:1041,1
    - Dst: remove_all
      Src: /src/libtorrent/test/setup_transfer.cpp:1042,1
    - Dst: combine_path
      Src: /src/libtorrent/test/setup_transfer.cpp:1042,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1044,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/setup_transfer.cpp:1044,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/setup_transfer.cpp:1044,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:1044,1
    - Dst: lt::session*::add_torrent
      Src: /src/libtorrent/test/setup_transfer.cpp:1062,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1065,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/setup_transfer.cpp:1065,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/setup_transfer.cpp:1066,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/setup_transfer.cpp:1066,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/setup_transfer.cpp:1066,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/setup_transfer.cpp:1066,1
    - Dst: torrent_handle::set_flags
      Src: /src/libtorrent/test/setup_transfer.cpp:1070,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:1076,1
    - Dst: lt::session*::get_torrents
      Src: /src/libtorrent/test/setup_transfer.cpp:1076,1
    - Dst: lt::session*::add_torrent
      Src: /src/libtorrent/test/setup_transfer.cpp:1085,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:1086,1
    - Dst: lt::session*::get_torrents
      Src: /src/libtorrent/test/setup_transfer.cpp:1086,1
    - Dst: add_torrent_params::ti::reset
      Src: /src/libtorrent/test/setup_transfer.cpp:1091,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/setup_transfer.cpp:1092,1
    - Dst: lt::session*::add_torrent
      Src: /src/libtorrent/test/setup_transfer.cpp:1104,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:1105,1
    - Dst: lt::session*::get_torrents
      Src: /src/libtorrent/test/setup_transfer.cpp:1105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/setup_transfer.cpp:1107,1
    - Dst: lt::session*::get_torrents
      Src: /src/libtorrent/test/setup_transfer.cpp:1107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/setup_transfer.cpp:1108,1
    - Dst: lt::session*::get_torrents
      Src: /src/libtorrent/test/setup_transfer.cpp:1108,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/setup_transfer.cpp:1114,1
    - Dst: lt::session*::ssl_listen_port
      Src: /src/libtorrent/test/setup_transfer.cpp:1119,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1120,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:1120,1
    - Dst: lt::session*::listen_port
      Src: /src/libtorrent/test/setup_transfer.cpp:1125,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1126,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:1126,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1129,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:1130,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/setup_transfer.cpp:1131,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:1131,1
    - Dst: make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:1131,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/setup_transfer.cpp:1132,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/setup_transfer.cpp:1139,1
    - Dst: lt::session*::ssl_listen_port
      Src: /src/libtorrent/test/setup_transfer.cpp:1145,1
    - Dst: lt::session*::ssl_listen_port
      Src: /src/libtorrent/test/setup_transfer.cpp:1146,1
    - Dst: lt::session*::listen_port
      Src: /src/libtorrent/test/setup_transfer.cpp:1149,1
    - Dst: lt::session*::listen_port
      Src: /src/libtorrent/test/setup_transfer.cpp:1150,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1152,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/setup_transfer.cpp:1153,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:1153,1
    - Dst: make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:1154,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/setup_transfer.cpp:1154,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1155,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/setup_transfer.cpp:1156,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/setup_transfer.cpp:1156,1
    - Dst: make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:1157,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/setup_transfer.cpp:1158,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/setup_transfer.cpp:1162,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 102
    argCount: 15
    argNames:
    - ses1
    - ses2
    - ses3
    - clear_files
    - use_metadata_transfer
    - connect_peers
    - suffix
    - piece_size
    - torrent
    - super_seeding
    - p
    - stop_lsd
    - use_ssl_ports
    - torrent2
    - flags
    argTypes:
    - lt::session*
    - lt::session*
    - lt::session*
    - bool
    - bool
    - bool
    - std::string
    - int
    - std::shared_ptr<torrent_info>*
    - bool
    - add_torrent_params*
    - bool
    - bool
    - std::shared_ptr<torrent_info>*
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1163
    functionName: setup_transfer
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 6
    functionsReached:
    - make_address_v4
    - lt::session*::set_peer_class_filter
    - lt::session*::add_torrent
    - wait_for_downloading
    - torrent_handle::connect_peer
    - std::make_tuple
    - ofstream::close
    - std::uint16_t
    - static_cast<std::uint32_t>
    - ip_filter::add_rule
    - error_code::message
    - make_address
    - lt::session*::listen_port
    - settings_pack::set_bool
    - lt::session*::ssl_listen_port
    - std::printf
    - libtorrent::aux::to_hex
    - TORRENT_ASSERT
    - create_directory
    - torrent_handle::set_flags
    - lt::session*::get_torrents
    - add_torrent_params::ti::reset
    - TEST_CHECK
    - lt::session*::apply_settings
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - std::shared_ptr::info_hashes
    - std::string::c_str
    - torrent_handle
    - time_now_string
    - local_endpoint
    - settings_pack::set_int
    linkageType: ''
    returnType: std::tuple<torrent_handle, torrent_handle, torrent_handle>
    signature: "std::tuple<torrent_handle, torrent_handle, torrent_handle> setup_transfer(lt::session*
      ses1, lt::session* ses2, lt::session* ses3\n\t, bool clear_files, bool use_metadata_transfer,
      bool connect_peers\n\t, std::string suffix, int piece_size\n\t, std::shared_ptr<torrent_info>*
      torrent, bool super_seeding\n\t, add_torrent_params const* p, bool stop_lsd,
      bool use_ssl_ports\n\t, std::shared_ptr<torrent_info>* torrent2, create_flags_t
      const flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_available_port
      Src: /src/libtorrent/test/setup_transfer.cpp:1171,1
    - Dst: get_python
      Src: /src/libtorrent/test/setup_transfer.cpp:1173,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/setup_transfer.cpp:1178,1
    - Dst: c_str
      Src: /src/libtorrent/test/setup_transfer.cpp:1179,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1181,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:1181,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1183,1
    - Dst: async_run
      Src: /src/libtorrent/test/setup_transfer.cpp:1184,1
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1187,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/setup_transfer.cpp:1187,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/setup_transfer.cpp:1188,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/setup_transfer.cpp:1188,1
    - Dst: wait_for_port
      Src: /src/libtorrent/test/setup_transfer.cpp:1189,1
    - Dst: abort
      Src: /src/libtorrent/test/setup_transfer.cpp:1192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ssl
    - chunked_encoding
    - keepalive
    - min_interval
    argTypes:
    - bool
    - bool
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1169
    functionDepth: 3
    functionLinenumber: 1169
    functionLinenumberEnd: 1193
    functionName: start_web_server
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 6
    functionsReached:
    - async_run
    - c_str
    - std::this_thread::sleep_for
    - std::snprintf
    - libtorrent::total_milliseconds
    - time_now_string
    - abort
    - wait_for_port
    - find_available_port
    - std::printf
    - get_python
    linkageType: ''
    returnType: int
    signature: int start_web_server(bool ssl, bool chunked_encoding, bool keepalive,
      int min_interval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/setup_transfer.cpp:1198,1
    - Dst: stop_process
      Src: /src/libtorrent/test/setup_transfer.cpp:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1201
    functionName: stop_web_server
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 4
    functionsReached:
    - std::printf
    - stop_process
    linkageType: ''
    returnType: void
    signature: void stop_web_server()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1209
    functionName: ep
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 14
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint ep(char const* ip, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1217
    functionName: uep
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 4
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint uep(char const* ip, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::make_address
      Src: /src/libtorrent/test/setup_transfer.cpp:1222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1225
    functionName: addr
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 11
    functionsReached:
    - lt::make_address
    - TEST_CHECK
    linkageType: ''
    returnType: lt::address
    signature: lt::address addr(char const* ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/test/setup_transfer.cpp:1230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1233
    functionName: addr4
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 6
    functionsReached:
    - TEST_CHECK
    - lt::make_address_v4
    linkageType: ''
    returnType: lt::address_v4
    signature: lt::address_v4 addr4(char const* ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::make_address_v6
      Src: /src/libtorrent/test/setup_transfer.cpp:1238,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/setup_transfer.cpp:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1241
    functionName: addr6
    functionSourceFile: /src/libtorrent/test/setup_transfer.cpp
    functionUses: 3
    functionsReached:
    - TEST_CHECK
    - lt::make_address_v6
    linkageType: ''
    returnType: lt::address_v6
    signature: lt::address_v6 addr6(char const* ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:44,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:45,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_io.cpp:46,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:47,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:47,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:48,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - std::array::data
    - write_uint8
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_uint8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:55,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:56,1
    - Dst: write_uint16
      Src: /src/libtorrent/test/test_io.cpp:57,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:58,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:58,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:59,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:60,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - std::array::data
    - write_uint16
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_uint16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:67,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:68,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_io.cpp:69,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:70,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:70,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:71,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:72,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:73,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:74,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - write_uint32
    - std::array::fill
    - std::array::data
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_uint32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:81,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:82,1
    - Dst: write_int32
      Src: /src/libtorrent/test/test_io.cpp:83,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:84,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:84,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:86,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:87,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:88,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - std::array::data
    - TEST_CHECK
    - write_int32
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_int32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:95,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:96,1
    - Dst: write_uint64
      Src: /src/libtorrent/test/test_io.cpp:97,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:98,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:99,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:100,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:101,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:102,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:104,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:105,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::array::fill
    - std::array::data
    - write_uint64
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_uint64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:113,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:116,1
    - Dst: read_uint8
      Src: /src/libtorrent/test/test_io.cpp:116,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:117,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - read_uint8
    - std::array::fill
    - std::array::data
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_uint8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:123,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:127,1
    - Dst: read_uint16
      Src: /src/libtorrent/test/test_io.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:128,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - read_uint16
    - std::array::fill
    - std::array::data
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_uint16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:134,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:140,1
    - Dst: read_uint32
      Src: /src/libtorrent/test/test_io.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:141,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - std::array::data
    - TEST_CHECK
    - read_uint32
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_uint32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:147,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:156,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:157,1
    - Dst: read_uint64
      Src: /src/libtorrent/test/test_io.cpp:157,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:158,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - read_uint64
    - std::array::fill
    - std::array::data
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_uint64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:164,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:170,1
    - Dst: read_int32
      Src: /src/libtorrent/test/test_io.cpp:170,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:171,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_io.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - read_int32
    - std::array::fill
    - std::array::data
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_int32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:177,1
    - Dst: write_uint8
      Src: /src/libtorrent/test/test_io.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:180,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_io.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - span<char>
    - write_uint8
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_uint8_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:188,1
    - Dst: write_uint16
      Src: /src/libtorrent/test/test_io.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:191,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_io.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - span<char>
    - write_uint16
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_uint16_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:200,1
    - Dst: write_uint32
      Src: /src/libtorrent/test/test_io.cpp:202,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:203,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_io.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:206,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:207,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 209
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - write_uint32
    - std::array::fill
    - span<char>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_uint32_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:214,1
    - Dst: write_uint64
      Src: /src/libtorrent/test/test_io.cpp:216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:217,1
    - Dst: span<std::uint8_t>
      Src: /src/libtorrent/test/test_io.cpp:217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:221,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:223,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:224,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:225,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 227
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::array::fill
    - span<std::uint8_t>
    - write_uint64
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_uint64_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:235,1
    - Dst: read_uint8
      Src: /src/libtorrent/test/test_io.cpp:235,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:236,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_io.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - read_uint8
    - std::array::fill
    - span<char>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_uint8_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:242,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:246,1
    - Dst: read_uint16
      Src: /src/libtorrent/test/test_io.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:247,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_io.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - read_uint16
    - std::array::fill
    - span<char>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_uint16_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:253,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:259,1
    - Dst: read_uint32
      Src: /src/libtorrent/test/test_io.cpp:259,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:260,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_io.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - read_uint32
    - span<char>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_uint32_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:266,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:272,1
    - Dst: read_int32
      Src: /src/libtorrent/test/test_io.cpp:272,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:273,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_io.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - read_int32
    - std::array::fill
    - span<char>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_int32_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_io.cpp:279,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:289,1
    - Dst: read_uint64
      Src: /src/libtorrent/test/test_io.cpp:289,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_io.cpp:290,1
    - Dst: span<std::uint8_t>
      Src: /src/libtorrent/test/test_io.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_io.cpp
    functionUses: 0
    functionsReached:
    - read_uint64
    - std::array::fill
    - span<std::uint8_t>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_uint64_span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_threads.cpp:50,1
    - Dst: std::condition_variable*::wait
      Src: /src/libtorrent/test/test_threads.cpp:53,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_threads.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - s
    - m
    - waiting
    - i
    argTypes:
    - std::condition_variable*
    - std::mutex*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: fun
    functionSourceFile: /src/libtorrent/test/test_threads.cpp
    functionUses: 2
    functionsReached:
    - std::condition_variable*::wait
    - std::printf
    linkageType: ''
    returnType: void
    signature: void fun(std::condition_variable* s, std::mutex* m, int* waiting, int
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::condition_variable*::wait
      Src: /src/libtorrent/test/test_threads.cpp:61,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_threads.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - s
    - m
    - waiting
    - c
    argTypes:
    - std::condition_variable*
    - std::mutex*
    - int*
    - std::atomic<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: increment
    functionSourceFile: /src/libtorrent/test/test_threads.cpp
    functionUses: 0
    functionsReached:
    - std::condition_variable*::wait
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void increment(std::condition_variable* s, std::mutex* m, int* waiting,
      std::atomic<int>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::condition_variable*::wait
      Src: /src/libtorrent/test/test_threads.cpp:71,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_threads.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - s
    - m
    - waiting
    - c
    argTypes:
    - std::condition_variable*
    - std::mutex*
    - int*
    - std::atomic<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: decrement
    functionSourceFile: /src/libtorrent/test/test_threads.cpp
    functionUses: 0
    functionsReached:
    - std::condition_variable*::wait
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void decrement(std::condition_variable* s, std::mutex* m, int* waiting,
      std::atomic<int>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_threads.cpp:50,1
    - Dst: std::condition_variable*::wait
      Src: /src/libtorrent/test/test_threads.cpp:53,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_threads.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - s
    - m
    - waiting
    - i
    argTypes:
    - std::condition_variable*
    - std::mutex*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: fun
    functionSourceFile: /src/libtorrent/test/test_threads.cpp
    functionUses: 2
    functionsReached:
    - std::condition_variable*::wait
    - std::printf
    linkageType: ''
    returnType: void
    signature: void fun(std::condition_variable* s, std::mutex* m, int* waiting, int
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::condition_variable*::wait
      Src: /src/libtorrent/test/test_threads.cpp:61,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_threads.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - s
    - m
    - waiting
    - c
    argTypes:
    - std::condition_variable*
    - std::mutex*
    - int*
    - std::atomic<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: increment
    functionSourceFile: /src/libtorrent/test/test_threads.cpp
    functionUses: 0
    functionsReached:
    - std::condition_variable*::wait
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void increment(std::condition_variable* s, std::mutex* m, int* waiting,
      std::atomic<int>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::condition_variable*::wait
      Src: /src/libtorrent/test/test_threads.cpp:71,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_threads.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - s
    - m
    - waiting
    - c
    argTypes:
    - std::condition_variable*
    - std::mutex*
    - int*
    - std::atomic<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: decrement
    functionSourceFile: /src/libtorrent/test/test_threads.cpp
    functionUses: 0
    functionsReached:
    - std::condition_variable*::wait
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void decrement(std::condition_variable* s, std::mutex* m, int* waiting,
      std::atomic<int>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_threads.cpp:87,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_threads.cpp:94,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_threads.cpp:95,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_threads.cpp:95,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/test/test_threads.cpp:96,1
    - Dst: std::condition_variable::notify_all
      Src: /src/libtorrent/test/test_threads.cpp:99,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_threads.cpp:100,1
    - Dst: join
      Src: /src/libtorrent/test/test_threads.cpp:102,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_threads.cpp:103,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_threads.cpp:109,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_threads.cpp:110,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/test/test_threads.cpp:114,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_threads.cpp:117,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_threads.cpp:118,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_threads.cpp:118,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/test/test_threads.cpp:119,1
    - Dst: std::condition_variable::notify_all
      Src: /src/libtorrent/test/test_threads.cpp:122,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_threads.cpp:123,1
    - Dst: join
      Src: /src/libtorrent/test/test_threads.cpp:125,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_threads.cpp:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 128
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_threads.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - std::vector::emplace_back
    - std::this_thread::sleep_for
    - join
    - std::vector::clear
    - libtorrent::total_milliseconds
    - std::unique_lock::unlock
    - std::condition_variable::notify_all
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_store_buffer.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: build_locations
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<torrent_location>
    signature: std::vector<torrent_location> build_locations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/test/test_store_buffer.cpp:71,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:72,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' sb'
    - l
    - expected
    argTypes:
    - store_buffer
    - torrent_location
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: check
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 8
    functionsReached:
    - TEST_EQUAL
    - get
    linkageType: ''
    returnType: void
    signature: void check(store_buffer const& sb, torrent_location l, char const*
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/test/test_store_buffer.cpp:81,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_store_buffer.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' sb'
    - l
    argTypes:
    - store_buffer
    - torrent_location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: check_miss
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - get
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void check_miss(store_buffer const& sb, torrent_location l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get2
      Src: /src/libtorrent/test/test_store_buffer.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:93,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' sb'
    - l0
    - l1
    - expected0
    - expected1
    argTypes:
    - store_buffer
    - torrent_location
    - torrent_location
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: check2
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - get2
    linkageType: ''
    returnType: void
    signature: "void check2(store_buffer const& sb, torrent_location l0, torrent_location
      l1\n\t, char const* expected0, char const* expected1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get2
      Src: /src/libtorrent/test/test_store_buffer.cpp:104,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_store_buffer.cpp:105,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_store_buffer.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' sb'
    - l0
    - l1
    argTypes:
    - store_buffer
    - torrent_location
    - torrent_location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: check2_miss
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - get2
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void check2_miss(store_buffer const& sb, torrent_location l0, torrent_location
      l1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_store_buffer.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: build_locations
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<torrent_location>
    signature: std::vector<torrent_location> build_locations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/test/test_store_buffer.cpp:71,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:72,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' sb'
    - l
    - expected
    argTypes:
    - store_buffer
    - torrent_location
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: check
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 8
    functionsReached:
    - TEST_EQUAL
    - get
    linkageType: ''
    returnType: void
    signature: void check(store_buffer const& sb, torrent_location l, char const*
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/test/test_store_buffer.cpp:81,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_store_buffer.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' sb'
    - l
    argTypes:
    - store_buffer
    - torrent_location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: check_miss
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - get
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void check_miss(store_buffer const& sb, torrent_location l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get2
      Src: /src/libtorrent/test/test_store_buffer.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:93,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' sb'
    - l0
    - l1
    - expected0
    - expected1
    argTypes:
    - store_buffer
    - torrent_location
    - torrent_location
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: check2
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - get2
    linkageType: ''
    returnType: void
    signature: "void check2(store_buffer const& sb, torrent_location l0, torrent_location
      l1\n\t, char const* expected0, char const* expected1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get2
      Src: /src/libtorrent/test/test_store_buffer.cpp:104,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_store_buffer.cpp:105,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_store_buffer.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_store_buffer.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' sb'
    - l0
    - l1
    argTypes:
    - store_buffer
    - torrent_location
    - torrent_location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: check2_miss
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - get2
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void check2_miss(store_buffer const& sb, torrent_location l0, torrent_location
      l1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: build_locations
      Src: /src/libtorrent/test/test_store_buffer.cpp:116,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:121,1
    - Dst: check
      Src: /src/libtorrent/test/test_store_buffer.cpp:125,1
    - Dst: check_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:127,1
    - Dst: store_buffer::erase
      Src: /src/libtorrent/test/test_store_buffer.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - check_miss
    - check
    - store_buffer::insert
    - build_locations
    - store_buffer::erase
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(store_buffer_unique_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_locations
      Src: /src/libtorrent/test/test_store_buffer.cpp:135,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:137,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:138,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:139,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:140,1
    - Dst: check
      Src: /src/libtorrent/test/test_store_buffer.cpp:142,1
    - Dst: check
      Src: /src/libtorrent/test/test_store_buffer.cpp:143,1
    - Dst: check
      Src: /src/libtorrent/test/test_store_buffer.cpp:144,1
    - Dst: check
      Src: /src/libtorrent/test/test_store_buffer.cpp:145,1
    - Dst: check_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:147,1
    - Dst: check_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:148,1
    - Dst: check_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:149,1
    - Dst: check_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - check_miss
    - build_locations
    - store_buffer::insert
    - check
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(store_buffer_get)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_locations
      Src: /src/libtorrent/test/test_store_buffer.cpp:155,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:157,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:158,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:159,1
    - Dst: store_buffer::insert
      Src: /src/libtorrent/test/test_store_buffer.cpp:160,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:163,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:164,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:165,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:166,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:169,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:170,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:171,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:172,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:175,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:176,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:177,1
    - Dst: check2
      Src: /src/libtorrent/test/test_store_buffer.cpp:178,1
    - Dst: check2_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:181,1
    - Dst: check2_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:182,1
    - Dst: check2_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:183,1
    - Dst: check2_miss
      Src: /src/libtorrent/test/test_store_buffer.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 185
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_store_buffer.cpp
    functionUses: 0
    functionsReached:
    - check2
    - build_locations
    - store_buffer::insert
    - check2_miss
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(store_buffer_get2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::hasher512::update
      Src: /src/libtorrent/test/test_hasher512.cpp:49,1
    - Dst: aux::hasher512::final
      Src: /src/libtorrent/test/test_hasher512.cpp:50,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hasher512.cpp:51,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_hasher512.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - output
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: test_vector
    functionSourceFile: /src/libtorrent/test/test_hasher512.cpp
    functionUses: 1
    functionsReached:
    - aux::hasher512::final
    - TEST_EQUAL
    - libtorrent::aux::to_hex
    - aux::hasher512::update
    linkageType: ''
    returnType: void
    signature: void test_vector(std::string s, std::string output, int const n = 1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::hasher512::update
      Src: /src/libtorrent/test/test_hasher512.cpp:49,1
    - Dst: aux::hasher512::final
      Src: /src/libtorrent/test/test_hasher512.cpp:50,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hasher512.cpp:51,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_hasher512.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - output
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: test_vector
    functionSourceFile: /src/libtorrent/test/test_hasher512.cpp
    functionUses: 1
    functionsReached:
    - aux::hasher512::final
    - TEST_EQUAL
    - libtorrent::aux::to_hex
    - aux::hasher512::update
    linkageType: ''
    returnType: void
    signature: void test_vector(std::string s, std::string output, int const n = 1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher512.cpp:58,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher512.cpp:64,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher512.cpp:70,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher512.cpp:77,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher512.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 90
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hasher512.cpp
    functionUses: 0
    functionsReached:
    - test_vector
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hasher512_test_vec1)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:72,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:72,1
    - Dst: message
      Src: /src/libtorrent/test/udp_tracker.cpp:72,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:78,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:78,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/udp_tracker.cpp:78,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:87,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:87,1
    - Dst: libtorrent::aux::read_uint64
      Src: /src/libtorrent/test/udp_tracker.cpp:90,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:91,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:92,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:100,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:100,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/udp_tracker.cpp:101,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:103,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:104,1
    - Dst: libtorrent::aux::write_uint64
      Src: /src/libtorrent/test/udp_tracker.cpp:105,1
    - Dst: send_to
      Src: /src/libtorrent/test/udp_tracker.cpp:106,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/udp_tracker.cpp:106,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:107,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:108,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/udp_tracker.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:109,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:110,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/udp_tracker.cpp:110,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:117,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:123,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:123,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:126,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:127,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:128,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:129,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:130,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/test/udp_tracker.cpp:132,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:134,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:135,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/test/udp_tracker.cpp:136,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/test/udp_tracker.cpp:137,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/test/udp_tracker.cpp:138,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/test/udp_tracker.cpp:139,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/test/udp_tracker.cpp:140,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/test/udp_tracker.cpp:141,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/test/udp_tracker.cpp:145,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/test/udp_tracker.cpp:146,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/test/udp_tracker.cpp:147,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/test/udp_tracker.cpp:148,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/test/udp_tracker.cpp:149,1
    - Dst: send_to
      Src: /src/libtorrent/test/udp_tracker.cpp:151,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/udp_tracker.cpp:151,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/udp_tracker.cpp:152,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:153,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:154,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/udp_tracker.cpp:154,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:155,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:156,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/udp_tracker.cpp:156,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:160,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:160,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:163,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:163,1
    - Dst: async_receive_from
      Src: /src/libtorrent/test/udp_tracker.cpp:168,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/udp_tracker.cpp:169,1
    - Dst: std::bind
      Src: /src/libtorrent/test/udp_tracker.cpp:170,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 5
    argNames:
    - ' ec'
    - bytes_transferred
    - from
    - buffer
    - size
    argTypes:
    - error_code
    - size_t
    - udp::endpoint*
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 171
    functionName: on_udp_receive
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - libtorrent::aux::is_v6
    - libtorrent::aux::read_uint32
    - async_receive_from
    - libtorrent::aux::write_uint64
    - message
    - static_cast<std::size_t>
    - print_endpoint
    - libtorrent::aux::write_uint32
    - both_sides_from_store_buffer
    - time_now_string
    - error_code::message
    - libtorrent::aux::write_uint8
    - libtorrent::aux::write_uint16
    - libtorrent::aux::read_uint64
    - std::printf
    - send_to
    linkageType: ''
    returnType: void
    signature: "void on_udp_receive(error_code const& ec, size_t const bytes_transferred\n\t\t,
      udp::endpoint* from, char* buffer, std::size_t const size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/test/udp_tracker.cpp:176,1
    - Dst: address::is_v4
      Src: /src/libtorrent/test/udp_tracker.cpp:176,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/udp_tracker.cpp:176,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/udp_tracker.cpp:176,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:179,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/udp_tracker.cpp:179,1
    - Dst: bind
      Src: /src/libtorrent/test/udp_tracker.cpp:183,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/udp_tracker.cpp:183,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:186,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/udp_tracker.cpp:186,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/udp_tracker.cpp:189,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:192,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/udp_tracker.cpp:192,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:196,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:197,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/test/udp_tracker.cpp:197,1
    - Dst: std::make_shared<std::thread>
      Src: /src/libtorrent/test/udp_tracker.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - iface
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: udp_tracker
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<std::thread>
    - rand_v4
    - open
    - rand_v6
    - address::is_v4
    - time_now_string
    - error_code::message
    - local_endpoint
    - static_cast<void*>
    - bind
    - std::printf
    linkageType: ''
    returnType: void
    signature: void udp_tracker(address iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:204,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:204,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/test/udp_tracker.cpp:205,1
    - Dst: cancel
      Src: /src/libtorrent/test/udp_tracker.cpp:207,1
    - Dst: close
      Src: /src/libtorrent/test/udp_tracker.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: stop
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 1
    functionsReached:
    - cancel
    - time_now_string
    - static_cast<void*>
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void stop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:213,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/udp_tracker.cpp:214,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/test/udp_tracker.cpp:214,1
    - Dst: post
      Src: /src/libtorrent/test/udp_tracker.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/test/udp_tracker.cpp:215,1
    - Dst: join
      Src: /src/libtorrent/test/udp_tracker.cpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: ~udp_tracker()
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - post
    - join
    - time_now_string
    - static_cast<void*>
    - std::printf
    linkageType: ''
    returnType: void
    signature: void ~udp_tracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: port
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: num_hits
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_hits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_receive_from
      Src: /src/libtorrent/test/udp_tracker.cpp:228,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/udp_tracker.cpp:229,1
    - Dst: std::bind
      Src: /src/libtorrent/test/udp_tracker.cpp:230,1
    - Dst: run
      Src: /src/libtorrent/test/udp_tracker.cpp:232,1
    - Dst: std::printf
      Src: /src/libtorrent/test/udp_tracker.cpp:234,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/test/udp_tracker.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: thread_fun
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - run
    - async_receive_from
    - both_sides_from_store_buffer
    - static_cast<void*>
    - std::printf
    linkageType: ''
    returnType: void
    signature: void thread_fun()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/udp_tracker.cpp:244,1
    - Dst: std::make_unique<udp_tracker>
      Src: /src/libtorrent/test/udp_tracker.cpp:245,1
    - Dst: port
      Src: /src/libtorrent/test/udp_tracker.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iface
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: start_udp_tracker
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - std::make_unique<udp_tracker>
    - port
    linkageType: ''
    returnType: int
    signature: int start_udp_tracker(address iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_hits
      Src: /src/libtorrent/test/udp_tracker.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: num_udp_announces
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 2
    functionsReached:
    - num_hits
    linkageType: ''
    returnType: int
    signature: int num_udp_announces()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/test/udp_tracker.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: stop_udp_tracker
    functionSourceFile: /src/libtorrent/test/udp_tracker.cpp
    functionUses: 2
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void stop_udp_tracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_bencoding.cpp:54,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bencoding.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: encode
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 43
    functionsReached:
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: std::string
    signature: std::string encode(entry const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_bencoding.cpp:54,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bencoding.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: encode
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 44
    functionsReached:
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: std::string
    signature: std::string encode(entry const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:63,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:63,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:64,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bencoding.cpp:64,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - encode
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(strings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:70,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:70,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:71,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bencoding.cpp:71,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - encode
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(integers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:77,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:77,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:78,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bencoding.cpp:78,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - encode
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(integers2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:84,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:84,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:85,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bencoding.cpp:85,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - encode
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(integers3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list_type::push_back
      Src: /src/libtorrent/test/test_bencoding.cpp:91,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:91,1
    - Dst: entry::list_type::push_back
      Src: /src/libtorrent/test/test_bencoding.cpp:92,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:92,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:94,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:94,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:95,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bencoding.cpp:95,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - entry
    - encode
    - entry::list_type::push_back
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(lists)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:101,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:102,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:103,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:104,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bencoding.cpp:104,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode
    - bdecode
    - entry
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dictionaries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::preformatted
      Src: /src/libtorrent/test/test_bencoding.cpp:111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:112,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - entry::preformatted
    - TEST_EQUAL
    - encode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(preformatted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::preformatted_type
      Src: /src/libtorrent/test/test_bencoding.cpp:119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:120,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::preformatted_type
    - encode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(preformatted_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:126,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - encode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(undefined_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:132,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:133,1
    - Dst: encode
      Src: /src/libtorrent/test/test_bencoding.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - encode
    - entry
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(undefined_node2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/test/test_bencoding.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:140,1
    - Dst: entry::list
      Src: /src/libtorrent/test/test_bencoding.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::list
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(implicit_construct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:148,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::to_string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_dict_single_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:156,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::to_string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/test/test_bencoding.cpp:162,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:162,1
    - Dst: entry::list
      Src: /src/libtorrent/test/test_bencoding.cpp:163,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:163,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:164,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::list
    - entry::to_string
    - entry
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_list_single_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/test/test_bencoding.cpp:171,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:171,1
    - Dst: entry::list
      Src: /src/libtorrent/test/test_bencoding.cpp:172,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:173,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::list
    - entry::to_string
    - entry
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:179,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::to_string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_int_single_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:185,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::to_string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:191,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::to_string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_string_single_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:197,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::to_string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:203,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:203,1
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:204,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:204,1
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:205,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:205,1
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:206,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:206,1
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:207,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:207,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:209,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - list
    - TEST_EQUAL
    - entry::to_string
    - entry
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_deep_dict_single_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:215,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:215,1
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:216,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:216,1
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:217,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:217,1
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:218,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:218,1
    - Dst: list
      Src: /src/libtorrent/test/test_bencoding.cpp:219,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:221,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_bencoding.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - list
    - TEST_EQUAL
    - entry::to_string
    - entry
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_deep_dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_bencoding.cpp:226,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bencoding.cpp:226,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bencoding.cpp:227,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bencoding.cpp:229,1
    - Dst: entry
      Src: /src/libtorrent/test/test_bencoding.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::string
    - entry
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:237,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:237,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:238,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:238,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:239,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:239,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:240,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:241,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:241,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:242,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:242,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:243,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:243,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:244,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:245,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:246,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:247,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:247,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:248,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:248,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:249,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:249,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:250,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:251,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:251,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:252,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:252,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:253,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:253,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:254,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:254,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:255,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:255,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:256,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:256,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:257,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:257,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:258,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:258,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:259,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:259,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:260,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:260,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:261,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:261,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:262,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:262,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:263,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:263,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:264,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:264,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:265,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:265,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:266,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:266,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:267,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:267,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:268,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:268,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:269,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:269,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:270,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:270,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:271,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:271,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:272,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:272,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_bencoding.cpp:272,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bencoding.cpp:273,1
    - Dst: integer_to_str
      Src: /src/libtorrent/test/test_bencoding.cpp:273,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_bencoding.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 274
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bencoding.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::aux::max
    - TEST_CHECK
    - integer_to_str
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(integer_to_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:45,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:46,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:47,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:47,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:48,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_bdecode.cpp:48,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/test/test_bdecode.cpp:48,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:49,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:49,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:50,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - span<char>
    - bdecode_node::type
    - std::printf
    - bdecode_node::int_value
    - bdecode_node::data_section
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(integer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:55,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:56,1
    - Dst: entry::string
      Src: /src/libtorrent/test/test_bdecode.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::string
    - entry::string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(construct_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:62,1
    - Dst: entry::string
      Src: /src/libtorrent/test/test_bdecode.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(construct_string_literal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view
      Src: /src/libtorrent/test/test_bdecode.cpp:68,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:69,1
    - Dst: entry::string
      Src: /src/libtorrent/test/test_bdecode.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - string_view
    - entry::string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(construct_string_view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:75,1
    - Dst: entry::integer
      Src: /src/libtorrent/test/test_bdecode.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry::integer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(construct_integer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:83,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:84,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:85,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:86,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_bdecode.cpp:86,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/test/test_bdecode.cpp:86,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:87,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:87,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:88,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/test/test_bdecode.cpp:88,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:88,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:89,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/test/test_bdecode.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - span<char>
    - bdecode_node::string_value
    - bdecode_node::type
    - std::printf
    - std::string
    - bdecode_node::string_length
    - bdecode_node::data_section
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/test/test_bdecode.cpp:97,1
    - Dst: memcpy
      Src: /src/libtorrent/test/test_bdecode.cpp:98,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:101,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:102,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:103,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/test/test_bdecode.cpp:103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:104,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_bdecode.cpp:104,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/test/test_bdecode.cpp:104,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:105,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:106,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/test/test_bdecode.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:107,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/test/test_bdecode.cpp:107,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bdecode.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::type
    - std::printf
    - bdecode_node::string_ptr
    - std::string::c_str
    - memcpy
    - bdecode_node::string_length
    - std::string::resize
    - span<char const>
    - bdecode_node::data_section
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(string_prefix1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:116,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:117,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:118,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_bdecode.cpp:118,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/test/test_bdecode.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:119,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:120,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_bdecode.cpp:120,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:121,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:121,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:122,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:123,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:123,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:124,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:124,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:124,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:125,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:125,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:126,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_bdecode.cpp:126,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - span<char>
    - bdecode_node::type
    - std::printf
    - bdecode_node::list_size
    - std::string
    - bdecode_node::list_at
    - span<char const>
    - bdecode_node::data_section
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:135,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:136,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:136,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:137,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_bdecode.cpp:137,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/test/test_bdecode.cpp:137,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:138,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:139,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:140,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:140,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:141,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:142,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:142,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:143,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:143,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:143,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:144,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:144,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:145,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:145,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:146,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:146,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:146,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:147,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:148,1
    - Dst: bdecode_node::dict_find_string_value
      Src: /src/libtorrent/test/test_bdecode.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:150,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:150,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:151,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:151,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - span<char>
    - bdecode_node::dict_find
    - bdecode_node::type
    - std::printf
    - std::string
    - bdecode_node::has_soft_error
    - bdecode_node::dict_find_string_value
    - bdecode_node::data_section
    - bdecode
    - TEST_CHECK
    - bdecode_node::dict_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:160,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:161,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:162,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:162,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:163,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_key_novalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:174,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:174,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:175,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_nonstring_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:184,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:184,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:185,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:185,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:186,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:186,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:187,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::dict_find
    - bdecode_node::type
    - bdecode_node::int_value
    - std::string
    - bdecode
    - TEST_CHECK
    - bdecode_node::dict_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_null_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:197,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:198,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:198,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:199,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:199,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:199,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:205,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:205,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:206,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:206,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:206,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:212,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:212,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:213,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:213,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:213,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:219,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:220,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:220,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:220,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:225,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:226,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:227,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:227,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 229
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::string
    - bdecode_node::has_soft_error
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_unordered_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:235,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:237,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:237,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:238,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:238,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::string
    - bdecode_node::has_soft_error
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_duplicate_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:246,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:247,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:247,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:248,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(premature_e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:257,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:258,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:259,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:259,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:260,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(negative_length_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:269,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:270,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:271,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:271,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:272,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(overflow_length_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:281,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:282,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:283,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:283,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:284,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(close_overflow_length_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:294,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:295,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:296,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:296,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:297,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 298
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(overflow_length_prefix2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:306,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:308,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:308,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:309,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:309,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:309,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:310,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:310,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:316,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:318,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:318,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:319,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 321
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - std::string
    - bdecode_node::has_soft_error
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(leading_zero_length_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:329,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:330,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:331,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:331,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:332,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(nodigit_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:341,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:342,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:343,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:343,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:344,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 345
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(minus_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:353,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:354,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:355,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:355,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:356,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 357
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(interior_minus_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:364,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:365,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:365,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:368,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::int_value
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(int_overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:377,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:378,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:379,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:379,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:380,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 381
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(int_overflow2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:389,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:390,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:391,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:391,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:392,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(int_truncated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:400,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:402,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:402,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:403,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:403,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:403,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:404,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:404,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:409,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:411,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/test/test_bdecode.cpp:411,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:412,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 414
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - std::string
    - bdecode_node::has_soft_error
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(int_leading_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:420,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_bdecode.cpp:420,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:421,1
    - Dst: error_code::category
      Src: /src/libtorrent/test/test_bdecode.cpp:421,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:421,1
    - Dst: error_code::assign
      Src: /src/libtorrent/test/test_bdecode.cpp:422,1
    - Dst: bdecode_category
      Src: /src/libtorrent/test/test_bdecode.cpp:422,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:423,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_bdecode.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code::assign
    - std::string
    - error_code::category
    - error_code::message
    - bdecode_category
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bdecode_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:452,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:453,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:454,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:454,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:455,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(int_invalid_digit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:476,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:478,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_bdecode.cpp:478,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 480
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - reinterpret_cast<char const*>
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:495,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:496,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 497
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(depth_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtorrent/test/test_bdecode.cpp:506,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:510,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:511,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 512
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - memcpy
    - bdecode
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(item_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:521,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:522,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:523,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:523,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:524,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unexpected_eof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:534,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:535,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:536,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:536,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:537,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 538
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unexpected_eof2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:548,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:549,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:550,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:550,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:551,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 552
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expected_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:561,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:562,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:563,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:563,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:564,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unexpected_eof_dict_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:574,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:575,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:576,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:576,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:577,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 578
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unexpected_eof_dict_key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:587,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:588,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:589,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:589,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:590,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expected_string_dict_key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:600,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:601,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:602,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:602,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:603,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 604
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unexpected_eof_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:613,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:614,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:615,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:615,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:616,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 617
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unexpected_eof_int2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:627,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:628,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:629,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:629,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:630,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 631
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expected_colon_dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:637,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:638,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:638,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:639,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 640
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:649,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:650,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:651,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:651,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:652,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 653
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_bdecode.cpp:662,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:668,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:669,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:670,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:670,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:671,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_bdecode.cpp:671,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:674,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/test/test_bdecode.cpp:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 676
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::type
    - bdecode_node::list_size
    - std::snprintf
    - bdecode
    - TEST_CHECK
    - bdecode_node::list_int_value_at
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(list_ints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_bdecode.cpp:685,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:690,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bdecode.cpp:690,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:692,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:693,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:694,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:694,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:695,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:695,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_bdecode.cpp:699,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:700,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 702
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::type
    - std::string::c_str
    - std::snprintf
    - bdecode_node::dict_find_int_value
    - bdecode
    - std::printf
    - TEST_CHECK
    - bdecode_node::dict_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_ints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:710,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:711,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:713,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:713,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:714,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:714,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:715,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:715,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:716,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:716,1
    - Dst: type
      Src: /src/libtorrent/test/test_bdecode.cpp:716,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:717,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:717,1
    - Dst: int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:717,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:718,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:718,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:719,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:719,1
    - Dst: type
      Src: /src/libtorrent/test/test_bdecode.cpp:719,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:720,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:720,1
    - Dst: int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 721
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::type
    - int_value
    - bdecode_node::dict_at
    - type
    - bdecode
    - TEST_CHECK
    - bdecode_node::dict_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_at)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:729,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:730,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:732,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:732,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:733,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_bdecode.cpp:733,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:734,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:734,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:735,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:735,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:736,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 737
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::type
    - bdecode_node::list_size
    - bdecode_node::list_at
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(string_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:745,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:746,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:746,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:747,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 748
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - error_code
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(exceed_buf_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_int
      Src: /src/libtorrent/test/test_bdecode.cpp:756,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:757,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:758,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 760
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_int
      Src: /src/libtorrent/test/test_bdecode.cpp:768,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:769,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 771
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_digit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_int
      Src: /src/libtorrent/test/test_bdecode.cpp:779,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:780,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 782
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_int_overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:797,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:798,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_bdecode.cpp:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 800
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_length_overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_int
      Src: /src/libtorrent/test/test_bdecode.cpp:808,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:809,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 811
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expected_colon_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:822,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:823,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:824,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:824,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:826,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:826,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:830,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:830,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:831,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/test/test_bdecode.cpp:831,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:832,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:832,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:833,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:833,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:834,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/test/test_bdecode.cpp:834,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:835,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/test/test_bdecode.cpp:835,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:839,1
    - Dst: bdecode_node::dict_find_string_value
      Src: /src/libtorrent/test/test_bdecode.cpp:839,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:840,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/test/test_bdecode.cpp:840,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:841,1
    - Dst: bdecode_node::dict_find_string_value
      Src: /src/libtorrent/test/test_bdecode.cpp:841,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:842,1
    - Dst: bdecode_node::dict_find_string_value
      Src: /src/libtorrent/test/test_bdecode.cpp:842,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:843,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/test/test_bdecode.cpp:843,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:844,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/test/test_bdecode.cpp:844,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:848,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/test/test_bdecode.cpp:848,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:849,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/test/test_bdecode.cpp:849,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:850,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/test/test_bdecode.cpp:850,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:851,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/test/test_bdecode.cpp:851,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:852,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/test/test_bdecode.cpp:852,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:856,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_bdecode.cpp:856,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:857,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_bdecode.cpp:857,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:858,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_bdecode.cpp:858,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:859,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_bdecode.cpp:859,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:862,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_bdecode.cpp:862,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:862,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:863,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_bdecode.cpp:863,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:863,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:864,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_bdecode.cpp:864,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:864,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:866,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:866,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:867,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:867,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:871,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:871,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:872,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:872,1
    - Dst: int_value
      Src: /src/libtorrent/test/test_bdecode.cpp:872,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:873,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:873,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:874,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:874,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_bdecode.cpp:874,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:875,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:875,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:876,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:876,1
    - Dst: type
      Src: /src/libtorrent/test/test_bdecode.cpp:876,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:877,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:877,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:878,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:878,1
    - Dst: type
      Src: /src/libtorrent/test/test_bdecode.cpp:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 879
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - string_value
    - bdecode_node::dict_find_string
    - bdecode_node::type
    - std::printf
    - int_value
    - bdecode_node::dict_at
    - bdecode_node::dict_find_list
    - std::string
    - bdecode_node::dict_find_int
    - bdecode_node::dict_find_int_value
    - type
    - bdecode_node::dict_find_string_value
    - bdecode_node::dict_find_dict
    - bdecode
    - TEST_CHECK
    - bdecode_node::dict_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_find_funs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:890,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:891,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:892,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:892,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:894,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:894,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:896,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/test/test_bdecode.cpp:896,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:898,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/test/test_bdecode.cpp:898,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:900,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/test/test_bdecode.cpp:900,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:902,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/test/test_bdecode.cpp:902,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:904,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:904,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:905,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:905,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:906,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:906,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:907,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:907,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:909,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:909,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:910,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:910,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:911,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:911,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:912,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:912,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:914,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_bdecode.cpp:914,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:915,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_bdecode.cpp:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 916
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode_node::list_size
    - bdecode_node::list_at
    - bdecode_node::list_string_value_at
    - bdecode
    - TEST_CHECK
    - bdecode_node::list_int_value_at
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(list_at_funs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:927,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:928,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:929,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:929,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:931,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:931,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:933,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:933,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:934,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:934,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:935,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/test/test_bdecode.cpp:935,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:936,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/test/test_bdecode.cpp:936,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:938,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_bdecode.cpp:938,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:939,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_bdecode.cpp:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 940
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode_node::list_size
    - bdecode_node::list_at
    - bdecode_node::list_string_value_at
    - bdecode
    - TEST_CHECK
    - bdecode_node::list_int_value_at
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(list_at_reverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:952,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:953,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:954,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:954,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:956,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:956,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:959,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:959,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:960,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:960,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_bdecode.cpp:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 961
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::dict_find
    - bdecode_node::type
    - std::printf
    - std::string
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_find_funs2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:969,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:970,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:971,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:971,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:973,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 974
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:980,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:981,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:982,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:982,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:984,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 985
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(print_entry2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:995,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:996,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:997,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:998,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1000,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1001,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1002,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1002,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1003,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1003,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1004,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1004,1
    - Dst: bdecode_node::swap
      Src: /src/libtorrent/test/test_bdecode.cpp:1006,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1008,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1008,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1009,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1009,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1010,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1010,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1011,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1011,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1012,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1012,1
    - Dst: bdecode_node::swap
      Src: /src/libtorrent/test/test_bdecode.cpp:1014,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1016,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1016,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1017,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1017,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1018,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1018,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1019,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1019,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1020,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1021
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode_node::swap
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1030,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1031,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:1033,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1035,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1036,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1037,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1037,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1038,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1038,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1039,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1039,1
    - Dst: bdecode_node::swap
      Src: /src/libtorrent/test/test_bdecode.cpp:1041,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1043,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1043,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1044,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1044,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1045,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1045,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1046,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1046,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1047,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1047,1
    - Dst: bdecode_node::swap
      Src: /src/libtorrent/test/test_bdecode.cpp:1050,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1052,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1052,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1053,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1053,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1054,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1054,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1055,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1055,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1056,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1057
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::dict_find
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode_node::swap
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(swap_root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1068,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1069,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1070,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1071,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:1073,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1074,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1076,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1077,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1078,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1078,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1079,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1079,1
    - Dst: bdecode_node::swap
      Src: /src/libtorrent/test/test_bdecode.cpp:1081,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1083,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1083,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1084,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1084,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1085,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1085,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1086,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1086,1
    - Dst: bdecode_node::swap
      Src: /src/libtorrent/test/test_bdecode.cpp:1089,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1091,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1091,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1092,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1092,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1093,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1093,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1094,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1095
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::dict_find
    - print_entry
    - bdecode_node::type
    - bdecode_node::list_at
    - bdecode_node::swap
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(swap_disjoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1107,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1109,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_bdecode.cpp:1111,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1113,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1115,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1116,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1116,1
    - Dst: bdecode_node::swap
      Src: /src/libtorrent/test/test_bdecode.cpp:1118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1120,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1120,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1121,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1121,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1122,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1123,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1123,1
    - Dst: bdecode_node::swap
      Src: /src/libtorrent/test/test_bdecode.cpp:1126,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1128,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1128,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1129,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1129,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1130,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1130,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1131,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1132
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::dict_find
    - print_entry
    - bdecode_node::type
    - bdecode_node::swap
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(swap_root_disjoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1141,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1142,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1142,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1143,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1144,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1144,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1145,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:1145,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1146,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1146,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1148,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1149,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1150,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1151,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1151,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1152,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_bdecode.cpp:1152,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1153,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1154
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode_node::dict_at
    - bdecode_node::list_size
    - bdecode_node::list_int_value_at
    - bdecode
    - TEST_CHECK
    - bdecode_node::dict_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1162,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1163,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1164,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1164,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1165,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1165,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/test/test_bdecode.cpp:1171,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1173,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1174,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:1174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1175,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1175,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1177,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1178,1
    - Dst: bdecode_node::dict_size
      Src: /src/libtorrent/test/test_bdecode.cpp:1178,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1179,1
    - Dst: bdecode_node::dict_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1180
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - print_entry
    - bdecode_node::type
    - bdecode_node::dict_at
    - bdecode_node::clear
    - std::printf
    - bdecode
    - bdecode_node::dict_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(copy_root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1188,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1189,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1191,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1191,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1192,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1192,1
    - Dst: bdecode_node::non_owning
      Src: /src/libtorrent/test/test_bdecode.cpp:1194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1196,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1196,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/test/test_bdecode.cpp:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1201
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - print_entry
    - bdecode_node::non_owning
    - bdecode_node::type
    - bdecode_node::clear
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(non_owning_refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1211,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1212,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1213,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1213,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1215,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1215,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1217,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1218
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_parse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1227,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1228,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1228,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1230,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1230,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1232,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1233
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_parse2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1241,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1243,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1243,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1245,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1245,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1247,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1248
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_parse3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1256,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1257,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1258,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1258,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1260,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1260,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1262,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1263
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_parse4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1274,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1275,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1277
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partial_parse_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1287,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1288,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1289,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1289,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1291,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1292,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bdecode.cpp:1292,1
    - Dst: bdecode_node::switch_underlying_buffer
      Src: /src/libtorrent/test/test_bdecode.cpp:1294,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1296,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1297,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_bdecode.cpp:1297,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1300
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::type
    - std::string::c_str
    - bdecode_node::switch_underlying_buffer
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(switch_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/test/test_bdecode.cpp:1306,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1310,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1311,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1311,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1312,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/test/test_bdecode.cpp:1312,1
    - Dst: std::string::substr
      Src: /src/libtorrent/test/test_bdecode.cpp:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1313
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::string_value
    - bdecode_node::type
    - std::string::resize
    - std::string::substr
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(long_string_99999999)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/test/test_bdecode.cpp:1319,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1323,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1324,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_bdecode.cpp:1324,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1325,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/test/test_bdecode.cpp:1325,1
    - Dst: std::string::substr
      Src: /src/libtorrent/test/test_bdecode.cpp:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1326
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - bdecode_node::string_value
    - bdecode_node::type
    - std::string::resize
    - std::string::substr
    - bdecode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(long_string_100000000)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1332,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1333,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1334,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1334,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1336,1
    - Dst: bdecode_node::data_offset
      Src: /src/libtorrent/test/test_bdecode.cpp:1336,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1337,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1337,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1338,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1338,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1339,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1339,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1340,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1341
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::data_offset
    - std::printf
    - bdecode_node::list_at
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(data_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1347,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1348,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1349,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1349,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1351,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1351,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1352,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_bdecode.cpp:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1353
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - bdecode_node::list_at
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(string_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_bdecode.cpp:1359,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bdecode.cpp:1360,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_bdecode.cpp:1361,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_bdecode.cpp:1361,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1363,1
    - Dst: bdecode_node::dict_at_node
      Src: /src/libtorrent/test/test_bdecode.cpp:1363,1
    - Dst: string_offset
      Src: /src/libtorrent/test/test_bdecode.cpp:1363,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1364,1
    - Dst: bdecode_node::dict_at_node
      Src: /src/libtorrent/test/test_bdecode.cpp:1364,1
    - Dst: string_offset
      Src: /src/libtorrent/test/test_bdecode.cpp:1364,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1365,1
    - Dst: bdecode_node::dict_at_node
      Src: /src/libtorrent/test/test_bdecode.cpp:1365,1
    - Dst: string_offset
      Src: /src/libtorrent/test/test_bdecode.cpp:1365,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_bdecode.cpp:1366,1
    - Dst: bdecode_node::dict_at_node
      Src: /src/libtorrent/test/test_bdecode.cpp:1366,1
    - Dst: string_offset
      Src: /src/libtorrent/test/test_bdecode.cpp:1366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1367
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bdecode.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - bdecode_node::dict_at_node
    - std::printf
    - string_offset
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dict_at_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher::update
      Src: /src/libtorrent/test/test_hasher.cpp:75,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/test_hasher.cpp:76,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_hasher.cpp:77,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hasher.cpp:79,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_hasher.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hasher.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - output
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: test_vector
    functionSourceFile: /src/libtorrent/test/test_hasher.cpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - hasher::final
    - hasher::update
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void test_vector(string_view s, string_view output, int const n = 1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher::update
      Src: /src/libtorrent/test/test_hasher.cpp:75,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/test_hasher.cpp:76,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_hasher.cpp:77,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hasher.cpp:79,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_hasher.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hasher.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - output
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: test_vector
    functionSourceFile: /src/libtorrent/test/test_hasher.cpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - hasher::final
    - hasher::update
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void test_vector(string_view s, string_view output, int const n = 1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher::update
      Src: /src/libtorrent/test/test_hasher.cpp:95,1
    - Dst: input::data
      Src: /src/libtorrent/test/test_hasher.cpp:95,1
    - Dst: input::size
      Src: /src/libtorrent/test/test_hasher.cpp:95,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_hasher.cpp:98,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/test/test_hasher.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hasher.cpp:99,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/test_hasher.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hasher.cpp
    functionUses: 0
    functionsReached:
    - hasher::final
    - libtorrent::aux::from_hex
    - input::size
    - hasher::update
    - input::data
    - sha1_hash::data
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hasher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher.cpp:106,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher.cpp:111,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher.cpp:116,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher.cpp:122,1
    - Dst: test_vector
      Src: /src/libtorrent/test/test_hasher.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 133
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hasher.cpp
    functionUses: 0
    functionsReached:
    - test_vector
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hasher_test_vec1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_hasher.cpp:141,1
    - Dst: input::data
      Src: /src/libtorrent/test/test_hasher.cpp:141,1
    - Dst: input::size
      Src: /src/libtorrent/test/test_hasher.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hasher.cpp:143,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_hasher.cpp:143,1
    - Dst: hasher256::final
      Src: /src/libtorrent/test/test_hasher.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hasher.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::aux::to_hex
    - input::size
    - hasher256::final
    - input::data
    - hasher256::update
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hasher256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::time_to_string
      Src: /src/libtorrent/test/test_utils.cpp:59,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_utils.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: libtorrent::time_now_string
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - libtorrent::time_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string time_now_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_utils.cpp:64,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_utils.cpp:66,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_utils.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tp
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: libtorrent::time_to_string
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 1
    functionsReached:
    - time_now
    - std::snprintf
    - libtorrent::total_milliseconds
    linkageType: ''
    returnType: std::string
    signature: std::string time_to_string(time_point const tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::random
      Src: /src/libtorrent/test/test_utils.cpp:80,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_utils.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: libtorrent::test_listen_interface
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::random
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string test_listen_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::time_to_string
      Src: /src/libtorrent/test/test_utils.cpp:59,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_utils.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: libtorrent::time_now_string
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - libtorrent::time_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string time_now_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_utils.cpp:64,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_utils.cpp:66,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_utils.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tp
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: libtorrent::time_to_string
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 2
    functionsReached:
    - time_now
    - std::snprintf
    - libtorrent::total_milliseconds
    linkageType: ''
    returnType: std::string
    signature: std::string time_to_string(time_point const tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::random
      Src: /src/libtorrent/test/test_utils.cpp:80,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_utils.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: libtorrent::test_listen_interface
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::random
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string test_listen_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_utils.cpp:92,1
    - Dst: std::fill
      Src: /src/libtorrent/test/test_utils.cpp:98,1
    - Dst: std::begin
      Src: /src/libtorrent/test/test_utils.cpp:98,1
    - Dst: std::end
      Src: /src/libtorrent/test/test_utils.cpp:98,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/test/test_utils.cpp:99,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_utils.cpp:99,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/test/test_utils.cpp:99,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/test/test_utils.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: build_tree
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - merkle_fill_tree
    - sha256_hash
    - std::fill
    - std::begin
    - reinterpret_cast<char*>
    - std::end
    - merkle_num_leafs
    - aux::vector::end_index
    linkageType: ''
    returnType: aux::vector<sha256_hash>
    signature: aux::vector<sha256_hash> build_tree(int const size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::is_open
      Src: /src/libtorrent/test/test_utils.cpp:109,1
    - Dst: ::_chsize_s
      Src: /src/libtorrent/test/test_utils.cpp:111,1
    - Dst: session_close
      Src: /src/libtorrent/test/test_utils.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - file
    - size
    argTypes:
    - char*
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: truncate
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::is_open
    - session_close
    - ::_chsize_s
    linkageType: ''
    returnType: int
    signature: int truncate(char const* file, std::int64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exceptions
      Src: /src/libtorrent/test/test_utils.cpp:121,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_utils.cpp:122,1
    - Dst: open
      Src: /src/libtorrent/test/test_utils.cpp:123,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/test_utils.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: ofstream::ofstream
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - native_path_string::c_str
    - convert_to_native_path_string
    - exceptions
    - open
    linkageType: ''
    returnType: void
    signature: void ofstream::ofstream(char const* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exists
      Src: /src/libtorrent/test/test_utils.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: exists
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 24
    functionsReached:
    - exists
    linkageType: ''
    returnType: bool
    signature: bool exists(std::string const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::create_torrent::set_creation_date
      Src: /src/libtorrent/test/test_utils.cpp:135,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_utils.cpp:136,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_utils.cpp:138,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_utils.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - lt::torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: serialize
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::set_creation_date
    - std::back_inserter
    - bencode
    - lt::create_torrent::generate
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> serialize(lt::torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_utils.cpp:149,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_utils.cpp:150,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_utils.cpp:153,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_utils.cpp:154,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_utils.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - files
    - piece_size
    argTypes:
    - std::vector<file_ent>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: make_files
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - file_storage::add_file
    - std::snprintf
    - libtorrent::aux::calc_num_pieces
    - file_storage::set_num_pieces
    linkageType: ''
    returnType: lt::file_storage
    signature: lt::file_storage make_files(std::vector<file_ent> const files, int
      const piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::CreateFile2
      Src: /src/libtorrent/test/test_utils.cpp:163,1
    - Dst: ::CreateFileA
      Src: /src/libtorrent/test/test_utils.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utils.cpp:177,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utils.cpp:180,1
    - Dst: ::GetVolumeInformationByHandleW
      Src: /src/libtorrent/test/test_utils.cpp:180,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/test/test_utils.cpp:182,1
    - Dst: printf
      Src: /src/libtorrent/test/test_utils.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: fs_supports_sparse_files
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - ::CreateFileA
    - ::CreateFile2
    - ::GetVolumeInformationByHandleW
    - printf
    - ::CloseHandle
    - TEST_CHECK
    linkageType: ''
    returnType: bool
    signature: bool fs_supports_sparse_files()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/test/test_utils.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utils.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utils.cpp:194,1
    - Dst: fstatfs
      Src: /src/libtorrent/test/test_utils.cpp:194,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/test_utils.cpp:195,1
    - Dst: fsword_t
      Src: /src/libtorrent/test/test_utils.cpp:201,1
    - Dst: printf
      Src: /src/libtorrent/test/test_utils.cpp:204,1
    - Dst: long
      Src: /src/libtorrent/test/test_utils.cpp:204,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_utils.cpp:205,1
    - Dst: printf
      Src: /src/libtorrent/test/test_utils.cpp:207,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_utils.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 212
    functionName: fs_supports_sparse_files
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - TEST_CHECK
    - printf
    - std::set::count
    - libtorrent::broadcast_socket::open
    - long
    - fstatfs
    - fsword_t
    linkageType: ''
    returnType: bool
    signature: bool fs_supports_sparse_files()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/test/test_utils.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utils.cpp:221,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utils.cpp:223,1
    - Dst: fstatfs
      Src: /src/libtorrent/test/test_utils.cpp:223,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/test/test_utils.cpp:224,1
    - Dst: fsword_t
      Src: /src/libtorrent/test/test_utils.cpp:232,1
    - Dst: printf
      Src: /src/libtorrent/test/test_utils.cpp:235,1
    - Dst: long
      Src: /src/libtorrent/test/test_utils.cpp:235,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_utils.cpp:236,1
    - Dst: printf
      Src: /src/libtorrent/test/test_utils.cpp:238,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_utils.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 244
    functionName: fs_supports_prealloc
    functionSourceFile: /src/libtorrent/test/test_utils.cpp
    functionUses: 2
    functionsReached:
    - peer_conn::close
    - TEST_CHECK
    - printf
    - std::set::count
    - libtorrent::broadcast_socket::open
    - long
    - fstatfs
    - fsword_t
    linkageType: ''
    returnType: bool
    signature: bool fs_supports_prealloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:58,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:58,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:59,1
    - Dst: buffer::empty
      Src: /src/libtorrent/test/test_buffer.cpp:59,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:64,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:64,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:69,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:69,1
    - Dst: buffer::data
      Src: /src/libtorrent/test/test_buffer.cpp:69,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:70,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 72
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    - buffer::data
    - buffer::size
    - buffer::empty
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(buffer_constructor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:77,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:77,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:79,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:80,1
    - Dst: buffer::swap
      Src: /src/libtorrent/test/test_buffer.cpp:82,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:84,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:84,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:85,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:86,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:86,1
    - Dst: buffer::data
      Src: /src/libtorrent/test/test_buffer.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    - buffer::data
    - buffer::size
    - buffer::swap
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(buffer_swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:92,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:92,1
    - Dst: buffer::data
      Src: /src/libtorrent/test/test_buffer.cpp:92,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:93,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:93,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - buffer::size
    - buffer::data
    - TEST_CHECK
    - std::memcmp
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(buffer_subscript)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:102,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:102,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:104,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - buffer::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(buffer_subscript2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:114,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:114,1
    - Dst: buffer::data
      Src: /src/libtorrent/test/test_buffer.cpp:114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:115,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:119,1
    - Dst: buffer::empty
      Src: /src/libtorrent/test/test_buffer.cpp:119,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:121,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:121,1
    - Dst: buffer::data
      Src: /src/libtorrent/test/test_buffer.cpp:121,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:122,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    - buffer::size
    - buffer::data
    - buffer::empty
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(buffer_move_construct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:128,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:128,1
    - Dst: buffer::data
      Src: /src/libtorrent/test/test_buffer.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:129,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:132,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_buffer.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:136,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:136,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:138,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:138,1
    - Dst: buffer::data
      Src: /src/libtorrent/test/test_buffer.cpp:138,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:139,1
    - Dst: buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::memcmp
    - buffer::size
    - buffer::data
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(buffer_move_assign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/test/test_buffer.cpp:149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:150,1
    - Dst: end
      Src: /src/libtorrent/test/test_buffer.cpp:150,1
    - Dst: erase
      Src: /src/libtorrent/test/test_buffer.cpp:152,1
    - Dst: std::free
      Src: /src/libtorrent/test/test_buffer.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: free_buffer
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    - std::free
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void free_buffer(char* m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char*>
      Src: /src/libtorrent/test/test_buffer.cpp:158,1
    - Dst: std::malloc
      Src: /src/libtorrent/test/test_buffer.cpp:158,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_buffer.cpp:158,1
    - Dst: insert
      Src: /src/libtorrent/test/test_buffer.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: allocate_buffer
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::malloc
    - insert
    - std::size_t
    - static_cast<char*>
    linkageType: ''
    returnType: char
    signature: char * allocate_buffer(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtorrent/test/test_buffer.cpp:169,1
    - Dst: data
      Src: /src/libtorrent/test/test_buffer.cpp:169,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:169,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:170,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' b'
    - target
    argTypes:
    - T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: copy_buffers
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - size
    - memcpy
    - data
    linkageType: ''
    returnType: int
    signature: int copy_buffers(T const& b, char* target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_buffer.cpp:179,1
    - Dst: build_iovec
      Src: /src/libtorrent/test/test_buffer.cpp:180,1
    - Dst: copy_buffers
      Src: /src/libtorrent/test/test_buffer.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:182,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:183,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_buffer.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' b'
    - mem
    - size
    argTypes:
    - chained_buffer
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: compare_chained_buffer
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - copy_buffers
    - std::memcmp
    - build_iovec
    - std::size_t
    - TEST_CHECK
    linkageType: ''
    returnType: bool
    signature: bool compare_chained_buffer(chained_buffer& b, char const* mem, int
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: holder
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void holder(char* buf, std::size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: ~holder()
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: void
    signature: void ~holder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: holder
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void holder(holder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& operator=(holder const&)'
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: holder
    signature: holder & operator=(holder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: holder
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void holder(holder&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: '& operator=(holder&& rhs)'
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: holder
    signature: holder & operator=(holder&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: data
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 120
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: size
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 214
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/test/test_buffer.cpp:149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:150,1
    - Dst: end
      Src: /src/libtorrent/test/test_buffer.cpp:150,1
    - Dst: erase
      Src: /src/libtorrent/test/test_buffer.cpp:152,1
    - Dst: std::free
      Src: /src/libtorrent/test/test_buffer.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: free_buffer
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 1
    functionsReached:
    - erase
    - end
    - find
    - std::free
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void free_buffer(char* m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char*>
      Src: /src/libtorrent/test/test_buffer.cpp:158,1
    - Dst: std::malloc
      Src: /src/libtorrent/test/test_buffer.cpp:158,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_buffer.cpp:158,1
    - Dst: insert
      Src: /src/libtorrent/test/test_buffer.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: allocate_buffer
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::malloc
    - insert
    - std::size_t
    - static_cast<char*>
    linkageType: ''
    returnType: char
    signature: char * allocate_buffer(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtorrent/test/test_buffer.cpp:169,1
    - Dst: data
      Src: /src/libtorrent/test/test_buffer.cpp:169,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:169,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:170,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' b'
    - target
    argTypes:
    - T
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: copy_buffers
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 1
    functionsReached:
    - size
    - memcpy
    - data
    linkageType: ''
    returnType: int
    signature: int copy_buffers(T const& b, char* target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_buffer.cpp:179,1
    - Dst: build_iovec
      Src: /src/libtorrent/test/test_buffer.cpp:180,1
    - Dst: copy_buffers
      Src: /src/libtorrent/test/test_buffer.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:182,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_buffer.cpp:183,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_buffer.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' b'
    - mem
    - size
    argTypes:
    - chained_buffer
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: compare_chained_buffer
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - copy_buffers
    - std::memcmp
    - build_iovec
    - std::size_t
    - TEST_CHECK
    linkageType: ''
    returnType: bool
    signature: bool compare_chained_buffer(chained_buffer& b, char const* mem, int
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: holder
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void holder(char* buf, std::size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: ~holder()
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: void
    signature: void ~holder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: holder
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void holder(holder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& operator=(holder const&)'
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: holder
    signature: holder & operator=(holder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: holder
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void holder(holder&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: '& operator=(holder&& rhs)'
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: holder
    signature: holder & operator=(holder&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: data
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 121
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: size
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 215
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:209,1
    - Dst: chained_buffer::empty
      Src: /src/libtorrent/test/test_buffer.cpp:209,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:210,1
    - Dst: chained_buffer::capacity
      Src: /src/libtorrent/test/test_buffer.cpp:210,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:211,1
    - Dst: chained_buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:211,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:212,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:212,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:213,1
    - Dst: empty
      Src: /src/libtorrent/test/test_buffer.cpp:213,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:217,1
    - Dst: chained_buffer::allocate_appendix
      Src: /src/libtorrent/test/test_buffer.cpp:217,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/test/test_buffer.cpp:217,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:219,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_buffer.cpp:220,1
    - Dst: chained_buffer::append_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:221,1
    - Dst: holder
      Src: /src/libtorrent/test/test_buffer.cpp:221,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:222,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:224,1
    - Dst: chained_buffer::capacity
      Src: /src/libtorrent/test/test_buffer.cpp:224,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:225,1
    - Dst: chained_buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:225,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:226,1
    - Dst: chained_buffer::empty
      Src: /src/libtorrent/test/test_buffer.cpp:226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:227,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:227,1
    - Dst: chained_buffer::pop_front
      Src: /src/libtorrent/test/test_buffer.cpp:229,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:231,1
    - Dst: chained_buffer::capacity
      Src: /src/libtorrent/test/test_buffer.cpp:231,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:232,1
    - Dst: chained_buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:233,1
    - Dst: chained_buffer::empty
      Src: /src/libtorrent/test/test_buffer.cpp:233,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:234,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:234,1
    - Dst: chained_buffer::append
      Src: /src/libtorrent/test/test_buffer.cpp:236,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:238,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:239,1
    - Dst: chained_buffer::capacity
      Src: /src/libtorrent/test/test_buffer.cpp:239,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:240,1
    - Dst: chained_buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:241,1
    - Dst: chained_buffer::empty
      Src: /src/libtorrent/test/test_buffer.cpp:241,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:242,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:242,1
    - Dst: chained_buffer::append
      Src: /src/libtorrent/test/test_buffer.cpp:245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:247,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:249,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_buffer.cpp:250,1
    - Dst: chained_buffer::append_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:251,1
    - Dst: holder
      Src: /src/libtorrent/test/test_buffer.cpp:251,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:252,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:252,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:254,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_buffer.cpp:255,1
    - Dst: chained_buffer::append_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:256,1
    - Dst: holder
      Src: /src/libtorrent/test/test_buffer.cpp:256,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:257,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:257,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:259,1
    - Dst: chained_buffer::capacity
      Src: /src/libtorrent/test/test_buffer.cpp:259,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:260,1
    - Dst: chained_buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:260,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:261,1
    - Dst: chained_buffer::empty
      Src: /src/libtorrent/test/test_buffer.cpp:261,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:262,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:262,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:264,1
    - Dst: compare_chained_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:264,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:267,1
    - Dst: compare_chained_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:267,1
    - Dst: chained_buffer::pop_front
      Src: /src/libtorrent/test/test_buffer.cpp:269,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:271,1
    - Dst: size
      Src: /src/libtorrent/test/test_buffer.cpp:271,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:272,1
    - Dst: chained_buffer::capacity
      Src: /src/libtorrent/test/test_buffer.cpp:272,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:273,1
    - Dst: chained_buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:273,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:274,1
    - Dst: chained_buffer::empty
      Src: /src/libtorrent/test/test_buffer.cpp:274,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:275,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:275,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:278,1
    - Dst: compare_chained_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:278,1
    - Dst: chained_buffer::pop_front
      Src: /src/libtorrent/test/test_buffer.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:284,1
    - Dst: compare_chained_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:284,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:285,1
    - Dst: chained_buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:285,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:288,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_buffer.cpp:289,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_buffer.cpp:290,1
    - Dst: chained_buffer::append_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:291,1
    - Dst: holder
      Src: /src/libtorrent/test/test_buffer.cpp:291,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:292,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:292,1
    - Dst: chained_buffer::append
      Src: /src/libtorrent/test/test_buffer.cpp:294,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:295,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:296,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:296,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:297,1
    - Dst: chained_buffer::append
      Src: /src/libtorrent/test/test_buffer.cpp:298,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:299,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:300,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:300,1
    - Dst: chained_buffer::space_in_last_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:301,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:303,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_buffer.cpp:304,1
    - Dst: chained_buffer::append_buffer
      Src: /src/libtorrent/test/test_buffer.cpp:305,1
    - Dst: holder
      Src: /src/libtorrent/test/test_buffer.cpp:305,1
    - Dst: chained_buffer::pop_front
      Src: /src/libtorrent/test/test_buffer.cpp:307,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_buffer.cpp:308,1
    - Dst: chained_buffer::size
      Src: /src/libtorrent/test/test_buffer.cpp:308,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_buffer.cpp:310,1
    - Dst: empty
      Src: /src/libtorrent/test/test_buffer.cpp:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 311
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_buffer.cpp
    functionUses: 0
    functionsReached:
    - chained_buffer::allocate_appendix
    - TEST_EQUAL
    - chained_buffer::append_buffer
    - chained_buffer::append
    - std::memcpy
    - compare_chained_buffer
    - allocate_buffer
    - chained_buffer::size
    - empty
    - chained_buffer::empty
    - holder
    - chained_buffer::capacity
    - static_cast<char*>
    - chained_buffer::space_in_last_buffer
    - chained_buffer::pop_front
    - size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(chained_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_default_storage_constructor
      Src: /src/libtorrent/test/test_session_params.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: dht_custom_storage_constructor
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::dht_default_storage_constructor
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> dht_custom_storage_constructor(\n\t\tsettings_interface
      const& settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_session_params.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - session_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: added
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void added(session_handle const& h) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_default_storage_constructor
      Src: /src/libtorrent/test/test_session_params.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: dht_custom_storage_constructor
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::dht_default_storage_constructor
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> dht_custom_storage_constructor(\n\t\tsettings_interface
      const& settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_session_params.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - session_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: added
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void added(session_handle const& h) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:86,1
    - Dst: session_params::extensions::size
      Src: /src/libtorrent/test/test_session_params.cpp:86,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:88,1
    - Dst: session_params::extensions::size
      Src: /src/libtorrent/test/test_session_params.cpp:88,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:93,1
    - Dst: session_params::extensions::size
      Src: /src/libtorrent/test/test_session_params.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - session_params::extensions::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(default_plugins)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session_params.cpp:100,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session_params.cpp:101,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session_params.cpp:106,1
    - Dst: lt::session::is_dht_running
      Src: /src/libtorrent/test/test_session_params.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::session::is_dht_running
    - settings
    - settings_pack::set_bool
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(custom_dht_storage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session_params.cpp:112,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session_params.cpp:113,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session_params.cpp:114,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session_params.cpp:115,1
    - Dst: dht_state::nids::emplace_back
      Src: /src/libtorrent/test/test_session_params.cpp:118,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_session_params.cpp:118,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_session_params.cpp:118,1
    - Dst: dht_state::nodes::push_back
      Src: /src/libtorrent/test/test_session_params.cpp:119,1
    - Dst: uep
      Src: /src/libtorrent/test/test_session_params.cpp:119,1
    - Dst: dht_state::nodes::push_back
      Src: /src/libtorrent/test/test_session_params.cpp:120,1
    - Dst: uep
      Src: /src/libtorrent/test/test_session_params.cpp:120,1
    - Dst: dht_state::nids::emplace_back
      Src: /src/libtorrent/test/test_session_params.cpp:122,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_session_params.cpp:122,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_session_params.cpp:122,1
    - Dst: session_params::settings::set_str
      Src: /src/libtorrent/test/test_session_params.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session_params.cpp:130,1
    - Dst: lt::session::is_dht_running
      Src: /src/libtorrent/test/test_session_params.cpp:130,1
    - Dst: lt::session::session_state
      Src: /src/libtorrent/test/test_session_params.cpp:131,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:132,1
    - Dst: session_params::settings::get_int
      Src: /src/libtorrent/test/test_session_params.cpp:132,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:133,1
    - Dst: session_params::settings::get_int
      Src: /src/libtorrent/test/test_session_params.cpp:133,1
    - Dst: write_session_params
      Src: /src/libtorrent/test/test_session_params.cpp:134,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_session_params.cpp:137,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_session_params.cpp:137,1
    - Dst: read_session_params
      Src: /src/libtorrent/test/test_session_params.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:140,1
    - Dst: session_params::settings::get_int
      Src: /src/libtorrent/test/test_session_params.cpp:140,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:141,1
    - Dst: session_params::settings::get_int
      Src: /src/libtorrent/test/test_session_params.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:143,1
    - Dst: session_params::dht_state::nids::size
      Src: /src/libtorrent/test/test_session_params.cpp:143,1
    - Dst: session_params::dht_state::nids::size
      Src: /src/libtorrent/test/test_session_params.cpp:145,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session_params.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 150
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - addr6
    - dht_state::nodes::push_back
    - lt::session::is_dht_running
    - addr4
    - to_hash
    - session_params::settings::get_int
    - session_params::dht_state::nids::size
    - write_session_params
    - dht_state::nids::emplace_back
    - settings_pack::set_bool
    - uep
    - TEST_EQUAL
    - read_session_params
    - bencode
    - TEST_CHECK
    - lt::session::session_state
    - std::back_inserter
    - settings
    - settings_pack::set_int
    - session_params::settings::set_str
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name_for_setting
      Src: /src/libtorrent/test/test_session_params.cpp:161,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_session_params.cpp:161,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_session_params.cpp:162,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_session_params.cpp:162,1
    - Dst: name_for_setting
      Src: /src/libtorrent/test/test_session_params.cpp:167,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_session_params.cpp:167,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session_params.cpp:168,1
    - Dst: name_for_setting
      Src: /src/libtorrent/test/test_session_params.cpp:173,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_session_params.cpp:173,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session_params.cpp:174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 177
    functionName: test_pack
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::string
    - name_for_setting
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack test_pack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:182,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:183,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/test/test_session_params.cpp:184,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/test/test_session_params.cpp:184,1
    - Dst: dht::dht_state::nodes::push_back
      Src: /src/libtorrent/test/test_session_params.cpp:186,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_session_params.cpp:186,1
    - Dst: dht::dht_state::nodes::push_back
      Src: /src/libtorrent/test/test_session_params.cpp:188,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_session_params.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: test_state
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_id
    - rand_udp_ep
    - dht::dht_state::nodes::push_back
    - make_address
    linkageType: ''
    returnType: dht::dht_state
    signature: dht::dht_state test_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_session_params.cpp:195,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:195,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:195,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_session_params.cpp:196,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:196,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: test_ip_filter
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - make_address
    - ip_filter::add_rule
    linkageType: ''
    returnType: ip_filter
    signature: ip_filter test_ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pack
      Src: /src/libtorrent/test/test_session_params.cpp:203,1
    - Dst: test_state
      Src: /src/libtorrent/test/test_session_params.cpp:204,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_session_params.cpp:206,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_session_params.cpp:206,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_session_params.cpp:206,1
    - Dst: test_ip_filter
      Src: /src/libtorrent/test/test_session_params.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: test_params
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - test_pack
    - test_ip_filter
    - std::string
    - test_state
    linkageType: ''
    returnType: session_params
    signature: session_params test_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - dht::dht_state
    - dht::dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: operator==(dht::dht_state const& lhs, dht::dht_state const& rhs)
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(dht::dht_state const& lhs, dht::dht_state const& rhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/libtorrent/test/test_session_params.cpp:222,1
    - Dst: get_str
      Src: /src/libtorrent/test/test_session_params.cpp:222,1
    - Dst: get_int
      Src: /src/libtorrent/test/test_session_params.cpp:224,1
    - Dst: get_int
      Src: /src/libtorrent/test/test_session_params.cpp:224,1
    - Dst: get_bool
      Src: /src/libtorrent/test/test_session_params.cpp:226,1
    - Dst: get_bool
      Src: /src/libtorrent/test/test_session_params.cpp:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - lt::settings_pack
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: operator==(lt::settings_pack const& lhs, lt::settings_pack const&
      rhs)
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - get_int
    - get_bool
    linkageType: ''
    returnType: bool
    signature: bool operator==(lt::settings_pack const& lhs, lt::settings_pack const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:232,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:232,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:232,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:233,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:233,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:233,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:234,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:234,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:235,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:235,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:236,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:236,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:236,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:237,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:237,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:237,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:238,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:238,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - ip_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 239
    functionName: test_ip_filter
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 1
    functionsReached:
    - TEST_EQUAL
    - access
    - make_address
    linkageType: ''
    returnType: void
    signature: void test_ip_filter(ip_filter const& f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name_for_setting
      Src: /src/libtorrent/test/test_session_params.cpp:161,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_session_params.cpp:161,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_session_params.cpp:162,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_session_params.cpp:162,1
    - Dst: name_for_setting
      Src: /src/libtorrent/test/test_session_params.cpp:167,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_session_params.cpp:167,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session_params.cpp:168,1
    - Dst: name_for_setting
      Src: /src/libtorrent/test/test_session_params.cpp:173,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_session_params.cpp:173,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session_params.cpp:174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 177
    functionName: test_pack
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - std::string
    - name_for_setting
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack test_pack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:182,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:183,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/test/test_session_params.cpp:184,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/test/test_session_params.cpp:184,1
    - Dst: dht::dht_state::nodes::push_back
      Src: /src/libtorrent/test/test_session_params.cpp:186,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_session_params.cpp:186,1
    - Dst: dht::dht_state::nodes::push_back
      Src: /src/libtorrent/test/test_session_params.cpp:188,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_session_params.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: test_state
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::generate_id
    - rand_udp_ep
    - dht::dht_state::nodes::push_back
    - make_address
    linkageType: ''
    returnType: dht::dht_state
    signature: dht::dht_state test_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_session_params.cpp:195,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:195,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:195,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_session_params.cpp:196,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:196,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: test_ip_filter
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 1
    functionsReached:
    - make_address
    - ip_filter::add_rule
    linkageType: ''
    returnType: ip_filter
    signature: ip_filter test_ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pack
      Src: /src/libtorrent/test/test_session_params.cpp:203,1
    - Dst: test_state
      Src: /src/libtorrent/test/test_session_params.cpp:204,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_session_params.cpp:206,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_session_params.cpp:206,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_session_params.cpp:206,1
    - Dst: test_ip_filter
      Src: /src/libtorrent/test/test_session_params.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: test_params
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - test_pack
    - test_ip_filter
    - std::string
    - test_state
    linkageType: ''
    returnType: session_params
    signature: session_params test_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - dht::dht_state
    - dht::dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: operator==(dht::dht_state const& lhs, dht::dht_state const& rhs)
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(dht::dht_state const& lhs, dht::dht_state const& rhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/libtorrent/test/test_session_params.cpp:222,1
    - Dst: get_str
      Src: /src/libtorrent/test/test_session_params.cpp:222,1
    - Dst: get_int
      Src: /src/libtorrent/test/test_session_params.cpp:224,1
    - Dst: get_int
      Src: /src/libtorrent/test/test_session_params.cpp:224,1
    - Dst: get_bool
      Src: /src/libtorrent/test/test_session_params.cpp:226,1
    - Dst: get_bool
      Src: /src/libtorrent/test/test_session_params.cpp:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - lt::settings_pack
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: operator==(lt::settings_pack const& lhs, lt::settings_pack const&
      rhs)
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - get_int
    - get_bool
    linkageType: ''
    returnType: bool
    signature: bool operator==(lt::settings_pack const& lhs, lt::settings_pack const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:232,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:232,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:232,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:233,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:233,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:233,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:234,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:234,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:235,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:235,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:236,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:236,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:236,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:237,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:237,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:237,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:238,1
    - Dst: access
      Src: /src/libtorrent/test/test_session_params.cpp:238,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_session_params.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - ip_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 239
    functionName: test_ip_filter
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - access
    - make_address
    linkageType: ''
    returnType: void
    signature: void test_ip_filter(ip_filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ip_filter
      Src: /src/libtorrent/test/test_session_params.cpp:246,1
    - Dst: test_ip_filter
      Src: /src/libtorrent/test/test_session_params.cpp:248,1
    - Dst: write_session_params_buf
      Src: /src/libtorrent/test/test_session_params.cpp:250,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_session_params.cpp:253,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_session_params.cpp:253,1
    - Dst: static_cast<std::streamsize>
      Src: /src/libtorrent/test/test_session_params.cpp:253,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_session_params.cpp:253,1
    - Dst: read_session_params
      Src: /src/libtorrent/test/test_session_params.cpp:255,1
    - Dst: test_ip_filter
      Src: /src/libtorrent/test/test_session_params.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - write_session_params_buf
    - std::vector::data
    - std::vector::size
    - read_session_params
    - test_ip_filter
    - std::ofstream::write
    - static_cast<std::streamsize>
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_params_ip_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_params
      Src: /src/libtorrent/test/test_session_params.cpp:262,1
    - Dst: write_session_params_buf
      Src: /src/libtorrent/test/test_session_params.cpp:264,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_session_params.cpp:267,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_session_params.cpp:267,1
    - Dst: static_cast<std::streamsize>
      Src: /src/libtorrent/test/test_session_params.cpp:267,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_session_params.cpp:267,1
    - Dst: read_session_params
      Src: /src/libtorrent/test/test_session_params.cpp:269,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session_params.cpp:271,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session_params.cpp:272,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session_params.cpp:273,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session_params.cpp:274,1
    - Dst: session_params::ip_filter::export_filter
      Src: /src/libtorrent/test/test_session_params.cpp:274,1
    - Dst: session_params::ip_filter::export_filter
      Src: /src/libtorrent/test/test_session_params.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - write_session_params_buf
    - session_params::ip_filter::export_filter
    - std::vector::data
    - std::vector::size
    - read_session_params
    - std::ofstream::write
    - test_params
    - static_cast<std::streamsize>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_params_round_trip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_params::extensions::push_back
      Src: /src/libtorrent/test/test_session_params.cpp:282,1
    - Dst: std::make_shared<custom_plugin>
      Src: /src/libtorrent/test/test_session_params.cpp:282,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session_params.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session_params.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::make_shared<custom_plugin>
    - session_params::extensions::push_back
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_info*::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:88,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_resume.cpp:88,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_resume.cpp:89,1
    - Dst: torrent_info*::piece_length
      Src: /src/libtorrent/test/test_resume.cpp:89,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:90,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:90,1
    - Dst: torrent_info*::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:90,1
    - Dst: time
      Src: /src/libtorrent/test/test_resume.cpp:105,1
    - Dst: time
      Src: /src/libtorrent/test/test_resume.cpp:106,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:111,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:113,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:113,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:116,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:116,1
    - Dst: torrent_info*::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:116,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:120,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:121,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:121,1
    - Dst: back
      Src: /src/libtorrent/test/test_resume.cpp:122,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:122,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:123,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:124,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:124,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:126,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:127,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:127,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:136,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:138,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_resume.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ti
    argTypes:
    - torrent_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 141
    functionName: generate_resume_data
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - push_back
    - back_inserter
    - torrent_info*::piece_length
    - entry
    - torrent_info*::info_hashes
    - list
    - std::string
    - entry::to_string
    - torrent_info*::num_pieces
    - std::max
    - std::size_t
    - back
    - time
    - std::printf
    - bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: "std::vector<char> generate_resume_data(torrent_info* ti\n\t, char
      const* file_priorities = \"\")"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:149,1
    - Dst: generate_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:152,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/test/test_resume.cpp:152,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_resume.cpp:153,1
    - Dst: add_torrent_params::resume_data::swap
      Src: /src/libtorrent/test/test_resume.cpp:157,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_resume.cpp:159,1
    - Dst: add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/test/test_resume.cpp:160,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:170,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/test/test_resume.cpp:193,1
    - Dst: download_priority_t
      Src: /src/libtorrent/test/test_resume.cpp:193,1
    - Dst: aux::numeric_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_resume.cpp:193,1
    - Dst: add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:198,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:199,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:200,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 202
    functionName: test_resume_flags
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::status
    - download_priority_t
    - add_torrent_params::trackers::push_back
    - aux::numeric_cast<std::uint8_t>
    - read_resume_data
    - std::shared_ptr::info_hashes
    - aux::vector::push_back
    - std::shared_ptr::get
    - generate_resume_data
    - generate_torrent
    - add_torrent_params::url_seeds::push_back
    - add_torrent
    - add_torrent_params::resume_data::swap
    - TORRENT_UNUSED
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle test_resume_flags(lt::session& ses\n\t, torrent_flags_t
      const flags = torrent_flags_t{}\n\t, char const* file_priorities = \"1111\",
      char const* resume_file_prio = \"\"\n\t, bool const test_deprecated = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_resume.cpp:206,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:212,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:215,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:223,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:227,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:227,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:228,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:228,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:229,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:229,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:230,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:233,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:234,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:235,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:237,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/test/test_resume.cpp:238,1
    - Dst: last_download::time_since_epoch
      Src: /src/libtorrent/test/test_resume.cpp:239,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:240,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_resume.cpp:240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:241,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_resume.cpp:241,1
    - Dst: last_upload::time_since_epoch
      Src: /src/libtorrent/test/test_resume.cpp:243,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:244,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_resume.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:245,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_resume.cpp:245,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - ' s'
    - time_now
    argTypes:
    - torrent_status
    - lt::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 248
    functionName: default_tests
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - TEST_EQUAL
    - TORRENT_UNUSED
    - seconds
    - Catch::Timer::getElapsedNanoseconds
    - last_upload::time_since_epoch
    - last_download::time_since_epoch
    - auto::time_since_epoch
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void default_tests(torrent_status const& s, lt::time_point const time_now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:253,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:257,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:259,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:260,1
    - Dst: std::shared_ptr::last_piece
      Src: /src/libtorrent/test/test_resume.cpp:260,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:262,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:263,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:265,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:266,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:267,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:271,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_resume.cpp:271,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:271,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:272,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:273,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:274,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:274,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:274,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_resume.cpp:276,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_resume.cpp:277,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:286,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_resume.cpp:292,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:295,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:297,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:297,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:298,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:298,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:299,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:299,1
    - Dst: std::shared_ptr::last_piece
      Src: /src/libtorrent/test/test_resume.cpp:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 300
    functionName: test_piece_priorities
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::piece_priority
    - read_resume_data
    - alert_cast<save_resume_data_alert>
    - TORRENT_UNUSED
    - torrent_handle::save_resume_data
    - wait_for_alert
    - auto::size
    - lt::session::add_torrent
    - generate_torrent
    - std::size_t
    - write_resume_data_buf
    - std::shared_ptr::last_piece
    - lt::session::remove_torrent
    - std::shared_ptr::num_pieces
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_piece_priorities(bool test_deprecated = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_info*::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:88,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_resume.cpp:88,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_resume.cpp:89,1
    - Dst: torrent_info*::piece_length
      Src: /src/libtorrent/test/test_resume.cpp:89,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:90,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:90,1
    - Dst: torrent_info*::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:90,1
    - Dst: time
      Src: /src/libtorrent/test/test_resume.cpp:105,1
    - Dst: time
      Src: /src/libtorrent/test/test_resume.cpp:106,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:111,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:113,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:113,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:116,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:116,1
    - Dst: torrent_info*::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:116,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:120,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:121,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:121,1
    - Dst: back
      Src: /src/libtorrent/test/test_resume.cpp:122,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:122,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:123,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:124,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:124,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:126,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:127,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:127,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:136,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:138,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_resume.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ti
    argTypes:
    - torrent_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 141
    functionName: generate_resume_data
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - push_back
    - back_inserter
    - torrent_info*::piece_length
    - entry
    - torrent_info*::info_hashes
    - list
    - std::string
    - entry::to_string
    - torrent_info*::num_pieces
    - std::max
    - std::size_t
    - back
    - time
    - std::printf
    - bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: "std::vector<char> generate_resume_data(torrent_info* ti\n\t, char
      const* file_priorities = \"\")"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:149,1
    - Dst: generate_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:152,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/test/test_resume.cpp:152,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_resume.cpp:153,1
    - Dst: add_torrent_params::resume_data::swap
      Src: /src/libtorrent/test/test_resume.cpp:157,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_resume.cpp:159,1
    - Dst: add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/test/test_resume.cpp:160,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:170,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/test/test_resume.cpp:193,1
    - Dst: download_priority_t
      Src: /src/libtorrent/test/test_resume.cpp:193,1
    - Dst: aux::numeric_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_resume.cpp:193,1
    - Dst: add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:198,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:199,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:200,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 202
    functionName: test_resume_flags
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::status
    - download_priority_t
    - add_torrent_params::trackers::push_back
    - aux::numeric_cast<std::uint8_t>
    - read_resume_data
    - std::shared_ptr::info_hashes
    - aux::vector::push_back
    - std::shared_ptr::get
    - generate_resume_data
    - generate_torrent
    - add_torrent_params::url_seeds::push_back
    - add_torrent
    - add_torrent_params::resume_data::swap
    - TORRENT_UNUSED
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle test_resume_flags(lt::session& ses\n\t, torrent_flags_t
      const flags = torrent_flags_t{}\n\t, char const* file_priorities = \"1111\",
      char const* resume_file_prio = \"\"\n\t, bool const test_deprecated = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_resume.cpp:206,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:212,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:215,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:223,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:227,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:227,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:228,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:228,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:229,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:229,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:230,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:233,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:234,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:235,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:237,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/test/test_resume.cpp:238,1
    - Dst: last_download::time_since_epoch
      Src: /src/libtorrent/test/test_resume.cpp:239,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:240,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_resume.cpp:240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:241,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_resume.cpp:241,1
    - Dst: last_upload::time_since_epoch
      Src: /src/libtorrent/test/test_resume.cpp:243,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:244,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_resume.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:245,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_resume.cpp:245,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - ' s'
    - time_now
    argTypes:
    - torrent_status
    - lt::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 248
    functionName: default_tests
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - TEST_EQUAL
    - TORRENT_UNUSED
    - seconds
    - Catch::Timer::getElapsedNanoseconds
    - last_upload::time_since_epoch
    - last_download::time_since_epoch
    - auto::time_since_epoch
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void default_tests(torrent_status const& s, lt::time_point const time_now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:253,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:257,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:259,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:260,1
    - Dst: std::shared_ptr::last_piece
      Src: /src/libtorrent/test/test_resume.cpp:260,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:262,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:263,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:265,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:266,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:267,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:271,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_resume.cpp:271,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:271,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:272,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:273,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:274,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:274,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:274,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_resume.cpp:276,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_resume.cpp:277,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:286,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_resume.cpp:292,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:295,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:297,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:297,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:298,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:298,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:299,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_resume.cpp:299,1
    - Dst: std::shared_ptr::last_piece
      Src: /src/libtorrent/test/test_resume.cpp:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 300
    functionName: test_piece_priorities
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::piece_priority
    - read_resume_data
    - alert_cast<save_resume_data_alert>
    - TORRENT_UNUSED
    - torrent_handle::save_resume_data
    - wait_for_alert
    - auto::size
    - lt::session::add_torrent
    - generate_torrent
    - std::size_t
    - write_resume_data_buf
    - std::shared_ptr::last_piece
    - lt::session::remove_torrent
    - std::shared_ptr::num_pieces
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_piece_priorities(bool test_deprecated = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_piece_priorities
      Src: /src/libtorrent/test/test_resume.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_piece_priorities
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_priorities_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_piece_priorities
      Src: /src/libtorrent/test/test_resume.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_piece_priorities
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_priorities)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:325,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:329,1
    - Dst: torrent_handle::replace_trackers
      Src: /src/libtorrent/test/test_resume.cpp:331,1
    - Dst: torrent_handle::remove_url_seed
      Src: /src/libtorrent/test/test_resume.cpp:332,1
    - Dst: torrent_handle::add_url_seed
      Src: /src/libtorrent/test/test_resume.cpp:333,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:335,1
    - Dst: std::shared_ptr::comment
      Src: /src/libtorrent/test/test_resume.cpp:335,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:336,1
    - Dst: std::shared_ptr::creator
      Src: /src/libtorrent/test/test_resume.cpp:336,1
    - Dst: std::shared_ptr::creation_date
      Src: /src/libtorrent/test/test_resume.cpp:337,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:339,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:340,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:342,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:343,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:344,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:348,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:349,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:350,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:351,1
    - Dst: ti::comment
      Src: /src/libtorrent/test/test_resume.cpp:351,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:352,1
    - Dst: ti::creator
      Src: /src/libtorrent/test/test_resume.cpp:352,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:353,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/test/test_resume.cpp:353,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_resume.cpp:355,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:356,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_resume.cpp:361,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:364,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:366,1
    - Dst: torrent_handle::trackers
      Src: /src/libtorrent/test/test_resume.cpp:366,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:367,1
    - Dst: torrent_handle::trackers
      Src: /src/libtorrent/test/test_resume.cpp:367,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:368,1
    - Dst: torrent_handle::url_seeds
      Src: /src/libtorrent/test/test_resume.cpp:368,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:369,1
    - Dst: lock
      Src: /src/libtorrent/test/test_resume.cpp:369,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:370,1
    - Dst: std::shared_ptr::comment
      Src: /src/libtorrent/test/test_resume.cpp:370,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:371,1
    - Dst: std::shared_ptr::creator
      Src: /src/libtorrent/test/test_resume.cpp:371,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:372,1
    - Dst: std::shared_ptr::creation_date
      Src: /src/libtorrent/test/test_resume.cpp:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 373
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::add_url_seed
    - std::shared_ptr::creation_date
    - torrent_handle::remove_url_seed
    - torrent_handle::status
    - std::shared_ptr::creator
    - ti::comment
    - torrent_handle::save_resume_data
    - generate_torrent
    - write_resume_data_buf
    - ti::creation_date
    - ti::creator
    - TEST_EQUAL
    - read_resume_data
    - torrent_handle::replace_trackers
    - lt::session::add_torrent
    - lock
    - lt::session::remove_torrent
    - TEST_CHECK
    - alert_cast<save_resume_data_alert>
    - wait_for_alert
    - torrent_handle::trackers
    - torrent_handle::url_seeds
    - std::shared_ptr::comment
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_non_metadata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:381,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:385,1
    - Dst: torrent_handle::replace_trackers
      Src: /src/libtorrent/test/test_resume.cpp:387,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:389,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:390,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:392,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:393,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:394,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:398,1
    - Dst: trackers::size
      Src: /src/libtorrent/test/test_resume.cpp:398,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_resume.cpp:400,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:401,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_resume.cpp:406,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:409,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:411,1
    - Dst: torrent_handle::trackers
      Src: /src/libtorrent/test/test_resume.cpp:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 412
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - trackers::size
    - read_resume_data
    - torrent_handle::replace_trackers
    - alert_cast<save_resume_data_alert>
    - torrent_handle::save_resume_data
    - wait_for_alert
    - torrent_handle::trackers
    - lt::session::add_torrent
    - generate_torrent
    - write_resume_data_buf
    - lt::session::remove_torrent
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_remove_trackers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:420,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:424,1
    - Dst: torrent_handle::remove_url_seed
      Src: /src/libtorrent/test/test_resume.cpp:426,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:428,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:429,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:431,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:432,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:433,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:437,1
    - Dst: url_seeds::size
      Src: /src/libtorrent/test/test_resume.cpp:437,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_resume.cpp:439,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:440,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_resume.cpp:445,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:448,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:450,1
    - Dst: torrent_handle::url_seeds
      Src: /src/libtorrent/test/test_resume.cpp:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 451
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - read_resume_data
    - alert_cast<save_resume_data_alert>
    - torrent_handle::save_resume_data
    - url_seeds::size
    - wait_for_alert
    - lt::session::add_torrent
    - generate_torrent
    - write_resume_data_buf
    - torrent_handle::url_seeds
    - lt::session::remove_torrent
    - torrent_handle::remove_url_seed
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_remove_web_seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:456,1
    - Dst: create_directories
      Src: /src/libtorrent/test/test_resume.cpp:459,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:463,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:463,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:463,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:464,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:464,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:464,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:464,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:465,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:465,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:465,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:465,1
    - Dst: add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/test/test_resume.cpp:472,1
    - Dst: add_torrent_params::have_pieces::set_bit
      Src: /src/libtorrent/test/test_resume.cpp:473,1
    - Dst: add_torrent_params::have_pieces::set_bit
      Src: /src/libtorrent/test/test_resume.cpp:474,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:477,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:479,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:481,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_resume.cpp:482,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:483,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:483,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:484,1
    - Dst: torrent_status::pieces::size
      Src: /src/libtorrent/test/test_resume.cpp:484,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:484,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:485,1
    - Dst: torrent_status::pieces::size
      Src: /src/libtorrent/test/test_resume.cpp:485,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:486,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:487,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:488,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:489,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:492,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:493,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:495,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:496,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:497,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:501,1
    - Dst: size
      Src: /src/libtorrent/test/test_resume.cpp:501,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:501,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:503,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:504,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:505,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 508
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - torrent_handle::status
    - create_directories
    - print_alerts
    - torrent_handle::save_resume_data
    - generate_torrent
    - TEST_EQUAL
    - torrent_status::pieces::size
    - ofstream
    - add_torrent_params::have_pieces::set_bit
    - lt::session::add_torrent
    - std::shared_ptr::num_pieces
    - size
    - TEST_CHECK
    - std::streamsize
    - add_torrent_params::have_pieces::resize
    - std::vector::data
    - std::shared_ptr::info_hashes
    - alert_cast<save_resume_data_alert>
    - wait_for_alert
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_slots)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:515,1
    - Dst: create_directories
      Src: /src/libtorrent/test/test_resume.cpp:518,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_resume.cpp:518,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:522,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:522,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:522,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:522,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:523,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:523,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:523,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:523,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:524,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:524,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:524,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:524,1
    - Dst: add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/test/test_resume.cpp:531,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:531,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:534,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:536,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:538,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_resume.cpp:539,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:540,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:540,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:541,1
    - Dst: torrent_status::pieces::size
      Src: /src/libtorrent/test/test_resume.cpp:541,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:541,1
    - Dst: std::shared_ptr::piece_range
      Src: /src/libtorrent/test/test_resume.cpp:542,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:544,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:547,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:550,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:551,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:553,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:554,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:555,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:559,1
    - Dst: size
      Src: /src/libtorrent/test/test_resume.cpp:559,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:559,1
    - Dst: std::shared_ptr::piece_range
      Src: /src/libtorrent/test/test_resume.cpp:561,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 566
    functionName: test_piece_slots_seed
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - torrent_handle::status
    - create_directories
    - print_alerts
    - torrent_handle::save_resume_data
    - generate_torrent
    - TEST_EQUAL
    - torrent_status::pieces::size
    - ofstream
    - lt::session::add_torrent
    - std::shared_ptr::num_pieces
    - size
    - TEST_CHECK
    - std::streamsize
    - add_torrent_params::have_pieces::resize
    - std::vector::data
    - combine_path
    - std::shared_ptr::info_hashes
    - alert_cast<save_resume_data_alert>
    - std::shared_ptr::piece_range
    - wait_for_alert
    linkageType: ''
    returnType: void
    signature: void test_piece_slots_seed(settings_pack const& sett)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:515,1
    - Dst: create_directories
      Src: /src/libtorrent/test/test_resume.cpp:518,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_resume.cpp:518,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:522,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:522,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:522,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:522,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:523,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:523,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:523,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:523,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_resume.cpp:524,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_resume.cpp:524,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_resume.cpp:524,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:524,1
    - Dst: add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/test/test_resume.cpp:531,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:531,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:534,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:536,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:538,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_resume.cpp:539,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:540,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:540,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:541,1
    - Dst: torrent_status::pieces::size
      Src: /src/libtorrent/test/test_resume.cpp:541,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:541,1
    - Dst: std::shared_ptr::piece_range
      Src: /src/libtorrent/test/test_resume.cpp:542,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:544,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:547,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:550,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:551,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:553,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:554,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:555,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:559,1
    - Dst: size
      Src: /src/libtorrent/test/test_resume.cpp:559,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:559,1
    - Dst: std::shared_ptr::piece_range
      Src: /src/libtorrent/test/test_resume.cpp:561,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 566
    functionName: test_piece_slots_seed
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - torrent_handle::status
    - create_directories
    - print_alerts
    - torrent_handle::save_resume_data
    - generate_torrent
    - TEST_EQUAL
    - torrent_status::pieces::size
    - ofstream
    - lt::session::add_torrent
    - std::shared_ptr::num_pieces
    - size
    - TEST_CHECK
    - std::streamsize
    - add_torrent_params::have_pieces::resize
    - std::vector::data
    - combine_path
    - std::shared_ptr::info_hashes
    - alert_cast<save_resume_data_alert>
    - std::shared_ptr::piece_range
    - wait_for_alert
    linkageType: ''
    returnType: void
    signature: void test_piece_slots_seed(settings_pack const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_piece_slots_seed
      Src: /src/libtorrent/test/test_resume.cpp:572,1
    - Dst: settings
      Src: /src/libtorrent/test/test_resume.cpp:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - settings
    - test_piece_slots_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_slots_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_resume.cpp:577,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_resume.cpp:578,1
    - Dst: test_piece_slots_seed
      Src: /src/libtorrent/test/test_resume.cpp:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - settings
    - test_piece_slots_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_slots_seed_suggest_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:594,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:597,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:597,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:598,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:599,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 601
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_default_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:608,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:610,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:610,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:611,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:612,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 614
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_in_resume_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:621,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:623,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:623,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:624,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:625,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 627
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_in_resume_and_params_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:633,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:636,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:636,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:637,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:638,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 640
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_override_resume_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:647,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:650,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:650,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:651,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:652,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 643
    functionDepth: 3
    functionLinenumber: 643
    functionLinenumberEnd: 654
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_resume_share_mode_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:660,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:663,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:663,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:664,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:665,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 667
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_share_mode_deprecated)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:673,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:675,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:677,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:678,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:681,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:686,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_resume.cpp:686,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:687,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:688,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 690
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - alert_cast<save_resume_data_alert>
    - torrent_handle::save_resume_data
    - wait_for_alert
    - auto::size
    - test_resume_flags
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_save_load_deprecated)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:695,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:697,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:699,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:700,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:703,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:708,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_resume.cpp:708,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:709,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:710,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 712
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - alert_cast<save_resume_data_alert>
    - torrent_handle::save_resume_data
    - wait_for_alert
    - auto::size
    - test_resume_flags
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_save_load_resume_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:720,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:723,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:723,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:724,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:725,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 727
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_resume_override_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:732,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:734,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:734,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:735,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:736,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 738
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_resume_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:743,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:745,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:745,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:746,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:747,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 751
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities1_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:756,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:758,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:758,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:759,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:760,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 762
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities2_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:767,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:769,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:769,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:770,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:771,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 773
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities3_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:779,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:780,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:781,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:783,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:785,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:787,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:788,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 790
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(plain_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:795,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:796,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:798,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:800,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:802,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:804,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:805,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 807
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(use_resume_save_path_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:812,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:813,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:817,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:819,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:821,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:823,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:824,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 809
    functionDepth: 3
    functionLinenumber: 809
    functionLinenumberEnd: 826
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(override_resume_data_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:831,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:832,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:834,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:835,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:836,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 838
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:843,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:844,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:846,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:848,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:850,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:852,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:853,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 840
    functionDepth: 3
    functionLinenumber: 840
    functionLinenumberEnd: 855
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upload_mode_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:861,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:862,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:865,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:867,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:869,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:871,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:872,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 874
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(share_mode_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:881,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:882,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:884,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:886,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:888,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:890,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:891,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 877
    functionDepth: 3
    functionLinenumber: 877
    functionLinenumberEnd: 893
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(auto_managed_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:899,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:900,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:901,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:903,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:905,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:907,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:908,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 895
    functionDepth: 3
    functionLinenumber: 895
    functionLinenumberEnd: 914
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(paused_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:919,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:921,1
    - Dst: torrent_handle::url_seeds
      Src: /src/libtorrent/test/test_resume.cpp:923,1
    - Dst: torrent_handle::http_seeds
      Src: /src/libtorrent/test/test_resume.cpp:924,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:926,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_resume.cpp:926,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:927,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_resume.cpp:927,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_resume.cpp:927,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_resume.cpp:927,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:929,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_resume.cpp:929,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_resume.cpp:929,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_resume.cpp:929,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:931,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_resume.cpp:931,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_resume.cpp:931,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_resume.cpp:931,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:934,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_resume.cpp:934,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:935,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_resume.cpp:935,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_resume.cpp:935,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_resume.cpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 937
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::count
    - std::set::begin
    - torrent_handle::http_seeds
    - std::set::end
    - torrent_handle::url_seeds
    - std::set::size
    - test_resume_flags
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_resume_data_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:942,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:944,1
    - Dst: torrent_handle::url_seeds
      Src: /src/libtorrent/test/test_resume.cpp:946,1
    - Dst: torrent_handle::http_seeds
      Src: /src/libtorrent/test/test_resume.cpp:947,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:949,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_resume.cpp:949,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:950,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_resume.cpp:950,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_resume.cpp:950,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_resume.cpp:950,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:953,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_resume.cpp:953,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:954,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_resume.cpp:954,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_resume.cpp:954,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_resume.cpp:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 956
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::count
    - std::set::begin
    - torrent_handle::http_seeds
    - std::set::end
    - torrent_handle::url_seeds
    - std::set::size
    - test_resume_flags
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_override_torrent_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:963,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:965,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:965,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:966,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:967,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 959
    functionDepth: 3
    functionLinenumber: 959
    functionLinenumberEnd: 969
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_default)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:976,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:979,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:979,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:980,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:981,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 983
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_resume_share_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:989,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:992,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:992,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:993,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:994,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 996
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_share_mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:1003,1
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1006,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1015,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_resume.cpp:1015,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_resume.cpp:1016,1
    - Dst: std::shared_ptr::piece_length
      Src: /src/libtorrent/test/test_resume.cpp:1016,1
    - Dst: entry::list_type
      Src: /src/libtorrent/test/test_resume.cpp:1019,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:1019,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:1022,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1022,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1022,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:1024,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1024,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1024,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:1028,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1028,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1028,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:1031,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:1031,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_resume.cpp:1032,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1041,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1046,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1048,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_resume.cpp:1054,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_resume.cpp:1054,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1055,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1063,1
    - Dst: std::shared_ptr::total_size
      Src: /src/libtorrent/test/test_resume.cpp:1063,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1067,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1069
    functionName: test_zero_file_prio
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::shared_ptr::piece_length
    - std::this_thread::sleep_for
    - std::max
    - torrent_handle::status
    - entry
    - generate_torrent
    - std::size_t
    - std::printf
    - entry::list_type
    - TEST_EQUAL
    - read_resume_data
    - std::shared_ptr::total_size
    - std::string
    - libtorrent::total_milliseconds
    - lt::session::add_torrent
    - std::shared_ptr::num_pieces
    - TORRENT_UNUSED
    - bencode
    - std::shared_ptr::info_hashes
    - back_inserter
    linkageType: ''
    returnType: void
    signature: void test_zero_file_prio(bool test_deprecated = false, bool mix_prios
      = false)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:1003,1
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1006,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1015,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_resume.cpp:1015,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_resume.cpp:1016,1
    - Dst: std::shared_ptr::piece_length
      Src: /src/libtorrent/test/test_resume.cpp:1016,1
    - Dst: entry::list_type
      Src: /src/libtorrent/test/test_resume.cpp:1019,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:1019,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:1022,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1022,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1022,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:1024,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1024,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1024,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:1028,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1028,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1028,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:1031,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:1031,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/test/test_resume.cpp:1032,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1041,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1046,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1048,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_resume.cpp:1054,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_resume.cpp:1054,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1055,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1063,1
    - Dst: std::shared_ptr::total_size
      Src: /src/libtorrent/test/test_resume.cpp:1063,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1067,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1069
    functionName: test_zero_file_prio
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::shared_ptr::piece_length
    - std::this_thread::sleep_for
    - std::max
    - torrent_handle::status
    - entry
    - generate_torrent
    - std::size_t
    - std::printf
    - entry::list_type
    - TEST_EQUAL
    - read_resume_data
    - std::shared_ptr::total_size
    - std::string
    - libtorrent::total_milliseconds
    - lt::session::add_torrent
    - std::shared_ptr::num_pieces
    - TORRENT_UNUSED
    - bencode
    - std::shared_ptr::info_hashes
    - back_inserter
    linkageType: ''
    returnType: void
    signature: void test_zero_file_prio(bool test_deprecated = false, bool mix_prios
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_zero_file_prio
      Src: /src/libtorrent/test/test_resume.cpp:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_zero_file_prio
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(zero_file_prio_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_zero_file_prio
      Src: /src/libtorrent/test/test_resume.cpp:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1082
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_zero_file_prio
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mixing_file_and_piece_prio_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1089,1
    - Dst: std::shared_ptr::name
      Src: /src/libtorrent/test/test_resume.cpp:1092,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1093,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_resume.cpp:1094,1
    - Dst: std::shared_ptr::info_section
      Src: /src/libtorrent/test/test_resume.cpp:1094,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:1096,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:1096,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_resume.cpp:1099,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1103,1
    - Dst: torrent_handle::torrent_file
      Src: /src/libtorrent/test/test_resume.cpp:1104,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1105,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1105,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1105,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1107
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - auto::info_hashes
    - back_inserter
    - torrent_handle::status
    - std::move
    - std::shared_ptr::info_hashes
    - session::add_torrent
    - torrent_handle::torrent_file
    - generate_torrent
    - std::shared_ptr::name
    - std::shared_ptr::info_section
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(backwards_compatible_resume_info_dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1113,1
    - Dst: lt::add_torrent_params::ti::files
      Src: /src/libtorrent/test/test_resume.cpp:1118,1
    - Dst: lt::add_torrent_params::ti::piece_layer
      Src: /src/libtorrent/test/test_resume.cpp:1120,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_resume.cpp:1121,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_resume.cpp:1121,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_resume.cpp:1121,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1125,1
    - Dst: auto::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1127,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1129,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1130,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1133,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1136,1
    - Dst: save_resume_data_alert*::params::merkle_trees::size
      Src: /src/libtorrent/test/test_resume.cpp:1136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1137,1
    - Dst: save_resume_data_alert*::params::merkle_tree_mask::size
      Src: /src/libtorrent/test/test_resume.cpp:1137,1
    - Dst: auto::piece_layers
      Src: /src/libtorrent/test/test_resume.cpp:1139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1140,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_resume.cpp:1140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:1140,1
    - Dst: lt::add_torrent_params::ti::files
      Src: /src/libtorrent/test/test_resume.cpp:1142,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1145,1
    - Dst: size
      Src: /src/libtorrent/test/test_resume.cpp:1145,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1145,1
    - Dst: size
      Src: /src/libtorrent/test/test_resume.cpp:1145,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_resume.cpp:1145,1
    - Dst: size
      Src: /src/libtorrent/test/test_resume.cpp:1146,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1147,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1147,1
    - Dst: bind_sha256_hash
      Src: /src/libtorrent/test/test_resume.cpp:1147,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1147,1
    - Dst: data
      Src: /src/libtorrent/test/test_resume.cpp:1147,1
    - Dst: test_piece_size
      Src: /src/libtorrent/test/test_resume.cpp:1147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1149,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_resume.cpp:1149,1
    - Dst: begin
      Src: /src/libtorrent/test/test_resume.cpp:1149,1
    - Dst: end
      Src: /src/libtorrent/test/test_resume.cpp:1149,1
    - Dst: size
      Src: /src/libtorrent/test/test_resume.cpp:1149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1151
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - lt::add_torrent_params::ti::piece_layer
    - lt::add_torrent_params::ti::files
    - std::vector::size
    - begin
    - std::vector::emplace_back
    - test_piece_size
    - auto::begin
    - data
    - end
    - generate_torrent
    - std::size_t
    - auto::save_resume_data
    - TEST_EQUAL
    - std::count
    - bind_sha256_hash
    - auto::size
    - lt::session::add_torrent
    - size
    - TEST_CHECK
    - save_resume_data_alert*::params::merkle_trees::size
    - alert_cast<save_resume_data_alert>
    - auto::piece_layers
    - wait_for_alert
    - auto::end
    - save_resume_data_alert*::params::merkle_tree_mask::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_trees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1158,1
    - Dst: std::shared_ptr::name
      Src: /src/libtorrent/test/test_resume.cpp:1161,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1162,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_resume.cpp:1163,1
    - Dst: std::shared_ptr::info_section
      Src: /src/libtorrent/test/test_resume.cpp:1163,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:1165,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:1165,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1169,1
    - Dst: add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1169,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1170
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - add_torrent_params::ti::info_hashes
    - back_inserter
    - read_resume_data
    - std::shared_ptr::info_hashes
    - generate_torrent
    - std::shared_ptr::name
    - std::shared_ptr::info_section
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_info_dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_zero_file_prio
      Src: /src/libtorrent/test/test_resume.cpp:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1175
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_zero_file_prio
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(zero_file_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_zero_file_prio
      Src: /src/libtorrent/test/test_resume.cpp:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1180
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_zero_file_prio
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mixing_file_and_piece_prio)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1210,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/test/test_resume.cpp:1210,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_resume.cpp:1210,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_resume.cpp:1216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1217,1
    - Dst: truncate
      Src: /src/libtorrent/test/test_resume.cpp:1222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1223,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1230,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_resume.cpp:1230,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_resume.cpp:1231,1
    - Dst: std::shared_ptr::piece_length
      Src: /src/libtorrent/test/test_resume.cpp:1231,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:1236,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:1237,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:1237,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:1242,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:1242,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1249,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1249,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:1256,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1256,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1256,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1261,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1261,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:1269,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:1269,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1281,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1286,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1299,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1302,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:1302,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_resume.cpp:1303,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:1306,1
    - Dst: message
      Src: /src/libtorrent/test/test_resume.cpp:1306,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1307,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1309,1
    - Dst: alert_cast<torrent_finished_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1312,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1315,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1318,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:1318,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1320,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1321,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1322,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1329,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1332,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:1332,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_resume.cpp:1333,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:1336,1
    - Dst: message
      Src: /src/libtorrent/test/test_resume.cpp:1336,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1337,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1339,1
    - Dst: alert_cast<torrent_finished_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1342,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1347,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:1347,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1349,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1350,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1351,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1353,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1355,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 1
    argNames:
    - flags
    argTypes:
    - test_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1357
    functionName: test_seed_mode
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::shared_ptr::piece_length
    - libtorrent::aux::packet_buffer::remove
    - seconds
    - std::max
    - push_back
    - torrent_handle::status
    - entry
    - list
    - message
    - lt::session::wait_for_alert
    - generate_torrent
    - std::size_t
    - std::printf
    - TEST_EQUAL
    - time_now
    - truncate
    - read_resume_data
    - std::string
    - lt::session::pop_alerts
    - lt::session::add_torrent
    - std::shared_ptr::num_pieces
    - bencode
    - TEST_CHECK
    - remove_all
    - combine_path
    - std::shared_ptr::info_hashes
    - alert_cast<torrent_finished_alert>
    - back_inserter
    - alert_cast<state_changed_alert>
    linkageType: ''
    returnType: void
    signature: void test_seed_mode(test_mode_t const flags)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1210,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/test/test_resume.cpp:1210,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_resume.cpp:1210,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_resume.cpp:1216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1217,1
    - Dst: truncate
      Src: /src/libtorrent/test/test_resume.cpp:1222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1223,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1230,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_resume.cpp:1230,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_resume.cpp:1231,1
    - Dst: std::shared_ptr::piece_length
      Src: /src/libtorrent/test/test_resume.cpp:1231,1
    - Dst: list
      Src: /src/libtorrent/test/test_resume.cpp:1236,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:1237,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:1237,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_resume.cpp:1242,1
    - Dst: entry
      Src: /src/libtorrent/test/test_resume.cpp:1242,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1249,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1249,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_resume.cpp:1256,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1256,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1256,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1261,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1261,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:1269,1
    - Dst: back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:1269,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1281,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1286,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1299,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1302,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:1302,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_resume.cpp:1303,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:1306,1
    - Dst: message
      Src: /src/libtorrent/test/test_resume.cpp:1306,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1307,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1309,1
    - Dst: alert_cast<torrent_finished_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1312,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1315,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1318,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:1318,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1320,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1321,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1322,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1329,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1332,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:1332,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_resume.cpp:1333,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:1336,1
    - Dst: message
      Src: /src/libtorrent/test/test_resume.cpp:1336,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1337,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1339,1
    - Dst: alert_cast<torrent_finished_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1342,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1347,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_resume.cpp:1347,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1349,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1350,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1351,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1353,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1355,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 1
    argNames:
    - flags
    argTypes:
    - test_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1357
    functionName: test_seed_mode
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::shared_ptr::piece_length
    - libtorrent::aux::packet_buffer::remove
    - seconds
    - std::max
    - push_back
    - torrent_handle::status
    - entry
    - list
    - message
    - lt::session::wait_for_alert
    - generate_torrent
    - std::size_t
    - std::printf
    - TEST_EQUAL
    - time_now
    - truncate
    - read_resume_data
    - std::string
    - lt::session::pop_alerts
    - lt::session::add_torrent
    - std::shared_ptr::num_pieces
    - bencode
    - TEST_CHECK
    - remove_all
    - combine_path
    - std::shared_ptr::info_hashes
    - alert_cast<torrent_finished_alert>
    - back_inserter
    - alert_cast<state_changed_alert>
    linkageType: ''
    returnType: void
    signature: void test_seed_mode(test_mode_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1362
    functionDepth: 3
    functionLinenumber: 1362
    functionLinenumberEnd: 1365
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_file_prio_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1367
    functionDepth: 3
    functionLinenumber: 1367
    functionLinenumberEnd: 1370
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_piece_prio_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1372
    functionDepth: 3
    functionLinenumber: 1372
    functionLinenumberEnd: 1375
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_piece_have_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1377
    functionDepth: 3
    functionLinenumber: 1377
    functionLinenumberEnd: 1380
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_preserve_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1382
    functionDepth: 3
    functionLinenumber: 1382
    functionLinenumberEnd: 1385
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_missing_files_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1387
    functionDepth: 3
    functionLinenumber: 1387
    functionLinenumberEnd: 1390
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_missing_all_files_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1392
    functionDepth: 3
    functionLinenumber: 1392
    functionLinenumberEnd: 1395
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_missing_files_with_pieces_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1397
    functionDepth: 3
    functionLinenumber: 1397
    functionLinenumberEnd: 1400
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_missing_files_with_all_pieces_deprecated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1403
    functionDepth: 3
    functionLinenumber: 1403
    functionLinenumberEnd: 1406
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_file_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1408
    functionDepth: 3
    functionLinenumber: 1408
    functionLinenumberEnd: 1411
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_extended_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1413
    functionDepth: 3
    functionLinenumber: 1413
    functionLinenumberEnd: 1416
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_have_file_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1418
    functionDepth: 3
    functionLinenumber: 1418
    functionLinenumberEnd: 1421
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_piece_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1423
    functionDepth: 3
    functionLinenumber: 1423
    functionLinenumberEnd: 1426
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_piece_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1428
    functionDepth: 3
    functionLinenumber: 1428
    functionLinenumberEnd: 1431
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_preserve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1433
    functionDepth: 3
    functionLinenumber: 1433
    functionLinenumberEnd: 1436
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_missing_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1441
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_missing_all_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1446
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_missing_files_with_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_seed_mode
      Src: /src/libtorrent/test/test_resume.cpp:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1448
    functionDepth: 3
    functionLinenumber: 1448
    functionLinenumberEnd: 1451
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_seed_mode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_missing_files_with_all_pieces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1456,1
    - Dst: add_torrent_params::peers::push_back
      Src: /src/libtorrent/test/test_resume.cpp:1461,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_resume.cpp:1461,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_resume.cpp:1461,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1463,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1465,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1467,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1469,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1470,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1473,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1477,1
    - Dst: size
      Src: /src/libtorrent/test/test_resume.cpp:1477,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1478,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_resume.cpp:1478,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_resume.cpp:1478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1479
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - add_torrent_params::peers::push_back
    - alert_cast<save_resume_data_alert>
    - torrent_handle::save_resume_data
    - wait_for_alert
    - lt::session::add_torrent
    - generate_torrent
    - local_endpoint
    - make_address
    - size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_load_peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1484,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1486,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1488,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1489,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1492,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1497,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_resume.cpp:1497,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1499,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1481
    functionDepth: 3
    functionLinenumber: 1481
    functionLinenumberEnd: 1501
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - alert_cast<save_resume_data_alert>
    - torrent_handle::save_resume_data
    - wait_for_alert
    - auto::size
    - test_resume_flags
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_save_load)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1506,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1508,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1510,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1511,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1514,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1519,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_resume.cpp:1519,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1520,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1521,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1503
    functionDepth: 3
    functionLinenumber: 1503
    functionLinenumberEnd: 1523
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - alert_cast<save_resume_data_alert>
    - torrent_handle::save_resume_data
    - wait_for_alert
    - auto::size
    - test_resume_flags
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_save_load_resume)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1528,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1530,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:1530,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1531,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1532,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1525
    functionDepth: 3
    functionLinenumber: 1525
    functionLinenumberEnd: 1534
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities_resume)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1539,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1541,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:1541,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1542,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1543,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1536
    functionDepth: 3
    functionLinenumber: 1536
    functionLinenumberEnd: 1547
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1552,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1554,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:1554,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1555,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1556,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1549
    functionDepth: 3
    functionLinenumber: 1549
    functionLinenumberEnd: 1558
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1563,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1565,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_resume.cpp:1565,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1566,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1567,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1560
    functionDepth: 3
    functionLinenumber: 1560
    functionLinenumberEnd: 1569
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_resume_flags
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_priorities3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1575,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1576,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:1577,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1579,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1581,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1583,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1584,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1571
    functionDepth: 3
    functionLinenumber: 1571
    functionLinenumberEnd: 1586
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(plain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1591,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1592,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:1594,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1595,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1596,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1588
    functionDepth: 3
    functionLinenumber: 1588
    functionLinenumberEnd: 1598
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1603,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1604,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:1606,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1608,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1609,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1600
    functionDepth: 3
    functionLinenumber: 1600
    functionLinenumberEnd: 1611
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_no_verify_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1616,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1617,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:1618,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1620,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1622,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1624,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1625,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1613
    functionDepth: 3
    functionLinenumber: 1613
    functionLinenumberEnd: 1627
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upload_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1633,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1634,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:1636,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1638,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1640,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1642,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1643,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1630
    functionDepth: 3
    functionLinenumber: 1630
    functionLinenumberEnd: 1645
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(share_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1652,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1653,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:1654,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1656,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1658,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1662,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1663,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1648
    functionDepth: 3
    functionLinenumber: 1648
    functionLinenumberEnd: 1665
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(auto_managed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_resume.cpp:1671,1
    - Dst: test_resume_flags
      Src: /src/libtorrent/test/test_resume.cpp:1672,1
    - Dst: default_tests
      Src: /src/libtorrent/test/test_resume.cpp:1673,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1675,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1677,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1679,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1680,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1667
    functionDepth: 3
    functionLinenumber: 1667
    functionLinenumberEnd: 1686
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - test_resume_flags
    - default_tests
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(paused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_resume.cpp:1693,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1696,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1697,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1698,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1699,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_resume.cpp:1700,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1701,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1705,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1688
    functionDepth: 1
    functionLinenumber: 1688
    functionLinenumberEnd: 1708
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - alert_cast<save_resume_data_alert>
    - torrent_handle::save_resume_data
    - wait_for_alert
    - lt::session::add_torrent
    - sha1_hash
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_metadata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1714,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1717,1
    - Dst: add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/test/test_resume.cpp:1718,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1718,1
    - Dst: f
      Src: /src/libtorrent/test/test_resume.cpp:1722,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1725,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1726,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1727,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_resume.cpp:1727,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_resume.cpp:1731,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_resume.cpp:1735,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_resume.cpp:1735,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_resume.cpp:1736,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_resume.cpp:1737,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1742
    functionName: test_unfinished_pieces
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - add_torrent_params::have_pieces::resize
    - torrent_handle::status
    - TEST_EQUAL
    - std::shared_ptr::info_hashes
    - print_alerts
    - std::this_thread::sleep_for
    - f
    - libtorrent::total_milliseconds
    - lt::session::add_torrent
    - generate_torrent
    - std::shared_ptr::num_pieces
    linkageType: ''
    returnType: void
    signature: void test_unfinished_pieces(Fun f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_unfinished_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1744
    functionDepth: 2
    functionLinenumber: 1744
    functionLinenumberEnd: 1747
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_unfinished_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unfinished_pieces_pure_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_unfinished_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1751,1
    - Dst: have_pieces::clear
      Src: /src/libtorrent/test/test_resume.cpp:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1749
    functionDepth: 2
    functionLinenumber: 1749
    functionLinenumberEnd: 1755
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - have_pieces::clear
    - test_unfinished_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unfinished_pieces_check_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_unfinished_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1761,1
    - Dst: have_pieces::clear_bit
      Src: /src/libtorrent/test/test_resume.cpp:1763,1
    - Dst: resize
      Src: /src/libtorrent/test/test_resume.cpp:1764,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_resume.cpp:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1757
    functionDepth: 2
    functionLinenumber: 1757
    functionLinenumberEnd: 1766
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - piece_length
    - test_unfinished_pieces
    - have_pieces::clear_bit
    - resize
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unfinished_pieces_finished)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_unfinished_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1772,1
    - Dst: have_pieces::clear_all
      Src: /src/libtorrent/test/test_resume.cpp:1775,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_resume.cpp:1776,1
    - Dst: piece_range
      Src: /src/libtorrent/test/test_resume.cpp:1779,1
    - Dst: resize
      Src: /src/libtorrent/test/test_resume.cpp:1780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1782
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - test_unfinished_pieces
    - piece_length
    - resize
    - piece_range
    - have_pieces::clear_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unfinished_pieces_all_finished)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_resume.cpp:1796,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1799,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/test_resume.cpp:1799,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resume.cpp:1801,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/test/test_resume.cpp:1801,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_resume.cpp:1802,1
    - Dst: libtorrent::hasher::hasher
      Src: /src/libtorrent/test/test_resume.cpp:1804,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_resume.cpp:1805,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_resume.cpp:1806,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resume.cpp:1809,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_resume.cpp:1809,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_resume.cpp:1809,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_resume.cpp:1810,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1817,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_resume.cpp:1818,1
    - Dst: auto::add_piece
      Src: /src/libtorrent/test/test_resume.cpp:1819,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_resume.cpp:1819,1
    - Dst: auto::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1821,1
    - Dst: lt::session::pause
      Src: /src/libtorrent/test/test_resume.cpp:1822,1
    - Dst: static_cast<save_resume_data_alert const*>
      Src: /src/libtorrent/test/test_resume.cpp:1824,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1825,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1826,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resume.cpp:1827,1
    - Dst: auto*::params::unfinished_pieces::size
      Src: /src/libtorrent/test/test_resume.cpp:1827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1787
    functionDepth: 2
    functionLinenumber: 1787
    functionLinenumberEnd: 1828
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::set_hash
    - std::move
    - auto::add_piece
    - wait_for_downloading
    - std::make_shared<torrent_info>
    - file_storage::piece_length
    - file_storage::add_file
    - libtorrent::hasher::hasher
    - static_cast<save_resume_data_alert const*>
    - std::size_t
    - lt::session::pause
    - libtorrent::aux::random_bytes
    - auto::save_resume_data
    - TEST_EQUAL
    - auto*::params::unfinished_pieces::size
    - lt::session::add_torrent
    - bencode
    - TEST_CHECK
    - lt::create_torrent::num_pieces
    - file_storage::piece_range
    - wait_for_alert
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_data_have_pieces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1835,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1843,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_resume.cpp:1845,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_resume.cpp:1847,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resume.cpp:1850,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1853,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_resume.cpp:1855,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resume.cpp:1856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1857
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - torrent_handle::save_resume_data
    - wait_for_alert
    - lt::session::add_torrent
    - generate_torrent
    - std::printf
    - lt::session::remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(removed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:58,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:60,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:60,1
    - Dst: std::array::size
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:60,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:61,1
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:63,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:70,1
    - Dst: lt::create_torrent::add_url_seed
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:71,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:74,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:78,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:79,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:80,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:85,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:85,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:85,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:86,1
    - Dst: settings
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:89,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:90,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:95,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_web_seed_redirect.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 99
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_redirect.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::add_url_seed
    - std::make_shared<torrent_info>
    - file_storage::add_file
    - error_code::message
    - libtorrent::aux::random_bytes
    - stop_web_server
    - set_piece_hashes
    - std::printf
    - TEST_ERROR
    - std::array::data
    - ofstream
    - std::snprintf
    - test_transfer
    - bencode
    - std::array::size
    - start_web_server
    - std::back_inserter
    - settings
    - lt::create_torrent::generate
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_redirect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: save_settings_to_dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:50,1
    - Dst: non_default_settings
      Src: /src/libtorrent/test/test_settings_pack.cpp:50,1
    - Dst: entry::dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:50,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:53,1
    - Dst: entry::dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:53,1
    - Dst: entry::dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - non_default_settings
    - TEST_EQUAL
    - save_settings_to_dict
    - entry::dict
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(default_settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: default_settings
      Src: /src/libtorrent/test/test_settings_pack.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:69,1
    - Dst: aux::session_settings::get_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:69,1
    - Dst: settings_pack::get_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:75,1
    - Dst: aux::session_settings::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:75,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:81,1
    - Dst: aux::session_settings::get_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:81,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - settings_pack::get_str
    - aux::session_settings::get_str
    - aux::session_settings::get_bool
    - default_settings
    - settings_pack::get_int
    - aux::session_settings::get_int
    - settings_pack::get_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(default_settings2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:90,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_settings_pack.cpp:92,1
    - Dst: aux::session_settings::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:92,1
    - Dst: apply_pack
      Src: /src/libtorrent/test/test_settings_pack.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:96,1
    - Dst: aux::session_settings::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:96,1
    - Dst: save_settings_to_dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:98,1
    - Dst: non_default_settings
      Src: /src/libtorrent/test/test_settings_pack.cpp:98,1
    - Dst: entry::dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:99,1
    - Dst: entry::dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:99,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_settings_pack.cpp:102,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_settings_pack.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - non_default_settings
    - TEST_EQUAL
    - entry::dict
    - save_settings_to_dict
    - apply_pack
    - bencode
    - std::back_inserter
    - settings_pack::set_int
    - aux::session_settings::get_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(apply_pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:109,1
    - Dst: settings_pack::has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:109,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:113,1
    - Dst: settings_pack::has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:114,1
    - Dst: settings_pack::has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:115,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::has_val
    - TEST_EQUAL
    - settings_pack::set_bool
    - settings_pack::get_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sparse_pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:125,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:127,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:128,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:130,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:131,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:133,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:134,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:135,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:136,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:137,1
    - Dst: TEST_NAME
      Src: /src/libtorrent/test/test_settings_pack.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:140,1
    - Dst: name_for_setting
      Src: /src/libtorrent/test/test_settings_pack.cpp:140,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_settings_pack.cpp:140,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:141,1
    - Dst: setting_by_name
      Src: /src/libtorrent/test/test_settings_pack.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 142
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_NAME
    - std::string
    - name_for_setting
    - setting_by_name
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: TEST_NAME
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_NAME(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:147,1
    - Dst: settings_pack::has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:147,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:149,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:151,1
    - Dst: settings_pack::has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:151,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:152,1
    - Dst: settings_pack::has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:152,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:153,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:153,1
    - Dst: settings_pack::clear
      Src: /src/libtorrent/test/test_settings_pack.cpp:155,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:157,1
    - Dst: settings_pack::has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:157,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:158,1
    - Dst: settings_pack::has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::has_val
    - TEST_EQUAL
    - settings_pack::clear
    - settings_pack::set_bool
    - settings_pack::get_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:166,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:166,1
    - Dst: settings_pack::clear
      Src: /src/libtorrent/test/test_settings_pack.cpp:168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:171,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - settings_pack::set_int
    - settings_pack::get_int
    - settings_pack::clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(clear_single_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:179,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:179,1
    - Dst: settings_pack::clear
      Src: /src/libtorrent/test/test_settings_pack.cpp:181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:184,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - settings_pack::set_bool
    - settings_pack::clear
    - settings_pack::get_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(clear_single_bool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:190,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:192,1
    - Dst: settings_pack::get_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:192,1
    - Dst: settings_pack::clear
      Src: /src/libtorrent/test/test_settings_pack.cpp:194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:197,1
    - Dst: settings_pack::get_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - settings_pack::clear
    - settings_pack::set_str
    - settings_pack::get_str
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(clear_single_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:203,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:204,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:205,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:206,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:208,1
    - Dst: settings_pack::get_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - settings_pack::set_str
    - settings_pack::get_str
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(duplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:214,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:215,1
    - Dst: aux::session_settings::set_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:216,1
    - Dst: save_settings_to_dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:219,1
    - Dst: non_default_settings
      Src: /src/libtorrent/test/test_settings_pack.cpp:219,1
    - Dst: entry::dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:219,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_settings_pack.cpp:222,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_settings_pack.cpp:222,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_settings_pack.cpp:226,1
    - Dst: std::string::data
      Src: /src/libtorrent/test/test_settings_pack.cpp:226,1
    - Dst: std::string::data
      Src: /src/libtorrent/test/test_settings_pack.cpp:226,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_settings_pack.cpp:226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:227,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_settings_pack.cpp:228,1
    - Dst: load_pack_from_dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:230,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:231,1
    - Dst: settings_pack::get_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:231,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:232,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:232,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:233,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 234
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - non_default_settings
    - entry::dict
    - TEST_EQUAL
    - TEST_CHECK
    - save_settings_to_dict
    - settings_pack::get_bool
    - settings_pack::get_str
    - aux::session_settings::set_int
    - aux::session_settings::set_bool
    - load_pack_from_dict
    - aux::session_settings::set_str
    - std::back_inserter
    - std::string::data
    - settings_pack::get_int
    - bdecode
    - bencode
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(load_pack_from_dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:243,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:244,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:245,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:248,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:249,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:252,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:253,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:257,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:258,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:259,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:260,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:261,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:262,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:263,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:264,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:265,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:266,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 268
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(settings_pack_abi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:275,1
    - Dst: has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:277,1
    - Dst: has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' sp'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: empty_pack
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - has_val
    linkageType: ''
    returnType: bool
    signature: bool empty_pack(settings_pack const& sp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:275,1
    - Dst: has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:277,1
    - Dst: has_val
      Src: /src/libtorrent/test/test_settings_pack.cpp:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' sp'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: empty_pack
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - has_val
    linkageType: ''
    returnType: bool
    signature: bool empty_pack(settings_pack const& sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: non_default_settings
      Src: /src/libtorrent/test/test_settings_pack.cpp:288,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_settings_pack.cpp:289,1
    - Dst: empty_pack
      Src: /src/libtorrent/test/test_settings_pack.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - non_default_settings
    - empty_pack
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(non_default_settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:295,1
    - Dst: non_default_settings
      Src: /src/libtorrent/test/test_settings_pack.cpp:296,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:297,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - non_default_settings
    - TEST_EQUAL
    - settings_pack::get_int
    - aux::session_settings::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(non_default_settings2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_settings_pack.cpp:303,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:304,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_settings_pack.cpp:305,1
    - Dst: save_settings_to_dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:308,1
    - Dst: entry::dict
      Src: /src/libtorrent/test/test_settings_pack.cpp:308,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_settings_pack.cpp:310,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_settings_pack.cpp:310,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 312
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - entry::dict
    - TEST_EQUAL
    - save_settings_to_dict
    - settings_pack::set_bool
    - settings_pack::set_str
    - std::back_inserter
    - settings_pack::set_int
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(save_settings_to_dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_settings_pack.cpp:325,1
    - Dst: get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(global_constructors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:335,1
    - Dst: lt::settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:335,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:336,1
    - Dst: lt::settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:336,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:338,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:339,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:340,1
    - Dst: lt::settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:340,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:341,1
    - Dst: lt::settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:341,1
    - Dst: lt::settings_pack::clear
      Src: /src/libtorrent/test/test_settings_pack.cpp:344,1
    - Dst: lt::settings_pack::clear
      Src: /src/libtorrent/test/test_settings_pack.cpp:345,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:346,1
    - Dst: lt::settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:346,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_settings_pack.cpp:347,1
    - Dst: lt::settings_pack::get_int
      Src: /src/libtorrent/test/test_settings_pack.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::settings_pack::clear
    - lt::settings_pack::get_int
    - lt::settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(i2p_tunnel_variance_settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_http.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_http.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_http)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_http.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_http.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_http)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_http.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_http.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_https)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_http.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_http.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_https)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:58,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:59,1
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:62,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:63,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:64,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:65,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_session.cpp:67,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:77,1
    - Dst: alert*::type
      Src: /src/libtorrent/test/test_session.cpp:77,1
    - Dst: alert_cast<performance_alert>
      Src: /src/libtorrent/test/test_session.cpp:79,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:84,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:86,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_session.cpp:87,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:88,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:88,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:90,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_session.cpp:91,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:92,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:92,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:94,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_session.cpp:95,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:96,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:96,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:98,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:98,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:99,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_session.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:101,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 107
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - lt::session::apply_settings
    - TEST_EQUAL
    - wait_for_alert
    - alert_cast<performance_alert>
    - settings
    - alert*::type
    - settings_pack::set_int
    - lt::session::get_settings
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:112,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:113,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_session.cpp:117,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_session.cpp:119,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/test/test_session.cpp:121,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:121,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:125,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_session.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - alert_cast<add_torrent_alert>
    - wait_for_alert
    - lt::session::async_add_torrent
    - settings
    - settings_pack::set_int
    - sha1_hash
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(async_add_torrent_deprecated_magnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:131,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:132,1
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_session.cpp:136,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_session.cpp:138,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_session.cpp:138,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_session.cpp:139,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_session.cpp:139,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_session.cpp:142,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_session.cpp:143,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_session.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 144
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - error_code
    - TEST_THROW
    - add_torrent_params::info_hashes::v1::assign
    - TORRENT_ASSERT
    - lt::session::add_torrent
    - lt::session::async_add_torrent
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(async_add_torrent_no_save_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:148,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:149,1
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_session.cpp:153,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_session.cpp:155,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/test/test_session.cpp:157,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:157,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:158,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_session.cpp:162,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/test/test_session.cpp:163,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:164,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:166,1
    - Dst: auto*::handle::is_valid
      Src: /src/libtorrent/test/test_session.cpp:166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 168
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<add_torrent_alert>
    - add_torrent_params::info_hashes::v1::assign
    - wait_for_alert
    - auto*::handle::is_valid
    - lt::session::async_add_torrent
    - settings
    - settings_pack::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(async_add_torrent_duplicate_error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:172,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:173,1
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_session.cpp:177,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_session.cpp:179,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/test/test_session.cpp:181,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:182,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:185,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_session.cpp:188,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/test/test_session.cpp:189,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:189,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 194
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<add_torrent_alert>
    - add_torrent_params::info_hashes::v1::assign
    - wait_for_alert
    - lt::session::async_add_torrent
    - settings
    - settings_pack::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(async_add_torrent_duplicate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:198,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:199,1
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_session.cpp:203,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_session.cpp:208,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_session.cpp:211,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/test/test_session.cpp:213,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:213,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:215,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:218,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/test/test_session.cpp:220,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:224,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:225,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_session.cpp:227,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:228,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:229,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 231
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::status
    - alert_cast<add_torrent_alert>
    - add_torrent_params::info_hashes::v1::assign
    - wait_for_alert
    - lt::session::async_add_torrent
    - settings
    - settings_pack::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(async_add_torrent_duplicate_back_to_back)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:235,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:236,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_session.cpp:241,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_session.cpp:241,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_session.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_session.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:246,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_session.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:247,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_session.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - std::move
    - error_code
    - torrent_handle::is_valid
    - std::ref
    - lt::session::add_torrent
    - settings
    - settings_pack::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(load_empty_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_stats_metrics
      Src: /src/libtorrent/test/test_session.cpp:252,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_session.cpp:253,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_session.cpp:253,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_session.cpp:253,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:257,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_session.cpp:257,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_session.cpp:259,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:261,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_session.cpp:261,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:264,1
    - Dst: libtorrent::find_metric_idx
      Src: /src/libtorrent/test/test_session.cpp:264,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:267,1
    - Dst: libtorrent::find_metric_idx
      Src: /src/libtorrent/test/test_session.cpp:267,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:269,1
    - Dst: libtorrent::find_metric_idx
      Src: /src/libtorrent/test/test_session.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 271
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::find_metric_idx
    - std::vector::size
    - std::vector::begin
    - std::size_t
    - std::vector::end
    - session_stats_metrics
    - std::sort
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::session::pause
      Src: /src/libtorrent/test/test_session.cpp:276,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_session.cpp:280,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_session.cpp:284,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_session.cpp:284,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_session.cpp:286,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_session.cpp:286,1
    - Dst: torrent_handle::resume
      Src: /src/libtorrent/test/test_session.cpp:287,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_session.cpp:288,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_session.cpp:288,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:290,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_session.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 291
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - std::move
    - std::this_thread::sleep_for
    - libtorrent::total_milliseconds
    - lt::session::add_torrent
    - lt::session::pause
    - torrent_handle::flags
    - TEST_CHECK
    - torrent_handle::resume
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(paused_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:298,1
    - Dst: setup
      Src: /src/libtorrent/test/test_session.cpp:299,1
    - Dst: s
      Src: /src/libtorrent/test/test_session.cpp:301,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_session.cpp:307,1
    - Dst: entry::to_string
      Src: /src/libtorrent/test/test_session.cpp:307,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_session.cpp:309,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_session.cpp:309,1
    - Dst: t
      Src: /src/libtorrent/test/test_session.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - setup
    - s
    - t
    argTypes:
    - Set
    - Save
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: test_save_restore
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - entry::to_string
    - setup
    - std::back_inserter
    - s
    - settings
    - t
    - std::printf
    - bencode
    linkageType: ''
    returnType: void
    signature: void test_save_restore(Set setup, Save s, Test t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_save_restore
      Src: /src/libtorrent/test/test_session.cpp:317,1
    - Dst: set_int
      Src: /src/libtorrent/test/test_session.cpp:320,1
    - Dst: write_session_params
      Src: /src/libtorrent/test/test_session.cpp:323,1
    - Dst: session_state
      Src: /src/libtorrent/test/test_session.cpp:323,1
    - Dst: get_settings
      Src: /src/libtorrent/test/test_session.cpp:327,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:328,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_session.cpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 330
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - settings_pack::get_int
    - write_session_params
    - get_settings
    - test_save_restore
    - set_int
    - session_state
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(save_restore_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_save_restore
      Src: /src/libtorrent/test/test_session.cpp:334,1
    - Dst: set_int
      Src: /src/libtorrent/test/test_session.cpp:337,1
    - Dst: write_session_params
      Src: /src/libtorrent/test/test_session.cpp:341,1
    - Dst: session_state
      Src: /src/libtorrent/test/test_session.cpp:341,1
    - Dst: get_settings
      Src: /src/libtorrent/test/test_session.cpp:345,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:346,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_session.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - settings_pack::get_int
    - write_session_params
    - get_settings
    - test_save_restore
    - set_int
    - session_state
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(save_restore_state_save_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/test/test_session.cpp:362,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:364,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:364,1
    - Dst: write_session_params_buf
      Src: /src/libtorrent/test/test_session.cpp:365,1
    - Dst: lt::session::session_state
      Src: /src/libtorrent/test/test_session.cpp:365,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/test/test_session.cpp:367,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_session.cpp:368,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:369,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:369,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:372,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:372,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_session.cpp:374,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_session.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 376
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - write_session_params_buf
    - TEST_EQUAL
    - lt::session::apply_settings
    - lt::settings_pack::set_str
    - lt::session::abort
    - lt::session::session_state
    - lt::session::get_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(save_state_fingerprint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_session.cpp:387,1
    - Dst: session::pop_alerts
      Src: /src/libtorrent/test/test_session.cpp:388,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_session.cpp:389,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:391,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_session.cpp:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 392
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::vector::resize
    - std::vector::empty
    - session::pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pop_alert_clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_session.cpp:398,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_session.cpp:398,1
    - Dst: lt::session::get_torrents
      Src: /src/libtorrent/test/test_session.cpp:399,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_session.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ses
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: test_move_session
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - lt::session::get_torrents
    - libtorrent::total_milliseconds
    - lt::session::abort
    linkageType: ''
    returnType: lt::session_proxy
    signature: lt::session_proxy test_move_session(lt::session ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_session.cpp:398,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_session.cpp:398,1
    - Dst: lt::session::get_torrents
      Src: /src/libtorrent/test/test_session.cpp:399,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_session.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ses
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: test_move_session
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - lt::session::get_torrents
    - libtorrent::total_milliseconds
    - lt::session::abort
    linkageType: ''
    returnType: lt::session_proxy
    signature: lt::session_proxy test_move_session(lt::session ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_move_session
      Src: /src/libtorrent/test/test_session.cpp:408,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_session.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - test_move_session
    - std::move
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(move_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:446,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:447,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:448,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_session.cpp:450,1
    - Dst: count_dht_inits
      Src: /src/libtorrent/test/test_session.cpp:454,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 456
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - count_dht_inits
    - settings_pack::set_int
    - settings_pack::set_str
    - settings
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(init_dht_default_bootstrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:460,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:461,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:462,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_session.cpp:464,1
    - Dst: count_dht_inits
      Src: /src/libtorrent/test/test_session.cpp:468,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - count_dht_inits
    - settings_pack::set_int
    - settings_pack::set_str
    - settings
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(init_dht_invalid_bootstrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:474,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:475,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:476,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_session.cpp:478,1
    - Dst: count_dht_inits
      Src: /src/libtorrent/test/test_session.cpp:482,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 484
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - count_dht_inits
    - settings_pack::set_int
    - settings_pack::set_str
    - settings
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(init_dht_empty_bootstrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:488,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:490,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_session.cpp:490,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:491,1
    - Dst: alert_category_t
      Src: /src/libtorrent/test/test_session.cpp:491,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_session.cpp:491,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_session.cpp:491,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:493,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:496,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:497,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_session.cpp:497,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_session.cpp:497,1
    - Dst: count_dht_inits
      Src: /src/libtorrent/test/test_session.cpp:499,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 501
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - count_dht_inits
    - lt::session::get_settings
    - std::uint32_t
    - libtorrent::aux::max
    - settings_pack::set_bool
    - settings
    - settings_pack::set_int
    - settings_pack::get_int
    - alert_category_t
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_upload_rate_overflow_pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:506,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:507,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:508,1
    - Dst: alert_category_t
      Src: /src/libtorrent/test/test_session.cpp:508,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_session.cpp:508,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_session.cpp:508,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_session.cpp:514,1
    - Dst: lt::session::set_dht_settings
      Src: /src/libtorrent/test/test_session.cpp:515,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_session.cpp:517,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:518,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_session.cpp:518,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_session.cpp:518,1
    - Dst: count_dht_inits
      Src: /src/libtorrent/test/test_session.cpp:520,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_session.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 522
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - count_dht_inits
    - lt::session::set_dht_settings
    - settings_pack::set_int
    - lt::session::get_settings
    - std::uint32_t
    - libtorrent::aux::max
    - settings
    - settings_pack::set_bool
    - settings_pack::get_int
    - alert_category_t
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_upload_rate_overflow)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_session.cpp:534,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_session.cpp:534,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_session.cpp:537,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_session.cpp:541,1
    - Dst: pop_alerts
      Src: /src/libtorrent/test/test_session.cpp:543,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_session.cpp:546,1
    - Dst: what
      Src: /src/libtorrent/test/test_session.cpp:546,1
    - Dst: message
      Src: /src/libtorrent/test/test_session.cpp:546,1
    - Dst: message
      Src: /src/libtorrent/test/test_session.cpp:547,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_session.cpp:548,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_session.cpp:551,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_session.cpp:554,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_session.cpp:562,1
    - Dst: settings
      Src: /src/libtorrent/test/test_session.cpp:567,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_session.cpp:568,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_session.cpp:569,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:571,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:572,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:577,1
    - Dst: count_alerts
      Src: /src/libtorrent/test/test_session.cpp:577,1
    - Dst: lt::session::reopen_network_sockets
      Src: /src/libtorrent/test/test_session.cpp:581,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:583,1
    - Dst: count_alerts
      Src: /src/libtorrent/test/test_session.cpp:583,1
    - Dst: lt::session::reopen_network_sockets
      Src: /src/libtorrent/test/test_session.cpp:585,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:587,1
    - Dst: count_alerts
      Src: /src/libtorrent/test/test_session.cpp:587,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:589,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_session.cpp:590,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_session.cpp:591,1
    - Dst: lt::session::reopen_network_sockets
      Src: /src/libtorrent/test/test_session.cpp:593,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_session.cpp:595,1
    - Dst: count_alerts
      Src: /src/libtorrent/test/test_session.cpp:595,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 596
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_session.cpp
    functionUses: 0
    functionsReached:
    - lt::session::apply_settings
    - time_now
    - lt::session::reopen_network_sockets
    - seconds
    - message
    - wait_for_alert
    - settings_pack::set_bool
    - settings_pack::set_str
    - std::string::find
    - settings
    - count_alerts
    - settings_pack::set_int
    - what
    - std::printf
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reopen_network_sockets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_mmap.cpp:53,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/test_mmap.cpp:53,1
    - Dst: std::generate
      Src: /src/libtorrent/test/test_mmap.cpp:55,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_mmap.cpp:55,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_mmap.cpp:55,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_mmap.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: filled_buffer
    functionSourceFile: /src/libtorrent/test/test_mmap.cpp
    functionUses: 0
    functionsReached:
    - std::vector::resize
    - std::vector::begin
    - static_cast<std::size_t>
    - std::generate
    - static_cast<char>
    - std::vector::end
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> filled_buffer(std::ptrdiff_t const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_mmap.cpp:53,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/test_mmap.cpp:53,1
    - Dst: std::generate
      Src: /src/libtorrent/test/test_mmap.cpp:55,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_mmap.cpp:55,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_mmap.cpp:55,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_mmap.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: filled_buffer
    functionSourceFile: /src/libtorrent/test/test_mmap.cpp
    functionUses: 0
    functionsReached:
    - std::vector::resize
    - std::vector::begin
    - static_cast<std::size_t>
    - std::generate
    - static_cast<char>
    - std::vector::end
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> filled_buffer(std::ptrdiff_t const size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: filled_buffer
      Src: /src/libtorrent/test/test_mmap.cpp:63,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_mmap.cpp:67,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_mmap.cpp:67,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_mmap.cpp:67,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_mmap.cpp:67,1
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/test/test_mmap.cpp:70,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/test/test_mmap.cpp:70,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_mmap.cpp:71,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_mmap.cpp:71,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_mmap.cpp:72,1
    - Dst: std::make_shared<std::mutex>
      Src: /src/libtorrent/test/test_mmap.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_mmap.cpp:78,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/test/test_mmap.cpp:78,1
    - Dst: boost::combine
      Src: /src/libtorrent/test/test_mmap.cpp:80,1
    - Dst: auto::range
      Src: /src/libtorrent/test/test_mmap.cpp:80,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/test/test_mmap.cpp:82,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/test/test_mmap.cpp:82,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_mmap.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_mmap.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - auto::range
    - filled_buffer
    - libtorrent::aux::file_handle
    - std::ofstream::write
    - TEST_ERROR
    - boost::combine
    - boost::get<1>
    - std::int64_t
    - TORRENT_ASSERT
    - std::make_shared<std::mutex>
    - std::make_shared<file_mapping>
    - boost::get<0>
    - std::streamsize
    - auto::has_memory_map
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mmap_read)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: filled_buffer
      Src: /src/libtorrent/test/test_mmap.cpp:88,1
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/test/test_mmap.cpp:91,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/test/test_mmap.cpp:91,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_mmap.cpp:92,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_mmap.cpp:92,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_mmap.cpp:94,1
    - Dst: std::make_shared<std::mutex>
      Src: /src/libtorrent/test/test_mmap.cpp:96,1
    - Dst: auto::range
      Src: /src/libtorrent/test/test_mmap.cpp:100,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_mmap.cpp:102,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_mmap.cpp:102,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_mmap.cpp:102,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_mmap.cpp:102,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_mmap.cpp:107,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_mmap.cpp:107,1
    - Dst: std::ifstream::read
      Src: /src/libtorrent/test/test_mmap.cpp:108,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_mmap.cpp:108,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_mmap.cpp:108,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_mmap.cpp:108,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_mmap.cpp:109,1
    - Dst: std::ifstream::gcount
      Src: /src/libtorrent/test/test_mmap.cpp:109,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_mmap.cpp:109,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_mmap.cpp:109,1
    - Dst: boost::combine
      Src: /src/libtorrent/test/test_mmap.cpp:111,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/test/test_mmap.cpp:113,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/test/test_mmap.cpp:113,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_mmap.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 115
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_mmap.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - auto::range
    - filled_buffer
    - std::vector::begin
    - std::make_shared<std::mutex>
    - auto::begin
    - std::vector::end
    - std::make_shared<file_mapping>
    - boost::get<0>
    - boost::get<1>
    - libtorrent::aux::file_handle
    - std::copy
    - TEST_ERROR
    - TEST_EQUAL
    - std::vector::resize
    - boost::combine
    - std::streamsize
    - std::vector::data
    - std::ifstream::gcount
    - std::int64_t
    - std::ifstream::read
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mmap_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5_no_peers.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5_no_peers.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_socks5_no_peers_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks5_no_peers.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks5_no_peers.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_socks5_no_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:64,1
    - Dst: lt::session::get_torrents
      Src: /src/libtorrent/test/test_magnet.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:66,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:66,1
    - Dst: TEST_NOTHROW
      Src: /src/libtorrent/test/test_magnet.cpp:68,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:68,1
    - Dst: lt::session::get_torrents
      Src: /src/libtorrent/test/test_magnet.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:71,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - url
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: test_remove_url
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::session::get_torrents
    - TEST_NOTHROW
    - std::vector::size
    - lt::session::add_torrent
    - lt::session::remove_torrent
    linkageType: ''
    returnType: void
    signature: void test_remove_url(std::string url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:64,1
    - Dst: lt::session::get_torrents
      Src: /src/libtorrent/test/test_magnet.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:66,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:66,1
    - Dst: TEST_NOTHROW
      Src: /src/libtorrent/test/test_magnet.cpp:68,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:68,1
    - Dst: lt::session::get_torrents
      Src: /src/libtorrent/test/test_magnet.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:71,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - url
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: test_remove_url
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::session::get_torrents
    - TEST_NOTHROW
    - std::vector::size
    - lt::session::add_torrent
    - lt::session::remove_torrent
    linkageType: ''
    returnType: void
    signature: void test_remove_url(std::string url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_remove_url
      Src: /src/libtorrent/test/test_magnet.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_remove_url
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(remove_url)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_magnet.cpp:87,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_magnet.cpp:88,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_magnet.cpp:89,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_magnet.cpp:90,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_magnet.cpp:91,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_magnet.cpp:92,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_magnet.cpp:93,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_magnet.cpp:94,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_magnet.cpp:95,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_magnet.cpp:96,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_magnet.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:99,1
    - Dst: settings_pack::get_str
      Src: /src/libtorrent/test/test_magnet.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:100,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/test/test_magnet.cpp:100,1
    - Dst: write_session_params
      Src: /src/libtorrent/test/test_magnet.cpp:102,1
    - Dst: auto::session_state
      Src: /src/libtorrent/test/test_magnet.cpp:102,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:105,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:118,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:119,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:120,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_magnet.cpp:120,1
    - Dst: torrent_handle::trackers
      Src: /src/libtorrent/test/test_magnet.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:123,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:123,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_magnet.cpp:125,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_magnet.cpp:126,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_magnet.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:129,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_magnet.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:130,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_magnet.cpp:130,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:131,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_magnet.cpp:131,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:133,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:144,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:145,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_magnet.cpp:145,1
    - Dst: torrent_handle::trackers
      Src: /src/libtorrent/test/test_magnet.cpp:147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:148,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:148,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:149,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:150,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:152,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:162,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:163,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_magnet.cpp:163,1
    - Dst: torrent_handle::trackers
      Src: /src/libtorrent/test/test_magnet.cpp:165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:166,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:166,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:169,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:170,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:171,1
    - Dst: url::c_str
      Src: /src/libtorrent/test/test_magnet.cpp:171,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:175,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:176,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:177,1
    - Dst: url::c_str
      Src: /src/libtorrent/test/test_magnet.cpp:177,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:179,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:182,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:183,1
    - Dst: url::c_str
      Src: /src/libtorrent/test/test_magnet.cpp:183,1
    - Dst: torrent_handle::info_hashes
      Src: /src/libtorrent/test/test_magnet.cpp:186,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:187,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:187,1
    - Dst: auto::abort
      Src: /src/libtorrent/test/test_magnet.cpp:189,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_magnet.cpp:192,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_magnet.cpp:192,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_magnet.cpp:194,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_magnet.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:195,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:197,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_magnet.cpp:197,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:200,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_magnet.cpp:200,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_magnet.cpp:203,1
    - Dst: read_session_params
      Src: /src/libtorrent/test/test_magnet.cpp:203,1
    - Dst: lt::session::session
      Src: /src/libtorrent/test/test_magnet.cpp:203,1
    - Dst: CMP_SET
      Src: /src/libtorrent/test/test_magnet.cpp:210,1
    - Dst: CMP_SET
      Src: /src/libtorrent/test/test_magnet.cpp:211,1
    - Dst: CMP_SET
      Src: /src/libtorrent/test/test_magnet.cpp:212,1
    - Dst: CMP_SET
      Src: /src/libtorrent/test/test_magnet.cpp:213,1
    - Dst: CMP_SET
      Src: /src/libtorrent/test/test_magnet.cpp:214,1
    - Dst: CMP_SET
      Src: /src/libtorrent/test/test_magnet.cpp:215,1
    - Dst: auto::abort
      Src: /src/libtorrent/test/test_magnet.cpp:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 217
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - std::vector::size
    - std::vector::begin
    - std::vector::end
    - bdecode
    - parse_magnet_uri
    - torrent_handle::info_hashes
    - write_session_params
    - error_code::message
    - CMP_SET
    - settings_pack::set_bool
    - std::printf
    - TEST_EQUAL
    - bdecode_node::dict_find
    - read_session_params
    - libtorrent::aux::to_hex
    - auto::abort
    - lt::session::session
    - auto::session_state
    - settings_pack::get_int
    - TEST_CHECK
    - url::c_str
    - bencode
    - settings_pack::get_str
    - auto::add_torrent
    - auto::reset
    - std::make_unique<lt::session>
    - std::set::count
    - torrent_handle::trackers
    - settings_pack::set_str
    - std::back_inserter
    - settings
    - settings_pack::set_int
    - std::set::insert
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(magnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: CMP_SET
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_SET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:221,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:222,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_escaped_hash_parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:227,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:228,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_escaped_hash_parameter_in_hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:233,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:234,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:236,1
    - Dst: add_torrent_params::url_seeds::size
      Src: /src/libtorrent/test/test_magnet.cpp:236,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - add_torrent_params::url_seeds::size
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_mixed_case)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:243,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:244,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_magnet.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_invalid_escaped_hash_parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:249,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:250,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_uri_quoted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_magnet.cpp:255,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_THROW
    - parse_magnet_uri
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(throwing_overload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:262,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:263,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_magnet.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_missing_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:269,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:270,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_magnet.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_base32_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:276,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:278,1
    - Dst: add_torrent_params::url_seeds::size
      Src: /src/libtorrent/test/test_magnet.cpp:278,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:279,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - add_torrent_params::url_seeds::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_web_seeds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:286,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:287,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_magnet.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_missing_hash2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:293,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:294,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_magnet.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_short_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:300,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:301,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_magnet.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_long_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:307,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:308,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_magnet.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_space_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:313,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:314,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:314,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:315,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_v2_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:321,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:322,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_magnet.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_v2_short_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:328,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:329,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_magnet.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - error_code
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_v2_invalid_hash_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:334,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:337,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:337,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:338,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_hybrid_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:343,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:345,1
    - Dst: add_torrent_params::peers::size
      Src: /src/libtorrent/test/test_magnet.cpp:345,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:346,1
    - Dst: ep
      Src: /src/libtorrent/test/test_magnet.cpp:346,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:347,1
    - Dst: ep
      Src: /src/libtorrent/test/test_magnet.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - add_torrent_params::peers::size
    - ep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:353,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:356,1
    - Dst: add_torrent_params::dht_nodes::size
      Src: /src/libtorrent/test/test_magnet.cpp:356,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:357,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:358,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:360,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - add_torrent_params::dht_nodes::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_dht_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:368,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:370,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:371,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_i2p_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/test/test_magnet.cpp:392,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:393,1
    - Dst: entry::list_type
      Src: /src/libtorrent/test/test_magnet.cpp:393,1
    - Dst: back
      Src: /src/libtorrent/test/test_magnet.cpp:394,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:395,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:395,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:396,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:396,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:397,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:397,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:398,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:398,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:399,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:399,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:400,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:400,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:401,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:401,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:402,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:402,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:403,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:403,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:404,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:404,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:405,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:405,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:406,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:406,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:407,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:407,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:408,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:408,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:409,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:409,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:410,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:410,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:411,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:411,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:412,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:412,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:413,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:413,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:414,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:414,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:415,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:415,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:416,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:416,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:417,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:417,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:418,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:418,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:419,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:419,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:420,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:420,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:421,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:421,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_magnet.cpp:422,1
    - Dst: entry
      Src: /src/libtorrent/test/test_magnet.cpp:422,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_magnet.cpp:425,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_magnet.cpp:425,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_magnet.cpp:426,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:427,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/test/test_magnet.cpp:431,1
    - Dst: torrent_info::trackers
      Src: /src/libtorrent/test/test_magnet.cpp:431,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:433,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:434,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_magnet.cpp:434,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_magnet.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 435
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - TEST_EQUAL
    - std::vector::push_back
    - entry
    - make_magnet_uri
    - list
    - std::string::c_str
    - size
    - torrent_info::trackers
    - back
    - std::back_inserter
    - bencode
    - std::printf
    - entry::list_type
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(make_magnet_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_magnet.cpp:452,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_magnet.cpp:452,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_magnet.cpp:453,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:454,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:458,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:459,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_magnet.cpp:459,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_magnet.cpp:459,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:460,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_magnet.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 461
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::vector::push_back
    - make_magnet_uri
    - std::string::c_str
    - std::back_inserter
    - std::string::find
    - std::printf
    - bencode
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(make_magnet_uri2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:465,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:468,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:469,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_magnet.cpp:469,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_magnet.cpp:469,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:470,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_magnet.cpp:470,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:471,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_magnet.cpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - make_magnet_uri
    - std::string::c_str
    - std::string::find
    - std::printf
    - TEST_CHECK
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(make_magnet_uri_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:476,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:478,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:479,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_magnet.cpp:479,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_magnet.cpp:479,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:480,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_magnet.cpp:480,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:481,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_magnet.cpp:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 482
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - make_magnet_uri
    - std::string::c_str
    - std::string::find
    - std::printf
    - TEST_CHECK
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(make_magnet_uri_hybrid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:486,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:488,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_magnet.cpp:489,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_magnet.cpp:489,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_magnet.cpp:489,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:490,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_magnet.cpp:490,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:491,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_magnet.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 492
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - make_magnet_uri
    - std::string::c_str
    - std::string::find
    - std::printf
    - TEST_CHECK
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(make_magnet_uri_v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:498,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:501,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_magnet.cpp:502,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:502,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_magnet.cpp:504,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:505,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:508,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:509,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_magnet.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 510
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - torrent_handle::is_valid
    - session::add_torrent
    - error_code::clear
    - TEST_THROW
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(trailing_whitespace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:557,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_tracker_escaping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:566,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_web_seed_escaping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:573,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:574,1
    - Dst: add_torrent_params::trackers::empty
      Src: /src/libtorrent/test/test_magnet.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - add_torrent_params::trackers::empty
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:585,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - expected
    argTypes:
    - string_view
    - std::vector<download_priority_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: test_select_only
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_select_only(string_view uri, std::vector<download_priority_t>
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:585,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - expected
    argTypes:
    - string_view
    - std::vector<download_priority_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: test_select_only
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_select_only(string_view uri, std::vector<download_priority_t>
      expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_overlap_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_multiple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 617
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_inverted_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 624
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_index_bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 630
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_invalid_range1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_invalid_range2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_invalid_index_character)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_invalid_index_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_invalid_no_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_invalid_no_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select_only
      Src: /src/libtorrent/test/test_magnet.cpp:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 667
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_select_only
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_magnet_select_only_invalid_quotes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:671,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:676,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:679,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:681,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:685,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 687
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(magnet_tr_x_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::info_hashes::v2::assign
      Src: /src/libtorrent/test/test_magnet.cpp:692,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:694,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 695
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - add_torrent_params::info_hashes::v2::assign
    - make_magnet_uri
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(info_hash_v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_magnet.cpp:700,1
    - Dst: add_torrent_params::info_hashes::v2::assign
      Src: /src/libtorrent/test/test_magnet.cpp:701,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:703,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 704
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - add_torrent_params::info_hashes::v1::assign
    - TEST_EQUAL
    - add_torrent_params::info_hashes::v2::assign
    - make_magnet_uri
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hybrid_info_hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_magnet.cpp:708,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:714,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:714,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:715,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_magnet.cpp:715,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_magnet.cpp:716,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_magnet.cpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 717
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::info_hashes
    - libtorrent::create_torrent::create_torrent
    - libtorrent::aux::to_hex
    - make_magnet_uri
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_info_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::info_hash::assign
      Src: /src/libtorrent/test/test_magnet.cpp:723,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:724,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 725
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - add_torrent_params::info_hash::assign
    - make_magnet_uri
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(deprecated_info_hashe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_magnet.cpp:731,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:736,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:736,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:739,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:739,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:742,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:742,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:745,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:745,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:748,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:748,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:751,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 752
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - add_torrent_params::info_hashes::v1::assign
    - TEST_EQUAL
    - make_magnet_uri
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(select_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_magnet.cpp:757,1
    - Dst: ep
      Src: /src/libtorrent/test/test_magnet.cpp:762,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_magnet.cpp:762,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:763,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:763,1
    - Dst: ep
      Src: /src/libtorrent/test/test_magnet.cpp:765,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_magnet.cpp:765,1
    - Dst: ep
      Src: /src/libtorrent/test/test_magnet.cpp:765,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_magnet.cpp:765,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:766,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 767
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - make_magnet_uri
    - ep
    - add_torrent_params::info_hashes::v1::assign
    - make_address
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_magnet.cpp:772,1
    - Dst: node
      Src: /src/libtorrent/test/test_magnet.cpp:777,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:778,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:778,1
    - Dst: node
      Src: /src/libtorrent/test/test_magnet.cpp:780,1
    - Dst: node
      Src: /src/libtorrent/test/test_magnet.cpp:780,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:781,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:781,1
    - Dst: node
      Src: /src/libtorrent/test/test_magnet.cpp:783,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_magnet.cpp:784,1
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 785
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - add_torrent_params::info_hashes::v1::assign
    - TEST_EQUAL
    - node
    - make_magnet_uri
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_nodes)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - add_torrent_params
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 800
    functionName: compare
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare(add_torrent_params const& lhs, add_torrent_params const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:804,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:806,1
    - Dst: compare
      Src: /src/libtorrent/test/test_magnet.cpp:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 808
    functionName: test_round_trip
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - compare
    - make_magnet_uri
    linkageType: ''
    returnType: bool
    signature: bool test_round_trip(add_torrent_params const& atp)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - add_torrent_params
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 800
    functionName: compare
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare(add_torrent_params const& lhs, add_torrent_params const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:804,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_magnet.cpp:806,1
    - Dst: compare
      Src: /src/libtorrent/test/test_magnet.cpp:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 808
    functionName: test_round_trip
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - compare
    - make_magnet_uri
    linkageType: ''
    returnType: bool
    signature: bool test_round_trip(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/test/test_magnet.cpp:815,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:823,1
    - Dst: test_round_trip
      Src: /src/libtorrent/test/test_magnet.cpp:823,1
    - Dst: node
      Src: /src/libtorrent/test/test_magnet.cpp:825,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:826,1
    - Dst: test_round_trip
      Src: /src/libtorrent/test/test_magnet.cpp:826,1
    - Dst: ep
      Src: /src/libtorrent/test/test_magnet.cpp:828,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_magnet.cpp:828,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:829,1
    - Dst: test_round_trip
      Src: /src/libtorrent/test/test_magnet.cpp:829,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:832,1
    - Dst: test_round_trip
      Src: /src/libtorrent/test/test_magnet.cpp:832,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:835,1
    - Dst: test_round_trip
      Src: /src/libtorrent/test/test_magnet.cpp:835,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:838,1
    - Dst: test_round_trip
      Src: /src/libtorrent/test/test_magnet.cpp:838,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_magnet.cpp:841,1
    - Dst: test_round_trip
      Src: /src/libtorrent/test/test_magnet.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 842
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_magnet.cpp
    functionUses: 0
    functionsReached:
    - test_round_trip
    - ep
    - add_torrent_params::info_hashes::v1::assign
    - node
    - make_address
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dos_blocker.cpp:65,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/test/test_dos_blocker.cpp:65,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/test/test_dos_blocker.cpp:65,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_dos_blocker.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dos_blocker.cpp:66,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dos_blocker.cpp:68,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dos_blocker.cpp:69,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_dos_blocker.cpp:69,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dos_blocker.cpp:72,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_dos_blocker.cpp:72,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_dos_blocker.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dir
    - pkt
    - ' node'
    argTypes:
    - message_direction_t
    - span<char const>
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: log_packet
    functionSourceFile: /src/libtorrent/test/test_dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - std::printf
    - span<char const>::data
    - std::string::c_str
    - print_endpoint
    - span<char const>::size
    - bdecode
    linkageType: ''
    returnType: "struct log_t : lt::dht::dht_logger\n{\n\tbool should_log(module_t)
      const override { return true; }\n\n\tvoid log(dht_logger::module_t, char const*
      fmt, ...)\n\t\toverride TORRENT_FORMAT(3, 4)\n\t{\n\t\tva_list v;\n\t\tva_start(v,
      fmt);\n\t\tstd::vprintf(fmt, v);\n\t\tva_end(v);\n\t}"
    signature: "struct log_t : lt::dht::dht_logger\n{\n\tbool should_log(module_t)
      const override { return true; }\n\n\tvoid log(dht_logger::module_t, char const*
      fmt, ...)\n\t\toverride TORRENT_FORMAT(3, 4)\n\t{\n\t\tva_list v;\n\t\tva_start(v,
      fmt);\n\t\tstd::vprintf(fmt, v);\n\t\tva_end(v);\n\t} log_packet(message_direction_t
      dir, span<char const> pkt\n\t\t, udp::endpoint const& node) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: should_log
    functionSourceFile: /src/libtorrent/test/test_dos_blocker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log(module_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: ~log_t()
    functionSourceFile: /src/libtorrent/test/test_dos_blocker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~log_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_dos_blocker.cpp:89,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_dos_blocker.cpp:91,1
    - Dst: dos_blocker::incoming
      Src: /src/libtorrent/test/test_dos_blocker.cpp:94,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_dos_blocker.cpp:95,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dos_blocker.cpp:96,1
    - Dst: dos_blocker::incoming
      Src: /src/libtorrent/test/test_dos_blocker.cpp:96,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dos_blocker.cpp:96,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_dos_blocker.cpp:97,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_dos_blocker.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dos_blocker.cpp:102,1
    - Dst: dos_blocker::incoming
      Src: /src/libtorrent/test/test_dos_blocker.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - dos_blocker::incoming
    - time_now
    - TEST_EQUAL
    - rand_v4
    - make_address_v4
    - milliseconds
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dos_blocker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_identify_client.cpp:40,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/test/test_identify_client.cpp:40,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_identify_client.cpp:40,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_identify_client.cpp:41,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/test/test_identify_client.cpp:41,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_identify_client.cpp:41,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_identify_client.cpp:42,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/test/test_identify_client.cpp:42,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_identify_client.cpp:42,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_identify_client.cpp:43,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/test/test_identify_client.cpp:43,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_identify_client.cpp:43,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_identify_client.cpp:44,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/test/test_identify_client.cpp:44,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_identify_client.cpp:44,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_identify_client.cpp:45,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/test/test_identify_client.cpp:45,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_identify_client.cpp:45,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_identify_client.cpp:46,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/test/test_identify_client.cpp:46,1
    - Dst: peer_id
      Src: /src/libtorrent/test/test_identify_client.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_identify_client.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::aux::identify_client_impl
    - peer_id
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(identify_client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disk_job_fence::raise_fence
      Src: /src/libtorrent/test/test_fence.cpp:58,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:61,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:63,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:64,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:65,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:66,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:71,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:74,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:74,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:75,1
    - Dst: tailqueue::first
      Src: /src/libtorrent/test/test_fence.cpp:75,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:80,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 82
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fence.cpp
    functionUses: 0
    functionsReached:
    - disk_job_fence::raise_fence
    - tailqueue::size
    - disk_job_fence::job_complete
    - tailqueue::first
    - TEST_CHECK
    - disk_job_fence::is_blocked
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty_fence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:94,1
    - Dst: disk_job_fence::num_outstanding_jobs
      Src: /src/libtorrent/test/test_fence.cpp:94,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:95,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:96,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:97,1
    - Dst: disk_job_fence::num_outstanding_jobs
      Src: /src/libtorrent/test/test_fence.cpp:97,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:99,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:100,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:101,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:102,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:103,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:104,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:105,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:107,1
    - Dst: disk_job_fence::num_outstanding_jobs
      Src: /src/libtorrent/test/test_fence.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:108,1
    - Dst: disk_job_fence::num_blocked
      Src: /src/libtorrent/test/test_fence.cpp:108,1
    - Dst: disk_job_fence::raise_fence
      Src: /src/libtorrent/test/test_fence.cpp:111,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:114,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:116,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:117,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:118,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:119,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:124,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:124,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:125,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:126,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:126,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:128,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:128,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:130,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:130,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:131,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fence.cpp:135,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:135,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:137,1
    - Dst: tailqueue::first
      Src: /src/libtorrent/test/test_fence.cpp:137,1
    - Dst: tailqueue::pop_front
      Src: /src/libtorrent/test/test_fence.cpp:138,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_fence.cpp:144,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:145,1
    - Dst: tailqueue::first
      Src: /src/libtorrent/test/test_fence.cpp:145,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:150,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 152
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fence.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - disk_job_fence::num_blocked
    - disk_job_fence::raise_fence
    - tailqueue::size
    - disk_job_fence::job_complete
    - tailqueue::pop_front
    - tailqueue::first
    - disk_job_fence::num_outstanding_jobs
    - TEST_CHECK
    - disk_job_fence::is_blocked
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(job_fence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:164,1
    - Dst: disk_job_fence::num_outstanding_jobs
      Src: /src/libtorrent/test/test_fence.cpp:164,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:167,1
    - Dst: disk_job_fence::num_outstanding_jobs
      Src: /src/libtorrent/test/test_fence.cpp:167,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:169,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:170,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:171,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:173,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:177,1
    - Dst: disk_job_fence::num_outstanding_jobs
      Src: /src/libtorrent/test/test_fence.cpp:177,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:178,1
    - Dst: disk_job_fence::num_blocked
      Src: /src/libtorrent/test/test_fence.cpp:178,1
    - Dst: disk_job_fence::raise_fence
      Src: /src/libtorrent/test/test_fence.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:184,1
    - Dst: disk_job_fence::raise_fence
      Src: /src/libtorrent/test/test_fence.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:189,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_fence.cpp:190,1
    - Dst: disk_job_fence::is_blocked
      Src: /src/libtorrent/test/test_fence.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:193,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:197,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:198,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:198,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:199,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:200,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:200,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:201,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:202,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:202,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:204,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:204,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:209,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:211,1
    - Dst: tailqueue::first
      Src: /src/libtorrent/test/test_fence.cpp:211,1
    - Dst: tailqueue::pop_front
      Src: /src/libtorrent/test/test_fence.cpp:212,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:215,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:218,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:219,1
    - Dst: tailqueue::first
      Src: /src/libtorrent/test/test_fence.cpp:219,1
    - Dst: tailqueue::pop_front
      Src: /src/libtorrent/test/test_fence.cpp:220,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:225,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_fence.cpp:225,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_fence.cpp:226,1
    - Dst: tailqueue::first
      Src: /src/libtorrent/test/test_fence.cpp:226,1
    - Dst: disk_job_fence::job_complete
      Src: /src/libtorrent/test/test_fence.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 232
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_fence.cpp
    functionUses: 0
    functionsReached:
    - disk_job_fence::num_blocked
    - disk_job_fence::raise_fence
    - std::printf
    - tailqueue::size
    - disk_job_fence::job_complete
    - tailqueue::pop_front
    - tailqueue::first
    - disk_job_fence::num_outstanding_jobs
    - TEST_CHECK
    - disk_job_fence::is_blocked
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(double_fence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks4.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks4.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks4.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks4.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks4.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks4.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_socks4.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_socks4.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:62,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_torrent_info.cpp:67,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:68,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent_info.cpp:68,1
    - Dst: lt::create_torrent::add_collection
      Src: /src/libtorrent/test/test_torrent_info.cpp:70,1
    - Dst: lt::create_torrent::add_collection
      Src: /src/libtorrent/test/test_torrent_info.cpp:71,1
    - Dst: lt::create_torrent::add_similar_torrent
      Src: /src/libtorrent/test/test_torrent_info.cpp:73,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:73,1
    - Dst: lt::create_torrent::add_similar_torrent
      Src: /src/libtorrent/test/test_torrent_info.cpp:74,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:74,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent_info.cpp:76,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:78,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent_info.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:83,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:83,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:84,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:84,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:87,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:88,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:90,1
    - Dst: torrent_info::similar_torrents
      Src: /src/libtorrent/test/test_torrent_info.cpp:90,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:91,1
    - Dst: torrent_info::collections
      Src: /src/libtorrent/test/test_torrent_info.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 92
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - lt::create_torrent::set_hash
    - std::vector::push_back
    - file_storage::piece_range
    - file_storage::add_file
    - sha1_hash
    - lt::create_torrent::add_similar_torrent
    - libtorrent::aux::max
    - torrent_info::collections
    - std::back_inserter
    - torrent_info::similar_torrents
    - lt::create_torrent::generate
    - lt::create_torrent::add_collection
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mutable_torrents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent_info.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: test_torrent_t
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void test_torrent_t(char const* f, std::function<void(torrent_info*)>
      t = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent_info.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: test_torrent_t
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void test_torrent_t(char const* f, std::function<void(torrent_info*)>
      t = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info_hash_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:494,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:494,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:495,1
    - Dst: torrent_info::trackers
      Src: /src/libtorrent/test/test_torrent_info.cpp:495,1
    - Dst: torrent_info::add_tracker
      Src: /src/libtorrent/test/test_torrent_info.cpp:497,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:498,1
    - Dst: torrent_info::trackers
      Src: /src/libtorrent/test/test_torrent_info.cpp:498,1
    - Dst: torrent_info::trackers
      Src: /src/libtorrent/test/test_torrent_info.cpp:500,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:501,1
    - Dst: torrent_info::clear_trackers
      Src: /src/libtorrent/test/test_torrent_info.cpp:503,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:504,1
    - Dst: torrent_info::trackers
      Src: /src/libtorrent/test/test_torrent_info.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 505
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - info_hash_t
    - torrent_info::add_tracker
    - torrent_info::trackers
    - sha1_hash
    - torrent_info::clear_trackers
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list_type::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:516,1
    - Dst: entry
      Src: /src/libtorrent/test/test_torrent_info.cpp:516,1
    - Dst: entry::list_type::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:517,1
    - Dst: entry
      Src: /src/libtorrent/test/test_torrent_info.cpp:517,1
    - Dst: entry::list_type::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:518,1
    - Dst: entry
      Src: /src/libtorrent/test/test_torrent_info.cpp:518,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:525,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent_info.cpp:525,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:527,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 528
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry
    - torrent_info::web_seeds
    - std::back_inserter
    - entry::list_type::push_back
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_list_and_httpseeds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info_hash_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:532,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:532,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:533,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:533,1
    - Dst: torrent_info::add_url_seed
      Src: /src/libtorrent/test/test_torrent_info.cpp:535,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:537,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:537,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:538,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:539,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 541
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - info_hash_t
    - torrent_info::web_seeds
    - torrent_info::add_url_seed
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_url_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info_hash_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:545,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:545,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:546,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:546,1
    - Dst: torrent_info::add_http_seed
      Src: /src/libtorrent/test/test_torrent_info.cpp:548,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:550,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:550,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:551,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:552,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 554
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - info_hash_t
    - torrent_info::web_seeds
    - torrent_info::add_http_seed
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_http_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info_hash_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:558,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:558,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:559,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:559,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:563,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent_info.cpp:565,1
    - Dst: torrent_info::set_web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:567,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:569,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:569,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:570,1
    - Dst: torrent_info::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 571
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - info_hash_t
    - std::vector::push_back
    - torrent_info::set_web_seeds
    - torrent_info::web_seeds
    - sha1_hash
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_web_seeds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:578,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:584,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 601
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sanitize_append_path_element
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_path_truncate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:609,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 621
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sanitize_append_path_element
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_path_truncate_utf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:627,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:628,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:629,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:631,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:633,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:636,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:637,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:639,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:641,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:644,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:645,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:647,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:649,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:653,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:654,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:656,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 660
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sanitize_append_path_element
    - std::string::clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_path_trailing_dots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:666,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:667,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:668,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:670,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:672,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:675,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:676,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:678,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:680,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:683,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:684,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:686,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 690
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sanitize_append_path_element
    - std::string::clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_path_trailing_spaces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:696,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:697,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:699,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:700,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:701,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:702,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:703,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:705,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:706,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:707,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:709,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:710,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:711,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:712,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:713,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:715,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:716,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:717,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:718,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:720,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:721,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:722,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:723,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:724,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:726,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:727,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:729,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:731,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:734,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:735,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:736,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:738,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:740,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:743,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:744,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:745,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:746,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:748,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:750,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:753,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:754,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:755,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:756,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:757,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:759,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:760,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:761,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:763,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:764,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:765,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:766,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:768,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:769,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:770,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:771,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:773,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:774,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:775,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:776,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:778,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:779,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:780,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:782,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:784,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:787,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:788,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:789,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:790,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:792,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:793,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:795,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:797,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:800,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:801,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:802,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:805,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:806,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:807,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:810,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:811,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:812,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:815,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:816,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:817,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:820,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:821,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:822,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:825,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:826,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:827,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:830,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:831,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:832,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:835,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:836,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:837,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:840,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:841,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:842,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:846,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:847,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:848,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:852,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:853,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:854,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:858,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:859,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:860,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:863,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:864,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:865,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:868,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:870,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:871,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:874,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:876,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 118
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 878
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sanitize_append_path_element
    - std::string::clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:884,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:885,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:887,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:888,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:889,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:890,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:891,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:893,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:894,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:895,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:897,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:898,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:899,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:900,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:901,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:903,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:904,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:905,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:906,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:908,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:909,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:910,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:911,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:912,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:914,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:915,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:917,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:919,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:922,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:923,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:924,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:926,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:928,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:931,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:932,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:933,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:934,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:936,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:938,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:941,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:942,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:943,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:944,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:945,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:947,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:948,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:949,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:951,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:952,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:953,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:954,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:956,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:957,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:958,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:959,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:961,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:962,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:963,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:964,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:966,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:967,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:968,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:970,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:972,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:975,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:976,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:977,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:978,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:980,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:981,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:983,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:985,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:988,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:989,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:990,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:993,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:994,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:995,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:998,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:999,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1000,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1003,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1004,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1005,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1008,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1009,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1010,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1013,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1014,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1015,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1018,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1019,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1020,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1023,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1024,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1025,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1028,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1029,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1030,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1034,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1035,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1036,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1040,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1041,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1042,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1046,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1047,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1048,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1051,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1052,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1053,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1056,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1058,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1059,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1062,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1064,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 118
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 1066
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sanitize_append_path_element
    - std::string::clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_path_force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1072,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1073,1
    - Dst: std::string::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1075,1
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1076,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1078
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sanitize_append_path_element
    - std::string::clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_path_zeroes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_append_path_element
      Src: /src/libtorrent/test/test_torrent_info.cpp:1084,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1086,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1090
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sanitize_append_path_element
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sanitize_path_colon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1098,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1098,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1099,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1102,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1102,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1107,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1107,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1108,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1109,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1113,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1113,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1114,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1119,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1119,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1120,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1120,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1121,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1125,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1125,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1126,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1131,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1131,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1132,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1132,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1137,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1137,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1138,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1138,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1143,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1143,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1144,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1145,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1149,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1149,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1150,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1151,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1156,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1156,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1157,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1157,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1158,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1163,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1163,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1164,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1164,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1170,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1170,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1171,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1176,1
    - Dst: verify_encoding
      Src: /src/libtorrent/test/test_torrent_info.cpp:1176,1
    - Dst: fprintf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1177,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1177,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1179
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - verify_encoding
    - std::string::c_str
    - fprintf
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(verify_encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_size
      Src: /src/libtorrent/test/test_torrent_info.cpp:1187,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_torrent_info.cpp:1187,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1189,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_torrent_info.cpp:1189,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1190,1
    - Dst: v1
      Src: /src/libtorrent/test/test_torrent_info.cpp:1190,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_torrent_info.cpp:1190,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1191,1
    - Dst: v2
      Src: /src/libtorrent/test/test_torrent_info.cpp:1191,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_torrent_info.cpp:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - std::shared_ptr<torrent_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1192
    functionName: sanity_check
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - total_size
    - v1
    - info_hashes
    - piece_length
    - v2
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void sanity_check(std::shared_ptr<torrent_info> const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_size
      Src: /src/libtorrent/test/test_torrent_info.cpp:1187,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_torrent_info.cpp:1187,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1189,1
    - Dst: piece_length
      Src: /src/libtorrent/test/test_torrent_info.cpp:1189,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1190,1
    - Dst: v1
      Src: /src/libtorrent/test/test_torrent_info.cpp:1190,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_torrent_info.cpp:1190,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1191,1
    - Dst: v2
      Src: /src/libtorrent/test/test_torrent_info.cpp:1191,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_torrent_info.cpp:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - std::shared_ptr<torrent_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1192
    functionName: sanity_check
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - total_size
    - v1
    - info_hashes
    - piece_length
    - v2
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void sanity_check(std::shared_ptr<torrent_info> const& ti)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:1208,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent_info.cpp:1208,1
    - Dst: torrent_info::name
      Src: /src/libtorrent/test/test_torrent_info.cpp:1210,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1211,1
    - Dst: torrent_info::name
      Src: /src/libtorrent/test/test_torrent_info.cpp:1211,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1219,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:1220,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent_info.cpp:1220,1
    - Dst: torrent_info::name
      Src: /src/libtorrent/test/test_torrent_info.cpp:1222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1224,1
    - Dst: torrent_info::name
      Src: /src/libtorrent/test/test_torrent_info.cpp:1224,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1226,1
    - Dst: torrent_info::name
      Src: /src/libtorrent/test/test_torrent_info.cpp:1226,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_torrent_info.cpp:1231,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:1232,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent_info.cpp:1232,1
    - Dst: torrent_info::name
      Src: /src/libtorrent/test/test_torrent_info.cpp:1234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1235,1
    - Dst: torrent_info::name
      Src: /src/libtorrent/test/test_torrent_info.cpp:1235,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1236,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_torrent_info.cpp:1236,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1239,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1240,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1240,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1243,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1244,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1245,1
    - Dst: sanity_check
      Src: /src/libtorrent/test/test_torrent_info.cpp:1246,1
    - Dst: load_torrent_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1248,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1249,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_torrent_info.cpp:1249,1
    - Dst: sanity_check
      Src: /src/libtorrent/test/test_torrent_info.cpp:1250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1253,1
    - Dst: add_torrent_params::ti::trackers
      Src: /src/libtorrent/test/test_torrent_info.cpp:1253,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1256,1
    - Dst: add_torrent_params::ti::web_seeds
      Src: /src/libtorrent/test/test_torrent_info.cpp:1256,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1260,1
    - Dst: add_torrent_params::ti::v2_piece_hashes_verified
      Src: /src/libtorrent/test/test_torrent_info.cpp:1260,1
    - Dst: test
      Src: /src/libtorrent/test/test_torrent_info.cpp:1262,1
    - Dst: auto::get
      Src: /src/libtorrent/test/test_torrent_info.cpp:1262,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_torrent_info.cpp:1264,1
    - Dst: file_range
      Src: /src/libtorrent/test/test_torrent_info.cpp:1265,1
    - Dst: auto::map_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1267,1
    - Dst: auto::map_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1268,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_torrent_info.cpp:1268,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_torrent_info.cpp:1268,1
    - Dst: std::int64_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:1268,1
    - Dst: file_flags
      Src: /src/libtorrent/test/test_torrent_info.cpp:1269,1
    - Dst: hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:1270,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1271,1
    - Dst: file_size
      Src: /src/libtorrent/test/test_torrent_info.cpp:1272,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1277,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:1278,1
    - Dst: mtime
      Src: /src/libtorrent/test/test_torrent_info.cpp:1278,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:1279,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_torrent_info.cpp:1279,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1280,1
    - Dst: symlink
      Src: /src/libtorrent/test/test_torrent_info.cpp:1282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1285
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::info_hashes
    - auto::files
    - torrent_info::name
    - auto::get
    - parent_path
    - std::uint32_t
    - add_torrent_params::ti::v2_piece_hashes_verified
    - symlink
    - file_size
    - std::max
    - std::make_shared<torrent_info>
    - add_torrent_params::ti::trackers
    - std::vector::clear
    - hash
    - file_path
    - add_torrent_params::ti::web_seeds
    - error_code::message
    - file_range
    - sha1_hash
    - std::printf
    - file_flags
    - TEST_EQUAL
    - current_working_directory
    - auto::map_file
    - libtorrent::aux::to_hex
    - load_torrent_file
    - test
    - bencode
    - TEST_CHECK
    - combine_path
    - mtime
    - std::int64_t
    - std::back_inserter
    - sanity_check
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_torrents)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parent_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1289,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_torrent_info.cpp:1289,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1293,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1294,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1294,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1297,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1298,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1298,1
    - Dst: error::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1299,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1305,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1305,1
    - Dst: error::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1305,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1306,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_torrent_info.cpp:1306,1
    - Dst: load_torrent_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1311,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_torrent_info.cpp:1312,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1316,1
    - Dst: code
      Src: /src/libtorrent/test/test_torrent_info.cpp:1316,1
    - Dst: error::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1317,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1318,1
    - Dst: code
      Src: /src/libtorrent/test/test_torrent_info.cpp:1318,1
    - Dst: error::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1321
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - TEST_EQUAL
    - std::make_shared<torrent_info>
    - error::message
    - combine_path
    - load_torrent_file
    - parent_path
    - TORRENT_ASSERT
    - code
    - error_code::message
    - auto::is_valid
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_invalid_torrents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1424,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_torrent_info.cpp:1430,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:1431,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent_info.cpp:1431,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent_info.cpp:1436,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:1437,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_torrent_info.cpp:1440,1
    - Dst: torrent_info::files
      Src: /src/libtorrent/test/test_torrent_info.cpp:1442,1
    - Dst: convert_path_to_posix
      Src: /src/libtorrent/test/test_torrent_info.cpp:1443,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1444,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1444,1
    - Dst: expected_filename::to_string
      Src: /src/libtorrent/test/test_torrent_info.cpp:1444,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' test'
    argTypes:
    - aux::vector<file_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1448
    functionName: test_resolve_duplicates
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::create_torrent::set_hash
    - file_storage::piece_range
    - file_storage::add_file
    - std::string::c_str
    - libtorrent::aux::max
    - expected_filename::to_string
    - torrent_info::files
    - convert_path_to_posix
    - lt::create_torrent::generate
    - file_storage::file_range
    - std::printf
    - bencode
    linkageType: ''
    returnType: void
    signature: void test_resolve_duplicates(aux::vector<file_t, file_index_t> const&
      test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1424,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_torrent_info.cpp:1430,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:1431,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent_info.cpp:1431,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent_info.cpp:1436,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:1437,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/test/test_torrent_info.cpp:1440,1
    - Dst: torrent_info::files
      Src: /src/libtorrent/test/test_torrent_info.cpp:1442,1
    - Dst: convert_path_to_posix
      Src: /src/libtorrent/test/test_torrent_info.cpp:1443,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1444,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1444,1
    - Dst: expected_filename::to_string
      Src: /src/libtorrent/test/test_torrent_info.cpp:1444,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' test'
    argTypes:
    - aux::vector<file_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1448
    functionName: test_resolve_duplicates
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::create_torrent::set_hash
    - file_storage::piece_range
    - file_storage::add_file
    - std::string::c_str
    - libtorrent::aux::max
    - expected_filename::to_string
    - torrent_info::files
    - convert_path_to_posix
    - lt::create_torrent::generate
    - file_storage::file_range
    - std::printf
    - bencode
    linkageType: ''
    returnType: void
    signature: void test_resolve_duplicates(aux::vector<file_t, file_index_t> const&
      test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_resolve_duplicates
      Src: /src/libtorrent/test/test_torrent_info.cpp:1455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1452
    functionDepth: 2
    functionLinenumber: 1452
    functionLinenumberEnd: 1456
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - test_resolve_duplicates
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resolve_duplicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1461,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1463
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1469,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_torrent_info.cpp:1470,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1474,1
    - Dst: code
      Src: /src/libtorrent/test/test_torrent_info.cpp:1474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1476
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - code
    - std::make_shared<torrent_info>
    - std::printf
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty_file2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent_info.cpp:1482,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_torrent_info.cpp:1483,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1487,1
    - Dst: code
      Src: /src/libtorrent/test/test_torrent_info.cpp:1487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1489
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - code
    - load_torrent_buffer
    - std::printf
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(load_torrent_empty_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1495,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1496,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1496,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_torrent_info.cpp:1496,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1497,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:1508,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:1509,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:1510,1
    - Dst: std::shared_ptr::files
      Src: /src/libtorrent/test/test_torrent_info.cpp:1513,1
    - Dst: file_range
      Src: /src/libtorrent/test/test_torrent_info.cpp:1514,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1516,1
    - Dst: convert_path_to_posix
      Src: /src/libtorrent/test/test_torrent_info.cpp:1517,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1518,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1519,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1519,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1521,1
    - Dst: std::shared_ptr::files
      Src: /src/libtorrent/test/test_torrent_info.cpp:1521,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1525,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/test/test_torrent_info.cpp:1526,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1528,1
    - Dst: std::shared_ptr::num_files
      Src: /src/libtorrent/test/test_torrent_info.cpp:1528,1
    - Dst: std::shared_ptr::files
      Src: /src/libtorrent/test/test_torrent_info.cpp:1530,1
    - Dst: file_range
      Src: /src/libtorrent/test/test_torrent_info.cpp:1531,1
    - Dst: file_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1533,1
    - Dst: convert_path_to_posix
      Src: /src/libtorrent/test/test_torrent_info.cpp:1534,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1535,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1536,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1536,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1538,1
    - Dst: hash
      Src: /src/libtorrent/test/test_torrent_info.cpp:1538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1491
    functionDepth: 1
    functionLinenumber: 1491
    functionLinenumberEnd: 1540
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - TEST_EQUAL
    - std::make_shared<torrent_info>
    - combine_path
    - std::printf
    - parent_path
    - hash
    - std::string::c_str
    - std::shared_ptr::files
    - file_path
    - std::shared_ptr::num_files
    - convert_path_to_posix
    - std::shared_ptr::reset
    - sha1_hash
    - file_range
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: A::A
      Src: /src/libtorrent/test/test_torrent_info.cpp:1549,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1552,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1547
    functionDepth: 1
    functionLinenumber: 1547
    functionLinenumberEnd: 1556
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - A::A
    - TEST_EQUAL
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(copy_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parent_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1560,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_torrent_info.cpp:1560,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1561,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1561,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1565,1
    - Dst: load_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1565,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1567,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1568,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1569,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_torrent_info.cpp:1569,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1570,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1572,1
    - Dst: auto::v2
      Src: /src/libtorrent/test/test_torrent_info.cpp:1572,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1573,1
    - Dst: auto::v1
      Src: /src/libtorrent/test/test_torrent_info.cpp:1573,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1574,1
    - Dst: auto::v2_piece_hashes_verified
      Src: /src/libtorrent/test/test_torrent_info.cpp:1574,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_torrent_info.cpp:1581,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1583,1
    - Dst: auto::v2
      Src: /src/libtorrent/test/test_torrent_info.cpp:1583,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1584,1
    - Dst: auto::v1
      Src: /src/libtorrent/test/test_torrent_info.cpp:1584,1
    - Dst: torrent_handle::torrent_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1587,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1588,1
    - Dst: auto::v2
      Src: /src/libtorrent/test/test_torrent_info.cpp:1588,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1589,1
    - Dst: auto::v1
      Src: /src/libtorrent/test/test_torrent_info.cpp:1589,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1590,1
    - Dst: auto::v2_piece_hashes_verified
      Src: /src/libtorrent/test/test_torrent_info.cpp:1590,1
    - Dst: torrent_handle::torrent_file_with_hashes
      Src: /src/libtorrent/test/test_torrent_info.cpp:1593,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1595,1
    - Dst: auto::v2
      Src: /src/libtorrent/test/test_torrent_info.cpp:1595,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1596,1
    - Dst: auto::v1
      Src: /src/libtorrent/test/test_torrent_info.cpp:1596,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1597,1
    - Dst: auto::v2_piece_hashes_verified
      Src: /src/libtorrent/test/test_torrent_info.cpp:1597,1
    - Dst: serialize
      Src: /src/libtorrent/test/test_torrent_info.cpp:1599,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent_info.cpp:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1602
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - auto::v1
    - current_working_directory
    - TEST_EQUAL
    - std::make_shared<torrent_info>
    - torrent_handle::torrent_file_with_hashes
    - serialize
    - auto::v2
    - combine_path
    - parent_path
    - std::string::c_str
    - session::add_torrent
    - torrent_handle::torrent_file
    - load_file
    - error_code::message
    - auto::v2_piece_hashes_verified
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_info_with_hashes_roundtrip)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1606,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1606,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_torrent_info.cpp:1606,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent_info.cpp:1662,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1664,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1667,1
    - Dst: load_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1667,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1669,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1670,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1671,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_torrent_info.cpp:1671,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_torrent_info.cpp:1678,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_torrent_info.cpp:1680,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent_info.cpp:1681,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_torrent_info.cpp:1683,1
    - Dst: static_cast<save_resume_data_alert const*>
      Src: /src/libtorrent/test/test_torrent_info.cpp:1685,1
    - Dst: write_torrent_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1686,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:1688,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent_info.cpp:1688,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1690,1
    - Dst: write_torrent_file_buf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1690,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_torrent_info.cpp:1694,1
    - Dst: std::isprint
      Src: /src/libtorrent/test/test_torrent_info.cpp:1696,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:1696,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_torrent_info.cpp:1699,1
    - Dst: std::isprint
      Src: /src/libtorrent/test/test_torrent_info.cpp:1701,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:1701,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1704,1
    - Dst: load_torrent_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1708,1
    - Dst: write_torrent_file
      Src: /src/libtorrent/test/test_torrent_info.cpp:1709,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent_info.cpp:1711,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent_info.cpp:1711,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1713,1
    - Dst: write_torrent_file_buf
      Src: /src/libtorrent/test/test_torrent_info.cpp:1713,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_torrent_info.cpp:1717,1
    - Dst: std::isprint
      Src: /src/libtorrent/test/test_torrent_info.cpp:1719,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:1719,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_torrent_info.cpp:1722,1
    - Dst: std::isprint
      Src: /src/libtorrent/test/test_torrent_info.cpp:1724,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_torrent_info.cpp:1724,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent_info.cpp:1727,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1604
    functionDepth: 1
    functionLinenumber: 1604
    functionLinenumberEnd: 1730
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - parent_path
    - session::add_torrent
    - std::isprint
    - write_torrent_file_buf
    - std::make_shared<torrent_info>
    - std::uint8_t
    - torrent_handle::save_resume_data
    - static_cast<save_resume_data_alert const*>
    - load_file
    - error_code::message
    - std::printf
    - current_working_directory
    - load_torrent_file
    - TORRENT_ASSERT
    - write_torrent_file
    - bencode
    - TEST_CHECK
    - combine_path
    - wait_for_alert
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_torrent_file_session_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:49,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_utf8.cpp:53,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:53,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:55,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_utf8.cpp:55,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - codepoint
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: test_utf8_roundtrip
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::tie
    - append_utf8_codepoint
    - parse_utf8_codepoint
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void test_utf8_roundtrip(std::int32_t const codepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_utf8.cpp:63,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:63,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:64,1
    - Dst: lt::string_view::size
      Src: /src/libtorrent/test/test_utf8.cpp:64,1
    - Dst: append_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:67,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - lt::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: test_parse_utf8
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::tie
    - append_utf8_codepoint
    - parse_utf8_codepoint
    - lt::string_view::size
    linkageType: ''
    returnType: void
    signature: void test_parse_utf8(lt::string_view utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_utf8.cpp:75,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utf8.cpp:77,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utf8.cpp:78,1
    - Dst: lt::string_view::size
      Src: /src/libtorrent/test/test_utf8.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - lt::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: parse_error
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::tie
    - parse_utf8_codepoint
    - lt::string_view::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void parse_error(lt::string_view utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:49,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_utf8.cpp:53,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:53,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:55,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_utf8.cpp:55,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - codepoint
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: test_utf8_roundtrip
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::tie
    - append_utf8_codepoint
    - parse_utf8_codepoint
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void test_utf8_roundtrip(std::int32_t const codepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_utf8.cpp:63,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:63,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:64,1
    - Dst: lt::string_view::size
      Src: /src/libtorrent/test/test_utf8.cpp:64,1
    - Dst: append_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:67,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - lt::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: test_parse_utf8
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::tie
    - append_utf8_codepoint
    - parse_utf8_codepoint
    - lt::string_view::size
    linkageType: ''
    returnType: void
    signature: void test_parse_utf8(lt::string_view utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_utf8.cpp:75,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/test/test_utf8.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_utf8.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utf8.cpp:77,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_utf8.cpp:78,1
    - Dst: lt::string_view::size
      Src: /src/libtorrent/test/test_utf8.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - lt::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: parse_error
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::tie
    - parse_utf8_codepoint
    - lt::string_view::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void parse_error(lt::string_view utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_utf8_roundtrip
      Src: /src/libtorrent/test/test_utf8.cpp:85,1
    - Dst: test_utf8_roundtrip
      Src: /src/libtorrent/test/test_utf8.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - test_utf8_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_utf8_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_parse_utf8
      Src: /src/libtorrent/test/test_utf8.cpp:95,1
    - Dst: test_parse_utf8
      Src: /src/libtorrent/test/test_utf8.cpp:96,1
    - Dst: test_parse_utf8
      Src: /src/libtorrent/test/test_utf8.cpp:97,1
    - Dst: test_parse_utf8
      Src: /src/libtorrent/test/test_utf8.cpp:98,1
    - Dst: test_parse_utf8
      Src: /src/libtorrent/test/test_utf8.cpp:99,1
    - Dst: test_parse_utf8
      Src: /src/libtorrent/test/test_utf8.cpp:100,1
    - Dst: test_parse_utf8
      Src: /src/libtorrent/test/test_utf8.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - test_parse_utf8
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:109,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:110,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:114,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:115,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:116,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:119,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:120,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:121,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:122,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:123,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:126,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:127,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:128,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:129,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:130,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:133,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:134,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:135,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:136,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:137,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:140,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:143,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:144,1
    - Dst: parse_error
      Src: /src/libtorrent/test/test_utf8.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 148
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_utf8.cpp
    functionUses: 0
    functionsReached:
    - parse_error
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(parse_utf8_fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_stat_cache.cpp:50,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_stat_cache.cpp:51,1
    - Dst: stat_cache::reserve
      Src: /src/libtorrent/test/test_stat_cache.cpp:56,1
    - Dst: stat_cache::set_error
      Src: /src/libtorrent/test/test_stat_cache.cpp:58,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_stat_cache.cpp:58,1
    - Dst: generic_category
      Src: /src/libtorrent/test/test_stat_cache.cpp:58,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_stat_cache.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:60,1
    - Dst: stat_cache::get_filesize
      Src: /src/libtorrent/test/test_stat_cache.cpp:60,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:61,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_stat_cache.cpp:61,1
    - Dst: generic_category
      Src: /src/libtorrent/test/test_stat_cache.cpp:61,1
    - Dst: stat_cache::set_error
      Src: /src/libtorrent/test/test_stat_cache.cpp:63,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_stat_cache.cpp:63,1
    - Dst: generic_category
      Src: /src/libtorrent/test/test_stat_cache.cpp:63,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_stat_cache.cpp:64,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:65,1
    - Dst: stat_cache::get_filesize
      Src: /src/libtorrent/test/test_stat_cache.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:66,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_stat_cache.cpp:66,1
    - Dst: generic_category
      Src: /src/libtorrent/test/test_stat_cache.cpp:66,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_stat_cache.cpp:68,1
    - Dst: stat_cache::set_cache
      Src: /src/libtorrent/test/test_stat_cache.cpp:69,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:70,1
    - Dst: stat_cache::get_filesize
      Src: /src/libtorrent/test/test_stat_cache.cpp:70,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stat_cache.cpp:71,1
    - Dst: stat_cache::set_error
      Src: /src/libtorrent/test/test_stat_cache.cpp:73,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_stat_cache.cpp:73,1
    - Dst: generic_category
      Src: /src/libtorrent/test/test_stat_cache.cpp:73,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_stat_cache.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:75,1
    - Dst: stat_cache::get_filesize
      Src: /src/libtorrent/test/test_stat_cache.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:76,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_stat_cache.cpp:76,1
    - Dst: generic_category
      Src: /src/libtorrent/test/test_stat_cache.cpp:76,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_stat_cache.cpp:78,1
    - Dst: stat_cache::set_error
      Src: /src/libtorrent/test/test_stat_cache.cpp:79,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_stat_cache.cpp:79,1
    - Dst: generic_category
      Src: /src/libtorrent/test/test_stat_cache.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:80,1
    - Dst: stat_cache::get_filesize
      Src: /src/libtorrent/test/test_stat_cache.cpp:80,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stat_cache.cpp:81,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_stat_cache.cpp:81,1
    - Dst: generic_category
      Src: /src/libtorrent/test/test_stat_cache.cpp:81,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_stat_cache.cpp:83,1
    - Dst: stat_cache::set_cache
      Src: /src/libtorrent/test/test_stat_cache.cpp:84,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stat_cache.cpp:85,1
    - Dst: stat_cache::get_filesize
      Src: /src/libtorrent/test/test_stat_cache.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stat_cache.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 87
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_stat_cache.cpp
    functionUses: 0
    functionsReached:
    - stat_cache::get_filesize
    - TEST_EQUAL
    - stat_cache::set_error
    - stat_cache::reserve
    - file_storage::add_file
    - error_code
    - std::snprintf
    - error_code::clear
    - generic_category
    - stat_cache::set_cache
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stat_cache)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_parser::incoming
      Src: /src/libtorrent/test/test_upnp.cpp:82,1
    - Dst: http_parser::header_finished
      Src: /src/libtorrent/test/test_upnp.cpp:83,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_upnp.cpp:86,1
    - Dst: http_parser::method
      Src: /src/libtorrent/test/test_upnp.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_upnp.cpp:103,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_upnp.cpp:109,1
    - Dst: send_to
      Src: /src/libtorrent/test/test_upnp.cpp:114,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_upnp.cpp:116,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_upnp.cpp:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' from'
    - buffer
    argTypes:
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 119
    functionName: incoming_msearch
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - http_parser::method
    - std::snprintf
    - print_endpoint
    - TORRENT_ASSERT
    - http_parser::incoming
    - error_code::message
    - http_parser::header_finished
    - send_to
    linkageType: ''
    returnType: void
    signature: void incoming_msearch(udp::endpoint const& from, span<char const> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - callback_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: operator==(callback_info const& e)
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(callback_info const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/test/test_upnp.cpp:140,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_upnp.cpp:141,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_upnp.cpp:143,1
    - Dst: message
      Src: /src/libtorrent/test/test_upnp.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - mapping
    - ' ip'
    - port
    - protocol
    - ' err'
    argTypes:
    - port_mapping_t
    - address
    - int
    - portmap_protocol
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: on_port_mapping
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - message
    linkageType: ''
    returnType: void
    signature: "void on_port_mapping(port_mapping_t const mapping\n\t\t\t, address
      const& ip, int port\n\t\t\t, portmap_protocol const protocol, error_code const&
      err\n\t\t\t, portmap_transport, aux::listen_socket_handle const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: should_log_portmap
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log_portmap(portmap_transport) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: log_portmap
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void log_portmap(portmap_transport, char const* msg\n\t\t\t, aux::listen_socket_handle
      const&) const override"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: enum_routes
      Src: /src/libtorrent/test/test_upnp.cpp:165,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_upnp.cpp:168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:169,1
    - Dst: enum_net_interfaces
      Src: /src/libtorrent/test/test_upnp.cpp:172,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_upnp.cpp:175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:176,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/test/test_upnp.cpp:182,1
    - Dst: interface_address::to_string
      Src: /src/libtorrent/test/test_upnp.cpp:184,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_upnp.cpp:185,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/test/test_upnp.cpp:186,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_upnp.cpp:191,1
    - Dst: destination::is_v4
      Src: /src/libtorrent/test/test_upnp.cpp:194,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_upnp.cpp:195,1
    - Dst: destination::to_string
      Src: /src/libtorrent/test/test_upnp.cpp:196,1
    - Dst: netmask::to_string
      Src: /src/libtorrent/test/test_upnp.cpp:197,1
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_upnp.cpp:201,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_upnp.cpp:201,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_upnp.cpp:201,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/test/test_upnp.cpp:203,1
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_upnp.cpp:208,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_upnp.cpp:208,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_upnp.cpp:208,1
    - Dst: destination::is_v4
      Src: /src/libtorrent/test/test_upnp.cpp:210,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_upnp.cpp:211,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/test/test_upnp.cpp:212,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_upnp.cpp:212,1
    - Dst: destination::to_v4
      Src: /src/libtorrent/test/test_upnp.cpp:213,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_upnp.cpp:216,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_upnp.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:223,1
    - Dst: auto::interface_address::to_string
      Src: /src/libtorrent/test/test_upnp.cpp:226,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 228
    functionName: pick_upnp_interface
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::vector::begin
    - destination::to_string
    - enum_routes
    - std::vector::end
    - auto::interface_address::to_string
    - destination::to_v4
    - static_cast<std::uint32_t>
    - error_code::message
    - std::printf
    - destination::is_v4
    - interface_address::is_v4
    - interface_address::to_string
    - static_cast<std::uint8_t>
    - TEST_CHECK
    - std::find_if
    - netmask::to_string
    - string_view
    - match_addr_mask
    - enum_net_interfaces
    linkageType: ''
    returnType: ip_interface
    signature: ip_interface pick_upnp_interface()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_upnp.cpp:232,1
    - Dst: load_file
      Src: /src/libtorrent/test/test_upnp.cpp:236,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_upnp.cpp:237,1
    - Dst: fopen
      Src: /src/libtorrent/test/test_upnp.cpp:239,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_upnp.cpp:242,1
    - Dst: strerror
      Src: /src/libtorrent/test/test_upnp.cpp:242,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:243,1
    - Dst: std::fprintf
      Src: /src/libtorrent/test/test_upnp.cpp:250,1
    - Dst: fclose
      Src: /src/libtorrent/test/test_upnp.cpp:254,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_upnp.cpp:257,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_upnp.cpp:258,1
    - Dst: uep
      Src: /src/libtorrent/test/test_upnp.cpp:260,1
    - Dst: broadcast_socket::broadcast_socket
      Src: /src/libtorrent/test/test_upnp.cpp:260,1
    - Dst: pick_upnp_interface
      Src: /src/libtorrent/test/test_upnp.cpp:266,1
    - Dst: open
      Src: /src/libtorrent/test/test_upnp.cpp:268,1
    - Dst: std::make_shared<upnp>
      Src: /src/libtorrent/test/test_upnp.cpp:271,1
    - Dst: auto::interface_address::to_v4
      Src: /src/libtorrent/test/test_upnp.cpp:272,1
    - Dst: auto::netmask::to_v4
      Src: /src/libtorrent/test/test_upnp.cpp:272,1
    - Dst: libtorrent::aux::listen_socket_handle
      Src: /src/libtorrent/test/test_upnp.cpp:272,1
    - Dst: auto::start
      Src: /src/libtorrent/test/test_upnp.cpp:273,1
    - Dst: lt::io_context::restart
      Src: /src/libtorrent/test/test_upnp.cpp:277,1
    - Dst: lt::io_context::poll
      Src: /src/libtorrent/test/test_upnp.cpp:278,1
    - Dst: auto::router_model
      Src: /src/libtorrent/test/test_upnp.cpp:279,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_upnp.cpp:280,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_upnp.cpp:280,1
    - Dst: auto::router_model
      Src: /src/libtorrent/test/test_upnp.cpp:283,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:284,1
    - Dst: auto::router_model
      Src: /src/libtorrent/test/test_upnp.cpp:284,1
    - Dst: auto::add_mapping
      Src: /src/libtorrent/test/test_upnp.cpp:286,1
    - Dst: ep
      Src: /src/libtorrent/test/test_upnp.cpp:287,1
    - Dst: auto::add_mapping
      Src: /src/libtorrent/test/test_upnp.cpp:288,1
    - Dst: ep
      Src: /src/libtorrent/test/test_upnp.cpp:289,1
    - Dst: lt::io_context::restart
      Src: /src/libtorrent/test/test_upnp.cpp:293,1
    - Dst: lt::io_context::poll
      Src: /src/libtorrent/test/test_upnp.cpp:294,1
    - Dst: size
      Src: /src/libtorrent/test/test_upnp.cpp:295,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_upnp.cpp:296,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_upnp.cpp:296,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_upnp.cpp:299,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_upnp.cpp:300,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_upnp.cpp:301,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_upnp.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/test/test_upnp.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/test/test_upnp.cpp:301,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_upnp.cpp:302,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_upnp.cpp:302,1
    - Dst: begin
      Src: /src/libtorrent/test/test_upnp.cpp:302,1
    - Dst: end
      Src: /src/libtorrent/test/test_upnp.cpp:302,1
    - Dst: std::ofstream::open
      Src: /src/libtorrent/test/test_upnp.cpp:304,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_upnp.cpp:305,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_upnp.cpp:306,1
    - Dst: auto::close
      Src: /src/libtorrent/test/test_upnp.cpp:308,1
    - Dst: close
      Src: /src/libtorrent/test/test_upnp.cpp:309,1
    - Dst: lt::io_context::restart
      Src: /src/libtorrent/test/test_upnp.cpp:313,1
    - Dst: lt::io_context::poll
      Src: /src/libtorrent/test/test_upnp.cpp:314,1
    - Dst: size
      Src: /src/libtorrent/test/test_upnp.cpp:315,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_upnp.cpp:316,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_upnp.cpp:316,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_upnp.cpp:320,1
    - Dst: size
      Src: /src/libtorrent/test/test_upnp.cpp:320,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_upnp.cpp:322,1
    - Dst: clear
      Src: /src/libtorrent/test/test_upnp.cpp:324,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - root_filename
    - control_name
    - igd_version
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 327
    functionName: run_upnp_test
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::this_thread::sleep_for
    - close
    - std::ofstream::open
    - pick_upnp_interface
    - std::ofstream::write
    - auto::add_mapping
    - end
    - lt::io_context::restart
    - load_file
    - clear
    - stop_web_server
    - auto::interface_address::to_v4
    - broadcast_socket::broadcast_socket
    - std::printf
    - uep
    - TEST_EQUAL
    - open
    - std::count
    - libtorrent::total_milliseconds
    - libtorrent::aux::listen_socket_handle
    - lt::io_context::poll
    - fclose
    - std::ofstream::close
    - size
    - TEST_CHECK
    - auto::start
    - auto::close
    - std::vector::push_back
    - auto::router_model
    - error_code
    - start_web_server
    - strerror
    - ep
    - std::fprintf
    - auto::netmask::to_v4
    - fopen
    - std::make_shared<upnp>
    linkageType: ''
    returnType: void
    signature: void run_upnp_test(char const* root_filename, char const* control_name,
      int igd_version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_parser::incoming
      Src: /src/libtorrent/test/test_upnp.cpp:82,1
    - Dst: http_parser::header_finished
      Src: /src/libtorrent/test/test_upnp.cpp:83,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_upnp.cpp:86,1
    - Dst: http_parser::method
      Src: /src/libtorrent/test/test_upnp.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_upnp.cpp:103,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_upnp.cpp:109,1
    - Dst: send_to
      Src: /src/libtorrent/test/test_upnp.cpp:114,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_upnp.cpp:116,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_upnp.cpp:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' from'
    - buffer
    argTypes:
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 119
    functionName: incoming_msearch
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - http_parser::method
    - std::snprintf
    - print_endpoint
    - TORRENT_ASSERT
    - http_parser::incoming
    - error_code::message
    - http_parser::header_finished
    - send_to
    linkageType: ''
    returnType: void
    signature: void incoming_msearch(udp::endpoint const& from, span<char const> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - callback_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: operator==(callback_info const& e)
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(callback_info const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/test/test_upnp.cpp:140,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_upnp.cpp:141,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_upnp.cpp:143,1
    - Dst: message
      Src: /src/libtorrent/test/test_upnp.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - mapping
    - ' ip'
    - port
    - protocol
    - ' err'
    argTypes:
    - port_mapping_t
    - address
    - int
    - portmap_protocol
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: on_port_mapping
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - message
    linkageType: ''
    returnType: void
    signature: "void on_port_mapping(port_mapping_t const mapping\n\t\t\t, address
      const& ip, int port\n\t\t\t, portmap_protocol const protocol, error_code const&
      err\n\t\t\t, portmap_transport, aux::listen_socket_handle const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: should_log_portmap
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log_portmap(portmap_transport) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: log_portmap
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void log_portmap(portmap_transport, char const* msg\n\t\t\t, aux::listen_socket_handle
      const&) const override"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: enum_routes
      Src: /src/libtorrent/test/test_upnp.cpp:165,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_upnp.cpp:168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:169,1
    - Dst: enum_net_interfaces
      Src: /src/libtorrent/test/test_upnp.cpp:172,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_upnp.cpp:175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:176,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/test/test_upnp.cpp:182,1
    - Dst: interface_address::to_string
      Src: /src/libtorrent/test/test_upnp.cpp:184,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_upnp.cpp:185,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/test/test_upnp.cpp:186,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_upnp.cpp:191,1
    - Dst: destination::is_v4
      Src: /src/libtorrent/test/test_upnp.cpp:194,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_upnp.cpp:195,1
    - Dst: destination::to_string
      Src: /src/libtorrent/test/test_upnp.cpp:196,1
    - Dst: netmask::to_string
      Src: /src/libtorrent/test/test_upnp.cpp:197,1
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_upnp.cpp:201,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_upnp.cpp:201,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_upnp.cpp:201,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/test/test_upnp.cpp:203,1
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_upnp.cpp:208,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_upnp.cpp:208,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_upnp.cpp:208,1
    - Dst: destination::is_v4
      Src: /src/libtorrent/test/test_upnp.cpp:210,1
    - Dst: string_view
      Src: /src/libtorrent/test/test_upnp.cpp:211,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/test/test_upnp.cpp:212,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_upnp.cpp:212,1
    - Dst: destination::to_v4
      Src: /src/libtorrent/test/test_upnp.cpp:213,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_upnp.cpp:216,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_upnp.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:223,1
    - Dst: auto::interface_address::to_string
      Src: /src/libtorrent/test/test_upnp.cpp:226,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 228
    functionName: pick_upnp_interface
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 1
    functionsReached:
    - make_address_v4
    - std::vector::begin
    - destination::to_string
    - enum_routes
    - std::vector::end
    - auto::interface_address::to_string
    - destination::to_v4
    - static_cast<std::uint32_t>
    - error_code::message
    - std::printf
    - destination::is_v4
    - interface_address::is_v4
    - interface_address::to_string
    - static_cast<std::uint8_t>
    - TEST_CHECK
    - std::find_if
    - netmask::to_string
    - string_view
    - match_addr_mask
    - enum_net_interfaces
    linkageType: ''
    returnType: ip_interface
    signature: ip_interface pick_upnp_interface()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_upnp.cpp:232,1
    - Dst: load_file
      Src: /src/libtorrent/test/test_upnp.cpp:236,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_upnp.cpp:237,1
    - Dst: fopen
      Src: /src/libtorrent/test/test_upnp.cpp:239,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_upnp.cpp:242,1
    - Dst: strerror
      Src: /src/libtorrent/test/test_upnp.cpp:242,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:243,1
    - Dst: std::fprintf
      Src: /src/libtorrent/test/test_upnp.cpp:250,1
    - Dst: fclose
      Src: /src/libtorrent/test/test_upnp.cpp:254,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_upnp.cpp:257,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_upnp.cpp:258,1
    - Dst: uep
      Src: /src/libtorrent/test/test_upnp.cpp:260,1
    - Dst: broadcast_socket::broadcast_socket
      Src: /src/libtorrent/test/test_upnp.cpp:260,1
    - Dst: pick_upnp_interface
      Src: /src/libtorrent/test/test_upnp.cpp:266,1
    - Dst: open
      Src: /src/libtorrent/test/test_upnp.cpp:268,1
    - Dst: std::make_shared<upnp>
      Src: /src/libtorrent/test/test_upnp.cpp:271,1
    - Dst: auto::interface_address::to_v4
      Src: /src/libtorrent/test/test_upnp.cpp:272,1
    - Dst: auto::netmask::to_v4
      Src: /src/libtorrent/test/test_upnp.cpp:272,1
    - Dst: libtorrent::aux::listen_socket_handle
      Src: /src/libtorrent/test/test_upnp.cpp:272,1
    - Dst: auto::start
      Src: /src/libtorrent/test/test_upnp.cpp:273,1
    - Dst: lt::io_context::restart
      Src: /src/libtorrent/test/test_upnp.cpp:277,1
    - Dst: lt::io_context::poll
      Src: /src/libtorrent/test/test_upnp.cpp:278,1
    - Dst: auto::router_model
      Src: /src/libtorrent/test/test_upnp.cpp:279,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_upnp.cpp:280,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_upnp.cpp:280,1
    - Dst: auto::router_model
      Src: /src/libtorrent/test/test_upnp.cpp:283,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:284,1
    - Dst: auto::router_model
      Src: /src/libtorrent/test/test_upnp.cpp:284,1
    - Dst: auto::add_mapping
      Src: /src/libtorrent/test/test_upnp.cpp:286,1
    - Dst: ep
      Src: /src/libtorrent/test/test_upnp.cpp:287,1
    - Dst: auto::add_mapping
      Src: /src/libtorrent/test/test_upnp.cpp:288,1
    - Dst: ep
      Src: /src/libtorrent/test/test_upnp.cpp:289,1
    - Dst: lt::io_context::restart
      Src: /src/libtorrent/test/test_upnp.cpp:293,1
    - Dst: lt::io_context::poll
      Src: /src/libtorrent/test/test_upnp.cpp:294,1
    - Dst: size
      Src: /src/libtorrent/test/test_upnp.cpp:295,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_upnp.cpp:296,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_upnp.cpp:296,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_upnp.cpp:299,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_upnp.cpp:300,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_upnp.cpp:301,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_upnp.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/test/test_upnp.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/test/test_upnp.cpp:301,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_upnp.cpp:302,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_upnp.cpp:302,1
    - Dst: begin
      Src: /src/libtorrent/test/test_upnp.cpp:302,1
    - Dst: end
      Src: /src/libtorrent/test/test_upnp.cpp:302,1
    - Dst: std::ofstream::open
      Src: /src/libtorrent/test/test_upnp.cpp:304,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/test/test_upnp.cpp:305,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_upnp.cpp:306,1
    - Dst: auto::close
      Src: /src/libtorrent/test/test_upnp.cpp:308,1
    - Dst: close
      Src: /src/libtorrent/test/test_upnp.cpp:309,1
    - Dst: lt::io_context::restart
      Src: /src/libtorrent/test/test_upnp.cpp:313,1
    - Dst: lt::io_context::poll
      Src: /src/libtorrent/test/test_upnp.cpp:314,1
    - Dst: size
      Src: /src/libtorrent/test/test_upnp.cpp:315,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_upnp.cpp:316,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_upnp.cpp:316,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_upnp.cpp:320,1
    - Dst: size
      Src: /src/libtorrent/test/test_upnp.cpp:320,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_upnp.cpp:322,1
    - Dst: clear
      Src: /src/libtorrent/test/test_upnp.cpp:324,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - root_filename
    - control_name
    - igd_version
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 327
    functionName: run_upnp_test
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::this_thread::sleep_for
    - close
    - std::ofstream::open
    - pick_upnp_interface
    - std::ofstream::write
    - auto::add_mapping
    - end
    - lt::io_context::restart
    - load_file
    - clear
    - stop_web_server
    - auto::interface_address::to_v4
    - broadcast_socket::broadcast_socket
    - std::printf
    - uep
    - TEST_EQUAL
    - open
    - std::count
    - libtorrent::total_milliseconds
    - libtorrent::aux::listen_socket_handle
    - lt::io_context::poll
    - fclose
    - std::ofstream::close
    - size
    - TEST_CHECK
    - auto::start
    - auto::close
    - std::vector::push_back
    - auto::router_model
    - error_code
    - start_web_server
    - strerror
    - ep
    - std::fprintf
    - auto::netmask::to_v4
    - fopen
    - std::make_shared<upnp>
    linkageType: ''
    returnType: void
    signature: void run_upnp_test(char const* root_filename, char const* control_name,
      int igd_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_upnp_test
      Src: /src/libtorrent/test/test_upnp.cpp:333,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_upnp.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - run_upnp_test
    - combine_path
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_wipconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_upnp_test
      Src: /src/libtorrent/test/test_upnp.cpp:338,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_upnp.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - run_upnp_test
    - combine_path
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_wanipconnection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_upnp_test
      Src: /src/libtorrent/test/test_upnp.cpp:343,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_upnp.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - run_upnp_test
    - combine_path
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_wanipconnection2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pick_upnp_interface
      Src: /src/libtorrent/test/test_upnp.cpp:351,1
    - Dst: std::make_shared<upnp>
      Src: /src/libtorrent/test/test_upnp.cpp:355,1
    - Dst: auto::interface_address::to_v4
      Src: /src/libtorrent/test/test_upnp.cpp:356,1
    - Dst: auto::netmask::to_v4
      Src: /src/libtorrent/test/test_upnp.cpp:356,1
    - Dst: libtorrent::aux::listen_socket_handle
      Src: /src/libtorrent/test/test_upnp.cpp:356,1
    - Dst: auto::add_mapping
      Src: /src/libtorrent/test/test_upnp.cpp:360,1
    - Dst: ep
      Src: /src/libtorrent/test/test_upnp.cpp:361,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_upnp.cpp:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_upnp.cpp
    functionUses: 0
    functionsReached:
    - pick_upnp_interface
    - auto::add_mapping
    - ep
    - libtorrent::aux::listen_socket_handle
    - auto::netmask::to_v4
    - auto::interface_address::to_v4
    - TEST_CHECK
    - std::make_shared<upnp>
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upnp_max_mappings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' calls'
    argTypes:
    - std::vector<piece_byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: expect_calls
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void expect_calls(std::vector<piece_byte> const& calls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_apply_pad.cpp:55,1
    - Dst: empty
      Src: /src/libtorrent/test/test_apply_pad.cpp:55,1
    - Dst: empty
      Src: /src/libtorrent/test/test_apply_pad.cpp:56,1
    - Dst: front
      Src: /src/libtorrent/test/test_apply_pad.cpp:57,1
    - Dst: erase
      Src: /src/libtorrent/test/test_apply_pad.cpp:58,1
    - Dst: begin
      Src: /src/libtorrent/test/test_apply_pad.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - piece
    - bytes
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: operator()(piece_index_t const piece, int const bytes)
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - begin
    - erase
    - empty
    - front
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void operator()(piece_index_t const piece, int const bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_apply_pad.cpp:66,1
    - Dst: empty
      Src: /src/libtorrent/test/test_apply_pad.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: ~expect_calls()
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - empty
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void ~expect_calls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: total_pad
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_pad() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' calls'
    argTypes:
    - std::vector<piece_byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: expect_calls
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void expect_calls(std::vector<piece_byte> const& calls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_apply_pad.cpp:55,1
    - Dst: empty
      Src: /src/libtorrent/test/test_apply_pad.cpp:55,1
    - Dst: empty
      Src: /src/libtorrent/test/test_apply_pad.cpp:56,1
    - Dst: front
      Src: /src/libtorrent/test/test_apply_pad.cpp:57,1
    - Dst: erase
      Src: /src/libtorrent/test/test_apply_pad.cpp:58,1
    - Dst: begin
      Src: /src/libtorrent/test/test_apply_pad.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - piece
    - bytes
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: operator()(piece_index_t const piece, int const bytes)
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - begin
    - erase
    - empty
    - front
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void operator()(piece_index_t const piece, int const bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_apply_pad.cpp:66,1
    - Dst: empty
      Src: /src/libtorrent/test/test_apply_pad.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: ~expect_calls()
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - empty
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void ~expect_calls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: total_pad
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_pad() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:80,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:83,1
    - Dst: expect_calls::total_pad
      Src: /src/libtorrent/test/test_apply_pad.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - expect_calls::total_pad
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(simple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:88,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:90,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:91,1
    - Dst: expect_calls::total_pad
      Src: /src/libtorrent/test/test_apply_pad.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - expect_calls::total_pad
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(irregular_last_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:96,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:99,1
    - Dst: expect_calls::total_pad
      Src: /src/libtorrent/test/test_apply_pad.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - expect_calls::total_pad
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(full_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:112,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:115,1
    - Dst: expect_calls::total_pad
      Src: /src/libtorrent/test/test_apply_pad.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - expect_calls::total_pad
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_multiple_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:120,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:123,1
    - Dst: expect_calls::total_pad
      Src: /src/libtorrent/test/test_apply_pad.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - expect_calls::total_pad
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_multiple_full_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:128,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:130,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:131,1
    - Dst: expect_calls::total_pad
      Src: /src/libtorrent/test/test_apply_pad.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - expect_calls::total_pad
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(small_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:136,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:139,1
    - Dst: expect_calls::total_pad
      Src: /src/libtorrent/test/test_apply_pad.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - expect_calls::total_pad
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(smalll_piece_1_byte_pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:147,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:149,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:150,1
    - Dst: expect_calls::total_pad
      Src: /src/libtorrent/test/test_apply_pad.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 151
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - expect_calls::total_pad
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(back_to_back_pads)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:155,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_apply_pad.cpp:156,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/test/test_apply_pad.cpp:158,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:160,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:163,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_apply_pad.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_apply_pad.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - TEST_EQUAL
    - auto::num_pieces
    - libtorrent::aux::apply_pad_files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(large_pad_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/enum_if.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: operator ""_s(char const* str, size_t len)
    functionSourceFile: /src/libtorrent/test/enum_if.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string operator ""_s(char const* str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - interface_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: print_flags
    functionSourceFile: /src/libtorrent/test/enum_if.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string print_flags(interface_flags const f)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - if_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: print_state
    functionSourceFile: /src/libtorrent/test/enum_if.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * print_state(if_state const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/enum_if.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: operator ""_s(char const* str, size_t len)
    functionSourceFile: /src/libtorrent/test/enum_if.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string operator ""_s(char const* str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - interface_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: print_flags
    functionSourceFile: /src/libtorrent/test/enum_if.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string print_flags(interface_flags const f)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - if_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: print_state
    functionSourceFile: /src/libtorrent/test/enum_if.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * print_state(if_state const s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/enum_if.cpp:89,1
    - Dst: enum_routes
      Src: /src/libtorrent/test/enum_if.cpp:90,1
    - Dst: std::printf
      Src: /src/libtorrent/test/enum_if.cpp:93,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/enum_if.cpp:93,1
    - Dst: std::printf
      Src: /src/libtorrent/test/enum_if.cpp:97,1
    - Dst: std::printf
      Src: /src/libtorrent/test/enum_if.cpp:101,1
    - Dst: destination::to_string
      Src: /src/libtorrent/test/enum_if.cpp:102,1
    - Dst: netmask::to_string
      Src: /src/libtorrent/test/enum_if.cpp:103,1
    - Dst: gateway::is_unspecified
      Src: /src/libtorrent/test/enum_if.cpp:104,1
    - Dst: gateway::to_string
      Src: /src/libtorrent/test/enum_if.cpp:104,1
    - Dst: source_hint::is_unspecified
      Src: /src/libtorrent/test/enum_if.cpp:106,1
    - Dst: source_hint::to_string
      Src: /src/libtorrent/test/enum_if.cpp:106,1
    - Dst: std::printf
      Src: /src/libtorrent/test/enum_if.cpp:110,1
    - Dst: enum_net_interfaces
      Src: /src/libtorrent/test/enum_if.cpp:112,1
    - Dst: std::printf
      Src: /src/libtorrent/test/enum_if.cpp:115,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/enum_if.cpp:115,1
    - Dst: std::printf
      Src: /src/libtorrent/test/enum_if.cpp:119,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/enum_if.cpp:123,1
    - Dst: std::printf
      Src: /src/libtorrent/test/enum_if.cpp:124,1
    - Dst: interface_address::to_string
      Src: /src/libtorrent/test/enum_if.cpp:125,1
    - Dst: netmask::to_string
      Src: /src/libtorrent/test/enum_if.cpp:126,1
    - Dst: boost::optional::to_string
      Src: /src/libtorrent/test/enum_if.cpp:128,1
    - Dst: print_state
      Src: /src/libtorrent/test/enum_if.cpp:129,1
    - Dst: print_flags
      Src: /src/libtorrent/test/enum_if.cpp:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 134
    functionName: main
    functionSourceFile: /src/libtorrent/test/enum_if.cpp
    functionUses: 0
    functionsReached:
    - print_flags
    - get_gateway
    - gateway::is_unspecified
    - gateway::to_string
    - print_state
    - netmask::to_string
    - destination::to_string
    - boost::optional::to_string
    - interface_address::to_string
    - error_code::message
    - enum_routes
    - enum_net_interfaces
    - source_hint::to_string
    - source_hint::is_unspecified
    - std::printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_allocator::copy_string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:46,1
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:49,1
    - Dst: stack_allocator::copy_string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:51,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:51,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:53,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:53,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:54,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - stack_allocator::copy_string
    - stack_allocator::ptr
    - stack_allocator::allocate
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(copy_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_allocator::copy_buffer
      Src: /src/libtorrent/test/test_stack_allocator.cpp:60,1
    - Dst: lt::span<char const>
      Src: /src/libtorrent/test/test_stack_allocator.cpp:60,1
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:63,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:65,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:65,1
    - Dst: stack_allocator::copy_buffer
      Src: /src/libtorrent/test/test_stack_allocator.cpp:68,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:69,1
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/test/test_stack_allocator.cpp:69,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:72,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:73,1
    - Dst: std::strlen
      Src: /src/libtorrent/test/test_stack_allocator.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::span<char const>
    - stack_allocator::copy_buffer
    - std::strlen
    - stack_allocator::ptr
    - allocation_slot::is_valid
    - stack_allocator::allocate
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(copy_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:79,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:80,1
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:85,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:87,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:89,1
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:92,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:93,1
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/test/test_stack_allocator.cpp:93,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:96,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:97,1
    - Dst: std::strlen
      Src: /src/libtorrent/test/test_stack_allocator.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 98
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::strlen
    - stack_allocator::ptr
    - allocation_slot::is_valid
    - stack_allocator::allocate
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(allocate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_allocator::copy_string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:105,1
    - Dst: stack_allocator::copy_string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:106,1
    - Dst: stack_allocator::swap
      Src: /src/libtorrent/test/test_stack_allocator.cpp:108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:110,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:111,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - stack_allocator::copy_string
    - stack_allocator::swap
    - stack_allocator::ptr
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/test/test_stack_allocator.cpp:120,1
    - Dst: format_string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:121,1
    - Dst: va_end
      Src: /src/libtorrent/test/test_stack_allocator.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' stack'
    - fmt
    argTypes:
    - stack_allocator
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: format_string_helper
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - format_string
    - va_end
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot format_string_helper(stack_allocator& stack, char const*
      fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/test/test_stack_allocator.cpp:120,1
    - Dst: format_string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:121,1
    - Dst: va_end
      Src: /src/libtorrent/test/test_stack_allocator.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' stack'
    - fmt
    argTypes:
    - stack_allocator
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: format_string_helper
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - format_string
    - va_end
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot format_string_helper(stack_allocator& stack, char const*
      fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string_helper
      Src: /src/libtorrent/test/test_stack_allocator.cpp:133,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_stack_allocator.cpp:133,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:135,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - stack_allocator::ptr
    - std::string::c_str
    - format_string_helper
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(format_string_long)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string_helper
      Src: /src/libtorrent/test/test_stack_allocator.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:143,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - stack_allocator::ptr
    - format_string_helper
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(format_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_stack_allocator.cpp:154,1
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:156,1
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:158,1
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:159,1
    - Dst: stack_allocator::allocate
      Src: /src/libtorrent/test/test_stack_allocator.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:170,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_stack_allocator.cpp:170,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:171,1
    - Dst: std::strlen
      Src: /src/libtorrent/test/test_stack_allocator.cpp:171,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:171,1
    - Dst: stack_allocator::copy_buffer
      Src: /src/libtorrent/test/test_stack_allocator.cpp:173,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:174,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_stack_allocator.cpp:174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:175,1
    - Dst: std::strlen
      Src: /src/libtorrent/test/test_stack_allocator.cpp:175,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:175,1
    - Dst: stack_allocator::copy_string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:177,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_stack_allocator.cpp:177,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:178,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_stack_allocator.cpp:178,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:179,1
    - Dst: std::strlen
      Src: /src/libtorrent/test/test_stack_allocator.cpp:179,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:179,1
    - Dst: stack_allocator::copy_string
      Src: /src/libtorrent/test/test_stack_allocator.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:182,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_stack_allocator.cpp:182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:183,1
    - Dst: std::strlen
      Src: /src/libtorrent/test/test_stack_allocator.cpp:183,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:183,1
    - Dst: format_string_helper
      Src: /src/libtorrent/test/test_stack_allocator.cpp:185,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_stack_allocator.cpp:185,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_stack_allocator.cpp:186,1
    - Dst: auto::is_valid
      Src: /src/libtorrent/test/test_stack_allocator.cpp:186,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_stack_allocator.cpp:187,1
    - Dst: std::strlen
      Src: /src/libtorrent/test/test_stack_allocator.cpp:187,1
    - Dst: stack_allocator::ptr
      Src: /src/libtorrent/test/test_stack_allocator.cpp:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 188
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - stack_allocator::copy_buffer
    - format_string_helper
    - std::strlen
    - std::string::c_str
    - libtorrent::aux::max
    - stack_allocator::copy_string
    - auto::is_valid
    - stack_allocator::ptr
    - stack_allocator::allocate
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(out_of_space)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/test/dht_server.cpp:73,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/dht_server.cpp:73,1
    - Dst: std::printf
      Src: /src/libtorrent/test/dht_server.cpp:76,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/dht_server.cpp:76,1
    - Dst: bind
      Src: /src/libtorrent/test/dht_server.cpp:80,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/dht_server.cpp:80,1
    - Dst: address_v4::any
      Src: /src/libtorrent/test/dht_server.cpp:80,1
    - Dst: std::printf
      Src: /src/libtorrent/test/dht_server.cpp:83,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/dht_server.cpp:83,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/dht_server.cpp:86,1
    - Dst: std::printf
      Src: /src/libtorrent/test/dht_server.cpp:89,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/dht_server.cpp:89,1
    - Dst: std::printf
      Src: /src/libtorrent/test/dht_server.cpp:93,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/dht_server.cpp:93,1
    - Dst: std::make_shared<std::thread>
      Src: /src/libtorrent/test/dht_server.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 96
    functionName: dht_server
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<std::thread>
    - rand_v4
    - open
    - address_v4::any
    - time_now_string
    - error_code::message
    - local_endpoint
    - bind
    - std::printf
    linkageType: ''
    returnType: void
    signature: void dht_server()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/test/dht_server.cpp:100,1
    - Dst: close
      Src: /src/libtorrent/test/dht_server.cpp:101,1
    - Dst: join
      Src: /src/libtorrent/test/dht_server.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: ~dht_server()
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 0
    functionsReached:
    - join
    - close
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~dht_server()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: port
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: num_hits
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_hits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' ec'
    - bytes_transferred
    - ret
    - error
    - done
    argTypes:
    - error_code
    - size_t
    - size_t*
    - error_code*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: incoming_packet
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void incoming_packet(error_code const& ec, size_t bytes_transferred\n\t\t,
      size_t *ret, error_code* error, bool* done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_receive_from
      Src: /src/libtorrent/test/dht_server.cpp:127,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/dht_server.cpp:128,1
    - Dst: std::array::data
      Src: /src/libtorrent/test/dht_server.cpp:128,1
    - Dst: std::array::size
      Src: /src/libtorrent/test/dht_server.cpp:128,1
    - Dst: std::bind
      Src: /src/libtorrent/test/dht_server.cpp:129,1
    - Dst: poll_one
      Src: /src/libtorrent/test/dht_server.cpp:132,1
    - Dst: restart
      Src: /src/libtorrent/test/dht_server.cpp:133,1
    - Dst: std::printf
      Src: /src/libtorrent/test/dht_server.cpp:141,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/dht_server.cpp:141,1
    - Dst: bdecode
      Src: /src/libtorrent/test/dht_server.cpp:147,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/dht_server.cpp:147,1
    - Dst: std::printf
      Src: /src/libtorrent/test/dht_server.cpp:156,1
    - Dst: what
      Src: /src/libtorrent/test/dht_server.cpp:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 159
    functionName: thread_fun
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::array::size
    - poll_one
    - std::array::data
    - async_receive_from
    - both_sides_from_store_buffer
    - error_code::message
    - span<char const>
    - restart
    - what
    - std::printf
    - bdecode
    linkageType: ''
    returnType: void
    signature: void thread_fun()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/test/dht_server.cpp:168,1
    - Dst: dht_server::dht_server
      Src: /src/libtorrent/test/dht_server.cpp:168,1
    - Dst: port
      Src: /src/libtorrent/test/dht_server.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: start_dht
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 0
    functionsReached:
    - port
    - reset
    - dht_server::dht_server
    linkageType: ''
    returnType: int
    signature: int start_dht()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_hits
      Src: /src/libtorrent/test/dht_server.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: num_dht_hits
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 0
    functionsReached:
    - num_hits
    linkageType: ''
    returnType: int
    signature: int num_dht_hits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/test/dht_server.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: stop_dht
    functionSourceFile: /src/libtorrent/test/dht_server.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void stop_dht()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:67,1
    - Dst: status_code
      Src: /src/libtorrent/test/test_http_connection.cpp:67,1
    - Dst: message
      Src: /src/libtorrent/test/test_http_connection.cpp:67,1
    - Dst: headers
      Src: /src/libtorrent/test/test_http_connection.cpp:69,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - http_parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: print_http_header
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - status_code
    - time_now_string
    - message
    - headers
    linkageType: ''
    returnType: void
    signature: void print_http_header(http_parser const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:78,1
    - Dst: socket
      Src: /src/libtorrent/test/test_http_connection.cpp:78,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:80,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_http_connection.cpp:81,1
    - Dst: socket
      Src: /src/libtorrent/test/test_http_connection.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: http_connect_handler_test
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - socket
    - time_now_string
    - TEST_CHECK
    - print_endpoint
    linkageType: ''
    returnType: void
    signature: void http_connect_handler_test(http_connection& c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_http_connection.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_http_connection.cpp:92,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/test/test_http_connection.cpp:92,1
    - Dst: finished
      Src: /src/libtorrent/test/test_http_connection.cpp:92,1
    - Dst: header_finished
      Src: /src/libtorrent/test/test_http_connection.cpp:94,1
    - Dst: status_code
      Src: /src/libtorrent/test/test_http_connection.cpp:96,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:99,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_http_connection.cpp:99,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_http_connection.cpp:99,1
    - Dst: print_http_header
      Src: /src/libtorrent/test/test_http_connection.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' ec'
    - ' parser'
    - data
    argTypes:
    - error_code
    - http_parser
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: http_handler_test
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - finished
    - TORRENT_ASSERT
    - header_finished
    - status_code
    - span<char const>::size
    - span<char const>::empty
    - print_http_header
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void http_handler_test(error_code const& ec, http_parser const& parser\n\t,
      span<char const> data, http_connection&)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: reset_globals
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - error_code
    linkageType: ''
    returnType: void
    signature: void reset_globals()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_http_connection.cpp:116,1
    - Dst: reset_globals
      Src: /src/libtorrent/test/test_http_connection.cpp:118,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:122,1
    - Dst: boost::optional<error_code>::message
      Src: /src/libtorrent/test/test_http_connection.cpp:126,1
    - Dst: ssl::context::set_verify_mode
      Src: /src/libtorrent/test/test_http_connection.cpp:130,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/test/test_http_connection.cpp:133,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/test/test_http_connection.cpp:135,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/test/test_http_connection.cpp:136,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/test/test_http_connection.cpp:141,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_http_connection.cpp:141,1
    - Dst: restart
      Src: /src/libtorrent/test/test_http_connection.cpp:142,1
    - Dst: run
      Src: /src/libtorrent/test/test_http_connection.cpp:143,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:145,1
    - Dst: message
      Src: /src/libtorrent/test/test_http_connection.cpp:151,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:152,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:153,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:154,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - ' url'
    - size
    - status
    - connected
    - ec
    - ' ps'
    argTypes:
    - std::string
    - int
    - int
    - int
    - boost::optional<error_code>
    - aux::proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 157
    functionName: run_test
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 2
    functionsReached:
    - restart
    - reset_globals
    - TEST_CHECK
    - std::make_shared<http_connection>
    - run
    - seconds
    - std::string
    - ssl::context::set_verify_mode
    - std::shared_ptr::get
    - message
    - time_now_string
    - boost::optional<error_code>::message
    - http_filter_handler
    - hostname_filter_handler
    linkageType: ''
    returnType: void
    signature: "void run_test(std::string const& url, int size, int status, int connected\n\t,
      boost::optional<error_code> ec, aux::proxy_settings const& ps\n\t, std::string
      const& auth = std::string())"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_http_connection.cpp:170,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_http_connection.cpp:171,1
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_http_connection.cpp:175,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_http_connection.cpp:186,1
    - Dst: start_proxy
      Src: /src/libtorrent/test/test_http_connection.cpp:186,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_http_connection.cpp:192,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_http_connection.cpp:192,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:195,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:195,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:196,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:196,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:200,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:200,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:201,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:201,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:202,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:202,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:203,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:203,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:204,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:204,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_http_connection.cpp:211,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:213,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:213,1
    - Dst: gethostbyname
      Src: /src/libtorrent/test/test_http_connection.cpp:217,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_http_connection.cpp:218,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/test/test_http_connection.cpp:219,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:225,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:225,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:227,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:227,1
    - Dst: stop_proxy
      Src: /src/libtorrent/test/test_http_connection.cpp:230,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_http_connection.cpp:231,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - ' protocol'
    - proxy_type
    argTypes:
    - std::string
    - settings_pack::proxy_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 232
    functionName: run_suite
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - stop_proxy
    - std::printf
    - c_str
    - error_code
    - ofstream
    - std::snprintf
    - start_web_server
    - gethostbyname
    - static_cast<char>
    - start_proxy
    - static_cast<void*>
    - stop_web_server
    - libtorrent::aux::random_bytes
    - err
    - run_test
    linkageType: ''
    returnType: void
    signature: "void run_suite(std::string const& protocol\n\t, settings_pack::proxy_type_t
      proxy_type\n\t, int flags = flag_keepalive)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:67,1
    - Dst: status_code
      Src: /src/libtorrent/test/test_http_connection.cpp:67,1
    - Dst: message
      Src: /src/libtorrent/test/test_http_connection.cpp:67,1
    - Dst: headers
      Src: /src/libtorrent/test/test_http_connection.cpp:69,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - http_parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: print_http_header
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 1
    functionsReached:
    - status_code
    - time_now_string
    - message
    - headers
    linkageType: ''
    returnType: void
    signature: void print_http_header(http_parser const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:78,1
    - Dst: socket
      Src: /src/libtorrent/test/test_http_connection.cpp:78,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:80,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_http_connection.cpp:81,1
    - Dst: socket
      Src: /src/libtorrent/test/test_http_connection.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: http_connect_handler_test
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - socket
    - time_now_string
    - TEST_CHECK
    - print_endpoint
    linkageType: ''
    returnType: void
    signature: void http_connect_handler_test(http_connection& c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_http_connection.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_http_connection.cpp:92,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/test/test_http_connection.cpp:92,1
    - Dst: finished
      Src: /src/libtorrent/test/test_http_connection.cpp:92,1
    - Dst: header_finished
      Src: /src/libtorrent/test/test_http_connection.cpp:94,1
    - Dst: status_code
      Src: /src/libtorrent/test/test_http_connection.cpp:96,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:99,1
    - Dst: span<char>
      Src: /src/libtorrent/test/test_http_connection.cpp:99,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_http_connection.cpp:99,1
    - Dst: print_http_header
      Src: /src/libtorrent/test/test_http_connection.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' ec'
    - ' parser'
    - data
    argTypes:
    - error_code
    - http_parser
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: http_handler_test
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - finished
    - TORRENT_ASSERT
    - header_finished
    - status_code
    - span<char const>::size
    - span<char const>::empty
    - print_http_header
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void http_handler_test(error_code const& ec, http_parser const& parser\n\t,
      span<char const> data, http_connection&)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: reset_globals
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 1
    functionsReached:
    - error_code
    linkageType: ''
    returnType: void
    signature: void reset_globals()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_http_connection.cpp:116,1
    - Dst: reset_globals
      Src: /src/libtorrent/test/test_http_connection.cpp:118,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:122,1
    - Dst: boost::optional<error_code>::message
      Src: /src/libtorrent/test/test_http_connection.cpp:126,1
    - Dst: ssl::context::set_verify_mode
      Src: /src/libtorrent/test/test_http_connection.cpp:130,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/test/test_http_connection.cpp:133,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/test/test_http_connection.cpp:135,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/test/test_http_connection.cpp:136,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/test/test_http_connection.cpp:141,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_http_connection.cpp:141,1
    - Dst: restart
      Src: /src/libtorrent/test/test_http_connection.cpp:142,1
    - Dst: run
      Src: /src/libtorrent/test/test_http_connection.cpp:143,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_http_connection.cpp:145,1
    - Dst: message
      Src: /src/libtorrent/test/test_http_connection.cpp:151,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:152,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:153,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:154,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_connection.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - ' url'
    - size
    - status
    - connected
    - ec
    - ' ps'
    argTypes:
    - std::string
    - int
    - int
    - int
    - boost::optional<error_code>
    - aux::proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 157
    functionName: run_test
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 3
    functionsReached:
    - restart
    - reset_globals
    - TEST_CHECK
    - std::make_shared<http_connection>
    - run
    - seconds
    - std::string
    - ssl::context::set_verify_mode
    - std::shared_ptr::get
    - message
    - time_now_string
    - boost::optional<error_code>::message
    - http_filter_handler
    - hostname_filter_handler
    linkageType: ''
    returnType: void
    signature: "void run_test(std::string const& url, int size, int status, int connected\n\t,
      boost::optional<error_code> ec, aux::proxy_settings const& ps\n\t, std::string
      const& auth = std::string())"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_http_connection.cpp:170,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_http_connection.cpp:171,1
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_http_connection.cpp:175,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_http_connection.cpp:186,1
    - Dst: start_proxy
      Src: /src/libtorrent/test/test_http_connection.cpp:186,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_http_connection.cpp:192,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_http_connection.cpp:192,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:195,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:195,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:196,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:196,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:200,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:200,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:201,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:201,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:202,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:202,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:203,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:203,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:204,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_connection.cpp:204,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_http_connection.cpp:211,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:213,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:213,1
    - Dst: gethostbyname
      Src: /src/libtorrent/test/test_http_connection.cpp:217,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_http_connection.cpp:218,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/test/test_http_connection.cpp:219,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:225,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:225,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_http_connection.cpp:227,1
    - Dst: err
      Src: /src/libtorrent/test/test_http_connection.cpp:227,1
    - Dst: stop_proxy
      Src: /src/libtorrent/test/test_http_connection.cpp:230,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_http_connection.cpp:231,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - ' protocol'
    - proxy_type
    argTypes:
    - std::string
    - settings_pack::proxy_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 232
    functionName: run_suite
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - stop_proxy
    - std::printf
    - c_str
    - error_code
    - ofstream
    - std::snprintf
    - start_web_server
    - gethostbyname
    - static_cast<char>
    - start_proxy
    - static_cast<void*>
    - stop_web_server
    - libtorrent::aux::random_bytes
    - err
    - run_test
    linkageType: ''
    returnType: void
    signature: "void run_suite(std::string const& protocol\n\t, settings_pack::proxy_type_t
      proxy_type\n\t, int flags = flag_keepalive)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_proxy_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_pw_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_proxy_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_pw_proxy_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_ssl_with_host_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_pwproxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 247
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_pw_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_with_host_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_suite
      Src: /src/libtorrent/test/test_http_connection.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_keepalive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:82,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:82,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:84,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:86,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_read_resume.cpp:86,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:87,1
    - Dst: add_torrent_params::have_pieces::size
      Src: /src/libtorrent/test/test_read_resume.cpp:87,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:88,1
    - Dst: add_torrent_params::have_pieces::count
      Src: /src/libtorrent/test/test_read_resume.cpp:88,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:90,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:91,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:93,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:95,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:96,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:97,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:107,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:108,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:109,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:110,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:113,1
    - Dst: add_torrent_params::piece_priorities::size
      Src: /src/libtorrent/test/test_read_resume.cpp:113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:116,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 120
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - add_torrent_params::have_pieces::count
    - read_resume_data
    - add_torrent_params::piece_priorities::size
    - std::back_inserter
    - add_torrent_params::have_pieces::size
    - sha1_hash
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_resume)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:131,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:131,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:135,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_read_resume.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - read_resume_data
    - error_code
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_resume_missing_info_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:148,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:148,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:151,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:152,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_read_resume.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - read_resume_data
    - error_code
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_resume_info_hash2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:164,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:164,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:168,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_read_resume.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 169
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - read_resume_data
    - error_code
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_resume_missing_file_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_read_resume.cpp:175,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_read_resume.cpp:176,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_read_resume.cpp:177,1
    - Dst: lt::create_torrent::add_tracker
      Src: /src/libtorrent/test/test_read_resume.cpp:180,1
    - Dst: lt::create_torrent::add_url_seed
      Src: /src/libtorrent/test/test_read_resume.cpp:181,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/test_read_resume.cpp:183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:184,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_read_resume.cpp:185,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_read_resume.cpp:188,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_read_resume.cpp:189,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:193,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:193,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_read_resume.cpp:193,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_read_resume.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 195
    functionName: generate_torrent
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 24
    functionsReached:
    - lt::create_torrent::num_pieces
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - file_storage::piece_range
    - file_storage::add_file
    - lt::create_torrent::add_tracker
    - libtorrent::aux::random_bytes
    - bencode
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::create_torrent::add_url_seed
    - TEST_CHECK
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> generate_torrent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_read_resume.cpp:175,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_read_resume.cpp:176,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_read_resume.cpp:177,1
    - Dst: lt::create_torrent::add_tracker
      Src: /src/libtorrent/test/test_read_resume.cpp:180,1
    - Dst: lt::create_torrent::add_url_seed
      Src: /src/libtorrent/test/test_read_resume.cpp:181,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/test_read_resume.cpp:183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:184,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_read_resume.cpp:185,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_read_resume.cpp:188,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_read_resume.cpp:189,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:193,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:193,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_read_resume.cpp:193,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_read_resume.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 195
    functionName: generate_torrent
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 24
    functionsReached:
    - lt::create_torrent::num_pieces
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - file_storage::piece_range
    - file_storage::add_file
    - lt::create_torrent::add_tracker
    - libtorrent::aux::random_bytes
    - bencode
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::create_torrent::add_url_seed
    - TEST_CHECK
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> generate_torrent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_read_resume.cpp:200,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_read_resume.cpp:205,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_read_resume.cpp:205,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_read_resume.cpp:206,1
    - Dst: std::shared_ptr::info_section
      Src: /src/libtorrent/test/test_read_resume.cpp:206,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:209,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:209,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:213,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:214,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:216,1
    - Dst: add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/test/test_read_resume.cpp:216,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_read_resume.cpp:216,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:217,1
    - Dst: add_torrent_params::ti::name
      Src: /src/libtorrent/test/test_read_resume.cpp:217,1
    - Dst: std::shared_ptr::name
      Src: /src/libtorrent/test/test_read_resume.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 218
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - TEST_CHECK
    - TEST_EQUAL
    - add_torrent_params::ti::info_hashes
    - read_resume_data
    - std::shared_ptr::info_hashes
    - generate_torrent
    - std::back_inserter
    - std::shared_ptr::name
    - std::shared_ptr::info_section
    - add_torrent_params::ti::name
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_resume_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_read_resume.cpp:222,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_read_resume.cpp:228,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_read_resume.cpp:229,1
    - Dst: std::shared_ptr::info_section
      Src: /src/libtorrent/test/test_read_resume.cpp:229,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:232,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:232,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:237,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 239
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - read_resume_data
    - std::shared_ptr::info_hashes
    - generate_torrent
    - std::back_inserter
    - std::shared_ptr::info_section
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mismatching_v1_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_read_resume.cpp:243,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/test/test_read_resume.cpp:248,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_read_resume.cpp:250,1
    - Dst: std::shared_ptr::info_section
      Src: /src/libtorrent/test/test_read_resume.cpp:250,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:253,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:253,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:258,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 260
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - read_resume_data
    - std::shared_ptr::info_hashes
    - generate_torrent
    - std::back_inserter
    - std::shared_ptr::info_section
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mismatching_v2_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:268,1
    - Dst: add_torrent_params::have_pieces::num_bytes
      Src: /src/libtorrent/test/test_read_resume.cpp:268,1
    - Dst: add_torrent_params::verified_pieces::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:269,1
    - Dst: add_torrent_params::verified_pieces::num_bytes
      Src: /src/libtorrent/test/test_read_resume.cpp:269,1
    - Dst: second::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:271,1
    - Dst: second::num_bytes
      Src: /src/libtorrent/test/test_read_resume.cpp:271,1
    - Dst: resize
      Src: /src/libtorrent/test/test_read_resume.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/test/test_read_resume.cpp:273,1
    - Dst: resize
      Src: /src/libtorrent/test/test_read_resume.cpp:275,1
    - Dst: size
      Src: /src/libtorrent/test/test_read_resume.cpp:275,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_read_resume.cpp:277,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:279,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:281,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:283,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:284,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:285,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:287,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:288,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:289,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:290,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:291,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:292,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:293,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:294,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_read_resume.cpp:296,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - input
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 298
    functionName: test_roundtrip
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 8
    functionsReached:
    - add_torrent_params::have_pieces::resize
    - read_resume_data
    - add_torrent_params::verified_pieces::num_bytes
    - add_torrent_params::have_pieces::num_bytes
    - size
    - resize
    - write_resume_data_buf
    - second::num_bytes
    - second::resize
    - add_torrent_params::verified_pieces::resize
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_roundtrip(add_torrent_params input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::typed_bitfield::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:304,1
    - Dst: lt::typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:305,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:305,1
    - Dst: lt::typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:306,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:306,1
    - Dst: lt::typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:307,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: bits
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 5
    functionsReached:
    - lt::typed_bitfield::resize
    - T
    - lt::typed_bitfield::set_bit
    linkageType: ''
    returnType: lt::typed_bitfield<T>
    signature: lt::typed_bitfield<T> bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::bitfield::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:314,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:315,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:316,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:317,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:318,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 321
    functionName: bits
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 5
    functionsReached:
    - lt::bitfield::resize
    - lt::bitfield::set_bit
    linkageType: ''
    returnType: lt::bitfield
    signature: lt::bitfield bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:327,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:328,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:329,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:330,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: vec
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 11
    functionsReached:
    - std::vector::resize
    - T
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> vec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:268,1
    - Dst: add_torrent_params::have_pieces::num_bytes
      Src: /src/libtorrent/test/test_read_resume.cpp:268,1
    - Dst: add_torrent_params::verified_pieces::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:269,1
    - Dst: add_torrent_params::verified_pieces::num_bytes
      Src: /src/libtorrent/test/test_read_resume.cpp:269,1
    - Dst: second::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:271,1
    - Dst: second::num_bytes
      Src: /src/libtorrent/test/test_read_resume.cpp:271,1
    - Dst: resize
      Src: /src/libtorrent/test/test_read_resume.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/test/test_read_resume.cpp:273,1
    - Dst: resize
      Src: /src/libtorrent/test/test_read_resume.cpp:275,1
    - Dst: size
      Src: /src/libtorrent/test/test_read_resume.cpp:275,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_read_resume.cpp:277,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:279,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:281,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:283,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:284,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:285,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:287,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:288,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:289,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:290,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:291,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:292,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:293,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:294,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/test/test_read_resume.cpp:296,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - input
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 298
    functionName: test_roundtrip
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 8
    functionsReached:
    - add_torrent_params::have_pieces::resize
    - read_resume_data
    - add_torrent_params::verified_pieces::num_bytes
    - add_torrent_params::have_pieces::num_bytes
    - size
    - resize
    - write_resume_data_buf
    - second::num_bytes
    - second::resize
    - add_torrent_params::verified_pieces::resize
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_roundtrip(add_torrent_params input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::typed_bitfield::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:304,1
    - Dst: lt::typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:305,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:305,1
    - Dst: lt::typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:306,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:306,1
    - Dst: lt::typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:307,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: bits
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 5
    functionsReached:
    - lt::typed_bitfield::resize
    - T
    - lt::typed_bitfield::set_bit
    linkageType: ''
    returnType: lt::typed_bitfield<T>
    signature: lt::typed_bitfield<T> bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::bitfield::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:314,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:315,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:316,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:317,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:318,1
    - Dst: lt::bitfield::set_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 321
    functionName: bits
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 5
    functionsReached:
    - lt::bitfield::resize
    - lt::bitfield::set_bit
    linkageType: ''
    returnType: lt::bitfield
    signature: lt::bitfield bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_read_resume.cpp:327,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:328,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:329,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:330,1
    - Dst: T
      Src: /src/libtorrent/test/test_read_resume.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: vec
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 11
    functionsReached:
    - std::vector::resize
    - T
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> vec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/libtorrent/test/test_read_resume.cpp:339,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - bits
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_have_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_last_seen_complete)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/libtorrent/test/test_read_resume.cpp:353,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - bits
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_verified_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec
      Src: /src/libtorrent/test/test_read_resume.cpp:360,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - vec
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_prios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/libtorrent/test/test_read_resume.cpp:367,1
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - bits
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_unfinished)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 416
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:422,1
    - Dst: write_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:423,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    - TEST_CHECK
    - write_resume_data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_info_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_merkle_trees)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_merkle_tree_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_roundtrip
      Src: /src/libtorrent/test/test_read_resume.cpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 458
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - test_roundtrip
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(round_trip_verified_leaf_hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:467,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:467,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_read_resume.cpp:468,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:468,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_read_resume.cpp:471,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:472,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:472,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_read_resume.cpp:473,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:473,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_read_resume.cpp:476,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:477,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:477,1
    - Dst: TEST_THROW
      Src: /src/libtorrent/test/test_read_resume.cpp:478,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 479
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - read_resume_data
    - std::vector::clear
    - std::back_inserter
    - TEST_THROW
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_resume_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_read_resume.cpp:487,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_read_resume.cpp:488,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:490,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:490,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:491,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:493,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:493,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:494,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:494,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:495,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:495,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:496,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:496,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:497,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:497,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:498,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:499,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:499,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:500,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:500,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:501,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:501,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:502,1
    - Dst: add_torrent_params::have_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:502,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:504,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:504,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:505,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:505,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:506,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:506,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:507,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:507,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:508,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:508,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:509,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:509,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:510,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:510,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:511,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:511,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:512,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:512,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_read_resume.cpp:513,1
    - Dst: add_torrent_params::verified_pieces::get_bit
      Src: /src/libtorrent/test/test_read_resume.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 514
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - read_resume_data
    - std::string
    - add_torrent_params::have_pieces::get_bit
    - std::back_inserter
    - add_torrent_params::verified_pieces::get_bit
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_pieces_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/test/test_read_resume.cpp:522,1
    - Dst: emplace_back
      Src: /src/libtorrent/test/test_read_resume.cpp:524,1
    - Dst: back
      Src: /src/libtorrent/test/test_read_resume.cpp:525,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_read_resume.cpp:527,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_read_resume.cpp:532,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_read_resume.cpp:532,1
    - Dst: read_resume_data
      Src: /src/libtorrent/test/test_read_resume.cpp:533,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:535,1
    - Dst: add_torrent_params::merkle_tree_mask::at
      Src: /src/libtorrent/test/test_read_resume.cpp:535,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_read_resume.cpp:538,1
    - Dst: add_torrent_params::verified_leaf_hashes::at
      Src: /src/libtorrent/test/test_read_resume.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 540
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_read_resume.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - add_torrent_params::verified_leaf_hashes::at
    - read_resume_data
    - list
    - std::string
    - back
    - emplace_back
    - std::back_inserter
    - add_torrent_params::merkle_tree_mask::at
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v2_trees_fields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:59,1
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:60,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_sliding_average.cpp:62,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_sliding_average.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sliding_average::mean
    - sliding_average::add_sample
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reaction_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:69,1
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_sliding_average.cpp:72,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_sliding_average.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sliding_average::mean
    - sliding_average::add_sample
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reaction_time2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:79,1
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:81,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sliding_average.cpp:82,1
    - Dst: abs
      Src: /src/libtorrent/test/test_sliding_average.cpp:82,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_sliding_average.cpp
    functionUses: 0
    functionsReached:
    - abs
    - sliding_average::mean
    - TEST_CHECK
    - sliding_average::add_sample
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(converge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:88,1
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:90,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sliding_average.cpp:91,1
    - Dst: abs
      Src: /src/libtorrent/test/test_sliding_average.cpp:91,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_sliding_average.cpp
    functionUses: 0
    functionsReached:
    - abs
    - sliding_average::mean
    - TEST_CHECK
    - sliding_average::add_sample
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(converge2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:99,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sliding_average.cpp:100,1
    - Dst: abs
      Src: /src/libtorrent/test/test_sliding_average.cpp:100,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_sliding_average.cpp
    functionUses: 0
    functionsReached:
    - abs
    - sliding_average::mean
    - TEST_CHECK
    - sliding_average::add_sample
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(random_converge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_sliding_average.cpp:106,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_sliding_average.cpp:107,1
    - Dst: sliding_average::avg_deviation
      Src: /src/libtorrent/test/test_sliding_average.cpp:107,1
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:108,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_sliding_average.cpp:109,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:109,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_sliding_average.cpp:110,1
    - Dst: sliding_average::avg_deviation
      Src: /src/libtorrent/test/test_sliding_average.cpp:110,1
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_sliding_average.cpp:112,1
    - Dst: sliding_average::avg_deviation
      Src: /src/libtorrent/test/test_sliding_average.cpp:112,1
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:113,1
    - Dst: sliding_average::add_sample
      Src: /src/libtorrent/test/test_sliding_average.cpp:114,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_sliding_average.cpp:115,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:115,1
    - Dst: sliding_average::avg_deviation
      Src: /src/libtorrent/test/test_sliding_average.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sliding_average.cpp:116,1
    - Dst: abs
      Src: /src/libtorrent/test/test_sliding_average.cpp:116,1
    - Dst: sliding_average::mean
      Src: /src/libtorrent/test/test_sliding_average.cpp:116,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_sliding_average.cpp:117,1
    - Dst: abs
      Src: /src/libtorrent/test/test_sliding_average.cpp:117,1
    - Dst: sliding_average::avg_deviation
      Src: /src/libtorrent/test/test_sliding_average.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_sliding_average.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sliding_average::mean
    - sliding_average::add_sample
    - abs
    - std::printf
    - TEST_CHECK
    - sliding_average::avg_deviation
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sliding_average)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& remote() const override'
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint & remote() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: local_endpoint
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint local_endpoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: disconnect
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disconnect(error_code const&, operation_t, disconnect_severity_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '& pid() const override'
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id & pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: our_pid
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id our_pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: set_holepunch_mode
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_holepunch_mode() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: peer_info_struct
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * peer_info_struct() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: set_peer_info
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_peer_info(torrent_peer* pi) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: is_outgoing
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_outgoing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: add_stat
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_stat(std::int64_t, std::int64_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: fast_reconnect
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fast_reconnect() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: is_choked
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_choked() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: failed
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool failed() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& statistics() const override'
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lt::stat
    signature: lt::stat & statistics() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: get_peer_info
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_peer_info(peer_info&) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: should_log
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log(peer_log_alert::direction_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: '& destination() const override'
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & destination() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: '& local_i2p_endpoint() const override'
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & local_i2p_endpoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:92,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:94,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:95,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:99,1
    - Dst: libtorrent::aux::merkle_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:99,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_hash_picker.cpp:99,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:99,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_hash_picker.cpp:100,1
    - Dst: aux::vector::back
      Src: /src/libtorrent/test/test_hash_picker.cpp:100,1
    - Dst: data
      Src: /src/libtorrent/test/test_hash_picker.cpp:100,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:101,1
    - Dst: libtorrent::aux::merkle_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:101,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_hash_picker.cpp:101,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:101,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_hash_picker.cpp:102,1
    - Dst: aux::vector::back
      Src: /src/libtorrent/test/test_hash_picker.cpp:102,1
    - Dst: data
      Src: /src/libtorrent/test/test_hash_picker.cpp:102,1
    - Dst: typed_bitfield::resize
      Src: /src/libtorrent/test/test_hash_picker.cpp:107,1
    - Dst: typed_bitfield::set_all
      Src: /src/libtorrent/test/test_hash_picker.cpp:108,1
    - Dst: hash_picker::pick_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:115,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_hash_picker.cpp:115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:116,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:120,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:121,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:123,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:124,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:125,1
    - Dst: hash_picker::pick_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:127,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:128,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_hash_picker.cpp:128,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:129,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:130,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:131,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:132,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:133,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:135,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:137,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:140,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:142,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:143,1
    - Dst: hash_picker::pick_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:145,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:146,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_hash_picker.cpp:146,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:148,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:149,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:150,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:151,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:152,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:153,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:154,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:155,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:156,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:157,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:158,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:159,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:160,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 162
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - typed_bitfield::resize
    - TEST_EQUAL
    - file_storage::set_piece_length
    - libtorrent::aux::from_hex
    - merkle_num_nodes
    - libtorrent::aux::merkle_tree
    - file_storage::add_file
    - aux::vector::push_back
    - aux::vector::back
    - typed_bitfield::set_all
    - merkle_num_leafs
    - auto::size
    - hash_picker::pick_hashes
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pick_piece_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_hash_picker.cpp:169,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: from_hex
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 9
    functionsReached:
    - sha256_hash::data
    - libtorrent::aux::from_hex
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash from_hex(span<char const> str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_hash_picker.cpp:169,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: from_hex
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 10
    functionsReached:
    - sha256_hash::data
    - libtorrent::aux::from_hex
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash from_hex(span<char const> str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:177,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:179,1
    - Dst: from_hex
      Src: /src/libtorrent/test/test_hash_picker.cpp:182,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:183,1
    - Dst: auto::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:183,1
    - Dst: hash_picker::pick_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:189,1
    - Dst: hash_picker::hashes_rejected
      Src: /src/libtorrent/test/test_hash_picker.cpp:190,1
    - Dst: hash_picker::pick_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 194
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - file_storage::set_piece_length
    - from_hex
    - file_storage::add_file
    - hash_picker::pick_hashes
    - aux::vector::emplace_back
    - hash_picker::hashes_rejected
    - auto::data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reject_piece_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:199,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:201,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:204,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:206,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:206,1
    - Dst: auto::end_index
      Src: /src/libtorrent/test/test_hash_picker.cpp:211,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:211,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:212,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:213,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:215,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_hash_picker.cpp:215,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:217,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:219,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:221,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:221,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_hash_picker.cpp:222,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:223,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:225,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:226,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:227,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:229,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_hash_picker.cpp:229,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:232,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:234,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:236,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:236,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/test/test_hash_picker.cpp:237,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:237,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:238,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:240,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 241
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - file_storage::set_piece_length
    - std::vector::push_back
    - merkle_get_parent
    - file_storage::add_file
    - std::vector::clear
    - aux::vector::front
    - auto::end_index
    - merkle_num_leafs
    - build_tree
    - merkle_get_sibling
    - hash_request
    - hash_picker::add_hashes
    - aux::vector::emplace_back
    - span<sha256_hash const>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_leaf_hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:246,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:248,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:251,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:253,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:253,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:257,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_hash_picker.cpp:257,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_hash_picker.cpp:260,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_hash_picker.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:261,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:262,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:262,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:263,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:265,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_hash_picker.cpp:266,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_hash_picker.cpp:266,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:267,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:267,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:268,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:270,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:271,1
    - Dst: equal
      Src: /src/libtorrent/test/test_hash_picker.cpp:271,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:271,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:271,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_hash_picker.cpp:271,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 272
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - file_storage::set_piece_length
    - merkle_num_nodes
    - std::vector::push_back
    - file_storage::add_file
    - std::vector::clear
    - build_tree
    - hash_request
    - std::copy
    - hash_picker::add_hashes
    - equal
    - std::back_inserter
    - auto::begin
    - aux::vector::emplace_back
    - aux::vector::front
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_piece_hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:277,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:279,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:282,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:284,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:284,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_hash_picker.cpp:288,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:288,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:288,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_hash_picker.cpp:292,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:292,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:292,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_hash_picker.cpp:293,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:294,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:294,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:294,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:297,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_hash_picker.cpp:297,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:298,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:300,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:300,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 302
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - file_storage::set_piece_length
    - merkle_num_nodes
    - merkle_get_parent
    - std::vector::push_back
    - file_storage::add_file
    - merkle_num_leafs
    - build_tree
    - merkle_get_sibling
    - hash_request
    - std::copy
    - hash_picker::add_hashes
    - std::back_inserter
    - auto::begin
    - aux::vector::emplace_back
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_piece_hashes_padded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:307,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:309,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:312,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:314,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:314,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_hash_picker.cpp:318,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:318,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:318,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_hash_picker.cpp:321,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:321,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:321,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_hash_picker.cpp:322,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:323,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:323,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:323,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:326,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_hash_picker.cpp:326,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:327,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:329,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:329,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 331
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - file_storage::set_piece_length
    - merkle_num_nodes
    - merkle_get_parent
    - std::vector::push_back
    - file_storage::add_file
    - merkle_num_leafs
    - build_tree
    - merkle_get_sibling
    - hash_request
    - std::copy
    - hash_picker::add_hashes
    - std::back_inserter
    - auto::begin
    - aux::vector::emplace_back
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_piece_hashes_unpadded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:336,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:338,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:341,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:343,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:343,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:349,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:349,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:350,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:353,1
    - Dst: auto::end_index
      Src: /src/libtorrent/test/test_hash_picker.cpp:354,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:355,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_hash_picker.cpp:356,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:357,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:357,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 359
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - file_storage::set_piece_length
    - std::vector::push_back
    - std::vector::back
    - file_storage::add_file
    - std::vector::clear
    - auto::end_index
    - build_tree
    - hash_request
    - hash_picker::add_hashes
    - aux::vector::emplace_back
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_bad_hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:364,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:366,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:368,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:371,1
    - Dst: data
      Src: /src/libtorrent/test/test_hash_picker.cpp:371,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_hash_picker.cpp:374,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:375,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:377,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_hash_picker.cpp:382,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:382,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_hash_picker.cpp:383,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_hash_picker.cpp:383,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:384,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:386,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_hash_picker.cpp:386,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:388,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:388,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:390,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 392
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - file_storage::set_piece_length
    - libtorrent::aux::from_hex
    - std::vector::push_back
    - merkle_get_parent
    - file_storage::add_file
    - merkle_num_leafs
    - build_tree
    - merkle_get_sibling
    - hash_request
    - std::copy
    - hash_picker::add_hashes
    - auto::end
    - std::back_inserter
    - aux::vector::emplace_back
    - aux::vector::front
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bad_block_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:397,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:399,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:402,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:403,1
    - Dst: data
      Src: /src/libtorrent/test/test_hash_picker.cpp:403,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:404,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/test/test_hash_picker.cpp:404,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_hash_picker.cpp:404,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:404,1
    - Dst: auto::end_index
      Src: /src/libtorrent/test/test_hash_picker.cpp:406,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:406,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:409,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:411,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:413,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:415,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:417,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:418,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 420
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - sha256_hash
    - file_storage::add_file
    - std::vector<bool>
    - merkle_num_leafs
    - auto::end_index
    - build_tree
    - hash_picker::set_block_hash
    - std::size_t
    - aux::vector::emplace_back
    - aux::vector::front
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:425,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:427,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:430,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:431,1
    - Dst: data
      Src: /src/libtorrent/test/test_hash_picker.cpp:431,1
    - Dst: auto::end_index
      Src: /src/libtorrent/test/test_hash_picker.cpp:436,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:436,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:438,1
    - Dst: clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:438,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:439,1
    - Dst: clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:439,1
    - Dst: clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:440,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:442,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/test/test_hash_picker.cpp:442,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_hash_picker.cpp:442,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:442,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:446,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:446,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:448,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:448,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:450,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:450,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:453,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:453,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:454,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:456,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:456,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:456,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_hash_picker.cpp:456,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:457,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:457,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:457,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_hash_picker.cpp:457,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:458,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:458,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:458,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_hash_picker.cpp:458,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:459,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:459,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:459,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/test/test_hash_picker.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 460
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - is_all_zeros
    - sha256_hash
    - merkle_get_parent
    - file_storage::add_file
    - std::vector<bool>
    - auto::end_index
    - merkle_num_leafs
    - build_tree
    - hash_picker::set_block_hash
    - std::size_t
    - clear
    - aux::vector::emplace_back
    - aux::vector::front
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_hash_fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:465,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:467,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:470,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:471,1
    - Dst: data
      Src: /src/libtorrent/test/test_hash_picker.cpp:471,1
    - Dst: auto::end_index
      Src: /src/libtorrent/test/test_hash_picker.cpp:476,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:476,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:478,1
    - Dst: clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:478,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_hash_picker.cpp:479,1
    - Dst: clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:479,1
    - Dst: clear
      Src: /src/libtorrent/test/test_hash_picker.cpp:481,1
    - Dst: aux::vector::front
      Src: /src/libtorrent/test/test_hash_picker.cpp:483,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/test/test_hash_picker.cpp:483,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_hash_picker.cpp:483,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:483,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:487,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:487,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:489,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:489,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:491,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:491,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:494,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 496
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - file_storage::set_piece_length
    - merkle_get_parent
    - file_storage::add_file
    - std::vector<bool>
    - auto::end_index
    - merkle_num_leafs
    - build_tree
    - hash_picker::set_block_hash
    - std::size_t
    - clear
    - aux::vector::emplace_back
    - aux::vector::front
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_block_hash_pass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:501,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:503,1
    - Dst: build_tree
      Src: /src/libtorrent/test/test_hash_picker.cpp:505,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:509,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:509,1
    - Dst: auto::end_index
      Src: /src/libtorrent/test/test_hash_picker.cpp:513,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:513,1
    - Dst: hash_picker::set_block_hash
      Src: /src/libtorrent/test/test_hash_picker.cpp:517,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:519,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_hash_picker.cpp:522,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_hash_picker.cpp:522,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_hash_picker.cpp:525,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_hash_picker.cpp:525,1
    - Dst: hash_picker::add_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:526,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:526,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:527,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:528,1
    - Dst: add_hashes_result::hash_passed::size
      Src: /src/libtorrent/test/test_hash_picker.cpp:528,1
    - Dst: add_hashes_result::hash_passed::size
      Src: /src/libtorrent/test/test_hash_picker.cpp:529,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 533
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::data
    - file_storage::set_piece_length
    - TEST_EQUAL
    - merkle_num_nodes
    - file_storage::add_file
    - auto::end_index
    - merkle_num_leafs
    - build_tree
    - hash_picker::set_block_hash
    - hash_request
    - std::copy
    - hash_picker::add_hashes
    - std::back_inserter
    - auto::begin
    - add_hashes_result::hash_passed::size
    - aux::vector::emplace_back
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pass_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:538,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:540,1
    - Dst: from_hex
      Src: /src/libtorrent/test/test_hash_picker.cpp:543,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:544,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/test/test_hash_picker.cpp:544,1
    - Dst: typed_bitfield::resize
      Src: /src/libtorrent/test/test_hash_picker.cpp:549,1
    - Dst: typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_hash_picker.cpp:550,1
    - Dst: typed_bitfield::set_bit
      Src: /src/libtorrent/test/test_hash_picker.cpp:551,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_hash_picker.cpp:555,1
    - Dst: hash_picker::pick_hashes
      Src: /src/libtorrent/test/test_hash_picker.cpp:555,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:556,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:557,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:558,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:559,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:560,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:561,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:562,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:563,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:564,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:565,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_hash_picker.cpp:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 567
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - typed_bitfield::resize
    - sha256_hash::data
    - file_storage::set_piece_length
    - from_hex
    - TEST_EQUAL
    - std::vector::push_back
    - file_storage::add_file
    - typed_bitfield::set_bit
    - hash_picker::pick_hashes
    - aux::vector::emplace_back
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(only_pick_have_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_hash_picker.cpp:572,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_hash_picker.cpp:573,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_hash_picker.cpp:576,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_hash_picker.cpp:577,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_hash_picker.cpp:579,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_hash_picker.cpp:580,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:585,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:585,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:585,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:588,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:588,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:588,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:589,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:589,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:589,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:590,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:590,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:590,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:591,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:591,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:591,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:594,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:594,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:594,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:595,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:595,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:595,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:596,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:596,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:596,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:597,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:597,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:597,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:600,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:600,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:600,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:601,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:601,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:601,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:605,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:605,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:605,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:606,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:606,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:606,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:607,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:607,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:607,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:608,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:608,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:608,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:609,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:609,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:609,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:610,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:610,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:610,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:612,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:612,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:612,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:613,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:613,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:613,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:614,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:614,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:614,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:615,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:615,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:615,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:618,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:618,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:618,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:619,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:619,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:619,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:620,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:620,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:620,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:622,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:622,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:622,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:623,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:623,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:623,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:624,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:624,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:624,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:625,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:625,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:625,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:628,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:628,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:628,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:629,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:629,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:629,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:630,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:630,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:630,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:631,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:631,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:631,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:632,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:632,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:632,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:635,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:635,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:635,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_hash_picker.cpp:636,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:636,1
    - Dst: hash_request
      Src: /src/libtorrent/test/test_hash_picker.cpp:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 637
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_hash_picker.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - file_storage::set_piece_length
    - libtorrent::min
    - file_storage::add_file
    - merkle_num_leafs
    - libtorrent::aux::max
    - hash_request
    - validate_hash_request
    - merkle_num_layers
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_hash_request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:67,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:70,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:72,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:73,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:74,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:75,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:76,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:77,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:77,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:78,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:79,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:80,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:82,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:85,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:86,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:90,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:91,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:92,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:93,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:94,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:94,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:98,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:98,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:106,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:106,1
    - Dst: get_counters
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:110,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:111,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:114,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:115,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:116,1
    - Dst: get_counters
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:118,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:119,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:122,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:123,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:124,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:126,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:128,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:131,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:134,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:135,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:136,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:139,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:140,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 142
    functionName: test_swarm
    functionSourceFile: /src/libtorrent/test/test_auto_unchoke.cpp
    functionUses: 1
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::status
    - print_ses_rate
    - std::tie
    - print_alerts
    - std::this_thread::sleep_for
    - test_listen_interface
    - setup_transfer
    - libtorrent::total_milliseconds
    - get_counters
    - lt::session::remove_torrent
    - lt::session::abort
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_swarm()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:67,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:70,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:72,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:73,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:74,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:75,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:76,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:77,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:77,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:78,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:79,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:80,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:82,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:85,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:86,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:90,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:91,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:92,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:93,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:94,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:94,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:98,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:98,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:106,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:106,1
    - Dst: get_counters
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:110,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:111,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:114,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:115,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:116,1
    - Dst: get_counters
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:118,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:119,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:122,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:123,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:124,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:126,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:128,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:131,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:134,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:135,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:136,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:139,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:140,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 142
    functionName: test_swarm
    functionSourceFile: /src/libtorrent/test/test_auto_unchoke.cpp
    functionUses: 1
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::status
    - print_ses_rate
    - std::tie
    - print_alerts
    - std::this_thread::sleep_for
    - test_listen_interface
    - setup_transfer
    - libtorrent::total_milliseconds
    - get_counters
    - lt::session::remove_torrent
    - lt::session::abort
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_swarm()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_all
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:152,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:153,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:154,1
    - Dst: test_swarm
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:156,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:158,1
    - Dst: exists
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:158,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:159,1
    - Dst: exists
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:159,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:160,1
    - Dst: exists
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:160,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:162,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:163,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_auto_unchoke.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_auto_unchoke.cpp
    functionUses: 0
    functionsReached:
    - exists
    - test_swarm
    - remove_all
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(auto_unchoke)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:69,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_torrent.cpp:72,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_torrent.cpp:72,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_torrent.cpp:74,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_torrent.cpp:74,1
    - Dst: get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' h'
    - ' prio'
    argTypes:
    - torrent_handle
    - aux::vector<download_priority_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: wait_priority
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - get_file_priorities
    - libtorrent::total_milliseconds
    linkageType: ''
    returnType: bool
    signature: bool wait_priority(torrent_handle const& h, aux::vector<download_priority_t,
      file_index_t> const& prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prioritize_files
      Src: /src/libtorrent/test/test_torrent.cpp:83,1
    - Dst: wait_priority
      Src: /src/libtorrent/test/test_torrent.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' h'
    - ' prio'
    argTypes:
    - torrent_handle
    - aux::vector<download_priority_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: prioritize_files
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 3
    functionsReached:
    - prioritize_files
    - wait_priority
    linkageType: ''
    returnType: bool
    signature: bool prioritize_files(torrent_handle const& h, aux::vector<download_priority_t,
      file_index_t> const& prio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_torrent.cpp:89,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_torrent.cpp:90,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_torrent.cpp:91,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_torrent.cpp:91,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_torrent.cpp:92,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/test/test_torrent.cpp:96,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent.cpp:111,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_torrent.cpp:111,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:115,1
    - Dst: std::shared_ptr<torrent_info>::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:116,1
    - Dst: prioritize_files
      Src: /src/libtorrent/test/test_torrent.cpp:116,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:120,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:123,1
    - Dst: std::shared_ptr<torrent_info>::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:125,1
    - Dst: prioritize_files
      Src: /src/libtorrent/test/test_torrent.cpp:125,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:126,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:128,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:129,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:130,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:131,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:131,1
    - Dst: std::shared_ptr<torrent_info>::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:131,1
    - Dst: std::shared_ptr<torrent_info>::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:136,1
    - Dst: prioritize_files
      Src: /src/libtorrent/test/test_torrent.cpp:136,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:140,1
    - Dst: std::shared_ptr<torrent_info>::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:143,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_torrent.cpp:145,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:146,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:147,1
    - Dst: torrent_status::pieces::size
      Src: /src/libtorrent/test/test_torrent.cpp:147,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:148,1
    - Dst: std::shared_ptr<torrent_info>::piece_length
      Src: /src/libtorrent/test/test_torrent.cpp:148,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_torrent.cpp:149,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:150,1
    - Dst: torrent_handle::add_piece
      Src: /src/libtorrent/test/test_torrent.cpp:151,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:154,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:156,1
    - Dst: torrent_status::pieces::size
      Src: /src/libtorrent/test/test_torrent.cpp:156,1
    - Dst: torrent_handle::read_piece
      Src: /src/libtorrent/test/test_torrent.cpp:159,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:161,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_torrent.cpp:162,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:167,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_torrent.cpp:167,1
    - Dst: read_piece_alert*::buffer::get
      Src: /src/libtorrent/test/test_torrent.cpp:167,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:168,1
    - Dst: std::shared_ptr<torrent_info>::piece_size
      Src: /src/libtorrent/test/test_torrent.cpp:168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:169,1
    - Dst: std::shared_ptr<torrent_info>::piece_size
      Src: /src/libtorrent/test/test_torrent.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:170,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:171,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_torrent.cpp:171,1
    - Dst: std::shared_ptr<torrent_info>::hash_for_piece
      Src: /src/libtorrent/test/test_torrent.cpp:171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:175,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 2
    argNames:
    - info
    - file_size
    argTypes:
    - std::shared_ptr<torrent_info>
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 176
    functionName: test_running_torrent
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - std::move
    - torrent_handle::read_piece
    - test_listen_interface
    - aux::vector::resize
    - read_piece_alert*::buffer::get
    - torrent_handle::status
    - hasher
    - std::memcmp
    - prioritize_files
    - torrent_handle::get_file_priorities
    - error_code::message
    - std::size_t
    - std::shared_ptr<torrent_info>::num_pieces
    - std::printf
    - TEST_EQUAL
    - torrent_handle::piece_priority
    - torrent_status::pieces::size
    - std::shared_ptr<torrent_info>::piece_length
    - lt::session::add_torrent
    - std::shared_ptr<torrent_info>::hash_for_piece
    - TEST_CHECK
    - alert_cast<read_piece_alert>
    - std::shared_ptr<torrent_info>::num_files
    - wait_for_alert
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - std::shared_ptr<torrent_info>::piece_size
    - torrent_handle::add_piece
    linkageType: ''
    returnType: void
    signature: void test_running_torrent(std::shared_ptr<torrent_info> info, std::int64_t
      file_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:188,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:188,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:197,1
    - Dst: code
      Src: /src/libtorrent/test/test_torrent.cpp:197,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_torrent.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 199
    functionName: test_large_piece_size
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - error_code
    - load_torrent_buffer
    - code
    - std::back_inserter
    - bencode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_large_piece_size(int const size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:69,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_torrent.cpp:72,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_torrent.cpp:72,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_torrent.cpp:74,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_torrent.cpp:74,1
    - Dst: get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' h'
    - ' prio'
    argTypes:
    - torrent_handle
    - aux::vector<download_priority_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: wait_priority
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 1
    functionsReached:
    - std::this_thread::sleep_for
    - get_file_priorities
    - libtorrent::total_milliseconds
    linkageType: ''
    returnType: bool
    signature: bool wait_priority(torrent_handle const& h, aux::vector<download_priority_t,
      file_index_t> const& prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prioritize_files
      Src: /src/libtorrent/test/test_torrent.cpp:83,1
    - Dst: wait_priority
      Src: /src/libtorrent/test/test_torrent.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' h'
    - ' prio'
    argTypes:
    - torrent_handle
    - aux::vector<download_priority_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: prioritize_files
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 5
    functionsReached:
    - prioritize_files
    - wait_priority
    linkageType: ''
    returnType: bool
    signature: bool prioritize_files(torrent_handle const& h, aux::vector<download_priority_t,
      file_index_t> const& prio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_torrent.cpp:89,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_torrent.cpp:90,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_torrent.cpp:91,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_torrent.cpp:91,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_torrent.cpp:92,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/test/test_torrent.cpp:96,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_torrent.cpp:111,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_torrent.cpp:111,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:115,1
    - Dst: std::shared_ptr<torrent_info>::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:116,1
    - Dst: prioritize_files
      Src: /src/libtorrent/test/test_torrent.cpp:116,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:120,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:123,1
    - Dst: std::shared_ptr<torrent_info>::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:125,1
    - Dst: prioritize_files
      Src: /src/libtorrent/test/test_torrent.cpp:125,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:126,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:128,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:129,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:130,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:131,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:131,1
    - Dst: std::shared_ptr<torrent_info>::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:131,1
    - Dst: std::shared_ptr<torrent_info>::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:136,1
    - Dst: prioritize_files
      Src: /src/libtorrent/test/test_torrent.cpp:136,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:140,1
    - Dst: std::shared_ptr<torrent_info>::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:143,1
    - Dst: torrent_handle::piece_priority
      Src: /src/libtorrent/test/test_torrent.cpp:145,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:146,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:147,1
    - Dst: torrent_status::pieces::size
      Src: /src/libtorrent/test/test_torrent.cpp:147,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:148,1
    - Dst: std::shared_ptr<torrent_info>::piece_length
      Src: /src/libtorrent/test/test_torrent.cpp:148,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_torrent.cpp:149,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:150,1
    - Dst: torrent_handle::add_piece
      Src: /src/libtorrent/test/test_torrent.cpp:151,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:154,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:156,1
    - Dst: torrent_status::pieces::size
      Src: /src/libtorrent/test/test_torrent.cpp:156,1
    - Dst: torrent_handle::read_piece
      Src: /src/libtorrent/test/test_torrent.cpp:159,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:161,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_torrent.cpp:162,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:167,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_torrent.cpp:167,1
    - Dst: read_piece_alert*::buffer::get
      Src: /src/libtorrent/test/test_torrent.cpp:167,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:168,1
    - Dst: std::shared_ptr<torrent_info>::piece_size
      Src: /src/libtorrent/test/test_torrent.cpp:168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:169,1
    - Dst: std::shared_ptr<torrent_info>::piece_size
      Src: /src/libtorrent/test/test_torrent.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:170,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:171,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_torrent.cpp:171,1
    - Dst: std::shared_ptr<torrent_info>::hash_for_piece
      Src: /src/libtorrent/test/test_torrent.cpp:171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:175,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 2
    argNames:
    - info
    - file_size
    argTypes:
    - std::shared_ptr<torrent_info>
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 176
    functionName: test_running_torrent
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - std::move
    - torrent_handle::read_piece
    - test_listen_interface
    - aux::vector::resize
    - read_piece_alert*::buffer::get
    - torrent_handle::status
    - hasher
    - std::memcmp
    - prioritize_files
    - torrent_handle::get_file_priorities
    - error_code::message
    - std::size_t
    - std::shared_ptr<torrent_info>::num_pieces
    - std::printf
    - TEST_EQUAL
    - torrent_handle::piece_priority
    - torrent_status::pieces::size
    - std::shared_ptr<torrent_info>::piece_length
    - lt::session::add_torrent
    - std::shared_ptr<torrent_info>::hash_for_piece
    - TEST_CHECK
    - alert_cast<read_piece_alert>
    - std::shared_ptr<torrent_info>::num_files
    - wait_for_alert
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - std::shared_ptr<torrent_info>::piece_size
    - torrent_handle::add_piece
    linkageType: ''
    returnType: void
    signature: void test_running_torrent(std::shared_ptr<torrent_info> info, std::int64_t
      file_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:188,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:188,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:197,1
    - Dst: code
      Src: /src/libtorrent/test/test_torrent.cpp:197,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_torrent.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 199
    functionName: test_large_piece_size
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - error_code
    - load_torrent_buffer
    - code
    - std::back_inserter
    - bencode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_large_piece_size(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:218,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:218,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent.cpp:219,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:221,1
    - Dst: auto::ti::info_hashes
      Src: /src/libtorrent/test/test_torrent.cpp:221,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/test/test_torrent.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - auto::info_hashes
    - std::make_shared<torrent_info>
    - load_torrent_buffer
    - auto::ti::info_hashes
    - std::back_inserter
    - bencode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(long_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_large_piece_size
      Src: /src/libtorrent/test/test_torrent.cpp:226,1
    - Dst: test_large_piece_size
      Src: /src/libtorrent/test/test_torrent.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_large_piece_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(large_piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:234,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:235,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:236,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:237,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:240,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:240,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:241,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:241,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:242,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:242,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:243,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:243,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:246,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:246,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:246,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:247,1
    - Dst: settings
      Src: /src/libtorrent/test/test_torrent.cpp:250,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_torrent.cpp:251,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_torrent.cpp:252,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_torrent.cpp:252,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_torrent.cpp:253,1
    - Dst: add_torrent_params::file_priorities::resize
      Src: /src/libtorrent/test/test_torrent.cpp:257,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:260,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:260,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:262,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:263,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:264,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_torrent.cpp:268,1
    - Dst: torrent_handle::file_priority
      Src: /src/libtorrent/test/test_torrent.cpp:269,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:270,1
    - Dst: wait_priority
      Src: /src/libtorrent/test/test_torrent.cpp:270,1
    - Dst: aux::vector<download_priority_t, file_index_t>
      Src: /src/libtorrent/test/test_torrent.cpp:270,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/test_torrent.cpp:270,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:270,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:271,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 272
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::set_hash
    - std::move
    - test_listen_interface
    - static_cast<std::size_t>
    - torrent_handle::status
    - file_storage::add_file
    - wait_priority
    - TEST_EQUAL
    - torrent_handle::file_priority
    - add_torrent_params::file_priorities::resize
    - libtorrent::aux::max
    - lt::session::add_torrent
    - TEST_CHECK
    - bencode
    - load_torrent_buffer
    - file_storage::num_files
    - settings_pack::set_str
    - std::back_inserter
    - settings
    - lt::create_torrent::generate
    - settings_pack::set_int
    - aux::vector<download_priority_t, file_index_t>
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(total_wanted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:278,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:281,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:281,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:283,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:283,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:283,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent.cpp:284,1
    - Dst: settings
      Src: /src/libtorrent/test/test_torrent.cpp:286,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_torrent.cpp:287,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_torrent.cpp:287,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_torrent.cpp:288,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_torrent.cpp:291,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:300,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:300,1
    - Dst: torrent_handle::save_resume_data
      Src: /src/libtorrent/test/test_torrent.cpp:302,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:303,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:305,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/test/test_torrent.cpp:306,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:307,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:308,1
    - Dst: save_resume_data_alert*::params::peers::size
      Src: /src/libtorrent/test/test_torrent.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 309
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::set_hash
    - std::move
    - test_listen_interface
    - parse_magnet_uri
    - std::make_shared<torrent_info>
    - file_storage::add_file
    - torrent_handle::save_resume_data
    - save_resume_data_alert*::params::peers::size
    - TEST_EQUAL
    - libtorrent::aux::max
    - lt::session::add_torrent
    - TEST_CHECK
    - bencode
    - alert_cast<save_resume_data_alert>
    - wait_for_alert
    - settings_pack::set_str
    - std::back_inserter
    - settings
    - lt::create_torrent::generate
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(added_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:314,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:316,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:316,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:318,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:318,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:318,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:319,1
    - Dst: libtorrent::info_hash_t
      Src: /src/libtorrent/test/test_torrent.cpp:323,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/test/test_torrent.cpp:323,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:328,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:328,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:329,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:330,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_torrent.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - lt::create_torrent::set_hash
    - std::move
    - file_storage::add_file
    - load_torrent_buffer
    - torrent_handle::is_valid
    - libtorrent::aux::max
    - bind_sha1_hash
    - lt::session::add_torrent
    - std::back_inserter
    - libtorrent::info_hash_t
    - lt::create_torrent::generate
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mismatching_info_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:336,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:338,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:338,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:340,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:340,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:340,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:341,1
    - Dst: add_torrent_params::file_priorities::resize
      Src: /src/libtorrent/test/test_torrent.cpp:342,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:346,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:346,1
    - Dst: torrent_handle::get_file_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:347,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:348,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_torrent.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 349
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - lt::create_torrent::set_hash
    - std::move
    - file_storage::add_file
    - load_torrent_buffer
    - add_torrent_params::file_priorities::resize
    - libtorrent::aux::max
    - torrent_handle::get_file_priorities
    - auto::size
    - lt::session::add_torrent
    - std::back_inserter
    - lt::create_torrent::generate
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(exceed_file_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:354,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:356,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:356,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:358,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:358,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:358,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:360,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:361,1
    - Dst: add_torrent_params::ti::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:361,1
    - Dst: add_torrent_params::piece_priorities::resize
      Src: /src/libtorrent/test/test_torrent.cpp:362,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:366,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:366,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:367,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:368,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_torrent.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 369
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - lt::create_torrent::set_hash
    - std::move
    - file_storage::add_file
    - load_torrent_buffer
    - torrent_handle::get_piece_priorities
    - libtorrent::aux::max
    - auto::size
    - lt::session::add_torrent
    - std::size_t
    - std::back_inserter
    - lt::create_torrent::generate
    - add_torrent_params::ti::num_pieces
    - add_torrent_params::piece_priorities::resize
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(exceed_piece_prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::info_hash_t
      Src: /src/libtorrent/test/test_torrent.cpp:374,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/test/test_torrent.cpp:374,1
    - Dst: add_torrent_params::piece_priorities::resize
      Src: /src/libtorrent/test/test_torrent.cpp:375,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:379,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:379,1
    - Dst: torrent_handle::get_piece_priorities
      Src: /src/libtorrent/test/test_torrent.cpp:380,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:381,1
    - Dst: auto::empty
      Src: /src/libtorrent/test/test_torrent.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 382
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - std::move
    - torrent_handle::get_piece_priorities
    - bind_sha1_hash
    - lt::session::add_torrent
    - libtorrent::info_hash_t
    - add_torrent_params::piece_priorities::resize
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(exceed_piece_prio_magnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:421,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_torrent.cpp:425,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:426,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_torrent.cpp:429,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:430,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:430,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_torrent.cpp:431,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:432,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/test/test_torrent.cpp:434,1
    - Dst: libtorrent::hasher256::hasher256
      Src: /src/libtorrent/test/test_torrent.cpp:434,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:437,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:437,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:437,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent.cpp:438,1
    - Dst: test_running_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 441
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::num_pieces
    - test_running_torrent
    - std::make_shared<torrent_info>
    - std::vector::size
    - hasher
    - lt::create_torrent::set_hash
    - file_storage::piece_range
    - file_storage::add_file
    - libtorrent::hasher256::hasher256
    - std::size_t
    - lt::create_torrent::set_hash2
    - std::back_inserter
    - lt::create_torrent::generate
    - bencode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 448
    functionName: plugin_creator
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void plugin_creator(int& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<test_plugin>
      Src: /src/libtorrent/test/test_torrent.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: operator()(torrent_handle const&, client_data_t)
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<test_plugin>
    linkageType: ''
    returnType: std::shared_ptr<lt::torrent_plugin>
    signature: std::shared_ptr<lt::torrent_plugin> operator()(torrent_handle const&,
      client_data_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:464,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_torrent.cpp:468,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:469,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_torrent.cpp:472,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:473,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:473,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_torrent.cpp:474,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:475,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:478,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:478,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:478,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:483,1
    - Dst: add_torrent_params::extensions::push_back
      Src: /src/libtorrent/test/test_torrent.cpp:488,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:491,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:492,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:492,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_torrent.cpp:494,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 498
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::num_pieces
    - TEST_EQUAL
    - add_torrent_params::extensions::push_back
    - std::vector::size
    - hasher
    - lt::create_torrent::set_hash
    - file_storage::piece_range
    - file_storage::add_file
    - std::move
    - load_torrent_buffer
    - std::size_t
    - std::back_inserter
    - lt::session::async_add_torrent
    - lt::create_torrent::generate
    - bencode
    - wait_for_downloading
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(duplicate_is_not_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:505,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:506,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:506,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:507,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_torrent.cpp:507,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/test/test_torrent.cpp:511,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:512,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:514,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:515,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_torrent.cpp:515,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:516,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_torrent.cpp:516,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_torrent.cpp:518,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/test/test_torrent.cpp:520,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 522
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - file_storage::total_size
    - file_storage::add_file
    - error_code::clear
    - file_storage::num_files
    - set_piece_hashes
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_total_size_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:528,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:529,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:531,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:531,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:534,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:534,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:534,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent.cpp:535,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:537,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_torrent.cpp:537,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent.cpp:537,1
    - Dst: auto::rename_file
      Src: /src/libtorrent/test/test_torrent.cpp:540,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:542,1
    - Dst: auto::files
      Src: /src/libtorrent/test/test_torrent.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 543
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - auto::files
    - combine_path
    - file_storage::add_file
    - auto::rename_file
    - libtorrent::aux::max
    - std::back_inserter
    - lt::create_torrent::generate
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rename_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:547,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_torrent.cpp:547,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:548,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_torrent.cpp:548,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:549,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_torrent.cpp:549,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:550,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_torrent.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_torrent.cpp:557,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_torrent.cpp:559,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:568,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/test/test_torrent.cpp:568,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:570,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:570,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:573,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:573,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:573,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent.cpp:574,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent.cpp:578,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:578,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:578,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_torrent.cpp:581,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:584,1
    - Dst: torrent_file
      Src: /src/libtorrent/test/test_torrent.cpp:584,1
    - Dst: prioritize_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:585,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:588,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:591,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:591,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:592,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:592,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:593,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:593,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:594,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:594,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:595,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:595,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:596,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:596,1
    - Dst: queue_position_top
      Src: /src/libtorrent/test/test_torrent.cpp:599,1
    - Dst: queue_position_bottom
      Src: /src/libtorrent/test/test_torrent.cpp:600,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:602,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:602,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:603,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:603,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:604,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:604,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:605,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:605,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:606,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:606,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:607,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:607,1
    - Dst: queue_position_set
      Src: /src/libtorrent/test/test_torrent.cpp:610,1
    - Dst: queue_position_set
      Src: /src/libtorrent/test/test_torrent.cpp:611,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:614,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:614,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:615,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:615,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:616,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:616,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:617,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:617,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:618,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:618,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:619,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:619,1
    - Dst: queue_position_up
      Src: /src/libtorrent/test/test_torrent.cpp:622,1
    - Dst: queue_position_down
      Src: /src/libtorrent/test/test_torrent.cpp:623,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:625,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:625,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:626,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:626,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:627,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:627,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:628,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:628,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:629,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:629,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:630,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:630,1
    - Dst: queue_position_up
      Src: /src/libtorrent/test/test_torrent.cpp:632,1
    - Dst: queue_position_down
      Src: /src/libtorrent/test/test_torrent.cpp:633,1
    - Dst: torrent_handle::queue_position_up
      Src: /src/libtorrent/test/test_torrent.cpp:634,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:636,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:636,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:637,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:637,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:638,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:638,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:639,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:639,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:640,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:640,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:641,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:641,1
    - Dst: queue_position_down
      Src: /src/libtorrent/test/test_torrent.cpp:643,1
    - Dst: queue_position_up
      Src: /src/libtorrent/test/test_torrent.cpp:644,1
    - Dst: torrent_handle::queue_position_down
      Src: /src/libtorrent/test/test_torrent.cpp:645,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:648,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:648,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:649,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:649,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:650,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:650,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:651,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:651,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:652,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:652,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:653,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:653,1
    - Dst: queue_position_set
      Src: /src/libtorrent/test/test_torrent.cpp:656,1
    - Dst: torrent_handle::queue_position_set
      Src: /src/libtorrent/test/test_torrent.cpp:657,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:659,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:659,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:660,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:660,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:661,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:661,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:662,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:662,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:663,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:663,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:664,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 70
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 665
    functionName: test_queue
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::set_hash
    - std::move
    - queue_position
    - lt::settings_pack::set_bool
    - queue_position_bottom
    - queue_position_set
    - std::make_shared<torrent_info>
    - prioritize_pieces
    - file_storage::add_file
    - print_alerts
    - torrent_handle::queue_position_down
    - std::size_t
    - queue_position_top
    - TEST_EQUAL
    - torrent_handle::queue_position_set
    - libtorrent::aux::max
    - lt::session::add_torrent
    - torrent_file
    - bencode
    - std::stringstream::str
    - queue_position_down
    - std::vector::push_back
    - wait_for_alert
    - std::back_inserter
    - settings
    - lt::create_torrent::generate
    - torrent_handle::queue_position_up
    - queue_position_up
    - torrent_handle::queue_position
    linkageType: ''
    returnType: void
    signature: void test_queue(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_torrent.cpp:557,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/test/test_torrent.cpp:559,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:568,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/test/test_torrent.cpp:568,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:570,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_torrent.cpp:570,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:573,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:573,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:573,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_torrent.cpp:574,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_torrent.cpp:578,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:578,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:578,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_torrent.cpp:581,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:584,1
    - Dst: torrent_file
      Src: /src/libtorrent/test/test_torrent.cpp:584,1
    - Dst: prioritize_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:585,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:588,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:591,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:591,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:592,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:592,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:593,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:593,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:594,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:594,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:595,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:595,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:596,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:596,1
    - Dst: queue_position_top
      Src: /src/libtorrent/test/test_torrent.cpp:599,1
    - Dst: queue_position_bottom
      Src: /src/libtorrent/test/test_torrent.cpp:600,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:602,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:602,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:603,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:603,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:604,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:604,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:605,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:605,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:606,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:606,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:607,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:607,1
    - Dst: queue_position_set
      Src: /src/libtorrent/test/test_torrent.cpp:610,1
    - Dst: queue_position_set
      Src: /src/libtorrent/test/test_torrent.cpp:611,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:614,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:614,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:615,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:615,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:616,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:616,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:617,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:617,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:618,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:618,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:619,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:619,1
    - Dst: queue_position_up
      Src: /src/libtorrent/test/test_torrent.cpp:622,1
    - Dst: queue_position_down
      Src: /src/libtorrent/test/test_torrent.cpp:623,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:625,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:625,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:626,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:626,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:627,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:627,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:628,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:628,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:629,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:629,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:630,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:630,1
    - Dst: queue_position_up
      Src: /src/libtorrent/test/test_torrent.cpp:632,1
    - Dst: queue_position_down
      Src: /src/libtorrent/test/test_torrent.cpp:633,1
    - Dst: torrent_handle::queue_position_up
      Src: /src/libtorrent/test/test_torrent.cpp:634,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:636,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:636,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:637,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:637,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:638,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:638,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:639,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:639,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:640,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:640,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:641,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:641,1
    - Dst: queue_position_down
      Src: /src/libtorrent/test/test_torrent.cpp:643,1
    - Dst: queue_position_up
      Src: /src/libtorrent/test/test_torrent.cpp:644,1
    - Dst: torrent_handle::queue_position_down
      Src: /src/libtorrent/test/test_torrent.cpp:645,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:648,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:648,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:649,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:649,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:650,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:650,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:651,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:651,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:652,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:652,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:653,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:653,1
    - Dst: queue_position_set
      Src: /src/libtorrent/test/test_torrent.cpp:656,1
    - Dst: torrent_handle::queue_position_set
      Src: /src/libtorrent/test/test_torrent.cpp:657,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:659,1
    - Dst: torrent_handle::queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:659,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:660,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:660,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:661,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:661,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:662,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:662,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:663,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:663,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:664,1
    - Dst: queue_position
      Src: /src/libtorrent/test/test_torrent.cpp:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 70
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 665
    functionName: test_queue
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::set_hash
    - std::move
    - queue_position
    - lt::settings_pack::set_bool
    - queue_position_bottom
    - queue_position_set
    - std::make_shared<torrent_info>
    - prioritize_pieces
    - file_storage::add_file
    - print_alerts
    - torrent_handle::queue_position_down
    - std::size_t
    - queue_position_top
    - TEST_EQUAL
    - torrent_handle::queue_position_set
    - libtorrent::aux::max
    - lt::session::add_torrent
    - torrent_file
    - bencode
    - std::stringstream::str
    - queue_position_down
    - std::vector::push_back
    - wait_for_alert
    - std::back_inserter
    - settings
    - lt::create_torrent::generate
    - torrent_handle::queue_position_up
    - queue_position_up
    - torrent_handle::queue_position
    linkageType: ''
    returnType: void
    signature: void test_queue(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_queue
      Src: /src/libtorrent/test/test_torrent.cpp:671,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/test/test_torrent.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 672
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - add_torrent_params
    - test_queue
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_queue
      Src: /src/libtorrent/test/test_torrent.cpp:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 680
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - test_queue
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(queue_paused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_torrent.cpp:685,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:687,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:689,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:689,1
    - Dst: complete
      Src: /src/libtorrent/test/test_torrent.cpp:689,1
    - Dst: torrent_handle::move_storage
      Src: /src/libtorrent/test/test_torrent.cpp:691,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:693,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_torrent.cpp:693,1
    - Dst: complete
      Src: /src/libtorrent/test/test_torrent.cpp:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 694
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - torrent_handle::status
    - std::move
    - lt::session::add_torrent
    - torrent_handle::move_storage
    - complete
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_move_storage_no_metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_torrent.cpp:699,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:701,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:701,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:703,1
    - Dst: torrent_handle::have_piece
      Src: /src/libtorrent/test/test_torrent.cpp:703,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:704,1
    - Dst: torrent_handle::have_piece
      Src: /src/libtorrent/test/test_torrent.cpp:704,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:705,1
    - Dst: torrent_handle::have_piece
      Src: /src/libtorrent/test/test_torrent.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 706
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - parse_magnet_uri
    - torrent_handle::have_piece
    - std::move
    - lt::session::add_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_have_piece_no_metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::set_piece_length
      Src: /src/libtorrent/test/test_torrent.cpp:716,1
    - Dst: create_random_files
      Src: /src/libtorrent/test/test_torrent.cpp:717,1
    - Dst: make_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:718,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:722,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:722,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:724,1
    - Dst: torrent_handle::have_piece
      Src: /src/libtorrent/test/test_torrent.cpp:724,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:725,1
    - Dst: torrent_handle::have_piece
      Src: /src/libtorrent/test/test_torrent.cpp:725,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:726,1
    - Dst: torrent_handle::have_piece
      Src: /src/libtorrent/test/test_torrent.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 727
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::file_storage::set_piece_length
    - std::move
    - torrent_handle::have_piece
    - create_random_files
    - lt::session::add_torrent
    - make_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_have_piece_out_of_range)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/test/test_torrent.cpp:732,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:734,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:734,1
    - Dst: torrent_handle::read_piece
      Src: /src/libtorrent/test/test_torrent.cpp:736,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:738,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:739,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_torrent.cpp:740,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:742,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_torrent.cpp:742,1
    - Dst: libtorrent::libtorrent_category
      Src: /src/libtorrent/test/test_torrent.cpp:742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 744
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - std::move
    - torrent_handle::read_piece
    - error_code
    - alert_cast<read_piece_alert>
    - wait_for_alert
    - lt::session::add_torrent
    - libtorrent::libtorrent_category
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_read_piece_no_metadata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:753,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:756,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:756,1
    - Dst: torrent_handle::read_piece
      Src: /src/libtorrent/test/test_torrent.cpp:758,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:760,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:761,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_torrent.cpp:762,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:764,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_torrent.cpp:764,1
    - Dst: libtorrent::libtorrent_category
      Src: /src/libtorrent/test/test_torrent.cpp:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 767
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - torrent_handle::read_piece
    - error_code
    - alert_cast<read_piece_alert>
    - wait_for_alert
    - lt::session::add_torrent
    - make_torrent
    - libtorrent::libtorrent_category
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_read_piece_out_of_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_torrent.cpp:775,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:776,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:777,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 779
    functionName: test_fs
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - file_storage::set_num_pieces
    - libtorrent::aux::calc_num_pieces
    linkageType: ''
    returnType: file_storage
    signature: file_storage test_fs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_torrent.cpp:775,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:776,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:777,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 779
    functionName: test_fs
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - file_storage::add_file
    - file_storage::set_piece_length
    - file_storage::set_num_pieces
    - libtorrent::aux::calc_num_pieces
    linkageType: ''
    returnType: file_storage
    signature: file_storage test_fs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fs
      Src: /src/libtorrent/test/test_torrent.cpp:784,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:785,1
    - Dst: calc_bytes
      Src: /src/libtorrent/test/test_torrent.cpp:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - calc_bytes
    - test_fs
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_calc_bytes_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fs
      Src: /src/libtorrent/test/test_torrent.cpp:790,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:791,1
    - Dst: calc_bytes
      Src: /src/libtorrent/test/test_torrent.cpp:791,1
    - Dst: auto::total_size
      Src: /src/libtorrent/test/test_torrent.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 792
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - auto::total_size
    - TEST_EQUAL
    - calc_bytes
    - test_fs
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_calc_bytes_pieces_last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fs
      Src: /src/libtorrent/test/test_torrent.cpp:796,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:797,1
    - Dst: calc_bytes
      Src: /src/libtorrent/test/test_torrent.cpp:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 798
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - calc_bytes
    - test_fs
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_calc_bytes_no_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fs
      Src: /src/libtorrent/test/test_torrent.cpp:802,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:803,1
    - Dst: calc_bytes
      Src: /src/libtorrent/test/test_torrent.cpp:803,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:803,1
    - Dst: auto::total_size
      Src: /src/libtorrent/test/test_torrent.cpp:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 804
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - auto::total_size
    - TEST_EQUAL
    - test_fs
    - calc_bytes
    - auto::num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_calc_bytes_all_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fs
      Src: /src/libtorrent/test/test_torrent.cpp:808,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:809,1
    - Dst: calc_bytes
      Src: /src/libtorrent/test/test_torrent.cpp:809,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:809,1
    - Dst: auto::total_size
      Src: /src/libtorrent/test/test_torrent.cpp:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 810
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - auto::total_size
    - TEST_EQUAL
    - test_fs
    - calc_bytes
    - auto::num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_calc_bytes_all_pieces_one_pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_fs
      Src: /src/libtorrent/test/test_torrent.cpp:814,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:815,1
    - Dst: calc_bytes
      Src: /src/libtorrent/test/test_torrent.cpp:815,1
    - Dst: auto::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:815,1
    - Dst: auto::total_size
      Src: /src/libtorrent/test/test_torrent.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 816
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - auto::total_size
    - TEST_EQUAL
    - test_fs
    - calc_bytes
    - auto::num_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_calc_bytes_all_pieces_two_pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_torrent.cpp:822,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/test/test_torrent.cpp:824,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent.cpp:824,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent.cpp:825,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_torrent.cpp:825,1
    - Dst: settings
      Src: /src/libtorrent/test/test_torrent.cpp:828,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_torrent.cpp:829,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:831,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:831,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_torrent.cpp:833,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent.cpp:835,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_torrent.cpp:835,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:836,1
    - Dst: libtorrent::aux::get_file_attributes
      Src: /src/libtorrent/test/test_torrent.cpp:836,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_torrent.cpp:837,1
    - Dst: libtorrent::aux::get_symlink_path
      Src: /src/libtorrent/test/test_torrent.cpp:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 838
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - TEST_EQUAL
    - libtorrent::aux::get_symlink_path
    - std::move
    - libtorrent::aux::get_file_attributes
    - combine_path
    - parent_path
    - wait_for_alert
    - std::make_shared<lt::torrent_info>
    - lt::session::add_torrent
    - settings
    - settings_pack::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(symlinks_restore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_torrent.cpp:844,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:847,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:847,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:849,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/test/test_torrent.cpp:849,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_torrent.cpp:850,1
    - Dst: libtorrent::hasher::hasher
      Src: /src/libtorrent/test/test_torrent.cpp:852,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_torrent.cpp:853,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_torrent.cpp:854,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_torrent.cpp:857,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_torrent.cpp:857,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_torrent.cpp:857,1
    - Dst: load_torrent_buffer
      Src: /src/libtorrent/test/test_torrent.cpp:860,1
    - Dst: lt::add_torrent_params::ti::num_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:861,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:864,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:864,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_torrent.cpp:865,1
    - Dst: auto::add_piece
      Src: /src/libtorrent/test/test_torrent.cpp:867,1
    - Dst: auto::set_piece_deadline
      Src: /src/libtorrent/test/test_torrent.cpp:868,1
    - Dst: auto::prioritize_pieces
      Src: /src/libtorrent/test/test_torrent.cpp:869,1
    - Dst: std::vector<lt::download_priority_t>
      Src: /src/libtorrent/test/test_torrent.cpp:869,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_torrent.cpp:869,1
    - Dst: auto::add_piece
      Src: /src/libtorrent/test/test_torrent.cpp:870,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:870,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_torrent.cpp:871,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_torrent.cpp:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 872
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::create_torrent::set_hash
    - std::move
    - auto::add_piece
    - std::this_thread::sleep_for
    - wait_for_downloading
    - std::vector<lt::download_priority_t>
    - file_storage::piece_length
    - file_storage::add_file
    - libtorrent::hasher::hasher
    - Catch::Timer::getElapsedNanoseconds
    - std::size_t
    - libtorrent::aux::random_bytes
    - auto::prioritize_pieces
    - lt::session::add_torrent
    - lt::add_torrent_params::ti::num_pieces
    - bencode
    - TEST_CHECK
    - lt::create_torrent::num_pieces
    - auto::set_piece_deadline
    - file_storage::piece_range
    - load_torrent_buffer
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(redundant_add_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:878,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:880,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_torrent.cpp:880,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:881,1
    - Dst: torrent_handle::in_session
      Src: /src/libtorrent/test/test_torrent.cpp:881,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_torrent.cpp:882,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_torrent.cpp:883,1
    - Dst: torrent_handle::in_session
      Src: /src/libtorrent/test/test_torrent.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 884
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - lt::session::add_torrent
    - generate_torrent
    - lt::session::remove_torrent
    - torrent_handle::in_session
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_in_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_peer_list.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tor
    - out
    argTypes:
    - mock_torrent*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: mock_peer_connection
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: void
    signature: void mock_peer_connection(mock_torrent* tor, bool out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tor
    - out
    - ' remote'
    argTypes:
    - mock_torrent*
    - bool
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: mock_peer_connection
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - ep
    linkageType: ''
    returnType: void
    signature: void mock_peer_connection(mock_torrent* tor, bool out, tcp::endpoint
      const& remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/test_peer_list.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tor
    - out
    - remote
    argTypes:
    - mock_torrent*
    - bool
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: mock_peer_connection
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void mock_peer_connection(mock_torrent* tor, bool out, std::string
      remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: ~mock_peer_connection()
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~mock_peer_connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: should_log
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log(peer_log_alert::direction_t) const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/test/test_peer_list.cpp:97,1
    - Dst: std::vprintf
      Src: /src/libtorrent/test/test_peer_list.cpp:102,1
    - Dst: va_end
      Src: /src/libtorrent/test/test_peer_list.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: peer_log
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - std::vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: "void peer_log(peer_log_alert::direction_t, char const* /*event*/\n\t\t,
      char const* fmt, ...) const noexcept override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: was_disconnected
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool was_disconnected() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: set_local_ep
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_local_ep(tcp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: '& destination() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & destination() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: '& local_i2p_endpoint() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & local_i2p_endpoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: get_peer_info
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_peer_info(peer_info&) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: '& remote() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint & remote() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: local_endpoint
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint local_endpoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& pid() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id & pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: our_pid
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id our_pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: set_holepunch_mode
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_holepunch_mode() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: peer_info_struct
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * peer_info_struct() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: set_peer_info
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_peer_info(torrent_peer* pi) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: is_outgoing
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_outgoing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_stat
      Src: /src/libtorrent/test/test_peer_list.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - downloaded
    - uploaded
    argTypes:
    - std::int64_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: add_stat
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 1
    functionsReached:
    - add_stat
    linkageType: ''
    returnType: void
    signature: void add_stat(std::int64_t downloaded, std::int64_t uploaded) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: fast_reconnect
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fast_reconnect() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: is_choked
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_choked() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: failed
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool failed() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: '& statistics() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lt::stat
    signature: lt::stat & statistics() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - st
    argTypes:
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: mock_torrent
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mock_torrent(torrent_state* st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: ~mock_torrent()
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~mock_torrent()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_peer_list.cpp:165,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:167,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/test/test_peer_list.cpp:167,1
    - Dst: auto::set_peer_info
      Src: /src/libtorrent/test/test_peer_list.cpp:168,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_peer_list.cpp:170,1
    - Dst: set_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:171,1
    - Dst: auto::get
      Src: /src/libtorrent/test/test_peer_list.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - peerinfo
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: connect_to_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::ip
    - push_back
    - auto::get
    - std::make_shared<mock_peer_connection>
    - TORRENT_ASSERT
    - set_connection
    - auto::set_peer_info
    linkageType: ''
    returnType: bool
    signature: bool connect_to_peer(torrent_peer* peerinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_p::connection_closed
      Src: /src/libtorrent/test/test_peer_list.cpp:183,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_peer_list.cpp:184,1
    - Dst: m_connections::begin
      Src: /src/libtorrent/test/test_peer_list.cpp:184,1
    - Dst: m_connections::end
      Src: /src/libtorrent/test/test_peer_list.cpp:184,1
    - Dst: std::static_pointer_cast<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:185,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:185,1
    - Dst: m_connections::end
      Src: /src/libtorrent/test/test_peer_list.cpp:186,1
    - Dst: m_connections::erase
      Src: /src/libtorrent/test/test_peer_list.cpp:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: mock_peer_connection::disconnect
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - m_connections::begin
    - m_p::connection_closed
    - std::static_pointer_cast<mock_peer_connection>
    - m_connections::end
    - std::find
    - m_connections::erase
    linkageType: ''
    returnType: void
    signature: "void mock_peer_connection::disconnect(error_code const&\n\t, operation_t,
      disconnect_severity_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:194,1
    - Dst: address
      Src: /src/libtorrent/test/test_peer_list.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' ep'
    argTypes:
    - peer_list
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: has_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - address
    - find_peers
    linkageType: ''
    returnType: bool
    signature: bool has_peer(peer_list const& p, tcp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: init_state
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_state
    signature: torrent_state init_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:210,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:211,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:214,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:214,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:215,1
    - Dst: port
      Src: /src/libtorrent/test/test_peer_list.cpp:215,1
    - Dst: erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' p'
    - ' st'
    - ' ep'
    argTypes:
    - peer_list
    - torrent_state
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: add_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 1
    functionsReached:
    - TEST_EQUAL
    - num_connect_candidates
    - add_peer
    - erased::clear
    - port
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * add_peer(peer_list& p, torrent_state& st, tcp::endpoint
      const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:224,1
    - Dst: add_i2p_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:228,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:228,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:229,1
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/test/test_peer_list.cpp:229,1
    - Dst: erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' p'
    - ' st'
    - ' destination'
    argTypes:
    - peer_list
    - torrent_state
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: add_i2p_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 1
    functionsReached:
    - TEST_EQUAL
    - num_connect_candidates
    - add_i2p_peer
    - torrent_peer*::dest
    - erased::clear
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * add_i2p_peer(peer_list& p, torrent_state& st, std::string
      const& destination)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:238,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:239,1
    - Dst: connect_to_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:241,1
    - Dst: erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:242,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' p'
    - ' t'
    - ' st'
    argTypes:
    - peer_list
    - mock_torrent
    - torrent_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: connect_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 3
    functionsReached:
    - connect_to_peer
    - erased::clear
    - TEST_CHECK
    - connect_one_peer
    linkageType: ''
    returnType: void
    signature: void connect_peer(peer_list& p, mock_torrent& t, torrent_state& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_peer_list.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tor
    - out
    argTypes:
    - mock_torrent*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: mock_peer_connection
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: void
    signature: void mock_peer_connection(mock_torrent* tor, bool out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tor
    - out
    - ' remote'
    argTypes:
    - mock_torrent*
    - bool
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: mock_peer_connection
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - ep
    linkageType: ''
    returnType: void
    signature: void mock_peer_connection(mock_torrent* tor, bool out, tcp::endpoint
      const& remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/test_peer_list.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tor
    - out
    - remote
    argTypes:
    - mock_torrent*
    - bool
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: mock_peer_connection
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void mock_peer_connection(mock_torrent* tor, bool out, std::string
      remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: ~mock_peer_connection()
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~mock_peer_connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: should_log
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log(peer_log_alert::direction_t) const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/test/test_peer_list.cpp:97,1
    - Dst: std::vprintf
      Src: /src/libtorrent/test/test_peer_list.cpp:102,1
    - Dst: va_end
      Src: /src/libtorrent/test/test_peer_list.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: peer_log
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - std::vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: "void peer_log(peer_log_alert::direction_t, char const* /*event*/\n\t\t,
      char const* fmt, ...) const noexcept override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: was_disconnected
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool was_disconnected() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: set_local_ep
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_local_ep(tcp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: '& destination() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & destination() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: '& local_i2p_endpoint() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & local_i2p_endpoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: get_peer_info
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_peer_info(peer_info&) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: '& remote() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint & remote() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: local_endpoint
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint local_endpoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& pid() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id & pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: our_pid
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id our_pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: set_holepunch_mode
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_holepunch_mode() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: peer_info_struct
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * peer_info_struct() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: set_peer_info
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_peer_info(torrent_peer* pi) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: is_outgoing
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_outgoing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_stat
      Src: /src/libtorrent/test/test_peer_list.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - downloaded
    - uploaded
    argTypes:
    - std::int64_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: add_stat
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 2
    functionsReached:
    - add_stat
    linkageType: ''
    returnType: void
    signature: void add_stat(std::int64_t downloaded, std::int64_t uploaded) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: fast_reconnect
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fast_reconnect() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: is_choked
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_choked() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: failed
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool failed() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: '& statistics() const override'
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lt::stat
    signature: lt::stat & statistics() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - st
    argTypes:
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: mock_torrent
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mock_torrent(torrent_state* st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: ~mock_torrent()
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~mock_torrent()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_peer_list.cpp:165,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:167,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/test/test_peer_list.cpp:167,1
    - Dst: auto::set_peer_info
      Src: /src/libtorrent/test/test_peer_list.cpp:168,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_peer_list.cpp:170,1
    - Dst: set_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:171,1
    - Dst: auto::get
      Src: /src/libtorrent/test/test_peer_list.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - peerinfo
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: connect_to_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 1
    functionsReached:
    - torrent_peer*::ip
    - push_back
    - auto::get
    - std::make_shared<mock_peer_connection>
    - TORRENT_ASSERT
    - set_connection
    - auto::set_peer_info
    linkageType: ''
    returnType: bool
    signature: bool connect_to_peer(torrent_peer* peerinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_p::connection_closed
      Src: /src/libtorrent/test/test_peer_list.cpp:183,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_peer_list.cpp:184,1
    - Dst: m_connections::begin
      Src: /src/libtorrent/test/test_peer_list.cpp:184,1
    - Dst: m_connections::end
      Src: /src/libtorrent/test/test_peer_list.cpp:184,1
    - Dst: std::static_pointer_cast<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:185,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:185,1
    - Dst: m_connections::end
      Src: /src/libtorrent/test/test_peer_list.cpp:186,1
    - Dst: m_connections::erase
      Src: /src/libtorrent/test/test_peer_list.cpp:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: mock_peer_connection::disconnect
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - m_connections::begin
    - m_p::connection_closed
    - std::static_pointer_cast<mock_peer_connection>
    - m_connections::end
    - std::find
    - m_connections::erase
    linkageType: ''
    returnType: void
    signature: "void mock_peer_connection::disconnect(error_code const&\n\t, operation_t,
      disconnect_severity_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:194,1
    - Dst: address
      Src: /src/libtorrent/test/test_peer_list.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' ep'
    argTypes:
    - peer_list
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: has_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - address
    - find_peers
    linkageType: ''
    returnType: bool
    signature: bool has_peer(peer_list const& p, tcp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: init_state
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: torrent_state
    signature: torrent_state init_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:210,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:211,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:214,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:214,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:215,1
    - Dst: port
      Src: /src/libtorrent/test/test_peer_list.cpp:215,1
    - Dst: erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' p'
    - ' st'
    - ' ep'
    argTypes:
    - peer_list
    - torrent_state
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: add_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - num_connect_candidates
    - add_peer
    - erased::clear
    - port
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * add_peer(peer_list& p, torrent_state& st, tcp::endpoint
      const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:224,1
    - Dst: add_i2p_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:228,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:228,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:229,1
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/test/test_peer_list.cpp:229,1
    - Dst: erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' p'
    - ' st'
    - ' destination'
    argTypes:
    - peer_list
    - torrent_state
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: add_i2p_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - num_connect_candidates
    - add_i2p_peer
    - torrent_peer*::dest
    - erased::clear
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * add_i2p_peer(peer_list& p, torrent_state& st, std::string
      const& destination)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:238,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:239,1
    - Dst: connect_to_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:241,1
    - Dst: erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:242,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' p'
    - ' t'
    - ' st'
    argTypes:
    - peer_list
    - mock_torrent
    - torrent_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: connect_peer
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 3
    functionsReached:
    - connect_to_peer
    - erased::clear
    - TEST_CHECK
    - connect_one_peer
    linkageType: ''
    returnType: void
    signature: void connect_peer(peer_list& p, mock_torrent& t, torrent_state& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:258,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:258,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:259,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:259,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:261,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:261,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:262,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:262,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:263,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:265,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:265,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:266,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:266,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:267,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:268,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:268,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 270
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - peer_list::add_peer
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ep
    - peer_list::num_connect_candidates
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multiple_ips_disallowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:276,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:281,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:281,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:282,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:282,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:283,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:283,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:284,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:286,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:286,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:287,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:287,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:288,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:289,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:289,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - peer_list::add_peer
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ep
    - peer_list::num_connect_candidates
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multiple_ips_allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:298,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:303,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:303,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:304,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:304,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:305,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:307,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:307,1
    - Dst: peer_list::connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:308,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:309,1
    - Dst: mock_torrent::connect_to_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:310,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:311,1
    - Dst: peer_list::connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:315,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:316,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:317,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:319,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:319,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:320,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:320,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:321,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:322,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:322,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:323,1
    - Dst: peer_list::connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:325,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:326,1
    - Dst: mock_torrent::connect_to_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:327,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:328,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:328,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 330
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - mock_torrent::connect_to_peer
    - peer_list::add_peer
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ep
    - peer_list::num_connect_candidates
    - peer_list::connect_one_peer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multiple_ips_allowed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:337,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:342,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:342,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:343,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:343,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:344,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:345,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:347,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:347,1
    - Dst: peer_list::connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:348,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:349,1
    - Dst: mock_torrent::connect_to_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:350,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:351,1
    - Dst: peer_list::connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:355,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:356,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:357,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:359,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:359,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:360,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:360,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:361,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:362,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:363,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:363,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 365
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - mock_torrent::connect_to_peer
    - peer_list::add_peer
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ep
    - peer_list::num_connect_candidates
    - peer_list::connect_one_peer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multiple_ips_disallowed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:371,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:376,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:376,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:377,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:377,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:378,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:379,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:379,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:380,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:380,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:381,1
    - Dst: peer_list::update_peer_port
      Src: /src/libtorrent/test/test_peer_list.cpp:383,1
    - Dst: auto::peer_info_struct
      Src: /src/libtorrent/test/test_peer_list.cpp:383,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:384,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:384,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:385,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:386,1
    - Dst: auto::peer_info_struct
      Src: /src/libtorrent/test/test_peer_list.cpp:386,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 388
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - auto::peer_info_struct
    - peer_list::update_peer_port
    - std::make_shared<mock_peer_connection>
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ep
    - peer_list::new_connection
    - peer_list::num_connect_candidates
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(update_peer_port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:394,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:400,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:400,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:401,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:403,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:403,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:404,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:404,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:405,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:406,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:406,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:409,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:409,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:410,1
    - Dst: peer_list::update_peer_port
      Src: /src/libtorrent/test/test_peer_list.cpp:413,1
    - Dst: auto::peer_info_struct
      Src: /src/libtorrent/test/test_peer_list.cpp:413,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:414,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:414,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:416,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:416,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:417,1
    - Dst: auto::peer_info_struct
      Src: /src/libtorrent/test/test_peer_list.cpp:417,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 419
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - auto::peer_info_struct
    - peer_list::update_peer_port
    - peer_list::add_peer
    - std::make_shared<mock_peer_connection>
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ep
    - peer_list::new_connection
    - peer_list::num_connect_candidates
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(update_peer_port_collide)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:424,1
    - Dst: static_cast<mock_peer_connection*>
      Src: /src/libtorrent/test/test_peer_list.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - lt::peer_connection_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: shared_from_this
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 2
    functionsReached:
    - static_cast<mock_peer_connection*>
    - std::static_pointer_cast<mock_peer_connection>
    linkageType: ''
    returnType: std::shared_ptr<mock_peer_connection>
    signature: std::shared_ptr<mock_peer_connection> shared_from_this(lt::peer_connection_interface*
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:424,1
    - Dst: static_cast<mock_peer_connection*>
      Src: /src/libtorrent/test/test_peer_list.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - lt::peer_connection_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: shared_from_this
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 2
    functionsReached:
    - static_cast<mock_peer_connection*>
    - std::static_pointer_cast<mock_peer_connection>
    linkageType: ''
    returnType: std::shared_ptr<mock_peer_connection>
    signature: std::shared_ptr<mock_peer_connection> shared_from_this(lt::peer_connection_interface*
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:432,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:439,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:439,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:440,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:440,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:442,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:444,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:445,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:447,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:448,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:448,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:449,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:450,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:450,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_peer_list.cpp:454,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:454,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:454,1
    - Dst: peer_list::apply_ip_filter
      Src: /src/libtorrent/test/test_peer_list.cpp:456,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:458,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:458,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:459,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:459,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:460,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:460,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:461,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_peer_list.cpp:461,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:462,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:462,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:463,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:463,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:464,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 465
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - init_state
    - TEST_EQUAL
    - torrent_state::erased::size
    - connect_peer
    - std::vector::size
    - add_peer
    - peer_list::num_peers
    - ep
    - ip_filter::add_rule
    - peer_list::apply_ip_filter
    - peer_list::num_connect_candidates
    - addr4
    - auto::was_disconnected
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ip_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:470,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:477,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:477,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:478,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:478,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:480,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:482,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:483,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:485,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:486,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:486,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:487,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:488,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:488,1
    - Dst: port_filter::add_rule
      Src: /src/libtorrent/test/test_peer_list.cpp:492,1
    - Dst: peer_list::apply_port_filter
      Src: /src/libtorrent/test/test_peer_list.cpp:494,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:496,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:496,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:497,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:497,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:498,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:499,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_peer_list.cpp:499,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:500,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:500,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:501,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:501,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:502,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 503
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - init_state
    - TEST_EQUAL
    - torrent_state::erased::size
    - connect_peer
    - std::vector::size
    - port_filter::add_rule
    - add_peer
    - peer_list::num_peers
    - ep
    - peer_list::apply_port_filter
    - peer_list::num_connect_candidates
    - auto::was_disconnected
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(port_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:508,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:514,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:514,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:516,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:516,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:517,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:517,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:518,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:519,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:519,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:520,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:520,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:521,1
    - Dst: peer_list::ban_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:524,1
    - Dst: auto::peer_info_struct
      Src: /src/libtorrent/test/test_peer_list.cpp:524,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:525,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:526,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:528,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:528,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:530,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:530,1
    - Dst: peer_list::connection_closed
      Src: /src/libtorrent/test/test_peer_list.cpp:532,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:533,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:533,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:534,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:534,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:535,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:537,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:537,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:538,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:540,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:541,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:541,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 543
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - auto::peer_info_struct
    - add_peer
    - std::make_shared<mock_peer_connection>
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ep
    - peer_list::connection_closed
    - peer_list::new_connection
    - peer_list::num_connect_candidates
    - peer_list::ban_peer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ban_peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:548,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:557,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:557,1
    - Dst: rand_tcp_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:558,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:559,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:560,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:561,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_peer_list.cpp:563,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_peer_list.cpp:565,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:565,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/test/test_peer_list.cpp:565,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:566,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:569,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:569,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:572,1
    - Dst: rand_tcp_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:572,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:575,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 576
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - torrent_state::erased::size
    - peer_list::add_peer
    - add_peer
    - peer_list::num_peers
    - print_endpoint
    - static_cast<void*>
    - rand_tcp_ep
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(erase_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:581,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:590,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_peer_list.cpp:590,1
    - Dst: address_v4
      Src: /src/libtorrent/test/test_peer_list.cpp:591,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_peer_list.cpp:591,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:592,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:592,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:593,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:595,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:595,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:596,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:596,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_peer_list.cpp:600,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:600,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:600,1
    - Dst: peer_list::apply_ip_filter
      Src: /src/libtorrent/test/test_peer_list.cpp:601,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:602,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:602,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:603,1
    - Dst: address
      Src: /src/libtorrent/test/test_peer_list.cpp:603,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:603,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:604,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:604,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:605,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 606
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - torrent_state::erased::size
    - address
    - peer_list::add_peer
    - std::uint32_t
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ip_filter::add_rule
    - local_endpoint
    - peer_list::apply_ip_filter
    - peer_list::num_connect_candidates
    - address_v4
    - addr4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_ip_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:611,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:620,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_peer_list.cpp:620,1
    - Dst: address_v4
      Src: /src/libtorrent/test/test_peer_list.cpp:621,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_peer_list.cpp:621,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_peer_list.cpp:621,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:622,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:622,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:623,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:625,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:625,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:626,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:626,1
    - Dst: port_filter::add_rule
      Src: /src/libtorrent/test/test_peer_list.cpp:630,1
    - Dst: peer_list::apply_port_filter
      Src: /src/libtorrent/test/test_peer_list.cpp:631,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:632,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:632,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:633,1
    - Dst: address
      Src: /src/libtorrent/test/test_peer_list.cpp:633,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:633,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:634,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:635,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:635,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:636,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 637
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - torrent_state::erased::size
    - address
    - peer_list::add_peer
    - std::uint16_t
    - port_filter::add_rule
    - std::uint32_t
    - torrent_state::erased::clear
    - peer_list::num_peers
    - local_endpoint
    - peer_list::apply_port_filter
    - peer_list::num_connect_candidates
    - address_v4
    - addr4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_port_filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:642,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:650,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_peer_list.cpp:650,1
    - Dst: address_v4
      Src: /src/libtorrent/test/test_peer_list.cpp:651,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_peer_list.cpp:651,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_peer_list.cpp:651,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:652,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:652,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:653,1
    - Dst: peer_list::inc_failcount
      Src: /src/libtorrent/test/test_peer_list.cpp:655,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:657,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:657,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:658,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:658,1
    - Dst: peer_list::set_max_failcount
      Src: /src/libtorrent/test/test_peer_list.cpp:663,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:665,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:665,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:666,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 667
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - torrent_state::erased::size
    - peer_list::add_peer
    - std::uint16_t
    - peer_list::set_max_failcount
    - std::uint32_t
    - torrent_state::erased::clear
    - peer_list::num_peers
    - local_endpoint
    - peer_list::num_connect_candidates
    - peer_list::inc_failcount
    - address_v4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_max_failcount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:672,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:680,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_peer_list.cpp:680,1
    - Dst: address_v4
      Src: /src/libtorrent/test/test_peer_list.cpp:681,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_peer_list.cpp:681,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_peer_list.cpp:681,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:682,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:682,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:683,1
    - Dst: peer_list::set_seed
      Src: /src/libtorrent/test/test_peer_list.cpp:685,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:687,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:687,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:688,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:688,1
    - Dst: peer_list::connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:697,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:699,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:699,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:700,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 701
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - torrent_state::erased::size
    - peer_list::set_seed
    - peer_list::add_peer
    - std::uint16_t
    - peer_list::connect_one_peer
    - std::uint32_t
    - torrent_state::erased::clear
    - peer_list::num_peers
    - local_endpoint
    - peer_list::num_connect_candidates
    - address_v4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:706,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:713,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:713,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:714,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:714,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:716,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:716,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:717,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:717,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:719,1
    - Dst: peer_list::has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:719,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:720,1
    - Dst: peer_list::has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:720,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/test/test_peer_list.cpp:723,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:723,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:723,1
    - Dst: peer_list::apply_ip_filter
      Src: /src/libtorrent/test/test_peer_list.cpp:724,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:725,1
    - Dst: torrent_state::erased::size
      Src: /src/libtorrent/test/test_peer_list.cpp:725,1
    - Dst: torrent_state::erased::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:726,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:728,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:728,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:729,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:729,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:731,1
    - Dst: peer_list::has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:731,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:732,1
    - Dst: peer_list::has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 733
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - torrent_state::erased::size
    - add_peer
    - torrent_state::erased::clear
    - peer_list::num_peers
    - ep
    - ip_filter::add_rule
    - peer_list::has_peer
    - peer_list::apply_ip_filter
    - peer_list::num_connect_candidates
    - addr4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(has_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:738,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:745,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:745,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:746,1
    - Dst: peer_list::set_seed
      Src: /src/libtorrent/test/test_peer_list.cpp:747,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:748,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:748,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:749,1
    - Dst: peer_list::set_seed
      Src: /src/libtorrent/test/test_peer_list.cpp:750,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:751,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:751,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:752,1
    - Dst: peer_list::set_seed
      Src: /src/libtorrent/test/test_peer_list.cpp:753,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:754,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:754,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:755,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:756,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:756,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:757,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:759,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:759,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:760,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:760,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:767,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:769,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:769,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:771,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 736
    functionDepth: 3
    functionLinenumber: 736
    functionLinenumberEnd: 772
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - connect_peer
    - peer_list::set_seed
    - add_peer
    - peer_list::num_peers
    - ep
    - peer_list::num_connect_candidates
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(connect_candidates_finish)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:777,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:784,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:784,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:785,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:787,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:788,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:788,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:790,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:790,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:791,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:791,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:793,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:800,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:800,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:801,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 802
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - init_state
    - TEST_EQUAL
    - connect_peer
    - add_peer
    - std::make_shared<mock_peer_connection>
    - ep
    - auto::set_local_ep
    - peer_list::new_connection
    - auto::was_disconnected
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(self_connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:807,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:816,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:816,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:817,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:817,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:819,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:822,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:822,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:823,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:823,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:825,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:828,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:828,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:829,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 830
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - std::make_shared<mock_peer_connection>
    - ep
    - auto::set_local_ep
    - peer_list::new_connection
    - auto::was_disconnected
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(double_connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:835,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:844,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:844,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:845,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:847,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:848,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:848,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:851,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:851,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:852,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:852,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:854,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:857,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:857,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:858,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 859
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - init_state
    - TEST_EQUAL
    - connect_peer
    - add_peer
    - std::make_shared<mock_peer_connection>
    - ep
    - auto::set_local_ep
    - peer_list::new_connection
    - auto::was_disconnected
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(double_connection_loose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:868,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:877,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:877,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:878,1
    - Dst: static_cast<mock_peer_connection*>
      Src: /src/libtorrent/test/test_peer_list.cpp:880,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:881,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:881,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:884,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:884,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:885,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:885,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:887,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:890,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:891,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:894,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 896
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - init_state
    - connect_peer
    - static_cast<mock_peer_connection*>
    - add_peer
    - std::make_shared<mock_peer_connection>
    - ep
    - auto::set_local_ep
    - peer_list::new_connection
    - auto::was_disconnected
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(double_connection_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:901,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:910,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:910,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:911,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:913,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:914,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:914,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:917,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:917,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:918,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:918,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:920,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:923,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:923,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:924,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 925
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - init_state
    - TEST_EQUAL
    - connect_peer
    - add_peer
    - std::make_shared<mock_peer_connection>
    - ep
    - auto::set_local_ep
    - peer_list::new_connection
    - auto::was_disconnected
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(double_connection_win)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:931,1
    - Dst: add_i2p_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:938,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:939,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:941,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:945,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:948,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:955,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:955,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:956,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 929
    functionDepth: 3
    functionLinenumber: 929
    functionLinenumberEnd: 957
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - init_state
    - TEST_EQUAL
    - connect_peer
    - add_i2p_peer
    - std::make_shared<mock_peer_connection>
    - peer_list::new_connection
    - auto::was_disconnected
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(self_connection_i2p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:962,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:971,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:974,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:977,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:980,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:983,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:983,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:984,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 985
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - std::make_shared<mock_peer_connection>
    - peer_list::new_connection
    - auto::was_disconnected
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(double_connection_i2p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:990,1
    - Dst: add_i2p_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:999,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1000,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:1002,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:1006,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:1009,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1012,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:1012,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1013,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 988
    functionDepth: 3
    functionLinenumber: 988
    functionLinenumberEnd: 1014
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - init_state
    - TEST_EQUAL
    - connect_peer
    - add_i2p_peer
    - std::make_shared<mock_peer_connection>
    - peer_list::new_connection
    - auto::was_disconnected
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(double_connection_loose_i2p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:1019,1
    - Dst: add_i2p_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1029,1
    - Dst: connect_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1030,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_peer_list.cpp:1032,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:1036,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:1039,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1042,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:1042,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1043,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1044
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - init_state
    - TEST_EQUAL
    - connect_peer
    - add_i2p_peer
    - std::make_shared<mock_peer_connection>
    - peer_list::new_connection
    - auto::was_disconnected
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(double_connection_win_i2p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:1050,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1057,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1057,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1058,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1059,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1059,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1060,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1060,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1061,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1062,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1062,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1063,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1063,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1064,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1065,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1065,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1066,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1066,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1067,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1068,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1068,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1069,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1069,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1070,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1071,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1071,1
    - Dst: std::make_shared<mock_peer_connection>
      Src: /src/libtorrent/test/test_peer_list.cpp:1073,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1073,1
    - Dst: auto::set_local_ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1074,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1074,1
    - Dst: peer_list::new_connection
      Src: /src/libtorrent/test/test_peer_list.cpp:1078,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1080,1
    - Dst: auto::was_disconnected
      Src: /src/libtorrent/test/test_peer_list.cpp:1080,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1081,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1081,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1084,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1084,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1084,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1085,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1085,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1086,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1086,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1087,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1087,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1088,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1090
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - add_peer
    - std::make_shared<mock_peer_connection>
    - peer_list::num_peers
    - ep
    - auto::set_local_ep
    - has_peer
    - peer_list::new_connection
    - auto::was_disconnected
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(incoming_size_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:1095,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1102,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1102,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1104,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1104,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1105,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1105,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1107,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1107,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1108,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1109,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1110,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1110,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1111,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1111,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1112,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1113,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1113,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1114,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1116,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1116,1
    - Dst: peer_list::add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1117,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1119,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1122,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1122,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1122,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1123,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1123,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1124,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1124,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1125,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1125,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1126,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1126,1
    - Dst: has_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1127,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1129
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - peer_list::add_peer
    - add_peer
    - peer_list::num_peers
    - ep
    - has_peer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(new_peer_size_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1134,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1135,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1136,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1136,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1137,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1138,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1138,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1139,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1141,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1141,1
    - Dst: addr
      Src: /src/libtorrent/test/test_peer_list.cpp:1141,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1142,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1142,1
    - Dst: addr
      Src: /src/libtorrent/test/test_peer_list.cpp:1142,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1143,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1143,1
    - Dst: addr
      Src: /src/libtorrent/test/test_peer_list.cpp:1143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1145,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1145,1
    - Dst: addr
      Src: /src/libtorrent/test/test_peer_list.cpp:1145,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1146,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1146,1
    - Dst: addr
      Src: /src/libtorrent/test/test_peer_list.cpp:1146,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1147,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1147,1
    - Dst: addr
      Src: /src/libtorrent/test/test_peer_list.cpp:1147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1154,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1154,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1155,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1156,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1156,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1157,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1157,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1160,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1161,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1162,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1162,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1163,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1166,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1166,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:1166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1167,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1167,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:1167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1168,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1168,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:1168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1169,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1169,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:1169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1172,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1172,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:1172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1173,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1173,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:1173,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1174,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1174,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:1174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1175,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1175,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_peer_list.cpp:1175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1178,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1178,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1179,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1180,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1181,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1183,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1184,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1184,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1185,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1185,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1186,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1187,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1187,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1189,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1189,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1190,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1191,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1192,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1193,1
    - Dst: cmp
      Src: /src/libtorrent/test/test_peer_list.cpp:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1131
    functionDepth: 2
    functionLinenumber: 1131
    functionLinenumberEnd: 1195
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - cmp
    - ep
    - addr
    - addr4
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(peer_info_comparison)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_peer_list.cpp:1201,1
    - Dst: peer_info::set_i2p_destination
      Src: /src/libtorrent/test/test_peer_list.cpp:1202,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_peer_list.cpp:1202,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_peer_list.cpp:1204,1
    - Dst: peer_info::i2p_destination
      Src: /src/libtorrent/test/test_peer_list.cpp:1204,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_peer_list.cpp:1204,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_peer_list.cpp:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1206
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - peer_info::i2p_destination
    - sha256_hash
    - peer_info::set_i2p_destination
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(peer_info_set_i2p_destination)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_state
      Src: /src/libtorrent/test/test_peer_list.cpp:1211,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1217,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1218,1
    - Dst: peer_list::set_seed
      Src: /src/libtorrent/test/test_peer_list.cpp:1219,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1221,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1221,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1222,1
    - Dst: add_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1224,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_list.cpp:1224,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_peer_list.cpp:1225,1
    - Dst: peer_list::connect_one_peer
      Src: /src/libtorrent/test/test_peer_list.cpp:1227,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1229,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1229,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1230,1
    - Dst: peer_list::num_candidate_cache
      Src: /src/libtorrent/test/test_peer_list.cpp:1230,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1231,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:1231,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1232,1
    - Dst: peer_list::num_seeds
      Src: /src/libtorrent/test/test_peer_list.cpp:1232,1
    - Dst: peer_list::clear
      Src: /src/libtorrent/test/test_peer_list.cpp:1234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1235,1
    - Dst: peer_list::num_peers
      Src: /src/libtorrent/test/test_peer_list.cpp:1235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1236,1
    - Dst: peer_list::num_candidate_cache
      Src: /src/libtorrent/test/test_peer_list.cpp:1236,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1237,1
    - Dst: peer_list::num_connect_candidates
      Src: /src/libtorrent/test/test_peer_list.cpp:1237,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_list.cpp:1238,1
    - Dst: peer_list::num_seeds
      Src: /src/libtorrent/test/test_peer_list.cpp:1238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1239
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_list.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - init_state
    - peer_list::num_candidate_cache
    - peer_list::set_seed
    - peer_list::clear
    - add_peer
    - peer_list::num_seeds
    - peer_list::num_peers
    - ep
    - peer_list::num_connect_candidates
    - peer_list::connect_one_peer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(clear_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' bwm'
    - ' torrent_bwc'
    - prio
    - ignore_limits
    - name
    argTypes:
    - aux::bandwidth_manager
    - aux::bandwidth_channel
    - int
    - bool
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: peer_connection
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void peer_connection(aux::bandwidth_manager& bwm\n\t\t, aux::bandwidth_channel&
      torrent_bwc, int prio, bool ignore_limits, std::string name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: is_disconnecting
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_disconnecting() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: throttle
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 1
    functionsReached:
    - throttle
    linkageType: ''
    returnType: void
    signature: void throttle(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:102,1
    - Dst: peer_connection::start
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: peer_connection::assign_bandwidth
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::start
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void peer_connection::assign_bandwidth(int /*channel*/, int amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::request_bandwidth
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:114,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: peer_connection::start
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 1
    functionsReached:
    - shared_from_this
    - peer_connection::request_bandwidth
    linkageType: ''
    returnType: void
    signature: void peer_connection::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:126,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:127,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:131,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' t1'
    - ' t2'
    - limit
    argTypes:
    - aux::bandwidth_channel
    - aux::bandwidth_channel
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: do_change_rate
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - throttle
    linkageType: ''
    returnType: void
    signature: void do_change_rate(aux::bandwidth_channel& t1, aux::bandwidth_channel&
      t2, int limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:141,1
    - Dst: end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:141,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:142,1
    - Dst: begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:147,1
    - Dst: end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:147,1
    - Dst: connections_t::iterator::get
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' v'
    - limit
    argTypes:
    - connections_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: do_change_peer_rate
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - begin
    - connections_t::iterator::get
    - end
    - std::for_each
    linkageType: ''
    returnType: void
    signature: void do_change_peer_rate(connections_t& v, int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: nop
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:159,1
    - Dst: begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:159,1
    - Dst: end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:159,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:160,1
    - Dst: lt::aux::session_settings::get_int
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:163,1
    - Dst: update_quotas
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:167,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:167,1
    - Dst: f
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' v'
    - ' manager'
    argTypes:
    - connections_t
    - aux::bandwidth_manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: run_test
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 4
    functionsReached:
    - std::bind
    - begin
    - lt::aux::session_settings::get_int
    - update_quotas
    - end
    - f
    - milliseconds
    - std::for_each
    linkageType: ''
    returnType: void
    signature: "void run_test(connections_t& v\n\t, aux::bandwidth_manager& manager\n\t,
      std::function<void()> f = &nop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - comp
    - err
    argTypes:
    - float
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: close_to
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::abs
    linkageType: ''
    returnType: bool
    signature: bool close_to(float const val, float const comp, float const err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:183,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:184,1
    - Dst: std::make_shared<peer_connection>
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' v'
    - ' bwm'
    - ' bwc'
    - num
    - prefix
    argTypes:
    - connections_t
    - aux::bandwidth_manager
    - aux::bandwidth_channel
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: spawn_connections
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::make_shared<peer_connection>
    - std::snprintf
    linkageType: ''
    returnType: void
    signature: "void spawn_connections(connections_t& v, aux::bandwidth_manager& bwm\n\t,
      aux::bandwidth_channel& bwc, int num, char const* prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:192,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:197,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:198,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:201,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:202,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:209,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:213,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:214,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - num
    - limit
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 215
    functionName: test_equal_connections
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::end
    - connections_t::begin
    - std::max
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_equal_connections(int num, int limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:224,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:228,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:231,1
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:232,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:232,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:232,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:233,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:235,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:235,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:236,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:243,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:250,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:254,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:255,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - num
    - limit
    - torrent_limit
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 256
    functionName: test_connections_variable_rate
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - spawn_connections
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - std::ref
    - connections_t::begin
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - std::for_each
    linkageType: ''
    returnType: void
    signature: void test_connections_variable_rate(int num, int limit, int torrent_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:263,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:266,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:268,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:271,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:272,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:275,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:276,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:283,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - limit
    - torrent_limit
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 284
    functionName: test_single_peer
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - connections_t::begin
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_single_peer(int limit, bool torrent_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:293,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:298,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:299,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:302,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:304,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:306,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:306,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:306,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:306,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:307,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:307,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:307,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:307,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:308,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:312,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:316,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:317,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:323,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:324,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:324,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:327,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:328,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:334,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:335,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - num
    - limit1
    - limit2
    - global_limit
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 336
    functionName: test_torrents
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - std::min
    - std::copy
    - connections_t::begin
    - std::back_inserter
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_torrents(int num, int limit1, int limit2, int global_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:344,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:349,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:350,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:353,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:355,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:357,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:357,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:357,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:357,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:358,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:358,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:358,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:358,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:360,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:360,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:360,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:360,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:366,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:367,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:373,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:374,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:374,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:377,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:378,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:384,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:385,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - num
    - limit
    - global_limit
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 386
    functionName: test_torrents_variable_rate
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - std::ref
    - std::copy
    - connections_t::begin
    - std::back_inserter
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_torrents_variable_rate(int num, int limit, int global_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:393,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:396,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:398,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:401,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:403,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:403,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:403,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:403,1
    - Dst: std::make_shared<peer_connection>
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:405,1
    - Dst: connections_t::push_back
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:406,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:407,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:410,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:411,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:417,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:418,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:418,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:422,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - limit
    - torrent_limit
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 423
    functionName: test_peer_priority
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::push_back
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - std::copy
    - connections_t::begin
    - std::make_shared<peer_connection>
    - std::back_inserter
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_peer_priority(int limit, bool torrent_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:432,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:437,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:439,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:439,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:439,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:439,1
    - Dst: std::make_shared<peer_connection>
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:441,1
    - Dst: connections_t::push_back
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:442,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:443,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:446,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:447,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:453,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:454,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:454,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:458,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 459
    functionName: test_no_starvation
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::push_back
    - connections_t::end
    - std::copy
    - connections_t::begin
    - std::make_shared<peer_connection>
    - std::back_inserter
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_no_starvation(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' bwm'
    - ' torrent_bwc'
    - prio
    - ignore_limits
    - name
    argTypes:
    - aux::bandwidth_manager
    - aux::bandwidth_channel
    - int
    - bool
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: peer_connection
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void peer_connection(aux::bandwidth_manager& bwm\n\t\t, aux::bandwidth_channel&
      torrent_bwc, int prio, bool ignore_limits, std::string name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: is_disconnecting
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_disconnecting() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: throttle
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 10
    functionsReached:
    - throttle
    linkageType: ''
    returnType: void
    signature: void throttle(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:102,1
    - Dst: peer_connection::start
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: peer_connection::assign_bandwidth
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::start
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void peer_connection::assign_bandwidth(int /*channel*/, int amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::request_bandwidth
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:114,1
    - Dst: shared_from_this
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: peer_connection::start
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 2
    functionsReached:
    - shared_from_this
    - peer_connection::request_bandwidth
    linkageType: ''
    returnType: void
    signature: void peer_connection::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:126,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:127,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:131,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' t1'
    - ' t2'
    - limit
    argTypes:
    - aux::bandwidth_channel
    - aux::bandwidth_channel
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: do_change_rate
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - throttle
    linkageType: ''
    returnType: void
    signature: void do_change_rate(aux::bandwidth_channel& t1, aux::bandwidth_channel&
      t2, int limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:141,1
    - Dst: end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:141,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:142,1
    - Dst: begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:147,1
    - Dst: end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:147,1
    - Dst: connections_t::iterator::get
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' v'
    - limit
    argTypes:
    - connections_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: do_change_peer_rate
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - begin
    - connections_t::iterator::get
    - end
    - std::for_each
    linkageType: ''
    returnType: void
    signature: void do_change_peer_rate(connections_t& v, int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: nop
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:159,1
    - Dst: begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:159,1
    - Dst: end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:159,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:160,1
    - Dst: lt::aux::session_settings::get_int
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:163,1
    - Dst: update_quotas
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:167,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:167,1
    - Dst: f
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' v'
    - ' manager'
    argTypes:
    - connections_t
    - aux::bandwidth_manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: run_test
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 11
    functionsReached:
    - std::bind
    - begin
    - lt::aux::session_settings::get_int
    - update_quotas
    - end
    - f
    - milliseconds
    - std::for_each
    linkageType: ''
    returnType: void
    signature: "void run_test(connections_t& v\n\t, aux::bandwidth_manager& manager\n\t,
      std::function<void()> f = &nop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - comp
    - err
    argTypes:
    - float
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: close_to
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 7
    functionsReached:
    - std::abs
    linkageType: ''
    returnType: bool
    signature: bool close_to(float const val, float const comp, float const err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:183,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:184,1
    - Dst: std::make_shared<peer_connection>
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' v'
    - ' bwm'
    - ' bwc'
    - num
    - prefix
    argTypes:
    - connections_t
    - aux::bandwidth_manager
    - aux::bandwidth_channel
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: spawn_connections
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 7
    functionsReached:
    - push_back
    - std::make_shared<peer_connection>
    - std::snprintf
    linkageType: ''
    returnType: void
    signature: "void spawn_connections(connections_t& v, aux::bandwidth_manager& bwm\n\t,
      aux::bandwidth_channel& bwc, int num, char const* prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:192,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:197,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:198,1
    - Dst: std::max
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:201,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:202,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:209,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:213,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:214,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - num
    - limit
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 215
    functionName: test_equal_connections
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::end
    - connections_t::begin
    - std::max
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_equal_connections(int num, int limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:224,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:228,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:231,1
    - Dst: std::for_each
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:232,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:232,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:232,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:233,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:235,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:235,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:236,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:243,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:250,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:254,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:255,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - num
    - limit
    - torrent_limit
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 256
    functionName: test_connections_variable_rate
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - spawn_connections
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - std::ref
    - connections_t::begin
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - std::for_each
    linkageType: ''
    returnType: void
    signature: void test_connections_variable_rate(int num, int limit, int torrent_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:263,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:266,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:268,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:271,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:272,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:275,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:276,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:283,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - limit
    - torrent_limit
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 284
    functionName: test_single_peer
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - connections_t::begin
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_single_peer(int limit, bool torrent_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:293,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:298,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:299,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:302,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:304,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:306,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:306,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:306,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:306,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:307,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:307,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:307,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:307,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:308,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:312,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:316,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:317,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:323,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:324,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:324,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:327,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:328,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:334,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:335,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - num
    - limit1
    - limit2
    - global_limit
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 336
    functionName: test_torrents
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - std::min
    - std::copy
    - connections_t::begin
    - std::back_inserter
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_torrents(int num, int limit1, int limit2, int global_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:344,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:349,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:350,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:353,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:355,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:357,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:357,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:357,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:357,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:358,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:358,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:358,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:358,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:360,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:360,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:360,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:360,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:366,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:367,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:373,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:374,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:374,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:377,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:378,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:384,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:385,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - num
    - limit
    - global_limit
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 386
    functionName: test_torrents_variable_rate
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - std::ref
    - std::copy
    - connections_t::begin
    - std::back_inserter
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_torrents_variable_rate(int num, int limit, int global_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:393,1
    - Dst: aux::bandwidth_channel::throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:396,1
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:398,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:401,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:403,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:403,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:403,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:403,1
    - Dst: std::make_shared<peer_connection>
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:405,1
    - Dst: connections_t::push_back
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:406,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:407,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:410,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:411,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:417,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:418,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:418,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:422,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - limit
    - torrent_limit
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 423
    functionName: test_peer_priority
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::push_back
    - connections_t::end
    - aux::bandwidth_channel::throttle
    - std::copy
    - connections_t::begin
    - std::make_shared<peer_connection>
    - std::back_inserter
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_peer_priority(int limit, bool torrent_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:432,1
    - Dst: spawn_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:437,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:439,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:439,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:439,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:439,1
    - Dst: std::make_shared<peer_connection>
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:441,1
    - Dst: connections_t::push_back
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:442,1
    - Dst: run_test
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:443,1
    - Dst: connections_t::begin
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:446,1
    - Dst: connections_t::end
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:447,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:453,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:454,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:454,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:458,1
    - Dst: close_to
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 459
    functionName: test_no_starvation
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - connections_t::push_back
    - connections_t::end
    - std::copy
    - connections_t::begin
    - std::make_shared<peer_connection>
    - std::back_inserter
    - throttle
    - close_to
    - run_test
    - TEST_CHECK
    - spawn_connections
    linkageType: ''
    returnType: void
    signature: void test_no_starvation(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:465,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:466,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:467,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:468,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:469,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:470,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:471,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:472,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:473,1
    - Dst: test_equal_connections
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 475
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - test_equal_connections
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(equal_connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_connections_variable_rate
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:479,1
    - Dst: test_connections_variable_rate
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:480,1
    - Dst: test_connections_variable_rate
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:481,1
    - Dst: test_connections_variable_rate
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:482,1
    - Dst: test_connections_variable_rate
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 484
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - test_connections_variable_rate
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(conn_var_rate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_torrents
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:488,1
    - Dst: test_torrents
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:489,1
    - Dst: test_torrents
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:490,1
    - Dst: test_torrents
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:491,1
    - Dst: test_torrents
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:492,1
    - Dst: test_torrents
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:493,1
    - Dst: test_torrents
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:494,1
    - Dst: test_torrents
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 496
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - test_torrents
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_torrents_variable_rate
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:500,1
    - Dst: test_torrents_variable_rate
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - test_torrents_variable_rate
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_var_rate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_single_peer
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:506,1
    - Dst: test_single_peer
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - test_single_peer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bandwidth_limiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer_priority
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:512,1
    - Dst: test_peer_priority
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 514
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - test_peer_priority
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(peer_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_starvation
      Src: /src/libtorrent/test/test_bandwidth_limiter.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_bandwidth_limiter.cpp
    functionUses: 0
    functionsReached:
    - test_no_starvation
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_starvation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::crc_optimal::process_block
      Src: /src/libtorrent/test/test_crc32.cpp:48,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/test/test_crc32.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: crc32c_buffer
    functionSourceFile: /src/libtorrent/test/test_crc32.cpp
    functionUses: 0
    functionsReached:
    - boost::crc_optimal::process_block
    - boost::crc_optimal::checksum
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t crc32c_buffer(char const* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::crc_optimal::process_block
      Src: /src/libtorrent/test/test_crc32.cpp:48,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/test/test_crc32.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: crc32c_buffer
    functionSourceFile: /src/libtorrent/test/test_crc32.cpp
    functionUses: 0
    functionsReached:
    - boost::crc_optimal::process_block
    - boost::crc_optimal::checksum
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t crc32c_buffer(char const* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/test/test_crc32.cpp:60,1
    - Dst: crc32c_32
      Src: /src/libtorrent/test/test_crc32.cpp:61,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_crc32.cpp:62,1
    - Dst: memcpy
      Src: /src/libtorrent/test/test_crc32.cpp:65,1
    - Dst: crc32c
      Src: /src/libtorrent/test/test_crc32.cpp:69,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_crc32.cpp:70,1
    - Dst: crc32c_buffer
      Src: /src/libtorrent/test/test_crc32.cpp:71,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_crc32.cpp:71,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_crc32.cpp:72,1
    - Dst: memcpy
      Src: /src/libtorrent/test/test_crc32.cpp:74,1
    - Dst: crc32c
      Src: /src/libtorrent/test/test_crc32.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_crc32.cpp:77,1
    - Dst: crc32c_buffer
      Src: /src/libtorrent/test/test_crc32.cpp:78,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_crc32.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_crc32.cpp:79,1
    - Dst: memcpy
      Src: /src/libtorrent/test/test_crc32.cpp:81,1
    - Dst: crc32c
      Src: /src/libtorrent/test/test_crc32.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_crc32.cpp:84,1
    - Dst: crc32c_buffer
      Src: /src/libtorrent/test/test_crc32.cpp:85,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_crc32.cpp:85,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_crc32.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_crc32.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 91
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_crc32.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - crc32c
    - memcpy
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - crc32c_32
    - reinterpret_cast<char const*>
    - crc32c_buffer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(crc32)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/libtorrent/test/test_gzip.cpp:45,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_gzip.cpp:45,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_gzip.cpp:46,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_gzip.cpp:46,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_gzip.cpp:47,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_gzip.cpp:48,1
    - Dst: inflate_gzip
      Src: /src/libtorrent/test/test_gzip.cpp:51,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_gzip.cpp:54,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_gzip.cpp:54,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_gzip.cpp:56,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_gzip.cpp:57,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_gzip.cpp:57,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_gzip.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_gzip.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_gzip.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - TEST_EQUAL
    - std::vector::size
    - std::vector::empty
    - combine_path
    - error_code::message
    - load_file
    - inflate_gzip
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(zeroes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/libtorrent/test/test_gzip.cpp:66,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_gzip.cpp:66,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_gzip.cpp:67,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_gzip.cpp:67,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_gzip.cpp:68,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_gzip.cpp:69,1
    - Dst: inflate_gzip
      Src: /src/libtorrent/test/test_gzip.cpp:72,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_gzip.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_gzip.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - combine_path
    - error_code::message
    - load_file
    - inflate_gzip
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(corrupt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/libtorrent/test/test_gzip.cpp:82,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_gzip.cpp:82,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_gzip.cpp:83,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_gzip.cpp:83,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_gzip.cpp:84,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_gzip.cpp:85,1
    - Dst: inflate_gzip
      Src: /src/libtorrent/test/test_gzip.cpp:88,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_gzip.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_gzip.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - combine_path
    - error_code::message
    - load_file
    - inflate_gzip
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflate_gzip
      Src: /src/libtorrent/test/test_gzip.cpp:99,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_gzip.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_gzip.cpp
    functionUses: 0
    functionsReached:
    - inflate_gzip
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/settings.cpp:62,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/settings.cpp:63,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/settings.cpp:64,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/settings.cpp:65,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/settings.cpp:66,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/settings.cpp:68,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/settings.cpp:69,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/settings.cpp:70,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/settings.cpp:71,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/settings.cpp:73,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/settings.cpp:76,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/settings.cpp:79,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/settings.cpp:83,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/settings.cpp:84,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/settings.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 92
    functionName: settings
    functionSourceFile: /src/libtorrent/test/settings.cpp
    functionUses: 68
    functionsReached:
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: lt::settings_pack
    signature: lt::settings_pack settings()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:50,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ip_voter.cpp:51,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:52,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:53,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ip_voter.cpp:56,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:57,1
    - Dst: external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' ipv'
    - ext_ip
    - voter
    argTypes:
    - ip_voter
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: cast_vote
    functionSourceFile: /src/libtorrent/test/test_ip_voter.cpp
    functionUses: 1
    functionsReached:
    - external_address
    - print_address
    - cast_vote
    - std::printf
    linkageType: ''
    returnType: bool
    signature: bool cast_vote(ip_voter& ipv, address ext_ip, address voter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:50,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ip_voter.cpp:51,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:52,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:53,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ip_voter.cpp:56,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:57,1
    - Dst: external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' ipv'
    - ext_ip
    - voter
    argTypes:
    - ip_voter
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: cast_vote
    functionSourceFile: /src/libtorrent/test/test_ip_voter.cpp
    functionUses: 2
    functionsReached:
    - external_address
    - print_address
    - cast_vote
    - std::printf
    linkageType: ''
    returnType: bool
    signature: bool cast_vote(ip_voter& ipv, address ext_ip, address voter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:68,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:72,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:74,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:74,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:75,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:76,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:76,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:79,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:79,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:79,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:80,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:82,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 83
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_voter.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - make_address_v4
    - ip_voter::external_address
    - init_rand_address
    - cast_vote
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:87,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:91,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:92,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:97,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:97,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:98,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:101,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:101,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:102,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:103,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:103,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:104,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:105,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:105,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:108,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_voter.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - make_address_v4
    - ip_voter::external_address
    - init_rand_address
    - cast_vote
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(two_ips)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:114,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:118,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:119,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:120,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:122,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:122,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:124,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:124,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:125,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:125,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:128,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:128,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:130,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:130,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:130,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:132,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:132,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:134,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:139,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:139,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:143,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:144,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:145,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:145,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:145,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:146,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:147,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:148,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:149,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:153,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:153,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 154
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_voter.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - make_address_v4
    - ip_voter::external_address
    - init_rand_address
    - cast_vote
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(one_ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:158,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:168,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:169,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:170,1
    - Dst: ip_voter::cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:173,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:173,1
    - Dst: ip_voter::cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:174,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:176,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_voter.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - make_address_v4
    - ip_voter::external_address
    - init_rand_address
    - ip_voter::cast_vote
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ip_voter_1)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:181,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:189,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:190,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:192,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:194,1
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_ip_voter.cpp:199,1
    - Dst: make_address_v6
      Src: /src/libtorrent/test/test_ip_voter.cpp:201,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:202,1
    - Dst: make_address_v6
      Src: /src/libtorrent/test/test_ip_voter.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:204,1
    - Dst: make_address_v6
      Src: /src/libtorrent/test/test_ip_voter.cpp:205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:206,1
    - Dst: ip_voter::cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:211,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_ip_voter.cpp:211,1
    - Dst: ip_voter::cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:212,1
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_ip_voter.cpp:213,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:215,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/test_ip_voter.cpp:215,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_ip_voter.cpp:216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:219,1
    - Dst: ip_voter::external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:219,1
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_ip_voter.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ip_voter.cpp:221,1
    - Dst: external_address
      Src: /src/libtorrent/test/test_ip_voter.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 222
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ip_voter.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - make_address_v4
    - supports_ipv6
    - rand_v6
    - init_rand_address
    - ip_voter::external_address
    - external_address
    - cast_vote
    - ip_voter::cast_vote
    - make_address_v6
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ip_voter_2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/test_ssl.cpp:105,1
    - Dst: peer_disconnected_alert*::error::category
      Src: /src/libtorrent/test/test_ssl.cpp:108,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/test/test_ssl.cpp:109,1
    - Dst: boost::asio::gnutls::error::get_stream_category
      Src: /src/libtorrent/test/test_ssl.cpp:110,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:113,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/test/test_ssl.cpp:117,1
    - Dst: peer_error_alert*::error::category
      Src: /src/libtorrent/test/test_ssl.cpp:122,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/test/test_ssl.cpp:123,1
    - Dst: boost::asio::gnutls::error::get_stream_category
      Src: /src/libtorrent/test/test_ssl.cpp:124,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_error_alert>
    - peer_disconnected_alert*::error::category
    - boost::asio::gnutls::error::get_stream_category
    - peer_error_alert*::error::category
    - boost::asio::gnutls::error::get_ssl_category
    - alert_cast<peer_disconnected_alert>
    - std::printf
    linkageType: ''
    returnType: bool
    signature: bool on_alert(alert const* a)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/test/test_ssl.cpp:142,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:147,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_ssl.cpp:147,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_ssl.cpp:152,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_ssl.cpp:153,1
    - Dst: rand
      Src: /src/libtorrent/test/test_ssl.cpp:155,1
    - Dst: settings
      Src: /src/libtorrent/test/test_ssl.cpp:156,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_ssl.cpp:157,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_ssl.cpp:160,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_ssl.cpp:161,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:162,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:163,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:164,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:165,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:166,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:167,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:168,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:169,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_ssl.cpp:171,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_ssl.cpp:180,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_ssl.cpp:182,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_ssl.cpp:184,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_ssl.cpp:188,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_ssl.cpp:189,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_ssl.cpp:194,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_ssl.cpp:196,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:197,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:197,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_ssl.cpp:198,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_ssl.cpp:209,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_ssl.cpp:209,1
    - Dst: torrent_handle::set_ssl_certificate
      Src: /src/libtorrent/test/test_ssl.cpp:214,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:215,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:215,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:216,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:216,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:217,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:217,1
    - Dst: torrent_handle::set_ssl_certificate
      Src: /src/libtorrent/test/test_ssl.cpp:223,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:224,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:224,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:225,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:225,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:226,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:226,1
    - Dst: lt::session::listen_port
      Src: /src/libtorrent/test/test_ssl.cpp:235,1
    - Dst: lt::session::listen_port
      Src: /src/libtorrent/test/test_ssl.cpp:236,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_ssl.cpp:239,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_ssl.cpp:240,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:244,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_ssl.cpp:245,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/test_ssl.cpp:246,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_ssl.cpp:246,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_ssl.cpp:246,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_ssl.cpp:247,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:252,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:253,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_ssl.cpp:255,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_ssl.cpp:256,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_ssl.cpp:260,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:290,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:292,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_ssl.cpp:295,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_ssl.cpp:295,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:298,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:301,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:304,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:305,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_ssl.cpp:308,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:309,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:309,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:310,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:310,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_ssl.cpp:310,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:311,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_ssl.cpp:311,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_ssl.cpp:314,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_ssl.cpp:315,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 2
    argNames:
    - test_idx
    - use_utp
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 316
    functionName: test_ssl
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - libtorrent::aux::set_utp_stream_logging
    - wait_for_downloading
    - torrent_handle::connect_peer
    - lt::session::listen_port
    - torrent_handle::status
    - rand
    - torrent_handle::set_ssl_certificate
    - wait_for_listen
    - std::uint16_t
    - print_alerts
    - setup_transfer
    - make_address
    - settings_pack::set_bool
    - std::printf
    - TEST_EQUAL
    - std::snprintf
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - std::ofstream::close
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - std::tie
    - std::string::c_str
    - wait_for_alert
    - time_now_string
    - settings_pack::set_str
    - local_endpoint
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void test_ssl(int const test_idx, bool const use_utp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:359,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:360,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:361,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:362,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:364,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:365,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:366,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:368,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:369,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:371,1
    - Dst: context::set_options
      Src: /src/libtorrent/test/test_ssl.cpp:381,1
    - Dst: context::set_verify_mode
      Src: /src/libtorrent/test/test_ssl.cpp:388,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:391,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:392,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:393,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:397,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:397,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:398,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:398,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:399,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:399,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:403,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:403,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:404,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:404,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:411,1
    - Dst: context::set_password_callback
      Src: /src/libtorrent/test/test_ssl.cpp:412,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:417,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:418,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:419,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:422,1
    - Dst: context::use_certificate_file
      Src: /src/libtorrent/test/test_ssl.cpp:423,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:426,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:427,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:428,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:431,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:431,1
    - Dst: context::use_private_key_file
      Src: /src/libtorrent/test/test_ssl.cpp:432,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:435,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:436,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:437,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:440,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:440,1
    - Dst: context::use_tmp_dh_file
      Src: /src/libtorrent/test/test_ssl.cpp:441,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:444,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:445,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:446,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:453,1
    - Dst: ssl::stream::lowest_layer
      Src: /src/libtorrent/test/test_ssl.cpp:454,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_ssl.cpp:454,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ssl.cpp:455,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_ssl.cpp:455,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:456,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:460,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:461,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:462,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_ssl.cpp:468,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_ssl.cpp:468,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:469,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:469,1
    - Dst: libtorrent::ssl::set_host_name
      Src: /src/libtorrent/test/test_ssl.cpp:470,1
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/test/test_ssl.cpp:470,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:471,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/test/test_ssl.cpp:477,1
    - Dst: rand
      Src: /src/libtorrent/test/test_ssl.cpp:479,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:481,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:481,1
    - Dst: libtorrent::ssl::set_host_name
      Src: /src/libtorrent/test/test_ssl.cpp:482,1
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/test/test_ssl.cpp:482,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:483,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:486,1
    - Dst: ssl::stream::handshake
      Src: /src/libtorrent/test/test_ssl.cpp:487,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:489,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:492,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:493,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_ssl.cpp:505,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_ssl.cpp:505,1
    - Dst: std::generate
      Src: /src/libtorrent/test/test_ssl.cpp:511,1
    - Dst: std::generate
      Src: /src/libtorrent/test/test_ssl.cpp:515,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:517,1
    - Dst: write
      Src: /src/libtorrent/test/test_ssl.cpp:518,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_ssl.cpp:518,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:519,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:522,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:523,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:528,1
    - Dst: read
      Src: /src/libtorrent/test/test_ssl.cpp:529,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_ssl.cpp:529,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:530,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:533,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:534,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_ssl.cpp:538,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:540,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_ssl.cpp:544,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_ssl.cpp:544,1
    - Dst: data
      Src: /src/libtorrent/test/test_ssl.cpp:544,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:546,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:550,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 117
    argCount: 4
    argNames:
    - ' ses1'
    - port
    - ' t'
    - flags
    argTypes:
    - lt::session
    - int
    - std::shared_ptr<torrent_info>
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 553
    functionName: try_connect
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - write
    - info_hashes
    - libtorrent::ssl::get_handle
    - ssl::stream::handshake
    - ssl::stream::lowest_layer
    - data
    - context::set_options
    - rand
    - std::uint16_t
    - print_alerts
    - context::set_verify_mode
    - libtorrent::ssl::set_host_name
    - error_code::message
    - std::printf
    - libtorrent::aux::to_hex
    - std::generate
    - context::use_private_key_file
    - context::use_certificate_file
    - TEST_CHECK
    - std::memcpy
    - combine_path
    - memcmp
    - std::string::c_str
    - context::use_tmp_dh_file
    - read
    - context::set_password_callback
    - both_sides_from_store_buffer
    - local_endpoint
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool try_connect(lt::session& ses1, int port\n\t, std::shared_ptr<torrent_info>
      const& t, std::uint32_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove_all
      Src: /src/libtorrent/test/test_ssl.cpp:558,1
    - Dst: rand
      Src: /src/libtorrent/test/test_ssl.cpp:561,1
    - Dst: settings
      Src: /src/libtorrent/test/test_ssl.cpp:562,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_ssl.cpp:563,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_ssl.cpp:566,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_ssl.cpp:567,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:568,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:569,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:570,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:571,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_ssl.cpp:574,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_ssl.cpp:577,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_ssl.cpp:579,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:580,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:580,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_ssl.cpp:581,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:583,1
    - Dst: std::shared_ptr::ssl_cert
      Src: /src/libtorrent/test/test_ssl.cpp:583,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_ssl.cpp:591,1
    - Dst: torrent_handle::set_ssl_certificate
      Src: /src/libtorrent/test/test_ssl.cpp:593,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:594,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:594,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:595,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:595,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:596,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:596,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_ssl.cpp:599,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:601,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:604,1
    - Dst: alert*::type
      Src: /src/libtorrent/test/test_ssl.cpp:604,1
    - Dst: try_connect
      Src: /src/libtorrent/test/test_ssl.cpp:609,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 612
    functionName: test_malicious_peer
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::ssl_cert
    - rand
    - torrent_handle::set_ssl_certificate
    - wait_for_listen
    - settings_pack::set_bool
    - TEST_EQUAL
    - std::snprintf
    - create_directory
    - lt::session::add_torrent
    - try_connect
    - std::ofstream::close
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - wait_for_alert
    - settings_pack::set_str
    - settings
    - alert*::type
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void test_malicious_peer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/test_ssl.cpp:105,1
    - Dst: peer_disconnected_alert*::error::category
      Src: /src/libtorrent/test/test_ssl.cpp:108,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/test/test_ssl.cpp:109,1
    - Dst: boost::asio::gnutls::error::get_stream_category
      Src: /src/libtorrent/test/test_ssl.cpp:110,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:113,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/test/test_ssl.cpp:117,1
    - Dst: peer_error_alert*::error::category
      Src: /src/libtorrent/test/test_ssl.cpp:122,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/test/test_ssl.cpp:123,1
    - Dst: boost::asio::gnutls::error::get_stream_category
      Src: /src/libtorrent/test/test_ssl.cpp:124,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_error_alert>
    - peer_disconnected_alert*::error::category
    - boost::asio::gnutls::error::get_stream_category
    - peer_error_alert*::error::category
    - boost::asio::gnutls::error::get_ssl_category
    - alert_cast<peer_disconnected_alert>
    - std::printf
    linkageType: ''
    returnType: bool
    signature: bool on_alert(alert const* a)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/test/test_ssl.cpp:142,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:147,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_ssl.cpp:147,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_ssl.cpp:152,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_ssl.cpp:153,1
    - Dst: rand
      Src: /src/libtorrent/test/test_ssl.cpp:155,1
    - Dst: settings
      Src: /src/libtorrent/test/test_ssl.cpp:156,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_ssl.cpp:157,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_ssl.cpp:160,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_ssl.cpp:161,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:162,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:163,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:164,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:165,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:166,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:167,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:168,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:169,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_ssl.cpp:171,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_ssl.cpp:180,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_ssl.cpp:182,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_ssl.cpp:184,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_ssl.cpp:188,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_ssl.cpp:189,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_ssl.cpp:194,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_ssl.cpp:196,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:197,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:197,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_ssl.cpp:198,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_ssl.cpp:209,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_ssl.cpp:209,1
    - Dst: torrent_handle::set_ssl_certificate
      Src: /src/libtorrent/test/test_ssl.cpp:214,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:215,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:215,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:216,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:216,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:217,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:217,1
    - Dst: torrent_handle::set_ssl_certificate
      Src: /src/libtorrent/test/test_ssl.cpp:223,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:224,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:224,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:225,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:225,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:226,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:226,1
    - Dst: lt::session::listen_port
      Src: /src/libtorrent/test/test_ssl.cpp:235,1
    - Dst: lt::session::listen_port
      Src: /src/libtorrent/test/test_ssl.cpp:236,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_ssl.cpp:239,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_ssl.cpp:240,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:244,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_ssl.cpp:245,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/test_ssl.cpp:246,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_ssl.cpp:246,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_ssl.cpp:246,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_ssl.cpp:247,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:252,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:253,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_ssl.cpp:255,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_ssl.cpp:256,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_ssl.cpp:260,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:290,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:292,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_ssl.cpp:295,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_ssl.cpp:295,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:298,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:301,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:304,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:305,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_ssl.cpp:308,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:309,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:309,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:310,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:310,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_ssl.cpp:310,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:311,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_ssl.cpp:311,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_ssl.cpp:314,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_ssl.cpp:315,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 2
    argNames:
    - test_idx
    - use_utp
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 316
    functionName: test_ssl
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - libtorrent::aux::set_utp_stream_logging
    - wait_for_downloading
    - torrent_handle::connect_peer
    - lt::session::listen_port
    - torrent_handle::status
    - rand
    - torrent_handle::set_ssl_certificate
    - wait_for_listen
    - std::uint16_t
    - print_alerts
    - setup_transfer
    - make_address
    - settings_pack::set_bool
    - std::printf
    - TEST_EQUAL
    - std::snprintf
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - std::ofstream::close
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - std::tie
    - std::string::c_str
    - wait_for_alert
    - time_now_string
    - settings_pack::set_str
    - local_endpoint
    - settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void test_ssl(int const test_idx, bool const use_utp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:359,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:360,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:361,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:362,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:364,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:365,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:366,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:368,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:369,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:371,1
    - Dst: context::set_options
      Src: /src/libtorrent/test/test_ssl.cpp:381,1
    - Dst: context::set_verify_mode
      Src: /src/libtorrent/test/test_ssl.cpp:388,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:391,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:392,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:393,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:397,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:397,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:398,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:398,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:399,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:399,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:403,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:403,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:404,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:404,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:411,1
    - Dst: context::set_password_callback
      Src: /src/libtorrent/test/test_ssl.cpp:412,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:417,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:418,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:419,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:422,1
    - Dst: context::use_certificate_file
      Src: /src/libtorrent/test/test_ssl.cpp:423,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:426,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:427,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:428,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:431,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:431,1
    - Dst: context::use_private_key_file
      Src: /src/libtorrent/test/test_ssl.cpp:432,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:435,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:436,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:437,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:440,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:440,1
    - Dst: context::use_tmp_dh_file
      Src: /src/libtorrent/test/test_ssl.cpp:441,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:444,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:445,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:446,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:453,1
    - Dst: ssl::stream::lowest_layer
      Src: /src/libtorrent/test/test_ssl.cpp:454,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_ssl.cpp:454,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_ssl.cpp:455,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_ssl.cpp:455,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:456,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:460,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:461,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:462,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_ssl.cpp:468,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_ssl.cpp:468,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:469,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:469,1
    - Dst: libtorrent::ssl::set_host_name
      Src: /src/libtorrent/test/test_ssl.cpp:470,1
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/test/test_ssl.cpp:470,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:471,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/test/test_ssl.cpp:477,1
    - Dst: rand
      Src: /src/libtorrent/test/test_ssl.cpp:479,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:481,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_ssl.cpp:481,1
    - Dst: libtorrent::ssl::set_host_name
      Src: /src/libtorrent/test/test_ssl.cpp:482,1
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/test/test_ssl.cpp:482,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:483,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:486,1
    - Dst: ssl::stream::handshake
      Src: /src/libtorrent/test/test_ssl.cpp:487,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:489,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:492,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:493,1
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_ssl.cpp:505,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_ssl.cpp:505,1
    - Dst: std::generate
      Src: /src/libtorrent/test/test_ssl.cpp:511,1
    - Dst: std::generate
      Src: /src/libtorrent/test/test_ssl.cpp:515,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:517,1
    - Dst: write
      Src: /src/libtorrent/test/test_ssl.cpp:518,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_ssl.cpp:518,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:519,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:522,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:523,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:528,1
    - Dst: read
      Src: /src/libtorrent/test/test_ssl.cpp:529,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/test/test_ssl.cpp:529,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_ssl.cpp:530,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:533,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_ssl.cpp:534,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_ssl.cpp:538,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:540,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_ssl.cpp:544,1
    - Dst: info_hashes
      Src: /src/libtorrent/test/test_ssl.cpp:544,1
    - Dst: data
      Src: /src/libtorrent/test/test_ssl.cpp:544,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:546,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_ssl.cpp:550,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 117
    argCount: 4
    argNames:
    - ' ses1'
    - port
    - ' t'
    - flags
    argTypes:
    - lt::session
    - int
    - std::shared_ptr<torrent_info>
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 553
    functionName: try_connect
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 1
    functionsReached:
    - make_address_v4
    - write
    - info_hashes
    - libtorrent::ssl::get_handle
    - ssl::stream::handshake
    - ssl::stream::lowest_layer
    - data
    - context::set_options
    - rand
    - std::uint16_t
    - print_alerts
    - context::set_verify_mode
    - libtorrent::ssl::set_host_name
    - error_code::message
    - std::printf
    - libtorrent::aux::to_hex
    - std::generate
    - context::use_private_key_file
    - context::use_certificate_file
    - TEST_CHECK
    - std::memcpy
    - combine_path
    - memcmp
    - std::string::c_str
    - context::use_tmp_dh_file
    - read
    - context::set_password_callback
    - both_sides_from_store_buffer
    - local_endpoint
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool try_connect(lt::session& ses1, int port\n\t, std::shared_ptr<torrent_info>
      const& t, std::uint32_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove_all
      Src: /src/libtorrent/test/test_ssl.cpp:558,1
    - Dst: rand
      Src: /src/libtorrent/test/test_ssl.cpp:561,1
    - Dst: settings
      Src: /src/libtorrent/test/test_ssl.cpp:562,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_ssl.cpp:563,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_ssl.cpp:566,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_ssl.cpp:567,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:568,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:569,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:570,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_ssl.cpp:571,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_ssl.cpp:574,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_ssl.cpp:577,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_ssl.cpp:579,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:580,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:580,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_ssl.cpp:581,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:583,1
    - Dst: std::shared_ptr::ssl_cert
      Src: /src/libtorrent/test/test_ssl.cpp:583,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_ssl.cpp:591,1
    - Dst: torrent_handle::set_ssl_certificate
      Src: /src/libtorrent/test/test_ssl.cpp:593,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:594,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:594,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:595,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:595,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:596,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_ssl.cpp:596,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_ssl.cpp:599,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_ssl.cpp:601,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:604,1
    - Dst: alert*::type
      Src: /src/libtorrent/test/test_ssl.cpp:604,1
    - Dst: try_connect
      Src: /src/libtorrent/test/test_ssl.cpp:609,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_ssl.cpp:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 612
    functionName: test_malicious_peer
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::ssl_cert
    - rand
    - torrent_handle::set_ssl_certificate
    - wait_for_listen
    - settings_pack::set_bool
    - TEST_EQUAL
    - std::snprintf
    - create_directory
    - lt::session::add_torrent
    - try_connect
    - std::ofstream::close
    - TEST_CHECK
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - wait_for_alert
    - settings_pack::set_str
    - settings
    - alert*::type
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void test_malicious_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_malicious_peer
      Src: /src/libtorrent/test/test_ssl.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_malicious_peer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(malicious_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 621
    functionDepth: 4
    functionLinenumber: 621
    functionLinenumberEnd: 621
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 4
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 623
    functionDepth: 4
    functionLinenumber: 623
    functionLinenumberEnd: 623
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 624
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 625
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 626
    functionDepth: 4
    functionLinenumber: 626
    functionLinenumberEnd: 626
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 627
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 628
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 629
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_config8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 631
    functionDepth: 4
    functionLinenumber: 631
    functionLinenumberEnd: 631
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 632
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 633
    functionDepth: 4
    functionLinenumber: 633
    functionLinenumberEnd: 633
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 634
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 635
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 636
    functionDepth: 4
    functionLinenumber: 636
    functionLinenumberEnd: 636
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 637
    functionDepth: 4
    functionLinenumber: 637
    functionLinenumberEnd: 637
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ssl
      Src: /src/libtorrent/test/test_ssl.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 4
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached:
    - test_ssl
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tcp_config8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_ssl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_copy_file.cpp:57,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_copy_file.cpp:57,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_copy_file.cpp:59,1
    - Dst: std::ofstream
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' filename'
    - size
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: write_file
    functionSourceFile: /src/libtorrent/test/test_copy_file.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - c_str
    - std::vector::resize
    - std::size_t
    - std::ofstream
    - std::streamsize
    linkageType: ''
    returnType: void
    signature: void write_file(std::string const& filename, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/test/test_copy_file.cpp:69,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:70,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/test/test_copy_file.cpp:71,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:72,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_copy_file.cpp:76,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_copy_file.cpp:77,1
    - Dst: equal
      Src: /src/libtorrent/test/test_copy_file.cpp:79,1
    - Dst: it
      Src: /src/libtorrent/test/test_copy_file.cpp:79,1
    - Dst: it
      Src: /src/libtorrent/test/test_copy_file.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' file1'
    - ' file2'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: compare_files
    functionSourceFile: /src/libtorrent/test/test_copy_file.cpp
    functionUses: 0
    functionsReached:
    - it
    - c_str
    - equal
    - libtorrent::stat_file
    - TEST_CHECK
    linkageType: ''
    returnType: bool
    signature: bool compare_files(std::string const& file1, std::string const& file2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_copy_file.cpp:57,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_copy_file.cpp:57,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_copy_file.cpp:59,1
    - Dst: std::ofstream
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_copy_file.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' filename'
    - size
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: write_file
    functionSourceFile: /src/libtorrent/test/test_copy_file.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - c_str
    - std::vector::resize
    - std::size_t
    - std::ofstream
    - std::streamsize
    linkageType: ''
    returnType: void
    signature: void write_file(std::string const& filename, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/test/test_copy_file.cpp:69,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:70,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/test/test_copy_file.cpp:71,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:72,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_copy_file.cpp:76,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_copy_file.cpp:77,1
    - Dst: equal
      Src: /src/libtorrent/test/test_copy_file.cpp:79,1
    - Dst: it
      Src: /src/libtorrent/test/test_copy_file.cpp:79,1
    - Dst: it
      Src: /src/libtorrent/test/test_copy_file.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' file1'
    - ' file2'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: compare_files
    functionSourceFile: /src/libtorrent/test/test_copy_file.cpp
    functionUses: 0
    functionsReached:
    - it
    - c_str
    - equal
    - libtorrent::stat_file
    - TEST_CHECK
    linkageType: ''
    returnType: bool
    signature: bool compare_files(std::string const& file1, std::string const& file2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_file
      Src: /src/libtorrent/test/test_copy_file.cpp:86,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/test/test_copy_file.cpp:88,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:89,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:90,1
    - Dst: compare_files
      Src: /src/libtorrent/test/test_copy_file.cpp:90,1
    - Dst: write_file
      Src: /src/libtorrent/test/test_copy_file.cpp:92,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/test/test_copy_file.cpp:93,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:94,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:95,1
    - Dst: compare_files
      Src: /src/libtorrent/test/test_copy_file.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_copy_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::copy_file
    - TEST_CHECK
    - compare_files
    - write_file
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(basic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<std::mutex>
      Src: /src/libtorrent/test/test_copy_file.cpp:108,1
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/test/test_copy_file.cpp:112,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_copy_file.cpp:112,1
    - Dst: auto::range
      Src: /src/libtorrent/test/test_copy_file.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:118,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_copy_file.cpp:118,1
    - Dst: fs_supports_sparse_files
      Src: /src/libtorrent/test/test_copy_file.cpp:126,1
    - Dst: printf
      Src: /src/libtorrent/test/test_copy_file.cpp:127,1
    - Dst: ::GetCompressedFileSizeA
      Src: /src/libtorrent/test/test_copy_file.cpp:132,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:137,1
    - Dst: libtorrent::stat
      Src: /src/libtorrent/test/test_copy_file.cpp:137,1
    - Dst: printf
      Src: /src/libtorrent/test/test_copy_file.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:147,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/test/test_copy_file.cpp:151,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:152,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:157,1
    - Dst: ::GetFileAttributesExA
      Src: /src/libtorrent/test/test_copy_file.cpp:157,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_copy_file.cpp:167,1
    - Dst: ::GetCompressedFileSizeA
      Src: /src/libtorrent/test/test_copy_file.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:170,1
    - Dst: libtorrent::stat
      Src: /src/libtorrent/test/test_copy_file.cpp:170,1
    - Dst: printf
      Src: /src/libtorrent/test/test_copy_file.cpp:171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_copy_file.cpp:175,1
    - Dst: compare_files
      Src: /src/libtorrent/test/test_copy_file.cpp:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 176
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_copy_file.cpp
    functionUses: 0
    functionsReached:
    - fs_supports_sparse_files
    - TEST_EQUAL
    - auto::range
    - std::move
    - ::GetCompressedFileSizeA
    - printf
    - auto::size
    - libtorrent::stat
    - ::GetFileAttributesExA
    - std::make_shared<std::mutex>
    - libtorrent::aux::copy_file
    - std::make_shared<file_mapping>
    - compare_files
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sparse_file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:97,1
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:98,1
    - Dst: dup2
      Src: /src/libtorrent/test/main.cpp:101,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:101,1
    - Dst: dup2
      Src: /src/libtorrent/test/main.cpp:106,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:106,1
    - Dst: fseek
      Src: /src/libtorrent/test/main.cpp:110,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:111,1
    - Dst: fread
      Src: /src/libtorrent/test/main.cpp:115,1
    - Dst: fwrite
      Src: /src/libtorrent/test/main.cpp:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 118
    functionName: output_test_log_to_terminal
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - fseek
    - fflush
    - fread
    - fileno
    - fwrite
    - std::printf
    - dup2
    linkageType: ''
    returnType: void
    signature: void output_test_log_to_terminal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/test/main.cpp:129,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:132,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:134,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:142,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:143,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:144,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:145,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:146,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:147,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:148,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:149,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:150,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:151,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:152,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:153,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:154,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:155,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:156,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:157,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:158,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:159,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:160,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:161,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:165,1
    - Dst: output_test_log_to_terminal
      Src: /src/libtorrent/test/main.cpp:168,1
    - Dst: exit
      Src: /src/libtorrent/test/main.cpp:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - LPEXCEPTION_POINTERS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 171
    functionName: seh_exception_handler
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - exit
    - output_test_log_to_terminal
    - EXC
    - print_backtrace
    - std::printf
    - strcpy
    linkageType: ''
    returnType: LONG
    signature: LONG seh_exception_handler(LPEXCEPTION_POINTERS p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: EXC
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/test/main.cpp:183,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:185,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:187,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:193,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:195,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:197,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:198,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:199,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:200,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:201,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:203,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:207,1
    - Dst: output_test_log_to_terminal
      Src: /src/libtorrent/test/main.cpp:209,1
    - Dst: std::exit
      Src: /src/libtorrent/test/main.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 212
    functionName: sig_handler
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - output_test_log_to_terminal
    - std::exit
    - SIG
    - print_backtrace
    - std::printf
    - strcpy
    linkageType: ''
    returnType: void
    signature: void sig_handler(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: SIG
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/test/main.cpp:221,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:223,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:225,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:227,1
    - Dst: std::exit
      Src: /src/libtorrent/test/main.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: term_handler
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::exit
    - std::printf
    - print_backtrace
    - strcpy
    linkageType: ''
    returnType: void
    signature: void term_handler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - executable
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 247
    functionName: print_usage
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    linkageType: ''
    returnType: void
    signature: void print_usage(char const* executable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/test/main.cpp:251,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/main.cpp:253,1
    - Dst: SetCurrentDirectoryW
      Src: /src/libtorrent/test/main.cpp:256,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/main.cpp:256,1
    - Dst: assign
      Src: /src/libtorrent/test/main.cpp:257,1
    - Dst: GetLastError
      Src: /src/libtorrent/test/main.cpp:257,1
    - Dst: system_category
      Src: /src/libtorrent/test/main.cpp:257,1
    - Dst: ::chdir
      Src: /src/libtorrent/test/main.cpp:259,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/main.cpp:259,1
    - Dst: assign
      Src: /src/libtorrent/test/main.cpp:261,1
    - Dst: system_category
      Src: /src/libtorrent/test/main.cpp:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: change_directory
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ::chdir
    - assign
    - SetCurrentDirectoryW
    - convert_to_native_path_string
    - clear
    - GetLastError
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void change_directory(std::string const& f, error_code& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:97,1
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:98,1
    - Dst: dup2
      Src: /src/libtorrent/test/main.cpp:101,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:101,1
    - Dst: dup2
      Src: /src/libtorrent/test/main.cpp:106,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:106,1
    - Dst: fseek
      Src: /src/libtorrent/test/main.cpp:110,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:111,1
    - Dst: fread
      Src: /src/libtorrent/test/main.cpp:115,1
    - Dst: fwrite
      Src: /src/libtorrent/test/main.cpp:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 118
    functionName: output_test_log_to_terminal
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 2
    functionsReached:
    - fseek
    - fflush
    - fread
    - fileno
    - fwrite
    - std::printf
    - dup2
    linkageType: ''
    returnType: void
    signature: void output_test_log_to_terminal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/test/main.cpp:129,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:132,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:134,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:142,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:143,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:144,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:145,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:146,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:147,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:148,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:149,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:150,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:151,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:152,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:153,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:154,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:155,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:156,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:157,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:158,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:159,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:160,1
    - Dst: EXC
      Src: /src/libtorrent/test/main.cpp:161,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:165,1
    - Dst: output_test_log_to_terminal
      Src: /src/libtorrent/test/main.cpp:168,1
    - Dst: exit
      Src: /src/libtorrent/test/main.cpp:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - LPEXCEPTION_POINTERS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 171
    functionName: seh_exception_handler
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - exit
    - output_test_log_to_terminal
    - EXC
    - print_backtrace
    - std::printf
    - strcpy
    linkageType: ''
    returnType: LONG
    signature: LONG seh_exception_handler(LPEXCEPTION_POINTERS p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: EXC
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/test/main.cpp:183,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:185,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:187,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:193,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:195,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:197,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:198,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:199,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:200,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:201,1
    - Dst: SIG
      Src: /src/libtorrent/test/main.cpp:203,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:207,1
    - Dst: output_test_log_to_terminal
      Src: /src/libtorrent/test/main.cpp:209,1
    - Dst: std::exit
      Src: /src/libtorrent/test/main.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 212
    functionName: sig_handler
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - output_test_log_to_terminal
    - std::exit
    - SIG
    - print_backtrace
    - std::printf
    - strcpy
    linkageType: ''
    returnType: void
    signature: void sig_handler(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: SIG
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/test/main.cpp:221,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:223,1
    - Dst: strcpy
      Src: /src/libtorrent/test/main.cpp:225,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:227,1
    - Dst: std::exit
      Src: /src/libtorrent/test/main.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: term_handler
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::exit
    - std::printf
    - print_backtrace
    - strcpy
    linkageType: ''
    returnType: void
    signature: void term_handler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - executable
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 247
    functionName: print_usage
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    linkageType: ''
    returnType: void
    signature: void print_usage(char const* executable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/test/main.cpp:251,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/main.cpp:253,1
    - Dst: SetCurrentDirectoryW
      Src: /src/libtorrent/test/main.cpp:256,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/main.cpp:256,1
    - Dst: assign
      Src: /src/libtorrent/test/main.cpp:257,1
    - Dst: GetLastError
      Src: /src/libtorrent/test/main.cpp:257,1
    - Dst: system_category
      Src: /src/libtorrent/test/main.cpp:257,1
    - Dst: ::chdir
      Src: /src/libtorrent/test/main.cpp:259,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/test/main.cpp:259,1
    - Dst: assign
      Src: /src/libtorrent/test/main.cpp:261,1
    - Dst: system_category
      Src: /src/libtorrent/test/main.cpp:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: change_directory
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ::chdir
    - assign
    - SetCurrentDirectoryW
    - convert_to_native_path_string
    - clear
    - GetLastError
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void change_directory(std::string const& f, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/test/main.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: unit_directory_guard
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void unit_directory_guard(std::string d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: unit_directory_guard
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unit_directory_guard(unit_directory_guard const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: '& operator=(unit_directory_guard const&)'
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unit_directory_guard
    signature: unit_directory_guard & operator=(unit_directory_guard const&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parent_path
      Src: /src/libtorrent/test/main.cpp:276,1
    - Dst: change_directory
      Src: /src/libtorrent/test/main.cpp:278,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/main.cpp:281,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/main.cpp:281,1
    - Dst: remove_all
      Src: /src/libtorrent/test/main.cpp:284,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/main.cpp:286,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/main.cpp:290,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/main.cpp:290,1
    - Dst: remove_all
      Src: /src/libtorrent/test/main.cpp:291,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/main.cpp:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: ~unit_directory_guard()
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - remove_all
    - std::this_thread::sleep_for
    - parent_path
    - milliseconds
    - error_code::message
    - change_directory
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void ~unit_directory_guard()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:305,1
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:306,1
    - Dst: rewind
      Src: /src/libtorrent/test/main.cpp:307,1
    - Dst: _chsize
      Src: /src/libtorrent/test/main.cpp:309,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:309,1
    - Dst: ftruncate
      Src: /src/libtorrent/test/main.cpp:311,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:311,1
    - Dst: strerror
      Src: /src/libtorrent/test/main.cpp:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 318
    functionName: unit_test::reset_output
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - strerror
    - ftruncate
    - rewind
    - _chsize
    - fileno
    linkageType: ''
    returnType: void
    signature: void reset_output()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:305,1
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:306,1
    - Dst: rewind
      Src: /src/libtorrent/test/main.cpp:307,1
    - Dst: _chsize
      Src: /src/libtorrent/test/main.cpp:309,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:309,1
    - Dst: ftruncate
      Src: /src/libtorrent/test/main.cpp:311,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:311,1
    - Dst: strerror
      Src: /src/libtorrent/test/main.cpp:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 318
    functionName: unit_test::reset_output
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - fflush
    - strerror
    - ftruncate
    - rewind
    - _chsize
    - fileno
    linkageType: ''
    returnType: void
    signature: void reset_output()
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: print_usage
      Src: /src/libtorrent/test/main.cpp:334,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:340,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:343,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/main.cpp:372,1
    - Dst: fcntl
      Src: /src/libtorrent/test/main.cpp:380,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:380,1
    - Dst: fcntl
      Src: /src/libtorrent/test/main.cpp:381,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:381,1
    - Dst: fcntl
      Src: /src/libtorrent/test/main.cpp:382,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:382,1
    - Dst: fcntl
      Src: /src/libtorrent/test/main.cpp:383,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:383,1
    - Dst: SetErrorMode
      Src: /src/libtorrent/test/main.cpp:389,1
    - Dst: SetUnhandledExceptionFilter
      Src: /src/libtorrent/test/main.cpp:392,1
    - Dst: _CrtSetReportMode
      Src: /src/libtorrent/test/main.cpp:395,1
    - Dst: _CrtSetReportFile
      Src: /src/libtorrent/test/main.cpp:396,1
    - Dst: std::set_terminate
      Src: /src/libtorrent/test/main.cpp:401,1
    - Dst: signal
      Src: /src/libtorrent/test/main.cpp:403,1
    - Dst: signal
      Src: /src/libtorrent/test/main.cpp:405,1
    - Dst: signal
      Src: /src/libtorrent/test/main.cpp:407,1
    - Dst: signal
      Src: /src/libtorrent/test/main.cpp:408,1
    - Dst: signal
      Src: /src/libtorrent/test/main.cpp:409,1
    - Dst: signal
      Src: /src/libtorrent/test/main.cpp:410,1
    - Dst: signal
      Src: /src/libtorrent/test/main.cpp:412,1
    - Dst: _getpid
      Src: /src/libtorrent/test/main.cpp:417,1
    - Dst: getpid
      Src: /src/libtorrent/test/main.cpp:419,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/main.cpp:421,1
    - Dst: combine_path
      Src: /src/libtorrent/test/main.cpp:422,1
    - Dst: to_string
      Src: /src/libtorrent/test/main.cpp:422,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:423,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/main.cpp:423,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:427,1
    - Dst: dup
      Src: /src/libtorrent/test/main.cpp:431,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:431,1
    - Dst: dup
      Src: /src/libtorrent/test/main.cpp:432,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:432,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/main.cpp:437,1
    - Dst: to_string
      Src: /src/libtorrent/test/main.cpp:440,1
    - Dst: create_directory
      Src: /src/libtorrent/test/main.cpp:442,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:445,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/main.cpp:445,1
    - Dst: output_test_log_to_terminal
      Src: /src/libtorrent/test/main.cpp:446,1
    - Dst: change_directory
      Src: /src/libtorrent/test/main.cpp:450,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:453,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/main.cpp:453,1
    - Dst: output_test_log_to_terminal
      Src: /src/libtorrent/test/main.cpp:454,1
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:463,1
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:464,1
    - Dst: tmpfile
      Src: /src/libtorrent/test/main.cpp:465,1
    - Dst: dup2
      Src: /src/libtorrent/test/main.cpp:469,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:469,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:469,1
    - Dst: dup2
      Src: /src/libtorrent/test/main.cpp:470,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:470,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:470,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:477,1
    - Dst: strerror
      Src: /src/libtorrent/test/main.cpp:478,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:483,1
    - Dst: strerror
      Src: /src/libtorrent/test/main.cpp:484,1
    - Dst: setbuf
      Src: /src/libtorrent/test/main.cpp:489,1
    - Dst: setbuf
      Src: /src/libtorrent/test/main.cpp:490,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:495,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/main.cpp:495,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:496,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/test/main.cpp:498,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:499,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/main.cpp:499,1
    - Dst: std::srand
      Src: /src/libtorrent/test/main.cpp:506,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/test/main.cpp:507,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/main.cpp:516,1
    - Dst: code
      Src: /src/libtorrent/test/main.cpp:517,1
    - Dst: code
      Src: /src/libtorrent/test/main.cpp:518,1
    - Dst: code
      Src: /src/libtorrent/test/main.cpp:519,1
    - Dst: unit_test::report_failure
      Src: /src/libtorrent/test/main.cpp:520,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/main.cpp:525,1
    - Dst: what
      Src: /src/libtorrent/test/main.cpp:525,1
    - Dst: unit_test::report_failure
      Src: /src/libtorrent/test/main.cpp:526,1
    - Dst: unit_test::report_failure
      Src: /src/libtorrent/test/main.cpp:530,1
    - Dst: std::set::empty
      Src: /src/libtorrent/test/main.cpp:534,1
    - Dst: std::set::erase
      Src: /src/libtorrent/test/main.cpp:534,1
    - Dst: output_test_log_to_terminal
      Src: /src/libtorrent/test/main.cpp:538,1
    - Dst: fclose
      Src: /src/libtorrent/test/main.cpp:546,1
    - Dst: dup2
      Src: /src/libtorrent/test/main.cpp:549,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:549,1
    - Dst: dup2
      Src: /src/libtorrent/test/main.cpp:550,1
    - Dst: fileno
      Src: /src/libtorrent/test/main.cpp:550,1
    - Dst: std::set::empty
      Src: /src/libtorrent/test/main.cpp:552,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:554,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/main.cpp:555,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/main.cpp:556,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:558,1
    - Dst: std::set<std::string>::iterator::c_str
      Src: /src/libtorrent/test/main.cpp:558,1
    - Dst: std::printf
      Src: /src/libtorrent/test/main.cpp:564,1
    - Dst: output_test_log_to_terminal
      Src: /src/libtorrent/test/main.cpp:565,1
    - Dst: stop_udp_tracker
      Src: /src/libtorrent/test/main.cpp:571,1
    - Dst: stop_all_proxies
      Src: /src/libtorrent/test/main.cpp:572,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/main.cpp:573,1
    - Dst: stop_peer
      Src: /src/libtorrent/test/main.cpp:574,1
    - Dst: stop_dht
      Src: /src/libtorrent/test/main.cpp:575,1
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:577,1
    - Dst: fflush
      Src: /src/libtorrent/test/main.cpp:578,1
    - Dst: unit_test::print_failures
      Src: /src/libtorrent/test/main.cpp:580,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 148
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 581
    functionName: main
    functionSourceFile: /src/libtorrent/test/main.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - stop_dht
    - output_test_log_to_terminal
    - stop_udp_tracker
    - unit_test::report_failure
    - stop_peer
    - fileno
    - std::set::empty
    - fcntl
    - dup2
    - std::set::insert
    - signal
    - std::set<std::string>::iterator::c_str
    - SetUnhandledExceptionFilter
    - Catch::Generators::random
    - fflush
    - unit_test::print_failures
    - std::set::begin
    - error_code::message
    - change_directory
    - stop_web_server
    - std::srand
    - std::printf
    - what
    - current_working_directory
    - _getpid
    - std::snprintf
    - dup
    - setbuf
    - create_directory
    - std::set_terminate
    - fclose
    - libtorrent::aux::random_engine
    - combine_path
    - stop_all_proxies
    - std::string::c_str
    - tmpfile
    - _CrtSetReportMode
    - std::set::count
    - strerror
    - code
    - _CrtSetReportFile
    - std::set::erase
    - std::set::end
    - print_usage
    - getpid
    - SetErrorMode
    linkageType: ''
    returnType: int
    signature: int main(int argc, char const* argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:48,1
    - Dst: get_bit
      Src: /src/libtorrent/test/test_merkle.cpp:48,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:50,1
    - Dst: get_bit
      Src: /src/libtorrent/test/test_merkle.cpp:50,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' bits'
    - str
    argTypes:
    - bitfield
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: compare_bits
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - get_bit
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void compare_bits(bitfield const& bits, char const* str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:48,1
    - Dst: get_bit
      Src: /src/libtorrent/test/test_merkle.cpp:48,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:50,1
    - Dst: get_bit
      Src: /src/libtorrent/test/test_merkle.cpp:50,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' bits'
    - str
    argTypes:
    - bitfield
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: compare_bits
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - get_bit
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void compare_bits(bitfield const& bits, char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:68,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:68,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:69,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:69,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:70,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:71,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:71,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:72,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:72,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:73,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:73,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:74,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:75,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:76,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:77,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:77,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:78,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:78,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:79,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:80,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:80,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:81,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:81,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:82,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:83,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:84,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:84,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:85,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/test/test_merkle.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 86
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_num_leafs
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(num_leafs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:91,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:91,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:92,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:93,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:93,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:94,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:95,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:95,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:96,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:96,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:97,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:98,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:99,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:100,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:101,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:102,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:103,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:104,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/test/test_merkle.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_get_parent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:110,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:110,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:111,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:112,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:112,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:113,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:114,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:115,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:116,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:116,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:117,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:118,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:119,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:120,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:120,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:121,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:121,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:122,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:123,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/test/test_merkle.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_get_sibling
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:129,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_merkle.cpp:129,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:130,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_merkle.cpp:130,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:131,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_merkle.cpp:131,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:132,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_merkle.cpp:132,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:133,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/test/test_merkle.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_num_nodes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(num_nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:144,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle.cpp:144,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:145,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle.cpp:145,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:146,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle.cpp:146,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:147,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle.cpp:147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:148,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/test/test_merkle.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_first_leaf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(first_leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:159,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:159,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:160,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:160,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:161,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:161,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:162,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:162,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:163,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:163,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:164,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:165,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:166,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:166,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:167,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:168,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:169,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:169,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:170,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:170,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:171,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:171,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:172,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:173,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:174,1
    - Dst: merkle_get_layer
      Src: /src/libtorrent/test/test_merkle.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_get_layer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:180,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:180,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:181,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:182,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:183,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:183,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:184,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:184,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:185,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:185,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:186,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:186,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:187,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:187,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:188,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:188,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:189,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:189,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:190,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:190,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:191,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:191,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:192,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:192,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:193,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:193,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:194,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:195,1
    - Dst: merkle_get_layer_offset
      Src: /src/libtorrent/test/test_merkle.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_get_layer_offset
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_layer_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:200,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_merkle.cpp:200,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:201,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_merkle.cpp:201,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:202,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_merkle.cpp:202,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:203,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_merkle.cpp:203,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:204,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_merkle.cpp:204,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:205,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_merkle.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_num_layers
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_num_layers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:215,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:215,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:216,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:216,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:217,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:217,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:218,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:218,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:219,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:220,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:220,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:221,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:221,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:222,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:223,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:223,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:224,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:224,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:225,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:226,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:227,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:227,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:228,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:228,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:229,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:229,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:230,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:230,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:231,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 232
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_get_first_child
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_get_first_child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:244,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:244,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:245,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:245,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:246,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:246,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:247,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:247,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:248,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:248,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:249,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:249,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:251,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:251,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:252,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:252,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:253,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:253,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:254,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:255,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:255,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:256,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/test/test_merkle.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 257
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_get_first_child
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_get_first_child2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:261,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:261,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:262,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:262,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:263,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:263,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:264,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:264,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:265,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:265,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:266,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:266,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:267,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:267,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:268,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:268,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:269,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:269,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:270,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/test/test_merkle.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_layer_start
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_layer_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:275,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:275,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:276,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:276,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:277,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:277,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:278,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:278,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:279,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:279,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:280,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:280,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:281,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:281,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:282,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:282,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:283,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:283,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:284,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:284,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:285,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:285,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:286,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:286,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:287,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:287,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:288,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:288,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_merkle.cpp:289,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/test/test_merkle.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - merkle_to_flat_index
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_to_flat_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_merkle.cpp:296,1
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_merkle.cpp:297,1
    - Dst: hasher256::final
      Src: /src/libtorrent/test/test_merkle.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - sha256_hash
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: H
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - hasher256::update
    - hasher256::final
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash H(sha256_hash left, sha256_hash right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_merkle.cpp:296,1
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_merkle.cpp:297,1
    - Dst: hasher256::final
      Src: /src/libtorrent/test/test_merkle.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - sha256_hash
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: H
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - hasher256::update
    - hasher256::final
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash H(sha256_hash left, sha256_hash right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/test/test_merkle.cpp:337,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:339,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/test/test_merkle.cpp:355,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:357,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/test/test_merkle.cpp:372,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:374,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/test/test_merkle.cpp:389,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:391,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/test/test_merkle.cpp:406,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 414
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_fill_tree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_fill_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:425,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:427,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:441,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:443,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:457,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:459,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:474,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:476,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:491,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:493,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:508,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:510,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:525,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:527,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:541,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:543,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:557,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:559,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:574,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:576,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:591,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:593,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/test/test_merkle.cpp:608,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 616
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_fill_partial_tree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_fill_partial_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:621,1
    - Dst: merkle_root
      Src: /src/libtorrent/test/test_merkle.cpp:621,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:624,1
    - Dst: merkle_root
      Src: /src/libtorrent/test/test_merkle.cpp:624,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:624,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:624,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:624,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:627,1
    - Dst: merkle_root
      Src: /src/libtorrent/test/test_merkle.cpp:627,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:630,1
    - Dst: merkle_root
      Src: /src/libtorrent/test/test_merkle.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 631
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - H
    - merkle_root
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:638,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/test/test_merkle.cpp:638,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:641,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/test/test_merkle.cpp:641,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:641,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:641,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:641,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:644,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/test/test_merkle.cpp:644,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:647,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/test/test_merkle.cpp:647,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:647,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:647,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:647,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:647,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:647,1
    - Dst: H
      Src: /src/libtorrent/test/test_merkle.cpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 648
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - H
    - merkle_root_scratch
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_root_scratch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_merkle.cpp:653,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/test/test_merkle.cpp:653,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_merkle.cpp:655,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_merkle.cpp:663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - tree
    argTypes:
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 672
    functionName: print_tree
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sha256_hash
    - span<sha256_hash const>::size
    - merkle_num_layers
    linkageType: ''
    returnType: void
    signature: void print_tree(span<sha256_hash const> tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_merkle.cpp:653,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/test/test_merkle.cpp:653,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/test/test_merkle.cpp:655,1
    - Dst: sha256_hash
      Src: /src/libtorrent/test/test_merkle.cpp:663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - tree
    argTypes:
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 672
    functionName: print_tree
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sha256_hash
    - span<sha256_hash const>::size
    - merkle_num_layers
    linkageType: ''
    returnType: void
    signature: void print_tree(span<sha256_hash const> tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:684,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/test/test_merkle.cpp:685,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:686,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:688,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:702,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/test/test_merkle.cpp:703,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:704,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:706,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:720,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/test/test_merkle.cpp:721,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:722,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:724,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:738,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/test/test_merkle.cpp:739,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:740,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:742,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:756,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/test/test_merkle.cpp:757,1
    - Dst: print_tree
      Src: /src/libtorrent/test/test_merkle.cpp:758,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 766
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - print_tree
    - merkle_clear_tree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_clear_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:772,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:772,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:773,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:773,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:774,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:774,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:775,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:775,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:776,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:776,1
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_merkle.cpp:783,1
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_merkle.cpp:784,1
    - Dst: hasher256::final
      Src: /src/libtorrent/test/test_merkle.cpp:785,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:787,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:787,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:788,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:788,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:789,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:789,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:790,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:790,1
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_merkle.cpp:794,1
    - Dst: hasher256::update
      Src: /src/libtorrent/test/test_merkle.cpp:795,1
    - Dst: hasher256::final
      Src: /src/libtorrent/test/test_merkle.cpp:796,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:798,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:798,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:799,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:799,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:800,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:800,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:801,1
    - Dst: merkle_pad
      Src: /src/libtorrent/test/test_merkle.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 802
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_pad
    - hasher256::final
    - TEST_CHECK
    - hasher256::update
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:806,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:806,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:807,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:807,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:808,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:808,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:809,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:809,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:811,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:811,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:812,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:812,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:814,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:814,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:816,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:816,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:817,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:817,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:818,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:818,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:819,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/test/test_merkle.cpp:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 820
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_node
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/test/test_merkle.cpp:833,1
    - Dst: compare_bits
      Src: /src/libtorrent/test/test_merkle.cpp:835,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 837
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_copy
    - TEST_CHECK
    - compare_bits
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_copy_full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/test/test_merkle.cpp:852,1
    - Dst: compare_bits
      Src: /src/libtorrent/test/test_merkle.cpp:854,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 856
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_copy
    - TEST_CHECK
    - compare_bits
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_copy_full_odd_nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/test/test_merkle.cpp:870,1
    - Dst: compare_bits
      Src: /src/libtorrent/test/test_merkle.cpp:874,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 882
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_copy
    - TEST_CHECK
    - compare_bits
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_copy_invalid_leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/test/test_merkle.cpp:895,1
    - Dst: compare_bits
      Src: /src/libtorrent/test/test_merkle.cpp:899,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 907
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_copy
    - TEST_CHECK
    - compare_bits
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_copy_many_invalid_leafs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/test/test_merkle.cpp:920,1
    - Dst: compare_bits
      Src: /src/libtorrent/test/test_merkle.cpp:922,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 931
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_copy
    - TEST_CHECK
    - compare_bits
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_copy_partial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/test/test_merkle.cpp:944,1
    - Dst: compare_bits
      Src: /src/libtorrent/test/test_merkle.cpp:948,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 950
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_copy
    - TEST_CHECK
    - compare_bits
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_copy_invalid_root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/test/test_merkle.cpp:963,1
    - Dst: compare_bits
      Src: /src/libtorrent/test/test_merkle.cpp:965,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 974
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_copy
    - TEST_CHECK
    - compare_bits
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_copy_root_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:984,1
    - Dst: merkle_validate_single_layer
      Src: /src/libtorrent/test/test_merkle.cpp:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 985
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_single_layer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_single_leayer_fail_no_parents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:995,1
    - Dst: merkle_validate_single_layer
      Src: /src/libtorrent/test/test_merkle.cpp:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 996
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_single_layer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_single_layer_missing_parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1006,1
    - Dst: merkle_validate_single_layer
      Src: /src/libtorrent/test/test_merkle.cpp:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1007
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_single_layer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_single_layer_missing_leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1017,1
    - Dst: merkle_validate_single_layer
      Src: /src/libtorrent/test/test_merkle.cpp:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1018
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_single_layer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(merkle_validate_single_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1028,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/test/test_merkle.cpp:1028,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_merkle.cpp:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1029
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - merkle_find_known_subtree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_subtree_known_full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1039,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/test/test_merkle.cpp:1039,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_merkle.cpp:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1040
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - merkle_find_known_subtree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_subtree_known_two_levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1050,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/test/test_merkle.cpp:1050,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_merkle.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1051
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - merkle_find_known_subtree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_subtree_known_unknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1063,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/test/test_merkle.cpp:1063,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_merkle.cpp:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1064
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - merkle_find_known_subtree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_subtree_known_padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1076,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/test/test_merkle.cpp:1076,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_merkle.cpp:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1077
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - merkle_find_known_subtree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_subtree_known_padding_two_levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1089,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/test/test_merkle.cpp:1089,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_merkle.cpp:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1090
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - merkle_find_known_subtree
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_subtree_known_more_padding_two_levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1105,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1105,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1111
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_mixed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1126,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1134
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_mixed_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1149,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1155
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_left)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1170,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1170,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1176
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1193,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1199
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_early_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1216,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1224
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_early_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1240,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1248
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_no_uncles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1264,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1264,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1272
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1288,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1288,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1296
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_root_fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1311,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/test/test_merkle.cpp:1311,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_merkle.cpp:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1317
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_merkle.cpp
    functionUses: 0
    functionsReached:
    - merkle_validate_and_insert_proofs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(validate_and_insert_proofs_too_many_uncles)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/test_transfer.cpp:65,1
    - Dst: make_error_code
      Src: /src/libtorrent/test/test_transfer.cpp:66,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/test/test_transfer.cpp:68,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_transfer.cpp:70,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_error_alert>
    - alert_cast<read_piece_alert>
    - make_error_code
    - alert_cast<peer_disconnected_alert>
    - TEST_CHECK
    linkageType: ''
    returnType: bool
    signature: bool on_alert(alert const* a)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_transfer.cpp:92,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:99,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:100,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:101,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:102,1
    - Dst: settings
      Src: /src/libtorrent/test/test_transfer.cpp:110,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:111,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_transfer.cpp:111,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:113,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:114,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:115,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:116,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:118,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:123,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_transfer.cpp:123,1
    - Dst: start_proxy
      Src: /src/libtorrent/test/test_transfer.cpp:129,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:132,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:133,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:134,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:135,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:141,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:142,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:143,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:144,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:154,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:155,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:156,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:157,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:160,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:161,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:162,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:163,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:164,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:165,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:166,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:168,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:169,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:171,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:174,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:176,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_transfer.cpp:176,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:178,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:180,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_transfer.cpp:180,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:182,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:184,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_transfer.cpp:184,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:186,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_transfer.cpp:191,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_transfer.cpp:193,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_transfer.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:196,1
    - Dst: exists
      Src: /src/libtorrent/test/test_transfer.cpp:196,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_transfer.cpp:196,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_transfer.cpp:203,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_transfer.cpp:204,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_transfer.cpp:210,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:210,1
    - Dst: torrent_handle::torrent_file
      Src: /src/libtorrent/test/test_transfer.cpp:213,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_transfer.cpp:214,1
    - Dst: std::shared_ptr::piece_range
      Src: /src/libtorrent/test/test_transfer.cpp:219,1
    - Dst: torrent_handle::set_piece_deadline
      Src: /src/libtorrent/test/test_transfer.cpp:222,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_transfer.cpp:226,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_transfer.cpp:234,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_transfer.cpp:234,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_transfer.cpp:240,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_transfer.cpp:240,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_transfer.cpp:242,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_transfer.cpp:243,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_transfer.cpp:245,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_transfer.cpp:246,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_transfer.cpp:250,1
    - Dst: torrent_handle::move_storage
      Src: /src/libtorrent/test/test_transfer.cpp:258,1
    - Dst: torrent_handle::move_storage
      Src: /src/libtorrent/test/test_transfer.cpp:259,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_transfer.cpp:265,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_transfer.cpp:268,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_transfer.cpp:268,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:281,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_transfer.cpp:286,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_transfer.cpp:286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:291,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:296,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_transfer.cpp:296,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_transfer.cpp:300,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_transfer.cpp:301,1
    - Dst: stop_proxy
      Src: /src/libtorrent/test/test_transfer.cpp:303,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 108
    argCount: 2
    argNames:
    - proxy_type
    - ' sett'
    argTypes:
    - int
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 304
    functionName: test_transfer
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 5
    functionsReached:
    - print_ses_rate
    - std::this_thread::sleep_for
    - seconds
    - test_listen_interface
    - torrent_handle::torrent_file
    - torrent_handle::status
    - stop_proxy
    - wait_for_listen
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - setup_transfer
    - lt::session::wait_for_alert
    - start_proxy
    - std::size_t
    - settings_pack::set_bool
    - lt::session::get_settings
    - std::printf
    - torrent_handle::move_storage
    - time_now
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - std::ofstream::close
    - TEST_CHECK
    - lt::session::remove_torrent
    - lt::session::apply_settings
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - std::tie
    - std::shared_ptr::piece_range
    - exists
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - torrent_handle::set_piece_deadline
    linkageType: ''
    returnType: void
    signature: "void test_transfer(int proxy_type, settings_pack const& sett\n\t,
      transfer_flags_t flags = {}\n\t, storage_mode_t storage_mode = storage_mode_sparse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:309,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:310,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:311,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 313
    functionName: cleanup
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 4
    functionsReached:
    - remove_all
    linkageType: ''
    returnType: void
    signature: void cleanup()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/test/test_transfer.cpp:65,1
    - Dst: make_error_code
      Src: /src/libtorrent/test/test_transfer.cpp:66,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/test/test_transfer.cpp:68,1
    - Dst: alert_cast<read_piece_alert>
      Src: /src/libtorrent/test/test_transfer.cpp:70,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<peer_error_alert>
    - alert_cast<read_piece_alert>
    - make_error_code
    - alert_cast<peer_disconnected_alert>
    - TEST_CHECK
    linkageType: ''
    returnType: bool
    signature: bool on_alert(alert const* a)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_transfer.cpp:92,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:99,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:100,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:101,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:102,1
    - Dst: settings
      Src: /src/libtorrent/test/test_transfer.cpp:110,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:111,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_transfer.cpp:111,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:113,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:114,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:115,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:116,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:118,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:123,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_transfer.cpp:123,1
    - Dst: start_proxy
      Src: /src/libtorrent/test/test_transfer.cpp:129,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:132,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:133,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:134,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:135,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:141,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:142,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_transfer.cpp:143,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:144,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:154,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:155,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:156,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:157,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:160,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:161,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:162,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:163,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:164,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:165,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:166,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:168,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:169,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:171,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:174,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:176,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_transfer.cpp:176,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:178,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:180,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_transfer.cpp:180,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:182,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:184,1
    - Dst: lt::session::get_settings
      Src: /src/libtorrent/test/test_transfer.cpp:184,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_transfer.cpp:186,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_transfer.cpp:191,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_transfer.cpp:193,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_transfer.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:196,1
    - Dst: exists
      Src: /src/libtorrent/test/test_transfer.cpp:196,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_transfer.cpp:196,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_transfer.cpp:203,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_transfer.cpp:204,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_transfer.cpp:210,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:210,1
    - Dst: torrent_handle::torrent_file
      Src: /src/libtorrent/test/test_transfer.cpp:213,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_transfer.cpp:214,1
    - Dst: std::shared_ptr::piece_range
      Src: /src/libtorrent/test/test_transfer.cpp:219,1
    - Dst: torrent_handle::set_piece_deadline
      Src: /src/libtorrent/test/test_transfer.cpp:222,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_transfer.cpp:226,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_transfer.cpp:234,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_transfer.cpp:234,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_transfer.cpp:240,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_transfer.cpp:240,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_transfer.cpp:242,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_transfer.cpp:243,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_transfer.cpp:245,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_transfer.cpp:246,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_transfer.cpp:250,1
    - Dst: torrent_handle::move_storage
      Src: /src/libtorrent/test/test_transfer.cpp:258,1
    - Dst: torrent_handle::move_storage
      Src: /src/libtorrent/test/test_transfer.cpp:259,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/test_transfer.cpp:265,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_transfer.cpp:268,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_transfer.cpp:268,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:281,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_transfer.cpp:286,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_transfer.cpp:286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:291,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_transfer.cpp:296,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_transfer.cpp:296,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_transfer.cpp:300,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_transfer.cpp:301,1
    - Dst: stop_proxy
      Src: /src/libtorrent/test/test_transfer.cpp:303,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 108
    argCount: 2
    argNames:
    - proxy_type
    - ' sett'
    argTypes:
    - int
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 304
    functionName: test_transfer
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 5
    functionsReached:
    - print_ses_rate
    - std::this_thread::sleep_for
    - seconds
    - test_listen_interface
    - torrent_handle::torrent_file
    - torrent_handle::status
    - stop_proxy
    - wait_for_listen
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - setup_transfer
    - lt::session::wait_for_alert
    - start_proxy
    - std::size_t
    - settings_pack::set_bool
    - lt::session::get_settings
    - std::printf
    - torrent_handle::move_storage
    - time_now
    - libtorrent::total_milliseconds
    - lt::session::abort
    - create_directory
    - std::ofstream::close
    - TEST_CHECK
    - lt::session::remove_torrent
    - lt::session::apply_settings
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - combine_path
    - std::tie
    - std::shared_ptr::piece_range
    - exists
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - torrent_handle::set_piece_deadline
    linkageType: ''
    returnType: void
    signature: "void test_transfer(int proxy_type, settings_pack const& sett\n\t,
      transfer_flags_t flags = {}\n\t, storage_mode_t storage_mode = storage_mode_sparse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:309,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:310,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:311,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_transfer.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 313
    functionName: cleanup
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 4
    functionsReached:
    - remove_all
    linkageType: ''
    returnType: void
    signature: void cleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_transfer.cpp:324,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:325,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 328
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_bool
    - test_transfer
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_contiguous_buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:335,1
    - Dst: settings_pack
      Src: /src/libtorrent/test/test_transfer.cpp:335,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    - settings_pack
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_pw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:342,1
    - Dst: settings_pack
      Src: /src/libtorrent/test/test_transfer.cpp:342,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    - settings_pack
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:349,1
    - Dst: settings_pack
      Src: /src/libtorrent/test/test_transfer.cpp:349,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    - settings_pack
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_pw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:363,1
    - Dst: settings_pack
      Src: /src/libtorrent/test/test_transfer.cpp:363,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    - settings_pack
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(move_storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:370,1
    - Dst: settings_pack
      Src: /src/libtorrent/test/test_transfer.cpp:370,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 372
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    - settings_pack
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_deadline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack
      Src: /src/libtorrent/test/test_transfer.cpp:377,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:378,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:379,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - test_transfer
    - settings_pack
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(delete_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:388,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:389,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - test_transfer
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(allow_fast)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_transfer.cpp:398,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:399,1
    - Dst: settings_pack
      Src: /src/libtorrent/test/test_transfer.cpp:399,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - cleanup
    - test_transfer
    - std::printf
    - settings_pack
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(allocate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:408,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:409,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 412
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - test_transfer
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(suggest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:418,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:419,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 422
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - test_transfer
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disable_os_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_transfer.cpp:429,1
    - Dst: test_transfer
      Src: /src/libtorrent/test/test_transfer.cpp:430,1
    - Dst: cleanup
      Src: /src/libtorrent/test/test_transfer.cpp:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 433
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - test_transfer
    - cleanup
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(write_through)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/test/test_peer_priority.cpp:49,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_peer_priority.cpp:50,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_peer_priority.cpp:50,1
    - Dst: boost::crc_optimal::process_block
      Src: /src/libtorrent/test/test_peer_priority.cpp:52,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_peer_priority.cpp:52,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_peer_priority.cpp:52,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_peer_priority.cpp:52,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/test/test_peer_priority.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' hex'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: hash_buffer
    functionSourceFile: /src/libtorrent/test/test_peer_priority.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - libtorrent::aux::from_hex
    - boost::crc_optimal::process_block
    - boost::crc_optimal::checksum
    - size
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t hash_buffer(std::string const& hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/test/test_peer_priority.cpp:49,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_peer_priority.cpp:50,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_peer_priority.cpp:50,1
    - Dst: boost::crc_optimal::process_block
      Src: /src/libtorrent/test/test_peer_priority.cpp:52,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_peer_priority.cpp:52,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_peer_priority.cpp:52,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_peer_priority.cpp:52,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/test/test_peer_priority.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' hex'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: hash_buffer
    functionSourceFile: /src/libtorrent/test/test_peer_priority.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - libtorrent::aux::from_hex
    - boost::crc_optimal::process_block
    - boost::crc_optimal::checksum
    - size
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t hash_buffer(std::string const& hex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:60,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:61,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:61,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:62,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:62,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:65,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:65,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:65,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:66,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:66,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:70,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:70,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:71,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:71,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:75,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:75,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:76,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:79,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:79,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:79,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:82,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:82,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:83,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:83,1
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_peer_priority.cpp:86,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:89,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:90,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:91,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:93,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:93,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:95,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:96,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:99,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:99,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:103,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:104,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:107,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:107,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:112,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:113,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:116,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:116,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:122,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:123,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:124,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:126,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:126,1
    - Dst: peer_priority
      Src: /src/libtorrent/test/test_peer_priority.cpp:132,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:133,1
    - Dst: ep
      Src: /src/libtorrent/test/test_peer_priority.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_peer_priority.cpp:136,1
    - Dst: hash_buffer
      Src: /src/libtorrent/test/test_peer_priority.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 141
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_peer_priority.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - supports_ipv6
    - ep
    - peer_priority
    - hash_buffer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(peer_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_http_pw.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_http_pw.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_http_pw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_http_pw.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_http_pw.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_http_pw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_http_pw.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_http_pw.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_http_pw_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_http_suite
      Src: /src/libtorrent/test/test_web_seed_http_pw.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_web_seed_http_pw.cpp
    functionUses: 0
    functionsReached:
    - run_http_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(url_seed_http_pw_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: f
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 321
    functionsReached: []
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> f(span<char const> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: g
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 247
    functionsReached: []
    linkageType: ''
    returnType: span<span<char>>
    signature: span<span<char>> g(span<span<char>> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: f
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 321
    functionsReached: []
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> f(span<char const> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: g
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 247
    functionsReached: []
    linkageType: ''
    returnType: span<span<char>>
    signature: span<span<char>> g(span<span<char>> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:57,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:57,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:58,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:66,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:66,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:67,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_vector_assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:76,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:77,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_assignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:85,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:86,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_span.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: do_span_temp_vector
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span<char const>::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void do_span_temp_vector(span<char const> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:85,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:86,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/test/test_span.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: do_span_temp_vector
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span<char const>::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void do_span_temp_vector(span<char const> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_span_temp_vector
      Src: /src/libtorrent/test/test_span.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - do_span_temp_vector
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_temp_vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:100,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:100,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:101,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_std_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:108,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:109,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_const_std_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:116,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:116,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:117,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:124,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:124,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:125,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:132,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:132,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:133,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_const_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:140,1
    - Dst: f
      Src: /src/libtorrent/test/test_span.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:141,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - f
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_single_element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:149,1
    - Dst: g
      Src: /src/libtorrent/test/test_span.cpp:149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:150,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_span.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_span.cpp:151,1
    - Dst: size
      Src: /src/libtorrent/test/test_span.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_span.cpp
    functionUses: 0
    functionsReached:
    - size
    - g
    - span::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(span_of_spans)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_parent_path
      Src: /src/libtorrent/test/test_add_torrent.cpp:67,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/test/test_add_torrent.cpp:67,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/test/test_add_torrent.cpp:68,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/test/test_add_torrent.cpp:68,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_add_torrent.cpp:72,1
    - Dst: load_file
      Src: /src/libtorrent/test/test_add_torrent.cpp:72,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/test/test_add_torrent.cpp:74,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_add_torrent.cpp:75,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_add_torrent.cpp:76,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_add_torrent.cpp:76,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/test/test_add_torrent.cpp:77,1
    - Dst: lt::add_torrent_params::ti::info_hash
      Src: /src/libtorrent/test/test_add_torrent.cpp:84,1
    - Dst: lt::add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/test/test_add_torrent.cpp:86,1
    - Dst: lt::add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/test/test_add_torrent.cpp:87,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/test/test_add_torrent.cpp:89,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/test/test_add_torrent.cpp:91,1
    - Dst: bind_sha256_hash
      Src: /src/libtorrent/test/test_add_torrent.cpp:92,1
    - Dst: lt::add_torrent_params::ti::info_section
      Src: /src/libtorrent/test/test_add_torrent.cpp:98,1
    - Dst: std::vector::assign
      Src: /src/libtorrent/test/test_add_torrent.cpp:99,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_add_torrent.cpp:99,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_add_torrent.cpp:99,1
    - Dst: lt::add_torrent_params::ti::reset
      Src: /src/libtorrent/test/test_add_torrent.cpp:100,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/test/test_add_torrent.cpp:104,1
    - Dst: lt::session_params::settings::set_str
      Src: /src/libtorrent/test/test_add_torrent.cpp:105,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:111,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:116,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:120,1
    - Dst: code
      Src: /src/libtorrent/test/test_add_torrent.cpp:125,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_add_torrent.cpp:129,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_add_torrent.cpp:130,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_add_torrent.cpp:130,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_add_torrent.cpp:132,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_add_torrent.cpp:132,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_add_torrent.cpp:133,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_add_torrent.cpp:134,1
    - Dst: message
      Src: /src/libtorrent/test/test_add_torrent.cpp:137,1
    - Dst: lt::alert_cast<lt::torrent_error_alert>
      Src: /src/libtorrent/test/test_add_torrent.cpp:138,1
    - Dst: lt::alert_cast<lt::metadata_failed_alert>
      Src: /src/libtorrent/test/test_add_torrent.cpp:143,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/test/test_add_torrent.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_add_torrent.cpp:155,1
    - Dst: auto*::handle::is_valid
      Src: /src/libtorrent/test/test_add_torrent.cpp:155,1
    - Dst: auto*::handle::set_metadata
      Src: /src/libtorrent/test/test_add_torrent.cpp:156,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/test/test_add_torrent.cpp:161,1
    - Dst: lt::alert_cast<lt::metadata_received_alert>
      Src: /src/libtorrent/test/test_add_torrent.cpp:165,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/test/test_add_torrent.cpp:168,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/test/test_add_torrent.cpp:173,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 2
    argNames:
    - file
    - flags
    argTypes:
    - std::string
    - add_torrent_test_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 174
    functionName: test_add_torrent
    functionSourceFile: /src/libtorrent/test/test_add_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::add_torrent_params::ti::reset
    - lt::error_code::message
    - lt::add_torrent_params::ti::info_section
    - bind_sha1_hash
    - libtorrent::current_working_directory
    - lt::alert_cast<lt::add_torrent_alert>
    - auto::begin
    - std::vector::clear
    - Catch::Timer::getElapsedNanoseconds
    - message
    - libtorrent::combine_path
    - lt::session::wait_for_alert
    - std::make_shared<lt::torrent_info>
    - lt::session_params::settings::set_str
    - load_file
    - std::printf
    - lt::session_params::settings::set_int
    - libtorrent::has_parent_path
    - time_now
    - bind_sha256_hash
    - lt::alert_cast<lt::metadata_failed_alert>
    - lt::session::pop_alerts
    - lt::add_torrent_params::ti::info_hashes
    - lt::session::add_torrent
    - auto*::handle::is_valid
    - lt::session::async_add_torrent
    - TEST_CHECK
    - lt::alert_cast<lt::torrent_error_alert>
    - std::string::c_str
    - lt::add_torrent_params::ti::info_hash
    - libtorrent::socks_error::make_error_code
    - lt::alert_cast<lt::metadata_received_alert>
    - code
    - auto::end
    - std::vector::assign
    - auto*::handle::set_metadata
    linkageType: ''
    returnType: lt::error_code
    signature: lt::error_code test_add_torrent(std::string file, add_torrent_test_flag_t
      const flags)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_parent_path
      Src: /src/libtorrent/test/test_add_torrent.cpp:67,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/test/test_add_torrent.cpp:67,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/test/test_add_torrent.cpp:68,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/test/test_add_torrent.cpp:68,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_add_torrent.cpp:72,1
    - Dst: load_file
      Src: /src/libtorrent/test/test_add_torrent.cpp:72,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/test/test_add_torrent.cpp:74,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_add_torrent.cpp:75,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_add_torrent.cpp:76,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_add_torrent.cpp:76,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/test/test_add_torrent.cpp:77,1
    - Dst: lt::add_torrent_params::ti::info_hash
      Src: /src/libtorrent/test/test_add_torrent.cpp:84,1
    - Dst: lt::add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/test/test_add_torrent.cpp:86,1
    - Dst: lt::add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/test/test_add_torrent.cpp:87,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/test/test_add_torrent.cpp:89,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/test/test_add_torrent.cpp:91,1
    - Dst: bind_sha256_hash
      Src: /src/libtorrent/test/test_add_torrent.cpp:92,1
    - Dst: lt::add_torrent_params::ti::info_section
      Src: /src/libtorrent/test/test_add_torrent.cpp:98,1
    - Dst: std::vector::assign
      Src: /src/libtorrent/test/test_add_torrent.cpp:99,1
    - Dst: auto::begin
      Src: /src/libtorrent/test/test_add_torrent.cpp:99,1
    - Dst: auto::end
      Src: /src/libtorrent/test/test_add_torrent.cpp:99,1
    - Dst: lt::add_torrent_params::ti::reset
      Src: /src/libtorrent/test/test_add_torrent.cpp:100,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/test/test_add_torrent.cpp:104,1
    - Dst: lt::session_params::settings::set_str
      Src: /src/libtorrent/test/test_add_torrent.cpp:105,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:111,1
    - Dst: lt::session::async_add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:116,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:120,1
    - Dst: code
      Src: /src/libtorrent/test/test_add_torrent.cpp:125,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_add_torrent.cpp:129,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_add_torrent.cpp:130,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_add_torrent.cpp:130,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/test_add_torrent.cpp:132,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_add_torrent.cpp:132,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_add_torrent.cpp:133,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/test_add_torrent.cpp:134,1
    - Dst: message
      Src: /src/libtorrent/test/test_add_torrent.cpp:137,1
    - Dst: lt::alert_cast<lt::torrent_error_alert>
      Src: /src/libtorrent/test/test_add_torrent.cpp:138,1
    - Dst: lt::alert_cast<lt::metadata_failed_alert>
      Src: /src/libtorrent/test/test_add_torrent.cpp:143,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/test/test_add_torrent.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_add_torrent.cpp:155,1
    - Dst: auto*::handle::is_valid
      Src: /src/libtorrent/test/test_add_torrent.cpp:155,1
    - Dst: auto*::handle::set_metadata
      Src: /src/libtorrent/test/test_add_torrent.cpp:156,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/test/test_add_torrent.cpp:161,1
    - Dst: lt::alert_cast<lt::metadata_received_alert>
      Src: /src/libtorrent/test/test_add_torrent.cpp:165,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/test/test_add_torrent.cpp:168,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/test/test_add_torrent.cpp:173,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 2
    argNames:
    - file
    - flags
    argTypes:
    - std::string
    - add_torrent_test_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 174
    functionName: test_add_torrent
    functionSourceFile: /src/libtorrent/test/test_add_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::add_torrent_params::ti::reset
    - lt::error_code::message
    - lt::add_torrent_params::ti::info_section
    - bind_sha1_hash
    - libtorrent::current_working_directory
    - lt::alert_cast<lt::add_torrent_alert>
    - auto::begin
    - std::vector::clear
    - Catch::Timer::getElapsedNanoseconds
    - message
    - libtorrent::combine_path
    - lt::session::wait_for_alert
    - std::make_shared<lt::torrent_info>
    - lt::session_params::settings::set_str
    - load_file
    - std::printf
    - lt::session_params::settings::set_int
    - libtorrent::has_parent_path
    - time_now
    - bind_sha256_hash
    - lt::alert_cast<lt::metadata_failed_alert>
    - lt::session::pop_alerts
    - lt::add_torrent_params::ti::info_hashes
    - lt::session::add_torrent
    - auto*::handle::is_valid
    - lt::session::async_add_torrent
    - TEST_CHECK
    - lt::alert_cast<lt::torrent_error_alert>
    - std::string::c_str
    - lt::add_torrent_params::ti::info_hash
    - libtorrent::socks_error::make_error_code
    - lt::alert_cast<lt::metadata_received_alert>
    - code
    - auto::end
    - std::vector::assign
    - auto*::handle::set_metadata
    linkageType: ''
    returnType: lt::error_code
    signature: lt::error_code test_add_torrent(std::string file, add_torrent_test_flag_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_add_torrent.cpp:258,1
    - Dst: test_add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/test/test_add_torrent.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_add_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::socks_error::make_error_code
    - test_add_torrent
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_file_root)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:267,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_add_torrent.cpp:271,1
    - Dst: auto::message
      Src: /src/libtorrent/test/test_add_torrent.cpp:271,1
    - Dst: expected_error::message
      Src: /src/libtorrent/test/test_add_torrent.cpp:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 275
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_add_torrent.cpp
    functionUses: 0
    functionsReached:
    - expected_error::message
    - test_add_torrent
    - auto::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_torrent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:282,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_add_torrent.cpp:286,1
    - Dst: auto::message
      Src: /src/libtorrent/test/test_add_torrent.cpp:286,1
    - Dst: expected_error::message
      Src: /src/libtorrent/test/test_add_torrent.cpp:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 290
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_add_torrent.cpp
    functionUses: 0
    functionsReached:
    - expected_error::message
    - test_add_torrent
    - auto::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(async_add_torrent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_add_torrent
      Src: /src/libtorrent/test/test_add_torrent.cpp:297,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_add_torrent.cpp:301,1
    - Dst: auto::message
      Src: /src/libtorrent/test/test_add_torrent.cpp:301,1
    - Dst: expected_error::message
      Src: /src/libtorrent/test/test_add_torrent.cpp:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 305
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_add_torrent.cpp
    functionUses: 0
    functionsReached:
    - expected_error::message
    - test_add_torrent
    - auto::message
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ec_add_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:49,1
    - Dst: is_local
      Src: /src/libtorrent/test/test_enum_net.cpp:49,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:49,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:50,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:51,1
    - Dst: is_local
      Src: /src/libtorrent/test/test_enum_net.cpp:51,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:51,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:52,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:53,1
    - Dst: is_local
      Src: /src/libtorrent/test/test_enum_net.cpp:53,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:53,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:54,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:55,1
    - Dst: is_local
      Src: /src/libtorrent/test/test_enum_net.cpp:55,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:55,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:56,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:57,1
    - Dst: is_local
      Src: /src/libtorrent/test/test_enum_net.cpp:57,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:57,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - is_local
    - make_address
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_local)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:63,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/test/test_enum_net.cpp:63,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:64,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:65,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:66,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:68,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/test/test_enum_net.cpp:68,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:69,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:70,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:71,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:73,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/test/test_enum_net.cpp:73,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:74,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:75,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:78,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/test/test_enum_net.cpp:78,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:79,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:80,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:81,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:83,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/test/test_enum_net.cpp:83,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:84,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:85,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:86,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:89,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/test/test_enum_net.cpp:89,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:90,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:91,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 93
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - make_address
    - TEST_CHECK
    - match_addr_mask
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(match_addr_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_enum_net.cpp:97,1
    - Dst: is_ip_address
      Src: /src/libtorrent/test/test_enum_net.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_enum_net.cpp:98,1
    - Dst: is_ip_address
      Src: /src/libtorrent/test/test_enum_net.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_enum_net.cpp:99,1
    - Dst: is_ip_address
      Src: /src/libtorrent/test/test_enum_net.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_enum_net.cpp:100,1
    - Dst: is_ip_address
      Src: /src/libtorrent/test/test_enum_net.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_enum_net.cpp:101,1
    - Dst: is_ip_address
      Src: /src/libtorrent/test/test_enum_net.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - is_ip_address
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_ip_address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:106,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:106,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:107,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:107,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:108,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:108,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:109,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:109,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:109,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:110,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:110,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:111,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:111,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:111,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:112,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:112,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:112,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:113,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:113,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:113,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:114,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:114,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:114,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:115,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:115,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:116,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:116,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:116,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:117,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:117,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:119,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:119,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:119,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:120,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:120,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:120,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:121,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:121,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:121,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:122,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:122,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:122,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:123,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:123,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:123,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:124,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:124,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:124,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:125,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:125,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:125,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:126,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:126,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:127,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:127,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:128,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:128,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:129,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:129,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 130
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - make_address
    - TEST_CHECK
    - build_netmask
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(build_netmask_v4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:134,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:134,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:135,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:135,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:135,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:136,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:136,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:136,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:137,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:137,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:138,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:138,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:138,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:139,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:139,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:140,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:140,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:141,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:141,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:141,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:142,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:142,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:142,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:143,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:143,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:144,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:144,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:144,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:145,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:145,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:145,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:147,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:147,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:147,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:148,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:148,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:149,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:149,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:149,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:150,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:150,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:151,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:151,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:151,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:152,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:152,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:152,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:153,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:153,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:153,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:154,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:154,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:154,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:155,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:155,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:156,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:156,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - make_address
    - TEST_CHECK
    - build_netmask
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(build_netmask_v6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:161,1
    - Dst: build_netmask
      Src: /src/libtorrent/test/test_enum_net.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - build_netmask
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(build_netmask_unknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:168,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:169,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:170,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_enum_net.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ip
    - device
    - gateway
    - mask
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: rt
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 156
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_route
    signature: ip_route rt(char const* ip, char const* device, char const* gateway,
      char const* mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:179,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:180,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_enum_net.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: ip
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 28
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_interface
    signature: ip_interface ip(char const* addr, char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:168,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:169,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:170,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_enum_net.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ip
    - device
    - gateway
    - mask
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: rt
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 156
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_route
    signature: ip_route rt(char const* ip, char const* device, char const* gateway,
      char const* mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:179,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:180,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_enum_net.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: ip
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 28
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_interface
    signature: ip_interface ip(char const* addr, char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:189,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:193,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:193,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:193,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:194,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:194,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:194,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:197,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:197,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:197,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:198,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:198,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:198,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:201,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:201,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:201,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 202
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - get_gateway
    - ip
    - rt
    - make_address
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_gateway_basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:207,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:208,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:212,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:212,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:212,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:213,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:213,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - ip
    - rt
    - get_gateway
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_gateway_no_default_route)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:223,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:223,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - ip
    - rt
    - get_gateway
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_gateway_local_v6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:230,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:231,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:232,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:233,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:236,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:236,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:236,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:236,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:239,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:239,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - get_gateway
    - ip
    - rt
    - make_address
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_gateway_loopback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:245,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:249,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:249,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:249,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:249,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:250,1
    - Dst: get_gateway
      Src: /src/libtorrent/test/test_enum_net.cpp:250,1
    - Dst: ip
      Src: /src/libtorrent/test/test_enum_net.cpp:250,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_enum_net.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - get_gateway
    - ip
    - rt
    - make_address
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_gateway_multi_homed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:256,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:257,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:258,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:259,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:260,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:261,1
    - Dst: rt
      Src: /src/libtorrent/test/test_enum_net.cpp:262,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:265,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:265,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:266,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:266,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:268,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:268,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:269,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:269,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:271,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:271,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:272,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:272,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:274,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:274,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:275,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:275,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:277,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:277,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:278,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:280,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_enum_net.cpp:281,1
    - Dst: has_internet_route
      Src: /src/libtorrent/test/test_enum_net.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 282
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_enum_net.cpp
    functionUses: 0
    functionsReached:
    - has_internet_route
    - rt
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(has_internet_route)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/test/test_flags.cpp:53,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_flags.cpp:53,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_flags.cpp:53,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_flags.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: file
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 185
    functionsReached:
    - current_working_directory
    - parent_path
    - combine_path
    linkageType: ''
    returnType: std::string
    signature: std::string file(std::string name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_alerts
      Src: /src/libtorrent/test/test_flags.cpp:60,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_flags.cpp:63,1
    - Dst: what
      Src: /src/libtorrent/test/test_flags.cpp:63,1
    - Dst: message
      Src: /src/libtorrent/test/test_flags.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: print_alerts
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 40
    functionsReached:
    - message
    - what
    - std::printf
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void print_alerts(lt::session& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_flags.cpp:73,1
    - Dst: file
      Src: /src/libtorrent/test/test_flags.cpp:73,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_flags.cpp:74,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_flags.cpp:78,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_flags.cpp:78,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_flags.cpp:78,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_flags.cpp:78,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:80,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_flags.cpp:82,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:83,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_flags.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:84,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:84,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_flags.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 86
    functionName: test_add_and_get_flags
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_EQUAL
    - std::vector::data
    - std::make_shared<torrent_info>
    - std::vector::size
    - print_alerts
    - ofstream
    - torrent_handle::is_valid
    - std::ref
    - session::add_torrent
    - file
    - torrent_handle::flags
    - std::streamsize
    linkageType: ''
    returnType: void
    signature: void test_add_and_get_flags(torrent_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_flags.cpp:94,1
    - Dst: file
      Src: /src/libtorrent/test/test_flags.cpp:94,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_flags.cpp:95,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:96,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_flags.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:99,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_flags.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:100,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:100,1
    - Dst: torrent_handle::set_flags
      Src: /src/libtorrent/test/test_flags.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:102,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:102,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_flags.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: test_set_after_add
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::make_shared<torrent_info>
    - print_alerts
    - torrent_handle::is_valid
    - session::add_torrent
    - std::ref
    - torrent_handle::set_flags
    - file
    - torrent_handle::flags
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_set_after_add(torrent_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_flags.cpp:112,1
    - Dst: file
      Src: /src/libtorrent/test/test_flags.cpp:112,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_flags.cpp:113,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:114,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_flags.cpp:116,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:117,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_flags.cpp:117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:118,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:118,1
    - Dst: torrent_handle::unset_flags
      Src: /src/libtorrent/test/test_flags.cpp:119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:120,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:120,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_flags.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: test_unset_after_add
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::unset_flags
    - std::make_shared<torrent_info>
    - print_alerts
    - torrent_handle::is_valid
    - session::add_torrent
    - std::ref
    - file
    - torrent_handle::flags
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unset_after_add(torrent_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/test/test_flags.cpp:53,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_flags.cpp:53,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_flags.cpp:53,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_flags.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: file
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 188
    functionsReached:
    - current_working_directory
    - parent_path
    - combine_path
    linkageType: ''
    returnType: std::string
    signature: std::string file(std::string name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_alerts
      Src: /src/libtorrent/test/test_flags.cpp:60,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_flags.cpp:63,1
    - Dst: what
      Src: /src/libtorrent/test/test_flags.cpp:63,1
    - Dst: message
      Src: /src/libtorrent/test/test_flags.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: print_alerts
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 43
    functionsReached:
    - message
    - what
    - std::printf
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void print_alerts(lt::session& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_flags.cpp:73,1
    - Dst: file
      Src: /src/libtorrent/test/test_flags.cpp:73,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_flags.cpp:74,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_flags.cpp:78,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_flags.cpp:78,1
    - Dst: std::streamsize
      Src: /src/libtorrent/test/test_flags.cpp:78,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_flags.cpp:78,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:80,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_flags.cpp:82,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:83,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_flags.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:84,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:84,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_flags.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 86
    functionName: test_add_and_get_flags
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_EQUAL
    - std::vector::data
    - std::make_shared<torrent_info>
    - std::vector::size
    - print_alerts
    - ofstream
    - torrent_handle::is_valid
    - std::ref
    - session::add_torrent
    - file
    - torrent_handle::flags
    - std::streamsize
    linkageType: ''
    returnType: void
    signature: void test_add_and_get_flags(torrent_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_flags.cpp:94,1
    - Dst: file
      Src: /src/libtorrent/test/test_flags.cpp:94,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_flags.cpp:95,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:96,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_flags.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:99,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_flags.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:100,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:100,1
    - Dst: torrent_handle::set_flags
      Src: /src/libtorrent/test/test_flags.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:102,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:102,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_flags.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: test_set_after_add
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::make_shared<torrent_info>
    - print_alerts
    - torrent_handle::is_valid
    - session::add_torrent
    - std::ref
    - torrent_handle::set_flags
    - file
    - torrent_handle::flags
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_set_after_add(torrent_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_flags.cpp:112,1
    - Dst: file
      Src: /src/libtorrent/test/test_flags.cpp:112,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_flags.cpp:113,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:114,1
    - Dst: session::add_torrent
      Src: /src/libtorrent/test/test_flags.cpp:116,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_flags.cpp:117,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/test/test_flags.cpp:117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:118,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:118,1
    - Dst: torrent_handle::unset_flags
      Src: /src/libtorrent/test/test_flags.cpp:119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_flags.cpp:120,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/test_flags.cpp:120,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_flags.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: test_unset_after_add
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - torrent_handle::unset_flags
    - std::make_shared<torrent_info>
    - print_alerts
    - torrent_handle::is_valid
    - session::add_torrent
    - std::ref
    - file
    - torrent_handle::flags
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unset_after_add(torrent_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:129,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_seed_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:136,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:137,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_upload_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:145,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:146,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_share_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:154,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:155,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_apply_ip_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_paused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:171,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:172,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_auto_managed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:183,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:184,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_super_seeding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:193,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:194,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_sequential_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_unset_after_add
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_stop_when_ready)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:217,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:218,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_disable_dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:225,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:226,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_disable_lsd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_add_and_get_flags
      Src: /src/libtorrent/test/test_flags.cpp:232,1
    - Dst: test_set_after_add
      Src: /src/libtorrent/test/test_flags.cpp:233,1
    - Dst: test_unset_after_add
      Src: /src/libtorrent/test/test_flags.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_flags.cpp
    functionUses: 0
    functionsReached:
    - test_set_after_add
    - test_unset_after_add
    - test_add_and_get_flags
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(flag_disable_pex)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/swarm_suite.cpp:63,1
    - Dst: remove_all
      Src: /src/libtorrent/test/swarm_suite.cpp:75,1
    - Dst: remove_all
      Src: /src/libtorrent/test/swarm_suite.cpp:76,1
    - Dst: remove_all
      Src: /src/libtorrent/test/swarm_suite.cpp:77,1
    - Dst: settings
      Src: /src/libtorrent/test/swarm_suite.cpp:86,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/swarm_suite.cpp:87,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/swarm_suite.cpp:91,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/swarm_suite.cpp:95,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/swarm_suite.cpp:102,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/swarm_suite.cpp:103,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/swarm_suite.cpp:103,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/swarm_suite.cpp:104,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/swarm_suite.cpp:106,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/swarm_suite.cpp:107,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/swarm_suite.cpp:111,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/swarm_suite.cpp:111,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/swarm_suite.cpp:112,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/swarm_suite.cpp:113,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/swarm_suite.cpp:116,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/swarm_suite.cpp:116,1
    - Dst: std::tie
      Src: /src/libtorrent/test/swarm_suite.cpp:129,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/swarm_suite.cpp:129,1
    - Dst: torrent_handle::set_piece_deadline
      Src: /src/libtorrent/test/swarm_suite.cpp:138,1
    - Dst: torrent_handle::set_piece_deadline
      Src: /src/libtorrent/test/swarm_suite.cpp:139,1
    - Dst: torrent_handle::set_piece_deadline
      Src: /src/libtorrent/test/swarm_suite.cpp:140,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/swarm_suite.cpp:150,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/swarm_suite.cpp:151,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/swarm_suite.cpp:152,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/swarm_suite.cpp:154,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/swarm_suite.cpp:155,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/swarm_suite.cpp:156,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:161,1
    - Dst: torrent_handle::flags
      Src: /src/libtorrent/test/swarm_suite.cpp:161,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/swarm_suite.cpp:175,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/swarm_suite.cpp:178,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/swarm_suite.cpp:178,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:181,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/swarm_suite.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:182,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/swarm_suite.cpp:182,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/swarm_suite.cpp:190,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/swarm_suite.cpp:190,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/swarm_suite.cpp:193,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/swarm_suite.cpp:194,1
    - Dst: lt::session::remove_torrent
      Src: /src/libtorrent/test/swarm_suite.cpp:195,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/swarm_suite.cpp:197,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:199,1
    - Dst: alert_cast<torrent_deleted_alert>
      Src: /src/libtorrent/test/swarm_suite.cpp:199,1
    - Dst: time_now
      Src: /src/libtorrent/test/swarm_suite.cpp:205,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/test/swarm_suite.cpp:207,1
    - Dst: seconds
      Src: /src/libtorrent/test/swarm_suite.cpp:207,1
    - Dst: std::printf
      Src: /src/libtorrent/test/swarm_suite.cpp:209,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/swarm_suite.cpp:210,1
    - Dst: time_now
      Src: /src/libtorrent/test/swarm_suite.cpp:210,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/test/swarm_suite.cpp:212,1
    - Dst: std::printf
      Src: /src/libtorrent/test/swarm_suite.cpp:215,1
    - Dst: message
      Src: /src/libtorrent/test/swarm_suite.cpp:215,1
    - Dst: time_now
      Src: /src/libtorrent/test/swarm_suite.cpp:217,1
    - Dst: std::printf
      Src: /src/libtorrent/test/swarm_suite.cpp:220,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/swarm_suite.cpp:221,1
    - Dst: time_now
      Src: /src/libtorrent/test/swarm_suite.cpp:221,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/swarm_suite.cpp:224,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/swarm_suite.cpp:225,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/swarm_suite.cpp:226,1
    - Dst: time_now
      Src: /src/libtorrent/test/swarm_suite.cpp:228,1
    - Dst: std::printf
      Src: /src/libtorrent/test/swarm_suite.cpp:230,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/swarm_suite.cpp:230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:231,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/swarm_suite.cpp:231,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:232,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/swarm_suite.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:234,1
    - Dst: exists
      Src: /src/libtorrent/test/swarm_suite.cpp:234,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:235,1
    - Dst: exists
      Src: /src/libtorrent/test/swarm_suite.cpp:235,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/swarm_suite.cpp:236,1
    - Dst: exists
      Src: /src/libtorrent/test/swarm_suite.cpp:236,1
    - Dst: remove_all
      Src: /src/libtorrent/test/swarm_suite.cpp:238,1
    - Dst: remove_all
      Src: /src/libtorrent/test/swarm_suite.cpp:239,1
    - Dst: remove_all
      Src: /src/libtorrent/test/swarm_suite.cpp:240,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 79
    argCount: 1
    argNames:
    - flags
    argTypes:
    - test_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 241
    functionName: test_swarm
    functionSourceFile: /src/libtorrent/test/swarm_suite.cpp
    functionUses: 2
    functionsReached:
    - print_ses_rate
    - std::this_thread::sleep_for
    - seconds
    - test_listen_interface
    - torrent_handle::status
    - print_alerts
    - message
    - setup_transfer
    - lt::session::wait_for_alert
    - settings_pack::set_bool
    - torrent_handle::flags
    - std::printf
    - time_now
    - libtorrent::total_milliseconds
    - lt::session::abort
    - lt::session::pop_alerts
    - milliseconds
    - total_milliseconds
    - lt::session::remove_torrent
    - TEST_CHECK
    - alert_cast<torrent_deleted_alert>
    - remove_all
    - std::tie
    - wait_for_alert
    - exists
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - torrent_handle::set_piece_deadline
    linkageType: ''
    returnType: void
    signature: void test_swarm(test_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:48,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:49,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/test/test_listen_socket.cpp:49,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:50,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' s'
    - addr
    - port
    - dev
    - ssl
    argTypes:
    - aux::listen_socket_t
    - address
    - int
    - std::string
    - tp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: test_equal
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - local_endpoint::address
    linkageType: ''
    returnType: void
    signature: "void test_equal(aux::listen_socket_t const& s, address addr, int port\n\t\t,
      std::string dev, tp ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:57,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' e1'
    - addr
    - port
    - dev
    - ssl
    argTypes:
    - aux::listen_endpoint_t
    - address
    - int
    - std::string
    - tp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: test_equal
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void test_equal(aux::listen_endpoint_t const& e1, address addr, int
      port\n\t\t, std::string dev, tp ssl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:66,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:67,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_listen_socket.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ip
    - device
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: ifc
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_interface
    signature: ip_interface ifc(char const* ip, char const* device, char const* netmask
      = nullptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:76,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:77,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_listen_socket.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ip
    - device
    - flags
    argTypes:
    - char*
    - char*
    - interface_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: ifc
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_interface
    signature: "ip_interface ifc(char const* ip, char const* device, interface_flags
      const flags\n\t\t, char const* netmask = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:86,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:87,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_listen_socket.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ip
    - device
    - gateway
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: rt
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 163
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_route
    signature: ip_route rt(char const* ip, char const* device, char const* gateway)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:97,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ip
    - port
    - ssl
    - flags
    argTypes:
    - char*
    - int
    - tp
    - aux::listen_socket_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, tp ssl,
      aux::listen_socket_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:105,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, tp ssl =
      tp::plaintext\n\t\t, std::string device = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:113,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ip
    - port
    - device
    argTypes:
    - char*
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, std::string
      device\n\t\t, tp ssl = tp::plaintext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:121,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ip
    - port
    - device
    - flags
    argTypes:
    - char*
    - int
    - std::string
    - aux::listen_socket_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, std::string
      device\n\t\t, aux::listen_socket_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:128,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ip
    - port
    - flags
    argTypes:
    - char*
    - int
    - aux::listen_socket_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, aux::listen_socket_flags_t
      const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<aux::listen_socket_t>
      Src: /src/libtorrent/test/test_listen_socket.cpp:135,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_listen_socket.cpp:136,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:136,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_listen_socket.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ip
    - port
    - original_port
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: sock
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - std::make_shared<aux::listen_socket_t>
    - local_endpoint
    - make_address
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: "std::shared_ptr<aux::listen_socket_t> sock(char const* ip, int const
      port\n\t\t, int const original_port, char const* device = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ip
    - port
    - dev
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: sock
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 1
    functionsReached:
    - sock
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> sock(char const* ip, int const
      port, char const* dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: sock
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 2
    functionsReached:
    - sock
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> sock(char const* ip, int const
      port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:48,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:49,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/test/test_listen_socket.cpp:49,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:50,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' s'
    - addr
    - port
    - dev
    - ssl
    argTypes:
    - aux::listen_socket_t
    - address
    - int
    - std::string
    - tp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: test_equal
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - local_endpoint::address
    linkageType: ''
    returnType: void
    signature: "void test_equal(aux::listen_socket_t const& s, address addr, int port\n\t\t,
      std::string dev, tp ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:57,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:58,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' e1'
    - addr
    - port
    - dev
    - ssl
    argTypes:
    - aux::listen_endpoint_t
    - address
    - int
    - std::string
    - tp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: test_equal
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void test_equal(aux::listen_endpoint_t const& e1, address addr, int
      port\n\t\t, std::string dev, tp ssl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:66,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:67,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_listen_socket.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ip
    - device
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: ifc
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_interface
    signature: ip_interface ifc(char const* ip, char const* device, char const* netmask
      = nullptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:76,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:77,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_listen_socket.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ip
    - device
    - flags
    argTypes:
    - char*
    - char*
    - interface_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: ifc
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_interface
    signature: "ip_interface ifc(char const* ip, char const* device, interface_flags
      const flags\n\t\t, char const* netmask = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:86,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:87,1
    - Dst: std::strncpy
      Src: /src/libtorrent/test/test_listen_socket.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ip
    - device
    - gateway
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: rt
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 163
    functionsReached:
    - std::strncpy
    - make_address
    linkageType: ''
    returnType: ip_route
    signature: ip_route rt(char const* ip, char const* device, char const* gateway)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:97,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ip
    - port
    - ssl
    - flags
    argTypes:
    - char*
    - int
    - tp
    - aux::listen_socket_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, tp ssl,
      aux::listen_socket_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:105,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, tp ssl =
      tp::plaintext\n\t\t, std::string device = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:113,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ip
    - port
    - device
    argTypes:
    - char*
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, std::string
      device\n\t\t, tp ssl = tp::plaintext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:121,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ip
    - port
    - device
    - flags
    argTypes:
    - char*
    - int
    - std::string
    - aux::listen_socket_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, std::string
      device\n\t\t, aux::listen_socket_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::listen_endpoint_t
      Src: /src/libtorrent/test/test_listen_socket.cpp:128,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ip
    - port
    - flags
    argTypes:
    - char*
    - int
    - aux::listen_socket_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: ep
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 47
    functionsReached:
    - libtorrent::aux::listen_endpoint_t
    - make_address
    linkageType: ''
    returnType: aux::listen_endpoint_t
    signature: "aux::listen_endpoint_t ep(char const* ip, int port\n\t\t, aux::listen_socket_flags_t
      const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<aux::listen_socket_t>
      Src: /src/libtorrent/test/test_listen_socket.cpp:135,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_listen_socket.cpp:136,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:136,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_listen_socket.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ip
    - port
    - original_port
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: sock
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 2
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - std::make_shared<aux::listen_socket_t>
    - local_endpoint
    - make_address
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: "std::shared_ptr<aux::listen_socket_t> sock(char const* ip, int const
      port\n\t\t, int const original_port, char const* device = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ip
    - port
    - dev
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: sock
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 3
    functionsReached:
    - sock
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> sock(char const* ip, int const
      port, char const* dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ip
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: sock
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 4
    functionsReached:
    - sock
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> sock(char const* ip, int const
      port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:154,1
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:154,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:159,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:159,1
    - Dst: partition_listen_sockets
      Src: /src/libtorrent/test/test_listen_socket.cpp:162,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:163,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_listen_socket.cpp:163,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:164,1
    - Dst: std::distance
      Src: /src/libtorrent/test/test_listen_socket.cpp:164,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:165,1
    - Dst: std::distance
      Src: /src/libtorrent/test/test_listen_socket.cpp:165,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:165,1
    - Dst: test_equal
      Src: /src/libtorrent/test/test_listen_socket.cpp:166,1
    - Dst: std::vector::front
      Src: /src/libtorrent/test/test_listen_socket.cpp:166,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_listen_socket.cpp:166,1
    - Dst: test_equal
      Src: /src/libtorrent/test/test_listen_socket.cpp:167,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_listen_socket.cpp:167,1
    - Dst: address_v4
      Src: /src/libtorrent/test/test_listen_socket.cpp:167,1
    - Dst: test_equal
      Src: /src/libtorrent/test/test_listen_socket.cpp:168,1
    - Dst: std::vector::front
      Src: /src/libtorrent/test/test_listen_socket.cpp:168,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_listen_socket.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 169
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sock
    - std::vector::size
    - std::distance
    - make_address_v4
    - std::vector::back
    - std::vector::front
    - partition_listen_sockets
    - std::vector::begin
    - ep
    - test_equal
    - std::vector::end
    - address_v4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partition_listen_sockets_wildcard2specific)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:174,1
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:174,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:179,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:179,1
    - Dst: partition_listen_sockets
      Src: /src/libtorrent/test/test_listen_socket.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:182,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:183,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_listen_socket.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sock
    - std::vector::size
    - partition_listen_sockets
    - std::vector::begin
    - ep
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partition_listen_sockets_port_change)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:189,1
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:189,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:194,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:195,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:196,1
    - Dst: partition_listen_sockets
      Src: /src/libtorrent/test/test_listen_socket.cpp:199,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:200,1
    - Dst: std::distance
      Src: /src/libtorrent/test/test_listen_socket.cpp:200,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:200,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:201,1
    - Dst: std::distance
      Src: /src/libtorrent/test/test_listen_socket.cpp:201,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:201,1
    - Dst: test_equal
      Src: /src/libtorrent/test/test_listen_socket.cpp:202,1
    - Dst: std::vector::front
      Src: /src/libtorrent/test/test_listen_socket.cpp:202,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_listen_socket.cpp:202,1
    - Dst: test_equal
      Src: /src/libtorrent/test/test_listen_socket.cpp:203,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_listen_socket.cpp:203,1
    - Dst: address_v4
      Src: /src/libtorrent/test/test_listen_socket.cpp:203,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:204,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_listen_socket.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::distance
    - sock
    - make_address_v4
    - std::vector::back
    - std::vector::size
    - std::vector::front
    - partition_listen_sockets
    - std::vector::begin
    - ep
    - test_equal
    - std::vector::end
    - address_v4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partition_listen_sockets_device_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:210,1
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:211,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:216,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:217,1
    - Dst: partition_listen_sockets
      Src: /src/libtorrent/test/test_listen_socket.cpp:219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:220,1
    - Dst: std::distance
      Src: /src/libtorrent/test/test_listen_socket.cpp:220,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:220,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:221,1
    - Dst: std::distance
      Src: /src/libtorrent/test/test_listen_socket.cpp:221,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:221,1
    - Dst: test_equal
      Src: /src/libtorrent/test/test_listen_socket.cpp:222,1
    - Dst: std::vector::front
      Src: /src/libtorrent/test/test_listen_socket.cpp:222,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_listen_socket.cpp:222,1
    - Dst: test_equal
      Src: /src/libtorrent/test/test_listen_socket.cpp:223,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_listen_socket.cpp:223,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_listen_socket.cpp:223,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:224,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_listen_socket.cpp:224,1
    - Dst: test_equal
      Src: /src/libtorrent/test/test_listen_socket.cpp:225,1
    - Dst: std::vector::front
      Src: /src/libtorrent/test/test_listen_socket.cpp:225,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_listen_socket.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::distance
    - sock
    - make_address_v4
    - std::vector::back
    - std::vector::size
    - std::vector::front
    - partition_listen_sockets
    - std::vector::begin
    - ep
    - test_equal
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partition_listen_sockets_device_ip_change)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:231,1
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:231,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:236,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:237,1
    - Dst: partition_listen_sockets
      Src: /src/libtorrent/test/test_listen_socket.cpp:240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:241,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:241,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:242,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_listen_socket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - sock
    - std::vector::empty
    - partition_listen_sockets
    - ep
    - std::vector::end
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partition_listen_sockets_original_port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:248,1
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:248,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:253,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:254,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:255,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:256,1
    - Dst: partition_listen_sockets
      Src: /src/libtorrent/test/test_listen_socket.cpp:259,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:260,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:260,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:261,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_listen_socket.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 262
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sock
    - std::vector::size
    - partition_listen_sockets
    - ep
    - std::vector::end
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partition_listen_sockets_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:267,1
    - Dst: sock
      Src: /src/libtorrent/test/test_listen_socket.cpp:267,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:272,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:273,1
    - Dst: partition_listen_sockets
      Src: /src/libtorrent/test/test_listen_socket.cpp:275,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:276,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:276,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:277,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_listen_socket.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sock
    - std::vector::size
    - partition_listen_sockets
    - std::vector::begin
    - ep
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(partition_listen_sockets_op_ports)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:283,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:284,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:285,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:286,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:287,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:288,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:293,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:299,1
    - Dst: expand_devices
      Src: /src/libtorrent/test/test_listen_socket.cpp:306,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:308,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:310,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:315,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:317,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 324
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - expand_devices
    - make_address
    - ifc
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_devices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_listen_socket.cpp:330,1
    - Dst: rt
      Src: /src/libtorrent/test/test_listen_socket.cpp:331,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:335,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:336,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:337,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:338,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:339,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:340,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:349,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:350,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:351,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:352,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:353,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:354,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:355,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:356,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:357,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:358,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:359,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:360,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:361,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:362,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:363,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:364,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:370,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:372,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_listen_socket.cpp:372,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:373,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:373,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:373,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:373,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:374,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:374,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:374,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:374,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:375,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:375,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:375,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:375,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:376,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:376,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:376,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:376,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:377,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:377,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:377,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:377,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:378,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:378,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:378,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:378,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:379,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:379,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:379,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:379,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:380,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:380,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:380,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:380,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:381,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:381,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:381,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:381,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:382,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:382,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:382,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:382,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:383,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:383,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:383,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:383,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:384,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:384,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:384,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:384,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:385,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:385,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:385,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:385,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:386,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:386,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:386,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:386,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:387,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:387,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:387,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:387,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:388,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:388,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:388,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:388,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:391,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_listen_socket.cpp:393,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_listen_socket.cpp:394,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_listen_socket.cpp:395,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:397,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_listen_socket.cpp:399,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_listen_socket.cpp:399,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:400,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:400,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:400,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:400,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:401,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:401,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:401,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:401,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:402,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:402,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:402,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:402,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:403,1
    - Dst: std::count
      Src: /src/libtorrent/test/test_listen_socket.cpp:403,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_listen_socket.cpp:403,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_listen_socket.cpp:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 404
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - std::vector::push_back
    - ifc
    - expand_unspecified_address
    - std::count
    - std::vector::clear
    - rt
    - std::vector::begin
    - ep
    - std::vector::end
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_unspecified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_listen_socket.cpp:417,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:420,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:421,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:423,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:425,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - ifc
    - expand_unspecified_address
    - rt
    - ep
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_unspecified_no_default)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_listen_socket.cpp:436,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:439,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:440,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:441,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - flags
    - ' expected'
    argTypes:
    - interface_flags
    - eps_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 443
    functionName: test_expand_unspecified_if_flags
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - ifc
    - expand_unspecified_address
    - rt
    - ep
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void test_expand_unspecified_if_flags(interface_flags const flags\n\t,
      eps_t const& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:448,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:449,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:451,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - address
    - ' expected'
    argTypes:
    - char*
    - eps_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: test_expand_unspecified_if_address
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - expand_unspecified_address
    - ep
    - TEST_CHECK
    - ifc
    linkageType: ''
    returnType: void
    signature: void test_expand_unspecified_if_address(char const* address, eps_t
      const& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt
      Src: /src/libtorrent/test/test_listen_socket.cpp:436,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:439,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:440,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:441,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - flags
    - ' expected'
    argTypes:
    - interface_flags
    - eps_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 443
    functionName: test_expand_unspecified_if_flags
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - ifc
    - expand_unspecified_address
    - rt
    - ep
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void test_expand_unspecified_if_flags(interface_flags const flags\n\t,
      eps_t const& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:448,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:449,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:451,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - address
    - ' expected'
    argTypes:
    - char*
    - eps_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: test_expand_unspecified_if_address
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - expand_unspecified_address
    - ep
    - TEST_CHECK
    - ifc
    linkageType: ''
    returnType: void
    signature: void test_expand_unspecified_if_address(char const* address, eps_t
      const& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand_unspecified_if_flags
      Src: /src/libtorrent/test/test_listen_socket.cpp:460,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:460,1
    - Dst: test_expand_unspecified_if_flags
      Src: /src/libtorrent/test/test_listen_socket.cpp:461,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - test_expand_unspecified_if_flags
    - ep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_unspecified_ppp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand_unspecified_if_flags
      Src: /src/libtorrent/test/test_listen_socket.cpp:466,1
    - Dst: test_expand_unspecified_if_flags
      Src: /src/libtorrent/test/test_listen_socket.cpp:467,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - test_expand_unspecified_if_flags
    - ep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_unspecified_down_if)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand_unspecified_if_flags
      Src: /src/libtorrent/test/test_listen_socket.cpp:472,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - test_expand_unspecified_if_flags
    - ep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_unspecified_if_loopback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand_unspecified_if_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:477,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - test_expand_unspecified_if_address
    - ep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_unspecified_global_address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand_unspecified_if_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:482,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - test_expand_unspecified_if_address
    - ep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_unspecified_link_local)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_expand_unspecified_if_address
      Src: /src/libtorrent/test/test_listen_socket.cpp:487,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - test_expand_unspecified_if_address
    - ep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(expand_unspecified_loopback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interface_to_endpoints
      Src: /src/libtorrent/test/test_listen_socket.cpp:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' iface'
    - ifs
    argTypes:
    - listen_interface_t
    - span<ip_interface const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: to_endpoint
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - interface_to_endpoints
    linkageType: ''
    returnType: std::vector<aux::listen_endpoint_t>
    signature: "std::vector<aux::listen_endpoint_t> to_endpoint(listen_interface_t
      const& iface\n\t, span<ip_interface const> const ifs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_listen_socket.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: ift
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: listen_interface_t
    signature: "listen_interface_t ift(char const* dev, int const port, bool const
      ssl = false\n\t, bool const l= false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interface_to_endpoints
      Src: /src/libtorrent/test/test_listen_socket.cpp:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' iface'
    - ifs
    argTypes:
    - listen_interface_t
    - span<ip_interface const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: to_endpoint
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - interface_to_endpoints
    linkageType: ''
    returnType: std::vector<aux::listen_endpoint_t>
    signature: "std::vector<aux::listen_endpoint_t> to_endpoint(listen_interface_t
      const& iface\n\t, span<ip_interface const> const ifs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_listen_socket.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - port
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: ift
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: listen_interface_t
    signature: "listen_interface_t ift(char const* dev, int const port, bool const
      ssl = false\n\t, bool const l= false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:511,1
    - Dst: to_endpoint
      Src: /src/libtorrent/test/test_listen_socket.cpp:511,1
    - Dst: ift
      Src: /src/libtorrent/test/test_listen_socket.cpp:511,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:511,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:516,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:517,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:518,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:520,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:523,1
    - Dst: to_endpoint
      Src: /src/libtorrent/test/test_listen_socket.cpp:523,1
    - Dst: ift
      Src: /src/libtorrent/test/test_listen_socket.cpp:523,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:524,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:525,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:527,1
    - Dst: to_endpoint
      Src: /src/libtorrent/test/test_listen_socket.cpp:527,1
    - Dst: ift
      Src: /src/libtorrent/test/test_listen_socket.cpp:527,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:528,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:529,1
    - Dst: ifc
      Src: /src/libtorrent/test/test_listen_socket.cpp:532,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_listen_socket.cpp:535,1
    - Dst: to_endpoint
      Src: /src/libtorrent/test/test_listen_socket.cpp:535,1
    - Dst: ift
      Src: /src/libtorrent/test/test_listen_socket.cpp:535,1
    - Dst: ep
      Src: /src/libtorrent/test/test_listen_socket.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 537
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_listen_socket.cpp
    functionUses: 0
    functionsReached:
    - to_endpoint
    - ifc
    - ep
    - ift
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(interface_to_endpoint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::close
      Src: /src/libtorrent/test/broadcast_socket.hpp:61,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/test/broadcast_socket.hpp:71,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/test/broadcast_socket.hpp:78,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/test/broadcast_socket.hpp:80,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/test/broadcast_socket.hpp:91,1
    - Dst: address_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:97,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:98,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.hpp:98,1
    - Dst: make_network_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:103,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.hpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 140
    functionName: libtorrent::broadcast_socket
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - libtorrent::aux::is_v4
    - libtorrent::local_endpoint
    - make_network_v4
    - libtorrent::close
    - libtorrent::move
    - address_v4
    linkageType: ''
    returnType: class EXPORT
    signature: class EXPORT broadcast_socket
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::close
      Src: /src/libtorrent/test/broadcast_socket.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: ~broadcast_socket()
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::close
    linkageType: ''
    returnType: void
    signature: void ~broadcast_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/test/broadcast_socket.hpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::num_send_sockets
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_send_sockets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/test/broadcast_socket.hpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::shared_ptr<udp::socket>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: libtorrent::socket_entry
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void socket_entry(std::shared_ptr<udp::socket> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/test/broadcast_socket.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - ' mask'
    argTypes:
    - std::shared_ptr<udp::socket>
    - address_v4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: libtorrent::socket_entry
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void socket_entry(std::shared_ptr<udp::socket> s\n\t\t\t\t, address_v4
      const& mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::close
      Src: /src/libtorrent/test/broadcast_socket.hpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:97,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:98,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.hpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: libtorrent::can_broadcast
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::is_v4
    - address_v4
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: bool
    signature: bool can_broadcast() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_network_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:103,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.hpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: libtorrent::broadcast_address
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - make_network_v4
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: address_v4
    signature: address_v4 broadcast_address() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::close
      Src: /src/libtorrent/test/broadcast_socket.hpp:61,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/test/broadcast_socket.hpp:71,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/test/broadcast_socket.hpp:78,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/test/broadcast_socket.hpp:80,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/test/broadcast_socket.hpp:91,1
    - Dst: address_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:97,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:98,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.hpp:98,1
    - Dst: make_network_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:103,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.hpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 140
    functionName: libtorrent::broadcast_socket
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - libtorrent::aux::is_v4
    - libtorrent::local_endpoint
    - make_network_v4
    - libtorrent::close
    - libtorrent::move
    - address_v4
    linkageType: ''
    returnType: class EXPORT
    signature: class EXPORT broadcast_socket
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/test/broadcast_socket.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: ~broadcast_socket()
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~broadcast_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/test/broadcast_socket.hpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::num_send_sockets
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_send_sockets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/test/broadcast_socket.hpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::shared_ptr<udp::socket>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: libtorrent::socket_entry
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void socket_entry(std::shared_ptr<udp::socket> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/test/broadcast_socket.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - ' mask'
    argTypes:
    - std::shared_ptr<udp::socket>
    - address_v4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: libtorrent::socket_entry
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void socket_entry(std::shared_ptr<udp::socket> s\n\t\t\t\t, address_v4
      const& mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::close
      Src: /src/libtorrent/test/broadcast_socket.hpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:97,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:98,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.hpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: libtorrent::can_broadcast
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::is_v4
    - address_v4
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: bool
    signature: bool can_broadcast() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_network_v4
      Src: /src/libtorrent/test/broadcast_socket.hpp:103,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/test/broadcast_socket.hpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: libtorrent::broadcast_address
    functionSourceFile: /src/libtorrent/test/broadcast_socket.hpp
    functionUses: 0
    functionsReached:
    - make_network_v4
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: address_v4
    signature: address_v4 broadcast_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - a_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: A
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void A(int a_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: A
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void A(A&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ~A()
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~A()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: B
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void B(int a_, int b_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: B
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void B(B&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: type
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - c_
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: C
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 8
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void C(int a_, int c_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: C
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void C(C&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: type
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: D
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void D()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: D
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void D(D const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: D
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void D(D&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: ~D()
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~D()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: E
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void E(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: E
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void E(E&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: F
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void F(int f_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' f_'
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: F
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void F(F const& f_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' f_'
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: F
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void F(F&& f_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:123,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: ~F()
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void ~F()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: '& operator=(F const& f)'
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: F
    signature: F & operator=(F const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:135,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: check_invariant
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 4
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void check_invariant()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - base
    - v
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: G
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void G(int base, int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: G
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void G(G&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: type
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - a_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: A
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void A(int a_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: A
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void A(A&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ~A()
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~A()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: B
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void B(int a_, int b_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: B
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void B(B&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: type
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - c_
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: C
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 8
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void C(int a_, int c_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: C
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void C(C&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: type
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: D
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void D()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: D
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void D(D const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: D
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void D(D&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: ~D()
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~D()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: E
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void E(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: E
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void E(E&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - f_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: F
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void F(int f_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' f_'
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: F
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void F(F const& f_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:115,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' f_'
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: F
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void F(F&& f_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:123,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: ~F()
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void ~F()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: '& operator=(F const& f)'
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: F
    signature: F & operator=(F const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:135,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: check_invariant
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 4
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void check_invariant()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - base
    - v
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: G
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void G(int base, int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: G
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void G(G&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: type
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:165,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:165,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:166,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:167,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:167,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:169,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:169,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:170,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:171,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:171,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:173,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:173,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:175,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:175,1
    - Dst: heterogeneous_queue::get_pointers
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:178,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:180,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:180,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:180,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:181,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:182,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:183,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:183,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:184,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:184,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:185,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:185,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:186,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:186,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:188,1
    - Dst: static_cast<B*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:188,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:189,1
    - Dst: static_cast<B*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:189,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:191,1
    - Dst: static_cast<B*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:191,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:192,1
    - Dst: static_cast<B*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:192,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:194,1
    - Dst: static_cast<B*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:194,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:195,1
    - Dst: static_cast<B*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:195,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:197,1
    - Dst: static_cast<C*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:197,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:198,1
    - Dst: static_cast<C*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:198,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:200,1
    - Dst: static_cast<C*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:200,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:201,1
    - Dst: static_cast<C*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:201,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:203,1
    - Dst: static_cast<C*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:203,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:204,1
    - Dst: static_cast<C*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 205
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - static_cast<C*>
    - std::vector::size
    - heterogeneous_queue::emplace_back
    - static_cast<B*>
    - heterogeneous_queue::size
    - type
    - heterogeneous_queue::get_pointers
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(emplace_back)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:212,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:213,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:214,1
    - Dst: heterogeneous_queue::get_pointers
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:217,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:219,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:219,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:220,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:220,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:221,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:221,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:222,1
    - Dst: static_cast<G*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:223,1
    - Dst: static_cast<G*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:223,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:224,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:224,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:225,1
    - Dst: static_cast<G*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:226,1
    - Dst: static_cast<G*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:227,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:227,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:228,1
    - Dst: static_cast<B*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:228,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:229,1
    - Dst: static_cast<B*>
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 230
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - heterogeneous_queue::emplace_back
    - static_cast<G*>
    - heterogeneous_queue::size
    - static_cast<B*>
    - type
    - heterogeneous_queue::get_pointers
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(emplace_back_over_aligned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:240,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:241,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:243,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:243,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:245,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:246,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:247,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:247,1
    - Dst: heterogeneous_queue::get_pointers
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:250,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:251,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:251,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:251,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:253,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:253,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:254,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:255,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:255,1
    - Dst: heterogeneous_queue::get_pointers
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:257,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:258,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:258,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:258,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:260,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:260,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:261,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:261,1
    - Dst: heterogeneous_queue::swap
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:263,1
    - Dst: heterogeneous_queue::get_pointers
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:265,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:266,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:266,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:267,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:267,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:267,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:269,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:269,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:270,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:270,1
    - Dst: heterogeneous_queue::get_pointers
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:272,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:273,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:273,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:274,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:274,1
    - Dst: heterogeneous_queue::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:274,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:276,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:276,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:277,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:277,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:278,1
    - Dst: type
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 279
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - heterogeneous_queue::emplace_back
    - heterogeneous_queue::size
    - type
    - heterogeneous_queue::get_pointers
    - heterogeneous_queue::swap
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:287,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:289,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:290,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:291,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:292,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:293,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:294,1
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:295,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:296,1
    - Dst: heterogeneous_queue::clear
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:298,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 301
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - heterogeneous_queue::emplace_back
    - TEST_EQUAL
    - heterogeneous_queue::clear
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(destruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:313,1
    - Dst: heterogeneous_queue::get_pointers
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:316,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:318,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:318,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:320,1
    - Dst: check_invariant
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:322,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:323,1
    - Dst: heterogeneous_queue::clear
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 328
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - check_invariant
    - heterogeneous_queue::clear
    - heterogeneous_queue::emplace_back
    - heterogeneous_queue::get_pointers
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(copy_move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heterogeneous_queue::emplace_back
      Src: /src/libtorrent/test/test_heterogeneous_queue.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 339
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_heterogeneous_queue.cpp
    functionUses: 0
    functionsReached:
    - heterogeneous_queue::emplace_back
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(nontrivial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: implemented_features
    functionSourceFile: /src/libtorrent/test/test_direct_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: feature_flags_t
    signature: feature_flags_t implemented_features() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string_value
      Src: /src/libtorrent/test/test_direct_dht.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' message'
    - ' response'
    argTypes:
    - bdecode_node
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: on_dht_request
    functionSourceFile: /src/libtorrent/test/test_direct_dht.cpp
    functionUses: 0
    functionsReached:
    - dict_find_string_value
    linkageType: ''
    returnType: bool
    signature: "bool on_dht_request(string_view /* query */\n\t\t, udp::endpoint const&
      /* source */, bdecode_node const& message\n\t\t, entry& response) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_direct_dht.cpp:76,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_direct_dht.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_direct_dht.cpp:79,1
    - Dst: pop_alerts
      Src: /src/libtorrent/test/test_direct_dht.cpp:82,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_direct_dht.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_direct_dht.cpp:83,1
    - Dst: type
      Src: /src/libtorrent/test/test_direct_dht.cpp:85,1
    - Dst: static_cast<dht_direct_response_alert*>
      Src: /src/libtorrent/test/test_direct_dht.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: get_direct_response
    functionSourceFile: /src/libtorrent/test/test_direct_dht.cpp
    functionUses: 0
    functionsReached:
    - seconds
    - std::vector::begin
    - wait_for_alert
    - static_cast<dht_direct_response_alert*>
    - type
    - std::vector::end
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: dht_direct_response_alert
    signature: dht_direct_response_alert * get_direct_response(lt::session& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: implemented_features
    functionSourceFile: /src/libtorrent/test/test_direct_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: feature_flags_t
    signature: feature_flags_t implemented_features() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string_value
      Src: /src/libtorrent/test/test_direct_dht.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' message'
    - ' response'
    argTypes:
    - bdecode_node
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: on_dht_request
    functionSourceFile: /src/libtorrent/test/test_direct_dht.cpp
    functionUses: 0
    functionsReached:
    - dict_find_string_value
    linkageType: ''
    returnType: bool
    signature: "bool on_dht_request(string_view /* query */\n\t\t, udp::endpoint const&
      /* source */, bdecode_node const& message\n\t\t, entry& response) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_alert
      Src: /src/libtorrent/test/test_direct_dht.cpp:76,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_direct_dht.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_direct_dht.cpp:79,1
    - Dst: pop_alerts
      Src: /src/libtorrent/test/test_direct_dht.cpp:82,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_direct_dht.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_direct_dht.cpp:83,1
    - Dst: type
      Src: /src/libtorrent/test/test_direct_dht.cpp:85,1
    - Dst: static_cast<dht_direct_response_alert*>
      Src: /src/libtorrent/test/test_direct_dht.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: get_direct_response
    functionSourceFile: /src/libtorrent/test/test_direct_dht.cpp
    functionUses: 0
    functionsReached:
    - seconds
    - std::vector::begin
    - wait_for_alert
    - static_cast<dht_direct_response_alert*>
    - type
    - std::vector::end
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: dht_direct_response_alert
    signature: dht_direct_response_alert * get_direct_response(lt::session& ses)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_direct_dht.cpp:101,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_direct_dht.cpp:102,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_direct_dht.cpp:103,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_direct_dht.cpp:104,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_direct_dht.cpp:105,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_direct_dht.cpp:106,1
    - Dst: session_params
      Src: /src/libtorrent/test/test_direct_dht.cpp:107,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_direct_dht.cpp:108,1
    - Dst: session_params
      Src: /src/libtorrent/test/test_direct_dht.cpp:109,1
    - Dst: lt::session::add_extension
      Src: /src/libtorrent/test/test_direct_dht.cpp:111,1
    - Dst: std::make_shared<test_plugin>
      Src: /src/libtorrent/test/test_direct_dht.cpp:111,1
    - Dst: lt::session::dht_direct_request
      Src: /src/libtorrent/test/test_direct_dht.cpp:117,1
    - Dst: uep
      Src: /src/libtorrent/test/test_direct_dht.cpp:117,1
    - Dst: lt::session::listen_port
      Src: /src/libtorrent/test/test_direct_dht.cpp:117,1
    - Dst: client_data_t
      Src: /src/libtorrent/test/test_direct_dht.cpp:118,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/test/test_direct_dht.cpp:118,1
    - Dst: get_direct_response
      Src: /src/libtorrent/test/test_direct_dht.cpp:120,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_direct_dht.cpp:121,1
    - Dst: dht_direct_response_alert*::response
      Src: /src/libtorrent/test/test_direct_dht.cpp:124,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:125,1
    - Dst: dht_direct_response_alert*::endpoint::address
      Src: /src/libtorrent/test/test_direct_dht.cpp:125,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_direct_dht.cpp:125,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:126,1
    - Dst: dht_direct_response_alert*::endpoint::port
      Src: /src/libtorrent/test/test_direct_dht.cpp:126,1
    - Dst: lt::session::listen_port
      Src: /src/libtorrent/test/test_direct_dht.cpp:126,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:127,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_direct_dht.cpp:127,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:128,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_direct_dht.cpp:128,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:129,1
    - Dst: dht_direct_response_alert*::userdata::get
      Src: /src/libtorrent/test/test_direct_dht.cpp:129,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/test/test_direct_dht.cpp:129,1
    - Dst: lt::session::dht_direct_request
      Src: /src/libtorrent/test/test_direct_dht.cpp:134,1
    - Dst: uep
      Src: /src/libtorrent/test/test_direct_dht.cpp:134,1
    - Dst: client_data_t
      Src: /src/libtorrent/test/test_direct_dht.cpp:135,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/test/test_direct_dht.cpp:135,1
    - Dst: get_direct_response
      Src: /src/libtorrent/test/test_direct_dht.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_direct_dht.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:141,1
    - Dst: dht_direct_response_alert*::endpoint::address
      Src: /src/libtorrent/test/test_direct_dht.cpp:141,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_direct_dht.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:142,1
    - Dst: dht_direct_response_alert*::endpoint::port
      Src: /src/libtorrent/test/test_direct_dht.cpp:142,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:143,1
    - Dst: dht_direct_response_alert*::response
      Src: /src/libtorrent/test/test_direct_dht.cpp:143,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_direct_dht.cpp:144,1
    - Dst: dht_direct_response_alert*::userdata::get
      Src: /src/libtorrent/test/test_direct_dht.cpp:144,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/test/test_direct_dht.cpp:144,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_direct_dht.cpp:147,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_direct_dht.cpp:147,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_direct_dht.cpp:148,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_direct_dht.cpp:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 150
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_direct_dht.cpp
    functionUses: 0
    functionsReached:
    - lt::session::add_extension
    - std::vector::emplace_back
    - std::make_shared<test_plugin>
    - lt::session::listen_port
    - reinterpret_cast<int*>
    - bdecode_node::type
    - lt::session::dht_direct_request
    - dht_direct_response_alert*::endpoint::address
    - dht_direct_response_alert*::response
    - client_data_t
    - make_address
    - settings_pack::set_bool
    - bdecode_node::dict_find_dict
    - uep
    - TEST_EQUAL
    - dht_direct_response_alert*::endpoint::port
    - lt::session::abort
    - session_params
    - dht_direct_response_alert*::userdata::get
    - TEST_CHECK
    - get_direct_response
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(direct_dht_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_dht.cpp:83,1
    - Dst: bytes::data
      Src: /src/libtorrent/test/test_dht.cpp:84,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_dht.cpp:85,1
    - Dst: bytes::data
      Src: /src/libtorrent/test/test_dht.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' sk'
    argTypes:
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: get_test_keypair
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::from_hex
    - bytes::data
    linkageType: ''
    returnType: void
    signature: void get_test_keypair(public_key& pk, secret_key& sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: prev_seq
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - sequence_number
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number prev_seq(sequence_number s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: next_seq
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - sequence_number
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number next_seq(sequence_number s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' dst'
    - ' add'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: add_and_replace
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_and_replace(node_id& dst, node_id const& add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<node_entry>*::push_back
      Src: /src/libtorrent/test/test_dht.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nv
    - ' n'
    argTypes:
    - std::vector<node_entry>*
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: node_push_back
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - std::vector<node_entry>*::push_back
    linkageType: ''
    returnType: void
    signature: void node_push_back(std::vector<node_entry>* nv, node_entry const&
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: nop_node
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: has_quota
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_quota() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:129,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_dht.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' msg'
    - ' ep'
    argTypes:
    - entry
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: send_packet
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::make_pair
    linkageType: ''
    returnType: bool
    signature: bool send_packet(aux::listen_socket_handle const&, entry& msg, udp::endpoint
      const& ep) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<aux::listen_socket_t>
      Src: /src/libtorrent/test/test_dht.cpp:136,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:137,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/test/test_dht.cpp:137,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/test/test_dht.cpp:137,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/test/test_dht.cpp:138,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/test/test_dht.cpp:138,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: dummy_listen_socket
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - udp::endpoint::address
    - auto::external_address::cast_vote
    - local_endpoint
    - udp::endpoint::port
    - std::make_shared<aux::listen_socket_t>
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> dummy_listen_socket(udp::endpoint
      src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<aux::listen_socket_t>
      Src: /src/libtorrent/test/test_dht.cpp:145,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:146,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:146,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/test/test_dht.cpp:147,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:147,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: dummy_listen_socket4
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - auto::external_address::cast_vote
    - local_endpoint
    - std::make_shared<aux::listen_socket_t>
    - addr4
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> dummy_listen_socket4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<aux::listen_socket_t>
      Src: /src/libtorrent/test/test_dht.cpp:154,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:155,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:155,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/test/test_dht.cpp:156,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:156,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/test_dht.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: dummy_listen_socket6
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - addr6
    - rand_v6
    - auto::external_address::cast_vote
    - local_endpoint
    - std::make_shared<aux::listen_socket_t>
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> dummy_listen_socket6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: get_foreign_node_stub
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: node * get_foreign_node_stub(node_id const&, std::string const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_dht.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: generate_next
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash generate_next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_dht.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/test/test_dht.cpp:176,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ep
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: find_packet
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::find_if
    linkageType: ''
    returnType: std::list<std::pair<udp::endpoint, entry>>::iterator
    signature: std::list<std::pair<udp::endpoint, entry>>::iterator find_packet(udp::endpoint
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:185,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' e'
    - ' l'
    argTypes:
    - entry
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: node_from_entry
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void node_from_entry(entry const& e, bdecode_node& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/test/test_dht.cpp:193,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_dht.cpp:197,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:198,1
    - Dst: std::string::resize
      Src: /src/libtorrent/test/test_dht.cpp:199,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_dht.cpp:199,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_dht.cpp:199,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:200,1
    - Dst: entry
      Src: /src/libtorrent/test/test_dht.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::set<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: write_peers
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - push_back
    - entry
    - std::string::begin
    - entry::list
    - std::size_t
    - std::string::resize
    linkageType: ''
    returnType: entry
    signature: entry write_peers(std::set<tcp::endpoint> const& peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: '& info_hash(char const* i)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: msg_args
    signature: msg_args & info_hash(char const* i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: '& name(char const* n)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & name(char const* n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: '& token(std::string t)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & token(std::string t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: '& port(int p)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & port(int p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/test/test_dht.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: '& target(sha1_hash const& t)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: msg_args
    signature: msg_args & target(sha1_hash const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: '& value(entry const& v)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & value(entry const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: '& scrape(bool s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & scrape(bool s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: '& seed(bool s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & seed(bool s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: '& key(public_key const& k)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & key(public_key const& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: '& sig(signature const& s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & sig(signature const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: '& seq(sequence_number s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & seq(sequence_number s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: '& cas(sequence_number c)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & cas(sequence_number c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/test/test_dht.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: '& nid(sha1_hash const& n)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: msg_args
    signature: msg_args & nid(sha1_hash const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/test/test_dht.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: '& salt(span<char const> s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::empty
    linkageType: ''
    returnType: msg_args
    signature: msg_args & salt(span<char const> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/test/test_dht.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: '& want(std::string w)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - list
    linkageType: ''
    returnType: msg_args
    signature: msg_args & want(std::string w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:253,1
    - Dst: libtorrent::dht::write_nodes_entry
      Src: /src/libtorrent/test/test_dht.cpp:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - std::vector<node_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: '& nodes(std::vector<node_entry> const& n)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::dht::write_nodes_entry
    linkageType: ''
    returnType: msg_args
    signature: msg_args & nodes(std::vector<node_entry> const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:256,1
    - Dst: libtorrent::dht::write_nodes_entry
      Src: /src/libtorrent/test/test_dht.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - std::vector<node_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: '& nodes6(std::vector<node_entry> const& n)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::dht::write_nodes_entry
    linkageType: ''
    returnType: msg_args
    signature: msg_args & nodes6(std::vector<node_entry> const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:259,1
    - Dst: dict
      Src: /src/libtorrent/test/test_dht.cpp:259,1
    - Dst: write_peers
      Src: /src/libtorrent/test/test_dht.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::set<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: '& peers(std::set<tcp::endpoint> const& p)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - empty
    - dict
    - write_peers
    linkageType: ''
    returnType: msg_args
    signature: msg_args & peers(std::set<tcp::endpoint> const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_dht.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interval
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: '& interval(time_duration interval)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    linkageType: ''
    returnType: msg_args
    signature: msg_args & interval(time_duration interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: '& num(int num)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & num(int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:269,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_dht.cpp:270,1
    - Dst: data
      Src: /src/libtorrent/test/test_dht.cpp:270,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' samples'
    argTypes:
    - std::vector<sha1_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: '& samples(std::vector<sha1_hash> const& samples)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - span<char const>
    - size
    - reinterpret_cast<char const*>
    - data
    linkageType: ''
    returnType: msg_args
    signature: msg_args & samples(std::vector<sha1_hash> const& samples)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:278,1
    - Dst: bdecode_node*::clear
      Src: /src/libtorrent/test/test_dht.cpp:283,1
    - Dst: dict
      Src: /src/libtorrent/test/test_dht.cpp:289,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_dht.cpp:289,1
    - Dst: generate_next
      Src: /src/libtorrent/test/test_dht.cpp:289,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:291,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:295,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:296,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_dht.cpp:296,1
    - Dst: incoming
      Src: /src/libtorrent/test/test_dht.cpp:299,1
    - Dst: find_packet
      Src: /src/libtorrent/test/test_dht.cpp:303,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:306,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:308,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:312,1
    - Dst: erase
      Src: /src/libtorrent/test/test_dht.cpp:313,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:319,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - ' node'
    - msg
    - ' ep'
    - reply
    argTypes:
    - node
    - char*
    - udp::endpoint
    - bdecode_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 324
    functionName: send_dht_request
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - generate_next
    - bdecode_node*::clear
    - node_from_entry
    - std::make_pair
    - std::printf
    - erase
    - end
    - dict
    - msg_args
    - incoming
    - error_code::message
    - find_packet
    - bdecode
    - bencode
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: "void send_dht_request(node& node, char const* msg, udp::endpoint const&
      ep\n\t, bdecode_node* reply, msg_args const& args = msg_args()\n\t, char const*
      t = \"10\", bool has_response = true)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:327,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/test/test_dht.cpp:331,1
    - Dst: dict
      Src: /src/libtorrent/test/test_dht.cpp:334,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_dht.cpp:334,1
    - Dst: generate_next
      Src: /src/libtorrent/test/test_dht.cpp:334,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:336,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:340,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:341,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_dht.cpp:341,1
    - Dst: incoming
      Src: /src/libtorrent/test/test_dht.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' node'
    - ' request'
    - ' ep'
    argTypes:
    - node
    - bdecode_node
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 345
    functionName: send_dht_response
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - generate_next
    - dict_find_string_value
    - std::make_pair
    - std::printf
    - dict
    - msg_args
    - incoming
    - error_code::message
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: "void send_dht_response(node& node, bdecode_node const& request, udp::endpoint
      const& ep\n\t, msg_args const& args = msg_args())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_dht.cpp:353,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_dht.cpp:354,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:361,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_dht.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - nxt
    - num
    argTypes:
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 363
    functionName: announce_item
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - hasher
    - bencode
    - Catch::Generators::random
    linkageType: ''
    returnType: void
    signature: void announce_item(sha1_hash nxt, int const num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:380,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:381,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:396,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:399,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:399,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:400,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:405,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:405,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:406,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:407,1
    - Dst: memcpy
      Src: /src/libtorrent/test/test_dht.cpp:413,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:413,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/test/test_dht.cpp:413,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:415,1
    - Dst: address
      Src: /src/libtorrent/test/test_dht.cpp:415,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:418,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:419,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:430,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:433,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:434,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:434,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:436,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:436,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:440,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:440,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:441,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:442,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:451,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:452,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:465,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_dht.cpp:468,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_dht.cpp:468,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:473,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_dht.cpp:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - ' node'
    - eps
    - items
    - num_items
    argTypes:
    - node
    - udp::endpoint*
    - announce_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 474
    functionName: announce_immutable_items
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - TEST_EQUAL
    - print_entry
    - address_v4::bytes_type::size
    - address
    - verify_message
    - memcpy
    - std::set::begin
    - msg_args
    - std::set::size
    - send_dht_request
    - string_ptr
    - std::printf
    - string_value
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: "void announce_immutable_items(node& node, udp::endpoint const* eps\n\t,
      announce_item const* items, int num_items)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ' e'
    - ' ref'
    argTypes:
    - int
    - node_entry
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: sum_distance_exp
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - distance_exp
    linkageType: ''
    returnType: int
    signature: int sum_distance_exp(int s, node_entry const& e, node_id const& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:485,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:485,1
    - Dst: begin
      Src: /src/libtorrent/test/test_dht.cpp:485,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: get_peers_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void get_peers_cb(std::vector<tcp::endpoint> const& peers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:495,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' i'
    - a
    argTypes:
    - dht::item
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: get_mutable_item_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - empty
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_cb(dht::item const& i, bool a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:501,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:502,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:504,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - dht::item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 507
    functionName: put_mutable_item_data_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - empty
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void put_mutable_item_data_cb(dht::item& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num
    - expect
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: put_mutable_item_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void put_mutable_item_cb(dht::item const&, int num, int expect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:516,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - dht::item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: get_immutable_item_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - empty
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_cb(dht::item const& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num
    - expect
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: put_immutable_item_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void put_immutable_item_cb(int num, int expect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/test/test_dht.cpp:530,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_dht.cpp:530,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' addr'
    argTypes:
    - aux::listen_socket_handle
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 532
    functionName: set_external_address
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - get
    - cast_vote
    - rand_v4
    linkageType: ''
    returnType: void
    signature: "void set_external_address(aux::listen_socket_handle const& s, address
      const& addr\n\t\t, address const& /*source*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/test/test_dht.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: get_listen_port
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: int
    signature: int get_listen_port(aux::transport, aux::listen_socket_handle const&
      s) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 537
    functionName: get_peers
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_peers(sha1_hash const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 539
    functionName: outgoing_get_peers
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void outgoing_get_peers(sha1_hash const& /*target*/\n\t\t, sha1_hash
      const& /*sent_target*/, udp::endpoint const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: announce
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce(sha1_hash const&, address const&, int) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: should_log
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log(module_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/test/test_dht.cpp:546,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/test/test_dht.cpp:552,1
    - Dst: va_end
      Src: /src/libtorrent/test/test_dht.cpp:556,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:557,1
    - Dst: emplace_back
      Src: /src/libtorrent/test/test_dht.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 559
    functionName: log
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 41
    functionsReached:
    - va_start
    - emplace_back
    - va_end
    - std::vsnprintf
    - std::printf
    linkageType: ''
    returnType: void
    signature: void log(dht_logger::module_t, char const* fmt, ...) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: log_packet
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void log_packet(message_direction_t, span<char const>\n\t\t, udp::endpoint
      const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    functionName: on_dht_request
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_dht_request(string_view\n\t\t, dht::msg const&, entry&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: ~obs()
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~obs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht.cpp:576,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht.cpp:577,1
    - Dst: aux::session_settings::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: test_settings
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - aux::session_settings::set_bool
    - aux::session_settings::set_int
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings test_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:585,1
    - Dst: dummy_listen_socket
      Src: /src/libtorrent/test/test_dht.cpp:586,1
    - Dst: dht_default_storage_constructor
      Src: /src/libtorrent/test/test_dht.cpp:587,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:590,1
    - Dst: update_node_ids
      Src: /src/libtorrent/test/test_dht.cpp:592,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_dht.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 593
    functionName: dht_test_setup
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - dht_default_storage_constructor
    - libtorrent::min
    - node_id
    - dummy_listen_socket
    - test_settings
    - update_node_ids
    linkageType: ''
    returnType: void
    signature: void dht_test_setup(udp::endpoint src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:653,1
    - Dst: num_global_nodes
      Src: /src/libtorrent/test/test_dht.cpp:654,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:655,1
    - Dst: id
      Src: /src/libtorrent/test/test_dht.cpp:655,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:660,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:660,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:663,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/test/test_dht.cpp:664,1
    - Dst: auto::replacements::size
      Src: /src/libtorrent/test/test_dht.cpp:666,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/test/test_dht.cpp:671,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:676,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:676,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/test/test_dht.cpp:680,1
    - Dst: auto::replacements::size
      Src: /src/libtorrent/test/test_dht.cpp:681,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_dht.cpp:685,1
    - Dst: bucket_t::begin
      Src: /src/libtorrent/test/test_dht.cpp:685,1
    - Dst: bucket_t::end
      Src: /src/libtorrent/test/test_dht.cpp:685,1
    - Dst: bucket_t::begin
      Src: /src/libtorrent/test/test_dht.cpp:690,1
    - Dst: bucket_t::end
      Src: /src/libtorrent/test/test_dht.cpp:690,1
    - Dst: bucket_limit
      Src: /src/libtorrent/test/test_dht.cpp:692,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/test/test_dht.cpp:693,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/test/test_dht.cpp:694,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:696,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:697,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:700,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:701,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:706,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:708,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/test/test_dht.cpp:708,1
    - Dst: auto::pinged
      Src: /src/libtorrent/test/test_dht.cpp:709,1
    - Dst: distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:710,1
    - Dst: id
      Src: /src/libtorrent/test/test_dht.cpp:710,1
    - Dst: min_time
      Src: /src/libtorrent/test/test_dht.cpp:712,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:715,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_dht.cpp:715,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:717,1
    - Dst: auto::ep
      Src: /src/libtorrent/test/test_dht.cpp:717,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:723,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:723,1
    - Dst: bucket_limit
      Src: /src/libtorrent/test/test_dht.cpp:726,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/test/test_dht.cpp:727,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/test/test_dht.cpp:728,1
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_dht.cpp:730,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:734,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/test_dht.cpp:738,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:739,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:743,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/test_dht.cpp:747,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - ' os'
    - ' table'
    argTypes:
    - std::ostream
    - routing_table
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 751
    functionName: print_state
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - id
    - static_cast<std::size_t>
    - auto::ep
    - min_time
    - auto::replacements::size
    - auto::live_nodes::size
    - libtorrent::aux::time_now
    - bucket_limit
    - std::array::fill
    - print_endpoint
    - distance_exp
    - auto::pinged
    - std::setw
    - bucket_t::end
    - libtorrent::aux::to_hex
    - TORRENT_ASSERT_VAL
    - buckets
    - bucket_size
    - auto::fail_count
    - classify_prefix
    - num_global_nodes
    - total_seconds
    - bucket_t::begin
    - std::sort
    linkageType: ''
    returnType: void
    signature: void print_state(std::ostream& os, routing_table const& table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_dht.cpp:83,1
    - Dst: bytes::data
      Src: /src/libtorrent/test/test_dht.cpp:84,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/test/test_dht.cpp:85,1
    - Dst: bytes::data
      Src: /src/libtorrent/test/test_dht.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' sk'
    argTypes:
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: get_test_keypair
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::from_hex
    - bytes::data
    linkageType: ''
    returnType: void
    signature: void get_test_keypair(public_key& pk, secret_key& sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: prev_seq
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - sequence_number
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number prev_seq(sequence_number s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: next_seq
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - sequence_number
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number next_seq(sequence_number s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' dst'
    - ' add'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: add_and_replace
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_and_replace(node_id& dst, node_id const& add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<node_entry>*::push_back
      Src: /src/libtorrent/test/test_dht.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nv
    - ' n'
    argTypes:
    - std::vector<node_entry>*
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: node_push_back
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - std::vector<node_entry>*::push_back
    linkageType: ''
    returnType: void
    signature: void node_push_back(std::vector<node_entry>* nv, node_entry const&
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: nop_node
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: has_quota
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_quota() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:129,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_dht.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' msg'
    - ' ep'
    argTypes:
    - entry
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: send_packet
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::make_pair
    linkageType: ''
    returnType: bool
    signature: bool send_packet(aux::listen_socket_handle const&, entry& msg, udp::endpoint
      const& ep) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<aux::listen_socket_t>
      Src: /src/libtorrent/test/test_dht.cpp:136,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:137,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/test/test_dht.cpp:137,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/test/test_dht.cpp:137,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/test/test_dht.cpp:138,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/test/test_dht.cpp:138,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: dummy_listen_socket
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - rand_v4
    - udp::endpoint::address
    - auto::external_address::cast_vote
    - local_endpoint
    - udp::endpoint::port
    - std::make_shared<aux::listen_socket_t>
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> dummy_listen_socket(udp::endpoint
      src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<aux::listen_socket_t>
      Src: /src/libtorrent/test/test_dht.cpp:145,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:146,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:146,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/test/test_dht.cpp:147,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:147,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: dummy_listen_socket4
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - auto::external_address::cast_vote
    - local_endpoint
    - std::make_shared<aux::listen_socket_t>
    - addr4
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> dummy_listen_socket4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<aux::listen_socket_t>
      Src: /src/libtorrent/test/test_dht.cpp:154,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:155,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:155,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/test/test_dht.cpp:156,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:156,1
    - Dst: rand_v6
      Src: /src/libtorrent/test/test_dht.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: dummy_listen_socket6
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - addr6
    - rand_v6
    - auto::external_address::cast_vote
    - local_endpoint
    - std::make_shared<aux::listen_socket_t>
    linkageType: ''
    returnType: std::shared_ptr<aux::listen_socket_t>
    signature: std::shared_ptr<aux::listen_socket_t> dummy_listen_socket6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: get_foreign_node_stub
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: node * get_foreign_node_stub(node_id const&, std::string const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/test/test_dht.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: generate_next
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash generate_next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/test/test_dht.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/test/test_dht.cpp:176,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ep
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: find_packet
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - begin
    - end
    - std::find_if
    linkageType: ''
    returnType: std::list<std::pair<udp::endpoint, entry>>::iterator
    signature: std::list<std::pair<udp::endpoint, entry>>::iterator find_packet(udp::endpoint
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:185,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' e'
    - ' l'
    argTypes:
    - entry
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: node_from_entry
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - TEST_CHECK
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void node_from_entry(entry const& e, bdecode_node& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/test/test_dht.cpp:193,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_dht.cpp:197,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:198,1
    - Dst: std::string::resize
      Src: /src/libtorrent/test/test_dht.cpp:199,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_dht.cpp:199,1
    - Dst: std::string::begin
      Src: /src/libtorrent/test/test_dht.cpp:199,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:200,1
    - Dst: entry
      Src: /src/libtorrent/test/test_dht.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::set<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: write_peers
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_endpoint
    - push_back
    - entry
    - std::string::begin
    - entry::list
    - std::size_t
    - std::string::resize
    linkageType: ''
    returnType: entry
    signature: entry write_peers(std::set<tcp::endpoint> const& peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: '& info_hash(char const* i)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: msg_args
    signature: msg_args & info_hash(char const* i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: '& name(char const* n)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & name(char const* n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: '& token(std::string t)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & token(std::string t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: '& port(int p)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & port(int p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/test/test_dht.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: '& target(sha1_hash const& t)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: msg_args
    signature: msg_args & target(sha1_hash const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: '& value(entry const& v)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & value(entry const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: '& scrape(bool s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & scrape(bool s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: '& seed(bool s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & seed(bool s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: '& key(public_key const& k)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & key(public_key const& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: '& sig(signature const& s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & sig(signature const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: '& seq(sequence_number s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & seq(sequence_number s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: '& cas(sequence_number c)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & cas(sequence_number c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/test/test_dht.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: '& nid(sha1_hash const& n)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: msg_args
    signature: msg_args & nid(sha1_hash const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/test/test_dht.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: '& salt(span<char const> s)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::empty
    linkageType: ''
    returnType: msg_args
    signature: msg_args & salt(span<char const> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/test/test_dht.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: '& want(std::string w)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - list
    linkageType: ''
    returnType: msg_args
    signature: msg_args & want(std::string w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:253,1
    - Dst: libtorrent::dht::write_nodes_entry
      Src: /src/libtorrent/test/test_dht.cpp:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - std::vector<node_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: '& nodes(std::vector<node_entry> const& n)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::dht::write_nodes_entry
    linkageType: ''
    returnType: msg_args
    signature: msg_args & nodes(std::vector<node_entry> const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:256,1
    - Dst: libtorrent::dht::write_nodes_entry
      Src: /src/libtorrent/test/test_dht.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - std::vector<node_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: '& nodes6(std::vector<node_entry> const& n)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::dht::write_nodes_entry
    linkageType: ''
    returnType: msg_args
    signature: msg_args & nodes6(std::vector<node_entry> const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:259,1
    - Dst: dict
      Src: /src/libtorrent/test/test_dht.cpp:259,1
    - Dst: write_peers
      Src: /src/libtorrent/test/test_dht.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::set<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: '& peers(std::set<tcp::endpoint> const& p)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - empty
    - dict
    - write_peers
    linkageType: ''
    returnType: msg_args
    signature: msg_args & peers(std::set<tcp::endpoint> const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_dht.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interval
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: '& interval(time_duration interval)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    linkageType: ''
    returnType: msg_args
    signature: msg_args & interval(time_duration interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: '& num(int num)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg_args
    signature: msg_args & num(int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:269,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_dht.cpp:270,1
    - Dst: data
      Src: /src/libtorrent/test/test_dht.cpp:270,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' samples'
    argTypes:
    - std::vector<sha1_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: '& samples(std::vector<sha1_hash> const& samples)'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - span<char const>
    - size
    - reinterpret_cast<char const*>
    - data
    linkageType: ''
    returnType: msg_args
    signature: msg_args & samples(std::vector<sha1_hash> const& samples)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:278,1
    - Dst: bdecode_node*::clear
      Src: /src/libtorrent/test/test_dht.cpp:283,1
    - Dst: dict
      Src: /src/libtorrent/test/test_dht.cpp:289,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_dht.cpp:289,1
    - Dst: generate_next
      Src: /src/libtorrent/test/test_dht.cpp:289,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:291,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:295,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:296,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_dht.cpp:296,1
    - Dst: incoming
      Src: /src/libtorrent/test/test_dht.cpp:299,1
    - Dst: find_packet
      Src: /src/libtorrent/test/test_dht.cpp:303,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:306,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:308,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:312,1
    - Dst: erase
      Src: /src/libtorrent/test/test_dht.cpp:313,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:319,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - ' node'
    - msg
    - ' ep'
    - reply
    argTypes:
    - node
    - char*
    - udp::endpoint
    - bdecode_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 324
    functionName: send_dht_request
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - generate_next
    - bdecode_node*::clear
    - node_from_entry
    - std::make_pair
    - std::printf
    - erase
    - end
    - dict
    - msg_args
    - incoming
    - error_code::message
    - find_packet
    - bdecode
    - bencode
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: "void send_dht_request(node& node, char const* msg, udp::endpoint const&
      ep\n\t, bdecode_node* reply, msg_args const& args = msg_args()\n\t, char const*
      t = \"10\", bool has_response = true)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:327,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/test/test_dht.cpp:331,1
    - Dst: dict
      Src: /src/libtorrent/test/test_dht.cpp:334,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_dht.cpp:334,1
    - Dst: generate_next
      Src: /src/libtorrent/test/test_dht.cpp:334,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:336,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:340,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:341,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_dht.cpp:341,1
    - Dst: incoming
      Src: /src/libtorrent/test/test_dht.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' node'
    - ' request'
    - ' ep'
    argTypes:
    - node
    - bdecode_node
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 345
    functionName: send_dht_response
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - generate_next
    - dict_find_string_value
    - std::make_pair
    - std::printf
    - dict
    - msg_args
    - incoming
    - error_code::message
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: "void send_dht_response(node& node, bdecode_node const& request, udp::endpoint
      const& ep\n\t, msg_args const& args = msg_args())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_dht.cpp:353,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_dht.cpp:354,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:361,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_dht.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - nxt
    - num
    argTypes:
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 363
    functionName: announce_item
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - hasher
    - bencode
    - Catch::Generators::random
    linkageType: ''
    returnType: void
    signature: void announce_item(sha1_hash nxt, int const num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:380,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:381,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:396,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:399,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:399,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:400,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:405,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:405,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:406,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:407,1
    - Dst: memcpy
      Src: /src/libtorrent/test/test_dht.cpp:413,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:413,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/test/test_dht.cpp:413,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:415,1
    - Dst: address
      Src: /src/libtorrent/test/test_dht.cpp:415,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:418,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:419,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:430,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:433,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:434,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:434,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:436,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:436,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:440,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:440,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:441,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:442,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:451,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:452,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:465,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_dht.cpp:468,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_dht.cpp:468,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:473,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_dht.cpp:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - ' node'
    - eps
    - items
    - num_items
    argTypes:
    - node
    - udp::endpoint*
    - announce_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 474
    functionName: announce_immutable_items
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - TEST_EQUAL
    - print_entry
    - address_v4::bytes_type::size
    - address
    - verify_message
    - memcpy
    - std::set::begin
    - msg_args
    - std::set::size
    - send_dht_request
    - string_ptr
    - std::printf
    - string_value
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: "void announce_immutable_items(node& node, udp::endpoint const* eps\n\t,
      announce_item const* items, int num_items)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ' e'
    - ' ref'
    argTypes:
    - int
    - node_entry
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: sum_distance_exp
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - distance_exp
    linkageType: ''
    returnType: int
    signature: int sum_distance_exp(int s, node_entry const& e, node_id const& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:485,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:485,1
    - Dst: begin
      Src: /src/libtorrent/test/test_dht.cpp:485,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: get_peers_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void get_peers_cb(std::vector<tcp::endpoint> const& peers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:495,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' i'
    - a
    argTypes:
    - dht::item
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: get_mutable_item_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - empty
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_cb(dht::item const& i, bool a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:501,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:502,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:504,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - dht::item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 507
    functionName: put_mutable_item_data_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - empty
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void put_mutable_item_data_cb(dht::item& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num
    - expect
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: put_mutable_item_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void put_mutable_item_cb(dht::item const&, int num, int expect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:516,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_dht.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - dht::item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: get_immutable_item_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - empty
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_cb(dht::item const& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num
    - expect
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: put_immutable_item_cb
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void put_immutable_item_cb(int num, int expect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/test/test_dht.cpp:530,1
    - Dst: cast_vote
      Src: /src/libtorrent/test/test_dht.cpp:530,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' addr'
    argTypes:
    - aux::listen_socket_handle
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 532
    functionName: set_external_address
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - get
    - cast_vote
    - rand_v4
    linkageType: ''
    returnType: void
    signature: "void set_external_address(aux::listen_socket_handle const& s, address
      const& addr\n\t\t, address const& /*source*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/test/test_dht.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: get_listen_port
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: int
    signature: int get_listen_port(aux::transport, aux::listen_socket_handle const&
      s) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 537
    functionName: get_peers
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_peers(sha1_hash const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 539
    functionName: outgoing_get_peers
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void outgoing_get_peers(sha1_hash const& /*target*/\n\t\t, sha1_hash
      const& /*sent_target*/, udp::endpoint const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: announce
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce(sha1_hash const&, address const&, int) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: should_log
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log(module_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/test/test_dht.cpp:546,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/test/test_dht.cpp:552,1
    - Dst: va_end
      Src: /src/libtorrent/test/test_dht.cpp:556,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:557,1
    - Dst: emplace_back
      Src: /src/libtorrent/test/test_dht.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 559
    functionName: log
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 41
    functionsReached:
    - va_start
    - emplace_back
    - va_end
    - std::vsnprintf
    - std::printf
    linkageType: ''
    returnType: void
    signature: void log(dht_logger::module_t, char const* fmt, ...) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: log_packet
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void log_packet(message_direction_t, span<char const>\n\t\t, udp::endpoint
      const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    functionName: on_dht_request
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_dht_request(string_view\n\t\t, dht::msg const&, entry&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: ~obs()
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~obs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht.cpp:576,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht.cpp:577,1
    - Dst: aux::session_settings::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: test_settings
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - aux::session_settings::set_bool
    - aux::session_settings::set_int
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings test_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:585,1
    - Dst: dummy_listen_socket
      Src: /src/libtorrent/test/test_dht.cpp:586,1
    - Dst: dht_default_storage_constructor
      Src: /src/libtorrent/test/test_dht.cpp:587,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:590,1
    - Dst: update_node_ids
      Src: /src/libtorrent/test/test_dht.cpp:592,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_dht.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 593
    functionName: dht_test_setup
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - dht_default_storage_constructor
    - libtorrent::min
    - node_id
    - dummy_listen_socket
    - test_settings
    - update_node_ids
    linkageType: ''
    returnType: void
    signature: void dht_test_setup(udp::endpoint src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:653,1
    - Dst: num_global_nodes
      Src: /src/libtorrent/test/test_dht.cpp:654,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:655,1
    - Dst: id
      Src: /src/libtorrent/test/test_dht.cpp:655,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:660,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:660,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:663,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/test/test_dht.cpp:664,1
    - Dst: auto::replacements::size
      Src: /src/libtorrent/test/test_dht.cpp:666,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/test/test_dht.cpp:671,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:676,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:676,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/test/test_dht.cpp:680,1
    - Dst: auto::replacements::size
      Src: /src/libtorrent/test/test_dht.cpp:681,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_dht.cpp:685,1
    - Dst: bucket_t::begin
      Src: /src/libtorrent/test/test_dht.cpp:685,1
    - Dst: bucket_t::end
      Src: /src/libtorrent/test/test_dht.cpp:685,1
    - Dst: bucket_t::begin
      Src: /src/libtorrent/test/test_dht.cpp:690,1
    - Dst: bucket_t::end
      Src: /src/libtorrent/test/test_dht.cpp:690,1
    - Dst: bucket_limit
      Src: /src/libtorrent/test/test_dht.cpp:692,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/test/test_dht.cpp:693,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/test/test_dht.cpp:694,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:696,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:697,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:700,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:701,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:706,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:708,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/test/test_dht.cpp:708,1
    - Dst: auto::pinged
      Src: /src/libtorrent/test/test_dht.cpp:709,1
    - Dst: distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:710,1
    - Dst: id
      Src: /src/libtorrent/test/test_dht.cpp:710,1
    - Dst: min_time
      Src: /src/libtorrent/test/test_dht.cpp:712,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:715,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_dht.cpp:715,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:717,1
    - Dst: auto::ep
      Src: /src/libtorrent/test/test_dht.cpp:717,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:723,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:723,1
    - Dst: bucket_limit
      Src: /src/libtorrent/test/test_dht.cpp:726,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/test/test_dht.cpp:727,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/test/test_dht.cpp:728,1
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_dht.cpp:730,1
    - Dst: buckets
      Src: /src/libtorrent/test/test_dht.cpp:734,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/test_dht.cpp:738,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:739,1
    - Dst: std::setw
      Src: /src/libtorrent/test/test_dht.cpp:743,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/test/test_dht.cpp:747,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - ' os'
    - ' table'
    argTypes:
    - std::ostream
    - routing_table
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 751
    functionName: print_state
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - id
    - static_cast<std::size_t>
    - auto::ep
    - min_time
    - auto::replacements::size
    - auto::live_nodes::size
    - libtorrent::aux::time_now
    - bucket_limit
    - std::array::fill
    - print_endpoint
    - distance_exp
    - auto::pinged
    - std::setw
    - bucket_t::end
    - libtorrent::aux::to_hex
    - TORRENT_ASSERT_VAL
    - buckets
    - bucket_size
    - auto::fail_count
    - classify_prefix
    - num_global_nodes
    - total_seconds
    - bucket_t::begin
    - std::sort
    linkageType: ''
    returnType: void
    signature: void print_state(std::ostream& os, routing_table const& table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:757,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:757,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:760,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:771,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:771,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:772,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:773,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:776,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:776,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:777,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:777,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 783
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - rand_v4
    - string_value
    - libtorrent::dht::verify_message
    - local_endpoint
    - send_dht_request
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ping)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:787,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:787,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:791,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:793,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:793,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:794,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:795,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:798,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:798,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:799,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:800,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:802,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:802,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:806,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 813
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - rand_v4
    - string_value
    - libtorrent::dht::verify_message
    - local_endpoint
    - send_dht_request
    - list_at
    - std::printf
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_secret_id
      Src: /src/libtorrent/test/test_dht.cpp:817,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:818,1
    - Dst: verify_secret_id
      Src: /src/libtorrent/test/test_dht.cpp:818,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:821,1
    - Dst: verify_secret_id
      Src: /src/libtorrent/test/test_dht.cpp:821,1
    - Dst: generate_random_id
      Src: /src/libtorrent/test/test_dht.cpp:823,1
    - Dst: make_id_secret
      Src: /src/libtorrent/test/test_dht.cpp:824,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:825,1
    - Dst: verify_secret_id
      Src: /src/libtorrent/test/test_dht.cpp:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 826
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - verify_secret_id
    - make_id_secret
    - generate_secret_id
    - TEST_CHECK
    - generate_random_id
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(node_id_testing)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:830,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:830,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:833,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:834,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:839,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:839,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:840,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:841,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:844,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:844,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:845,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:850,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:850,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:851,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:854,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:855,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:869,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:869,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:870,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:871,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:874,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:874,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:878,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 881
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - rand_v4
    - string_value
    - libtorrent::dht::verify_message
    - msg_args
    - local_endpoint
    - send_dht_request
    - std::printf
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_peers_announce)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:887,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:887,1
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:890,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:896,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:896,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:897,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:898,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:901,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:906,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:906,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:907,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:911,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:911,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:912,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/test/test_dht.cpp:914,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:915,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:916,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/test/test_dht.cpp:923,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:928,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:929,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:941,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:941,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:942,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:943,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:946,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:946,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:947,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/test/test_dht.cpp:947,1
    - Dst: bloom_filter::from_string
      Src: /src/libtorrent/test/test_dht.cpp:951,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:951,1
    - Dst: bloom_filter::from_string
      Src: /src/libtorrent/test/test_dht.cpp:952,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:952,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:954,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:954,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:955,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:955,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:957,1
    - Dst: std::abs
      Src: /src/libtorrent/test/test_dht.cpp:957,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:957,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:958,1
    - Dst: std::abs
      Src: /src/libtorrent/test/test_dht.cpp:958,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:958,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:962,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 885
    functionDepth: 3
    functionLinenumber: 885
    functionLinenumberEnd: 965
    functionName: test_scrape
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_addr
    - TEST_EQUAL
    - print_entry
    - string_value
    - bloom_filter::size
    - libtorrent::dht::verify_message
    - dict_find_string_value
    - bloom_filter::from_string
    - init_rand_address
    - bdecode_node::clear
    - msg_args
    - local_endpoint
    - std::abs
    - send_dht_request
    - string_ptr
    - std::printf
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void test_scrape(address(&rand_addr)())
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:887,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:887,1
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:890,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:896,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:896,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:897,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:898,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:901,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:906,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:906,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:907,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:911,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:911,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:912,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/test/test_dht.cpp:914,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:915,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:916,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/test/test_dht.cpp:923,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:928,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:929,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:941,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:941,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:942,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:943,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:946,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:946,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:947,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/test/test_dht.cpp:947,1
    - Dst: bloom_filter::from_string
      Src: /src/libtorrent/test/test_dht.cpp:951,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:951,1
    - Dst: bloom_filter::from_string
      Src: /src/libtorrent/test/test_dht.cpp:952,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:952,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:954,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:954,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:955,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:955,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:957,1
    - Dst: std::abs
      Src: /src/libtorrent/test/test_dht.cpp:957,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:957,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:958,1
    - Dst: std::abs
      Src: /src/libtorrent/test/test_dht.cpp:958,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:958,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:962,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 885
    functionDepth: 3
    functionLinenumber: 885
    functionLinenumberEnd: 965
    functionName: test_scrape
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_addr
    - TEST_EQUAL
    - print_entry
    - string_value
    - bloom_filter::size
    - libtorrent::dht::verify_message
    - dict_find_string_value
    - bloom_filter::from_string
    - init_rand_address
    - bdecode_node::clear
    - msg_args
    - local_endpoint
    - std::abs
    - send_dht_request
    - string_ptr
    - std::printf
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void test_scrape(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_scrape
      Src: /src/libtorrent/test/test_dht.cpp:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 4
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_scrape
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(scrape_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:976,1
    - Dst: test_scrape
      Src: /src/libtorrent/test/test_dht.cpp:977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 974
    functionDepth: 4
    functionLinenumber: 974
    functionLinenumberEnd: 978
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - supports_ipv6
    - test_scrape
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(scrape_v6)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:984,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:984,1
    - Dst: dht_test_setup::sett::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:988,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:991,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:995,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:995,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:996,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1000,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1000,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:1001,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:1009,1
    - Dst: dht_test_setup::dht_node::size
      Src: /src/libtorrent/test/test_dht.cpp:1009,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1010,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1011,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_dht.cpp:1012,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1016,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1017,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1020,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1020,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:1021,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:1022,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1024,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:1024,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1028,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1028,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1029,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1034,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1034,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1035,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1039,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:1039,1
    - Dst: dht_test_setup::dht_node::size
      Src: /src/libtorrent/test/test_dht.cpp:1039,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1042,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1046,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1047,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_dht.cpp:1048,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1059,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1059,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1060,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1061,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1064,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1064,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1068,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1068,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1069,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1072,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:1072,1
    - Dst: dht_test_setup::dht_node::size
      Src: /src/libtorrent/test/test_dht.cpp:1072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 1073
    functionName: test_id_enforcement
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - dht_test_setup::dht_node::size
    - dht_test_setup::sett::set_bool
    - addr
    - string_value
    - rand_addr
    - to_hash
    - msg_args
    - sha1_hash
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - libtorrent::aux::is_v4
    - send_dht_request
    - std::get<1>
    - TEST_CHECK
    - libtorrent::dht::verify_message
    - local_endpoint
    - list_at
    linkageType: ''
    returnType: void
    signature: void test_id_enforcement(address(&rand_addr)())
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:984,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:984,1
    - Dst: dht_test_setup::sett::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:988,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:991,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:995,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:995,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:996,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1000,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1000,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:1001,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:1009,1
    - Dst: dht_test_setup::dht_node::size
      Src: /src/libtorrent/test/test_dht.cpp:1009,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1010,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1011,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_dht.cpp:1012,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1016,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1017,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1020,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1020,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:1021,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:1022,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1024,1
    - Dst: list_at
      Src: /src/libtorrent/test/test_dht.cpp:1024,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1028,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1028,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1029,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1034,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1034,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1035,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1039,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:1039,1
    - Dst: dht_test_setup::dht_node::size
      Src: /src/libtorrent/test/test_dht.cpp:1039,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1042,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1046,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1047,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_dht.cpp:1048,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1059,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1059,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1060,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1061,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1064,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1064,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1068,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1068,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1069,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1072,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:1072,1
    - Dst: dht_test_setup::dht_node::size
      Src: /src/libtorrent/test/test_dht.cpp:1072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 1073
    functionName: test_id_enforcement
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - dht_test_setup::dht_node::size
    - dht_test_setup::sett::set_bool
    - addr
    - string_value
    - rand_addr
    - to_hash
    - msg_args
    - sha1_hash
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - libtorrent::aux::is_v4
    - send_dht_request
    - std::get<1>
    - TEST_CHECK
    - libtorrent::dht::verify_message
    - local_endpoint
    - list_at
    linkageType: ''
    returnType: void
    signature: void test_id_enforcement(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_id_enforcement
      Src: /src/libtorrent/test/test_dht.cpp:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1077
    functionDepth: 4
    functionLinenumber: 1077
    functionLinenumberEnd: 1080
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_id_enforcement
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(id_enforcement_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:1084,1
    - Dst: test_id_enforcement
      Src: /src/libtorrent/test/test_dht.cpp:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1082
    functionDepth: 4
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_id_enforcement
    - supports_ipv6
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(id_enforcement_v6)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_dht.cpp:1094,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1095,1
    - Dst: hash_address
      Src: /src/libtorrent/test/test_dht.cpp:1096,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/test/test_dht.cpp:1097,1
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:1100,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_dht.cpp:1105,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1106,1
    - Dst: hash_address
      Src: /src/libtorrent/test/test_dht.cpp:1107,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/test/test_dht.cpp:1108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1114,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:1114,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/test/test_dht.cpp:1115,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1116,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1116,1
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:1117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1119,1
    - Dst: std::abs
      Src: /src/libtorrent/test/test_dht.cpp:1119,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:1119,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1120,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1140,1
    - Dst: std::abs
      Src: /src/libtorrent/test/test_dht.cpp:1140,1
    - Dst: bloom_filter::size
      Src: /src/libtorrent/test/test_dht.cpp:1140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1141,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1159
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - bloom_filter::size
    - bloom_filter::set
    - supports_ipv6
    - libtorrent::aux::to_hex
    - std::snprintf
    - bloom_filter::to_string
    - std::abs
    - addr
    - hash_address
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bloom_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::array<node_entry, 8>
      Src: /src/libtorrent/test/test_dht.cpp:1176,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1178,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1178,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1179,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1179,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1180,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1180,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1181,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1181,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1182,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1182,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1183,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1183,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1184,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1184,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1185,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1174
    functionDepth: 2
    functionLinenumber: 1174
    functionLinenumberEnd: 1187
    functionName: build_nodes
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - lt::aux::array<node_entry, 8>
    - local_endpoint
    - addr4
    linkageType: ''
    returnType: lt::aux::array<node_entry, 8>
    signature: lt::aux::array<node_entry, 8> build_nodes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::array<node_entry, 9>
      Src: /src/libtorrent/test/test_dht.cpp:1191,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1193,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1193,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1194,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1194,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1195,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1195,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1196,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1196,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1197,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1197,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1198,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1198,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1199,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1199,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1200,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1200,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1201,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1203
    functionName: build_nodes
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - addr4
    - lt::aux::array<node_entry, 9>
    linkageType: ''
    returnType: lt::aux::array<node_entry, 9>
    signature: lt::aux::array<node_entry, 9> build_nodes(sha1_hash target)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1210,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1210,1
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:1217,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1220,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1220,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_dht.cpp:1220,1
    - Dst: random
      Src: /src/libtorrent/test/test_dht.cpp:1220,1
    - Dst: announce_immutable_items
      Src: /src/libtorrent/test/test_dht.cpp:1222,1
    - Dst: get_test_keypair
      Src: /src/libtorrent/test/test_dht.cpp:1248,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht.cpp:1253,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1254,1
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/test/test_dht.cpp:1256,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_dht.cpp:1258,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/test/test_dht.cpp:1258,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1259,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1260,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1261,1
    - Dst: hasher::update
      Src: /src/libtorrent/test/test_dht.cpp:1267,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/test_dht.cpp:1268,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1270,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1271,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1273,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1274,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1287,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1291,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1291,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1292,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1293,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1294,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1295,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1295,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1299,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1299,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1300,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1301,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1302,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:1305,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:1305,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1306,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1307,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1307,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1309,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1310,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1318,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1321,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1322,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1323,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1323,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1327,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1328,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1329,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1332,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1333,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1335,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1336,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1351,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1354,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1354,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1355,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1356,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1357,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1361,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1362,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:1365,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1366,1
    - Dst: data_section
      Src: /src/libtorrent/test/test_dht.cpp:1366,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1367,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_dht.cpp:1367,1
    - Dst: data_section
      Src: /src/libtorrent/test/test_dht.cpp:1367,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_dht.cpp:1367,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1369,1
    - Dst: int_value
      Src: /src/libtorrent/test/test_dht.cpp:1369,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:1374,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:1374,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1375,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1376,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1376,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1380,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1382,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1382,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1384,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1385,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1393,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1396,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1396,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1397,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1397,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1399,1
    - Dst: list_int_value_at
      Src: /src/libtorrent/test/test_dht.cpp:1399,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1403,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1404,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1405,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1410,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1411,1
    - Dst: prev_seq
      Src: /src/libtorrent/test/test_dht.cpp:1411,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_dht.cpp:1414,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1415,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1415,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1416,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1416,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1417,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1417,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1420,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1421,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_dht.cpp:1424,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1425,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1425,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1426,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1426,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1427,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1427,1
    - Dst: next_seq
      Src: /src/libtorrent/test/test_dht.cpp:1436,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:1438,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:1438,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1439,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1440,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1440,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1442,1
    - Dst: item_target_id
      Src: /src/libtorrent/test/test_dht.cpp:1442,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1444,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1446,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1447,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1456,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1459,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1460,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1461,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1461,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1465,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1466,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1467,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1470,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1475,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1476,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1485,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1488,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1489,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1490,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1490,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1492,1
    - Dst: list_int_value_at
      Src: /src/libtorrent/test/test_dht.cpp:1492,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1496,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1497,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1498,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1208
    functionDepth: 4
    functionLinenumber: 1208
    functionLinenumberEnd: 1501
    functionName: test_put
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - list_int_value_at
    - next_seq
    - string_value
    - int_value
    - rand_addr
    - hasher::final
    - std::memcmp
    - std::uint16_t
    - msg_args
    - verify_mutable_item
    - std::size_t
    - sequence_number
    - data_section
    - span<char const>
    - bdecode_node::dict_find_dict
    - std::printf
    - prev_seq
    - TEST_ERROR
    - TEST_EQUAL
    - bdecode_node::dict_find
    - libtorrent::aux::to_hex
    - init_rand_address
    - verify_message
    - ed25519_create_keypair
    - get_test_keypair
    - send_dht_request
    - announce_immutable_items
    - bencode
    - random
    - TEST_CHECK
    - item_target_id
    - ed25519_create_seed
    - std::tie
    - local_endpoint
    - hasher::update
    - sign_mutable_item
    linkageType: ''
    returnType: void
    signature: void test_put(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::array<node_entry, 8>
      Src: /src/libtorrent/test/test_dht.cpp:1176,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1178,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1178,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1179,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1179,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1180,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1180,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1181,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1181,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1182,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1182,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1183,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1183,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1184,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1184,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1185,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1174
    functionDepth: 2
    functionLinenumber: 1174
    functionLinenumberEnd: 1187
    functionName: build_nodes
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - lt::aux::array<node_entry, 8>
    - local_endpoint
    - addr4
    linkageType: ''
    returnType: lt::aux::array<node_entry, 8>
    signature: lt::aux::array<node_entry, 8> build_nodes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::array<node_entry, 9>
      Src: /src/libtorrent/test/test_dht.cpp:1191,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1193,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1193,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1194,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1194,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1195,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1195,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1196,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1196,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1197,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1197,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1198,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1198,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1199,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1199,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1200,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1200,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1201,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1203
    functionName: build_nodes
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - addr4
    - lt::aux::array<node_entry, 9>
    linkageType: ''
    returnType: lt::aux::array<node_entry, 9>
    signature: lt::aux::array<node_entry, 9> build_nodes(sha1_hash target)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1210,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1210,1
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:1217,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1220,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1220,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_dht.cpp:1220,1
    - Dst: random
      Src: /src/libtorrent/test/test_dht.cpp:1220,1
    - Dst: announce_immutable_items
      Src: /src/libtorrent/test/test_dht.cpp:1222,1
    - Dst: get_test_keypair
      Src: /src/libtorrent/test/test_dht.cpp:1248,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht.cpp:1253,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1254,1
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/test/test_dht.cpp:1256,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_dht.cpp:1258,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/test/test_dht.cpp:1258,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1259,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1260,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1261,1
    - Dst: hasher::update
      Src: /src/libtorrent/test/test_dht.cpp:1267,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/test_dht.cpp:1268,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1270,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1271,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1273,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1274,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1287,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1291,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1291,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1292,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1293,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1294,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1295,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1295,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1299,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1299,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1300,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1301,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1302,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:1305,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:1305,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1306,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1307,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1307,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1309,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1310,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1318,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1321,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1322,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1323,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1323,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1327,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1328,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1329,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1332,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1333,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1335,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1336,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1351,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1354,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1354,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1355,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1356,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1357,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1361,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1362,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:1365,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1366,1
    - Dst: data_section
      Src: /src/libtorrent/test/test_dht.cpp:1366,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1367,1
    - Dst: std::memcmp
      Src: /src/libtorrent/test/test_dht.cpp:1367,1
    - Dst: data_section
      Src: /src/libtorrent/test/test_dht.cpp:1367,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_dht.cpp:1367,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1369,1
    - Dst: int_value
      Src: /src/libtorrent/test/test_dht.cpp:1369,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:1374,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:1374,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1375,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1376,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1376,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1380,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1382,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1382,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1384,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1385,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1393,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1396,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1396,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1397,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1397,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1399,1
    - Dst: list_int_value_at
      Src: /src/libtorrent/test/test_dht.cpp:1399,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1403,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1404,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1405,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1410,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1411,1
    - Dst: prev_seq
      Src: /src/libtorrent/test/test_dht.cpp:1411,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_dht.cpp:1414,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1415,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1415,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1416,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1416,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1417,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1417,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1420,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1421,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/test/test_dht.cpp:1424,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1425,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1425,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1426,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1426,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1427,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/test/test_dht.cpp:1427,1
    - Dst: next_seq
      Src: /src/libtorrent/test/test_dht.cpp:1436,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:1438,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:1438,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1439,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1440,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:1440,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1442,1
    - Dst: item_target_id
      Src: /src/libtorrent/test/test_dht.cpp:1442,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1444,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1446,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1447,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1456,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1459,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1460,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1461,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1461,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1465,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1466,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1467,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1470,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:1475,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1476,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1485,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1488,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1489,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1490,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1490,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1492,1
    - Dst: list_int_value_at
      Src: /src/libtorrent/test/test_dht.cpp:1492,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1496,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1497,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1498,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1208
    functionDepth: 4
    functionLinenumber: 1208
    functionLinenumberEnd: 1501
    functionName: test_put
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - list_int_value_at
    - next_seq
    - string_value
    - int_value
    - rand_addr
    - hasher::final
    - std::memcmp
    - std::uint16_t
    - msg_args
    - verify_mutable_item
    - std::size_t
    - sequence_number
    - data_section
    - span<char const>
    - bdecode_node::dict_find_dict
    - std::printf
    - prev_seq
    - TEST_ERROR
    - TEST_EQUAL
    - bdecode_node::dict_find
    - libtorrent::aux::to_hex
    - init_rand_address
    - verify_message
    - ed25519_create_keypair
    - get_test_keypair
    - send_dht_request
    - announce_immutable_items
    - bencode
    - random
    - TEST_CHECK
    - item_target_id
    - ed25519_create_seed
    - std::tie
    - local_endpoint
    - hasher::update
    - sign_mutable_item
    linkageType: ''
    returnType: void
    signature: void test_put(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_put
      Src: /src/libtorrent/test/test_dht.cpp:1507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1505
    functionDepth: 5
    functionLinenumber: 1505
    functionLinenumberEnd: 1508
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_put
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(put_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:1512,1
    - Dst: test_put
      Src: /src/libtorrent/test/test_dht.cpp:1513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1510
    functionDepth: 5
    functionLinenumber: 1510
    functionLinenumberEnd: 1514
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - supports_ipv6
    - test_put
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(put_v6)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:1520,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1522,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1522,1
    - Dst: aux::session_settings::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:1527,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:1529,1
    - Dst: dht_test_setup::source::protocol
      Src: /src/libtorrent/test/test_dht.cpp:1531,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1532,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:1532,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:1532,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/test/test_dht.cpp:1536,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:1538,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:1539,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1543,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1544,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1548,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1549,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1549,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1551,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1552,1
    - Dst: dht::routing_table::bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:1552,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1553,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:1553,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:1553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1554,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1554,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1555,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1557,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1558,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1558,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1559,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1559,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1560,1
    - Dst: dht::routing_table::node_failed
      Src: /src/libtorrent/test/test_dht.cpp:1564,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1564,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:1566,1
    - Dst: dht::routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:1567,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1567,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1568,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1568,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1569,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1571,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1572,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1572,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1573,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1573,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1574,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1578,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1578,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:1579,1
    - Dst: dht::routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:1580,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1580,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1581,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1582,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1584,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1585,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1585,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1586,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1586,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1587,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1591,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1591,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1592,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1593,1
    - Dst: dht::routing_table::bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:1593,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1594,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1596,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1597,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1597,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1598,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1598,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1604,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1604,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1605,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1606,1
    - Dst: dht::routing_table::bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:1606,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1607,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1609,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1610,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1610,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1611,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1611,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1616,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1617,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1617,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1618,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1620,1
    - Dst: dht::routing_table::bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:1620,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1621,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1621,1
    - Dst: aux::session_settings::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:1623,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:1626,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1627,1
    - Dst: auto::address
      Src: /src/libtorrent/test/test_dht.cpp:1627,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1628,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:1631,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:1634,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1635,1
    - Dst: auto::address
      Src: /src/libtorrent/test/test_dht.cpp:1635,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1636,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1638,1
    - Dst: dht::routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:1638,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1639,1
    - Dst: dht::routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:1639,1
    - Dst: dht::routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:1640,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1641,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:1641,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:1641,1
    - Dst: print_state
      Src: /src/libtorrent/test/test_dht.cpp:1645,1
    - Dst: dht::routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:1647,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1647,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1649,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1649,1
    - Dst: generate_random_id
      Src: /src/libtorrent/test/test_dht.cpp:1653,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1654,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1654,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1655,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1655,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1656,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1656,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1656,1
    - Dst: generate_random_id
      Src: /src/libtorrent/test/test_dht.cpp:1667,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1668,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1669,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1669,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_dht.cpp:1669,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1669,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_dht.cpp:1671,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_dht.cpp:1671,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_dht.cpp:1671,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1671,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1672,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1673,1
    - Dst: std::accumulate
      Src: /src/libtorrent/test/test_dht.cpp:1675,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_dht.cpp:1675,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_dht.cpp:1675,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1675,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1676,1
    - Dst: std::accumulate
      Src: /src/libtorrent/test/test_dht.cpp:1677,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_dht.cpp:1677,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_dht.cpp:1677,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1678,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1679,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1679,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1680,1
    - Dst: std::set::clear
      Src: /src/libtorrent/test/test_dht.cpp:1682,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1687,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_dht.cpp:1687,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_dht.cpp:1688,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1713,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1714,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_dht.cpp:1714,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1715,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1716,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1717,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1719,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1720,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1721,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1723
    functionName: test_routing_table
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - addr6
    - std::vector::size
    - libtorrent::aux::is_v6
    - print_state
    - std::accumulate
    - std::vector::begin
    - std::uint32_t
    - std::get<0>
    - std::min
    - addr
    - std::vector::end
    - dht::routing_table::for_each_node
    - addr4
    - rand_addr
    - to_hash
    - dht::routing_table::num_active_buckets
    - std::vector::clear
    - dht::routing_table::find_node
    - auto::address
    - std::printf
    - TEST_EQUAL
    - rand_udp_ep
    - libtorrent::aux::to_hex
    - init_rand_address
    - port
    - TEST_CHECK
    - generate_random_id
    - std::bind
    - std::set::clear
    - dht::routing_table::node_seen
    - std::vector::empty
    - dht_test_setup::source::protocol
    - aux::session_settings::set_bool
    - std::set::count
    - dht::routing_table::size
    - dht::routing_table::bucket_size
    - local_endpoint
    - dht::routing_table::node_failed
    - generate_id_impl
    - std::set::insert
    - std::sort
    linkageType: ''
    returnType: void
    signature: void test_routing_table(address(&rand_addr)())
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:1520,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1522,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1522,1
    - Dst: aux::session_settings::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:1527,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:1529,1
    - Dst: dht_test_setup::source::protocol
      Src: /src/libtorrent/test/test_dht.cpp:1531,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1532,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:1532,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:1532,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/test/test_dht.cpp:1536,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:1538,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:1539,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1543,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1544,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1548,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1549,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1549,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1551,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1552,1
    - Dst: dht::routing_table::bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:1552,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1553,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:1553,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:1553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1554,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1554,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1555,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1557,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1558,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1558,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1559,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1559,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1560,1
    - Dst: dht::routing_table::node_failed
      Src: /src/libtorrent/test/test_dht.cpp:1564,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1564,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:1566,1
    - Dst: dht::routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:1567,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1567,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1568,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1568,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1569,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1571,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1572,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1572,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1573,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1573,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1574,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1578,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1578,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:1579,1
    - Dst: dht::routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:1580,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1580,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1581,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1582,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1584,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1585,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1585,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1586,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1586,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1587,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1591,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1591,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1592,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1593,1
    - Dst: dht::routing_table::bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:1593,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1594,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1596,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1597,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1597,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1598,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1598,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1604,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1604,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1605,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1606,1
    - Dst: dht::routing_table::bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:1606,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_dht.cpp:1607,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1609,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1610,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:1610,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1611,1
    - Dst: port
      Src: /src/libtorrent/test/test_dht.cpp:1611,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1616,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1617,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1617,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1618,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1620,1
    - Dst: dht::routing_table::bucket_size
      Src: /src/libtorrent/test/test_dht.cpp:1620,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1621,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1621,1
    - Dst: aux::session_settings::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:1623,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:1626,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1627,1
    - Dst: auto::address
      Src: /src/libtorrent/test/test_dht.cpp:1627,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1628,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:1631,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:1634,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1635,1
    - Dst: auto::address
      Src: /src/libtorrent/test/test_dht.cpp:1635,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:1636,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1638,1
    - Dst: dht::routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:1638,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1639,1
    - Dst: dht::routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:1639,1
    - Dst: dht::routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:1640,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1641,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:1641,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:1641,1
    - Dst: print_state
      Src: /src/libtorrent/test/test_dht.cpp:1645,1
    - Dst: dht::routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:1647,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1647,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1649,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1649,1
    - Dst: generate_random_id
      Src: /src/libtorrent/test/test_dht.cpp:1653,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1654,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1654,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1655,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1655,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1656,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1656,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1656,1
    - Dst: generate_random_id
      Src: /src/libtorrent/test/test_dht.cpp:1667,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:1668,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1669,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1669,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_dht.cpp:1669,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1669,1
    - Dst: std::sort
      Src: /src/libtorrent/test/test_dht.cpp:1671,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_dht.cpp:1671,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_dht.cpp:1671,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1671,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1672,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1673,1
    - Dst: std::accumulate
      Src: /src/libtorrent/test/test_dht.cpp:1675,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_dht.cpp:1675,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_dht.cpp:1675,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1675,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1676,1
    - Dst: std::accumulate
      Src: /src/libtorrent/test/test_dht.cpp:1677,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_dht.cpp:1677,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_dht.cpp:1677,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1678,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1679,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:1679,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1680,1
    - Dst: std::set::clear
      Src: /src/libtorrent/test/test_dht.cpp:1682,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1687,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_dht.cpp:1687,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_dht.cpp:1688,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:1713,1
    - Dst: generate_id_impl
      Src: /src/libtorrent/test/test_dht.cpp:1714,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/test/test_dht.cpp:1714,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1715,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1716,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1717,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1719,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1720,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:1721,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1723
    functionName: test_routing_table
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - addr6
    - std::vector::size
    - libtorrent::aux::is_v6
    - print_state
    - std::accumulate
    - std::vector::begin
    - std::uint32_t
    - std::get<0>
    - std::min
    - addr
    - std::vector::end
    - dht::routing_table::for_each_node
    - addr4
    - rand_addr
    - to_hash
    - dht::routing_table::num_active_buckets
    - std::vector::clear
    - dht::routing_table::find_node
    - auto::address
    - std::printf
    - TEST_EQUAL
    - rand_udp_ep
    - libtorrent::aux::to_hex
    - init_rand_address
    - port
    - TEST_CHECK
    - generate_random_id
    - std::bind
    - std::set::clear
    - dht::routing_table::node_seen
    - std::vector::empty
    - dht_test_setup::source::protocol
    - aux::session_settings::set_bool
    - std::set::count
    - dht::routing_table::size
    - dht::routing_table::bucket_size
    - local_endpoint
    - dht::routing_table::node_failed
    - generate_id_impl
    - std::set::insert
    - std::sort
    linkageType: ''
    returnType: void
    signature: void test_routing_table(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_routing_table
      Src: /src/libtorrent/test/test_dht.cpp:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1727
    functionDepth: 3
    functionLinenumber: 1727
    functionLinenumberEnd: 1730
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_routing_table
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(routing_table_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:1734,1
    - Dst: test_routing_table
      Src: /src/libtorrent/test/test_dht.cpp:1735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1732
    functionDepth: 4
    functionLinenumber: 1732
    functionLinenumberEnd: 1736
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_routing_table
    - supports_ipv6
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(routing_table_v6)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1742,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1742,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1760,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1762,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1764,1
    - Dst: dht_test_setup::dht_node::bootstrap
      Src: /src/libtorrent/test/test_dht.cpp:1765,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1765,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1767,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1767,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:1768,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1769,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1769,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:1771,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1771,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1772,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1775,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1775,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1776,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1776,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1777,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1779,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1780,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1781,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1785,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1785,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1786,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1790,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1792,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1793,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1794,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:1795,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1795,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:1797,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1797,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1799,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1799,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:1800,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1801,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1801,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:1803,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1803,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1804,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1807,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1807,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1808,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1808,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1809,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1810,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1811,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1812,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1816,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1816,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1817,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1821,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:1822,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1824,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:1824,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1825,1
    - Dst: dht_test_setup::dht_node::num_global_nodes
      Src: /src/libtorrent/test/test_dht.cpp:1825,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1740
    functionDepth: 3
    functionLinenumber: 1740
    functionLinenumberEnd: 1826
    functionName: test_bootstrap
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - empty
    - string_value
    - rand_addr
    - dht_test_setup::dht_node::bootstrap
    - front
    - msg_args
    - clear
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - libtorrent::aux::is_v4
    - verify_message
    - send_dht_response
    - dht_test_setup::dht_node::num_global_nodes
    - size
    - TEST_CHECK
    - std::bind
    - std::vector::push_back
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void test_bootstrap(address(&rand_addr)())
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1742,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1742,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1760,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1762,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1764,1
    - Dst: dht_test_setup::dht_node::bootstrap
      Src: /src/libtorrent/test/test_dht.cpp:1765,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1765,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1767,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1767,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:1768,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1769,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1769,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:1771,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1771,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1772,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1775,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1775,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1776,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1776,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1777,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1779,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1780,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1781,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1785,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1785,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1786,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1790,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1792,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1793,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1794,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:1795,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1795,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:1797,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:1797,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1799,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1799,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:1800,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1801,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1801,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:1803,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1803,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1804,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1807,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1807,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1808,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1808,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1809,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1810,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1811,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1812,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1816,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1816,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1817,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1821,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:1822,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1824,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:1824,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1825,1
    - Dst: dht_test_setup::dht_node::num_global_nodes
      Src: /src/libtorrent/test/test_dht.cpp:1825,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1740
    functionDepth: 3
    functionLinenumber: 1740
    functionLinenumberEnd: 1826
    functionName: test_bootstrap
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - empty
    - string_value
    - rand_addr
    - dht_test_setup::dht_node::bootstrap
    - front
    - msg_args
    - clear
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - libtorrent::aux::is_v4
    - verify_message
    - send_dht_response
    - dht_test_setup::dht_node::num_global_nodes
    - size
    - TEST_CHECK
    - std::bind
    - std::vector::push_back
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void test_bootstrap(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bootstrap
      Src: /src/libtorrent/test/test_dht.cpp:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1830
    functionDepth: 4
    functionLinenumber: 1830
    functionLinenumberEnd: 1833
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_bootstrap
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bootstrap_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:1837,1
    - Dst: test_bootstrap
      Src: /src/libtorrent/test/test_dht.cpp:1838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1835
    functionDepth: 4
    functionLinenumber: 1835
    functionLinenumberEnd: 1839
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - supports_ipv6
    - test_bootstrap
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bootstrap_v6)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1845,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1845,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1862,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1865,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1866,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:1866,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1868,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:1868,1
    - Dst: dht_test_setup::dht_node::bootstrap
      Src: /src/libtorrent/test/test_dht.cpp:1870,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1870,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1872,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1872,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1873,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1873,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:1875,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1875,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1876,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1879,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1879,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1880,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1880,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1881,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1883,1
    - Dst: list_size
      Src: /src/libtorrent/test/test_dht.cpp:1883,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1884,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1886,1
    - Dst: list_string_value_at
      Src: /src/libtorrent/test/test_dht.cpp:1886,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1890,1
    - Dst: list_string_value_at
      Src: /src/libtorrent/test/test_dht.cpp:1890,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1895,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1895,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1896,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1843
    functionDepth: 2
    functionLinenumber: 1843
    functionLinenumberEnd: 1898
    functionName: test_bootstrap_want
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - string_value
    - rand_addr
    - dht_test_setup::dht_node::bootstrap
    - front
    - clear
    - std::printf
    - TEST_ERROR
    - list_size
    - TEST_EQUAL
    - node_from_entry
    - rand_udp_ep
    - libtorrent::aux::is_v4
    - verify_message
    - size
    - TEST_CHECK
    - std::bind
    - std::vector::push_back
    - local_endpoint
    - list_string_value_at
    linkageType: ''
    returnType: void
    signature: void test_bootstrap_want(address(&rand_addr)())
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1845,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1845,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1862,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1865,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1866,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:1866,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1868,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:1868,1
    - Dst: dht_test_setup::dht_node::bootstrap
      Src: /src/libtorrent/test/test_dht.cpp:1870,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1870,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1872,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1872,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1873,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1873,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:1875,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1875,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1876,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1879,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1879,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1880,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1880,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1881,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1883,1
    - Dst: list_size
      Src: /src/libtorrent/test/test_dht.cpp:1883,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1884,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1886,1
    - Dst: list_string_value_at
      Src: /src/libtorrent/test/test_dht.cpp:1886,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1890,1
    - Dst: list_string_value_at
      Src: /src/libtorrent/test/test_dht.cpp:1890,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1895,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1895,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1896,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1843
    functionDepth: 2
    functionLinenumber: 1843
    functionLinenumberEnd: 1898
    functionName: test_bootstrap_want
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - string_value
    - rand_addr
    - dht_test_setup::dht_node::bootstrap
    - front
    - clear
    - std::printf
    - TEST_ERROR
    - list_size
    - TEST_EQUAL
    - node_from_entry
    - rand_udp_ep
    - libtorrent::aux::is_v4
    - verify_message
    - size
    - TEST_CHECK
    - std::bind
    - std::vector::push_back
    - local_endpoint
    - list_string_value_at
    linkageType: ''
    returnType: void
    signature: void test_bootstrap_want(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bootstrap_want
      Src: /src/libtorrent/test/test_dht.cpp:1904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1902
    functionDepth: 3
    functionLinenumber: 1902
    functionLinenumberEnd: 1905
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_bootstrap_want
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bootstrap_want_v4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bootstrap_want
      Src: /src/libtorrent/test/test_dht.cpp:1909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1907
    functionDepth: 3
    functionLinenumber: 1907
    functionLinenumberEnd: 1910
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_bootstrap_want
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bootstrap_want_v6)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1917,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1917,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1935,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1937,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1939,1
    - Dst: dht_test_setup::dht_node::bootstrap
      Src: /src/libtorrent/test/test_dht.cpp:1940,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1940,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1942,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1942,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:1943,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1944,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1944,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:1946,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1946,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1947,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1950,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1950,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1951,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1951,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1952,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1954,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1955,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1956,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1960,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1960,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1961,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1965,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1967,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1968,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1971,1
    - Dst: msg_args::nodes
      Src: /src/libtorrent/test/test_dht.cpp:1973,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:1974,1
    - Dst: msg_args::nodes6
      Src: /src/libtorrent/test/test_dht.cpp:1978,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:1979,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:1982,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1984,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1984,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1915
    functionDepth: 3
    functionLinenumber: 1915
    functionLinenumberEnd: 1985
    functionName: test_short_nodes
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - empty
    - msg_args::nodes
    - string_value
    - rand_addr
    - dht_test_setup::dht_node::bootstrap
    - front
    - msg_args::nodes6
    - clear
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - libtorrent::aux::is_v4
    - verify_message
    - send_dht_response
    - size
    - TEST_CHECK
    - std::bind
    - std::vector::push_back
    - string
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void test_short_nodes(address(&rand_addr)())
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:1917,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1917,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1935,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1937,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1939,1
    - Dst: dht_test_setup::dht_node::bootstrap
      Src: /src/libtorrent/test/test_dht.cpp:1940,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:1940,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1942,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1942,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:1943,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1944,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1944,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:1946,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:1946,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:1947,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1950,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1950,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:1951,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1951,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1952,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1954,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1955,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:1956,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:1960,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:1960,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:1961,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:1965,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:1967,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:1968,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:1971,1
    - Dst: msg_args::nodes
      Src: /src/libtorrent/test/test_dht.cpp:1973,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:1974,1
    - Dst: msg_args::nodes6
      Src: /src/libtorrent/test/test_dht.cpp:1978,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:1979,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:1982,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:1984,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:1984,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1915
    functionDepth: 3
    functionLinenumber: 1915
    functionLinenumberEnd: 1985
    functionName: test_short_nodes
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - empty
    - msg_args::nodes
    - string_value
    - rand_addr
    - dht_test_setup::dht_node::bootstrap
    - front
    - msg_args::nodes6
    - clear
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - libtorrent::aux::is_v4
    - verify_message
    - send_dht_response
    - size
    - TEST_CHECK
    - std::bind
    - std::vector::push_back
    - string
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void test_short_nodes(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_short_nodes
      Src: /src/libtorrent/test/test_dht.cpp:1991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1989
    functionDepth: 4
    functionLinenumber: 1989
    functionLinenumberEnd: 1992
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_short_nodes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(short_nodes_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:1996,1
    - Dst: test_short_nodes
      Src: /src/libtorrent/test/test_dht.cpp:1997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1994
    functionDepth: 4
    functionLinenumber: 1994
    functionLinenumberEnd: 1998
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_short_nodes
    - supports_ipv6
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(short_nodes_v6)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2004,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2004,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2021,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2023,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2025,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2026,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:2027,1
    - Dst: dht_test_setup::dht_node::announce
      Src: /src/libtorrent/test/test_dht.cpp:2029,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2031,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2031,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2032,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2033,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2033,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2035,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2035,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2036,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2039,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2039,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2040,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2040,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2041,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2041,1
    - Dst: dht::node_id::to_string
      Src: /src/libtorrent/test/test_dht.cpp:2041,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2042,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2043,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2048,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2048,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2049,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2054,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2054,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2054,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2055,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2055,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2055,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2056,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2056,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2056,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2058,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:2060,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2062,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:2063,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2065,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2066,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2070,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2071,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2074,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2074,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2075,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2076,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2076,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2078,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2078,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2079,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2082,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2082,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2083,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2083,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2084,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2084,1
    - Dst: dht::node_id::to_string
      Src: /src/libtorrent/test/test_dht.cpp:2084,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2085,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2086,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2091,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2091,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2092,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2096,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2096,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2096,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2097,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2097,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2097,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2098,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2098,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2098,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2100,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2101,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2108,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:2108,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2111,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: begin
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2120,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2002
    functionDepth: 3
    functionLinenumber: 2002
    functionLinenumberEnd: 2121
    functionName: test_get_peers
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - begin
    - empty
    - string_value
    - rand_addr
    - to_hash
    - end
    - std::find
    - front
    - msg_args
    - clear
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - dht_test_setup::dht_node::announce
    - node_from_entry
    - libtorrent::aux::is_v4
    - verify_message
    - send_dht_response
    - size
    - TEST_CHECK
    - dht_test_setup::dht_node::m_table::add_node
    - std::vector::push_back
    - string
    - insert
    - local_endpoint
    - dht::node_id::to_string
    linkageType: ''
    returnType: void
    signature: void test_get_peers(address(&rand_addr)())
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2004,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2004,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2021,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2023,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2025,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2026,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:2027,1
    - Dst: dht_test_setup::dht_node::announce
      Src: /src/libtorrent/test/test_dht.cpp:2029,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2031,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2031,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2032,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2033,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2033,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2035,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2035,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2036,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2039,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2039,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2040,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2040,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2041,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2041,1
    - Dst: dht::node_id::to_string
      Src: /src/libtorrent/test/test_dht.cpp:2041,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2042,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2043,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2048,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2048,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2049,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2054,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2054,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2054,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2055,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2055,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2055,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2056,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2056,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2056,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2058,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:2060,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2062,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/test/test_dht.cpp:2063,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2065,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2066,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2070,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2071,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2074,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2074,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2075,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2076,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2076,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2078,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2078,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2079,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2082,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2082,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2083,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2083,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2084,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2084,1
    - Dst: dht::node_id::to_string
      Src: /src/libtorrent/test/test_dht.cpp:2084,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2085,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2086,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2091,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2091,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2092,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2096,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2096,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2096,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2097,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2097,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2097,1
    - Dst: insert
      Src: /src/libtorrent/test/test_dht.cpp:2098,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2098,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2098,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2100,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2101,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2108,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:2108,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2111,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: begin
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2117,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2120,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2002
    functionDepth: 3
    functionLinenumber: 2002
    functionLinenumberEnd: 2121
    functionName: test_get_peers
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - begin
    - empty
    - string_value
    - rand_addr
    - to_hash
    - end
    - std::find
    - front
    - msg_args
    - clear
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - dht_test_setup::dht_node::announce
    - node_from_entry
    - libtorrent::aux::is_v4
    - verify_message
    - send_dht_response
    - size
    - TEST_CHECK
    - dht_test_setup::dht_node::m_table::add_node
    - std::vector::push_back
    - string
    - insert
    - local_endpoint
    - dht::node_id::to_string
    linkageType: ''
    returnType: void
    signature: void test_get_peers(address(&rand_addr)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_get_peers
      Src: /src/libtorrent/test/test_dht.cpp:2127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2125
    functionDepth: 4
    functionLinenumber: 2125
    functionLinenumberEnd: 2128
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_get_peers
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_peers_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:2132,1
    - Dst: test_get_peers
      Src: /src/libtorrent/test/test_dht.cpp:2133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2130
    functionDepth: 4
    functionLinenumber: 2130
    functionLinenumberEnd: 2134
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_get_peers
    - supports_ipv6
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_peers_v6)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2141,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2141,1
    - Dst: get_test_keypair
      Src: /src/libtorrent/test/test_dht.cpp:2145,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2157,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2159,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2160,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:2161,1
    - Dst: assign
      Src: /src/libtorrent/test/test_dht.cpp:2163,1
    - Dst: dht_test_setup::dht_node::put_item
      Src: /src/libtorrent/test/test_dht.cpp:2164,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2164,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:2165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2168,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2168,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2172,1
    - Dst: dht_test_setup::dht_node::get_item
      Src: /src/libtorrent/test/test_dht.cpp:2174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2176,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2176,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2178,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2178,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2180,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2180,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2185,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2185,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2186,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2186,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2187,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2188,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2193,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2193,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2194,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2198,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:2201,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:2201,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:2202,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2203,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2213,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2213,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2214,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2214,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2215,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2217,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2218,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2219,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2220,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2220,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - with_salt
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2139
    functionDepth: 3
    functionLinenumber: 2139
    functionLinenumberEnd: 2222
    functionName: test_mutable_get
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - empty
    - dht_test_setup::dht_node::get_item
    - assign
    - string_value
    - rand_addr
    - to_hash
    - front
    - msg_args
    - clear
    - dht_test_setup::dht_node::put_item
    - span<char const>
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - verify_message
    - send_dht_response
    - std::string
    - get_test_keypair
    - size
    - bencode
    - dht_test_setup::dht_node::m_table::add_node
    - TEST_CHECK
    - std::bind
    - local_endpoint
    - sign_mutable_item
    linkageType: ''
    returnType: void
    signature: void test_mutable_get(address(&rand_addr)(), bool const with_salt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2141,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2141,1
    - Dst: get_test_keypair
      Src: /src/libtorrent/test/test_dht.cpp:2145,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2157,1
    - Dst: rand_addr
      Src: /src/libtorrent/test/test_dht.cpp:2159,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2160,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:2161,1
    - Dst: assign
      Src: /src/libtorrent/test/test_dht.cpp:2163,1
    - Dst: dht_test_setup::dht_node::put_item
      Src: /src/libtorrent/test/test_dht.cpp:2164,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2164,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:2165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2168,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2168,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2172,1
    - Dst: dht_test_setup::dht_node::get_item
      Src: /src/libtorrent/test/test_dht.cpp:2174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2176,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2176,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2178,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2178,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2180,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2180,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2185,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2185,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2186,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2186,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2187,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2188,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2193,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2193,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2194,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2198,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:2201,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:2201,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:2202,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2203,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2213,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2213,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2214,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2214,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2215,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2217,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2218,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2219,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2220,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2220,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - with_salt
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2139
    functionDepth: 3
    functionLinenumber: 2139
    functionLinenumberEnd: 2222
    functionName: test_mutable_get
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - empty
    - dht_test_setup::dht_node::get_item
    - assign
    - string_value
    - rand_addr
    - to_hash
    - front
    - msg_args
    - clear
    - dht_test_setup::dht_node::put_item
    - span<char const>
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - verify_message
    - send_dht_response
    - std::string
    - get_test_keypair
    - size
    - bencode
    - dht_test_setup::dht_node::m_table::add_node
    - TEST_CHECK
    - std::bind
    - local_endpoint
    - sign_mutable_item
    linkageType: ''
    returnType: void
    signature: void test_mutable_get(address(&rand_addr)(), bool const with_salt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_mutable_get
      Src: /src/libtorrent/test/test_dht.cpp:2228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2226
    functionDepth: 4
    functionLinenumber: 2226
    functionLinenumberEnd: 2229
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_mutable_get
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mutable_get_v4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_mutable_get
      Src: /src/libtorrent/test/test_dht.cpp:2233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2231
    functionDepth: 4
    functionLinenumber: 2231
    functionLinenumberEnd: 2234
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_mutable_get
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mutable_get_salt_v4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:2238,1
    - Dst: test_mutable_get
      Src: /src/libtorrent/test/test_dht.cpp:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2236
    functionDepth: 4
    functionLinenumber: 2236
    functionLinenumberEnd: 2240
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_mutable_get
    - supports_ipv6
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mutable_get_v6)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_dht.cpp:2244,1
    - Dst: test_mutable_get
      Src: /src/libtorrent/test/test_dht.cpp:2245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2242
    functionDepth: 4
    functionLinenumber: 2242
    functionLinenumberEnd: 2246
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - test_mutable_get
    - supports_ipv6
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mutable_get_salt_v6)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2250,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:2250,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2255,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:2257,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2258,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:2259,1
    - Dst: dht_test_setup::dht_node::get_item
      Src: /src/libtorrent/test/test_dht.cpp:2261,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2263,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2263,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2264,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2265,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2265,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2267,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2267,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2269,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2272,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2272,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2273,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2273,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2274,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2274,1
    - Dst: target::to_string
      Src: /src/libtorrent/test/test_dht.cpp:2274,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2275,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2275,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2279,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2279,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2280,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2284,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2285,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2288,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2288,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2289,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2289,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2290,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2292,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:2292,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2248
    functionDepth: 3
    functionLinenumber: 2248
    functionLinenumberEnd: 2294
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - empty
    - dht_test_setup::dht_node::get_item
    - addr4
    - string_value
    - to_hash
    - front
    - msg_args
    - clear
    - target::to_string
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - verify_message
    - send_dht_response
    - size
    - TEST_CHECK
    - dht_test_setup::dht_node::m_table::add_node
    - rand_v4
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(immutable_get)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2315,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2318,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:2318,1
    - Dst: dht_test_setup::sett::set_int
      Src: /src/libtorrent/test/test_dht.cpp:2321,1
    - Dst: build_nodes
      Src: /src/libtorrent/test/test_dht.cpp:2323,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:2326,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:2331,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_dht.cpp:2331,1
    - Dst: item_target_id
      Src: /src/libtorrent/test/test_dht.cpp:2332,1
    - Dst: dht_test_setup::dht_node::put_item
      Src: /src/libtorrent/test/test_dht.cpp:2334,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:2334,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2336,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2336,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2337,1
    - Dst: find_packet
      Src: /src/libtorrent/test/test_dht.cpp:2343,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2343,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2344,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2344,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2345,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2347,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2349,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2352,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2352,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2353,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_dht.cpp:2357,1
    - Dst: msg_args::token
      Src: /src/libtorrent/test/test_dht.cpp:2360,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2361,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2361,1
    - Dst: erase
      Src: /src/libtorrent/test/test_dht.cpp:2362,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2365,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2365,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2366,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:2368,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:2368,1
    - Dst: find_packet
      Src: /src/libtorrent/test/test_dht.cpp:2374,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2374,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2375,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2375,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2376,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2378,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2379,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2383,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2383,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2384,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2384,1
    - Dst: data_section
      Src: /src/libtorrent/test/test_dht.cpp:2385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2386,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:2386,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_dht.cpp:2388,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2389,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2389,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2390,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2391,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2393,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2393,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2397,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2397,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2398,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2402,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2403,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2296
    functionDepth: 3
    functionLinenumber: 2296
    functionLinenumberEnd: 2406
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - find_packet
    - string_value
    - end
    - clear
    - data_section
    - dht_test_setup::dht_node::put_item
    - span<char const>
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - verify_message
    - send_dht_response
    - erase
    - std::snprintf
    - size
    - TEST_CHECK
    - bencode
    - dht_test_setup::dht_node::m_table::add_node
    - item_target_id
    - build_nodes
    - rand_v4
    - std::bind
    - dht_test_setup::sett::set_int
    - ep
    - local_endpoint
    - std::back_inserter
    - msg_args::token
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(immutable_put)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_test_keypair
      Src: /src/libtorrent/test/test_dht.cpp:2416,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2421,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2424,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:2424,1
    - Dst: dht_test_setup::sett::set_int
      Src: /src/libtorrent/test/test_dht.cpp:2427,1
    - Dst: build_nodes
      Src: /src/libtorrent/test/test_dht.cpp:2430,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:2433,1
    - Dst: assign
      Src: /src/libtorrent/test/test_dht.cpp:2435,1
    - Dst: sig
      Src: /src/libtorrent/test/test_dht.cpp:2436,1
    - Dst: dht_test_setup::dht_node::put_item
      Src: /src/libtorrent/test/test_dht.cpp:2437,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2437,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:2438,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2441,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2441,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2442,1
    - Dst: find_packet
      Src: /src/libtorrent/test/test_dht.cpp:2448,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2448,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2449,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2449,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2450,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2452,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2454,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2457,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2457,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2458,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_dht.cpp:2462,1
    - Dst: msg_args::token
      Src: /src/libtorrent/test/test_dht.cpp:2465,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2466,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2466,1
    - Dst: erase
      Src: /src/libtorrent/test/test_dht.cpp:2467,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2470,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2470,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2471,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_dht.cpp:2473,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:2473,1
    - Dst: find_packet
      Src: /src/libtorrent/test/test_dht.cpp:2479,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2479,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2480,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2480,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2481,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2483,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2484,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2488,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2488,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2489,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2489,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2490,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2490,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2491,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/test/test_dht.cpp:2491,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2492,1
    - Dst: int_value
      Src: /src/libtorrent/test/test_dht.cpp:2492,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2493,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2493,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2494,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/test/test_dht.cpp:2494,1
    - Dst: data_section
      Src: /src/libtorrent/test/test_dht.cpp:2495,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2496,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_dht.cpp:2498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2499,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2499,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2500,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2501,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2503,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2503,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2507,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2507,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2508,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2512,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2513,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2408
    functionDepth: 3
    functionLinenumber: 2408
    functionLinenumberEnd: 2516
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - sig
    - assign
    - find_packet
    - string_value
    - int_value
    - signature::bytes::data
    - end
    - clear
    - data_section
    - dht_test_setup::dht_node::put_item
    - span<char const>
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - public_key::bytes::data
    - verify_message
    - send_dht_response
    - erase
    - std::string
    - std::snprintf
    - get_test_keypair
    - size
    - TEST_CHECK
    - dht_test_setup::dht_node::m_table::add_node
    - bencode
    - std::bind
    - build_nodes
    - rand_v4
    - dht_test_setup::sett::set_int
    - ep
    - local_endpoint
    - msg_args::token
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mutable_put)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2520,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:2520,1
    - Dst: dht_test_setup::sett::set_int
      Src: /src/libtorrent/test/test_dht.cpp:2523,1
    - Dst: get_test_keypair
      Src: /src/libtorrent/test/test_dht.cpp:2527,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2534,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_dht.cpp:2536,1
    - Dst: build_nodes
      Src: /src/libtorrent/test/test_dht.cpp:2539,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_dht.cpp:2544,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:2548,1
    - Dst: assign
      Src: /src/libtorrent/test/test_dht.cpp:2551,1
    - Dst: dht_test_setup::dht_node::put_item
      Src: /src/libtorrent/test/test_dht.cpp:2552,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2552,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:2553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2555,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2555,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2556,1
    - Dst: find_packet
      Src: /src/libtorrent/test/test_dht.cpp:2566,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2566,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2567,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2567,1
    - Dst: end
      Src: /src/libtorrent/test/test_dht.cpp:2568,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:2570,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2572,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2575,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2575,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2576,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_dht.cpp:2580,1
    - Dst: msg_args::token
      Src: /src/libtorrent/test/test_dht.cpp:2583,1
    - Dst: msg_args::nodes
      Src: /src/libtorrent/test/test_dht.cpp:2587,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:2589,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht.cpp:2589,1
    - Dst: erase
      Src: /src/libtorrent/test/test_dht.cpp:2590,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2596,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2598,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:2598,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2600,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2601,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2518
    functionDepth: 3
    functionLinenumber: 2518
    functionLinenumberEnd: 2603
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - assign
    - find_packet
    - msg_args::nodes
    - hasher
    - end
    - clear
    - dht_test_setup::dht_node::put_item
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - verify_message
    - send_dht_response
    - erase
    - std::string
    - std::snprintf
    - get_test_keypair
    - static_cast<std::uint8_t>
    - size
    - TEST_CHECK
    - dht_test_setup::dht_node::m_table::add_node
    - std::bind
    - build_nodes
    - rand_v4
    - dht_test_setup::sett::set_int
    - ep
    - local_endpoint
    - msg_args::token
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(traversal_done)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:2608,1
    - Dst: dummy_listen_socket4
      Src: /src/libtorrent/test/test_dht.cpp:2610,1
    - Dst: dummy_listen_socket6
      Src: /src/libtorrent/test/test_dht.cpp:2611,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2619,1
    - Dst: static_cast<node*>
      Src: /src/libtorrent/test/test_dht.cpp:2620,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/test/test_dht.cpp:2623,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:2623,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:2624,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:2625,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2634,1
    - Dst: dht::node::m_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:2635,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2635,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:2635,1
    - Dst: dht::node::m_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:2636,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2636,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:2636,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:2640,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:2642,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2643,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_dht.cpp:2644,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2656,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:2660,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2661,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_dht.cpp:2661,1
    - Dst: node_id::data
      Src: /src/libtorrent/test/test_dht.cpp:2661,1
    - Dst: node_id::size
      Src: /src/libtorrent/test/test_dht.cpp:2661,1
    - Dst: node_id::size
      Src: /src/libtorrent/test/test_dht.cpp:2662,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/test/test_dht.cpp:2663,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2664,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2664,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:2664,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2668,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2668,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2669,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/test/test_dht.cpp:2674,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:2674,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:2676,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2677,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2688,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:2692,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2693,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_dht.cpp:2693,1
    - Dst: node_id::data
      Src: /src/libtorrent/test/test_dht.cpp:2693,1
    - Dst: node_id::size
      Src: /src/libtorrent/test/test_dht.cpp:2693,1
    - Dst: node_id::size
      Src: /src/libtorrent/test/test_dht.cpp:2694,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/test/test_dht.cpp:2695,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2696,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2696,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:2696,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2700,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2700,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2701,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:2706,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:2707,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_dht.cpp:2707,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2721,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:2725,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2726,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_dht.cpp:2726,1
    - Dst: node_id::data
      Src: /src/libtorrent/test/test_dht.cpp:2726,1
    - Dst: node_id::size
      Src: /src/libtorrent/test/test_dht.cpp:2726,1
    - Dst: node_id::size
      Src: /src/libtorrent/test/test_dht.cpp:2727,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/test/test_dht.cpp:2728,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2729,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2729,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:2729,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:2731,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2732,1
    - Dst: memcmp
      Src: /src/libtorrent/test/test_dht.cpp:2732,1
    - Dst: node_id::data
      Src: /src/libtorrent/test/test_dht.cpp:2732,1
    - Dst: node_id::size
      Src: /src/libtorrent/test/test_dht.cpp:2732,1
    - Dst: node_id::size
      Src: /src/libtorrent/test/test_dht.cpp:2733,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/test/test_dht.cpp:2734,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2735,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2735,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:2735,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2739,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2739,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:2740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2605
    functionDepth: 4
    functionLinenumber: 2605
    functionLinenumberEnd: 2742
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - addr
    - dht::node::m_table::node_seen
    - to_hash
    - std::unique_ptr::update_node_ids
    - aux::read_v6_endpoint<udp::endpoint>
    - udp::endpoint::address
    - node_id::data
    - aux::read_v4_endpoint<udp::endpoint>
    - dummy_listen_socket4
    - msg_args
    - sha1_hash
    - string_ptr
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_id
    - verify_message
    - send_dht_request
    - test_settings
    - TEST_CHECK
    - static_cast<node*>
    - memcmp
    - node_id::size
    - dummy_listen_socket6
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_dual_stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2747,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:2747,1
    - Dst: dict
      Src: /src/libtorrent/test/test_dht.cpp:2754,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_dht.cpp:2754,1
    - Dst: generate_next
      Src: /src/libtorrent/test/test_dht.cpp:2754,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:2756,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:2760,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2761,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_dht.cpp:2761,1
    - Dst: dht_test_setup::dht_node::incoming
      Src: /src/libtorrent/test/test_dht.cpp:2764,1
    - Dst: dummy_listen_socket
      Src: /src/libtorrent/test/test_dht.cpp:2764,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:2764,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:2764,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2765,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:2765,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:2766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2744
    functionDepth: 3
    functionLinenumber: 2744
    functionLinenumberEnd: 2767
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - generate_next
    - TEST_CHECK
    - dht_test_setup::dht_node::incoming
    - rand_v4
    - std::make_pair
    - std::printf
    - empty
    - dict
    - dummy_listen_socket
    - local_endpoint
    - error_code::message
    - clear
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multi_home)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_test_keypair
      Src: /src/libtorrent/test/test_dht.cpp:2780,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:2783,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht.cpp:2783,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2785,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:2785,1
    - Dst: item_target_id
      Src: /src/libtorrent/test/test_dht.cpp:2789,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2790,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:2790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2769
    functionDepth: 2
    functionLinenumber: 2769
    functionLinenumberEnd: 2791
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - item_target_id
    - libtorrent::aux::to_hex
    - get_test_keypair
    - sequence_number
    - sign_mutable_item
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(signing_test1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_test_keypair
      Src: /src/libtorrent/test/test_dht.cpp:2797,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/test/test_dht.cpp:2807,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht.cpp:2807,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2809,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:2809,1
    - Dst: item_target_id
      Src: /src/libtorrent/test/test_dht.cpp:2813,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2814,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:2814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2793
    functionDepth: 2
    functionLinenumber: 2793
    functionLinenumberEnd: 2815
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - item_target_id
    - libtorrent::aux::to_hex
    - get_test_keypair
    - sequence_number
    - sign_mutable_item
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(signing_test2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: item_target_id
      Src: /src/libtorrent/test/test_dht.cpp:2824,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2825,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht.cpp:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2817
    functionDepth: 1
    functionLinenumber: 2817
    functionLinenumberEnd: 2826
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - item_target_id
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(signing_test3)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:2850,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2851,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2851,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2853,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2854,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2855,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2856,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2856,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2857,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2858,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2859,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2859,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2860,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2861,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2861,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2862,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2863,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2864,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:2867,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2868,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2868,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2870,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2871,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2872,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2873,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2873,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2874,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2875,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2876,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2877,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2878,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2879,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2879,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2880,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2881,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:2881,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:2885,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2886,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2886,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2888,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2889,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2890,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2891,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2891,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:2894,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2895,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2895,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2897,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2898,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2899,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2900,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2900,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:2903,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2904,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2904,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:2906,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2907,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2908,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2909,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_dht.cpp:2909,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:2913,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2914,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:2914,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2915,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_dht.cpp:2915,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_dht.cpp:2916,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2918,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_dht.cpp:2918,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/test/test_dht.cpp:2919,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2921,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_dht.cpp:2921,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:2922,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/test/test_dht.cpp:2922,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2829
    functionDepth: 1
    functionLinenumber: 2829
    functionLinenumberEnd: 2925
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_entry
    - string_value
    - bdecode_node::type
    - std::printf
    - verify_message
    - bdecode_node::list_size
    - std::string
    - bdecode_node::list_at
    - bdecode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(verify_message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:2930,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:2933,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:2936,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2937,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2938,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:2940,1
    - Dst: add_and_replace
      Src: /src/libtorrent/test/test_dht.cpp:2947,1
    - Dst: routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:2954,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:2954,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2959,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:2959,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2968,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:2968,1
    - Dst: print_state
      Src: /src/libtorrent/test/test_dht.cpp:2970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2927
    functionDepth: 2
    functionLinenumber: 2927
    functionLinenumberEnd: 2971
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - rand_v4
    - rand_udp_ep
    - to_hash
    - print_state
    - routing_table::num_active_buckets
    - add_and_replace
    - routing_table::node_seen
    - test_settings
    - auto::set_bool
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(routing_table_uniform)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:2975,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:2978,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:2979,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:2980,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:2982,1
    - Dst: routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:2989,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:2989,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:2991,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:2991,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:2992,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:2992,1
    - Dst: print_state
      Src: /src/libtorrent/test/test_dht.cpp:2994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2973
    functionDepth: 2
    functionLinenumber: 2973
    functionLinenumberEnd: 2995
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - rand_v4
    - rand_udp_ep
    - to_hash
    - print_state
    - routing_table::num_active_buckets
    - routing_table::node_seen
    - test_settings
    - auto::set_bool
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(routing_table_balance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:2999,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3001,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3002,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3003,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3004,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/test/test_dht.cpp:3009,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3010,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/test/test_dht.cpp:3011,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3013,1
    - Dst: add_and_replace
      Src: /src/libtorrent/test/test_dht.cpp:3016,1
    - Dst: routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:3018,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:3018,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3020,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:3020,1
    - Dst: print_state
      Src: /src/libtorrent/test/test_dht.cpp:3022,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 2997
    functionDepth: 2
    functionLinenumber: 2997
    functionLinenumberEnd: 3023
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - rand_v4
    - std::vector::push_back
    - to_hash
    - rand_udp_ep
    - print_state
    - routing_table::num_active_buckets
    - std::vector::reserve
    - add_and_replace
    - routing_table::node_seen
    - test_settings
    - libtorrent::aux::random_shuffle
    - auto::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(routing_table_extended)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set<node_id>*::insert
      Src: /src/libtorrent/test/test_dht.cpp:3028,1
    - Dst: std::set<node_id>*::begin
      Src: /src/libtorrent/test/test_dht.cpp:3028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nodes
    - ' ne'
    argTypes:
    - std::set<node_id>*
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3026
    functionDepth: 0
    functionLinenumber: 3026
    functionLinenumberEnd: 3029
    functionName: inserter
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 110
    functionsReached:
    - std::set<node_id>*::insert
    - std::set<node_id>*::begin
    linkageType: ''
    returnType: void
    signature: void inserter(std::set<node_id>* nodes, node_entry const& ne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set<node_id>*::insert
      Src: /src/libtorrent/test/test_dht.cpp:3028,1
    - Dst: std::set<node_id>*::begin
      Src: /src/libtorrent/test/test_dht.cpp:3028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nodes
    - ' ne'
    argTypes:
    - std::set<node_id>*
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3026
    functionDepth: 0
    functionLinenumber: 3026
    functionLinenumberEnd: 3029
    functionName: inserter
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 110
    functionsReached:
    - std::set<node_id>*::insert
    - std::set<node_id>*::begin
    linkageType: ''
    returnType: void
    signature: void inserter(std::set<node_id>* nodes, node_entry const& ne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:3034,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3035,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3036,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3037,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3039,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/test/test_dht.cpp:3044,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3045,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/test/test_dht.cpp:3046,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3047,1
    - Dst: routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:3051,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:3051,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3053,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:3053,1
    - Dst: routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:3056,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:3056,1
    - Dst: print_state
      Src: /src/libtorrent/test/test_dht.cpp:3058,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3060,1
    - Dst: routing_table::update_node_id
      Src: /src/libtorrent/test/test_dht.cpp:3062,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3064,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:3064,1
    - Dst: routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:3066,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_dht.cpp:3066,1
    - Dst: std::set_intersection
      Src: /src/libtorrent/test/test_dht.cpp:3069,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_dht.cpp:3069,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_dht.cpp:3069,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_dht.cpp:3070,1
    - Dst: std::set::end
      Src: /src/libtorrent/test/test_dht.cpp:3070,1
    - Dst: inserter
      Src: /src/libtorrent/test/test_dht.cpp:3071,1
    - Dst: std::set::begin
      Src: /src/libtorrent/test/test_dht.cpp:3071,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3074,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_dht.cpp:3074,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_dht.cpp:3074,1
    - Dst: print_state
      Src: /src/libtorrent/test/test_dht.cpp:3076,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3032
    functionDepth: 2
    functionLinenumber: 3032
    functionLinenumberEnd: 3077
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_state
    - routing_table::num_active_buckets
    - std::vector::reserve
    - routing_table::for_each_node
    - libtorrent::aux::random_shuffle
    - auto::set_bool
    - to_hash
    - std::set::begin
    - std::set::size
    - std::set_intersection
    - TEST_EQUAL
    - rand_udp_ep
    - routing_table::update_node_id
    - routing_table::node_seen
    - inserter
    - test_settings
    - TEST_CHECK
    - std::bind
    - rand_v4
    - std::vector::push_back
    - std::set::end
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(routing_table_set_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:3081,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3084,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3085,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3086,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3088,1
    - Dst: routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:3093,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:3093,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_dht.cpp:3098,1
    - Dst: routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:3098,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3100,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:3100,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3101,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3104,1
    - Dst: routing_table::num_active_buckets
      Src: /src/libtorrent/test/test_dht.cpp:3104,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3106,1
    - Dst: print_state
      Src: /src/libtorrent/test/test_dht.cpp:3108,1
    - Dst: routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:3111,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3111,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3112,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3112,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:3113,1
    - Dst: routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:3114,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3114,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3115,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3115,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:3116,1
    - Dst: routing_table::for_each_node
      Src: /src/libtorrent/test/test_dht.cpp:3117,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3118,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3079
    functionDepth: 2
    functionLinenumber: 3079
    functionLinenumberEnd: 3119
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - rand_v4
    - std::vector::size
    - rand_udp_ep
    - to_hash
    - std::tie
    - std::vector::push_back
    - std::vector::clear
    - print_state
    - routing_table::num_active_buckets
    - routing_table::size
    - routing_table::node_seen
    - routing_table::for_each_node
    - test_settings
    - auto::set_bool
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(routing_table_for_each)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:3123,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3123,1
    - Dst: dht_test_setup::dht_node::nid
      Src: /src/libtorrent/test/test_dht.cpp:3124,1
    - Dst: dht_test_setup::observer::set_external_address
      Src: /src/libtorrent/test/test_dht.cpp:3127,1
    - Dst: libtorrent::aux::listen_socket_handle
      Src: /src/libtorrent/test/test_dht.cpp:3127,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:3127,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3127,1
    - Dst: dht_test_setup::dht_node::update_node_id
      Src: /src/libtorrent/test/test_dht.cpp:3128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3129,1
    - Dst: dht_test_setup::dht_node::nid
      Src: /src/libtorrent/test/test_dht.cpp:3129,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:3134,1
    - Dst: libtorrent::dht::verify_message
      Src: /src/libtorrent/test/test_dht.cpp:3143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3144,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3147,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3147,1
    - Dst: string_ptr
      Src: /src/libtorrent/test/test_dht.cpp:3147,1
    - Dst: dht_test_setup::dht_node::nid
      Src: /src/libtorrent/test/test_dht.cpp:3147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3148
      start: 3121
    functionDepth: 3
    functionLinenumber: 3121
    functionLinenumberEnd: 3148
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - rand_v4
    - libtorrent::dht::verify_message
    - node_id
    - dht_test_setup::dht_node::update_node_id
    - dht_test_setup::dht_node::nid
    - dht_test_setup::observer::set_external_address
    - libtorrent::aux::listen_socket_handle
    - local_endpoint
    - send_dht_request
    - string_ptr
    - addr4
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(node_set_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:3153,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3154,1
    - Dst: dummy_listen_socket4
      Src: /src/libtorrent/test/test_dht.cpp:3156,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/test/test_dht.cpp:3161,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3161,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3162,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:3163,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:3168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3169,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_dht.cpp:3169,1
    - Dst: msg_args::target
      Src: /src/libtorrent/test/test_dht.cpp:3171,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_dht.cpp:3171,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:3172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3173,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/test/test_dht.cpp:3173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3176,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3176,1
    - Dst: dht::node::size
      Src: /src/libtorrent/test/test_dht.cpp:3176,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:3182,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3183,1
    - Dst: dht::node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:3184,1
    - Dst: generate_next
      Src: /src/libtorrent/test/test_dht.cpp:3186,1
    - Dst: dht::node::get_item
      Src: /src/libtorrent/test/test_dht.cpp:3188,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3189,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:3189,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3190,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:3190,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:3202,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:3202,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:3203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3205,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3206,1
    - Dst: int_value
      Src: /src/libtorrent/test/test_dht.cpp:3206,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3209,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3209,1
    - Dst: dht::node::size
      Src: /src/libtorrent/test/test_dht.cpp:3209,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3211,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:3211,1
    - Dst: dht::node::size
      Src: /src/libtorrent/test/test_dht.cpp:3211,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:3214,1
    - Dst: auto::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3215,1
    - Dst: send_dht_request
      Src: /src/libtorrent/test/test_dht.cpp:3217,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3219,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:3219,1
    - Dst: dht::node::size
      Src: /src/libtorrent/test/test_dht.cpp:3219,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:3221,1
    - Dst: generate_next
      Src: /src/libtorrent/test/test_dht.cpp:3225,1
    - Dst: dht::node::get_item
      Src: /src/libtorrent/test/test_dht.cpp:3226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3229,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:3229,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:3232,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:3232,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:3233,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3235,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3236,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:3238,1
    - Dst: back
      Src: /src/libtorrent/test/test_dht.cpp:3238,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:3239,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3241,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3244
      start: 3150
    functionDepth: 3
    functionLinenumber: 3150
    functionLinenumberEnd: 3244
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - generate_next
    - std::get<0>
    - addr
    - dht::node::get_item
    - auto::set_bool
    - int_value
    - bdecode_node::type
    - to_hash
    - std::unique_ptr::update_node_ids
    - front
    - dummy_listen_socket4
    - back
    - clear
    - sha1_hash
    - TEST_EQUAL
    - node_from_entry
    - node_id
    - verify_message
    - send_dht_request
    - test_settings
    - std::get<1>
    - size
    - dht::node::size
    - TEST_CHECK
    - dht::node::m_table::add_node
    - msg_args::target
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(read_only_node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:3252,1
    - Dst: dummy_listen_socket4
      Src: /src/libtorrent/test/test_dht.cpp:3254,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/test/test_dht.cpp:3259,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3259,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3260,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:3261,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:3265,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:3267,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:3271,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3272,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_dht.cpp:3272,1
    - Dst: dht::node::incoming
      Src: /src/libtorrent/test/test_dht.cpp:3275,1
    - Dst: find
      Src: /src/libtorrent/test/test_dht.cpp:3280,1
    - Dst: find
      Src: /src/libtorrent/test/test_dht.cpp:3281,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3284,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_dht.cpp:3284,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3288
      start: 3249
    functionDepth: 3
    functionLinenumber: 3249
    functionLinenumberEnd: 3288
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_settings
    - node_id
    - std::unique_ptr::update_node_ids
    - string
    - std::printf
    - c_str
    - find
    - dummy_listen_socket4
    - error_code::message
    - dht::node::incoming
    - addr
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_error_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' dht_node'
    - ' target'
    argTypes:
    - node
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3294
      start: 3292
    functionDepth: 0
    functionLinenumber: 3292
    functionLinenumberEnd: 3294
    functionName: test_algo
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_algo(node& dht_node, node_id const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht::traversal_algorithm::done
      Src: /src/libtorrent/test/test_dht.cpp:3296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3296
    functionDepth: 1
    functionLinenumber: 3296
    functionLinenumberEnd: 3296
    functionName: done
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 1
    functionsReached:
    - dht::traversal_algorithm::done
    linkageType: ''
    returnType: void
    signature: void done() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3298
      start: 3298
    functionDepth: 0
    functionLinenumber: 3298
    functionLinenumberEnd: 3298
    functionName: '& results() const'
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<observer_ptr>
    signature: std::vector<observer_ptr> & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:3305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:3311,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3311,1
    - Dst: dht_test_setup::dht_node::nid
      Src: /src/libtorrent/test/test_dht.cpp:3313,1
    - Dst: std::make_shared<test_algo>
      Src: /src/libtorrent/test/test_dht.cpp:3314,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3319,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:3319,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/test/test_dht.cpp:3320,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3320,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_dht.cpp:3320,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3324,1
    - Dst: auto::num_sorted_results
      Src: /src/libtorrent/test/test_dht.cpp:3324,1
    - Dst: auto::results
      Src: /src/libtorrent/test/test_dht.cpp:3325,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3326,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_dht.cpp:3326,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3326,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3327,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3328,1
    - Dst: target_ep
      Src: /src/libtorrent/test/test_dht.cpp:3328,1
    - Dst: set_id
      Src: /src/libtorrent/test/test_dht.cpp:3333,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3333,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3335,1
    - Dst: auto::num_sorted_results
      Src: /src/libtorrent/test/test_dht.cpp:3335,1
    - Dst: auto::results
      Src: /src/libtorrent/test/test_dht.cpp:3336,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3337,1
    - Dst: auto::size
      Src: /src/libtorrent/test/test_dht.cpp:3337,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3337,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3338,1
    - Dst: target_ep
      Src: /src/libtorrent/test/test_dht.cpp:3338,1
    - Dst: auto::done
      Src: /src/libtorrent/test/test_dht.cpp:3339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3303
    functionDepth: 2
    functionLinenumber: 3303
    functionLinenumberEnd: 3340
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - std::vector::size
    - std::vector::push_back
    - rand_udp_ep
    - node_id
    - std::vector::back
    - init_rand_address
    - auto::done
    - dht_test_setup::dht_node::nid
    - std::make_shared<test_algo>
    - auto::num_sorted_results
    - auto::size
    - set_id
    - local_endpoint
    - auto::results
    - target_ep
    - auto::add_entry
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unsorted_traversal_results)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht.cpp:3345,1
    - Dst: dummy_listen_socket4
      Src: /src/libtorrent/test/test_dht.cpp:3347,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3351,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3351,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3352,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/test/test_dht.cpp:3354,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3354,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3355,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:3357,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:3366,1
    - Dst: std::enable_shared_from_this<traversal_algorithm>
      Src: /src/libtorrent/test/test_dht.cpp:3367,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3367,1
    - Dst: dht::rpc_manager::allocate_observer
      Src: /src/libtorrent/test/test_dht.cpp:3369,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_dht.cpp:3369,1
    - Dst: node_id
      Src: /src/libtorrent/test/test_dht.cpp:3369,1
    - Dst: dht::rpc_manager::invoke
      Src: /src/libtorrent/test/test_dht.cpp:3374,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:3379,1
    - Dst: begin
      Src: /src/libtorrent/test/test_dht.cpp:3380,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht.cpp:3380,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:3382,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:3386,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3387,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_dht.cpp:3387,1
    - Dst: dht::rpc_manager::incoming
      Src: /src/libtorrent/test/test_dht.cpp:3391,1
    - Dst: find
      Src: /src/libtorrent/test/test_dht.cpp:3396,1
    - Dst: find
      Src: /src/libtorrent/test/test_dht.cpp:3397,1
    - Dst: find
      Src: /src/libtorrent/test/test_dht.cpp:3398,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3401,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_dht.cpp:3401,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3342
    functionDepth: 3
    functionLinenumber: 3342
    functionLinenumberEnd: 3405
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - std::enable_shared_from_this<traversal_algorithm>
    - std::move
    - begin
    - addr
    - bdecode
    - std::unique_ptr::update_node_ids
    - dht::rpc_manager::incoming
    - dummy_listen_socket4
    - error_code::message
    - clear
    - std::printf
    - TEST_EQUAL
    - node_id
    - test_settings
    - bencode
    - dht::rpc_manager::invoke
    - rand_v4
    - dht::rpc_manager::allocate_observer
    - string
    - c_str
    - find
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rpc_invalid_error_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:3411,1
    - Dst: generate_id
      Src: /src/libtorrent/test/test_dht.cpp:3414,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3414,1
    - Dst: generate_id
      Src: /src/libtorrent/test/test_dht.cpp:3418,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3418,1
    - Dst: distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:3419,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3425,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3427,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3432,1
    - Dst: std::abs
      Src: /src/libtorrent/test/test_dht.cpp:3432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3409
    functionDepth: 2
    functionLinenumber: 3409
    functionLinenumberEnd: 3435
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - init_rand_address
    - distance_exp
    - generate_id
    - std::abs
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(node_id_bucket_distribution)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3439,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3440,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3441,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3445,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3447,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:3447,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_dht.cpp:3447,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3449,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3450,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3452,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:3452,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_dht.cpp:3452,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3454,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3455,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3456,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3458,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:3458,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_dht.cpp:3458,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/test/test_dht.cpp:3460,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3461,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3462,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3463,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3465,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:3465,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/test/test_dht.cpp:3465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3466
      start: 3437
    functionDepth: 1
    functionLinenumber: 3437
    functionLinenumberEnd: 3466
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::min
    - std::vector::push_back
    - to_hash
    - std::vector::clear
    - min_distance_exp
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(node_id_min_distance_exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_bool
      Src: /src/libtorrent/test/test_dht.cpp:3473,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3474,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht.cpp:3476,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3478,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3478,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:3478,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3481,1
    - Dst: add_and_replace
      Src: /src/libtorrent/test/test_dht.cpp:3483,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:3484,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:3484,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:3484,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:3485,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3486,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3486,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:3486,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3487,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3487,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:3490,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:3491,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:3491,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:3492,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3494,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3494,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:3494,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3495,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3495,1
    - Dst: dht::routing_table::node_seen
      Src: /src/libtorrent/test/test_dht.cpp:3498,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3498,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht.cpp:3499,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht.cpp:3499,1
    - Dst: dht::routing_table::find_node
      Src: /src/libtorrent/test/test_dht.cpp:3500,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3502,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3502,1
    - Dst: dht::routing_table::size
      Src: /src/libtorrent/test/test_dht.cpp:3502,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3503,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3504
      start: 3468
    functionDepth: 2
    functionLinenumber: 3468
    functionLinenumberEnd: 3504
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - rand_v4
    - std::vector::size
    - dht::routing_table::node_seen
    - to_hash
    - dht::routing_table::find_node
    - aux::session_settings::set_bool
    - std::get<0>
    - dht::routing_table::size
    - add_and_replace
    - local_endpoint
    - addr
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_verify_node_address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3520,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/test/test_dht.cpp:3520,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3522
      start: 3506
    functionDepth: 1
    functionLinenumber: 3506
    functionLinenumberEnd: 3522
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - generate_prefix_mask
    - TEST_EQUAL
    - to_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(generate_prefix_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3565,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3566,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:3566,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_dht.cpp:3566,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3568,1
    - Dst: distance_exp
      Src: /src/libtorrent/test/test_dht.cpp:3568,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3568,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3568,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3569,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:3569,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_dht.cpp:3569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3571
      start: 3524
    functionDepth: 1
    functionLinenumber: 3524
    functionLinenumberEnd: 3571
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - to_hash
    - std::get<0>
    - distance_exp
    - std::get<2>
    - std::get<1>
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(distance_exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3589,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3589,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:3589,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3590,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/test/test_dht.cpp:3590,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:3591,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3591,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_dht.cpp:3591,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:3591,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_dht.cpp:3591,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3609,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/test/test_dht.cpp:3609,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:3610,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_dht.cpp:3610,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_dht.cpp:3610,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_dht.cpp:3610,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_dht.cpp:3610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3612
      start: 3573
    functionDepth: 2
    functionLinenumber: 3573
    functionLinenumberEnd: 3612
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - addr6
    - std::get<0>
    - std::get<2>
    - compare_ip_cidr
    - std::get<1>
    - std::printf
    - addr4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(compare_ip_cidr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_state::nids::emplace_back
      Src: /src/libtorrent/test/test_dht.cpp:3618,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_dht.cpp:3618,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3618,1
    - Dst: dht_state::nodes::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3619,1
    - Dst: uep
      Src: /src/libtorrent/test/test_dht.cpp:3619,1
    - Dst: dht_state::nodes::push_back
      Src: /src/libtorrent/test/test_dht.cpp:3620,1
    - Dst: uep
      Src: /src/libtorrent/test/test_dht.cpp:3620,1
    - Dst: save_dht_state
      Src: /src/libtorrent/test/test_dht.cpp:3627,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_dht.cpp:3630,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_dht.cpp:3630,1
    - Dst: bdecode
      Src: /src/libtorrent/test/test_dht.cpp:3634,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_dht.cpp:3634,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3635,1
    - Dst: read_dht_state
      Src: /src/libtorrent/test/test_dht.cpp:3637,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3638,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3639,1
    - Dst: read_dht_state
      Src: /src/libtorrent/test/test_dht.cpp:3643,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3644,1
    - Dst: dht_state::nids::empty
      Src: /src/libtorrent/test/test_dht.cpp:3644,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3645,1
    - Dst: dht_state::nodes::empty
      Src: /src/libtorrent/test/test_dht.cpp:3645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3614
    functionDepth: 2
    functionLinenumber: 3614
    functionLinenumberEnd: 3646
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::vector::size
    - to_hash
    - dht_state::nodes::empty
    - dht_state::nodes::push_back
    - dht_state::nids::empty
    - read_dht_state
    - std::back_inserter
    - make_address
    - dht_state::nids::emplace_back
    - save_dht_state
    - bdecode
    - bencode
    - uep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_rand_address
      Src: /src/libtorrent/test/test_dht.cpp:3650,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:3655,1
    - Dst: generate_random_id
      Src: /src/libtorrent/test/test_dht.cpp:3657,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:3658,1
    - Dst: dht_test_setup::dht_node::m_table::add_node
      Src: /src/libtorrent/test/test_dht.cpp:3659,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_dht.cpp:3662,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_dht.cpp:3663,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:3664,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/test/test_dht.cpp:3665,1
    - Dst: dht_test_setup::dht_node::sample_infohashes
      Src: /src/libtorrent/test/test_dht.cpp:3667,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3674,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3675,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_dht.cpp:3675,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3676,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3677,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:3677,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3678,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3678,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3679,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:3679,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3680,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3681,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3682,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3683,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3686,1
    - Dst: size
      Src: /src/libtorrent/test/test_dht.cpp:3686,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:3687,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3688,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:3688,1
    - Dst: node_from_entry
      Src: /src/libtorrent/test/test_dht.cpp:3690,1
    - Dst: front
      Src: /src/libtorrent/test/test_dht.cpp:3690,1
    - Dst: verify_message
      Src: /src/libtorrent/test/test_dht.cpp:3692,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3696,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:3696,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3697,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:3697,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3698,1
    - Dst: string_value
      Src: /src/libtorrent/test/test_dht.cpp:3698,1
    - Dst: target::to_string
      Src: /src/libtorrent/test/test_dht.cpp:3698,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht.cpp:3702,1
    - Dst: print_entry
      Src: /src/libtorrent/test/test_dht.cpp:3702,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_dht.cpp:3703,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_dht.cpp:3708,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/test/test_dht.cpp:3709,1
    - Dst: clear
      Src: /src/libtorrent/test/test_dht.cpp:3711,1
    - Dst: send_dht_response
      Src: /src/libtorrent/test/test_dht.cpp:3712,1
    - Dst: msg_args
      Src: /src/libtorrent/test/test_dht.cpp:3713,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_dht.cpp:3715,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3717,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3720,1
    - Dst: empty
      Src: /src/libtorrent/test/test_dht.cpp:3720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3721
      start: 3648
    functionDepth: 3
    functionLinenumber: 3648
    functionLinenumberEnd: 3721
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - std::vector::emplace_back
    - empty
    - seconds
    - dht_test_setup::dht_node::sample_infohashes
    - string_value
    - rand_hash
    - to_hash
    - front
    - msg_args
    - clear
    - target::to_string
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - node_from_entry
    - rand_udp_ep
    - init_rand_address
    - verify_message
    - send_dht_response
    - size
    - TEST_CHECK
    - generate_random_id
    - dht_test_setup::dht_node::m_table::add_node
    - total_seconds
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(sample_infohashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_dht.cpp:3728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - verified
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3730
      start: 3724
    functionDepth: 0
    functionLinenumber: 3724
    functionLinenumberEnd: 3730
    functionName: fake_node
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint16_t>
    linkageType: ''
    returnType: node_entry
    signature: node_entry fake_node(bool verified, int rtt = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_dht.cpp:3728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - verified
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3730
      start: 3724
    functionDepth: 0
    functionLinenumber: 3724
    functionLinenumberEnd: 3730
    functionName: fake_node
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint16_t>
    linkageType: ''
    returnType: node_entry
    signature: node_entry fake_node(bool verified, int rtt = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3736,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3736,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3736,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3737,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3737,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3737,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3738,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3738,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3738,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3739,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3739,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3739,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3742,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3742,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3742,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3743,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3743,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3743,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3746,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3746,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3746,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3747,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3747,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3748
      start: 3733
    functionDepth: 1
    functionLinenumber: 3733
    functionLinenumberEnd: 3748
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - fake_node
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(node_entry_comparison)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3753,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3753,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3754,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3754,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3754,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3755,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3755,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3755,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3755,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3756,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3756,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3756,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3756,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3756,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3757,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3757,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3757,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3757,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3757,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3757,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3761,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3761,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3761,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3761,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3762,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3762,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3763,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3763,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3764,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3764,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3765,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3765,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3766,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3766,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3769,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3769,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3769,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3769,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3769,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3771,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3771,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3771,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3772,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3772,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3772,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3772,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3773,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/test/test_dht.cpp:3773,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3773,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3773,1
    - Dst: fake_node
      Src: /src/libtorrent/test/test_dht.cpp:3773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3750
    functionDepth: 1
    functionLinenumber: 3750
    functionLinenumberEnd: 3774
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - fake_node
    - TEST_CHECK
    - mostly_verified_nodes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mostly_verified_nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3779,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3779,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3779,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3780,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3780,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3780,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3781,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3781,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3781,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3782,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3782,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3782,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3783,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3783,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3783,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3784,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3784,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3784,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3785,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3785,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3785,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3786,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3786,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3786,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3787,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3787,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3787,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3789,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3789,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3789,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3790,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3790,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3790,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3791,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3791,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3791,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3792,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3792,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3792,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3793,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3793,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3793,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3794,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3794,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3794,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3795,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3795,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3795,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3796,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3796,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3796,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3797,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3797,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3797,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3799,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3799,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3799,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3800,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3800,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3800,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3801,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3801,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3801,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3802,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3802,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3802,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3803,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3803,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3803,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3804,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3804,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3804,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3805,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3805,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3805,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3806,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3806,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3806,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3807,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3807,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3807,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3809,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3809,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3809,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3810,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3810,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3810,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3811,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3811,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3811,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3812,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3812,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3812,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3813,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3813,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3813,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3814,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3814,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3814,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3815,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3815,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3815,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3816,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3816,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3816,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3817,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3817,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3817,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3820,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3820,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3820,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3821,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3821,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3821,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3822,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3822,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3822,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3823,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3823,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3823,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3824,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3824,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3824,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3825,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3825,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3825,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3826,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3826,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3826,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3827,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3827,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3827,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3828,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3828,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3828,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3830,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3830,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3830,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3831,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3831,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3831,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3832,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3832,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3832,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3833,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3833,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3833,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3834,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3834,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3834,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3835,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3835,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3835,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3836,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3836,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3836,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3837,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3837,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3837,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3838,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3838,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3838,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3841,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3841,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3841,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3842,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3842,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3842,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3843,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3843,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3843,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3844,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3844,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3844,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3845,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3845,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3845,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3846,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3846,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3846,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3847,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3847,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3847,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3848,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3848,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3848,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3849,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3849,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3849,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3850,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3850,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3850,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3851,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3851,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3851,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3852,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3852,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3852,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3853,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3853,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3853,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3854,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3854,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3854,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3855,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3855,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3855,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3856,1
    - Dst: classify_prefix
      Src: /src/libtorrent/test/test_dht.cpp:3856,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3857
      start: 3776
    functionDepth: 1
    functionLinenumber: 3776
    functionLinenumberEnd: 3857
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - classify_prefix
    - to_hash
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(classify_prefix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ip_set*::insert
      Src: /src/libtorrent/test/test_dht.cpp:3863,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/test/test_dht.cpp:3863,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_dht.cpp:3865,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3866,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_dht.cpp:3867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ips
    - nid
    argTypes:
    - ip_set*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3869
      start: 3860
    functionDepth: 2
    functionLinenumber: 3860
    functionLinenumberEnd: 3869
    functionName: n
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 282
    functionsReached:
    - to_hash
    - ip_set*::insert
    - static_cast<std::uint8_t>
    - static_cast<std::uint16_t>
    - node_entry::addr
    linkageType: ''
    returnType: node_entry
    signature: node_entry n(ip_set* ips, char const* nid, bool verified = true, int
      rtt = 0, int failed = 0)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ip_set*::insert
      Src: /src/libtorrent/test/test_dht.cpp:3863,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/test/test_dht.cpp:3863,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/test/test_dht.cpp:3865,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3866,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_dht.cpp:3867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ips
    - nid
    argTypes:
    - ip_set*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3869
      start: 3860
    functionDepth: 2
    functionLinenumber: 3860
    functionLinenumberEnd: 3869
    functionName: n
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 282
    functionsReached:
    - to_hash
    - ip_set*::insert
    - static_cast<std::uint8_t>
    - static_cast<std::uint16_t>
    - node_entry::addr
    linkageType: ''
    returnType: node_entry
    signature: node_entry n(ip_set* ips, char const* nid, bool verified = true, int
      rtt = 0, int failed = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3883,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3884,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3885,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3886,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3887,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3888,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3889,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3890,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3892,1
    - Dst: ip_set::size
      Src: /src/libtorrent/test/test_dht.cpp:3892,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3893,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/test/test_dht.cpp:3894,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3894,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3896,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3896,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3897,1
    - Dst: ip_set::size
      Src: /src/libtorrent/test/test_dht.cpp:3897,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3905,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3906,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3907,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3908,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3909,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3910,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3911,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3912,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3914,1
    - Dst: ip_set::size
      Src: /src/libtorrent/test/test_dht.cpp:3914,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3915,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/test/test_dht.cpp:3916,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3916,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3918,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3918,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3919,1
    - Dst: ip_set::size
      Src: /src/libtorrent/test/test_dht.cpp:3919,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3927,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3928,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3929,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3930,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3931,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3932,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3933,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3934,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3936,1
    - Dst: ip_set::size
      Src: /src/libtorrent/test/test_dht.cpp:3936,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3937,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/test/test_dht.cpp:3938,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3938,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3940,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3940,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3941,1
    - Dst: ip_set::size
      Src: /src/libtorrent/test/test_dht.cpp:3941,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3949,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3950,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3951,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3952,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3953,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3954,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3955,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3956,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3958,1
    - Dst: ip_set::size
      Src: /src/libtorrent/test/test_dht.cpp:3958,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3959,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/test/test_dht.cpp:3960,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3960,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3962,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3962,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht.cpp:3963,1
    - Dst: ip_set::size
      Src: /src/libtorrent/test/test_dht.cpp:3963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3877
    functionDepth: 3
    functionLinenumber: 3877
    functionLinenumberEnd: 3965
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - n
    - to_hash
    - ip_set::size
    - replace_node_impl
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(replace_node_impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3969,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:3969,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3969,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3970,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:3970,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3970,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3971,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:3971,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3971,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3972,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:3972,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3972,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3975,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3977,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:3977,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3977,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3982,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3983,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3985,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:3985,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3985,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3989,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3990,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3992,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:3992,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3992,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3996,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:3997,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:3999,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:3999,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:3999,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:4003,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:4004,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4007,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:4007,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:4007,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:4011,1
    - Dst: n
      Src: /src/libtorrent/test/test_dht.cpp:4012,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4015,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/test/test_dht.cpp:4015,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht.cpp:4015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4017
      start: 3967
    functionDepth: 3
    functionLinenumber: 3967
    functionLinenumberEnd: 4017
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - n
    - all_in_same_bucket
    - to_hash
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(all_in_same_bucket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_default_storage_constructor
      Src: /src/libtorrent/test/test_dht.cpp:4025,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_dht.cpp:4030,1
    - Dst: f
      Src: /src/libtorrent/test/test_dht.cpp:4031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' sett'
    - f
    argTypes:
    - aux::session_settings
    - std::function<void(lt::dht::socket_manager&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4020
    functionDepth: 1
    functionLinenumber: 4020
    functionLinenumberEnd: 4032
    functionName: test_rate_limit
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - dht_default_storage_constructor
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: void test_rate_limit(aux::session_settings const& sett, std::function<void(lt::dht::socket_manager&)>
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_default_storage_constructor
      Src: /src/libtorrent/test/test_dht.cpp:4025,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_dht.cpp:4030,1
    - Dst: f
      Src: /src/libtorrent/test/test_dht.cpp:4031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' sett'
    - f
    argTypes:
    - aux::session_settings
    - std::function<void(lt::dht::socket_manager&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4020
    functionDepth: 1
    functionLinenumber: 4020
    functionLinenumberEnd: 4032
    functionName: test_rate_limit
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - dht_default_storage_constructor
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: void test_rate_limit(aux::session_settings const& sett, std::function<void(lt::dht::socket_manager&)>
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht.cpp:4038,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_dht.cpp:4038,1
    - Dst: test_rate_limit
      Src: /src/libtorrent/test/test_dht.cpp:4040,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4041,1
    - Dst: has_quota
      Src: /src/libtorrent/test/test_dht.cpp:4041,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_dht.cpp:4042,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_dht.cpp:4042,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4046,1
    - Dst: has_quota
      Src: /src/libtorrent/test/test_dht.cpp:4046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4048
      start: 4035
    functionDepth: 2
    functionLinenumber: 4035
    functionLinenumberEnd: 4048
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - aux::session_settings::set_int
    - std::this_thread::sleep_for
    - has_quota
    - libtorrent::aux::max
    - milliseconds
    - test_rate_limit
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rate_limit_int_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht.cpp:4053,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_dht.cpp:4053,1
    - Dst: test_rate_limit
      Src: /src/libtorrent/test/test_dht.cpp:4055,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4056,1
    - Dst: has_quota
      Src: /src/libtorrent/test/test_dht.cpp:4056,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_dht.cpp:4057,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_dht.cpp:4057,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4061,1
    - Dst: has_quota
      Src: /src/libtorrent/test/test_dht.cpp:4061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4063
      start: 4050
    functionDepth: 2
    functionLinenumber: 4050
    functionLinenumberEnd: 4063
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - aux::session_settings::set_int
    - std::this_thread::sleep_for
    - has_quota
    - libtorrent::aux::max
    - milliseconds
    - test_rate_limit
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rate_limit_large_delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht.cpp:4068,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_dht.cpp:4068,1
    - Dst: test_rate_limit
      Src: /src/libtorrent/test/test_dht.cpp:4070,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4071,1
    - Dst: has_quota
      Src: /src/libtorrent/test/test_dht.cpp:4071,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_dht.cpp:4074,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_dht.cpp:4074,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4075,1
    - Dst: has_quota
      Src: /src/libtorrent/test/test_dht.cpp:4075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4065
    functionDepth: 2
    functionLinenumber: 4065
    functionLinenumberEnd: 4078
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - aux::session_settings::set_int
    - std::this_thread::sleep_for
    - has_quota
    - libtorrent::aux::max
    - milliseconds
    - test_rate_limit
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(rate_limit_accrue_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht.cpp:4087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4088
      start: 4084
    functionDepth: 1
    functionLinenumber: 4084
    functionLinenumberEnd: 4088
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:67,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:68,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:69,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_dht_storage.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: test_settings
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 11
    functionsReached:
    - seconds
    - aux::session_settings::set_int
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings test_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_default_storage_constructor
      Src: /src/libtorrent/test/test_dht_storage.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: dht_custom_storage_constructor
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - dht_default_storage_constructor
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> dht_custom_storage_constructor(\n\t\tsettings_interface
      const& settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:86,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/test/test_dht_storage.cpp:88,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: create_default_dht_storage
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - to_hash
    - TEST_CHECK
    - std::unique_ptr::update_node_ids
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> create_default_dht_storage(\n\t\tsettings_interface
      const& sett)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:67,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:68,1
    - Dst: aux::session_settings::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:69,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_dht_storage.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: test_settings
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 11
    functionsReached:
    - seconds
    - aux::session_settings::set_int
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings test_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_default_storage_constructor
      Src: /src/libtorrent/test/test_dht_storage.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: dht_custom_storage_constructor
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - dht_default_storage_constructor
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> dht_custom_storage_constructor(\n\t\tsettings_interface
      const& settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:86,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/test/test_dht_storage.cpp:88,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: create_default_dht_storage
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - to_hash
    - TEST_CHECK
    - std::unique_ptr::update_node_ids
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> create_default_dht_storage(\n\t\tsettings_interface
      const& sett)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:101,1
    - Dst: std::unique_ptr::get_peers
      Src: /src/libtorrent/test/test_dht_storage.cpp:105,1
    - Dst: address
      Src: /src/libtorrent/test/test_dht_storage.cpp:105,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:107,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht_storage.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:108,1
    - Dst: list
      Src: /src/libtorrent/test/test_dht_storage.cpp:108,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:110,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:111,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:112,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:113,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:115,1
    - Dst: entry
      Src: /src/libtorrent/test/test_dht_storage.cpp:116,1
    - Dst: std::unique_ptr::get_peers
      Src: /src/libtorrent/test/test_dht_storage.cpp:117,1
    - Dst: address
      Src: /src/libtorrent/test/test_dht_storage.cpp:117,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:118,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht_storage.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:119,1
    - Dst: list
      Src: /src/libtorrent/test/test_dht_storage.cpp:119,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:121,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:122,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:123,1
    - Dst: entry
      Src: /src/libtorrent/test/test_dht_storage.cpp:124,1
    - Dst: std::unique_ptr::get_peers
      Src: /src/libtorrent/test/test_dht_storage.cpp:125,1
    - Dst: address
      Src: /src/libtorrent/test/test_dht_storage.cpp:125,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:126,1
    - Dst: entry::find_key
      Src: /src/libtorrent/test/test_dht_storage.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 127
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - entry
    - string
    - list
    - std::unique_ptr::get_peers
    - ep
    - test_settings
    - std::unique_ptr::announce_peer
    - address
    - entry::find_key
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(announce_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:131,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:134,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:135,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:136,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:137,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:138,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:140,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:141,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:142,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:143,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:144,1
    - Dst: std::unique_ptr::get_peers
      Src: /src/libtorrent/test/test_dht_storage.cpp:147,1
    - Dst: address
      Src: /src/libtorrent/test/test_dht_storage.cpp:147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:148,1
    - Dst: list
      Src: /src/libtorrent/test/test_dht_storage.cpp:148,1
    - Dst: std::unique_ptr::get_peers
      Src: /src/libtorrent/test/test_dht_storage.cpp:151,1
    - Dst: address_v6
      Src: /src/libtorrent/test/test_dht_storage.cpp:151,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:152,1
    - Dst: list
      Src: /src/libtorrent/test/test_dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 153
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - address_v6
    - list
    - ep
    - std::unique_ptr::get_peers
    - test_settings
    - std::unique_ptr::announce_peer
    - address
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dual_stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:157,1
    - Dst: std::unique_ptr::get_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:161,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:162,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:164,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:164,1
    - Dst: std::unique_ptr::get_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:165,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:166,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:168,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:168,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:169,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:169,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:170,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:170,1
    - Dst: std::unique_ptr::get_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:172,1
    - Dst: std::unique_ptr::get_mutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:174,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht_storage.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:175,1
    - Dst: std::unique_ptr::put_mutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:179,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht_storage.cpp:179,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:180,1
    - Dst: std::unique_ptr::get_mutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:181,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht_storage.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 183
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - test_settings
    - std::unique_ptr::put_immutable_item
    - std::unique_ptr::get_immutable_item
    - std::unique_ptr::put_mutable_item
    - std::unique_ptr::get_mutable_item
    - sequence_number
    - addr
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(put_items)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:187,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:190,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:190,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:191,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:191,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:193,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:194,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:195,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:196,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:198,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:199,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:199,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:200,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:200,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:202,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:203,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:204,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:205,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:205,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:206,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:206,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:210,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:210,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:211,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:211,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:213,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:213,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:214,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:214,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:215,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:215,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:216,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:216,1
    - Dst: std::unique_ptr::put_mutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:220,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht_storage.cpp:220,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:221,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:222,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 223
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr
    - TEST_EQUAL
    - std::unique_ptr::counters
    - std::unique_ptr::put_immutable_item
    - ep
    - std::unique_ptr::put_mutable_item
    - sequence_number
    - test_settings
    - std::unique_ptr::announce_peer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_dht_storage.cpp:229,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_dht_storage.cpp:230,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:233,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:234,1
    - Dst: lt::session::is_dht_running
      Src: /src/libtorrent/test/test_dht_storage.cpp:234,1
    - Dst: lt::session::set_dht_storage
      Src: /src/libtorrent/test/test_dht_storage.cpp:236,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_dht_storage.cpp:238,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_dht_storage.cpp:239,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:241,1
    - Dst: lt::session::is_dht_running
      Src: /src/libtorrent/test/test_dht_storage.cpp:241,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 243
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - lt::session::apply_settings
    - TEST_EQUAL
    - lt::session::is_dht_running
    - lt::session::set_dht_storage
    - settings_pack::set_str
    - settings_pack::set_bool
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(set_custom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_dht_storage.cpp:249,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_dht_storage.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:253,1
    - Dst: lt::session::is_dht_running
      Src: /src/libtorrent/test/test_dht_storage.cpp:253,1
    - Dst: lt::session::set_dht_storage
      Src: /src/libtorrent/test/test_dht_storage.cpp:255,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_dht_storage.cpp:257,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:258,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:259,1
    - Dst: lt::session::is_dht_running
      Src: /src/libtorrent/test/test_dht_storage.cpp:259,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:260,1
    - Dst: lt::session::set_dht_storage
      Src: /src/libtorrent/test/test_dht_storage.cpp:262,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_dht_storage.cpp:264,1
    - Dst: lt::session::apply_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:265,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:266,1
    - Dst: lt::session::is_dht_running
      Src: /src/libtorrent/test/test_dht_storage.cpp:266,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 268
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - lt::session::apply_settings
    - TEST_EQUAL
    - lt::session::is_dht_running
    - lt::session::set_dht_storage
    - settings_pack::set_str
    - settings_pack::set_bool
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(default_set_custom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:272,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:273,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:278,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht_storage.cpp:278,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_dht_storage.cpp:278,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_dht_storage.cpp:278,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:281,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:283,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::unique_ptr::counters
    - rand_v4
    - Catch::Generators::random
    - std::uint16_t
    - test_settings
    - std::unique_ptr::announce_peer
    - auto::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(peer_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:289,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:290,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:295,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:295,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht_storage.cpp:295,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_dht_storage.cpp:295,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_dht_storage.cpp:295,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:297,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:298,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:300,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::unique_ptr::counters
    - rand_v4
    - rand_hash
    - Catch::Generators::random
    - std::uint16_t
    - test_settings
    - std::unique_ptr::announce_peer
    - auto::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:306,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:307,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:312,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:312,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht_storage.cpp:312,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:313,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:314,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:316,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 318
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::unique_ptr::counters
    - rand_v4
    - std::unique_ptr::put_immutable_item
    - rand_hash
    - test_settings
    - auto::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(immutable_item_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:322,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:323,1
    - Dst: std::unique_ptr::put_mutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:330,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:330,1
    - Dst: sequence_number
      Src: /src/libtorrent/test/test_dht_storage.cpp:330,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht_storage.cpp:331,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:332,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:333,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:335,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 337
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::unique_ptr::counters
    - rand_v4
    - rand_hash
    - std::unique_ptr::put_mutable_item
    - sequence_number
    - test_settings
    - auto::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(mutable_item_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:344,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:345,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:346,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht_storage.cpp:349,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:352,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht_storage.cpp:352,1
    - Dst: std::unique_ptr::get_peers
      Src: /src/libtorrent/test/test_dht_storage.cpp:361,1
    - Dst: address
      Src: /src/libtorrent/test/test_dht_storage.cpp:361,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:362,1
    - Dst: list
      Src: /src/libtorrent/test/test_dht_storage.cpp:362,1
    - Dst: list
      Src: /src/libtorrent/test/test_dht_storage.cpp:363,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/test/test_dht_storage.cpp:365,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht_storage.cpp:365,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_dht_storage.cpp:366,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht_storage.cpp:370,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:371,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:377,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht_storage.cpp:377,1
    - Dst: std::unique_ptr::get_peers
      Src: /src/libtorrent/test/test_dht_storage.cpp:383,1
    - Dst: address
      Src: /src/libtorrent/test/test_dht_storage.cpp:383,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:384,1
    - Dst: list
      Src: /src/libtorrent/test/test_dht_storage.cpp:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 386
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - TEST_EQUAL
    - rand_v4
    - aux::read_v4_endpoint<tcp::endpoint>
    - address
    - list
    - string
    - std::unique_ptr::get_peers
    - local_endpoint
    - test_settings
    - std::unique_ptr::announce_peer
    - auto::set_int
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_peers_dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:390,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:392,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:394,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:395,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:396,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht_storage.cpp:399,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht_storage.cpp:400,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_dht_storage.cpp:401,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/test/test_dht_storage.cpp:402,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:408,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:409,1
    - Dst: to_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:410,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:412,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/test/test_dht_storage.cpp:412,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:413,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/test/test_dht_storage.cpp:413,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:414,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/test/test_dht_storage.cpp:414,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:418,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:418,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:419,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:420,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:421,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:421,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:422,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:423,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:426,1
    - Dst: addr
      Src: /src/libtorrent/test/test_dht_storage.cpp:426,1
    - Dst: std::unique_ptr::counters
      Src: /src/libtorrent/test/test_dht_storage.cpp:427,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:428,1
    - Dst: std::unique_ptr::get_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:430,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:431,1
    - Dst: std::unique_ptr::get_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:432,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:433,1
    - Dst: std::unique_ptr::get_immutable_item
      Src: /src/libtorrent/test/test_dht_storage.cpp:434,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 436
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr
    - TEST_EQUAL
    - std::unique_ptr::counters
    - std::vector::push_back
    - to_hash
    - std::unique_ptr::update_node_ids
    - std::unique_ptr::put_immutable_item
    - std::unique_ptr::get_immutable_item
    - test_settings
    - min_distance_exp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(update_node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:440,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:441,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:442,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:443,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:446,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:447,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:448,1
    - Dst: ep
      Src: /src/libtorrent/test/test_dht_storage.cpp:449,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:451,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:452,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:453,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:454,1
    - Dst: std::unique_ptr::get_infohashes_sample
      Src: /src/libtorrent/test/test_dht_storage.cpp:457,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:458,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:459,1
    - Dst: integer
      Src: /src/libtorrent/test/test_dht_storage.cpp:459,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:460,1
    - Dst: integer
      Src: /src/libtorrent/test/test_dht_storage.cpp:460,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:461,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht_storage.cpp:461,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:464,1
    - Dst: entry
      Src: /src/libtorrent/test/test_dht_storage.cpp:466,1
    - Dst: std::unique_ptr::get_infohashes_sample
      Src: /src/libtorrent/test/test_dht_storage.cpp:467,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:468,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:469,1
    - Dst: integer
      Src: /src/libtorrent/test/test_dht_storage.cpp:469,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:470,1
    - Dst: integer
      Src: /src/libtorrent/test/test_dht_storage.cpp:470,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:471,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht_storage.cpp:471,1
    - Dst: to_string
      Src: /src/libtorrent/test/test_dht_storage.cpp:473,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:474,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_dht_storage.cpp:474,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht_storage.cpp:474,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:475,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_dht_storage.cpp:475,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht_storage.cpp:475,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:476,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_dht_storage.cpp:476,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht_storage.cpp:476,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:477,1
    - Dst: std::string::find
      Src: /src/libtorrent/test/test_dht_storage.cpp:477,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_dht_storage.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 478
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - to_string
    - TEST_CHECK
    - entry
    - libtorrent::aux::to_hex
    - string
    - ep
    - integer
    - std::string::find
    - test_settings
    - std::unique_ptr::announce_peer
    - auto::set_int
    - std::unique_ptr::get_infohashes_sample
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(infohashes_sample)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/test/test_dht_storage.cpp:482,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:483,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:484,1
    - Dst: auto::set_int
      Src: /src/libtorrent/test/test_dht_storage.cpp:485,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/test/test_dht_storage.cpp:490,1
    - Dst: rand_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:490,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/test_dht_storage.cpp:490,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/test_dht_storage.cpp:490,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_dht_storage.cpp:490,1
    - Dst: std::unique_ptr::get_infohashes_sample
      Src: /src/libtorrent/test/test_dht_storage.cpp:498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:499,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:500,1
    - Dst: integer
      Src: /src/libtorrent/test/test_dht_storage.cpp:500,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:501,1
    - Dst: integer
      Src: /src/libtorrent/test/test_dht_storage.cpp:501,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_dht_storage.cpp:502,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht_storage.cpp:502,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_dht_storage.cpp:504,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_dht_storage.cpp:504,1
    - Dst: string
      Src: /src/libtorrent/test/test_dht_storage.cpp:504,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_dht_storage.cpp:506,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_dht_storage.cpp:506,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_dht_storage.cpp:507,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_dht_storage.cpp:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 508
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - TEST_EQUAL
    - TEST_CHECK
    - rand_v4
    - rand_hash
    - std::uint16_t
    - string
    - integer
    - local_endpoint
    - std::set::size
    - test_settings
    - std::unique_ptr::announce_peer
    - sha1_hash
    - auto::set_int
    - std::printf
    - std::unique_ptr::get_infohashes_sample
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(infohashes_sample_dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 510
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wait
      Src: /src/libtorrent/test/test_time.cpp:52,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_time.cpp:53,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_time.cpp:58,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_time.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' m'
    - ' last'
    - ' cv'
    argTypes:
    - std::mutex
    - time_point
    - std::condition_variable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: check_timer_loop
    functionSourceFile: /src/libtorrent/test/test_time.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - std::unique_lock::unlock
    - TEST_CHECK
    - wait
    linkageType: ''
    returnType: void
    signature: void check_timer_loop(std::mutex& m, time_point& last, std::condition_variable&
      cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wait
      Src: /src/libtorrent/test/test_time.cpp:52,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/test/test_time.cpp:53,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_time.cpp:58,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_time.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' m'
    - ' last'
    - ' cv'
    argTypes:
    - std::mutex
    - time_point
    - std::condition_variable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: check_timer_loop
    functionSourceFile: /src/libtorrent/test/test_time.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - std::unique_lock::unlock
    - TEST_CHECK
    - wait
    linkageType: ''
    returnType: void
    signature: void check_timer_loop(std::mutex& m, time_point& last, std::condition_variable&
      cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_time.cpp:70,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/test_time.cpp:70,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_time.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_time.cpp:71,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/test_time.cpp:71,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_time.cpp:71,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_time.cpp:72,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/test_time.cpp:72,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_time.cpp:72,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_time.cpp:73,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_time.cpp:73,1
    - Dst: minutes
      Src: /src/libtorrent/test/test_time.cpp:73,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_time.cpp:74,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_time.cpp:74,1
    - Dst: hours
      Src: /src/libtorrent/test/test_time.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_time.cpp:77,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_time.cpp:77,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_time.cpp:77,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_time.cpp:78,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/test_time.cpp:78,1
    - Dst: milliseconds
      Src: /src/libtorrent/test/test_time.cpp:78,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_time.cpp:82,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_time.cpp:86,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_time.cpp:87,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:93,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:93,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:93,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:94,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:94,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:94,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:95,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:95,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:95,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:96,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:96,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_time.cpp:96,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_time.cpp:98,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_time.cpp:98,1
    - Dst: std::condition_variable::notify_all
      Src: /src/libtorrent/test/test_time.cpp:100,1
    - Dst: std::thread::join
      Src: /src/libtorrent/test/test_time.cpp:102,1
    - Dst: std::thread::join
      Src: /src/libtorrent/test/test_time.cpp:103,1
    - Dst: std::thread::join
      Src: /src/libtorrent/test/test_time.cpp:104,1
    - Dst: std::thread::join
      Src: /src/libtorrent/test/test_time.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 106
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_time.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - time_now
    - std::this_thread::sleep_for
    - total_seconds
    - seconds
    - libtorrent::total_milliseconds
    - std::ref
    - milliseconds
    - minutes
    - total_milliseconds
    - std::thread::join
    - std::condition_variable::notify_all
    - TEST_CHECK
    - hours
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/test/test_time.cpp:115,1
    - Dst: seconds32
      Src: /src/libtorrent/test/test_time.cpp:115,1
    - Dst: rand
      Src: /src/libtorrent/test/test_time.cpp:115,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/test/test_time.cpp:116,1
    - Dst: libtorrent::aux::from_time_t
      Src: /src/libtorrent/test/test_time.cpp:117,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/test/test_time.cpp:121,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/test/test_time.cpp:121,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_time.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_time.cpp
    functionUses: 0
    functionsReached:
    - seconds32
    - rand
    - libtorrent::aux::from_time_t
    - libtorrent::aux::time_now32
    - auto::time_since_epoch
    - libtorrent::aux::to_time_t
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_time_conversion)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/test/test_time.cpp:135,1
    - Dst: seconds32
      Src: /src/libtorrent/test/test_time.cpp:135,1
    - Dst: rand
      Src: /src/libtorrent/test/test_time.cpp:135,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/test/test_time.cpp:136,1
    - Dst: libtorrent::aux::from_time_t
      Src: /src/libtorrent/test/test_time.cpp:138,1
    - Dst: seconds32
      Src: /src/libtorrent/test/test_time.cpp:139,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/test/test_time.cpp:142,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/test/test_time.cpp:142,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_time.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_time.cpp
    functionUses: 0
    functionsReached:
    - seconds32
    - rand
    - libtorrent::aux::from_time_t
    - libtorrent::aux::time_now32
    - auto::time_since_epoch
    - libtorrent::aux::to_time_t
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_time_conversion_with_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:51,1
    - Dst: reset
      Src: /src/libtorrent/test/test_http_parser.cpp:52,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_http_parser.cpp:56,1
    - Dst: string_view::size
      Src: /src/libtorrent/test/test_http_parser.cpp:56,1
    - Dst: string_view::size
      Src: /src/libtorrent/test/test_http_parser.cpp:56,1
    - Dst: string_view::substr
      Src: /src/libtorrent/test/test_http_parser.cpp:58,1
    - Dst: string_view::size
      Src: /src/libtorrent/test/test_http_parser.cpp:58,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_http_parser.cpp:58,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_http_parser.cpp:61,1
    - Dst: incoming
      Src: /src/libtorrent/test/test_http_parser.cpp:61,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_http_parser.cpp:62,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_http_parser.cpp:63,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_http_parser.cpp:76,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:78,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:78,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:78,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:81,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_http_parser.cpp:81,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_http_parser.cpp:81,1
    - Dst: string_view::size
      Src: /src/libtorrent/test/test_http_parser.cpp:81,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ' parser'
    - str
    argTypes:
    - http_parser
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 87
    functionName: feed_bytes
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - TEST_EQUAL
    - reset
    - std::tie
    - std::get<0>
    - std::min
    - TORRENT_ASSERT
    - incoming
    - string_view::size
    - std::size_t
    - std::get<2>
    - std::make_tuple
    - std::get<1>
    - TEST_CHECK
    linkageType: ''
    returnType: std::tuple<int, int, bool>
    signature: std::tuple<int, int, bool> feed_bytes(http_parser& parser, string_view
      str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:51,1
    - Dst: reset
      Src: /src/libtorrent/test/test_http_parser.cpp:52,1
    - Dst: std::min
      Src: /src/libtorrent/test/test_http_parser.cpp:56,1
    - Dst: string_view::size
      Src: /src/libtorrent/test/test_http_parser.cpp:56,1
    - Dst: string_view::size
      Src: /src/libtorrent/test/test_http_parser.cpp:56,1
    - Dst: string_view::substr
      Src: /src/libtorrent/test/test_http_parser.cpp:58,1
    - Dst: string_view::size
      Src: /src/libtorrent/test/test_http_parser.cpp:58,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_http_parser.cpp:58,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_http_parser.cpp:61,1
    - Dst: incoming
      Src: /src/libtorrent/test/test_http_parser.cpp:61,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_http_parser.cpp:62,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_http_parser.cpp:63,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_http_parser.cpp:76,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:78,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:78,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:78,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:81,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_http_parser.cpp:81,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_http_parser.cpp:81,1
    - Dst: string_view::size
      Src: /src/libtorrent/test/test_http_parser.cpp:81,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ' parser'
    - str
    argTypes:
    - http_parser
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 87
    functionName: feed_bytes
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - TEST_EQUAL
    - reset
    - std::tie
    - std::get<0>
    - std::min
    - TORRENT_ASSERT
    - incoming
    - string_view::size
    - std::size_t
    - std::get<2>
    - std::make_tuple
    - std::get<1>
    - TEST_CHECK
    linkageType: ''
    returnType: std::tuple<int, int, bool>
    signature: std::tuple<int, int, bool> feed_bytes(http_parser& parser, string_view
      str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:97,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:104,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:104,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:105,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:105,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:107,1
    - Dst: equal
      Src: /src/libtorrent/test/test_http_parser.cpp:107,1
    - Dst: span::begin
      Src: /src/libtorrent/test/test_http_parser.cpp:107,1
    - Dst: span::end
      Src: /src/libtorrent/test/test_http_parser.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:108,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:108,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:109,1
    - Dst: atoi
      Src: /src/libtorrent/test/test_http_parser.cpp:109,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:109,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:110,1
    - Dst: http_parser::header_duration
      Src: /src/libtorrent/test/test_http_parser.cpp:110,1
    - Dst: lt::seconds32
      Src: /src/libtorrent/test/test_http_parser.cpp:110,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:111,1
    - Dst: http_parser::header_duration
      Src: /src/libtorrent/test/test_http_parser.cpp:111,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:113,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:115,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:115,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:129,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:129,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:130,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:130,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:131,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:131,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:132,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:132,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:134,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:135,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:135,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:136,1
    - Dst: http_parser::connection_close
      Src: /src/libtorrent/test/test_http_parser.cpp:136,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:141,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:141,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:150,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:150,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:151,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:151,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:152,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:152,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:153,1
    - Dst: http_parser::connection_close
      Src: /src/libtorrent/test/test_http_parser.cpp:153,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:157,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:157,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:164,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:166,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:166,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:166,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:167,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:168,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:169,1
    - Dst: http_parser::connection_close
      Src: /src/libtorrent/test/test_http_parser.cpp:169,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:171,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:173,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:173,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:182,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:182,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:182,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:183,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:183,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:184,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:184,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:185,1
    - Dst: http_parser::connection_close
      Src: /src/libtorrent/test/test_http_parser.cpp:185,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:187,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:188,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:188,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:201,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:203,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:203,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:204,1
    - Dst: http_parser::method
      Src: /src/libtorrent/test/test_http_parser.cpp:204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:205,1
    - Dst: http_parser::path
      Src: /src/libtorrent/test/test_http_parser.cpp:205,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:207,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:208,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:208,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:216,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:218,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:218,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:219,1
    - Dst: http_parser::method
      Src: /src/libtorrent/test/test_http_parser.cpp:219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:220,1
    - Dst: http_parser::path
      Src: /src/libtorrent/test/test_http_parser.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:221,1
    - Dst: atoi
      Src: /src/libtorrent/test/test_http_parser.cpp:221,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:221,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:222,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:224,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:224,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:226,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:227,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:227,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:243,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_http_parser.cpp:245,1
    - Dst: std::get<0>
      Src: /src/libtorrent/test/test_http_parser.cpp:245,1
    - Dst: std::get<1>
      Src: /src/libtorrent/test/test_http_parser.cpp:245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:246,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:246,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:247,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:247,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:248,1
    - Dst: equal
      Src: /src/libtorrent/test/test_http_parser.cpp:248,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:248,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:248,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:250,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:251,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:251,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:252,1
    - Dst: atoi
      Src: /src/libtorrent/test/test_http_parser.cpp:252,1
    - Dst: http_parser::header
      Src: /src/libtorrent/test/test_http_parser.cpp:252,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:253,1
    - Dst: http_parser::chunked_encoding
      Src: /src/libtorrent/test/test_http_parser.cpp:253,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_http_parser.cpp:256,1
    - Dst: chunk_range
      Src: /src/libtorrent/test/test_http_parser.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_http_parser.cpp:257,1
    - Dst: chunk_range
      Src: /src/libtorrent/test/test_http_parser.cpp:257,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:258,1
    - Dst: http_parser::chunks
      Src: /src/libtorrent/test/test_http_parser.cpp:258,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:268,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:270,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:270,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:270,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:271,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:271,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:273,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:284,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:286,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:286,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:286,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:287,1
    - Dst: http_parser::content_range
      Src: /src/libtorrent/test/test_http_parser.cpp:287,1
    - Dst: std::pair<std::int64_t, std::int64_t>
      Src: /src/libtorrent/test/test_http_parser.cpp:287,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:288,1
    - Dst: http_parser::content_length
      Src: /src/libtorrent/test/test_http_parser.cpp:288,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:290,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:300,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:302,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:302,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:304,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:314,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:316,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:316,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:318,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:328,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:330,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:330,1
    - Dst: http_parser::reset
      Src: /src/libtorrent/test/test_http_parser.cpp:332,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:345,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:347,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:347,1
    - Dst: strlen
      Src: /src/libtorrent/test/test_http_parser.cpp:347,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:348,1
    - Dst: http_parser::content_length
      Src: /src/libtorrent/test/test_http_parser.cpp:348,1
    - Dst: http_parser::parse_chunk_header
      Src: /src/libtorrent/test/test_http_parser.cpp:355,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_http_parser.cpp:355,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:357,1
    - Dst: http_parser::parse_chunk_header
      Src: /src/libtorrent/test/test_http_parser.cpp:358,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_http_parser.cpp:358,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:360,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:361,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:362,1
    - Dst: http_parser::parse_chunk_header
      Src: /src/libtorrent/test/test_http_parser.cpp:370,1
    - Dst: span<char const>
      Src: /src/libtorrent/test/test_http_parser.cpp:370,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:372,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:373,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:374,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:376,1
    - Dst: http_parser::headers
      Src: /src/libtorrent/test/test_http_parser.cpp:376,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:377,1
    - Dst: http_parser::headers
      Src: /src/libtorrent/test/test_http_parser.cpp:377,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:383,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:383,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:384,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:386,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:386,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:387,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:389,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:389,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:390,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:392,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:392,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:393,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:395,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:395,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:396,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:398,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:398,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:399,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:402,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:402,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:403,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:405,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:405,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:406,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:408,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:408,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:409,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:411,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:411,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:412,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:414,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:414,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:415,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:417,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:417,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:418,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:421,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:421,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:422,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:424,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:425,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_parser.cpp:425,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:427,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:428,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_parser.cpp:428,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_http_parser.cpp:429,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:431,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:432,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_parser.cpp:432,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_http_parser.cpp:433,1
    - Dst: parse_url_components
      Src: /src/libtorrent/test/test_http_parser.cpp:435,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:436,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_parser.cpp:436,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:440,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:440,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:441,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:443,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:443,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:444,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:446,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:446,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:447,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:449,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:449,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:450,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:452,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:452,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:453,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:455,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:455,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:456,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:458,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:458,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:459,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:461,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:461,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:462,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_http_parser.cpp:464,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:465,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:465,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:466,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:467,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_parser.cpp:467,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_http_parser.cpp:469,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:470,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:470,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:471,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:472,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_parser.cpp:472,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_http_parser.cpp:474,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:475,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:475,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:476,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:477,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_parser.cpp:477,1
    - Dst: error_code::clear
      Src: /src/libtorrent/test/test_http_parser.cpp:479,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:480,1
    - Dst: split_url
      Src: /src/libtorrent/test/test_http_parser.cpp:480,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_http_parser.cpp:481,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:482,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_http_parser.cpp:482,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:486,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:486,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:489,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:489,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:492,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:492,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:495,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:495,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:498,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:501,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:501,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:504,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:504,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:507,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:507,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:510,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:510,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:513,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:513,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:518,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/test/test_http_parser.cpp:518,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:523,1
    - Dst: is_ok_status
      Src: /src/libtorrent/test/test_http_parser.cpp:523,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:524,1
    - Dst: is_ok_status
      Src: /src/libtorrent/test/test_http_parser.cpp:524,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:525,1
    - Dst: is_ok_status
      Src: /src/libtorrent/test/test_http_parser.cpp:525,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:526,1
    - Dst: is_ok_status
      Src: /src/libtorrent/test/test_http_parser.cpp:526,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:527,1
    - Dst: is_ok_status
      Src: /src/libtorrent/test/test_http_parser.cpp:527,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:528,1
    - Dst: is_ok_status
      Src: /src/libtorrent/test/test_http_parser.cpp:528,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:529,1
    - Dst: is_ok_status
      Src: /src/libtorrent/test/test_http_parser.cpp:529,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:533,1
    - Dst: is_redirect
      Src: /src/libtorrent/test/test_http_parser.cpp:533,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:534,1
    - Dst: is_redirect
      Src: /src/libtorrent/test/test_http_parser.cpp:534,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:535,1
    - Dst: is_redirect
      Src: /src/libtorrent/test/test_http_parser.cpp:535,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:536,1
    - Dst: is_redirect
      Src: /src/libtorrent/test/test_http_parser.cpp:536,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:537,1
    - Dst: is_redirect
      Src: /src/libtorrent/test/test_http_parser.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 168
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 538
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - chunk_range
    - http_parser::chunked_encoding
    - http_parser::reset
    - std::get<0>
    - error_code::clear
    - http_parser::header_duration
    - split_url
    - strlen
    - parse_url_components
    - http_parser::headers
    - std::pair<std::int64_t, std::int64_t>
    - atoi
    - std::get<2>
    - http_parser::get_body
    - http_parser::header
    - span<char const>
    - resolve_redirect_location
    - span::begin
    - std::printf
    - span::end
    - TEST_EQUAL
    - http_parser::parse_chunk_header
    - http_parser::finished
    - http_parser::content_length
    - is_redirect
    - std::get<1>
    - TEST_CHECK
    - http_parser::connection_close
    - std::vector::push_back
    - feed_bytes
    - http_parser::method
    - http_parser::chunks
    - error_code
    - equal
    - http_parser::content_range
    - is_ok_status
    - std::make_tuple
    - lt::seconds32
    - http_parser::path
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_http_parser.cpp:555,1
    - Dst: http_parser::incoming
      Src: /src/libtorrent/test/test_http_parser.cpp:555,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:557,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:558,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:561,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_http_parser.cpp:561,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_http_parser.cpp:561,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:565,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_http_parser.cpp:565,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_http_parser.cpp:565,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:566,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:566,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:570,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_http_parser.cpp:571,1
    - Dst: span::begin
      Src: /src/libtorrent/test/test_http_parser.cpp:571,1
    - Dst: span::end
      Src: /src/libtorrent/test/test_http_parser.cpp:571,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_http_parser.cpp:571,1
    - Dst: http_parser::collapse_chunk_headers
      Src: /src/libtorrent/test/test_http_parser.cpp:572,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_http_parser.cpp:573,1
    - Dst: span::data
      Src: /src/libtorrent/test/test_http_parser.cpp:573,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_http_parser.cpp:573,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_http_parser.cpp:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - chunked_input
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 574
    functionName: test_collapse_chunks
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - span::end
    - TEST_EQUAL
    - http_parser::collapse_chunk_headers
    - span::size
    - std::tie
    - std::string
    - span::data
    - http_parser::finished
    - std::copy
    - std::size_t
    - http_parser::incoming
    - http_parser::get_body
    - std::back_inserter
    - span::begin
    - TEST_CHECK
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string test_collapse_chunks(std::string chunked_input, bool const
      expect_error = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_http_parser.cpp:555,1
    - Dst: http_parser::incoming
      Src: /src/libtorrent/test/test_http_parser.cpp:555,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:557,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:558,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:561,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_http_parser.cpp:561,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_http_parser.cpp:561,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:565,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_http_parser.cpp:565,1
    - Dst: std::string::size
      Src: /src/libtorrent/test/test_http_parser.cpp:565,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:566,1
    - Dst: http_parser::finished
      Src: /src/libtorrent/test/test_http_parser.cpp:566,1
    - Dst: http_parser::get_body
      Src: /src/libtorrent/test/test_http_parser.cpp:570,1
    - Dst: std::copy
      Src: /src/libtorrent/test/test_http_parser.cpp:571,1
    - Dst: span::begin
      Src: /src/libtorrent/test/test_http_parser.cpp:571,1
    - Dst: span::end
      Src: /src/libtorrent/test/test_http_parser.cpp:571,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_http_parser.cpp:571,1
    - Dst: http_parser::collapse_chunk_headers
      Src: /src/libtorrent/test/test_http_parser.cpp:572,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_http_parser.cpp:573,1
    - Dst: span::data
      Src: /src/libtorrent/test/test_http_parser.cpp:573,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_http_parser.cpp:573,1
    - Dst: span::size
      Src: /src/libtorrent/test/test_http_parser.cpp:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - chunked_input
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 574
    functionName: test_collapse_chunks
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - span::end
    - TEST_EQUAL
    - http_parser::collapse_chunk_headers
    - span::size
    - std::tie
    - std::string
    - span::data
    - http_parser::finished
    - std::copy
    - std::size_t
    - http_parser::incoming
    - http_parser::get_body
    - std::back_inserter
    - span::begin
    - TEST_CHECK
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string test_collapse_chunks(std::string chunked_input, bool const
      expect_error = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_collapse_chunks
      Src: /src/libtorrent/test/test_http_parser.cpp:579,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_collapse_chunks
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(chunked_encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_collapse_chunks
      Src: /src/libtorrent/test/test_http_parser.cpp:587,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 591
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_collapse_chunks
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(chunked_encoding_beyond_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_collapse_chunks
      Src: /src/libtorrent/test/test_http_parser.cpp:595,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_collapse_chunks
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(chunked_encoding_end_of_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_collapse_chunks
      Src: /src/libtorrent/test/test_http_parser.cpp:603,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 607
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_collapse_chunks
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(chunked_encoding_past_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_collapse_chunks
      Src: /src/libtorrent/test/test_http_parser.cpp:611,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 615
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_collapse_chunks
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(chunked_encoding_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_collapse_chunks
      Src: /src/libtorrent/test/test_http_parser.cpp:619,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_http_parser.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_collapse_chunks
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(chunked_encoding_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/test/test_http_parser.cpp:637,1
    - Dst: http_parser::incoming
      Src: /src/libtorrent/test/test_http_parser.cpp:637,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 641
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - http_parser::incoming
    - TEST_CHECK
    - std::tie
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(chunked_encoding_overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:653,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:655,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 656
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_content_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:669,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:671,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 672
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_chunked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:683,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:685,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 686
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_content_range_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:697,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:699,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 700
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_content_range_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:711,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:713,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 714
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(overflow_content_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:725,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:727,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 728
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(overflow_content_range_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:739,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:741,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 742
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(overflow_content_range_begin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/test/test_http_parser.cpp:755,1
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:759,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:761,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 762
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - std::memcpy
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(missing_chunked_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:791,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_http_parser.cpp:791,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:793,1
    - Dst: std::get<2>
      Src: /src/libtorrent/test/test_http_parser.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 794
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - std::get<2>
    - reinterpret_cast<char const*>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_chunk_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:816,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_http_parser.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 817
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char const*>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_chunk_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/test/test_http_parser.cpp:839,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/test/test_http_parser.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 840
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char const*>
    - feed_bytes
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_chunk_3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:844,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:844,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:845,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:845,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:846,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:846,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:852,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:852,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:853,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:853,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:854,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:854,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:855,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:855,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:856,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:856,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:859,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:859,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:862,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:862,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:863,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:863,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:864,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:864,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:865,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:865,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:866,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:866,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:867,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:867,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:868,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:868,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:869,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:869,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:870,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:870,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:871,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:871,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:872,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:872,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:873,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:873,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:874,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:874,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:875,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:875,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:876,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:876,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:877,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:877,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:879,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:879,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:880,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:880,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:881,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:881,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:882,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:882,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:884,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:884,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:885,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:885,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:886,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:886,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:887,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:887,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:889,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:889,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:890,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:890,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:891,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:891,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:892,1
    - Dst: is_idna
      Src: /src/libtorrent/test/test_http_parser.cpp:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 893
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - is_idna
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(idna)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:897,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:897,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:898,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:898,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:899,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:899,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:900,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:900,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:902,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:902,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:903,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:903,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:904,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:904,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:905,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:905,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:906,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:906,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:907,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:907,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:908,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:908,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:910,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:910,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:911,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:911,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:912,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:912,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_http_parser.cpp:913,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/test/test_http_parser.cpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 914
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_http_parser.cpp
    functionUses: 0
    functionsReached:
    - has_tracker_query_string
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(has_tracker_query_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:48,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:49,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:50,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:51,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:52,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:53,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:54,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_progress.cpp:55,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_progress.cpp:56,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_progress.cpp:56,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_file_progress.cpp:58,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_progress.cpp:60,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/test/test_file_progress.cpp:60,1
    - Dst: piece_picker::piece_flushed
      Src: /src/libtorrent/test/test_file_progress.cpp:61,1
    - Dst: aux::file_progress::init
      Src: /src/libtorrent/test/test_file_progress.cpp:64,1
    - Dst: aux::file_progress::export_progress
      Src: /src/libtorrent/test/test_file_progress.cpp:67,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/test/test_file_progress.cpp:70,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:73,1
    - Dst: file_storage::piece_size
      Src: /src/libtorrent/test/test_file_progress.cpp:73,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:74,1
    - Dst: aux::file_progress::total_on_disk
      Src: /src/libtorrent/test/test_file_progress.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 76
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_progress.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::piece_size
    - aux::file_progress::total_on_disk
    - file_storage::total_size
    - file_storage::piece_range
    - file_storage::add_file
    - file_storage::piece_length
    - libtorrent::aux::calc_num_pieces
    - aux::file_progress::export_progress
    - aux::vector::end_index
    - file_storage::set_num_pieces
    - aux::file_progress::init
    - piece_picker::piece_flushed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:85,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:86,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_progress.cpp:87,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_progress.cpp:88,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_progress.cpp:88,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_file_progress.cpp:90,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_progress.cpp:92,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/test/test_file_progress.cpp:92,1
    - Dst: piece_picker::piece_flushed
      Src: /src/libtorrent/test/test_file_progress.cpp:93,1
    - Dst: aux::file_progress::init
      Src: /src/libtorrent/test/test_file_progress.cpp:98,1
    - Dst: aux::file_progress::export_progress
      Src: /src/libtorrent/test/test_file_progress.cpp:99,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/test/test_file_progress.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:105,1
    - Dst: file_storage::piece_size
      Src: /src/libtorrent/test/test_file_progress.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:106,1
    - Dst: aux::file_progress::total_on_disk
      Src: /src/libtorrent/test/test_file_progress.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 108
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_progress.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::piece_size
    - aux::file_progress::total_on_disk
    - file_storage::total_size
    - file_storage::piece_range
    - file_storage::add_file
    - file_storage::piece_length
    - libtorrent::aux::calc_num_pieces
    - aux::file_progress::export_progress
    - aux::vector::end_index
    - file_storage::set_num_pieces
    - aux::file_progress::init
    - piece_picker::piece_flushed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(init2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:115,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:116,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:117,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_progress.cpp:118,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_progress.cpp:119,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_progress.cpp:119,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_progress.cpp:121,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/test/test_file_progress.cpp:121,1
    - Dst: aux::file_progress::init
      Src: /src/libtorrent/test/test_file_progress.cpp:125,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_file_progress.cpp:129,1
    - Dst: aux::file_progress::update
      Src: /src/libtorrent/test/test_file_progress.cpp:131,1
    - Dst: aux::file_progress::export_progress
      Src: /src/libtorrent/test/test_file_progress.cpp:136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:138,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_file_progress.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:142,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/test/test_file_progress.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 143
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_progress.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - file_storage::total_size
    - file_storage::piece_length
    - file_storage::add_file
    - file_storage::piece_range
    - aux::file_progress::update
    - libtorrent::aux::calc_num_pieces
    - aux::file_progress::export_progress
    - file_storage::num_files
    - file_storage::set_num_pieces
    - aux::file_progress::init
    - file_storage::file_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(update_simple_sequential)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:150,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:151,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_file_progress.cpp:152,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/test/test_file_progress.cpp:153,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/test/test_file_progress.cpp:154,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/test/test_file_progress.cpp:154,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/test/test_file_progress.cpp:156,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/test/test_file_progress.cpp:156,1
    - Dst: aux::file_progress::init
      Src: /src/libtorrent/test/test_file_progress.cpp:159,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/test/test_file_progress.cpp:161,1
    - Dst: aux::file_progress::update
      Src: /src/libtorrent/test/test_file_progress.cpp:163,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:167,1
    - Dst: aux::file_progress::total_on_disk
      Src: /src/libtorrent/test/test_file_progress.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:168,1
    - Dst: aux::file_progress::total_on_disk
      Src: /src/libtorrent/test/test_file_progress.cpp:168,1
    - Dst: aux::file_progress::export_progress
      Src: /src/libtorrent/test/test_file_progress.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:175,1
    - Dst: file_storage::file_size
      Src: /src/libtorrent/test/test_file_progress.cpp:175,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file_progress.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 180
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file_progress.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - file_storage::set_piece_length
    - aux::file_progress::total_on_disk
    - file_storage::total_size
    - file_storage::piece_length
    - file_storage::add_file
    - file_storage::piece_range
    - aux::file_progress::update
    - libtorrent::aux::calc_num_pieces
    - aux::file_progress::export_progress
    - file_storage::set_num_pieces
    - aux::file_progress::init
    - file_storage::file_size
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pad_file_completion_callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/test/test_resolve_links.cpp:103,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_resolve_links.cpp:103,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_resolve_links.cpp:103,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_resolve_links.cpp:110,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resolve_links.cpp:111,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_resolve_links.cpp:111,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_resolve_links.cpp:112,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_resolve_links.cpp:114,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resolve_links.cpp:115,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_resolve_links.cpp:115,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_resolve_links.cpp:116,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resolve_links.cpp:118,1
    - Dst: resolve_links::match
      Src: /src/libtorrent/test/test_resolve_links.cpp:120,1
    - Dst: resolve_links::get_links
      Src: /src/libtorrent/test/test_resolve_links.cpp:122,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_resolve_links.cpp:124,1
    - Dst: std::count_if
      Src: /src/libtorrent/test/test_resolve_links.cpp:124,1
    - Dst: begin
      Src: /src/libtorrent/test/test_resolve_links.cpp:124,1
    - Dst: end
      Src: /src/libtorrent/test/test_resolve_links.cpp:124,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_resolve_links.cpp:125,1
    - Dst: std::shared_ptr::files
      Src: /src/libtorrent/test/test_resolve_links.cpp:130,1
    - Dst: end_index
      Src: /src/libtorrent/test/test_resolve_links.cpp:131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_resolve_links.cpp:133,1
    - Dst: num_files
      Src: /src/libtorrent/test/test_resolve_links.cpp:133,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resolve_links.cpp:134,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_resolve_links.cpp:135,1
    - Dst: file_name
      Src: /src/libtorrent/test/test_resolve_links.cpp:136,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/test/test_resolve_links.cpp:138,1
    - Dst: ti::info_hash
      Src: /src/libtorrent/test/test_resolve_links.cpp:138,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_resolve_links.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resolve_links.cpp:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 146
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resolve_links.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - parent_path
    - file_name
    - std::make_shared<torrent_info>
    - resolve_links::get_links
    - end
    - std::size_t
    - std::printf
    - current_working_directory
    - TEST_EQUAL
    - libtorrent::aux::to_hex
    - num_files
    - resolve_links::match
    - TORRENT_ASSERT
    - end_index
    - std::bind
    - ti::info_hash
    - combine_path
    - std::count_if
    - std::string::c_str
    - std::shared_ptr::files
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resolve_links)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_resolve_links.cpp:155,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_resolve_links.cpp:156,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_resolve_links.cpp:157,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/test/test_resolve_links.cpp:158,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_resolve_links.cpp:163,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_resolve_links.cpp:163,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_resolve_links.cpp:164,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_resolve_links.cpp:164,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_resolve_links.cpp:165,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_resolve_links.cpp:165,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/test/test_resolve_links.cpp:166,1
    - Dst: sha1_hash
      Src: /src/libtorrent/test/test_resolve_links.cpp:166,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resolve_links.cpp:170,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_resolve_links.cpp:170,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_resolve_links.cpp:170,1
    - Dst: bencode
      Src: /src/libtorrent/test/test_resolve_links.cpp:171,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/test/test_resolve_links.cpp:171,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/test/test_resolve_links.cpp:171,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_resolve_links.cpp:172,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/test/test_resolve_links.cpp:173,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_resolve_links.cpp:175,1
    - Dst: resolve_links::match
      Src: /src/libtorrent/test/test_resolve_links.cpp:177,1
    - Dst: resolve_links::get_links
      Src: /src/libtorrent/test/test_resolve_links.cpp:179,1
    - Dst: std::count_if
      Src: /src/libtorrent/test/test_resolve_links.cpp:181,1
    - Dst: begin
      Src: /src/libtorrent/test/test_resolve_links.cpp:181,1
    - Dst: end
      Src: /src/libtorrent/test/test_resolve_links.cpp:181,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_resolve_links.cpp:182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resolve_links.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 185
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resolve_links.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - TEST_EQUAL
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - resolve_links::get_links
    - begin
    - file_storage::add_file
    - std::count_if
    - end
    - libtorrent::aux::max
    - resolve_links::match
    - std::back_inserter
    - lt::create_torrent::generate
    - sha1_hash
    - std::printf
    - bencode
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(range_lookup_duplicated_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_args
      Src: /src/libtorrent/test/test_resolve_links.cpp:191,1
    - Dst: make_test_torrent
      Src: /src/libtorrent/test/test_resolve_links.cpp:199,1
    - Dst: generate_files
      Src: /src/libtorrent/test/test_resolve_links.cpp:200,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resolve_links.cpp:205,1
    - Dst: wait_for_seeding
      Src: /src/libtorrent/test/test_resolve_links.cpp:207,1
    - Dst: torrent_args
      Src: /src/libtorrent/test/test_resolve_links.cpp:209,1
    - Dst: make_test_torrent
      Src: /src/libtorrent/test/test_resolve_links.cpp:217,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_resolve_links.cpp:220,1
    - Dst: wait_for_downloading
      Src: /src/libtorrent/test/test_resolve_links.cpp:222,1
    - Dst: auto::file_progress
      Src: /src/libtorrent/test/test_resolve_links.cpp:225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_resolve_links.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 227
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resolve_links.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - wait_for_seeding
    - auto::file_progress
    - generate_files
    - torrent_args
    - make_test_torrent
    - lt::session::add_torrent
    - wait_for_downloading
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pick_up_existing_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_resolve_links.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_resolve_links.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:85,1
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_privacy.cpp:86,1
    - Dst: start_udp_tracker
      Src: /src/libtorrent/test/test_privacy.cpp:87,1
    - Dst: start_dht
      Src: /src/libtorrent/test/test_privacy.cpp:88,1
    - Dst: start_peer
      Src: /src/libtorrent/test/test_privacy.cpp:89,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_privacy.cpp:91,1
    - Dst: settings
      Src: /src/libtorrent/test/test_privacy.cpp:93,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:94,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:95,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:96,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:97,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:98,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:99,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:100,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:101,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:102,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_privacy.cpp:106,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_privacy.cpp:108,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_privacy.cpp:109,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_privacy.cpp:110,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:115,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_privacy.cpp:119,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:120,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:121,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:122,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:123,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_privacy.cpp:125,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_privacy.cpp:128,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_privacy.cpp:129,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_privacy.cpp:130,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_privacy.cpp:131,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_privacy.cpp:132,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_privacy.cpp:136,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:138,1
    - Dst: add_torrent_params::tracker_tiers::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:139,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:140,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_privacy.cpp:143,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:145,1
    - Dst: add_torrent_params::tracker_tiers::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:146,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:147,1
    - Dst: add_torrent_params::dht_nodes::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:158,1
    - Dst: std::pair<std::string, int>
      Src: /src/libtorrent/test/test_privacy.cpp:158,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_privacy.cpp:159,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:161,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/test_privacy.cpp:162,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_privacy.cpp:162,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_privacy.cpp:162,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_privacy.cpp:173,1
    - Dst: alert_cast<tracker_reply_alert>
      Src: /src/libtorrent/test/test_privacy.cpp:176,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:178,1
    - Dst: auto*::tracker_url
      Src: /src/libtorrent/test/test_privacy.cpp:178,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:179,1
    - Dst: auto*::tracker_url
      Src: /src/libtorrent/test/test_privacy.cpp:179,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_privacy.cpp:183,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_privacy.cpp:183,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_privacy.cpp:185,1
    - Dst: num_peer_hits
      Src: /src/libtorrent/test/test_privacy.cpp:186,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_privacy.cpp:187,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_privacy.cpp:194,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_privacy.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:199,1
    - Dst: num_dht_hits
      Src: /src/libtorrent/test/test_privacy.cpp:199,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_privacy.cpp:203,1
    - Dst: num_dht_hits
      Src: /src/libtorrent/test/test_privacy.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:208,1
    - Dst: num_peer_hits
      Src: /src/libtorrent/test/test_privacy.cpp:208,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_privacy.cpp:212,1
    - Dst: num_peer_hits
      Src: /src/libtorrent/test/test_privacy.cpp:212,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:218,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_privacy.cpp:218,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_privacy.cpp:218,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:218,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:219,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:223,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:224,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_privacy.cpp:224,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_privacy.cpp:224,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:224,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:225,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:231,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_privacy.cpp:231,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_privacy.cpp:231,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:231,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:232,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:236,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:237,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_privacy.cpp:237,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_privacy.cpp:237,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:237,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:238,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:241,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_privacy.cpp:241,1
    - Dst: auto::abort
      Src: /src/libtorrent/test/test_privacy.cpp:242,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_privacy.cpp:243,1
    - Dst: stop_peer
      Src: /src/libtorrent/test/test_privacy.cpp:245,1
    - Dst: stop_dht
      Src: /src/libtorrent/test/test_privacy.cpp:246,1
    - Dst: stop_udp_tracker
      Src: /src/libtorrent/test/test_privacy.cpp:247,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_privacy.cpp:248,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 85
    argCount: 2
    argNames:
    - proxy_type
    - flags
    argTypes:
    - settings_pack::proxy_type_t
    - flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 250
    functionName: test_proxy
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 1
    functionsReached:
    - make_address_v4
    - std::vector::size
    - std::this_thread::sleep_for
    - std::vector::begin
    - num_udp_announces
    - stop_dht
    - stop_udp_tracker
    - stop_peer
    - alert_cast<tracker_reply_alert>
    - std::vector::end
    - add_torrent_params::tracker_tiers::push_back
    - torrent_handle::connect_peer
    - start_peer
    - Catch::Generators::random
    - std::uint16_t
    - print_alerts
    - std::find
    - settings_pack::set_bool
    - stop_web_server
    - num_peer_hits
    - std::printf
    - TEST_EQUAL
    - start_dht
    - std::snprintf
    - num_dht_hits
    - libtorrent::total_milliseconds
    - auto::abort
    - create_directory
    - auto*::tracker_url
    - std::ofstream::close
    - TEST_CHECK
    - add_torrent_params::dht_nodes::push_back
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - add_torrent_params::trackers::push_back
    - combine_path
    - auto::add_torrent
    - std::vector::push_back
    - auto::reset
    - start_web_server
    - std::make_unique<lt::session>
    - std::pair<std::string, int>
    - time_now_string
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - start_udp_tracker
    linkageType: ''
    returnType: session_proxy
    signature: session_proxy test_proxy(settings_pack::proxy_type_t proxy_type, flags_t
      flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:85,1
    - Dst: start_web_server
      Src: /src/libtorrent/test/test_privacy.cpp:86,1
    - Dst: start_udp_tracker
      Src: /src/libtorrent/test/test_privacy.cpp:87,1
    - Dst: start_dht
      Src: /src/libtorrent/test/test_privacy.cpp:88,1
    - Dst: start_peer
      Src: /src/libtorrent/test/test_privacy.cpp:89,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_privacy.cpp:91,1
    - Dst: settings
      Src: /src/libtorrent/test/test_privacy.cpp:93,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:94,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:95,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:96,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:97,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:98,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:99,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:100,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:101,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:102,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_privacy.cpp:106,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_privacy.cpp:108,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/test/test_privacy.cpp:109,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_privacy.cpp:110,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:115,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_privacy.cpp:119,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:120,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:121,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_privacy.cpp:122,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_privacy.cpp:123,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/test/test_privacy.cpp:125,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_privacy.cpp:128,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_privacy.cpp:129,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_privacy.cpp:130,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_privacy.cpp:131,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_privacy.cpp:132,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_privacy.cpp:136,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:138,1
    - Dst: add_torrent_params::tracker_tiers::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:139,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:140,1
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_privacy.cpp:143,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:145,1
    - Dst: add_torrent_params::tracker_tiers::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:146,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:147,1
    - Dst: add_torrent_params::dht_nodes::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:158,1
    - Dst: std::pair<std::string, int>
      Src: /src/libtorrent/test/test_privacy.cpp:158,1
    - Dst: auto::add_torrent
      Src: /src/libtorrent/test/test_privacy.cpp:159,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:161,1
    - Dst: torrent_handle::connect_peer
      Src: /src/libtorrent/test/test_privacy.cpp:162,1
    - Dst: make_address_v4
      Src: /src/libtorrent/test/test_privacy.cpp:162,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/test/test_privacy.cpp:162,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_privacy.cpp:173,1
    - Dst: alert_cast<tracker_reply_alert>
      Src: /src/libtorrent/test/test_privacy.cpp:176,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:178,1
    - Dst: auto*::tracker_url
      Src: /src/libtorrent/test/test_privacy.cpp:178,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/test/test_privacy.cpp:179,1
    - Dst: auto*::tracker_url
      Src: /src/libtorrent/test/test_privacy.cpp:179,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_privacy.cpp:183,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_privacy.cpp:183,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_privacy.cpp:185,1
    - Dst: num_peer_hits
      Src: /src/libtorrent/test/test_privacy.cpp:186,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_privacy.cpp:187,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_privacy.cpp:194,1
    - Dst: num_udp_announces
      Src: /src/libtorrent/test/test_privacy.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:199,1
    - Dst: num_dht_hits
      Src: /src/libtorrent/test/test_privacy.cpp:199,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_privacy.cpp:203,1
    - Dst: num_dht_hits
      Src: /src/libtorrent/test/test_privacy.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:208,1
    - Dst: num_peer_hits
      Src: /src/libtorrent/test/test_privacy.cpp:208,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_privacy.cpp:212,1
    - Dst: num_peer_hits
      Src: /src/libtorrent/test/test_privacy.cpp:212,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:217,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:218,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_privacy.cpp:218,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_privacy.cpp:218,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:218,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:219,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:223,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:224,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_privacy.cpp:224,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_privacy.cpp:224,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:224,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:225,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:231,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_privacy.cpp:231,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_privacy.cpp:231,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:231,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:232,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:236,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_privacy.cpp:237,1
    - Dst: std::find
      Src: /src/libtorrent/test/test_privacy.cpp:237,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/test/test_privacy.cpp:237,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:237,1
    - Dst: std::vector::end
      Src: /src/libtorrent/test/test_privacy.cpp:238,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_privacy.cpp:241,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/test_privacy.cpp:241,1
    - Dst: auto::abort
      Src: /src/libtorrent/test/test_privacy.cpp:242,1
    - Dst: auto::reset
      Src: /src/libtorrent/test/test_privacy.cpp:243,1
    - Dst: stop_peer
      Src: /src/libtorrent/test/test_privacy.cpp:245,1
    - Dst: stop_dht
      Src: /src/libtorrent/test/test_privacy.cpp:246,1
    - Dst: stop_udp_tracker
      Src: /src/libtorrent/test/test_privacy.cpp:247,1
    - Dst: stop_web_server
      Src: /src/libtorrent/test/test_privacy.cpp:248,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 85
    argCount: 2
    argNames:
    - proxy_type
    - flags
    argTypes:
    - settings_pack::proxy_type_t
    - flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 250
    functionName: test_proxy
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 1
    functionsReached:
    - make_address_v4
    - std::vector::size
    - std::this_thread::sleep_for
    - std::vector::begin
    - num_udp_announces
    - stop_dht
    - stop_udp_tracker
    - stop_peer
    - alert_cast<tracker_reply_alert>
    - std::vector::end
    - add_torrent_params::tracker_tiers::push_back
    - torrent_handle::connect_peer
    - start_peer
    - Catch::Generators::random
    - std::uint16_t
    - print_alerts
    - std::find
    - settings_pack::set_bool
    - stop_web_server
    - num_peer_hits
    - std::printf
    - TEST_EQUAL
    - start_dht
    - std::snprintf
    - num_dht_hits
    - libtorrent::total_milliseconds
    - auto::abort
    - create_directory
    - auto*::tracker_url
    - std::ofstream::close
    - TEST_CHECK
    - add_torrent_params::dht_nodes::push_back
    - libtorrent::create_torrent::create_torrent
    - remove_all
    - add_torrent_params::trackers::push_back
    - combine_path
    - auto::add_torrent
    - std::vector::push_back
    - auto::reset
    - start_web_server
    - std::make_unique<lt::session>
    - std::pair<std::string, int>
    - time_now_string
    - settings_pack::set_str
    - settings
    - settings_pack::set_int
    - start_udp_tracker
    linkageType: ''
    returnType: session_proxy
    signature: session_proxy test_proxy(settings_pack::proxy_type_t proxy_type, flags_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_pw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_pw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks4_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_pw_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_pw_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks4_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_pw_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy
      Src: /src/libtorrent/test/test_privacy.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_privacy.cpp
    functionUses: 0
    functionsReached:
    - test_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_pw_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::session_settings::set_str
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:42,1
    - Dst: libtorrent::aux::generate_peer_id
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:43,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:45,1
    - Dst: equal
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:45,1
    - Dst: lt::peer_id::begin
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:45,1
    - Dst: lt::peer_id::begin
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:45,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:46,1
    - Dst: libtorrent::need_encoding
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:46,1
    - Dst: lt::peer_id::data
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:46,1
    - Dst: lt::peer_id::size
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_generate_peer_id.cpp
    functionUses: 0
    functionsReached:
    - lt::peer_id::begin
    - libtorrent::aux::generate_peer_id
    - lt::peer_id::size
    - lt::aux::session_settings::set_str
    - equal
    - libtorrent::need_encoding
    - TEST_CHECK
    - lt::peer_id::data
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(generate_peer_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::session_settings::set_str
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:52,1
    - Dst: libtorrent::aux::generate_peer_id
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:53,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:55,1
    - Dst: equal
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:55,1
    - Dst: lt::peer_id::begin
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:55,1
    - Dst: lt::peer_id::end
      Src: /src/libtorrent/test/test_generate_peer_id.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_generate_peer_id.cpp
    functionUses: 0
    functionsReached:
    - lt::peer_id::begin
    - libtorrent::aux::generate_peer_id
    - lt::aux::session_settings::set_str
    - equal
    - lt::peer_id::end
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(generate_peer_id_truncate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_recheck.cpp:60,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_recheck.cpp:63,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_recheck.cpp:64,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_recheck.cpp:65,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/test_recheck.cpp:66,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_recheck.cpp:66,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_recheck.cpp:72,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_recheck.cpp:74,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_recheck.cpp:74,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_recheck.cpp:75,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_recheck.cpp:75,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_recheck.cpp:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ' ses'
    - h
    argTypes:
    - lt::session
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: wait_for_complete
    functionSourceFile: /src/libtorrent/test/test_recheck.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - torrent_handle::status
    - print_alerts
    - std::this_thread::sleep_for
    - seconds
    - Catch::Timer::getElapsedNanoseconds
    - total_milliseconds
    - std::printf
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void wait_for_complete(lt::session& ses, torrent_handle h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/test_recheck.cpp:60,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_recheck.cpp:63,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_recheck.cpp:64,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_recheck.cpp:65,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/test/test_recheck.cpp:66,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_recheck.cpp:66,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_recheck.cpp:72,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_recheck.cpp:74,1
    - Dst: seconds
      Src: /src/libtorrent/test/test_recheck.cpp:74,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_recheck.cpp:75,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/test/test_recheck.cpp:75,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/test/test_recheck.cpp:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ' ses'
    - h
    argTypes:
    - lt::session
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: wait_for_complete
    functionSourceFile: /src/libtorrent/test/test_recheck.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - torrent_handle::status
    - print_alerts
    - std::this_thread::sleep_for
    - seconds
    - Catch::Timer::getElapsedNanoseconds
    - total_milliseconds
    - std::printf
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void wait_for_complete(lt::session& ses, torrent_handle h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/test/test_recheck.cpp:85,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_recheck.cpp:86,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_recheck.cpp:86,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_recheck.cpp:87,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_recheck.cpp:88,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_recheck.cpp:89,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_recheck.cpp:90,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_recheck.cpp:92,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_recheck.cpp:93,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_recheck.cpp:93,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/test/test_recheck.cpp:95,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/test/test_recheck.cpp:97,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/test/test_recheck.cpp:105,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_recheck.cpp:106,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_recheck.cpp:106,1
    - Dst: wait_for_listen
      Src: /src/libtorrent/test/test_recheck.cpp:108,1
    - Dst: torrent_handle::force_recheck
      Src: /src/libtorrent/test/test_recheck.cpp:110,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_recheck.cpp:112,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_recheck.cpp:113,1
    - Dst: wait_for_complete
      Src: /src/libtorrent/test/test_recheck.cpp:114,1
    - Dst: torrent_handle::force_recheck
      Src: /src/libtorrent/test/test_recheck.cpp:116,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_recheck.cpp:118,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_recheck.cpp:119,1
    - Dst: wait_for_complete
      Src: /src/libtorrent/test/test_recheck.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 121
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_recheck.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::status
    - libtorrent::create_torrent::create_torrent
    - torrent_handle::force_recheck
    - wait_for_listen
    - test_listen_interface
    - wait_for_complete
    - create_directory
    - lt::session::add_torrent
    - settings_pack::set_str
    - error_code::message
    - settings
    - std::ofstream::close
    - settings_pack::set_bool
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recheck)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/test/bittorrent_peer.hpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 107
    functionName: peer_conn
    functionSourceFile: /src/libtorrent/test/bittorrent_peer.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: struct EXPORT
    signature: struct EXPORT peer_conn
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/test/peer_server.cpp:66,1
    - Dst: rand_v4
      Src: /src/libtorrent/test/peer_server.cpp:66,1
    - Dst: std::printf
      Src: /src/libtorrent/test/peer_server.cpp:69,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/peer_server.cpp:69,1
    - Dst: bind
      Src: /src/libtorrent/test/peer_server.cpp:73,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/peer_server.cpp:73,1
    - Dst: address_v4::any
      Src: /src/libtorrent/test/peer_server.cpp:73,1
    - Dst: std::printf
      Src: /src/libtorrent/test/peer_server.cpp:76,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/peer_server.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/test/peer_server.cpp:79,1
    - Dst: std::printf
      Src: /src/libtorrent/test/peer_server.cpp:82,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/peer_server.cpp:82,1
    - Dst: listen
      Src: /src/libtorrent/test/peer_server.cpp:85,1
    - Dst: std::printf
      Src: /src/libtorrent/test/peer_server.cpp:88,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/peer_server.cpp:88,1
    - Dst: std::printf
      Src: /src/libtorrent/test/peer_server.cpp:92,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/peer_server.cpp:92,1
    - Dst: std::make_shared<std::thread>
      Src: /src/libtorrent/test/peer_server.cpp:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 95
    functionName: peer_server
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<std::thread>
    - rand_v4
    - listen
    - open
    - address_v4::any
    - time_now_string
    - error_code::message
    - local_endpoint
    - bind
    - std::printf
    linkageType: ''
    returnType: void
    signature: void peer_server()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/test/peer_server.cpp:100,1
    - Dst: close
      Src: /src/libtorrent/test/peer_server.cpp:101,1
    - Dst: join
      Src: /src/libtorrent/test/peer_server.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: ~peer_server()
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 0
    functionsReached:
    - join
    - close
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~peer_server()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: port
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: num_hits
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_hits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ec'
    - ret
    - done
    argTypes:
    - error_code
    - error_code*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: new_connection
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_connection(error_code const& ec, error_code* ret, bool* done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_accept
      Src: /src/libtorrent/test/peer_server.cpp:123,1
    - Dst: std::bind
      Src: /src/libtorrent/test/peer_server.cpp:123,1
    - Dst: poll_one
      Src: /src/libtorrent/test/peer_server.cpp:126,1
    - Dst: restart
      Src: /src/libtorrent/test/peer_server.cpp:127,1
    - Dst: std::printf
      Src: /src/libtorrent/test/peer_server.cpp:135,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/peer_server.cpp:135,1
    - Dst: std::printf
      Src: /src/libtorrent/test/peer_server.cpp:139,1
    - Dst: time_now_string
      Src: /src/libtorrent/test/peer_server.cpp:139,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/test/peer_server.cpp:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 143
    functionName: thread_fun
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_accept
    - poll_one
    - time_now_string
    - error_code::message
    - restart
    - std::printf
    - tcp::socket::close
    linkageType: ''
    returnType: void
    signature: void thread_fun()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/test/peer_server.cpp:154,1
    - Dst: peer_server::peer_server
      Src: /src/libtorrent/test/peer_server.cpp:154,1
    - Dst: port
      Src: /src/libtorrent/test/peer_server.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: start_peer
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 2
    functionsReached:
    - port
    - peer_server::peer_server
    - reset
    linkageType: ''
    returnType: int
    signature: int start_peer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_hits
      Src: /src/libtorrent/test/peer_server.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: num_peer_hits
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 2
    functionsReached:
    - num_hits
    linkageType: ''
    returnType: int
    signature: int num_peer_hits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/test/peer_server.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: stop_peer
    functionSourceFile: /src/libtorrent/test/peer_server.cpp
    functionUses: 3
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void stop_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::announce_entry::endpoints::emplace_back
      Src: /src/libtorrent/test/test_primitives.cpp:53,1
    - Dst: libtorrent::aux::listen_socket_handle
      Src: /src/libtorrent/test/test_primitives.cpp:53,1
    - Dst: aux::announce_entry::endpoints::front
      Src: /src/libtorrent/test/test_primitives.cpp:58,1
    - Dst: failed
      Src: /src/libtorrent/test/test_primitives.cpp:58,1
    - Dst: seconds32
      Src: /src/libtorrent/test/test_primitives.cpp:58,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_primitives.cpp:59,1
    - Dst: total_seconds
      Src: /src/libtorrent/test/test_primitives.cpp:59,1
    - Dst: aux::announce_entry::endpoints::front
      Src: /src/libtorrent/test/test_primitives.cpp:59,1
    - Dst: time_now
      Src: /src/libtorrent/test/test_primitives.cpp:59,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:60,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_primitives.cpp:62,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_primitives.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - seconds32
    - aux::announce_entry::endpoints::front
    - total_seconds
    - aux::announce_entry::endpoints::emplace_back
    - libtorrent::aux::listen_socket_handle
    - failed
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(retry_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:69,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:69,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:70,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:70,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:73,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:73,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:76,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:76,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:77,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:77,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:78,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:78,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:79,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:79,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:80,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:80,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:82,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:82,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:84,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:84,1
    - Dst: http_category
      Src: /src/libtorrent/test/test_primitives.cpp:84,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:86,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_primitives.cpp:86,1
    - Dst: http_category
      Src: /src/libtorrent/test/test_primitives.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - error_code
    - http_category
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(error_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_primitives.cpp:103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:104,1
    - Dst: strcmp
      Src: /src/libtorrent/test/test_primitives.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - std::snprintf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(snprintf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: supports_ipv6
      Src: /src/libtorrent/test/test_primitives.cpp:117,1
    - Dst: std::multimap::insert
      Src: /src/libtorrent/test/test_primitives.cpp:123,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_primitives.cpp:123,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_primitives.cpp:123,1
    - Dst: std::multimap::insert
      Src: /src/libtorrent/test/test_primitives.cpp:124,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_primitives.cpp:124,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_primitives.cpp:124,1
    - Dst: std::multimap::insert
      Src: /src/libtorrent/test/test_primitives.cpp:125,1
    - Dst: std::make_pair
      Src: /src/libtorrent/test/test_primitives.cpp:125,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_primitives.cpp:125,1
    - Dst: std::multimap::find
      Src: /src/libtorrent/test/test_primitives.cpp:126,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_primitives.cpp:126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:127,1
    - Dst: std::multimap::end
      Src: /src/libtorrent/test/test_primitives.cpp:127,1
    - Dst: std::multimap::end
      Src: /src/libtorrent/test/test_primitives.cpp:128,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:130,1
    - Dst: make_address
      Src: /src/libtorrent/test/test_primitives.cpp:130,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - supports_ipv6
    - std::make_pair
    - std::multimap::find
    - std::multimap::end
    - make_address
    - std::multimap::insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(address_to_from_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:138,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_primitives.cpp:138,1
    - Dst: ep
      Src: /src/libtorrent/test/test_primitives.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:139,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_primitives.cpp:139,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_primitives.cpp:139,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:141,1
    - Dst: print_endpoint
      Src: /src/libtorrent/test/test_primitives.cpp:141,1
    - Dst: ep
      Src: /src/libtorrent/test/test_primitives.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:142,1
    - Dst: print_address
      Src: /src/libtorrent/test/test_primitives.cpp:142,1
    - Dst: addr6
      Src: /src/libtorrent/test/test_primitives.cpp:142,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:145,1
    - Dst: address_to_bytes
      Src: /src/libtorrent/test/test_primitives.cpp:145,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_primitives.cpp:145,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:146,1
    - Dst: address_to_bytes
      Src: /src/libtorrent/test/test_primitives.cpp:146,1
    - Dst: addr4
      Src: /src/libtorrent/test/test_primitives.cpp:146,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:149,1
    - Dst: endpoint_to_bytes
      Src: /src/libtorrent/test/test_primitives.cpp:149,1
    - Dst: uep
      Src: /src/libtorrent/test/test_primitives.cpp:149,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:150,1
    - Dst: endpoint_to_bytes
      Src: /src/libtorrent/test/test_primitives.cpp:150,1
    - Dst: uep
      Src: /src/libtorrent/test/test_primitives.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_address
    - addr6
    - address_to_bytes
    - ep
    - print_endpoint
    - endpoint_to_bytes
    - addr4
    - uep
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(address_endpoint_io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:155,1
    - Dst: generate_fingerprint
      Src: /src/libtorrent/test/test_primitives.cpp:155,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:156,1
    - Dst: generate_fingerprint
      Src: /src/libtorrent/test/test_primitives.cpp:156,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:157,1
    - Dst: generate_fingerprint
      Src: /src/libtorrent/test/test_primitives.cpp:157,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:158,1
    - Dst: generate_fingerprint
      Src: /src/libtorrent/test/test_primitives.cpp:158,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:159,1
    - Dst: generate_fingerprint
      Src: /src/libtorrent/test/test_primitives.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - generate_fingerprint
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(gen_fingerprint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_primitives.cpp:166,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:167,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_primitives.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::snprintf
    - std::string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(printf_int64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_primitives.cpp:174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:175,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_primitives.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::snprintf
    - std::string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(printf_uint64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/test/test_primitives.cpp:192,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:193,1
    - Dst: std::string
      Src: /src/libtorrent/test/test_primitives.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::snprintf
    - std::string
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(printf_trunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(error_condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:218,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:221,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:221,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:222,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:223,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:223,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:224,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:224,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:225,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:225,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:226,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:226,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:228,1
    - Dst: static_cast<int*>
      Src: /src/libtorrent/test/test_primitives.cpp:228,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:229,1
    - Dst: static_cast<int*>
      Src: /src/libtorrent/test/test_primitives.cpp:229,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:230,1
    - Dst: static_cast<int const*>
      Src: /src/libtorrent/test/test_primitives.cpp:230,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:231,1
    - Dst: static_cast<int volatile*>
      Src: /src/libtorrent/test/test_primitives.cpp:231,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:232,1
    - Dst: static_cast<int const volatile*>
      Src: /src/libtorrent/test/test_primitives.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:233,1
    - Dst: static_cast<float*>
      Src: /src/libtorrent/test/test_primitives.cpp:233,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:237,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:237,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:238,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:238,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:239,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:239,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:240,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:241,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:241,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:242,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:242,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:244,1
    - Dst: static_cast<float*>
      Src: /src/libtorrent/test/test_primitives.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:245,1
    - Dst: static_cast<float*>
      Src: /src/libtorrent/test/test_primitives.cpp:245,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:246,1
    - Dst: static_cast<float const*>
      Src: /src/libtorrent/test/test_primitives.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:247,1
    - Dst: static_cast<float volatile*>
      Src: /src/libtorrent/test/test_primitives.cpp:247,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:248,1
    - Dst: static_cast<float const volatile*>
      Src: /src/libtorrent/test/test_primitives.cpp:248,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:249,1
    - Dst: static_cast<int*>
      Src: /src/libtorrent/test/test_primitives.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 250
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - static_cast<float*>
    - static_cast<float const*>
    - static_cast<float volatile*>
    - static_cast<float const volatile*>
    - static_cast<int const volatile*>
    - client_data_t::get
    - static_cast<int const*>
    - static_cast<int*>
    - static_cast<int volatile*>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(client_data_assign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:256,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:256,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:257,1
    - Dst: client_data_t::get
      Src: /src/libtorrent/test/test_primitives.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - client_data_t::get
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(client_data_initialize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_primitives.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(announce_endpoint_initialize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:271,1
    - Dst: libtorrent::aux::swap_byteorder
      Src: /src/libtorrent/test/test_primitives.cpp:271,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_primitives.cpp:272,1
    - Dst: libtorrent::aux::swap_byteorder
      Src: /src/libtorrent/test/test_primitives.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_primitives.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::swap_byteorder
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(byteswap)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/test/test_part_file.cpp:49,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_part_file.cpp:51,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:51,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:52,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:52,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_part_file.cpp:53,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:53,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:54,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:54,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_part_file.cpp:60,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:60,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:61,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:61,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_part_file.cpp:62,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:62,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:63,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:63,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:65,1
    - Dst: part_file::flush_metadata
      Src: /src/libtorrent/test/test_part_file.cpp:66,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:67,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:67,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:72,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:72,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:72,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:72,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_part_file.cpp:75,1
    - Dst: part_file::write
      Src: /src/libtorrent/test/test_part_file.cpp:77,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:78,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:78,1
    - Dst: part_file::flush_metadata
      Src: /src/libtorrent/test/test_part_file.cpp:80,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:81,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:81,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:84,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:84,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:84,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:84,1
    - Dst: part_file::move_partfile
      Src: /src/libtorrent/test/test_part_file.cpp:86,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:86,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:87,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:88,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:88,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:90,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:90,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:90,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:90,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:91,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:91,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:91,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:91,1
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_part_file.cpp:93,1
    - Dst: part_file::read
      Src: /src/libtorrent/test/test_part_file.cpp:95,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:96,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:96,1
    - Dst: std::array::size
      Src: /src/libtorrent/test/test_part_file.cpp:98,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:99,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_part_file.cpp:99,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_part_file.cpp:101,1
    - Dst: part_file::hash
      Src: /src/libtorrent/test/test_part_file.cpp:104,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:105,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:105,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:107,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/test_part_file.cpp:107,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:112,1
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_part_file.cpp:114,1
    - Dst: part_file::read
      Src: /src/libtorrent/test/test_part_file.cpp:116,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:117,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:117,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:120,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_part_file.cpp:120,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_part_file.cpp:120,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:124,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:124,1
    - Dst: part_file::export_file
      Src: /src/libtorrent/test/test_part_file.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:132,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_part_file.cpp:132,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:136,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:136,1
    - Dst: part_file::free_piece
      Src: /src/libtorrent/test/test_part_file.cpp:138,1
    - Dst: part_file::flush_metadata
      Src: /src/libtorrent/test/test_part_file.cpp:140,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:141,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:141,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:145,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:145,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:145,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:145,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:146,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:147,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:147,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 149
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char>
    - part_file::flush_metadata
    - hasher::final
    - hasher
    - std::array::fill
    - part_file::write
    - error_code::message
    - std::size_t
    - std::printf
    - part_file::export_file
    - part_file::free_piece
    - part_file::hash
    - create_directory
    - part_file::read
    - TEST_CHECK
    - part_file::move_partfile
    - std::array::size
    - remove_all
    - combine_path
    - exists
    - complete
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(part_file)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/test/test_part_file.cpp:154,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_part_file.cpp:156,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:156,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:157,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:157,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_part_file.cpp:158,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:158,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:159,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:159,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_part_file.cpp:165,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:165,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:166,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:166,1
    - Dst: create_directory
      Src: /src/libtorrent/test/test_part_file.cpp:167,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:167,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:168,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:168,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:170,1
    - Dst: aux::posix_part_file::flush_metadata
      Src: /src/libtorrent/test/test_part_file.cpp:171,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:172,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:177,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:177,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:177,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:177,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_part_file.cpp:180,1
    - Dst: aux::posix_part_file::write
      Src: /src/libtorrent/test/test_part_file.cpp:182,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:183,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:183,1
    - Dst: aux::posix_part_file::flush_metadata
      Src: /src/libtorrent/test/test_part_file.cpp:185,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:186,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:189,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:189,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:189,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:189,1
    - Dst: aux::posix_part_file::move_partfile
      Src: /src/libtorrent/test/test_part_file.cpp:191,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:192,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:193,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:195,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:195,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:195,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:195,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:196,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:196,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:196,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:196,1
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_part_file.cpp:198,1
    - Dst: aux::posix_part_file::read
      Src: /src/libtorrent/test/test_part_file.cpp:200,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:201,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:201,1
    - Dst: std::array::size
      Src: /src/libtorrent/test/test_part_file.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:204,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_part_file.cpp:204,1
    - Dst: hasher
      Src: /src/libtorrent/test/test_part_file.cpp:206,1
    - Dst: aux::posix_part_file::hash
      Src: /src/libtorrent/test/test_part_file.cpp:209,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:210,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:210,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:212,1
    - Dst: hasher::final
      Src: /src/libtorrent/test/test_part_file.cpp:212,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:217,1
    - Dst: std::array::fill
      Src: /src/libtorrent/test/test_part_file.cpp:219,1
    - Dst: aux::posix_part_file::read
      Src: /src/libtorrent/test/test_part_file.cpp:221,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:222,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:225,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_part_file.cpp:225,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_part_file.cpp:225,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:229,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:229,1
    - Dst: aux::posix_part_file::export_file
      Src: /src/libtorrent/test/test_part_file.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:237,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_part_file.cpp:237,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:241,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:241,1
    - Dst: aux::posix_part_file::free_piece
      Src: /src/libtorrent/test/test_part_file.cpp:243,1
    - Dst: aux::posix_part_file::flush_metadata
      Src: /src/libtorrent/test/test_part_file.cpp:245,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:246,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:250,1
    - Dst: exists
      Src: /src/libtorrent/test/test_part_file.cpp:250,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:250,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_part_file.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_part_file.cpp:251,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_part_file.cpp:252,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_part_file.cpp:252,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 254
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_part_file.cpp
    functionUses: 0
    functionsReached:
    - aux::posix_part_file::hash
    - aux::posix_part_file::write
    - static_cast<char>
    - aux::posix_part_file::export_file
    - hasher::final
    - hasher
    - std::array::fill
    - error_code::message
    - std::size_t
    - std::printf
    - create_directory
    - aux::posix_part_file::flush_metadata
    - TEST_CHECK
    - std::array::size
    - remove_all
    - combine_path
    - aux::posix_part_file::read
    - aux::posix_part_file::move_partfile
    - exists
    - aux::posix_part_file::free_piece
    - complete
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(posix_part_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:53,1
    - Dst: aux::alert_manager::alert_queue_size_limit
      Src: /src/libtorrent/test/test_alert_manager.cpp:53,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:54,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:54,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:59,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:61,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:61,1
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_manager.cpp:64,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:68,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_alert_manager.cpp:68,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:70,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:70,1
    - Dst: aux::alert_manager::set_alert_queue_size_limit
      Src: /src/libtorrent/test/test_alert_manager.cpp:73,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:76,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:78,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:78,1
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_manager.cpp:80,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:84,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_alert_manager.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 85
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - aux::alert_manager::pending
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - std::vector::size
    - aux::alert_manager::get_all
    - torrent_handle
    - aux::alert_manager::alert_queue_size_limit
    - aux::alert_manager::set_alert_queue_size_limit
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/test/test_alert_manager.cpp:89,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:92,1
    - Dst: aux::alert_manager::alert_queue_size_limit
      Src: /src/libtorrent/test/test_alert_manager.cpp:92,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:95,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:95,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:98,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:98,1
    - Dst: info_hash_t
      Src: /src/libtorrent/test/test_alert_manager.cpp:98,1
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_manager.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:103,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_alert_manager.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - std::vector::size
    - info_hash_t
    - aux::alert_manager::get_all
    - torrent_handle
    - libtorrent::aux::max
    - aux::alert_manager::alert_queue_size_limit
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(limit_int_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:110,1
    - Dst: aux::alert_manager::alert_queue_size_limit
      Src: /src/libtorrent/test/test_alert_manager.cpp:110,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:114,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:114,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:118,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:118,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_alert_manager.cpp:118,1
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_manager.cpp:121,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:126,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_alert_manager.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 127
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - std::vector::size
    - error_code
    - aux::alert_manager::get_all
    - torrent_handle
    - aux::alert_manager::alert_queue_size_limit
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(priority_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: test_notify_fun
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_notify_fun(int& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: test_notify_fun
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_notify_fun(int& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:141,1
    - Dst: aux::alert_manager::alert_queue_size_limit
      Src: /src/libtorrent/test/test_alert_manager.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:142,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:142,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:145,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:145,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/test/test_alert_manager.cpp:145,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_alert_manager.cpp:145,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:147,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:147,1
    - Dst: aux::alert_manager::set_notify_function
      Src: /src/libtorrent/test/test_alert_manager.cpp:151,1
    - Dst: std::bind
      Src: /src/libtorrent/test/test_alert_manager.cpp:151,1
    - Dst: std::ref
      Src: /src/libtorrent/test/test_alert_manager.cpp:151,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:153,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:153,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:154,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:159,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:159,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/test/test_alert_manager.cpp:159,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_alert_manager.cpp:159,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:161,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:161,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:162,1
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_manager.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:169,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:169,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:172,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:172,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/test/test_alert_manager.cpp:172,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_alert_manager.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:174,1
    - Dst: aux::alert_manager::pending
      Src: /src/libtorrent/test/test_alert_manager.cpp:174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 176
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - aux::alert_manager::pending
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - std::bind
    - add_torrent_params
    - error_code
    - aux::alert_manager::get_all
    - torrent_handle
    - std::ref
    - aux::alert_manager::set_notify_function
    - aux::alert_manager::alert_queue_size_limit
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(notify_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: test_plugin
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_plugin(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_alert(alert const*) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: test_plugin
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_plugin(int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_alert(alert const*) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtorrent/test/test_alert_manager.cpp:197,1
    - Dst: aux::alert_manager::add_extension
      Src: /src/libtorrent/test/test_alert_manager.cpp:200,1
    - Dst: std::make_shared<test_plugin>
      Src: /src/libtorrent/test/test_alert_manager.cpp:200,1
    - Dst: aux::alert_manager::add_extension
      Src: /src/libtorrent/test/test_alert_manager.cpp:201,1
    - Dst: std::make_shared<test_plugin>
      Src: /src/libtorrent/test/test_alert_manager.cpp:201,1
    - Dst: aux::alert_manager::add_extension
      Src: /src/libtorrent/test/test_alert_manager.cpp:202,1
    - Dst: std::make_shared<test_plugin>
      Src: /src/libtorrent/test/test_alert_manager.cpp:202,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:205,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:205,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/test/test_alert_manager.cpp:205,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_alert_manager.cpp:205,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:207,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:208,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:209,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:212,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:212,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/test/test_alert_manager.cpp:212,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_alert_manager.cpp:212,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:214,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:215,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 218
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - aux::alert_manager::add_extension
    - add_torrent_params
    - std::make_shared<test_plugin>
    - error_code
    - torrent_handle
    - memset
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(extensions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_manager.cpp:279,1
    - Dst: aux::alert_manager::should_post
      Src: /src/libtorrent/test/test_alert_manager.cpp:279,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_manager.cpp:280,1
    - Dst: aux::alert_manager::should_post
      Src: /src/libtorrent/test/test_alert_manager.cpp:280,1
    - Dst: aux::alert_manager::set_alert_mask
      Src: /src/libtorrent/test/test_alert_manager.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_manager.cpp:284,1
    - Dst: aux::alert_manager::should_post
      Src: /src/libtorrent/test/test_alert_manager.cpp:284,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_manager.cpp:285,1
    - Dst: aux::alert_manager::should_post
      Src: /src/libtorrent/test/test_alert_manager.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 286
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - aux::alert_manager::set_alert_mask
    - aux::alert_manager::should_post
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alert_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_manager.cpp:293,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_manager.cpp:295,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/test/test_alert_manager.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - aux::alert_manager::get_all
    - std::vector::empty
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(get_all_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:303,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:303,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:305,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:305,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:307,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:307,1
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_manager.cpp:311,1
    - Dst: alert_cast<alerts_dropped_alert>
      Src: /src/libtorrent/test/test_alert_manager.cpp:312,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_alert_manager.cpp:312,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:313,1
    - Dst: auto::count
      Src: /src/libtorrent/test/test_alert_manager.cpp:313,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_manager.cpp:314,1
    - Dst: auto::test
      Src: /src/libtorrent/test/test_alert_manager.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 315
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - std::vector::back
    - aux::alert_manager::get_all
    - torrent_handle
    - auto::count
    - alert_cast<alerts_dropped_alert>
    - auto::test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dropped_alerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:321,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:321,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:322,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:322,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:323,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:323,1
    - Dst: aux::alert_manager::get_all
      Src: /src/libtorrent/test/test_alert_manager.cpp:327,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:330,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_alert_manager.cpp:330,1
    - Dst: lt::alert_cast<alerts_dropped_alert>
      Src: /src/libtorrent/test/test_alert_manager.cpp:332,1
    - Dst: std::vector::back
      Src: /src/libtorrent/test/test_alert_manager.cpp:332,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_manager.cpp:333,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_alert_manager.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 335
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - std::vector::back
    - aux::alert_manager::get_all
    - torrent_handle
    - lt::alert_cast<alerts_dropped_alert>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alerts_dropped_alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - aux::alert_manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 340
    functionName: post_plugin
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void post_plugin(aux::alert_manager& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:344,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 345
    functionName: on_alert
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - torrent_handle
    linkageType: ''
    returnType: void
    signature: void on_alert(alert const*) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<post_plugin>
      Src: /src/libtorrent/test/test_alert_manager.cpp:356,1
    - Dst: aux::alert_manager::add_extension
      Src: /src/libtorrent/test/test_alert_manager.cpp:357,1
    - Dst: aux::alert_manager::emplace_alert
      Src: /src/libtorrent/test/test_alert_manager.cpp:359,1
    - Dst: torrent_handle
      Src: /src/libtorrent/test/test_alert_manager.cpp:359,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_alert_manager.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_alert_manager.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - aux::alert_manager::emplace_alert
    - std::make_shared<post_plugin>
    - aux::alert_manager::add_extension
    - torrent_handle
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(recursive_alerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::download_priority_t
      Src: /src/libtorrent/test/test_utils.hpp:57,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/test/test_utils.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned long long const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: operator ""_pri(unsigned long long const p)
    functionSourceFile: /src/libtorrent/test/test_utils.hpp
    functionUses: 0
    functionsReached:
    - lt::download_priority_t
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: lt::download_priority_t
    signature: lt::download_priority_t operator ""_pri(unsigned long long const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_index_t
      Src: /src/libtorrent/test/test_utils.hpp:60,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_utils.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned long long const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: operator ""_file(unsigned long long const p)
    functionSourceFile: /src/libtorrent/test/test_utils.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - lt::file_index_t
    linkageType: ''
    returnType: lt::file_index_t
    signature: lt::file_index_t operator ""_file(unsigned long long const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::piece_index_t
      Src: /src/libtorrent/test/test_utils.hpp:63,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/test/test_utils.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned long long const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: operator ""_piece(unsigned long long const p)
    functionSourceFile: /src/libtorrent/test/test_utils.hpp
    functionUses: 0
    functionsReached:
    - lt::piece_index_t
    - static_cast<int>
    linkageType: ''
    returnType: lt::piece_index_t
    signature: lt::piece_index_t operator ""_piece(unsigned long long const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: std::ofstream
    functionSourceFile: /src/libtorrent/test/test_utils.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct EXPORT
    signature: struct EXPORT std::ofstream
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_lsd.cpp:61,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:67,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:68,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:69,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:70,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_lsd.cpp:71,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_lsd.cpp:71,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:73,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_lsd.cpp:78,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_lsd.cpp:78,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_lsd.cpp:85,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_lsd.cpp:85,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_lsd.cpp:90,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_lsd.cpp:91,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_lsd.cpp:93,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_lsd.cpp:94,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_lsd.cpp:96,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_lsd.cpp:99,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_lsd.cpp:99,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_lsd.cpp:102,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_lsd.cpp:102,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_lsd.cpp:104,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_lsd.cpp:107,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_lsd.cpp:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 109
    functionName: test_lsd
    functionSourceFile: /src/libtorrent/test/test_lsd.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::status
    - print_ses_rate
    - std::tie
    - print_alerts
    - std::this_thread::sleep_for
    - test_listen_interface
    - setup_transfer
    - libtorrent::total_milliseconds
    - lt::session::abort
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_lsd()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/test/test_lsd.cpp:61,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:67,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:68,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:69,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:70,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_lsd.cpp:71,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_lsd.cpp:71,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/test/test_lsd.cpp:73,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/test/test_lsd.cpp:78,1
    - Dst: test_listen_interface
      Src: /src/libtorrent/test/test_lsd.cpp:78,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_lsd.cpp:85,1
    - Dst: setup_transfer
      Src: /src/libtorrent/test/test_lsd.cpp:85,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_lsd.cpp:90,1
    - Dst: print_alerts
      Src: /src/libtorrent/test/test_lsd.cpp:91,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_lsd.cpp:93,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_lsd.cpp:94,1
    - Dst: print_ses_rate
      Src: /src/libtorrent/test/test_lsd.cpp:96,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_lsd.cpp:99,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_lsd.cpp:99,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_lsd.cpp:102,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_lsd.cpp:102,1
    - Dst: torrent_handle::status
      Src: /src/libtorrent/test/test_lsd.cpp:104,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_lsd.cpp:107,1
    - Dst: lt::session::abort
      Src: /src/libtorrent/test/test_lsd.cpp:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 109
    functionName: test_lsd
    functionSourceFile: /src/libtorrent/test/test_lsd.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::status
    - print_ses_rate
    - std::tie
    - print_alerts
    - std::this_thread::sleep_for
    - test_listen_interface
    - setup_transfer
    - libtorrent::total_milliseconds
    - lt::session::abort
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_lsd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_all
      Src: /src/libtorrent/test/test_lsd.cpp:119,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_lsd.cpp:120,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_lsd.cpp:121,1
    - Dst: test_lsd
      Src: /src/libtorrent/test/test_lsd.cpp:123,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_lsd.cpp:125,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_lsd.cpp:126,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_lsd.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_lsd.cpp
    functionUses: 0
    functionsReached:
    - test_lsd
    - remove_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(lsd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_file.cpp:58,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/test/test_file.cpp:58,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_file.cpp:60,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_file.cpp:62,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_file.cpp:62,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_file.cpp:62,1
    - Dst: lt::aux::numeric_cast<std::streamsize>
      Src: /src/libtorrent/test/test_file.cpp:62,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_file.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' filename'
    - size
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: touch_file
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - aux::numeric_cast<std::size_t>
    - c_str
    - std::vector::resize
    - ofstream
    - lt::aux::numeric_cast<std::streamsize>
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void touch_file(std::string const& filename, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/test/test_file.cpp:58,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/test/test_file.cpp:58,1
    - Dst: std::size_t
      Src: /src/libtorrent/test/test_file.cpp:60,1
    - Dst: ofstream
      Src: /src/libtorrent/test/test_file.cpp:62,1
    - Dst: c_str
      Src: /src/libtorrent/test/test_file.cpp:62,1
    - Dst: std::vector::data
      Src: /src/libtorrent/test/test_file.cpp:62,1
    - Dst: lt::aux::numeric_cast<std::streamsize>
      Src: /src/libtorrent/test/test_file.cpp:62,1
    - Dst: std::vector::size
      Src: /src/libtorrent/test/test_file.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' filename'
    - size
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: touch_file
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - aux::numeric_cast<std::size_t>
    - c_str
    - std::vector::resize
    - ofstream
    - lt::aux::numeric_cast<std::streamsize>
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void touch_file(std::string const& filename, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_directory
      Src: /src/libtorrent/test/test_file.cpp:70,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:71,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_file.cpp:72,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:72,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:73,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_file.cpp:76,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:77,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_file.cpp:78,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:78,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:79,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:81,1
    - Dst: remove
      Src: /src/libtorrent/test/test_file.cpp:83,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:84,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_file.cpp:85,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:85,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - stat_file
    - create_directory
    - error_code::message
    - remove
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(create_directory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: touch_file
      Src: /src/libtorrent/test/test_file.cpp:94,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_file.cpp:97,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:98,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/test/test_file.cpp:102,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/test/test_file.cpp:102,1
    - Dst: touch_file
      Src: /src/libtorrent/test/test_file.cpp:104,1
    - Dst: stat_file
      Src: /src/libtorrent/test/test_file.cpp:107,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:111,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 115
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - libtorrent::total_milliseconds
    - stat_file
    - touch_file
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_directory
      Src: /src/libtorrent/test/test_file.cpp:121,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:122,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:122,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:123,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_file.cpp:125,1
    - Dst: touch_file
      Src: /src/libtorrent/test/test_file.cpp:127,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:127,1
    - Dst: touch_file
      Src: /src/libtorrent/test/test_file.cpp:128,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:128,1
    - Dst: touch_file
      Src: /src/libtorrent/test/test_file.cpp:129,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:129,1
    - Dst: aux::directory::done
      Src: /src/libtorrent/test/test_file.cpp:132,1
    - Dst: aux::directory::next
      Src: /src/libtorrent/test/test_file.cpp:132,1
    - Dst: aux::directory::file
      Src: /src/libtorrent/test/test_file.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:135,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_file.cpp:135,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_file.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:137,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/test/test_file.cpp:137,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:140,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_file.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:141,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_file.cpp:141,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:142,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_file.cpp:142,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:143,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_file.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:144,1
    - Dst: std::set::count
      Src: /src/libtorrent/test/test_file.cpp:144,1
    - Dst: std::set::clear
      Src: /src/libtorrent/test/test_file.cpp:145,1
    - Dst: remove_all
      Src: /src/libtorrent/test/test_file.cpp:147,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:148,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 149
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - current_working_directory
    - std::set::clear
    - remove_all
    - combine_path
    - aux::directory::done
    - std::string::c_str
    - std::set::count
    - touch_file
    - create_directory
    - error_code::message
    - aux::directory::next
    - aux::directory::file
    - std::set::insert
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(directory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:154,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:154,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:155,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:155,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:156,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:156,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:158,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:158,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:159,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:159,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:161,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:161,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:164,1
    - Dst: extension
      Src: /src/libtorrent/test/test_file.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:165,1
    - Dst: extension
      Src: /src/libtorrent/test/test_file.cpp:165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:166,1
    - Dst: extension
      Src: /src/libtorrent/test/test_file.cpp:166,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:167,1
    - Dst: extension
      Src: /src/libtorrent/test/test_file.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:168,1
    - Dst: extension
      Src: /src/libtorrent/test/test_file.cpp:168,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:170,1
    - Dst: remove_extension
      Src: /src/libtorrent/test/test_file.cpp:170,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:171,1
    - Dst: remove_extension
      Src: /src/libtorrent/test/test_file.cpp:171,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:172,1
    - Dst: remove_extension
      Src: /src/libtorrent/test/test_file.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:173,1
    - Dst: remove_extension
      Src: /src/libtorrent/test/test_file.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:176,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:176,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:177,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:178,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:178,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:179,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:179,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:180,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:180,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:181,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:181,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:182,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:183,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:183,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:185,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:185,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:186,1
    - Dst: is_root_path
      Src: /src/libtorrent/test/test_file.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:190,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:191,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:192,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:192,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:193,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:193,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:194,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:195,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:195,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:197,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:197,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:198,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:198,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:199,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:199,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:200,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:200,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:202,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:202,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:203,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:203,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:204,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:204,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:205,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:207,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:207,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:208,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:208,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:209,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:210,1
    - Dst: path_equal
      Src: /src/libtorrent/test/test_file.cpp:210,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:215,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:215,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:216,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:216,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:217,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:217,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:218,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:218,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:219,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:220,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:220,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:221,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:221,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:222,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:223,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:223,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:224,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:224,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:225,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:226,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:228,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:228,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:229,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:229,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:230,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:230,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:231,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:231,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:232,1
    - Dst: parent_path
      Src: /src/libtorrent/test/test_file.cpp:232,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:233,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:233,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:234,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:234,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:235,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:236,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:236,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:237,1
    - Dst: has_parent_path
      Src: /src/libtorrent/test/test_file.cpp:237,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:241,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:241,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:242,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:243,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:243,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:244,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:244,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:245,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:245,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:247,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:247,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:248,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:248,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:249,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:249,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:250,1
    - Dst: is_complete
      Src: /src/libtorrent/test/test_file.cpp:250,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:253,1
    - Dst: complete
      Src: /src/libtorrent/test/test_file.cpp:253,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_file.cpp:253,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:256,1
    - Dst: complete
      Src: /src/libtorrent/test/test_file.cpp:256,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_file.cpp:256,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:258,1
    - Dst: complete
      Src: /src/libtorrent/test/test_file.cpp:258,1
    - Dst: current_working_directory
      Src: /src/libtorrent/test/test_file.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 260
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - current_working_directory
    - combine_path
    - remove_extension
    - extension
    - parent_path
    - is_complete
    - path_equal
    - has_parent_path
    - is_root_path
    - complete
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(paths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:264,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:264,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:267,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:267,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:268,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:268,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:273,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:273,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:274,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:274,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:276,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:276,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:277,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:277,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:278,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:278,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:279,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:279,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:280,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:281,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:281,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:282,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:283,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:283,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:284,1
    - Dst: path_compare
      Src: /src/libtorrent/test/test_file.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 285
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - path_compare
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(path_compare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:290,1
    - Dst: filename
      Src: /src/libtorrent/test/test_file.cpp:290,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:291,1
    - Dst: filename
      Src: /src/libtorrent/test/test_file.cpp:291,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:292,1
    - Dst: filename
      Src: /src/libtorrent/test/test_file.cpp:292,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:293,1
    - Dst: filename
      Src: /src/libtorrent/test/test_file.cpp:293,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:295,1
    - Dst: filename
      Src: /src/libtorrent/test/test_file.cpp:295,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:296,1
    - Dst: filename
      Src: /src/libtorrent/test/test_file.cpp:296,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:297,1
    - Dst: filename
      Src: /src/libtorrent/test/test_file.cpp:297,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:298,1
    - Dst: filename
      Src: /src/libtorrent/test/test_file.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - filename
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:306,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:306,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:306,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:307,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:307,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:307,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:308,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:308,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:308,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:309,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:309,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:309,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:311,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:311,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:311,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:312,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:312,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:312,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:314,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:314,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:314,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:315,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:315,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:315,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:316,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:316,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:316,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:317,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:317,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:317,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:318,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:318,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:318,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:320,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:320,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:320,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:321,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:321,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:321,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:323,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:323,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:323,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:324,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:324,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:324,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:325,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:325,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:325,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:326,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:326,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:326,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:328,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:328,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:328,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:329,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:329,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:329,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:330,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:330,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:330,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:331,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:331,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:331,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:332,1
    - Dst: rsplit_path
      Src: /src/libtorrent/test/test_file.cpp:332,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 333
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - r
    - lsplit_path
    - rsplit_path
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(split_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:340,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:340,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:340,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:341,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:341,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:341,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:342,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:342,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:342,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:343,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:343,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:343,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:344,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:344,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:344,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:345,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:345,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:345,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:346,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:346,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:346,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:348,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:348,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:348,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:349,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:349,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:349,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:350,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:350,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:350,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:351,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:351,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:351,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:352,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:352,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:352,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:353,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:353,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:353,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:355,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:355,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:355,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:356,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:356,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:356,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:357,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:357,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:357,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:358,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:358,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:358,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:359,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:359,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:359,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:360,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:360,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:360,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:361,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:361,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:361,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:363,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:363,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:363,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:364,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:364,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:364,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:365,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:365,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:365,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:366,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:366,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:366,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:367,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:367,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:367,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:368,1
    - Dst: lsplit_path
      Src: /src/libtorrent/test/test_file.cpp:368,1
    - Dst: r
      Src: /src/libtorrent/test/test_file.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 369
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - r
    - lsplit_path
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(split_path_pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ofstream
      Src: /src/libtorrent/test/test_file.cpp:379,1
    - Dst: lt::span::data
      Src: /src/libtorrent/test/test_file.cpp:379,1
    - Dst: lt::span::size
      Src: /src/libtorrent/test/test_file.cpp:379,1
    - Dst: hard_link
      Src: /src/libtorrent/test/test_file.cpp:382,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:385,1
    - Dst: error_code::category
      Src: /src/libtorrent/test/test_file.cpp:385,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:385,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:386,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:386,1
    - Dst: std::ifstream
      Src: /src/libtorrent/test/test_file.cpp:390,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:391,1
    - Dst: remove
      Src: /src/libtorrent/test/test_file.cpp:393,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:395,1
    - Dst: error_code::category
      Src: /src/libtorrent/test/test_file.cpp:395,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:395,1
    - Dst: remove
      Src: /src/libtorrent/test/test_file.cpp:397,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:399,1
    - Dst: error_code::category
      Src: /src/libtorrent/test/test_file.cpp:399,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 400
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - ofstream
    - std::ifstream
    - error_code::category
    - lt::span::size
    - lt::span::data
    - error_code::message
    - remove
    - hard_link
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hard_link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat_file
      Src: /src/libtorrent/test/test_file.cpp:406,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:407,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 409
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - stat_file
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stat_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:418,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:418,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:421,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:421,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:424,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:424,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:427,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:427,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:430,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:430,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:433,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:433,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:436,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:436,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:439,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:439,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:442,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:442,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:445,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:445,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:448,1
    - Dst: lexically_relative
      Src: /src/libtorrent/test/test_file.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 449
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lexically_relative
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(relative_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetVolumeInformation
      Src: /src/libtorrent/test/test_file.cpp:460,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:465,1
    - Dst: error_code::category
      Src: /src/libtorrent/test/test_file.cpp:466,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_file.cpp:466,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:466,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file.cpp:470,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file.cpp:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 474
    functionName: current_directory_caps
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - GetVolumeInformation
    - error_code::category
    - error_code::message
    - std::make_tuple
    - std::printf
    linkageType: ''
    returnType: std::tuple<int, bool>
    signature: std::tuple<int, bool> current_directory_caps()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetVolumeInformation
      Src: /src/libtorrent/test/test_file.cpp:460,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_file.cpp:465,1
    - Dst: error_code::category
      Src: /src/libtorrent/test/test_file.cpp:466,1
    - Dst: error_code::value
      Src: /src/libtorrent/test/test_file.cpp:466,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:466,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file.cpp:470,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/test/test_file.cpp:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 474
    functionName: current_directory_caps
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - error_code::value
    - GetVolumeInformation
    - error_code::category
    - error_code::message
    - std::make_tuple
    - std::printf
    linkageType: ''
    returnType: std::tuple<int, bool>
    signature: std::tuple<int, bool> current_directory_caps()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:480,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/test/test_file.cpp:480,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:481,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/test/test_file.cpp:481,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:482,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/test/test_file.cpp:482,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:483,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/test/test_file.cpp:483,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:484,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/test/test_file.cpp:484,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:485,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/test/test_file.cpp:485,1
    - Dst: touch_file
      Src: /src/libtorrent/test/test_file.cpp:501,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:502,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:502,1
    - Dst: test_remove
      Src: /src/libtorrent/test/test_file.cpp:503,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:504,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:504,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:505,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:505,1
    - Dst: std::tie
      Src: /src/libtorrent/test/test_file.cpp:510,1
    - Dst: current_directory_caps
      Src: /src/libtorrent/test/test_file.cpp:510,1
    - Dst: std::string::resize
      Src: /src/libtorrent/test/test_file.cpp:517,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/test/test_file.cpp:519,1
    - Dst: combine_path
      Src: /src/libtorrent/test/test_file.cpp:521,1
    - Dst: std::string::back
      Src: /src/libtorrent/test/test_file.cpp:522,1
    - Dst: std::string::back
      Src: /src/libtorrent/test/test_file.cpp:524,1
    - Dst: libtorrent::create_directory
      Src: /src/libtorrent/test/test_file.cpp:526,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:527,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:527,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:530,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_file.cpp:531,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:533,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:533,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:534,1
    - Dst: libtorrent::is_directory
      Src: /src/libtorrent/test/test_file.cpp:534,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:535,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:535,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:538,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_file.cpp:539,1
    - Dst: touch_file
      Src: /src/libtorrent/test/test_file.cpp:542,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:543,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:543,1
    - Dst: test_rename
      Src: /src/libtorrent/test/test_file.cpp:545,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:546,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:546,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:549,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_file.cpp:550,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:552,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:552,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:553,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:553,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/test/test_file.cpp:556,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:557,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:557,1
    - Dst: lt::storage_error::ec::message
      Src: /src/libtorrent/test/test_file.cpp:560,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_file.cpp:561,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:563,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:563,1
    - Dst: lt::aux::directory::done
      Src: /src/libtorrent/test/test_file.cpp:567,1
    - Dst: lt::aux::directory::next
      Src: /src/libtorrent/test/test_file.cpp:567,1
    - Dst: lt::aux::directory::file
      Src: /src/libtorrent/test/test_file.cpp:569,1
    - Dst: std::set::insert
      Src: /src/libtorrent/test/test_file.cpp:570,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:573,1
    - Dst: std::set::size
      Src: /src/libtorrent/test/test_file.cpp:573,1
    - Dst: test_remove
      Src: /src/libtorrent/test/test_file.cpp:575,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:576,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:576,1
    - Dst: error_code::message
      Src: /src/libtorrent/test/test_file.cpp:579,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/test/test_file.cpp:580,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:582,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:582,1
    - Dst: libtorrent::hard_link
      Src: /src/libtorrent/test/test_file.cpp:586,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:587,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:587,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:588,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:588,1
    - Dst: test_remove
      Src: /src/libtorrent/test/test_file.cpp:590,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_file.cpp:591,1
    - Dst: error_code
      Src: /src/libtorrent/test/test_file.cpp:591,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:592,1
    - Dst: exists
      Src: /src/libtorrent/test/test_file.cpp:592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 594
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - lt::aux::directory::file
    - static_cast<char>
    - lt::aux::directory::next
    - test_rename
    - error_code::message
    - test_remove
    - std::set::size
    - lt::aux::directory::done
    - touch_file
    - TEST_EQUAL
    - lt::storage_error::ec::message
    - libtorrent::create_directory
    - current_directory_caps
    - libtorrent::hard_link
    - canonicalize_path
    - std::string::resize
    - convert_to_native_path_string
    - std::string::back
    - TEST_CHECK
    - std::tie
    - combine_path
    - error_code
    - libtorrent::is_directory
    - exists
    - libtorrent::aux::copy_file
    - std::set::insert
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unc_tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:602,1
    - Dst: remove
      Src: /src/libtorrent/test/test_file.cpp:604,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 606
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - remove
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unc_paths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:612,1
    - Dst: libtorrent::aux::to_file_open_mode
      Src: /src/libtorrent/test/test_file.cpp:612,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:613,1
    - Dst: libtorrent::aux::to_file_open_mode
      Src: /src/libtorrent/test/test_file.cpp:613,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:614,1
    - Dst: libtorrent::aux::to_file_open_mode
      Src: /src/libtorrent/test/test_file.cpp:614,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:615,1
    - Dst: libtorrent::aux::to_file_open_mode
      Src: /src/libtorrent/test/test_file.cpp:615,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_file.cpp:616,1
    - Dst: libtorrent::aux::to_file_open_mode
      Src: /src/libtorrent/test/test_file.cpp:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 617
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_file_open_mode
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(to_file_open_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - n
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: test_node
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_node(char n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iterate
      Src: /src/libtorrent/test/test_tailqueue.cpp:49,1
    - Dst: tailqueue_iterator::get
      Src: /src/libtorrent/test/test_tailqueue.cpp:51,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:53,1
    - Dst: static_cast<test_node*>
      Src: /src/libtorrent/test/test_tailqueue.cpp:53,1
    - Dst: tailqueue_iterator::get
      Src: /src/libtorrent/test/test_tailqueue.cpp:53,1
    - Dst: tailqueue_iterator::next
      Src: /src/libtorrent/test/test_tailqueue.cpp:54,1
    - Dst: empty
      Src: /src/libtorrent/test/test_tailqueue.cpp:57,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tailqueue.cpp:59,1
    - Dst: last
      Src: /src/libtorrent/test/test_tailqueue.cpp:59,1
    - Dst: last
      Src: /src/libtorrent/test/test_tailqueue.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' chain'
    - expected
    argTypes:
    - tailqueue<test_node>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: check_chain
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - iterate
    - empty
    - last
    - static_cast<test_node*>
    - tailqueue_iterator::next
    - tailqueue_iterator::get
    linkageType: ''
    returnType: void
    signature: void check_chain(tailqueue<test_node>& chain, char const* expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<test_node*>
      Src: /src/libtorrent/test/test_tailqueue.cpp:66,1
    - Dst: get_all
      Src: /src/libtorrent/test/test_tailqueue.cpp:66,1
    - Dst: static_cast<test_node*>
      Src: /src/libtorrent/test/test_tailqueue.cpp:69,1
    - Dst: static_cast<test_node*>
      Src: /src/libtorrent/test/test_tailqueue.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' q'
    argTypes:
    - tailqueue<test_node>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: free_chain
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 0
    functionsReached:
    - get_all
    - static_cast<test_node*>
    linkageType: ''
    returnType: void
    signature: void free_chain(tailqueue<test_node>& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:77,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_tailqueue.cpp:83,1
    - Dst: test_node::test_node
      Src: /src/libtorrent/test/test_tailqueue.cpp:83,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' q'
    - str
    argTypes:
    - tailqueue<test_node>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: build_chain
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - test_node::test_node
    - free_chain
    - check_chain
    linkageType: ''
    returnType: void
    signature: void build_chain(tailqueue<test_node>& q, char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - n
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: test_node
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_node(char n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iterate
      Src: /src/libtorrent/test/test_tailqueue.cpp:49,1
    - Dst: tailqueue_iterator::get
      Src: /src/libtorrent/test/test_tailqueue.cpp:51,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:53,1
    - Dst: static_cast<test_node*>
      Src: /src/libtorrent/test/test_tailqueue.cpp:53,1
    - Dst: tailqueue_iterator::get
      Src: /src/libtorrent/test/test_tailqueue.cpp:53,1
    - Dst: tailqueue_iterator::next
      Src: /src/libtorrent/test/test_tailqueue.cpp:54,1
    - Dst: empty
      Src: /src/libtorrent/test/test_tailqueue.cpp:57,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_tailqueue.cpp:59,1
    - Dst: last
      Src: /src/libtorrent/test/test_tailqueue.cpp:59,1
    - Dst: last
      Src: /src/libtorrent/test/test_tailqueue.cpp:59,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' chain'
    - expected
    argTypes:
    - tailqueue<test_node>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: check_chain
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 1
    functionsReached:
    - TEST_EQUAL
    - TEST_CHECK
    - iterate
    - empty
    - last
    - static_cast<test_node*>
    - tailqueue_iterator::next
    - tailqueue_iterator::get
    linkageType: ''
    returnType: void
    signature: void check_chain(tailqueue<test_node>& chain, char const* expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<test_node*>
      Src: /src/libtorrent/test/test_tailqueue.cpp:66,1
    - Dst: get_all
      Src: /src/libtorrent/test/test_tailqueue.cpp:66,1
    - Dst: static_cast<test_node*>
      Src: /src/libtorrent/test/test_tailqueue.cpp:69,1
    - Dst: static_cast<test_node*>
      Src: /src/libtorrent/test/test_tailqueue.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' q'
    argTypes:
    - tailqueue<test_node>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: free_chain
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 1
    functionsReached:
    - get_all
    - static_cast<test_node*>
    linkageType: ''
    returnType: void
    signature: void free_chain(tailqueue<test_node>& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:77,1
    - Dst: push_back
      Src: /src/libtorrent/test/test_tailqueue.cpp:83,1
    - Dst: test_node::test_node
      Src: /src/libtorrent/test/test_tailqueue.cpp:83,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' q'
    - str
    argTypes:
    - tailqueue<test_node>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: build_chain
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - test_node::test_node
    - free_chain
    - check_chain
    linkageType: ''
    returnType: void
    signature: void build_chain(tailqueue<test_node>& q, char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:97,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:98,1
    - Dst: tailqueue::prepend
      Src: /src/libtorrent/test/test_tailqueue.cpp:100,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_tailqueue.cpp:100,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:101,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:102,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:105,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:106,1
    - Dst: tailqueue::append
      Src: /src/libtorrent/test/test_tailqueue.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/test/test_tailqueue.cpp:108,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:109,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:110,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:113,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:114,1
    - Dst: tailqueue::swap
      Src: /src/libtorrent/test/test_tailqueue.cpp:116,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:118,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:119,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:122,1
    - Dst: tailqueue::pop_front
      Src: /src/libtorrent/test/test_tailqueue.cpp:124,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:126,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:130,1
    - Dst: tailqueue::push_back
      Src: /src/libtorrent/test/test_tailqueue.cpp:131,1
    - Dst: test_node::test_node
      Src: /src/libtorrent/test/test_tailqueue.cpp:131,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:132,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:136,1
    - Dst: tailqueue::push_front
      Src: /src/libtorrent/test/test_tailqueue.cpp:137,1
    - Dst: test_node::test_node
      Src: /src/libtorrent/test/test_tailqueue.cpp:137,1
    - Dst: check_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:138,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:142,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:143,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_tailqueue.cpp:143,1
    - Dst: free_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:148,1
    - Dst: tailqueue::empty
      Src: /src/libtorrent/test/test_tailqueue.cpp:148,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:149,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:150,1
    - Dst: tailqueue::empty
      Src: /src/libtorrent/test/test_tailqueue.cpp:150,1
    - Dst: build_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:153,1
    - Dst: tailqueue::get_all
      Src: /src/libtorrent/test/test_tailqueue.cpp:154,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:155,1
    - Dst: tailqueue::empty
      Src: /src/libtorrent/test/test_tailqueue.cpp:155,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:156,1
    - Dst: tailqueue::size
      Src: /src/libtorrent/test/test_tailqueue.cpp:156,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_tailqueue.cpp:162,1
    - Dst: free_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:168,1
    - Dst: free_chain
      Src: /src/libtorrent/test/test_tailqueue.cpp:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 170
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_tailqueue.cpp
    functionUses: 0
    functionsReached:
    - tailqueue::swap
    - TEST_EQUAL
    - std::move
    - tailqueue::append
    - tailqueue::size
    - test_node::test_node
    - tailqueue::push_front
    - check_chain
    - tailqueue::pop_front
    - tailqueue::empty
    - tailqueue::prepend
    - tailqueue::push_back
    - tailqueue::get_all
    - build_chain
    - free_chain
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tailqueue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acquire
      Src: /src/libtorrent/test/test_packet_buffer.cpp:47,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/test/test_packet_buffer.cpp:48,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_packet_buffer.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pool'
    - val
    argTypes:
    - packet_pool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: make_pkt
    functionSourceFile: /src/libtorrent/test/test_packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - acquire
    - reinterpret_cast<std::uint8_t*>
    - std::uint8_t
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr make_pkt(packet_pool& pool, int const val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_packet_buffer.cpp:54,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/test/test_packet_buffer.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: get_val
    functionSourceFile: /src/libtorrent/test/test_packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: int
    signature: int get_val(packet* pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acquire
      Src: /src/libtorrent/test/test_packet_buffer.cpp:47,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/test/test_packet_buffer.cpp:48,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_packet_buffer.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pool'
    - val
    argTypes:
    - packet_pool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: make_pkt
    functionSourceFile: /src/libtorrent/test/test_packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - acquire
    - reinterpret_cast<std::uint8_t*>
    - std::uint8_t
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr make_pkt(packet_pool& pool, int const val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/test/test_packet_buffer.cpp:54,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/test/test_packet_buffer.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: get_val
    functionSourceFile: /src/libtorrent/test/test_packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: int
    signature: int get_val(packet* pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:66,1
    - Dst: packet_buffer::capacity
      Src: /src/libtorrent/test/test_packet_buffer.cpp:66,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:67,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:67,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:68,1
    - Dst: packet_buffer::span
      Src: /src/libtorrent/test/test_packet_buffer.cpp:68,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:70,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:70,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_packet_buffer.cpp:71,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:71,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:73,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:73,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:73,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_packet_buffer.cpp:74,1
    - Dst: packet_buffer::capacity
      Src: /src/libtorrent/test/test_packet_buffer.cpp:74,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:75,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:75,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:76,1
    - Dst: packet_buffer::span
      Src: /src/libtorrent/test/test_packet_buffer.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:77,1
    - Dst: packet_buffer::cursor
      Src: /src/libtorrent/test/test_packet_buffer.cpp:77,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:79,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:79,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:81,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:81,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:81,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:82,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:82,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:83,1
    - Dst: packet_buffer::span
      Src: /src/libtorrent/test/test_packet_buffer.cpp:83,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:84,1
    - Dst: packet_buffer::cursor
      Src: /src/libtorrent/test/test_packet_buffer.cpp:84,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:86,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:86,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:87,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:87,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:88,1
    - Dst: packet_buffer::span
      Src: /src/libtorrent/test/test_packet_buffer.cpp:88,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:89,1
    - Dst: packet_buffer::capacity
      Src: /src/libtorrent/test/test_packet_buffer.cpp:89,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:91,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:91,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:92,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:92,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:93,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:93,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:93,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:93,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:94,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:96,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:96,1
    - Dst: packet_buffer::remove
      Src: /src/libtorrent/test/test_packet_buffer.cpp:96,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:97,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:97,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:98,1
    - Dst: packet_buffer::span
      Src: /src/libtorrent/test/test_packet_buffer.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:99,1
    - Dst: packet_buffer::cursor
      Src: /src/libtorrent/test/test_packet_buffer.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:100,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:100,1
    - Dst: packet_buffer::remove
      Src: /src/libtorrent/test/test_packet_buffer.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:101,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:101,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:102,1
    - Dst: packet_buffer::span
      Src: /src/libtorrent/test/test_packet_buffer.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:103,1
    - Dst: packet_buffer::cursor
      Src: /src/libtorrent/test/test_packet_buffer.cpp:103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:105,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:105,1
    - Dst: packet_buffer::remove
      Src: /src/libtorrent/test/test_packet_buffer.cpp:105,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:106,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:106,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:107,1
    - Dst: packet_buffer::span
      Src: /src/libtorrent/test/test_packet_buffer.cpp:107,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:112,1
    - Dst: packet_buffer::index_type
      Src: /src/libtorrent/test/test_packet_buffer.cpp:112,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:112,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_packet_buffer.cpp:113,1
    - Dst: packet_buffer::capacity
      Src: /src/libtorrent/test/test_packet_buffer.cpp:113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:114,1
    - Dst: packet_buffer::capacity
      Src: /src/libtorrent/test/test_packet_buffer.cpp:114,1
    - Dst: std::printf
      Src: /src/libtorrent/test/test_packet_buffer.cpp:118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:119,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:119,1
    - Dst: packet_buffer::remove
      Src: /src/libtorrent/test/test_packet_buffer.cpp:119,1
    - Dst: packet_buffer::index_type
      Src: /src/libtorrent/test/test_packet_buffer.cpp:119,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/test/test_packet_buffer.cpp:119,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:120,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 123
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - packet_buffer::size
    - packet_buffer::capacity
    - packet_buffer::at
    - get_val
    - packet_buffer::index_type
    - std::uint8_t
    - packet_buffer::cursor
    - packet_buffer::span
    - make_pkt
    - packet_buffer::remove
    - packet_buffer::insert
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(insert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:131,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:131,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:133,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:133,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:134,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:134,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:134,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:136,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:137,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:137,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:137,1
    - Dst: packet_buffer::remove
      Src: /src/libtorrent/test/test_packet_buffer.cpp:139,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_packet_buffer.cpp:140,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:140,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:141,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:141,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - packet_buffer::size
    - get_val
    - packet_buffer::at
    - packet_buffer::remove
    - make_pkt
    - packet_buffer::insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(wrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:150,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:150,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:152,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:152,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:153,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:153,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:153,1
    - Dst: packet_buffer::index_type
      Src: /src/libtorrent/test/test_packet_buffer.cpp:155,1
    - Dst: packet_buffer::capacity
      Src: /src/libtorrent/test/test_packet_buffer.cpp:155,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:156,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:156,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:157,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:157,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:157,1
    - Dst: packet_buffer::remove
      Src: /src/libtorrent/test/test_packet_buffer.cpp:159,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_packet_buffer.cpp:160,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:160,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/test/test_packet_buffer.cpp:160,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_packet_buffer.cpp:161,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:161,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:162,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:162,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - packet_buffer::size
    - get_val
    - packet_buffer::at
    - packet_buffer::index_type
    - packet_buffer::capacity
    - packet_ptr::get
    - packet_buffer::remove
    - make_pkt
    - packet_buffer::insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(wrap2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:171,1
    - Dst: packet_buffer::size
      Src: /src/libtorrent/test/test_packet_buffer.cpp:171,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:173,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:174,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:174,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:174,1
    - Dst: packet_buffer::index_type
      Src: /src/libtorrent/test/test_packet_buffer.cpp:176,1
    - Dst: packet_buffer::capacity
      Src: /src/libtorrent/test/test_packet_buffer.cpp:176,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:177,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:177,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:178,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:178,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:178,1
    - Dst: packet_buffer::remove
      Src: /src/libtorrent/test/test_packet_buffer.cpp:180,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_packet_buffer.cpp:181,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:181,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/test/test_packet_buffer.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/test/test_packet_buffer.cpp:182,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:182,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/test/test_packet_buffer.cpp:183,1
    - Dst: get_val
      Src: /src/libtorrent/test/test_packet_buffer.cpp:183,1
    - Dst: packet_buffer::at
      Src: /src/libtorrent/test/test_packet_buffer.cpp:183,1
    - Dst: packet_buffer::insert
      Src: /src/libtorrent/test/test_packet_buffer.cpp:185,1
    - Dst: make_pkt
      Src: /src/libtorrent/test/test_packet_buffer.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 186
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/test/test_packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - packet_buffer::size
    - get_val
    - packet_buffer::at
    - packet_buffer::index_type
    - packet_buffer::capacity
    - packet_ptr::get
    - packet_buffer::remove
    - make_pkt
    - packet_buffer::insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(reverse_wrap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ::FindFirstFile
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:71,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:71,1
    - Dst: ::DeleteFile
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:74,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:74,1
    - Dst: remove_all
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:82,1
    - Dst: FindNextFile
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:84,1
    - Dst: FindClose
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:85,1
    - Dst: RemoveDirectory
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:86,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:86,1
    - Dst: ::opendir
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:88,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:88,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:91,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:91,1
    - Dst: ::readdir
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:95,1
    - Dst: remove_all
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:100,1
    - Dst: ::readdir
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:102,1
    - Dst: ::closedir
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:104,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:105,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 107
    functionName: remove_all
    functionSourceFile: /src/libtorrent/tools/disk_io_stress_test.cpp
    functionUses: 48
    functionsReached:
    - RemoveDirectory
    - remove_all
    - ::DeleteFile
    - FindClose
    - libtorrent::aux::packet_buffer::remove
    - std::string::c_str
    - ::closedir
    - ::FindFirstFile
    - ::readdir
    - FindNextFile
    - ::opendir
    linkageType: ''
    returnType: void
    signature: void remove_all(std::string path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:111,1
    - Dst: lt::span<char const>::size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:113,1
    - Dst: lt::span<char const>::size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:114,1
    - Dst: std::memcmp
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:115,1
    - Dst: lt::span<char const>::data
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:115,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:115,1
    - Dst: std::memcmp
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:121,1
    - Dst: lt::span<char const>::data
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:121,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' req'
    - buf
    argTypes:
    - lt::peer_request
    - lt::span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: check_block_fill
    functionSourceFile: /src/libtorrent/tools/disk_io_stress_test.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::memcmp
    - lt::span<char const>::data
    - lt::span<char const>::size
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: bool
    signature: bool check_block_fill(lt::peer_request const& req, lt::span<char const>
      buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:131,1
    - Dst: lt::span<char>::size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:133,1
    - Dst: lt::span<char>::size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:134,1
    - Dst: std::memcpy
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:135,1
    - Dst: lt::span<char>::data
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:135,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:135,1
    - Dst: std::memcpy
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:137,1
    - Dst: lt::span<char>::data
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:137,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' req'
    - buf
    argTypes:
    - lt::peer_request
    - lt::span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: generate_block_fill
    functionSourceFile: /src/libtorrent/tools/disk_io_stress_test.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::memcpy
    - lt::span<char>::data
    - lt::span<char>::size
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void generate_block_fill(lt::peer_request const& req, lt::span<char>
      buf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:163,1
    - Dst: to_string
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:163,1
    - Dst: lt::file_storage::total_size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:166,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:167,1
    - Dst: lt::file_storage::set_num_pieces
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:168,1
    - Dst: lt::file_storage::set_piece_length
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:169,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:174,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:175,1
    - Dst: lt::default_disk_io_constructor
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:178,1
    - Dst: remove_all
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:195,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:205,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:207,1
    - Dst: std::unique_ptr::abort
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:207,1
    - Dst: std::unique_ptr::new_torrent
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:209,1
    - Dst: lt::file_storage::piece_range
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:212,1
    - Dst: lt::file_storage::piece_size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:214,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:219,1
    - Dst: std::min
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:220,1
    - Dst: std::shuffle
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:223,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:223,1
    - Dst: std::vector::end
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:223,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:226,1
    - Dst: std::vector::size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:226,1
    - Dst: std::unique_ptr::async_check_files
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:234,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:237,1
    - Dst: lt::io_context::run_one
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:241,1
    - Dst: lt::io_context::restart
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:242,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:247,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:248,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:253,1
    - Dst: std::vector::back
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:255,1
    - Dst: std::vector::erase
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:256,1
    - Dst: std::vector::end
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:256,1
    - Dst: std::unique_ptr::async_read
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:258,1
    - Dst: ec::message
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:264,1
    - Dst: libtorrent::operation_name
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:265,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:266,1
    - Dst: file
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:266,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:267,1
    - Dst: std::min
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:270,1
    - Dst: lt::file_storage::piece_size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:270,1
    - Dst: size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:270,1
    - Dst: check_block_fill
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:271,1
    - Dst: data
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:271,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:274,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:282,1
    - Dst: std::vector::back
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:284,1
    - Dst: std::vector::erase
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:285,1
    - Dst: std::vector::end
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:285,1
    - Dst: generate_block_fill
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:287,1
    - Dst: std::vector::data
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:287,1
    - Dst: std::unique_ptr::async_write
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:289,1
    - Dst: std::vector::data
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:289,1
    - Dst: ec::message
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:296,1
    - Dst: libtorrent::operation_name
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:297,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:298,1
    - Dst: file
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:298,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:299,1
    - Dst: std::vector::size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:304,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:305,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:305,1
    - Dst: d
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:305,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:309,1
    - Dst: std::vector::size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:315,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:316,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:316,1
    - Dst: d
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:316,1
    - Dst: std::unique_ptr::async_release_files
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:324,1
    - Dst: std::vector::front
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:334,1
    - Dst: std::unique_ptr::async_clear_piece
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:335,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:352,1
    - Dst: lt::io_context::run_one
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:354,1
    - Dst: lt::io_context::poll
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:356,1
    - Dst: lt::io_context::restart
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:357,1
    - Dst: what
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:365,1
    - Dst: lt::file_storage::piece_length
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:367,1
    - Dst: lt::file_storage::file_range
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:368,1
    - Dst: lt::file_storage::file_offset
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:370,1
    - Dst: std::setw
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:371,1
    - Dst: std::setw
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:372,1
    - Dst: lt::file_storage::file_size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:372,1
    - Dst: lt::file_storage::total_size
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:376,1
    - Dst: lt::file_storage::num_pieces
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:377,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 100
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - test_case
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 383
    functionName: run_test
    functionSourceFile: /src/libtorrent/tools/disk_io_stress_test.cpp
    functionUses: 18
    functionsReached:
    - static_cast<int>
    - to_string
    - std::unique_ptr::async_write
    - std::vector::size
    - lt::file_storage::file_offset
    - std::vector::front
    - std::vector::begin
    - std::min
    - bind_sha1_hash
    - std::vector::reserve
    - std::runtime_error
    - std::unique_ptr::async_check_files
    - generate_block_fill
    - lt::file_storage::file_range
    - std::vector::end
    - check_block_fill
    - std::unique_ptr::new_torrent
    - data
    - std::unique_ptr::submit_jobs
    - lt::file_storage::set_piece_length
    - libtorrent::operation_name
    - lt::default_disk_io_constructor
    - libtorrent::aux::scope_end
    - lt::io_context::restart
    - lt::io_context::run_one
    - file
    - lt::file_storage::set_num_pieces
    - std::setw
    - lt::file_storage::add_file
    - lt::file_storage::file_size
    - std::unique_ptr::abort
    - lt::file_storage::total_size
    - std::vector::back
    - lt::file_storage::piece_size
    - std::unique_ptr::async_clear_piece
    - lt::file_storage::piece_length
    - std::vector::insert
    - lt::io_context::poll
    - std::unique_ptr::async_read
    - size
    - std::vector::erase
    - std::vector::data
    - lt::file_storage::num_pieces
    - remove_all
    - std::vector::push_back
    - lt::settings_pack::set_int
    - std::vector::empty
    - d
    - ec::message
    - lt::file_storage::piece_range
    - std::shuffle
    - std::unique_ptr::async_release_files
    - what
    linkageType: ''
    returnType: int
    signature: int run_test(test_case const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 414
    functionName: print_usage
    functionSourceFile: /src/libtorrent/tools/disk_io_stress_test.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_usage()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:440,1
    - Dst: print_usage
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:455,1
    - Dst: lt::string_view::substr
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:459,1
    - Dst: print_usage
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:464,1
    - Dst: std::atoi
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:468,1
    - Dst: std::atoi
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:470,1
    - Dst: std::atoi
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:472,1
    - Dst: std::atoi
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:474,1
    - Dst: std::atoi
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:476,1
    - Dst: print_usage
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:480,1
    - Dst: print_usage
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:500,1
    - Dst: run_test
      Src: /src/libtorrent/tools/disk_io_stress_test.cpp:508,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 509
    functionName: main
    functionSourceFile: /src/libtorrent/tools/disk_io_stress_test.cpp
    functionUses: 0
    functionsReached:
    - lt::string_view::substr
    - run_test
    - std::atoi
    - print_usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char const* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - std::fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/tools/dht_put.cpp:78,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/tools/dht_put.cpp:78,1
    - Dst: static_cast<char const*>
      Src: /src/libtorrent/tools/dht_put.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - lt::span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: to_hex
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 38
    functionsReached:
    - std::snprintf
    - static_cast<unsigned char>
    - static_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string to_hex(lt::span<char const> key)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: hex_to_int
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_to_int(char in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/tools/dht_put.cpp:94,1
    - Dst: span<char>::size
      Src: /src/libtorrent/tools/dht_put.cpp:94,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/tools/dht_put.cpp:95,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/tools/dht_put.cpp:96,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/tools/dht_put.cpp:96,1
    - Dst: hex_to_int
      Src: /src/libtorrent/tools/dht_put.cpp:98,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/tools/dht_put.cpp:101,1
    - Dst: hex_to_int
      Src: /src/libtorrent/tools/dht_put.cpp:102,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/tools/dht_put.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: from_hex
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 17
    functionsReached:
    - span<char>::begin
    - span<char const>::end
    - span<char const>::begin
    - hex_to_int
    - static_cast<char>
    - span<char const>::size
    - span<char>::size
    linkageType: ''
    returnType: bool
    signature: bool from_hex(span<char const> in, span<char> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:111,1
    - Dst: exit
      Src: /src/libtorrent/tools/dht_put.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 133
    functionName: usage
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 2
    functionsReached:
    - exit
    - std::fprintf
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_alert
      Src: /src/libtorrent/tools/dht_put.cpp:140,1
    - Dst: seconds
      Src: /src/libtorrent/tools/dht_put.cpp:140,1
    - Dst: pop_alerts
      Src: /src/libtorrent/tools/dht_put.cpp:143,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:150,1
    - Dst: std::fflush
      Src: /src/libtorrent/tools/dht_put.cpp:151,1
    - Dst: type
      Src: /src/libtorrent/tools/dht_put.cpp:154,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:155,1
    - Dst: message
      Src: /src/libtorrent/tools/dht_put.cpp:155,1
    - Dst: type
      Src: /src/libtorrent/tools/dht_put.cpp:156,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:157,1
    - Dst: message
      Src: /src/libtorrent/tools/dht_put.cpp:157,1
    - Dst: type
      Src: /src/libtorrent/tools/dht_put.cpp:158,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:159,1
    - Dst: message
      Src: /src/libtorrent/tools/dht_put.cpp:159,1
    - Dst: type
      Src: /src/libtorrent/tools/dht_put.cpp:160,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - ' s'
    - alert_type
    argTypes:
    - lt::session
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 166
    functionName: wait_for_alert
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 78
    functionsReached:
    - seconds
    - message
    - wait_for_alert
    - type
    - std::fflush
    - std::printf
    - pop_alerts
    linkageType: ''
    returnType: alert
    signature: alert * wait_for_alert(lt::session& s, int alert_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/tools/dht_put.cpp:177,1
    - Dst: bencode
      Src: /src/libtorrent/tools/dht_put.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/tools/dht_put.cpp:179,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/tools/dht_put.cpp:182,1
    - Dst: libtorrent::dht::sequence_number
      Src: /src/libtorrent/tools/dht_put.cpp:182,1
    - Dst: libtorrent::dht::public_key
      Src: /src/libtorrent/tools/dht_put.cpp:183,1
    - Dst: data
      Src: /src/libtorrent/tools/dht_put.cpp:183,1
    - Dst: libtorrent::dht::secret_key
      Src: /src/libtorrent/tools/dht_put.cpp:184,1
    - Dst: data
      Src: /src/libtorrent/tools/dht_put.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - ' e'
    - ' sig'
    - ' seq'
    - ' salt'
    - ' pk'
    - ' sk'
    - str
    argTypes:
    - entry
    - std::array<char, 64>
    - std::int64_t
    - std::string
    - std::array<char, 32>
    - std::array<char, 64>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: put_string
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::sequence_number
    - libtorrent::dht::secret_key
    - std::string
    - libtorrent::dht::public_key
    - std::back_inserter
    - sign_mutable_item
    - bencode
    - data
    linkageType: ''
    returnType: void
    signature: "void put_string(entry& e, std::array<char, 64>& sig\n\t, std::int64_t&
      seq\n\t, std::string const& salt\n\t, std::array<char, 32> const& pk\n\t, std::array<char,
      64> const& sk\n\t, char const* str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:190,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/tools/dht_put.cpp:191,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: bootstrap
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 8
    functionsReached:
    - wait_for_alert
    - std::printf
    linkageType: ''
    returnType: void
    signature: void bootstrap(lt::session& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fstream::read
      Src: /src/libtorrent/tools/dht_put.cpp:200,1
    - Dst: std::array::data
      Src: /src/libtorrent/tools/dht_put.cpp:200,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/dht_put.cpp:200,1
    - Dst: std::fstream::fail
      Src: /src/libtorrent/tools/dht_put.cpp:201,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:203,1
    - Dst: std::tie
      Src: /src/libtorrent/tools/dht_put.cpp:209,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/tools/dht_put.cpp:209,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:211,1
    - Dst: to_hex
      Src: /src/libtorrent/tools/dht_put.cpp:212,1
    - Dst: to_hex
      Src: /src/libtorrent/tools/dht_put.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 216
    functionName: dump_key
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - std::array::data
    - std::tie
    - to_hex
    - ed25519_create_keypair
    - std::fprintf
    - std::fstream::read
    - std::fstream::fail
    - std::printf
    linkageType: ''
    returnType: int
    signature: int dump_key(char const* filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/tools/dht_put.cpp:220,1
    - Dst: std::fstream::write
      Src: /src/libtorrent/tools/dht_put.cpp:223,1
    - Dst: std::array::data
      Src: /src/libtorrent/tools/dht_put.cpp:223,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/dht_put.cpp:223,1
    - Dst: std::fstream::fail
      Src: /src/libtorrent/tools/dht_put.cpp:224,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: generate_key
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ed25519_create_seed
    - std::array::data
    - std::fstream::write
    - std::fprintf
    - std::fstream::fail
    linkageType: ''
    returnType: int
    signature: int generate_key(char const* filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fstream::unsetf
      Src: /src/libtorrent/tools/dht_put.cpp:236,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:237,1
    - Dst: std::fstream::bad
      Src: /src/libtorrent/tools/dht_put.cpp:241,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/tools/dht_put.cpp:241,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:243,1
    - Dst: read_session_params
      Src: /src/libtorrent/tools/dht_put.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: load_dht_state
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - read_session_params
    - std::vector::empty
    - std::fstream::bad
    - std::fprintf
    - std::fstream::unsetf
    - std::printf
    linkageType: ''
    returnType: lt::session_params
    signature: lt::session_params load_dht_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/tools/dht_put.cpp:78,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/tools/dht_put.cpp:78,1
    - Dst: static_cast<char const*>
      Src: /src/libtorrent/tools/dht_put.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - lt::span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: to_hex
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 39
    functionsReached:
    - std::snprintf
    - static_cast<unsigned char>
    - static_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string to_hex(lt::span<char const> key)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: hex_to_int
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_to_int(char in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/tools/dht_put.cpp:94,1
    - Dst: span<char>::size
      Src: /src/libtorrent/tools/dht_put.cpp:94,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/tools/dht_put.cpp:95,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/tools/dht_put.cpp:96,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/tools/dht_put.cpp:96,1
    - Dst: hex_to_int
      Src: /src/libtorrent/tools/dht_put.cpp:98,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/tools/dht_put.cpp:101,1
    - Dst: hex_to_int
      Src: /src/libtorrent/tools/dht_put.cpp:102,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/tools/dht_put.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: from_hex
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 17
    functionsReached:
    - span<char>::begin
    - span<char const>::end
    - span<char const>::begin
    - hex_to_int
    - static_cast<char>
    - span<char const>::size
    - span<char>::size
    linkageType: ''
    returnType: bool
    signature: bool from_hex(span<char const> in, span<char> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:111,1
    - Dst: exit
      Src: /src/libtorrent/tools/dht_put.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 133
    functionName: usage
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 2
    functionsReached:
    - exit
    - std::fprintf
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_alert
      Src: /src/libtorrent/tools/dht_put.cpp:140,1
    - Dst: seconds
      Src: /src/libtorrent/tools/dht_put.cpp:140,1
    - Dst: pop_alerts
      Src: /src/libtorrent/tools/dht_put.cpp:143,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:150,1
    - Dst: std::fflush
      Src: /src/libtorrent/tools/dht_put.cpp:151,1
    - Dst: type
      Src: /src/libtorrent/tools/dht_put.cpp:154,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:155,1
    - Dst: message
      Src: /src/libtorrent/tools/dht_put.cpp:155,1
    - Dst: type
      Src: /src/libtorrent/tools/dht_put.cpp:156,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:157,1
    - Dst: message
      Src: /src/libtorrent/tools/dht_put.cpp:157,1
    - Dst: type
      Src: /src/libtorrent/tools/dht_put.cpp:158,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:159,1
    - Dst: message
      Src: /src/libtorrent/tools/dht_put.cpp:159,1
    - Dst: type
      Src: /src/libtorrent/tools/dht_put.cpp:160,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - ' s'
    - alert_type
    argTypes:
    - lt::session
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 166
    functionName: wait_for_alert
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 80
    functionsReached:
    - seconds
    - message
    - wait_for_alert
    - type
    - std::fflush
    - std::printf
    - pop_alerts
    linkageType: ''
    returnType: alert
    signature: alert * wait_for_alert(lt::session& s, int alert_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/tools/dht_put.cpp:177,1
    - Dst: bencode
      Src: /src/libtorrent/tools/dht_put.cpp:179,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/tools/dht_put.cpp:179,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/tools/dht_put.cpp:182,1
    - Dst: libtorrent::dht::sequence_number
      Src: /src/libtorrent/tools/dht_put.cpp:182,1
    - Dst: libtorrent::dht::public_key
      Src: /src/libtorrent/tools/dht_put.cpp:183,1
    - Dst: data
      Src: /src/libtorrent/tools/dht_put.cpp:183,1
    - Dst: libtorrent::dht::secret_key
      Src: /src/libtorrent/tools/dht_put.cpp:184,1
    - Dst: data
      Src: /src/libtorrent/tools/dht_put.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - ' e'
    - ' sig'
    - ' seq'
    - ' salt'
    - ' pk'
    - ' sk'
    - str
    argTypes:
    - entry
    - std::array<char, 64>
    - std::int64_t
    - std::string
    - std::array<char, 32>
    - std::array<char, 64>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: put_string
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::sequence_number
    - libtorrent::dht::secret_key
    - std::string
    - libtorrent::dht::public_key
    - std::back_inserter
    - sign_mutable_item
    - bencode
    - data
    linkageType: ''
    returnType: void
    signature: "void put_string(entry& e, std::array<char, 64>& sig\n\t, std::int64_t&
      seq\n\t, std::string const& salt\n\t, std::array<char, 32> const& pk\n\t, std::array<char,
      64> const& sk\n\t, char const* str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:190,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/tools/dht_put.cpp:191,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: bootstrap
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 8
    functionsReached:
    - wait_for_alert
    - std::printf
    linkageType: ''
    returnType: void
    signature: void bootstrap(lt::session& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fstream::read
      Src: /src/libtorrent/tools/dht_put.cpp:200,1
    - Dst: std::array::data
      Src: /src/libtorrent/tools/dht_put.cpp:200,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/dht_put.cpp:200,1
    - Dst: std::fstream::fail
      Src: /src/libtorrent/tools/dht_put.cpp:201,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:203,1
    - Dst: std::tie
      Src: /src/libtorrent/tools/dht_put.cpp:209,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/tools/dht_put.cpp:209,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:211,1
    - Dst: to_hex
      Src: /src/libtorrent/tools/dht_put.cpp:212,1
    - Dst: to_hex
      Src: /src/libtorrent/tools/dht_put.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 216
    functionName: dump_key
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - std::array::data
    - std::tie
    - to_hex
    - ed25519_create_keypair
    - std::fprintf
    - std::fstream::read
    - std::fstream::fail
    - std::printf
    linkageType: ''
    returnType: int
    signature: int dump_key(char const* filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_create_seed
      Src: /src/libtorrent/tools/dht_put.cpp:220,1
    - Dst: std::fstream::write
      Src: /src/libtorrent/tools/dht_put.cpp:223,1
    - Dst: std::array::data
      Src: /src/libtorrent/tools/dht_put.cpp:223,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/dht_put.cpp:223,1
    - Dst: std::fstream::fail
      Src: /src/libtorrent/tools/dht_put.cpp:224,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: generate_key
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - ed25519_create_seed
    - std::array::data
    - std::fstream::write
    - std::fprintf
    - std::fstream::fail
    linkageType: ''
    returnType: int
    signature: int generate_key(char const* filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fstream::unsetf
      Src: /src/libtorrent/tools/dht_put.cpp:236,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:237,1
    - Dst: std::fstream::bad
      Src: /src/libtorrent/tools/dht_put.cpp:241,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/tools/dht_put.cpp:241,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:243,1
    - Dst: read_session_params
      Src: /src/libtorrent/tools/dht_put.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: load_dht_state
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - read_session_params
    - std::vector::empty
    - std::fstream::bad
    - std::fprintf
    - std::fstream::unsetf
    - std::printf
    linkageType: ''
    returnType: lt::session_params
    signature: lt::session_params load_dht_state()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:257,1
    - Dst: lt::string_view::substr
      Src: /src/libtorrent/tools/dht_put.cpp:262,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:278,1
    - Dst: dump_key
      Src: /src/libtorrent/tools/dht_put.cpp:280,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:287,1
    - Dst: generate_key
      Src: /src/libtorrent/tools/dht_put.cpp:289,1
    - Dst: load_dht_state
      Src: /src/libtorrent/tools/dht_put.cpp:292,1
    - Dst: session_params::settings::set_bool
      Src: /src/libtorrent/tools/dht_put.cpp:293,1
    - Dst: session_params::settings::set_int
      Src: /src/libtorrent/tools/dht_put.cpp:294,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:302,1
    - Dst: strlen
      Src: /src/libtorrent/tools/dht_put.cpp:304,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:306,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:307,1
    - Dst: from_hex
      Src: /src/libtorrent/tools/dht_put.cpp:310,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:312,1
    - Dst: bootstrap
      Src: /src/libtorrent/tools/dht_put.cpp:316,1
    - Dst: lt::session::dht_get_item
      Src: /src/libtorrent/tools/dht_put.cpp:317,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:319,1
    - Dst: to_hex
      Src: /src/libtorrent/tools/dht_put.cpp:319,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/tools/dht_put.cpp:321,1
    - Dst: alert_cast<dht_immutable_item_alert>
      Src: /src/libtorrent/tools/dht_put.cpp:323,1
    - Dst: dht_immutable_item_alert*::item::to_string
      Src: /src/libtorrent/tools/dht_put.cpp:325,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:326,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/dht_put.cpp:326,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:332,1
    - Dst: std::string
      Src: /src/libtorrent/tools/dht_put.cpp:335,1
    - Dst: bootstrap
      Src: /src/libtorrent/tools/dht_put.cpp:337,1
    - Dst: lt::session::dht_put_item
      Src: /src/libtorrent/tools/dht_put.cpp:338,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:340,1
    - Dst: to_hex
      Src: /src/libtorrent/tools/dht_put.cpp:340,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/tools/dht_put.cpp:342,1
    - Dst: alert_cast<dht_put_alert>
      Src: /src/libtorrent/tools/dht_put.cpp:343,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:344,1
    - Dst: dht_put_alert*::message
      Src: /src/libtorrent/tools/dht_put.cpp:344,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:350,1
    - Dst: std::fstream::read
      Src: /src/libtorrent/tools/dht_put.cpp:355,1
    - Dst: std::array::data
      Src: /src/libtorrent/tools/dht_put.cpp:355,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/dht_put.cpp:355,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:359,1
    - Dst: std::tie
      Src: /src/libtorrent/tools/dht_put.cpp:363,1
    - Dst: ed25519_create_keypair
      Src: /src/libtorrent/tools/dht_put.cpp:363,1
    - Dst: bootstrap
      Src: /src/libtorrent/tools/dht_put.cpp:368,1
    - Dst: lt::session::dht_put_item
      Src: /src/libtorrent/tools/dht_put.cpp:369,1
    - Dst: std::bind
      Src: /src/libtorrent/tools/dht_put.cpp:369,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:372,1
    - Dst: to_hex
      Src: /src/libtorrent/tools/dht_put.cpp:372,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/dht_put.cpp:373,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/tools/dht_put.cpp:375,1
    - Dst: alert_cast<dht_put_alert>
      Src: /src/libtorrent/tools/dht_put.cpp:376,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:377,1
    - Dst: dht_put_alert*::message
      Src: /src/libtorrent/tools/dht_put.cpp:377,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:383,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/tools/dht_put.cpp:385,1
    - Dst: strlen
      Src: /src/libtorrent/tools/dht_put.cpp:385,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:388,1
    - Dst: from_hex
      Src: /src/libtorrent/tools/dht_put.cpp:392,1
    - Dst: std::fprintf
      Src: /src/libtorrent/tools/dht_put.cpp:394,1
    - Dst: bootstrap
      Src: /src/libtorrent/tools/dht_put.cpp:401,1
    - Dst: lt::session::dht_get_item
      Src: /src/libtorrent/tools/dht_put.cpp:402,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:403,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/dht_put.cpp:403,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/tools/dht_put.cpp:409,1
    - Dst: alert_cast<dht_mutable_item_alert>
      Src: /src/libtorrent/tools/dht_put.cpp:411,1
    - Dst: dht_mutable_item_alert*::item::to_string
      Src: /src/libtorrent/tools/dht_put.cpp:414,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/dht_put.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/tools/dht_put.cpp:415,1
    - Dst: usage
      Src: /src/libtorrent/tools/dht_put.cpp:420,1
    - Dst: write_session_params_buf
      Src: /src/libtorrent/tools/dht_put.cpp:423,1
    - Dst: lt::session::session_state
      Src: /src/libtorrent/tools/dht_put.cpp:423,1
    - Dst: std::fstream::write
      Src: /src/libtorrent/tools/dht_put.cpp:425,1
    - Dst: std::vector::data
      Src: /src/libtorrent/tools/dht_put.cpp:425,1
    - Dst: static_cast<std::streamsize>
      Src: /src/libtorrent/tools/dht_put.cpp:425,1
    - Dst: std::vector::size
      Src: /src/libtorrent/tools/dht_put.cpp:425,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 104
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 428
    functionName: main
    functionSourceFile: /src/libtorrent/tools/dht_put.cpp
    functionUses: 0
    functionsReached:
    - alert_cast<dht_mutable_item_alert>
    - write_session_params_buf
    - from_hex
    - static_cast<std::ptrdiff_t>
    - std::vector::size
    - dht_put_alert*::message
    - strlen
    - alert_cast<dht_immutable_item_alert>
    - static_cast<std::streamsize>
    - generate_key
    - session_params::settings::set_int
    - bootstrap
    - to_hex
    - lt::session::dht_put_item
    - std::fstream::read
    - alert_cast<dht_put_alert>
    - std::printf
    - std::array::data
    - lt::session::dht_get_item
    - std::string
    - dump_key
    - session_params::settings::set_bool
    - ed25519_create_keypair
    - usage
    - lt::string_view::substr
    - std::bind
    - std::array::size
    - dht_immutable_item_alert*::item::to_string
    - std::vector::data
    - std::tie
    - load_dht_state
    - std::string::c_str
    - wait_for_alert
    - dht_mutable_item_alert*::item::to_string
    - lt::session::session_state
    - std::fstream::write
    - std::fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::span<char>::size
      Src: /src/libtorrent/tools/checking_benchmark.cpp:54,1
    - Dst: lt::span<char>::size
      Src: /src/libtorrent/tools/checking_benchmark.cpp:56,1
    - Dst: std::memcpy
      Src: /src/libtorrent/tools/checking_benchmark.cpp:58,1
    - Dst: lt::span<char>::data
      Src: /src/libtorrent/tools/checking_benchmark.cpp:58,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/tools/checking_benchmark.cpp:58,1
    - Dst: std::memcpy
      Src: /src/libtorrent/tools/checking_benchmark.cpp:63,1
    - Dst: lt::span<char>::data
      Src: /src/libtorrent/tools/checking_benchmark.cpp:63,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/tools/checking_benchmark.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - ' state'
    argTypes:
    - lt::span<char>
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: generate_block_fill
    functionSourceFile: /src/libtorrent/tools/checking_benchmark.cpp
    functionUses: 1
    functionsReached:
    - lt::span<char>::data
    - lt::span<char>::size
    - std::memcpy
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void generate_block_fill(lt::span<char> buf, std::uint64_t& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::int64_t
      Src: /src/libtorrent/tools/checking_benchmark.cpp:74,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/tools/checking_benchmark.cpp:78,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/tools/checking_benchmark.cpp:84,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/tools/checking_benchmark.cpp:87,1
    - Dst: std::exit
      Src: /src/libtorrent/tools/checking_benchmark.cpp:89,1
    - Dst: generate_block_fill
      Src: /src/libtorrent/tools/checking_benchmark.cpp:100,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::array::data
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::min
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::size_t
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/checking_benchmark.cpp:102,1
    - Dst: flush
      Src: /src/libtorrent/tools/checking_benchmark.cpp:105,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/tools/checking_benchmark.cpp:113,1
    - Dst: bencode
      Src: /src/libtorrent/tools/checking_benchmark.cpp:116,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/tools/checking_benchmark.cpp:116,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/tools/checking_benchmark.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - num_pieces
    - save_path
    - flags
    argTypes:
    - int
    - std::string
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 118
    functionName: generate_torrent
    functionSourceFile: /src/libtorrent/tools/checking_benchmark.cpp
    functionUses: 28
    functionsReached:
    - std::array::size
    - std::array::data
    - lt::error_code::message
    - std::ofstream::write
    - std::exit
    - std::int64_t
    - std::min
    - libtorrent::stat_file
    - libtorrent::set_piece_hashes
    - std::size_t
    - generate_block_fill
    - flush
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: "std::vector<char> generate_torrent(int num_pieces, std::string save_path\n\t,
      lt::create_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/tools/checking_benchmark.cpp:123,1
    - Dst: read
      Src: /src/libtorrent/tools/checking_benchmark.cpp:129,1
    - Dst: set_bool
      Src: /src/libtorrent/tools/checking_benchmark.cpp:134,1
    - Dst: set_bool
      Src: /src/libtorrent/tools/checking_benchmark.cpp:135,1
    - Dst: set_bool
      Src: /src/libtorrent/tools/checking_benchmark.cpp:136,1
    - Dst: set_bool
      Src: /src/libtorrent/tools/checking_benchmark.cpp:137,1
    - Dst: set_int
      Src: /src/libtorrent/tools/checking_benchmark.cpp:138,1
    - Dst: set_int
      Src: /src/libtorrent/tools/checking_benchmark.cpp:139,1
    - Dst: set_str
      Src: /src/libtorrent/tools/checking_benchmark.cpp:141,1
    - Dst: libtorrent::load_torrent_buffer
      Src: /src/libtorrent/tools/checking_benchmark.cpp:144,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/tools/checking_benchmark.cpp:147,1
    - Dst: time_now
      Src: /src/libtorrent/tools/checking_benchmark.cpp:148,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/tools/checking_benchmark.cpp:151,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/tools/checking_benchmark.cpp:153,1
    - Dst: message
      Src: /src/libtorrent/tools/checking_benchmark.cpp:156,1
    - Dst: lt::alert_cast<lt::state_changed_alert>
      Src: /src/libtorrent/tools/checking_benchmark.cpp:157,1
    - Dst: time_now
      Src: /src/libtorrent/tools/checking_benchmark.cpp:166,1
    - Dst: std::chrono::duration_cast<milliseconds>
      Src: /src/libtorrent/tools/checking_benchmark.cpp:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - ' save_path'
    - flags
    - disk
    argTypes:
    - std::string
    - lt::create_flags_t
    - lt::disk_io_constructor_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 170
    functionName: run_test
    functionSourceFile: /src/libtorrent/tools/checking_benchmark.cpp
    functionUses: 19
    functionsReached:
    - time_now
    - std::chrono::duration_cast<milliseconds>
    - lt::alert_cast<lt::state_changed_alert>
    - message
    - set_bool
    - read
    - lt::session::wait_for_alert
    - lt::session::add_torrent
    - lt::session::pop_alerts
    - generate_torrent
    - set_int
    - libtorrent::load_torrent_buffer
    - set_str
    linkageType: ''
    returnType: void
    signature: "void run_test(std::string const& save_path, lt::create_flags_t const
      flags\n\t, lt::disk_io_constructor_type disk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::span<char>::size
      Src: /src/libtorrent/tools/checking_benchmark.cpp:54,1
    - Dst: lt::span<char>::size
      Src: /src/libtorrent/tools/checking_benchmark.cpp:56,1
    - Dst: std::memcpy
      Src: /src/libtorrent/tools/checking_benchmark.cpp:58,1
    - Dst: lt::span<char>::data
      Src: /src/libtorrent/tools/checking_benchmark.cpp:58,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/tools/checking_benchmark.cpp:58,1
    - Dst: std::memcpy
      Src: /src/libtorrent/tools/checking_benchmark.cpp:63,1
    - Dst: lt::span<char>::data
      Src: /src/libtorrent/tools/checking_benchmark.cpp:63,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/tools/checking_benchmark.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - ' state'
    argTypes:
    - lt::span<char>
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: generate_block_fill
    functionSourceFile: /src/libtorrent/tools/checking_benchmark.cpp
    functionUses: 2
    functionsReached:
    - lt::span<char>::data
    - lt::span<char>::size
    - std::memcpy
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void generate_block_fill(lt::span<char> buf, std::uint64_t& state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::int64_t
      Src: /src/libtorrent/tools/checking_benchmark.cpp:74,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/tools/checking_benchmark.cpp:78,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/tools/checking_benchmark.cpp:84,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/tools/checking_benchmark.cpp:87,1
    - Dst: std::exit
      Src: /src/libtorrent/tools/checking_benchmark.cpp:89,1
    - Dst: generate_block_fill
      Src: /src/libtorrent/tools/checking_benchmark.cpp:100,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::array::data
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::min
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::size_t
      Src: /src/libtorrent/tools/checking_benchmark.cpp:101,1
    - Dst: std::array::size
      Src: /src/libtorrent/tools/checking_benchmark.cpp:102,1
    - Dst: flush
      Src: /src/libtorrent/tools/checking_benchmark.cpp:105,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/tools/checking_benchmark.cpp:113,1
    - Dst: bencode
      Src: /src/libtorrent/tools/checking_benchmark.cpp:116,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/tools/checking_benchmark.cpp:116,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/tools/checking_benchmark.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - num_pieces
    - save_path
    - flags
    argTypes:
    - int
    - std::string
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 118
    functionName: generate_torrent
    functionSourceFile: /src/libtorrent/tools/checking_benchmark.cpp
    functionUses: 29
    functionsReached:
    - std::array::size
    - std::array::data
    - lt::error_code::message
    - std::ofstream::write
    - std::exit
    - std::int64_t
    - std::min
    - libtorrent::stat_file
    - libtorrent::set_piece_hashes
    - std::size_t
    - generate_block_fill
    - flush
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::file_storage::add_file
    - bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: "std::vector<char> generate_torrent(int num_pieces, std::string save_path\n\t,
      lt::create_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_torrent
      Src: /src/libtorrent/tools/checking_benchmark.cpp:123,1
    - Dst: read
      Src: /src/libtorrent/tools/checking_benchmark.cpp:129,1
    - Dst: set_bool
      Src: /src/libtorrent/tools/checking_benchmark.cpp:134,1
    - Dst: set_bool
      Src: /src/libtorrent/tools/checking_benchmark.cpp:135,1
    - Dst: set_bool
      Src: /src/libtorrent/tools/checking_benchmark.cpp:136,1
    - Dst: set_bool
      Src: /src/libtorrent/tools/checking_benchmark.cpp:137,1
    - Dst: set_int
      Src: /src/libtorrent/tools/checking_benchmark.cpp:138,1
    - Dst: set_int
      Src: /src/libtorrent/tools/checking_benchmark.cpp:139,1
    - Dst: set_str
      Src: /src/libtorrent/tools/checking_benchmark.cpp:141,1
    - Dst: libtorrent::load_torrent_buffer
      Src: /src/libtorrent/tools/checking_benchmark.cpp:144,1
    - Dst: lt::session::add_torrent
      Src: /src/libtorrent/tools/checking_benchmark.cpp:147,1
    - Dst: time_now
      Src: /src/libtorrent/tools/checking_benchmark.cpp:148,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/tools/checking_benchmark.cpp:151,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/tools/checking_benchmark.cpp:153,1
    - Dst: message
      Src: /src/libtorrent/tools/checking_benchmark.cpp:156,1
    - Dst: lt::alert_cast<lt::state_changed_alert>
      Src: /src/libtorrent/tools/checking_benchmark.cpp:157,1
    - Dst: time_now
      Src: /src/libtorrent/tools/checking_benchmark.cpp:166,1
    - Dst: std::chrono::duration_cast<milliseconds>
      Src: /src/libtorrent/tools/checking_benchmark.cpp:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - ' save_path'
    - flags
    - disk
    argTypes:
    - std::string
    - lt::create_flags_t
    - lt::disk_io_constructor_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 170
    functionName: run_test
    functionSourceFile: /src/libtorrent/tools/checking_benchmark.cpp
    functionUses: 19
    functionsReached:
    - time_now
    - std::chrono::duration_cast<milliseconds>
    - lt::alert_cast<lt::state_changed_alert>
    - message
    - set_bool
    - read
    - lt::session::wait_for_alert
    - lt::session::add_torrent
    - lt::session::pop_alerts
    - generate_torrent
    - set_int
    - libtorrent::load_torrent_buffer
    - set_str
    linkageType: ''
    returnType: void
    signature: "void run_test(std::string const& save_path, lt::create_flags_t const
      flags\n\t, lt::disk_io_constructor_type disk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/tools/checking_benchmark.cpp:181,1
    - Dst: run_test
      Src: /src/libtorrent/tools/checking_benchmark.cpp:183,1
    - Dst: run_test
      Src: /src/libtorrent/tools/checking_benchmark.cpp:185,1
    - Dst: run_test
      Src: /src/libtorrent/tools/checking_benchmark.cpp:188,1
    - Dst: run_test
      Src: /src/libtorrent/tools/checking_benchmark.cpp:190,1
    - Dst: run_test
      Src: /src/libtorrent/tools/checking_benchmark.cpp:192,1
    - Dst: code
      Src: /src/libtorrent/tools/checking_benchmark.cpp:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: main
    functionSourceFile: /src/libtorrent/tools/checking_benchmark.cpp
    functionUses: 0
    functionsReached:
    - code
    - run_test
    linkageType: ''
    returnType: int
    signature: int main(int argc, char const* argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/tools/session_log_alerts.cpp:47,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/tools/session_log_alerts.cpp:50,1
    - Dst: session::wait_for_alert
      Src: /src/libtorrent/tools/session_log_alerts.cpp:56,1
    - Dst: seconds
      Src: /src/libtorrent/tools/session_log_alerts.cpp:56,1
    - Dst: session::pop_alerts
      Src: /src/libtorrent/tools/session_log_alerts.cpp:59,1
    - Dst: type
      Src: /src/libtorrent/tools/session_log_alerts.cpp:62,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/session_log_alerts.cpp:64,1
    - Dst: message
      Src: /src/libtorrent/tools/session_log_alerts.cpp:64,1
    - Dst: std::printf
      Src: /src/libtorrent/tools/session_log_alerts.cpp:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/libtorrent/tools/session_log_alerts.cpp
    functionUses: 0
    functionsReached:
    - session::pop_alerts
    - session::wait_for_alert
    - seconds
    - message
    - type
    - settings_pack::set_int
    - std::printf
    linkageType: ''
    returnType: int
    signature: int main(int /*argc*/, char* /*argv*/[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: main
    functionSourceFile: /src/libtorrent/tools/dht_sample.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(int, char*[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: stop
    functionSourceFile: /src/libtorrent/tools/dht_sample.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stop(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/libtorrent/tools/dht_sample.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: usage
    functionSourceFile: /src/libtorrent/tools/dht_sample.cpp
    functionUses: 3
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fstream::unsetf
      Src: /src/libtorrent/tools/dht_sample.cpp:80,1
    - Dst: std::fstream::bad
      Src: /src/libtorrent/tools/dht_sample.cpp:85,1
    - Dst: read_session_params
      Src: /src/libtorrent/tools/dht_sample.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: load_dht_state
    functionSourceFile: /src/libtorrent/tools/dht_sample.cpp
    functionUses: 1
    functionsReached:
    - std::fstream::bad
    - std::fstream::unsetf
    - read_session_params
    linkageType: ''
    returnType: lt::session_params
    signature: lt::session_params load_dht_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: stop
    functionSourceFile: /src/libtorrent/tools/dht_sample.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stop(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/libtorrent/tools/dht_sample.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: usage
    functionSourceFile: /src/libtorrent/tools/dht_sample.cpp
    functionUses: 3
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fstream::unsetf
      Src: /src/libtorrent/tools/dht_sample.cpp:80,1
    - Dst: std::fstream::bad
      Src: /src/libtorrent/tools/dht_sample.cpp:85,1
    - Dst: read_session_params
      Src: /src/libtorrent/tools/dht_sample.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: load_dht_state
    functionSourceFile: /src/libtorrent/tools/dht_sample.cpp
    functionUses: 1
    functionsReached:
    - std::fstream::bad
    - std::fstream::unsetf
    - read_session_params
    linkageType: ''
    returnType: lt::session_params
    signature: lt::session_params load_dht_state()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/libtorrent/tools/dht_sample.cpp:103,1
    - Dst: signal
      Src: /src/libtorrent/tools/dht_sample.cpp:105,1
    - Dst: signal
      Src: /src/libtorrent/tools/dht_sample.cpp:106,1
    - Dst: load_dht_state
      Src: /src/libtorrent/tools/dht_sample.cpp:108,1
    - Dst: session_params::settings::set_bool
      Src: /src/libtorrent/tools/dht_sample.cpp:109,1
    - Dst: session_params::settings::set_int
      Src: /src/libtorrent/tools/dht_sample.cpp:110,1
    - Dst: time_now
      Src: /src/libtorrent/tools/dht_sample.cpp:113,1
    - Dst: time_now
      Src: /src/libtorrent/tools/dht_sample.cpp:114,1
    - Dst: lt::session::wait_for_alert
      Src: /src/libtorrent/tools/dht_sample.cpp:120,1
    - Dst: lt::session::pop_alerts
      Src: /src/libtorrent/tools/dht_sample.cpp:123,1
    - Dst: time_now
      Src: /src/libtorrent/tools/dht_sample.cpp:124,1
    - Dst: lt::alert_cast<dht_sample_infohashes_alert>
      Src: /src/libtorrent/tools/dht_sample.cpp:127,1
    - Dst: auto*::samples
      Src: /src/libtorrent/tools/dht_sample.cpp:130,1
    - Dst: std::set::insert
      Src: /src/libtorrent/tools/dht_sample.cpp:132,1
    - Dst: auto*::nodes
      Src: /src/libtorrent/tools/dht_sample.cpp:135,1
    - Dst: std::map::find
      Src: /src/libtorrent/tools/dht_sample.cpp:137,1
    - Dst: std::map::end
      Src: /src/libtorrent/tools/dht_sample.cpp:138,1
    - Dst: std::map::insert
      Src: /src/libtorrent/tools/dht_sample.cpp:139,1
    - Dst: std::max
      Src: /src/libtorrent/tools/dht_sample.cpp:142,1
    - Dst: flush
      Src: /src/libtorrent/tools/dht_sample.cpp:145,1
    - Dst: alert_cast<dht_pkt_alert>
      Src: /src/libtorrent/tools/dht_sample.cpp:147,1
    - Dst: std::map::find
      Src: /src/libtorrent/tools/dht_sample.cpp:149,1
    - Dst: std::map::end
      Src: /src/libtorrent/tools/dht_sample.cpp:150,1
    - Dst: std::map::insert
      Src: /src/libtorrent/tools/dht_sample.cpp:151,1
    - Dst: alert_cast<dht_announce_alert>
      Src: /src/libtorrent/tools/dht_sample.cpp:155,1
    - Dst: std::set::insert
      Src: /src/libtorrent/tools/dht_sample.cpp:157,1
    - Dst: std::find_if
      Src: /src/libtorrent/tools/dht_sample.cpp:165,1
    - Dst: std::map::begin
      Src: /src/libtorrent/tools/dht_sample.cpp:165,1
    - Dst: std::map::end
      Src: /src/libtorrent/tools/dht_sample.cpp:165,1
    - Dst: std::map::end
      Src: /src/libtorrent/tools/dht_sample.cpp:168,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/tools/dht_sample.cpp:174,1
    - Dst: std::rand
      Src: /src/libtorrent/tools/dht_sample.cpp:174,1
    - Dst: lt::session::dht_sample_infohashes
      Src: /src/libtorrent/tools/dht_sample.cpp:175,1
    - Dst: std::map::begin
      Src: /src/libtorrent/tools/dht_sample.cpp:184,1
    - Dst: std::map::end
      Src: /src/libtorrent/tools/dht_sample.cpp:184,1
    - Dst: std::map::erase
      Src: /src/libtorrent/tools/dht_sample.cpp:187,1
    - Dst: write_session_params_buf
      Src: /src/libtorrent/tools/dht_sample.cpp:194,1
    - Dst: lt::session::session_state
      Src: /src/libtorrent/tools/dht_sample.cpp:194,1
    - Dst: std::fstream::write
      Src: /src/libtorrent/tools/dht_sample.cpp:196,1
    - Dst: std::vector::data
      Src: /src/libtorrent/tools/dht_sample.cpp:196,1
    - Dst: static_cast<std::streamsize>
      Src: /src/libtorrent/tools/dht_sample.cpp:196,1
    - Dst: std::vector::size
      Src: /src/libtorrent/tools/dht_sample.cpp:196,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - argc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/libtorrent/tools/dht_sample.cpp
    functionUses: 0
    functionsReached:
    - auto*::nodes
    - write_session_params_buf
    - std::vector::size
    - std::map::erase
    - std::max
    - lt::alert_cast<dht_sample_infohashes_alert>
    - static_cast<std::streamsize>
    - signal
    - session_params::settings::set_int
    - std::uint8_t
    - std::map::insert
    - std::map::begin
    - lt::session::wait_for_alert
    - time_now
    - lt::session::dht_sample_infohashes
    - auto*::samples
    - session_params::settings::set_bool
    - lt::session::pop_alerts
    - std::map::end
    - flush
    - alert_cast<dht_pkt_alert>
    - usage
    - std::map::find
    - std::find_if
    - std::vector::data
    - alert_cast<dht_announce_alert>
    - std::rand
    - load_dht_state
    - lt::session::session_state
    - std::fstream::write
    - std::set::insert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char*[])
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - policy
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: pe_policy
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * pe_policy(int const policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:59,1
    - Dst: pe_policy
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:60,1
    - Dst: get_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:60,1
    - Dst: pe_policy
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:61,1
    - Dst: get_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:61,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:63,1
    - Dst: get_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:64,1
    - Dst: get_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:65,1
    - Dst: get_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:66,1
    - Dst: get_bool
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: display_pe_settings
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - pe_policy
    - std::printf
    - get_bool
    linkageType: ''
    returnType: void
    signature: void display_pe_settings(lt::settings_pack const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:72,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:73,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:74,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:75,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:76,1
    - Dst: display_pe_settings
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:77,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:85,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:88,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:89,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:90,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:91,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:102,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - enc_policy
    - level
    - prefer_rc4
    argTypes:
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 107
    functionName: test_transfer
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 17
    functionsReached:
    - setup_swarm
    - lt::settings_pack::set_int
    - lt::settings_pack::set_bool
    - set_bool
    - display_pe_settings
    - is_seed
    - settings
    - set_int
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void test_transfer(int enc_policy, int level, bool prefer_rc4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pe_disabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(forced_plaintext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(forced_rc4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(forced_both)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(forced_both_prefer_rc4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(enabled_plaintext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(enabled_rc4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(enabled_both)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_transfer
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - test_transfer
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(enabled_both_prefer_rc4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:158,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:159,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:160,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:161,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:162,1
    - Dst: display_pe_settings
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:163,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:171,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:174,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:175,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:176,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:177,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:187,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 190
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    - lt::settings_pack::set_int
    - lt::settings_pack::set_bool
    - set_bool
    - display_pe_settings
    - is_seed
    - settings
    - set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disabled_failing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_pe_crypto.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_io_context
      Src: /src/libtorrent/simulation/test_pause.cpp:61,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_pause.cpp:65,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_pause.cpp:68,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_pause.cpp:70,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_pause.cpp:78,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_pause.cpp:81,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_pause.cpp:81,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_pause.cpp:84,1
    - Dst: lt::alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_pause.cpp:85,1
    - Dst: std::shared_ptr::set_alert_notify
      Src: /src/libtorrent/simulation/test_pause.cpp:90,1
    - Dst: torrent
      Src: /src/libtorrent/simulation/test_pause.cpp:92,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_pause.cpp:95,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_pause.cpp:98,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_pause.cpp:103,1
    - Dst: check
      Src: /src/libtorrent/simulation/test_pause.cpp:106,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_pause.cpp:109,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_pause.cpp:110,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_pause.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' setup'
    - ' torrent'
    - ' test'
    - ' check'
    argTypes:
    - Setup
    - Torrent
    - Test
    - Check
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 114
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 20
    functionsReached:
    - lt::alert_cast<add_torrent_alert>
    - check
    - libtorrent::create_torrent::create_torrent
    - std::shared_ptr::async_add_torrent
    - std::move
    - std::shared_ptr::set_alert_notify
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - setup
    - std::make_shared<lt::session>
    - torrent
    - make_io_context
    - sim::simulation::run
    - settings
    - test
    - std::shared_ptr::reset
    - std::shared_ptr::abort
    linkageType: ''
    returnType: void
    signature: "void run_test(Setup const& setup, Torrent const& torrent\n\t, Test
      const& test, Check const& check)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_pause.cpp:119,1
    - Dst: add_fake_peers
      Src: /src/libtorrent/simulation/test_pause.cpp:122,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_pause.cpp:126,1
    - Dst: check_connected
      Src: /src/libtorrent/simulation/test_pause.cpp:127,1
    - Dst: check_disconnected
      Src: /src/libtorrent/simulation/test_pause.cpp:128,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_pause.cpp:129,1
    - Dst: check_disconnected
      Src: /src/libtorrent/simulation/test_pause.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:134,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 0
    functionsReached:
    - check_connected
    - check_disconnected
    - pause
    - run_test
    - status
    - add_fake_peers
    - check_accepted
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_paused_disconnect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_pause.cpp:141,1
    - Dst: add_fake_peers
      Src: /src/libtorrent/simulation/test_pause.cpp:144,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_pause.cpp:148,1
    - Dst: check_connected
      Src: /src/libtorrent/simulation/test_pause.cpp:149,1
    - Dst: check_disconnected
      Src: /src/libtorrent/simulation/test_pause.cpp:150,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_pause.cpp:151,1
    - Dst: check_disconnected
      Src: /src/libtorrent/simulation/test_pause.cpp:155,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:158,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 160
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 0
    functionsReached:
    - check_connected
    - check_disconnected
    - pause
    - run_test
    - status
    - add_fake_peers
    - check_accepted
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_paused_disconnect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_pause.cpp:166,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_pause.cpp:167,1
    - Dst: add_fake_peers
      Src: /src/libtorrent/simulation/test_pause.cpp:169,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_pause.cpp:173,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:178,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 0
    functionsReached:
    - pause
    - run_test
    - status
    - add_fake_peers
    - check_accepted
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(paused_session_add_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_pause.cpp:185,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_pause.cpp:188,1
    - Dst: add_fake_peers
      Src: /src/libtorrent/simulation/test_pause.cpp:190,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_pause.cpp:194,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:198,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 0
    functionsReached:
    - pause
    - run_test
    - status
    - add_fake_peers
    - check_accepted
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(paused_torrent_add_peers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_pause.cpp:205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:210,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:210,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_pause.cpp:211,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:215,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:215,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_pause.cpp:218,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_pause.cpp:220,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_pause.cpp:226,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_pause.cpp:226,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_pause.cpp:226,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_pause.cpp:227,1
    - Dst: lt::alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_pause.cpp:228,1
    - Dst: lt::alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_pause.cpp:229,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_pause.cpp:232,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_pause.cpp:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 235
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - pause
    - std::printf
    - message
    - lt::alert_cast<torrent_resumed_alert>
    - timestamp
    - status
    - lt::alert_cast<torrent_paused_alert>
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_paused_alert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_pause.cpp:240,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:245,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:245,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_pause.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:250,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:250,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_pause.cpp:253,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_pause.cpp:255,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_pause.cpp:261,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_pause.cpp:261,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_pause.cpp:261,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_pause.cpp:262,1
    - Dst: lt::alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_pause.cpp:263,1
    - Dst: lt::alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_pause.cpp:264,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_pause.cpp:267,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_pause.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 270
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - pause
    - std::printf
    - message
    - lt::alert_cast<torrent_resumed_alert>
    - timestamp
    - status
    - lt::alert_cast<torrent_paused_alert>
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_paused_alert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_pause.cpp:276,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:279,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:279,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_pause.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:284,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:284,1
    - Dst: resume
      Src: /src/libtorrent/simulation/test_pause.cpp:285,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:289,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:289,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_pause.cpp:292,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_pause.cpp:294,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_pause.cpp:300,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_pause.cpp:300,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_pause.cpp:300,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_pause.cpp:301,1
    - Dst: lt::alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_pause.cpp:302,1
    - Dst: lt::alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_pause.cpp:303,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_pause.cpp:306,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_pause.cpp:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 309
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 0
    functionsReached:
    - resume
    - duration_cast<lt::seconds>
    - TEST_EQUAL
    - pause
    - std::printf
    - message
    - lt::alert_cast<torrent_resumed_alert>
    - timestamp
    - status
    - lt::alert_cast<torrent_paused_alert>
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_pause_resume)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_pause.cpp:315,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:318,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:318,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_pause.cpp:319,1
    - Dst: add_fake_peers
      Src: /src/libtorrent/simulation/test_pause.cpp:320,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:324,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:324,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_pause.cpp:325,1
    - Dst: resume
      Src: /src/libtorrent/simulation/test_pause.cpp:326,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_pause.cpp:330,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_pause.cpp:330,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_pause.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 334
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_pause.cpp
    functionUses: 0
    functionsReached:
    - resume
    - pause
    - status
    - check_accepted
    - add_fake_peers
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_pause_resume_connect)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - address
    - is_v6
    - port
    argTypes:
    - char*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: make_ep_string
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string make_ep_string(char const* address, bool const is_v6\n\t,
      char const* port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utp_only
      Src: /src/libtorrent/simulation/utils.cpp:74,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/utils.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: utp_only
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 1
    functionsReached:
    - apply_settings
    - utp_only
    linkageType: ''
    returnType: void
    signature: void utp_only(lt::session& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enable_enc
      Src: /src/libtorrent/simulation/utils.cpp:81,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/utils.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: enable_enc
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 1
    functionsReached:
    - apply_settings
    - enable_enc
    linkageType: ''
    returnType: void
    signature: void enable_enc(lt::session& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/simulation/utils.cpp:88,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/utils.cpp:88,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/utils.cpp:89,1
    - Dst: set_ip_filter
      Src: /src/libtorrent/simulation/utils.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: filter_ips
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached:
    - set_ip_filter
    - make_address_v4
    - ip_filter::add_rule
    linkageType: ''
    returnType: void
    signature: void filter_ips(lt::session& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bool
      Src: /src/libtorrent/simulation/utils.cpp:96,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/utils.cpp:97,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/utils.cpp:98,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/utils.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: utp_only
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 1
    functionsReached:
    - set_bool
    linkageType: ''
    returnType: void
    signature: void utp_only(lt::settings_pack& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bool
      Src: /src/libtorrent/simulation/utils.cpp:105,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/utils.cpp:106,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/utils.cpp:107,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/utils.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: enable_enc
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 1
    functionsReached:
    - set_int
    - set_bool
    linkageType: ''
    returnType: void
    signature: void enable_enc(lt::settings_pack& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/utils.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - swarm_id
    - idx
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: save_path
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string save_path(int swarm_id, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/utils.cpp:121,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/utils.cpp:122,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/utils.cpp:122,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/utils.cpp:128,1
    - Dst: auto::connect_peer
      Src: /src/libtorrent/simulation/utils.cpp:129,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/utils.cpp:129,1
    - Dst: addr
      Src: /src/libtorrent/simulation/utils.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: add_extra_peers
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::connect_peer
    - get_torrents
    - std::snprintf
    - auto::size
    - local_endpoint
    - addr
    linkageType: ''
    returnType: void
    signature: void add_extra_peers(lt::session& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/utils.cpp:135,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/utils.cpp:136,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/utils.cpp:136,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/utils.cpp:137,1
    - Dst: libtorrent::torrent_status::torrent_status
      Src: /src/libtorrent/simulation/utils.cpp:137,1
    - Dst: auto::status
      Src: /src/libtorrent/simulation/utils.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: get_status
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::torrent_status::torrent_status
    - auto::empty
    - get_torrents
    - auto::size
    - auto::status
    linkageType: ''
    returnType: lt::torrent_status
    signature: lt::torrent_status get_status(lt::session& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/utils.cpp:144,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/utils.cpp:145,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/utils.cpp:145,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/utils.cpp:146,1
    - Dst: auto::status
      Src: /src/libtorrent/simulation/utils.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: has_metadata
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::empty
    - get_torrents
    - auto::size
    - auto::status
    linkageType: ''
    returnType: bool
    signature: bool has_metadata(lt::session& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/utils.cpp:153,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/utils.cpp:154,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/utils.cpp:154,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/utils.cpp:155,1
    - Dst: auto::status
      Src: /src/libtorrent/simulation/utils.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: is_seed
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - auto::empty
    - get_torrents
    - auto::size
    - auto::status
    linkageType: ''
    returnType: bool
    signature: bool is_seed(lt::session& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/utils.cpp:162,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/utils.cpp:163,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/utils.cpp:163,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/utils.cpp:164,1
    - Dst: auto::status
      Src: /src/libtorrent/simulation/utils.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: is_finished
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 13
    functionsReached:
    - TEST_EQUAL
    - auto::empty
    - get_torrents
    - auto::size
    - auto::status
    linkageType: ''
    returnType: bool
    signature: bool is_finished(lt::session& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/utils.cpp:171,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/utils.cpp:172,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/utils.cpp:172,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/utils.cpp:173,1
    - Dst: auto::status
      Src: /src/libtorrent/simulation/utils.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: completed_pieces
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::empty
    - get_torrents
    - auto::size
    - auto::status
    linkageType: ''
    returnType: int
    signature: int completed_pieces(lt::session& ses)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/utils.cpp:184,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/utils.cpp:186,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/utils.cpp:188,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/utils.cpp:190,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/utils.cpp:192,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/utils.cpp:193,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/utils.cpp:194,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/utils.cpp:195,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/utils.cpp:196,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/utils.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ' ses'
    - proxy_type
    - flags
    - proxy_peers
    argTypes:
    - lt::session
    - int
    - test_transfer_flags_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 199
    functionName: set_proxy
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - settings_pack::set_int
    - settings_pack::set_bool
    - settings_pack::set_str
    linkageType: ''
    returnType: void
    signature: "void set_proxy(lt::session& ses, int proxy_type, test_transfer_flags_t
      const flags\n\t, bool const proxy_peers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/utils.cpp:205,1
    - Dst: set_alert_notify
      Src: /src/libtorrent/simulation/utils.cpp:209,1
    - Dst: post
      Src: /src/libtorrent/simulation/utils.cpp:210,1
    - Dst: get_context
      Src: /src/libtorrent/simulation/utils.cpp:210,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/utils.cpp:213,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/utils.cpp:214,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/utils.cpp:218,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/utils.cpp:219,1
    - Dst: lt::duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/utils.cpp:221,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/utils.cpp:222,1
    - Dst: message
      Src: /src/libtorrent/simulation/utils.cpp:223,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/utils.cpp:225,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/utils.cpp:228,1
    - Dst: what
      Src: /src/libtorrent/simulation/utils.cpp:229,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/utils.cpp:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - ' ses'
    - on_alert
    - idx
    argTypes:
    - lt::session
    - std::function<void(lt::session&, lt::alert const*)>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 234
    functionName: print_alerts
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 54
    functionsReached:
    - time_now
    - get_context
    - post
    - std::vector::clear
    - lt::duration_cast<lt::seconds>
    - message
    - set_alert_notify
    - lt::duration_cast<lt::milliseconds>
    - timestamp
    - what
    - on_alert
    - std::printf
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: "void print_alerts(lt::session& ses\n\t, std::function<void(lt::session&,
      lt::alert const*)> on_alert\n\t, int const idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/utils.cpp:239,1
    - Dst: std::make_unique<sim::asio::io_context>
      Src: /src/libtorrent/simulation/utils.cpp:240,1
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/simulation/utils.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' sim'
    - i
    argTypes:
    - sim::simulation
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: make_io_context
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<sim::asio::io_context>
    - std::snprintf
    - lt::make_address_v4
    linkageType: ''
    returnType: std::unique_ptr<sim::asio::io_context>
    signature: std::unique_ptr<sim::asio::io_context> make_io_context(sim::simulation&
      sim, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/utils.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: rand_sha256
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash rand_sha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/utils.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: rand_sha1
    functionSourceFile: /src/libtorrent/simulation/utils.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash rand_sha1()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::address::is_v4
      Src: /src/libtorrent/simulation/setup_swarm.cpp:76,1
    - Dst: lt::address::to_v4
      Src: /src/libtorrent/simulation/setup_swarm.cpp:77,1
    - Dst: lt::address::to_v6
      Src: /src/libtorrent/simulation/setup_swarm.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - lt::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: transfer_rate
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 0
    functionsReached:
    - lt::address::is_v4
    - lt::address::to_v4
    - lt::address::to_v6
    linkageType: ''
    returnType: int
    signature: int transfer_rate(lt::address ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::address::is_v4
      Src: /src/libtorrent/simulation/setup_swarm.cpp:76,1
    - Dst: lt::address::to_v4
      Src: /src/libtorrent/simulation/setup_swarm.cpp:77,1
    - Dst: lt::address::to_v6
      Src: /src/libtorrent/simulation/setup_swarm.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - lt::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: transfer_rate
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 0
    functionsReached:
    - lt::address::is_v4
    - lt::address::to_v4
    - lt::address::to_v6
    linkageType: ''
    returnType: int
    signature: int transfer_rate(lt::address ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/setup_swarm.cpp:93,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/setup_swarm.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - kb_per_second
    - send_queue_size
    - latency
    argTypes:
    - int
    - int
    - chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: dsl_config::dsl_config
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::total_milliseconds
    linkageType: ''
    returnType: void
    signature: void dsl_config::dsl_config(int kb_per_second, int send_queue_size,
      chrono::milliseconds latency)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transfer_rate
      Src: /src/libtorrent/simulation/setup_swarm.cpp:99,1
    - Dst: find
      Src: /src/libtorrent/simulation/setup_swarm.cpp:102,1
    - Dst: end
      Src: /src/libtorrent/simulation/setup_swarm.cpp:103,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/setup_swarm.cpp:103,1
    - Dst: insert
      Src: /src/libtorrent/simulation/setup_swarm.cpp:104,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/setup_swarm.cpp:104,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:104,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/setup_swarm.cpp:105,1
    - Dst: lt::duration_cast<duration>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:107,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/setup_swarm.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: dsl_config::incoming_route
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 0
    functionsReached:
    - lt::duration_cast<duration>
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - find
    - get_io_context
    - sim::route
    - transfer_rate
    linkageType: ''
    returnType: sim::route
    signature: sim::route dsl_config::incoming_route(asio::ip::address ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transfer_rate
      Src: /src/libtorrent/simulation/setup_swarm.cpp:114,1
    - Dst: find
      Src: /src/libtorrent/simulation/setup_swarm.cpp:117,1
    - Dst: end
      Src: /src/libtorrent/simulation/setup_swarm.cpp:118,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/setup_swarm.cpp:118,1
    - Dst: insert
      Src: /src/libtorrent/simulation/setup_swarm.cpp:119,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/setup_swarm.cpp:119,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:119,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/setup_swarm.cpp:120,1
    - Dst: lt::duration_cast<duration>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:121,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/setup_swarm.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: dsl_config::outgoing_route
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 0
    functionsReached:
    - lt::duration_cast<duration>
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - find
    - get_io_context
    - sim::route
    - transfer_rate
    linkageType: ''
    returnType: sim::route
    signature: sim::route dsl_config::outgoing_route(asio::ip::address ip)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_log_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:132,1
    - Dst: alert_cast<session_stats_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:139,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:140,1
    - Dst: alert_cast<block_finished_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:141,1
    - Dst: alert_cast<block_downloading_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: should_print
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 2
    functionsReached:
    - alert_cast<block_downloading_alert>
    - alert_cast<peer_log_alert>
    - alert_cast<session_stats_alert>
    - alert_cast<piece_finished_alert>
    - alert_cast<block_finished_alert>
    linkageType: ''
    returnType: bool
    signature: bool should_print(lt::alert* a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alert_cast<peer_log_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:132,1
    - Dst: alert_cast<session_stats_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:139,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:140,1
    - Dst: alert_cast<block_finished_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:141,1
    - Dst: alert_cast<block_downloading_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: should_print
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 2
    functionsReached:
    - alert_cast<block_downloading_alert>
    - alert_cast<peer_log_alert>
    - alert_cast<session_stats_alert>
    - alert_cast<piece_finished_alert>
    - alert_cast<block_finished_alert>
    linkageType: ''
    returnType: bool
    signature: bool should_print(lt::alert* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsl_config::dsl_config
      Src: /src/libtorrent/simulation/setup_swarm.cpp:157,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/setup_swarm.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - num_nodes
    - type
    - new_session
    - add_torrent
    - on_alert
    - terminate
    argTypes:
    - int
    - swarm_test_t
    - std::function<void(lt::settings_pack&)>
    - std::function<void(lt::add_torrent_params&)>
    - std::function<void(lt::alert const*, lt::session&)>
    - std::function<bool(int, lt::session&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: setup_swarm
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 3
    functionsReached:
    - setup_swarm
    - dsl_config::dsl_config
    linkageType: ''
    returnType: void
    signature: "void setup_swarm(int num_nodes\n\t, swarm_test_t type\n\t, std::function<void(lt::settings_pack&)>
      new_session\n\t, std::function<void(lt::add_torrent_params&)> add_torrent\n\t,
      std::function<void(lt::alert const*, lt::session&)> on_alert\n\t, std::function<bool(int,
      lt::session&)> terminate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/setup_swarm.cpp:172,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/setup_swarm.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - num_nodes
    - type
    - ' sim'
    - new_session
    - add_torrent
    - on_alert
    - terminate
    argTypes:
    - int
    - swarm_test_t
    - sim::simulation
    - std::function<void(lt::settings_pack&)>
    - std::function<void(lt::add_torrent_params&)>
    - std::function<void(lt::alert const*, lt::session&)>
    - std::function<bool(int, lt::session&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: setup_swarm
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 4
    functionsReached:
    - setup_swarm
    - settings
    linkageType: ''
    returnType: void
    signature: "void setup_swarm(int num_nodes\n\t, swarm_test_t type\n\t, sim::simulation&
      sim\n\t, std::function<void(lt::settings_pack&)> new_session\n\t, std::function<void(lt::add_torrent_params&)>
      add_torrent\n\t, std::function<void(lt::alert const*, lt::session&)> on_alert\n\t,
      std::function<bool(int, lt::session&)> terminate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/setup_swarm.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - num_nodes
    - type
    - ' sim'
    - ' default_settings'
    - ' default_add_torrent'
    - new_session
    - add_torrent
    - on_alert
    - terminate
    argTypes:
    - int
    - swarm_test_t
    - sim::simulation
    - lt::settings_pack
    - lt::add_torrent_params
    - std::function<void(lt::settings_pack&)>
    - std::function<void(lt::add_torrent_params&)>
    - std::function<void(lt::alert const*, lt::session&)>
    - std::function<bool(int, lt::session&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 200
    functionName: setup_swarm
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 5
    functionsReached:
    - setup_swarm
    linkageType: ''
    returnType: void
    signature: "void setup_swarm(int num_nodes\n\t, swarm_test_t type\n\t, sim::simulation&
      sim\n\t, lt::settings_pack const& default_settings\n\t, lt::add_torrent_params
      const& default_add_torrent\n\t, std::function<void(lt::settings_pack&)> new_session\n\t,
      std::function<void(lt::add_torrent_params&)> add_torrent\n\t, std::function<void(lt::alert
      const*, lt::session&)> on_alert\n\t, std::function<bool(int, lt::session&)>
      terminate)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: unit_test::test_counter
      Src: /src/libtorrent/simulation/setup_swarm.cpp:222,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/setup_swarm.cpp:223,1
    - Dst: libtorrent::create_directory
      Src: /src/libtorrent/simulation/setup_swarm.cpp:229,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/setup_swarm.cpp:230,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/setup_swarm.cpp:231,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/simulation/setup_swarm.cpp:231,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/setup_swarm.cpp:232,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/setup_swarm.cpp:233,1
    - Dst: create_test_torrent
      Src: /src/libtorrent/simulation/setup_swarm.cpp:237,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/setup_swarm.cpp:242,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/setup_swarm.cpp:252,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/setup_swarm.cpp:253,1
    - Dst: addr
      Src: /src/libtorrent/simulation/setup_swarm.cpp:253,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/setup_swarm.cpp:254,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/setup_swarm.cpp:255,1
    - Dst: addr
      Src: /src/libtorrent/simulation/setup_swarm.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/setup_swarm.cpp:256,1
    - Dst: std::make_shared<sim::asio::io_context>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:256,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/setup_swarm.cpp:263,1
    - Dst: lt::session_params::settings::set_str
      Src: /src/libtorrent/simulation/setup_swarm.cpp:264,1
    - Dst: lt::peer_id::to_string
      Src: /src/libtorrent/simulation/setup_swarm.cpp:264,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/setup_swarm.cpp:272,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/setup_swarm.cpp:278,1
    - Dst: new_session
      Src: /src/libtorrent/simulation/setup_swarm.cpp:282,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:285,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/setup_swarm.cpp:285,1
    - Dst: init_session
      Src: /src/libtorrent/simulation/setup_swarm.cpp:286,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/setup_swarm.cpp:287,1
    - Dst: lt::ip_filter::add_rule
      Src: /src/libtorrent/simulation/setup_swarm.cpp:293,1
    - Dst: addr
      Src: /src/libtorrent/simulation/setup_swarm.cpp:293,1
    - Dst: addr
      Src: /src/libtorrent/simulation/setup_swarm.cpp:293,1
    - Dst: lt::ip_filter::add_rule
      Src: /src/libtorrent/simulation/setup_swarm.cpp:294,1
    - Dst: addr
      Src: /src/libtorrent/simulation/setup_swarm.cpp:294,1
    - Dst: addr
      Src: /src/libtorrent/simulation/setup_swarm.cpp:294,1
    - Dst: std::shared_ptr::set_ip_filter
      Src: /src/libtorrent/simulation/setup_swarm.cpp:295,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/setup_swarm.cpp:305,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/setup_swarm.cpp:311,1
    - Dst: add_torrent
      Src: /src/libtorrent/simulation/setup_swarm.cpp:320,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/setup_swarm.cpp:321,1
    - Dst: std::shared_ptr::set_alert_notify
      Src: /src/libtorrent/simulation/setup_swarm.cpp:323,1
    - Dst: post
      Src: /src/libtorrent/simulation/setup_swarm.cpp:326,1
    - Dst: get
      Src: /src/libtorrent/simulation/setup_swarm.cpp:328,1
    - Dst: lt::session*::pop_alerts
      Src: /src/libtorrent/simulation/setup_swarm.cpp:334,1
    - Dst: libtorrent::create_directory
      Src: /src/libtorrent/simulation/setup_swarm.cpp:343,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/setup_swarm.cpp:344,1
    - Dst: ::fopen
      Src: /src/libtorrent/simulation/setup_swarm.cpp:345,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/setup_swarm.cpp:351,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/setup_swarm.cpp:352,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:353,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/setup_swarm.cpp:356,1
    - Dst: lt::aux::file_pointer::file
      Src: /src/libtorrent/simulation/setup_swarm.cpp:356,1
    - Dst: what
      Src: /src/libtorrent/simulation/setup_swarm.cpp:359,1
    - Dst: message
      Src: /src/libtorrent/simulation/setup_swarm.cpp:360,1
    - Dst: should_print
      Src: /src/libtorrent/simulation/setup_swarm.cpp:367,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/setup_swarm.cpp:369,1
    - Dst: what
      Src: /src/libtorrent/simulation/setup_swarm.cpp:372,1
    - Dst: message
      Src: /src/libtorrent/simulation/setup_swarm.cpp:373,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/setup_swarm.cpp:377,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/setup_swarm.cpp:389,1
    - Dst: lt::torrent_handle::connect_peer
      Src: /src/libtorrent/simulation/setup_swarm.cpp:390,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/setup_swarm.cpp:390,1
    - Dst: addr
      Src: /src/libtorrent/simulation/setup_swarm.cpp:390,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/setup_swarm.cpp:394,1
    - Dst: terminate
      Src: /src/libtorrent/simulation/setup_swarm.cpp:406,1
    - Dst: all_of
      Src: /src/libtorrent/simulation/setup_swarm.cpp:410,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/setup_swarm.cpp:410,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/setup_swarm.cpp:410,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/setup_swarm.cpp:412,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/setup_swarm.cpp:416,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/setup_swarm.cpp:423,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/setup_swarm.cpp:426,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/setup_swarm.cpp:428,1
    - Dst: abort
      Src: /src/libtorrent/simulation/setup_swarm.cpp:428,1
    - Dst: reset
      Src: /src/libtorrent/simulation/setup_swarm.cpp:429,1
    - Dst: lt::deadline_timer::expires_after
      Src: /src/libtorrent/simulation/setup_swarm.cpp:436,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/setup_swarm.cpp:436,1
    - Dst: lt::deadline_timer::async_wait
      Src: /src/libtorrent/simulation/setup_swarm.cpp:437,1
    - Dst: lt::deadline_timer::expires_after
      Src: /src/libtorrent/simulation/setup_swarm.cpp:440,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/setup_swarm.cpp:440,1
    - Dst: lt::deadline_timer::async_wait
      Src: /src/libtorrent/simulation/setup_swarm.cpp:441,1
    - Dst: run
      Src: /src/libtorrent/simulation/setup_swarm.cpp:443,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 102
    argCount: 10
    argNames:
    - num_nodes
    - type
    - ' sim'
    - ' default_settings'
    - ' default_add_torrent'
    - init_session
    - new_session
    - add_torrent
    - on_alert
    - terminate
    argTypes:
    - int
    - swarm_test_t
    - sim::simulation
    - lt::settings_pack
    - lt::add_torrent_params
    - std::function<void(lt::session&)>
    - std::function<void(lt::settings_pack&)>
    - std::function<void(lt::add_torrent_params&)>
    - std::function<void(lt::alert const*, lt::session&)>
    - std::function<bool(int, lt::session&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 444
    functionName: setup_swarm
    functionSourceFile: /src/libtorrent/simulation/setup_swarm.cpp
    functionUses: 5
    functionsReached:
    - unit_test::test_counter
    - std::shared_ptr::async_add_torrent
    - lt::error_code::message
    - std::vector::size
    - std::shared_ptr::set_ip_filter
    - std::uint32_t
    - std::vector::begin
    - timestamp
    - on_alert
    - addr
    - lt::alert_cast<lt::add_torrent_alert>
    - add_torrent
    - all_of
    - std::vector::end
    - lt::deadline_timer::expires_after
    - lt::deadline_timer::async_wait
    - lt::aux::file_pointer::file
    - reset
    - std::shared_ptr::set_alert_notify
    - message
    - Catch::Timer::getElapsedNanoseconds
    - libtorrent::combine_path
    - std::make_shared<sim::asio::io_context>
    - lt::session_params::settings::set_str
    - ::fopen
    - abort
    - should_print
    - libtorrent::aux::random_bytes
    - std::printf
    - TEST_ERROR
    - create_test_torrent
    - init_session
    - libtorrent::create_directory
    - save_path
    - std::vector::back
    - run
    - std::snprintf
    - lt::session*::pop_alerts
    - std::make_shared<lt::session>
    - lt::ip_filter::add_rule
    - is_seed
    - lt::torrent_handle::connect_peer
    - new_session
    - lt::peer_id::to_string
    - terminate
    - libtorrent::create_torrent::create_torrent
    - std::vector::push_back
    - post
    - std::string::c_str
    - lt::duration_cast<lt::milliseconds>
    - test_disk
    - std::fprintf
    - local_endpoint
    - get
    - what
    linkageType: ''
    returnType: void
    signature: "void setup_swarm(int num_nodes\n\t, swarm_test_t const type\n\t, sim::simulation&
      sim\n\t, lt::settings_pack const& default_settings\n\t, lt::add_torrent_params
      const& default_add_torrent\n\t, std::function<void(lt::session&)> init_session\n\t,
      std::function<void(lt::settings_pack&)> new_session\n\t, std::function<void(lt::add_torrent_params&)>
      add_torrent\n\t, std::function<void(lt::alert const*, lt::session&)> on_alert\n\t,
      std::function<bool(int, lt::session&)> terminate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/libtorrent/simulation/test_tracker.cpp:64,1
    - Dst: lt::duration_cast<seconds>
      Src: /src/libtorrent/simulation/test_tracker.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Tp1
    - Tp2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: eq
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 2
    functionsReached:
    - lt::duration_cast<seconds>
    - std::abs
    linkageType: ''
    returnType: bool
    signature: bool eq(Tp1 const lhs, Tp2 const rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:75,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:82,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:90,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_tracker.cpp:90,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:93,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:94,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:99,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:103,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_tracker.cpp:106,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:111,1
    - Dst: lt::alert_cast<lt::tracker_announce_alert>
      Src: /src/libtorrent/simulation/test_tracker.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:119,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_tracker.cpp:119,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:132,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:133,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:133,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:134,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:134,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:138,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:143,1
    - Dst: eq
      Src: /src/libtorrent/simulation/test_tracker.cpp:143,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_tracker.cpp:143,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:143,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:146,1
    - Dst: eq
      Src: /src/libtorrent/simulation/test_tracker.cpp:146,1
    - Dst: duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/test_tracker.cpp:146,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - interval
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 149
    functionName: test_interval
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<lt::seconds>
    - make_address_v4
    - std::vector::size
    - lt::settings_pack::set_str
    - timestamp
    - trackers::push_back
    - lt::alert_cast<lt::tracker_announce_alert>
    - Catch::Timer::getElapsedNanoseconds
    - sim::http_server::register_handler
    - duration_cast<lt::milliseconds>
    - sim::send_response
    - time_now
    - TEST_EQUAL
    - setup_swarm
    - std::snprintf
    - TEST_CHECK
    - std::vector::push_back
    - settings
    - eq
    linkageType: ''
    returnType: void
    signature: void test_interval(int interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:160,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:169,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:173,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:174,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:177,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:178,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:181,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_tracker.cpp:184,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:202,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:210,1
    - Dst: substr
      Src: /src/libtorrent/simulation/test_tracker.cpp:211,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:212,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_tracker.cpp:212,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:218,1
    - Dst: size
      Src: /src/libtorrent/simulation/test_tracker.cpp:218,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:219,1
    - Dst: front
      Src: /src/libtorrent/simulation/test_tracker.cpp:219,1
    - Dst: span<std::string const>
      Src: /src/libtorrent/simulation/test_tracker.cpp:220,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:221,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:221,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:223,1
    - Dst: back
      Src: /src/libtorrent/simulation/test_tracker.cpp:223,1
    - Dst: span<std::string const>
      Src: /src/libtorrent/simulation/test_tracker.cpp:224,1
    - Dst: size
      Src: /src/libtorrent/simulation/test_tracker.cpp:224,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:225,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:225,1
    - Dst: std::map::begin
      Src: /src/libtorrent/simulation/test_tracker.cpp:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - type
    - add_torrent
    - on_alert
    argTypes:
    - swarm_test_t
    - AddTorrent
    - OnAlert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 228
    functionName: test_event
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::vector::size
    - std::move
    - span<std::string const>
    - substr
    - push_back
    - std::map::begin
    - sim::http_server::register_handler
    - front
    - back
    - sim::send_response
    - TEST_EQUAL
    - setup_swarm
    - std::snprintf
    - size
    - TEST_CHECK
    - std::vector::push_back
    - find
    - settings
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> test_event(swarm_test_t const type\n\t, AddTorrent
      add_torrent\n\t, OnAlert on_alert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_event
      Src: /src/libtorrent/simulation/test_tracker.cpp:232,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:234,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:240,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/test_tracker.cpp:240,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/test_tracker.cpp:240,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/test_tracker.cpp:240,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - trackers::push_back
    - test_event
    - std::count_if
    - find
    - auto::end
    - auto::begin
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(event_completed_downloading)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_event
      Src: /src/libtorrent/simulation/test_tracker.cpp:246,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_tracker.cpp:249,1
    - Dst: auto*::handle::replace_trackers
      Src: /src/libtorrent/simulation/test_tracker.cpp:250,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:255,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/test_tracker.cpp:255,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/test_tracker.cpp:255,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/test_tracker.cpp:255,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 257
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_event
    - alert_cast<add_torrent_alert>
    - auto*::handle::replace_trackers
    - std::count_if
    - find
    - auto::end
    - auto::begin
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(event_completed_downloading_replace_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_event
      Src: /src/libtorrent/simulation/test_tracker.cpp:261,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:263,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:270,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/test_tracker.cpp:270,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/test_tracker.cpp:270,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/test_tracker.cpp:270,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - trackers::push_back
    - test_event
    - std::count_if
    - find
    - auto::end
    - auto::begin
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(event_completed_seeding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_event
      Src: /src/libtorrent/simulation/test_tracker.cpp:277,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_tracker.cpp:280,1
    - Dst: auto*::handle::replace_trackers
      Src: /src/libtorrent/simulation/test_tracker.cpp:281,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:287,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/test_tracker.cpp:287,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/test_tracker.cpp:287,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/test_tracker.cpp:287,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 289
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_event
    - alert_cast<add_torrent_alert>
    - auto*::handle::replace_trackers
    - std::count_if
    - find
    - auto::end
    - auto::begin
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(event_completed_seeding_replace_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_interval
      Src: /src/libtorrent/simulation/test_tracker.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_interval
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(announce_interval_440)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_interval
      Src: /src/libtorrent/simulation/test_tracker.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_interval
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(announce_interval_1800)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_interval
      Src: /src/libtorrent/simulation/test_tracker.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_interval
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(announce_interval_1200)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: sim_config
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sim_config(bool ipv6 = true)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:318,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:318,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:320,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:320,1
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_tracker.cpp:321,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:321,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:325,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:325,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:327,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:327,1
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_tracker.cpp:328,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:328,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:332,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:332,1
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_tracker.cpp:333,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:333,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:337,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:337,1
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_tracker.cpp:338,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:338,1
    - Dst: sim::default_config::hostname_lookup
      Src: /src/libtorrent/simulation/test_tracker.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - ' requestor'
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - asio::ip::address
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 342
    functionName: hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - make_address_v4
    - sim::default_config::hostname_lookup
    - libtorrent::total_milliseconds
    - duration_cast<chrono::high_resolution_clock::duration>
    - make_address_v6
    linkageType: ''
    returnType: chrono::high_resolution_clock::duration
    signature: "chrono::high_resolution_clock::duration hostname_lookup(\n\t\tasio::ip::address
      const& requestor\n\t\t, std::string hostname\n\t\t, std::vector<asio::ip::address>&
      result\n\t\t, boost::system::error_code& ec) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/test_tracker.cpp:349,1
    - Dst: lt::session*::get_context
      Src: /src/libtorrent/simulation/test_tracker.cpp:349,1
    - Dst: lt::session*::pop_alerts
      Src: /src/libtorrent/simulation/test_tracker.cpp:351,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_tracker.cpp:355,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/test_tracker.cpp:356,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/test_tracker.cpp:357,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_tracker.cpp:358,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_tracker.cpp:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ses
    argTypes:
    - lt::session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 362
    functionName: on_alert_notify
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - lt::session*::get_context
    - post
    - message
    - std::uint32_t
    - lt::session*::pop_alerts
    - lt::duration_cast<lt::milliseconds>
    - timestamp
    - std::printf
    linkageType: ''
    returnType: void
    signature: void on_alert_notify(lt::session* ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:370,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:381,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:386,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:387,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:387,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:388,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:388,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:390,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:391,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:398,1
    - Dst: make_address
      Src: /src/libtorrent/simulation/test_tracker.cpp:398,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:401,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:402,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:403,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_tracker.cpp:404,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/simulation/test_tracker.cpp:406,1
    - Dst: auto::set_alert_notify
      Src: /src/libtorrent/simulation/test_tracker.cpp:408,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:408,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/test_tracker.cpp:408,1
    - Dst: lt::add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/simulation/test_tracker.cpp:413,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:415,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:416,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:419,1
    - Dst: auto::get_torrents
      Src: /src/libtorrent/simulation/test_tracker.cpp:422,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_tracker.cpp:425,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:430,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_tracker.cpp:433,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_tracker.cpp:434,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_tracker.cpp:437,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 441
    functionName: test_announce
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - auto::get
    - lt::settings_pack::set_str
    - sim::simulation::run
    - Catch::Timer::getElapsedNanoseconds
    - sim::http_server::register_handler
    - lt::add_torrent_params::trackers::push_back
    - auto::set_alert_notify
    - make_address
    - sim::send_response
    - TEST_EQUAL
    - pause
    - lt::add_torrent_params::info_hashes::v1::assign
    - std::snprintf
    - auto::abort
    - auto::get_torrents
    - TEST_CHECK
    - std::bind
    - auto::async_add_torrent
    - std::vector::push_back
    - auto::reset
    - lt::settings_pack::set_int
    - find
    - std::make_unique<lt::session>
    - settings
    linkageType: ''
    returnType: void
    signature: void test_announce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_announce
      Src: /src/libtorrent/simulation/test_tracker.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_announce
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(announce_ip_port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:457,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:458,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:471,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:476,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:477,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:477,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:479,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:480,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:483,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:488,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:490,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:490,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:492,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:493,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:504,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:505,1
    - Dst: make_address
      Src: /src/libtorrent/simulation/test_tracker.cpp:505,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:506,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:507,1
    - Dst: make_address
      Src: /src/libtorrent/simulation/test_tracker.cpp:507,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:511,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:514,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/simulation/test_tracker.cpp:516,1
    - Dst: auto::set_alert_notify
      Src: /src/libtorrent/simulation/test_tracker.cpp:518,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:518,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/test_tracker.cpp:518,1
    - Dst: lt::add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/simulation/test_tracker.cpp:523,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:526,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:527,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:530,1
    - Dst: auto::get_torrents
      Src: /src/libtorrent/simulation/test_tracker.cpp:533,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_tracker.cpp:536,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:541,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_tracker.cpp:544,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_tracker.cpp:545,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_tracker.cpp:548,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:551,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - listen_interfaces
    - expect_v4
    - expect_v6
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 553
    functionName: test_ipv6_support
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - auto::get
    - lt::settings_pack::set_str
    - sim::simulation::run
    - Catch::Timer::getElapsedNanoseconds
    - sim::http_server::register_handler
    - lt::add_torrent_params::trackers::push_back
    - auto::set_alert_notify
    - make_address
    - make_address_v6
    - sim::send_response
    - TEST_EQUAL
    - pause
    - lt::add_torrent_params::info_hashes::v1::assign
    - std::snprintf
    - auto::abort
    - auto::get_torrents
    - TEST_CHECK
    - std::bind
    - auto::async_add_torrent
    - std::vector::push_back
    - auto::reset
    - find
    - std::make_unique<lt::session>
    - settings
    linkageType: ''
    returnType: void
    signature: "void test_ipv6_support(char const* listen_interfaces\n\t, int const
      expect_v4, int const expect_v6)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:562,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:563,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:576,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:577,1
    - Dst: make_address
      Src: /src/libtorrent/simulation/test_tracker.cpp:577,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:578,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:579,1
    - Dst: make_address
      Src: /src/libtorrent/simulation/test_tracker.cpp:579,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:583,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:586,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/simulation/test_tracker.cpp:588,1
    - Dst: auto::set_alert_notify
      Src: /src/libtorrent/simulation/test_tracker.cpp:592,1
    - Dst: post
      Src: /src/libtorrent/simulation/test_tracker.cpp:593,1
    - Dst: auto::get_context
      Src: /src/libtorrent/simulation/test_tracker.cpp:593,1
    - Dst: auto::pop_alerts
      Src: /src/libtorrent/simulation/test_tracker.cpp:595,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_tracker.cpp:599,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/test_tracker.cpp:600,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/test_tracker.cpp:601,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_tracker.cpp:602,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_tracker.cpp:603,1
    - Dst: alert_cast<tracker_announce_alert>
      Src: /src/libtorrent/simulation/test_tracker.cpp:604,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:606,1
    - Dst: alert_cast<tracker_error_alert>
      Src: /src/libtorrent/simulation/test_tracker.cpp:611,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_tracker.cpp:613,1
    - Dst: lt::add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/simulation/test_tracker.cpp:622,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:624,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:625,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:628,1
    - Dst: auto::get_torrents
      Src: /src/libtorrent/simulation/test_tracker.cpp:631,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_tracker.cpp:634,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:639,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_tracker.cpp:642,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_tracker.cpp:643,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_tracker.cpp:646,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:649,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - listen_interfaces
    - expect_v4
    - expect_v6
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 651
    functionName: test_udpv6_support
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::uint32_t
    - lt::settings_pack::set_str
    - timestamp
    - sim::simulation::run
    - message
    - Catch::Timer::getElapsedNanoseconds
    - alert_cast<tracker_error_alert>
    - lt::add_torrent_params::trackers::push_back
    - auto::set_alert_notify
    - make_address
    - make_address_v6
    - std::printf
    - TEST_ERROR
    - TEST_EQUAL
    - pause
    - libtorrent::aux::is_v4
    - lt::add_torrent_params::info_hashes::v1::assign
    - std::snprintf
    - auto::abort
    - auto::get_torrents
    - auto::async_add_torrent
    - std::vector::push_back
    - auto::reset
    - post
    - std::make_unique<lt::session>
    - auto::pop_alerts
    - lt::duration_cast<lt::milliseconds>
    - settings
    - alert_cast<tracker_announce_alert>
    - auto::get_context
    linkageType: ''
    returnType: void
    signature: "void test_udpv6_support(char const* listen_interfaces\n\t, int const
      expect_v4, int const expect_v6)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 659
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6_support)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(announce_no_listen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_udpv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_udpv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(announce_udp_no_listen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 678
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6_support_bind_v4_v6_any)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6_support_bind_v6_any)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6_support_bind_v4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6_support_bind_v6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6_support_bind_v6_3interfaces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6_support_bind_v4_v6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ipv6_support
      Src: /src/libtorrent/simulation/test_tracker.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ipv6_support
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ipv6_support_bind_v6_v4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:727,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:728,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:729,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:731,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:732,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:741,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:742,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:743,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:744,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_tracker.cpp:745,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:749,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:750,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:751,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/simulation/test_tracker.cpp:752,1
    - Dst: auto::set_alert_notify
      Src: /src/libtorrent/simulation/test_tracker.cpp:754,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:754,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/test_tracker.cpp:754,1
    - Dst: lt::add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/simulation/test_tracker.cpp:759,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_tracker.cpp:760,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:761,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:764,1
    - Dst: auto::get_torrents
      Src: /src/libtorrent/simulation/test_tracker.cpp:767,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:768,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:768,1
    - Dst: std::vector::front
      Src: /src/libtorrent/simulation/test_tracker.cpp:769,1
    - Dst: test1
      Src: /src/libtorrent/simulation/test_tracker.cpp:770,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:773,1
    - Dst: auto::get_torrents
      Src: /src/libtorrent/simulation/test_tracker.cpp:776,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:777,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:777,1
    - Dst: std::vector::front
      Src: /src/libtorrent/simulation/test_tracker.cpp:778,1
    - Dst: test2
      Src: /src/libtorrent/simulation/test_tracker.cpp:779,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:783,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_tracker.cpp:786,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_tracker.cpp:787,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_tracker.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 4
    argNames:
    - setup
    - a
    - test1
    - test2
    argTypes:
    - Setup
    - Announce
    - Test1
    - Test2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 791
    functionName: tracker_test
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test2
    - make_address_v4
    - std::vector::size
    - auto::get
    - std::vector::front
    - setup
    - sim::simulation::run
    - test1
    - Catch::Timer::getElapsedNanoseconds
    - sim::http_server::register_handler
    - auto::set_alert_notify
    - make_address_v6
    - TEST_EQUAL
    - lt::add_torrent_params::info_hashes::v1::assign
    - auto::abort
    - auto::get_torrents
    - std::bind
    - auto::async_add_torrent
    - auto::reset
    - sim::http_server::register_redirect
    - std::make_unique<lt::session>
    - settings
    linkageType: ''
    returnType: void
    signature: "void tracker_test(Setup setup, Announce a, Test1 test1, Test2 test2\n\t,
      char const* url_path = \"/announce\"\n\t, char const* redirect = \"http://123.0.0.2/announce\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:796,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - a
    - test1
    - test2
    argTypes:
    - Announce
    - Test1
    - Test2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 801
    functionName: tracker_test
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 1
    functionsReached:
    - trackers::push_back
    - tracker_test
    linkageType: ''
    returnType: void
    signature: void tracker_test(Announce a, Test1 test1, Test2 test2, char const*
      url_path = "/announce")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:806,1
    - Dst: trackers
      Src: /src/libtorrent/simulation/test_tracker.cpp:808,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:810,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:810,1
    - Dst: t
      Src: /src/libtorrent/simulation/test_tracker.cpp:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - t
    argTypes:
    - Announce
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 816
    functionName: announce_entry_test
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - trackers
    - tracker_test
    - t
    linkageType: ''
    returnType: void
    signature: void announce_entry_test(Announce a, Test t, char const* url_path =
      "/announce")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:828,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:828,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:829,1
    - Dst: lt::session::session
      Src: /src/libtorrent/simulation/test_tracker.cpp:830,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_tracker.cpp:832,1
    - Dst: lt::add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/simulation/test_tracker.cpp:837,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:838,1
    - Dst: std::unique_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:839,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:842,1
    - Dst: std::unique_ptr::get_torrents
      Src: /src/libtorrent/simulation/test_tracker.cpp:845,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:846,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:846,1
    - Dst: std::vector::front
      Src: /src/libtorrent/simulation/test_tracker.cpp:847,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:852,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_tracker.cpp:856,1
    - Dst: alert_cast<lt::tracker_announce_alert>
      Src: /src/libtorrent/simulation/test_tracker.cpp:857,1
    - Dst: std::unique_ptr::get_torrents
      Src: /src/libtorrent/simulation/test_tracker.cpp:860,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:861,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:861,1
    - Dst: std::vector::front
      Src: /src/libtorrent/simulation/test_tracker.cpp:862,1
    - Dst: torrent_handle::set_flags
      Src: /src/libtorrent/simulation/test_tracker.cpp:863,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:867,1
    - Dst: std::unique_ptr::abort
      Src: /src/libtorrent/simulation/test_tracker.cpp:870,1
    - Dst: std::unique_ptr::reset
      Src: /src/libtorrent/simulation/test_tracker.cpp:871,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_tracker.cpp:874,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 877
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::get_torrents
    - TEST_EQUAL
    - std::unique_ptr::abort
    - make_address_v4
    - std::vector::size
    - print_alerts
    - std::unique_ptr::async_add_torrent
    - std::vector::front
    - lt::add_torrent_params::info_hashes::v1::assign
    - Catch::Timer::getElapsedNanoseconds
    - lt::add_torrent_params::trackers::push_back
    - sim::simulation::run
    - torrent_handle::set_flags
    - lt::session::session
    - settings
    - alert_cast<lt::tracker_announce_alert>
    - make_address_v6
    - std::unique_ptr::reset
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(omit_stop_event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: announce_entry_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:881,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:885,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:888,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:889,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:893,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:894,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:894,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:897,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:898,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:898,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 902
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - std::snprintf
    - endpoints::size
    - sim::send_response
    - announce_entry_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:906,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:908,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:913,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:916,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:917,1
    - Dst: trackers
      Src: /src/libtorrent/simulation/test_tracker.cpp:921,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:923,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:923,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:925,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:926,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:926,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:929,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:930,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:930,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 936
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - trackers::push_back
    - std::vector::size
    - error_code
    - trackers
    - std::snprintf
    - tracker_test
    - endpoints::size
    - sim::send_response
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_no_announce_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:944,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:950,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:953,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:957,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:958,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_tracker.cpp:964,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_tracker.cpp:965,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:966,1
    - Dst: std::make_unique<lt::session>
      Src: /src/libtorrent/simulation/test_tracker.cpp:967,1
    - Dst: auto::set_alert_notify
      Src: /src/libtorrent/simulation/test_tracker.cpp:969,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:969,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/test_tracker.cpp:969,1
    - Dst: lt::add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/simulation/test_tracker.cpp:974,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:975,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:976,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:985,1
    - Dst: auto::pause
      Src: /src/libtorrent/simulation/test_tracker.cpp:986,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:991,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:997,1
    - Dst: auto::resume
      Src: /src/libtorrent/simulation/test_tracker.cpp:998,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:1001,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1007,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:1010,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_tracker.cpp:1016,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_tracker.cpp:1017,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_tracker.cpp:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 1021
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - auto::get
    - seconds
    - sim::simulation::run
    - auto::resume
    - sim::http_server::register_handler
    - lt::add_torrent_params::trackers::push_back
    - auto::set_alert_notify
    - make_address_v6
    - sim::send_response
    - TEST_EQUAL
    - lt::add_torrent_params::info_hashes::v1::assign
    - std::snprintf
    - auto::abort
    - std::bind
    - auto::async_add_torrent
    - auto::reset
    - std::make_unique<lt::session>
    - auto::pause
    - settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(paused_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: announce_entry_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1025,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1029,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1032,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1033,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1037,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1038,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1038,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1041,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1042,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:1042,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1023
    functionDepth: 3
    functionLinenumber: 1023
    functionLinenumberEnd: 1046
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - std::snprintf
    - endpoints::size
    - sim::send_response
    - announce_entry_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_warning)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: announce_entry_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1050,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1054,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1057,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1059,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1063,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1064,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1064,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1067,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1068,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:1068,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1069,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1070,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1071,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1075
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - std::snprintf
    - endpoints::size
    - sim::send_response
    - announce_entry_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_scrape_data_in_announce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1079,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1083,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1086,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1088,1
    - Dst: scrape_tracker
      Src: /src/libtorrent/simulation/test_tracker.cpp:1092,1
    - Dst: trackers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1096,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1098,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1098,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1100,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1103,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1104,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1077
    functionDepth: 2
    functionLinenumber: 1077
    functionLinenumberEnd: 1109
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - trackers
    - scrape_tracker
    - std::snprintf
    - tracker_test
    - endpoints::size
    - sim::send_response
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_scrape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: announce_entry_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1113,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1117,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1118,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1122,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1123,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1123,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1126,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1127,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:1127,1
    - Dst: http_category
      Src: /src/libtorrent/simulation/test_tracker.cpp:1127,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1111
    functionDepth: 3
    functionLinenumber: 1111
    functionLinenumberEnd: 1131
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - http_category
    - error_code
    - endpoints::size
    - sim::send_response
    - announce_entry_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_http_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: announce_entry_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1135,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1139,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1141,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1143,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1147,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1148,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1148,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1151,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1152,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:1152,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1153,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1133
    functionDepth: 3
    functionLinenumber: 1133
    functionLinenumberEnd: 1158
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - std::snprintf
    - endpoints::size
    - sim::send_response
    - announce_entry_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: announce_entry_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1162,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1166,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1168,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1170,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1175,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1175,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1178,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1179,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:1179,1
    - Dst: bdecode_category
      Src: /src/libtorrent/simulation/test_tracker.cpp:1180,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1160
    functionDepth: 3
    functionLinenumber: 1160
    functionLinenumberEnd: 1184
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - error_code
    - std::snprintf
    - endpoints::size
    - bdecode_category
    - sim::send_response
    - announce_entry_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(test_invalid_bencoding)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1191,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1195,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1196,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1199,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1206,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1210,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1211,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_tracker.cpp:1216,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1217,1
    - Dst: trackers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1221,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1221,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1223,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1225,1
    - Dst: url::c_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:1225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1230,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1238,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1239,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:1240,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1249,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1250,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_tracker.cpp:1251,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_tracker.cpp:1256,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:1256,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1261
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - trackers::push_back
    - TEST_CHECK
    - std::vector::size
    - c_str
    - error_code
    - trackers
    - std::snprintf
    - tracker_test
    - status
    - sim::send_response
    - std::printf
    - url::c_str
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(try_next)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1269,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:1274,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/test_tracker.cpp:1275,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/test_tracker.cpp:1276,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1277,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1278,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:1284,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1286,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1296,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1297,1
    - Dst: trackers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1304,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1305,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1305,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1307,1
    - Dst: url::c_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:1307,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1308,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1309,1
    - Dst: endpoints::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1309,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1312,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1313,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1314,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1317,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1318,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1319,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1323
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - trackers::push_back
    - TEST_CHECK
    - std::vector::size
    - trackers
    - tracker_test
    - std::snprintf
    - find
    - settings_pack::set_str
    - endpoints::size
    - settings_pack::set_int
    - sim::send_response
    - std::printf
    - url::c_str
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(clear_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_tracker.cpp:1328,1
    - Dst: lt::create_torrent::add_tracker
      Src: /src/libtorrent/simulation/test_tracker.cpp:1331,1
    - Dst: piece_index_t
      Src: /src/libtorrent/simulation/test_tracker.cpp:1333,1
    - Dst: lt::create_torrent::num_pieces
      Src: /src/libtorrent/simulation/test_tracker.cpp:1333,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/simulation/test_tracker.cpp:1334,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_tracker.cpp:1334,1
    - Dst: lt::create_torrent::set_priv
      Src: /src/libtorrent/simulation/test_tracker.cpp:1336,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/simulation/test_tracker.cpp:1338,1
    - Dst: bencode
      Src: /src/libtorrent/simulation/test_tracker.cpp:1340,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/test_tracker.cpp:1340,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/simulation/test_tracker.cpp:1341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - priv
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1342
    functionName: make_torrent
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 5
    functionsReached:
    - lt::create_torrent::num_pieces
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - file_storage::add_file
    - lt::create_torrent::add_tracker
    - lt::create_torrent::set_priv
    - libtorrent::aux::max
    - std::back_inserter
    - lt::create_torrent::generate
    - piece_index_t
    - bencode
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> make_torrent(bool priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1350,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1354,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:1355,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1356,1
    - Dst: make_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:1357,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:1365,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:1368,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1369,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1372,1
    - Dst: substr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1372,1
    - Dst: substr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1372,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:1377,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1378,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1380,1
    - Dst: substr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1380,1
    - Dst: substr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1380,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1382,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1386,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1388
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - substr
    - tracker_test
    - find
    - settings_pack::set_str
    - make_torrent
    - settings_pack::set_bool
    - sim::send_response
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_ipv6_argument)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1393,1
    - Dst: make_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:1396,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:1403,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1404,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/test_tracker.cpp:1405,1
    - Dst: substr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1405,1
    - Dst: find_first_of
      Src: /src/libtorrent/simulation/test_tracker.cpp:1405,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1406,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1412,1
    - Dst: std::set::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1390
    functionDepth: 2
    functionLinenumber: 1390
    functionLinenumberEnd: 1413
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - sim::send_response
    - tracker_test
    - find
    - find_first_of
    - std::set::size
    - make_torrent
    - substr
    - std::set::insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_key_argument)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1421,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1425,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1426,1
    - Dst: make_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:1427,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:1435,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1436,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1438,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1442,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1417
    functionDepth: 2
    functionLinenumber: 1417
    functionLinenumberEnd: 1444
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - tracker_test
    - find
    - make_torrent
    - settings_pack::set_bool
    - sim::send_response
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_ipv6_argument_non_private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1450,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1454,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1455,1
    - Dst: make_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:1456,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_tracker.cpp:1464,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1465,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1467,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1471,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1446
    functionDepth: 2
    functionLinenumber: 1446
    functionLinenumberEnd: 1473
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - tracker_test
    - find
    - make_torrent
    - settings_pack::set_bool
    - sim::send_response
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_ipv6_argument_privacy_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1478,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1482,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:1483,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1484,1
    - Dst: make_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:1485,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1495,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1496,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1501
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - tracker_test
    - settings_pack::set_str
    - make_torrent
    - settings_pack::set_bool
    - sim::send_response
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_user_agent_privacy_mode_public_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1506,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1510,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:1511,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1512,1
    - Dst: make_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:1513,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1524,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1525,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1503
    functionDepth: 2
    functionLinenumber: 1503
    functionLinenumberEnd: 1530
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - tracker_test
    - settings_pack::set_str
    - make_torrent
    - settings_pack::set_bool
    - sim::send_response
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_user_agent_privacy_mode_private_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1536,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1540,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1541,1
    - Dst: trackers::emplace_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1542,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - announce_path
    - feature_on
    - tracker_url
    argTypes:
    - char*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1532
    functionDepth: 2
    functionLinenumber: 1532
    functionLinenumberEnd: 1555
    functionName: test_ssrf
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - trackers::emplace_back
    - tracker_test
    - settings_pack::set_bool
    - sim::send_response
    linkageType: ''
    returnType: bool
    signature: "bool test_ssrf(char const* announce_path, bool const feature_on\n\t,
      char const* tracker_url)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1559,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1559,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1560,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1560,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1561,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1561,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1563,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1563,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1564,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1565
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ssrf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ssrf_localhost)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1569,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1569,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1570,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1570,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1571,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1567
    functionDepth: 1
    functionLinenumber: 1567
    functionLinenumberEnd: 1572
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ssrf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ssrf_IPv4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1576,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1576,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1577,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1577,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1578,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1574
    functionDepth: 1
    functionLinenumber: 1574
    functionLinenumberEnd: 1579
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ssrf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ssrf_IPv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1585,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1585,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1586,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1586,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1587,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1587,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1588,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1588,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1590,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1590,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1591,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1591,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1592,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_tracker.cpp:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1593
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - test_ssrf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ssrf_query_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1599,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1603,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1604,1
    - Dst: trackers::emplace_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1605,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - tracker_url
    - redirect
    - feature_on
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1620
    functionName: test_idna
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - trackers::emplace_back
    - tracker_test
    - settings_pack::set_bool
    - sim::send_response
    linkageType: ''
    returnType: bool
    signature: "bool test_idna(char const* tracker_url, char const* redirect\n\t,
      bool const feature_on)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1624,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_tracker.cpp:1624,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1625,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_tracker.cpp:1625,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1627,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_tracker.cpp:1627,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1628,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_tracker.cpp:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1622
    functionDepth: 1
    functionLinenumber: 1622
    functionLinenumberEnd: 1629
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_idna
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_idna)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1633,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_tracker.cpp:1633,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1634,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_tracker.cpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1631
    functionDepth: 1
    functionLinenumber: 1631
    functionLinenumberEnd: 1635
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_idna
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_idna_redirect)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_tracker.cpp:1656,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1671,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1671,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1675,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1675,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1679,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1679,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1680,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1680,1
    - Dst: sim::default_config::hostname_lookup
      Src: /src/libtorrent/simulation/test_tracker.cpp:1682,1
    - Dst: lt::duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_tracker.cpp:1684,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:1684,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1692,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1693,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1694,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1695,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1696,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1697,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1698,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1714,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/test_tracker.cpp:1714,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/test_tracker.cpp:1714,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_tracker.cpp:1721,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:1725,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:1725,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:1726,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:1726,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:1727,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:1727,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:1728,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:1728,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:1729,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:1729,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:1730,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:1730,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_tracker.cpp:1731,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_tracker.cpp:1731,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_tracker.cpp:1736,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_tracker.cpp:1737,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_tracker.cpp:1739,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:1741,1
    - Dst: lt::add_torrent_params::ti::add_tracker
      Src: /src/libtorrent/simulation/test_tracker.cpp:1746,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/test_tracker.cpp:1748,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_tracker.cpp:1749,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:1751,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_tracker.cpp:1753,1
    - Dst: std::memset
      Src: /src/libtorrent/simulation/test_tracker.cpp:1756,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_tracker.cpp:1760,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_tracker.cpp:1761,1
    - Dst: lt::minutes
      Src: /src/libtorrent/simulation/test_tracker.cpp:1767,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_tracker.cpp:1771,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_tracker.cpp:1772,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_tracker.cpp:1774,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_tracker.cpp:1778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 4
    argNames:
    - pack
    - local_addresses
    - trackers
    - test
    argTypes:
    - lt::settings_pack
    - std::vector<address>
    - std::vector<tracker_ent>
    - std::function<void(int (&)[7])>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1648
    functionDepth: 2
    functionLinenumber: 1648
    functionLinenumberEnd: 1781
    functionName: test_tracker_tiers
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sim::default_config::hostname_lookup
    - lt::settings_pack::set_str
    - sim::simulation::run
    - lt::minutes
    - std::memset
    - addr
    - push_back
    - lt::duration_cast<chrono::high_resolution_clock::duration>
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - sim::http_server::register_handler
    - lt::add_torrent_params::ti::add_tracker
    - sim::send_response
    - save_path
    - auto::abort
    - libtorrent::total_milliseconds
    - std::make_shared<lt::session>
    - test
    - std::string::size
    - std::bind
    - auto::async_add_torrent
    - libtorrent::create_torrent::create_torrent
    - auto::reset
    - lt::settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: "void test_tracker_tiers(lt::settings_pack pack\n\t, std::vector<address>
      local_addresses\n\t, std::vector<tracker_ent> trackers\n\t, std::function<void(int
      (&)[7])> test\n\t, boost::optional<std::function<void(int (&)[7])>> test2 =
      boost::none)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1671,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1671,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1675,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1675,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1679,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1679,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_tracker.cpp:1680,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1680,1
    - Dst: sim::default_config::hostname_lookup
      Src: /src/libtorrent/simulation/test_tracker.cpp:1682,1
    - Dst: lt::duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_tracker.cpp:1684,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_tracker.cpp:1684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ' requestor'
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - asio::ip::address
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1685
    functionName: hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 3
    functionsReached:
    - push_back
    - lt::duration_cast<chrono::high_resolution_clock::duration>
    - sim::default_config::hostname_lookup
    - libtorrent::total_milliseconds
    - addr
    linkageType: ''
    returnType: chrono::high_resolution_clock::duration
    signature: "chrono::high_resolution_clock::duration hostname_lookup(\n\t\t\tasio::ip::address
      const& requestor\n\t\t\t, std::string hostname\n\t\t\t, std::vector<asio::ip::address>&
      result\n\t\t\t, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1786
    functionName: one_of
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool one_of(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1792,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1793,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1794,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1795,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1795,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1795,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1798,1
    - Dst: one_of
      Src: /src/libtorrent/simulation/test_tracker.cpp:1798,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1799,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1800,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1801,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1802,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1790
    functionDepth: 3
    functionLinenumber: 1790
    functionLinenumberEnd: 1805
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    - one_of
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_multi_homed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1809,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1810,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1811,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1812,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1812,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1812,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1815,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1816,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1817,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1818,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1819,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1820,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1807
    functionDepth: 3
    functionLinenumber: 1807
    functionLinenumberEnd: 1823
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_all_trackers_multi_homed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1827,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1828,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1829,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1830,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1830,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1830,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1833,1
    - Dst: one_of
      Src: /src/libtorrent/simulation/test_tracker.cpp:1833,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1834,1
    - Dst: one_of
      Src: /src/libtorrent/simulation/test_tracker.cpp:1834,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1835,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1836,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1825
    functionDepth: 3
    functionLinenumber: 1825
    functionLinenumberEnd: 1839
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    - one_of
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_all_tiers_multi_homed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1842,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1843,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1844,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1845,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1845,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1845,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1848,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1849,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1850,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1851,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1852,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1840
    functionDepth: 3
    functionLinenumber: 1840
    functionLinenumberEnd: 1855
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_all_trackers_and_tiers_multi_homed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1859,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1860,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1861,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1862,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1862,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1865,1
    - Dst: one_of
      Src: /src/libtorrent/simulation/test_tracker.cpp:1865,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1866,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1867,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1868,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1857
    functionDepth: 3
    functionLinenumber: 1857
    functionLinenumberEnd: 1871
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    - one_of
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1875,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1876,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1877,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1878,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1878,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1881,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1882,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1883,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1884,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1885,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1873
    functionDepth: 3
    functionLinenumber: 1873
    functionLinenumberEnd: 1888
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_all_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1892,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1893,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1894,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1895,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1895,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1898,1
    - Dst: one_of
      Src: /src/libtorrent/simulation/test_tracker.cpp:1898,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_tracker.cpp:1899,1
    - Dst: one_of
      Src: /src/libtorrent/simulation/test_tracker.cpp:1899,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1900,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1890
    functionDepth: 3
    functionLinenumber: 1890
    functionLinenumberEnd: 1903
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    - one_of
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_all_tiers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1907,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1908,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1909,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1910,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1910,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1913,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1914,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1915,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1916,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1917,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1905
    functionDepth: 3
    functionLinenumber: 1905
    functionLinenumberEnd: 1920
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_all_trackers_and_tiers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1926,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1927,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1928,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1929,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1929,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1932,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1933,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1934,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1935,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1936,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1924
    functionDepth: 3
    functionLinenumber: 1924
    functionLinenumberEnd: 1939
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_unreachable_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1947,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1948,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1949,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1950,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1950,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1950,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1953,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1954,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1955,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1956,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1957,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1945
    functionDepth: 3
    functionLinenumber: 1945
    functionLinenumberEnd: 1960
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_v4_and_v6_same_tier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1964,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1965,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1966,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1967,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1967,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1967,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1970,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1971,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1972,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1973,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1974,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1962
    functionDepth: 3
    functionLinenumber: 1962
    functionLinenumberEnd: 1977
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_v4_and_v6_different_tiers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:1984,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1985,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:1986,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:1987,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1987,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:1987,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1990,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1991,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1992,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1993,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1994,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:1995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1982
    functionDepth: 3
    functionLinenumber: 1982
    functionLinenumberEnd: 1997
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_v4_and_v6_all_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:2001,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:2002,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:2003,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:2004,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:2004,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:2004,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2007,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2008,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2009,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2010,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2011,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1999
    functionDepth: 3
    functionLinenumber: 1999
    functionLinenumberEnd: 2014
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_v4_and_v6_different_tiers_all_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:2018,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:2019,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:2020,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:2021,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:2021,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:2021,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2024,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2025,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2026,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2027,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2028,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2016
    functionDepth: 3
    functionLinenumber: 2016
    functionLinenumberEnd: 2031
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_v4_and_v6_different_tiers_all_tiers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:2035,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:2036,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:2037,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:2040,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:2040,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2043,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2044,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2045,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2046,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2047,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2048,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2050,1
    - Dst: std::function<void (int (&)[7])>
      Src: /src/libtorrent/simulation/test_tracker.cpp:2051,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2054,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2055,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2056,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2057,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2058,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2059,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2033
    functionDepth: 3
    functionLinenumber: 2033
    functionLinenumberEnd: 2070
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::function<void (int (&)[7])>
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_retry_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_tracker.cpp:2074,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:2075,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_tracker.cpp:2076,1
    - Dst: test_tracker_tiers
      Src: /src/libtorrent/simulation/test_tracker.cpp:2079,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_tracker.cpp:2079,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2082,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2083,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2084,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2085,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2086,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2087,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2089,1
    - Dst: std::function<void (int (&)[7])>
      Src: /src/libtorrent/simulation/test_tracker.cpp:2090,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2093,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2094,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2095,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2096,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2097,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2098,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_tracker.cpp:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2072
    functionDepth: 3
    functionLinenumber: 2072
    functionLinenumberEnd: 2109
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_tracker.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::function<void (int (&)[7])>
    - test_tracker_tiers
    - settings
    - addr
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tracker_tiers_retry_all_multiple_trackers_per_tier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: test_threads
    functionSourceFile: /src/libtorrent/simulation/test_thread_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_threads()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_all
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: notify_all
    functionSourceFile: /src/libtorrent/simulation/test_thread_pool.cpp
    functionUses: 3
    functionsReached:
    - notify_all
    linkageType: ''
    returnType: void
    signature: void notify_all() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: thread_idle
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:51,1
    - Dst: should_exit
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:52,1
    - Dst: wait
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:53,1
    - Dst: thread_active
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:54,1
    - Dst: try_thread_exit
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:56,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:56,1
    - Dst: should_exit
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:62,1
    - Dst: wait
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:63,1
    - Dst: try_thread_exit
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:67,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:67,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:71,1
    - Dst: notify_all
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:72,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: thread_fun
    functionSourceFile: /src/libtorrent/simulation/test_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - wait
    - std::unique_lock::unlock
    - thread_idle
    - notify_all
    - try_thread_exit
    - thread_active
    - libtorrent::dht::item_target_id
    - should_exit
    linkageType: ''
    returnType: void
    signature: void thread_fun(lt::aux::disk_io_thread_pool&, lt::executor_work_guard<io_context::executor_type>)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:80,1
    - Dst: num_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:80,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:84,1
    - Dst: notify_all
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:85,1
    - Dst: std::this_thread::yield
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:86,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - target
    argTypes:
    - int
    assertStmts:
    - condition: (target <= m_pool->num_threads())
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/libtorrent/simulation/test_thread_pool.cpp
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: set_active_threads
    functionSourceFile: /src/libtorrent/simulation/test_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - assert
    - notify_all
    - num_threads
    - std::this_thread::yield
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void set_active_threads(int target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wait_for
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:96,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:96,1
    - Dst: num_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: wait_for_thread_exit
    functionSourceFile: /src/libtorrent/simulation/test_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - Catch::Timer::getElapsedNanoseconds
    - wait_for
    - num_threads
    linkageType: ''
    returnType: void
    signature: void wait_for_thread_exit(int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::disk_io_thread_pool::set_max_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:170,1
    - Dst: lt::aux::disk_io_thread_pool::job_queued
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:171,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:172,1
    - Dst: lt::aux::disk_io_thread_pool::num_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:172,1
    - Dst: lt::aux::disk_io_thread_pool::abort
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:173,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:174,1
    - Dst: lt::aux::disk_io_thread_pool::num_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - lt::aux::disk_io_thread_pool::job_queued
    - lt::aux::disk_io_thread_pool::num_threads
    - TEST_EQUAL
    - lt::aux::disk_io_thread_pool::abort
    - lt::aux::disk_io_thread_pool::set_max_threads
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disk_io_thread_pool_abort_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::disk_io_thread_pool::set_max_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:189,1
    - Dst: lt::aux::disk_io_thread_pool::job_queued
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:190,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:191,1
    - Dst: lt::aux::disk_io_thread_pool::num_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:191,1
    - Dst: lt::aux::disk_io_thread_pool::abort
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:192,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:193,1
    - Dst: lt::aux::disk_io_thread_pool::num_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:193,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 195
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - lt::aux::disk_io_thread_pool::job_queued
    - lt::aux::disk_io_thread_pool::num_threads
    - TEST_EQUAL
    - sim::simulation::run
    - lt::aux::disk_io_thread_pool::abort
    - lt::aux::disk_io_thread_pool::set_max_threads
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disk_io_thread_pool_abort_no_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::disk_io_thread_pool::set_max_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:208,1
    - Dst: lt::aux::disk_io_thread_pool::job_queued
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:209,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:210,1
    - Dst: lt::aux::disk_io_thread_pool::num_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:210,1
    - Dst: lt::aux::disk_io_thread_pool::set_max_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:212,1
    - Dst: test_threads::wait_for_thread_exit
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:214,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:215,1
    - Dst: lt::aux::disk_io_thread_pool::num_threads
      Src: /src/libtorrent/simulation/test_thread_pool.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - lt::aux::disk_io_thread_pool::job_queued
    - lt::aux::disk_io_thread_pool::num_threads
    - TEST_EQUAL
    - lt::aux::disk_io_thread_pool::set_max_threads
    - test_threads::wait_for_thread_exit
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disk_io_thread_pool_max_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_super_seeding.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_super_seeding.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(super_seeding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_super_seeding.cpp:60,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_super_seeding.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_super_seeding.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    - set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(strict_super_seeding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_super_seeding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(summy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::make_address_v4
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:58,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:62,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:64,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:77,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:82,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:83,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:86,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:89,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:92,1
    - Dst: close
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:94,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:96,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' setup'
    - ' on_alert'
    - ' test'
    argTypes:
    - Setup
    - HandleAlerts
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 100
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_ip_filter.cpp
    functionUses: 28
    functionsReached:
    - asio::ip::make_address_v4
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - std::make_shared<lt::session>
    - setup
    - sim::simulation::run
    - settings
    - test
    - std::shared_ptr::reset
    - std::shared_ptr::abort
    - on_alert
    - close
    linkageType: ''
    returnType: void
    signature: "void run_test(Setup const& setup\n\t, HandleAlerts const& on_alert\n\t,
      Test const& test)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::ip_filter::add_rule
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:106,1
    - Dst: asio::ip::make_address_v4
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:107,1
    - Dst: asio::ip::make_address_v4
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:108,1
    - Dst: set_ip_filter
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: add_ip_filter
    functionSourceFile: /src/libtorrent/simulation/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - lt::ip_filter::add_rule
    - set_ip_filter
    - asio::ip::make_address_v4
    linkageType: ''
    returnType: void
    signature: void add_ip_filter(lt::session& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:117,1
    - Dst: add_ip_filter
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:120,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:122,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:125,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:130,1
    - Dst: add_fake_peers
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:133,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 142
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - check_accepted
    - add_fake_peers
    - add_ip_filter
    - lt::alert_cast<lt::add_torrent_alert>
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(apply_ip_filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:148,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:151,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:154,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:159,1
    - Dst: add_ip_filter
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:163,1
    - Dst: add_fake_peers
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:166,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 175
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - check_accepted
    - add_fake_peers
    - add_ip_filter
    - lt::alert_cast<lt::add_torrent_alert>
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(update_ip_filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:179,1
    - Dst: add_ip_filter
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:182,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:184,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:190,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:195,1
    - Dst: add_fake_peers
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:198,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 209
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - check_accepted
    - add_fake_peers
    - add_ip_filter
    - lt::alert_cast<lt::add_torrent_alert>
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(apply_ip_filter_to_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:214,1
    - Dst: add_ip_filter
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:217,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:219,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:229,1
    - Dst: check_accepted
      Src: /src/libtorrent/simulation/test_ip_filter.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 238
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_ip_filter.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - run_test
    - add_ip_filter
    - check_accepted
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ip_filter_trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ses0'
    - ' ses1'
    argTypes:
    - lt::session
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: no_init
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void no_init(lt::session& ses0, lt::session& ses1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::set<lt::piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: record_finished_pieces::record_finished_pieces
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void record_finished_pieces::record_finished_pieces(std::set<lt::piece_index_t>&
      p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::alert_cast<lt::piece_finished_alert>
      Src: /src/libtorrent/simulation/transfer_sim.cpp:26,1
    - Dst: insert
      Src: /src/libtorrent/simulation/transfer_sim.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: record_finished_pieces::operator()(lt::session&, lt::alert const*
      a) const
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached:
    - insert
    - lt::alert_cast<lt::piece_finished_alert>
    linkageType: ''
    returnType: void
    signature: void record_finished_pieces::operator()(lt::session&, lt::alert const*
      a) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/transfer_sim.cpp:33,1
    - Dst: resize
      Src: /src/libtorrent/simulation/transfer_sim.cpp:34,1
    - Dst: size
      Src: /src/libtorrent/simulation/transfer_sim.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: lengthen
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached:
    - resize
    - size
    linkageType: ''
    returnType: void
    signature: void lengthen(Container& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: restore_from_resume::restore_from_resume
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void restore_from_resume::restore_from_resume()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lt::alert_cast<lt::save_resume_data_alert>
      Src: /src/libtorrent/simulation/transfer_sim.cpp:45,1
    - Dst: libtorrent::write_resume_data_buf
      Src: /src/libtorrent/simulation/transfer_sim.cpp:47,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/transfer_sim.cpp:48,1
    - Dst: remove_torrent
      Src: /src/libtorrent/simulation/transfer_sim.cpp:49,1
    - Dst: lt::alert_cast<lt::torrent_removed_alert>
      Src: /src/libtorrent/simulation/transfer_sim.cpp:53,1
    - Dst: libtorrent::read_resume_data
      Src: /src/libtorrent/simulation/transfer_sim.cpp:55,1
    - Dst: clear
      Src: /src/libtorrent/simulation/transfer_sim.cpp:56,1
    - Dst: lengthen
      Src: /src/libtorrent/simulation/transfer_sim.cpp:59,1
    - Dst: lengthen
      Src: /src/libtorrent/simulation/transfer_sim.cpp:60,1
    - Dst: lengthen
      Src: /src/libtorrent/simulation/transfer_sim.cpp:63,1
    - Dst: lengthen
      Src: /src/libtorrent/simulation/transfer_sim.cpp:66,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/transfer_sim.cpp:68,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/transfer_sim.cpp:77,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/transfer_sim.cpp:78,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/transfer_sim.cpp:82,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/transfer_sim.cpp:83,1
    - Dst: auto::front
      Src: /src/libtorrent/simulation/transfer_sim.cpp:86,1
    - Dst: auto::status
      Src: /src/libtorrent/simulation/transfer_sim.cpp:87,1
    - Dst: auto::save_resume_data
      Src: /src/libtorrent/simulation/transfer_sim.cpp:90,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - ' ses'
    - a
    argTypes:
    - lt::session
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 92
    functionName: restore_from_resume::operator()(lt::session& ses, lt::alert const*
      a)
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - lengthen
    - auto::empty
    - async_add_torrent
    - libtorrent::read_resume_data
    - get_torrents
    - auto::front
    - libtorrent::total_milliseconds
    - lt::alert_cast<lt::torrent_removed_alert>
    - libtorrent::write_resume_data_buf
    - clear
    - auto::status
    - lt::alert_cast<lt::save_resume_data_alert>
    - remove_torrent
    - auto::save_resume_data
    linkageType: ''
    returnType: void
    signature: void restore_from_resume::operator()(lt::session& ses, lt::alert const*
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: expect_seed::expect_seed
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void expect_seed::expect_seed(bool e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/transfer_sim.cpp:97,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/transfer_sim.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ses
    argTypes:
    - std::shared_ptr<lt::session>[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: expect_seed::operator()(std::shared_ptr<lt::session> ses[2]) const
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - is_seed
    linkageType: ''
    returnType: void
    signature: void expect_seed::operator()(std::shared_ptr<lt::session> ses[2]) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - flags
    argTypes:
    - test_transfer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: blocks_per_piece
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blocks_per_piece(test_transfer_flags_t const flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - flags
    argTypes:
    - test_transfer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: num_pieces
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_pieces(test_transfer_flags_t const flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unit_test::reset_output
      Src: /src/libtorrent/simulation/transfer_sim.cpp:146,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/simulation/transfer_sim.cpp:150,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/transfer_sim.cpp:166,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/transfer_sim.cpp:167,1
    - Dst: auto::send_corrupt_data
      Src: /src/libtorrent/simulation/transfer_sim.cpp:169,1
    - Dst: num_pieces
      Src: /src/libtorrent/simulation/transfer_sim.cpp:169,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/simulation/transfer_sim.cpp:169,1
    - Dst: combine_t::add
      Src: /src/libtorrent/simulation/transfer_sim.cpp:173,1
    - Dst: record_finished_pieces
      Src: /src/libtorrent/simulation/transfer_sim.cpp:173,1
    - Dst: combine_t::add
      Src: /src/libtorrent/simulation/transfer_sim.cpp:176,1
    - Dst: restore_from_resume
      Src: /src/libtorrent/simulation/transfer_sim.cpp:176,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/transfer_sim.cpp:178,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/transfer_sim.cpp:180,1
    - Dst: num_pieces
      Src: /src/libtorrent/simulation/transfer_sim.cpp:186,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/transfer_sim.cpp:193,1
    - Dst: std::set::size
      Src: /src/libtorrent/simulation/transfer_sim.cpp:193,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/transfer_sim.cpp:197,1
    - Dst: std::set::size
      Src: /src/libtorrent/simulation/transfer_sim.cpp:197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - flags
    - files
    argTypes:
    - test_transfer_flags_t
    - existing_files_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 201
    functionName: run_matrix_test
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - unit_test::reset_output
    - TEST_EQUAL
    - blocks_per_piece
    - combine_t::add
    - test_disk
    - run_test
    - num_pieces
    - record_finished_pieces
    - std::set::size
    - expect_seed
    - libtorrent::aux::random_engine
    - restore_from_resume
    - auto::send_corrupt_data
    linkageType: ''
    returnType: bool
    signature: bool run_matrix_test(test_transfer_flags_t const flags, existing_files_mode
      const files)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: path_mtu
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int path_mtu(address, address) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find_metric_idx
      Src: /src/libtorrent/simulation/test_utp.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' counters'
    - key
    argTypes:
    - std::vector<std::int64_t>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: metric
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find_metric_idx
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t metric(std::vector<std::int64_t> const& counters, char
      const* key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_utp.cpp:76,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_utp.cpp:80,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_utp.cpp:82,1
    - Dst: alert_cast<session_stats_alert>
      Src: /src/libtorrent/simulation/test_utp.cpp:90,1
    - Dst: std::vector::assign
      Src: /src/libtorrent/simulation/test_utp.cpp:91,1
    - Dst: auto::counters
      Src: /src/libtorrent/simulation/test_utp.cpp:91,1
    - Dst: auto::counters
      Src: /src/libtorrent/simulation/test_utp.cpp:91,1
    - Dst: post_session_stats
      Src: /src/libtorrent/simulation/test_utp.cpp:97,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_utp.cpp:101,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_utp.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' cfg'
    argTypes:
    - sim::configuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 109
    functionName: utp_test
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    - alert_cast<session_stats_alert>
    - utp_only
    - post_session_stats
    - is_seed
    - auto::counters
    - std::vector::assign
    - set_int
    - TEST_ERROR
    linkageType: ''
    returnType: std::vector<std::int64_t>
    signature: std::vector<std::int64_t> utp_test(sim::configuration& cfg, int send_buffer_size
      = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: path_mtu
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int path_mtu(address, address) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find_metric_idx
      Src: /src/libtorrent/simulation/test_utp.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' counters'
    - key
    argTypes:
    - std::vector<std::int64_t>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: metric
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find_metric_idx
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t metric(std::vector<std::int64_t> const& counters, char
      const* key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_utp.cpp:76,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_utp.cpp:80,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_utp.cpp:82,1
    - Dst: alert_cast<session_stats_alert>
      Src: /src/libtorrent/simulation/test_utp.cpp:90,1
    - Dst: std::vector::assign
      Src: /src/libtorrent/simulation/test_utp.cpp:91,1
    - Dst: auto::counters
      Src: /src/libtorrent/simulation/test_utp.cpp:91,1
    - Dst: auto::counters
      Src: /src/libtorrent/simulation/test_utp.cpp:91,1
    - Dst: post_session_stats
      Src: /src/libtorrent/simulation/test_utp.cpp:97,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_utp.cpp:101,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_utp.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' cfg'
    argTypes:
    - sim::configuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 109
    functionName: utp_test
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    - alert_cast<session_stats_alert>
    - utp_only
    - post_session_stats
    - is_seed
    - auto::counters
    - std::vector::assign
    - set_int
    - TEST_ERROR
    linkageType: ''
    returnType: std::vector<std::int64_t>
    signature: std::vector<std::int64_t> utp_test(sim::configuration& cfg, int send_buffer_size
      = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/simulation/test_utp.cpp:123,1
    - Dst: utp_test
      Src: /src/libtorrent/simulation/test_utp.cpp:128,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:133,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:133,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:134,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:134,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:136,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:136,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:138,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:138,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:140,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:140,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:141,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:141,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:143,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:143,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:146,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:146,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:147,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 148
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - utp_test
    - metric
    - libtorrent::aux::set_utp_stream_logging
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_pmtud)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/simulation/test_utp.cpp:153,1
    - Dst: utp_test
      Src: /src/libtorrent/simulation/test_utp.cpp:159,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:161,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:161,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:162,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:162,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:163,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:163,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:164,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:164,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:166,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:166,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:167,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:169,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:169,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:172,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:172,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:173,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 174
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - utp_test
    - metric
    - libtorrent::aux::set_utp_stream_logging
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_plain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/simulation/test_utp.cpp:179,1
    - Dst: utp_test
      Src: /src/libtorrent/simulation/test_utp.cpp:185,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:187,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:187,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:188,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:188,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:189,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:189,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:190,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:190,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:192,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:192,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:193,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:193,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:195,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:195,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:196,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:196,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:198,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:198,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:201,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:201,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:202,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 203
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - utp_test
    - metric
    - libtorrent::aux::set_utp_stream_logging
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_buffer_bloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/simulation/test_utp.cpp:209,1
    - Dst: utp_test
      Src: /src/libtorrent/simulation/test_utp.cpp:215,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:217,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:217,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:218,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:218,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:219,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:219,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:220,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:220,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:222,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:223,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:223,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:225,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:225,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:226,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:226,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:228,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:228,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:231,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:231,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:232,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 206
    functionDepth: 4
    functionLinenumber: 206
    functionLinenumberEnd: 233
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - utp_test
    - metric
    - libtorrent::aux::set_utp_stream_logging
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_straw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_utp_stream_logging
      Src: /src/libtorrent/simulation/test_utp.cpp:238,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_utp.cpp:241,1
    - Dst: utp_test
      Src: /src/libtorrent/simulation/test_utp.cpp:243,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:245,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:245,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:246,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:246,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:247,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:247,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:248,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:248,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:250,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:250,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:251,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:251,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:253,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:253,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:254,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:256,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:256,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:259,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:259,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_utp.cpp:260,1
    - Dst: metric
      Src: /src/libtorrent/simulation/test_utp.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 261
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_utp.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - utp_test
    - libtorrent::total_milliseconds
    - libtorrent::aux::set_utp_stream_logging
    - metric
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_small_kernel_send_buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_save_resume.cpp:48,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_save_resume.cpp:51,1
    - Dst: alert_cast<save_resume_data_alert>
      Src: /src/libtorrent/simulation/test_save_resume.cpp:60,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_save_resume.cpp:71,1
    - Dst: save_resume_data
      Src: /src/libtorrent/simulation/test_save_resume.cpp:71,1
    - Dst: printf
      Src: /src/libtorrent/simulation/test_save_resume.cpp:77,1
    - Dst: write_resume_data
      Src: /src/libtorrent/simulation/test_save_resume.cpp:77,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_save_resume.cpp:78,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_save_resume.cpp:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 86
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_save_resume.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    - alert_cast<save_resume_data_alert>
    - printf
    - get_torrents
    - save_resume_data
    - write_resume_data
    - set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_and_suggest_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_io_context
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:61,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:65,1
    - Dst: sett
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:66,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:69,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:72,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:76,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:79,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:82,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:83,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' sett'
    - ' setup'
    - ' test'
    argTypes:
    - Settings
    - Setup
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 87
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 33
    functionsReached:
    - Catch::Timer::getElapsedNanoseconds
    - sett
    - setup
    - std::make_shared<lt::session>
    - sim::simulation::run
    - make_io_context
    - settings
    - test
    - std::shared_ptr::reset
    - std::shared_ptr::abort
    linkageType: ''
    returnType: void
    signature: void run_test(Settings const& sett, Setup const& setup, Test const&
      test)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:91,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:94,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:95,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:96,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:103,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:106,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:114,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:116,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:117,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:122,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:122,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:122,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:123,1
    - Dst: alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:124,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:126,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:127,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:132,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:132,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:138,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:140,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:142,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:142,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:143,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 146
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - alert_cast<torrent_resumed_alert>
    - libtorrent::create_torrent::create_torrent
    - libtorrent::min
    - async_add_torrent
    - std::printf
    - message
    - get_torrents
    - set_bool
    - timestamp
    - status
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dont_count_slow_torrents)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:150,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:153,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:154,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:155,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:162,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:165,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:174,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:176,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:181,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:181,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:181,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:182,1
    - Dst: alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:183,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:187,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:190,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:192,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:192,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:193,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 197
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - alert_cast<torrent_resumed_alert>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - get_torrents
    - set_bool
    - timestamp
    - status
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(count_slow_torrents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:201,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:204,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:205,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:206,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:213,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:217,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:225,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:227,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:231,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:231,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:231,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:235,1
    - Dst: alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:235,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:236,1
    - Dst: alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:236,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:239,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:241,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:241,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:242,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 245
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<lt::seconds>
    - alert_cast<torrent_resumed_alert>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - alert_cast<torrent_paused_alert>
    - set_bool
    - get_torrents
    - timestamp
    - status
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(force_stopped_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:249,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:252,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:253,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:254,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:261,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:265,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:273,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:275,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:279,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:279,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:279,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:280,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:283,1
    - Dst: alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:283,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:284,1
    - Dst: alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:284,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:287,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:289,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:289,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:290,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 293
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<lt::seconds>
    - alert_cast<torrent_resumed_alert>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - alert_cast<torrent_paused_alert>
    - set_bool
    - get_torrents
    - timestamp
    - status
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(force_started)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:297,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:301,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:302,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:303,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:311,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:315,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:322,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:324,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:331,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:331,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:331,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:332,1
    - Dst: alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:333,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:337,1
    - Dst: alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:340,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:342,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:345,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:348,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:360,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:366,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:367,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:371,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:374,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:376,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:376,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:377,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:377,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:378,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:380,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 382
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - alert_cast<torrent_resumed_alert>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - alert_cast<torrent_paused_alert>
    - set_bool
    - get_torrents
    - timestamp
    - status
    - alert_cast<state_changed_alert>
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_limit)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:386,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:390,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:391,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:392,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:400,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:404,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:411,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:413,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:420,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:420,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:420,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:421,1
    - Dst: alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:422,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:426,1
    - Dst: alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:429,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:431,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:434,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:437,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:449,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:455,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:456,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:460,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:463,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:465,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:465,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:466,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:466,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:467,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:469,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 471
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - alert_cast<torrent_resumed_alert>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - alert_cast<torrent_paused_alert>
    - set_bool
    - get_torrents
    - timestamp
    - status
    - alert_cast<state_changed_alert>
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(download_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:476,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:480,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:481,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:486,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:488,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:496,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:501,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:502,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:509,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:511,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:516,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:516,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:516,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:517,1
    - Dst: alert_cast<tracker_announce_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:518,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:522,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:525,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:527,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:527,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:528,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 532
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - get_torrents
    - set_bool
    - lt::add_torrent_params::trackers::push_back
    - timestamp
    - status
    - alert_cast<tracker_announce_alert>
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(checking_announce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:536,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:540,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:541,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:549,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:553,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:560,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:562,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:566,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:566,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:566,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:567,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:568,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:570,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:575,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:580,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:580,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:581,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:581,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:582,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:582,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 585
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<lt::seconds>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - get_torrents
    - set_bool
    - timestamp
    - status
    - alert_cast<state_changed_alert>
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(paused_checking)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:591,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:596,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:601,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:602,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:608,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:610,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:617,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:617,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:617,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:618,1
    - Dst: alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:620,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:623,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:624,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:624,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:627,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:632,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:637,1
    - Dst: alert_cast<tracker_announce_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:637,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:640,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:641,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:643,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:648,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:649,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:650,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:653,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 656
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - alert_cast<tracker_announce_alert>
    - message
    - get_torrents
    - lt::add_torrent_params::trackers::push_back
    - timestamp
    - status
    - alert_cast<state_changed_alert>
    - alert_cast<torrent_paused_alert>
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stop_when_ready)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:663,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:665,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:670,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:678,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:683,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:685,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:693,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:693,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:693,1
    - Dst: what
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:695,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:696,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:698,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:701,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:709,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:713,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:714,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:715,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:718,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:721,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:726,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 729
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - get_torrents
    - timestamp
    - alert_cast<piece_finished_alert>
    - status
    - alert_cast<state_changed_alert>
    - set_int
    - what
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_reject_when_paused)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:736,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:738,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:743,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:749,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:754,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:756,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:764,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:764,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:764,1
    - Dst: what
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:766,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:767,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:769,1
    - Dst: alert_cast<fastresume_rejected_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:772,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:775,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:782,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:786,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:787,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:788,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:791,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:794,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:795,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:796,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 798
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - get_torrents
    - timestamp
    - alert_cast<piece_finished_alert>
    - status
    - alert_cast<fastresume_rejected_alert>
    - alert_cast<state_changed_alert>
    - set_int
    - what
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_resume_when_paused)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:804,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:806,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:811,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:812,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:817,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:819,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:826,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:826,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:826,1
    - Dst: what
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:828,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:829,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:831,1
    - Dst: alert_cast<state_changed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:834,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:841,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 844
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - timestamp
    - alert_cast<piece_finished_alert>
    - alert_cast<state_changed_alert>
    - set_int
    - what
    - run_test
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_resume_when_started)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:849,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:852,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:853,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:854,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:859,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:862,1
    - Dst: pop_alerts
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:871,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:873,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:882,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:882,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:882,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:883,1
    - Dst: alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:884,1
    - Dst: alert_cast<torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:886,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:889,1
    - Dst: alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:891,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:894,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:898,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:899,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:900,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:904,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:905,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:905,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:909,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:911,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:911,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:912,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_auto_manage.cpp:914,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 916
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_auto_manage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - duration_cast<lt::seconds>
    - alert_cast<torrent_resumed_alert>
    - libtorrent::create_torrent::create_torrent
    - async_add_torrent
    - std::printf
    - message
    - alert_cast<torrent_finished_alert>
    - set_bool
    - alert_cast<torrent_paused_alert>
    - timestamp
    - libtorrent::total_milliseconds
    - get_torrents
    - status
    - set_int
    - run_test
    - TEST_CHECK
    - pop_alerts
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pause_completed_torrents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_torrent
      Src: /src/libtorrent/simulation/test_checking.cpp:58,1
    - Dst: std::make_unique<sim::asio::io_context>
      Src: /src/libtorrent/simulation/test_checking.cpp:62,1
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/simulation/test_checking.cpp:63,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_checking.cpp:67,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_checking.cpp:68,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_checking.cpp:70,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_checking.cpp:72,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_checking.cpp:74,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_checking.cpp:76,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_checking.cpp:78,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_checking.cpp:81,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_checking.cpp:82,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_checking.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ' setup'
    - ' test'
    argTypes:
    - Setup
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 46
    functionsReached:
    - auto::async_add_torrent
    - create_torrent
    - auto::reset
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - auto::abort
    - setup
    - std::make_shared<lt::session>
    - sim::simulation::run
    - std::make_unique<sim::asio::io_context>
    - settings
    - test
    - lt::make_address_v4
    linkageType: ''
    returnType: void
    signature: void run_test(Setup const& setup, Test const& test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_torrent
      Src: /src/libtorrent/simulation/test_checking.cpp:92,1
    - Dst: std::make_unique<sim::asio::io_context>
      Src: /src/libtorrent/simulation/test_checking.cpp:96,1
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/simulation/test_checking.cpp:97,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_checking.cpp:101,1
    - Dst: setup1
      Src: /src/libtorrent/simulation/test_checking.cpp:102,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_checking.cpp:104,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_checking.cpp:106,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_checking.cpp:108,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_checking.cpp:110,1
    - Dst: setup2
      Src: /src/libtorrent/simulation/test_checking.cpp:112,1
    - Dst: auto::get_torrents
      Src: /src/libtorrent/simulation/test_checking.cpp:113,1
    - Dst: force_recheck
      Src: /src/libtorrent/simulation/test_checking.cpp:113,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_checking.cpp:116,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_checking.cpp:118,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_checking.cpp:121,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_checking.cpp:122,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_checking.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - ' setup1'
    - ' setup2'
    - ' test'
    argTypes:
    - SetupTorrent
    - SetupFiles
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 126
    functionName: run_force_recheck_test
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 0
    functionsReached:
    - auto::async_add_torrent
    - create_torrent
    - setup2
    - print_alerts
    - auto::reset
    - Catch::Timer::getElapsedNanoseconds
    - auto::abort
    - auto::get_torrents
    - std::make_shared<lt::session>
    - force_recheck
    - sim::simulation::run
    - std::make_unique<sim::asio::io_context>
    - settings
    - setup1
    - test
    - lt::make_address_v4
    linkageType: ''
    returnType: void
    signature: void run_force_recheck_test(SetupTorrent const& setup1, SetupFiles
      const& setup2, Test const& test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_checking.cpp:132,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_checking.cpp:134,1
    - Dst: ti::files
      Src: /src/libtorrent/simulation/test_checking.cpp:134,1
    - Dst: ti::files
      Src: /src/libtorrent/simulation/test_checking.cpp:137,1
    - Dst: std::ofstream::write
      Src: /src/libtorrent/simulation/test_checking.cpp:139,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/test_checking.cpp:139,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_checking.cpp:139,1
    - Dst: std::ifstream::seekg
      Src: /src/libtorrent/simulation/test_checking.cpp:146,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:147,1
    - Dst: std::ifstream::tellg
      Src: /src/libtorrent/simulation/test_checking.cpp:147,1
    - Dst: std::fstream::pos_type
      Src: /src/libtorrent/simulation/test_checking.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::seekg
    - TEST_EQUAL
    - std::vector::data
    - ti::files
    - std::vector::size
    - std::ofstream::write
    - libtorrent::combine_path
    - std::ifstream::tellg
    - run_test
    - std::fstream::pos_type
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_truncate_checking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_files
      Src: /src/libtorrent/simulation/test_checking.cpp:156,1
    - Dst: set_piece_hashes
      Src: /src/libtorrent/simulation/test_checking.cpp:162,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/simulation/test_checking.cpp:165,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/test_checking.cpp:165,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/simulation/test_checking.cpp:165,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/simulation/test_checking.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: create_multifile_torrent
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bencode
    - create_random_files
    - std::make_shared<lt::torrent_info>
    - std::back_inserter
    - lt::create_torrent::generate
    - set_piece_hashes
    linkageType: ''
    returnType: std::shared_ptr<lt::torrent_info>
    signature: std::shared_ptr<lt::torrent_info> create_multifile_torrent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_force_recheck_test
      Src: /src/libtorrent/simulation/test_checking.cpp:171,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_checking.cpp:173,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_checking.cpp:176,1
    - Dst: ti::files
      Src: /src/libtorrent/simulation/test_checking.cpp:177,1
    - Dst: ::fopen
      Src: /src/libtorrent/simulation/test_checking.cpp:178,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/test_checking.cpp:178,1
    - Dst: ::fwrite
      Src: /src/libtorrent/simulation/test_checking.cpp:179,1
    - Dst: ::fclose
      Src: /src/libtorrent/simulation/test_checking.cpp:180,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_checking.cpp:183,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_checking.cpp:184,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:186,1
    - Dst: lt::torrent_status::pieces::size
      Src: /src/libtorrent/simulation/test_checking.cpp:189,1
    - Dst: lt::typed_bitfield::clear_bit
      Src: /src/libtorrent/simulation/test_checking.cpp:190,1
    - Dst: lt::typed_bitfield::range
      Src: /src/libtorrent/simulation/test_checking.cpp:193,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 197
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - ::fwrite
    - ti::files
    - lt::torrent_handle::status
    - lt::typed_bitfield::range
    - get_torrents
    - std::string::c_str
    - libtorrent::combine_path
    - lt::torrent_status::pieces::size
    - ::fopen
    - ::fclose
    - set_int
    - lt::typed_bitfield::clear_bit
    - run_force_recheck_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(checking_first_piece_missing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_checking.cpp:201,1
    - Dst: file_priorities::push_back
      Src: /src/libtorrent/simulation/test_checking.cpp:203,1
    - Dst: file_priorities::push_back
      Src: /src/libtorrent/simulation/test_checking.cpp:204,1
    - Dst: create_multifile_torrent
      Src: /src/libtorrent/simulation/test_checking.cpp:205,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_checking.cpp:209,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:210,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_checking.cpp:210,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:211,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_checking.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - get_torrents
    - file_priorities::push_back
    - create_multifile_torrent
    - status
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(aligned_zero_priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_checking.cpp:221,1
    - Dst: create_multifile_torrent
      Src: /src/libtorrent/simulation/test_checking.cpp:223,1
    - Dst: file_priorities::push_back
      Src: /src/libtorrent/simulation/test_checking.cpp:225,1
    - Dst: file_priorities::push_back
      Src: /src/libtorrent/simulation/test_checking.cpp:226,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_checking.cpp:227,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/simulation/test_checking.cpp:227,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_checking.cpp:228,1
    - Dst: ti::files
      Src: /src/libtorrent/simulation/test_checking.cpp:228,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_checking.cpp:229,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/simulation/test_checking.cpp:229,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_checking.cpp:230,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/simulation/test_checking.cpp:230,1
    - Dst: ti::info_hashes
      Src: /src/libtorrent/simulation/test_checking.cpp:230,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/test_checking.cpp:230,1
    - Dst: test_remove
      Src: /src/libtorrent/simulation/test_checking.cpp:232,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_checking.cpp:233,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_checking.cpp:236,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:237,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_checking.cpp:237,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:238,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_checking.cpp:238,1
    - Dst: stat_file
      Src: /src/libtorrent/simulation/test_checking.cpp:246,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 248
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - ti::info_hashes
    - TEST_EQUAL
    - ti::files
    - std::vector::size
    - libtorrent::aux::to_hex
    - get_torrents
    - libtorrent::combine_path
    - stat_file
    - file_priorities::push_back
    - create_multifile_torrent
    - status
    - libtorrent::current_working_directory
    - test_remove
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(aligned_zero_priority_no_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_multifile_torrent
      Src: /src/libtorrent/simulation/test_checking.cpp:254,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_checking.cpp:255,1
    - Dst: file_priorities::push_back
      Src: /src/libtorrent/simulation/test_checking.cpp:259,1
    - Dst: file_priorities::push_back
      Src: /src/libtorrent/simulation/test_checking.cpp:260,1
    - Dst: file_priorities::push_back
      Src: /src/libtorrent/simulation/test_checking.cpp:261,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_checking.cpp:262,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/simulation/test_checking.cpp:262,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_checking.cpp:263,1
    - Dst: ti::files
      Src: /src/libtorrent/simulation/test_checking.cpp:263,1
    - Dst: test_remove
      Src: /src/libtorrent/simulation/test_checking.cpp:267,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_checking.cpp:268,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_checking.cpp:271,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:272,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_checking.cpp:272,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:273,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_checking.cpp:273,1
    - Dst: std::shared_ptr::num_pieces
      Src: /src/libtorrent/simulation/test_checking.cpp:273,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:274,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_checking.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 277
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - ti::files
    - std::vector::size
    - get_torrents
    - libtorrent::combine_path
    - file_priorities::push_back
    - create_multifile_torrent
    - status
    - libtorrent::current_working_directory
    - test_remove
    - std::shared_ptr::num_pieces
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(zero_priority_missing_partfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_checking.cpp:281,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_checking.cpp:285,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_checking.cpp:290,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:291,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_checking.cpp:291,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_checking.cpp:293,1
    - Dst: status
      Src: /src/libtorrent/simulation/test_checking.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 295
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_checking.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - get_torrents
    - status
    - set_int
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(checking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_files
      Src: /src/libtorrent/simulation/disk_io.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: set_seed
    functionSourceFile: /src/libtorrent/simulation/disk_io.hpp
    functionUses: 3
    functionsReached:
    - set_files
    linkageType: ''
    returnType: test_disk
    signature: test_disk set_seed(bool const s = true) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - existing_files_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: set_files
    functionSourceFile: /src/libtorrent/simulation/disk_io.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: test_disk
    signature: test_disk set_files(existing_files_mode const s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - left
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: set_space_left
    functionSourceFile: /src/libtorrent/simulation/disk_io.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: test_disk
    signature: test_disk set_space_left(int const left) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: set_recover_full_disk
    functionSourceFile: /src/libtorrent/simulation/disk_io.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: test_disk
    signature: test_disk set_recover_full_disk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blocks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: send_corrupt_data
    functionSourceFile: /src/libtorrent/simulation/disk_io.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: test_disk
    signature: test_disk send_corrupt_data(int const blocks) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::time_point_cast<seconds32>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:48,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: time_now
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 56
    functionsReached:
    - time_now
    - lt::time_point_cast<seconds32>
    linkageType: ''
    returnType: time_point32
    signature: time_point32 time_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::abs
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:54,1
    - Dst: lt::duration_cast<seconds>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Tp1
    - Tp2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: eq
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 3
    functionsReached:
    - lt::duration_cast<seconds>
    - std::abs
    linkageType: ''
    returnType: bool
    signature: bool eq(Tp1 const lhs, Tp2 const rhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:64,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:71,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:73,1
    - Dst: lt::torrent_handle::is_valid
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:73,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:74,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:95,1
    - Dst: duration_cast<seconds>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:97,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:98,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:99,1
    - Dst: torrent_status::active_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:99,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:99,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:100,1
    - Dst: torrent_status::seeding_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:100,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:100,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:101,1
    - Dst: torrent_status::finished_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:101,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:101,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:104,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:104,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:104,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:106,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:106,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 111
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - TEST_EQUAL
    - setup_swarm
    - lt::torrent_handle::status
    - alert_cast<add_torrent_alert>
    - seconds
    - auto::count
    - torrent_status::finished_duration::count
    - torrent_status::seeding_duration::count
    - time_point
    - duration_cast<seconds>
    - torrent_status::active_duration::count
    - TEST_CHECK
    - lt::torrent_handle::is_valid
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(status_timers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:119,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:128,1
    - Dst: lt::torrent_handle::is_valid
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:128,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:130,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:133,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:133,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:133,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:134,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:134,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:134,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:146,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:148,1
    - Dst: eq
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:148,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:148,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:150,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:150,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 154
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - lt::torrent_handle::status
    - setup_swarm
    - alert_cast<add_torrent_alert>
    - seconds
    - eq
    - time_point
    - TEST_CHECK
    - lt::torrent_handle::is_valid
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(status_timers_last_upload)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:161,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:165,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:172,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:174,1
    - Dst: lt::torrent_handle::is_valid
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:174,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:176,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:179,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:179,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:180,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:180,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:180,1
    - Dst: lt::torrent_handle::pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:199,1
    - Dst: lt::torrent_handle::resume
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:207,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:222,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:223,1
    - Dst: torrent_status::active_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:223,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:223,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:224,1
    - Dst: torrent_status::seeding_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:224,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:224,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:225,1
    - Dst: torrent_status::finished_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:225,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:225,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:227,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:227,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:227,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:229,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:229,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:229,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:233,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 234
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - lt::torrent_handle::resume
    - TEST_EQUAL
    - setup_swarm
    - lt::torrent_handle::status
    - alert_cast<add_torrent_alert>
    - seconds
    - torrent_status::finished_duration::count
    - torrent_status::seeding_duration::count
    - time_point
    - seconds::count
    - lt::torrent_handle::pause
    - torrent_status::active_duration::count
    - TEST_CHECK
    - lt::torrent_handle::is_valid
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(status_timers_time_shift_with_active_torrent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:241,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:244,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:251,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:253,1
    - Dst: lt::torrent_handle::is_valid
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:253,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:255,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:258,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:258,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:258,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:259,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:259,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:259,1
    - Dst: lt::torrent_handle::pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:279,1
    - Dst: lt::torrent_handle::resume
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:281,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:294,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:295,1
    - Dst: torrent_status::active_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:295,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:295,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:296,1
    - Dst: torrent_status::seeding_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:296,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:296,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:297,1
    - Dst: torrent_status::finished_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:297,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:297,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:299,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:299,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:299,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:301,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:301,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:301,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 306
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - lt::torrent_handle::resume
    - TEST_EQUAL
    - setup_swarm
    - lt::torrent_handle::status
    - alert_cast<add_torrent_alert>
    - seconds
    - torrent_status::finished_duration::count
    - torrent_status::seeding_duration::count
    - time_point
    - seconds::count
    - lt::torrent_handle::pause
    - torrent_status::active_duration::count
    - TEST_CHECK
    - lt::torrent_handle::is_valid
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(finish_time_shift_active)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:313,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:316,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:323,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:325,1
    - Dst: lt::torrent_handle::is_valid
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:325,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:327,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:330,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:330,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:330,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:331,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:331,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:331,1
    - Dst: lt::torrent_handle::pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:351,1
    - Dst: lt::torrent_handle::resume
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:353,1
    - Dst: lt::torrent_handle::pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:355,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:368,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:369,1
    - Dst: torrent_status::active_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:369,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:369,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:370,1
    - Dst: torrent_status::seeding_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:370,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:370,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:371,1
    - Dst: torrent_status::finished_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:371,1
    - Dst: seconds::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:371,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:373,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:373,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:373,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:375,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:375,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:375,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:379,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 380
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - lt::torrent_handle::resume
    - TEST_EQUAL
    - setup_swarm
    - lt::torrent_handle::status
    - alert_cast<add_torrent_alert>
    - seconds
    - torrent_status::finished_duration::count
    - torrent_status::seeding_duration::count
    - time_point
    - seconds::count
    - lt::torrent_handle::pause
    - torrent_status::active_duration::count
    - TEST_CHECK
    - lt::torrent_handle::is_valid
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(finish_time_shift_paused)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:395,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:398,1
    - Dst: alert_cast<torrent_added_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:405,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:407,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:412,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:415,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:417,1
    - Dst: dynamic_cast<torrent_log_alert const*>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:421,1
    - Dst: dynamic_cast<torrent_alert const*>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:427,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:429,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:430,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:439,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 441
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - setup_swarm
    - alert_cast<add_torrent_alert>
    - dynamic_cast<torrent_log_alert const*>
    - alert_cast<torrent_added_alert>
    - dynamic_cast<torrent_alert const*>
    - set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alert_order)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:453,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:456,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:457,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:465,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:467,1
    - Dst: lt::torrent_handle::is_valid
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:467,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:468,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:475,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:483,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:484,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:487,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:488,1
    - Dst: torrent_status::active_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:488,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:489,1
    - Dst: torrent_status::seeding_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:489,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:490,1
    - Dst: torrent_status::finished_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:490,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:493,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:493,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:493,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 504
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - TEST_EQUAL
    - setup_swarm
    - lt::torrent_handle::status
    - alert_cast<add_torrent_alert>
    - seconds
    - set_bool
    - torrent_status::finished_duration::count
    - torrent_status::seeding_duration::count
    - is_seed
    - time_point
    - set_int
    - torrent_status::active_duration::count
    - TEST_CHECK
    - lt::torrent_handle::is_valid
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_timer_no_seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:519,1
    - Dst: alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:526,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:528,1
    - Dst: lt::torrent_handle::is_valid
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:528,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:529,1
    - Dst: alert_cast<torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:532,1
    - Dst: f
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:542,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:547,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:548,1
    - Dst: torrent_status::active_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:548,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:549,1
    - Dst: torrent_status::seeding_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:549,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:550,1
    - Dst: torrent_status::finished_duration::count
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:550,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:553,1
    - Dst: time_point
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:553,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:553,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:563,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - f
    argTypes:
    - PauseFun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 565
    functionName: test_pause
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - TEST_EQUAL
    - setup_swarm
    - lt::torrent_handle::status
    - alert_cast<add_torrent_alert>
    - seconds
    - f
    - torrent_status::finished_duration::count
    - torrent_status::seeding_duration::count
    - time_point
    - alert_cast<torrent_paused_alert>
    - torrent_status::active_duration::count
    - TEST_CHECK
    - lt::torrent_handle::is_valid
    linkageType: ''
    returnType: void
    signature: void test_pause(PauseFun f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:569,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 573
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - test_pause
    - pause
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_timer_graceful_pause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:577,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 4
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - test_pause
    - pause
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_timer_pause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:585,1
    - Dst: pause
      Src: /src/libtorrent/simulation/test_torrent_status.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 4
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_torrent_status.cpp
    functionUses: 0
    functionsReached:
    - test_pause
    - pause
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_timer_session_pause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:77,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:78,1
    - Dst: dsl_config::dsl_config
      Src: /src/libtorrent/simulation/test_swarm.cpp:80,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:84,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/simulation/test_swarm.cpp:84,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 101
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    - add_torrent_params
    - dsl_config::dsl_config
    - settings
    - settings_pack::set_bool
    - set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_disable_hash_checks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:105,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:108,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - setup_swarm
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode_suggest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:126,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_swarm.cpp:138,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_swarm.cpp:141,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 145
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    - is_seed
    - setup_swarm
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(plain)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_stats_metrics
      Src: /src/libtorrent/simulation/test_swarm.cpp:149,1
    - Dst: find_metric_idx
      Src: /src/libtorrent/simulation/test_swarm.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_swarm.cpp:151,1
    - Dst: find_metric_idx
      Src: /src/libtorrent/simulation/test_swarm.cpp:152,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_swarm.cpp:153,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:155,1
    - Dst: lt::alert_cast<session_stats_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:163,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:167,1
    - Dst: auto*::counters
      Src: /src/libtorrent/simulation/test_swarm.cpp:167,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:168,1
    - Dst: auto*::counters
      Src: /src/libtorrent/simulation/test_swarm.cpp:168,1
    - Dst: post_session_stats
      Src: /src/libtorrent/simulation/test_swarm.cpp:173,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_swarm.cpp:176,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_swarm.cpp:179,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 183
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - lt::alert_cast<session_stats_alert>
    - TEST_EQUAL
    - setup_swarm
    - auto*::counters
    - post_session_stats
    - find_metric_idx
    - is_seed
    - session_stats_metrics
    - std::printf
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(session_stats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:190,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:193,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:194,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:196,1
    - Dst: alert_cast<peer_log_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:203,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/test_swarm.cpp:206,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_swarm.cpp:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 228
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    - alert_cast<peer_log_alert>
    - std::string
    - set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(suggest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:233,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:236,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:237,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:238,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:239,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_swarm.cpp:250,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_swarm.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 256
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_ERROR
    - is_seed
    - setup_swarm
    - set_bool
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(utp_only)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:263,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:269,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:278,1
    - Dst: add_extra_peers
      Src: /src/libtorrent/simulation/test_swarm.cpp:279,1
    - Dst: lt::alert_cast<lt::torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:281,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:283,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:284,1
    - Dst: auto::handle::resume
      Src: /src/libtorrent/simulation/test_swarm.cpp:285,1
    - Dst: get_status
      Src: /src/libtorrent/simulation/test_swarm.cpp:294,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:301,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_swarm.cpp:302,1
    - Dst: auto::pause
      Src: /src/libtorrent/simulation/test_swarm.cpp:303,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:308,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_swarm.cpp:313,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_swarm.cpp:317,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:318,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:322,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - type
    - graceful
    argTypes:
    - swarm_test_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 324
    functionName: test_stop_start_download
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - setup_swarm
    - lt::alert_cast<lt::torrent_paused_alert>
    - add_extra_peers
    - get_torrents
    - auto::handle::resume
    - get_status
    - auto::pause
    - is_seed
    - lt::alert_cast<lt::add_torrent_alert>
    - set_int
    - std::printf
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void test_stop_start_download(swarm_test_t type, bool graceful)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_stop_start_download
      Src: /src/libtorrent/simulation/test_swarm.cpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - test_stop_start_download
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stop_start_download)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_stop_start_download
      Src: /src/libtorrent/simulation/test_swarm.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - test_stop_start_download
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stop_start_download_graceful)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:341,1
    - Dst: lt::alert_cast<lt::torrent_paused_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:348,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:350,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:351,1
    - Dst: auto::handle::resume
      Src: /src/libtorrent/simulation/test_swarm.cpp:352,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:362,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_swarm.cpp:363,1
    - Dst: auto::pause
      Src: /src/libtorrent/simulation/test_swarm.cpp:364,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:368,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:376,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 378
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - setup_swarm
    - std::printf
    - lt::alert_cast<lt::torrent_paused_alert>
    - get_torrents
    - auto::pause
    - auto::handle::resume
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stop_start_download_graceful_no_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_stop_start_download
      Src: /src/libtorrent/simulation/test_swarm.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - test_stop_start_download
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stop_start_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_stop_start_download
      Src: /src/libtorrent/simulation/test_swarm.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - test_stop_start_download
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(stop_start_seed_graceful)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:393,1
    - Dst: completed_pieces
      Src: /src/libtorrent/simulation/test_swarm.cpp:403,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:404,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_swarm.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 407
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - is_seed
    - setup_swarm
    - completed_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(shutdown)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/test_swarm.cpp:415,1
    - Dst: end
      Src: /src/libtorrent/simulation/test_swarm.cpp:416,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/test_swarm.cpp:416,1
    - Dst: insert
      Src: /src/libtorrent/simulation/test_swarm.cpp:417,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/test_swarm.cpp:417,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/test_swarm.cpp:417,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/test_swarm.cpp:418,1
    - Dst: lt::duration_cast<lt::time_duration>
      Src: /src/libtorrent/simulation/test_swarm.cpp:420,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_swarm.cpp:420,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/test_swarm.cpp:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - lt::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: incoming_route
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - seconds
    - find
    - lt::duration_cast<lt::time_duration>
    - get_io_context
    - sim::route
    linkageType: ''
    returnType: sim::route
    signature: sim::route incoming_route(lt::address ip) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/test_swarm.cpp:427,1
    - Dst: end
      Src: /src/libtorrent/simulation/test_swarm.cpp:428,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/test_swarm.cpp:428,1
    - Dst: insert
      Src: /src/libtorrent/simulation/test_swarm.cpp:429,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/test_swarm.cpp:429,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/test_swarm.cpp:429,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/test_swarm.cpp:430,1
    - Dst: lt::duration_cast<lt::time_duration>
      Src: /src/libtorrent/simulation/test_swarm.cpp:431,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_swarm.cpp:431,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/test_swarm.cpp:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - lt::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 433
    functionName: outgoing_route
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - seconds
    - find
    - lt::duration_cast<lt::time_duration>
    - get_io_context
    - sim::route
    linkageType: ''
    returnType: sim::route
    signature: sim::route outgoing_route(lt::address ip) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:443,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:446,1
    - Dst: peers::assign
      Src: /src/libtorrent/simulation/test_swarm.cpp:450,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_swarm.cpp:451,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_swarm.cpp:452,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_swarm.cpp:453,1
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:458,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_swarm.cpp:461,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 471
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - peers::assign
    - setup_swarm
    - error_code
    - ep
    - set_int
    - alert_cast<peer_disconnected_alert>
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dead_peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<nat>
      Src: /src/libtorrent/simulation/test_swarm.cpp:477,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_swarm.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: nat_config
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<nat>
    - addr
    linkageType: ''
    returnType: void
    signature: void nat_config()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/libtorrent/simulation/test_swarm.cpp:484,1
    - Dst: sim::route::append
      Src: /src/libtorrent/simulation/test_swarm.cpp:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ip
    argTypes:
    - lt::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 486
    functionName: outgoing_route
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - sim::route::append
    - addr
    linkageType: ''
    returnType: sim::route
    signature: sim::route outgoing_route(lt::address ip) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:497,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:500,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:501,1
    - Dst: peers::assign
      Src: /src/libtorrent/simulation/test_swarm.cpp:508,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_swarm.cpp:508,1
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:512,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_swarm.cpp:515,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 525
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - peers::assign
    - setup_swarm
    - error_code
    - set_bool
    - ep
    - alert_cast<peer_disconnected_alert>
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(self_connect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:531,1
    - Dst: completed_pieces
      Src: /src/libtorrent/simulation/test_swarm.cpp:541,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_swarm.cpp:543,1
    - Dst: auto::status
      Src: /src/libtorrent/simulation/test_swarm.cpp:544,1
    - Dst: remove_torrent
      Src: /src/libtorrent/simulation/test_swarm.cpp:545,1
    - Dst: stat_file
      Src: /src/libtorrent/simulation/test_swarm.cpp:552,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_swarm.cpp:552,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:553,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/test_swarm.cpp:554,1
    - Dst: error_code::category
      Src: /src/libtorrent/simulation/test_swarm.cpp:555,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/test_swarm.cpp:556,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:557,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/test_swarm.cpp:557,1
    - Dst: system_category
      Src: /src/libtorrent/simulation/test_swarm.cpp:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 558
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - system_category
    - setup_swarm
    - combine_path
    - error_code
    - get_torrents
    - std::string::c_str
    - stat_file
    - error_code::category
    - error_code::message
    - auto::status
    - std::printf
    - remove_torrent
    - completed_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(delete_files)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:563,1
    - Dst: completed_pieces
      Src: /src/libtorrent/simulation/test_swarm.cpp:573,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_swarm.cpp:575,1
    - Dst: auto::status
      Src: /src/libtorrent/simulation/test_swarm.cpp:576,1
    - Dst: remove_torrent
      Src: /src/libtorrent/simulation/test_swarm.cpp:577,1
    - Dst: stat_file
      Src: /src/libtorrent/simulation/test_swarm.cpp:583,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_swarm.cpp:583,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:584,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/test_swarm.cpp:584,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/test_swarm.cpp:585,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_swarm.cpp:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 587
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - setup_swarm
    - combine_path
    - get_torrents
    - std::string::c_str
    - stat_file
    - error_code::message
    - auto::status
    - std::printf
    - remove_torrent
    - completed_pieces
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(delete_partfile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:593,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:597,1
    - Dst: alert_cast<lt::file_completed_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:604,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_swarm.cpp:613,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_swarm.cpp:616,1
    - Dst: printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:617,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 622
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - setup_swarm
    - printf
    - is_seed
    - alert_cast<lt::file_completed_alert>
    - set_int
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(torrent_completed_alert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:630,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:634,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:641,1
    - Dst: auto::handle::torrent_file
      Src: /src/libtorrent/simulation/test_swarm.cpp:644,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/simulation/test_swarm.cpp:645,1
    - Dst: auto::handle::torrent_file
      Src: /src/libtorrent/simulation/test_swarm.cpp:645,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/simulation/test_swarm.cpp:645,1
    - Dst: lt::alert_cast<lt::block_uploaded_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:647,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:649,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/test_swarm.cpp:649,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/test_swarm.cpp:650,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_swarm.cpp:658,1
    - Dst: all_of
      Src: /src/libtorrent/simulation/test_swarm.cpp:658,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/test_swarm.cpp:658,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/test_swarm.cpp:658,1
    - Dst: all_of
      Src: /src/libtorrent/simulation/test_swarm.cpp:660,1
    - Dst: begin
      Src: /src/libtorrent/simulation/test_swarm.cpp:660,1
    - Dst: end
      Src: /src/libtorrent/simulation/test_swarm.cpp:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 667
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - TEST_EQUAL
    - auto::handle::torrent_file
    - setup_swarm
    - begin
    - std::vector::resize
    - std::vector<bool>
    - std::vector::begin
    - end
    - lt::alert_cast<lt::block_uploaded_alert>
    - all_of
    - lt::alert_cast<lt::add_torrent_alert>
    - std::vector::end
    - set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(block_uploaded_alert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:673,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_swarm.cpp:685,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_swarm.cpp:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fun
    argTypes:
    - SettingsFun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 691
    functionName: test_settings
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 23
    functionsReached:
    - is_seed
    - setup_swarm
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void test_settings(SettingsFun fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:695,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:696,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_swarm.cpp:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 698
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - libtorrent::aux::max
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unlimited_connections)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:702,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 705
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(default_connections_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:709,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 712
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(default_connections_limit_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:717,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_bool
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(redundant_have)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:725,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 728
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_bool
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(lazy_bitfields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:733,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_bool
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(prioritize_partial_pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:740,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:741,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_swarm.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - libtorrent::aux::max
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_downloads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:747,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:748,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_swarm.cpp:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 750
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - libtorrent::aux::max
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_seeds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:754,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 757
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_seeds_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:761,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:762,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_swarm.cpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 764
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - libtorrent::aux::max
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:768,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 771
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(active_limit_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:775,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:776,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_swarm.cpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 778
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - libtorrent::aux::max
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upload_rate_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:782,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 785
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(upload_rate_limit_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:789,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:790,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_swarm.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 792
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - libtorrent::aux::max
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(download_rate_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:796,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 799
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(download_rate_limit_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:803,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:804,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_swarm.cpp:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - libtorrent::aux::max
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unchoke_slots_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:810,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:811,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 814
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - test_settings
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unchoke_slots_limit_negative)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/test_swarm.cpp:833,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_swarm.cpp:843,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:846,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_swarm.cpp:858,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/test_swarm.cpp:860,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/test_swarm.cpp:860,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:861,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_swarm.cpp:861,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/test_swarm.cpp:862,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/test_swarm.cpp:862,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 867
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - std::array::size
    - setup_swarm
    - std::move
    - libtorrent::aux::max
    - settings_pack::set_bool
    - settings_pack::set_int
    - set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(settings_stress_test)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dsl_config::dsl_config
      Src: /src/libtorrent/simulation/test_swarm.cpp:876,1
    - Dst: unit_test::test_counter
      Src: /src/libtorrent/simulation/test_swarm.cpp:888,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/test_swarm.cpp:889,1
    - Dst: libtorrent::create_directory
      Src: /src/libtorrent/simulation/test_swarm.cpp:891,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:892,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/test_swarm.cpp:893,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/simulation/test_swarm.cpp:893,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/test_swarm.cpp:894,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_swarm.cpp:895,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/simulation/test_swarm.cpp:896,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_swarm.cpp:908,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_swarm.cpp:909,1
    - Dst: std::make_shared<sim::asio::io_context>
      Src: /src/libtorrent/simulation/test_swarm.cpp:909,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_swarm.cpp:909,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_swarm.cpp:911,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/test_swarm.cpp:915,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_swarm.cpp:916,1
    - Dst: lt::peer_id::to_string
      Src: /src/libtorrent/simulation/test_swarm.cpp:916,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_swarm.cpp:918,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/test_swarm.cpp:918,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_swarm.cpp:919,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/test_swarm.cpp:929,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_swarm.cpp:931,1
    - Dst: std::shared_ptr::set_alert_notify
      Src: /src/libtorrent/simulation/test_swarm.cpp:933,1
    - Dst: post
      Src: /src/libtorrent/simulation/test_swarm.cpp:936,1
    - Dst: get
      Src: /src/libtorrent/simulation/test_swarm.cpp:938,1
    - Dst: lt::session*::pop_alerts
      Src: /src/libtorrent/simulation/test_swarm.cpp:944,1
    - Dst: timestamp
      Src: /src/libtorrent/simulation/test_swarm.cpp:949,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/test_swarm.cpp:950,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/test_swarm.cpp:951,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:954,1
    - Dst: what
      Src: /src/libtorrent/simulation/test_swarm.cpp:956,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_swarm.cpp:957,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:961,1
    - Dst: lt::torrent_handle::connect_peer
      Src: /src/libtorrent/simulation/test_swarm.cpp:968,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_swarm.cpp:968,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_swarm.cpp:968,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_swarm.cpp:976,1
    - Dst: lt::torrent_handle::connect_peer
      Src: /src/libtorrent/simulation/test_swarm.cpp:978,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_swarm.cpp:978,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_swarm.cpp:978,1
    - Dst: lt::alert_cast<lt::peer_connect_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:986,1
    - Dst: lt::peer_connect_alert*::endpoint::address
      Src: /src/libtorrent/simulation/test_swarm.cpp:988,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_swarm.cpp:988,1
    - Dst: lt::alert_cast<lt::incoming_connection_alert>
      Src: /src/libtorrent/simulation/test_swarm.cpp:991,1
    - Dst: lt::incoming_connection_alert*::endpoint::address
      Src: /src/libtorrent/simulation/test_swarm.cpp:993,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_swarm.cpp:993,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_swarm.cpp:1007,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_swarm.cpp:1010,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_swarm.cpp:1012,1
    - Dst: abort
      Src: /src/libtorrent/simulation/test_swarm.cpp:1012,1
    - Dst: reset
      Src: /src/libtorrent/simulation/test_swarm.cpp:1013,1
    - Dst: lt::deadline_timer::expires_after
      Src: /src/libtorrent/simulation/test_swarm.cpp:1017,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_swarm.cpp:1017,1
    - Dst: lt::deadline_timer::async_wait
      Src: /src/libtorrent/simulation/test_swarm.cpp:1018,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_swarm.cpp:1020,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_swarm.cpp:1022,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 1023
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_swarm.cpp
    functionUses: 0
    functionsReached:
    - unit_test::test_counter
    - std::shared_ptr::async_add_torrent
    - lt::error_code::message
    - std::vector::size
    - std::uint32_t
    - lt::settings_pack::set_str
    - timestamp
    - sim::simulation::run
    - lt::alert_cast<lt::incoming_connection_alert>
    - addr
    - lt::alert_cast<lt::add_torrent_alert>
    - lt::deadline_timer::async_wait
    - lt::deadline_timer::expires_after
    - reset
    - std::shared_ptr::set_alert_notify
    - message
    - Catch::Timer::getElapsedNanoseconds
    - libtorrent::combine_path
    - std::make_shared<sim::asio::io_context>
    - abort
    - libtorrent::aux::random_bytes
    - std::printf
    - TEST_EQUAL
    - libtorrent::create_directory
    - save_path
    - std::vector::back
    - std::snprintf
    - lt::session*::pop_alerts
    - std::make_shared<lt::session>
    - lt::torrent_handle::connect_peer
    - lt::peer_id::to_string
    - std::ofstream::close
    - lt::incoming_connection_alert*::endpoint::address
    - lt::peer_connect_alert*::endpoint::address
    - libtorrent::create_torrent::create_torrent
    - std::vector::push_back
    - post
    - std::string::c_str
    - lt::duration_cast<lt::milliseconds>
    - dsl_config::dsl_config
    - local_endpoint
    - settings
    - lt::alert_cast<lt::peer_connect_alert>
    - get
    - what
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(pex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_all_combinations
      Src: /src/libtorrent/simulation/test_transfer_no_files.cpp:39,1
    - Dst: run_matrix_test
      Src: /src/libtorrent/simulation/test_transfer_no_files.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer_no_files.cpp
    functionUses: 0
    functionsReached:
    - run_matrix_test
    - run_all_combinations
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(transfer_matrix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_socks5.cpp:67,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_socks5.cpp:67,1
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_socks5.cpp:68,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_socks5.cpp:68,1
    - Dst: sim::default_config::hostname_lookup
      Src: /src/libtorrent/simulation/test_socks5.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' requestor'
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - asio::ip::address
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/test_socks5.cpp
    functionUses: 4
    functionsReached:
    - push_back
    - make_address_v4
    - sim::default_config::hostname_lookup
    - libtorrent::total_milliseconds
    - duration_cast<chrono::high_resolution_clock::duration>
    linkageType: ''
    returnType: chrono::high_resolution_clock::duration
    signature: "chrono::high_resolution_clock::duration hostname_lookup(\n\t\tasio::ip::address
      const& requestor\n\t\t, std::string hostname\n\t\t, std::vector<asio::ip::address>&
      result\n\t\t, boost::system::error_code& ec) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_io_context
      Src: /src/libtorrent/simulation/test_socks5.cpp:87,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_socks5.cpp:90,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_socks5.cpp:94,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_socks5.cpp:96,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_socks5.cpp:99,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_socks5.cpp:102,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/test_socks5.cpp:103,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_socks5.cpp:106,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/test_socks5.cpp:109,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_socks5.cpp:110,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_socks5.cpp:114,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_socks5.cpp:116,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_socks5.cpp:118,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_socks5.cpp:119,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_socks5.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - ' setup'
    - ' on_alert'
    - ' test'
    argTypes:
    - Setup
    - HandleAlerts
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 123
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_socks5.cpp
    functionUses: 51
    functionsReached:
    - libtorrent::create_torrent::create_torrent
    - std::shared_ptr::async_add_torrent
    - save_path
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - std::make_shared<lt::session>
    - setup
    - make_io_context
    - settings
    - addr
    - test
    - std::shared_ptr::reset
    - std::shared_ptr::abort
    - on_alert
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void run_test(Setup const& setup\n\t, HandleAlerts const& on_alert\n\t,
      Test const& test\n\t, std::uint32_t const flags = 0)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_socks5.cpp:130,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_socks5.cpp:133,1
    - Dst: sha1_hash
      Src: /src/libtorrent/simulation/test_socks5.cpp:136,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_socks5.cpp:137,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_socks5.cpp:139,1
    - Dst: lt::alert_cast<lt::listen_succeeded_alert>
      Src: /src/libtorrent/simulation/test_socks5.cpp:142,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_socks5.cpp:153,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_socks5.cpp:157,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_socks5.cpp:161,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_socks5.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_socks5.cpp:164,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/test_socks5.cpp:167,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/test_socks5.cpp:167,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_socks5.cpp:171,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_socks5.cpp:174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_socks5.cpp:178,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_socks5.cpp:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 180
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_socks5.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - make_address_v4
    - async_add_torrent
    - lt::alert_cast<lt::listen_succeeded_alert>
    - c_str
    - run
    - atoi
    - sim::http_server::register_handler
    - lt::add_torrent_params::trackers::push_back
    - find
    - set_proxy
    - sha1_hash
    - sim::send_response
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_tcp_announce)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_socks5.cpp:188,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_socks5.cpp:191,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_socks5.cpp:196,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_socks5.cpp:197,1
    - Dst: sha1_hash
      Src: /src/libtorrent/simulation/test_socks5.cpp:200,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_socks5.cpp:202,1
    - Dst: lt::add_torrent_params::trackers::push_back
      Src: /src/libtorrent/simulation/test_socks5.cpp:204,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_socks5.cpp:206,1
    - Dst: lt::alert_cast<lt::tracker_announce_alert>
      Src: /src/libtorrent/simulation/test_socks5.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_socks5.cpp:221,1
    - Dst: read_uint64
      Src: /src/libtorrent/simulation/test_socks5.cpp:225,1
    - Dst: read_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:226,1
    - Dst: read_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:227,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_socks5.cpp:233,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_socks5.cpp:235,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/test_socks5.cpp:236,1
    - Dst: write_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:237,1
    - Dst: write_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:238,1
    - Dst: write_uint64
      Src: /src/libtorrent/simulation/test_socks5.cpp:239,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_socks5.cpp:244,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_socks5.cpp:246,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/test_socks5.cpp:248,1
    - Dst: write_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:249,1
    - Dst: write_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:250,1
    - Dst: write_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:251,1
    - Dst: write_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:252,1
    - Dst: write_uint32
      Src: /src/libtorrent/simulation/test_socks5.cpp:253,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_socks5.cpp:258,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_socks5.cpp:263,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_socks5.cpp:268,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_socks5.cpp:269,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_socks5.cpp:270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 2
    argNames:
    - flags
    - sflags
    argTypes:
    - std::uint32_t
    - socks_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 271
    functionName: test_udp_tracker
    functionSourceFile: /src/libtorrent/simulation/test_socks5.cpp
    functionUses: 2
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - lt::alert_cast<lt::tracker_announce_alert>
    - async_add_torrent
    - std::printf
    - run
    - read_uint64
    - read_uint32
    - lt::add_torrent_params::trackers::push_back
    - write_uint32
    - set_proxy
    - std::back_inserter
    - write_uint64
    - settings_pack::set_bool
    - sha1_hash
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_udp_tracker(std::uint32_t const flags, socks_flags_t const
      sflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_udp_tracker
      Src: /src/libtorrent/simulation/test_socks5.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_socks5.cpp
    functionUses: 0
    functionsReached:
    - test_udp_tracker
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(udp_tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_udp_tracker
      Src: /src/libtorrent/simulation/test_socks5.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_socks5.cpp
    functionUses: 0
    functionsReached:
    - test_udp_tracker
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(udp_tracker_empty_domainname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_udp_tracker
      Src: /src/libtorrent/simulation/test_socks5.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_socks5.cpp
    functionUses: 0
    functionsReached:
    - test_udp_tracker
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(udp_tracker_hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_io_context
      Src: /src/libtorrent/simulation/test_socks5.cpp:298,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_socks5.cpp:301,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_socks5.cpp:305,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_socks5.cpp:307,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_socks5.cpp:308,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_socks5.cpp:309,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_socks5.cpp:311,1
    - Dst: fprintf
      Src: /src/libtorrent/simulation/test_socks5.cpp:313,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_socks5.cpp:315,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_socks5.cpp:316,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_socks5.cpp:318,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_socks5.cpp:323,1
    - Dst: sim::socks_server::cmd_counts
      Src: /src/libtorrent/simulation/test_socks5.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 324
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_socks5.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - std::make_shared<lt::session>
    - fprintf
    - sim::simulation::run
    - make_io_context
    - set_proxy
    - sim::socks_server::cmd_counts
    - settings
    - addr
    - std::shared_ptr::reset
    - std::shared_ptr::abort
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_udp_retry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: choke_state
    functionSourceFile: /src/libtorrent/simulation/test_optimistic_unchoke.cpp
    functionUses: 0
    functionsReached:
    - Catch::Timer::getElapsedNanoseconds
    linkageType: ''
    returnType: void
    signature: void choke_state()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:66,1
    - Dst: dsl_config::dsl_config
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:68,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:71,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:74,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:78,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:80,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:81,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:82,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:88,1
    - Dst: auto::async_add_torrent
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:89,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:94,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:96,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:102,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:103,1
    - Dst: std::make_shared<sim::asio::io_context>
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:103,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:104,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:105,1
    - Dst: std::make_shared<peer_conn>
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:105,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:105,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:115,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:124,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:134,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:135,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:136,1
    - Dst: printf
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:137,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:139,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:142,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:142,1
    - Dst: abort
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:151,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:153,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:154,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:157,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:159,1
    - Dst: printf
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:161,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:167,1
    - Dst: lt::duration_cast<lt::milliseconds>
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:169,1
    - Dst: printf
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:170,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:171,1
    - Dst: std::abs
      Src: /src/libtorrent/simulation/test_optimistic_unchoke.cpp:171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 173
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_optimistic_unchoke.cpp
    functionUses: 0
    functionsReached:
    - std::uint32_t
    - sim::simulation::run
    - addr
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - std::make_shared<sim::asio::io_context>
    - abort
    - time_now
    - std::vector::back
    - std::snprintf
    - auto::abort
    - libtorrent::total_milliseconds
    - std::make_shared<lt::session>
    - TEST_CHECK
    - auto::async_add_torrent
    - libtorrent::create_torrent::create_torrent
    - std::vector::push_back
    - auto::reset
    - lt::settings_pack::set_int
    - printf
    - lt::duration_cast<lt::milliseconds>
    - dsl_config::dsl_config
    - std::make_shared<peer_conn>
    - local_endpoint
    - settings
    - std::abs
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(optimistic_unchoke)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_session.cpp:51,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_session.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_session.cpp
    functionUses: 0
    functionsReached:
    - set_int
    - setup_swarm
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(seed_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_session.cpp:76,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_session.cpp:80,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_session.cpp:81,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_session.cpp:88,1
    - Dst: std::string::find
      Src: /src/libtorrent/simulation/test_session.cpp:89,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_session.cpp:91,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_session.cpp:101,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_session.cpp:102,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_session.cpp:107,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_session.cpp:108,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_session.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 118
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_session.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - setup_swarm
    - message
    - std::string::find
    - settings_pack::set_bool
    - set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ip_notifier_setting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<peer_plugin>
      Src: /src/libtorrent/simulation/test_session.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: new_connection
    functionSourceFile: /src/libtorrent/simulation/test_session.cpp
    functionUses: 13
    functionsReached:
    - std::shared_ptr<peer_plugin>
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: std::shared_ptr<peer_plugin> new_connection(peer_connection_handle
      const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: on_files_checked
    functionSourceFile: /src/libtorrent/simulation/test_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_files_checked() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<test_plugin>
      Src: /src/libtorrent/simulation/test_session.cpp:142,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_session.cpp:144,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_session.cpp:148,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_session.cpp:149,1
    - Dst: type
      Src: /src/libtorrent/simulation/test_session.cpp:156,1
    - Dst: alert_cast<peer_connect_alert>
      Src: /src/libtorrent/simulation/test_session.cpp:161,1
    - Dst: lt::torrent_handle::add_extension
      Src: /src/libtorrent/simulation/test_session.cpp:162,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_session.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_session.cpp:175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_session.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 177
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_session.cpp
    functionUses: 0
    functionsReached:
    - setup_swarm
    - lt::torrent_handle::add_extension
    - std::make_shared<test_plugin>
    - alert_cast<peer_connect_alert>
    - type
    - set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(add_extension_while_transfer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/libtorrent/simulation/test_session.cpp:187,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_session.cpp:192,1
    - Dst: auto::set_str
      Src: /src/libtorrent/simulation/test_session.cpp:193,1
    - Dst: auto::set_int
      Src: /src/libtorrent/simulation/test_session.cpp:194,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_session.cpp:198,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_session.cpp:203,1
    - Dst: alert_cast<listen_succeeded_alert>
      Src: /src/libtorrent/simulation/test_session.cpp:204,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_session.cpp:206,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_session.cpp:210,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_session.cpp:213,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_session.cpp:214,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_session.cpp:216,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_session.cpp:216,1
    - Dst: std::vector::front
      Src: /src/libtorrent/simulation/test_session.cpp:217,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_session.cpp:219,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_session.cpp:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 223
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_session.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - alert_cast<listen_succeeded_alert>
    - std::vector::push_back
    - auto::reset
    - print_alerts
    - std::vector::front
    - Catch::Timer::getElapsedNanoseconds
    - auto::abort
    - std::make_shared<lt::session>
    - auto::set_str
    - sim::simulation::run
    - settings
    - addr
    - auto::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(tie_listen_ports)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/libtorrent/simulation/test_session.cpp:233,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_session.cpp:238,1
    - Dst: auto::set_str
      Src: /src/libtorrent/simulation/test_session.cpp:239,1
    - Dst: auto::set_int
      Src: /src/libtorrent/simulation/test_session.cpp:240,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_session.cpp:244,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_session.cpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_session.cpp:248,1
    - Dst: auto::is_paused
      Src: /src/libtorrent/simulation/test_session.cpp:248,1
    - Dst: auto::abort
      Src: /src/libtorrent/simulation/test_session.cpp:249,1
    - Dst: auto::reset
      Src: /src/libtorrent/simulation/test_session.cpp:250,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_session.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 254
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_session.cpp
    functionUses: 0
    functionsReached:
    - auto::reset
    - Catch::Timer::getElapsedNanoseconds
    - auto::abort
    - std::make_shared<lt::session>
    - auto::set_str
    - sim::simulation::run
    - settings
    - addr
    - auto::is_paused
    - auto::set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(construct_paused_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_all_combinations
      Src: /src/libtorrent/simulation/test_transfer_partial_valid_files.cpp:39,1
    - Dst: run_matrix_test
      Src: /src/libtorrent/simulation/test_transfer_partial_valid_files.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer_partial_valid_files.cpp
    functionUses: 0
    functionsReached:
    - run_matrix_test
    - run_all_combinations
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(transfer_matrix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<sim::asio::io_context>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:60,1
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:60,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:64,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:65,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:70,1
    - Dst: std::make_unique<fake_peer>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:72,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:77,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:77,1
    - Dst: lt::add_torrent_params::ti::num_pieces
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:78,1
    - Dst: lt::add_torrent_params::ti::info_hash
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:82,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:83,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:87,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:92,1
    - Dst: auto::connect_to
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:93,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:93,1
    - Dst: peer_fun
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:94,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:94,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:98,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:102,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:106,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:107,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - flags
    - ' peer_fun'
    - ' test'
    argTypes:
    - lt::torrent_flags_t
    - PeerFun
    - TestFun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 111
    functionName: test_peer
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::async_add_torrent
    - std::move
    - auto::get
    - sim::simulation::run
    - lt::alert_cast<lt::add_torrent_alert>
    - std::shared_ptr::abort
    - std::make_unique<fake_peer>
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - lt::session_params::settings::set_int
    - std::make_shared<lt::session>
    - TORRENT_ASSERT
    - std::make_unique<sim::asio::io_context>
    - test
    - lt::add_torrent_params::ti::num_pieces
    - peer_fun
    - libtorrent::create_torrent::create_torrent
    - lt::add_torrent_params::ti::info_hash
    - auto::connect_to
    - ep
    - settings
    - std::shared_ptr::reset
    - lt::make_address_v4
    linkageType: ''
    returnType: void
    signature: "void test_peer(lt::torrent_flags_t const flags\n\t, PeerFun&& peer_fun\n\t,
      TestFun&& test)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::alert_cast<lt::peer_error_alert>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:117,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: operator()(lt::alert const* a)
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - lt::alert_cast<lt::peer_error_alert>
    linkageType: ''
    returnType: void
    signature: void operator()(lt::alert const* a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:131,1
    - Dst: lt::alert_cast<lt::peer_error_alert>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:131,1
    - Dst: lt::alert_cast<lt::peer_disconnected_alert>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:133,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: operator()(lt::alert const* a)
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - lt::alert_cast<lt::peer_error_alert>
    - TEST_CHECK
    - lt::alert_cast<lt::peer_disconnected_alert>
    linkageType: ''
    returnType: void
    signature: void operator()(lt::alert const* a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:146,1
    - Dst: lt::alert_cast<lt::peer_error_alert>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:146,1
    - Dst: lt::alert_cast<lt::invalid_request_alert>
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:148,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: operator()(lt::alert const* a)
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - lt::alert_cast<lt::peer_error_alert>
    - lt::alert_cast<lt::invalid_request_alert>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void operator()(lt::alert const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:162,1
    - Dst: send_have_all
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:164,1
    - Dst: send_have_none
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:165,1
    - Dst: send_have_all
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:166,1
    - Dst: send_have_none
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:167,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - test_peer
    - send_have_none
    - send_have_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alternate_have_all_have_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:176,1
    - Dst: send_have_all
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:178,1
    - Dst: send_have_none
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:179,1
    - Dst: send_have_all
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:180,1
    - Dst: send_have_none
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 185
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - test_peer
    - send_have_none
    - send_have_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(alternate_have_all_have_none_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:190,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:193,1
    - Dst: send_bitfield
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:194,1
    - Dst: send_have_none
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:195,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - send_have_none
    - Catch::Generators::random
    - test_peer
    - send_bitfield
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bitfield_and_have_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:204,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:207,1
    - Dst: send_bitfield
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:208,1
    - Dst: send_have_all
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:209,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - Catch::Generators::random
    - test_peer
    - send_bitfield
    - send_have_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(bitfield_and_have_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:218,1
    - Dst: send_bitfield
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:221,1
    - Dst: send_have_all
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:222,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - send_have_all
    - TEST_CHECK
    - test_peer
    - send_bitfield
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(full_bitfield_and_have_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:231,1
    - Dst: send_bitfield
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:234,1
    - Dst: send_have_none
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:235,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 239
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - test_peer
    - send_have_none
    - send_bitfield
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(full_bitfield_and_have_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:244,1
    - Dst: send_interested
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:246,1
    - Dst: send_request
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:247,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - send_request
    - test_peer
    - send_interested
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:256,1
    - Dst: send_large_message
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:258,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - test_peer
    - TEST_CHECK
    - send_large_message
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(large_message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:267,1
    - Dst: send_have_all
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:269,1
    - Dst: send_invalid_message
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:270,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - send_invalid_message
    - TEST_CHECK
    - test_peer
    - send_have_all
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(have_all_invalid_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:279,1
    - Dst: send_invalid_message
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:281,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - send_invalid_message
    - test_peer
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(invalid_message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:290,1
    - Dst: send_bitfield
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:293,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - test_peer
    - send_bitfield
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(short_bitfield)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_peer
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:302,1
    - Dst: send_bitfield
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:305,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_peer_connection.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - test_peer
    - send_bitfield
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(long_bitfield)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: set_external_address
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_external_address(lt::aux::listen_socket_handle const&, address
      const& /* addr */\n\t\t, address const& /* source */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: get_listen_port
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: int
    signature: int get_listen_port(lt::aux::transport, lt::aux::listen_socket_handle
      const& s) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: get_peers
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_peers(sha1_hash const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: outgoing_get_peers
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void outgoing_get_peers(sha1_hash const& /* target */\n\t\t, sha1_hash
      const& /* sent_target */, udp::endpoint const& /* ep */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: announce
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void announce(sha1_hash const& /* ih */\n\t\t, address const& /* addr
      */, int /* port */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: on_dht_request
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_dht_request(string_view /* query */\n\t\t, dht::msg const&
      /* request */, entry& /* response */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: should_log
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log(module_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:78,1
    - Dst: vprintf
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:79,1
    - Dst: va_end
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:80,1
    - Dst: puts
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: log
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 41
    functionsReached:
    - va_start
    - puts
    - vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void log(dht_logger::module_t, char const* fmt, ...) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: log_packet
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void log_packet(message_direction_t /* dir */\n\t\t, span<char const>
      /* pkt */\n\t\t, udp::endpoint const& /* node */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' sock'
    - ' ep'
    - p
    - ' ec'
    - flags
    argTypes:
    - lt::udp_socket
    - udp::endpoint
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: send_packet
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 0
    functionsReached:
    - send
    linkageType: ''
    returnType: void
    signature: "void send_packet(lt::udp_socket& sock, lt::aux::listen_socket_handle
      const&, udp::endpoint const& ep\n\t, span<char const> p, error_code& ec, udp_send_flags_t
      const flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:103,1
    - Dst: std::make_shared<lt::aux::listen_socket_t>
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:108,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:109,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:109,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:110,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:111,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:111,1
    - Dst: lt::udp_socket::bind
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:113,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:113,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:113,1
    - Dst: lt::aux::session_settings::set_int
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:115,1
    - Dst: lt::aux::session_settings::set_bool
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:116,1
    - Dst: lt::aux::session_settings::set_int
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:117,1
    - Dst: std::make_shared<lt::dht::dht_tracker>
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:124,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:125,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:125,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:126,1
    - Dst: auto::new_socket
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:127,1
    - Dst: lt::udp_socket::read
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:136,1
    - Dst: lt::span<udp_socket::packet>
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:136,1
    - Dst: auto::incoming_packet
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:137,1
    - Dst: lt::udp_socket::async_read
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:139,1
    - Dst: lt::udp_socket::async_read
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:141,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:145,1
    - Dst: udp::socket::open
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:147,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:147,1
    - Dst: udp::socket::bind
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:148,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:148,1
    - Dst: address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:148,1
    - Dst: udp::socket::non_blocking
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:149,1
    - Dst: asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:156,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:156,1
    - Dst: asio::high_resolution_timer::async_wait
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:157,1
    - Dst: auto::stop
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:159,1
    - Dst: udp::socket::close
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:161,1
    - Dst: lt::udp_socket::close
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:162,1
    - Dst: udp::socket::send_to
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:168,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:168,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:169,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:169,1
    - Dst: asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:172,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:172,1
    - Dst: asio::high_resolution_timer::async_wait
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:173,1
    - Dst: asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:175,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:175,1
    - Dst: asio::high_resolution_timer::async_wait
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:176,1
    - Dst: udp::socket::async_receive_from
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:190,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:190,1
    - Dst: udp::socket::async_receive_from
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:193,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:193,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:197,1
    - Dst: simulation::run
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:198,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:199,1
    - Dst: duration_cast<chrono::milliseconds>
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:204,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:206,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:211,1
    - Dst: std::abs
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:211,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:213,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 221
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - std::make_shared<lt::dht::dht_tracker>
    - auto::new_socket
    - lt::udp_socket::bind
    - lt::udp_socket::read
    - udp::socket::non_blocking
    - lt::aux::session_settings::set_bool
    - Catch::Timer::getElapsedNanoseconds
    - auto::stop
    - udp::socket::open
    - lt::udp_socket::close
    - std::make_shared<lt::aux::listen_socket_t>
    - udp::socket::send_to
    - std::printf
    - time_now
    - TEST_EQUAL
    - init_rand_address
    - libtorrent::total_milliseconds
    - auto::external_address::cast_vote
    - lt::udp_socket::async_read
    - auto::incoming_packet
    - address_v4
    - TEST_CHECK
    - std::bind
    - lt::aux::session_settings::set_int
    - rand_v4
    - simulation::run
    - udp::socket::async_receive_from
    - udp::socket::bind
    - udp::socket::close
    - std::ref
    - both_sides_from_store_buffer
    - local_endpoint
    - std::abs
    - duration_cast<chrono::milliseconds>
    - lt::span<udp_socket::packet>
    - asio::high_resolution_timer::expires_after
    - asio::high_resolution_timer::async_wait
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_rate_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:230,1
    - Dst: lt::udp_socket::bind
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:234,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:234,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:234,1
    - Dst: std::make_shared<lt::aux::listen_socket_t>
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:237,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:238,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:238,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:239,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:240,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:240,1
    - Dst: std::make_shared<lt::dht::dht_tracker>
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:245,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:246,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:246,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:247,1
    - Dst: auto::start
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:249,1
    - Dst: auto::new_socket
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:250,1
    - Dst: asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:257,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:257,1
    - Dst: asio::high_resolution_timer::async_wait
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:258,1
    - Dst: auto::delete_socket
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:260,1
    - Dst: asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:265,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:265,1
    - Dst: asio::high_resolution_timer::async_wait
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:266,1
    - Dst: auto::stop
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:266,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_dht_rate_limit.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 271
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht_rate_limit.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - sim::simulation::run
    - std::make_shared<lt::dht::dht_tracker>
    - auto::new_socket
    - lt::udp_socket::bind
    - Catch::Timer::getElapsedNanoseconds
    - auto::stop
    - std::make_shared<lt::aux::listen_socket_t>
    - init_rand_address
    - auto::external_address::cast_vote
    - std::bind
    - auto::start
    - auto::delete_socket
    - std::ref
    - local_endpoint
    - asio::high_resolution_timer::expires_after
    - asio::high_resolution_timer::async_wait
    - lt::make_address_v4
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_delete_socket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_all_combinations
      Src: /src/libtorrent/simulation/test_transfer_full_invalid_files.cpp:39,1
    - Dst: run_matrix_test
      Src: /src/libtorrent/simulation/test_transfer_full_invalid_files.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer_full_invalid_files.cpp
    functionUses: 0
    functionsReached:
    - run_matrix_test
    - run_all_combinations
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(transfer_matrix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/setup_dht.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: addr_from_int
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    linkageType: ''
    returnType: asio::ip::address
    signature: asio::ip::address addr_from_int(int /* idx */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/simulation/setup_dht.cpp:68,1
    - Dst: asio::ip::address_v6
      Src: /src/libtorrent/simulation/setup_dht.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: addr6_from_int
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - asio::ip::address_v6
    - Catch::Generators::random
    linkageType: ''
    returnType: asio::ip::address
    signature: asio::ip::address addr6_from_int(int /* idx */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/simulation/setup_dht.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - lt::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: id_from_addr
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_id_impl
    linkageType: ''
    returnType: dht::node_id
    signature: dht::node_id id_from_addr(lt::address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<lt::aux::listen_socket_t>
      Src: /src/libtorrent/simulation/setup_dht.cpp:80,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/simulation/setup_dht.cpp:81,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/setup_dht.cpp:81,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/setup_dht.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ep
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: sim_listen_socket
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - auto::external_address::cast_vote
    - init_rand_address
    - std::make_shared<lt::aux::listen_socket_t>
    linkageType: ''
    returnType: std::shared_ptr<lt::aux::listen_socket_t>
    signature: std::shared_ptr<lt::aux::listen_socket_t> sim_listen_socket(tcp::endpoint
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/setup_dht.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: addr_from_int
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    linkageType: ''
    returnType: asio::ip::address
    signature: asio::ip::address addr_from_int(int /* idx */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/simulation/setup_dht.cpp:68,1
    - Dst: asio::ip::address_v6
      Src: /src/libtorrent/simulation/setup_dht.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: addr6_from_int
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - asio::ip::address_v6
    - Catch::Generators::random
    linkageType: ''
    returnType: asio::ip::address
    signature: asio::ip::address addr6_from_int(int /* idx */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/simulation/setup_dht.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - lt::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: id_from_addr
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_id_impl
    linkageType: ''
    returnType: dht::node_id
    signature: dht::node_id id_from_addr(lt::address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<lt::aux::listen_socket_t>
      Src: /src/libtorrent/simulation/setup_dht.cpp:80,1
    - Dst: auto::external_address::cast_vote
      Src: /src/libtorrent/simulation/setup_dht.cpp:81,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/setup_dht.cpp:81,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/setup_dht.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ep
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: sim_listen_socket
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - auto::external_address::cast_vote
    - init_rand_address
    - std::make_shared<lt::aux::listen_socket_t>
    linkageType: ''
    returnType: std::shared_ptr<lt::aux::listen_socket_t>
    signature: std::shared_ptr<lt::aux::listen_socket_t> sim_listen_socket(tcp::endpoint
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr6_from_int
      Src: /src/libtorrent/simulation/setup_dht.cpp:93,1
    - Dst: addr_from_int
      Src: /src/libtorrent/simulation/setup_dht.cpp:93,1
    - Dst: libtorrent::dht::dht_default_storage_constructor
      Src: /src/libtorrent/simulation/setup_dht.cpp:94,1
    - Dst: sim_listen_socket
      Src: /src/libtorrent/simulation/setup_dht.cpp:98,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/setup_dht.cpp:98,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/setup_dht.cpp:98,1
    - Dst: id_from_addr
      Src: /src/libtorrent/simulation/setup_dht.cpp:99,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/setup_dht.cpp:99,1
    - Dst: update_node_ids
      Src: /src/libtorrent/simulation/setup_dht.cpp:104,1
    - Dst: id_from_addr
      Src: /src/libtorrent/simulation/setup_dht.cpp:104,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/setup_dht.cpp:104,1
    - Dst: sock
      Src: /src/libtorrent/simulation/setup_dht.cpp:105,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/setup_dht.cpp:105,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/setup_dht.cpp:105,1
    - Dst: sock
      Src: /src/libtorrent/simulation/setup_dht.cpp:106,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/setup_dht.cpp:106,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/setup_dht.cpp:107,1
    - Dst: lt::address_v6::any
      Src: /src/libtorrent/simulation/setup_dht.cpp:107,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/setup_dht.cpp:107,1
    - Dst: lt::address_v4::any
      Src: /src/libtorrent/simulation/setup_dht.cpp:107,1
    - Dst: sock
      Src: /src/libtorrent/simulation/setup_dht.cpp:109,1
    - Dst: sock
      Src: /src/libtorrent/simulation/setup_dht.cpp:110,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/setup_dht.cpp:110,1
    - Dst: data
      Src: /src/libtorrent/simulation/setup_dht.cpp:110,1
    - Dst: size
      Src: /src/libtorrent/simulation/setup_dht.cpp:110,1
    - Dst: on_read
      Src: /src/libtorrent/simulation/setup_dht.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - ' sim'
    - ' sett'
    - ' cnt'
    - idx
    - flags
    argTypes:
    - sim::simulation
    - lt::aux::session_settings
    - lt::counters
    - int
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 113
    functionName: dht_node
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - sock
    - rand_v4
    - sim_listen_socket
    - on_read
    - get_ips
    - rand_v6
    - init_rand_address
    - libtorrent::dht::dht_default_storage_constructor
    - addr6_from_int
    - lt::address_v4::any
    - addr_from_int
    - lt::address_v6::any
    - local_endpoint
    - both_sides_from_store_buffer
    - id_from_addr
    - data
    - size
    - update_node_ids
    linkageType: ''
    returnType: void
    signature: "void dht_node(sim::simulation& sim, lt::aux::session_settings const&
      sett, lt::counters& cnt\n\t\t, int const idx, std::uint32_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: dht_node
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_node(dht_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& operator=(dht_node const&)'
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_node
    signature: dht_node & operator=(dht_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - dht_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: dht_node
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_node(dht_node&& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& operator=(dht_node&&)'
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_node
    signature: dht_node & operator=(dht_node&&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/simulation/setup_dht.cpp:139,1
    - Dst: data
      Src: /src/libtorrent/simulation/setup_dht.cpp:139,1
    - Dst: data
      Src: /src/libtorrent/simulation/setup_dht.cpp:139,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/simulation/setup_dht.cpp:142,1
    - Dst: dht
      Src: /src/libtorrent/simulation/setup_dht.cpp:145,1
    - Dst: sock
      Src: /src/libtorrent/simulation/setup_dht.cpp:147,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/setup_dht.cpp:147,1
    - Dst: data
      Src: /src/libtorrent/simulation/setup_dht.cpp:147,1
    - Dst: size
      Src: /src/libtorrent/simulation/setup_dht.cpp:147,1
    - Dst: on_read
      Src: /src/libtorrent/simulation/setup_dht.cpp:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - lt::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 150
    functionName: on_read
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 2
    functionsReached:
    - sock
    - bdecode_node::type
    - on_read
    - size
    - both_sides_from_store_buffer
    - dht
    - bdecode
    - data
    linkageType: ''
    returnType: void
    signature: void on_read(lt::error_code const& ec, std::size_t bytes_transferred)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: has_quota
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_quota() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/setup_dht.cpp:159,1
    - Dst: bencode
      Src: /src/libtorrent/simulation/setup_dht.cpp:160,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/setup_dht.cpp:160,1
    - Dst: sock
      Src: /src/libtorrent/simulation/setup_dht.cpp:161,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/simulation/setup_dht.cpp:161,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/setup_dht.cpp:161,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/setup_dht.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' e'
    - ' addr'
    argTypes:
    - entry
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: send_packet
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - sock
    - std::vector::data
    - std::vector::size
    - std::vector::clear
    - boost::asio::const_buffer
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: bool
    signature: bool send_packet(lt::aux::listen_socket_handle const&, entry& e, udp::endpoint
      const& addr) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/setup_dht.cpp:168,1
    - Dst: dht
      Src: /src/libtorrent/simulation/setup_dht.cpp:168,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/setup_dht.cpp:168,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/setup_dht.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: node_info
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - get_ips
    - local_endpoint
    - dht
    - std::make_pair
    linkageType: ''
    returnType: std::pair<dht::node_id, lt::udp::endpoint>
    signature: std::pair<dht::node_id, lt::udp::endpoint> node_info() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dht
      Src: /src/libtorrent/simulation/setup_dht.cpp:177,1
    - Dst: std::array::fill
      Src: /src/libtorrent/simulation/setup_dht.cpp:181,1
    - Dst: size
      Src: /src/libtorrent/simulation/setup_dht.cpp:190,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/setup_dht.cpp:191,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/setup_dht.cpp:193,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/simulation/setup_dht.cpp:195,1
    - Dst: static_cast<uint32_t>
      Src: /src/libtorrent/simulation/setup_dht.cpp:195,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/setup_dht.cpp:195,1
    - Dst: assert
      Src: /src/libtorrent/simulation/setup_dht.cpp:196,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/setup_dht.cpp:196,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/setup_dht.cpp:198,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/setup_dht.cpp:198,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/simulation/setup_dht.cpp:199,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/simulation/setup_dht.cpp:202,1
    - Dst: dht
      Src: /src/libtorrent/simulation/setup_dht.cpp:213,1
    - Dst: node_seen
      Src: /src/libtorrent/simulation/setup_dht.cpp:213,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/simulation/setup_dht.cpp:213,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/setup_dht.cpp:214,1
    - Dst: libtorrent::dht::generate_prefix_mask
      Src: /src/libtorrent/simulation/setup_dht.cpp:218,1
    - Dst: rand_udp_ep
      Src: /src/libtorrent/simulation/setup_dht.cpp:219,1
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/simulation/setup_dht.cpp:220,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/setup_dht.cpp:220,1
    - Dst: dht
      Src: /src/libtorrent/simulation/setup_dht.cpp:222,1
    - Dst: node_seen
      Src: /src/libtorrent/simulation/setup_dht.cpp:222,1
    - Dst: Catch::Generators::random
      Src: /src/libtorrent/simulation/setup_dht.cpp:222,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<std::pair<dht::node_id, lt::udp::endpoint>>
    assertStmts:
    - condition: (idx >= 0 && idx < order.size())
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/libtorrent/simulation/setup_dht.cpp
    constantsTouched: []
    func_position:
      end: 233
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 233
    functionName: bootstrap
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 9
    functionsReached:
    - node_seen
    - assert
    - std::vector::size
    - static_cast<uint32_t>
    - std::vector::empty
    - Catch::Generators::random
    - std::vector::back
    - rand_udp_ep
    - std::array::fill
    - udp::endpoint::address
    - libtorrent::dht::generate_prefix_mask
    - libtorrent::dht::generate_id_impl
    - std::vector::pop_back
    - dht
    - libtorrent::dht::distance_exp
    - size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void bootstrap(std::vector<std::pair<dht::node_id, lt::udp::endpoint>>
      const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock
      Src: /src/libtorrent/simulation/setup_dht.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: stop
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 3
    functionsReached:
    - sock
    linkageType: ''
    returnType: void
    signature: void stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: '& dht()'
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lt::dht::node
    signature: lt::dht::node & dht()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: '& dht() const'
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lt::dht::node
    signature: lt::dht::node & dht() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: '& sock()'
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lt::udp::socket
    signature: lt::udp::socket & sock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bool
      Src: /src/libtorrent/simulation/setup_dht.cpp:259,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/setup_dht.cpp:260,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/setup_dht.cpp:265,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/setup_dht.cpp:270,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/setup_dht.cpp:271,1
    - Dst: back
      Src: /src/libtorrent/simulation/setup_dht.cpp:271,1
    - Dst: bootstrap
      Src: /src/libtorrent/simulation/setup_dht.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' sim'
    - num_nodes
    - flags
    argTypes:
    - sim::simulation
    - int
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 275
    functionName: dht_network::dht_network
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - bootstrap
    - set_bool
    - std::vector::reserve
    - back
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void dht_network::dht_network(sim::simulation& sim, int num_nodes,
      std::uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: dht_network::~dht_network()
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_network::~dht_network()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/setup_dht.cpp:282,1
    - Dst: end
      Src: /src/libtorrent/simulation/setup_dht.cpp:283,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/setup_dht.cpp:291,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/setup_dht.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' rt'
    argTypes:
    - std::vector<lt::dht_routing_bucket>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: print_routing_table
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - end
    - std::printf
    - begin
    linkageType: ''
    returnType: void
    signature: void print_routing_table(std::vector<lt::dht_routing_bucket> const&
      rt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/setup_dht.cpp:302,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/setup_dht.cpp:307,1
    - Dst: node_info
      Src: /src/libtorrent/simulation/setup_dht.cpp:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 310
    functionName: dht_network::router_nodes
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 0
    functionsReached:
    - std::vector::reserve
    - std::vector::push_back
    - node_info
    linkageType: ''
    returnType: std::vector<lt::udp::endpoint>
    signature: std::vector<lt::udp::endpoint> dht_network::router_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_network::stop
      Src: /src/libtorrent/simulation/setup_dht.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: dht_network::stop
    functionSourceFile: /src/libtorrent/simulation/setup_dht.cpp
    functionUses: 1
    functionsReached:
    - dht_network::stop
    linkageType: ''
    returnType: void
    signature: void dht_network::stop()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: test_disk
      Src: /src/libtorrent/simulation/transfer_sim.hpp:72,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/transfer_sim.hpp:73,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/transfer_sim.hpp:74,1
    - Dst: addr
      Src: /src/libtorrent/simulation/transfer_sim.hpp:86,1
    - Dst: addr
      Src: /src/libtorrent/simulation/transfer_sim.hpp:87,1
    - Dst: addr
      Src: /src/libtorrent/simulation/transfer_sim.hpp:88,1
    - Dst: addr
      Src: /src/libtorrent/simulation/transfer_sim.hpp:88,1
    - Dst: sim::socks_server::bind_start_port
      Src: /src/libtorrent/simulation/transfer_sim.hpp:101,1
    - Dst: settings
      Src: /src/libtorrent/simulation/transfer_sim.hpp:106,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/transfer_sim.hpp:107,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/transfer_sim.hpp:110,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/transfer_sim.hpp:111,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/transfer_sim.hpp:114,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/transfer_sim.hpp:115,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/transfer_sim.hpp:116,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/transfer_sim.hpp:117,1
    - Dst: set_str
      Src: /src/libtorrent/simulation/transfer_sim.hpp:119,1
    - Dst: make_ep_string
      Src: /src/libtorrent/simulation/transfer_sim.hpp:119,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/transfer_sim.hpp:126,1
    - Dst: set_str
      Src: /src/libtorrent/simulation/transfer_sim.hpp:128,1
    - Dst: make_ep_string
      Src: /src/libtorrent/simulation/transfer_sim.hpp:128,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/transfer_sim.hpp:133,1
    - Dst: set_files
      Src: /src/libtorrent/simulation/transfer_sim.hpp:136,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/transfer_sim.hpp:137,1
    - Dst: setup
      Src: /src/libtorrent/simulation/transfer_sim.hpp:139,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/transfer_sim.hpp:142,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/transfer_sim.hpp:143,1
    - Dst: auto::handle::connect_peer
      Src: /src/libtorrent/simulation/transfer_sim.hpp:148,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/transfer_sim.hpp:148,1
    - Dst: auto::handle::connect_peer
      Src: /src/libtorrent/simulation/transfer_sim.hpp:150,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/transfer_sim.hpp:150,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/transfer_sim.hpp:153,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/transfer_sim.hpp:156,1
    - Dst: create_test_torrent
      Src: /src/libtorrent/simulation/transfer_sim.hpp:175,1
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/simulation/transfer_sim.hpp:181,1
    - Dst: lt::add_torrent_params::ti::files
      Src: /src/libtorrent/simulation/transfer_sim.hpp:190,1
    - Dst: file_range
      Src: /src/libtorrent/simulation/transfer_sim.hpp:191,1
    - Dst: file_path
      Src: /src/libtorrent/simulation/transfer_sim.hpp:193,1
    - Dst: libtorrent::convert_path_to_posix
      Src: /src/libtorrent/simulation/transfer_sim.hpp:194,1
    - Dst: sim::http_server::register_content
      Src: /src/libtorrent/simulation/transfer_sim.hpp:195,1
    - Dst: file_size
      Src: /src/libtorrent/simulation/transfer_sim.hpp:195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/transfer_sim.hpp:198,1
    - Dst: file_size
      Src: /src/libtorrent/simulation/transfer_sim.hpp:198,1
    - Dst: map_file
      Src: /src/libtorrent/simulation/transfer_sim.hpp:199,1
    - Dst: std::string::resize
      Src: /src/libtorrent/simulation/transfer_sim.hpp:201,1
    - Dst: generate_block
      Src: /src/libtorrent/simulation/transfer_sim.hpp:202,1
    - Dst: piece_length
      Src: /src/libtorrent/simulation/transfer_sim.hpp:202,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/transfer_sim.hpp:204,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/transfer_sim.hpp:206,1
    - Dst: lt::span<char>
      Src: /src/libtorrent/simulation/transfer_sim.hpp:206,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/transfer_sim.hpp:215,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/transfer_sim.hpp:219,1
    - Dst: lt::add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/simulation/transfer_sim.hpp:222,1
    - Dst: lt::add_torrent_params::ti::reset
      Src: /src/libtorrent/simulation/transfer_sim.hpp:223,1
    - Dst: lt::add_torrent_params::url_seeds::emplace_back
      Src: /src/libtorrent/simulation/transfer_sim.hpp:226,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/transfer_sim.hpp:228,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/transfer_sim.hpp:232,1
    - Dst: torrent_file_with_hashes
      Src: /src/libtorrent/simulation/transfer_sim.hpp:233,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/transfer_sim.hpp:238,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/transfer_sim.hpp:238,1
    - Dst: auto::v2
      Src: /src/libtorrent/simulation/transfer_sim.hpp:242,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/transfer_sim.hpp:243,1
    - Dst: auto::v2_piece_hashes_verified
      Src: /src/libtorrent/simulation/transfer_sim.hpp:243,1
    - Dst: serialize
      Src: /src/libtorrent/simulation/transfer_sim.hpp:245,1
    - Dst: serialize
      Src: /src/libtorrent/simulation/transfer_sim.hpp:246,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/transfer_sim.hpp:247,1
    - Dst: test
      Src: /src/libtorrent/simulation/transfer_sim.hpp:250,1
    - Dst: abort
      Src: /src/libtorrent/simulation/transfer_sim.hpp:256,1
    - Dst: reset
      Src: /src/libtorrent/simulation/transfer_sim.hpp:257,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/transfer_sim.hpp:261,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 76
    argCount: 3
    argNames:
    - setup
    - on_alert
    - test
    argTypes:
    - Setup
    - HandleAlerts
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 262
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.hpp
    functionUses: 53
    functionsReached:
    - lt::add_torrent_params::ti::files
    - lt::add_torrent_params::ti::reset
    - auto::v2
    - setup
    - sim::simulation::run
    - file_size
    - auto::handle::connect_peer
    - addr
    - lt::alert_cast<lt::add_torrent_alert>
    - make_ep_string
    - set_int
    - generate_block
    - set_str
    - reset
    - print_alerts
    - sim::socks_server::bind_start_port
    - Catch::Timer::getElapsedNanoseconds
    - get_torrents
    - set_bool
    - file_path
    - set_files
    - abort
    - auto::v2_piece_hashes_verified
    - libtorrent::aux::random_bytes
    - file_range
    - map_file
    - create_test_torrent
    - TEST_EQUAL
    - serialize
    - async_add_torrent
    - save_path
    - std::make_shared<lt::session>
    - TORRENT_ASSERT
    - lt::add_torrent_params::url_seeds::emplace_back
    - lt::add_torrent_params::ti::info_hashes
    - std::string::resize
    - is_seed
    - test
    - lt::span<char>
    - torrent_file_with_hashes
    - libtorrent::convert_path_to_posix
    - TEST_CHECK
    - sim::http_server::register_content
    - test_disk
    - piece_length
    - local_endpoint
    - settings
    - on_alert
    - lt::make_address_v4
    linkageType: ''
    returnType: void
    signature: "void run_test(\n\tSetup setup\n\t, HandleAlerts on_alert\n\t, Test
      test\n\t, test_transfer_flags_t flags = {}\n\t, test_disk const downloader_disk_constructor
      = test_disk()\n\t, test_disk const seed_disk_constructor = test_disk()\n\t,
      lt::seconds const timeout = lt::seconds(60)\n\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: combine_t
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void combine_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/simulation/transfer_sim.hpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - a
    argTypes:
    - lt::session
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: operator()(lt::session& s, lt::alert const* a)
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.hpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(lt::session& s, lt::alert const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/transfer_sim.hpp:281,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/transfer_sim.hpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - std::function<void(lt::session&, lt::alert const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: add
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.hpp
    functionUses: 14
    functionsReached:
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add(std::function<void(lt::session&, lt::alert const*)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/transfer_sim.hpp:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 1
    argNames:
    - fun
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 332
    functionName: run_all_combinations
    functionSourceFile: /src/libtorrent/simulation/transfer_sim.hpp
    functionUses: 3
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void run_all_combinations(F fun)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:68,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:68,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:69,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:69,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:70,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:70,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:71,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:71,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:72,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:72,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:73,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:73,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:74,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:74,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:75,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:75,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:78,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:78,1
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_http_connection.cpp:79,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_http_connection.cpp:79,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:84,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:84,1
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_http_connection.cpp:85,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_http_connection.cpp:85,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:90,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:90,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_http_connection.cpp:91,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_http_connection.cpp:91,1
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_http_connection.cpp:92,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_http_connection.cpp:92,1
    - Dst: sim::default_config::hostname_lookup
      Src: /src/libtorrent/simulation/test_http_connection.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - ' requestor'
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - asio::ip::address
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 5
    functionsReached:
    - push_back
    - make_address_v4
    - sim::default_config::hostname_lookup
    - libtorrent::total_milliseconds
    - duration_cast<chrono::high_resolution_clock::duration>
    - make_address_v6
    linkageType: ''
    returnType: chrono::high_resolution_clock::duration
    signature: "chrono::high_resolution_clock::duration hostname_lookup(\n\t\tasio::ip::address
      const& requestor\n\t\t, std::string hostname\n\t\t, std::vector<asio::ip::address>&
      result\n\t\t, boost::system::error_code& ec) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/test_http_connection.cpp:104,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/test_http_connection.cpp:106,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/test_http_connection.cpp:106,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_http_connection.cpp:108,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/test_http_connection.cpp:110,1
    - Dst: std::string::erase
      Src: /src/libtorrent/simulation/test_http_connection.cpp:111,1
    - Dst: std::string::begin
      Src: /src/libtorrent/simulation/test_http_connection.cpp:111,1
    - Dst: std::string::begin
      Src: /src/libtorrent/simulation/test_http_connection.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: chunk_string
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - std::string::erase
    - std::snprintf
    - std::string::empty
    - std::string::begin
    - std::min
    - std::string::substr
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string chunk_string(std::string s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/test_http_connection.cpp:128,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_http_connection.cpp:130,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/test_http_connection.cpp:130,1
    - Dst: ssl::context::set_verify_mode
      Src: /src/libtorrent/simulation/test_http_connection.cpp:134,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/simulation/test_http_connection.cpp:137,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_http_connection.cpp:142,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/test_http_connection.cpp:142,1
    - Dst: strcmp
      Src: /src/libtorrent/simulation/test_http_connection.cpp:150,1
    - Dst: category
      Src: /src/libtorrent/simulation/test_http_connection.cpp:150,1
    - Dst: error_condition::category
      Src: /src/libtorrent/simulation/test_http_connection.cpp:150,1
    - Dst: value
      Src: /src/libtorrent/simulation/test_http_connection.cpp:151,1
    - Dst: error_condition::value
      Src: /src/libtorrent/simulation/test_http_connection.cpp:151,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_http_connection.cpp:155,1
    - Dst: message
      Src: /src/libtorrent/simulation/test_http_connection.cpp:156,1
    - Dst: error_condition::message
      Src: /src/libtorrent/simulation/test_http_connection.cpp:157,1
    - Dst: status_code
      Src: /src/libtorrent/simulation/test_http_connection.cpp:160,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:163,1
    - Dst: size
      Src: /src/libtorrent/simulation/test_http_connection.cpp:163,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_http_connection.cpp:165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:168,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_http_connection.cpp:172,1
    - Dst: size
      Src: /src/libtorrent/simulation/test_http_connection.cpp:173,1
    - Dst: memcmp
      Src: /src/libtorrent/simulation/test_http_connection.cpp:174,1
    - Dst: data
      Src: /src/libtorrent/simulation/test_http_connection.cpp:174,1
    - Dst: size
      Src: /src/libtorrent/simulation/test_http_connection.cpp:174,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_http_connection.cpp:181,1
    - Dst: socket
      Src: /src/libtorrent/simulation/test_http_connection.cpp:181,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_http_connection.cpp:182,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/test_http_connection.cpp:182,1
    - Dst: lt::http_filter_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:184,1
    - Dst: lt::hostname_filter_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:185,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/test_http_connection.cpp:191,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_http_connection.cpp:191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 10
    argNames:
    - ' ios'
    - ' res'
    - ' url'
    - expected_data
    - expected_size
    - expected_status
    - expected_error
    - ' ps'
    - connect_handler_called
    - handler_called
    argTypes:
    - io_context
    - lt::aux::resolver
    - std::string
    - char*
    - int
    - int
    - error_condition
    - lt::aux::proxy_settings
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 194
    functionName: test_request
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - lt::hostname_filter_handler
    - auto::get
    - seconds
    - error_condition::message
    - category
    - value
    - data
    - std::make_shared<http_connection>
    - message
    - error_condition::value
    - std::printf
    - TEST_EQUAL
    - std::string
    - ssl::context::set_verify_mode
    - lt::http_filter_handler
    - strcmp
    - error_condition::category
    - socket
    - size
    - TEST_CHECK
    - c_str
    - memcmp
    - status_code
    linkageType: ''
    returnType: std::shared_ptr<http_connection>
    signature: "std::shared_ptr<http_connection> test_request(io_context& ios\n\t,
      lt::aux::resolver& res\n\t, std::string const& url\n\t, char const* expected_data\n\t,
      int const expected_size\n\t, int const expected_status\n\t, error_condition
      expected_error\n\t, lt::aux::proxy_settings const& ps\n\t, int* connect_handler_called\n\t,
      int* handler_called\n\t, std::string const& auth = std::string())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/test_http_connection.cpp:199,1
    - Dst: end
      Src: /src/libtorrent/simulation/test_http_connection.cpp:199,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_http_connection.cpp:201,1
    - Dst: std::map<std::string, std::string>::const_iterator::first::c_str
      Src: /src/libtorrent/simulation/test_http_connection.cpp:201,1
    - Dst: std::map<std::string, std::string>::const_iterator::second::c_str
      Src: /src/libtorrent/simulation/test_http_connection.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' headers'
    argTypes:
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: print_http_header
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 2
    functionsReached:
    - begin
    - end
    - std::map<std::string, std::string>::const_iterator::second::c_str
    - std::map<std::string, std::string>::const_iterator::first::c_str
    - std::printf
    linkageType: ''
    returnType: void
    signature: void print_http_header(std::map<std::string, std::string> const& headers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:226,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:226,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:229,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:229,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:231,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:231,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:232,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:232,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:233,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:233,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:235,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:236,1
    - Dst: asio::error::get_misc_category
      Src: /src/libtorrent/simulation/test_http_connection.cpp:236,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:238,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:238,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:252,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:253,1
    - Dst: generic_category
      Src: /src/libtorrent/simulation/test_http_connection.cpp:253,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:260,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:261,1
    - Dst: generic_category
      Src: /src/libtorrent/simulation/test_http_connection.cpp:261,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:266,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:267,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:279,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:280,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:287,1
    - Dst: generic_category
      Src: /src/libtorrent/simulation/test_http_connection.cpp:287,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:288,1
    - Dst: boost::asio::error::get_netdb_category
      Src: /src/libtorrent/simulation/test_http_connection.cpp:288,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:291,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_http_connection.cpp:296,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ps
    argTypes:
    - lt::aux::proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 300
    functionName: run_suite
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 12
    functionsReached:
    - error_condition
    - boost::asio::error::get_netdb_category
    - generic_category
    - asio::error::get_misc_category
    - run_test
    linkageType: ''
    returnType: void
    signature: void run_suite(lt::aux::proxy_settings ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<int>::resize
      Src: /src/libtorrent/simulation/test_http_connection.cpp:310,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:312,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:313,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:314,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/test_http_connection.cpp:322,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:326,1
    - Dst: print_http_header
      Src: /src/libtorrent/simulation/test_http_connection.cpp:331,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:332,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_http_connection.cpp:333,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:336,1
    - Dst: print_http_header
      Src: /src/libtorrent/simulation/test_http_connection.cpp:341,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:342,1
    - Dst: chunk_string
      Src: /src/libtorrent/simulation/test_http_connection.cpp:346,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/test_http_connection.cpp:346,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:349,1
    - Dst: print_http_header
      Src: /src/libtorrent/simulation/test_http_connection.cpp:354,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:355,1
    - Dst: boost::crc_32_type::process_bytes
      Src: /src/libtorrent/simulation/test_http_connection.cpp:367,1
    - Dst: boost::crc_32_type::checksum
      Src: /src/libtorrent/simulation/test_http_connection.cpp:368,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_http_connection.cpp:374,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/test_http_connection.cpp:376,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/test_http_connection.cpp:376,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/test_http_connection.cpp:377,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/test_http_connection.cpp:378,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/test_http_connection.cpp:378,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:382,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:387,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:393,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:398,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:404,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:409,1
    - Dst: test_request
      Src: /src/libtorrent/simulation/test_http_connection.cpp:415,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_http_connection.cpp:419,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:421,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_http_connection.cpp:421,1
    - Dst: std::vector<int>::size
      Src: /src/libtorrent/simulation/test_http_connection.cpp:421,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_http_connection.cpp:422,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_http_connection.cpp:424,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 51
    argCount: 6
    argNames:
    - ps
    - url
    - expect_size
    - expect_status
    - expect_error
    - expect_counters
    argTypes:
    - lt::aux::proxy_settings
    - std::string
    - int
    - int
    - boost::system::error_condition
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 427
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 54
    functionsReached:
    - TEST_EQUAL
    - make_address_v4
    - std::string::append
    - chunk_string
    - std::vector::size
    - std::vector<int>::size
    - sim::send_response
    - boost::crc_32_type::process_bytes
    - std::string
    - sim::http_server::register_handler
    - test_request
    - boost::crc_32_type::checksum
    - sim::simulation::run
    - libtorrent::aux::random_bytes
    - print_http_header
    - std::vector<int>::resize
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void run_test(lt::aux::proxy_settings ps, std::string url, int expect_size,
      int expect_status\n\t, boost::system::error_condition expect_error, std::vector<int>
      expect_counters)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:431,1
    - Dst: run_suite
      Src: /src/libtorrent/simulation/test_http_connection.cpp:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - make_proxy_settings
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:437,1
    - Dst: run_suite
      Src: /src/libtorrent/simulation/test_http_connection.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 440
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - make_proxy_settings
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_http)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:444,1
    - Dst: run_suite
      Src: /src/libtorrent/simulation/test_http_connection.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - make_proxy_settings
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_socks4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:450,1
    - Dst: run_suite
      Src: /src/libtorrent/simulation/test_http_connection.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - make_proxy_settings
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_socks5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:456,1
    - Dst: run_suite
      Src: /src/libtorrent/simulation/test_http_connection.cpp:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - make_proxy_settings
    - run_suite
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_socks5_proxy_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:469,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_http_connection.cpp:470,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:473,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_http_connection.cpp:474,1
    - Dst: sim::http_server::register_stall_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:482,1
    - Dst: sim::http_server::register_stall_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:483,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/test_http_connection.cpp:486,1
    - Dst: test_request
      Src: /src/libtorrent/simulation/test_http_connection.cpp:493,1
    - Dst: libtorrent::aux::proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:495,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_http_connection.cpp:498,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:499,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 501
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::aux::proxy_settings
    - make_address_v4
    - test_request
    - sim::simulation::run
    - libtorrent::aux::random_bytes
    - make_address_v6
    - sim::http_server::register_stall_handler
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_timeout_server_stalls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:512,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_http_connection.cpp:513,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:517,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/test_http_connection.cpp:518,1
    - Dst: asio::ip::tcp::acceptor::open
      Src: /src/libtorrent/simulation/test_http_connection.cpp:526,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:526,1
    - Dst: asio::ip::tcp::acceptor::bind
      Src: /src/libtorrent/simulation/test_http_connection.cpp:527,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_http_connection.cpp:527,1
    - Dst: address_v4::any
      Src: /src/libtorrent/simulation/test_http_connection.cpp:527,1
    - Dst: asio::ip::tcp::acceptor::listen
      Src: /src/libtorrent/simulation/test_http_connection.cpp:528,1
    - Dst: asio::ip::tcp::acceptor::open
      Src: /src/libtorrent/simulation/test_http_connection.cpp:531,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/test_http_connection.cpp:531,1
    - Dst: asio::ip::tcp::acceptor::bind
      Src: /src/libtorrent/simulation/test_http_connection.cpp:532,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_http_connection.cpp:532,1
    - Dst: address_v6::any
      Src: /src/libtorrent/simulation/test_http_connection.cpp:532,1
    - Dst: asio::ip::tcp::acceptor::listen
      Src: /src/libtorrent/simulation/test_http_connection.cpp:533,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/test_http_connection.cpp:541,1
    - Dst: test_request
      Src: /src/libtorrent/simulation/test_http_connection.cpp:543,1
    - Dst: libtorrent::aux::proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:545,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_http_connection.cpp:548,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:549,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 551
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - libtorrent::aux::proxy_settings
    - rand_v4
    - make_address_v4
    - asio::ip::tcp::acceptor::listen
    - rand_v6
    - asio::ip::tcp::acceptor::bind
    - address_v6::any
    - test_request
    - sim::simulation::run
    - address_v4::any
    - local_endpoint
    - libtorrent::aux::random_bytes
    - make_address_v6
    - asio::ip::tcp::acceptor::open
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_timeout_server_does_not_accept)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:559,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:560,1
    - Dst: make_proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:565,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/test_http_connection.cpp:568,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:570,1
    - Dst: print_http_header
      Src: /src/libtorrent/simulation/test_http_connection.cpp:574,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_http_connection.cpp:576,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_http_connection.cpp:577,1
    - Dst: test_request
      Src: /src/libtorrent/simulation/test_http_connection.cpp:582,1
    - Dst: error_condition
      Src: /src/libtorrent/simulation/test_http_connection.cpp:584,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/test_http_connection.cpp:584,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_http_connection.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - proxy_type
    argTypes:
    - lt::settings_pack::proxy_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 588
    functionName: test_proxy_failure
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - error_condition
    - sim::http_server::register_handler
    - make_proxy_settings
    - test_request
    - sim::simulation::run
    - libtorrent::aux::random_bytes
    - print_http_header
    - sim::send_response
    - boost::system::generic_category
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_proxy_failure(lt::settings_pack::proxy_type_t proxy_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy_failure
      Src: /src/libtorrent/simulation/test_http_connection.cpp:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - test_proxy_failure
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_socks_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_proxy_failure
      Src: /src/libtorrent/simulation/test_http_connection.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - test_proxy_failure
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_http_error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:609,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_http_connection.cpp:610,1
    - Dst: make_proxy_settings
      Src: /src/libtorrent/simulation/test_http_connection.cpp:615,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:621,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:625,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:628,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_http_connection.cpp:632,1
    - Dst: empty
      Src: /src/libtorrent/simulation/test_http_connection.cpp:632,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_http_connection.cpp:634,1
    - Dst: lt::ssl::context::set_verify_mode
      Src: /src/libtorrent/simulation/test_http_connection.cpp:639,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/simulation/test_http_connection.cpp:642,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:648,1
    - Dst: lt::http_connect_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:650,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:651,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/simulation/test_http_connection.cpp:652,1
    - Dst: auto::start
      Src: /src/libtorrent/simulation/test_http_connection.cpp:658,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/test_http_connection.cpp:658,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_http_connection.cpp:660,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:662,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_http_connection.cpp:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - with_hostname
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 664
    functionName: test_connection_ssl_proxy
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto::start
    - make_address_v4
    - std::make_shared<http_connection>
    - empty
    - hostname_filter_handler
    - seconds
    - sim::http_server::register_handler
    - make_proxy_settings
    - sim::simulation::run
    - lt::http_connect_handler
    - lt::ssl::context::set_verify_mode
    - http_filter_handler
    - sim::send_response
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_connection_ssl_proxy(bool const with_hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_connection_ssl_proxy
      Src: /src/libtorrent/simulation/test_http_connection.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - test_connection_ssl_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_ssl_proxy_no_hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_connection_ssl_proxy
      Src: /src/libtorrent/simulation/test_http_connection.cpp:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_http_connection.cpp
    functionUses: 0
    functionsReached:
    - test_connection_ssl_proxy
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_connection_ssl_proxy_hostname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/libtorrent/simulation/test_error_handling.cpp:67,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_error_handling.cpp:68,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_error_handling.cpp:79,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_error_handling.cpp:82,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_error_handling.cpp:83,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_error_handling.cpp:86,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_error_handling.cpp:87,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_error_handling.cpp:88,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_error_handling.cpp:89,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_error_handling.cpp:91,1
    - Dst: address::to_string
      Src: /src/libtorrent/simulation/test_error_handling.cpp:91,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_error_handling.cpp:96,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_error_handling.cpp:98,1
    - Dst: address::to_string
      Src: /src/libtorrent/simulation/test_error_handling.cpp:98,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_error_handling.cpp:99,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_error_handling.cpp:102,1
    - Dst: alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_error_handling.cpp:103,1
    - Dst: auto::handle::connect_peer
      Src: /src/libtorrent/simulation/test_error_handling.cpp:105,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_error_handling.cpp:105,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/test_error_handling.cpp:107,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_error_handling.cpp:110,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_error_handling.cpp:113,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/test_error_handling.cpp:117,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_error_handling.cpp:118,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/test_error_handling.cpp:120,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_error_handling.cpp:121,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_error_handling.cpp:123,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_error_handling.cpp:125,1
    - Dst: abort
      Src: /src/libtorrent/simulation/test_error_handling.cpp:131,1
    - Dst: reset
      Src: /src/libtorrent/simulation/test_error_handling.cpp:132,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_error_handling.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 3
    argNames:
    - round
    - ' on_alert'
    - ' test'
    argTypes:
    - int
    - HandleAlerts
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 140
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_error_handling.cpp
    functionUses: 54
    functionsReached:
    - lt::settings_pack::set_bool
    - lt::settings_pack::set_str
    - sim::simulation::run
    - auto::handle::connect_peer
    - addr
    - reset
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - abort
    - async_add_torrent
    - save_path
    - std::make_shared<lt::session>
    - test
    - address::to_string
    - alert_cast<lt::add_torrent_alert>
    - libtorrent::create_torrent::create_torrent
    - lt::settings_pack::set_int
    - local_endpoint
    - settings
    - on_alert
    linkageType: ''
    returnType: void
    signature: void run_test(int const round, HandleAlerts const& on_alert, Test const&
      test)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::print_backtrace
      Src: /src/libtorrent/simulation/test_error_handling.cpp:168,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/test_error_handling.cpp:173,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_error_handling.cpp:176,1
    - Dst: std::bad_alloc
      Src: /src/libtorrent/simulation/test_error_handling.cpp:177,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/test_error_handling.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - sz
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 180
    functionName: '* operator new(std::size_t sz)'
    functionSourceFile: /src/libtorrent/simulation/test_error_handling.cpp
    functionUses: 0
    functionsReached:
    - std::malloc
    - std::bad_alloc
    - libtorrent::print_backtrace
    - std::printf
    linkageType: ''
    returnType: void
    signature: void * operator new(std::size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/test_error_handling.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: operator delete(void* ptr) noexcept
    functionSourceFile: /src/libtorrent/simulation/test_error_handling.cpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void operator delete(void* ptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/test_error_handling.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: operator delete(void* ptr, std::size_t) noexcept
    functionSourceFile: /src/libtorrent/simulation/test_error_handling.cpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void operator delete(void* ptr, std::size_t) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unit_test::reset_output
      Src: /src/libtorrent/simulation/test_error_handling.cpp:199,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/simulation/test_error_handling.cpp:203,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_error_handling.cpp:205,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_error_handling.cpp:209,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_error_handling.cpp:220,1
    - Dst: code
      Src: /src/libtorrent/simulation/test_error_handling.cpp:221,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/test_error_handling.cpp:222,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_error_handling.cpp:227,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/test_error_handling.cpp:228,1
    - Dst: what
      Src: /src/libtorrent/simulation/test_error_handling.cpp:228,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/test_error_handling.cpp:229,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_error_handling.cpp:234,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/test_error_handling.cpp:235,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_error_handling.cpp:244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_error_handling.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_engine
    - to_string
    - unit_test::reset_output
    - std::printf
    - std::string
    - code
    - what
    - run_test
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(error_handling)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/test_web_seed.cpp:63,1
    - Dst: piece_length
      Src: /src/libtorrent/simulation/test_web_seed.cpp:63,1
    - Dst: end_piece
      Src: /src/libtorrent/simulation/test_web_seed.cpp:64,1
    - Dst: map_block
      Src: /src/libtorrent/simulation/test_web_seed.cpp:68,1
    - Dst: piece_size
      Src: /src/libtorrent/simulation/test_web_seed.cpp:68,1
    - Dst: pad_file_at
      Src: /src/libtorrent/simulation/test_web_seed.cpp:71,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:79,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/simulation/test_web_seed.cpp:83,1
    - Dst: hasher
      Src: /src/libtorrent/simulation/test_web_seed.cpp:83,1
    - Dst: file_offset
      Src: /src/libtorrent/simulation/test_web_seed.cpp:86,1
    - Dst: piece_length
      Src: /src/libtorrent/simulation/test_web_seed.cpp:86,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/simulation/test_web_seed.cpp:87,1
    - Dst: hasher256
      Src: /src/libtorrent/simulation/test_web_seed.cpp:88,1
    - Dst: span<char>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:88,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/test_web_seed.cpp:90,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/simulation/test_web_seed.cpp:96,1
    - Dst: bencode
      Src: /src/libtorrent/simulation/test_web_seed.cpp:98,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: create_torrent
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 74
    functionsReached:
    - span<char>
    - std::make_shared<torrent_info>
    - lt::create_torrent::set_hash
    - std::vector::push_back
    - hasher
    - file_offset
    - std::vector::clear
    - hasher256
    - std::vector::reserve
    - piece_length
    - pad_file_at
    - lt::create_torrent::set_hash2
    - lt::create_torrent::generate
    - piece_size
    - map_block
    - bencode
    - end_piece
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params create_torrent(file_storage& fs, bool const v1_only
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: sim_config
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sim_config()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:117,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_web_seed.cpp:117,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:120,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:120,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:125,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:125,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:130,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:130,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:135,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:135,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:140,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:140,1
    - Dst: sim::default_config::hostname_lookup
      Src: /src/libtorrent/simulation/test_web_seed.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - ' requestor'
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - asio::ip::address
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 6
    functionsReached:
    - push_back
    - make_address_v4
    - sim::default_config::hostname_lookup
    - libtorrent::total_milliseconds
    - duration_cast<chrono::high_resolution_clock::duration>
    linkageType: ''
    returnType: chrono::high_resolution_clock::duration
    signature: "chrono::high_resolution_clock::duration hostname_lookup(\n\t\tasio::ip::address
      const& requestor\n\t\t, std::string hostname\n\t\t, std::vector<asio::ip::address>&
      result\n\t\t, boost::system::error_code& ec) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_io_context
      Src: /src/libtorrent/simulation/test_web_seed.cpp:160,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_web_seed.cpp:163,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:165,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_web_seed.cpp:168,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_web_seed.cpp:171,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/test_web_seed.cpp:172,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:179,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_web_seed.cpp:181,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_web_seed.cpp:182,1
    - Dst: test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ' setup'
    - ' on_alert'
    - ' test'
    argTypes:
    - Setup
    - HandleAlerts
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 186
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 55
    functionsReached:
    - print_alerts
    - setup
    - std::make_shared<lt::session>
    - make_io_context
    - settings
    - test
    - std::shared_ptr::reset
    - std::shared_ptr::abort
    - on_alert
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void run_test(Setup const& setup\n\t, HandleAlerts const& on_alert\n\t,
      Test const& test\n\t, lt::seconds const timeout = lt::seconds{100})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:193,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:194,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:195,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:198,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:201,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:206,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:211,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_web_seed.cpp:216,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:219,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 224
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - make_address_v4
    - async_add_torrent
    - run
    - file_storage::add_file
    - sim::http_server::register_handler
    - sim::send_response
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(single_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:230,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:230,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:231,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:231,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:232,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:233,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:236,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:239,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:244,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:249,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_web_seed.cpp:253,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:255,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_web_seed.cpp:259,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:262,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:266,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 268
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - make_address_v4
    - async_add_torrent
    - combine_path
    - file_storage::add_file
    - run
    - sim::http_server::register_handler
    - sim::send_response
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multi_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/test_web_seed.cpp:274,1
    - Dst: lt::aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:274,1
    - Dst: file_offset
      Src: /src/libtorrent/simulation/test_web_seed.cpp:275,1
    - Dst: piece_length
      Src: /src/libtorrent/simulation/test_web_seed.cpp:276,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' fs'
    - file
    - offset
    - len
    argTypes:
    - lt::file_storage
    - file_index_t
    - std::int64_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: generate_content
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - piece_length
    - std::string::push_back
    - lt::aux::numeric_cast<std::size_t>
    - file_offset
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: "std::string generate_content(lt::file_storage const& fs, file_index_t
      file\n\t, std::int64_t offset, std::int64_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_content
      Src: /src/libtorrent/simulation/test_web_seed.cpp:285,1
    - Dst: file_size
      Src: /src/libtorrent/simulation/test_web_seed.cpp:285,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:285,1
    - Dst: generate_content
      Src: /src/libtorrent/simulation/test_web_seed.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' http'
    - ' path'
    - ' fs'
    - file
    argTypes:
    - sim::http_server
    - std::string
    - lt::file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: serve_content_for
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - generate_content
    - file_index_t
    - register_content
    - file_size
    linkageType: ''
    returnType: void
    signature: "void serve_content_for(sim::http_server& http, std::string const&
      path\n\t, lt::file_storage const& fs, file_index_t const file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:296,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:296,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:297,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:297,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:298,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:299,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:303,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:306,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:309,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:316,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:319,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:320,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:323,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:325,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:325,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:326,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:326,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:328,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 333
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - lt::alert_cast<lt::torrent_finished_alert>
    - async_add_torrent
    - combine_path
    - file_storage::add_file
    - make_address_v4
    - sim::http_server::register_redirect
    - run
    - serve_content_for
    - file_index_t
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unaligned_file_redirect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:340,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:340,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:341,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:341,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:343,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:344,1
    - Dst: lt::add_torrent_params::ti::files
      Src: /src/libtorrent/simulation/test_web_seed.cpp:348,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:352,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:355,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:358,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:365,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:368,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:369,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:372,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:374,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:374,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:377,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:379,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:379,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:381,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 386
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::add_torrent_params::url_seeds::push_back
    - lt::add_torrent_params::ti::files
    - libtorrent::create_torrent::create_torrent
    - lt::alert_cast<lt::torrent_finished_alert>
    - async_add_torrent
    - combine_path
    - file_storage::add_file
    - make_address_v4
    - sim::http_server::register_redirect
    - run
    - serve_content_for
    - file_index_t
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multi_file_redirect_pad_files)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:393,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:393,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:394,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:394,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:395,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:396,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:400,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:403,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:406,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:413,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:416,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:417,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:420,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:422,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:422,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:425,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:427,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:427,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:429,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 434
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - lt::alert_cast<lt::torrent_finished_alert>
    - async_add_torrent
    - combine_path
    - file_storage::add_file
    - make_address_v4
    - sim::http_server::register_redirect
    - run
    - serve_content_for
    - file_index_t
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multi_file_redirect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:441,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:441,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:442,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:442,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:443,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:444,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:448,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/test_web_seed.cpp:453,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/test_web_seed.cpp:454,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/test_web_seed.cpp:455,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/simulation/test_web_seed.cpp:456,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/test_web_seed.cpp:457,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_web_seed.cpp:458,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_web_seed.cpp:459,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:461,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:464,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:470,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:475,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:478,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:479,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:482,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:484,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:484,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:487,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:489,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:489,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:491,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 496
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - TEST_EQUAL
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - lt::alert_cast<lt::torrent_finished_alert>
    - async_add_torrent
    - combine_path
    - file_storage::add_file
    - make_address_v4
    - sim::http_server::register_redirect
    - run
    - settings_pack::set_bool
    - settings_pack::set_str
    - serve_content_for
    - settings_pack::set_int
    - file_index_t
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multi_file_redirect_through_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:504,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:504,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:505,1
    - Dst: combine_path
      Src: /src/libtorrent/simulation/test_web_seed.cpp:505,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:506,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:507,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:509,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:512,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:516,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:516,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:522,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:525,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:526,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:529,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:531,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:531,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:534,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:536,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:536,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 541
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - lt::alert_cast<lt::torrent_finished_alert>
    - async_add_torrent
    - combine_path
    - file_storage::add_file
    - make_address_v4
    - sim::http_server::register_redirect
    - run
    - serve_content_for
    - file_index_t
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(multi_file_unaligned_redirect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:545,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:549,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:550,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:551,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:555,1
    - Dst: lt::alert_cast<lt::peer_disconnected_alert>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:558,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:565,1
    - Dst: sim::http_server::register_stall_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:569,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:570,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 574
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - make_address_v4
    - async_add_torrent
    - run
    - file_storage::add_file
    - lt::alert_cast<lt::peer_disconnected_alert>
    - sim::http_server::register_stall_handler
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(urlseed_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:584,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:585,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:586,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:589,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_web_seed.cpp:593,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_web_seed.cpp:594,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:595,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:600,1
    - Dst: sim::http_server::register_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:604,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_web_seed.cpp:611,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_web_seed.cpp:613,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:616,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 621
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - make_address_v4
    - async_add_torrent
    - run
    - file_storage::add_file
    - lt::settings_pack::set_bool
    - sim::http_server::register_handler
    - sim::send_response
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_close_redundant_webseed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:629,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:630,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:631,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:632,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:633,1
    - Dst: lt::add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:634,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:637,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_web_seed.cpp:641,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_web_seed.cpp:642,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:643,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:649,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:650,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:651,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:652,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/test_web_seed.cpp:666,1
    - Dst: ws::register_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:670,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_web_seed.cpp:670,1
    - Dst: ws::register_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:671,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_web_seed.cpp:671,1
    - Dst: ws::register_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:672,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_web_seed.cpp:672,1
    - Dst: ws::register_handler
      Src: /src/libtorrent/simulation/test_web_seed.cpp:673,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_web_seed.cpp:673,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:675,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_web_seed.cpp:677,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:681,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/test_web_seed.cpp:681,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/test_web_seed.cpp:681,1
    - Dst: std::array::end
      Src: /src/libtorrent/simulation/test_web_seed.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 682
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - std::bind
    - lt::add_torrent_params::url_seeds::push_back
    - libtorrent::create_torrent::create_torrent
    - make_address_v4
    - async_add_torrent
    - lt::settings_pack::set_int
    - file_storage::add_file
    - run
    - std::accumulate
    - Catch::Timer::getElapsedNanoseconds
    - std::array::end
    - std::array::begin
    - ws::register_handler
    - sim::send_response
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(web_seed_connection_limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:688,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:689,1
    - Dst: lt::add_torrent_params::url_seeds::emplace_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:690,1
    - Dst: remove
      Src: /src/libtorrent/simulation/test_web_seed.cpp:695,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:697,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_web_seed.cpp:701,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_web_seed.cpp:702,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:703,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:706,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:713,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:717,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:720,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:722,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:722,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - url
    - redirect
    - allow_idna
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 729
    functionName: test_idna
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 2
    functionsReached:
    - apply_settings
    - libtorrent::create_torrent::create_torrent
    - lt::alert_cast<lt::torrent_finished_alert>
    - async_add_torrent
    - make_address_v4
    - file_storage::add_file
    - sim::http_server::register_redirect
    - run
    - lt::add_torrent_params::url_seeds::emplace_back
    - serve_content_for
    - remove
    - settings_pack::set_bool
    - file_index_t
    - run_test
    linkageType: ''
    returnType: bool
    signature: bool test_idna(char const* url, char const* redirect, bool allow_idna)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:734,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:734,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:735,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:735,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:738,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:738,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:739,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 740
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_idna
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(idna)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:745,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:745,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:746,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:746,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:748,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:748,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:749,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:749,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:752,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:752,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:753,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:753,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:755,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:755,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_web_seed.cpp:756,1
    - Dst: test_idna
      Src: /src/libtorrent/simulation/test_web_seed.cpp:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 757
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - test_idna
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(idna_redirect)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_web_seed.cpp:763,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:764,1
    - Dst: lt::add_torrent_params::url_seeds::emplace_back
      Src: /src/libtorrent/simulation/test_web_seed.cpp:765,1
    - Dst: remove
      Src: /src/libtorrent/simulation/test_web_seed.cpp:770,1
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_web_seed.cpp:772,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_web_seed.cpp:776,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_web_seed.cpp:777,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_web_seed.cpp:778,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_web_seed.cpp:781,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:788,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:792,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:795,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:797,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:797,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:798,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:798,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:800,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:802,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:802,1
    - Dst: serve_content_for
      Src: /src/libtorrent/simulation/test_web_seed.cpp:803,1
    - Dst: file_index_t
      Src: /src/libtorrent/simulation/test_web_seed.cpp:803,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/test_web_seed.cpp:806,1
    - Dst: sim::http_server::register_redirect
      Src: /src/libtorrent/simulation/test_web_seed.cpp:809,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_web_seed.cpp:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - url
    - redirect
    - enable_feature
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 816
    functionName: test_ssrf
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 4
    functionsReached:
    - apply_settings
    - libtorrent::create_torrent::create_torrent
    - lt::alert_cast<lt::torrent_finished_alert>
    - async_add_torrent
    - make_address_v4
    - file_storage::add_file
    - sim::http_server::register_redirect
    - run
    - lt::add_torrent_params::url_seeds::emplace_back
    - serve_content_for
    - remove
    - settings_pack::set_bool
    - file_index_t
    - run_test
    linkageType: ''
    returnType: bool
    signature: bool test_ssrf(char const* url, char const* redirect, bool enable_feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:820,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:820,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:821,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:821,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:822,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:822,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:823,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:823,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:825,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:825,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:826,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:826,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:827,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:827,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:828,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 829
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - test_ssrf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ssrf_mitigation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:834,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:834,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:835,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:835,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:836,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:836,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:837,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:837,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:838,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:838,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:839,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:839,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:840,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:840,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:844,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:844,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:845,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:845,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:846,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:846,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:847,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:847,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:848,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:848,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:849,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:849,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:850,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:850,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:851,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:851,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:852,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:852,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:853,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:853,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:854,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:854,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:855,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:855,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:856,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:856,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:857,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:857,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:858,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:858,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:859,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:859,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:862,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:862,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:863,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:863,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:864,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:864,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:865,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:865,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:866,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:866,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:867,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:867,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_web_seed.cpp:868,1
    - Dst: test_ssrf
      Src: /src/libtorrent/simulation/test_web_seed.cpp:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 869
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_web_seed.cpp
    functionUses: 0
    functionsReached:
    - test_ssrf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ssrf_mitigation_redirect)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_timeout.cpp:58,1
    - Dst: make_io_context
      Src: /src/libtorrent/simulation/test_timeout.cpp:59,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_timeout.cpp:63,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/simulation/test_timeout.cpp:64,1
    - Dst: lt::session_params::settings::set_bool
      Src: /src/libtorrent/simulation/test_timeout.cpp:65,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_timeout.cpp:69,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_timeout.cpp:74,1
    - Dst: lt::add_torrent_params::ti::info_hash
      Src: /src/libtorrent/simulation/test_timeout.cpp:78,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_timeout.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_timeout.cpp:79,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_timeout.cpp:84,1
    - Dst: lt::alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_timeout.cpp:85,1
    - Dst: fake_peer::connect_to
      Src: /src/libtorrent/simulation/test_timeout.cpp:89,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_timeout.cpp:89,1
    - Dst: fake_peer::send_interested
      Src: /src/libtorrent/simulation/test_timeout.cpp:90,1
    - Dst: fake_peer::send_request
      Src: /src/libtorrent/simulation/test_timeout.cpp:91,1
    - Dst: lt::alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/simulation/test_timeout.cpp:93,1
    - Dst: disconnects_t::emplace_back
      Src: /src/libtorrent/simulation/test_timeout.cpp:95,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_timeout.cpp:95,1
    - Dst: auto*::timestamp
      Src: /src/libtorrent/simulation/test_timeout.cpp:95,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:100,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_timeout.cpp:104,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_timeout.cpp:105,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_timeout.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ' cfg'
    argTypes:
    - sim::configuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 111
    functionName: test_timeout
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 0
    functionsReached:
    - lt::alert_cast<add_torrent_alert>
    - duration_cast<lt::seconds>
    - fake_peer::send_request
    - std::shared_ptr::async_add_torrent
    - std::move
    - sim::simulation::run
    - std::shared_ptr::abort
    - std::shared_ptr::reset
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - fake_peer::send_interested
    - make_io_context
    - lt::session_params::settings::set_int
    - time_now
    - disconnects_t::emplace_back
    - lt::alert_cast<peer_disconnected_alert>
    - std::make_shared<lt::session>
    - libtorrent::create_torrent::create_torrent
    - lt::add_torrent_params::ti::info_hash
    - ep
    - settings
    - fake_peer::connect_to
    - lt::session_params::settings::set_bool
    - auto*::timestamp
    linkageType: ''
    returnType: disconnects_t
    signature: disconnects_t test_timeout(sim::configuration& cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_timeout
      Src: /src/libtorrent/simulation/test_timeout.cpp:118,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 0
    functionsReached:
    - test_timeout
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_request_timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/libtorrent/simulation/test_timeout.cpp:127,1
    - Dst: sim::default_config::outgoing_route
      Src: /src/libtorrent/simulation/test_timeout.cpp:127,1
    - Dst: find
      Src: /src/libtorrent/simulation/test_timeout.cpp:133,1
    - Dst: end
      Src: /src/libtorrent/simulation/test_timeout.cpp:134,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/test_timeout.cpp:134,1
    - Dst: insert
      Src: /src/libtorrent/simulation/test_timeout.cpp:135,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/test_timeout.cpp:135,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/test_timeout.cpp:135,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/test_timeout.cpp:136,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/test_timeout.cpp:136,1
    - Dst: lt::duration_cast<duration>
      Src: /src/libtorrent/simulation/test_timeout.cpp:138,1
    - Dst: milliseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:138,1
    - Dst: sim::route
      Src: /src/libtorrent/simulation/test_timeout.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ip
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: outgoing_route
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 1
    functionsReached:
    - lt::duration_cast<duration>
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - find
    - std::ref
    - sim::default_config::outgoing_route
    - milliseconds
    - get_io_context
    - addr
    - sim::route
    linkageType: ''
    returnType: sim::route
    signature: sim::route outgoing_route(asio::ip::address ip) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_timeout
      Src: /src/libtorrent/simulation/test_timeout.cpp:150,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 0
    functionsReached:
    - test_timeout
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_request_timeout_slow_upload)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_timeout.cpp:160,1
    - Dst: make_io_context
      Src: /src/libtorrent/simulation/test_timeout.cpp:161,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/simulation/test_timeout.cpp:164,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_timeout.cpp:167,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/test_timeout.cpp:173,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/test_timeout.cpp:174,1
    - Dst: fake_peer::fake_peer
      Src: /src/libtorrent/simulation/test_timeout.cpp:174,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/test_timeout.cpp:178,1
    - Dst: lt::add_torrent_params::ti::info_hash
      Src: /src/libtorrent/simulation/test_timeout.cpp:181,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_timeout.cpp:182,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_timeout.cpp:182,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_timeout.cpp:187,1
    - Dst: lt::alert_cast<add_torrent_alert>
      Src: /src/libtorrent/simulation/test_timeout.cpp:188,1
    - Dst: connect_to
      Src: /src/libtorrent/simulation/test_timeout.cpp:192,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_timeout.cpp:192,1
    - Dst: lt::alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/simulation/test_timeout.cpp:194,1
    - Dst: disconnects_t::emplace_back
      Src: /src/libtorrent/simulation/test_timeout.cpp:196,1
    - Dst: duration_cast<lt::seconds>
      Src: /src/libtorrent/simulation/test_timeout.cpp:196,1
    - Dst: auto*::timestamp
      Src: /src/libtorrent/simulation/test_timeout.cpp:196,1
    - Dst: send_keepalive
      Src: /src/libtorrent/simulation/test_timeout.cpp:205,1
    - Dst: flush_send_buffer
      Src: /src/libtorrent/simulation/test_timeout.cpp:206,1
    - Dst: send_not_interested
      Src: /src/libtorrent/simulation/test_timeout.cpp:215,1
    - Dst: flush_send_buffer
      Src: /src/libtorrent/simulation/test_timeout.cpp:216,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:222,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:223,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:224,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:225,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:226,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:227,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_timeout.cpp:230,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_timeout.cpp:234,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_timeout.cpp:235,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_timeout.cpp:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - num_peers
    - sp
    - redundant_no_interest
    argTypes:
    - int
    - lt::session_params
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 241
    functionName: test_no_interest_timeout
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 0
    functionsReached:
    - lt::alert_cast<add_torrent_alert>
    - duration_cast<lt::seconds>
    - std::shared_ptr::async_add_torrent
    - std::move
    - std::vector::emplace_back
    - sim::simulation::run
    - send_not_interested
    - std::shared_ptr::abort
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - make_io_context
    - connect_to
    - lt::session_params::settings::set_int
    - fake_peer::fake_peer
    - time_now
    - disconnects_t::emplace_back
    - flush_send_buffer
    - lt::alert_cast<peer_disconnected_alert>
    - std::snprintf
    - std::make_shared<lt::session>
    - libtorrent::create_torrent::create_torrent
    - lt::add_torrent_params::ti::info_hash
    - ep
    - send_keepalive
    - std::shared_ptr::reset
    - auto*::timestamp
    linkageType: ''
    returnType: disconnects_t
    signature: "disconnects_t test_no_interest_timeout(int const num_peers\n\t, lt::session_params
      sp\n\t, bool const redundant_no_interest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_timeout.cpp:252,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/simulation/test_timeout.cpp:253,1
    - Dst: test_no_interest_timeout
      Src: /src/libtorrent/simulation/test_timeout.cpp:254,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_timeout.cpp:254,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_timeout.cpp:255,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/test_timeout.cpp:255,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:258,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::move
    - auto::size
    - settings
    - test_no_interest_timeout
    - TEST_CHECK
    - lt::session_params::settings::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_interest_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_timeout.cpp:269,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/simulation/test_timeout.cpp:270,1
    - Dst: test_no_interest_timeout
      Src: /src/libtorrent/simulation/test_timeout.cpp:271,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_timeout.cpp:271,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_timeout.cpp:272,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/test_timeout.cpp:272,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:275,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 278
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::move
    - auto::size
    - settings
    - test_no_interest_timeout
    - TEST_CHECK
    - lt::session_params::settings::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_interest_timeout_redundant_not_interested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_timeout.cpp:286,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/simulation/test_timeout.cpp:287,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/simulation/test_timeout.cpp:288,1
    - Dst: test_no_interest_timeout
      Src: /src/libtorrent/simulation/test_timeout.cpp:289,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_timeout.cpp:289,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_timeout.cpp:290,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/test_timeout.cpp:290,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:293,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 296
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::move
    - auto::size
    - settings
    - test_no_interest_timeout
    - TEST_CHECK
    - lt::session_params::settings::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_interest_timeout_zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_timeout.cpp:304,1
    - Dst: lt::session_params::settings::set_int
      Src: /src/libtorrent/simulation/test_timeout.cpp:305,1
    - Dst: test_no_interest_timeout
      Src: /src/libtorrent/simulation/test_timeout.cpp:306,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_timeout.cpp:306,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_timeout.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_timeout.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - settings
    - test_no_interest_timeout
    - TEST_CHECK
    - lt::session_params::settings::set_int
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_interest_timeout_few_peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::make_address
      Src: /src/libtorrent/simulation/fake_peer.hpp:57,1
    - Dst: open
      Src: /src/libtorrent/simulation/fake_peer.hpp:60,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/fake_peer.hpp:60,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/fake_peer.hpp:61,1
    - Dst: bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:62,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/fake_peer.hpp:62,1
    - Dst: asio::ip::address_v4::any
      Src: /src/libtorrent/simulation/fake_peer.hpp:62,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/fake_peer.hpp:63,1
    - Dst: listen
      Src: /src/libtorrent/simulation/fake_peer.hpp:64,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/fake_peer.hpp:65,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/fake_peer.hpp:67,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/fake_peer.hpp:72,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:72,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:72,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ' sim'
    - ip
    argTypes:
    - simulation
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: fake_peer
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 1
    functionsReached:
    - std::bind
    - rand_v4
    - listen
    - async_accept
    - open
    - asio::ip::address_v4::any
    - asio::ip::make_address
    - async_read
    - both_sides_from_store_buffer
    - local_endpoint
    - bind
    - TEST_CHECK
    - data
    linkageType: ''
    returnType: void
    signature: void fake_peer(simulation& sim, char const* ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/fake_peer.hpp:81,1
    - Dst: close
      Src: /src/libtorrent/simulation/fake_peer.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: close
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 76
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:91,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/simulation/fake_peer.hpp:91,1
    - Dst: async_connect
      Src: /src/libtorrent/simulation/fake_peer.hpp:92,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ep
    - ' ih'
    argTypes:
    - asio::ip::tcp::endpoint
    - lt::sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: connect_to
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 3
    functionsReached:
    - async_connect
    - libtorrent::print_endpoint
    - std::bind
    - std::printf
    linkageType: ''
    returnType: void
    signature: void connect_to(asio::ip::tcp::endpoint ep, lt::sha1_hash const& ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: accepted
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: connected
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool connected() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: disconnected
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool disconnected() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/simulation/fake_peer.hpp:103,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:103,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:104,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:104,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/simulation/fake_peer.hpp:106,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/simulation/fake_peer.hpp:107,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/simulation/fake_peer.hpp:108,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/fake_peer.hpp:108,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/simulation/fake_peer.hpp:109,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/simulation/fake_peer.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - p
    - block
    argTypes:
    - lt::piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: send_request
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - resize
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send_request(lt::piece_index_t p, int block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/simulation/fake_peer.hpp:116,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:116,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:117,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:117,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/simulation/fake_peer.hpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: send_keepalive
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::write_uint32
    - resize
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send_keepalive()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:124,1
    - Dst: resize
      Src: /src/libtorrent/simulation/fake_peer.hpp:125,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:125,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:126,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:126,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/simulation/fake_peer.hpp:128,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/simulation/fake_peer.hpp:129,1
    - Dst: begin
      Src: /src/libtorrent/simulation/fake_peer.hpp:133,1
    - Dst: end
      Src: /src/libtorrent/simulation/fake_peer.hpp:133,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/simulation/fake_peer.hpp:139,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/simulation/fake_peer.hpp:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 146
    functionName: send_bitfield
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 7
    functionsReached:
    - begin
    - end
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - resize
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send_bitfield(std::vector<bool> const& pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_simple_msg
      Src: /src/libtorrent/simulation/fake_peer.hpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: send_interested
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 2
    functionsReached:
    - send_simple_msg
    linkageType: ''
    returnType: void
    signature: void send_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_simple_msg
      Src: /src/libtorrent/simulation/fake_peer.hpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: send_not_interested
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 1
    functionsReached:
    - send_simple_msg
    linkageType: ''
    returnType: void
    signature: void send_not_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_simple_msg
      Src: /src/libtorrent/simulation/fake_peer.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: send_have_all
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 13
    functionsReached:
    - send_simple_msg
    linkageType: ''
    returnType: void
    signature: void send_have_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_simple_msg
      Src: /src/libtorrent/simulation/fake_peer.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: send_have_none
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 6
    functionsReached:
    - send_simple_msg
    linkageType: ''
    returnType: void
    signature: void send_have_none()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_simple_msg
      Src: /src/libtorrent/simulation/fake_peer.hpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: send_invalid_message
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 2
    functionsReached:
    - send_simple_msg
    linkageType: ''
    returnType: void
    signature: void send_invalid_message()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/simulation/fake_peer.hpp:155,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:155,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:156,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:156,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/simulation/fake_peer.hpp:158,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/simulation/fake_peer.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: send_large_message
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - resize
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send_large_message()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/fake_peer.hpp:164,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/fake_peer.hpp:166,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:166,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/fake_peer.hpp:169,1
    - Dst: clear
      Src: /src/libtorrent/simulation/fake_peer.hpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: flush_send_buffer
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - async_write
    - clear
    linkageType: ''
    returnType: void
    signature: void flush_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/simulation/fake_peer.hpp:179,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:179,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:180,1
    - Dst: size
      Src: /src/libtorrent/simulation/fake_peer.hpp:180,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/simulation/fake_peer.hpp:182,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/simulation/fake_peer.hpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg_code
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: send_simple_msg
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - resize
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send_simple_msg(std::uint8_t const msg_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/fake_peer.hpp:191,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:192,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/simulation/fake_peer.hpp:193,1
    - Dst: value
      Src: /src/libtorrent/simulation/fake_peer.hpp:194,1
    - Dst: message
      Src: /src/libtorrent/simulation/fake_peer.hpp:194,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/fake_peer.hpp:202,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:202,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/fake_peer.hpp:203,1
    - Dst: lt::sha1_hash::data
      Src: /src/libtorrent/simulation/fake_peer.hpp:203,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/fake_peer.hpp:204,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/fake_peer.hpp:206,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/fake_peer.hpp:208,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:208,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/fake_peer.hpp:212,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:214,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/simulation/fake_peer.hpp:215,1
    - Dst: value
      Src: /src/libtorrent/simulation/fake_peer.hpp:215,1
    - Dst: message
      Src: /src/libtorrent/simulation/fake_peer.hpp:216,1
    - Dst: empty
      Src: /src/libtorrent/simulation/fake_peer.hpp:217,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/fake_peer.hpp:219,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/fake_peer.hpp:221,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:221,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:222,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/fake_peer.hpp:226,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:226,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:226,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - ' ec'
    - ih
    argTypes:
    - boost::system::error_code
    - lt::sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 230
    functionName: write_handshake
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_write
    - lt::sha1_hash::data
    - remote_endpoint
    - libtorrent::print_endpoint
    - message
    - memcpy
    - empty
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - async_read
    - value
    - libtorrent::aux::random_bytes
    - std::printf
    - data
    linkageType: ''
    returnType: void
    signature: "void write_handshake(boost::system::error_code const& ec\n\t\t, lt::sha1_hash
      ih)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:236,1
    - Dst: value
      Src: /src/libtorrent/simulation/fake_peer.hpp:237,1
    - Dst: message
      Src: /src/libtorrent/simulation/fake_peer.hpp:237,1
    - Dst: close
      Src: /src/libtorrent/simulation/fake_peer.hpp:240,1
    - Dst: memcmp
      Src: /src/libtorrent/simulation/fake_peer.hpp:244,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:244,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:246,1
    - Dst: close
      Src: /src/libtorrent/simulation/fake_peer.hpp:247,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/simulation/fake_peer.hpp:253,1
    - Dst: memcmp
      Src: /src/libtorrent/simulation/fake_peer.hpp:254,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:254,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:256,1
    - Dst: close
      Src: /src/libtorrent/simulation/fake_peer.hpp:257,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/fake_peer.hpp:264,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:264,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - lt::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 266
    functionName: read_handshake
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 0
    functionsReached:
    - std::bind
    - is_all_zeros
    - memcmp
    - message
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    - close
    - data
    linkageType: ''
    returnType: void
    signature: void read_handshake(lt::error_code const& ec, size_t /* bytes_transferred
      */)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:272,1
    - Dst: value
      Src: /src/libtorrent/simulation/fake_peer.hpp:273,1
    - Dst: message
      Src: /src/libtorrent/simulation/fake_peer.hpp:273,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:276,1
    - Dst: close
      Src: /src/libtorrent/simulation/fake_peer.hpp:278,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/fake_peer.hpp:282,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:282,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - lt::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: on_read
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 2
    functionsReached:
    - std::bind
    - message
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void on_read(lt::error_code const& ec, size_t bytes_transferred)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:291,1
    - Dst: value
      Src: /src/libtorrent/simulation/fake_peer.hpp:292,1
    - Dst: message
      Src: /src/libtorrent/simulation/fake_peer.hpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/fake_peer.hpp:294,1
    - Dst: clear
      Src: /src/libtorrent/simulation/fake_peer.hpp:297,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/fake_peer.hpp:298,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:298,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:298,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 300
    functionName: write_send_buffer
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 0
    functionsReached:
    - std::bind
    - printf
    - message
    - TORRENT_ASSERT
    - async_read
    - both_sides_from_store_buffer
    - clear
    - value
    - data
    linkageType: ''
    returnType: void
    signature: "void write_send_buffer(boost::system::error_code const& ec\n\t\t,
      size_t /* bytes_transferred */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/fake_peer.hpp:329,1
    - Dst: connect_peer
      Src: /src/libtorrent/simulation/fake_peer.hpp:330,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/fake_peer.hpp:330,1
    - Dst: asio::ip::make_address_v4
      Src: /src/libtorrent/simulation/fake_peer.hpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' h'
    - i
    argTypes:
    - lt::torrent_handle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: add_fake_peer
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - connect_peer
    - asio::ip::make_address_v4
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void add_fake_peer(lt::torrent_handle& h, int const i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_fake_peer
      Src: /src/libtorrent/simulation/fake_peer.hpp:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - lt::torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 341
    functionName: add_fake_peers
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 8
    functionsReached:
    - add_fake_peer
    linkageType: ''
    returnType: void
    signature: void add_fake_peers(lt::torrent_handle& h, int const n = 5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::make_address
      Src: /src/libtorrent/simulation/fake_peer.hpp:347,1
    - Dst: open
      Src: /src/libtorrent/simulation/fake_peer.hpp:351,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/fake_peer.hpp:351,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/fake_peer.hpp:352,1
    - Dst: bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:353,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/fake_peer.hpp:353,1
    - Dst: asio::ip::address_v4::any
      Src: /src/libtorrent/simulation/fake_peer.hpp:353,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/simulation/fake_peer.hpp:354,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/fake_peer.hpp:355,1
    - Dst: non_blocking
      Src: /src/libtorrent/simulation/fake_peer.hpp:357,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:359,1
    - Dst: async_receive_from
      Src: /src/libtorrent/simulation/fake_peer.hpp:361,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:361,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ' sim'
    - ip
    - port
    - handler
    argTypes:
    - simulation
    - char*
    - int
    - std::function<std::vector<char>(char const*, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: udp_server
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 0
    functionsReached:
    - std::bind
    - rand_v4
    - open
    - async_receive_from
    - asio::ip::address_v4::any
    - asio::ip::make_address
    - non_blocking
    - both_sides_from_store_buffer
    - local_endpoint
    - static_cast<std::uint16_t>
    - bind
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void udp_server(simulation& sim, char const* ip, int port\n\t\t, std::function<std::vector<char>(char
      const*, int)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/fake_peer.hpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: close
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 79
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:371,1
    - Dst: message
      Src: /src/libtorrent/simulation/fake_peer.hpp:372,1
    - Dst: m_handler
      Src: /src/libtorrent/simulation/fake_peer.hpp:375,1
    - Dst: data
      Src: /src/libtorrent/simulation/fake_peer.hpp:375,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/fake_peer.hpp:377,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/fake_peer.hpp:380,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:380,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:383,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/simulation/fake_peer.hpp:383,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:387,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/fake_peer.hpp:388,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/fake_peer.hpp:392,1
    - Dst: async_receive_from
      Src: /src/libtorrent/simulation/fake_peer.hpp:394,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/fake_peer.hpp:394,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/fake_peer.hpp:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 396
    functionName: on_read
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 2
    functionsReached:
    - std::bind
    - std::vector::size
    - lt::error_code::message
    - std::vector::empty
    - m_handler
    - async_receive_from
    - message
    - both_sides_from_store_buffer
    - std::printf
    - send_to
    - data
    linkageType: ''
    returnType: void
    signature: void on_read(boost::system::error_code const& ec, size_t bytes_transferred)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/simulation/fake_peer.hpp:414,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/fake_peer.hpp:415,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/fake_peer.hpp:417,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/simulation/fake_peer.hpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' sim'
    - ip
    argTypes:
    - simulation
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 423
    functionName: fake_node
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - std::vector<char>
    - bdecode
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void fake_node(simulation& sim, char const* ip, int port = 6881)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    functionName: tripped
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tripped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: '& incoming_packets() const'
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::vector<char>>
    signature: std::vector<std::vector<char>> & incoming_packets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/fake_peer.hpp:443,1
    - Dst: accepted
      Src: /src/libtorrent/simulation/fake_peer.hpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' test_peers'
    - expected
    argTypes:
    - std::array<fake_peer*, N>
    - std::array<bool, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: check_accepted
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 9
    functionsReached:
    - TEST_EQUAL
    - accepted
    linkageType: ''
    returnType: void
    signature: "void check_accepted(std::array<fake_peer*, N>& test_peers\n\t, std::array<bool,
      N> expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/fake_peer.hpp:455,1
    - Dst: connected
      Src: /src/libtorrent/simulation/fake_peer.hpp:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' test_peers'
    - expected
    argTypes:
    - std::array<fake_peer*, N>
    - std::array<bool, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: check_connected
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - connected
    linkageType: ''
    returnType: void
    signature: "void check_connected(std::array<fake_peer*, N>& test_peers\n\t, std::array<bool,
      N> expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/fake_peer.hpp:467,1
    - Dst: disconnected
      Src: /src/libtorrent/simulation/fake_peer.hpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' test_peers'
    - expected
    argTypes:
    - std::array<fake_peer*, N>
    - std::array<bool, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 470
    functionName: check_disconnected
    functionSourceFile: /src/libtorrent/simulation/fake_peer.hpp
    functionUses: 2
    functionsReached:
    - TEST_EQUAL
    - disconnected
    linkageType: ''
    returnType: void
    signature: "void check_disconnected(std::array<fake_peer*, N>& test_peers\n\t,
      std::array<bool, N> expected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:56,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:56,1
    - Dst: lt::duration_cast<chrono::high_resolution_clock::duration>
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:57,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:57,1
    - Dst: sim::default_config::hostname_lookup
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' requestor'
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - asio::ip::address
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/test_dht_bootstrap.cpp
    functionUses: 7
    functionsReached:
    - push_back
    - lt::duration_cast<chrono::high_resolution_clock::duration>
    - sim::default_config::hostname_lookup
    - libtorrent::total_milliseconds
    - addr
    linkageType: ''
    returnType: chrono::high_resolution_clock::duration
    signature: "chrono::high_resolution_clock::duration hostname_lookup(\n\t\tasio::ip::address
      const& requestor\n\t\t, std::string hostname\n\t\t, std::vector<asio::ip::address>&
      result\n\t\t, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:76,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:77,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:78,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:79,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:80,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:81,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:82,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:83,1
    - Dst: lt::deadline_timer::expires_after
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:86,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:86,1
    - Dst: lt::deadline_timer::async_wait
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:87,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:88,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:88,1
    - Dst: fake_node::close
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:89,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:90,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:93,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:95,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:97,1
    - Dst: fake_node::tripped
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:97,1
    - Dst: fake_node::incoming_packets
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:99,1
    - Dst: bdecode
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:102,1
    - Dst: data
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:102,1
    - Dst: data
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:102,1
    - Dst: size
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:102,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:104,1
    - Dst: lt::bdecode_node::dict_find_dict
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:106,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:107,1
    - Dst: lt::bdecode_node::dict_find_int_value
      Src: /src/libtorrent/simulation/test_dht_bootstrap.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 108
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht_bootstrap.cpp
    functionUses: 0
    functionsReached:
    - lt::settings_pack::set_bool
    - sim::simulation::run
    - lt::bdecode_node::dict_find_dict
    - lt::deadline_timer::async_wait
    - addr
    - std::shared_ptr::abort
    - lt::deadline_timer::expires_after
    - bdecode
    - data
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - fake_node::incoming_packets
    - fake_node::tripped
    - TEST_EQUAL
    - lt::bdecode_node::dict_find_int_value
    - std::make_shared<lt::session>
    - size
    - TEST_CHECK
    - fake_node::close
    - std::vector::push_back
    - lt::settings_pack::set_int
    - std::shared_ptr::reset
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_bootstrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht_bootstrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disabled)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:85,1
    - Dst: enable_enc
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:88,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:91,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:94,1
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:108,1
    - Dst: ti::reset
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:120,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:121,1
    - Dst: libtorrent::make_magnet_uri
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:122,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:123,1
    - Dst: alert_cast<metadata_failed_alert>
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:138,1
    - Dst: alert_cast<metadata_received_alert>
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:142,1
    - Dst: remove_torrent
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:148,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:148,1
    - Dst: add_torrent
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:156,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:170,1
    - Dst: has_metadata
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:181,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:185,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:185,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:189,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:191,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:200,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:204,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 206
    functionName: run_metadata_test
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - ti::reset
    - parse_magnet_uri
    - remove_torrent
    - TEST_EQUAL
    - enable_enc
    - setup_swarm
    - libtorrent::make_magnet_uri
    - lt::settings_pack::set_int
    - alert_cast<metadata_received_alert>
    - has_metadata
    - get_torrents
    - utp_only
    - is_seed
    - settings
    - add_torrent
    - alert_cast<metadata_failed_alert>
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void run_metadata_test(int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_metadata_test
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - run_metadata_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ut_metadata_encryption_reverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_metadata_test
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - run_metadata_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ut_metadata_encryption_utp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_metadata_test
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - run_metadata_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ut_metadata_reverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_metadata_test
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - run_metadata_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ut_metadata_upload_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_metadata_test
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - run_metadata_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ut_metadata_disconnect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_metadata_test
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - run_metadata_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ut_metadata_disconnect_readd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_metadata_test
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - run_metadata_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ut_metadata_upload_only_disconnect_readd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_metadata_test
      Src: /src/libtorrent/simulation/test_metadata_extension.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached:
    - run_metadata_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(ut_metadata_token_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_metadata_extension.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:40,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_transfer.cpp:43,1
    - Dst: filter_ips
      Src: /src/libtorrent/simulation/test_transfer.cpp:44,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - set_proxy
    - filter_ips
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks4_tcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:53,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_transfer.cpp:56,1
    - Dst: filter_ips
      Src: /src/libtorrent/simulation/test_transfer.cpp:57,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - set_proxy
    - filter_ips
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_tcp_connect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:66,1
    - Dst: enable_enc
      Src: /src/libtorrent/simulation/test_transfer.cpp:68,1
    - Dst: enable_enc
      Src: /src/libtorrent/simulation/test_transfer.cpp:68,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - enable_enc
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(encryption_tcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:76,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_proxy_tcp_ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:86,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:88,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:88,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - utp_only
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_proxy_utp_ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:116,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_proxy_tcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:125,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:127,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:127,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - utp_only
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_proxy_utp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:135,1
    - Dst: enable_enc
      Src: /src/libtorrent/simulation/test_transfer.cpp:138,1
    - Dst: enable_enc
      Src: /src/libtorrent/simulation/test_transfer.cpp:139,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:140,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:141,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - utp_only
    - enable_enc
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(encryption_utp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:150,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_transfer.cpp:153,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:154,1
    - Dst: filter_ips
      Src: /src/libtorrent/simulation/test_transfer.cpp:155,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:156,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - filter_ips
    - utp_only
    - set_proxy
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_utp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:165,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_transfer.cpp:168,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:169,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:170,1
    - Dst: filter_ips
      Src: /src/libtorrent/simulation/test_transfer.cpp:171,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - filter_ips
    - utp_only
    - set_proxy
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_utp_incoming)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:181,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_transfer.cpp:184,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:185,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:186,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - set_proxy
    - utp_only
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_utp_circumvent_proxy_reject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:197,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_transfer.cpp:200,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:201,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:202,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 211
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - set_proxy
    - utp_only
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(socks5_utp_circumvent_proxy_ok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:215,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_transfer.cpp:218,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - set_proxy
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_tcp_circumvent_proxy_reject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:229,1
    - Dst: set_proxy
      Src: /src/libtorrent/simulation/test_transfer.cpp:232,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 237
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - set_proxy
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(http_tcp_circumvent_proxy_ok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:244,1
    - Dst: filter_ips
      Src: /src/libtorrent/simulation/test_transfer.cpp:245,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - filter_ips
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_proxy_tcp_banned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:253,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:255,1
    - Dst: utp_only
      Src: /src/libtorrent/simulation/test_transfer.cpp:255,1
    - Dst: filter_ips
      Src: /src/libtorrent/simulation/test_transfer.cpp:255,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - filter_ips
    - utp_only
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(no_proxy_utp_banned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:263,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_transfer.cpp:267,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_transfer.cpp:268,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_transfer.cpp:269,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - settings_pack::set_bool
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_extent_affinity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:278,1
    - Dst: alert_cast<piece_finished_alert>
      Src: /src/libtorrent/simulation/test_transfer.cpp:280,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_transfer.cpp:282,1
    - Dst: is_finished
      Src: /src/libtorrent/simulation/test_transfer.cpp:282,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_transfer.cpp:284,1
    - Dst: prioritize_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:284,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_transfer.cpp:290,1
    - Dst: is_finished
      Src: /src/libtorrent/simulation/test_transfer.cpp:290,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_transfer.cpp:291,1
    - Dst: is_finished
      Src: /src/libtorrent/simulation/test_transfer.cpp:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - prioritize_files
    - get_torrents
    - is_finished
    - alert_cast<piece_finished_alert>
    - run_test
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(is_finished)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:299,1
    - Dst: record_finished_pieces
      Src: /src/libtorrent/simulation/test_transfer.cpp:300,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:301,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_transfer.cpp:304,1
    - Dst: std::set::size
      Src: /src/libtorrent/simulation/test_transfer.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 305
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - record_finished_pieces
    - std::set::size
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(v1_only_magnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:309,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:312,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - run_test
    - expect_seed
    - test_disk
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disk_full)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:320,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/test_transfer.cpp:324,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_transfer.cpp:325,1
    - Dst: alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_transfer.cpp:328,1
    - Dst: auto::handle::set_flags
      Src: /src/libtorrent/simulation/test_transfer.cpp:332,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:337,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:339,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:340,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_transfer.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 343
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - alert_cast<lt::add_torrent_alert>
    - Catch::Timer::getElapsedNanoseconds
    - auto::handle::set_flags
    - test_disk
    - settings_pack::set_int
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disk_full_recover)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:347,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/test_transfer.cpp:351,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_transfer.cpp:352,1
    - Dst: alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_transfer.cpp:355,1
    - Dst: auto::handle::set_flags
      Src: /src/libtorrent/simulation/test_transfer.cpp:359,1
    - Dst: expect_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:364,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:366,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:367,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_transfer.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 370
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - alert_cast<lt::add_torrent_alert>
    - Catch::Timer::getElapsedNanoseconds
    - auto::handle::set_flags
    - test_disk
    - settings_pack::set_int
    - run_test
    - expect_seed
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disk_full_recover_large_pieces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/libtorrent/simulation/test_transfer.cpp:377,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_transfer.cpp:378,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_transfer.cpp:391,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_transfer.cpp:392,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_transfer.cpp:395,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_transfer.cpp:396,1
    - Dst: set_bool
      Src: /src/libtorrent/simulation/test_transfer.cpp:399,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_transfer.cpp:400,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_transfer.cpp:401,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_transfer.cpp:402,1
    - Dst: set_str
      Src: /src/libtorrent/simulation/test_transfer.cpp:404,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:411,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_transfer.cpp:412,1
    - Dst: set_str
      Src: /src/libtorrent/simulation/test_transfer.cpp:414,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:416,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_transfer.cpp:417,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_transfer.cpp:420,1
    - Dst: alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_transfer.cpp:421,1
    - Dst: auto::handle::connect_peer
      Src: /src/libtorrent/simulation/test_transfer.cpp:423,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_transfer.cpp:423,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_transfer.cpp:427,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:436,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:439,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_transfer.cpp:441,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_transfer.cpp:443,1
    - Dst: torrent_file_with_hashes
      Src: /src/libtorrent/simulation/test_transfer.cpp:444,1
    - Dst: auto::v2
      Src: /src/libtorrent/simulation/test_transfer.cpp:446,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_transfer.cpp:447,1
    - Dst: auto::v2_piece_hashes_verified
      Src: /src/libtorrent/simulation/test_transfer.cpp:447,1
    - Dst: serialize
      Src: /src/libtorrent/simulation/test_transfer.cpp:449,1
    - Dst: serialize
      Src: /src/libtorrent/simulation/test_transfer.cpp:450,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_transfer.cpp:451,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_transfer.cpp:453,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:453,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_transfer.cpp:454,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_transfer.cpp:454,1
    - Dst: force_recheck
      Src: /src/libtorrent/simulation/test_transfer.cpp:456,1
    - Dst: lt::minutes
      Src: /src/libtorrent/simulation/test_transfer.cpp:459,1
    - Dst: abort
      Src: /src/libtorrent/simulation/test_transfer.cpp:465,1
    - Dst: reset
      Src: /src/libtorrent/simulation/test_transfer.cpp:466,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_transfer.cpp:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ti
    argTypes:
    - std::shared_ptr<lt::torrent_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 471
    functionName: run_torrent_test
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - auto::v2
    - sim::simulation::run
    - lt::minutes
    - auto::handle::connect_peer
    - addr
    - set_int
    - reset
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - get_torrents
    - set_bool
    - abort
    - auto::v2_piece_hashes_verified
    - TEST_EQUAL
    - serialize
    - async_add_torrent
    - std::make_shared<lt::session>
    - is_seed
    - torrent_file_with_hashes
    - TEST_CHECK
    - alert_cast<lt::add_torrent_alert>
    - force_recheck
    - test_disk
    - local_endpoint
    - settings
    - set_str
    linkageType: ''
    returnType: void
    signature: void run_torrent_test(std::shared_ptr<lt::torrent_info> ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::piece_length
      Src: /src/libtorrent/simulation/test_transfer.cpp:477,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/simulation/test_transfer.cpp:480,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:480,1
    - Dst: flush
      Src: /src/libtorrent/simulation/test_transfer.cpp:481,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/simulation/test_transfer.cpp:483,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/simulation/test_transfer.cpp:485,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/test_transfer.cpp:485,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/simulation/test_transfer.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fs
    - flags
    argTypes:
    - lt::file_storage
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: test_torrent
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::bencode
    - lt::file_storage::piece_length
    - test_disk
    - std::make_shared<lt::torrent_info>
    - libtorrent::set_piece_hashes
    - flush
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: std::shared_ptr<lt::torrent_info>
    signature: std::shared_ptr<lt::torrent_info> test_torrent(lt::file_storage fs,
      lt::create_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::piece_length
      Src: /src/libtorrent/simulation/test_transfer.cpp:477,1
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/simulation/test_transfer.cpp:480,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_transfer.cpp:480,1
    - Dst: flush
      Src: /src/libtorrent/simulation/test_transfer.cpp:481,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/simulation/test_transfer.cpp:483,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/simulation/test_transfer.cpp:485,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/test_transfer.cpp:485,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/simulation/test_transfer.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fs
    - flags
    argTypes:
    - lt::file_storage
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: test_torrent
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::bencode
    - lt::file_storage::piece_length
    - test_disk
    - std::make_shared<lt::torrent_info>
    - libtorrent::set_piece_hashes
    - flush
    - std::back_inserter
    - lt::create_torrent::generate
    linkageType: ''
    returnType: std::shared_ptr<lt::torrent_info>
    signature: std::shared_ptr<lt::torrent_info> test_torrent(lt::file_storage fs,
      lt::create_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:493,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:493,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 4
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(simple_torrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:499,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:499,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(odd_last_pad_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:505,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:505,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 4
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(small_piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:511,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:511,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 4
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(odd_piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:517,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:517,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(large_pad_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:523,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:523,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 4
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(unaligned_pad_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:529,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:529,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(piece_size_pad_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:535,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:535,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 537
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(block_size_pad_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:541,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:541,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 539
    functionDepth: 4
    functionLinenumber: 539
    functionLinenumberEnd: 543
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(back_to_back_pad_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:547,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:547,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(small_file_large_piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_torrent_test
      Src: /src/libtorrent/simulation/test_transfer.cpp:553,1
    - Dst: test_torrent
      Src: /src/libtorrent/simulation/test_transfer.cpp:553,1
    - Dst: make_files
      Src: /src/libtorrent/simulation/test_transfer.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 551
    functionDepth: 4
    functionLinenumber: 551
    functionLinenumberEnd: 555
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_transfer.cpp
    functionUses: 0
    functionsReached:
    - make_files
    - run_torrent_test
    - test_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(empty_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_file_pool.cpp:52,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_file_pool.cpp:55,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_file_pool.cpp:71,1
    - Dst: torrent_handle::file_status
      Src: /src/libtorrent/simulation/test_file_pool.cpp:72,1
    - Dst: printf
      Src: /src/libtorrent/simulation/test_file_pool.cpp:73,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_file_pool.cpp:73,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_file_pool.cpp:76,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_file_pool.cpp:76,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_file_pool.cpp:82,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_file_pool.cpp:82,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_file_pool.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 87
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_file_pool.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - std::vector::size
    - setup_swarm
    - printf
    - get_torrents
    - torrent_handle::file_status
    - set_int
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(close_file_interval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_file_pool.cpp:94,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_file_pool.cpp:98,1
    - Dst: snprintf
      Src: /src/libtorrent/simulation/test_file_pool.cpp:108,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/simulation/test_file_pool.cpp:109,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/simulation/test_file_pool.cpp:111,1
    - Dst: ti::remap_files
      Src: /src/libtorrent/simulation/test_file_pool.cpp:112,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_file_pool.cpp:121,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_file_pool.cpp:125,1
    - Dst: printf
      Src: /src/libtorrent/simulation/test_file_pool.cpp:126,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_file_pool.cpp:126,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/test_file_pool.cpp:127,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_file_pool.cpp:127,1
    - Dst: is_seed
      Src: /src/libtorrent/simulation/test_file_pool.cpp:128,1
    - Dst: printf
      Src: /src/libtorrent/simulation/test_file_pool.cpp:129,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_file_pool.cpp:134,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_file_pool.cpp:135,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_file_pool.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 137
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_file_pool.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - std::make_shared<torrent_info>
    - std::vector::size
    - setup_swarm
    - file_storage::add_file
    - printf
    - get_torrents
    - ti::remap_files
    - std::max
    - is_seed
    - set_int
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(file_pool_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/simulation/disk_io.cpp:53,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/simulation/disk_io.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<lt::disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: watermark_callback
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<lt::disk_observer>>
      const& cbs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/simulation/disk_io.cpp:53,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/simulation/disk_io.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<lt::disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: watermark_callback
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<lt::disk_observer>>
      const& cbs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/disk_io.cpp:62,1
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/disk_io.cpp:66,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/disk_io.cpp:66,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/disk_io.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - block
    argTypes:
    - lt::piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: generate_block_fill
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - std::memcpy
    - reinterpret_cast<char const*>
    - std::array::data
    linkageType: ''
    returnType: std::array<char, 0x4000>
    signature: std::array<char, 0x4000> generate_block_fill(lt::piece_index_t const
      p, int const block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_block_fill
      Src: /src/libtorrent/simulation/disk_io.cpp:78,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/disk_io.cpp:81,1
    - Dst: lt::hasher::update
      Src: /src/libtorrent/simulation/disk_io.cpp:83,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/disk_io.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:88,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:92,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/disk_io.cpp:92,1
    - Dst: lt::hasher::update
      Src: /src/libtorrent/simulation/disk_io.cpp:93,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/disk_io.cpp:93,1
    - Dst: lt::hasher::final
      Src: /src/libtorrent/simulation/disk_io.cpp:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - p
    - piece_size
    - pad_bytes
    argTypes:
    - lt::piece_index_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 97
    functionName: generate_hash1
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - lt::hasher::update
    - std::array::size
    - std::array::data
    - std::min
    - auto::size
    - TORRENT_ASSERT
    - generate_block_fill
    - lt::hasher::final
    - auto::data
    linkageType: ''
    returnType: lt::sha1_hash
    signature: lt::sha1_hash generate_hash1(lt::piece_index_t const p, int const piece_size,
      int const pad_bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: piece_size
      Src: /src/libtorrent/simulation/disk_io.cpp:102,1
    - Dst: piece_size2
      Src: /src/libtorrent/simulation/disk_io.cpp:104,1
    - Dst: blocks_in_piece2
      Src: /src/libtorrent/simulation/disk_io.cpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:107,1
    - Dst: lt::span<lt::sha256_hash>::size
      Src: /src/libtorrent/simulation/disk_io.cpp:107,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/disk_io.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:110,1
    - Dst: generate_block_fill
      Src: /src/libtorrent/simulation/disk_io.cpp:117,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:121,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:124,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/disk_io.cpp:124,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:125,1
    - Dst: lt::hasher::update
      Src: /src/libtorrent/simulation/disk_io.cpp:126,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/disk_io.cpp:126,1
    - Dst: lt::hasher256::update
      Src: /src/libtorrent/simulation/disk_io.cpp:129,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/disk_io.cpp:129,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:129,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/disk_io.cpp:129,1
    - Dst: lt::hasher::update
      Src: /src/libtorrent/simulation/disk_io.cpp:137,1
    - Dst: lt::hasher256::final
      Src: /src/libtorrent/simulation/disk_io.cpp:140,1
    - Dst: lt::hasher::final
      Src: /src/libtorrent/simulation/disk_io.cpp:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - p
    - ' fs'
    - hashes
    - pad_bytes
    argTypes:
    - lt::piece_index_t
    - lt::file_storage
    - lt::span<lt::sha256_hash>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 143
    functionName: generate_hash2
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - lt::hasher::update
    - blocks_in_piece2
    - lt::hasher256::final
    - TORRENT_ASSERT
    - std::min
    - piece_size2
    - lt::span<lt::sha256_hash>::size
    - std::max
    - generate_block_fill
    - auto::size
    - lt::hasher256::update
    - piece_size
    - lt::hasher::final
    - auto::data
    linkageType: ''
    returnType: lt::sha1_hash
    signature: "lt::sha1_hash generate_hash2(lt::piece_index_t p, lt::file_storage
      const& fs\n\t, lt::span<lt::sha256_hash> const hashes, int const pad_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_block_fill
      Src: /src/libtorrent/simulation/disk_io.cpp:151,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/disk_io.cpp:152,1
    - Dst: lt::hasher256::update
      Src: /src/libtorrent/simulation/disk_io.cpp:153,1
    - Dst: lt::hasher256::final
      Src: /src/libtorrent/simulation/disk_io.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - offset
    argTypes:
    - lt::piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: generate_block_hash
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - lt::hasher256::final
    - lt::hasher256::update
    - generate_block_fill
    linkageType: ''
    returnType: lt::sha256_hash
    signature: lt::sha256_hash generate_block_hash(lt::piece_index_t p, int const
      offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_block_fill
      Src: /src/libtorrent/simulation/disk_io.cpp:163,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/disk_io.cpp:165,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:166,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:166,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/disk_io.cpp:166,1
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/disk_io.cpp:167,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/disk_io.cpp:167,1
    - Dst: std::memset
      Src: /src/libtorrent/simulation/disk_io.cpp:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - b
    - r
    - pad_bytes
    - piece_size
    argTypes:
    - char*
    - lt::peer_request
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: generate_block
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 1
    functionsReached:
    - std::memcpy
    - auto::size
    - std::min
    - generate_block_fill
    - std::memset
    - auto::data
    linkageType: ''
    returnType: void
    signature: void generate_block(char* b, lt::peer_request r, int const pad_bytes,
      int const piece_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/simulation/disk_io.cpp:184,1
    - Dst: std::unordered_map::emplace
      Src: /src/libtorrent/simulation/disk_io.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - lt::file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: compute_pad_bytes
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::apply_pad_files
    - std::unordered_map::emplace
    linkageType: ''
    returnType: std::unordered_map<lt::piece_index_t, int>
    signature: std::unordered_map<lt::piece_index_t, int> compute_pad_bytes(lt::file_storage
      const& fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/disk_io.cpp:193,1
    - Dst: end
      Src: /src/libtorrent/simulation/disk_io.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' pb'
    - p
    argTypes:
    - std::unordered_map<lt::piece_index_t, int>
    - lt::piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: pads_in_piece
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int pads_in_piece(std::unordered_map<lt::piece_index_t, int> const&
      pb, lt::piece_index_t const p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/disk_io.cpp:200,1
    - Dst: end
      Src: /src/libtorrent/simulation/disk_io.cpp:201,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/disk_io.cpp:205,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' pb'
    - ' r'
    - piece_size
    argTypes:
    - std::unordered_map<lt::piece_index_t, int>
    - lt::peer_request
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: pads_in_req
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - end
    - std::max
    - find
    linkageType: ''
    returnType: int
    signature: "int pads_in_req(std::unordered_map<lt::piece_index_t, int> const&
      pb\n\t, lt::peer_request const& r, int const piece_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/simulation/disk_io.cpp:215,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:222,1
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/simulation/disk_io.cpp:223,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/disk_io.cpp:223,1
    - Dst: lt::create_torrent::files
      Src: /src/libtorrent/simulation/disk_io.cpp:229,1
    - Dst: compute_pad_bytes
      Src: /src/libtorrent/simulation/disk_io.cpp:231,1
    - Dst: piece_range
      Src: /src/libtorrent/simulation/disk_io.cpp:235,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/simulation/disk_io.cpp:236,1
    - Dst: generate_hash1
      Src: /src/libtorrent/simulation/disk_io.cpp:236,1
    - Dst: piece_length
      Src: /src/libtorrent/simulation/disk_io.cpp:236,1
    - Dst: pads_in_piece
      Src: /src/libtorrent/simulation/disk_io.cpp:236,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:243,1
    - Dst: file_range
      Src: /src/libtorrent/simulation/disk_io.cpp:248,1
    - Dst: pad_file_at
      Src: /src/libtorrent/simulation/disk_io.cpp:250,1
    - Dst: piece_index_at_file
      Src: /src/libtorrent/simulation/disk_io.cpp:251,1
    - Dst: file_piece_range
      Src: /src/libtorrent/simulation/disk_io.cpp:252,1
    - Dst: blocks_in_piece2
      Src: /src/libtorrent/simulation/disk_io.cpp:255,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:256,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:257,1
    - Dst: lt::aux::vector<lt::sha256_hash>::size
      Src: /src/libtorrent/simulation/disk_io.cpp:257,1
    - Dst: generate_hash2
      Src: /src/libtorrent/simulation/disk_io.cpp:258,1
    - Dst: pads_in_piece
      Src: /src/libtorrent/simulation/disk_io.cpp:258,1
    - Dst: libtorrent::merkle_root_scratch
      Src: /src/libtorrent/simulation/disk_io.cpp:259,1
    - Dst: lt::span<lt::sha256_hash const>
      Src: /src/libtorrent/simulation/disk_io.cpp:260,1
    - Dst: lt::create_torrent::set_hash2
      Src: /src/libtorrent/simulation/disk_io.cpp:264,1
    - Dst: lt::create_torrent::set_hash
      Src: /src/libtorrent/simulation/disk_io.cpp:267,1
    - Dst: lt::create_torrent::generate
      Src: /src/libtorrent/simulation/disk_io.cpp:272,1
    - Dst: bencode
      Src: /src/libtorrent/simulation/disk_io.cpp:275,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/disk_io.cpp:275,1
    - Dst: std::make_shared<lt::torrent_info>
      Src: /src/libtorrent/simulation/disk_io.cpp:277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - piece_size
    - num_pieces
    - flags
    - num_files
    argTypes:
    - int
    - int
    - lt::create_flags_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 278
    functionName: create_test_torrent
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 2
    functionsReached:
    - to_string
    - lt::create_torrent::set_hash
    - generate_hash1
    - libtorrent::merkle_root_scratch
    - piece_index_at_file
    - lt::create_torrent::files
    - std::min
    - pad_file_at
    - piece_range
    - lt::span<lt::sha256_hash const>
    - file_piece_range
    - generate_hash2
    - std::make_shared<lt::torrent_info>
    - pads_in_piece
    - lt::create_torrent::set_hash2
    - lt::file_storage::add_file
    - file_range
    - TORRENT_ASSERT
    - bencode
    - blocks_in_piece2
    - piece_length
    - compute_pad_bytes
    - std::back_inserter
    - lt::create_torrent::generate
    - lt::aux::vector<lt::sha256_hash>::size
    linkageType: ''
    returnType: std::shared_ptr<lt::torrent_info>
    signature: "std::shared_ptr<lt::torrent_info> create_test_torrent(int const piece_size\n\t,
      int const num_pieces, lt::create_flags_t const flags, int const num_files)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_torrent
      Src: /src/libtorrent/simulation/disk_io.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - num_pieces
    - flags
    - blocks_per_piece
    - num_files
    argTypes:
    - int
    - lt::create_flags_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: create_test_torrent
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 3
    functionsReached:
    - create_test_torrent
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: "lt::add_torrent_params create_test_torrent(\n\tint const num_pieces,
      lt::create_flags_t const flags, int const blocks_per_piece\n\t, int const num_files)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ioc'
    - state
    argTypes:
    - lt::io_context
    - test_disk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: test_disk_io
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_disk_io(lt::io_context& ioc, test_disk state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: settings_updated
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_updated() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:314,1
    - Dst: piece_length
      Src: /src/libtorrent/simulation/disk_io.cpp:319,1
    - Dst: resize
      Src: /src/libtorrent/simulation/disk_io.cpp:320,1
    - Dst: num_pieces
      Src: /src/libtorrent/simulation/disk_io.cpp:320,1
    - Dst: compute_pad_bytes
      Src: /src/libtorrent/simulation/disk_io.cpp:321,1
    - Dst: size
      Src: /src/libtorrent/simulation/disk_io.cpp:326,1
    - Dst: set_bit
      Src: /src/libtorrent/simulation/disk_io.cpp:327,1
    - Dst: libtorrent::storage_holder
      Src: /src/libtorrent/simulation/disk_io.cpp:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - lt::storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: new_torrent
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 5
    functionsReached:
    - set_bit
    - TORRENT_ASSERT
    - piece_length
    - num_pieces
    - resize
    - compute_pad_bytes
    - size
    - libtorrent::storage_holder
    linkageType: ''
    returnType: lt::storage_holder
    signature: "lt::storage_holder new_torrent(lt::storage_params const& params\n\t\t,
      std::shared_ptr<void> const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:335,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/disk_io.cpp:335,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:336,1
    - Dst: clear
      Src: /src/libtorrent/simulation/disk_io.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - lt::storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: remove_torrent
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 44
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    - clear
    linkageType: ''
    returnType: void
    signature: void remove_torrent(lt::storage_index_t const idx) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: abort
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort(bool) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:349,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/disk_io.cpp:349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:350,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:354,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:355,1
    - Dst: disk_seek
      Src: /src/libtorrent/simulation/disk_io.cpp:357,1
    - Dst: queue_event
      Src: /src/libtorrent/simulation/disk_io.cpp:359,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:359,1
    - Dst: char::char
      Src: /src/libtorrent/simulation/disk_io.cpp:360,1
    - Dst: get_bit
      Src: /src/libtorrent/simulation/disk_io.cpp:362,1
    - Dst: block_index
      Src: /src/libtorrent/simulation/disk_io.cpp:362,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/disk_io.cpp:365,1
    - Dst: generate_block
      Src: /src/libtorrent/simulation/disk_io.cpp:367,1
    - Dst: lt::disk_buffer_holder::data
      Src: /src/libtorrent/simulation/disk_io.cpp:367,1
    - Dst: pads_in_req
      Src: /src/libtorrent/simulation/disk_io.cpp:368,1
    - Dst: piece_size
      Src: /src/libtorrent/simulation/disk_io.cpp:368,1
    - Dst: piece_size
      Src: /src/libtorrent/simulation/disk_io.cpp:369,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:372,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:372,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:372,1
    - Dst: h
      Src: /src/libtorrent/simulation/disk_io.cpp:372,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - storage
    - ' r'
    - h
    argTypes:
    - lt::storage_index_t
    - lt::peer_request
    - std::function<void(lt::disk_buffer_holder block, lt::storage_error const& se)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 374
    functionName: async_read
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 18
    functionsReached:
    - generate_block
    - h
    - get_bit
    - std::move
    - piece_size
    - post
    - block_index
    - lt::disk_buffer_holder::data
    - static_cast<std::uint32_t>
    - TORRENT_ASSERT
    - disk_seek
    - pads_in_req
    - char::char
    - libtorrent::aux::random_bytes
    - queue_event
    linkageType: ''
    returnType: void
    signature: "void async_read(lt::storage_index_t const storage, lt::peer_request
      const& r\n\t\t, std::function<void(lt::disk_buffer_holder block, lt::storage_error
      const& se)> h\n\t\t, lt::disk_job_flags_t) override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:381,1
    - Dst: queue_event
      Src: /src/libtorrent/simulation/disk_io.cpp:385,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/disk_io.cpp:385,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:385,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:386,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:386,1
    - Dst: h
      Src: /src/libtorrent/simulation/disk_io.cpp:388,1
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/simulation/disk_io.cpp:388,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/disk_io.cpp:388,1
    - Dst: lt::generic_category
      Src: /src/libtorrent/simulation/disk_io.cpp:388,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/disk_io.cpp:392,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/disk_io.cpp:397,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:397,1
    - Dst: validate_block
      Src: /src/libtorrent/simulation/disk_io.cpp:403,1
    - Dst: disk_seek
      Src: /src/libtorrent/simulation/disk_io.cpp:405,1
    - Dst: queue_event
      Src: /src/libtorrent/simulation/disk_io.cpp:407,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:407,1
    - Dst: set_bit
      Src: /src/libtorrent/simulation/disk_io.cpp:411,1
    - Dst: block_index
      Src: /src/libtorrent/simulation/disk_io.cpp:411,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:415,1
    - Dst: h
      Src: /src/libtorrent/simulation/disk_io.cpp:415,1
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/simulation/disk_io.cpp:415,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:417,1
    - Dst: check_buffer_level
      Src: /src/libtorrent/simulation/disk_io.cpp:419,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/disk_io.cpp:426,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - storage
    - ' r'
    - buf
    - o
    - handler
    argTypes:
    - lt::storage_index_t
    - lt::peer_request
    - char*
    - std::shared_ptr<lt::disk_observer>
    - std::function<void(lt::storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 431
    functionName: async_write
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 16
    functionsReached:
    - h
    - push_back
    - set_bit
    - std::move
    - post
    - block_index
    - libtorrent::socks_error::make_error_code
    - validate_block
    - libtorrent::total_milliseconds
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - lt::generic_category
    - libtorrent::storage_error
    - disk_seek
    - check_buffer_level
    - queue_event
    linkageType: ''
    returnType: bool
    signature: "bool async_write(lt::storage_index_t storage, lt::peer_request const&
      r\n\t\t, char const* buf, std::shared_ptr<lt::disk_observer> o\n\t\t, std::function<void(lt::storage_error
      const&)> handler\n\t\t, lt::disk_job_flags_t) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:437,1
    - Dst: disk_seek
      Src: /src/libtorrent/simulation/disk_io.cpp:439,1
    - Dst: lt::span<lt::sha256_hash>::size
      Src: /src/libtorrent/simulation/disk_io.cpp:444,1
    - Dst: queue_event
      Src: /src/libtorrent/simulation/disk_io.cpp:446,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:446,1
    - Dst: piece_size
      Src: /src/libtorrent/simulation/disk_io.cpp:448,1
    - Dst: pads_in_piece
      Src: /src/libtorrent/simulation/disk_io.cpp:449,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/disk_io.cpp:451,1
    - Dst: get_bit
      Src: /src/libtorrent/simulation/disk_io.cpp:454,1
    - Dst: rand_sha256
      Src: /src/libtorrent/simulation/disk_io.cpp:461,1
    - Dst: rand_sha1
      Src: /src/libtorrent/simulation/disk_io.cpp:462,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:465,1
    - Dst: h
      Src: /src/libtorrent/simulation/disk_io.cpp:465,1
    - Dst: lt::span<lt::sha256_hash>::empty
      Src: /src/libtorrent/simulation/disk_io.cpp:470,1
    - Dst: generate_hash1
      Src: /src/libtorrent/simulation/disk_io.cpp:471,1
    - Dst: piece_length
      Src: /src/libtorrent/simulation/disk_io.cpp:471,1
    - Dst: pads_in_piece
      Src: /src/libtorrent/simulation/disk_io.cpp:471,1
    - Dst: generate_hash2
      Src: /src/libtorrent/simulation/disk_io.cpp:473,1
    - Dst: pads_in_piece
      Src: /src/libtorrent/simulation/disk_io.cpp:473,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:474,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:474,1
    - Dst: h
      Src: /src/libtorrent/simulation/disk_io.cpp:474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - storage
    - piece
    - block_hashes
    - handler
    argTypes:
    - lt::storage_index_t
    - lt::piece_index_t
    - lt::span<lt::sha256_hash>
    - std::function<void(lt::piece_index_t, lt::sha1_hash const&, lt::storage_error
      const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 476
    functionName: async_hash
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - h
    - get_bit
    - std::move
    - generate_hash1
    - post
    - generate_hash2
    - TORRENT_ASSERT
    - disk_seek
    - rand_sha256
    - lt::span<lt::sha256_hash>::size
    - pads_in_piece
    - rand_sha1
    - lt::span<lt::sha256_hash>::empty
    - piece_length
    - piece_size
    - queue_event
    linkageType: ''
    returnType: void
    signature: "void async_hash(lt::storage_index_t storage, lt::piece_index_t const
      piece\n\t\t, lt::span<lt::sha256_hash> block_hashes, lt::disk_job_flags_t\n\t\t,
      std::function<void(lt::piece_index_t, lt::sha1_hash const&, lt::storage_error
      const&)> handler) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:482,1
    - Dst: disk_seek
      Src: /src/libtorrent/simulation/disk_io.cpp:484,1
    - Dst: queue_event
      Src: /src/libtorrent/simulation/disk_io.cpp:487,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:487,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/disk_io.cpp:488,1
    - Dst: get_bit
      Src: /src/libtorrent/simulation/disk_io.cpp:491,1
    - Dst: rand_sha256
      Src: /src/libtorrent/simulation/disk_io.cpp:494,1
    - Dst: generate_block_hash
      Src: /src/libtorrent/simulation/disk_io.cpp:498,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:500,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:500,1
    - Dst: h
      Src: /src/libtorrent/simulation/disk_io.cpp:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - storage
    - piece
    - offset
    - handler
    argTypes:
    - lt::storage_index_t
    - lt::piece_index_t
    - int
    - std::function<void(lt::piece_index_t, lt::sha256_hash const&, lt::storage_error
      const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 502
    functionName: async_hash2
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - h
    - get_bit
    - std::move
    - post
    - generate_block_hash
    - TORRENT_ASSERT
    - disk_seek
    - rand_sha256
    - queue_event
    linkageType: ''
    returnType: void
    signature: "void async_hash2(lt::storage_index_t storage, lt::piece_index_t const
      piece\n\t\t, int const offset, lt::disk_job_flags_t\n\t\t, std::function<void(lt::piece_index_t,
      lt::sha256_hash const&, lt::storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:507,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:508,1
    - Dst: handler
      Src: /src/libtorrent/simulation/disk_io.cpp:509,1
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/simulation/disk_io.cpp:510,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/disk_io.cpp:510,1
    - Dst: lt::system_category
      Src: /src/libtorrent/simulation/disk_io.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - handler
    argTypes:
    - std::string
    - std::function<void(lt::status_t, std::string const&, lt::storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 512
    functionName: async_move_storage
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - lt::system_category
    - libtorrent::socks_error::make_error_code
    - TORRENT_ASSERT
    - libtorrent::storage_error
    - handler
    linkageType: ''
    returnType: void
    signature: "void async_move_storage(lt::storage_index_t, std::string p, lt::move_flags_t\n\t\t,
      std::function<void(lt::status_t, std::string const&, lt::storage_error const&)>
      handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:516,1
    - Dst: queue_event
      Src: /src/libtorrent/simulation/disk_io.cpp:517,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/disk_io.cpp:517,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: async_release_files
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::total_microseconds
    - queue_event
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_release_files(lt::storage_index_t, std::function<void()>
      f) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:523,1
    - Dst: queue_event
      Src: /src/libtorrent/simulation/disk_io.cpp:525,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/disk_io.cpp:525,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:525,1
    - Dst: clear_all
      Src: /src/libtorrent/simulation/disk_io.cpp:526,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:527,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:527,1
    - Dst: h
      Src: /src/libtorrent/simulation/disk_io.cpp:527,1
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/simulation/disk_io.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void(lt::storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 529
    functionName: async_delete_files
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - post
    - clear_all
    - TORRENT_ASSERT
    - libtorrent::total_microseconds
    - libtorrent::storage_error
    - queue_event
    linkageType: ''
    returnType: void
    signature: "void async_delete_files(lt::storage_index_t, lt::remove_flags_t\n\t\t,
      std::function<void(lt::storage_error const&)> handler) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:536,1
    - Dst: libtorrent::aux::contains_resume_data
      Src: /src/libtorrent/simulation/disk_io.cpp:544,1
    - Dst: queue_event
      Src: /src/libtorrent/simulation/disk_io.cpp:547,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/disk_io.cpp:547,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:547,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:548,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:548,1
    - Dst: h
      Src: /src/libtorrent/simulation/disk_io.cpp:548,1
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/simulation/disk_io.cpp:548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - p
    - handler
    argTypes:
    - lt::add_torrent_params*
    - std::function<void(lt::status_t, lt::storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 550
    functionName: async_check_files
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 5
    functionsReached:
    - h
    - libtorrent::aux::contains_resume_data
    - std::move
    - post
    - TORRENT_ASSERT
    - libtorrent::total_microseconds
    - libtorrent::storage_error
    - queue_event
    linkageType: ''
    returnType: void
    signature: "void async_check_files(lt::storage_index_t\n\t\t, lt::add_torrent_params
      const* p\n\t\t, lt::aux::vector<std::string, lt::file_index_t>\n\t\t, std::function<void(lt::status_t,
      lt::storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:557,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:558,1
    - Dst: handler
      Src: /src/libtorrent/simulation/disk_io.cpp:558,1
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/simulation/disk_io.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - idx
    - name
    - handler
    argTypes:
    - lt::file_index_t
    - std::string
    - std::function<void(std::string const&, lt::file_index_t, lt::storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: async_rename_file
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - handler
    - libtorrent::storage_error
    - post
    linkageType: ''
    returnType: void
    signature: "void async_rename_file(lt::storage_index_t\n\t\t, lt::file_index_t
      const idx\n\t\t, std::string const name\n\t\t, std::function<void(std::string
      const&, lt::file_index_t, lt::storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:563,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 565
    functionName: async_stop_torrent
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - post
    linkageType: ''
    returnType: void
    signature: void async_stop_torrent(lt::storage_index_t, std::function<void()>
      handler) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:572,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:573,1
    - Dst: handler
      Src: /src/libtorrent/simulation/disk_io.cpp:574,1
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/simulation/disk_io.cpp:574,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/disk_io.cpp:574,1
    - Dst: lt::system_category
      Src: /src/libtorrent/simulation/disk_io.cpp:575,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - prio
    - handler
    argTypes:
    - lt::aux::vector<lt::download_priority_t, lt::file_index_t>
    - "std::function<void(lt::storage_error const&\n\t\t\t, lt::aux::vector<lt::download_priority_t,
      lt::file_index_t>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 577
    functionName: async_set_file_priority
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - post
    - lt::system_category
    - libtorrent::socks_error::make_error_code
    - TORRENT_ASSERT
    - libtorrent::storage_error
    - handler
    linkageType: ''
    returnType: void
    signature: "void async_set_file_priority(lt::storage_index_t\n\t\t, lt::aux::vector<lt::download_priority_t,
      lt::file_index_t> prio\n\t\t, std::function<void(lt::storage_error const&\n\t\t\t,
      lt::aux::vector<lt::download_priority_t, lt::file_index_t>)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:582,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:583,1
    - Dst: handler
      Src: /src/libtorrent/simulation/disk_io.cpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - index
    - handler
    argTypes:
    - lt::piece_index_t
    - std::function<void(lt::piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: async_clear_piece
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - handler
    - post
    linkageType: ''
    returnType: void
    signature: "void async_clear_piece(lt::storage_index_t, lt::piece_index_t index\n\t\t,
      std::function<void(lt::piece_index_t)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: free_disk_buffer
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_disk_buffer(char* buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: update_stats_counters
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_stats_counters(lt::counters&) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 595
    functionName: get_status
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<lt::open_file_state>
    signature: std::vector<lt::open_file_state> get_status(lt::storage_index_t) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 597
    functionName: submit_jobs
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void submit_jobs() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::int64_t
      Src: /src/libtorrent/simulation/disk_io.cpp:603,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/disk_io.cpp:603,1
    - Dst: piece_length
      Src: /src/libtorrent/simulation/disk_io.cpp:603,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/disk_io.cpp:604,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/disk_io.cpp:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - piece
    - start
    argTypes:
    - lt::piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: disk_seek
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - std::exchange
    - libtorrent::total_milliseconds
    - std::int64_t
    - piece_length
    linkageType: ''
    returnType: lt::time_duration
    signature: lt::time_duration disk_seek(lt::piece_index_t const piece, int start,
      int const size = lt::default_block_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/disk_io.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - lt::peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 611
    functionName: block_index
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int block_index(lt::peer_request const& r) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_block_fill
      Src: /src/libtorrent/simulation/disk_io.cpp:615,1
    - Dst: piece_size
      Src: /src/libtorrent/simulation/disk_io.cpp:616,1
    - Dst: pads_in_piece
      Src: /src/libtorrent/simulation/disk_io.cpp:617,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/disk_io.cpp:621,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/disk_io.cpp:621,1
    - Dst: std::memcmp
      Src: /src/libtorrent/simulation/disk_io.cpp:622,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/disk_io.cpp:622,1
    - Dst: all_of
      Src: /src/libtorrent/simulation/disk_io.cpp:630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ' fs'
    - b
    - ' r'
    argTypes:
    - lt::file_storage
    - char*
    - lt::peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 633
    functionName: validate_block
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 1
    functionsReached:
    - std::memcmp
    - std::min
    - auto::size
    - pads_in_piece
    - generate_block_fill
    - all_of
    - piece_size
    - auto::data
    linkageType: ''
    returnType: bool
    signature: bool validate_block(lt::file_storage const& fs, char const* b, lt::peer_request
      const& r) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/simulation/disk_io.cpp:637,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/disk_io.cpp:637,1
    - Dst: empty
      Src: /src/libtorrent/simulation/disk_io.cpp:638,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/disk_io.cpp:640,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/disk_io.cpp:640,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:640,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/disk_io.cpp:641,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/disk_io.cpp:643,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/disk_io.cpp:643,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/disk_io.cpp:647,1
    - Dst: back
      Src: /src/libtorrent/simulation/disk_io.cpp:647,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dt
    - f
    argTypes:
    - lt::time_duration
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 649
    functionName: queue_event
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 7
    functionsReached:
    - push_back
    - time_now
    - std::bind
    - async_wait
    - std::move
    - empty
    - libtorrent::total_milliseconds
    - expires_after
    - TORRENT_ASSERT
    - back
    linkageType: ''
    returnType: void
    signature: void queue_event(lt::time_duration dt, std::function<void()> f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/disk_io.cpp:653,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:657,1
    - Dst: front
      Src: /src/libtorrent/simulation/disk_io.cpp:657,1
    - Dst: pop_front
      Src: /src/libtorrent/simulation/disk_io.cpp:658,1
    - Dst: f
      Src: /src/libtorrent/simulation/disk_io.cpp:659,1
    - Dst: empty
      Src: /src/libtorrent/simulation/disk_io.cpp:662,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/disk_io.cpp:665,1
    - Dst: front
      Src: /src/libtorrent/simulation/disk_io.cpp:665,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/disk_io.cpp:667,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/disk_io.cpp:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 668
    functionName: on_timer
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - empty
    - f
    - front
    - expires_at
    - pop_front
    linkageType: ''
    returnType: void
    signature: void on_timer(lt::error_code const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/disk_io.cpp:677,1
    - Dst: post
      Src: /src/libtorrent/simulation/disk_io.cpp:678,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/disk_io.cpp:678,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/disk_io.cpp:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 679
    functionName: check_buffer_level
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 1
    functionsReached:
    - post
    - std::bind
    - swap
    - std::move
    linkageType: ''
    returnType: void
    signature: void check_buffer_level()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<test_disk_io>
      Src: /src/libtorrent/simulation/disk_io.cpp:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - lt::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 716
    functionName: "test_disk::operator()(\n\tlt::io_context& ioc, lt::settings_interface
      const&, lt::counters&)"
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<test_disk_io>
    linkageType: ''
    returnType: std::unique_ptr<lt::disk_interface>
    signature: "std::unique_ptr<lt::disk_interface> test_disk::operator()(\n\tlt::io_context&
      ioc, lt::settings_interface const&, lt::counters&)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' os'
    - mode
    argTypes:
    - std::ostream
    - existing_files_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 729
    functionName: '& operator<<(std::ostream& os, existing_files_mode const mode)'
    functionSourceFile: /src/libtorrent/simulation/disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, existing_files_mode const
      mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: router_nodes
      Src: /src/libtorrent/simulation/test_dht.cpp:62,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/simulation/test_dht.cpp:63,1
    - Dst: auto::front
      Src: /src/libtorrent/simulation/test_dht.cpp:63,1
    - Dst: set_dht_state
      Src: /src/libtorrent/simulation/test_dht.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_dht.cpp:69,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_dht.cpp:71,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/simulation/test_dht.cpp:72,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_dht.cpp:73,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_dht.cpp:74,1
    - Dst: apply_settings
      Src: /src/libtorrent/simulation/test_dht.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - networks
    - ' ses'
    argTypes:
    - std::vector<dht_network*>
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: bootstrap_session
    functionSourceFile: /src/libtorrent/simulation/test_dht.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - std::move
    - libtorrent::aux::is_v6
    - settings_pack::set_int
    - set_dht_state
    - auto::front
    - router_nodes
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void bootstrap_session(std::vector<dht_network*> networks, lt::session&
      ses)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_dht.cpp:90,1
    - Dst: lt::alert_cast<lt::dht_stats_alert>
      Src: /src/libtorrent/simulation/test_dht.cpp:98,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/test_dht.cpp:100,1
    - Dst: lt::dht_stats_alert*::routing_table::size
      Src: /src/libtorrent/simulation/test_dht.cpp:100,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/test_dht.cpp:107,1
    - Dst: print_routing_table
      Src: /src/libtorrent/simulation/test_dht.cpp:108,1
    - Dst: lt::alert_cast<lt::session_stats_alert>
      Src: /src/libtorrent/simulation/test_dht.cpp:110,1
    - Dst: libtorrent::find_metric_idx
      Src: /src/libtorrent/simulation/test_dht.cpp:112,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:113,1
    - Dst: lt::session_stats_alert*::counters
      Src: /src/libtorrent/simulation/test_dht.cpp:113,1
    - Dst: bootstrap_session
      Src: /src/libtorrent/simulation/test_dht.cpp:121,1
    - Dst: post_session_stats
      Src: /src/libtorrent/simulation/test_dht.cpp:125,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_dht.cpp:126,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:127,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:128,1
    - Dst: dht_network::stop
      Src: /src/libtorrent/simulation/test_dht.cpp:129,1
    - Dst: post_dht_stats
      Src: /src/libtorrent/simulation/test_dht.cpp:132,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_dht.cpp:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 140
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht.cpp
    functionUses: 0
    functionsReached:
    - lt::alert_cast<lt::session_stats_alert>
    - libtorrent::find_metric_idx
    - lt::session_stats_alert*::counters
    - bootstrap_session
    - setup_swarm
    - print_routing_table
    - std::printf
    - post_session_stats
    - dht_network::stop
    - sim::simulation::run
    - std::max
    - post_dht_stats
    - lt::alert_cast<lt::dht_stats_alert>
    - lt::dht_stats_alert*::routing_table::size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_bootstrap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_dht.cpp:154,1
    - Dst: lt::alert_cast<lt::dht_get_peers_reply_alert>
      Src: /src/libtorrent/simulation/test_dht.cpp:163,1
    - Dst: lt::dht_get_peers_reply_alert*::peers
      Src: /src/libtorrent/simulation/test_dht.cpp:165,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/simulation/test_dht.cpp:169,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/simulation/test_dht.cpp:170,1
    - Dst: bootstrap_session
      Src: /src/libtorrent/simulation/test_dht.cpp:179,1
    - Dst: dht_announce
      Src: /src/libtorrent/simulation/test_dht.cpp:183,1
    - Dst: dht_get_peers
      Src: /src/libtorrent/simulation/test_dht.cpp:187,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:191,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:192,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_dht.cpp:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 201
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht.cpp
    functionUses: 0
    functionsReached:
    - dht_get_peers
    - bootstrap_session
    - setup_swarm
    - libtorrent::aux::is_v6
    - libtorrent::aux::is_v4
    - dht_announce
    - lt::dht_get_peers_reply_alert*::peers
    - sim::simulation::run
    - lt::alert_cast<lt::dht_get_peers_reply_alert>
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_dual_stack_get_peers)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_dht.cpp:215,1
    - Dst: lt::alert_cast<lt::dht_immutable_item_alert>
      Src: /src/libtorrent/simulation/test_dht.cpp:224,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:227,1
    - Dst: lt::dht_immutable_item_alert*::item::string
      Src: /src/libtorrent/simulation/test_dht.cpp:228,1
    - Dst: bootstrap_session
      Src: /src/libtorrent/simulation/test_dht.cpp:236,1
    - Dst: dht_put_item
      Src: /src/libtorrent/simulation/test_dht.cpp:240,1
    - Dst: libtorrent::socket_entry
      Src: /src/libtorrent/simulation/test_dht.cpp:240,1
    - Dst: dht_get_item
      Src: /src/libtorrent/simulation/test_dht.cpp:244,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:248,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_dht.cpp:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 257
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::socket_entry
    - lt::alert_cast<lt::dht_immutable_item_alert>
    - bootstrap_session
    - setup_swarm
    - dht_put_item
    - lt::dht_immutable_item_alert*::item::string
    - sim::simulation::run
    - dht_get_item
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_dual_stack_immutable_item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: setup_swarm
      Src: /src/libtorrent/simulation/test_dht.cpp:273,1
    - Dst: lt::alert_cast<lt::dht_mutable_item_alert>
      Src: /src/libtorrent/simulation/test_dht.cpp:282,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:284,1
    - Dst: lt::dht_mutable_item_alert*::item::string
      Src: /src/libtorrent/simulation/test_dht.cpp:286,1
    - Dst: bootstrap_session
      Src: /src/libtorrent/simulation/test_dht.cpp:294,1
    - Dst: std::tie
      Src: /src/libtorrent/simulation/test_dht.cpp:299,1
    - Dst: libtorrent::dht::ed25519_create_keypair
      Src: /src/libtorrent/simulation/test_dht.cpp:299,1
    - Dst: dht_put_item
      Src: /src/libtorrent/simulation/test_dht.cpp:301,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/simulation/test_dht.cpp:307,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/test_dht.cpp:307,1
    - Dst: libtorrent::dht::sign_mutable_item
      Src: /src/libtorrent/simulation/test_dht.cpp:308,1
    - Dst: libtorrent::dht::sequence_number
      Src: /src/libtorrent/simulation/test_dht.cpp:309,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht.cpp:317,1
    - Dst: dht_get_item
      Src: /src/libtorrent/simulation/test_dht.cpp:318,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht.cpp:322,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_dht.cpp:328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 331
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::sequence_number
    - TEST_EQUAL
    - bootstrap_session
    - setup_swarm
    - libtorrent::dht::ed25519_create_keypair
    - std::tie
    - dht_put_item
    - libtorrent::bencode
    - lt::alert_cast<lt::dht_mutable_item_alert>
    - lt::dht_mutable_item_alert*::item::string
    - sim::simulation::run
    - libtorrent::dht::sign_mutable_item
    - std::back_inserter
    - dht_get_item
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_dual_stack_mutable_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::session_settings::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:69,1
    - Dst: lt::aux::session_settings::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:70,1
    - Dst: lt::aux::session_settings::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: test_settings
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 40
    functionsReached:
    - lt::aux::session_settings::set_int
    linkageType: ''
    returnType: lt::aux::session_settings
    signature: lt::aux::session_settings test_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:79,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:79,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:81,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: create_default_dht_storage
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - to_hash
    - std::unique_ptr::get
    - TEST_CHECK
    - std::unique_ptr::update_node_ids
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> create_default_dht_storage(\n\t\tsettings_interface
      const& sett)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::aux::session_settings::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:69,1
    - Dst: lt::aux::session_settings::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:70,1
    - Dst: lt::aux::session_settings::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: test_settings
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 40
    functionsReached:
    - lt::aux::session_settings::set_int
    linkageType: ''
    returnType: lt::aux::session_settings
    signature: lt::aux::session_settings test_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:79,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:79,1
    - Dst: std::unique_ptr::update_node_ids
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:81,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: create_default_dht_storage
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - to_hash
    - std::unique_ptr::get
    - TEST_CHECK
    - std::unique_ptr::update_node_ids
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> create_default_dht_storage(\n\t\tsettings_interface
      const& sett)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_storage_interface*::tick
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:91,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:93,1
    - Dst: dht_storage_interface*::counters
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:93,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:94,1
    - Dst: dht_storage_interface*::counters
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:94,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:95,1
    - Dst: dht_storage_interface*::counters
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:95,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:96,1
    - Dst: dht_storage_interface*::counters
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - ' c'
    argTypes:
    - dht_storage_interface*
    - dht_storage_counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: timer_tick
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - dht_storage_interface*::tick
    - dht_storage_interface*::counters
    linkageType: ''
    returnType: void
    signature: "void timer_tick(dht_storage_interface* s\n\t, dht_storage_counters
      const& c\n\t, boost::system::error_code const&)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:104,1
    - Dst: sim::asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:107,1
    - Dst: sim::asio::high_resolution_timer::async_wait
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:108,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:108,1
    - Dst: get
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:108,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' sim'
    - ' expiry_time'
    - ' s'
    - ' c'
    argTypes:
    - simulation
    - high_resolution_clock::duration
    - std::unique_ptr<dht_storage_interface>
    - dht_storage_counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: test_expiration
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - run
    - sim::asio::high_resolution_timer::async_wait
    - addr
    - get
    - sim::asio::high_resolution_timer::expires_after
    linkageType: ''
    returnType: void
    signature: "void test_expiration(simulation& sim\n\t, high_resolution_clock::duration
      const& expiry_time\n\t, std::unique_ptr<dht_storage_interface>& s\n\t, dht_storage_counters
      const& c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:115,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:118,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:118,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:120,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:121,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:122,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:123,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:125,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:126,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:127,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:128,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:130,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:131,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:132,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:133,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:135,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:135,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:136,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:136,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:137,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:137,1
    - Dst: std::unique_ptr::put_immutable_item
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:138,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:138,1
    - Dst: std::unique_ptr::put_mutable_item
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:142,1
    - Dst: sequence_number
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:142,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:143,1
    - Dst: test_expiration
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:155,1
    - Dst: minutes
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:155,1
    - Dst: test_expiration
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:161,1
    - Dst: minutes
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:161,1
    - Dst: test_expiration
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:167,1
    - Dst: hours
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 168
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr
    - std::unique_ptr::put_immutable_item
    - to_hash
    - test_expiration
    - ep
    - std::unique_ptr::put_mutable_item
    - std::unique_ptr::get
    - sequence_number
    - test_settings
    - std::unique_ptr::announce_peer
    - minutes
    - TEST_CHECK
    - hours
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_storage_counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:174,1
    - Dst: test_settings
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:176,1
    - Dst: auto::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:177,1
    - Dst: auto::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:178,1
    - Dst: auto::set_int
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:179,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:182,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:182,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:184,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:185,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:186,1
    - Dst: to_hash
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:187,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:189,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:190,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:191,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:192,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:194,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:195,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:196,1
    - Dst: std::unique_ptr::announce_peer
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:197,1
    - Dst: std::unique_ptr::get_infohashes_sample
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:200,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:201,1
    - Dst: sim::asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:204,1
    - Dst: hours
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:204,1
    - Dst: sim::asio::high_resolution_timer::async_wait
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:205,1
    - Dst: std::unique_ptr::tick
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:208,1
    - Dst: std::unique_ptr::get_infohashes_sample
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:211,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:212,1
    - Dst: simulation::run
      Src: /src/libtorrent/simulation/test_dht_storage.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 216
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr
    - TEST_EQUAL
    - simulation::run
    - to_hash
    - std::unique_ptr::get_infohashes_sample
    - ep
    - std::unique_ptr::tick
    - sim::asio::high_resolution_timer::async_wait
    - std::unique_ptr::get
    - test_settings
    - std::unique_ptr::announce_peer
    - auto::set_int
    - sim::asio::high_resolution_timer::expires_after
    - TEST_CHECK
    - hours
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(dht_storage_infohashes_sample)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(disabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_v2.cpp:54,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_v2.cpp:55,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_v2.cpp:61,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_v2.cpp:62,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_v2.cpp:75,1
    - Dst: set_str
      Src: /src/libtorrent/simulation/test_v2.cpp:77,1
    - Dst: make_ep_string
      Src: /src/libtorrent/simulation/test_v2.cpp:77,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_v2.cpp:85,1
    - Dst: set_str
      Src: /src/libtorrent/simulation/test_v2.cpp:87,1
    - Dst: make_ep_string
      Src: /src/libtorrent/simulation/test_v2.cpp:87,1
    - Dst: set_files
      Src: /src/libtorrent/simulation/test_v2.cpp:89,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_v2.cpp:90,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_v2.cpp:92,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_v2.cpp:95,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:96,1
    - Dst: auto::handle::connect_peer
      Src: /src/libtorrent/simulation/test_v2.cpp:97,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_v2.cpp:97,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/test_v2.cpp:98,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_v2.cpp:101,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_v2.cpp:104,1
    - Dst: abort
      Src: /src/libtorrent/simulation/test_v2.cpp:110,1
    - Dst: reset
      Src: /src/libtorrent/simulation/test_v2.cpp:111,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_v2.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - setup
    - on_alert
    argTypes:
    - Setup
    - HandleAlerts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 116
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_v2.cpp
    functionUses: 89
    functionsReached:
    - reset
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - test_disk
    - std::make_shared<lt::session>
    - setup
    - sim::simulation::run
    - set_files
    - local_endpoint
    - settings
    - addr
    - lt::alert_cast<lt::add_torrent_alert>
    - make_ep_string
    - auto::handle::connect_peer
    - abort
    - on_alert
    - set_str
    linkageType: ''
    returnType: void
    signature: "void run_test(\n\tSetup setup\n\t, HandleAlerts on_alert\n\t, test_disk
      const downloader_disk_constructor = test_disk()\n\t, test_disk const seed_disk_constructor
      = test_disk()\n\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:120,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:125,1
    - Dst: lt::add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/simulation/test_v2.cpp:127,1
    - Dst: lt::add_torrent_params::ti::reset
      Src: /src/libtorrent/simulation/test_v2.cpp:130,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:132,1
    - Dst: lt::add_torrent_params::info_hashes::v1::clear
      Src: /src/libtorrent/simulation/test_v2.cpp:135,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' seed'
    - ' downloader'
    argTypes:
    - lt::session
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: setup_conflict
    functionSourceFile: /src/libtorrent/simulation/test_v2.cpp
    functionUses: 0
    functionsReached:
    - create_test_torrent
    - lt::add_torrent_params::ti::reset
    - async_add_torrent
    - lt::add_torrent_params::ti::info_hashes
    - lt::add_torrent_params::info_hashes::v1::clear
    linkageType: ''
    returnType: lt::info_hash_t
    signature: lt::info_hash_t setup_conflict(lt::session& seed, lt::session& downloader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_v2.cpp:54,1
    - Dst: test_disk
      Src: /src/libtorrent/simulation/test_v2.cpp:55,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_v2.cpp:61,1
    - Dst: addr
      Src: /src/libtorrent/simulation/test_v2.cpp:62,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_v2.cpp:75,1
    - Dst: set_str
      Src: /src/libtorrent/simulation/test_v2.cpp:77,1
    - Dst: make_ep_string
      Src: /src/libtorrent/simulation/test_v2.cpp:77,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_v2.cpp:85,1
    - Dst: set_str
      Src: /src/libtorrent/simulation/test_v2.cpp:87,1
    - Dst: make_ep_string
      Src: /src/libtorrent/simulation/test_v2.cpp:87,1
    - Dst: set_files
      Src: /src/libtorrent/simulation/test_v2.cpp:89,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_v2.cpp:90,1
    - Dst: setup
      Src: /src/libtorrent/simulation/test_v2.cpp:92,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_v2.cpp:95,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:96,1
    - Dst: auto::handle::connect_peer
      Src: /src/libtorrent/simulation/test_v2.cpp:97,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_v2.cpp:97,1
    - Dst: on_alert
      Src: /src/libtorrent/simulation/test_v2.cpp:98,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_v2.cpp:101,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_v2.cpp:104,1
    - Dst: abort
      Src: /src/libtorrent/simulation/test_v2.cpp:110,1
    - Dst: reset
      Src: /src/libtorrent/simulation/test_v2.cpp:111,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_v2.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - setup
    - on_alert
    argTypes:
    - Setup
    - HandleAlerts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 116
    functionName: run_test
    functionSourceFile: /src/libtorrent/simulation/test_v2.cpp
    functionUses: 89
    functionsReached:
    - reset
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - test_disk
    - std::make_shared<lt::session>
    - setup
    - sim::simulation::run
    - set_files
    - local_endpoint
    - settings
    - addr
    - lt::alert_cast<lt::add_torrent_alert>
    - make_ep_string
    - auto::handle::connect_peer
    - abort
    - on_alert
    - set_str
    linkageType: ''
    returnType: void
    signature: "void run_test(\n\tSetup setup\n\t, HandleAlerts on_alert\n\t, test_disk
      const downloader_disk_constructor = test_disk()\n\t, test_disk const seed_disk_constructor
      = test_disk()\n\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:120,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:125,1
    - Dst: lt::add_torrent_params::ti::info_hashes
      Src: /src/libtorrent/simulation/test_v2.cpp:127,1
    - Dst: lt::add_torrent_params::ti::reset
      Src: /src/libtorrent/simulation/test_v2.cpp:130,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:132,1
    - Dst: lt::add_torrent_params::info_hashes::v1::clear
      Src: /src/libtorrent/simulation/test_v2.cpp:135,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' seed'
    - ' downloader'
    argTypes:
    - lt::session
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: setup_conflict
    functionSourceFile: /src/libtorrent/simulation/test_v2.cpp
    functionUses: 0
    functionsReached:
    - create_test_torrent
    - lt::add_torrent_params::ti::reset
    - async_add_torrent
    - lt::add_torrent_params::ti::info_hashes
    - lt::add_torrent_params::info_hashes::v1::clear
    linkageType: ''
    returnType: lt::info_hash_t
    signature: lt::info_hash_t setup_conflict(lt::session& seed, lt::session& downloader)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_v2.cpp:153,1
    - Dst: setup_conflict
      Src: /src/libtorrent/simulation/test_v2.cpp:154,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:157,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_v2.cpp:159,1
    - Dst: lt::alert_cast<lt::torrent_removed_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:161,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_v2.cpp:163,1
    - Dst: lt::alert_cast<lt::torrent_error_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:165,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:169,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/test_v2.cpp:169,1
    - Dst: lt::alert_cast<lt::torrent_conflict_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:171,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:174,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/test_v2.cpp:174,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/test_v2.cpp:174,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/test_v2.cpp:174,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:175,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/test_v2.cpp:175,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/test_v2.cpp:175,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/test_v2.cpp:175,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_v2.cpp:176,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_v2.cpp:178,1
    - Dst: auto*::metadata::info_hashes
      Src: /src/libtorrent/simulation/test_v2.cpp:178,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_v2.cpp:182,1
    - Dst: is_valid
      Src: /src/libtorrent/simulation/test_v2.cpp:182,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_v2.cpp:184,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_v2.cpp:185,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:187,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/test_v2.cpp:187,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:192,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 194
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_v2.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - std::vector::begin
    - is_valid
    - lt::alert_cast<lt::add_torrent_alert>
    - std::vector::end
    - get_torrents
    - lt::alert_cast<lt::torrent_removed_alert>
    - run_test
    - TEST_ERROR
    - TEST_EQUAL
    - std::count
    - auto::size
    - TEST_CHECK
    - std::vector::push_back
    - lt::alert_cast<lt::torrent_error_alert>
    - setup_conflict
    - libtorrent::socks_error::make_error_code
    - auto*::metadata::info_hashes
    - lt::alert_cast<lt::torrent_conflict_alert>
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(hybrid_torrent_conflict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_v2.cpp:205,1
    - Dst: setup_conflict
      Src: /src/libtorrent/simulation/test_v2.cpp:206,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:209,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_v2.cpp:211,1
    - Dst: lt::alert_cast<lt::torrent_removed_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:213,1
    - Dst: TEST_ERROR
      Src: /src/libtorrent/simulation/test_v2.cpp:215,1
    - Dst: lt::alert_cast<lt::torrent_error_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:217,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:221,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/test_v2.cpp:221,1
    - Dst: auto*::handle::clear_error
      Src: /src/libtorrent/simulation/test_v2.cpp:224,1
    - Dst: auto*::handle::resume
      Src: /src/libtorrent/simulation/test_v2.cpp:225,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_v2.cpp:230,1
    - Dst: is_valid
      Src: /src/libtorrent/simulation/test_v2.cpp:230,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_v2.cpp:232,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_v2.cpp:233,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:235,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/test_v2.cpp:235,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:240,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 242
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_v2.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto*::handle::resume
    - std::vector::size
    - std::vector::push_back
    - lt::alert_cast<lt::torrent_error_alert>
    - setup_conflict
    - get_torrents
    - libtorrent::socks_error::make_error_code
    - is_valid
    - auto::size
    - lt::alert_cast<lt::torrent_removed_alert>
    - auto*::handle::clear_error
    - lt::alert_cast<lt::add_torrent_alert>
    - run_test
    - TEST_CHECK
    - TEST_ERROR
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resume_conflict)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_v2.cpp:250,1
    - Dst: setup_conflict
      Src: /src/libtorrent/simulation/test_v2.cpp:251,1
    - Dst: lt::alert_cast<lt::torrent_removed_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:254,1
    - Dst: lt::alert_cast<lt::torrent_error_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:258,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/test_v2.cpp:262,1
    - Dst: remove_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:265,1
    - Dst: auto*::handle::clear_error
      Src: /src/libtorrent/simulation/test_v2.cpp:269,1
    - Dst: auto*::handle::resume
      Src: /src/libtorrent/simulation/test_v2.cpp:270,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:273,1
    - Dst: get_torrents
      Src: /src/libtorrent/simulation/test_v2.cpp:280,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:281,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/test_v2.cpp:281,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:285,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:286,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 288
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_v2.cpp
    functionUses: 0
    functionsReached:
    - TEST_EQUAL
    - auto*::handle::resume
    - lt::alert_cast<lt::torrent_finished_alert>
    - lt::alert_cast<lt::torrent_error_alert>
    - setup_conflict
    - get_torrents
    - libtorrent::socks_error::make_error_code
    - auto::size
    - lt::alert_cast<lt::torrent_removed_alert>
    - auto*::handle::clear_error
    - run_test
    - remove_torrent
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(resolve_conflict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: run_test
      Src: /src/libtorrent/simulation/test_v2.cpp:298,1
    - Dst: setup_conflict
      Src: /src/libtorrent/simulation/test_v2.cpp:299,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:302,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/test_v2.cpp:304,1
    - Dst: lt::alert_cast<lt::torrent_removed_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:306,1
    - Dst: lt::alert_cast<lt::torrent_error_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:310,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:314,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/test_v2.cpp:314,1
    - Dst: lt::alert_cast<lt::torrent_finished_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:316,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:319,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_v2.cpp:319,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_v2.cpp:320,1
    - Dst: lt::alert_cast<lt::torrent_conflict_alert>
      Src: /src/libtorrent/simulation/test_v2.cpp:322,1
    - Dst: remove_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:325,1
    - Dst: remove_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:326,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/test_v2.cpp:327,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_v2.cpp:330,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/simulation/test_v2.cpp:332,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/test_v2.cpp:332,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_v2.cpp:336,1
    - Dst: is_valid
      Src: /src/libtorrent/simulation/test_v2.cpp:336,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:339,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:340,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:341,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_v2.cpp:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 343
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_v2.cpp
    functionUses: 0
    functionsReached:
    - remove_torrent
    - TEST_EQUAL
    - std::vector::size
    - std::vector::push_back
    - lt::alert_cast<lt::torrent_finished_alert>
    - std::move
    - async_add_torrent
    - lt::alert_cast<lt::torrent_error_alert>
    - setup_conflict
    - std::vector::clear
    - libtorrent::socks_error::make_error_code
    - is_valid
    - lt::alert_cast<lt::torrent_removed_alert>
    - lt::alert_cast<lt::add_torrent_alert>
    - lt::alert_cast<lt::torrent_conflict_alert>
    - run_test
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(conflict_readd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit_test::test_counter
      Src: /src/libtorrent/simulation/create_torrent.cpp:43,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/create_torrent.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: save_path
    functionSourceFile: /src/libtorrent/simulation/create_torrent.cpp
    functionUses: 6
    functionsReached:
    - unit_test::test_counter
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string save_path(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unit_test::test_counter
      Src: /src/libtorrent/simulation/create_torrent.cpp:56,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/create_torrent.cpp:58,1
    - Dst: save_path
      Src: /src/libtorrent/simulation/create_torrent.cpp:59,1
    - Dst: libtorrent::create_directory
      Src: /src/libtorrent/simulation/create_torrent.cpp:61,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/create_torrent.cpp:62,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/create_torrent.cpp:63,1
    - Dst: lt::error_code::message
      Src: /src/libtorrent/simulation/create_torrent.cpp:63,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/simulation/create_torrent.cpp:64,1
    - Dst: libtorrent::create_torrent::create_torrent
      Src: /src/libtorrent/simulation/create_torrent.cpp:65,1
    - Dst: std::ofstream::close
      Src: /src/libtorrent/simulation/create_torrent.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - idx
    - seed
    - num_pieces
    - flags
    argTypes:
    - int
    - bool
    - int
    - lt::create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: create_torrent
    functionSourceFile: /src/libtorrent/simulation/create_torrent.cpp
    functionUses: 89
    functionsReached:
    - unit_test::test_counter
    - libtorrent::create_torrent::create_torrent
    - lt::error_code::message
    - libtorrent::create_directory
    - save_path
    - std::snprintf
    - std::string::c_str
    - libtorrent::combine_path
    - std::ofstream::close
    - std::printf
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: "lt::add_torrent_params create_torrent(int const idx, bool const seed\n\t,
      int const num_pieces, lt::create_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:58,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:62,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:63,1
    - Dst: sett
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:64,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:66,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:72,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:77,1
    - Dst: alert
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:78,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:81,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:85,1
    - Dst: fake_peer::close
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:87,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:89,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - params
    - ' sett'
    - ' alert'
    argTypes:
    - lt::add_torrent_params
    - Sett
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 93
    functionName: run_fake_peer_test
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::async_add_torrent
    - print_alerts
    - fake_peer::close
    - Catch::Timer::getElapsedNanoseconds
    - sett
    - alert
    - lt::settings_pack::set_str
    - std::make_shared<lt::session>
    - sim::simulation::run
    - settings
    - std::shared_ptr::reset
    - std::shared_ptr::abort
    - lt::make_address_v4
    linkageType: ''
    returnType: void
    signature: "void run_fake_peer_test(\n\tlt::add_torrent_params params\n\t, Sett
      const& sett\n\t, Alert const& alert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lt::make_address
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:98,1
    - Dst: open
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:101,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:101,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:102,1
    - Dst: bind
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:103,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:103,1
    - Dst: asio::ip::address_v4::any
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:103,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:104,1
    - Dst: listen
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:105,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:106,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:108,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:116,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:116,1
    - Dst: memcmp
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:119,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:121,1
    - Dst: close
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:122,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:127,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:128,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - ' sim'
    - ip
    argTypes:
    - simulation
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 132
    functionName: idle_peer
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - listen
    - async_accept
    - async_write
    - open
    - memcmp
    - asio::ip::address_v4::any
    - lt::make_address
    - async_read
    - both_sides_from_store_buffer
    - local_endpoint
    - close
    - libtorrent::aux::random_bytes
    - bind
    - std::printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void idle_peer(simulation& sim, char const* ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: enable_handshake
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enable_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:138,1
    - Dst: close
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: close
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 84
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: accepted
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepted() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lt::make_address_v4
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:155,1
    - Dst: settings
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:159,1
    - Dst: lt::settings_pack::set_str
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:160,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:161,1
    - Dst: lt::settings_pack::set_bool
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:162,1
    - Dst: lt::settings_pack::set_int
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:163,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:168,1
    - Dst: create_torrent
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:171,1
    - Dst: std::shared_ptr::async_add_torrent
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:174,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:177,1
    - Dst: print_alerts
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:182,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:184,1
    - Dst: lt::torrent_handle::connect_peer
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:187,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:187,1
    - Dst: lt::alert_cast<lt::peer_disconnected_alert>
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:189,1
    - Dst: auto::timestamp
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:192,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:197,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:201,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:202,1
    - Dst: run
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:205,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' sim'
    argTypes:
    - sim::simulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 209
    functionName: run_timeout_sim
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::async_add_torrent
    - create_torrent
    - lt::settings_pack::set_bool
    - lt::settings_pack::set_str
    - lt::alert_cast<lt::add_torrent_alert>
    - std::shared_ptr::abort
    - print_alerts
    - Catch::Timer::getElapsedNanoseconds
    - time_now
    - run
    - std::make_shared<lt::session>
    - lt::torrent_handle::connect_peer
    - lt::alert_cast<lt::peer_disconnected_alert>
    - TEST_CHECK
    - auto::timestamp
    - lt::settings_pack::set_int
    - ep
    - settings
    - std::shared_ptr::reset
    - lt::make_address_v4
    linkageType: ''
    returnType: lt::time_duration
    signature: lt::time_duration run_timeout_sim(sim::simulation& sim)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_torrent
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:219,1
    - Dst: run_fake_peer_test
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:227,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:228,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:232,1
    - Dst: connect_to
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:235,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:235,1
    - Dst: lt::torrent_handle::torrent_file
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:236,1
    - Dst: send_bitfield
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:237,1
    - Dst: send_interested
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:238,1
    - Dst: lt::alert_cast<lt::peer_log_alert>
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:240,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:244,1
    - Dst: auto::log_message
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:244,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:246,1
    - Dst: std::set::count
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:246,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:250,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:251,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:254,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:255,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:258,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:264,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:270,1
    - Dst: std::set::size
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 271
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 0
    functionsReached:
    - lt::torrent_handle::torrent_file
    - TEST_EQUAL
    - TEST_CHECK
    - std::vector::size
    - create_torrent
    - lt::alert_cast<lt::peer_log_alert>
    - atoi
    - ep
    - run_fake_peer_test
    - auto::log_message
    - connect_to
    - std::set::count
    - std::set::size
    - lt::alert_cast<lt::add_torrent_alert>
    - set_int
    - std::set::insert
    - send_interested
    - send_bitfield
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(allow_fast)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_torrent
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:288,1
    - Dst: run_fake_peer_test
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:290,1
    - Dst: set_int
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:291,1
    - Dst: lt::alert_cast<lt::add_torrent_alert>
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:295,1
    - Dst: connect_to
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:298,1
    - Dst: ep
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:298,1
    - Dst: lt::torrent_handle::torrent_file
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:299,1
    - Dst: send_interested
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:300,1
    - Dst: lt::alert_cast<lt::peer_log_alert>
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:302,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:306,1
    - Dst: auto::log_message
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:306,1
    - Dst: TEST_EQUAL
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:309,1
    - Dst: std::set::count
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:309,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:313,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:316,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:317,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:321,1
    - Dst: std::set::size
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:322,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:323,1
    - Dst: std::set::size
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 324
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 0
    functionsReached:
    - lt::torrent_handle::torrent_file
    - TEST_EQUAL
    - create_torrent
    - std::printf
    - lt::alert_cast<lt::peer_log_alert>
    - atoi
    - ep
    - run_fake_peer_test
    - auto::log_message
    - connect_to
    - std::set::count
    - std::set::size
    - lt::alert_cast<lt::add_torrent_alert>
    - set_int
    - std::set::insert
    - send_interested
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(allow_fast_stress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: idle_peer::enable_handshake
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:336,1
    - Dst: run_timeout_sim
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:338,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:342,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:342,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:343,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 0
    functionsReached:
    - idle_peer::enable_handshake
    - Catch::Timer::getElapsedNanoseconds
    - run_timeout_sim
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(peer_idle_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_timeout_sim
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:354,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:358,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:358,1
    - Dst: TEST_CHECK
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:359,1
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/test_fast_extensions.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 360
    functionName: TORRENT_TEST
    functionSourceFile: /src/libtorrent/simulation/test_fast_extensions.cpp
    functionUses: 0
    functionsReached:
    - Catch::Timer::getElapsedNanoseconds
    - run_timeout_sim
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void TORRENT_TEST(handshake_timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - proxy_type
    argTypes:
    - lt::settings_pack::proxy_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: make_proxy_settings
    functionSourceFile: /src/libtorrent/simulation/make_proxy_settings.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: lt::aux::proxy_settings
    signature: "lt::aux::proxy_settings make_proxy_settings(\n\tlt::settings_pack::proxy_type_t
      const proxy_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: __has_extension
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_extension(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: CATCH_INTERNAL_IGNORE_BUT_WARN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_IGNORE_BUT_WARN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: CATCH_INTERNAL_IGNORE_BUT_WARN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_IGNORE_BUT_WARN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CATCH_ANON(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CATCH_ANON(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 558
    functionName: Catch::Context::getResultCapture
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IResultCapture
    signature: IResultCapture * getResultCapture() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 559
    functionName: Catch::Context::getConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IConfig
    signature: IConfig * getConfig() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Context::createContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: Catch::getCurrentContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Context::createContext
    linkageType: ''
    returnType: Context
    signature: Context & getCurrentContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 558
    functionName: Catch::Context::getResultCapture
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IResultCapture
    signature: IResultCapture * getResultCapture() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 559
    functionName: Catch::Context::getConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IConfig
    signature: IConfig * getConfig() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Context::createContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: Catch::getCurrentContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Context::createContext
    linkageType: ''
    returnType: Context
    signature: Context & getCurrentContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 590
    functionName: CATCH_MOVE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_MOVE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 593
    functionName: CATCH_FORWARD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FORWARD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 658
    functionName: INTERNAL_CATCH_UNIQUE_NAME_LINE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 659
    functionName: INTERNAL_CATCH_UNIQUE_NAME_LINE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 661
    functionName: INTERNAL_CATCH_UNIQUE_NAME
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_UNIQUE_NAME( name )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 663
    functionName: INTERNAL_CATCH_UNIQUE_NAME
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_UNIQUE_NAME( name )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Catch::StringRef::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringRef() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - rawChars
    - size
    argTypes:
    - char*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: Catch::StringRef::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringRef( char const* rawChars, size_type size ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:715,1
    - Dst: Catch::StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' stdString'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: Catch::StringRef::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - c_str
    - Catch::StringRef::size
    linkageType: ''
    returnType: void
    signature: void StringRef( std::string const& stdString ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 721
    functionName: operator std::string() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void operator std::string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: operator == ( StringRef other ) const noexcept -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: auto
    signature: auto operator == ( StringRef other ) const noexcept -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 730
    functionName: operator != (StringRef other) const noexcept -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator != (StringRef other) const noexcept -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts:
    - condition: (index < m_size)
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 735
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: operator[] ( size_type index ) const noexcept -> char
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: auto
    signature: auto operator[] ( size_type index ) const noexcept -> char
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 742
    functionName: Catch::StringRef::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto empty() const noexcept -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    functionName: Catch::StringRef::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto size() const noexcept -> size_type
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StringRef::StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:753,1
    - Dst: Catch::StringRef::StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - start
    - length
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 757
    functionName: Catch::StringRef::substr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::StringRef::StringRef
    linkageType: ''
    returnType: StringRef
    signature: StringRef substr(size_type start, size_type length) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Catch::StringRef::data
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: Catch::StringRef::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 765
    functionName: Catch::StringRef::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rawChars
    - size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 784
    functionName: operator ""_sr( char const* rawChars, std::size_t size ) noexcept
      -> StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: auto
    signature: auto operator ""_sr( char const* rawChars, std::size_t size ) noexcept
      -> StringRef
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Catch::StringRef::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringRef() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - rawChars
    - size
    argTypes:
    - char*
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: Catch::StringRef::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringRef( char const* rawChars, size_type size ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:715,1
    - Dst: Catch::StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' stdString'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: Catch::StringRef::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - c_str
    - Catch::StringRef::size
    linkageType: ''
    returnType: void
    signature: void StringRef( std::string const& stdString ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 721
    functionName: operator std::string() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void operator std::string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: operator == ( StringRef other ) const noexcept -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: auto
    signature: auto operator == ( StringRef other ) const noexcept -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 730
    functionName: operator != (StringRef other) const noexcept -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator != (StringRef other) const noexcept -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_type
    assertStmts:
    - condition: (index < m_size)
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 735
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: operator[] ( size_type index ) const noexcept -> char
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: auto
    signature: auto operator[] ( size_type index ) const noexcept -> char
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 742
    functionName: Catch::StringRef::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto empty() const noexcept -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    functionName: Catch::StringRef::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto size() const noexcept -> size_type
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StringRef::StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:753,1
    - Dst: Catch::StringRef::StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - start
    - length
    argTypes:
    - size_type
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 757
    functionName: Catch::StringRef::substr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::StringRef::StringRef
    linkageType: ''
    returnType: StringRef
    signature: StringRef substr(size_type start, size_type length) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Catch::StringRef::data
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: Catch::StringRef::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 765
    functionName: Catch::StringRef::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rawChars
    - size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 784
    functionName: operator ""_sr( char const* rawChars, std::size_t size ) noexcept
      -> StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: auto
    signature: auto operator ""_sr( char const* rawChars, std::size_t size ) noexcept
      -> StringRef
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operator ""_catch_sr( char const* rawChars, std::size_t size ) noexcept
        -> Catch::StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rawChars
    - size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 789
    functionName: operator ""_catch_sr( char const* rawChars, std::size_t size ) noexcept
      -> Catch::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - operator ""_catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef
    linkageType: ''
    returnType: auto
    signature: auto operator ""_catch_sr( char const* rawChars, std::size_t size )
      noexcept -> Catch::StringRef
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 838
    functionName: Catch::isFalseTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isFalseTest( int flags )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 838
    functionName: Catch::isFalseTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isFalseTest( int flags )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(std::nullptr_t = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::unique_ptr::release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' from'
    argTypes:
    - unique_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::unique_ptr::release
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr<U>&& from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:878,1
    - Dst: release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' from'
    argTypes:
    - unique_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 881
    functionName: '& operator=(unique_ptr<U>&& from)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - release
    - reset
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr<U>&& from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 883
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 884
    functionName: '& operator=(unique_ptr const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 889
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:891,1
    - Dst: release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: '& operator=(unique_ptr&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - release
    - reset
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: ~unique_ptr()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~unique_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 903
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 903
    functionName: '& operator*()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 907
    functionName: '& operator*() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 911
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 911
    functionName: '* operator->() noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: '* operator->() const noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 917
    functionName: Catch::Detail::unique_ptr::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 918
    functionName: Catch::Detail::unique_ptr::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: Catch::Detail::unique_ptr::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset(T* ptr = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: Catch::Detail::unique_ptr::release
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * release()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 933
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - unique_ptr
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 939
    functionName: Catch::Detail::unique_ptr::swap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(unique_ptr& lhs, unique_ptr& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 949
    functionName: Catch::Detail::make_unique
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - unique_ptr<T>
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: unique_ptr<T>
    signature: unique_ptr<T> make_unique(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(std::nullptr_t = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::unique_ptr::release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' from'
    argTypes:
    - unique_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::unique_ptr::release
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr<U>&& from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:878,1
    - Dst: Catch::release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' from'
    argTypes:
    - unique_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 881
    functionName: '& operator=(unique_ptr<U>&& from)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::release
    - reset
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr<U>&& from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 883
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 884
    functionName: '& operator=(unique_ptr const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 889
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:891,1
    - Dst: Catch::release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: '& operator=(unique_ptr&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::release
    - reset
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: ~unique_ptr()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~unique_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 903
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 903
    functionName: '& operator*()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 907
    functionName: '& operator*() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 911
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 911
    functionName: '* operator->() noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: '* operator->() const noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 917
    functionName: Catch::Detail::unique_ptr::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 918
    functionName: Catch::Detail::unique_ptr::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: Catch::Detail::unique_ptr::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset(T* ptr = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: Catch::Detail::unique_ptr::release
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * release()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 933
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - unique_ptr
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 939
    functionName: Catch::Detail::unique_ptr::swap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(unique_ptr& lhs, unique_ptr& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 949
    functionName: Catch::Detail::make_unique
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - unique_ptr<T>
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: unique_ptr<T>
    signature: unique_ptr<T> make_unique(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(std::nullptr_t = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::unique_ptr::release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' from'
    argTypes:
    - unique_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::unique_ptr::release
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr<U>&& from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:878,1
    - Dst: release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' from'
    argTypes:
    - unique_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 881
    functionName: '& operator=(unique_ptr<U>&& from)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - release
    - reset
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr<U>&& from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 883
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 884
    functionName: '& operator=(unique_ptr const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 889
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:891,1
    - Dst: release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: '& operator=(unique_ptr&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - release
    - reset
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: ~unique_ptr()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~unique_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 903
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 903
    functionName: '& operator*()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 907
    functionName: '& operator*() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 911
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 911
    functionName: '* operator->() noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: '* operator->() const noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 917
    functionName: Catch::Detail::unique_ptr::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 918
    functionName: Catch::Detail::unique_ptr::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: Catch::Detail::unique_ptr::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset(T* ptr = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: Catch::Detail::unique_ptr::release
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * release()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 933
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - unique_ptr
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 939
    functionName: Catch::Detail::unique_ptr::swap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(unique_ptr& lhs, unique_ptr& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 949
    functionName: Catch::Detail::make_unique
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - unique_ptr<T>
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: unique_ptr<T>
    signature: unique_ptr<T> make_unique(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(std::nullptr_t = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::unique_ptr::release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' from'
    argTypes:
    - unique_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::unique_ptr::release
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr<U>&& from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:878,1
    - Dst: release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' from'
    argTypes:
    - unique_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 881
    functionName: '& operator=(unique_ptr<U>&& from)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - release
    - reset
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr<U>&& from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 883
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 884
    functionName: '& operator=(unique_ptr const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 889
    functionName: Catch::Detail::unique_ptr::unique_ptr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_ptr(unique_ptr&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:891,1
    - Dst: release
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: '& operator=(unique_ptr&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - release
    - reset
    linkageType: ''
    returnType: unique_ptr
    signature: unique_ptr & operator=(unique_ptr&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: ~unique_ptr()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~unique_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 903
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 903
    functionName: '& operator*()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 907
    functionName: '& operator*() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 911
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 911
    functionName: '* operator->() noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_ptr)
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: '* operator->() const noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 917
    functionName: Catch::Detail::unique_ptr::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 918
    functionName: Catch::Detail::unique_ptr::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: Catch::Detail::unique_ptr::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset(T* ptr = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: Catch::Detail::unique_ptr::release
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * release()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 933
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - unique_ptr
    - unique_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 939
    functionName: Catch::Detail::unique_ptr::swap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(unique_ptr& lhs, unique_ptr& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unique_ptr<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 949
    functionName: Catch::Detail::make_unique
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - unique_ptr<T>
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: unique_ptr<T>
    signature: unique_ptr<T> make_unique(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1103
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable( NonCopyable const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable( NonCopyable&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1105
    functionName: '& operator=( NonCopyable const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonCopyable
    signature: NonCopyable & operator=( NonCopyable const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: '& operator=( NonCopyable&& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonCopyable
    signature: NonCopyable & operator=( NonCopyable&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1109
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1103
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable( NonCopyable const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable( NonCopyable&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1105
    functionName: '& operator=( NonCopyable const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonCopyable
    signature: NonCopyable & operator=( NonCopyable const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: '& operator=( NonCopyable&& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonCopyable
    signature: NonCopyable & operator=( NonCopyable&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1109
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1103
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable( NonCopyable const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable( NonCopyable&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1105
    functionName: '& operator=( NonCopyable const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonCopyable
    signature: NonCopyable & operator=( NonCopyable const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: '& operator=( NonCopyable&& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonCopyable
    signature: NonCopyable & operator=( NonCopyable&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1109
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1103
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable( NonCopyable const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable( NonCopyable&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1105
    functionName: '& operator=( NonCopyable const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonCopyable
    signature: NonCopyable & operator=( NonCopyable const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: '& operator=( NonCopyable&& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonCopyable
    signature: NonCopyable & operator=( NonCopyable&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1109
    functionName: Catch::Detail::NonCopyable::NonCopyable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonCopyable() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    functionName: Catch::Benchmark::total
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int total() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    functionName: Catch::Benchmark::total
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int total() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    functionName: Catch::Benchmark::total
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int total() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    functionName: Catch::Benchmark::total
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int total() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keep_memory(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1414
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keep_memory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1417
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - keep_memory
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1417
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - keep_memory
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char volatile*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1430,1
    - Dst: reinterpret_cast<char const volatile*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1431
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char const volatile*>
    - reinterpret_cast<char volatile*>
    linkageType: ''
    returnType: void
    signature: void keep_memory(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1448
    functionName: Catch::Benchmark::deoptimize_value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::keep_memory
    linkageType: ''
    returnType: void
    signature: void deoptimize_value(T&& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1451,1
    - Dst: Catch::Benchmark::deoptimize_value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1453
    functionName: Catch::Benchmark::invoke_deoptimized
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fn
    - Catch::Benchmark::deoptimize_value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<!std::is_same<void,
      decltype(fn(args...))>::value>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1456,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1457,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1458
    functionName: Catch::Benchmark::invoke_deoptimized
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fn
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<std::is_same<void,
      decltype(fn(args...))>::value>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keep_memory(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1414
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keep_memory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1417
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - keep_memory
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1417
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - keep_memory
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char volatile*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1430,1
    - Dst: reinterpret_cast<char const volatile*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1431
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char const volatile*>
    - reinterpret_cast<char volatile*>
    linkageType: ''
    returnType: void
    signature: void keep_memory(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1448
    functionName: Catch::Benchmark::deoptimize_value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Benchmark::keep_memory
    linkageType: ''
    returnType: void
    signature: void deoptimize_value(T&& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1451,1
    - Dst: Catch::Benchmark::deoptimize_value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1453
    functionName: Catch::Benchmark::invoke_deoptimized
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fn
    - Catch::Benchmark::deoptimize_value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<!std::is_same<void,
      decltype(fn(args...))>::value>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1456,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1457,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1458
    functionName: Catch::Benchmark::invoke_deoptimized
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fn
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<std::is_same<void,
      decltype(fn(args...))>::value>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keep_memory(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1414
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keep_memory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1417
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - keep_memory
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1417
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - keep_memory
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char volatile*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1430,1
    - Dst: reinterpret_cast<char const volatile*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1431
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - reinterpret_cast<char const volatile*>
    - reinterpret_cast<char volatile*>
    linkageType: ''
    returnType: void
    signature: void keep_memory(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1448
    functionName: Catch::Benchmark::deoptimize_value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Benchmark::keep_memory
    linkageType: ''
    returnType: void
    signature: void deoptimize_value(T&& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1451,1
    - Dst: Catch::Benchmark::deoptimize_value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1453
    functionName: Catch::Benchmark::invoke_deoptimized
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fn
    - Catch::Benchmark::deoptimize_value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<!std::is_same<void,
      decltype(fn(args...))>::value>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1456,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1457,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1458
    functionName: Catch::Benchmark::invoke_deoptimized
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fn
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<std::is_same<void,
      decltype(fn(args...))>::value>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keep_memory(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1414
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keep_memory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1417
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - keep_memory
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1417
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - keep_memory
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char volatile*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1430,1
    - Dst: reinterpret_cast<char const volatile*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1431
    functionName: Catch::Benchmark::keep_memory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - reinterpret_cast<char const volatile*>
    - reinterpret_cast<char volatile*>
    linkageType: ''
    returnType: void
    signature: void keep_memory(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1440
    functionName: Catch::Benchmark::Detail::optimizer_barrier
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void optimizer_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::keep_memory
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1448
    functionName: Catch::Benchmark::deoptimize_value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Benchmark::keep_memory
    linkageType: ''
    returnType: void
    signature: void deoptimize_value(T&& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1451,1
    - Dst: Catch::Benchmark::deoptimize_value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1453
    functionName: Catch::Benchmark::invoke_deoptimized
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fn
    - Catch::Benchmark::deoptimize_value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<!std::is_same<void,
      decltype(fn(args...))>::value>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1456,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1457,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1458
    functionName: Catch::Benchmark::invoke_deoptimized
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fn
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto invoke_deoptimized(Fn&& fn, Args&&... args) -> std::enable_if_t<std::is_same<void,
      decltype(fn(args...))>::value>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1514
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1515
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1516
    functionName: '& operator=(ChronometerConcept const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChronometerConcept
    signature: ChronometerConcept & operator=(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1520
    functionName: Catch::Benchmark::Detail::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void start() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1521
    functionName: Catch::Benchmark::Detail::finish
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: Catch::Benchmark::Detail::elapsed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: IDuration
    signature: IDuration elapsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1514
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1515
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1516
    functionName: '& operator=(ChronometerConcept const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChronometerConcept
    signature: ChronometerConcept & operator=(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1520
    functionName: Catch::Benchmark::Detail::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void start() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1521
    functionName: Catch::Benchmark::Detail::finish
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: Catch::Benchmark::Detail::elapsed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: IDuration
    signature: IDuration elapsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    - Dst: is_callable<Fun(int)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1536
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - is_callable<Fun(int)>
    - CATCH_FORWARD
    - Catch::Benchmark::measure
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1538
    functionName: Catch::Benchmark::runs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int runs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' meter'
    - repeats_
    argTypes:
    - Detail::ChronometerConcept
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1542
    functionName: Catch::Benchmark::Chronometer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Chronometer(Detail::ChronometerConcept& meter, int repeats_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    - Dst: std::true_type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1548
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - std::true_type
    - fun
    - Catch::Benchmark::measure
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::optimizer_barrier
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1552,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1553,1
    - Dst: Catch::Benchmark::invoke_deoptimized
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1554,1
    - Dst: finish
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1555,1
    - Dst: Catch::Benchmark::Detail::optimizer_barrier
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1551
    functionDepth: 3
    functionLinenumber: 1551
    functionLinenumberEnd: 1557
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Benchmark::invoke_deoptimized
    - Catch::Benchmark::Detail::optimizer_barrier
    - start
    - finish
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun, std::true_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1514
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1515
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1516
    functionName: '& operator=(ChronometerConcept const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChronometerConcept
    signature: ChronometerConcept & operator=(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1520
    functionName: Catch::Benchmark::Detail::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void start() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1521
    functionName: Catch::Benchmark::Detail::finish
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: Catch::Benchmark::Detail::elapsed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: IDuration
    signature: IDuration elapsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1514
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1515
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1516
    functionName: '& operator=(ChronometerConcept const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChronometerConcept
    signature: ChronometerConcept & operator=(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1520
    functionName: Catch::Benchmark::Detail::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void start() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1521
    functionName: Catch::Benchmark::Detail::finish
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: Catch::Benchmark::Detail::elapsed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: IDuration
    signature: IDuration elapsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    - Dst: is_callable<Fun(int)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1536
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - is_callable<Fun(int)>
    - CATCH_FORWARD
    - Catch::Benchmark::measure
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1538
    functionName: Catch::Benchmark::runs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int runs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' meter'
    - repeats_
    argTypes:
    - Detail::ChronometerConcept
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1542
    functionName: Catch::Benchmark::Chronometer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Chronometer(Detail::ChronometerConcept& meter, int repeats_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    - Dst: std::true_type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1548
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - std::true_type
    - fun
    - Catch::Benchmark::measure
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::optimizer_barrier
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1552,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1553,1
    - Dst: Catch::Benchmark::invoke_deoptimized
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1554,1
    - Dst: finish
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1555,1
    - Dst: Catch::Benchmark::Detail::optimizer_barrier
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1551
    functionDepth: 3
    functionLinenumber: 1551
    functionLinenumberEnd: 1557
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Benchmark::invoke_deoptimized
    - Catch::Benchmark::Detail::optimizer_barrier
    - start
    - finish
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun, std::true_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1514
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1515
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1516
    functionName: '& operator=(ChronometerConcept const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChronometerConcept
    signature: ChronometerConcept & operator=(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1520
    functionName: Catch::Benchmark::Detail::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void start() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1521
    functionName: Catch::Benchmark::Detail::finish
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: Catch::Benchmark::Detail::elapsed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: IDuration
    signature: IDuration elapsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1514
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1515
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1516
    functionName: '& operator=(ChronometerConcept const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChronometerConcept
    signature: ChronometerConcept & operator=(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1520
    functionName: Catch::Benchmark::Detail::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void start() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1521
    functionName: Catch::Benchmark::Detail::finish
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: Catch::Benchmark::Detail::elapsed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: IDuration
    signature: IDuration elapsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    - Dst: is_callable<Fun(int)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1536
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - is_callable<Fun(int)>
    - CATCH_FORWARD
    - Catch::Benchmark::measure
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1538
    functionName: Catch::Benchmark::runs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int runs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' meter'
    - repeats_
    argTypes:
    - Detail::ChronometerConcept
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1542
    functionName: Catch::Benchmark::Chronometer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Chronometer(Detail::ChronometerConcept& meter, int repeats_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    - Dst: std::true_type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1548
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::true_type
    - fun
    - Catch::Benchmark::measure
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::optimizer_barrier
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1552,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1553,1
    - Dst: Catch::Benchmark::invoke_deoptimized
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1554,1
    - Dst: finish
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1555,1
    - Dst: Catch::Benchmark::Detail::optimizer_barrier
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1551
    functionDepth: 3
    functionLinenumber: 1551
    functionLinenumberEnd: 1557
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Benchmark::invoke_deoptimized
    - Catch::Benchmark::Detail::optimizer_barrier
    - start
    - finish
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun, std::true_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1514
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1515
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1516
    functionName: '& operator=(ChronometerConcept const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChronometerConcept
    signature: ChronometerConcept & operator=(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1520
    functionName: Catch::Benchmark::Detail::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void start() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1521
    functionName: Catch::Benchmark::Detail::finish
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: Catch::Benchmark::Detail::elapsed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: IDuration
    signature: IDuration elapsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1514
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1515
    functionName: Catch::Benchmark::Detail::ChronometerConcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1516
    functionName: '& operator=(ChronometerConcept const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChronometerConcept
    signature: ChronometerConcept & operator=(ChronometerConcept const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1520
    functionName: Catch::Benchmark::Detail::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void start() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1521
    functionName: Catch::Benchmark::Detail::finish
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void finish() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: Catch::Benchmark::Detail::elapsed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: IDuration
    signature: IDuration elapsed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    - Dst: is_callable<Fun(int)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1536
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - is_callable<Fun(int)>
    - CATCH_FORWARD
    - Catch::Benchmark::measure
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1538
    functionName: Catch::Benchmark::runs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int runs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' meter'
    - repeats_
    argTypes:
    - Detail::ChronometerConcept
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1542
    functionName: Catch::Benchmark::Chronometer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Chronometer(Detail::ChronometerConcept& meter, int repeats_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    - Dst: std::true_type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1548
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - std::true_type
    - fun
    - Catch::Benchmark::measure
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::optimizer_barrier
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1552,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1553,1
    - Dst: Catch::Benchmark::invoke_deoptimized
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1554,1
    - Dst: finish
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1555,1
    - Dst: Catch::Benchmark::Detail::optimizer_barrier
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1551
    functionDepth: 3
    functionLinenumber: 1551
    functionLinenumberEnd: 1557
    functionName: Catch::Benchmark::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Benchmark::invoke_deoptimized
    - Catch::Benchmark::Detail::optimizer_barrier
    - start
    - finish
    linkageType: ''
    returnType: void
    signature: void measure(Fun&& fun, std::true_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1590
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1592
    functionName: '& operator=(callable const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: callable
    signature: callable & operator=(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1596
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void model(Fun&& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void model(Fun const& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<model<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: Catch::Benchmark::Detail::clone
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<model<Fun>>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<callable>
    signature: Catch::Detail::unique_ptr<callable> clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Benchmark::Detail::call
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::true_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chronometer::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1611
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Chronometer::measure
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::false_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1616
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - model<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1619
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(model<T>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: model<do_nothing>::model<do_nothing>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - model<do_nothing>::model<do_nothing>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    - Dst: model<std::decay_t<Fun>>::decay_t<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1628
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - model<std::decay_t<Fun>>::decay_t<Fun>>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1631
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction( BenchmarkFunction&& that ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1634
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1640
    functionName: "&\n                operator=( BenchmarkFunction&& that ) noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: BenchmarkFunction
    signature: "BenchmarkFunction &\n                operator=( BenchmarkFunction&&
      that ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1645
    functionName: '& operator=(BenchmarkFunction const& that)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: BenchmarkFunction
    signature: BenchmarkFunction & operator=(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1647
    functionDepth: 2
    functionLinenumber: 1647
    functionLinenumberEnd: 1647
    functionName: operator()(Chronometer meter) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::call
    linkageType: ''
    returnType: void
    signature: void operator()(Chronometer meter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1590
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1592
    functionName: '& operator=(callable const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: callable
    signature: callable & operator=(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1596
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void model(Fun&& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void model(Fun const& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<model<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: Catch::Benchmark::Detail::clone
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<model<Fun>>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<callable>
    signature: Catch::Detail::unique_ptr<callable> clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Benchmark::Detail::call
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::true_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chronometer::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1611
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Chronometer::measure
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::false_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1616
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - model<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1619
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(model<T>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: model<do_nothing>::model<do_nothing>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - model<do_nothing>::model<do_nothing>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    - Dst: model<std::decay_t<Fun>>::decay_t<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1628
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - model<std::decay_t<Fun>>::decay_t<Fun>>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1631
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction( BenchmarkFunction&& that ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1634
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1640
    functionName: "&\n                operator=( BenchmarkFunction&& that ) noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: BenchmarkFunction
    signature: "BenchmarkFunction &\n                operator=( BenchmarkFunction&&
      that ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1645
    functionName: '& operator=(BenchmarkFunction const& that)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: BenchmarkFunction
    signature: BenchmarkFunction & operator=(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1647
    functionName: operator()(Chronometer meter) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - call
    linkageType: ''
    returnType: void
    signature: void operator()(Chronometer meter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1590
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1592
    functionName: '& operator=(callable const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: callable
    signature: callable & operator=(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1596
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void model(Fun&& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void model(Fun const& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<model<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: Catch::Benchmark::Detail::clone
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<model<Fun>>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<callable>
    signature: Catch::Detail::unique_ptr<callable> clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Benchmark::Detail::call
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::true_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chronometer::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1611
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Chronometer::measure
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::false_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1616
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - model<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1619
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(model<T>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: model<do_nothing>::model<do_nothing>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - model<do_nothing>::model<do_nothing>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    - Dst: model<std::decay_t<Fun>>::decay_t<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1628
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - model<std::decay_t<Fun>>::decay_t<Fun>>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1631
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction( BenchmarkFunction&& that ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1634
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1640
    functionName: "&\n                operator=( BenchmarkFunction&& that ) noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: BenchmarkFunction
    signature: "BenchmarkFunction &\n                operator=( BenchmarkFunction&&
      that ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1645
    functionName: '& operator=(BenchmarkFunction const& that)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: BenchmarkFunction
    signature: BenchmarkFunction & operator=(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1647
    functionName: operator()(Chronometer meter) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - call
    linkageType: ''
    returnType: void
    signature: void operator()(Chronometer meter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1590
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1592
    functionName: '& operator=(callable const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: callable
    signature: callable & operator=(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1596
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void model(Fun&& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void model(Fun const& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<model<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: Catch::Benchmark::Detail::clone
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<model<Fun>>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<callable>
    signature: Catch::Detail::unique_ptr<callable> clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Benchmark::Detail::call
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::true_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chronometer::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1611
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Chronometer::measure
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::false_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1616
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - model<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1619
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(model<T>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: model<do_nothing>::model<do_nothing>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - model<do_nothing>::model<do_nothing>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    - Dst: model<std::decay_t<Fun>>::decay_t<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1628
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - model<std::decay_t<Fun>>::decay_t<Fun>>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1631
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction( BenchmarkFunction&& that ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1634
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1640
    functionName: "&\n                operator=( BenchmarkFunction&& that ) noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: BenchmarkFunction
    signature: "BenchmarkFunction &\n                operator=( BenchmarkFunction&&
      that ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1645
    functionName: '& operator=(BenchmarkFunction const& that)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: BenchmarkFunction
    signature: BenchmarkFunction & operator=(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1647
    functionName: operator()(Chronometer meter) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - call
    linkageType: ''
    returnType: void
    signature: void operator()(Chronometer meter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1590
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1592
    functionName: '& operator=(callable const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: callable
    signature: callable & operator=(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1596
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void model(Fun&& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void model(Fun const& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<model<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: Catch::Benchmark::Detail::clone
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<model<Fun>>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<callable>
    signature: Catch::Detail::unique_ptr<callable> clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Benchmark::Detail::call
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::true_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chronometer::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1611
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Chronometer::measure
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::false_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1616
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - model<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1619
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(model<T>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: model<do_nothing>::model<do_nothing>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - model<do_nothing>::model<do_nothing>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    - Dst: model<std::decay_t<Fun>>::decay_t<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1628
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - model<std::decay_t<Fun>>::decay_t<Fun>>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1631
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction( BenchmarkFunction&& that ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1634
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1640
    functionName: "&\n                operator=( BenchmarkFunction&& that ) noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: BenchmarkFunction
    signature: "BenchmarkFunction &\n                operator=( BenchmarkFunction&&
      that ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1645
    functionName: '& operator=(BenchmarkFunction const& that)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: BenchmarkFunction
    signature: BenchmarkFunction & operator=(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1647
    functionName: operator()(Chronometer meter) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - call
    linkageType: ''
    returnType: void
    signature: void operator()(Chronometer meter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1590
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1592
    functionName: '& operator=(callable const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: callable
    signature: callable & operator=(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1596
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void model(Fun&& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void model(Fun const& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<model<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: Catch::Benchmark::Detail::clone
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<model<Fun>>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<callable>
    signature: Catch::Detail::unique_ptr<callable> clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Benchmark::Detail::call
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::true_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chronometer::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1611
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Chronometer::measure
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::false_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1616
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - model<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1619
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(model<T>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: model<do_nothing>::model<do_nothing>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - model<do_nothing>::model<do_nothing>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    - Dst: model<std::decay_t<Fun>>::decay_t<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1628
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - model<std::decay_t<Fun>>::decay_t<Fun>>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1631
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction( BenchmarkFunction&& that ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1634
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1640
    functionName: "&\n                operator=( BenchmarkFunction&& that ) noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: BenchmarkFunction
    signature: "BenchmarkFunction &\n                operator=( BenchmarkFunction&&
      that ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1645
    functionName: '& operator=(BenchmarkFunction const& that)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: BenchmarkFunction
    signature: BenchmarkFunction & operator=(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1647
    functionName: operator()(Chronometer meter) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - call
    linkageType: ''
    returnType: void
    signature: void operator()(Chronometer meter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1590
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1592
    functionName: '& operator=(callable const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: callable
    signature: callable & operator=(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1596
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void model(Fun&& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void model(Fun const& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<model<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: Catch::Benchmark::Detail::clone
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<model<Fun>>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<callable>
    signature: Catch::Detail::unique_ptr<callable> clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Benchmark::Detail::call
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::true_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chronometer::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1611
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Chronometer::measure
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::false_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1616
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - model<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1619
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(model<T>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: model<do_nothing>::model<do_nothing>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - model<do_nothing>::model<do_nothing>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    - Dst: model<std::decay_t<Fun>>::decay_t<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1628
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - model<std::decay_t<Fun>>::decay_t<Fun>>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1631
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction( BenchmarkFunction&& that ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1634
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1640
    functionName: "&\n                operator=( BenchmarkFunction&& that ) noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: BenchmarkFunction
    signature: "BenchmarkFunction &\n                operator=( BenchmarkFunction&&
      that ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1645
    functionName: '& operator=(BenchmarkFunction const& that)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: BenchmarkFunction
    signature: BenchmarkFunction & operator=(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1647
    functionName: operator()(Chronometer meter) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - call
    linkageType: ''
    returnType: void
    signature: void operator()(Chronometer meter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1590
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1591
    functionName: Catch::Benchmark::Detail::callable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callable(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1592
    functionName: '& operator=(callable const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: callable
    signature: callable & operator=(callable const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1596
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void model(Fun&& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fun_'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1597
    functionName: Catch::Benchmark::Detail::model
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void model(Fun const& fun_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<model<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1601
    functionName: Catch::Benchmark::Detail::clone
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<model<Fun>>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<callable>
    signature: Catch::Detail::unique_ptr<callable> clone() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - Catch::Benchmark::Detail::call
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::true_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chronometer::measure
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1611
    functionName: Catch::Benchmark::Detail::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - Chronometer::measure
    linkageType: ''
    returnType: void
    signature: void call(Chronometer meter, std::false_type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1616
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - model<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1619
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(model<T>* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: model<do_nothing>::model<do_nothing>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1623
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - model<do_nothing>::model<do_nothing>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    - Dst: model<std::decay_t<Fun>>::decay_t<Fun>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1628
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - model<std::decay_t<Fun>>::decay_t<Fun>>
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1631
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction( BenchmarkFunction&& that ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1634
    functionName: Catch::Benchmark::Detail::BenchmarkFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1640
    functionName: "&\n                operator=( BenchmarkFunction&& that ) noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: BenchmarkFunction
    signature: "BenchmarkFunction &\n                operator=( BenchmarkFunction&&
      that ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f::clone
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' that'
    argTypes:
    - BenchmarkFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1645
    functionName: '& operator=(BenchmarkFunction const& that)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - f::clone
    linkageType: ''
    returnType: BenchmarkFunction
    signature: BenchmarkFunction & operator=(BenchmarkFunction const& that)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meter
    argTypes:
    - Chronometer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1647
    functionName: operator()(Chronometer meter) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - call
    linkageType: ''
    returnType: void
    signature: void operator()(Chronometer meter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: operator()(int k) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void operator()(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: Catch::Benchmark::Detail::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: repeater<std::decay_t<Fun>>
    signature: repeater<std::decay_t<Fun>> repeat(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: operator()(int k) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void operator()(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: Catch::Benchmark::Detail::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: repeater<std::decay_t<Fun>>
    signature: repeater<std::decay_t<Fun>> repeat(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: operator()(int k) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void operator()(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: Catch::Benchmark::Detail::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: repeater<std::decay_t<Fun>>
    signature: repeater<std::decay_t<Fun>> repeat(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: operator()(int k) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void operator()(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: Catch::Benchmark::Detail::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: repeater<std::decay_t<Fun>>
    signature: repeater<std::decay_t<Fun>> repeat(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: operator()(int k) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void operator()(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: Catch::Benchmark::Detail::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: repeater<std::decay_t<Fun>>
    signature: repeater<std::decay_t<Fun>> repeat(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: operator()(int k) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void operator()(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: Catch::Benchmark::Detail::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: repeater<std::decay_t<Fun>>
    signature: repeater<std::decay_t<Fun>> repeat(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: operator()(int k) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void operator()(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: Catch::Benchmark::Detail::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: repeater<std::decay_t<Fun>>
    signature: repeater<std::decay_t<Fun>> repeat(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: operator()(int k) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void operator()(int k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: Catch::Benchmark::Detail::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: repeater<std::decay_t<Fun>>
    signature: repeater<std::decay_t<Fun>> repeat(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: Result
    signature: Result invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<void>
    signature: CompleteType_t<void> invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: Catch::Benchmark::Detail::complete_invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<FunctionReturnType<Fun, Args...>>
    signature: CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&&
      fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: Result
    signature: Result invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<void>
    signature: CompleteType_t<void> invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: Catch::Benchmark::Detail::complete_invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<FunctionReturnType<Fun, Args...>>
    signature: CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&&
      fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1746,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1747
    functionName: Catch::Benchmark::user_code
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: Detail::CompleteType_t<FunctionReturnType<Fun>>
    signature: Detail::CompleteType_t<FunctionReturnType<Fun>> user_code(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: Result
    signature: Result invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<void>
    signature: CompleteType_t<void> invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: Catch::Benchmark::Detail::complete_invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<FunctionReturnType<Fun, Args...>>
    signature: CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&&
      fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: Result
    signature: Result invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<void>
    signature: CompleteType_t<void> invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: Catch::Benchmark::Detail::complete_invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<FunctionReturnType<Fun, Args...>>
    signature: CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&&
      fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1746,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1747
    functionName: Catch::Benchmark::user_code
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: Detail::CompleteType_t<FunctionReturnType<Fun>>
    signature: Detail::CompleteType_t<FunctionReturnType<Fun>> user_code(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: Result
    signature: Result invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<void>
    signature: CompleteType_t<void> invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: Catch::Benchmark::Detail::complete_invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<FunctionReturnType<Fun, Args...>>
    signature: CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&&
      fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: Result
    signature: Result invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<void>
    signature: CompleteType_t<void> invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: Catch::Benchmark::Detail::complete_invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<FunctionReturnType<Fun, Args...>>
    signature: CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&&
      fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1746,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1747
    functionName: Catch::Benchmark::user_code
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: Detail::CompleteType_t<FunctionReturnType<Fun>>
    signature: Detail::CompleteType_t<FunctionReturnType<Fun>> user_code(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: Result
    signature: Result invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<void>
    signature: CompleteType_t<void> invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: Catch::Benchmark::Detail::complete_invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<FunctionReturnType<Fun, Args...>>
    signature: CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&&
      fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: Result
    signature: Result invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1733
    functionName: Catch::Benchmark::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<void>
    signature: CompleteType_t<void> invoke(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: Catch::Benchmark::Detail::complete_invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - CATCH_FORWARD
    linkageType: ''
    returnType: CompleteType_t<FunctionReturnType<Fun, Args...>>
    signature: CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&&
      fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1746,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1747
    functionName: Catch::Benchmark::user_code
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: Detail::CompleteType_t<FunctionReturnType<Fun>>
    signature: Detail::CompleteType_t<FunctionReturnType<Fun>> user_code(Fun&& fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1782,1
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1784,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1787
    functionName: Catch::Benchmark::Detail::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Args...>
    signature: TimingOf<Fun, Args...> measure(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1782,1
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1784,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1787
    functionName: Catch::Benchmark::Detail::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Args...>
    signature: TimingOf<Fun, Args...> measure(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1782,1
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1784,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1787
    functionName: Catch::Benchmark::Detail::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Args...>
    signature: TimingOf<Fun, Args...> measure(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1782,1
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1784,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1787
    functionName: Catch::Benchmark::Detail::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Args...>
    signature: TimingOf<Fun, Args...> measure(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1782,1
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1784,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1787
    functionName: Catch::Benchmark::Detail::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Args...>
    signature: TimingOf<Fun, Args...> measure(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1782,1
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1784,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1787
    functionName: Catch::Benchmark::Detail::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Args...>
    signature: TimingOf<Fun, Args...> measure(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1782,1
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1784,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1787
    functionName: Catch::Benchmark::Detail::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Args...>
    signature: TimingOf<Fun, Args...> measure(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1782,1
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1783,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1784,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1787
    functionName: Catch::Benchmark::Detail::measure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - CATCH_FORWARD
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Args...>
    signature: TimingOf<Fun, Args...> measure(Fun&& fun, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::measure<Clock>
    linkageType: ''
    returnType: TimingOf<Fun, int>
    signature: TimingOf<Fun, int> measure_one(Fun&& fun, int iters, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::ChronometerModel::elapsed
    - CATCH_MOVE
    - Chronometer
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Chronometer>
    signature: TimingOf<Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::measure_one
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1828,1
    - Dst: Catch::Benchmark::Detail::throw_optimized_away_error
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - how_long
    - initial_iterations
    - ' fun'
    argTypes:
    - IDuration
    - int
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: Catch::Benchmark::Detail::run_for_at_least
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::Benchmark::Detail::throw_optimized_away_error
    - Catch::Benchmark::Detail::measure_one
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>>
    signature: "TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(IDuration
      how_long,\n                                 const int initial_iterations,\n
      \                                Fun&& fun)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Detail::measure<Clock>
    linkageType: ''
    returnType: TimingOf<Fun, int>
    signature: TimingOf<Fun, int> measure_one(Fun&& fun, int iters, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Detail::ChronometerModel::elapsed
    - CATCH_MOVE
    - Chronometer
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Chronometer>
    signature: TimingOf<Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::measure_one
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1828,1
    - Dst: Catch::Benchmark::Detail::throw_optimized_away_error
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - how_long
    - initial_iterations
    - ' fun'
    argTypes:
    - IDuration
    - int
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: Catch::Benchmark::Detail::run_for_at_least
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::Benchmark::Detail::throw_optimized_away_error
    - Catch::Benchmark::Detail::measure_one
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>>
    signature: "TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(IDuration
      how_long,\n                                 const int initial_iterations,\n
      \                                Fun&& fun)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Detail::measure<Clock>
    linkageType: ''
    returnType: TimingOf<Fun, int>
    signature: TimingOf<Fun, int> measure_one(Fun&& fun, int iters, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Detail::ChronometerModel::elapsed
    - CATCH_MOVE
    - Chronometer
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Chronometer>
    signature: TimingOf<Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::measure_one
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1828,1
    - Dst: Catch::Benchmark::Detail::throw_optimized_away_error
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - how_long
    - initial_iterations
    - ' fun'
    argTypes:
    - IDuration
    - int
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: Catch::Benchmark::Detail::run_for_at_least
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::Benchmark::Detail::throw_optimized_away_error
    - Catch::Benchmark::Detail::measure_one
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>>
    signature: "TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(IDuration
      how_long,\n                                 const int initial_iterations,\n
      \                                Fun&& fun)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Detail::measure<Clock>
    linkageType: ''
    returnType: TimingOf<Fun, int>
    signature: TimingOf<Fun, int> measure_one(Fun&& fun, int iters, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Detail::ChronometerModel::elapsed
    - CATCH_MOVE
    - Chronometer
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Chronometer>
    signature: TimingOf<Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::measure_one
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1828,1
    - Dst: Catch::Benchmark::Detail::throw_optimized_away_error
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - how_long
    - initial_iterations
    - ' fun'
    argTypes:
    - IDuration
    - int
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: Catch::Benchmark::Detail::run_for_at_least
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::Benchmark::Detail::throw_optimized_away_error
    - Catch::Benchmark::Detail::measure_one
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>>
    signature: "TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(IDuration
      how_long,\n                                 const int initial_iterations,\n
      \                                Fun&& fun)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Detail::measure<Clock>
    linkageType: ''
    returnType: TimingOf<Fun, int>
    signature: TimingOf<Fun, int> measure_one(Fun&& fun, int iters, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Detail::ChronometerModel::elapsed
    - CATCH_MOVE
    - Chronometer
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Chronometer>
    signature: TimingOf<Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::measure_one
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1828,1
    - Dst: Catch::Benchmark::Detail::throw_optimized_away_error
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - how_long
    - initial_iterations
    - ' fun'
    argTypes:
    - IDuration
    - int
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: Catch::Benchmark::Detail::run_for_at_least
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::Benchmark::Detail::throw_optimized_away_error
    - Catch::Benchmark::Detail::measure_one
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>>
    signature: "TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(IDuration
      how_long,\n                                 const int initial_iterations,\n
      \                                Fun&& fun)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Detail::measure<Clock>
    linkageType: ''
    returnType: TimingOf<Fun, int>
    signature: TimingOf<Fun, int> measure_one(Fun&& fun, int iters, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Detail::ChronometerModel::elapsed
    - CATCH_MOVE
    - Chronometer
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Chronometer>
    signature: TimingOf<Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::measure_one
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1828,1
    - Dst: Catch::Benchmark::Detail::throw_optimized_away_error
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - how_long
    - initial_iterations
    - ' fun'
    argTypes:
    - IDuration
    - int
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: Catch::Benchmark::Detail::run_for_at_least
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::Benchmark::Detail::throw_optimized_away_error
    - Catch::Benchmark::Detail::measure_one
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>>
    signature: "TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(IDuration
      how_long,\n                                 const int initial_iterations,\n
      \                                Fun&& fun)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Detail::measure<Clock>
    linkageType: ''
    returnType: TimingOf<Fun, int>
    signature: TimingOf<Fun, int> measure_one(Fun&& fun, int iters, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Detail::ChronometerModel::elapsed
    - CATCH_MOVE
    - Chronometer
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Chronometer>
    signature: TimingOf<Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::measure_one
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1828,1
    - Dst: Catch::Benchmark::Detail::throw_optimized_away_error
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - how_long
    - initial_iterations
    - ' fun'
    argTypes:
    - IDuration
    - int
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: Catch::Benchmark::Detail::run_for_at_least
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::Benchmark::Detail::throw_optimized_away_error
    - Catch::Benchmark::Detail::measure_one
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>>
    signature: "TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(IDuration
      how_long,\n                                 const int initial_iterations,\n
      \                                Fun&& fun)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Detail::measure<Clock>
    linkageType: ''
    returnType: TimingOf<Fun, int>
    signature: TimingOf<Fun, int> measure_one(Fun&& fun, int iters, std::false_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::complete_invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1806,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - iters
    argTypes:
    - Fun
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1809
    functionName: Catch::Benchmark::Detail::measure_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Detail::ChronometerModel::elapsed
    - CATCH_MOVE
    - Chronometer
    - Catch::Benchmark::Detail::complete_invoke
    linkageType: ''
    returnType: TimingOf<Fun, Chronometer>
    signature: TimingOf<Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::measure_one
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: is_callable<Fun(Chronometer)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1825,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1828,1
    - Dst: Catch::Benchmark::Detail::throw_optimized_away_error
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - how_long
    - initial_iterations
    - ' fun'
    argTypes:
    - IDuration
    - int
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: Catch::Benchmark::Detail::run_for_at_least
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::Benchmark::Detail::throw_optimized_away_error
    - Catch::Benchmark::Detail::measure_one
    - is_callable<Fun(Chronometer)>
    linkageType: ''
    returnType: TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>>
    signature: "TimingOf<Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(IDuration
      how_long,\n                                 const int initial_iterations,\n
      \                                Fun&& fun)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1854,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1855,1
    - Dst: Catch::Benchmark::Detail::repeat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1857,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1857,1
    - Dst: IConfig::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1861,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1862,1
    - Dst: Catch::Benchmark::benchmark
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1865,1
    - Dst: Catch::Benchmark::Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1865,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1866,1
    - Dst: libtorrent::aux::zero
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1867,1
    - Dst: libtorrent::aux::zero
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1868,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - cfg
    - env
    argTypes:
    - IConfig
    - Environment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1852
    functionDepth: 2
    functionLinenumber: 1852
    functionLinenumberEnd: 1873
    functionName: Catch::Benchmark::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - std::chrono::duration_cast<IDuration>
    - IConfig::benchmarkSamples
    - std::vector::push_back
    - Catch::Benchmark::benchmark
    - Detail::run_for_at_least<Clock>
    - Catch::Benchmark::Chronometer
    - Detail::ChronometerModel::elapsed
    - Catch::Benchmark::Detail::repeat
    - std::vector::reserve
    - libtorrent::aux::zero
    linkageType: ''
    returnType: std::vector<FDuration>
    signature: std::vector<FDuration> run(const IConfig &cfg, Environment env) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1854,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1855,1
    - Dst: Catch::Benchmark::Detail::repeat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1857,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1857,1
    - Dst: IConfig::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1861,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1862,1
    - Dst: Catch::Benchmark::benchmark
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1865,1
    - Dst: Catch::Benchmark::Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1865,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1866,1
    - Dst: libtorrent::aux::zero
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1867,1
    - Dst: libtorrent::aux::zero
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1868,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - cfg
    - env
    argTypes:
    - IConfig
    - Environment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1852
    functionDepth: 2
    functionLinenumber: 1852
    functionLinenumberEnd: 1873
    functionName: Catch::Benchmark::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - std::chrono::duration_cast<IDuration>
    - IConfig::benchmarkSamples
    - std::vector::push_back
    - Catch::Benchmark::benchmark
    - Detail::run_for_at_least<Clock>
    - Catch::Benchmark::Chronometer
    - Detail::ChronometerModel::elapsed
    - Catch::Benchmark::Detail::repeat
    - std::vector::reserve
    - libtorrent::aux::zero
    linkageType: ''
    returnType: std::vector<FDuration>
    signature: std::vector<FDuration> run(const IConfig &cfg, Environment env) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1854,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1855,1
    - Dst: Catch::Benchmark::Detail::repeat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1857,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1857,1
    - Dst: IConfig::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1861,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1862,1
    - Dst: Catch::Benchmark::benchmark
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1865,1
    - Dst: Catch::Benchmark::Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1865,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1866,1
    - Dst: libtorrent::aux::zero
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1867,1
    - Dst: libtorrent::aux::zero
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1868,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - cfg
    - env
    argTypes:
    - IConfig
    - Environment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1852
    functionDepth: 2
    functionLinenumber: 1852
    functionLinenumberEnd: 1873
    functionName: Catch::Benchmark::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - std::chrono::duration_cast<IDuration>
    - IConfig::benchmarkSamples
    - std::vector::push_back
    - Catch::Benchmark::benchmark
    - Detail::run_for_at_least<Clock>
    - Catch::Benchmark::Chronometer
    - Detail::ChronometerModel::elapsed
    - Catch::Benchmark::Detail::repeat
    - std::vector::reserve
    - libtorrent::aux::zero
    linkageType: ''
    returnType: std::vector<FDuration>
    signature: std::vector<FDuration> run(const IConfig &cfg, Environment env) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1854,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1855,1
    - Dst: Catch::Benchmark::Detail::repeat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1857,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1857,1
    - Dst: IConfig::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1861,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1862,1
    - Dst: Catch::Benchmark::benchmark
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1865,1
    - Dst: Catch::Benchmark::Chronometer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1865,1
    - Dst: Detail::ChronometerModel::elapsed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1866,1
    - Dst: libtorrent::aux::zero
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1867,1
    - Dst: libtorrent::aux::zero
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1868,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - cfg
    - env
    argTypes:
    - IConfig
    - Environment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1852
    functionDepth: 2
    functionLinenumber: 1852
    functionLinenumberEnd: 1873
    functionName: Catch::Benchmark::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - std::chrono::duration_cast<IDuration>
    - IConfig::benchmarkSamples
    - std::vector::push_back
    - Catch::Benchmark::benchmark
    - Detail::run_for_at_least<Clock>
    - Catch::Benchmark::Chronometer
    - Detail::ChronometerModel::elapsed
    - Catch::Benchmark::Detail::repeat
    - std::vector::reserve
    - libtorrent::aux::zero
    linkageType: ''
    returnType: std::vector<FDuration>
    signature: std::vector<FDuration> run(const IConfig &cfg, Environment env) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1957,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1963
    functionName: Catch::Benchmark::Detail::resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - count
    - std::vector::size
    - std::vector::push_back
    - static_cast<double>
    - std::vector::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> resolution(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1979
    functionName: Catch::Benchmark::Detail::warmup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::run_for_at_least
    linkageType: ''
    returnType: int
    signature: int warmup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1982,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: Catch::Benchmark::Detail::estimate_clock_resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::mean
    - auto::size
    - Catch::Benchmark::Detail::run_for_at_least
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - auto::data
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_resolution(int iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1993,1
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1995,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1997,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2002,1
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2004,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - FDuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2017
    functionName: Catch::Benchmark::Detail::estimate_clock_cost
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - count
    - std::vector::data
    - std::vector::push_back
    - time_clock
    - Detail::measure<Clock>
    - Catch::Benchmark::Detail::mean
    - std::vector::size
    - static_cast<double>
    - std::ceil
    - Catch::Benchmark::Detail::run_for_at_least
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_cost(FDuration resolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::warmup<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2033,1
    - Dst: Detail::estimate_clock_resolution<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2034,1
    - Dst: Detail::estimate_clock_cost<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2035,1
    - Dst: Catch::Detail::make_unique<Environment>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2039
    functionName: Catch::Benchmark::Detail::measure_environment
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::estimate_clock_cost<Clock>
    - Catch::Detail::make_unique<Environment>
    - Detail::estimate_clock_resolution<Clock>
    - Detail::warmup<Clock>
    linkageType: ''
    returnType: Environment
    signature: Environment measure_environment()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1957,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1963
    functionName: Catch::Benchmark::Detail::resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - count
    - std::vector::size
    - std::vector::push_back
    - static_cast<double>
    - std::vector::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> resolution(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1979
    functionName: Catch::Benchmark::Detail::warmup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::run_for_at_least
    linkageType: ''
    returnType: int
    signature: int warmup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1982,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: Catch::Benchmark::Detail::estimate_clock_resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::mean
    - auto::size
    - Catch::Benchmark::Detail::run_for_at_least
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - auto::data
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_resolution(int iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1993,1
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1995,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1997,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2002,1
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2004,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - FDuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2017
    functionName: Catch::Benchmark::Detail::estimate_clock_cost
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - count
    - std::vector::data
    - std::vector::push_back
    - time_clock
    - Detail::measure<Clock>
    - Catch::Benchmark::Detail::mean
    - std::vector::size
    - static_cast<double>
    - std::ceil
    - Catch::Benchmark::Detail::run_for_at_least
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_cost(FDuration resolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::warmup<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2033,1
    - Dst: Detail::estimate_clock_resolution<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2034,1
    - Dst: Detail::estimate_clock_cost<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2035,1
    - Dst: Catch::Detail::make_unique<Environment>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2039
    functionName: Catch::Benchmark::Detail::measure_environment
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::estimate_clock_cost<Clock>
    - Catch::Detail::make_unique<Environment>
    - Detail::estimate_clock_resolution<Clock>
    - Detail::warmup<Clock>
    linkageType: ''
    returnType: Environment
    signature: Environment measure_environment()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1957,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1963
    functionName: Catch::Benchmark::Detail::resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - count
    - std::vector::size
    - std::vector::push_back
    - static_cast<double>
    - std::vector::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> resolution(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1979
    functionName: Catch::Benchmark::Detail::warmup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::run_for_at_least
    linkageType: ''
    returnType: int
    signature: int warmup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1982,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: Catch::Benchmark::Detail::estimate_clock_resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::mean
    - auto::size
    - Catch::Benchmark::Detail::run_for_at_least
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - auto::data
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_resolution(int iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1993,1
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1995,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1997,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2002,1
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2004,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - FDuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2017
    functionName: Catch::Benchmark::Detail::estimate_clock_cost
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - count
    - std::vector::data
    - std::vector::push_back
    - time_clock
    - Detail::measure<Clock>
    - Catch::Benchmark::Detail::mean
    - std::vector::size
    - static_cast<double>
    - std::ceil
    - Catch::Benchmark::Detail::run_for_at_least
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_cost(FDuration resolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::warmup<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2033,1
    - Dst: Detail::estimate_clock_resolution<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2034,1
    - Dst: Detail::estimate_clock_cost<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2035,1
    - Dst: Catch::Detail::make_unique<Environment>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2039
    functionName: Catch::Benchmark::Detail::measure_environment
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::estimate_clock_cost<Clock>
    - Catch::Detail::make_unique<Environment>
    - Detail::estimate_clock_resolution<Clock>
    - Detail::warmup<Clock>
    linkageType: ''
    returnType: Environment
    signature: Environment measure_environment()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1957,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1963
    functionName: Catch::Benchmark::Detail::resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - count
    - std::vector::size
    - std::vector::push_back
    - static_cast<double>
    - std::vector::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> resolution(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1979
    functionName: Catch::Benchmark::Detail::warmup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::run_for_at_least
    linkageType: ''
    returnType: int
    signature: int warmup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1982,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: Catch::Benchmark::Detail::estimate_clock_resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::mean
    - auto::size
    - Catch::Benchmark::Detail::run_for_at_least
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - auto::data
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_resolution(int iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1993,1
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1995,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1997,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2002,1
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2004,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - FDuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2017
    functionName: Catch::Benchmark::Detail::estimate_clock_cost
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - count
    - std::vector::data
    - std::vector::push_back
    - time_clock
    - Detail::measure<Clock>
    - Catch::Benchmark::Detail::mean
    - std::vector::size
    - static_cast<double>
    - std::ceil
    - Catch::Benchmark::Detail::run_for_at_least
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_cost(FDuration resolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::warmup<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2033,1
    - Dst: Detail::estimate_clock_resolution<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2034,1
    - Dst: Detail::estimate_clock_cost<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2035,1
    - Dst: Catch::Detail::make_unique<Environment>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2039
    functionName: Catch::Benchmark::Detail::measure_environment
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::estimate_clock_cost<Clock>
    - Catch::Detail::make_unique<Environment>
    - Detail::estimate_clock_resolution<Clock>
    - Detail::warmup<Clock>
    linkageType: ''
    returnType: Environment
    signature: Environment measure_environment()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1957,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1963
    functionName: Catch::Benchmark::Detail::resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - count
    - std::vector::size
    - std::vector::push_back
    - static_cast<double>
    - std::vector::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> resolution(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1979
    functionName: Catch::Benchmark::Detail::warmup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::run_for_at_least
    linkageType: ''
    returnType: int
    signature: int warmup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1982,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: Catch::Benchmark::Detail::estimate_clock_resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::mean
    - auto::size
    - Catch::Benchmark::Detail::run_for_at_least
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - auto::data
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_resolution(int iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1993,1
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1995,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1997,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2002,1
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2004,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - FDuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2017
    functionName: Catch::Benchmark::Detail::estimate_clock_cost
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - count
    - std::vector::data
    - std::vector::push_back
    - time_clock
    - Detail::measure<Clock>
    - Catch::Benchmark::Detail::mean
    - std::vector::size
    - static_cast<double>
    - std::ceil
    - Catch::Benchmark::Detail::run_for_at_least
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_cost(FDuration resolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::warmup<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2033,1
    - Dst: Detail::estimate_clock_resolution<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2034,1
    - Dst: Detail::estimate_clock_cost<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2035,1
    - Dst: Catch::Detail::make_unique<Environment>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2039
    functionName: Catch::Benchmark::Detail::measure_environment
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::estimate_clock_cost<Clock>
    - Catch::Detail::make_unique<Environment>
    - Detail::estimate_clock_resolution<Clock>
    - Detail::warmup<Clock>
    linkageType: ''
    returnType: Environment
    signature: Environment measure_environment()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1957,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1963
    functionName: Catch::Benchmark::Detail::resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - count
    - std::vector::size
    - std::vector::push_back
    - static_cast<double>
    - std::vector::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> resolution(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1979
    functionName: Catch::Benchmark::Detail::warmup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::run_for_at_least
    linkageType: ''
    returnType: int
    signature: int warmup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1982,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: Catch::Benchmark::Detail::estimate_clock_resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::mean
    - auto::size
    - Catch::Benchmark::Detail::run_for_at_least
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - auto::data
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_resolution(int iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1993,1
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1995,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1997,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2002,1
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2004,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - FDuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2017
    functionName: Catch::Benchmark::Detail::estimate_clock_cost
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - count
    - std::vector::data
    - std::vector::push_back
    - time_clock
    - Detail::measure<Clock>
    - Catch::Benchmark::Detail::mean
    - std::vector::size
    - static_cast<double>
    - std::ceil
    - Catch::Benchmark::Detail::run_for_at_least
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_cost(FDuration resolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::warmup<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2033,1
    - Dst: Detail::estimate_clock_resolution<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2034,1
    - Dst: Detail::estimate_clock_cost<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2035,1
    - Dst: Catch::Detail::make_unique<Environment>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2039
    functionName: Catch::Benchmark::Detail::measure_environment
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::estimate_clock_cost<Clock>
    - Catch::Detail::make_unique<Environment>
    - Detail::estimate_clock_resolution<Clock>
    - Detail::warmup<Clock>
    linkageType: ''
    returnType: Environment
    signature: Environment measure_environment()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1957,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1963
    functionName: Catch::Benchmark::Detail::resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - count
    - std::vector::size
    - std::vector::push_back
    - static_cast<double>
    - std::vector::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> resolution(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1979
    functionName: Catch::Benchmark::Detail::warmup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::run_for_at_least
    linkageType: ''
    returnType: int
    signature: int warmup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1982,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: Catch::Benchmark::Detail::estimate_clock_resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::mean
    - auto::size
    - Catch::Benchmark::Detail::run_for_at_least
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - auto::data
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_resolution(int iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1993,1
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1995,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1997,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2002,1
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2004,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - FDuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2017
    functionName: Catch::Benchmark::Detail::estimate_clock_cost
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - count
    - std::vector::data
    - std::vector::push_back
    - time_clock
    - Detail::measure<Clock>
    - Catch::Benchmark::Detail::mean
    - std::vector::size
    - static_cast<double>
    - std::ceil
    - Catch::Benchmark::Detail::run_for_at_least
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_cost(FDuration resolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::warmup<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2033,1
    - Dst: Detail::estimate_clock_resolution<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2034,1
    - Dst: Detail::estimate_clock_cost<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2035,1
    - Dst: Catch::Detail::make_unique<Environment>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2039
    functionName: Catch::Benchmark::Detail::measure_environment
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::estimate_clock_cost<Clock>
    - Catch::Detail::make_unique<Environment>
    - Detail::estimate_clock_resolution<Clock>
    - Detail::warmup<Clock>
    linkageType: ''
    returnType: Environment
    signature: Environment measure_environment()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1950,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1952,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1956,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1957,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1958,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1963
    functionName: Catch::Benchmark::Detail::resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - count
    - std::vector::size
    - std::vector::push_back
    - static_cast<double>
    - std::vector::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<double>
    signature: std::vector<double> resolution(int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1979
    functionName: Catch::Benchmark::Detail::warmup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::run_for_at_least
    linkageType: ''
    returnType: int
    signature: int warmup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1982,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1985,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: Catch::Benchmark::Detail::estimate_clock_resolution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::mean
    - auto::size
    - Catch::Benchmark::Detail::run_for_at_least
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - auto::data
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_resolution(int iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1993,1
    - Dst: Detail::measure<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1995,1
    - Dst: time_now
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:1997,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2002,1
    - Dst: Catch::Benchmark::Detail::run_for_at_least
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2004,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2006,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2007,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2009,1
    - Dst: time_clock
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2010,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2014,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - FDuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1990
    functionDepth: 2
    functionLinenumber: 1990
    functionLinenumberEnd: 2017
    functionName: Catch::Benchmark::Detail::estimate_clock_cost
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - time_now
    - count
    - std::vector::data
    - std::vector::push_back
    - time_clock
    - Detail::measure<Clock>
    - Catch::Benchmark::Detail::mean
    - std::vector::size
    - static_cast<double>
    - std::ceil
    - Catch::Benchmark::Detail::run_for_at_least
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: EnvironmentEstimate
    signature: EnvironmentEstimate estimate_clock_cost(FDuration resolution)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::warmup<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2033,1
    - Dst: Detail::estimate_clock_resolution<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2034,1
    - Dst: Detail::estimate_clock_cost<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2035,1
    - Dst: Catch::Detail::make_unique<Environment>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2039
    functionName: Catch::Benchmark::Detail::measure_environment
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::estimate_clock_cost<Clock>
    - Catch::Detail::make_unique<Environment>
    - Detail::estimate_clock_resolution<Clock>
    - Detail::warmup<Clock>
    linkageType: ''
    returnType: Environment
    signature: Environment measure_environment()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2099,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: std::chrono::duration_cast<decltype(min_time)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: std::chrono::duration_cast<FDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2118,1
    - Dst: Detail::measure_environment<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2120,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2122,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2124,1
    - Dst: Catch::Benchmark::prepare
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2125,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2129,1
    - Dst: estimated_duration::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2130,1
    - Dst: auto*::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2132,1
    - Dst: auto*::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2133,1
    - Dst: auto::clock_resolution::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2134,1
    - Dst: auto::clock_cost::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2135,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2138,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2140,1
    - Dst: template run<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2141,1
    - Dst: Catch::Benchmark::Detail::analyse
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2146,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2148,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2160,1
    - Dst: auto*::skipBenchmarks
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2161,1
    - Dst: Catch::Benchmark::Detail::BenchmarkFunction
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2162,1
    - Dst: Catch::Benchmark::run
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - func
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2097
    functionDepth: 3
    functionLinenumber: 2097
    functionLinenumberEnd: 2166
    functionName: '& operator=(Fun func)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - translateActiveException
    - getCurrentContext
    - Catch::Benchmark::user_code
    - std::max
    - std::current_exception
    - template run<Clock>
    - benchmarkSamples
    - std::chrono::duration_cast<IDuration>
    - auto::clock_cost::mean::count
    - Detail::run_for_at_least<Clock>
    - Catch::Benchmark::prepare
    - Catch::Benchmark::Detail::analyse
    - std::rethrow_exception
    - auto::clock_resolution::mean::count
    - Detail::measure_environment<Clock>
    - std::chrono::duration_cast<decltype(min_time)>
    - Catch::Benchmark::run
    - getResultCapture
    - auto::size
    - std::chrono::duration_cast<FDuration>
    - benchmarkWarmupTime
    - auto::data
    - auto*::skipBenchmarks
    - auto*::benchmarkResamples
    - std::ceil
    - auto*::benchmarkSamples
    - CATCH_MOVE
    - Catch::Benchmark::Detail::BenchmarkFunction
    - estimated_duration::count
    linkageType: ''
    returnType: "struct Benchmark {\n            Benchmark(std::string&& benchmarkName)\n
      \               : name(CATCH_MOVE(benchmarkName)) {}\n\n            template
      <class FUN>\n            Benchmark(std::string&& benchmarkName , FUN &&func)\n
      \               : fun(CATCH_MOVE(func)), name(CATCH_MOVE(benchmarkName)) {}\n\n
      \           template <typename Clock>\n            ExecutionPlan prepare(const
      IConfig &cfg, Environment env) const {\n                auto min_time = env.clock_resolution.mean
      * Detail::minimum_ticks;\n                auto run_time = std::max(min_time,
      std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime()));\n
      \               auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<IDuration>(run_time),
      1, fun);\n                int new_iters = static_cast<int>(std::ceil(min_time
      * test.iterations / test.elapsed));\n                return { new_iters, test.elapsed
      / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FDuration>(cfg.benchmarkWarmupTime()),
      Detail::warmup_iterations };\n            }\n\n            template <typename
      Clock = default_clock>\n            void run() {\n                static_assert(
      Clock::is_steady,\n                               \"Benchmarking clock should
      be steady\" );\n                auto const* cfg = getCurrentContext().getConfig();\n\n
      \               auto env = Detail::measure_environment<Clock>();\n\n                getResultCapture().benchmarkPreparing(name);\n
      \               CATCH_TRY{\n                    auto plan = user_code([&] {\n
      \                       return prepare<Clock>(*cfg, env);\n                    });\n\n
      \                   BenchmarkInfo info {\n                        CATCH_MOVE(name),\n
      \                       plan.estimated_duration.count(),\n                        plan.iterations_per_sample,\n
      \                       cfg->benchmarkSamples(),\n                        cfg->benchmarkResamples(),\n
      \                       env.clock_resolution.mean.count(),\n                        env.clock_cost.mean.count()\n
      \                   };\n\n                    getResultCapture().benchmarkStarting(info);\n\n
      \                   auto samples = user_code([&] {\n                        return
      plan.template run<Clock>(*cfg, env);\n                    });\n\n                    auto
      analysis = Detail::analyse(*cfg, samples.data(), samples.data() + samples.size());\n
      \                   BenchmarkStats<> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples),
      analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance
      };\n                    getResultCapture().benchmarkEnded(stats);\n                }
      CATCH_CATCH_ANON (TestFailureException const&) {\n                    getResultCapture().benchmarkFailed(\"Benchmark
      failed due to failed assertion\"_sr);\n                } CATCH_CATCH_ALL{\n
      \                   getResultCapture().benchmarkFailed(translateActiveException());\n
      \                   // We let the exception go further up so that the\n                    //
      test case is marked as failed.\n                    std::rethrow_exception(std::current_exception());\n
      \               }\n            }"
    signature: "struct Benchmark {\n            Benchmark(std::string&& benchmarkName)\n
      \               : name(CATCH_MOVE(benchmarkName)) {}\n\n            template
      <class FUN>\n            Benchmark(std::string&& benchmarkName , FUN &&func)\n
      \               : fun(CATCH_MOVE(func)), name(CATCH_MOVE(benchmarkName)) {}\n\n
      \           template <typename Clock>\n            ExecutionPlan prepare(const
      IConfig &cfg, Environment env) const {\n                auto min_time = env.clock_resolution.mean
      * Detail::minimum_ticks;\n                auto run_time = std::max(min_time,
      std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime()));\n
      \               auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<IDuration>(run_time),
      1, fun);\n                int new_iters = static_cast<int>(std::ceil(min_time
      * test.iterations / test.elapsed));\n                return { new_iters, test.elapsed
      / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FDuration>(cfg.benchmarkWarmupTime()),
      Detail::warmup_iterations };\n            }\n\n            template <typename
      Clock = default_clock>\n            void run() {\n                static_assert(
      Clock::is_steady,\n                               \"Benchmarking clock should
      be steady\" );\n                auto const* cfg = getCurrentContext().getConfig();\n\n
      \               auto env = Detail::measure_environment<Clock>();\n\n                getResultCapture().benchmarkPreparing(name);\n
      \               CATCH_TRY{\n                    auto plan = user_code([&] {\n
      \                       return prepare<Clock>(*cfg, env);\n                    });\n\n
      \                   BenchmarkInfo info {\n                        CATCH_MOVE(name),\n
      \                       plan.estimated_duration.count(),\n                        plan.iterations_per_sample,\n
      \                       cfg->benchmarkSamples(),\n                        cfg->benchmarkResamples(),\n
      \                       env.clock_resolution.mean.count(),\n                        env.clock_cost.mean.count()\n
      \                   };\n\n                    getResultCapture().benchmarkStarting(info);\n\n
      \                   auto samples = user_code([&] {\n                        return
      plan.template run<Clock>(*cfg, env);\n                    });\n\n                    auto
      analysis = Detail::analyse(*cfg, samples.data(), samples.data() + samples.size());\n
      \                   BenchmarkStats<> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples),
      analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance
      };\n                    getResultCapture().benchmarkEnded(stats);\n                }
      CATCH_CATCH_ANON (TestFailureException const&) {\n                    getResultCapture().benchmarkFailed(\"Benchmark
      failed due to failed assertion\"_sr);\n                } CATCH_CATCH_ALL{\n
      \                   getResultCapture().benchmarkFailed(translateActiveException());\n
      \                   // We let the exception go further up so that the\n                    //
      test case is marked as failed.\n                    std::rethrow_exception(std::current_exception());\n
      \               }\n            } & operator=(Fun func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' benchmarkName'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2099
    functionName: Catch::Benchmark::Benchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Benchmark(std::string&& benchmarkName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' benchmarkName'
    - func
    argTypes:
    - std::string
    - FUN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2103
    functionName: Catch::Benchmark::Benchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Benchmark(std::string&& benchmarkName , FUN &&func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: std::chrono::duration_cast<decltype(min_time)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: IConfig::benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: IConfig::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: std::chrono::duration_cast<FDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: IConfig::benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cfg
    - env
    argTypes:
    - IConfig
    - Environment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2106
    functionDepth: 0
    functionLinenumber: 2106
    functionLinenumberEnd: 2112
    functionName: Catch::Benchmark::prepare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::chrono::duration_cast<IDuration>
    - IConfig::benchmarkWarmupTime
    - IConfig::benchmarkSamples
    - Detail::run_for_at_least<Clock>
    - std::ceil
    - std::max
    - std::chrono::duration_cast<FDuration>
    - std::chrono::duration_cast<decltype(min_time)>
    linkageType: ''
    returnType: ExecutionPlan
    signature: ExecutionPlan prepare(const IConfig &cfg, Environment env) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2118,1
    - Dst: Detail::measure_environment<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2120,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2122,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2124,1
    - Dst: Catch::Benchmark::prepare
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2125,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2129,1
    - Dst: estimated_duration::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2130,1
    - Dst: auto*::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2132,1
    - Dst: auto*::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2133,1
    - Dst: auto::clock_resolution::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2134,1
    - Dst: auto::clock_cost::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2135,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2138,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2140,1
    - Dst: template run<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2141,1
    - Dst: Catch::Benchmark::Detail::analyse
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2115
    functionDepth: 3
    functionLinenumber: 2115
    functionLinenumberEnd: 2147
    functionName: Catch::Benchmark::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - auto*::benchmarkResamples
    - auto::clock_cost::mean::count
    - getCurrentContext
    - Catch::Benchmark::user_code
    - Catch::Benchmark::prepare
    - template run<Clock>
    - Catch::Benchmark::Detail::analyse
    - getResultCapture
    - auto::size
    - auto*::benchmarkSamples
    - CATCH_MOVE
    - auto::clock_resolution::mean::count
    - estimated_duration::count
    - Detail::measure_environment<Clock>
    - auto::data
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2149
    functionName: Catch::Benchmark::CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON (TestFailureException const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2149
    functionDepth: 1
    functionLinenumber: 2149
    functionLinenumberEnd: 2154
    functionName: ''
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3100
    functionsReached:
    - getResultCapture
    - translateActiveException
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: CATCH_CATCH_ALL
    signature: 'CATCH_CATCH_ALL '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2168
    functionDepth: 0
    functionLinenumber: 2168
    functionLinenumberEnd: 2170
    functionName: operator bool()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2099,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: std::chrono::duration_cast<decltype(min_time)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: std::chrono::duration_cast<FDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: Catch::getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2118,1
    - Dst: Detail::measure_environment<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2120,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2122,1
    - Dst: user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2124,1
    - Dst: prepare<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2125,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2129,1
    - Dst: estimated_duration::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2130,1
    - Dst: auto*::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2132,1
    - Dst: auto*::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2133,1
    - Dst: auto::clock_resolution::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2134,1
    - Dst: auto::clock_cost::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2135,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2138,1
    - Dst: user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2140,1
    - Dst: template run<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2141,1
    - Dst: Catch::Benchmark::Detail::analyse
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2146,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2148,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: Catch::translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: Catch::getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2160,1
    - Dst: auto*::skipBenchmarks
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2161,1
    - Dst: Catch::Benchmark::Detail::BenchmarkFunction
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2162,1
    - Dst: run
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - func
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2097
    functionDepth: 2
    functionLinenumber: 2097
    functionLinenumberEnd: 2166
    functionName: '& operator=(Fun func)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::max
    - std::current_exception
    - template run<Clock>
    - benchmarkSamples
    - std::chrono::duration_cast<IDuration>
    - auto::clock_cost::mean::count
    - Detail::run_for_at_least<Clock>
    - Catch::Benchmark::Detail::analyse
    - Catch::getCurrentContext
    - auto::clock_resolution::mean::count
    - std::rethrow_exception
    - Detail::measure_environment<Clock>
    - std::chrono::duration_cast<decltype(min_time)>
    - Catch::translateActiveException
    - run
    - getResultCapture
    - auto::size
    - prepare<Clock>
    - std::chrono::duration_cast<FDuration>
    - benchmarkWarmupTime
    - auto::data
    - auto*::skipBenchmarks
    - auto*::benchmarkResamples
    - std::ceil
    - user_code
    - auto*::benchmarkSamples
    - CATCH_MOVE
    - Catch::Benchmark::Detail::BenchmarkFunction
    - estimated_duration::count
    linkageType: ''
    returnType: "struct Benchmark {\n            Benchmark(std::string&& benchmarkName)\n
      \               : name(CATCH_MOVE(benchmarkName)) {}\n\n            template
      <class FUN>\n            Benchmark(std::string&& benchmarkName , FUN &&func)\n
      \               : fun(CATCH_MOVE(func)), name(CATCH_MOVE(benchmarkName)) {}\n\n
      \           template <typename Clock>\n            ExecutionPlan prepare(const
      IConfig &cfg, Environment env) const {\n                auto min_time = env.clock_resolution.mean
      * Detail::minimum_ticks;\n                auto run_time = std::max(min_time,
      std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime()));\n
      \               auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<IDuration>(run_time),
      1, fun);\n                int new_iters = static_cast<int>(std::ceil(min_time
      * test.iterations / test.elapsed));\n                return { new_iters, test.elapsed
      / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FDuration>(cfg.benchmarkWarmupTime()),
      Detail::warmup_iterations };\n            }\n\n            template <typename
      Clock = default_clock>\n            void run() {\n                static_assert(
      Clock::is_steady,\n                               \"Benchmarking clock should
      be steady\" );\n                auto const* cfg = getCurrentContext().getConfig();\n\n
      \               auto env = Detail::measure_environment<Clock>();\n\n                getResultCapture().benchmarkPreparing(name);\n
      \               CATCH_TRY{\n                    auto plan = user_code([&] {\n
      \                       return prepare<Clock>(*cfg, env);\n                    });\n\n
      \                   BenchmarkInfo info {\n                        CATCH_MOVE(name),\n
      \                       plan.estimated_duration.count(),\n                        plan.iterations_per_sample,\n
      \                       cfg->benchmarkSamples(),\n                        cfg->benchmarkResamples(),\n
      \                       env.clock_resolution.mean.count(),\n                        env.clock_cost.mean.count()\n
      \                   };\n\n                    getResultCapture().benchmarkStarting(info);\n\n
      \                   auto samples = user_code([&] {\n                        return
      plan.template run<Clock>(*cfg, env);\n                    });\n\n                    auto
      analysis = Detail::analyse(*cfg, samples.data(), samples.data() + samples.size());\n
      \                   BenchmarkStats<> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples),
      analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance
      };\n                    getResultCapture().benchmarkEnded(stats);\n                }
      CATCH_CATCH_ANON (TestFailureException const&) {\n                    getResultCapture().benchmarkFailed(\"Benchmark
      failed due to failed assertion\"_sr);\n                } CATCH_CATCH_ALL{\n
      \                   getResultCapture().benchmarkFailed(translateActiveException());\n
      \                   // We let the exception go further up so that the\n                    //
      test case is marked as failed.\n                    std::rethrow_exception(std::current_exception());\n
      \               }\n            }"
    signature: "struct Benchmark {\n            Benchmark(std::string&& benchmarkName)\n
      \               : name(CATCH_MOVE(benchmarkName)) {}\n\n            template
      <class FUN>\n            Benchmark(std::string&& benchmarkName , FUN &&func)\n
      \               : fun(CATCH_MOVE(func)), name(CATCH_MOVE(benchmarkName)) {}\n\n
      \           template <typename Clock>\n            ExecutionPlan prepare(const
      IConfig &cfg, Environment env) const {\n                auto min_time = env.clock_resolution.mean
      * Detail::minimum_ticks;\n                auto run_time = std::max(min_time,
      std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime()));\n
      \               auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<IDuration>(run_time),
      1, fun);\n                int new_iters = static_cast<int>(std::ceil(min_time
      * test.iterations / test.elapsed));\n                return { new_iters, test.elapsed
      / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FDuration>(cfg.benchmarkWarmupTime()),
      Detail::warmup_iterations };\n            }\n\n            template <typename
      Clock = default_clock>\n            void run() {\n                static_assert(
      Clock::is_steady,\n                               \"Benchmarking clock should
      be steady\" );\n                auto const* cfg = getCurrentContext().getConfig();\n\n
      \               auto env = Detail::measure_environment<Clock>();\n\n                getResultCapture().benchmarkPreparing(name);\n
      \               CATCH_TRY{\n                    auto plan = user_code([&] {\n
      \                       return prepare<Clock>(*cfg, env);\n                    });\n\n
      \                   BenchmarkInfo info {\n                        CATCH_MOVE(name),\n
      \                       plan.estimated_duration.count(),\n                        plan.iterations_per_sample,\n
      \                       cfg->benchmarkSamples(),\n                        cfg->benchmarkResamples(),\n
      \                       env.clock_resolution.mean.count(),\n                        env.clock_cost.mean.count()\n
      \                   };\n\n                    getResultCapture().benchmarkStarting(info);\n\n
      \                   auto samples = user_code([&] {\n                        return
      plan.template run<Clock>(*cfg, env);\n                    });\n\n                    auto
      analysis = Detail::analyse(*cfg, samples.data(), samples.data() + samples.size());\n
      \                   BenchmarkStats<> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples),
      analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance
      };\n                    getResultCapture().benchmarkEnded(stats);\n                }
      CATCH_CATCH_ANON (TestFailureException const&) {\n                    getResultCapture().benchmarkFailed(\"Benchmark
      failed due to failed assertion\"_sr);\n                } CATCH_CATCH_ALL{\n
      \                   getResultCapture().benchmarkFailed(translateActiveException());\n
      \                   // We let the exception go further up so that the\n                    //
      test case is marked as failed.\n                    std::rethrow_exception(std::current_exception());\n
      \               }\n            } & operator=(Fun func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' benchmarkName'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2099
    functionName: Catch::Benchmark::Benchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Benchmark(std::string&& benchmarkName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' benchmarkName'
    - func
    argTypes:
    - std::string
    - FUN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2103
    functionName: Catch::Benchmark::Benchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Benchmark(std::string&& benchmarkName , FUN &&func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: std::chrono::duration_cast<decltype(min_time)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: IConfig::benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: IConfig::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: std::chrono::duration_cast<FDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: IConfig::benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cfg
    - env
    argTypes:
    - IConfig
    - Environment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2106
    functionDepth: 0
    functionLinenumber: 2106
    functionLinenumberEnd: 2112
    functionName: Catch::Benchmark::prepare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::chrono::duration_cast<IDuration>
    - IConfig::benchmarkWarmupTime
    - IConfig::benchmarkSamples
    - Detail::run_for_at_least<Clock>
    - std::ceil
    - std::max
    - std::chrono::duration_cast<FDuration>
    - std::chrono::duration_cast<decltype(min_time)>
    linkageType: ''
    returnType: ExecutionPlan
    signature: ExecutionPlan prepare(const IConfig &cfg, Environment env) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2118,1
    - Dst: Detail::measure_environment<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2120,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2122,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2124,1
    - Dst: Catch::Benchmark::prepare
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2125,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2129,1
    - Dst: estimated_duration::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2130,1
    - Dst: auto*::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2132,1
    - Dst: auto*::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2133,1
    - Dst: auto::clock_resolution::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2134,1
    - Dst: auto::clock_cost::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2135,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2138,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2140,1
    - Dst: template run<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2141,1
    - Dst: Catch::Benchmark::Detail::analyse
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2115
    functionDepth: 3
    functionLinenumber: 2115
    functionLinenumberEnd: 2147
    functionName: Catch::Benchmark::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - auto*::benchmarkResamples
    - auto::clock_cost::mean::count
    - getCurrentContext
    - Catch::Benchmark::user_code
    - Catch::Benchmark::prepare
    - template run<Clock>
    - Catch::Benchmark::Detail::analyse
    - getResultCapture
    - auto::size
    - auto*::benchmarkSamples
    - CATCH_MOVE
    - auto::clock_resolution::mean::count
    - estimated_duration::count
    - Detail::measure_environment<Clock>
    - auto::data
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2149
    functionName: Catch::Benchmark::CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON (TestFailureException const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: Catch::translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2149
    functionDepth: 1
    functionLinenumber: 2149
    functionLinenumberEnd: 2154
    functionName: ''
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3107
    functionsReached:
    - getResultCapture
    - std::rethrow_exception
    - std::current_exception
    - Catch::translateActiveException
    linkageType: ''
    returnType: CATCH_CATCH_ALL
    signature: 'CATCH_CATCH_ALL '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2168
    functionDepth: 0
    functionLinenumber: 2168
    functionLinenumberEnd: 2170
    functionName: operator bool()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2099,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: std::chrono::duration_cast<decltype(min_time)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: std::chrono::duration_cast<FDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2118,1
    - Dst: Detail::measure_environment<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2120,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2122,1
    - Dst: user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2124,1
    - Dst: prepare<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2125,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2129,1
    - Dst: estimated_duration::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2130,1
    - Dst: auto*::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2132,1
    - Dst: auto*::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2133,1
    - Dst: auto::clock_resolution::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2134,1
    - Dst: auto::clock_cost::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2135,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2138,1
    - Dst: user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2140,1
    - Dst: template run<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2141,1
    - Dst: Catch::Benchmark::Detail::analyse
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2146,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2148,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2160,1
    - Dst: auto*::skipBenchmarks
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2161,1
    - Dst: Catch::Benchmark::Detail::BenchmarkFunction
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2162,1
    - Dst: run
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - func
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2166
    functionName: '& operator=(Fun func)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - translateActiveException
    - getCurrentContext
    - std::max
    - std::current_exception
    - template run<Clock>
    - benchmarkSamples
    - std::chrono::duration_cast<IDuration>
    - auto::clock_cost::mean::count
    - Detail::run_for_at_least<Clock>
    - Catch::Benchmark::Detail::analyse
    - std::rethrow_exception
    - auto::clock_resolution::mean::count
    - Detail::measure_environment<Clock>
    - std::chrono::duration_cast<decltype(min_time)>
    - run
    - getResultCapture
    - auto::size
    - prepare<Clock>
    - std::chrono::duration_cast<FDuration>
    - benchmarkWarmupTime
    - auto::data
    - auto*::skipBenchmarks
    - auto*::benchmarkResamples
    - std::ceil
    - user_code
    - auto*::benchmarkSamples
    - CATCH_MOVE
    - Catch::Benchmark::Detail::BenchmarkFunction
    - estimated_duration::count
    linkageType: ''
    returnType: "struct Benchmark {\n            Benchmark(std::string&& benchmarkName)\n
      \               : name(CATCH_MOVE(benchmarkName)) {}\n\n            template
      <class FUN>\n            Benchmark(std::string&& benchmarkName , FUN &&func)\n
      \               : fun(CATCH_MOVE(func)), name(CATCH_MOVE(benchmarkName)) {}\n\n
      \           template <typename Clock>\n            ExecutionPlan prepare(const
      IConfig &cfg, Environment env) const {\n                auto min_time = env.clock_resolution.mean
      * Detail::minimum_ticks;\n                auto run_time = std::max(min_time,
      std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime()));\n
      \               auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<IDuration>(run_time),
      1, fun);\n                int new_iters = static_cast<int>(std::ceil(min_time
      * test.iterations / test.elapsed));\n                return { new_iters, test.elapsed
      / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FDuration>(cfg.benchmarkWarmupTime()),
      Detail::warmup_iterations };\n            }\n\n            template <typename
      Clock = default_clock>\n            void run() {\n                static_assert(
      Clock::is_steady,\n                               \"Benchmarking clock should
      be steady\" );\n                auto const* cfg = getCurrentContext().getConfig();\n\n
      \               auto env = Detail::measure_environment<Clock>();\n\n                getResultCapture().benchmarkPreparing(name);\n
      \               CATCH_TRY{\n                    auto plan = user_code([&] {\n
      \                       return prepare<Clock>(*cfg, env);\n                    });\n\n
      \                   BenchmarkInfo info {\n                        CATCH_MOVE(name),\n
      \                       plan.estimated_duration.count(),\n                        plan.iterations_per_sample,\n
      \                       cfg->benchmarkSamples(),\n                        cfg->benchmarkResamples(),\n
      \                       env.clock_resolution.mean.count(),\n                        env.clock_cost.mean.count()\n
      \                   };\n\n                    getResultCapture().benchmarkStarting(info);\n\n
      \                   auto samples = user_code([&] {\n                        return
      plan.template run<Clock>(*cfg, env);\n                    });\n\n                    auto
      analysis = Detail::analyse(*cfg, samples.data(), samples.data() + samples.size());\n
      \                   BenchmarkStats<> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples),
      analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance
      };\n                    getResultCapture().benchmarkEnded(stats);\n                }
      CATCH_CATCH_ANON (TestFailureException const&) {\n                    getResultCapture().benchmarkFailed(\"Benchmark
      failed due to failed assertion\"_sr);\n                } CATCH_CATCH_ALL{\n
      \                   getResultCapture().benchmarkFailed(translateActiveException());\n
      \                   // We let the exception go further up so that the\n                    //
      test case is marked as failed.\n                    std::rethrow_exception(std::current_exception());\n
      \               }\n            }"
    signature: "struct Benchmark {\n            Benchmark(std::string&& benchmarkName)\n
      \               : name(CATCH_MOVE(benchmarkName)) {}\n\n            template
      <class FUN>\n            Benchmark(std::string&& benchmarkName , FUN &&func)\n
      \               : fun(CATCH_MOVE(func)), name(CATCH_MOVE(benchmarkName)) {}\n\n
      \           template <typename Clock>\n            ExecutionPlan prepare(const
      IConfig &cfg, Environment env) const {\n                auto min_time = env.clock_resolution.mean
      * Detail::minimum_ticks;\n                auto run_time = std::max(min_time,
      std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime()));\n
      \               auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<IDuration>(run_time),
      1, fun);\n                int new_iters = static_cast<int>(std::ceil(min_time
      * test.iterations / test.elapsed));\n                return { new_iters, test.elapsed
      / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FDuration>(cfg.benchmarkWarmupTime()),
      Detail::warmup_iterations };\n            }\n\n            template <typename
      Clock = default_clock>\n            void run() {\n                static_assert(
      Clock::is_steady,\n                               \"Benchmarking clock should
      be steady\" );\n                auto const* cfg = getCurrentContext().getConfig();\n\n
      \               auto env = Detail::measure_environment<Clock>();\n\n                getResultCapture().benchmarkPreparing(name);\n
      \               CATCH_TRY{\n                    auto plan = user_code([&] {\n
      \                       return prepare<Clock>(*cfg, env);\n                    });\n\n
      \                   BenchmarkInfo info {\n                        CATCH_MOVE(name),\n
      \                       plan.estimated_duration.count(),\n                        plan.iterations_per_sample,\n
      \                       cfg->benchmarkSamples(),\n                        cfg->benchmarkResamples(),\n
      \                       env.clock_resolution.mean.count(),\n                        env.clock_cost.mean.count()\n
      \                   };\n\n                    getResultCapture().benchmarkStarting(info);\n\n
      \                   auto samples = user_code([&] {\n                        return
      plan.template run<Clock>(*cfg, env);\n                    });\n\n                    auto
      analysis = Detail::analyse(*cfg, samples.data(), samples.data() + samples.size());\n
      \                   BenchmarkStats<> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples),
      analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance
      };\n                    getResultCapture().benchmarkEnded(stats);\n                }
      CATCH_CATCH_ANON (TestFailureException const&) {\n                    getResultCapture().benchmarkFailed(\"Benchmark
      failed due to failed assertion\"_sr);\n                } CATCH_CATCH_ALL{\n
      \                   getResultCapture().benchmarkFailed(translateActiveException());\n
      \                   // We let the exception go further up so that the\n                    //
      test case is marked as failed.\n                    std::rethrow_exception(std::current_exception());\n
      \               }\n            } & operator=(Fun func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' benchmarkName'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2099
    functionName: Catch::Benchmark::Benchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Benchmark(std::string&& benchmarkName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' benchmarkName'
    - func
    argTypes:
    - std::string
    - FUN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2103
    functionName: Catch::Benchmark::Benchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Benchmark(std::string&& benchmarkName , FUN &&func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: std::chrono::duration_cast<decltype(min_time)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: IConfig::benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: IConfig::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: std::chrono::duration_cast<FDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: IConfig::benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cfg
    - env
    argTypes:
    - IConfig
    - Environment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2106
    functionDepth: 0
    functionLinenumber: 2106
    functionLinenumberEnd: 2112
    functionName: Catch::Benchmark::prepare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - std::chrono::duration_cast<IDuration>
    - IConfig::benchmarkWarmupTime
    - IConfig::benchmarkSamples
    - Detail::run_for_at_least<Clock>
    - std::ceil
    - std::max
    - std::chrono::duration_cast<FDuration>
    - std::chrono::duration_cast<decltype(min_time)>
    linkageType: ''
    returnType: ExecutionPlan
    signature: ExecutionPlan prepare(const IConfig &cfg, Environment env) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2118,1
    - Dst: Detail::measure_environment<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2120,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2122,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2124,1
    - Dst: Catch::Benchmark::prepare
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2125,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2129,1
    - Dst: estimated_duration::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2130,1
    - Dst: auto*::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2132,1
    - Dst: auto*::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2133,1
    - Dst: auto::clock_resolution::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2134,1
    - Dst: auto::clock_cost::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2135,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2138,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2140,1
    - Dst: template run<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2141,1
    - Dst: Catch::Benchmark::Detail::analyse
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2115
    functionDepth: 3
    functionLinenumber: 2115
    functionLinenumberEnd: 2147
    functionName: Catch::Benchmark::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - auto*::benchmarkResamples
    - auto::clock_cost::mean::count
    - getCurrentContext
    - Catch::Benchmark::user_code
    - Catch::Benchmark::prepare
    - template run<Clock>
    - Catch::Benchmark::Detail::analyse
    - getResultCapture
    - auto::size
    - auto*::benchmarkSamples
    - CATCH_MOVE
    - auto::clock_resolution::mean::count
    - estimated_duration::count
    - Detail::measure_environment<Clock>
    - auto::data
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2149
    functionName: Catch::Benchmark::CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON (TestFailureException const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2149
    functionDepth: 1
    functionLinenumber: 2149
    functionLinenumberEnd: 2154
    functionName: ''
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3114
    functionsReached:
    - getResultCapture
    - translateActiveException
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: CATCH_CATCH_ALL
    signature: 'CATCH_CATCH_ALL '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2168
    functionDepth: 0
    functionLinenumber: 2168
    functionLinenumberEnd: 2170
    functionName: operator bool()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2099,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: std::chrono::duration_cast<decltype(min_time)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: std::chrono::duration_cast<FDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2118,1
    - Dst: Detail::measure_environment<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2120,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2122,1
    - Dst: user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2124,1
    - Dst: prepare<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2125,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2129,1
    - Dst: estimated_duration::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2130,1
    - Dst: auto*::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2132,1
    - Dst: auto*::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2133,1
    - Dst: auto::clock_resolution::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2134,1
    - Dst: auto::clock_cost::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2135,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2138,1
    - Dst: user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2140,1
    - Dst: template run<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2141,1
    - Dst: Catch::Benchmark::Detail::analyse
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2146,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2148,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2160,1
    - Dst: auto*::skipBenchmarks
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2161,1
    - Dst: Catch::Benchmark::Detail::BenchmarkFunction
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2162,1
    - Dst: run
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - func
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2166
    functionName: '& operator=(Fun func)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - translateActiveException
    - getCurrentContext
    - std::max
    - std::current_exception
    - template run<Clock>
    - benchmarkSamples
    - std::chrono::duration_cast<IDuration>
    - auto::clock_cost::mean::count
    - Detail::run_for_at_least<Clock>
    - Catch::Benchmark::Detail::analyse
    - std::rethrow_exception
    - auto::clock_resolution::mean::count
    - Detail::measure_environment<Clock>
    - std::chrono::duration_cast<decltype(min_time)>
    - run
    - getResultCapture
    - auto::size
    - prepare<Clock>
    - std::chrono::duration_cast<FDuration>
    - benchmarkWarmupTime
    - auto::data
    - auto*::skipBenchmarks
    - auto*::benchmarkResamples
    - std::ceil
    - user_code
    - auto*::benchmarkSamples
    - CATCH_MOVE
    - Catch::Benchmark::Detail::BenchmarkFunction
    - estimated_duration::count
    linkageType: ''
    returnType: "struct Benchmark {\n            Benchmark(std::string&& benchmarkName)\n
      \               : name(CATCH_MOVE(benchmarkName)) {}\n\n            template
      <class FUN>\n            Benchmark(std::string&& benchmarkName , FUN &&func)\n
      \               : fun(CATCH_MOVE(func)), name(CATCH_MOVE(benchmarkName)) {}\n\n
      \           template <typename Clock>\n            ExecutionPlan prepare(const
      IConfig &cfg, Environment env) const {\n                auto min_time = env.clock_resolution.mean
      * Detail::minimum_ticks;\n                auto run_time = std::max(min_time,
      std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime()));\n
      \               auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<IDuration>(run_time),
      1, fun);\n                int new_iters = static_cast<int>(std::ceil(min_time
      * test.iterations / test.elapsed));\n                return { new_iters, test.elapsed
      / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FDuration>(cfg.benchmarkWarmupTime()),
      Detail::warmup_iterations };\n            }\n\n            template <typename
      Clock = default_clock>\n            void run() {\n                static_assert(
      Clock::is_steady,\n                               \"Benchmarking clock should
      be steady\" );\n                auto const* cfg = getCurrentContext().getConfig();\n\n
      \               auto env = Detail::measure_environment<Clock>();\n\n                getResultCapture().benchmarkPreparing(name);\n
      \               CATCH_TRY{\n                    auto plan = user_code([&] {\n
      \                       return prepare<Clock>(*cfg, env);\n                    });\n\n
      \                   BenchmarkInfo info {\n                        CATCH_MOVE(name),\n
      \                       plan.estimated_duration.count(),\n                        plan.iterations_per_sample,\n
      \                       cfg->benchmarkSamples(),\n                        cfg->benchmarkResamples(),\n
      \                       env.clock_resolution.mean.count(),\n                        env.clock_cost.mean.count()\n
      \                   };\n\n                    getResultCapture().benchmarkStarting(info);\n\n
      \                   auto samples = user_code([&] {\n                        return
      plan.template run<Clock>(*cfg, env);\n                    });\n\n                    auto
      analysis = Detail::analyse(*cfg, samples.data(), samples.data() + samples.size());\n
      \                   BenchmarkStats<> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples),
      analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance
      };\n                    getResultCapture().benchmarkEnded(stats);\n                }
      CATCH_CATCH_ANON (TestFailureException const&) {\n                    getResultCapture().benchmarkFailed(\"Benchmark
      failed due to failed assertion\"_sr);\n                } CATCH_CATCH_ALL{\n
      \                   getResultCapture().benchmarkFailed(translateActiveException());\n
      \                   // We let the exception go further up so that the\n                    //
      test case is marked as failed.\n                    std::rethrow_exception(std::current_exception());\n
      \               }\n            }"
    signature: "struct Benchmark {\n            Benchmark(std::string&& benchmarkName)\n
      \               : name(CATCH_MOVE(benchmarkName)) {}\n\n            template
      <class FUN>\n            Benchmark(std::string&& benchmarkName , FUN &&func)\n
      \               : fun(CATCH_MOVE(func)), name(CATCH_MOVE(benchmarkName)) {}\n\n
      \           template <typename Clock>\n            ExecutionPlan prepare(const
      IConfig &cfg, Environment env) const {\n                auto min_time = env.clock_resolution.mean
      * Detail::minimum_ticks;\n                auto run_time = std::max(min_time,
      std::chrono::duration_cast<decltype(min_time)>(cfg.benchmarkWarmupTime()));\n
      \               auto&& test = Detail::run_for_at_least<Clock>(std::chrono::duration_cast<IDuration>(run_time),
      1, fun);\n                int new_iters = static_cast<int>(std::ceil(min_time
      * test.iterations / test.elapsed));\n                return { new_iters, test.elapsed
      / test.iterations * new_iters * cfg.benchmarkSamples(), fun, std::chrono::duration_cast<FDuration>(cfg.benchmarkWarmupTime()),
      Detail::warmup_iterations };\n            }\n\n            template <typename
      Clock = default_clock>\n            void run() {\n                static_assert(
      Clock::is_steady,\n                               \"Benchmarking clock should
      be steady\" );\n                auto const* cfg = getCurrentContext().getConfig();\n\n
      \               auto env = Detail::measure_environment<Clock>();\n\n                getResultCapture().benchmarkPreparing(name);\n
      \               CATCH_TRY{\n                    auto plan = user_code([&] {\n
      \                       return prepare<Clock>(*cfg, env);\n                    });\n\n
      \                   BenchmarkInfo info {\n                        CATCH_MOVE(name),\n
      \                       plan.estimated_duration.count(),\n                        plan.iterations_per_sample,\n
      \                       cfg->benchmarkSamples(),\n                        cfg->benchmarkResamples(),\n
      \                       env.clock_resolution.mean.count(),\n                        env.clock_cost.mean.count()\n
      \                   };\n\n                    getResultCapture().benchmarkStarting(info);\n\n
      \                   auto samples = user_code([&] {\n                        return
      plan.template run<Clock>(*cfg, env);\n                    });\n\n                    auto
      analysis = Detail::analyse(*cfg, samples.data(), samples.data() + samples.size());\n
      \                   BenchmarkStats<> stats{ CATCH_MOVE(info), CATCH_MOVE(analysis.samples),
      analysis.mean, analysis.standard_deviation, analysis.outliers, analysis.outlier_variance
      };\n                    getResultCapture().benchmarkEnded(stats);\n                }
      CATCH_CATCH_ANON (TestFailureException const&) {\n                    getResultCapture().benchmarkFailed(\"Benchmark
      failed due to failed assertion\"_sr);\n                } CATCH_CATCH_ALL{\n
      \                   getResultCapture().benchmarkFailed(translateActiveException());\n
      \                   // We let the exception go further up so that the\n                    //
      test case is marked as failed.\n                    std::rethrow_exception(std::current_exception());\n
      \               }\n            } & operator=(Fun func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' benchmarkName'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2099
    functionName: Catch::Benchmark::Benchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Benchmark(std::string&& benchmarkName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' benchmarkName'
    - func
    argTypes:
    - std::string
    - FUN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2103
    functionName: Catch::Benchmark::Benchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Benchmark(std::string&& benchmarkName , FUN &&func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: std::chrono::duration_cast<decltype(min_time)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: IConfig::benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2108,1
    - Dst: Detail::run_for_at_least<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: std::chrono::duration_cast<IDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2110,1
    - Dst: IConfig::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: std::chrono::duration_cast<FDuration>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    - Dst: IConfig::benchmarkWarmupTime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cfg
    - env
    argTypes:
    - IConfig
    - Environment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2106
    functionDepth: 0
    functionLinenumber: 2106
    functionLinenumberEnd: 2112
    functionName: Catch::Benchmark::prepare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - std::chrono::duration_cast<IDuration>
    - IConfig::benchmarkWarmupTime
    - IConfig::benchmarkSamples
    - Detail::run_for_at_least<Clock>
    - std::ceil
    - std::max
    - std::chrono::duration_cast<FDuration>
    - std::chrono::duration_cast<decltype(min_time)>
    linkageType: ''
    returnType: ExecutionPlan
    signature: ExecutionPlan prepare(const IConfig &cfg, Environment env) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2118,1
    - Dst: Detail::measure_environment<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2120,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2122,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2124,1
    - Dst: Catch::Benchmark::prepare
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2125,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2129,1
    - Dst: estimated_duration::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2130,1
    - Dst: auto*::benchmarkSamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2132,1
    - Dst: auto*::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2133,1
    - Dst: auto::clock_resolution::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2134,1
    - Dst: auto::clock_cost::mean::count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2135,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2138,1
    - Dst: Catch::Benchmark::user_code
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2140,1
    - Dst: template run<Clock>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2141,1
    - Dst: Catch::Benchmark::Detail::analyse
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2144,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2145,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2115
    functionDepth: 3
    functionLinenumber: 2115
    functionLinenumberEnd: 2147
    functionName: Catch::Benchmark::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - auto*::benchmarkResamples
    - auto::clock_cost::mean::count
    - getCurrentContext
    - Catch::Benchmark::user_code
    - Catch::Benchmark::prepare
    - template run<Clock>
    - Catch::Benchmark::Detail::analyse
    - getResultCapture
    - auto::size
    - auto*::benchmarkSamples
    - CATCH_MOVE
    - auto::clock_resolution::mean::count
    - estimated_duration::count
    - Detail::measure_environment<Clock>
    - auto::data
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2149
    functionName: Catch::Benchmark::CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON (TestFailureException const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2150,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2149
    functionDepth: 1
    functionLinenumber: 2149
    functionLinenumberEnd: 2154
    functionName: ''
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3121
    functionsReached:
    - getResultCapture
    - translateActiveException
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: CATCH_CATCH_ALL
    signature: 'CATCH_CATCH_ALL '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2168
    functionDepth: 0
    functionLinenumber: 2168
    functionLinenumberEnd: 2170
    functionName: operator bool()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - arg1
    - ','
    - arg2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2179
    functionDepth: 0
    functionLinenumber: 2179
    functionLinenumberEnd: 2180
    functionName: INTERNAL_CATCH_GET_1_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_GET_1_ARG(arg1, arg2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - arg1
    - ','
    - arg2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2180
    functionDepth: 0
    functionLinenumber: 2180
    functionLinenumberEnd: 2181
    functionName: INTERNAL_CATCH_GET_2_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_GET_2_ARG(arg1, arg2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - BenchmarkName
    - ','
    - name
    - ','
    - benchmarkIndex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2182
    functionDepth: 0
    functionLinenumber: 2182
    functionLinenumberEnd: 2185
    functionName: INTERNAL_CATCH_BENCHMARK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_BENCHMARK(BenchmarkName, name, benchmarkIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - BenchmarkName
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2189
    functionName: INTERNAL_CATCH_BENCHMARK_ADVANCED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_BENCHMARK_ADVANCED(BenchmarkName, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2192
    functionDepth: 0
    functionLinenumber: 2192
    functionLinenumberEnd: 2194
    functionName: CATCH_BENCHMARK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_BENCHMARK(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2194
    functionDepth: 0
    functionLinenumber: 2194
    functionLinenumberEnd: 2196
    functionName: CATCH_BENCHMARK_ADVANCED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_BENCHMARK_ADVANCED(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2199
    functionDepth: 0
    functionLinenumber: 2199
    functionLinenumberEnd: 2201
    functionName: BENCHMARK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2203
    functionName: BENCHMARK_ADVANCED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BENCHMARK_ADVANCED(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(const ObjectStorage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(ObjectStorage&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct_on_exit<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2235
    functionName: ~ObjectStorage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - destruct_on_exit<T>
    linkageType: ''
    returnType: void
    signature: void ~ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: Catch::Benchmark::Detail::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void construct(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: Catch::Benchmark::Detail::destruct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: std::enable_if_t<AllowManualDestruction>
    signature: std::enable_if_t<AllowManualDestruction> destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T & stored_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - reinterpret_cast<T const*>
    linkageType: ''
    returnType: T
    signature: T & stored_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(const ObjectStorage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(ObjectStorage&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct_on_exit<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2235
    functionName: ~ObjectStorage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - destruct_on_exit<T>
    linkageType: ''
    returnType: void
    signature: void ~ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: Catch::Benchmark::Detail::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void construct(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: Catch::Benchmark::Detail::destruct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: std::enable_if_t<AllowManualDestruction>
    signature: std::enable_if_t<AllowManualDestruction> destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T & stored_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - reinterpret_cast<T const*>
    linkageType: ''
    returnType: T
    signature: T & stored_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(const ObjectStorage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(ObjectStorage&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct_on_exit<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2235
    functionName: ~ObjectStorage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - destruct_on_exit<T>
    linkageType: ''
    returnType: void
    signature: void ~ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: Catch::Benchmark::Detail::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void construct(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: Catch::Benchmark::Detail::destruct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: std::enable_if_t<AllowManualDestruction>
    signature: std::enable_if_t<AllowManualDestruction> destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T & stored_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - reinterpret_cast<T const*>
    linkageType: ''
    returnType: T
    signature: T & stored_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(const ObjectStorage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(ObjectStorage&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct_on_exit<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2235
    functionName: ~ObjectStorage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - destruct_on_exit<T>
    linkageType: ''
    returnType: void
    signature: void ~ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: Catch::Benchmark::Detail::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void construct(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: Catch::Benchmark::Detail::destruct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: std::enable_if_t<AllowManualDestruction>
    signature: std::enable_if_t<AllowManualDestruction> destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 12
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T & stored_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 12
    functionsReached:
    - reinterpret_cast<T const*>
    linkageType: ''
    returnType: T
    signature: T & stored_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(const ObjectStorage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(ObjectStorage&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct_on_exit<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2235
    functionName: ~ObjectStorage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - destruct_on_exit<T>
    linkageType: ''
    returnType: void
    signature: void ~ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: Catch::Benchmark::Detail::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void construct(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: Catch::Benchmark::Detail::destruct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: std::enable_if_t<AllowManualDestruction>
    signature: std::enable_if_t<AllowManualDestruction> destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T & stored_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - reinterpret_cast<T const*>
    linkageType: ''
    returnType: T
    signature: T & stored_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(const ObjectStorage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(ObjectStorage&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct_on_exit<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2235
    functionName: ~ObjectStorage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - destruct_on_exit<T>
    linkageType: ''
    returnType: void
    signature: void ~ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: Catch::Benchmark::Detail::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void construct(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: Catch::Benchmark::Detail::destruct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: std::enable_if_t<AllowManualDestruction>
    signature: std::enable_if_t<AllowManualDestruction> destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 18
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T & stored_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 18
    functionsReached:
    - reinterpret_cast<T const*>
    linkageType: ''
    returnType: T
    signature: T & stored_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(const ObjectStorage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(ObjectStorage&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct_on_exit<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2235
    functionName: ~ObjectStorage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - destruct_on_exit<T>
    linkageType: ''
    returnType: void
    signature: void ~ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: Catch::Benchmark::Detail::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void construct(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: Catch::Benchmark::Detail::destruct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: std::enable_if_t<AllowManualDestruction>
    signature: std::enable_if_t<AllowManualDestruction> destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 21
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T & stored_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 21
    functionsReached:
    - reinterpret_cast<T const*>
    linkageType: ''
    returnType: T
    signature: T & stored_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2223
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2228
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(const ObjectStorage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ObjectStorage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: Catch::Benchmark::Detail::ObjectStorage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: void
    signature: void ObjectStorage(ObjectStorage&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct_on_exit<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2235
    functionName: ~ObjectStorage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - destruct_on_exit<T>
    linkageType: ''
    returnType: void
    signature: void ~ObjectStorage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: Catch::Benchmark::Detail::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void construct(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: Catch::Benchmark::Detail::destruct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    linkageType: ''
    returnType: std::enable_if_t<AllowManualDestruction>
    signature: std::enable_if_t<AllowManualDestruction> destruct()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 24
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T & stored_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: Catch::Benchmark::Detail::stored_object
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 24
    functionsReached:
    - reinterpret_cast<T const*>
    linkageType: ''
    returnType: T
    signature: T & stored_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2368
    functionDepth: 0
    functionLinenumber: 2368
    functionLinenumberEnd: 2371
    functionName: operator << ( T const& value ) -> ReusableStringStream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator << ( T const& value ) -> ReusableStringStream&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2376
    functionName: Catch::ReusableStringStream::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto get() -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2368
    functionDepth: 0
    functionLinenumber: 2368
    functionLinenumberEnd: 2371
    functionName: operator << ( T const& value ) -> ReusableStringStream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator << ( T const& value ) -> ReusableStringStream&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2376
    functionName: Catch::ReusableStringStream::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto get() -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2432,1
    - Dst: std::initializer_list<E>::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2432,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2434,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2434,1
    - Dst: Catch::IMutableEnumValuesRegistry::registerEnum
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - enumName
    - allEnums
    - values
    argTypes:
    - StringRef
    - StringRef
    - std::initializer_list<E>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2429
    functionDepth: 1
    functionLinenumber: 2429
    functionLinenumberEnd: 2436
    functionName: Catch::IMutableEnumValuesRegistry::registerEnum
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - Catch::IMutableEnumValuesRegistry::registerEnum
    - std::vector::push_back
    - std::initializer_list<E>::size
    - std::vector::reserve
    linkageType: ''
    returnType: Detail::EnumInfo
    signature: Detail::EnumInfo & registerEnum( StringRef enumName, StringRef allEnums,
      std::initializer_list<E> values )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2432,1
    - Dst: std::initializer_list<E>::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2432,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2434,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2434,1
    - Dst: Catch::IMutableEnumValuesRegistry::registerEnum
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - enumName
    - allEnums
    - values
    argTypes:
    - StringRef
    - StringRef
    - std::initializer_list<E>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2429
    functionDepth: 1
    functionLinenumber: 2429
    functionLinenumberEnd: 2436
    functionName: Catch::IMutableEnumValuesRegistry::registerEnum
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - Catch::IMutableEnumValuesRegistry::registerEnum
    - std::vector::push_back
    - std::initializer_list<E>::size
    - std::vector::reserve
    linkageType: ''
    returnType: Detail::EnumInfo
    signature: Detail::EnumInfo & registerEnum( StringRef enumName, StringRef allEnums,
      std::initializer_list<E> values )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TagAliasRegistry::find
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2464,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2469
    functionName: Catch::Detail::catch_strnlen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - Catch::TagAliasRegistry::find
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t catch_strnlen(const char *str, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rawMemoryToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' object'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2485
    functionName: Catch::Detail::rawMemoryToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::rawMemoryToString
    linkageType: ''
    returnType: std::string
    signature: std::string rawMemoryToString( const T& object )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2508
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: "std::enable_if_t<\n            !std::is_enum<T>::value && !std::is_base_of<std::exception,
      T>::value,\n        std::string>"
    signature: "std::enable_if_t<\n            !std::is_enum<T>::value && !std::is_base_of<std::exception,
      T>::value,\n        std::string> convertUnstreamable( T const& )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2514
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: "std::enable_if_t<\n            !std::is_enum<T>::value && std::is_base_of<std::exception,
      T>::value,\n         std::string>"
    signature: "std::enable_if_t<\n            !std::is_enum<T>::value && std::is_base_of<std::exception,
      T>::value,\n         std::string> convertUnstreamable(T const& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertUnknownEnumToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2518
    functionDepth: 1
    functionLinenumber: 2518
    functionLinenumberEnd: 2522
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::convertUnknownEnumToString
    linkageType: ''
    returnType: "std::enable_if_t<\n            std::is_enum<T>::value,\n        std::string>"
    signature: "std::enable_if_t<\n            std::is_enum<T>::value,\n        std::string>
      convertUnstreamable( T const& value )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TagAliasRegistry::find
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2464,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2469
    functionName: Catch::Detail::catch_strnlen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - Catch::TagAliasRegistry::find
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t catch_strnlen(const char *str, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rawMemoryToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' object'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2485
    functionName: Catch::Detail::rawMemoryToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::rawMemoryToString
    linkageType: ''
    returnType: std::string
    signature: std::string rawMemoryToString( const T& object )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2508
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: "std::enable_if_t<\n            !std::is_enum<T>::value && !std::is_base_of<std::exception,
      T>::value,\n        std::string>"
    signature: "std::enable_if_t<\n            !std::is_enum<T>::value && !std::is_base_of<std::exception,
      T>::value,\n        std::string> convertUnstreamable( T const& )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2514
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: "std::enable_if_t<\n            !std::is_enum<T>::value && std::is_base_of<std::exception,
      T>::value,\n         std::string>"
    signature: "std::enable_if_t<\n            !std::is_enum<T>::value && std::is_base_of<std::exception,
      T>::value,\n         std::string> convertUnstreamable(T const& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertUnknownEnumToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2518
    functionDepth: 1
    functionLinenumber: 2518
    functionLinenumberEnd: 2522
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::convertUnknownEnumToString
    linkageType: ''
    returnType: "std::enable_if_t<\n            std::is_enum<T>::value,\n        std::string>"
    signature: "std::enable_if_t<\n            std::is_enum<T>::value,\n        std::string>
      convertUnstreamable( T const& value )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rss
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2548,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Fake
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2542
    functionDepth: 0
    functionLinenumber: 2542
    functionLinenumberEnd: 2550
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - rss
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::enable_if_t<::Catch::Detail::IsStreamInsertable<Fake>::value,
      std::string>
    signature: std::enable_if_t<::Catch::Detail::IsStreamInsertable<Fake>::value,
      std::string> convert(const Fake& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertUnstreamable
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2557,1
    - Dst: CATCH_CONFIG_FALLBACK_STRINGIFIER
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Fake
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2561
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_CONFIG_FALLBACK_STRINGIFIER
    - Catch::Detail::convertUnstreamable
    linkageType: ''
    returnType: std::enable_if_t<!::Catch::Detail::IsStreamInsertable<Fake>::value,
      std::string>
    signature: std::enable_if_t<!::Catch::Detail::IsStreamInsertable<Fake>::value,
      std::string> convert( const Fake& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::convert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2571
    functionName: Catch::Detail::stringify
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::convert
    linkageType: ''
    returnType: std::string
    signature: std::string stringify(const T& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2575,1
    - Dst: static_cast<std::underlying_type_t<E>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2574
    functionDepth: 1
    functionLinenumber: 2574
    functionLinenumberEnd: 2576
    functionName: Catch::Detail::convertUnknownEnumToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<std::underlying_type_t<E>>
    linkageType: ''
    returnType: std::string
    signature: std::string convertUnknownEnumToString( E e )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::convert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2571
    functionName: Catch::Detail::stringify
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::convert
    linkageType: ''
    returnType: std::string
    signature: std::string stringify(const T& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2575,1
    - Dst: static_cast<std::underlying_type_t<E>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2574
    functionDepth: 1
    functionLinenumber: 2574
    functionLinenumberEnd: 2576
    functionName: Catch::Detail::convertUnknownEnumToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<std::underlying_type_t<E>>
    linkageType: ''
    returnType: std::string
    signature: std::string convertUnknownEnumToString( E e )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2636,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2637,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2635
    functionDepth: 2
    functionLinenumber: 2635
    functionLinenumberEnd: 2638
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - StringRef
    - Catch::Detail::catch_strnlen
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string convert(char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2643,1
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2644,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2645,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - signed char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2642
    functionDepth: 2
    functionLinenumber: 2642
    functionLinenumberEnd: 2646
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - StringRef
    - Catch::Detail::catch_strnlen
    - Catch::Detail::convertIntoString
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string convert(signed char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2651,1
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2652,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2653,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2650
    functionDepth: 2
    functionLinenumber: 2650
    functionLinenumberEnd: 2654
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - StringRef
    - Catch::Detail::catch_strnlen
    - Catch::Detail::convertIntoString
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string convert(unsigned char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2693
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string convert(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2711
    functionDepth: 0
    functionLinenumber: 2711
    functionLinenumberEnd: 2714
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::nullptr_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rawMemoryToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2732
    functionDepth: 0
    functionLinenumber: 2732
    functionLinenumberEnd: 2738
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::rawMemoryToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert(U* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rawMemoryToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - C::* p
    argTypes:
    - R
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2749
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::rawMemoryToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert(R C::* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::Catch::Detail::clrReferenceToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2755
    functionDepth: 0
    functionLinenumber: 2755
    functionLinenumberEnd: 2757
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - ::Catch::Detail::clrReferenceToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert( T^ ref )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2767,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2769,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIterator
    - Sentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2773
    functionName: Catch::Detail::rangeToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string rangeToString(InputIterator first, Sentinel last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2767,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2769,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIterator
    - Sentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2773
    functionName: Catch::Detail::rangeToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string rangeToString(InputIterator first, Sentinel last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TagAliasRegistry::find
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2464,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2469
    functionName: Catch::Detail::catch_strnlen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - static_cast<std::size_t>
    - Catch::TagAliasRegistry::find
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t catch_strnlen(const char *str, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rawMemoryToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' object'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2485
    functionName: Catch::Detail::rawMemoryToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Detail::rawMemoryToString
    linkageType: ''
    returnType: std::string
    signature: std::string rawMemoryToString( const T& object )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2508
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - std::string
    linkageType: ''
    returnType: "std::enable_if_t<\n            !std::is_enum<T>::value && !std::is_base_of<std::exception,
      T>::value,\n        std::string>"
    signature: "std::enable_if_t<\n            !std::is_enum<T>::value && !std::is_base_of<std::exception,
      T>::value,\n        std::string> convertUnstreamable( T const& )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2514
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - what
    linkageType: ''
    returnType: "std::enable_if_t<\n            !std::is_enum<T>::value && std::is_base_of<std::exception,
      T>::value,\n         std::string>"
    signature: "std::enable_if_t<\n            !std::is_enum<T>::value && std::is_base_of<std::exception,
      T>::value,\n         std::string> convertUnstreamable(T const& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertUnknownEnumToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2518
    functionDepth: 2
    functionLinenumber: 2518
    functionLinenumberEnd: 2522
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::convertUnknownEnumToString
    linkageType: ''
    returnType: "std::enable_if_t<\n            std::is_enum<T>::value,\n        std::string>"
    signature: "std::enable_if_t<\n            std::is_enum<T>::value,\n        std::string>
      convertUnstreamable( T const& value )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TagAliasRegistry::find
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2464,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2469
    functionName: Catch::Detail::catch_strnlen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - static_cast<std::size_t>
    - Catch::TagAliasRegistry::find
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t catch_strnlen(const char *str, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rawMemoryToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' object'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2485
    functionName: Catch::Detail::rawMemoryToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Detail::rawMemoryToString
    linkageType: ''
    returnType: std::string
    signature: std::string rawMemoryToString( const T& object )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2508
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - std::string
    linkageType: ''
    returnType: "std::enable_if_t<\n            !std::is_enum<T>::value && !std::is_base_of<std::exception,
      T>::value,\n        std::string>"
    signature: "std::enable_if_t<\n            !std::is_enum<T>::value && !std::is_base_of<std::exception,
      T>::value,\n        std::string> convertUnstreamable( T const& )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2514
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - what
    linkageType: ''
    returnType: "std::enable_if_t<\n            !std::is_enum<T>::value && std::is_base_of<std::exception,
      T>::value,\n         std::string>"
    signature: "std::enable_if_t<\n            !std::is_enum<T>::value && std::is_base_of<std::exception,
      T>::value,\n         std::string> convertUnstreamable(T const& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertUnknownEnumToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2518
    functionDepth: 2
    functionLinenumber: 2518
    functionLinenumberEnd: 2522
    functionName: Catch::Detail::convertUnstreamable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::convertUnknownEnumToString
    linkageType: ''
    returnType: "std::enable_if_t<\n            std::is_enum<T>::value,\n        std::string>"
    signature: "std::enable_if_t<\n            std::is_enum<T>::value,\n        std::string>
      convertUnstreamable( T const& value )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rss
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2548,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Fake
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2542
    functionDepth: 0
    functionLinenumber: 2542
    functionLinenumberEnd: 2550
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - rss
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::enable_if_t<::Catch::Detail::IsStreamInsertable<Fake>::value,
      std::string>
    signature: std::enable_if_t<::Catch::Detail::IsStreamInsertable<Fake>::value,
      std::string> convert(const Fake& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertUnstreamable
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2557,1
    - Dst: CATCH_CONFIG_FALLBACK_STRINGIFIER
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Fake
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2561
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - CATCH_CONFIG_FALLBACK_STRINGIFIER
    - Catch::Detail::convertUnstreamable
    linkageType: ''
    returnType: std::enable_if_t<!::Catch::Detail::IsStreamInsertable<Fake>::value,
      std::string>
    signature: std::enable_if_t<!::Catch::Detail::IsStreamInsertable<Fake>::value,
      std::string> convert( const Fake& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::convert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2571
    functionName: Catch::Detail::stringify
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::convert
    linkageType: ''
    returnType: std::string
    signature: std::string stringify(const T& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2575,1
    - Dst: static_cast<std::underlying_type_t<E>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2574
    functionDepth: 1
    functionLinenumber: 2574
    functionLinenumberEnd: 2576
    functionName: Catch::Detail::convertUnknownEnumToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<std::underlying_type_t<E>>
    linkageType: ''
    returnType: std::string
    signature: std::string convertUnknownEnumToString( E e )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::convert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2571
    functionName: Catch::Detail::stringify
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::convert
    linkageType: ''
    returnType: std::string
    signature: std::string stringify(const T& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2575,1
    - Dst: static_cast<std::underlying_type_t<E>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2574
    functionDepth: 1
    functionLinenumber: 2574
    functionLinenumberEnd: 2576
    functionName: Catch::Detail::convertUnknownEnumToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<std::underlying_type_t<E>>
    linkageType: ''
    returnType: std::string
    signature: std::string convertUnknownEnumToString( E e )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2636,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2637,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2635
    functionDepth: 2
    functionLinenumber: 2635
    functionLinenumberEnd: 2638
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - StringRef
    - Catch::Detail::catch_strnlen
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string convert(char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2643,1
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2644,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2645,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - signed char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2642
    functionDepth: 2
    functionLinenumber: 2642
    functionLinenumberEnd: 2646
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - StringRef
    - Catch::Detail::catch_strnlen
    - Catch::Detail::convertIntoString
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string convert(signed char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2651,1
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2652,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2653,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2650
    functionDepth: 2
    functionLinenumber: 2650
    functionLinenumberEnd: 2654
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - StringRef
    - Catch::Detail::catch_strnlen
    - Catch::Detail::convertIntoString
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string convert(unsigned char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2693
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string convert(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2711
    functionDepth: 0
    functionLinenumber: 2711
    functionLinenumberEnd: 2714
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::nullptr_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rawMemoryToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2732
    functionDepth: 0
    functionLinenumber: 2732
    functionLinenumberEnd: 2738
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::rawMemoryToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert(U* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rawMemoryToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - C::* p
    argTypes:
    - R
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2749
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::rawMemoryToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert(R C::* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::Catch::Detail::clrReferenceToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2755
    functionDepth: 0
    functionLinenumber: 2755
    functionLinenumberEnd: 2757
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ::Catch::Detail::clrReferenceToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert( T^ ref )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2767,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2769,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIterator
    - Sentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2773
    functionName: Catch::Detail::rangeToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string rangeToString(InputIterator first, Sentinel last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2767,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2769,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIterator
    - Sentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2773
    functionName: Catch::Detail::rangeToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string rangeToString(InputIterator first, Sentinel last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2798,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2800,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pair'
    argTypes:
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2803
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::pair<T1, T2>& pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2798,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2800,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pair'
    argTypes:
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2803
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::pair<T1, T2>& pair)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2814,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' optional'
    argTypes:
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2813
    functionDepth: 1
    functionLinenumber: 2813
    functionLinenumberEnd: 2819
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - has_value
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::optional<T>& optional)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2823
    functionDepth: 0
    functionLinenumber: 2823
    functionLinenumberEnd: 2825
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::nullopt_t&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2814,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' optional'
    argTypes:
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2813
    functionDepth: 1
    functionLinenumber: 2813
    functionLinenumberEnd: 2819
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - has_value
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::optional<T>& optional)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2823
    functionDepth: 0
    functionLinenumber: 2823
    functionLinenumberEnd: 2825
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::nullopt_t&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2843,1
    - Dst: std::get<N>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2843,1
    - Dst: should_print
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' tuple'
    - ' os'
    argTypes:
    - Tuple
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2845
    functionName: Catch::Detail::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - std::get<N>
    - should_print
    linkageType: ''
    returnType: void
    signature: void print(const Tuple& tuple, std::ostream& os)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2853
    functionDepth: 0
    functionLinenumber: 2853
    functionLinenumberEnd: 2853
    functionName: Catch::Detail::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print(const Tuple&, std::ostream&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2843,1
    - Dst: std::get<N>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2843,1
    - Dst: should_print
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' tuple'
    - ' os'
    argTypes:
    - Tuple
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2845
    functionName: Catch::Detail::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - std::get<N>
    - should_print
    linkageType: ''
    returnType: void
    signature: void print(const Tuple& tuple, std::ostream& os)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2853
    functionDepth: 0
    functionLinenumber: 2853
    functionLinenumberEnd: 2853
    functionName: Catch::Detail::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print(const Tuple&, std::ostream&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_print
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2864,1
    - Dst: ReusableStringStream::get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2864,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' tuple'
    argTypes:
    - std::tuple<Types...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2861
    functionDepth: 0
    functionLinenumber: 2861
    functionLinenumberEnd: 2867
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::get
    - ReusableStringStream::str
    - should_print
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::tuple<Types...>& tuple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2843,1
    - Dst: std::get<N>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2843,1
    - Dst: should_print
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' tuple'
    - ' os'
    argTypes:
    - Tuple
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2845
    functionName: Catch::Detail::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - std::get<N>
    - should_print
    linkageType: ''
    returnType: void
    signature: void print(const Tuple& tuple, std::ostream& os)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2853
    functionDepth: 0
    functionLinenumber: 2853
    functionLinenumberEnd: 2853
    functionName: Catch::Detail::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print(const Tuple&, std::ostream&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2843,1
    - Dst: std::get<N>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2843,1
    - Dst: should_print
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' tuple'
    - ' os'
    argTypes:
    - Tuple
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2845
    functionName: Catch::Detail::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - std::get<N>
    - should_print
    linkageType: ''
    returnType: void
    signature: void print(const Tuple& tuple, std::ostream& os)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2853
    functionDepth: 0
    functionLinenumber: 2853
    functionLinenumberEnd: 2853
    functionName: Catch::Detail::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print(const Tuple&, std::ostream&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_print
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2864,1
    - Dst: ReusableStringStream::get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2864,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' tuple'
    argTypes:
    - std::tuple<Types...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2861
    functionDepth: 0
    functionLinenumber: 2861
    functionLinenumberEnd: 2867
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::get
    - ReusableStringStream::str
    - should_print
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::tuple<Types...>& tuple)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2879
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::monostate&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valueless_by_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2885,1
    - Dst: visit
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2888,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' variant'
    argTypes:
    - std::variant<Elements...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2884
    functionDepth: 1
    functionLinenumber: 2884
    functionLinenumberEnd: 2895
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::stringify
    - visit
    - valueless_by_exception
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::variant<Elements...>& variant)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2879
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::monostate&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valueless_by_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2885,1
    - Dst: visit
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2888,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' variant'
    argTypes:
    - std::variant<Elements...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2884
    functionDepth: 1
    functionLinenumber: 2884
    functionLinenumberEnd: 2895
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::stringify
    - visit
    - valueless_by_exception
    linkageType: ''
    returnType: std::string
    signature: std::string convert(const std::variant<Elements...>& variant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rangeToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2925,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2925,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2924
    functionDepth: 2
    functionLinenumber: 2924
    functionLinenumberEnd: 2926
    functionName: Catch::rangeToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::rangeToString
    - end
    - begin
    linkageType: ''
    returnType: std::string
    signature: std::string rangeToString( Range const& range )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2939,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<bool, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2930
    functionDepth: 1
    functionLinenumber: 2930
    functionLinenumberEnd: 2943
    functionName: Catch::rangeToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string rangeToString( std::vector<bool, Allocator> const& v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::rangeToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - R
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2947
    functionDepth: 3
    functionLinenumber: 2947
    functionLinenumberEnd: 2949
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::rangeToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert( R const& range )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::rangeToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2954
    functionDepth: 3
    functionLinenumber: 2954
    functionLinenumberEnd: 2956
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::rangeToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert(T const(&arr)[SZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::rangeToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2925,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2925,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2924
    functionDepth: 2
    functionLinenumber: 2924
    functionLinenumberEnd: 2926
    functionName: Catch::rangeToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::rangeToString
    - end
    - begin
    linkageType: ''
    returnType: std::string
    signature: std::string rangeToString( Range const& range )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2939,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<bool, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2930
    functionDepth: 1
    functionLinenumber: 2930
    functionLinenumberEnd: 2943
    functionName: Catch::rangeToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string rangeToString( std::vector<bool, Allocator> const& v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::rangeToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - R
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2947
    functionDepth: 3
    functionLinenumber: 2947
    functionLinenumberEnd: 2949
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::rangeToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert( R const& range )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::rangeToString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2954
    functionDepth: 3
    functionLinenumber: 2954
    functionLinenumberEnd: 2956
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::rangeToString
    linkageType: ''
    returnType: std::string
    signature: std::string convert(T const(&arr)[SZ])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ReusableStringStream::ReusableStringStream
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2973,1
    - Dst: Catch::ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2972
    functionDepth: 1
    functionLinenumber: 2972
    functionLinenumberEnd: 2977
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::ReusableStringStream::ReusableStringStream
    - Catch::ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2982
    functionDepth: 0
    functionLinenumber: 2982
    functionLinenumberEnd: 2982
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2986
    functionDepth: 0
    functionLinenumber: 2986
    functionLinenumberEnd: 2986
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2990
    functionDepth: 0
    functionLinenumber: 2990
    functionLinenumberEnd: 2990
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2994
    functionDepth: 0
    functionLinenumber: 2994
    functionLinenumberEnd: 2994
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2998
    functionDepth: 0
    functionLinenumber: 2998
    functionLinenumberEnd: 2998
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 3002
    functionDepth: 0
    functionLinenumber: 3002
    functionLinenumberEnd: 3002
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3011,1
    - Dst: Catch::symbol
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3011,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' duration'
    argTypes:
    - std::chrono::duration<Value, Ratio>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3013
      start: 3009
    functionDepth: 2
    functionLinenumber: 3009
    functionLinenumberEnd: 3013
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::str
    - Catch::symbol
    - count
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::duration<Value, Ratio> const& duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3019,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' duration'
    argTypes:
    - std::chrono::duration<Value, std::ratio<1>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 3017
    functionDepth: 0
    functionLinenumber: 3017
    functionLinenumberEnd: 3021
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::str
    - count
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::duration<Value, std::ratio<1>> const&
      duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3027,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' duration'
    argTypes:
    - std::chrono::duration<Value, std::ratio<60>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3025
    functionDepth: 0
    functionLinenumber: 3025
    functionLinenumberEnd: 3029
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::str
    - count
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::duration<Value, std::ratio<60>> const&
      duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3035,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' duration'
    argTypes:
    - std::chrono::duration<Value, std::ratio<3600>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3033
    functionDepth: 0
    functionLinenumber: 3033
    functionLinenumberEnd: 3037
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::str
    - count
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::duration<Value, std::ratio<3600>>
      const& duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3046,1
    - Dst: time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' time_point'
    argTypes:
    - std::chrono::time_point<Clock, Duration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3045
    functionDepth: 1
    functionLinenumber: 3045
    functionLinenumberEnd: 3047
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::stringify
    - time_since_epoch
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::time_point<Clock, Duration> const&
      time_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3053,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3057,1
    - Dst: std::gmtime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3059,1
    - Dst: std::strftime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3067,1
    - Dst: std::strftime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3069,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' time_point'
    argTypes:
    - std::chrono::time_point<std::chrono::system_clock, Duration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 3052
    functionDepth: 1
    functionLinenumber: 3052
    functionLinenumberEnd: 3072
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - gmtime_s
    - std::string
    - std::gmtime
    - std::strftime
    - libtorrent::aux::to_time_t
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::time_point<std::chrono::system_clock,
      Duration> const& time_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ReusableStringStream::ReusableStringStream
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2973,1
    - Dst: Catch::ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:2976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2972
    functionDepth: 1
    functionLinenumber: 2972
    functionLinenumberEnd: 2977
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::ReusableStringStream::ReusableStringStream
    - Catch::ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2982
    functionDepth: 0
    functionLinenumber: 2982
    functionLinenumberEnd: 2982
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2986
    functionDepth: 0
    functionLinenumber: 2986
    functionLinenumberEnd: 2986
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2990
    functionDepth: 0
    functionLinenumber: 2990
    functionLinenumberEnd: 2990
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2994
    functionDepth: 0
    functionLinenumber: 2994
    functionLinenumberEnd: 2994
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2998
    functionDepth: 0
    functionLinenumber: 2998
    functionLinenumberEnd: 2998
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 3002
    functionDepth: 0
    functionLinenumber: 3002
    functionLinenumberEnd: 3002
    functionName: Catch::symbol
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3011,1
    - Dst: Catch::symbol
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3011,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' duration'
    argTypes:
    - std::chrono::duration<Value, Ratio>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3013
      start: 3009
    functionDepth: 2
    functionLinenumber: 3009
    functionLinenumberEnd: 3013
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::str
    - Catch::symbol
    - count
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::duration<Value, Ratio> const& duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3019,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' duration'
    argTypes:
    - std::chrono::duration<Value, std::ratio<1>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 3017
    functionDepth: 0
    functionLinenumber: 3017
    functionLinenumberEnd: 3021
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::str
    - count
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::duration<Value, std::ratio<1>> const&
      duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3027,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' duration'
    argTypes:
    - std::chrono::duration<Value, std::ratio<60>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3025
    functionDepth: 0
    functionLinenumber: 3025
    functionLinenumberEnd: 3029
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::str
    - count
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::duration<Value, std::ratio<60>> const&
      duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3035,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' duration'
    argTypes:
    - std::chrono::duration<Value, std::ratio<3600>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3033
    functionDepth: 0
    functionLinenumber: 3033
    functionLinenumberEnd: 3037
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - ReusableStringStream::str
    - count
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::duration<Value, std::ratio<3600>>
      const& duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3046,1
    - Dst: time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' time_point'
    argTypes:
    - std::chrono::time_point<Clock, Duration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3045
    functionDepth: 1
    functionLinenumber: 3045
    functionLinenumberEnd: 3047
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::stringify
    - time_since_epoch
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::time_point<Clock, Duration> const&
      time_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3053,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3057,1
    - Dst: std::gmtime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3059,1
    - Dst: std::strftime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3067,1
    - Dst: std::strftime
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3069,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' time_point'
    argTypes:
    - std::chrono::time_point<std::chrono::system_clock, Duration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 3052
    functionDepth: 1
    functionLinenumber: 3052
    functionLinenumberEnd: 3072
    functionName: Catch::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - gmtime_s
    - std::string
    - std::gmtime
    - std::strftime
    - libtorrent::aux::to_time_t
    linkageType: ''
    returnType: std::string
    signature: std::string convert(std::chrono::time_point<std::chrono::system_clock,
      Duration> const& time_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enumName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3077
    functionDepth: 0
    functionLinenumber: 3077
    functionLinenumberEnd: 3086
    functionName: INTERNAL_CATCH_REGISTER_ENUM
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REGISTER_ENUM( enumName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enumName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3088
      start: 3087
    functionDepth: 0
    functionLinenumber: 3087
    functionLinenumberEnd: 3088
    functionName: CATCH_REGISTER_ENUM
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_ENUM( enumName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3115
    functionDepth: 0
    functionLinenumber: 3115
    functionLinenumberEnd: 3121
    functionName: operator()( T const& value ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Approx
    signature: Approx operator()( T const& value ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3124
    functionDepth: 0
    functionLinenumber: 3124
    functionLinenumberEnd: 3125
    functionName: Catch::Approx::Approx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void Approx( T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3130,1
    - Dst: equalityComparisonImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3132
    functionName: operator == ( const T& lhs, Approx const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - equalityComparisonImpl
    linkageType: ''
    returnType: bool
    signature: bool operator == ( const T& lhs, Approx const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Approx
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3137
    functionName: operator == ( Approx const& lhs, const T& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator == ( Approx const& lhs, const T& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3140
    functionDepth: 0
    functionLinenumber: 3140
    functionLinenumberEnd: 3142
    functionName: operator != ( T const& lhs, Approx const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator != ( T const& lhs, Approx const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Approx
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3145
    functionDepth: 0
    functionLinenumber: 3145
    functionLinenumberEnd: 3147
    functionName: operator != ( Approx const& lhs, T const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator != ( Approx const& lhs, T const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3150
    functionDepth: 0
    functionLinenumber: 3150
    functionLinenumberEnd: 3152
    functionName: operator <= ( T const& lhs, Approx const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool operator <= ( T const& lhs, Approx const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Approx
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3155
    functionDepth: 0
    functionLinenumber: 3155
    functionLinenumberEnd: 3157
    functionName: operator <= ( Approx const& lhs, T const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool operator <= ( Approx const& lhs, T const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3160
    functionDepth: 0
    functionLinenumber: 3160
    functionLinenumberEnd: 3162
    functionName: operator >= ( T const& lhs, Approx const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool operator >= ( T const& lhs, Approx const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Approx
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3167
      start: 3165
    functionDepth: 0
    functionLinenumber: 3165
    functionLinenumberEnd: 3167
    functionName: operator >= ( Approx const& lhs, T const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool operator >= ( Approx const& lhs, T const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3171,1
    - Dst: Catch::Approx::setEpsilon
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newEpsilon'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3170
    functionDepth: 1
    functionLinenumber: 3170
    functionLinenumberEnd: 3174
    functionName: Catch::Approx::epsilon
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Approx::setEpsilon
    - static_cast<double>
    linkageType: ''
    returnType: Approx
    signature: Approx & epsilon( T const& newEpsilon )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3178,1
    - Dst: Catch::Approx::setMargin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newMargin'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3177
    functionDepth: 1
    functionLinenumber: 3177
    functionLinenumberEnd: 3181
    functionName: Catch::Approx::margin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - Catch::Approx::setMargin
    linkageType: ''
    returnType: Approx
    signature: Approx & margin( T const& newMargin )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newScale'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3187
      start: 3184
    functionDepth: 0
    functionLinenumber: 3184
    functionLinenumberEnd: 3187
    functionName: Catch::Approx::scale
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: Approx
    signature: Approx & scale( T const& newScale )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3115
    functionDepth: 0
    functionLinenumber: 3115
    functionLinenumberEnd: 3121
    functionName: operator()( T const& value ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Approx
    signature: Approx operator()( T const& value ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3124
    functionDepth: 0
    functionLinenumber: 3124
    functionLinenumberEnd: 3125
    functionName: Catch::Approx::Approx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void Approx( T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3130,1
    - Dst: equalityComparisonImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3132
    functionName: operator == ( const T& lhs, Approx const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - equalityComparisonImpl
    linkageType: ''
    returnType: bool
    signature: bool operator == ( const T& lhs, Approx const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Approx
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3137
    functionName: operator == ( Approx const& lhs, const T& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator == ( Approx const& lhs, const T& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3140
    functionDepth: 0
    functionLinenumber: 3140
    functionLinenumberEnd: 3142
    functionName: operator != ( T const& lhs, Approx const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator != ( T const& lhs, Approx const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Approx
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3145
    functionDepth: 0
    functionLinenumber: 3145
    functionLinenumberEnd: 3147
    functionName: operator != ( Approx const& lhs, T const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator != ( Approx const& lhs, T const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3150
    functionDepth: 0
    functionLinenumber: 3150
    functionLinenumberEnd: 3152
    functionName: operator <= ( T const& lhs, Approx const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool operator <= ( T const& lhs, Approx const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Approx
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3155
    functionDepth: 0
    functionLinenumber: 3155
    functionLinenumberEnd: 3157
    functionName: operator <= ( Approx const& lhs, T const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool operator <= ( Approx const& lhs, T const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - T
    - Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3160
    functionDepth: 0
    functionLinenumber: 3160
    functionLinenumberEnd: 3162
    functionName: operator >= ( T const& lhs, Approx const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool operator >= ( T const& lhs, Approx const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Approx
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3167
      start: 3165
    functionDepth: 0
    functionLinenumber: 3165
    functionLinenumberEnd: 3167
    functionName: operator >= ( Approx const& lhs, T const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: bool
    signature: bool operator >= ( Approx const& lhs, T const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3171,1
    - Dst: Catch::Approx::setEpsilon
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newEpsilon'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3170
    functionDepth: 1
    functionLinenumber: 3170
    functionLinenumberEnd: 3174
    functionName: Catch::Approx::epsilon
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Approx::setEpsilon
    - static_cast<double>
    linkageType: ''
    returnType: Approx
    signature: Approx & epsilon( T const& newEpsilon )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3178,1
    - Dst: Catch::Approx::setMargin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newMargin'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3177
    functionDepth: 1
    functionLinenumber: 3177
    functionLinenumberEnd: 3181
    functionName: Catch::Approx::margin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - Catch::Approx::setMargin
    linkageType: ''
    returnType: Approx
    signature: Approx & margin( T const& newMargin )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newScale'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3187
      start: 3184
    functionDepth: 0
    functionLinenumber: 3184
    functionLinenumberEnd: 3187
    functionName: Catch::Approx::scale
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: Approx
    signature: Approx & scale( T const& newScale )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3228
      start: 3228
    functionDepth: 0
    functionLinenumber: 3228
    functionLinenumberEnd: 3228
    functionName: Catch::SourceLineInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SourceLineInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _file
    - _line
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3229
    functionDepth: 0
    functionLinenumber: 3229
    functionLinenumberEnd: 3232
    functionName: Catch::SourceLineInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SourceLineInfo( char const* _file, std::size_t _line ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3228
      start: 3228
    functionDepth: 0
    functionLinenumber: 3228
    functionLinenumberEnd: 3228
    functionName: Catch::SourceLineInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SourceLineInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _file
    - _line
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3229
    functionDepth: 0
    functionLinenumber: 3229
    functionLinenumberEnd: 3232
    functionName: Catch::SourceLineInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SourceLineInfo( char const* _file, std::size_t _line ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - isNegated
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3289
      start: 3287
    functionDepth: 0
    functionLinenumber: 3287
    functionLinenumberEnd: 3289
    functionName: Catch::LazyExpression::LazyExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LazyExpression( bool isNegated )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - LazyExpression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3290
    functionDepth: 0
    functionLinenumber: 3290
    functionLinenumberEnd: 3290
    functionName: Catch::LazyExpression::LazyExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LazyExpression(LazyExpression const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3291
      start: 3291
    functionDepth: 0
    functionLinenumber: 3291
    functionLinenumberEnd: 3291
    functionName: '& operator = ( LazyExpression const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LazyExpression
    signature: LazyExpression & operator = ( LazyExpression const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3295
      start: 3293
    functionDepth: 0
    functionLinenumber: 3293
    functionLinenumberEnd: 3295
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - isNegated
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3289
      start: 3287
    functionDepth: 0
    functionLinenumber: 3287
    functionLinenumberEnd: 3289
    functionName: Catch::LazyExpression::LazyExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LazyExpression( bool isNegated )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - LazyExpression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3290
    functionDepth: 0
    functionLinenumber: 3290
    functionLinenumberEnd: 3290
    functionName: Catch::LazyExpression::LazyExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LazyExpression(LazyExpression const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3291
      start: 3291
    functionDepth: 0
    functionLinenumber: 3291
    functionLinenumberEnd: 3291
    functionName: '& operator = ( LazyExpression const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LazyExpression
    signature: LazyExpression & operator = ( LazyExpression const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3295
      start: 3293
    functionDepth: 0
    functionLinenumber: 3293
    functionLinenumberEnd: 3295
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3310
    functionDepth: 0
    functionLinenumber: 3310
    functionLinenumberEnd: 3310
    functionName: Catch::AssertionResultData
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionResultData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3324
    functionDepth: 0
    functionLinenumber: 3324
    functionLinenumberEnd: 3324
    functionName: Catch::AssertionResult::AssertionResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionResult()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3310
    functionDepth: 0
    functionLinenumber: 3310
    functionLinenumberEnd: 3310
    functionName: Catch::AssertionResultData
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionResultData()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3324
    functionDepth: 0
    functionLinenumber: 3324
    functionLinenumberEnd: 3324
    functionName: Catch::AssertionResult::AssertionResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionResult()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serializeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' pattern'
    argTypes:
    - std::ostream
    - Pattern
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3429
    functionDepth: 0
    functionLinenumber: 3429
    functionLinenumberEnd: 3433
    functionName: "& operator<<(std::ostream& out,\n                                            Pattern
      const& pattern)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - serializeTo
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                            Pattern
      const& pattern)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serializeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' f'
    argTypes:
    - std::ostream
    - Filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3468
    functionName: '& operator<<(std::ostream& out, Filter const& f)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - serializeTo
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, Filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serializeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' spec'
    argTypes:
    - std::ostream
    - TestSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3500
      start: 3496
    functionDepth: 0
    functionLinenumber: 3496
    functionLinenumberEnd: 3500
    functionName: "& operator<<(std::ostream& out,\n                                        TestSpec
      const& spec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - serializeTo
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                        TestSpec
      const& spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serializeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' pattern'
    argTypes:
    - std::ostream
    - Pattern
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3429
    functionDepth: 0
    functionLinenumber: 3429
    functionLinenumberEnd: 3433
    functionName: "& operator<<(std::ostream& out,\n                                            Pattern
      const& pattern)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - serializeTo
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                            Pattern
      const& pattern)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serializeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' f'
    argTypes:
    - std::ostream
    - Filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3468
    functionName: '& operator<<(std::ostream& out, Filter const& f)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - serializeTo
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, Filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serializeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' spec'
    argTypes:
    - std::ostream
    - TestSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3500
      start: 3496
    functionDepth: 0
    functionLinenumber: 3496
    functionLinenumberEnd: 3500
    functionName: "& operator<<(std::ostream& out,\n                                        TestSpec
      const& spec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - serializeTo
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<(std::ostream& out,\n                                        TestSpec
      const& spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3523
      start: 3523
    functionDepth: 0
    functionLinenumber: 3523
    functionLinenumberEnd: 3523
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3524
      start: 3524
    functionDepth: 0
    functionLinenumber: 3524
    functionLinenumberEnd: 3524
    functionName: ~Optional()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void ~Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3526
    functionDepth: 0
    functionLinenumber: 3526
    functionLinenumberEnd: 3527
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void Optional( T const& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3529,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3529
      start: 3528
    functionDepth: 1
    functionLinenumber: 3528
    functionLinenumberEnd: 3529
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Optional( T&& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3532,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3535
      start: 3531
    functionDepth: 0
    functionLinenumber: 3531
    functionLinenumberEnd: 3535
    functionName: '& operator=( T const& _value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    linkageType: ''
    returnType: Optional
    signature: Optional & operator=( T const& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3537,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3538,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3540
      start: 3536
    functionDepth: 1
    functionLinenumber: 3536
    functionLinenumberEnd: 3540
    functionName: '& operator=( T&& _value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    - CATCH_MOVE
    linkageType: ''
    returnType: Optional
    signature: Optional & operator=( T&& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' _other'
    argTypes:
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3542
    functionDepth: 0
    functionLinenumber: 3542
    functionLinenumberEnd: 3543
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void Optional( Optional const& _other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3545,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _other'
    argTypes:
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3546
      start: 3544
    functionDepth: 1
    functionLinenumber: 3544
    functionLinenumberEnd: 3546
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Optional( Optional&& _other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3550,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' _other'
    argTypes:
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3548
    functionDepth: 0
    functionLinenumber: 3548
    functionLinenumberEnd: 3554
    functionName: '& operator=( Optional const& _other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    linkageType: ''
    returnType: Optional
    signature: Optional & operator=( Optional const& _other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3557,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3559,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' _other'
    argTypes:
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3563
      start: 3555
    functionDepth: 1
    functionLinenumber: 3555
    functionLinenumberEnd: 3563
    functionName: '& operator=( Optional&& _other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    - CATCH_MOVE
    linkageType: ''
    returnType: Optional
    signature: Optional & operator=( Optional&& _other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3568
      start: 3565
    functionDepth: 0
    functionLinenumber: 3565
    functionLinenumberEnd: 3568
    functionName: Catch::Optional::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nullableValue)
      pos:
        line_end: 3570
        line_start: 3570
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 3573
      start: 3570
    functionDepth: 0
    functionLinenumber: 3570
    functionLinenumberEnd: 3573
    functionName: '& operator*()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nullableValue)
      pos:
        line_end: 3574
        line_start: 3574
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 3577
      start: 3574
    functionDepth: 0
    functionLinenumber: 3574
    functionLinenumberEnd: 3577
    functionName: '& operator*() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nullableValue)
      pos:
        line_end: 3578
        line_start: 3578
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 3581
      start: 3578
    functionDepth: 0
    functionLinenumber: 3578
    functionLinenumberEnd: 3581
    functionName: '* operator->()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nullableValue)
      pos:
        line_end: 3582
        line_start: 3582
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 3585
      start: 3582
    functionDepth: 0
    functionLinenumber: 3582
    functionLinenumberEnd: 3585
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' defaultValue'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3587
    functionDepth: 0
    functionLinenumber: 3587
    functionLinenumberEnd: 3589
    functionName: Catch::Optional::valueOr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T valueOr( T const& defaultValue ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3591
      start: 3591
    functionDepth: 0
    functionLinenumber: 3591
    functionLinenumberEnd: 3591
    functionName: Catch::Optional::some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool some() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3592
    functionDepth: 0
    functionLinenumber: 3592
    functionLinenumberEnd: 3592
    functionName: Catch::Optional::none
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool none() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3594
    functionDepth: 0
    functionLinenumber: 3594
    functionLinenumberEnd: 3594
    functionName: operator !() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator !() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3595
    functionDepth: 0
    functionLinenumber: 3595
    functionLinenumberEnd: 3597
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: none
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3600,1
    - Dst: none
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3600,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3602,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Optional
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3599
    functionDepth: 0
    functionLinenumber: 3599
    functionLinenumberEnd: 3607
    functionName: operator==(Optional const& a, Optional const& b)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - some
    - none
    linkageType: ''
    returnType: bool
    signature: bool operator==(Optional const& a, Optional const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Optional
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3608
    functionDepth: 0
    functionLinenumber: 3608
    functionLinenumberEnd: 3610
    functionName: operator!=(Optional const& a, Optional const& b)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(Optional const& a, Optional const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3523
      start: 3523
    functionDepth: 0
    functionLinenumber: 3523
    functionLinenumberEnd: 3523
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3524
      start: 3524
    functionDepth: 0
    functionLinenumber: 3524
    functionLinenumberEnd: 3524
    functionName: ~Optional()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void ~Optional()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3526
    functionDepth: 0
    functionLinenumber: 3526
    functionLinenumberEnd: 3527
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void Optional( T const& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3529,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3529
      start: 3528
    functionDepth: 1
    functionLinenumber: 3528
    functionLinenumberEnd: 3529
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Optional( T&& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3532,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3535
      start: 3531
    functionDepth: 0
    functionLinenumber: 3531
    functionLinenumberEnd: 3535
    functionName: '& operator=( T const& _value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    linkageType: ''
    returnType: Optional
    signature: Optional & operator=( T const& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3537,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3538,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3540
      start: 3536
    functionDepth: 1
    functionLinenumber: 3536
    functionLinenumberEnd: 3540
    functionName: '& operator=( T&& _value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    - CATCH_MOVE
    linkageType: ''
    returnType: Optional
    signature: Optional & operator=( T&& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' _other'
    argTypes:
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3542
    functionDepth: 0
    functionLinenumber: 3542
    functionLinenumberEnd: 3543
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void Optional( Optional const& _other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3545,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _other'
    argTypes:
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3546
      start: 3544
    functionDepth: 1
    functionLinenumber: 3544
    functionLinenumberEnd: 3546
    functionName: Catch::Optional::Optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Optional( Optional&& _other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3550,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' _other'
    argTypes:
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3548
    functionDepth: 0
    functionLinenumber: 3548
    functionLinenumberEnd: 3554
    functionName: '& operator=( Optional const& _other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    linkageType: ''
    returnType: Optional
    signature: Optional & operator=( Optional const& _other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3557,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3559,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' _other'
    argTypes:
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3563
      start: 3555
    functionDepth: 1
    functionLinenumber: 3555
    functionLinenumberEnd: 3563
    functionName: '& operator=( Optional&& _other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    - CATCH_MOVE
    linkageType: ''
    returnType: Optional
    signature: Optional & operator=( Optional&& _other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3568
      start: 3565
    functionDepth: 0
    functionLinenumber: 3565
    functionLinenumberEnd: 3568
    functionName: Catch::Optional::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nullableValue)
      pos:
        line_end: 3570
        line_start: 3570
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 3573
      start: 3570
    functionDepth: 0
    functionLinenumber: 3570
    functionLinenumberEnd: 3573
    functionName: '& operator*()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nullableValue)
      pos:
        line_end: 3574
        line_start: 3574
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 3577
      start: 3574
    functionDepth: 0
    functionLinenumber: 3574
    functionLinenumberEnd: 3577
    functionName: '& operator*() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nullableValue)
      pos:
        line_end: 3578
        line_start: 3578
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 3581
      start: 3578
    functionDepth: 0
    functionLinenumber: 3578
    functionLinenumberEnd: 3581
    functionName: '* operator->()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nullableValue)
      pos:
        line_end: 3582
        line_start: 3582
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 3585
      start: 3582
    functionDepth: 0
    functionLinenumber: 3582
    functionLinenumberEnd: 3585
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' defaultValue'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3587
    functionDepth: 0
    functionLinenumber: 3587
    functionLinenumberEnd: 3589
    functionName: Catch::Optional::valueOr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T valueOr( T const& defaultValue ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3591
      start: 3591
    functionDepth: 0
    functionLinenumber: 3591
    functionLinenumberEnd: 3591
    functionName: Catch::Optional::some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool some() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3592
    functionDepth: 0
    functionLinenumber: 3592
    functionLinenumberEnd: 3592
    functionName: Catch::Optional::none
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool none() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3594
    functionDepth: 0
    functionLinenumber: 3594
    functionLinenumberEnd: 3594
    functionName: operator !() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator !() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3595
    functionDepth: 0
    functionLinenumber: 3595
    functionLinenumberEnd: 3597
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: none
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3600,1
    - Dst: none
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3600,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3602,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Optional
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3599
    functionDepth: 0
    functionLinenumber: 3599
    functionLinenumberEnd: 3607
    functionName: operator==(Optional const& a, Optional const& b)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - some
    - none
    linkageType: ''
    returnType: bool
    signature: bool operator==(Optional const& a, Optional const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Optional
    - Optional
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3608
    functionDepth: 0
    functionLinenumber: 3608
    functionLinenumberEnd: 3610
    functionName: operator!=(Optional const& a, Optional const& b)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(Optional const& a, Optional const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ReporterSpec
    - ReporterSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3678
    functionDepth: 0
    functionLinenumber: 3678
    functionLinenumberEnd: 3681
    functionName: "operator!=( ReporterSpec const& lhs,\n                                ReporterSpec
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=( ReporterSpec const& lhs,\n                                ReporterSpec
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3690
    functionDepth: 0
    functionLinenumber: 3690
    functionLinenumberEnd: 3690
    functionName: '& name() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3692
    functionDepth: 0
    functionLinenumber: 3692
    functionLinenumberEnd: 3694
    functionName: '& outputFile() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<std::string>
    signature: Optional<std::string> & outputFile() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3696
      start: 3696
    functionDepth: 0
    functionLinenumber: 3696
    functionLinenumberEnd: 3696
    functionName: '& colourMode() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<ColourMode>
    signature: Optional<ColourMode> & colourMode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3700
      start: 3698
    functionDepth: 0
    functionLinenumber: 3698
    functionLinenumberEnd: 3700
    functionName: '& customOptions() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> & customOptions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ReporterSpec
    - ReporterSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3678
    functionDepth: 0
    functionLinenumber: 3678
    functionLinenumberEnd: 3681
    functionName: "operator!=( ReporterSpec const& lhs,\n                                ReporterSpec
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=( ReporterSpec const& lhs,\n                                ReporterSpec
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3690
    functionDepth: 0
    functionLinenumber: 3690
    functionLinenumberEnd: 3690
    functionName: '& name() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3692
    functionDepth: 0
    functionLinenumber: 3692
    functionLinenumberEnd: 3694
    functionName: '& outputFile() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<std::string>
    signature: Optional<std::string> & outputFile() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3696
      start: 3696
    functionDepth: 0
    functionLinenumber: 3696
    functionLinenumberEnd: 3696
    functionName: '& colourMode() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Optional<ColourMode>
    signature: Optional<ColourMode> & colourMode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3700
      start: 3698
    functionDepth: 0
    functionLinenumber: 3698
    functionLinenumberEnd: 3700
    functionName: '& customOptions() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> & customOptions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ProcessedReporterSpec
    - ProcessedReporterSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3743
      start: 3740
    functionDepth: 0
    functionLinenumber: 3740
    functionLinenumberEnd: 3743
    functionName: "operator!=( ProcessedReporterSpec const& lhs,\n                                ProcessedReporterSpec
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=( ProcessedReporterSpec const& lhs,\n                                ProcessedReporterSpec
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3796
      start: 3796
    functionDepth: 0
    functionLinenumber: 3796
    functionLinenumberEnd: 3796
    functionName: Catch::Config::Config
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ProcessedReporterSpec
    - ProcessedReporterSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3743
      start: 3740
    functionDepth: 0
    functionLinenumber: 3740
    functionLinenumberEnd: 3743
    functionName: "operator!=( ProcessedReporterSpec const& lhs,\n                                ProcessedReporterSpec
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=( ProcessedReporterSpec const& lhs,\n                                ProcessedReporterSpec
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3796
      start: 3796
    functionDepth: 0
    functionLinenumber: 3796
    functionLinenumberEnd: 3796
    functionName: Catch::Config::Config
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3908
      start: 3908
    functionDepth: 0
    functionLinenumber: 3908
    functionLinenumberEnd: 3908
    functionName: operator+() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: StringRef
    signature: StringRef operator+() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3911
    functionDepth: 0
    functionLinenumber: 3911
    functionLinenumberEnd: 3913
    functionName: '& operator+( T const& value, StreamEndStop )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator+( T const& value, StreamEndStop )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3908
      start: 3908
    functionDepth: 0
    functionLinenumber: 3908
    functionLinenumberEnd: 3908
    functionName: operator+() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: StringRef
    signature: StringRef operator+() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3911
    functionDepth: 0
    functionLinenumber: 3911
    functionLinenumberEnd: 3913
    functionName: '& operator+( T const& value, StreamEndStop )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator+( T const& value, StreamEndStop )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - MessageInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3940
    functionDepth: 0
    functionLinenumber: 3940
    functionLinenumberEnd: 3942
    functionName: operator == (MessageInfo const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator == (MessageInfo const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - MessageInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3943
    functionDepth: 0
    functionLinenumber: 3943
    functionLinenumberEnd: 3945
    functionName: operator < (MessageInfo const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator < (MessageInfo const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - MessageInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3940
    functionDepth: 0
    functionLinenumber: 3940
    functionLinenumberEnd: 3942
    functionName: operator == (MessageInfo const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator == (MessageInfo const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - MessageInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3943
    functionDepth: 0
    functionLinenumber: 3943
    functionLinenumberEnd: 3945
    functionName: operator < (MessageInfo const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator < (MessageInfo const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3965
    functionDepth: 0
    functionLinenumber: 3965
    functionLinenumberEnd: 3968
    functionName: '& operator << ( T const& value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageStream
    signature: MessageStream & operator << ( T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - macroName
    - ' lineInfo'
    - type
    argTypes:
    - StringRef
    - SourceLineInfo
    - ResultWas::OfType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3977
      start: 3974
    functionDepth: 0
    functionLinenumber: 3974
    functionLinenumberEnd: 3977
    functionName: Catch::MessageBuilder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MessageBuilder( StringRef macroName,\n                        SourceLineInfo
      const& lineInfo,\n                        ResultWas::OfType type )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3980
    functionDepth: 1
    functionLinenumber: 3980
    functionLinenumberEnd: 3983
    functionName: '&& operator << ( T const& value ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: MessageBuilder
    signature: MessageBuilder && operator << ( T const& value ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' duplicate'
    argTypes:
    - ScopedMessage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3991
    functionDepth: 0
    functionLinenumber: 3991
    functionLinenumberEnd: 3991
    functionName: Catch::ScopedMessage::ScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScopedMessage( ScopedMessage& duplicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4006
      start: 4006
    functionDepth: 0
    functionLinenumber: 4006
    functionLinenumberEnd: 4006
    functionName: Catch::Capturer::Capturer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Capturer(Capturer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4007
      start: 4007
    functionDepth: 0
    functionLinenumber: 4007
    functionLinenumberEnd: 4007
    functionName: '& operator=(Capturer const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Capturer
    signature: Capturer & operator=(Capturer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Capturer::captureValue
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4015,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' value'
    argTypes:
    - size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4016
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4016
    functionName: Catch::Capturer::captureValues
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - Catch::Capturer::captureValue
    linkageType: ''
    returnType: void
    signature: void captureValues( size_t index, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Capturer::captureValue
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4020,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4020,1
    - Dst: Catch::Capturer::captureValues
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' value'
    argTypes:
    - size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4022
      start: 4019
    functionDepth: 1
    functionLinenumber: 4019
    functionLinenumberEnd: 4022
    functionName: Catch::Capturer::captureValues
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::stringify
    - Catch::Capturer::captureValue
    - Catch::Capturer::captureValues
    linkageType: ''
    returnType: void
    signature: void captureValues( size_t index, T const& value, Ts const&... values
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3965
    functionDepth: 0
    functionLinenumber: 3965
    functionLinenumberEnd: 3968
    functionName: '& operator << ( T const& value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageStream
    signature: MessageStream & operator << ( T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - macroName
    - ' lineInfo'
    - type
    argTypes:
    - StringRef
    - SourceLineInfo
    - ResultWas::OfType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3977
      start: 3974
    functionDepth: 0
    functionLinenumber: 3974
    functionLinenumberEnd: 3977
    functionName: Catch::MessageBuilder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MessageBuilder( StringRef macroName,\n                        SourceLineInfo
      const& lineInfo,\n                        ResultWas::OfType type )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:3982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3980
    functionDepth: 1
    functionLinenumber: 3980
    functionLinenumberEnd: 3983
    functionName: '&& operator << ( T const& value ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: MessageBuilder
    signature: MessageBuilder && operator << ( T const& value ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' duplicate'
    argTypes:
    - ScopedMessage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3991
    functionDepth: 0
    functionLinenumber: 3991
    functionLinenumberEnd: 3991
    functionName: Catch::ScopedMessage::ScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScopedMessage( ScopedMessage& duplicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4006
      start: 4006
    functionDepth: 0
    functionLinenumber: 4006
    functionLinenumberEnd: 4006
    functionName: Catch::Capturer::Capturer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Capturer(Capturer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4007
      start: 4007
    functionDepth: 0
    functionLinenumber: 4007
    functionLinenumberEnd: 4007
    functionName: '& operator=(Capturer const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Capturer
    signature: Capturer & operator=(Capturer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Capturer::captureValue
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4015,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' value'
    argTypes:
    - size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4016
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4016
    functionName: Catch::Capturer::captureValues
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::stringify
    - Catch::Capturer::captureValue
    linkageType: ''
    returnType: void
    signature: void captureValues( size_t index, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Capturer::captureValue
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4020,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4020,1
    - Dst: Catch::Capturer::captureValues
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' value'
    argTypes:
    - size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4022
      start: 4019
    functionDepth: 1
    functionLinenumber: 4019
    functionLinenumberEnd: 4022
    functionName: Catch::Capturer::captureValues
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::stringify
    - Catch::Capturer::captureValue
    - Catch::Capturer::captureValues
    linkageType: ''
    returnType: void
    signature: void captureValues( size_t index, T const& value, Ts const&... values
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - messageType
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4034
      start: 4028
    functionDepth: 0
    functionLinenumber: 4028
    functionLinenumberEnd: 4034
    functionName: INTERNAL_CATCH_MSG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MSG( macroName, messageType, resultDisposition, ...
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - varName
    - ','
    - macroName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4042
      start: 4036
    functionDepth: 0
    functionLinenumber: 4036
    functionLinenumberEnd: 4042
    functionName: INTERNAL_CATCH_CAPTURE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_CAPTURE( varName, macroName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - macroName
    - ','
    - log
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4046
      start: 4044
    functionDepth: 0
    functionLinenumber: 4044
    functionLinenumberEnd: 4046
    functionName: INTERNAL_CATCH_INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_INFO( macroName, log )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - macroName
    - ','
    - log
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4048
    functionDepth: 0
    functionLinenumber: 4048
    functionLinenumberEnd: 4050
    functionName: INTERNAL_CATCH_UNSCOPED_INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_UNSCOPED_INFO( macroName, log )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4055
      start: 4054
    functionDepth: 0
    functionLinenumber: 4054
    functionLinenumberEnd: 4055
    functionName: CATCH_INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INFO( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4056
      start: 4055
    functionDepth: 0
    functionLinenumber: 4055
    functionLinenumberEnd: 4056
    functionName: CATCH_UNSCOPED_INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_UNSCOPED_INFO( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4057
      start: 4056
    functionDepth: 0
    functionLinenumber: 4056
    functionLinenumberEnd: 4057
    functionName: CATCH_WARN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_WARN( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4057
    functionDepth: 0
    functionLinenumber: 4057
    functionLinenumberEnd: 4058
    functionName: CATCH_CAPTURE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CAPTURE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4061
    functionDepth: 0
    functionLinenumber: 4061
    functionLinenumberEnd: 4062
    functionName: CATCH_INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INFO( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4063
      start: 4062
    functionDepth: 0
    functionLinenumber: 4062
    functionLinenumberEnd: 4063
    functionName: CATCH_UNSCOPED_INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_UNSCOPED_INFO( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4064
      start: 4063
    functionDepth: 0
    functionLinenumber: 4063
    functionLinenumberEnd: 4064
    functionName: CATCH_WARN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_WARN( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4065
      start: 4064
    functionDepth: 0
    functionLinenumber: 4064
    functionLinenumberEnd: 4065
    functionName: CATCH_CAPTURE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CAPTURE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4069
      start: 4068
    functionDepth: 0
    functionLinenumber: 4068
    functionLinenumberEnd: 4069
    functionName: INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4070
      start: 4069
    functionDepth: 0
    functionLinenumber: 4069
    functionLinenumberEnd: 4070
    functionName: UNSCOPED_INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSCOPED_INFO( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4071
      start: 4070
    functionDepth: 0
    functionLinenumber: 4070
    functionLinenumberEnd: 4071
    functionName: WARN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4072
      start: 4071
    functionDepth: 0
    functionLinenumber: 4071
    functionLinenumberEnd: 4072
    functionName: CAPTURE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAPTURE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4076
      start: 4075
    functionDepth: 0
    functionLinenumber: 4075
    functionLinenumberEnd: 4076
    functionName: INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 4076
    functionDepth: 0
    functionLinenumber: 4076
    functionLinenumberEnd: 4077
    functionName: UNSCOPED_INFO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSCOPED_INFO( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4077
    functionDepth: 0
    functionLinenumber: 4077
    functionLinenumberEnd: 4078
    functionName: WARN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN( msg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4078
    functionDepth: 0
    functionLinenumber: 4078
    functionLinenumberEnd: 4079
    functionName: CAPTURE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAPTURE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _lineInfo'
    - _name
    argTypes:
    - SourceLineInfo
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4140
      start: 4136
    functionDepth: 1
    functionLinenumber: 4136
    functionLinenumberEnd: 4140
    functionName: Catch::SectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void SectionInfo( SourceLineInfo const& _lineInfo, std::string _name,\n
      \                   const char* const = nullptr )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _lineInfo'
    - _name
    argTypes:
    - SourceLineInfo
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4140
      start: 4136
    functionDepth: 1
    functionLinenumber: 4136
    functionLinenumberEnd: 4140
    functionName: Catch::SectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void SectionInfo( SourceLineInfo const& _lineInfo, std::string _name,\n
      \                   const char* const = nullptr )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4276
    functionDepth: 0
    functionLinenumber: 4276
    functionLinenumberEnd: 4278
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4282
    functionName: Catch::Clara::Detail::TokenStream::count
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4284
        line_start: 4284
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4287
      start: 4284
    functionDepth: 0
    functionLinenumber: 4284
    functionLinenumberEnd: 4287
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4289
        line_start: 4289
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 0
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4307
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase( ResultType type )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4311
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4312
    functionName: '& operator=(ResultBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4313
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4314
    functionDepth: 0
    functionLinenumber: 4314
    functionLinenumberEnd: 4314
    functionName: '& operator=(ResultBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4327
    functionName: '& value() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T & value() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4329,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4331
    functionName: '&& value() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T && value() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4334
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType type )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4340
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase const& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4341
    functionDepth: 1
    functionLinenumber: 4341
    functionLinenumberEnd: 4345
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase&& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4351
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T&& value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4359,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4360,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: '& operator=( ResultValueBase const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase const& other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4366,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4367,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4371
    functionName: '& operator=( ResultValueBase&& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    - CATCH_MOVE
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase&& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4377
    functionName: ~ResultValueBase() override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void ~ResultValueBase() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4394,1
    - Dst: Catch::Clara::Detail::BasicResult::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4395,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicResult<U>
    assertStmts:
    - condition: ( type() != ResultType::Ok )
      pos:
        line_end: 4395
        line_start: 4395
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4397
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4397
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::type
    - assert
    - Catch::Clara::Detail::BasicResult::errorMessage
    linkageType: ''
    returnType: void
    signature: void BasicResult( BasicResult<U> const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4402
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto ok( U&& value ) -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4403
      start: 4403
    functionDepth: 0
    functionLinenumber: 4403
    functionLinenumberEnd: 4403
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto ok() -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 1
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: Catch::Clara::Detail::BasicResult::logicError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto logicError( std::string&& message )\n                    -> BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: Catch::Clara::Detail::BasicResult::runtimeError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto runtimeError( std::string&& message )\n                    ->
      BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4415
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4416
    functionName: Catch::Clara::Detail::BasicResult::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto type() const -> ResultType
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4419
    functionName: Catch::Clara::Detail::BasicResult::errorMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto errorMessage() const -> std::string const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4426,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4427,1
    - Dst: abort
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_type != ResultType::LogicError )
      pos:
        line_end: 4425
        line_start: 4425
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: ( m_type != ResultType::RuntimeError )
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4430
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4430
    functionName: Catch::Clara::Detail::BasicResult::enforceOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void enforceOk() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4437,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ' message'
    argTypes:
    - ResultType
    - std::string
    assertStmts:
    - condition: ( m_type != ResultType::Ok )
      pos:
        line_end: 4437
        line_start: 4437
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void BasicResult( ResultType type,\n                             std::string&&
      message )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4450
    functionDepth: 0
    functionLinenumber: 4450
    functionLinenumberEnd: 4450
    functionName: Catch::Clara::Detail::ParseState::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseResultType
    signature: ParseResultType type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4453
    functionName: '& remainingTokens() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & remainingTokens() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4456
    functionName: '&& remainingTokens() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream && remainingTokens() &&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::fail
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4476,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4477,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4483
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::stringstream::fail
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult convertInto( std::string const& source, T& target )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4494,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - CLARA_CONFIG_OPTIONAL_TYPE<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 1
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - CATCH_MOVE
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto convertInto( std::string const& source,\n                              CLARA_CONFIG_OPTIONAL_TYPE<T>&
      target )\n                -> ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4502
    functionDepth: 0
    functionLinenumber: 4502
    functionLinenumberEnd: 4502
    functionName: ~BoundRef()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoundRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4518
    functionDepth: 0
    functionLinenumber: 4518
    functionLinenumberEnd: 4518
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( T& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4522
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult setValue( std::string const& arg ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4529
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( std::vector<T>& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4531
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isContainer() const -> bool override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4536,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4540
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4546
    functionName: Catch::Clara::Detail::BoundFlagRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagRef( bool& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4560
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4567,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4569
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4576,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: Catch::Clara::Detail::invokeLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto invokeLambda( L const& lambda, std::string const& arg )\n                ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4588
    functionName: Catch::Clara::Detail::BoundLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::invokeLambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4594
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::invokeLambda
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4598
    functionName: Catch::Clara::Detail::BoundManyLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundManyLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4599
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isContainer() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4614
    functionName: Catch::Clara::Detail::BoundFlagLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4619
    functionName: Catch::Clara::Detail::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    linkageType: ''
    returnType: auto
    signature: auto setFlag( bool flag ) -> ParserResult override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4626
    functionName: ~ParserBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4627
    functionDepth: 2
    functionLinenumber: 4627
    functionLinenumberEnd: 4627
    functionName: Catch::Clara::Detail::ParserBase::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: auto
    signature: auto validate() const -> Result
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::shared_ptr<BoundRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4653
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( std::shared_ptr<BoundRef> const& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundManyLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4661
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundManyLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: "void ParserRefImpl( accept_many_t,\n                               LambdaT
      const& ref,\n                               StringRef hint )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundValueRef<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4666
    functionDepth: 0
    functionLinenumber: 4666
    functionLinenumberEnd: 4668
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundValueRef<T>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4675
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4680
    functionName: '& operator()( StringRef description ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT & operator()( StringRef description ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4684
    functionName: '&& operator()( StringRef description ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT && operator()( StringRef description ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 0
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: Catch::Clara::Detail::ParserRefImpl::optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto optional() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4691
    functionDepth: 0
    functionLinenumber: 4691
    functionLinenumberEnd: 4694
    functionName: Catch::Clara::Detail::ParserRefImpl::required
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto required() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4698
    functionName: Catch::Clara::Detail::ParserRefImpl::isOptional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isOptional() const -> bool
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isContainer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4700
    functionDepth: 0
    functionLinenumber: 4700
    functionLinenumberEnd: 4705
    functionName: Catch::Clara::Detail::ParserRefImpl::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - isContainer
    linkageType: ''
    returnType: auto
    signature: auto cardinality() const -> size_t override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4707
    functionName: Catch::Clara::Detail::ParserRefImpl::hint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4276
    functionDepth: 0
    functionLinenumber: 4276
    functionLinenumberEnd: 4278
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4282
    functionName: Catch::Clara::Detail::TokenStream::count
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4284
        line_start: 4284
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4287
      start: 4284
    functionDepth: 0
    functionLinenumber: 4284
    functionLinenumberEnd: 4287
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4289
        line_start: 4289
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 0
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4307
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase( ResultType type )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4311
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4312
    functionName: '& operator=(ResultBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4313
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4314
    functionDepth: 0
    functionLinenumber: 4314
    functionLinenumberEnd: 4314
    functionName: '& operator=(ResultBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4327
    functionName: '& value() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T & value() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4329,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4331
    functionName: '&& value() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T && value() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4334
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType type )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4340
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase const& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4341
    functionDepth: 1
    functionLinenumber: 4341
    functionLinenumberEnd: 4345
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase&& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4351
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T&& value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4359,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4360,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: '& operator=( ResultValueBase const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase const& other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4366,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4367,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4371
    functionName: '& operator=( ResultValueBase&& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    - CATCH_MOVE
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase&& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4377
    functionName: ~ResultValueBase() override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void ~ResultValueBase() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4394,1
    - Dst: Catch::Clara::Detail::BasicResult::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4395,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicResult<U>
    assertStmts:
    - condition: ( type() != ResultType::Ok )
      pos:
        line_end: 4395
        line_start: 4395
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4397
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4397
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::type
    - assert
    - Catch::Clara::Detail::BasicResult::errorMessage
    linkageType: ''
    returnType: void
    signature: void BasicResult( BasicResult<U> const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4402
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto ok( U&& value ) -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4403
      start: 4403
    functionDepth: 0
    functionLinenumber: 4403
    functionLinenumberEnd: 4403
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto ok() -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 1
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: Catch::Clara::Detail::BasicResult::logicError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto logicError( std::string&& message )\n                    -> BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: Catch::Clara::Detail::BasicResult::runtimeError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto runtimeError( std::string&& message )\n                    ->
      BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4415
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4416
    functionName: Catch::Clara::Detail::BasicResult::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto type() const -> ResultType
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4419
    functionName: Catch::Clara::Detail::BasicResult::errorMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto errorMessage() const -> std::string const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4426,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4427,1
    - Dst: abort
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_type != ResultType::LogicError )
      pos:
        line_end: 4425
        line_start: 4425
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: ( m_type != ResultType::RuntimeError )
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4430
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4430
    functionName: Catch::Clara::Detail::BasicResult::enforceOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void enforceOk() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4437,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ' message'
    argTypes:
    - ResultType
    - std::string
    assertStmts:
    - condition: ( m_type != ResultType::Ok )
      pos:
        line_end: 4437
        line_start: 4437
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void BasicResult( ResultType type,\n                             std::string&&
      message )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4450
    functionDepth: 0
    functionLinenumber: 4450
    functionLinenumberEnd: 4450
    functionName: Catch::Clara::Detail::ParseState::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseResultType
    signature: ParseResultType type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4453
    functionName: '& remainingTokens() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & remainingTokens() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4456
    functionName: '&& remainingTokens() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream && remainingTokens() &&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::fail
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4476,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4477,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4483
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::stringstream::fail
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult convertInto( std::string const& source, T& target )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4494,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - CLARA_CONFIG_OPTIONAL_TYPE<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 1
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - CATCH_MOVE
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto convertInto( std::string const& source,\n                              CLARA_CONFIG_OPTIONAL_TYPE<T>&
      target )\n                -> ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4502
    functionDepth: 0
    functionLinenumber: 4502
    functionLinenumberEnd: 4502
    functionName: ~BoundRef()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoundRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4518
    functionDepth: 0
    functionLinenumber: 4518
    functionLinenumberEnd: 4518
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( T& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4522
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult setValue( std::string const& arg ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4529
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( std::vector<T>& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4531
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isContainer() const -> bool override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4536,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4540
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4546
    functionName: Catch::Clara::Detail::BoundFlagRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagRef( bool& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4560
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4567,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4569
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4576,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: Catch::Clara::Detail::invokeLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto invokeLambda( L const& lambda, std::string const& arg )\n                ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4588
    functionName: Catch::Clara::Detail::BoundLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::invokeLambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4594
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::invokeLambda
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4598
    functionName: Catch::Clara::Detail::BoundManyLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundManyLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4599
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isContainer() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4614
    functionName: Catch::Clara::Detail::BoundFlagLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4619
    functionName: Catch::Clara::Detail::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    linkageType: ''
    returnType: auto
    signature: auto setFlag( bool flag ) -> ParserResult override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4626
    functionName: ~ParserBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4627
    functionDepth: 2
    functionLinenumber: 4627
    functionLinenumberEnd: 4627
    functionName: Catch::Clara::Detail::ParserBase::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: auto
    signature: auto validate() const -> Result
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::shared_ptr<BoundRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4653
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( std::shared_ptr<BoundRef> const& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundManyLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4661
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundManyLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: "void ParserRefImpl( accept_many_t,\n                               LambdaT
      const& ref,\n                               StringRef hint )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundValueRef<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4666
    functionDepth: 0
    functionLinenumber: 4666
    functionLinenumberEnd: 4668
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundValueRef<T>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4675
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4680
    functionName: '& operator()( StringRef description ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT & operator()( StringRef description ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4684
    functionName: '&& operator()( StringRef description ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT && operator()( StringRef description ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 0
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: Catch::Clara::Detail::ParserRefImpl::optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto optional() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4691
    functionDepth: 0
    functionLinenumber: 4691
    functionLinenumberEnd: 4694
    functionName: Catch::Clara::Detail::ParserRefImpl::required
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto required() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4698
    functionName: Catch::Clara::Detail::ParserRefImpl::isOptional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isOptional() const -> bool
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isContainer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4700
    functionDepth: 0
    functionLinenumber: 4700
    functionLinenumberEnd: 4705
    functionName: Catch::Clara::Detail::ParserRefImpl::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - isContainer
    linkageType: ''
    returnType: auto
    signature: auto cardinality() const -> size_t override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4707
    functionName: Catch::Clara::Detail::ParserRefImpl::hint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundFlagLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - LambdaT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4733
      start: 4731
    functionDepth: 0
    functionLinenumber: 4731
    functionLinenumberEnd: 4733
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundFlagLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void Opt(LambdaT const& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4741
      start: 4740
    functionDepth: 0
    functionLinenumber: 4740
    functionLinenumberEnd: 4741
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4744
    functionDepth: 0
    functionLinenumber: 4744
    functionLinenumberEnd: 4745
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( accept_many_t, LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4751
      start: 4750
    functionDepth: 0
    functionLinenumber: 4750
    functionLinenumberEnd: 4751
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - optName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4756
      start: 4753
    functionDepth: 0
    functionLinenumber: 4753
    functionLinenumberEnd: 4756
    functionName: '& operator[]( StringRef optName ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Opt
    signature: Opt & operator[]( StringRef optName ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4758,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - optName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4760
      start: 4757
    functionDepth: 1
    functionLinenumber: 4757
    functionLinenumberEnd: 4760
    functionName: '&& operator[]( StringRef optName ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: Opt
    signature: Opt && operator[]( StringRef optName ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - LambdaT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4785
    functionDepth: 0
    functionLinenumber: 4785
    functionLinenumberEnd: 4787
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ExeName(LambdaT const& lambda)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4795
      start: 4795
    functionDepth: 0
    functionLinenumber: 4795
    functionLinenumberEnd: 4795
    functionName: '& name() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' exeName'
    argTypes:
    - ExeName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4811
      start: 4808
    functionDepth: 0
    functionLinenumber: 4808
    functionLinenumberEnd: 4811
    functionName: operator|=(ExeName const& exeName) -> Parser&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator|=(ExeName const& exeName) -> Parser&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4816
      start: 4813
    functionDepth: 0
    functionLinenumber: 4813
    functionLinenumberEnd: 4816
    functionName: operator|=(Arg const& arg) -> Parser&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: auto
    signature: auto operator|=(Arg const& arg) -> Parser&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_options::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' opt'
    argTypes:
    - Parser
    - Opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4821
      start: 4818
    functionDepth: 0
    functionLinenumber: 4818
    functionLinenumberEnd: 4821
    functionName: '& operator|=( Parser& p, Opt const& opt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_options::push_back
    linkageType: ''
    returnType: Parser
    signature: Parser & operator|=( Parser& p, Opt const& opt )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_options::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4823,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' opt'
    argTypes:
    - Parser
    - Opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4825
      start: 4822
    functionDepth: 1
    functionLinenumber: 4822
    functionLinenumberEnd: 4825
    functionName: '& operator|=( Parser& p, Opt&& opt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_options::push_back
    linkageType: ''
    returnType: Parser
    signature: Parser & operator|=( Parser& p, Opt&& opt )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' rhs'
    argTypes:
    - Parser
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4834
      start: 4830
    functionDepth: 0
    functionLinenumber: 4830
    functionLinenumberEnd: 4834
    functionName: operator|( Parser const& p, T&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Parser
    signature: Parser operator|( Parser const& p, T&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4838,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' rhs'
    argTypes:
    - Parser
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4837
    functionDepth: 1
    functionLinenumber: 4837
    functionLinenumberEnd: 4840
    functionName: operator|( Parser&& p, T&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - CATCH_FORWARD
    linkageType: ''
    returnType: Parser
    signature: Parser operator|( Parser&& p, T&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeToStream
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' parser'
    argTypes:
    - std::ostream
    - Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4846
    functionDepth: 0
    functionLinenumber: 4846
    functionLinenumberEnd: 4850
    functionName: "operator<<(std::ostream& os, Parser const& parser)\n                ->
      std::ostream&"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - writeToStream
    linkageType: ''
    returnType: auto
    signature: "auto operator<<(std::ostream& os, Parser const& parser)\n                ->
      std::ostream&"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4873
    functionDepth: 0
    functionLinenumber: 4873
    functionLinenumberEnd: 4873
    functionName: Catch::Clara::Args::exeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef exeName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parser
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    - Dst: static_cast<DerivedT const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4891
    functionName: ComposableParserImpl<DerivedT>::operator|(T const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Parser
    - static_cast<DerivedT const&>
    linkageType: ''
    returnType: Parser
    signature: Parser ComposableParserImpl<DerivedT>::operator|(T const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parser
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    - Dst: static_cast<DerivedT const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4891
    functionName: ComposableParserImpl<DerivedT>::operator|(T const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Parser
    - static_cast<DerivedT const&>
    linkageType: ''
    returnType: Parser
    signature: Parser ComposableParserImpl<DerivedT>::operator|(T const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4276
    functionDepth: 1
    functionLinenumber: 4276
    functionLinenumberEnd: 4278
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::empty
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4282
    functionName: Catch::Clara::Detail::TokenStream::count
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4284
        line_start: 4284
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4287
      start: 4284
    functionDepth: 1
    functionLinenumber: 4284
    functionLinenumberEnd: 4287
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::Detail::empty
    - front
    linkageType: ''
    returnType: Token
    signature: Token operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4289
        line_start: 4289
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 1
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::Detail::empty
    - front
    linkageType: ''
    returnType: Token
    signature: Token * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4307
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase( ResultType type )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4311
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4312
    functionName: '& operator=(ResultBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4313
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4314
    functionDepth: 0
    functionLinenumber: 4314
    functionLinenumberEnd: 4314
    functionName: '& operator=(ResultBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4327
    functionName: '& value() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T & value() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4329,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4331
    functionName: '&& value() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T && value() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4334
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType type )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4340
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase const& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4341
    functionDepth: 1
    functionLinenumber: 4341
    functionLinenumberEnd: 4345
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase&& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4351
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T&& value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4359,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4360,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: '& operator=( ResultValueBase const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase const& other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4366,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4367,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4371
    functionName: '& operator=( ResultValueBase&& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    - CATCH_MOVE
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase&& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4377
    functionName: ~ResultValueBase() override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void ~ResultValueBase() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4394,1
    - Dst: Catch::Clara::Detail::BasicResult::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4395,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicResult<U>
    assertStmts:
    - condition: ( type() != ResultType::Ok )
      pos:
        line_end: 4395
        line_start: 4395
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4397
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4397
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::type
    - assert
    - Catch::Clara::Detail::BasicResult::errorMessage
    linkageType: ''
    returnType: void
    signature: void BasicResult( BasicResult<U> const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4402
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto ok( U&& value ) -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4403
      start: 4403
    functionDepth: 0
    functionLinenumber: 4403
    functionLinenumberEnd: 4403
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto ok() -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 1
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: Catch::Clara::Detail::BasicResult::logicError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto logicError( std::string&& message )\n                    -> BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: Catch::Clara::Detail::BasicResult::runtimeError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto runtimeError( std::string&& message )\n                    ->
      BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4415
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4416
    functionName: Catch::Clara::Detail::BasicResult::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto type() const -> ResultType
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4419
    functionName: Catch::Clara::Detail::BasicResult::errorMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto errorMessage() const -> std::string const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4426,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4427,1
    - Dst: abort
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_type != ResultType::LogicError )
      pos:
        line_end: 4425
        line_start: 4425
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: ( m_type != ResultType::RuntimeError )
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4430
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4430
    functionName: Catch::Clara::Detail::BasicResult::enforceOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void enforceOk() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4437,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ' message'
    argTypes:
    - ResultType
    - std::string
    assertStmts:
    - condition: ( m_type != ResultType::Ok )
      pos:
        line_end: 4437
        line_start: 4437
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void BasicResult( ResultType type,\n                             std::string&&
      message )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4450
    functionDepth: 0
    functionLinenumber: 4450
    functionLinenumberEnd: 4450
    functionName: Catch::Clara::Detail::ParseState::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseResultType
    signature: ParseResultType type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4453
    functionName: '& remainingTokens() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & remainingTokens() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4456
    functionName: '&& remainingTokens() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream && remainingTokens() &&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::fail
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4476,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4477,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4483
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::stringstream::fail
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult convertInto( std::string const& source, T& target )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4494,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - CLARA_CONFIG_OPTIONAL_TYPE<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 1
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - CATCH_MOVE
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto convertInto( std::string const& source,\n                              CLARA_CONFIG_OPTIONAL_TYPE<T>&
      target )\n                -> ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4502
    functionDepth: 0
    functionLinenumber: 4502
    functionLinenumberEnd: 4502
    functionName: ~BoundRef()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoundRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4518
    functionDepth: 0
    functionLinenumber: 4518
    functionLinenumberEnd: 4518
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( T& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4522
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult setValue( std::string const& arg ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4529
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( std::vector<T>& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4531
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isContainer() const -> bool override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4536,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4540
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4546
    functionName: Catch::Clara::Detail::BoundFlagRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagRef( bool& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4560
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4567,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4569
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4576,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: Catch::Clara::Detail::invokeLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto invokeLambda( L const& lambda, std::string const& arg )\n                ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4588
    functionName: Catch::Clara::Detail::BoundLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::invokeLambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4594
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::invokeLambda
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4598
    functionName: Catch::Clara::Detail::BoundManyLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundManyLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4599
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isContainer() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4614
    functionName: Catch::Clara::Detail::BoundFlagLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4619
    functionName: Catch::Clara::Detail::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    linkageType: ''
    returnType: auto
    signature: auto setFlag( bool flag ) -> ParserResult override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4626
    functionName: ~ParserBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4627
    functionDepth: 2
    functionLinenumber: 4627
    functionLinenumberEnd: 4627
    functionName: Catch::Clara::Detail::ParserBase::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: auto
    signature: auto validate() const -> Result
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::shared_ptr<BoundRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4653
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( std::shared_ptr<BoundRef> const& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundManyLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4661
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundManyLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: "void ParserRefImpl( accept_many_t,\n                               LambdaT
      const& ref,\n                               StringRef hint )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundValueRef<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4666
    functionDepth: 0
    functionLinenumber: 4666
    functionLinenumberEnd: 4668
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundValueRef<T>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4675
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4680
    functionName: '& operator()( StringRef description ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT & operator()( StringRef description ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4684
    functionName: '&& operator()( StringRef description ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT && operator()( StringRef description ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 0
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: Catch::Clara::Detail::ParserRefImpl::optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto optional() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4691
    functionDepth: 0
    functionLinenumber: 4691
    functionLinenumberEnd: 4694
    functionName: Catch::Clara::Detail::ParserRefImpl::required
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto required() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4698
    functionName: Catch::Clara::Detail::ParserRefImpl::isOptional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isOptional() const -> bool
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isContainer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4700
    functionDepth: 0
    functionLinenumber: 4700
    functionLinenumberEnd: 4705
    functionName: Catch::Clara::Detail::ParserRefImpl::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - isContainer
    linkageType: ''
    returnType: auto
    signature: auto cardinality() const -> size_t override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4707
    functionName: Catch::Clara::Detail::ParserRefImpl::hint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4276
    functionDepth: 0
    functionLinenumber: 4276
    functionLinenumberEnd: 4278
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4282
    functionName: Catch::Clara::Detail::TokenStream::count
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4284
        line_start: 4284
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4287
      start: 4284
    functionDepth: 0
    functionLinenumber: 4284
    functionLinenumberEnd: 4287
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4289
        line_start: 4289
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 0
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4307
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase( ResultType type )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4311
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4312
    functionName: '& operator=(ResultBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4313
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4314
    functionDepth: 0
    functionLinenumber: 4314
    functionLinenumberEnd: 4314
    functionName: '& operator=(ResultBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4327
    functionName: '& value() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T & value() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4329,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4331
    functionName: '&& value() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T && value() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4334
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType type )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4340
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase const& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4341
    functionDepth: 1
    functionLinenumber: 4341
    functionLinenumberEnd: 4345
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase&& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4351
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T&& value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4359,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4360,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: '& operator=( ResultValueBase const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase const& other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4366,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4367,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4371
    functionName: '& operator=( ResultValueBase&& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    - CATCH_MOVE
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase&& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4377
    functionName: ~ResultValueBase() override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void ~ResultValueBase() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4394,1
    - Dst: Catch::Clara::Detail::BasicResult::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4395,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicResult<U>
    assertStmts:
    - condition: ( type() != ResultType::Ok )
      pos:
        line_end: 4395
        line_start: 4395
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4397
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4397
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::type
    - assert
    - Catch::Clara::Detail::BasicResult::errorMessage
    linkageType: ''
    returnType: void
    signature: void BasicResult( BasicResult<U> const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4402
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto ok( U&& value ) -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4403
      start: 4403
    functionDepth: 0
    functionLinenumber: 4403
    functionLinenumberEnd: 4403
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto ok() -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 1
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: Catch::Clara::Detail::BasicResult::logicError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto logicError( std::string&& message )\n                    -> BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: Catch::Clara::Detail::BasicResult::runtimeError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto runtimeError( std::string&& message )\n                    ->
      BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4415
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4416
    functionName: Catch::Clara::Detail::BasicResult::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto type() const -> ResultType
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4419
    functionName: Catch::Clara::Detail::BasicResult::errorMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto errorMessage() const -> std::string const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4426,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4427,1
    - Dst: abort
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_type != ResultType::LogicError )
      pos:
        line_end: 4425
        line_start: 4425
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: ( m_type != ResultType::RuntimeError )
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4430
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4430
    functionName: Catch::Clara::Detail::BasicResult::enforceOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void enforceOk() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4437,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ' message'
    argTypes:
    - ResultType
    - std::string
    assertStmts:
    - condition: ( m_type != ResultType::Ok )
      pos:
        line_end: 4437
        line_start: 4437
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void BasicResult( ResultType type,\n                             std::string&&
      message )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4450
    functionDepth: 0
    functionLinenumber: 4450
    functionLinenumberEnd: 4450
    functionName: Catch::Clara::Detail::ParseState::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseResultType
    signature: ParseResultType type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4453
    functionName: '& remainingTokens() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & remainingTokens() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4456
    functionName: '&& remainingTokens() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream && remainingTokens() &&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::fail
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4476,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4477,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4483
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 12
    functionsReached:
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::stringstream::fail
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult convertInto( std::string const& source, T& target )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4494,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - CLARA_CONFIG_OPTIONAL_TYPE<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 1
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 13
    functionsReached:
    - CATCH_MOVE
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto convertInto( std::string const& source,\n                              CLARA_CONFIG_OPTIONAL_TYPE<T>&
      target )\n                -> ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4502
    functionDepth: 0
    functionLinenumber: 4502
    functionLinenumberEnd: 4502
    functionName: ~BoundRef()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoundRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4518
    functionDepth: 0
    functionLinenumber: 4518
    functionLinenumberEnd: 4518
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( T& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4522
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult setValue( std::string const& arg ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4529
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( std::vector<T>& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4531
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isContainer() const -> bool override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4536,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4540
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4546
    functionName: Catch::Clara::Detail::BoundFlagRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagRef( bool& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4560
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4567,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4569
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4576,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: Catch::Clara::Detail::invokeLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto invokeLambda( L const& lambda, std::string const& arg )\n                ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4588
    functionName: Catch::Clara::Detail::BoundLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::invokeLambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4594
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::invokeLambda
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4598
    functionName: Catch::Clara::Detail::BoundManyLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundManyLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4599
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isContainer() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4614
    functionName: Catch::Clara::Detail::BoundFlagLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4619
    functionName: Catch::Clara::Detail::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    linkageType: ''
    returnType: auto
    signature: auto setFlag( bool flag ) -> ParserResult override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4626
    functionName: ~ParserBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4627
    functionDepth: 2
    functionLinenumber: 4627
    functionLinenumberEnd: 4627
    functionName: Catch::Clara::Detail::ParserBase::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: auto
    signature: auto validate() const -> Result
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::shared_ptr<BoundRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4653
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( std::shared_ptr<BoundRef> const& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundManyLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4661
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundManyLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: "void ParserRefImpl( accept_many_t,\n                               LambdaT
      const& ref,\n                               StringRef hint )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundValueRef<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4666
    functionDepth: 0
    functionLinenumber: 4666
    functionLinenumberEnd: 4668
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundValueRef<T>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4675
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4680
    functionName: '& operator()( StringRef description ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT & operator()( StringRef description ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4684
    functionName: '&& operator()( StringRef description ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT && operator()( StringRef description ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 0
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: Catch::Clara::Detail::ParserRefImpl::optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto optional() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4691
    functionDepth: 0
    functionLinenumber: 4691
    functionLinenumberEnd: 4694
    functionName: Catch::Clara::Detail::ParserRefImpl::required
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto required() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4698
    functionName: Catch::Clara::Detail::ParserRefImpl::isOptional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isOptional() const -> bool
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isContainer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4700
    functionDepth: 0
    functionLinenumber: 4700
    functionLinenumberEnd: 4705
    functionName: Catch::Clara::Detail::ParserRefImpl::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - isContainer
    linkageType: ''
    returnType: auto
    signature: auto cardinality() const -> size_t override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4707
    functionName: Catch::Clara::Detail::ParserRefImpl::hint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundFlagLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - LambdaT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4733
      start: 4731
    functionDepth: 0
    functionLinenumber: 4731
    functionLinenumberEnd: 4733
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundFlagLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void Opt(LambdaT const& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4741
      start: 4740
    functionDepth: 0
    functionLinenumber: 4740
    functionLinenumberEnd: 4741
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4744
    functionDepth: 0
    functionLinenumber: 4744
    functionLinenumberEnd: 4745
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( accept_many_t, LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4751
      start: 4750
    functionDepth: 0
    functionLinenumber: 4750
    functionLinenumberEnd: 4751
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - optName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4756
      start: 4753
    functionDepth: 0
    functionLinenumber: 4753
    functionLinenumberEnd: 4756
    functionName: '& operator[]( StringRef optName ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Opt
    signature: Opt & operator[]( StringRef optName ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4758,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - optName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4760
      start: 4757
    functionDepth: 1
    functionLinenumber: 4757
    functionLinenumberEnd: 4760
    functionName: '&& operator[]( StringRef optName ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: Opt
    signature: Opt && operator[]( StringRef optName ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - LambdaT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4785
    functionDepth: 0
    functionLinenumber: 4785
    functionLinenumberEnd: 4787
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ExeName(LambdaT const& lambda)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4795
      start: 4795
    functionDepth: 0
    functionLinenumber: 4795
    functionLinenumberEnd: 4795
    functionName: '& name() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' exeName'
    argTypes:
    - ExeName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4811
      start: 4808
    functionDepth: 0
    functionLinenumber: 4808
    functionLinenumberEnd: 4811
    functionName: operator|=(ExeName const& exeName) -> Parser&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator|=(ExeName const& exeName) -> Parser&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4816
      start: 4813
    functionDepth: 0
    functionLinenumber: 4813
    functionLinenumberEnd: 4816
    functionName: operator|=(Arg const& arg) -> Parser&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: auto
    signature: auto operator|=(Arg const& arg) -> Parser&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_options::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' opt'
    argTypes:
    - Parser
    - Opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4821
      start: 4818
    functionDepth: 0
    functionLinenumber: 4818
    functionLinenumberEnd: 4821
    functionName: '& operator|=( Parser& p, Opt const& opt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_options::push_back
    linkageType: ''
    returnType: Parser
    signature: Parser & operator|=( Parser& p, Opt const& opt )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_options::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4823,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' opt'
    argTypes:
    - Parser
    - Opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4825
      start: 4822
    functionDepth: 1
    functionLinenumber: 4822
    functionLinenumberEnd: 4825
    functionName: '& operator|=( Parser& p, Opt&& opt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_options::push_back
    linkageType: ''
    returnType: Parser
    signature: Parser & operator|=( Parser& p, Opt&& opt )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' rhs'
    argTypes:
    - Parser
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4834
      start: 4830
    functionDepth: 0
    functionLinenumber: 4830
    functionLinenumberEnd: 4834
    functionName: operator|( Parser const& p, T&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Parser
    signature: Parser operator|( Parser const& p, T&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4838,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' rhs'
    argTypes:
    - Parser
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4837
    functionDepth: 1
    functionLinenumber: 4837
    functionLinenumberEnd: 4840
    functionName: operator|( Parser&& p, T&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - CATCH_FORWARD
    linkageType: ''
    returnType: Parser
    signature: Parser operator|( Parser&& p, T&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeToStream
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' parser'
    argTypes:
    - std::ostream
    - Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4846
    functionDepth: 0
    functionLinenumber: 4846
    functionLinenumberEnd: 4850
    functionName: "operator<<(std::ostream& os, Parser const& parser)\n                ->
      std::ostream&"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - writeToStream
    linkageType: ''
    returnType: auto
    signature: "auto operator<<(std::ostream& os, Parser const& parser)\n                ->
      std::ostream&"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4873
    functionDepth: 0
    functionLinenumber: 4873
    functionLinenumberEnd: 4873
    functionName: Catch::Clara::Args::exeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef exeName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parser
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    - Dst: static_cast<DerivedT const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4891
    functionName: ComposableParserImpl<DerivedT>::operator|(T const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Parser
    - static_cast<DerivedT const&>
    linkageType: ''
    returnType: Parser
    signature: Parser ComposableParserImpl<DerivedT>::operator|(T const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parser
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    - Dst: static_cast<DerivedT const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4891
    functionName: ComposableParserImpl<DerivedT>::operator|(T const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Parser
    - static_cast<DerivedT const&>
    linkageType: ''
    returnType: Parser
    signature: Parser ComposableParserImpl<DerivedT>::operator|(T const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4276
    functionDepth: 0
    functionLinenumber: 4276
    functionLinenumberEnd: 4278
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4282
    functionName: Catch::Clara::Detail::TokenStream::count
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4284
        line_start: 4284
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4287
      start: 4284
    functionDepth: 0
    functionLinenumber: 4284
    functionLinenumberEnd: 4287
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4289
        line_start: 4289
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 0
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4307
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase( ResultType type )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4311
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4312
    functionName: '& operator=(ResultBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4313
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4314
    functionDepth: 0
    functionLinenumber: 4314
    functionLinenumberEnd: 4314
    functionName: '& operator=(ResultBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4327
    functionName: '& value() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T & value() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4329,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4331
    functionName: '&& value() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T && value() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4334
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType type )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4340
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase const& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4341
    functionDepth: 1
    functionLinenumber: 4341
    functionLinenumberEnd: 4345
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase&& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4351
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T&& value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4359,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4360,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: '& operator=( ResultValueBase const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase const& other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4366,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4367,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4371
    functionName: '& operator=( ResultValueBase&& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    - CATCH_MOVE
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase&& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4377
    functionName: ~ResultValueBase() override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void ~ResultValueBase() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4394,1
    - Dst: Catch::Clara::Detail::BasicResult::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4395,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicResult<U>
    assertStmts:
    - condition: ( type() != ResultType::Ok )
      pos:
        line_end: 4395
        line_start: 4395
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4397
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4397
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::type
    - assert
    - Catch::Clara::Detail::BasicResult::errorMessage
    linkageType: ''
    returnType: void
    signature: void BasicResult( BasicResult<U> const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4402
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 12
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto ok( U&& value ) -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4403
      start: 4403
    functionDepth: 0
    functionLinenumber: 4403
    functionLinenumberEnd: 4403
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto ok() -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 1
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: Catch::Clara::Detail::BasicResult::logicError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto logicError( std::string&& message )\n                    -> BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: Catch::Clara::Detail::BasicResult::runtimeError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto runtimeError( std::string&& message )\n                    ->
      BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4415
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4416
    functionName: Catch::Clara::Detail::BasicResult::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto type() const -> ResultType
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4419
    functionName: Catch::Clara::Detail::BasicResult::errorMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto errorMessage() const -> std::string const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4426,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4427,1
    - Dst: abort
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_type != ResultType::LogicError )
      pos:
        line_end: 4425
        line_start: 4425
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: ( m_type != ResultType::RuntimeError )
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4430
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4430
    functionName: Catch::Clara::Detail::BasicResult::enforceOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void enforceOk() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4437,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ' message'
    argTypes:
    - ResultType
    - std::string
    assertStmts:
    - condition: ( m_type != ResultType::Ok )
      pos:
        line_end: 4437
        line_start: 4437
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void BasicResult( ResultType type,\n                             std::string&&
      message )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4450
    functionDepth: 0
    functionLinenumber: 4450
    functionLinenumberEnd: 4450
    functionName: Catch::Clara::Detail::ParseState::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseResultType
    signature: ParseResultType type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4453
    functionName: '& remainingTokens() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & remainingTokens() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4456
    functionName: '&& remainingTokens() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream && remainingTokens() &&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::fail
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4476,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4477,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4483
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 16
    functionsReached:
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::stringstream::fail
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult convertInto( std::string const& source, T& target )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4494,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - CLARA_CONFIG_OPTIONAL_TYPE<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 1
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 17
    functionsReached:
    - CATCH_MOVE
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto convertInto( std::string const& source,\n                              CLARA_CONFIG_OPTIONAL_TYPE<T>&
      target )\n                -> ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4502
    functionDepth: 0
    functionLinenumber: 4502
    functionLinenumberEnd: 4502
    functionName: ~BoundRef()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoundRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4518
    functionDepth: 0
    functionLinenumber: 4518
    functionLinenumberEnd: 4518
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( T& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4522
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult setValue( std::string const& arg ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4529
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( std::vector<T>& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4531
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isContainer() const -> bool override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4536,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4540
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4546
    functionName: Catch::Clara::Detail::BoundFlagRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagRef( bool& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4560
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4567,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4569
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4576,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: Catch::Clara::Detail::invokeLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto invokeLambda( L const& lambda, std::string const& arg )\n                ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4588
    functionName: Catch::Clara::Detail::BoundLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::invokeLambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4594
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::invokeLambda
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4598
    functionName: Catch::Clara::Detail::BoundManyLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundManyLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4599
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isContainer() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4614
    functionName: Catch::Clara::Detail::BoundFlagLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4619
    functionName: Catch::Clara::Detail::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    linkageType: ''
    returnType: auto
    signature: auto setFlag( bool flag ) -> ParserResult override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4626
    functionName: ~ParserBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4627
    functionDepth: 2
    functionLinenumber: 4627
    functionLinenumberEnd: 4627
    functionName: Catch::Clara::Detail::ParserBase::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: auto
    signature: auto validate() const -> Result
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::shared_ptr<BoundRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4653
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( std::shared_ptr<BoundRef> const& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundManyLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4661
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundManyLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: "void ParserRefImpl( accept_many_t,\n                               LambdaT
      const& ref,\n                               StringRef hint )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundValueRef<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4666
    functionDepth: 0
    functionLinenumber: 4666
    functionLinenumberEnd: 4668
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundValueRef<T>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4675
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4680
    functionName: '& operator()( StringRef description ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT & operator()( StringRef description ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4684
    functionName: '&& operator()( StringRef description ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT && operator()( StringRef description ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 0
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: Catch::Clara::Detail::ParserRefImpl::optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto optional() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4691
    functionDepth: 0
    functionLinenumber: 4691
    functionLinenumberEnd: 4694
    functionName: Catch::Clara::Detail::ParserRefImpl::required
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto required() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4698
    functionName: Catch::Clara::Detail::ParserRefImpl::isOptional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isOptional() const -> bool
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isContainer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4700
    functionDepth: 0
    functionLinenumber: 4700
    functionLinenumberEnd: 4705
    functionName: Catch::Clara::Detail::ParserRefImpl::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - isContainer
    linkageType: ''
    returnType: auto
    signature: auto cardinality() const -> size_t override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4707
    functionName: Catch::Clara::Detail::ParserRefImpl::hint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4276
    functionDepth: 0
    functionLinenumber: 4276
    functionLinenumberEnd: 4278
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4282
    functionName: Catch::Clara::Detail::TokenStream::count
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4284
        line_start: 4284
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4287
      start: 4284
    functionDepth: 0
    functionLinenumber: 4284
    functionLinenumberEnd: 4287
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4289
        line_start: 4289
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 0
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4307
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase( ResultType type )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4311
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4312
    functionName: '& operator=(ResultBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4313
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4314
    functionDepth: 0
    functionLinenumber: 4314
    functionLinenumberEnd: 4314
    functionName: '& operator=(ResultBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4327
    functionName: '& value() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T & value() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4329,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4331
    functionName: '&& value() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T && value() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4334
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType type )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4340
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase const& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4341
    functionDepth: 1
    functionLinenumber: 4341
    functionLinenumberEnd: 4345
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase&& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4351
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T&& value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4359,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4360,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: '& operator=( ResultValueBase const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase const& other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4366,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4367,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4371
    functionName: '& operator=( ResultValueBase&& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    - CATCH_MOVE
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase&& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4377
    functionName: ~ResultValueBase() override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void ~ResultValueBase() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4394,1
    - Dst: Catch::Clara::Detail::BasicResult::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4395,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicResult<U>
    assertStmts:
    - condition: ( type() != ResultType::Ok )
      pos:
        line_end: 4395
        line_start: 4395
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4397
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4397
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::type
    - assert
    - Catch::Clara::Detail::BasicResult::errorMessage
    linkageType: ''
    returnType: void
    signature: void BasicResult( BasicResult<U> const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4402
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto ok( U&& value ) -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4403
      start: 4403
    functionDepth: 0
    functionLinenumber: 4403
    functionLinenumberEnd: 4403
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto ok() -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 1
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: Catch::Clara::Detail::BasicResult::logicError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto logicError( std::string&& message )\n                    -> BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: Catch::Clara::Detail::BasicResult::runtimeError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto runtimeError( std::string&& message )\n                    ->
      BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4415
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4416
    functionName: Catch::Clara::Detail::BasicResult::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto type() const -> ResultType
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4419
    functionName: Catch::Clara::Detail::BasicResult::errorMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto errorMessage() const -> std::string const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4426,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4427,1
    - Dst: abort
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_type != ResultType::LogicError )
      pos:
        line_end: 4425
        line_start: 4425
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: ( m_type != ResultType::RuntimeError )
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4430
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4430
    functionName: Catch::Clara::Detail::BasicResult::enforceOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void enforceOk() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4437,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ' message'
    argTypes:
    - ResultType
    - std::string
    assertStmts:
    - condition: ( m_type != ResultType::Ok )
      pos:
        line_end: 4437
        line_start: 4437
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void BasicResult( ResultType type,\n                             std::string&&
      message )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4450
    functionDepth: 0
    functionLinenumber: 4450
    functionLinenumberEnd: 4450
    functionName: Catch::Clara::Detail::ParseState::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseResultType
    signature: ParseResultType type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4453
    functionName: '& remainingTokens() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & remainingTokens() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4456
    functionName: '&& remainingTokens() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream && remainingTokens() &&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::fail
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4476,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4477,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4483
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 20
    functionsReached:
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::stringstream::fail
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult convertInto( std::string const& source, T& target )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4494,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - CLARA_CONFIG_OPTIONAL_TYPE<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 1
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 21
    functionsReached:
    - CATCH_MOVE
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto convertInto( std::string const& source,\n                              CLARA_CONFIG_OPTIONAL_TYPE<T>&
      target )\n                -> ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4502
    functionDepth: 0
    functionLinenumber: 4502
    functionLinenumberEnd: 4502
    functionName: ~BoundRef()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoundRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4518
    functionDepth: 0
    functionLinenumber: 4518
    functionLinenumberEnd: 4518
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( T& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4522
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult setValue( std::string const& arg ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4529
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( std::vector<T>& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4531
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isContainer() const -> bool override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4536,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4540
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4546
    functionName: Catch::Clara::Detail::BoundFlagRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagRef( bool& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4560
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4567,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4569
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4576,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: Catch::Clara::Detail::invokeLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto invokeLambda( L const& lambda, std::string const& arg )\n                ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4588
    functionName: Catch::Clara::Detail::BoundLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::invokeLambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4594
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::invokeLambda
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4598
    functionName: Catch::Clara::Detail::BoundManyLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundManyLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4599
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isContainer() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4614
    functionName: Catch::Clara::Detail::BoundFlagLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4619
    functionName: Catch::Clara::Detail::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    linkageType: ''
    returnType: auto
    signature: auto setFlag( bool flag ) -> ParserResult override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4626
    functionName: ~ParserBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4627
    functionDepth: 2
    functionLinenumber: 4627
    functionLinenumberEnd: 4627
    functionName: Catch::Clara::Detail::ParserBase::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: auto
    signature: auto validate() const -> Result
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::shared_ptr<BoundRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4653
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( std::shared_ptr<BoundRef> const& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundManyLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4661
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundManyLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: "void ParserRefImpl( accept_many_t,\n                               LambdaT
      const& ref,\n                               StringRef hint )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundValueRef<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4666
    functionDepth: 0
    functionLinenumber: 4666
    functionLinenumberEnd: 4668
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundValueRef<T>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4675
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4680
    functionName: '& operator()( StringRef description ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT & operator()( StringRef description ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4684
    functionName: '&& operator()( StringRef description ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT && operator()( StringRef description ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 0
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: Catch::Clara::Detail::ParserRefImpl::optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto optional() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4691
    functionDepth: 0
    functionLinenumber: 4691
    functionLinenumberEnd: 4694
    functionName: Catch::Clara::Detail::ParserRefImpl::required
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto required() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4698
    functionName: Catch::Clara::Detail::ParserRefImpl::isOptional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isOptional() const -> bool
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isContainer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4700
    functionDepth: 0
    functionLinenumber: 4700
    functionLinenumberEnd: 4705
    functionName: Catch::Clara::Detail::ParserRefImpl::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - isContainer
    linkageType: ''
    returnType: auto
    signature: auto cardinality() const -> size_t override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4707
    functionName: Catch::Clara::Detail::ParserRefImpl::hint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundFlagLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - LambdaT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4733
      start: 4731
    functionDepth: 0
    functionLinenumber: 4731
    functionLinenumberEnd: 4733
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundFlagLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void Opt(LambdaT const& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4741
      start: 4740
    functionDepth: 0
    functionLinenumber: 4740
    functionLinenumberEnd: 4741
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4744
    functionDepth: 0
    functionLinenumber: 4744
    functionLinenumberEnd: 4745
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( accept_many_t, LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4751
      start: 4750
    functionDepth: 0
    functionLinenumber: 4750
    functionLinenumberEnd: 4751
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - optName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4756
      start: 4753
    functionDepth: 0
    functionLinenumber: 4753
    functionLinenumberEnd: 4756
    functionName: '& operator[]( StringRef optName ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Opt
    signature: Opt & operator[]( StringRef optName ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4758,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - optName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4760
      start: 4757
    functionDepth: 1
    functionLinenumber: 4757
    functionLinenumberEnd: 4760
    functionName: '&& operator[]( StringRef optName ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: Opt
    signature: Opt && operator[]( StringRef optName ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - LambdaT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4785
    functionDepth: 0
    functionLinenumber: 4785
    functionLinenumberEnd: 4787
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ExeName(LambdaT const& lambda)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4795
      start: 4795
    functionDepth: 0
    functionLinenumber: 4795
    functionLinenumberEnd: 4795
    functionName: '& name() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' exeName'
    argTypes:
    - ExeName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4811
      start: 4808
    functionDepth: 0
    functionLinenumber: 4808
    functionLinenumberEnd: 4811
    functionName: operator|=(ExeName const& exeName) -> Parser&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator|=(ExeName const& exeName) -> Parser&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4816
      start: 4813
    functionDepth: 0
    functionLinenumber: 4813
    functionLinenumberEnd: 4816
    functionName: operator|=(Arg const& arg) -> Parser&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: auto
    signature: auto operator|=(Arg const& arg) -> Parser&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_options::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' opt'
    argTypes:
    - Parser
    - Opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4821
      start: 4818
    functionDepth: 0
    functionLinenumber: 4818
    functionLinenumberEnd: 4821
    functionName: '& operator|=( Parser& p, Opt const& opt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_options::push_back
    linkageType: ''
    returnType: Parser
    signature: Parser & operator|=( Parser& p, Opt const& opt )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_options::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4823,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' opt'
    argTypes:
    - Parser
    - Opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4825
      start: 4822
    functionDepth: 1
    functionLinenumber: 4822
    functionLinenumberEnd: 4825
    functionName: '& operator|=( Parser& p, Opt&& opt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_options::push_back
    linkageType: ''
    returnType: Parser
    signature: Parser & operator|=( Parser& p, Opt&& opt )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' rhs'
    argTypes:
    - Parser
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4834
      start: 4830
    functionDepth: 0
    functionLinenumber: 4830
    functionLinenumberEnd: 4834
    functionName: operator|( Parser const& p, T&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Parser
    signature: Parser operator|( Parser const& p, T&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4838,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' rhs'
    argTypes:
    - Parser
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4837
    functionDepth: 1
    functionLinenumber: 4837
    functionLinenumberEnd: 4840
    functionName: operator|( Parser&& p, T&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - CATCH_FORWARD
    linkageType: ''
    returnType: Parser
    signature: Parser operator|( Parser&& p, T&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeToStream
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' parser'
    argTypes:
    - std::ostream
    - Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4846
    functionDepth: 0
    functionLinenumber: 4846
    functionLinenumberEnd: 4850
    functionName: "operator<<(std::ostream& os, Parser const& parser)\n                ->
      std::ostream&"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - writeToStream
    linkageType: ''
    returnType: auto
    signature: "auto operator<<(std::ostream& os, Parser const& parser)\n                ->
      std::ostream&"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4873
    functionDepth: 0
    functionLinenumber: 4873
    functionLinenumberEnd: 4873
    functionName: Catch::Clara::Args::exeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef exeName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parser
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    - Dst: static_cast<DerivedT const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4891
    functionName: ComposableParserImpl<DerivedT>::operator|(T const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Parser
    - static_cast<DerivedT const&>
    linkageType: ''
    returnType: Parser
    signature: Parser ComposableParserImpl<DerivedT>::operator|(T const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parser
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    - Dst: static_cast<DerivedT const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4891
    functionName: ComposableParserImpl<DerivedT>::operator|(T const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Parser
    - static_cast<DerivedT const&>
    linkageType: ''
    returnType: Parser
    signature: Parser ComposableParserImpl<DerivedT>::operator|(T const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4276
    functionDepth: 0
    functionLinenumber: 4276
    functionLinenumberEnd: 4278
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4282
    functionName: Catch::Clara::Detail::TokenStream::count
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4284
        line_start: 4284
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4287
      start: 4284
    functionDepth: 0
    functionLinenumber: 4284
    functionLinenumberEnd: 4287
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4289
        line_start: 4289
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 0
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4307
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase( ResultType type )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4311
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4312
    functionName: '& operator=(ResultBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4313
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4314
    functionDepth: 0
    functionLinenumber: 4314
    functionLinenumberEnd: 4314
    functionName: '& operator=(ResultBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4327
    functionName: '& value() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T & value() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4329,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4331
    functionName: '&& value() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T && value() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4334
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType type )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4340
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase const& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4341
    functionDepth: 1
    functionLinenumber: 4341
    functionLinenumberEnd: 4345
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase&& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4351
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T&& value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4359,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4360,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: '& operator=( ResultValueBase const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase const& other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4366,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4367,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4371
    functionName: '& operator=( ResultValueBase&& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    - CATCH_MOVE
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase&& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4377
    functionName: ~ResultValueBase() override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void ~ResultValueBase() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4394,1
    - Dst: Catch::Clara::Detail::BasicResult::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4395,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicResult<U>
    assertStmts:
    - condition: ( type() != ResultType::Ok )
      pos:
        line_end: 4395
        line_start: 4395
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4397
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4397
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::type
    - assert
    - Catch::Clara::Detail::BasicResult::errorMessage
    linkageType: ''
    returnType: void
    signature: void BasicResult( BasicResult<U> const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4402
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 18
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto ok( U&& value ) -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4403
      start: 4403
    functionDepth: 0
    functionLinenumber: 4403
    functionLinenumberEnd: 4403
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto ok() -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 1
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: Catch::Clara::Detail::BasicResult::logicError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto logicError( std::string&& message )\n                    -> BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: Catch::Clara::Detail::BasicResult::runtimeError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto runtimeError( std::string&& message )\n                    ->
      BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4415
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4416
    functionName: Catch::Clara::Detail::BasicResult::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto type() const -> ResultType
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4419
    functionName: Catch::Clara::Detail::BasicResult::errorMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto errorMessage() const -> std::string const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4426,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4427,1
    - Dst: abort
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_type != ResultType::LogicError )
      pos:
        line_end: 4425
        line_start: 4425
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: ( m_type != ResultType::RuntimeError )
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4430
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4430
    functionName: Catch::Clara::Detail::BasicResult::enforceOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void enforceOk() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4437,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ' message'
    argTypes:
    - ResultType
    - std::string
    assertStmts:
    - condition: ( m_type != ResultType::Ok )
      pos:
        line_end: 4437
        line_start: 4437
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void BasicResult( ResultType type,\n                             std::string&&
      message )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4450
    functionDepth: 0
    functionLinenumber: 4450
    functionLinenumberEnd: 4450
    functionName: Catch::Clara::Detail::ParseState::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseResultType
    signature: ParseResultType type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4453
    functionName: '& remainingTokens() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & remainingTokens() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4456
    functionName: '&& remainingTokens() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream && remainingTokens() &&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::fail
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4476,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4477,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4483
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 24
    functionsReached:
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::stringstream::fail
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult convertInto( std::string const& source, T& target )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4494,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - CLARA_CONFIG_OPTIONAL_TYPE<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 1
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 25
    functionsReached:
    - CATCH_MOVE
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto convertInto( std::string const& source,\n                              CLARA_CONFIG_OPTIONAL_TYPE<T>&
      target )\n                -> ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4502
    functionDepth: 0
    functionLinenumber: 4502
    functionLinenumberEnd: 4502
    functionName: ~BoundRef()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoundRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4518
    functionDepth: 0
    functionLinenumber: 4518
    functionLinenumberEnd: 4518
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( T& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4522
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult setValue( std::string const& arg ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4529
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( std::vector<T>& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4531
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isContainer() const -> bool override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4536,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4540
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4546
    functionName: Catch::Clara::Detail::BoundFlagRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagRef( bool& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4560
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4567,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4569
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4576,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: Catch::Clara::Detail::invokeLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto invokeLambda( L const& lambda, std::string const& arg )\n                ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4588
    functionName: Catch::Clara::Detail::BoundLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::invokeLambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4594
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::invokeLambda
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4598
    functionName: Catch::Clara::Detail::BoundManyLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundManyLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4599
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isContainer() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4614
    functionName: Catch::Clara::Detail::BoundFlagLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4619
    functionName: Catch::Clara::Detail::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    linkageType: ''
    returnType: auto
    signature: auto setFlag( bool flag ) -> ParserResult override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4626
    functionName: ~ParserBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4627
    functionDepth: 2
    functionLinenumber: 4627
    functionLinenumberEnd: 4627
    functionName: Catch::Clara::Detail::ParserBase::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: auto
    signature: auto validate() const -> Result
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::shared_ptr<BoundRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4653
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( std::shared_ptr<BoundRef> const& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundManyLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4661
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundManyLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: "void ParserRefImpl( accept_many_t,\n                               LambdaT
      const& ref,\n                               StringRef hint )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundValueRef<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4666
    functionDepth: 0
    functionLinenumber: 4666
    functionLinenumberEnd: 4668
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundValueRef<T>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4675
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4680
    functionName: '& operator()( StringRef description ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT & operator()( StringRef description ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4684
    functionName: '&& operator()( StringRef description ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT && operator()( StringRef description ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 0
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: Catch::Clara::Detail::ParserRefImpl::optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto optional() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4691
    functionDepth: 0
    functionLinenumber: 4691
    functionLinenumberEnd: 4694
    functionName: Catch::Clara::Detail::ParserRefImpl::required
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto required() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4698
    functionName: Catch::Clara::Detail::ParserRefImpl::isOptional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isOptional() const -> bool
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isContainer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4700
    functionDepth: 0
    functionLinenumber: 4700
    functionLinenumberEnd: 4705
    functionName: Catch::Clara::Detail::ParserRefImpl::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - isContainer
    linkageType: ''
    returnType: auto
    signature: auto cardinality() const -> size_t override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4707
    functionName: Catch::Clara::Detail::ParserRefImpl::hint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4276
    functionDepth: 0
    functionLinenumber: 4276
    functionLinenumberEnd: 4278
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4282
    functionName: Catch::Clara::Detail::TokenStream::count
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4285,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4284
        line_start: 4284
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4287
      start: 4284
    functionDepth: 0
    functionLinenumber: 4284
    functionLinenumberEnd: 4287
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4290,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !m_tokenBuffer.empty() )
      pos:
        line_end: 4289
        line_start: 4289
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 0
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - front
    linkageType: ''
    returnType: Token
    signature: Token * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4307
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase( ResultType type )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4311
    functionDepth: 0
    functionLinenumber: 4311
    functionLinenumberEnd: 4311
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4312
    functionName: '& operator=(ResultBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4313
    functionName: Catch::Clara::Detail::ResultBase::ResultBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4314
    functionDepth: 0
    functionLinenumber: 4314
    functionLinenumberEnd: 4314
    functionName: '& operator=(ResultBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultBase
    signature: ResultBase & operator=(ResultBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4327
    functionName: '& value() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T & value() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enforceOk
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4329,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4331
    functionName: '&& value() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - enforceOk
    linkageType: ''
    returnType: T
    signature: T && value() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4334
    functionDepth: 0
    functionLinenumber: 4334
    functionLinenumberEnd: 4334
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType type )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4340
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase const& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4341
    functionDepth: 1
    functionLinenumber: 4341
    functionLinenumberEnd: 4345
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultValueBase&& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4351
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: Catch::Clara::Detail::ResultValueBase::ResultValueBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ResultValueBase( ResultType, T&& value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4359,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4360,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: '& operator=( ResultValueBase const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase const& other )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4366,1
    - Dst: ResultBase::operator=
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4367,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ResultValueBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4371
    functionName: '& operator=( ResultValueBase&& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    - T::T
    - ResultBase::operator=
    - CATCH_MOVE
    linkageType: ''
    returnType: ResultValueBase
    signature: ResultValueBase & operator=( ResultValueBase&& other )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4377
    functionName: ~ResultValueBase() override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void ~ResultValueBase() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4394,1
    - Dst: Catch::Clara::Detail::BasicResult::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4395,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    - Dst: Catch::Clara::Detail::BasicResult::type
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BasicResult<U>
    assertStmts:
    - condition: ( type() != ResultType::Ok )
      pos:
        line_end: 4395
        line_start: 4395
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4397
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4397
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::type
    - assert
    - Catch::Clara::Detail::BasicResult::errorMessage
    linkageType: ''
    returnType: void
    signature: void BasicResult( BasicResult<U> const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4402
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 21
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto ok( U&& value ) -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4403
      start: 4403
    functionDepth: 0
    functionLinenumber: 4403
    functionLinenumberEnd: 4403
    functionName: Catch::Clara::Detail::BasicResult::ok
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto ok() -> BasicResult
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4404
    functionDepth: 1
    functionLinenumber: 4404
    functionLinenumberEnd: 4407
    functionName: Catch::Clara::Detail::BasicResult::logicError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto logicError( std::string&& message )\n                    -> BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4411
    functionName: Catch::Clara::Detail::BasicResult::runtimeError
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: "auto runtimeError( std::string&& message )\n                    ->
      BasicResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4413
    functionDepth: 0
    functionLinenumber: 4413
    functionLinenumberEnd: 4415
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4416
    functionName: Catch::Clara::Detail::BasicResult::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto type() const -> ResultType
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4419
    functionName: Catch::Clara::Detail::BasicResult::errorMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto errorMessage() const -> std::string const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4426,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4427,1
    - Dst: abort
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_type != ResultType::LogicError )
      pos:
        line_end: 4425
        line_start: 4425
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: ( m_type != ResultType::RuntimeError )
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4430
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4430
    functionName: Catch::Clara::Detail::BasicResult::enforceOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void enforceOk() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4437,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ' message'
    argTypes:
    - ResultType
    - std::string
    assertStmts:
    - condition: ( m_type != ResultType::Ok )
      pos:
        line_end: 4437
        line_start: 4437
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: Catch::Clara::Detail::BasicResult::BasicResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void BasicResult( ResultType type,\n                             std::string&&
      message )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4450
    functionDepth: 0
    functionLinenumber: 4450
    functionLinenumberEnd: 4450
    functionName: Catch::Clara::Detail::ParseState::type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ParseResultType
    signature: ParseResultType type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4453
    functionName: '& remainingTokens() const&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & remainingTokens() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4456
    functionName: '&& remainingTokens() &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream && remainingTokens() &&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::fail
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4476,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4477,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4483
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 28
    functionsReached:
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::stringstream::fail
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult convertInto( std::string const& source, T& target )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4494,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - CLARA_CONFIG_OPTIONAL_TYPE<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 1
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 29
    functionsReached:
    - CATCH_MOVE
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto convertInto( std::string const& source,\n                              CLARA_CONFIG_OPTIONAL_TYPE<T>&
      target )\n                -> ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4502
    functionDepth: 0
    functionLinenumber: 4502
    functionLinenumberEnd: 4502
    functionName: ~BoundRef()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoundRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4518
    functionDepth: 0
    functionLinenumber: 4518
    functionLinenumberEnd: 4518
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( T& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4522
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult setValue( std::string const& arg ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4529
    functionName: Catch::Clara::Detail::BoundValueRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundValueRef( std::vector<T>& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4531
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isContainer() const -> bool override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4536,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4540
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4546
    functionName: Catch::Clara::Detail::BoundFlagRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagRef( bool& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4560
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4567,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4565
    functionDepth: 2
    functionLinenumber: 4565
    functionLinenumberEnd: 4569
    functionName: Catch::Clara::Detail::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - lambda
    linkageType: ''
    returnType: auto
    signature: "auto invoke( L const& lambda, ArgType const& arg )\n                    ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::convertInto
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4576,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lambda'
    - ' arg'
    argTypes:
    - L
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4580
    functionName: Catch::Clara::Detail::invokeLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    - Catch::Clara::Detail::convertInto
    linkageType: ''
    returnType: auto
    signature: "auto invokeLambda( L const& lambda, std::string const& arg )\n                ->
      ParserResult"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4588
    functionName: Catch::Clara::Detail::BoundLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::invokeLambda
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4594
    functionName: Catch::Clara::Detail::setValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::invokeLambda
    linkageType: ''
    returnType: auto
    signature: "auto setValue( std::string const& arg )\n                    -> ParserResult
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4598
    functionName: Catch::Clara::Detail::BoundManyLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundManyLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4599
    functionName: Catch::Clara::Detail::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isContainer() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4614
    functionName: Catch::Clara::Detail::BoundFlagLambda
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundFlagLambda( L const& lambda )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4619
    functionName: Catch::Clara::Detail::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::invoke
    linkageType: ''
    returnType: auto
    signature: auto setFlag( bool flag ) -> ParserResult override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4626
    functionName: ~ParserBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParserBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4627
    functionDepth: 2
    functionLinenumber: 4627
    functionLinenumberEnd: 4627
    functionName: Catch::Clara::Detail::ParserBase::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: auto
    signature: auto validate() const -> Result
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::shared_ptr<BoundRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4653
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( std::shared_ptr<BoundRef> const& ref )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundManyLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4661
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundManyLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: "void ParserRefImpl( accept_many_t,\n                               LambdaT
      const& ref,\n                               StringRef hint )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundValueRef<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4666
    functionDepth: 0
    functionLinenumber: 4666
    functionLinenumberEnd: 4668
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundValueRef<T>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4675
    functionName: Catch::Clara::Detail::ParserRefImpl::ParserRefImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ParserRefImpl( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4680
    functionName: '& operator()( StringRef description ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT & operator()( StringRef description ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - description
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4684
    functionName: '&& operator()( StringRef description ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&&>
    linkageType: ''
    returnType: DerivedT
    signature: DerivedT && operator()( StringRef description ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 0
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: Catch::Clara::Detail::ParserRefImpl::optional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto optional() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedT&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4691
    functionDepth: 0
    functionLinenumber: 4691
    functionLinenumberEnd: 4694
    functionName: Catch::Clara::Detail::ParserRefImpl::required
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<DerivedT&>
    linkageType: ''
    returnType: auto
    signature: auto required() -> DerivedT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4698
    functionName: Catch::Clara::Detail::ParserRefImpl::isOptional
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto isOptional() const -> bool
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isContainer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4700
    functionDepth: 0
    functionLinenumber: 4700
    functionLinenumberEnd: 4705
    functionName: Catch::Clara::Detail::ParserRefImpl::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - isContainer
    linkageType: ''
    returnType: auto
    signature: auto cardinality() const -> size_t override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4707
    functionName: Catch::Clara::Detail::ParserRefImpl::hint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundFlagLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - LambdaT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4733
      start: 4731
    functionDepth: 0
    functionLinenumber: 4731
    functionLinenumberEnd: 4733
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundFlagLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void Opt(LambdaT const& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4741
      start: 4740
    functionDepth: 0
    functionLinenumber: 4740
    functionLinenumberEnd: 4741
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - LambdaT
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4744
    functionDepth: 0
    functionLinenumber: 4744
    functionLinenumberEnd: 4745
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( accept_many_t, LambdaT const& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ref'
    - hint
    argTypes:
    - T
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4751
      start: 4750
    functionDepth: 0
    functionLinenumber: 4750
    functionLinenumberEnd: 4751
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Opt( T& ref, StringRef hint )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - optName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4756
      start: 4753
    functionDepth: 0
    functionLinenumber: 4753
    functionLinenumberEnd: 4756
    functionName: '& operator[]( StringRef optName ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Opt
    signature: Opt & operator[]( StringRef optName ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4758,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - optName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4760
      start: 4757
    functionDepth: 1
    functionLinenumber: 4757
    functionLinenumberEnd: 4760
    functionName: '&& operator[]( StringRef optName ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: Opt
    signature: Opt && operator[]( StringRef optName ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundLambda<LambdaT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lambda'
    argTypes:
    - LambdaT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4785
    functionDepth: 0
    functionLinenumber: 4785
    functionLinenumberEnd: 4787
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundLambda<LambdaT>>
    linkageType: ''
    returnType: void
    signature: void ExeName(LambdaT const& lambda)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4795
      start: 4795
    functionDepth: 0
    functionLinenumber: 4795
    functionLinenumberEnd: 4795
    functionName: '& name() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' exeName'
    argTypes:
    - ExeName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4811
      start: 4808
    functionDepth: 0
    functionLinenumber: 4808
    functionLinenumberEnd: 4811
    functionName: operator|=(ExeName const& exeName) -> Parser&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator|=(ExeName const& exeName) -> Parser&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4816
      start: 4813
    functionDepth: 0
    functionLinenumber: 4813
    functionLinenumberEnd: 4816
    functionName: operator|=(Arg const& arg) -> Parser&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: auto
    signature: auto operator|=(Arg const& arg) -> Parser&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_options::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' opt'
    argTypes:
    - Parser
    - Opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4821
      start: 4818
    functionDepth: 0
    functionLinenumber: 4818
    functionLinenumberEnd: 4821
    functionName: '& operator|=( Parser& p, Opt const& opt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_options::push_back
    linkageType: ''
    returnType: Parser
    signature: Parser & operator|=( Parser& p, Opt const& opt )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_options::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4823,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' opt'
    argTypes:
    - Parser
    - Opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4825
      start: 4822
    functionDepth: 1
    functionLinenumber: 4822
    functionLinenumberEnd: 4825
    functionName: '& operator|=( Parser& p, Opt&& opt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_options::push_back
    linkageType: ''
    returnType: Parser
    signature: Parser & operator|=( Parser& p, Opt&& opt )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' rhs'
    argTypes:
    - Parser
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4834
      start: 4830
    functionDepth: 0
    functionLinenumber: 4830
    functionLinenumberEnd: 4834
    functionName: operator|( Parser const& p, T&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Parser
    signature: Parser operator|( Parser const& p, T&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4838,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' rhs'
    argTypes:
    - Parser
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4837
    functionDepth: 1
    functionLinenumber: 4837
    functionLinenumberEnd: 4840
    functionName: operator|( Parser&& p, T&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - CATCH_FORWARD
    linkageType: ''
    returnType: Parser
    signature: Parser operator|( Parser&& p, T&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeToStream
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' parser'
    argTypes:
    - std::ostream
    - Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4846
    functionDepth: 0
    functionLinenumber: 4846
    functionLinenumberEnd: 4850
    functionName: "operator<<(std::ostream& os, Parser const& parser)\n                ->
      std::ostream&"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - writeToStream
    linkageType: ''
    returnType: auto
    signature: "auto operator<<(std::ostream& os, Parser const& parser)\n                ->
      std::ostream&"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4873
    functionDepth: 0
    functionLinenumber: 4873
    functionLinenumberEnd: 4873
    functionName: Catch::Clara::Args::exeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef exeName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parser
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    - Dst: static_cast<DerivedT const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4891
    functionName: ComposableParserImpl<DerivedT>::operator|(T const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Parser
    - static_cast<DerivedT const&>
    linkageType: ''
    returnType: Parser
    signature: Parser ComposableParserImpl<DerivedT>::operator|(T const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parser
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    - Dst: static_cast<DerivedT const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4891
    functionName: ComposableParserImpl<DerivedT>::operator|(T const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Parser
    - static_cast<DerivedT const&>
    linkageType: ''
    returnType: Parser
    signature: Parser ComposableParserImpl<DerivedT>::operator|(T const& other) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: applyCommandLine
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4939,1
    - Dst: Catch::Session::run
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - CharT*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4943
      start: 4936
    functionDepth: 1
    functionLinenumber: 4936
    functionLinenumberEnd: 4943
    functionName: Catch::Session::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Session::run
    - applyCommandLine
    linkageType: ''
    returnType: int
    signature: int run(int argc, CharT const * const argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: applyCommandLine
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4939,1
    - Dst: Catch::Session::run
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:4941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - CharT*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4943
      start: 4936
    functionDepth: 1
    functionLinenumber: 4936
    functionLinenumberEnd: 4943
    functionName: Catch::Session::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Session::run
    - applyCommandLine
    linkageType: ''
    returnType: int
    signature: int run(int argc, CharT const * const argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _tag'
    - _lineInfo
    argTypes:
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4977
      start: 4974
    functionDepth: 0
    functionLinenumber: 4974
    functionLinenumberEnd: 4977
    functionName: Catch::TagAlias
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TagAlias(std::string const& _tag, SourceLineInfo _lineInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' _tag'
    - _lineInfo
    argTypes:
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4977
      start: 4974
    functionDepth: 0
    functionLinenumber: 4974
    functionLinenumberEnd: 4977
    functionName: Catch::TagAlias
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TagAlias(std::string const& _tag, SourceLineInfo _lineInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - alias
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5005
      start: 5000
    functionDepth: 0
    functionLinenumber: 5000
    functionLinenumberEnd: 5005
    functionName: CATCH_REGISTER_TAG_ALIAS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TAG_ALIAS( alias, spec )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5087
      start: 5072
    functionDepth: 0
    functionLinenumber: 5072
    functionLinenumberEnd: 5087
    functionName: CATCH_DEFINE_COMPARABLE_TRAIT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DEFINE_COMPARABLE_TRAIT( id, op )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: formatReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5325,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5326,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5324
    functionDepth: 1
    functionLinenumber: 5324
    functionLinenumberEnd: 5327
    functionName: Catch::Detail::BinaryExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - formatReconstructedExpression
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream &os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - comparisonResult
    - lhs
    - op
    - rhs
    argTypes:
    - bool
    - LhsT
    - StringRef
    - RhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5335
      start: 5330
    functionDepth: 0
    functionLinenumber: 5330
    functionLinenumberEnd: 5335
    functionName: Catch::Detail::BinaryExpr::BinaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinaryExpr( bool comparisonResult, LhsT lhs, StringRef op, RhsT
      rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5338
    functionDepth: 0
    functionLinenumber: 5338
    functionLinenumberEnd: 5342
    functionName: operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5349
      start: 5345
    functionDepth: 0
    functionLinenumber: 5345
    functionLinenumberEnd: 5349
    functionName: operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5356
      start: 5352
    functionDepth: 0
    functionLinenumber: 5352
    functionLinenumberEnd: 5356
    functionName: operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5363
      start: 5359
    functionDepth: 0
    functionLinenumber: 5359
    functionLinenumberEnd: 5363
    functionName: operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5370
    functionName: operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5373
    functionDepth: 0
    functionLinenumber: 5373
    functionLinenumberEnd: 5377
    functionName: operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5384
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5384
    functionName: operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5391
      start: 5387
    functionDepth: 0
    functionLinenumber: 5387
    functionLinenumberEnd: 5391
    functionName: operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5400
      start: 5398
    functionDepth: 1
    functionLinenumber: 5398
    functionLinenumberEnd: 5400
    functionName: Catch::Detail::UnaryExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream &os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - LhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5403
    functionDepth: 0
    functionLinenumber: 5403
    functionLinenumberEnd: 5406
    functionName: Catch::Detail::UnaryExpr::UnaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: void
    signature: void UnaryExpr( LhsT lhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - LhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5414
      start: 5414
    functionDepth: 0
    functionLinenumber: 5414
    functionLinenumberEnd: 5414
    functionName: Catch::Detail::ExprLhs::ExprLhs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExprLhs( LhsT lhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5442
      start: 5416
    functionDepth: 0
    functionLinenumber: 5416
    functionLinenumberEnd: 5442
    functionName: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR( id, op )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5446,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5448,1
    - Dst: if
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5460,1
    - Dst: throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5460,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5461,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5465,1
    - Dst: op
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5472,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5516,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5517,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5522,1
    - Dst: op
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5524,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5529,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5539,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5541,1
    - Dst: warning
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5582,1
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: CATCH_INTERNAL_IGNORE_BUT_WARN
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5689,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5692,1
    - Dst: Catch::Decomposer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5694,1
    - Dst: static_cast<const bool&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5698,1
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    - Dst: INTERNAL_CATCH_UNIQUE_NAME
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6047,1
    - Dst: reg_test
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6652,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6652,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6653
      start: 5443
    functionDepth: 1
    functionLinenumber: 5443
    functionLinenumberEnd: 6653
    functionName: BinaryExpr<LhsT, RhsT>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    - warning
    - static_cast<const bool&>
    - CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
    - op
    - reg_test
    - StringRef
    - makeUnaryExpr
    - std::string
    - handleExpr
    - CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
    - handleIncomplete
    - Detail::make_unique<TestInvokerAsMethod<C>>
    - CATCH_INTERNAL_IGNORE_BUT_WARN
    - CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
    - INTERNAL_CATCH_UNIQUE_NAME
    - Catch::Decomposer
    - if
    - throw_test_failure_exception
    linkageType: ''
    returnType: "Detail::disjunction<std::is_same<RhsT, int>,                   \\\n
      \                                   std::is_same<RhsT, long>>>::value"
    signature: "Detail::disjunction<std::is_same<RhsT, int>,                   \\\n
      \                                   std::is_same<RhsT, long>>>::value BinaryExpr<LhsT,
      RhsT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5550
      start: 5546
    functionDepth: 0
    functionLinenumber: 5546
    functionLinenumberEnd: 5550
    functionName: operator && ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator && ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5553
    functionDepth: 0
    functionLinenumber: 5553
    functionLinenumberEnd: 5557
    functionName: operator || ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator || ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5561
      start: 5559
    functionDepth: 0
    functionLinenumber: 5559
    functionLinenumberEnd: 5561
    functionName: Catch::Detail::ExprLhs::makeUnaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto makeUnaryExpr() const -> UnaryExpr<LhsT>
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 0
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: ~AssertionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - handleIncomplete
    linkageType: ''
    returnType: void
    signature: void ~AssertionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ExprLhs<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5624
    functionName: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    - makeUnaryExpr
    linkageType: ''
    returnType: void
    signature: void handleExpr( ExprLhs<T> const& expr )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 0
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: ~AssertionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - handleIncomplete
    linkageType: ''
    returnType: void
    signature: void ~AssertionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ExprLhs<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5624
    functionName: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    - makeUnaryExpr
    linkageType: ''
    returnType: void
    signature: void handleExpr( ExprLhs<T> const& expr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5654
      start: 5653
    functionDepth: 0
    functionLinenumber: 5653
    functionLinenumberEnd: 5654
    functionName: CATCH_INTERNAL_STRINGIFY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_STRINGIFY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5656
      start: 5655
    functionDepth: 0
    functionLinenumber: 5655
    functionLinenumberEnd: 5656
    functionName: CATCH_INTERNAL_STRINGIFY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_STRINGIFY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handler
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5679
    functionDepth: 0
    functionLinenumber: 5679
    functionLinenumberEnd: 5680
    functionName: INTERNAL_CATCH_CATCH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_CATCH( handler )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handler
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5683
    functionDepth: 0
    functionLinenumber: 5683
    functionLinenumberEnd: 5684
    functionName: INTERNAL_CATCH_REACT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REACT( handler )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5688
      start: 5686
    functionDepth: 0
    functionLinenumber: 5686
    functionLinenumberEnd: 5688
    functionName: INTERNAL_CATCH_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEST( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5705
      start: 5702
    functionDepth: 0
    functionLinenumber: 5702
    functionLinenumberEnd: 5705
    functionName: INTERNAL_CATCH_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_IF( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5710
      start: 5707
    functionDepth: 0
    functionLinenumber: 5707
    functionLinenumberEnd: 5710
    functionName: INTERNAL_CATCH_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_ELSE( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5727
      start: 5712
    functionDepth: 0
    functionLinenumber: 5712
    functionLinenumberEnd: 5727
    functionName: INTERNAL_CATCH_NO_THROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NO_THROW( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5748
      start: 5729
    functionDepth: 0
    functionLinenumber: 5729
    functionLinenumberEnd: 5748
    functionName: INTERNAL_CATCH_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - exceptionType
    - ','
    - resultDisposition
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5772
      start: 5750
    functionDepth: 0
    functionLinenumber: 5750
    functionLinenumberEnd: 5772
    functionName: INTERNAL_CATCH_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_AS( macroName, exceptionType, resultDisposition,
      expr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - matcher
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5796
      start: 5777
    functionDepth: 0
    functionLinenumber: 5777
    functionLinenumberEnd: 5796
    functionName: INTERNAL_CATCH_THROWS_STR_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_STR_MATCHES( macroName, resultDisposition, matcher,
      ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5887
      start: 5880
    functionDepth: 0
    functionLinenumber: 5880
    functionLinenumberEnd: 5887
    functionName: INTERNAL_CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5898
      start: 5888
    functionDepth: 0
    functionLinenumber: 5888
    functionLinenumberEnd: 5898
    functionName: INTERNAL_CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5926
      start: 5916
    functionDepth: 0
    functionLinenumber: 5916
    functionLinenumberEnd: 5926
    functionName: INTERNAL_CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5937
      start: 5927
    functionDepth: 0
    functionLinenumber: 5927
    functionLinenumberEnd: 5937
    functionName: INTERNAL_CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5969
      start: 5968
    functionDepth: 0
    functionLinenumber: 5968
    functionLinenumberEnd: 5969
    functionName: INTERNAL_CATCH_EXPAND1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND1( param )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5970
      start: 5969
    functionDepth: 0
    functionLinenumber: 5969
    functionLinenumberEnd: 5970
    functionName: INTERNAL_CATCH_EXPAND2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND2( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5970
    functionDepth: 0
    functionLinenumber: 5970
    functionLinenumberEnd: 5971
    functionName: INTERNAL_CATCH_DEF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5975
      start: 5973
    functionDepth: 0
    functionLinenumber: 5973
    functionLinenumberEnd: 5975
    functionName: INTERNAL_CATCH_REMOVE_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5993
    functionDepth: 0
    functionLinenumber: 5993
    functionLinenumberEnd: 5993
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::TestInvokerAsMethod
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5995
    functionDepth: 0
    functionLinenumber: 5995
    functionLinenumberEnd: 5998
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6006
    functionName: Catch::Detail::ExprLhs::Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsMethod<C>>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void (C::*testAsMethod)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6009
    functionDepth: 0
    functionLinenumber: 6009
    functionLinenumberEnd: 6011
    functionName: Catch::Detail::ExprLhs::Catch::NameAndTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: "void NameAndTags( StringRef name_ = StringRef(),\n                           StringRef
      tags_ = StringRef() ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5993
    functionDepth: 0
    functionLinenumber: 5993
    functionLinenumberEnd: 5993
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::TestInvokerAsMethod
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5995
    functionDepth: 0
    functionLinenumber: 5995
    functionLinenumberEnd: 5998
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6006
    functionName: Catch::Detail::ExprLhs::Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsMethod<C>>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void (C::*testAsMethod)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6009
    functionDepth: 0
    functionLinenumber: 6009
    functionLinenumberEnd: 6011
    functionName: Catch::Detail::ExprLhs::Catch::NameAndTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: "void NameAndTags( StringRef name_ = StringRef(),\n                           StringRef
      tags_ = StringRef() ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 6023
    functionDepth: 0
    functionLinenumber: 6023
    functionLinenumberEnd: 6025
    functionName: INTERNAL_CATCH_TESTCASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE_NO_REGISTRATION( TestName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6032
      start: 6025
    functionDepth: 0
    functionLinenumber: 6025
    functionLinenumberEnd: 6032
    functionName: INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION( TestName, ClassName,
      ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6038
    functionDepth: 0
    functionLinenumber: 6038
    functionLinenumberEnd: 6043
    functionName: INTERNAL_CATCH_TESTCASE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE2( TestName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fname
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6078
      start: 6068
    functionDepth: 0
    functionLinenumber: 6068
    functionLinenumberEnd: 6078
    functionName: INTERNAL_CATCH_TESTCASE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE2( fname, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6080
      start: 6078
    functionDepth: 0
    functionLinenumber: 6078
    functionLinenumberEnd: 6080
    functionName: INTERNAL_CATCH_TESTCASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6103
      start: 6101
    functionDepth: 0
    functionLinenumber: 6101
    functionLinenumberEnd: 6103
    functionName: INTERNAL_CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - QualifiedMethod
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6116
      start: 6106
    functionDepth: 0
    functionLinenumber: 6106
    functionLinenumberEnd: 6116
    functionName: INTERNAL_CATCH_METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 6141
    functionDepth: 0
    functionLinenumber: 6141
    functionLinenumberEnd: 6142
    functionName: CATCH_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6143
      start: 6142
    functionDepth: 0
    functionLinenumber: 6142
    functionLinenumberEnd: 6143
    functionName: CATCH_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6145
      start: 6144
    functionDepth: 0
    functionLinenumber: 6144
    functionLinenumberEnd: 6145
    functionName: CATCH_REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6146
      start: 6145
    functionDepth: 0
    functionLinenumber: 6145
    functionLinenumberEnd: 6146
    functionName: CATCH_REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6146
    functionDepth: 0
    functionLinenumber: 6146
    functionLinenumberEnd: 6147
    functionName: CATCH_REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6149
      start: 6148
    functionDepth: 0
    functionLinenumber: 6148
    functionLinenumberEnd: 6149
    functionName: CATCH_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6150
      start: 6149
    functionDepth: 0
    functionLinenumber: 6149
    functionLinenumberEnd: 6150
    functionName: CATCH_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6151
      start: 6150
    functionDepth: 0
    functionLinenumber: 6150
    functionLinenumberEnd: 6151
    functionName: CATCH_CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6152
      start: 6151
    functionDepth: 0
    functionLinenumber: 6151
    functionLinenumberEnd: 6152
    functionName: CATCH_CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6152
    functionDepth: 0
    functionLinenumber: 6152
    functionLinenumberEnd: 6153
    functionName: CATCH_CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6155
      start: 6154
    functionDepth: 0
    functionLinenumber: 6154
    functionLinenumberEnd: 6155
    functionName: CATCH_CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6156
      start: 6155
    functionDepth: 0
    functionLinenumber: 6155
    functionLinenumberEnd: 6156
    functionName: CATCH_CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6157
      start: 6156
    functionDepth: 0
    functionLinenumber: 6156
    functionLinenumberEnd: 6157
    functionName: CATCH_CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6159
      start: 6158
    functionDepth: 0
    functionLinenumber: 6158
    functionLinenumberEnd: 6159
    functionName: CATCH_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6160
      start: 6159
    functionDepth: 0
    functionLinenumber: 6159
    functionLinenumberEnd: 6160
    functionName: CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6161
      start: 6160
    functionDepth: 0
    functionLinenumber: 6160
    functionLinenumberEnd: 6161
    functionName: CATCH_METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_METHOD_AS_TEST_CASE( method, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6162
      start: 6161
    functionDepth: 0
    functionLinenumber: 6161
    functionLinenumberEnd: 6162
    functionName: CATCH_REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6163
      start: 6162
    functionDepth: 0
    functionLinenumber: 6162
    functionLinenumberEnd: 6163
    functionName: CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6164
      start: 6163
    functionDepth: 0
    functionLinenumber: 6163
    functionLinenumberEnd: 6164
    functionName: CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6165
      start: 6164
    functionDepth: 0
    functionLinenumber: 6164
    functionLinenumberEnd: 6165
    functionName: CATCH_FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6166
      start: 6165
    functionDepth: 0
    functionLinenumber: 6165
    functionLinenumberEnd: 6166
    functionName: CATCH_FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6167
      start: 6166
    functionDepth: 0
    functionLinenumber: 6166
    functionLinenumberEnd: 6167
    functionName: CATCH_SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6168
      start: 6167
    functionDepth: 0
    functionLinenumber: 6167
    functionLinenumberEnd: 6168
    functionName: CATCH_SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6172
      start: 6171
    functionDepth: 0
    functionLinenumber: 6171
    functionLinenumberEnd: 6172
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6173
      start: 6172
    functionDepth: 0
    functionLinenumber: 6172
    functionLinenumberEnd: 6173
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6174
      start: 6173
    functionDepth: 0
    functionLinenumber: 6173
    functionLinenumberEnd: 6174
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6174
    functionDepth: 0
    functionLinenumber: 6174
    functionLinenumberEnd: 6175
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6177
      start: 6176
    functionDepth: 0
    functionLinenumber: 6176
    functionLinenumberEnd: 6177
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6178
      start: 6177
    functionDepth: 0
    functionLinenumber: 6177
    functionLinenumberEnd: 6178
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6179
      start: 6178
    functionDepth: 0
    functionLinenumber: 6178
    functionLinenumberEnd: 6179
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6180
      start: 6179
    functionDepth: 0
    functionLinenumber: 6179
    functionLinenumberEnd: 6180
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6184
    functionDepth: 0
    functionLinenumber: 6184
    functionLinenumberEnd: 6185
    functionName: CATCH_SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6186
      start: 6185
    functionDepth: 0
    functionLinenumber: 6185
    functionLinenumberEnd: 6186
    functionName: CATCH_SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6187
      start: 6186
    functionDepth: 0
    functionLinenumber: 6186
    functionLinenumberEnd: 6187
    functionName: CATCH_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6187
    functionDepth: 0
    functionLinenumber: 6187
    functionLinenumberEnd: 6188
    functionName: CATCH_AND_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6189
      start: 6188
    functionDepth: 0
    functionLinenumber: 6188
    functionLinenumberEnd: 6189
    functionName: CATCH_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6190
      start: 6189
    functionDepth: 0
    functionLinenumber: 6189
    functionLinenumberEnd: 6190
    functionName: CATCH_AND_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6191
      start: 6190
    functionDepth: 0
    functionLinenumber: 6190
    functionLinenumberEnd: 6191
    functionName: CATCH_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6192
      start: 6191
    functionDepth: 0
    functionLinenumber: 6191
    functionLinenumberEnd: 6192
    functionName: CATCH_AND_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6196
      start: 6195
    functionDepth: 0
    functionLinenumber: 6195
    functionLinenumberEnd: 6196
    functionName: CATCH_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6197
      start: 6196
    functionDepth: 0
    functionLinenumber: 6196
    functionLinenumberEnd: 6197
    functionName: CATCH_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6199
      start: 6198
    functionDepth: 0
    functionLinenumber: 6198
    functionLinenumberEnd: 6199
    functionName: CATCH_REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6199
    functionDepth: 0
    functionLinenumber: 6199
    functionLinenumberEnd: 6200
    functionName: CATCH_REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6201
      start: 6200
    functionDepth: 0
    functionLinenumber: 6200
    functionLinenumberEnd: 6201
    functionName: CATCH_REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6203
      start: 6202
    functionDepth: 0
    functionLinenumber: 6202
    functionLinenumberEnd: 6203
    functionName: CATCH_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6204
      start: 6203
    functionDepth: 0
    functionLinenumber: 6203
    functionLinenumberEnd: 6204
    functionName: CATCH_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6205
      start: 6204
    functionDepth: 0
    functionLinenumber: 6204
    functionLinenumberEnd: 6205
    functionName: CATCH_CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6206
      start: 6205
    functionDepth: 0
    functionLinenumber: 6205
    functionLinenumberEnd: 6206
    functionName: CATCH_CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6207
      start: 6206
    functionDepth: 0
    functionLinenumber: 6206
    functionLinenumberEnd: 6207
    functionName: CATCH_CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6209
      start: 6208
    functionDepth: 0
    functionLinenumber: 6208
    functionLinenumberEnd: 6209
    functionName: CATCH_CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6210
      start: 6209
    functionDepth: 0
    functionLinenumber: 6209
    functionLinenumberEnd: 6210
    functionName: CATCH_CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6211
      start: 6210
    functionDepth: 0
    functionLinenumber: 6210
    functionLinenumberEnd: 6211
    functionName: CATCH_CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6213
      start: 6212
    functionDepth: 0
    functionLinenumber: 6212
    functionLinenumberEnd: 6213
    functionName: CATCH_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6214
      start: 6213
    functionDepth: 0
    functionLinenumber: 6213
    functionLinenumberEnd: 6214
    functionName: CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6216
      start: 6215
    functionDepth: 0
    functionLinenumber: 6215
    functionLinenumberEnd: 6216
    functionName: CATCH_REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6219
      start: 6218
    functionDepth: 0
    functionLinenumber: 6218
    functionLinenumberEnd: 6219
    functionName: CATCH_FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6220
      start: 6219
    functionDepth: 0
    functionLinenumber: 6219
    functionLinenumberEnd: 6220
    functionName: CATCH_FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6221
      start: 6220
    functionDepth: 0
    functionLinenumber: 6220
    functionLinenumberEnd: 6221
    functionName: CATCH_SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6222
      start: 6221
    functionDepth: 0
    functionLinenumber: 6221
    functionLinenumberEnd: 6222
    functionName: CATCH_SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6224
      start: 6223
    functionDepth: 0
    functionLinenumber: 6223
    functionLinenumberEnd: 6224
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6225
      start: 6224
    functionDepth: 0
    functionLinenumber: 6224
    functionLinenumberEnd: 6225
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6226
      start: 6225
    functionDepth: 0
    functionLinenumber: 6225
    functionLinenumberEnd: 6226
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6227
      start: 6226
    functionDepth: 0
    functionLinenumber: 6226
    functionLinenumberEnd: 6227
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6230
      start: 6229
    functionDepth: 0
    functionLinenumber: 6229
    functionLinenumberEnd: 6230
    functionName: CATCH_SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6231
      start: 6230
    functionDepth: 0
    functionLinenumber: 6230
    functionLinenumberEnd: 6231
    functionName: CATCH_SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6241
      start: 6240
    functionDepth: 0
    functionLinenumber: 6240
    functionLinenumberEnd: 6241
    functionName: REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6242
      start: 6241
    functionDepth: 0
    functionLinenumber: 6241
    functionLinenumberEnd: 6242
    functionName: REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6244
      start: 6243
    functionDepth: 0
    functionLinenumber: 6243
    functionLinenumberEnd: 6244
    functionName: REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6244
    functionDepth: 0
    functionLinenumber: 6244
    functionLinenumberEnd: 6245
    functionName: REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6245
    functionDepth: 0
    functionLinenumber: 6245
    functionLinenumberEnd: 6246
    functionName: REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6248
      start: 6247
    functionDepth: 0
    functionLinenumber: 6247
    functionLinenumberEnd: 6248
    functionName: CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 944
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6249
      start: 6248
    functionDepth: 0
    functionLinenumber: 6248
    functionLinenumberEnd: 6249
    functionName: CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6250
      start: 6249
    functionDepth: 0
    functionLinenumber: 6249
    functionLinenumberEnd: 6250
    functionName: CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6251
      start: 6250
    functionDepth: 0
    functionLinenumber: 6250
    functionLinenumberEnd: 6251
    functionName: CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6252
      start: 6251
    functionDepth: 0
    functionLinenumber: 6251
    functionLinenumberEnd: 6252
    functionName: CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6254
      start: 6253
    functionDepth: 0
    functionLinenumber: 6253
    functionLinenumberEnd: 6254
    functionName: CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6255
      start: 6254
    functionDepth: 0
    functionLinenumber: 6254
    functionLinenumberEnd: 6255
    functionName: CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6256
      start: 6255
    functionDepth: 0
    functionLinenumber: 6255
    functionLinenumberEnd: 6256
    functionName: CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6258
      start: 6257
    functionDepth: 0
    functionLinenumber: 6257
    functionLinenumberEnd: 6258
    functionName: TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6259
      start: 6258
    functionDepth: 0
    functionLinenumber: 6258
    functionLinenumberEnd: 6259
    functionName: TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6260
      start: 6259
    functionDepth: 0
    functionLinenumber: 6259
    functionLinenumberEnd: 6260
    functionName: METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METHOD_AS_TEST_CASE( method, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6261
      start: 6260
    functionDepth: 0
    functionLinenumber: 6260
    functionLinenumberEnd: 6261
    functionName: REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6262
      start: 6261
    functionDepth: 0
    functionLinenumber: 6261
    functionLinenumberEnd: 6262
    functionName: SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6263
      start: 6262
    functionDepth: 0
    functionLinenumber: 6262
    functionLinenumberEnd: 6263
    functionName: DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6264
      start: 6263
    functionDepth: 0
    functionLinenumber: 6263
    functionLinenumberEnd: 6264
    functionName: FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6265
      start: 6264
    functionDepth: 0
    functionLinenumber: 6264
    functionLinenumberEnd: 6265
    functionName: FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6266
      start: 6265
    functionDepth: 0
    functionLinenumber: 6265
    functionLinenumberEnd: 6266
    functionName: SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6267
      start: 6266
    functionDepth: 0
    functionLinenumber: 6266
    functionLinenumberEnd: 6267
    functionName: SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6271
      start: 6270
    functionDepth: 0
    functionLinenumber: 6270
    functionLinenumberEnd: 6271
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6272
      start: 6271
    functionDepth: 0
    functionLinenumber: 6271
    functionLinenumberEnd: 6272
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6273
      start: 6272
    functionDepth: 0
    functionLinenumber: 6272
    functionLinenumberEnd: 6273
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6274
      start: 6273
    functionDepth: 0
    functionLinenumber: 6273
    functionLinenumberEnd: 6274
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6276
      start: 6275
    functionDepth: 0
    functionLinenumber: 6275
    functionLinenumberEnd: 6276
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6277
      start: 6276
    functionDepth: 0
    functionLinenumber: 6276
    functionLinenumberEnd: 6277
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6278
      start: 6277
    functionDepth: 0
    functionLinenumber: 6277
    functionLinenumberEnd: 6278
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6279
      start: 6278
    functionDepth: 0
    functionLinenumber: 6278
    functionLinenumberEnd: 6279
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6283
      start: 6282
    functionDepth: 0
    functionLinenumber: 6282
    functionLinenumberEnd: 6283
    functionName: SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6284
      start: 6283
    functionDepth: 0
    functionLinenumber: 6283
    functionLinenumberEnd: 6284
    functionName: SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6284
    functionDepth: 0
    functionLinenumber: 6284
    functionLinenumberEnd: 6285
    functionName: GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6286
      start: 6285
    functionDepth: 0
    functionLinenumber: 6285
    functionLinenumberEnd: 6286
    functionName: AND_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6287
      start: 6286
    functionDepth: 0
    functionLinenumber: 6286
    functionLinenumberEnd: 6287
    functionName: WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6288
      start: 6287
    functionDepth: 0
    functionLinenumber: 6287
    functionLinenumberEnd: 6288
    functionName: AND_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6289
      start: 6288
    functionDepth: 0
    functionLinenumber: 6288
    functionLinenumberEnd: 6289
    functionName: THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6290
      start: 6289
    functionDepth: 0
    functionLinenumber: 6289
    functionLinenumberEnd: 6290
    functionName: AND_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6294
      start: 6293
    functionDepth: 0
    functionLinenumber: 6293
    functionLinenumberEnd: 6294
    functionName: REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6295
      start: 6294
    functionDepth: 0
    functionLinenumber: 6294
    functionLinenumberEnd: 6295
    functionName: REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6297
      start: 6296
    functionDepth: 0
    functionLinenumber: 6296
    functionLinenumberEnd: 6297
    functionName: REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6298
      start: 6297
    functionDepth: 0
    functionLinenumber: 6297
    functionLinenumberEnd: 6298
    functionName: REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6299
      start: 6298
    functionDepth: 0
    functionLinenumber: 6298
    functionLinenumberEnd: 6299
    functionName: REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6301
      start: 6300
    functionDepth: 0
    functionLinenumber: 6300
    functionLinenumberEnd: 6301
    functionName: CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 944
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6302
      start: 6301
    functionDepth: 0
    functionLinenumber: 6301
    functionLinenumberEnd: 6302
    functionName: CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6303
      start: 6302
    functionDepth: 0
    functionLinenumber: 6302
    functionLinenumberEnd: 6303
    functionName: CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6304
      start: 6303
    functionDepth: 0
    functionLinenumber: 6303
    functionLinenumberEnd: 6304
    functionName: CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6305
      start: 6304
    functionDepth: 0
    functionLinenumber: 6304
    functionLinenumberEnd: 6305
    functionName: CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6307
      start: 6306
    functionDepth: 0
    functionLinenumber: 6306
    functionLinenumberEnd: 6307
    functionName: CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6308
      start: 6307
    functionDepth: 0
    functionLinenumber: 6307
    functionLinenumberEnd: 6308
    functionName: CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6309
      start: 6308
    functionDepth: 0
    functionLinenumber: 6308
    functionLinenumberEnd: 6309
    functionName: CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6311
      start: 6310
    functionDepth: 0
    functionLinenumber: 6310
    functionLinenumberEnd: 6311
    functionName: TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6312
      start: 6311
    functionDepth: 0
    functionLinenumber: 6311
    functionLinenumberEnd: 6312
    functionName: TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6314
      start: 6313
    functionDepth: 0
    functionLinenumber: 6313
    functionLinenumberEnd: 6314
    functionName: REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6317
      start: 6316
    functionDepth: 0
    functionLinenumber: 6316
    functionLinenumberEnd: 6317
    functionName: FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6318
      start: 6317
    functionDepth: 0
    functionLinenumber: 6317
    functionLinenumberEnd: 6318
    functionName: FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6319
      start: 6318
    functionDepth: 0
    functionLinenumber: 6318
    functionLinenumberEnd: 6319
    functionName: SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6320
      start: 6319
    functionDepth: 0
    functionLinenumber: 6319
    functionLinenumberEnd: 6320
    functionName: SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6322
      start: 6321
    functionDepth: 0
    functionLinenumber: 6321
    functionLinenumberEnd: 6322
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6323
      start: 6322
    functionDepth: 0
    functionLinenumber: 6322
    functionLinenumberEnd: 6323
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6324
      start: 6323
    functionDepth: 0
    functionLinenumber: 6323
    functionLinenumberEnd: 6324
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6325
      start: 6324
    functionDepth: 0
    functionLinenumber: 6324
    functionLinenumberEnd: 6325
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6328
      start: 6327
    functionDepth: 0
    functionLinenumber: 6327
    functionLinenumberEnd: 6328
    functionName: SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6329
      start: 6328
    functionDepth: 0
    functionLinenumber: 6328
    functionLinenumberEnd: 6329
    functionName: SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6360
      start: 6359
    functionDepth: 0
    functionLinenumber: 6359
    functionLinenumberEnd: 6360
    functionName: CATCH_RECURSION_LEVEL0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL0(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6361
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6361
    functionName: CATCH_RECURSION_LEVEL1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6362
      start: 6361
    functionDepth: 0
    functionLinenumber: 6361
    functionLinenumberEnd: 6362
    functionName: CATCH_RECURSION_LEVEL2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6362
    functionDepth: 0
    functionLinenumber: 6362
    functionLinenumberEnd: 6363
    functionName: CATCH_RECURSION_LEVEL3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6364
      start: 6363
    functionDepth: 0
    functionLinenumber: 6363
    functionLinenumberEnd: 6364
    functionName: CATCH_RECURSION_LEVEL4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6365
      start: 6364
    functionDepth: 0
    functionLinenumber: 6364
    functionLinenumberEnd: 6365
    functionName: CATCH_RECURSION_LEVEL5
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL5(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6367
    functionDepth: 0
    functionLinenumber: 6367
    functionLinenumberEnd: 6368
    functionName: INTERNAL_CATCH_EXPAND_VARGS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND_VARGS(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6370
      start: 6369
    functionDepth: 0
    functionLinenumber: 6369
    functionLinenumberEnd: 6370
    functionName: CATCH_RECURSION_LEVEL6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL6(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6371
      start: 6370
    functionDepth: 0
    functionLinenumber: 6370
    functionLinenumberEnd: 6371
    functionName: CATCH_RECURSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6373
      start: 6372
    functionDepth: 0
    functionLinenumber: 6372
    functionLinenumberEnd: 6373
    functionName: CATCH_RECURSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6380
      start: 6379
    functionDepth: 0
    functionLinenumber: 6379
    functionLinenumberEnd: 6380
    functionName: CATCH_DEFER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DEFER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6382
      start: 6381
    functionDepth: 0
    functionLinenumber: 6381
    functionLinenumberEnd: 6382
    functionName: CATCH_REC_GET_END2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6383
      start: 6382
    functionDepth: 0
    functionLinenumber: 6382
    functionLinenumberEnd: 6383
    functionName: CATCH_REC_GET_END1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6384
      start: 6383
    functionDepth: 0
    functionLinenumber: 6383
    functionLinenumberEnd: 6384
    functionName: CATCH_REC_GET_END
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - test
    - ','
    - next
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6385
      start: 6384
    functionDepth: 0
    functionLinenumber: 6384
    functionLinenumberEnd: 6385
    functionName: CATCH_REC_NEXT0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT0(test, next, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6385
    functionDepth: 0
    functionLinenumber: 6385
    functionLinenumberEnd: 6386
    functionName: CATCH_REC_NEXT1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT1(test, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6387
      start: 6386
    functionDepth: 0
    functionLinenumber: 6386
    functionLinenumberEnd: 6387
    functionName: CATCH_REC_NEXT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT(test, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6389
      start: 6388
    functionDepth: 0
    functionLinenumber: 6388
    functionLinenumberEnd: 6389
    functionName: CATCH_REC_LIST0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST0(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6390
      start: 6389
    functionDepth: 0
    functionLinenumber: 6389
    functionLinenumberEnd: 6390
    functionName: CATCH_REC_LIST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST1(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6391
      start: 6390
    functionDepth: 0
    functionLinenumber: 6390
    functionLinenumberEnd: 6391
    functionName: CATCH_REC_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST2(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6393
      start: 6392
    functionDepth: 0
    functionLinenumber: 6392
    functionLinenumberEnd: 6393
    functionName: CATCH_REC_LIST0_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST0_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6393
    functionDepth: 0
    functionLinenumber: 6393
    functionLinenumberEnd: 6394
    functionName: CATCH_REC_LIST1_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST1_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6395
      start: 6394
    functionDepth: 0
    functionLinenumber: 6394
    functionLinenumberEnd: 6395
    functionName: CATCH_REC_LIST2_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST2_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6400
      start: 6399
    functionDepth: 0
    functionLinenumber: 6399
    functionLinenumberEnd: 6400
    functionName: CATCH_REC_LIST_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST_UD(f, userdata, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6402
      start: 6401
    functionDepth: 0
    functionLinenumber: 6401
    functionLinenumberEnd: 6402
    functionName: CATCH_REC_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6404
      start: 6403
    functionDepth: 0
    functionLinenumber: 6403
    functionLinenumberEnd: 6404
    functionName: INTERNAL_CATCH_STRINGIZE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6406
      start: 6405
    functionDepth: 0
    functionLinenumber: 6405
    functionLinenumberEnd: 6406
    functionName: INTERNAL_CATCH_STRINGIZE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6407
      start: 6406
    functionDepth: 0
    functionLinenumber: 6406
    functionLinenumberEnd: 6407
    functionName: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6410
      start: 6409
    functionDepth: 0
    functionLinenumber: 6409
    functionLinenumberEnd: 6410
    functionName: INTERNAL_CATCH_STRINGIZE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6411
      start: 6410
    functionDepth: 0
    functionLinenumber: 6410
    functionLinenumberEnd: 6411
    functionName: INTERNAL_CATCH_STRINGIZE3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6412
      start: 6411
    functionDepth: 0
    functionLinenumber: 6411
    functionLinenumberEnd: 6412
    functionName: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6415
      start: 6414
    functionDepth: 0
    functionLinenumber: 6414
    functionLinenumberEnd: 6415
    functionName: INTERNAL_CATCH_MAKE_NAMESPACE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_NAMESPACE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6416
      start: 6415
    functionDepth: 0
    functionLinenumber: 6415
    functionLinenumberEnd: 6416
    functionName: INTERNAL_CATCH_MAKE_NAMESPACE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_NAMESPACE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6419
      start: 6418
    functionDepth: 0
    functionLinenumber: 6418
    functionLinenumberEnd: 6419
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6420
      start: 6419
    functionDepth: 0
    functionLinenumber: 6419
    functionLinenumberEnd: 6420
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6422
      start: 6421
    functionDepth: 0
    functionLinenumber: 6421
    functionLinenumberEnd: 6422
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6423
      start: 6422
    functionDepth: 0
    functionLinenumber: 6422
    functionLinenumberEnd: 6423
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6427
      start: 6425
    functionDepth: 0
    functionLinenumber: 6425
    functionLinenumberEnd: 6427
    functionName: INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6429
      start: 6428
    functionDepth: 0
    functionLinenumber: 6428
    functionLinenumberEnd: 6429
    functionName: INTERNAL_CATCH_REMOVE_PARENS_1_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _0
    - ','
    - _1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6430
      start: 6429
    functionDepth: 0
    functionLinenumber: 6429
    functionLinenumberEnd: 6430
    functionName: INTERNAL_CATCH_REMOVE_PARENS_2_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6431
      start: 6430
    functionDepth: 0
    functionLinenumber: 6430
    functionLinenumberEnd: 6431
    functionName: INTERNAL_CATCH_REMOVE_PARENS_3_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6432
      start: 6431
    functionDepth: 0
    functionLinenumber: 6431
    functionLinenumberEnd: 6432
    functionName: INTERNAL_CATCH_REMOVE_PARENS_4_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6433
      start: 6432
    functionDepth: 0
    functionLinenumber: 6432
    functionLinenumberEnd: 6433
    functionName: INTERNAL_CATCH_REMOVE_PARENS_5_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6433
    functionDepth: 0
    functionLinenumber: 6433
    functionLinenumberEnd: 6434
    functionName: INTERNAL_CATCH_REMOVE_PARENS_6_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6435
      start: 6434
    functionDepth: 0
    functionLinenumber: 6434
    functionLinenumberEnd: 6435
    functionName: INTERNAL_CATCH_REMOVE_PARENS_7_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6436
      start: 6435
    functionDepth: 0
    functionLinenumber: 6435
    functionLinenumberEnd: 6436
    functionName: INTERNAL_CATCH_REMOVE_PARENS_8_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6437
      start: 6436
    functionDepth: 0
    functionLinenumber: 6436
    functionLinenumberEnd: 6437
    functionName: INTERNAL_CATCH_REMOVE_PARENS_9_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6437
    functionDepth: 0
    functionLinenumber: 6437
    functionLinenumberEnd: 6438
    functionName: INTERNAL_CATCH_REMOVE_PARENS_10_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8, _9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6439
      start: 6438
    functionDepth: 0
    functionLinenumber: 6438
    functionLinenumberEnd: 6439
    functionName: INTERNAL_CATCH_REMOVE_PARENS_11_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8, _9, _10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - ','
    - N
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6441
      start: 6440
    functionDepth: 0
    functionLinenumber: 6440
    functionLinenumberEnd: 6441
    functionName: INTERNAL_CATCH_VA_NARGS_IMPL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9,
      _10, N, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6489
      start: 6475
    functionDepth: 0
    functionLinenumber: 6475
    functionLinenumberEnd: 6489
    functionName: INTERNAL_CATCH_NTTP_1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_1(signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6494
      start: 6491
    functionDepth: 0
    functionLinenumber: 6491
    functionLinenumberEnd: 6494
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6497
      start: 6494
    functionDepth: 0
    functionLinenumber: 6494
    functionLinenumberEnd: 6497
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_X(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6502
      start: 6499
    functionDepth: 0
    functionLinenumber: 6499
    functionLinenumberEnd: 6502
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6505
      start: 6502
    functionDepth: 0
    functionLinenumber: 6502
    functionLinenumberEnd: 6505
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_X(TestName, signature,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6512
      start: 6506
    functionDepth: 0
    functionLinenumber: 6506
    functionLinenumberEnd: 6512
    functionName: INTERNAL_CATCH_NTTP_REGISTER0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER0(TestFunc, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestFunc
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6519
      start: 6513
    functionDepth: 0
    functionLinenumber: 6513
    functionLinenumberEnd: 6519
    functionName: INTERNAL_CATCH_NTTP_REGISTER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER(TestFunc, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6526
      start: 6520
    functionDepth: 0
    functionLinenumber: 6520
    functionLinenumberEnd: 6526
    functionName: INTERNAL_CATCH_NTTP_REGISTER_METHOD0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER_METHOD0(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6533
      start: 6527
    functionDepth: 0
    functionLinenumber: 6527
    functionLinenumberEnd: 6533
    functionName: INTERNAL_CATCH_NTTP_REGISTER_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER_METHOD(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6540
      start: 6535
    functionDepth: 0
    functionLinenumber: 6535
    functionLinenumberEnd: 6540
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1(TestName, ClassName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6546
      start: 6541
    functionDepth: 0
    functionLinenumber: 6541
    functionLinenumberEnd: 6546
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X(TestName, ClassName, signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6551
      start: 6548
    functionDepth: 0
    functionLinenumber: 6548
    functionLinenumberEnd: 6551
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6554
      start: 6551
    functionDepth: 0
    functionLinenumber: 6551
    functionLinenumberEnd: 6554
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6558
      start: 6557
    functionDepth: 0
    functionLinenumber: 6557
    functionLinenumberEnd: 6558
    functionName: INTERNAL_CATCH_NTTP_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6558
    functionDepth: 0
    functionLinenumber: 6558
    functionLinenumberEnd: 6559
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6560
      start: 6559
    functionDepth: 0
    functionLinenumber: 6559
    functionLinenumberEnd: 6560
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6561
      start: 6560
    functionDepth: 0
    functionLinenumber: 6560
    functionLinenumberEnd: 6561
    functionName: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6562
      start: 6561
    functionDepth: 0
    functionLinenumber: 6561
    functionLinenumberEnd: 6562
    functionName: INTERNAL_CATCH_NTTP_REG_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6563
      start: 6562
    functionDepth: 0
    functionLinenumber: 6562
    functionLinenumberEnd: 6563
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6564
      start: 6563
    functionDepth: 0
    functionLinenumber: 6563
    functionLinenumberEnd: 6564
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6565
      start: 6564
    functionDepth: 0
    functionLinenumber: 6564
    functionLinenumberEnd: 6565
    functionName: INTERNAL_CATCH_REMOVE_PARENS_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6568
      start: 6567
    functionDepth: 0
    functionLinenumber: 6567
    functionLinenumberEnd: 6568
    functionName: INTERNAL_CATCH_NTTP_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6569
      start: 6568
    functionDepth: 0
    functionLinenumber: 6568
    functionLinenumberEnd: 6569
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6569
    functionDepth: 0
    functionLinenumber: 6569
    functionLinenumberEnd: 6570
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6571
      start: 6570
    functionDepth: 0
    functionLinenumber: 6570
    functionLinenumberEnd: 6571
    functionName: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6572
      start: 6571
    functionDepth: 0
    functionLinenumber: 6571
    functionLinenumberEnd: 6572
    functionName: INTERNAL_CATCH_NTTP_REG_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6573
      start: 6572
    functionDepth: 0
    functionLinenumber: 6572
    functionLinenumberEnd: 6573
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6574
      start: 6573
    functionDepth: 0
    functionLinenumber: 6573
    functionLinenumberEnd: 6574
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6574
    functionDepth: 0
    functionLinenumber: 6574
    functionLinenumberEnd: 6575
    functionName: INTERNAL_CATCH_REMOVE_PARENS_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TestName
    - ','
    - TestFunc
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6590
      start: 6588
    functionDepth: 0
    functionLinenumber: 6588
    functionLinenumberEnd: 6590
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( TestName, TestFunc,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - TestNameClass
    - ','
    - TestName
    - ','
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6597
      start: 6590
    functionDepth: 0
    functionLinenumber: 6590
    functionLinenumberEnd: 6597
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( TestNameClass,
      TestName, ClassName, Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6601
      start: 6599
    functionDepth: 0
    functionLinenumber: 6599
    functionLinenumberEnd: 6601
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6604
      start: 6602
    functionDepth: 0
    functionLinenumber: 6602
    functionLinenumberEnd: 6604
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6609
      start: 6607
    functionDepth: 0
    functionLinenumber: 6607
    functionLinenumberEnd: 6609
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6612
      start: 6610
    functionDepth: 0
    functionLinenumber: 6610
    functionLinenumberEnd: 6612
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6617
      start: 6615
    functionDepth: 0
    functionLinenumber: 6615
    functionLinenumberEnd: 6617
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName,
      Name, Tags,... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6620
      start: 6618
    functionDepth: 0
    functionLinenumber: 6618
    functionLinenumberEnd: 6620
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName,
      Name, Tags,... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6625
      start: 6623
    functionDepth: 0
    functionLinenumber: 6623
    functionLinenumberEnd: 6625
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6628
      start: 6626
    functionDepth: 0
    functionLinenumber: 6626
    functionLinenumberEnd: 6628
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TestName
    - ','
    - TestFunc
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6650
      start: 6633
    functionDepth: 0
    functionLinenumber: 6633
    functionLinenumberEnd: 6650
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_2(TestName, TestFunc, Name, Tags,
      Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5087
      start: 5072
    functionDepth: 0
    functionLinenumber: 5072
    functionLinenumberEnd: 5087
    functionName: CATCH_DEFINE_COMPARABLE_TRAIT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DEFINE_COMPARABLE_TRAIT( id, op )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: formatReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5325,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5326,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5324
    functionDepth: 1
    functionLinenumber: 5324
    functionLinenumberEnd: 5327
    functionName: Catch::Detail::BinaryExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - formatReconstructedExpression
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream &os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - comparisonResult
    - lhs
    - op
    - rhs
    argTypes:
    - bool
    - LhsT
    - StringRef
    - RhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5335
      start: 5330
    functionDepth: 0
    functionLinenumber: 5330
    functionLinenumberEnd: 5335
    functionName: Catch::Detail::BinaryExpr::BinaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinaryExpr( bool comparisonResult, LhsT lhs, StringRef op, RhsT
      rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5338
    functionDepth: 0
    functionLinenumber: 5338
    functionLinenumberEnd: 5342
    functionName: operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5349
      start: 5345
    functionDepth: 0
    functionLinenumber: 5345
    functionLinenumberEnd: 5349
    functionName: operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5356
      start: 5352
    functionDepth: 0
    functionLinenumber: 5352
    functionLinenumberEnd: 5356
    functionName: operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5363
      start: 5359
    functionDepth: 0
    functionLinenumber: 5359
    functionLinenumberEnd: 5363
    functionName: operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5370
    functionName: operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5373
    functionDepth: 0
    functionLinenumber: 5373
    functionLinenumberEnd: 5377
    functionName: operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5384
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5384
    functionName: operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5391
      start: 5387
    functionDepth: 0
    functionLinenumber: 5387
    functionLinenumberEnd: 5391
    functionName: operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5400
      start: 5398
    functionDepth: 1
    functionLinenumber: 5398
    functionLinenumberEnd: 5400
    functionName: Catch::Detail::UnaryExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream &os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - LhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5403
    functionDepth: 0
    functionLinenumber: 5403
    functionLinenumberEnd: 5406
    functionName: Catch::Detail::UnaryExpr::UnaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: void
    signature: void UnaryExpr( LhsT lhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - LhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5414
      start: 5414
    functionDepth: 0
    functionLinenumber: 5414
    functionLinenumberEnd: 5414
    functionName: Catch::Detail::ExprLhs::ExprLhs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExprLhs( LhsT lhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5442
      start: 5416
    functionDepth: 0
    functionLinenumber: 5416
    functionLinenumberEnd: 5442
    functionName: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR( id, op )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5446,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5448,1
    - Dst: if
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5460,1
    - Dst: Catch::throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5460,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5461,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5465,1
    - Dst: op
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5472,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5516,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5517,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5522,1
    - Dst: op
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5524,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5529,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5539,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5541,1
    - Dst: warning
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5582,1
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: CATCH_INTERNAL_IGNORE_BUT_WARN
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5689,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5692,1
    - Dst: Catch::Decomposer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5694,1
    - Dst: static_cast<const bool&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5698,1
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    - Dst: INTERNAL_CATCH_UNIQUE_NAME
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6047,1
    - Dst: reg_test
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6652,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6652,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6653
      start: 5443
    functionDepth: 1
    functionLinenumber: 5443
    functionLinenumberEnd: 6653
    functionName: BinaryExpr<LhsT, RhsT>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    - warning
    - static_cast<const bool&>
    - CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
    - op
    - reg_test
    - StringRef
    - makeUnaryExpr
    - std::string
    - handleExpr
    - CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
    - handleIncomplete
    - Detail::make_unique<TestInvokerAsMethod<C>>
    - Catch::throw_test_failure_exception
    - CATCH_INTERNAL_IGNORE_BUT_WARN
    - CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
    - INTERNAL_CATCH_UNIQUE_NAME
    - Catch::Decomposer
    - if
    linkageType: ''
    returnType: "Detail::disjunction<std::is_same<RhsT, int>,                   \\\n
      \                                   std::is_same<RhsT, long>>>::value"
    signature: "Detail::disjunction<std::is_same<RhsT, int>,                   \\\n
      \                                   std::is_same<RhsT, long>>>::value BinaryExpr<LhsT,
      RhsT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5550
      start: 5546
    functionDepth: 0
    functionLinenumber: 5546
    functionLinenumberEnd: 5550
    functionName: operator && ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator && ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5553
    functionDepth: 0
    functionLinenumber: 5553
    functionLinenumberEnd: 5557
    functionName: operator || ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator || ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5561
      start: 5559
    functionDepth: 0
    functionLinenumber: 5559
    functionLinenumberEnd: 5561
    functionName: Catch::Detail::ExprLhs::makeUnaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto makeUnaryExpr() const -> UnaryExpr<LhsT>
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 0
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: ~AssertionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - handleIncomplete
    linkageType: ''
    returnType: void
    signature: void ~AssertionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ExprLhs<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5624
    functionName: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    - makeUnaryExpr
    linkageType: ''
    returnType: void
    signature: void handleExpr( ExprLhs<T> const& expr )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 0
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: ~AssertionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - handleIncomplete
    linkageType: ''
    returnType: void
    signature: void ~AssertionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ExprLhs<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5624
    functionName: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    - makeUnaryExpr
    linkageType: ''
    returnType: void
    signature: void handleExpr( ExprLhs<T> const& expr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5654
      start: 5653
    functionDepth: 0
    functionLinenumber: 5653
    functionLinenumberEnd: 5654
    functionName: CATCH_INTERNAL_STRINGIFY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_STRINGIFY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5656
      start: 5655
    functionDepth: 0
    functionLinenumber: 5655
    functionLinenumberEnd: 5656
    functionName: CATCH_INTERNAL_STRINGIFY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_STRINGIFY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handler
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5679
    functionDepth: 0
    functionLinenumber: 5679
    functionLinenumberEnd: 5680
    functionName: INTERNAL_CATCH_CATCH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_CATCH( handler )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handler
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5683
    functionDepth: 0
    functionLinenumber: 5683
    functionLinenumberEnd: 5684
    functionName: INTERNAL_CATCH_REACT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REACT( handler )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5688
      start: 5686
    functionDepth: 0
    functionLinenumber: 5686
    functionLinenumberEnd: 5688
    functionName: INTERNAL_CATCH_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEST( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5705
      start: 5702
    functionDepth: 0
    functionLinenumber: 5702
    functionLinenumberEnd: 5705
    functionName: INTERNAL_CATCH_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_IF( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5710
      start: 5707
    functionDepth: 0
    functionLinenumber: 5707
    functionLinenumberEnd: 5710
    functionName: INTERNAL_CATCH_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_ELSE( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5727
      start: 5712
    functionDepth: 0
    functionLinenumber: 5712
    functionLinenumberEnd: 5727
    functionName: INTERNAL_CATCH_NO_THROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NO_THROW( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5748
      start: 5729
    functionDepth: 0
    functionLinenumber: 5729
    functionLinenumberEnd: 5748
    functionName: INTERNAL_CATCH_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - exceptionType
    - ','
    - resultDisposition
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5772
      start: 5750
    functionDepth: 0
    functionLinenumber: 5750
    functionLinenumberEnd: 5772
    functionName: INTERNAL_CATCH_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_AS( macroName, exceptionType, resultDisposition,
      expr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - matcher
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5796
      start: 5777
    functionDepth: 0
    functionLinenumber: 5777
    functionLinenumberEnd: 5796
    functionName: INTERNAL_CATCH_THROWS_STR_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_STR_MATCHES( macroName, resultDisposition, matcher,
      ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5887
      start: 5880
    functionDepth: 0
    functionLinenumber: 5880
    functionLinenumberEnd: 5887
    functionName: INTERNAL_CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5898
      start: 5888
    functionDepth: 0
    functionLinenumber: 5888
    functionLinenumberEnd: 5898
    functionName: INTERNAL_CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5926
      start: 5916
    functionDepth: 0
    functionLinenumber: 5916
    functionLinenumberEnd: 5926
    functionName: INTERNAL_CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5937
      start: 5927
    functionDepth: 0
    functionLinenumber: 5927
    functionLinenumberEnd: 5937
    functionName: INTERNAL_CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5969
      start: 5968
    functionDepth: 0
    functionLinenumber: 5968
    functionLinenumberEnd: 5969
    functionName: INTERNAL_CATCH_EXPAND1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND1( param )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5970
      start: 5969
    functionDepth: 0
    functionLinenumber: 5969
    functionLinenumberEnd: 5970
    functionName: INTERNAL_CATCH_EXPAND2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND2( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5970
    functionDepth: 0
    functionLinenumber: 5970
    functionLinenumberEnd: 5971
    functionName: INTERNAL_CATCH_DEF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5975
      start: 5973
    functionDepth: 0
    functionLinenumber: 5973
    functionLinenumberEnd: 5975
    functionName: INTERNAL_CATCH_REMOVE_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5993
    functionDepth: 0
    functionLinenumber: 5993
    functionLinenumberEnd: 5993
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::TestInvokerAsMethod
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5995
    functionDepth: 0
    functionLinenumber: 5995
    functionLinenumberEnd: 5998
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6006
    functionName: Catch::Detail::ExprLhs::Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsMethod<C>>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void (C::*testAsMethod)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6009
    functionDepth: 0
    functionLinenumber: 6009
    functionLinenumberEnd: 6011
    functionName: Catch::Detail::ExprLhs::Catch::NameAndTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: "void NameAndTags( StringRef name_ = StringRef(),\n                           StringRef
      tags_ = StringRef() ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5993
    functionDepth: 0
    functionLinenumber: 5993
    functionLinenumberEnd: 5993
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::TestInvokerAsMethod
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5995
    functionDepth: 0
    functionLinenumber: 5995
    functionLinenumberEnd: 5998
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6006
    functionName: Catch::Detail::ExprLhs::Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsMethod<C>>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void (C::*testAsMethod)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6009
    functionDepth: 0
    functionLinenumber: 6009
    functionLinenumberEnd: 6011
    functionName: Catch::Detail::ExprLhs::Catch::NameAndTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: "void NameAndTags( StringRef name_ = StringRef(),\n                           StringRef
      tags_ = StringRef() ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 6023
    functionDepth: 0
    functionLinenumber: 6023
    functionLinenumberEnd: 6025
    functionName: INTERNAL_CATCH_TESTCASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE_NO_REGISTRATION( TestName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6032
      start: 6025
    functionDepth: 0
    functionLinenumber: 6025
    functionLinenumberEnd: 6032
    functionName: INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION( TestName, ClassName,
      ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6038
    functionDepth: 0
    functionLinenumber: 6038
    functionLinenumberEnd: 6043
    functionName: INTERNAL_CATCH_TESTCASE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE2( TestName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fname
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6078
      start: 6068
    functionDepth: 0
    functionLinenumber: 6068
    functionLinenumberEnd: 6078
    functionName: INTERNAL_CATCH_TESTCASE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE2( fname, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6080
      start: 6078
    functionDepth: 0
    functionLinenumber: 6078
    functionLinenumberEnd: 6080
    functionName: INTERNAL_CATCH_TESTCASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6103
      start: 6101
    functionDepth: 0
    functionLinenumber: 6101
    functionLinenumberEnd: 6103
    functionName: INTERNAL_CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - QualifiedMethod
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6116
      start: 6106
    functionDepth: 0
    functionLinenumber: 6106
    functionLinenumberEnd: 6116
    functionName: INTERNAL_CATCH_METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 6141
    functionDepth: 0
    functionLinenumber: 6141
    functionLinenumberEnd: 6142
    functionName: CATCH_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6143
      start: 6142
    functionDepth: 0
    functionLinenumber: 6142
    functionLinenumberEnd: 6143
    functionName: CATCH_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6145
      start: 6144
    functionDepth: 0
    functionLinenumber: 6144
    functionLinenumberEnd: 6145
    functionName: CATCH_REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6146
      start: 6145
    functionDepth: 0
    functionLinenumber: 6145
    functionLinenumberEnd: 6146
    functionName: CATCH_REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6146
    functionDepth: 0
    functionLinenumber: 6146
    functionLinenumberEnd: 6147
    functionName: CATCH_REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6149
      start: 6148
    functionDepth: 0
    functionLinenumber: 6148
    functionLinenumberEnd: 6149
    functionName: CATCH_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6150
      start: 6149
    functionDepth: 0
    functionLinenumber: 6149
    functionLinenumberEnd: 6150
    functionName: CATCH_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6151
      start: 6150
    functionDepth: 0
    functionLinenumber: 6150
    functionLinenumberEnd: 6151
    functionName: CATCH_CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6152
      start: 6151
    functionDepth: 0
    functionLinenumber: 6151
    functionLinenumberEnd: 6152
    functionName: CATCH_CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6152
    functionDepth: 0
    functionLinenumber: 6152
    functionLinenumberEnd: 6153
    functionName: CATCH_CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6155
      start: 6154
    functionDepth: 0
    functionLinenumber: 6154
    functionLinenumberEnd: 6155
    functionName: CATCH_CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6156
      start: 6155
    functionDepth: 0
    functionLinenumber: 6155
    functionLinenumberEnd: 6156
    functionName: CATCH_CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6157
      start: 6156
    functionDepth: 0
    functionLinenumber: 6156
    functionLinenumberEnd: 6157
    functionName: CATCH_CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6159
      start: 6158
    functionDepth: 0
    functionLinenumber: 6158
    functionLinenumberEnd: 6159
    functionName: CATCH_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6160
      start: 6159
    functionDepth: 0
    functionLinenumber: 6159
    functionLinenumberEnd: 6160
    functionName: CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6161
      start: 6160
    functionDepth: 0
    functionLinenumber: 6160
    functionLinenumberEnd: 6161
    functionName: CATCH_METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_METHOD_AS_TEST_CASE( method, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6162
      start: 6161
    functionDepth: 0
    functionLinenumber: 6161
    functionLinenumberEnd: 6162
    functionName: CATCH_REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6163
      start: 6162
    functionDepth: 0
    functionLinenumber: 6162
    functionLinenumberEnd: 6163
    functionName: CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6164
      start: 6163
    functionDepth: 0
    functionLinenumber: 6163
    functionLinenumberEnd: 6164
    functionName: CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6165
      start: 6164
    functionDepth: 0
    functionLinenumber: 6164
    functionLinenumberEnd: 6165
    functionName: CATCH_FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6166
      start: 6165
    functionDepth: 0
    functionLinenumber: 6165
    functionLinenumberEnd: 6166
    functionName: CATCH_FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6167
      start: 6166
    functionDepth: 0
    functionLinenumber: 6166
    functionLinenumberEnd: 6167
    functionName: CATCH_SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6168
      start: 6167
    functionDepth: 0
    functionLinenumber: 6167
    functionLinenumberEnd: 6168
    functionName: CATCH_SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6172
      start: 6171
    functionDepth: 0
    functionLinenumber: 6171
    functionLinenumberEnd: 6172
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6173
      start: 6172
    functionDepth: 0
    functionLinenumber: 6172
    functionLinenumberEnd: 6173
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6174
      start: 6173
    functionDepth: 0
    functionLinenumber: 6173
    functionLinenumberEnd: 6174
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6174
    functionDepth: 0
    functionLinenumber: 6174
    functionLinenumberEnd: 6175
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6177
      start: 6176
    functionDepth: 0
    functionLinenumber: 6176
    functionLinenumberEnd: 6177
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6178
      start: 6177
    functionDepth: 0
    functionLinenumber: 6177
    functionLinenumberEnd: 6178
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6179
      start: 6178
    functionDepth: 0
    functionLinenumber: 6178
    functionLinenumberEnd: 6179
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6180
      start: 6179
    functionDepth: 0
    functionLinenumber: 6179
    functionLinenumberEnd: 6180
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6184
    functionDepth: 0
    functionLinenumber: 6184
    functionLinenumberEnd: 6185
    functionName: CATCH_SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6186
      start: 6185
    functionDepth: 0
    functionLinenumber: 6185
    functionLinenumberEnd: 6186
    functionName: CATCH_SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6187
      start: 6186
    functionDepth: 0
    functionLinenumber: 6186
    functionLinenumberEnd: 6187
    functionName: CATCH_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6187
    functionDepth: 0
    functionLinenumber: 6187
    functionLinenumberEnd: 6188
    functionName: CATCH_AND_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6189
      start: 6188
    functionDepth: 0
    functionLinenumber: 6188
    functionLinenumberEnd: 6189
    functionName: CATCH_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6190
      start: 6189
    functionDepth: 0
    functionLinenumber: 6189
    functionLinenumberEnd: 6190
    functionName: CATCH_AND_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6191
      start: 6190
    functionDepth: 0
    functionLinenumber: 6190
    functionLinenumberEnd: 6191
    functionName: CATCH_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6192
      start: 6191
    functionDepth: 0
    functionLinenumber: 6191
    functionLinenumberEnd: 6192
    functionName: CATCH_AND_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6196
      start: 6195
    functionDepth: 0
    functionLinenumber: 6195
    functionLinenumberEnd: 6196
    functionName: CATCH_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6197
      start: 6196
    functionDepth: 0
    functionLinenumber: 6196
    functionLinenumberEnd: 6197
    functionName: CATCH_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6199
      start: 6198
    functionDepth: 0
    functionLinenumber: 6198
    functionLinenumberEnd: 6199
    functionName: CATCH_REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6199
    functionDepth: 0
    functionLinenumber: 6199
    functionLinenumberEnd: 6200
    functionName: CATCH_REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6201
      start: 6200
    functionDepth: 0
    functionLinenumber: 6200
    functionLinenumberEnd: 6201
    functionName: CATCH_REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6203
      start: 6202
    functionDepth: 0
    functionLinenumber: 6202
    functionLinenumberEnd: 6203
    functionName: CATCH_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6204
      start: 6203
    functionDepth: 0
    functionLinenumber: 6203
    functionLinenumberEnd: 6204
    functionName: CATCH_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6205
      start: 6204
    functionDepth: 0
    functionLinenumber: 6204
    functionLinenumberEnd: 6205
    functionName: CATCH_CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6206
      start: 6205
    functionDepth: 0
    functionLinenumber: 6205
    functionLinenumberEnd: 6206
    functionName: CATCH_CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6207
      start: 6206
    functionDepth: 0
    functionLinenumber: 6206
    functionLinenumberEnd: 6207
    functionName: CATCH_CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6209
      start: 6208
    functionDepth: 0
    functionLinenumber: 6208
    functionLinenumberEnd: 6209
    functionName: CATCH_CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6210
      start: 6209
    functionDepth: 0
    functionLinenumber: 6209
    functionLinenumberEnd: 6210
    functionName: CATCH_CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6211
      start: 6210
    functionDepth: 0
    functionLinenumber: 6210
    functionLinenumberEnd: 6211
    functionName: CATCH_CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6213
      start: 6212
    functionDepth: 0
    functionLinenumber: 6212
    functionLinenumberEnd: 6213
    functionName: CATCH_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6214
      start: 6213
    functionDepth: 0
    functionLinenumber: 6213
    functionLinenumberEnd: 6214
    functionName: CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6216
      start: 6215
    functionDepth: 0
    functionLinenumber: 6215
    functionLinenumberEnd: 6216
    functionName: CATCH_REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6219
      start: 6218
    functionDepth: 0
    functionLinenumber: 6218
    functionLinenumberEnd: 6219
    functionName: CATCH_FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6220
      start: 6219
    functionDepth: 0
    functionLinenumber: 6219
    functionLinenumberEnd: 6220
    functionName: CATCH_FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6221
      start: 6220
    functionDepth: 0
    functionLinenumber: 6220
    functionLinenumberEnd: 6221
    functionName: CATCH_SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6222
      start: 6221
    functionDepth: 0
    functionLinenumber: 6221
    functionLinenumberEnd: 6222
    functionName: CATCH_SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6224
      start: 6223
    functionDepth: 0
    functionLinenumber: 6223
    functionLinenumberEnd: 6224
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6225
      start: 6224
    functionDepth: 0
    functionLinenumber: 6224
    functionLinenumberEnd: 6225
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6226
      start: 6225
    functionDepth: 0
    functionLinenumber: 6225
    functionLinenumberEnd: 6226
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6227
      start: 6226
    functionDepth: 0
    functionLinenumber: 6226
    functionLinenumberEnd: 6227
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6230
      start: 6229
    functionDepth: 0
    functionLinenumber: 6229
    functionLinenumberEnd: 6230
    functionName: CATCH_SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6231
      start: 6230
    functionDepth: 0
    functionLinenumber: 6230
    functionLinenumberEnd: 6231
    functionName: CATCH_SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6241
      start: 6240
    functionDepth: 0
    functionLinenumber: 6240
    functionLinenumberEnd: 6241
    functionName: REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6242
      start: 6241
    functionDepth: 0
    functionLinenumber: 6241
    functionLinenumberEnd: 6242
    functionName: REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6244
      start: 6243
    functionDepth: 0
    functionLinenumber: 6243
    functionLinenumberEnd: 6244
    functionName: REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6244
    functionDepth: 0
    functionLinenumber: 6244
    functionLinenumberEnd: 6245
    functionName: REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6245
    functionDepth: 0
    functionLinenumber: 6245
    functionLinenumberEnd: 6246
    functionName: REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6248
      start: 6247
    functionDepth: 0
    functionLinenumber: 6247
    functionLinenumberEnd: 6248
    functionName: CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 944
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6249
      start: 6248
    functionDepth: 0
    functionLinenumber: 6248
    functionLinenumberEnd: 6249
    functionName: CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6250
      start: 6249
    functionDepth: 0
    functionLinenumber: 6249
    functionLinenumberEnd: 6250
    functionName: CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6251
      start: 6250
    functionDepth: 0
    functionLinenumber: 6250
    functionLinenumberEnd: 6251
    functionName: CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6252
      start: 6251
    functionDepth: 0
    functionLinenumber: 6251
    functionLinenumberEnd: 6252
    functionName: CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6254
      start: 6253
    functionDepth: 0
    functionLinenumber: 6253
    functionLinenumberEnd: 6254
    functionName: CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6255
      start: 6254
    functionDepth: 0
    functionLinenumber: 6254
    functionLinenumberEnd: 6255
    functionName: CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6256
      start: 6255
    functionDepth: 0
    functionLinenumber: 6255
    functionLinenumberEnd: 6256
    functionName: CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6258
      start: 6257
    functionDepth: 0
    functionLinenumber: 6257
    functionLinenumberEnd: 6258
    functionName: TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6259
      start: 6258
    functionDepth: 0
    functionLinenumber: 6258
    functionLinenumberEnd: 6259
    functionName: TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6260
      start: 6259
    functionDepth: 0
    functionLinenumber: 6259
    functionLinenumberEnd: 6260
    functionName: METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METHOD_AS_TEST_CASE( method, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6261
      start: 6260
    functionDepth: 0
    functionLinenumber: 6260
    functionLinenumberEnd: 6261
    functionName: REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6262
      start: 6261
    functionDepth: 0
    functionLinenumber: 6261
    functionLinenumberEnd: 6262
    functionName: SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6263
      start: 6262
    functionDepth: 0
    functionLinenumber: 6262
    functionLinenumberEnd: 6263
    functionName: DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6264
      start: 6263
    functionDepth: 0
    functionLinenumber: 6263
    functionLinenumberEnd: 6264
    functionName: FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6265
      start: 6264
    functionDepth: 0
    functionLinenumber: 6264
    functionLinenumberEnd: 6265
    functionName: FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6266
      start: 6265
    functionDepth: 0
    functionLinenumber: 6265
    functionLinenumberEnd: 6266
    functionName: SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6267
      start: 6266
    functionDepth: 0
    functionLinenumber: 6266
    functionLinenumberEnd: 6267
    functionName: SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6271
      start: 6270
    functionDepth: 0
    functionLinenumber: 6270
    functionLinenumberEnd: 6271
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6272
      start: 6271
    functionDepth: 0
    functionLinenumber: 6271
    functionLinenumberEnd: 6272
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6273
      start: 6272
    functionDepth: 0
    functionLinenumber: 6272
    functionLinenumberEnd: 6273
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6274
      start: 6273
    functionDepth: 0
    functionLinenumber: 6273
    functionLinenumberEnd: 6274
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6276
      start: 6275
    functionDepth: 0
    functionLinenumber: 6275
    functionLinenumberEnd: 6276
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6277
      start: 6276
    functionDepth: 0
    functionLinenumber: 6276
    functionLinenumberEnd: 6277
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6278
      start: 6277
    functionDepth: 0
    functionLinenumber: 6277
    functionLinenumberEnd: 6278
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6279
      start: 6278
    functionDepth: 0
    functionLinenumber: 6278
    functionLinenumberEnd: 6279
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6283
      start: 6282
    functionDepth: 0
    functionLinenumber: 6282
    functionLinenumberEnd: 6283
    functionName: SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6284
      start: 6283
    functionDepth: 0
    functionLinenumber: 6283
    functionLinenumberEnd: 6284
    functionName: SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6284
    functionDepth: 0
    functionLinenumber: 6284
    functionLinenumberEnd: 6285
    functionName: GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6286
      start: 6285
    functionDepth: 0
    functionLinenumber: 6285
    functionLinenumberEnd: 6286
    functionName: AND_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6287
      start: 6286
    functionDepth: 0
    functionLinenumber: 6286
    functionLinenumberEnd: 6287
    functionName: WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6288
      start: 6287
    functionDepth: 0
    functionLinenumber: 6287
    functionLinenumberEnd: 6288
    functionName: AND_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6289
      start: 6288
    functionDepth: 0
    functionLinenumber: 6288
    functionLinenumberEnd: 6289
    functionName: THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6290
      start: 6289
    functionDepth: 0
    functionLinenumber: 6289
    functionLinenumberEnd: 6290
    functionName: AND_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6294
      start: 6293
    functionDepth: 0
    functionLinenumber: 6293
    functionLinenumberEnd: 6294
    functionName: REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6295
      start: 6294
    functionDepth: 0
    functionLinenumber: 6294
    functionLinenumberEnd: 6295
    functionName: REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6297
      start: 6296
    functionDepth: 0
    functionLinenumber: 6296
    functionLinenumberEnd: 6297
    functionName: REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6298
      start: 6297
    functionDepth: 0
    functionLinenumber: 6297
    functionLinenumberEnd: 6298
    functionName: REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6299
      start: 6298
    functionDepth: 0
    functionLinenumber: 6298
    functionLinenumberEnd: 6299
    functionName: REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6301
      start: 6300
    functionDepth: 0
    functionLinenumber: 6300
    functionLinenumberEnd: 6301
    functionName: CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 944
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6302
      start: 6301
    functionDepth: 0
    functionLinenumber: 6301
    functionLinenumberEnd: 6302
    functionName: CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6303
      start: 6302
    functionDepth: 0
    functionLinenumber: 6302
    functionLinenumberEnd: 6303
    functionName: CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6304
      start: 6303
    functionDepth: 0
    functionLinenumber: 6303
    functionLinenumberEnd: 6304
    functionName: CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6305
      start: 6304
    functionDepth: 0
    functionLinenumber: 6304
    functionLinenumberEnd: 6305
    functionName: CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6307
      start: 6306
    functionDepth: 0
    functionLinenumber: 6306
    functionLinenumberEnd: 6307
    functionName: CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6308
      start: 6307
    functionDepth: 0
    functionLinenumber: 6307
    functionLinenumberEnd: 6308
    functionName: CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6309
      start: 6308
    functionDepth: 0
    functionLinenumber: 6308
    functionLinenumberEnd: 6309
    functionName: CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6311
      start: 6310
    functionDepth: 0
    functionLinenumber: 6310
    functionLinenumberEnd: 6311
    functionName: TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6312
      start: 6311
    functionDepth: 0
    functionLinenumber: 6311
    functionLinenumberEnd: 6312
    functionName: TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6314
      start: 6313
    functionDepth: 0
    functionLinenumber: 6313
    functionLinenumberEnd: 6314
    functionName: REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6317
      start: 6316
    functionDepth: 0
    functionLinenumber: 6316
    functionLinenumberEnd: 6317
    functionName: FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6318
      start: 6317
    functionDepth: 0
    functionLinenumber: 6317
    functionLinenumberEnd: 6318
    functionName: FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6319
      start: 6318
    functionDepth: 0
    functionLinenumber: 6318
    functionLinenumberEnd: 6319
    functionName: SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6320
      start: 6319
    functionDepth: 0
    functionLinenumber: 6319
    functionLinenumberEnd: 6320
    functionName: SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6322
      start: 6321
    functionDepth: 0
    functionLinenumber: 6321
    functionLinenumberEnd: 6322
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6323
      start: 6322
    functionDepth: 0
    functionLinenumber: 6322
    functionLinenumberEnd: 6323
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6324
      start: 6323
    functionDepth: 0
    functionLinenumber: 6323
    functionLinenumberEnd: 6324
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6325
      start: 6324
    functionDepth: 0
    functionLinenumber: 6324
    functionLinenumberEnd: 6325
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6328
      start: 6327
    functionDepth: 0
    functionLinenumber: 6327
    functionLinenumberEnd: 6328
    functionName: SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6329
      start: 6328
    functionDepth: 0
    functionLinenumber: 6328
    functionLinenumberEnd: 6329
    functionName: SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6360
      start: 6359
    functionDepth: 0
    functionLinenumber: 6359
    functionLinenumberEnd: 6360
    functionName: CATCH_RECURSION_LEVEL0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL0(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6361
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6361
    functionName: CATCH_RECURSION_LEVEL1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6362
      start: 6361
    functionDepth: 0
    functionLinenumber: 6361
    functionLinenumberEnd: 6362
    functionName: CATCH_RECURSION_LEVEL2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6362
    functionDepth: 0
    functionLinenumber: 6362
    functionLinenumberEnd: 6363
    functionName: CATCH_RECURSION_LEVEL3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6364
      start: 6363
    functionDepth: 0
    functionLinenumber: 6363
    functionLinenumberEnd: 6364
    functionName: CATCH_RECURSION_LEVEL4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6365
      start: 6364
    functionDepth: 0
    functionLinenumber: 6364
    functionLinenumberEnd: 6365
    functionName: CATCH_RECURSION_LEVEL5
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL5(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6367
    functionDepth: 0
    functionLinenumber: 6367
    functionLinenumberEnd: 6368
    functionName: INTERNAL_CATCH_EXPAND_VARGS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND_VARGS(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6370
      start: 6369
    functionDepth: 0
    functionLinenumber: 6369
    functionLinenumberEnd: 6370
    functionName: CATCH_RECURSION_LEVEL6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL6(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6371
      start: 6370
    functionDepth: 0
    functionLinenumber: 6370
    functionLinenumberEnd: 6371
    functionName: CATCH_RECURSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6373
      start: 6372
    functionDepth: 0
    functionLinenumber: 6372
    functionLinenumberEnd: 6373
    functionName: CATCH_RECURSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6380
      start: 6379
    functionDepth: 0
    functionLinenumber: 6379
    functionLinenumberEnd: 6380
    functionName: CATCH_DEFER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DEFER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6382
      start: 6381
    functionDepth: 0
    functionLinenumber: 6381
    functionLinenumberEnd: 6382
    functionName: CATCH_REC_GET_END2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6383
      start: 6382
    functionDepth: 0
    functionLinenumber: 6382
    functionLinenumberEnd: 6383
    functionName: CATCH_REC_GET_END1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6384
      start: 6383
    functionDepth: 0
    functionLinenumber: 6383
    functionLinenumberEnd: 6384
    functionName: CATCH_REC_GET_END
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - test
    - ','
    - next
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6385
      start: 6384
    functionDepth: 0
    functionLinenumber: 6384
    functionLinenumberEnd: 6385
    functionName: CATCH_REC_NEXT0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT0(test, next, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6385
    functionDepth: 0
    functionLinenumber: 6385
    functionLinenumberEnd: 6386
    functionName: CATCH_REC_NEXT1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT1(test, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6387
      start: 6386
    functionDepth: 0
    functionLinenumber: 6386
    functionLinenumberEnd: 6387
    functionName: CATCH_REC_NEXT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT(test, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6389
      start: 6388
    functionDepth: 0
    functionLinenumber: 6388
    functionLinenumberEnd: 6389
    functionName: CATCH_REC_LIST0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST0(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6390
      start: 6389
    functionDepth: 0
    functionLinenumber: 6389
    functionLinenumberEnd: 6390
    functionName: CATCH_REC_LIST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST1(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6391
      start: 6390
    functionDepth: 0
    functionLinenumber: 6390
    functionLinenumberEnd: 6391
    functionName: CATCH_REC_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST2(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6393
      start: 6392
    functionDepth: 0
    functionLinenumber: 6392
    functionLinenumberEnd: 6393
    functionName: CATCH_REC_LIST0_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST0_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6393
    functionDepth: 0
    functionLinenumber: 6393
    functionLinenumberEnd: 6394
    functionName: CATCH_REC_LIST1_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST1_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6395
      start: 6394
    functionDepth: 0
    functionLinenumber: 6394
    functionLinenumberEnd: 6395
    functionName: CATCH_REC_LIST2_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST2_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6400
      start: 6399
    functionDepth: 0
    functionLinenumber: 6399
    functionLinenumberEnd: 6400
    functionName: CATCH_REC_LIST_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST_UD(f, userdata, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6402
      start: 6401
    functionDepth: 0
    functionLinenumber: 6401
    functionLinenumberEnd: 6402
    functionName: CATCH_REC_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6404
      start: 6403
    functionDepth: 0
    functionLinenumber: 6403
    functionLinenumberEnd: 6404
    functionName: INTERNAL_CATCH_STRINGIZE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6406
      start: 6405
    functionDepth: 0
    functionLinenumber: 6405
    functionLinenumberEnd: 6406
    functionName: INTERNAL_CATCH_STRINGIZE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6407
      start: 6406
    functionDepth: 0
    functionLinenumber: 6406
    functionLinenumberEnd: 6407
    functionName: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6410
      start: 6409
    functionDepth: 0
    functionLinenumber: 6409
    functionLinenumberEnd: 6410
    functionName: INTERNAL_CATCH_STRINGIZE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6411
      start: 6410
    functionDepth: 0
    functionLinenumber: 6410
    functionLinenumberEnd: 6411
    functionName: INTERNAL_CATCH_STRINGIZE3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6412
      start: 6411
    functionDepth: 0
    functionLinenumber: 6411
    functionLinenumberEnd: 6412
    functionName: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6415
      start: 6414
    functionDepth: 0
    functionLinenumber: 6414
    functionLinenumberEnd: 6415
    functionName: INTERNAL_CATCH_MAKE_NAMESPACE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_NAMESPACE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6416
      start: 6415
    functionDepth: 0
    functionLinenumber: 6415
    functionLinenumberEnd: 6416
    functionName: INTERNAL_CATCH_MAKE_NAMESPACE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_NAMESPACE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6419
      start: 6418
    functionDepth: 0
    functionLinenumber: 6418
    functionLinenumberEnd: 6419
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6420
      start: 6419
    functionDepth: 0
    functionLinenumber: 6419
    functionLinenumberEnd: 6420
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6422
      start: 6421
    functionDepth: 0
    functionLinenumber: 6421
    functionLinenumberEnd: 6422
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6423
      start: 6422
    functionDepth: 0
    functionLinenumber: 6422
    functionLinenumberEnd: 6423
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6427
      start: 6425
    functionDepth: 0
    functionLinenumber: 6425
    functionLinenumberEnd: 6427
    functionName: INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6429
      start: 6428
    functionDepth: 0
    functionLinenumber: 6428
    functionLinenumberEnd: 6429
    functionName: INTERNAL_CATCH_REMOVE_PARENS_1_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _0
    - ','
    - _1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6430
      start: 6429
    functionDepth: 0
    functionLinenumber: 6429
    functionLinenumberEnd: 6430
    functionName: INTERNAL_CATCH_REMOVE_PARENS_2_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6431
      start: 6430
    functionDepth: 0
    functionLinenumber: 6430
    functionLinenumberEnd: 6431
    functionName: INTERNAL_CATCH_REMOVE_PARENS_3_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6432
      start: 6431
    functionDepth: 0
    functionLinenumber: 6431
    functionLinenumberEnd: 6432
    functionName: INTERNAL_CATCH_REMOVE_PARENS_4_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6433
      start: 6432
    functionDepth: 0
    functionLinenumber: 6432
    functionLinenumberEnd: 6433
    functionName: INTERNAL_CATCH_REMOVE_PARENS_5_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6433
    functionDepth: 0
    functionLinenumber: 6433
    functionLinenumberEnd: 6434
    functionName: INTERNAL_CATCH_REMOVE_PARENS_6_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6435
      start: 6434
    functionDepth: 0
    functionLinenumber: 6434
    functionLinenumberEnd: 6435
    functionName: INTERNAL_CATCH_REMOVE_PARENS_7_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6436
      start: 6435
    functionDepth: 0
    functionLinenumber: 6435
    functionLinenumberEnd: 6436
    functionName: INTERNAL_CATCH_REMOVE_PARENS_8_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6437
      start: 6436
    functionDepth: 0
    functionLinenumber: 6436
    functionLinenumberEnd: 6437
    functionName: INTERNAL_CATCH_REMOVE_PARENS_9_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6437
    functionDepth: 0
    functionLinenumber: 6437
    functionLinenumberEnd: 6438
    functionName: INTERNAL_CATCH_REMOVE_PARENS_10_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8, _9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6439
      start: 6438
    functionDepth: 0
    functionLinenumber: 6438
    functionLinenumberEnd: 6439
    functionName: INTERNAL_CATCH_REMOVE_PARENS_11_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8, _9, _10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - ','
    - N
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6441
      start: 6440
    functionDepth: 0
    functionLinenumber: 6440
    functionLinenumberEnd: 6441
    functionName: INTERNAL_CATCH_VA_NARGS_IMPL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9,
      _10, N, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6489
      start: 6475
    functionDepth: 0
    functionLinenumber: 6475
    functionLinenumberEnd: 6489
    functionName: INTERNAL_CATCH_NTTP_1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_1(signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6494
      start: 6491
    functionDepth: 0
    functionLinenumber: 6491
    functionLinenumberEnd: 6494
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6497
      start: 6494
    functionDepth: 0
    functionLinenumber: 6494
    functionLinenumberEnd: 6497
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_X(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6502
      start: 6499
    functionDepth: 0
    functionLinenumber: 6499
    functionLinenumberEnd: 6502
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6505
      start: 6502
    functionDepth: 0
    functionLinenumber: 6502
    functionLinenumberEnd: 6505
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_X(TestName, signature,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6512
      start: 6506
    functionDepth: 0
    functionLinenumber: 6506
    functionLinenumberEnd: 6512
    functionName: INTERNAL_CATCH_NTTP_REGISTER0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER0(TestFunc, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestFunc
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6519
      start: 6513
    functionDepth: 0
    functionLinenumber: 6513
    functionLinenumberEnd: 6519
    functionName: INTERNAL_CATCH_NTTP_REGISTER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER(TestFunc, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6526
      start: 6520
    functionDepth: 0
    functionLinenumber: 6520
    functionLinenumberEnd: 6526
    functionName: INTERNAL_CATCH_NTTP_REGISTER_METHOD0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER_METHOD0(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6533
      start: 6527
    functionDepth: 0
    functionLinenumber: 6527
    functionLinenumberEnd: 6533
    functionName: INTERNAL_CATCH_NTTP_REGISTER_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER_METHOD(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6540
      start: 6535
    functionDepth: 0
    functionLinenumber: 6535
    functionLinenumberEnd: 6540
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1(TestName, ClassName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6546
      start: 6541
    functionDepth: 0
    functionLinenumber: 6541
    functionLinenumberEnd: 6546
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X(TestName, ClassName, signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6551
      start: 6548
    functionDepth: 0
    functionLinenumber: 6548
    functionLinenumberEnd: 6551
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6554
      start: 6551
    functionDepth: 0
    functionLinenumber: 6551
    functionLinenumberEnd: 6554
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6558
      start: 6557
    functionDepth: 0
    functionLinenumber: 6557
    functionLinenumberEnd: 6558
    functionName: INTERNAL_CATCH_NTTP_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6558
    functionDepth: 0
    functionLinenumber: 6558
    functionLinenumberEnd: 6559
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6560
      start: 6559
    functionDepth: 0
    functionLinenumber: 6559
    functionLinenumberEnd: 6560
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6561
      start: 6560
    functionDepth: 0
    functionLinenumber: 6560
    functionLinenumberEnd: 6561
    functionName: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6562
      start: 6561
    functionDepth: 0
    functionLinenumber: 6561
    functionLinenumberEnd: 6562
    functionName: INTERNAL_CATCH_NTTP_REG_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6563
      start: 6562
    functionDepth: 0
    functionLinenumber: 6562
    functionLinenumberEnd: 6563
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6564
      start: 6563
    functionDepth: 0
    functionLinenumber: 6563
    functionLinenumberEnd: 6564
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6565
      start: 6564
    functionDepth: 0
    functionLinenumber: 6564
    functionLinenumberEnd: 6565
    functionName: INTERNAL_CATCH_REMOVE_PARENS_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6568
      start: 6567
    functionDepth: 0
    functionLinenumber: 6567
    functionLinenumberEnd: 6568
    functionName: INTERNAL_CATCH_NTTP_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6569
      start: 6568
    functionDepth: 0
    functionLinenumber: 6568
    functionLinenumberEnd: 6569
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6569
    functionDepth: 0
    functionLinenumber: 6569
    functionLinenumberEnd: 6570
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6571
      start: 6570
    functionDepth: 0
    functionLinenumber: 6570
    functionLinenumberEnd: 6571
    functionName: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6572
      start: 6571
    functionDepth: 0
    functionLinenumber: 6571
    functionLinenumberEnd: 6572
    functionName: INTERNAL_CATCH_NTTP_REG_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6573
      start: 6572
    functionDepth: 0
    functionLinenumber: 6572
    functionLinenumberEnd: 6573
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6574
      start: 6573
    functionDepth: 0
    functionLinenumber: 6573
    functionLinenumberEnd: 6574
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6574
    functionDepth: 0
    functionLinenumber: 6574
    functionLinenumberEnd: 6575
    functionName: INTERNAL_CATCH_REMOVE_PARENS_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TestName
    - ','
    - TestFunc
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6590
      start: 6588
    functionDepth: 0
    functionLinenumber: 6588
    functionLinenumberEnd: 6590
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( TestName, TestFunc,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - TestNameClass
    - ','
    - TestName
    - ','
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6597
      start: 6590
    functionDepth: 0
    functionLinenumber: 6590
    functionLinenumberEnd: 6597
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( TestNameClass,
      TestName, ClassName, Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6601
      start: 6599
    functionDepth: 0
    functionLinenumber: 6599
    functionLinenumberEnd: 6601
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6604
      start: 6602
    functionDepth: 0
    functionLinenumber: 6602
    functionLinenumberEnd: 6604
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6609
      start: 6607
    functionDepth: 0
    functionLinenumber: 6607
    functionLinenumberEnd: 6609
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6612
      start: 6610
    functionDepth: 0
    functionLinenumber: 6610
    functionLinenumberEnd: 6612
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6617
      start: 6615
    functionDepth: 0
    functionLinenumber: 6615
    functionLinenumberEnd: 6617
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName,
      Name, Tags,... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6620
      start: 6618
    functionDepth: 0
    functionLinenumber: 6618
    functionLinenumberEnd: 6620
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName,
      Name, Tags,... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6625
      start: 6623
    functionDepth: 0
    functionLinenumber: 6623
    functionLinenumberEnd: 6625
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6628
      start: 6626
    functionDepth: 0
    functionLinenumber: 6626
    functionLinenumberEnd: 6628
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TestName
    - ','
    - TestFunc
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6650
      start: 6633
    functionDepth: 0
    functionLinenumber: 6633
    functionLinenumberEnd: 6650
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_2(TestName, TestFunc, Name, Tags,
      Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5087
      start: 5072
    functionDepth: 0
    functionLinenumber: 5072
    functionLinenumberEnd: 5087
    functionName: CATCH_DEFINE_COMPARABLE_TRAIT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DEFINE_COMPARABLE_TRAIT( id, op )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: formatReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5325,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5326,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5324
    functionDepth: 1
    functionLinenumber: 5324
    functionLinenumberEnd: 5327
    functionName: Catch::Detail::BinaryExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - formatReconstructedExpression
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream &os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - comparisonResult
    - lhs
    - op
    - rhs
    argTypes:
    - bool
    - LhsT
    - StringRef
    - RhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5335
      start: 5330
    functionDepth: 0
    functionLinenumber: 5330
    functionLinenumberEnd: 5335
    functionName: Catch::Detail::BinaryExpr::BinaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinaryExpr( bool comparisonResult, LhsT lhs, StringRef op, RhsT
      rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5338
    functionDepth: 0
    functionLinenumber: 5338
    functionLinenumberEnd: 5342
    functionName: operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5349
      start: 5345
    functionDepth: 0
    functionLinenumber: 5345
    functionLinenumberEnd: 5349
    functionName: operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5356
      start: 5352
    functionDepth: 0
    functionLinenumber: 5352
    functionLinenumberEnd: 5356
    functionName: operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5363
      start: 5359
    functionDepth: 0
    functionLinenumber: 5359
    functionLinenumberEnd: 5363
    functionName: operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5370
    functionName: operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5373
    functionDepth: 0
    functionLinenumber: 5373
    functionLinenumberEnd: 5377
    functionName: operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5384
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5384
    functionName: operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5391
      start: 5387
    functionDepth: 0
    functionLinenumber: 5387
    functionLinenumberEnd: 5391
    functionName: operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5400
      start: 5398
    functionDepth: 1
    functionLinenumber: 5398
    functionLinenumberEnd: 5400
    functionName: Catch::Detail::UnaryExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream &os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - LhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5403
    functionDepth: 0
    functionLinenumber: 5403
    functionLinenumberEnd: 5406
    functionName: Catch::Detail::UnaryExpr::UnaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: void
    signature: void UnaryExpr( LhsT lhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - LhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5414
      start: 5414
    functionDepth: 0
    functionLinenumber: 5414
    functionLinenumberEnd: 5414
    functionName: Catch::Detail::ExprLhs::ExprLhs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExprLhs( LhsT lhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5442
      start: 5416
    functionDepth: 0
    functionLinenumber: 5416
    functionLinenumberEnd: 5442
    functionName: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR( id, op )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5446,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5448,1
    - Dst: if
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5460,1
    - Dst: throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5460,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5461,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5465,1
    - Dst: op
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5472,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5516,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5517,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5522,1
    - Dst: op
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5524,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5529,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5539,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5541,1
    - Dst: warning
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5582,1
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: CATCH_INTERNAL_IGNORE_BUT_WARN
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5689,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5692,1
    - Dst: Catch::Decomposer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5694,1
    - Dst: static_cast<const bool&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5698,1
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    - Dst: INTERNAL_CATCH_UNIQUE_NAME
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6047,1
    - Dst: reg_test
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6652,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6652,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6653
      start: 5443
    functionDepth: 1
    functionLinenumber: 5443
    functionLinenumberEnd: 6653
    functionName: BinaryExpr<LhsT, RhsT>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    - warning
    - static_cast<const bool&>
    - CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
    - op
    - reg_test
    - StringRef
    - makeUnaryExpr
    - std::string
    - handleExpr
    - CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
    - handleIncomplete
    - Detail::make_unique<TestInvokerAsMethod<C>>
    - CATCH_INTERNAL_IGNORE_BUT_WARN
    - CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
    - INTERNAL_CATCH_UNIQUE_NAME
    - Catch::Decomposer
    - if
    - throw_test_failure_exception
    linkageType: ''
    returnType: "Detail::disjunction<std::is_same<RhsT, int>,                   \\\n
      \                                   std::is_same<RhsT, long>>>::value"
    signature: "Detail::disjunction<std::is_same<RhsT, int>,                   \\\n
      \                                   std::is_same<RhsT, long>>>::value BinaryExpr<LhsT,
      RhsT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5550
      start: 5546
    functionDepth: 0
    functionLinenumber: 5546
    functionLinenumberEnd: 5550
    functionName: operator && ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator && ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5553
    functionDepth: 0
    functionLinenumber: 5553
    functionLinenumberEnd: 5557
    functionName: operator || ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator || ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5561
      start: 5559
    functionDepth: 0
    functionLinenumber: 5559
    functionLinenumberEnd: 5561
    functionName: Catch::Detail::ExprLhs::makeUnaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto makeUnaryExpr() const -> UnaryExpr<LhsT>
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 0
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: ~AssertionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - handleIncomplete
    linkageType: ''
    returnType: void
    signature: void ~AssertionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ExprLhs<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5624
    functionName: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    - makeUnaryExpr
    linkageType: ''
    returnType: void
    signature: void handleExpr( ExprLhs<T> const& expr )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 0
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: ~AssertionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - handleIncomplete
    linkageType: ''
    returnType: void
    signature: void ~AssertionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ExprLhs<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5624
    functionName: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    - makeUnaryExpr
    linkageType: ''
    returnType: void
    signature: void handleExpr( ExprLhs<T> const& expr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5654
      start: 5653
    functionDepth: 0
    functionLinenumber: 5653
    functionLinenumberEnd: 5654
    functionName: CATCH_INTERNAL_STRINGIFY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_STRINGIFY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5656
      start: 5655
    functionDepth: 0
    functionLinenumber: 5655
    functionLinenumberEnd: 5656
    functionName: CATCH_INTERNAL_STRINGIFY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_STRINGIFY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handler
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5679
    functionDepth: 0
    functionLinenumber: 5679
    functionLinenumberEnd: 5680
    functionName: INTERNAL_CATCH_CATCH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_CATCH( handler )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handler
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5683
    functionDepth: 0
    functionLinenumber: 5683
    functionLinenumberEnd: 5684
    functionName: INTERNAL_CATCH_REACT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REACT( handler )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5688
      start: 5686
    functionDepth: 0
    functionLinenumber: 5686
    functionLinenumberEnd: 5688
    functionName: INTERNAL_CATCH_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEST( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5705
      start: 5702
    functionDepth: 0
    functionLinenumber: 5702
    functionLinenumberEnd: 5705
    functionName: INTERNAL_CATCH_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_IF( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5710
      start: 5707
    functionDepth: 0
    functionLinenumber: 5707
    functionLinenumberEnd: 5710
    functionName: INTERNAL_CATCH_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_ELSE( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5727
      start: 5712
    functionDepth: 0
    functionLinenumber: 5712
    functionLinenumberEnd: 5727
    functionName: INTERNAL_CATCH_NO_THROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NO_THROW( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5748
      start: 5729
    functionDepth: 0
    functionLinenumber: 5729
    functionLinenumberEnd: 5748
    functionName: INTERNAL_CATCH_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - exceptionType
    - ','
    - resultDisposition
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5772
      start: 5750
    functionDepth: 0
    functionLinenumber: 5750
    functionLinenumberEnd: 5772
    functionName: INTERNAL_CATCH_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_AS( macroName, exceptionType, resultDisposition,
      expr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - matcher
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5796
      start: 5777
    functionDepth: 0
    functionLinenumber: 5777
    functionLinenumberEnd: 5796
    functionName: INTERNAL_CATCH_THROWS_STR_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_STR_MATCHES( macroName, resultDisposition, matcher,
      ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5887
      start: 5880
    functionDepth: 0
    functionLinenumber: 5880
    functionLinenumberEnd: 5887
    functionName: INTERNAL_CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5898
      start: 5888
    functionDepth: 0
    functionLinenumber: 5888
    functionLinenumberEnd: 5898
    functionName: INTERNAL_CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5926
      start: 5916
    functionDepth: 0
    functionLinenumber: 5916
    functionLinenumberEnd: 5926
    functionName: INTERNAL_CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5937
      start: 5927
    functionDepth: 0
    functionLinenumber: 5927
    functionLinenumberEnd: 5937
    functionName: INTERNAL_CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5969
      start: 5968
    functionDepth: 0
    functionLinenumber: 5968
    functionLinenumberEnd: 5969
    functionName: INTERNAL_CATCH_EXPAND1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND1( param )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5970
      start: 5969
    functionDepth: 0
    functionLinenumber: 5969
    functionLinenumberEnd: 5970
    functionName: INTERNAL_CATCH_EXPAND2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND2( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5970
    functionDepth: 0
    functionLinenumber: 5970
    functionLinenumberEnd: 5971
    functionName: INTERNAL_CATCH_DEF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5975
      start: 5973
    functionDepth: 0
    functionLinenumber: 5973
    functionLinenumberEnd: 5975
    functionName: INTERNAL_CATCH_REMOVE_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5993
    functionDepth: 0
    functionLinenumber: 5993
    functionLinenumberEnd: 5993
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::TestInvokerAsMethod
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5995
    functionDepth: 0
    functionLinenumber: 5995
    functionLinenumberEnd: 5998
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6006
    functionName: Catch::Detail::ExprLhs::Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsMethod<C>>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void (C::*testAsMethod)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6009
    functionDepth: 0
    functionLinenumber: 6009
    functionLinenumberEnd: 6011
    functionName: Catch::Detail::ExprLhs::Catch::NameAndTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: "void NameAndTags( StringRef name_ = StringRef(),\n                           StringRef
      tags_ = StringRef() ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5993
    functionDepth: 0
    functionLinenumber: 5993
    functionLinenumberEnd: 5993
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::TestInvokerAsMethod
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5995
    functionDepth: 0
    functionLinenumber: 5995
    functionLinenumberEnd: 5998
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6006
    functionName: Catch::Detail::ExprLhs::Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsMethod<C>>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void (C::*testAsMethod)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6009
    functionDepth: 0
    functionLinenumber: 6009
    functionLinenumberEnd: 6011
    functionName: Catch::Detail::ExprLhs::Catch::NameAndTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: "void NameAndTags( StringRef name_ = StringRef(),\n                           StringRef
      tags_ = StringRef() ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 6023
    functionDepth: 0
    functionLinenumber: 6023
    functionLinenumberEnd: 6025
    functionName: INTERNAL_CATCH_TESTCASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE_NO_REGISTRATION( TestName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6032
      start: 6025
    functionDepth: 0
    functionLinenumber: 6025
    functionLinenumberEnd: 6032
    functionName: INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION( TestName, ClassName,
      ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6038
    functionDepth: 0
    functionLinenumber: 6038
    functionLinenumberEnd: 6043
    functionName: INTERNAL_CATCH_TESTCASE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE2( TestName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fname
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6078
      start: 6068
    functionDepth: 0
    functionLinenumber: 6068
    functionLinenumberEnd: 6078
    functionName: INTERNAL_CATCH_TESTCASE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE2( fname, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6080
      start: 6078
    functionDepth: 0
    functionLinenumber: 6078
    functionLinenumberEnd: 6080
    functionName: INTERNAL_CATCH_TESTCASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6103
      start: 6101
    functionDepth: 0
    functionLinenumber: 6101
    functionLinenumberEnd: 6103
    functionName: INTERNAL_CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - QualifiedMethod
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6116
      start: 6106
    functionDepth: 0
    functionLinenumber: 6106
    functionLinenumberEnd: 6116
    functionName: INTERNAL_CATCH_METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 6141
    functionDepth: 0
    functionLinenumber: 6141
    functionLinenumberEnd: 6142
    functionName: CATCH_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6143
      start: 6142
    functionDepth: 0
    functionLinenumber: 6142
    functionLinenumberEnd: 6143
    functionName: CATCH_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6145
      start: 6144
    functionDepth: 0
    functionLinenumber: 6144
    functionLinenumberEnd: 6145
    functionName: CATCH_REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6146
      start: 6145
    functionDepth: 0
    functionLinenumber: 6145
    functionLinenumberEnd: 6146
    functionName: CATCH_REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6146
    functionDepth: 0
    functionLinenumber: 6146
    functionLinenumberEnd: 6147
    functionName: CATCH_REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6149
      start: 6148
    functionDepth: 0
    functionLinenumber: 6148
    functionLinenumberEnd: 6149
    functionName: CATCH_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6150
      start: 6149
    functionDepth: 0
    functionLinenumber: 6149
    functionLinenumberEnd: 6150
    functionName: CATCH_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6151
      start: 6150
    functionDepth: 0
    functionLinenumber: 6150
    functionLinenumberEnd: 6151
    functionName: CATCH_CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6152
      start: 6151
    functionDepth: 0
    functionLinenumber: 6151
    functionLinenumberEnd: 6152
    functionName: CATCH_CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6152
    functionDepth: 0
    functionLinenumber: 6152
    functionLinenumberEnd: 6153
    functionName: CATCH_CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6155
      start: 6154
    functionDepth: 0
    functionLinenumber: 6154
    functionLinenumberEnd: 6155
    functionName: CATCH_CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6156
      start: 6155
    functionDepth: 0
    functionLinenumber: 6155
    functionLinenumberEnd: 6156
    functionName: CATCH_CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6157
      start: 6156
    functionDepth: 0
    functionLinenumber: 6156
    functionLinenumberEnd: 6157
    functionName: CATCH_CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6159
      start: 6158
    functionDepth: 0
    functionLinenumber: 6158
    functionLinenumberEnd: 6159
    functionName: CATCH_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6160
      start: 6159
    functionDepth: 0
    functionLinenumber: 6159
    functionLinenumberEnd: 6160
    functionName: CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6161
      start: 6160
    functionDepth: 0
    functionLinenumber: 6160
    functionLinenumberEnd: 6161
    functionName: CATCH_METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_METHOD_AS_TEST_CASE( method, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6162
      start: 6161
    functionDepth: 0
    functionLinenumber: 6161
    functionLinenumberEnd: 6162
    functionName: CATCH_REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6163
      start: 6162
    functionDepth: 0
    functionLinenumber: 6162
    functionLinenumberEnd: 6163
    functionName: CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6164
      start: 6163
    functionDepth: 0
    functionLinenumber: 6163
    functionLinenumberEnd: 6164
    functionName: CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6165
      start: 6164
    functionDepth: 0
    functionLinenumber: 6164
    functionLinenumberEnd: 6165
    functionName: CATCH_FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6166
      start: 6165
    functionDepth: 0
    functionLinenumber: 6165
    functionLinenumberEnd: 6166
    functionName: CATCH_FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6167
      start: 6166
    functionDepth: 0
    functionLinenumber: 6166
    functionLinenumberEnd: 6167
    functionName: CATCH_SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6168
      start: 6167
    functionDepth: 0
    functionLinenumber: 6167
    functionLinenumberEnd: 6168
    functionName: CATCH_SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6172
      start: 6171
    functionDepth: 0
    functionLinenumber: 6171
    functionLinenumberEnd: 6172
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6173
      start: 6172
    functionDepth: 0
    functionLinenumber: 6172
    functionLinenumberEnd: 6173
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6174
      start: 6173
    functionDepth: 0
    functionLinenumber: 6173
    functionLinenumberEnd: 6174
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6174
    functionDepth: 0
    functionLinenumber: 6174
    functionLinenumberEnd: 6175
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6177
      start: 6176
    functionDepth: 0
    functionLinenumber: 6176
    functionLinenumberEnd: 6177
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6178
      start: 6177
    functionDepth: 0
    functionLinenumber: 6177
    functionLinenumberEnd: 6178
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6179
      start: 6178
    functionDepth: 0
    functionLinenumber: 6178
    functionLinenumberEnd: 6179
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6180
      start: 6179
    functionDepth: 0
    functionLinenumber: 6179
    functionLinenumberEnd: 6180
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6184
    functionDepth: 0
    functionLinenumber: 6184
    functionLinenumberEnd: 6185
    functionName: CATCH_SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6186
      start: 6185
    functionDepth: 0
    functionLinenumber: 6185
    functionLinenumberEnd: 6186
    functionName: CATCH_SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6187
      start: 6186
    functionDepth: 0
    functionLinenumber: 6186
    functionLinenumberEnd: 6187
    functionName: CATCH_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6187
    functionDepth: 0
    functionLinenumber: 6187
    functionLinenumberEnd: 6188
    functionName: CATCH_AND_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6189
      start: 6188
    functionDepth: 0
    functionLinenumber: 6188
    functionLinenumberEnd: 6189
    functionName: CATCH_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6190
      start: 6189
    functionDepth: 0
    functionLinenumber: 6189
    functionLinenumberEnd: 6190
    functionName: CATCH_AND_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6191
      start: 6190
    functionDepth: 0
    functionLinenumber: 6190
    functionLinenumberEnd: 6191
    functionName: CATCH_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6192
      start: 6191
    functionDepth: 0
    functionLinenumber: 6191
    functionLinenumberEnd: 6192
    functionName: CATCH_AND_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6196
      start: 6195
    functionDepth: 0
    functionLinenumber: 6195
    functionLinenumberEnd: 6196
    functionName: CATCH_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6197
      start: 6196
    functionDepth: 0
    functionLinenumber: 6196
    functionLinenumberEnd: 6197
    functionName: CATCH_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6199
      start: 6198
    functionDepth: 0
    functionLinenumber: 6198
    functionLinenumberEnd: 6199
    functionName: CATCH_REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6199
    functionDepth: 0
    functionLinenumber: 6199
    functionLinenumberEnd: 6200
    functionName: CATCH_REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6201
      start: 6200
    functionDepth: 0
    functionLinenumber: 6200
    functionLinenumberEnd: 6201
    functionName: CATCH_REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6203
      start: 6202
    functionDepth: 0
    functionLinenumber: 6202
    functionLinenumberEnd: 6203
    functionName: CATCH_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6204
      start: 6203
    functionDepth: 0
    functionLinenumber: 6203
    functionLinenumberEnd: 6204
    functionName: CATCH_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6205
      start: 6204
    functionDepth: 0
    functionLinenumber: 6204
    functionLinenumberEnd: 6205
    functionName: CATCH_CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6206
      start: 6205
    functionDepth: 0
    functionLinenumber: 6205
    functionLinenumberEnd: 6206
    functionName: CATCH_CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6207
      start: 6206
    functionDepth: 0
    functionLinenumber: 6206
    functionLinenumberEnd: 6207
    functionName: CATCH_CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6209
      start: 6208
    functionDepth: 0
    functionLinenumber: 6208
    functionLinenumberEnd: 6209
    functionName: CATCH_CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6210
      start: 6209
    functionDepth: 0
    functionLinenumber: 6209
    functionLinenumberEnd: 6210
    functionName: CATCH_CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6211
      start: 6210
    functionDepth: 0
    functionLinenumber: 6210
    functionLinenumberEnd: 6211
    functionName: CATCH_CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6213
      start: 6212
    functionDepth: 0
    functionLinenumber: 6212
    functionLinenumberEnd: 6213
    functionName: CATCH_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6214
      start: 6213
    functionDepth: 0
    functionLinenumber: 6213
    functionLinenumberEnd: 6214
    functionName: CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6216
      start: 6215
    functionDepth: 0
    functionLinenumber: 6215
    functionLinenumberEnd: 6216
    functionName: CATCH_REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6219
      start: 6218
    functionDepth: 0
    functionLinenumber: 6218
    functionLinenumberEnd: 6219
    functionName: CATCH_FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6220
      start: 6219
    functionDepth: 0
    functionLinenumber: 6219
    functionLinenumberEnd: 6220
    functionName: CATCH_FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6221
      start: 6220
    functionDepth: 0
    functionLinenumber: 6220
    functionLinenumberEnd: 6221
    functionName: CATCH_SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6222
      start: 6221
    functionDepth: 0
    functionLinenumber: 6221
    functionLinenumberEnd: 6222
    functionName: CATCH_SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6224
      start: 6223
    functionDepth: 0
    functionLinenumber: 6223
    functionLinenumberEnd: 6224
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6225
      start: 6224
    functionDepth: 0
    functionLinenumber: 6224
    functionLinenumberEnd: 6225
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6226
      start: 6225
    functionDepth: 0
    functionLinenumber: 6225
    functionLinenumberEnd: 6226
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6227
      start: 6226
    functionDepth: 0
    functionLinenumber: 6226
    functionLinenumberEnd: 6227
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6230
      start: 6229
    functionDepth: 0
    functionLinenumber: 6229
    functionLinenumberEnd: 6230
    functionName: CATCH_SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6231
      start: 6230
    functionDepth: 0
    functionLinenumber: 6230
    functionLinenumberEnd: 6231
    functionName: CATCH_SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6241
      start: 6240
    functionDepth: 0
    functionLinenumber: 6240
    functionLinenumberEnd: 6241
    functionName: REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6242
      start: 6241
    functionDepth: 0
    functionLinenumber: 6241
    functionLinenumberEnd: 6242
    functionName: REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6244
      start: 6243
    functionDepth: 0
    functionLinenumber: 6243
    functionLinenumberEnd: 6244
    functionName: REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6244
    functionDepth: 0
    functionLinenumber: 6244
    functionLinenumberEnd: 6245
    functionName: REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6245
    functionDepth: 0
    functionLinenumber: 6245
    functionLinenumberEnd: 6246
    functionName: REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6248
      start: 6247
    functionDepth: 0
    functionLinenumber: 6247
    functionLinenumberEnd: 6248
    functionName: CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 944
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6249
      start: 6248
    functionDepth: 0
    functionLinenumber: 6248
    functionLinenumberEnd: 6249
    functionName: CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6250
      start: 6249
    functionDepth: 0
    functionLinenumber: 6249
    functionLinenumberEnd: 6250
    functionName: CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6251
      start: 6250
    functionDepth: 0
    functionLinenumber: 6250
    functionLinenumberEnd: 6251
    functionName: CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6252
      start: 6251
    functionDepth: 0
    functionLinenumber: 6251
    functionLinenumberEnd: 6252
    functionName: CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6254
      start: 6253
    functionDepth: 0
    functionLinenumber: 6253
    functionLinenumberEnd: 6254
    functionName: CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6255
      start: 6254
    functionDepth: 0
    functionLinenumber: 6254
    functionLinenumberEnd: 6255
    functionName: CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6256
      start: 6255
    functionDepth: 0
    functionLinenumber: 6255
    functionLinenumberEnd: 6256
    functionName: CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6258
      start: 6257
    functionDepth: 0
    functionLinenumber: 6257
    functionLinenumberEnd: 6258
    functionName: TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6259
      start: 6258
    functionDepth: 0
    functionLinenumber: 6258
    functionLinenumberEnd: 6259
    functionName: TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6260
      start: 6259
    functionDepth: 0
    functionLinenumber: 6259
    functionLinenumberEnd: 6260
    functionName: METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METHOD_AS_TEST_CASE( method, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6261
      start: 6260
    functionDepth: 0
    functionLinenumber: 6260
    functionLinenumberEnd: 6261
    functionName: REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6262
      start: 6261
    functionDepth: 0
    functionLinenumber: 6261
    functionLinenumberEnd: 6262
    functionName: SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6263
      start: 6262
    functionDepth: 0
    functionLinenumber: 6262
    functionLinenumberEnd: 6263
    functionName: DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6264
      start: 6263
    functionDepth: 0
    functionLinenumber: 6263
    functionLinenumberEnd: 6264
    functionName: FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6265
      start: 6264
    functionDepth: 0
    functionLinenumber: 6264
    functionLinenumberEnd: 6265
    functionName: FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6266
      start: 6265
    functionDepth: 0
    functionLinenumber: 6265
    functionLinenumberEnd: 6266
    functionName: SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6267
      start: 6266
    functionDepth: 0
    functionLinenumber: 6266
    functionLinenumberEnd: 6267
    functionName: SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6271
      start: 6270
    functionDepth: 0
    functionLinenumber: 6270
    functionLinenumberEnd: 6271
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6272
      start: 6271
    functionDepth: 0
    functionLinenumber: 6271
    functionLinenumberEnd: 6272
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6273
      start: 6272
    functionDepth: 0
    functionLinenumber: 6272
    functionLinenumberEnd: 6273
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6274
      start: 6273
    functionDepth: 0
    functionLinenumber: 6273
    functionLinenumberEnd: 6274
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6276
      start: 6275
    functionDepth: 0
    functionLinenumber: 6275
    functionLinenumberEnd: 6276
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6277
      start: 6276
    functionDepth: 0
    functionLinenumber: 6276
    functionLinenumberEnd: 6277
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6278
      start: 6277
    functionDepth: 0
    functionLinenumber: 6277
    functionLinenumberEnd: 6278
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6279
      start: 6278
    functionDepth: 0
    functionLinenumber: 6278
    functionLinenumberEnd: 6279
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6283
      start: 6282
    functionDepth: 0
    functionLinenumber: 6282
    functionLinenumberEnd: 6283
    functionName: SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6284
      start: 6283
    functionDepth: 0
    functionLinenumber: 6283
    functionLinenumberEnd: 6284
    functionName: SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6284
    functionDepth: 0
    functionLinenumber: 6284
    functionLinenumberEnd: 6285
    functionName: GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6286
      start: 6285
    functionDepth: 0
    functionLinenumber: 6285
    functionLinenumberEnd: 6286
    functionName: AND_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6287
      start: 6286
    functionDepth: 0
    functionLinenumber: 6286
    functionLinenumberEnd: 6287
    functionName: WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6288
      start: 6287
    functionDepth: 0
    functionLinenumber: 6287
    functionLinenumberEnd: 6288
    functionName: AND_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6289
      start: 6288
    functionDepth: 0
    functionLinenumber: 6288
    functionLinenumberEnd: 6289
    functionName: THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6290
      start: 6289
    functionDepth: 0
    functionLinenumber: 6289
    functionLinenumberEnd: 6290
    functionName: AND_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6294
      start: 6293
    functionDepth: 0
    functionLinenumber: 6293
    functionLinenumberEnd: 6294
    functionName: REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6295
      start: 6294
    functionDepth: 0
    functionLinenumber: 6294
    functionLinenumberEnd: 6295
    functionName: REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6297
      start: 6296
    functionDepth: 0
    functionLinenumber: 6296
    functionLinenumberEnd: 6297
    functionName: REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6298
      start: 6297
    functionDepth: 0
    functionLinenumber: 6297
    functionLinenumberEnd: 6298
    functionName: REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6299
      start: 6298
    functionDepth: 0
    functionLinenumber: 6298
    functionLinenumberEnd: 6299
    functionName: REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6301
      start: 6300
    functionDepth: 0
    functionLinenumber: 6300
    functionLinenumberEnd: 6301
    functionName: CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 944
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6302
      start: 6301
    functionDepth: 0
    functionLinenumber: 6301
    functionLinenumberEnd: 6302
    functionName: CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6303
      start: 6302
    functionDepth: 0
    functionLinenumber: 6302
    functionLinenumberEnd: 6303
    functionName: CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6304
      start: 6303
    functionDepth: 0
    functionLinenumber: 6303
    functionLinenumberEnd: 6304
    functionName: CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6305
      start: 6304
    functionDepth: 0
    functionLinenumber: 6304
    functionLinenumberEnd: 6305
    functionName: CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6307
      start: 6306
    functionDepth: 0
    functionLinenumber: 6306
    functionLinenumberEnd: 6307
    functionName: CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6308
      start: 6307
    functionDepth: 0
    functionLinenumber: 6307
    functionLinenumberEnd: 6308
    functionName: CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6309
      start: 6308
    functionDepth: 0
    functionLinenumber: 6308
    functionLinenumberEnd: 6309
    functionName: CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6311
      start: 6310
    functionDepth: 0
    functionLinenumber: 6310
    functionLinenumberEnd: 6311
    functionName: TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6312
      start: 6311
    functionDepth: 0
    functionLinenumber: 6311
    functionLinenumberEnd: 6312
    functionName: TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6314
      start: 6313
    functionDepth: 0
    functionLinenumber: 6313
    functionLinenumberEnd: 6314
    functionName: REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6317
      start: 6316
    functionDepth: 0
    functionLinenumber: 6316
    functionLinenumberEnd: 6317
    functionName: FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6318
      start: 6317
    functionDepth: 0
    functionLinenumber: 6317
    functionLinenumberEnd: 6318
    functionName: FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6319
      start: 6318
    functionDepth: 0
    functionLinenumber: 6318
    functionLinenumberEnd: 6319
    functionName: SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6320
      start: 6319
    functionDepth: 0
    functionLinenumber: 6319
    functionLinenumberEnd: 6320
    functionName: SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6322
      start: 6321
    functionDepth: 0
    functionLinenumber: 6321
    functionLinenumberEnd: 6322
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6323
      start: 6322
    functionDepth: 0
    functionLinenumber: 6322
    functionLinenumberEnd: 6323
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6324
      start: 6323
    functionDepth: 0
    functionLinenumber: 6323
    functionLinenumberEnd: 6324
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6325
      start: 6324
    functionDepth: 0
    functionLinenumber: 6324
    functionLinenumberEnd: 6325
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6328
      start: 6327
    functionDepth: 0
    functionLinenumber: 6327
    functionLinenumberEnd: 6328
    functionName: SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6329
      start: 6328
    functionDepth: 0
    functionLinenumber: 6328
    functionLinenumberEnd: 6329
    functionName: SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6360
      start: 6359
    functionDepth: 0
    functionLinenumber: 6359
    functionLinenumberEnd: 6360
    functionName: CATCH_RECURSION_LEVEL0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL0(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6361
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6361
    functionName: CATCH_RECURSION_LEVEL1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6362
      start: 6361
    functionDepth: 0
    functionLinenumber: 6361
    functionLinenumberEnd: 6362
    functionName: CATCH_RECURSION_LEVEL2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6362
    functionDepth: 0
    functionLinenumber: 6362
    functionLinenumberEnd: 6363
    functionName: CATCH_RECURSION_LEVEL3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6364
      start: 6363
    functionDepth: 0
    functionLinenumber: 6363
    functionLinenumberEnd: 6364
    functionName: CATCH_RECURSION_LEVEL4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6365
      start: 6364
    functionDepth: 0
    functionLinenumber: 6364
    functionLinenumberEnd: 6365
    functionName: CATCH_RECURSION_LEVEL5
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL5(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6367
    functionDepth: 0
    functionLinenumber: 6367
    functionLinenumberEnd: 6368
    functionName: INTERNAL_CATCH_EXPAND_VARGS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND_VARGS(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6370
      start: 6369
    functionDepth: 0
    functionLinenumber: 6369
    functionLinenumberEnd: 6370
    functionName: CATCH_RECURSION_LEVEL6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL6(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6371
      start: 6370
    functionDepth: 0
    functionLinenumber: 6370
    functionLinenumberEnd: 6371
    functionName: CATCH_RECURSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6373
      start: 6372
    functionDepth: 0
    functionLinenumber: 6372
    functionLinenumberEnd: 6373
    functionName: CATCH_RECURSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6380
      start: 6379
    functionDepth: 0
    functionLinenumber: 6379
    functionLinenumberEnd: 6380
    functionName: CATCH_DEFER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DEFER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6382
      start: 6381
    functionDepth: 0
    functionLinenumber: 6381
    functionLinenumberEnd: 6382
    functionName: CATCH_REC_GET_END2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6383
      start: 6382
    functionDepth: 0
    functionLinenumber: 6382
    functionLinenumberEnd: 6383
    functionName: CATCH_REC_GET_END1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6384
      start: 6383
    functionDepth: 0
    functionLinenumber: 6383
    functionLinenumberEnd: 6384
    functionName: CATCH_REC_GET_END
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - test
    - ','
    - next
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6385
      start: 6384
    functionDepth: 0
    functionLinenumber: 6384
    functionLinenumberEnd: 6385
    functionName: CATCH_REC_NEXT0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT0(test, next, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6385
    functionDepth: 0
    functionLinenumber: 6385
    functionLinenumberEnd: 6386
    functionName: CATCH_REC_NEXT1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT1(test, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6387
      start: 6386
    functionDepth: 0
    functionLinenumber: 6386
    functionLinenumberEnd: 6387
    functionName: CATCH_REC_NEXT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT(test, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6389
      start: 6388
    functionDepth: 0
    functionLinenumber: 6388
    functionLinenumberEnd: 6389
    functionName: CATCH_REC_LIST0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST0(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6390
      start: 6389
    functionDepth: 0
    functionLinenumber: 6389
    functionLinenumberEnd: 6390
    functionName: CATCH_REC_LIST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST1(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6391
      start: 6390
    functionDepth: 0
    functionLinenumber: 6390
    functionLinenumberEnd: 6391
    functionName: CATCH_REC_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST2(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6393
      start: 6392
    functionDepth: 0
    functionLinenumber: 6392
    functionLinenumberEnd: 6393
    functionName: CATCH_REC_LIST0_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST0_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6393
    functionDepth: 0
    functionLinenumber: 6393
    functionLinenumberEnd: 6394
    functionName: CATCH_REC_LIST1_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST1_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6395
      start: 6394
    functionDepth: 0
    functionLinenumber: 6394
    functionLinenumberEnd: 6395
    functionName: CATCH_REC_LIST2_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST2_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6400
      start: 6399
    functionDepth: 0
    functionLinenumber: 6399
    functionLinenumberEnd: 6400
    functionName: CATCH_REC_LIST_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST_UD(f, userdata, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6402
      start: 6401
    functionDepth: 0
    functionLinenumber: 6401
    functionLinenumberEnd: 6402
    functionName: CATCH_REC_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6404
      start: 6403
    functionDepth: 0
    functionLinenumber: 6403
    functionLinenumberEnd: 6404
    functionName: INTERNAL_CATCH_STRINGIZE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6406
      start: 6405
    functionDepth: 0
    functionLinenumber: 6405
    functionLinenumberEnd: 6406
    functionName: INTERNAL_CATCH_STRINGIZE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6407
      start: 6406
    functionDepth: 0
    functionLinenumber: 6406
    functionLinenumberEnd: 6407
    functionName: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6410
      start: 6409
    functionDepth: 0
    functionLinenumber: 6409
    functionLinenumberEnd: 6410
    functionName: INTERNAL_CATCH_STRINGIZE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6411
      start: 6410
    functionDepth: 0
    functionLinenumber: 6410
    functionLinenumberEnd: 6411
    functionName: INTERNAL_CATCH_STRINGIZE3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6412
      start: 6411
    functionDepth: 0
    functionLinenumber: 6411
    functionLinenumberEnd: 6412
    functionName: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6415
      start: 6414
    functionDepth: 0
    functionLinenumber: 6414
    functionLinenumberEnd: 6415
    functionName: INTERNAL_CATCH_MAKE_NAMESPACE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_NAMESPACE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6416
      start: 6415
    functionDepth: 0
    functionLinenumber: 6415
    functionLinenumberEnd: 6416
    functionName: INTERNAL_CATCH_MAKE_NAMESPACE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_NAMESPACE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6419
      start: 6418
    functionDepth: 0
    functionLinenumber: 6418
    functionLinenumberEnd: 6419
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6420
      start: 6419
    functionDepth: 0
    functionLinenumber: 6419
    functionLinenumberEnd: 6420
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6422
      start: 6421
    functionDepth: 0
    functionLinenumber: 6421
    functionLinenumberEnd: 6422
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6423
      start: 6422
    functionDepth: 0
    functionLinenumber: 6422
    functionLinenumberEnd: 6423
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6427
      start: 6425
    functionDepth: 0
    functionLinenumber: 6425
    functionLinenumberEnd: 6427
    functionName: INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6429
      start: 6428
    functionDepth: 0
    functionLinenumber: 6428
    functionLinenumberEnd: 6429
    functionName: INTERNAL_CATCH_REMOVE_PARENS_1_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _0
    - ','
    - _1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6430
      start: 6429
    functionDepth: 0
    functionLinenumber: 6429
    functionLinenumberEnd: 6430
    functionName: INTERNAL_CATCH_REMOVE_PARENS_2_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6431
      start: 6430
    functionDepth: 0
    functionLinenumber: 6430
    functionLinenumberEnd: 6431
    functionName: INTERNAL_CATCH_REMOVE_PARENS_3_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6432
      start: 6431
    functionDepth: 0
    functionLinenumber: 6431
    functionLinenumberEnd: 6432
    functionName: INTERNAL_CATCH_REMOVE_PARENS_4_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6433
      start: 6432
    functionDepth: 0
    functionLinenumber: 6432
    functionLinenumberEnd: 6433
    functionName: INTERNAL_CATCH_REMOVE_PARENS_5_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6433
    functionDepth: 0
    functionLinenumber: 6433
    functionLinenumberEnd: 6434
    functionName: INTERNAL_CATCH_REMOVE_PARENS_6_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6435
      start: 6434
    functionDepth: 0
    functionLinenumber: 6434
    functionLinenumberEnd: 6435
    functionName: INTERNAL_CATCH_REMOVE_PARENS_7_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6436
      start: 6435
    functionDepth: 0
    functionLinenumber: 6435
    functionLinenumberEnd: 6436
    functionName: INTERNAL_CATCH_REMOVE_PARENS_8_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6437
      start: 6436
    functionDepth: 0
    functionLinenumber: 6436
    functionLinenumberEnd: 6437
    functionName: INTERNAL_CATCH_REMOVE_PARENS_9_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6437
    functionDepth: 0
    functionLinenumber: 6437
    functionLinenumberEnd: 6438
    functionName: INTERNAL_CATCH_REMOVE_PARENS_10_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8, _9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6439
      start: 6438
    functionDepth: 0
    functionLinenumber: 6438
    functionLinenumberEnd: 6439
    functionName: INTERNAL_CATCH_REMOVE_PARENS_11_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8, _9, _10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - ','
    - N
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6441
      start: 6440
    functionDepth: 0
    functionLinenumber: 6440
    functionLinenumberEnd: 6441
    functionName: INTERNAL_CATCH_VA_NARGS_IMPL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9,
      _10, N, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6489
      start: 6475
    functionDepth: 0
    functionLinenumber: 6475
    functionLinenumberEnd: 6489
    functionName: INTERNAL_CATCH_NTTP_1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_1(signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6494
      start: 6491
    functionDepth: 0
    functionLinenumber: 6491
    functionLinenumberEnd: 6494
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6497
      start: 6494
    functionDepth: 0
    functionLinenumber: 6494
    functionLinenumberEnd: 6497
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_X(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6502
      start: 6499
    functionDepth: 0
    functionLinenumber: 6499
    functionLinenumberEnd: 6502
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6505
      start: 6502
    functionDepth: 0
    functionLinenumber: 6502
    functionLinenumberEnd: 6505
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_X(TestName, signature,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6512
      start: 6506
    functionDepth: 0
    functionLinenumber: 6506
    functionLinenumberEnd: 6512
    functionName: INTERNAL_CATCH_NTTP_REGISTER0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER0(TestFunc, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestFunc
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6519
      start: 6513
    functionDepth: 0
    functionLinenumber: 6513
    functionLinenumberEnd: 6519
    functionName: INTERNAL_CATCH_NTTP_REGISTER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER(TestFunc, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6526
      start: 6520
    functionDepth: 0
    functionLinenumber: 6520
    functionLinenumberEnd: 6526
    functionName: INTERNAL_CATCH_NTTP_REGISTER_METHOD0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER_METHOD0(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6533
      start: 6527
    functionDepth: 0
    functionLinenumber: 6527
    functionLinenumberEnd: 6533
    functionName: INTERNAL_CATCH_NTTP_REGISTER_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER_METHOD(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6540
      start: 6535
    functionDepth: 0
    functionLinenumber: 6535
    functionLinenumberEnd: 6540
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1(TestName, ClassName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6546
      start: 6541
    functionDepth: 0
    functionLinenumber: 6541
    functionLinenumberEnd: 6546
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X(TestName, ClassName, signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6551
      start: 6548
    functionDepth: 0
    functionLinenumber: 6548
    functionLinenumberEnd: 6551
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6554
      start: 6551
    functionDepth: 0
    functionLinenumber: 6551
    functionLinenumberEnd: 6554
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6558
      start: 6557
    functionDepth: 0
    functionLinenumber: 6557
    functionLinenumberEnd: 6558
    functionName: INTERNAL_CATCH_NTTP_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6558
    functionDepth: 0
    functionLinenumber: 6558
    functionLinenumberEnd: 6559
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6560
      start: 6559
    functionDepth: 0
    functionLinenumber: 6559
    functionLinenumberEnd: 6560
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6561
      start: 6560
    functionDepth: 0
    functionLinenumber: 6560
    functionLinenumberEnd: 6561
    functionName: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6562
      start: 6561
    functionDepth: 0
    functionLinenumber: 6561
    functionLinenumberEnd: 6562
    functionName: INTERNAL_CATCH_NTTP_REG_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6563
      start: 6562
    functionDepth: 0
    functionLinenumber: 6562
    functionLinenumberEnd: 6563
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6564
      start: 6563
    functionDepth: 0
    functionLinenumber: 6563
    functionLinenumberEnd: 6564
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6565
      start: 6564
    functionDepth: 0
    functionLinenumber: 6564
    functionLinenumberEnd: 6565
    functionName: INTERNAL_CATCH_REMOVE_PARENS_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6568
      start: 6567
    functionDepth: 0
    functionLinenumber: 6567
    functionLinenumberEnd: 6568
    functionName: INTERNAL_CATCH_NTTP_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6569
      start: 6568
    functionDepth: 0
    functionLinenumber: 6568
    functionLinenumberEnd: 6569
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6569
    functionDepth: 0
    functionLinenumber: 6569
    functionLinenumberEnd: 6570
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6571
      start: 6570
    functionDepth: 0
    functionLinenumber: 6570
    functionLinenumberEnd: 6571
    functionName: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6572
      start: 6571
    functionDepth: 0
    functionLinenumber: 6571
    functionLinenumberEnd: 6572
    functionName: INTERNAL_CATCH_NTTP_REG_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6573
      start: 6572
    functionDepth: 0
    functionLinenumber: 6572
    functionLinenumberEnd: 6573
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6574
      start: 6573
    functionDepth: 0
    functionLinenumber: 6573
    functionLinenumberEnd: 6574
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6574
    functionDepth: 0
    functionLinenumber: 6574
    functionLinenumberEnd: 6575
    functionName: INTERNAL_CATCH_REMOVE_PARENS_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TestName
    - ','
    - TestFunc
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6590
      start: 6588
    functionDepth: 0
    functionLinenumber: 6588
    functionLinenumberEnd: 6590
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( TestName, TestFunc,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - TestNameClass
    - ','
    - TestName
    - ','
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6597
      start: 6590
    functionDepth: 0
    functionLinenumber: 6590
    functionLinenumberEnd: 6597
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( TestNameClass,
      TestName, ClassName, Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6601
      start: 6599
    functionDepth: 0
    functionLinenumber: 6599
    functionLinenumberEnd: 6601
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6604
      start: 6602
    functionDepth: 0
    functionLinenumber: 6602
    functionLinenumberEnd: 6604
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6609
      start: 6607
    functionDepth: 0
    functionLinenumber: 6607
    functionLinenumberEnd: 6609
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6612
      start: 6610
    functionDepth: 0
    functionLinenumber: 6610
    functionLinenumberEnd: 6612
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6617
      start: 6615
    functionDepth: 0
    functionLinenumber: 6615
    functionLinenumberEnd: 6617
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName,
      Name, Tags,... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6620
      start: 6618
    functionDepth: 0
    functionLinenumber: 6618
    functionLinenumberEnd: 6620
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName,
      Name, Tags,... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6625
      start: 6623
    functionDepth: 0
    functionLinenumber: 6623
    functionLinenumberEnd: 6625
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6628
      start: 6626
    functionDepth: 0
    functionLinenumber: 6626
    functionLinenumberEnd: 6628
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TestName
    - ','
    - TestFunc
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6650
      start: 6633
    functionDepth: 0
    functionLinenumber: 6633
    functionLinenumberEnd: 6650
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_2(TestName, TestFunc, Name, Tags,
      Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5087
      start: 5072
    functionDepth: 0
    functionLinenumber: 5072
    functionLinenumberEnd: 5087
    functionName: CATCH_DEFINE_COMPARABLE_TRAIT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DEFINE_COMPARABLE_TRAIT( id, op )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: formatReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5325,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5326,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5324
    functionDepth: 1
    functionLinenumber: 5324
    functionLinenumberEnd: 5327
    functionName: Catch::Detail::BinaryExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - formatReconstructedExpression
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream &os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - comparisonResult
    - lhs
    - op
    - rhs
    argTypes:
    - bool
    - LhsT
    - StringRef
    - RhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5335
      start: 5330
    functionDepth: 0
    functionLinenumber: 5330
    functionLinenumberEnd: 5335
    functionName: Catch::Detail::BinaryExpr::BinaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinaryExpr( bool comparisonResult, LhsT lhs, StringRef op, RhsT
      rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5338
    functionDepth: 0
    functionLinenumber: 5338
    functionLinenumberEnd: 5342
    functionName: operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator && ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5349
      start: 5345
    functionDepth: 0
    functionLinenumber: 5345
    functionLinenumberEnd: 5349
    functionName: operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator || ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5356
      start: 5352
    functionDepth: 0
    functionLinenumber: 5352
    functionLinenumberEnd: 5356
    functionName: operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator == ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5363
      start: 5359
    functionDepth: 0
    functionLinenumber: 5359
    functionLinenumberEnd: 5363
    functionName: operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator != ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5370
    functionName: operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator > ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5373
    functionDepth: 0
    functionLinenumber: 5373
    functionLinenumberEnd: 5377
    functionName: operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator < ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5384
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5384
    functionName: operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator >= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5391
      start: 5387
    functionDepth: 0
    functionLinenumber: 5387
    functionLinenumberEnd: 5391
    functionName: operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator <= ( T ) const -> BinaryExpr<LhsT, RhsT const&> const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5400
      start: 5398
    functionDepth: 1
    functionLinenumber: 5398
    functionLinenumberEnd: 5400
    functionName: Catch::Detail::UnaryExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream &os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - LhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5403
    functionDepth: 0
    functionLinenumber: 5403
    functionLinenumberEnd: 5406
    functionName: Catch::Detail::UnaryExpr::UnaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: void
    signature: void UnaryExpr( LhsT lhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - LhsT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5414
      start: 5414
    functionDepth: 0
    functionLinenumber: 5414
    functionLinenumberEnd: 5414
    functionName: Catch::Detail::ExprLhs::ExprLhs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExprLhs( LhsT lhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5442
      start: 5416
    functionDepth: 0
    functionLinenumber: 5416
    functionLinenumberEnd: 5442
    functionName: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR( id, op )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5446,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5448,1
    - Dst: if
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5460,1
    - Dst: throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5460,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5461,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5465,1
    - Dst: op
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5472,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5516,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5517,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5522,1
    - Dst: op
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5524,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5529,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5539,1
    - Dst: CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5541,1
    - Dst: warning
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5582,1
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: CATCH_INTERNAL_IGNORE_BUT_WARN
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5689,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5692,1
    - Dst: Catch::Decomposer
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5694,1
    - Dst: static_cast<const bool&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5698,1
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    - Dst: INTERNAL_CATCH_UNIQUE_NAME
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6047,1
    - Dst: reg_test
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6652,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6652,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6653
      start: 5443
    functionDepth: 1
    functionLinenumber: 5443
    functionLinenumberEnd: 6653
    functionName: BinaryExpr<LhsT, RhsT>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    - warning
    - static_cast<const bool&>
    - CATCH_INTERNAL_DEFINE_EXPRESSION_EQUALITY_OPERATOR
    - op
    - reg_test
    - StringRef
    - makeUnaryExpr
    - std::string
    - handleExpr
    - CATCH_INTERNAL_DEFINE_EXPRESSION_COMPARISON_OPERATOR
    - handleIncomplete
    - Detail::make_unique<TestInvokerAsMethod<C>>
    - CATCH_INTERNAL_IGNORE_BUT_WARN
    - CATCH_INTERNAL_DEFINE_EXPRESSION_OPERATOR
    - INTERNAL_CATCH_UNIQUE_NAME
    - Catch::Decomposer
    - if
    - throw_test_failure_exception
    linkageType: ''
    returnType: "Detail::disjunction<std::is_same<RhsT, int>,                   \\\n
      \                                   std::is_same<RhsT, long>>>::value"
    signature: "Detail::disjunction<std::is_same<RhsT, int>,                   \\\n
      \                                   std::is_same<RhsT, long>>>::value BinaryExpr<LhsT,
      RhsT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5550
      start: 5546
    functionDepth: 0
    functionLinenumber: 5546
    functionLinenumberEnd: 5550
    functionName: operator && ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator && ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5553
    functionDepth: 0
    functionLinenumber: 5553
    functionLinenumberEnd: 5557
    functionName: operator || ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator || ( ExprLhs &&, RhsT && ) -> BinaryExpr<LhsT, RhsT const&>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5561
      start: 5559
    functionDepth: 0
    functionLinenumber: 5559
    functionLinenumberEnd: 5561
    functionName: Catch::Detail::ExprLhs::makeUnaryExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto makeUnaryExpr() const -> UnaryExpr<LhsT>
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 0
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: ~AssertionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - handleIncomplete
    linkageType: ''
    returnType: void
    signature: void ~AssertionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ExprLhs<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5624
    functionName: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    - makeUnaryExpr
    linkageType: ''
    returnType: void
    signature: void handleExpr( ExprLhs<T> const& expr )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handleIncomplete
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 0
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: ~AssertionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - handleIncomplete
    linkageType: ''
    returnType: void
    signature: void ~AssertionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    - Dst: makeUnaryExpr
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:5623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ExprLhs<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5622
    functionDepth: 1
    functionLinenumber: 5622
    functionLinenumberEnd: 5624
    functionName: Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Detail::ExprLhs::Catch::AssertionHandler::handleExpr
    - makeUnaryExpr
    linkageType: ''
    returnType: void
    signature: void handleExpr( ExprLhs<T> const& expr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5654
      start: 5653
    functionDepth: 0
    functionLinenumber: 5653
    functionLinenumberEnd: 5654
    functionName: CATCH_INTERNAL_STRINGIFY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_STRINGIFY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5656
      start: 5655
    functionDepth: 0
    functionLinenumber: 5655
    functionLinenumberEnd: 5656
    functionName: CATCH_INTERNAL_STRINGIFY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_STRINGIFY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handler
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5679
    functionDepth: 0
    functionLinenumber: 5679
    functionLinenumberEnd: 5680
    functionName: INTERNAL_CATCH_CATCH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_CATCH( handler )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handler
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5683
    functionDepth: 0
    functionLinenumber: 5683
    functionLinenumberEnd: 5684
    functionName: INTERNAL_CATCH_REACT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REACT( handler )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5688
      start: 5686
    functionDepth: 0
    functionLinenumber: 5686
    functionLinenumberEnd: 5688
    functionName: INTERNAL_CATCH_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEST( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5705
      start: 5702
    functionDepth: 0
    functionLinenumber: 5702
    functionLinenumberEnd: 5705
    functionName: INTERNAL_CATCH_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_IF( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5710
      start: 5707
    functionDepth: 0
    functionLinenumber: 5707
    functionLinenumberEnd: 5710
    functionName: INTERNAL_CATCH_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_ELSE( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5727
      start: 5712
    functionDepth: 0
    functionLinenumber: 5712
    functionLinenumberEnd: 5727
    functionName: INTERNAL_CATCH_NO_THROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NO_THROW( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5748
      start: 5729
    functionDepth: 0
    functionLinenumber: 5729
    functionLinenumberEnd: 5748
    functionName: INTERNAL_CATCH_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS( macroName, resultDisposition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - exceptionType
    - ','
    - resultDisposition
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5772
      start: 5750
    functionDepth: 0
    functionLinenumber: 5750
    functionLinenumberEnd: 5772
    functionName: INTERNAL_CATCH_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_AS( macroName, exceptionType, resultDisposition,
      expr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - resultDisposition
    - ','
    - matcher
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5796
      start: 5777
    functionDepth: 0
    functionLinenumber: 5777
    functionLinenumberEnd: 5796
    functionName: INTERNAL_CATCH_THROWS_STR_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_STR_MATCHES( macroName, resultDisposition, matcher,
      ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5887
      start: 5880
    functionDepth: 0
    functionLinenumber: 5880
    functionLinenumberEnd: 5887
    functionName: INTERNAL_CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5898
      start: 5888
    functionDepth: 0
    functionLinenumber: 5888
    functionLinenumberEnd: 5898
    functionName: INTERNAL_CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5926
      start: 5916
    functionDepth: 0
    functionLinenumber: 5916
    functionLinenumberEnd: 5926
    functionName: INTERNAL_CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5937
      start: 5927
    functionDepth: 0
    functionLinenumber: 5927
    functionLinenumberEnd: 5937
    functionName: INTERNAL_CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5969
      start: 5968
    functionDepth: 0
    functionLinenumber: 5968
    functionLinenumberEnd: 5969
    functionName: INTERNAL_CATCH_EXPAND1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND1( param )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5970
      start: 5969
    functionDepth: 0
    functionLinenumber: 5969
    functionLinenumberEnd: 5970
    functionName: INTERNAL_CATCH_EXPAND2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND2( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5970
    functionDepth: 0
    functionLinenumber: 5970
    functionLinenumberEnd: 5971
    functionName: INTERNAL_CATCH_DEF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5975
      start: 5973
    functionDepth: 0
    functionLinenumber: 5973
    functionLinenumberEnd: 5975
    functionName: INTERNAL_CATCH_REMOVE_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5993
    functionDepth: 0
    functionLinenumber: 5993
    functionLinenumberEnd: 5993
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::TestInvokerAsMethod
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5995
    functionDepth: 0
    functionLinenumber: 5995
    functionLinenumberEnd: 5998
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6006
    functionName: Catch::Detail::ExprLhs::Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsMethod<C>>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void (C::*testAsMethod)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6009
    functionDepth: 0
    functionLinenumber: 6009
    functionLinenumberEnd: 6011
    functionName: Catch::Detail::ExprLhs::Catch::NameAndTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: "void NameAndTags( StringRef name_ = StringRef(),\n                           StringRef
      tags_ = StringRef() ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5993
    functionDepth: 0
    functionLinenumber: 5993
    functionLinenumberEnd: 5993
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::TestInvokerAsMethod
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5995
    functionDepth: 0
    functionLinenumber: 5995
    functionLinenumberEnd: 5998
    functionName: Catch::Detail::ExprLhs::Catch::TestInvokerAsMethod::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsMethod<C>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6006
    functionName: Catch::Detail::ExprLhs::Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsMethod<C>>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void (C::*testAsMethod)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6009,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6009
    functionDepth: 0
    functionLinenumber: 6009
    functionLinenumberEnd: 6011
    functionName: Catch::Detail::ExprLhs::Catch::NameAndTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: "void NameAndTags( StringRef name_ = StringRef(),\n                           StringRef
      tags_ = StringRef() ) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 6023
    functionDepth: 0
    functionLinenumber: 6023
    functionLinenumberEnd: 6025
    functionName: INTERNAL_CATCH_TESTCASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE_NO_REGISTRATION( TestName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6032
      start: 6025
    functionDepth: 0
    functionLinenumber: 6025
    functionLinenumberEnd: 6032
    functionName: INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION( TestName, ClassName,
      ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6038
    functionDepth: 0
    functionLinenumber: 6038
    functionLinenumberEnd: 6043
    functionName: INTERNAL_CATCH_TESTCASE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE2( TestName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fname
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6078
      start: 6068
    functionDepth: 0
    functionLinenumber: 6068
    functionLinenumberEnd: 6078
    functionName: INTERNAL_CATCH_TESTCASE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE2( fname, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6080
      start: 6078
    functionDepth: 0
    functionLinenumber: 6078
    functionLinenumberEnd: 6080
    functionName: INTERNAL_CATCH_TESTCASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TESTCASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6103
      start: 6101
    functionDepth: 0
    functionLinenumber: 6101
    functionLinenumberEnd: 6103
    functionName: INTERNAL_CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - QualifiedMethod
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6116
      start: 6106
    functionDepth: 0
    functionLinenumber: 6106
    functionLinenumberEnd: 6116
    functionName: INTERNAL_CATCH_METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 6141
    functionDepth: 0
    functionLinenumber: 6141
    functionLinenumberEnd: 6142
    functionName: CATCH_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6143
      start: 6142
    functionDepth: 0
    functionLinenumber: 6142
    functionLinenumberEnd: 6143
    functionName: CATCH_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6145
      start: 6144
    functionDepth: 0
    functionLinenumber: 6144
    functionLinenumberEnd: 6145
    functionName: CATCH_REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6146
      start: 6145
    functionDepth: 0
    functionLinenumber: 6145
    functionLinenumberEnd: 6146
    functionName: CATCH_REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6146
    functionDepth: 0
    functionLinenumber: 6146
    functionLinenumberEnd: 6147
    functionName: CATCH_REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6149
      start: 6148
    functionDepth: 0
    functionLinenumber: 6148
    functionLinenumberEnd: 6149
    functionName: CATCH_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6150
      start: 6149
    functionDepth: 0
    functionLinenumber: 6149
    functionLinenumberEnd: 6150
    functionName: CATCH_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6151
      start: 6150
    functionDepth: 0
    functionLinenumber: 6150
    functionLinenumberEnd: 6151
    functionName: CATCH_CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6152
      start: 6151
    functionDepth: 0
    functionLinenumber: 6151
    functionLinenumberEnd: 6152
    functionName: CATCH_CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6152
    functionDepth: 0
    functionLinenumber: 6152
    functionLinenumberEnd: 6153
    functionName: CATCH_CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6155
      start: 6154
    functionDepth: 0
    functionLinenumber: 6154
    functionLinenumberEnd: 6155
    functionName: CATCH_CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6156
      start: 6155
    functionDepth: 0
    functionLinenumber: 6155
    functionLinenumberEnd: 6156
    functionName: CATCH_CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6157
      start: 6156
    functionDepth: 0
    functionLinenumber: 6156
    functionLinenumberEnd: 6157
    functionName: CATCH_CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6159
      start: 6158
    functionDepth: 0
    functionLinenumber: 6158
    functionLinenumberEnd: 6159
    functionName: CATCH_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6160
      start: 6159
    functionDepth: 0
    functionLinenumber: 6159
    functionLinenumberEnd: 6160
    functionName: CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6161
      start: 6160
    functionDepth: 0
    functionLinenumber: 6160
    functionLinenumberEnd: 6161
    functionName: CATCH_METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_METHOD_AS_TEST_CASE( method, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6162
      start: 6161
    functionDepth: 0
    functionLinenumber: 6161
    functionLinenumberEnd: 6162
    functionName: CATCH_REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6163
      start: 6162
    functionDepth: 0
    functionLinenumber: 6162
    functionLinenumberEnd: 6163
    functionName: CATCH_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6164
      start: 6163
    functionDepth: 0
    functionLinenumber: 6163
    functionLinenumberEnd: 6164
    functionName: CATCH_DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6165
      start: 6164
    functionDepth: 0
    functionLinenumber: 6164
    functionLinenumberEnd: 6165
    functionName: CATCH_FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6166
      start: 6165
    functionDepth: 0
    functionLinenumber: 6165
    functionLinenumberEnd: 6166
    functionName: CATCH_FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6167
      start: 6166
    functionDepth: 0
    functionLinenumber: 6166
    functionLinenumberEnd: 6167
    functionName: CATCH_SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6168
      start: 6167
    functionDepth: 0
    functionLinenumber: 6167
    functionLinenumberEnd: 6168
    functionName: CATCH_SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6172
      start: 6171
    functionDepth: 0
    functionLinenumber: 6171
    functionLinenumberEnd: 6172
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6173
      start: 6172
    functionDepth: 0
    functionLinenumber: 6172
    functionLinenumberEnd: 6173
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6174
      start: 6173
    functionDepth: 0
    functionLinenumber: 6173
    functionLinenumberEnd: 6174
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6174
    functionDepth: 0
    functionLinenumber: 6174
    functionLinenumberEnd: 6175
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6177
      start: 6176
    functionDepth: 0
    functionLinenumber: 6176
    functionLinenumberEnd: 6177
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6178
      start: 6177
    functionDepth: 0
    functionLinenumber: 6177
    functionLinenumberEnd: 6178
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6179
      start: 6178
    functionDepth: 0
    functionLinenumber: 6178
    functionLinenumberEnd: 6179
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6180
      start: 6179
    functionDepth: 0
    functionLinenumber: 6179
    functionLinenumberEnd: 6180
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6184
    functionDepth: 0
    functionLinenumber: 6184
    functionLinenumberEnd: 6185
    functionName: CATCH_SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6186
      start: 6185
    functionDepth: 0
    functionLinenumber: 6185
    functionLinenumberEnd: 6186
    functionName: CATCH_SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6187
      start: 6186
    functionDepth: 0
    functionLinenumber: 6186
    functionLinenumberEnd: 6187
    functionName: CATCH_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6187
    functionDepth: 0
    functionLinenumber: 6187
    functionLinenumberEnd: 6188
    functionName: CATCH_AND_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6189
      start: 6188
    functionDepth: 0
    functionLinenumber: 6188
    functionLinenumberEnd: 6189
    functionName: CATCH_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6190
      start: 6189
    functionDepth: 0
    functionLinenumber: 6189
    functionLinenumberEnd: 6190
    functionName: CATCH_AND_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6191
      start: 6190
    functionDepth: 0
    functionLinenumber: 6190
    functionLinenumberEnd: 6191
    functionName: CATCH_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6192
      start: 6191
    functionDepth: 0
    functionLinenumber: 6191
    functionLinenumberEnd: 6192
    functionName: CATCH_AND_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6196
      start: 6195
    functionDepth: 0
    functionLinenumber: 6195
    functionLinenumberEnd: 6196
    functionName: CATCH_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6197
      start: 6196
    functionDepth: 0
    functionLinenumber: 6196
    functionLinenumberEnd: 6197
    functionName: CATCH_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6199
      start: 6198
    functionDepth: 0
    functionLinenumber: 6198
    functionLinenumberEnd: 6199
    functionName: CATCH_REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6199
    functionDepth: 0
    functionLinenumber: 6199
    functionLinenumberEnd: 6200
    functionName: CATCH_REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6201
      start: 6200
    functionDepth: 0
    functionLinenumber: 6200
    functionLinenumberEnd: 6201
    functionName: CATCH_REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6203
      start: 6202
    functionDepth: 0
    functionLinenumber: 6202
    functionLinenumberEnd: 6203
    functionName: CATCH_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6204
      start: 6203
    functionDepth: 0
    functionLinenumber: 6203
    functionLinenumberEnd: 6204
    functionName: CATCH_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6205
      start: 6204
    functionDepth: 0
    functionLinenumber: 6204
    functionLinenumberEnd: 6205
    functionName: CATCH_CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6206
      start: 6205
    functionDepth: 0
    functionLinenumber: 6205
    functionLinenumberEnd: 6206
    functionName: CATCH_CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6207
      start: 6206
    functionDepth: 0
    functionLinenumber: 6206
    functionLinenumberEnd: 6207
    functionName: CATCH_CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6209
      start: 6208
    functionDepth: 0
    functionLinenumber: 6208
    functionLinenumberEnd: 6209
    functionName: CATCH_CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6210
      start: 6209
    functionDepth: 0
    functionLinenumber: 6209
    functionLinenumberEnd: 6210
    functionName: CATCH_CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6211
      start: 6210
    functionDepth: 0
    functionLinenumber: 6210
    functionLinenumberEnd: 6211
    functionName: CATCH_CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6213
      start: 6212
    functionDepth: 0
    functionLinenumber: 6212
    functionLinenumberEnd: 6213
    functionName: CATCH_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6214
      start: 6213
    functionDepth: 0
    functionLinenumber: 6213
    functionLinenumberEnd: 6214
    functionName: CATCH_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6216
      start: 6215
    functionDepth: 0
    functionLinenumber: 6215
    functionLinenumberEnd: 6216
    functionName: CATCH_REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6219
      start: 6218
    functionDepth: 0
    functionLinenumber: 6218
    functionLinenumberEnd: 6219
    functionName: CATCH_FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6220
      start: 6219
    functionDepth: 0
    functionLinenumber: 6219
    functionLinenumberEnd: 6220
    functionName: CATCH_FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6221
      start: 6220
    functionDepth: 0
    functionLinenumber: 6220
    functionLinenumberEnd: 6221
    functionName: CATCH_SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6222
      start: 6221
    functionDepth: 0
    functionLinenumber: 6221
    functionLinenumberEnd: 6222
    functionName: CATCH_SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6224
      start: 6223
    functionDepth: 0
    functionLinenumber: 6223
    functionLinenumberEnd: 6224
    functionName: CATCH_STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6225
      start: 6224
    functionDepth: 0
    functionLinenumber: 6224
    functionLinenumberEnd: 6225
    functionName: CATCH_STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6226
      start: 6225
    functionDepth: 0
    functionLinenumber: 6225
    functionLinenumberEnd: 6226
    functionName: CATCH_STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6227
      start: 6226
    functionDepth: 0
    functionLinenumber: 6226
    functionLinenumberEnd: 6227
    functionName: CATCH_STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6230
      start: 6229
    functionDepth: 0
    functionLinenumber: 6229
    functionLinenumberEnd: 6230
    functionName: CATCH_SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6231
      start: 6230
    functionDepth: 0
    functionLinenumber: 6230
    functionLinenumberEnd: 6231
    functionName: CATCH_SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6241
      start: 6240
    functionDepth: 0
    functionLinenumber: 6240
    functionLinenumberEnd: 6241
    functionName: REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6242
      start: 6241
    functionDepth: 0
    functionLinenumber: 6241
    functionLinenumberEnd: 6242
    functionName: REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6244
      start: 6243
    functionDepth: 0
    functionLinenumber: 6243
    functionLinenumberEnd: 6244
    functionName: REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6244
    functionDepth: 0
    functionLinenumber: 6244
    functionLinenumberEnd: 6245
    functionName: REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6245
    functionDepth: 0
    functionLinenumber: 6245
    functionLinenumberEnd: 6246
    functionName: REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6248
      start: 6247
    functionDepth: 0
    functionLinenumber: 6247
    functionLinenumberEnd: 6248
    functionName: CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 944
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6249
      start: 6248
    functionDepth: 0
    functionLinenumber: 6248
    functionLinenumberEnd: 6249
    functionName: CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6250
      start: 6249
    functionDepth: 0
    functionLinenumber: 6249
    functionLinenumberEnd: 6250
    functionName: CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6251
      start: 6250
    functionDepth: 0
    functionLinenumber: 6250
    functionLinenumberEnd: 6251
    functionName: CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6252
      start: 6251
    functionDepth: 0
    functionLinenumber: 6251
    functionLinenumberEnd: 6252
    functionName: CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6254
      start: 6253
    functionDepth: 0
    functionLinenumber: 6253
    functionLinenumberEnd: 6254
    functionName: CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6255
      start: 6254
    functionDepth: 0
    functionLinenumber: 6254
    functionLinenumberEnd: 6255
    functionName: CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6256
      start: 6255
    functionDepth: 0
    functionLinenumber: 6255
    functionLinenumberEnd: 6256
    functionName: CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6258
      start: 6257
    functionDepth: 0
    functionLinenumber: 6257
    functionLinenumberEnd: 6258
    functionName: TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6259
      start: 6258
    functionDepth: 0
    functionLinenumber: 6258
    functionLinenumberEnd: 6259
    functionName: TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6260
      start: 6259
    functionDepth: 0
    functionLinenumber: 6259
    functionLinenumberEnd: 6260
    functionName: METHOD_AS_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METHOD_AS_TEST_CASE( method, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6261
      start: 6260
    functionDepth: 0
    functionLinenumber: 6260
    functionLinenumberEnd: 6261
    functionName: REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6262
      start: 6261
    functionDepth: 0
    functionLinenumber: 6261
    functionLinenumberEnd: 6262
    functionName: SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6263
      start: 6262
    functionDepth: 0
    functionLinenumber: 6262
    functionLinenumberEnd: 6263
    functionName: DYNAMIC_SECTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DYNAMIC_SECTION( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6264
      start: 6263
    functionDepth: 0
    functionLinenumber: 6263
    functionLinenumberEnd: 6264
    functionName: FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6265
      start: 6264
    functionDepth: 0
    functionLinenumber: 6264
    functionLinenumberEnd: 6265
    functionName: FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6266
      start: 6265
    functionDepth: 0
    functionLinenumber: 6265
    functionLinenumberEnd: 6266
    functionName: SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6267
      start: 6266
    functionDepth: 0
    functionLinenumber: 6266
    functionLinenumberEnd: 6267
    functionName: SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6271
      start: 6270
    functionDepth: 0
    functionLinenumber: 6270
    functionLinenumberEnd: 6271
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6272
      start: 6271
    functionDepth: 0
    functionLinenumber: 6271
    functionLinenumberEnd: 6272
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6273
      start: 6272
    functionDepth: 0
    functionLinenumber: 6272
    functionLinenumberEnd: 6273
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6274
      start: 6273
    functionDepth: 0
    functionLinenumber: 6273
    functionLinenumberEnd: 6274
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6276
      start: 6275
    functionDepth: 0
    functionLinenumber: 6275
    functionLinenumberEnd: 6276
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6277
      start: 6276
    functionDepth: 0
    functionLinenumber: 6276
    functionLinenumberEnd: 6277
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6278
      start: 6277
    functionDepth: 0
    functionLinenumber: 6277
    functionLinenumberEnd: 6278
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6279
      start: 6278
    functionDepth: 0
    functionLinenumber: 6278
    functionLinenumberEnd: 6279
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6283
      start: 6282
    functionDepth: 0
    functionLinenumber: 6282
    functionLinenumberEnd: 6283
    functionName: SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6284
      start: 6283
    functionDepth: 0
    functionLinenumber: 6283
    functionLinenumberEnd: 6284
    functionName: SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6284
    functionDepth: 0
    functionLinenumber: 6284
    functionLinenumberEnd: 6285
    functionName: GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6286
      start: 6285
    functionDepth: 0
    functionLinenumber: 6285
    functionLinenumberEnd: 6286
    functionName: AND_GIVEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_GIVEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6287
      start: 6286
    functionDepth: 0
    functionLinenumber: 6286
    functionLinenumberEnd: 6287
    functionName: WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6288
      start: 6287
    functionDepth: 0
    functionLinenumber: 6287
    functionLinenumberEnd: 6288
    functionName: AND_WHEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_WHEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6289
      start: 6288
    functionDepth: 0
    functionLinenumber: 6288
    functionLinenumberEnd: 6289
    functionName: THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6290
      start: 6289
    functionDepth: 0
    functionLinenumber: 6289
    functionLinenumberEnd: 6290
    functionName: AND_THEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AND_THEN( desc )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6294
      start: 6293
    functionDepth: 0
    functionLinenumber: 6293
    functionLinenumberEnd: 6294
    functionName: REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6295
      start: 6294
    functionDepth: 0
    functionLinenumber: 6294
    functionLinenumberEnd: 6295
    functionName: REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6297
      start: 6296
    functionDepth: 0
    functionLinenumber: 6296
    functionLinenumberEnd: 6297
    functionName: REQUIRE_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6298
      start: 6297
    functionDepth: 0
    functionLinenumber: 6297
    functionLinenumberEnd: 6298
    functionName: REQUIRE_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6299
      start: 6298
    functionDepth: 0
    functionLinenumber: 6298
    functionLinenumberEnd: 6299
    functionName: REQUIRE_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6301
      start: 6300
    functionDepth: 0
    functionLinenumber: 6300
    functionLinenumberEnd: 6301
    functionName: CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 944
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6302
      start: 6301
    functionDepth: 0
    functionLinenumber: 6301
    functionLinenumberEnd: 6302
    functionName: CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6303
      start: 6302
    functionDepth: 0
    functionLinenumber: 6302
    functionLinenumberEnd: 6303
    functionName: CHECKED_IF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_IF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6304
      start: 6303
    functionDepth: 0
    functionLinenumber: 6303
    functionLinenumberEnd: 6304
    functionName: CHECKED_ELSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKED_ELSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6305
      start: 6304
    functionDepth: 0
    functionLinenumber: 6304
    functionLinenumberEnd: 6305
    functionName: CHECK_NOFAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOFAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6307
      start: 6306
    functionDepth: 0
    functionLinenumber: 6306
    functionLinenumberEnd: 6307
    functionName: CHECK_THROWS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6308
      start: 6307
    functionDepth: 0
    functionLinenumber: 6307
    functionLinenumberEnd: 6308
    functionName: CHECK_THROWS_AS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_AS( expr, exceptionType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6309
      start: 6308
    functionDepth: 0
    functionLinenumber: 6308
    functionLinenumberEnd: 6309
    functionName: CHECK_NOTHROW
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOTHROW( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6311
      start: 6310
    functionDepth: 0
    functionLinenumber: 6310
    functionLinenumberEnd: 6311
    functionName: TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6312
      start: 6311
    functionDepth: 0
    functionLinenumber: 6311
    functionLinenumberEnd: 6312
    functionName: TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6314
      start: 6313
    functionDepth: 0
    functionLinenumber: 6313
    functionLinenumberEnd: 6314
    functionName: REGISTER_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEST_CASE( Function, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6317
      start: 6316
    functionDepth: 0
    functionLinenumber: 6316
    functionLinenumberEnd: 6317
    functionName: FAIL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6318
      start: 6317
    functionDepth: 0
    functionLinenumber: 6317
    functionLinenumberEnd: 6318
    functionName: FAIL_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6319
      start: 6318
    functionDepth: 0
    functionLinenumber: 6318
    functionLinenumberEnd: 6319
    functionName: SUCCEED
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUCCEED( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6320
      start: 6319
    functionDepth: 0
    functionLinenumber: 6319
    functionLinenumberEnd: 6320
    functionName: SKIP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6322
      start: 6321
    functionDepth: 0
    functionLinenumber: 6321
    functionLinenumberEnd: 6322
    functionName: STATIC_REQUIRE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6323
      start: 6322
    functionDepth: 0
    functionLinenumber: 6322
    functionLinenumberEnd: 6323
    functionName: STATIC_REQUIRE_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_REQUIRE_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6324
      start: 6323
    functionDepth: 0
    functionLinenumber: 6323
    functionLinenumberEnd: 6324
    functionName: STATIC_CHECK
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6325
      start: 6324
    functionDepth: 0
    functionLinenumber: 6324
    functionLinenumberEnd: 6325
    functionName: STATIC_CHECK_FALSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_CHECK_FALSE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6328
      start: 6327
    functionDepth: 0
    functionLinenumber: 6327
    functionLinenumberEnd: 6328
    functionName: SCENARIO
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6329
      start: 6328
    functionDepth: 0
    functionLinenumber: 6328
    functionLinenumberEnd: 6329
    functionName: SCENARIO_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCENARIO_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6360
      start: 6359
    functionDepth: 0
    functionLinenumber: 6359
    functionLinenumberEnd: 6360
    functionName: CATCH_RECURSION_LEVEL0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL0(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6361
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6361
    functionName: CATCH_RECURSION_LEVEL1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6362
      start: 6361
    functionDepth: 0
    functionLinenumber: 6361
    functionLinenumberEnd: 6362
    functionName: CATCH_RECURSION_LEVEL2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6362
    functionDepth: 0
    functionLinenumber: 6362
    functionLinenumberEnd: 6363
    functionName: CATCH_RECURSION_LEVEL3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6364
      start: 6363
    functionDepth: 0
    functionLinenumber: 6363
    functionLinenumberEnd: 6364
    functionName: CATCH_RECURSION_LEVEL4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6365
      start: 6364
    functionDepth: 0
    functionLinenumber: 6364
    functionLinenumberEnd: 6365
    functionName: CATCH_RECURSION_LEVEL5
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL5(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6367
    functionDepth: 0
    functionLinenumber: 6367
    functionLinenumberEnd: 6368
    functionName: INTERNAL_CATCH_EXPAND_VARGS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_EXPAND_VARGS(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6370
      start: 6369
    functionDepth: 0
    functionLinenumber: 6369
    functionLinenumberEnd: 6370
    functionName: CATCH_RECURSION_LEVEL6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSION_LEVEL6(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6371
      start: 6370
    functionDepth: 0
    functionLinenumber: 6370
    functionLinenumberEnd: 6371
    functionName: CATCH_RECURSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6373
      start: 6372
    functionDepth: 0
    functionLinenumber: 6372
    functionLinenumberEnd: 6373
    functionName: CATCH_RECURSE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RECURSE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6380
      start: 6379
    functionDepth: 0
    functionLinenumber: 6379
    functionLinenumberEnd: 6380
    functionName: CATCH_DEFER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_DEFER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6382
      start: 6381
    functionDepth: 0
    functionLinenumber: 6381
    functionLinenumberEnd: 6382
    functionName: CATCH_REC_GET_END2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6383
      start: 6382
    functionDepth: 0
    functionLinenumber: 6382
    functionLinenumberEnd: 6383
    functionName: CATCH_REC_GET_END1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6384
      start: 6383
    functionDepth: 0
    functionLinenumber: 6383
    functionLinenumberEnd: 6384
    functionName: CATCH_REC_GET_END
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_GET_END(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - test
    - ','
    - next
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6385
      start: 6384
    functionDepth: 0
    functionLinenumber: 6384
    functionLinenumberEnd: 6385
    functionName: CATCH_REC_NEXT0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT0(test, next, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6385
    functionDepth: 0
    functionLinenumber: 6385
    functionLinenumberEnd: 6386
    functionName: CATCH_REC_NEXT1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT1(test, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6387
      start: 6386
    functionDepth: 0
    functionLinenumber: 6386
    functionLinenumberEnd: 6387
    functionName: CATCH_REC_NEXT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_NEXT(test, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6389
      start: 6388
    functionDepth: 0
    functionLinenumber: 6388
    functionLinenumberEnd: 6389
    functionName: CATCH_REC_LIST0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST0(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6390
      start: 6389
    functionDepth: 0
    functionLinenumber: 6389
    functionLinenumberEnd: 6390
    functionName: CATCH_REC_LIST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST1(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6391
      start: 6390
    functionDepth: 0
    functionLinenumber: 6390
    functionLinenumberEnd: 6391
    functionName: CATCH_REC_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST2(f, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6393
      start: 6392
    functionDepth: 0
    functionLinenumber: 6392
    functionLinenumberEnd: 6393
    functionName: CATCH_REC_LIST0_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST0_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6393
    functionDepth: 0
    functionLinenumber: 6393
    functionLinenumberEnd: 6394
    functionName: CATCH_REC_LIST1_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST1_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - x
    - ','
    - peek
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6395
      start: 6394
    functionDepth: 0
    functionLinenumber: 6394
    functionLinenumberEnd: 6395
    functionName: CATCH_REC_LIST2_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST2_UD(f, userdata, x, peek, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - userdata
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6400
      start: 6399
    functionDepth: 0
    functionLinenumber: 6399
    functionLinenumberEnd: 6400
    functionName: CATCH_REC_LIST_UD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST_UD(f, userdata, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6402
      start: 6401
    functionDepth: 0
    functionLinenumber: 6401
    functionLinenumberEnd: 6402
    functionName: CATCH_REC_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REC_LIST(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6404
      start: 6403
    functionDepth: 0
    functionLinenumber: 6403
    functionLinenumberEnd: 6404
    functionName: INTERNAL_CATCH_STRINGIZE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6406
      start: 6405
    functionDepth: 0
    functionLinenumber: 6405
    functionLinenumberEnd: 6406
    functionName: INTERNAL_CATCH_STRINGIZE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6407
      start: 6406
    functionDepth: 0
    functionLinenumber: 6406
    functionLinenumberEnd: 6407
    functionName: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6410
      start: 6409
    functionDepth: 0
    functionLinenumber: 6409
    functionLinenumberEnd: 6410
    functionName: INTERNAL_CATCH_STRINGIZE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6411
      start: 6410
    functionDepth: 0
    functionLinenumber: 6410
    functionLinenumberEnd: 6411
    functionName: INTERNAL_CATCH_STRINGIZE3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6412
      start: 6411
    functionDepth: 0
    functionLinenumber: 6411
    functionLinenumberEnd: 6412
    functionName: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6415
      start: 6414
    functionDepth: 0
    functionLinenumber: 6414
    functionLinenumberEnd: 6415
    functionName: INTERNAL_CATCH_MAKE_NAMESPACE2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_NAMESPACE2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6416
      start: 6415
    functionDepth: 0
    functionLinenumber: 6415
    functionLinenumberEnd: 6416
    functionName: INTERNAL_CATCH_MAKE_NAMESPACE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_NAMESPACE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6419
      start: 6418
    functionDepth: 0
    functionLinenumber: 6418
    functionLinenumberEnd: 6419
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6420
      start: 6419
    functionDepth: 0
    functionLinenumber: 6419
    functionLinenumberEnd: 6420
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6422
      start: 6421
    functionDepth: 0
    functionLinenumber: 6421
    functionLinenumberEnd: 6422
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6423
      start: 6422
    functionDepth: 0
    functionLinenumber: 6422
    functionLinenumberEnd: 6423
    functionName: INTERNAL_CATCH_MAKE_TYPE_LIST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LIST(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6427
      start: 6425
    functionDepth: 0
    functionLinenumber: 6425
    functionLinenumberEnd: 6427
    functionName: INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6429
      start: 6428
    functionDepth: 0
    functionLinenumber: 6428
    functionLinenumberEnd: 6429
    functionName: INTERNAL_CATCH_REMOVE_PARENS_1_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _0
    - ','
    - _1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6430
      start: 6429
    functionDepth: 0
    functionLinenumber: 6429
    functionLinenumberEnd: 6430
    functionName: INTERNAL_CATCH_REMOVE_PARENS_2_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6431
      start: 6430
    functionDepth: 0
    functionLinenumber: 6430
    functionLinenumberEnd: 6431
    functionName: INTERNAL_CATCH_REMOVE_PARENS_3_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6432
      start: 6431
    functionDepth: 0
    functionLinenumber: 6431
    functionLinenumberEnd: 6432
    functionName: INTERNAL_CATCH_REMOVE_PARENS_4_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6433
      start: 6432
    functionDepth: 0
    functionLinenumber: 6432
    functionLinenumberEnd: 6433
    functionName: INTERNAL_CATCH_REMOVE_PARENS_5_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6433
    functionDepth: 0
    functionLinenumber: 6433
    functionLinenumberEnd: 6434
    functionName: INTERNAL_CATCH_REMOVE_PARENS_6_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6435
      start: 6434
    functionDepth: 0
    functionLinenumber: 6434
    functionLinenumberEnd: 6435
    functionName: INTERNAL_CATCH_REMOVE_PARENS_7_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6436
      start: 6435
    functionDepth: 0
    functionLinenumber: 6435
    functionLinenumberEnd: 6436
    functionName: INTERNAL_CATCH_REMOVE_PARENS_8_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6437
      start: 6436
    functionDepth: 0
    functionLinenumber: 6436
    functionLinenumberEnd: 6437
    functionName: INTERNAL_CATCH_REMOVE_PARENS_9_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6437
    functionDepth: 0
    functionLinenumber: 6437
    functionLinenumberEnd: 6438
    functionName: INTERNAL_CATCH_REMOVE_PARENS_10_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8, _9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6439
      start: 6438
    functionDepth: 0
    functionLinenumber: 6438
    functionLinenumberEnd: 6439
    functionName: INTERNAL_CATCH_REMOVE_PARENS_11_ARG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7,
      _8, _9, _10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - ','
    - N
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6441
      start: 6440
    functionDepth: 0
    functionLinenumber: 6440
    functionLinenumberEnd: 6441
    functionName: INTERNAL_CATCH_VA_NARGS_IMPL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9,
      _10, N, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6489
      start: 6475
    functionDepth: 0
    functionLinenumber: 6475
    functionLinenumberEnd: 6489
    functionName: INTERNAL_CATCH_NTTP_1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_1(signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6494
      start: 6491
    functionDepth: 0
    functionLinenumber: 6491
    functionLinenumberEnd: 6494
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6497
      start: 6494
    functionDepth: 0
    functionLinenumber: 6494
    functionLinenumberEnd: 6497
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_X(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6502
      start: 6499
    functionDepth: 0
    functionLinenumber: 6499
    functionLinenumberEnd: 6502
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6505
      start: 6502
    functionDepth: 0
    functionLinenumber: 6502
    functionLinenumberEnd: 6505
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_X(TestName, signature,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6512
      start: 6506
    functionDepth: 0
    functionLinenumber: 6506
    functionLinenumberEnd: 6512
    functionName: INTERNAL_CATCH_NTTP_REGISTER0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER0(TestFunc, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestFunc
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6519
      start: 6513
    functionDepth: 0
    functionLinenumber: 6513
    functionLinenumberEnd: 6519
    functionName: INTERNAL_CATCH_NTTP_REGISTER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER(TestFunc, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6526
      start: 6520
    functionDepth: 0
    functionLinenumber: 6520
    functionLinenumberEnd: 6526
    functionName: INTERNAL_CATCH_NTTP_REGISTER_METHOD0
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER_METHOD0(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6533
      start: 6527
    functionDepth: 0
    functionLinenumber: 6527
    functionLinenumberEnd: 6533
    functionName: INTERNAL_CATCH_NTTP_REGISTER_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REGISTER_METHOD(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6540
      start: 6535
    functionDepth: 0
    functionLinenumber: 6535
    functionLinenumberEnd: 6540
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD1(TestName, ClassName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6546
      start: 6541
    functionDepth: 0
    functionLinenumber: 6541
    functionLinenumberEnd: 6546
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD_X(TestName, ClassName, signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6551
      start: 6548
    functionDepth: 0
    functionLinenumber: 6548
    functionLinenumberEnd: 6551
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD1(TestName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6554
      start: 6551
    functionDepth: 0
    functionLinenumber: 6551
    functionLinenumberEnd: 6554
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD_X(TestName, signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6558
      start: 6557
    functionDepth: 0
    functionLinenumber: 6557
    functionLinenumberEnd: 6558
    functionName: INTERNAL_CATCH_NTTP_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6558
    functionDepth: 0
    functionLinenumber: 6558
    functionLinenumberEnd: 6559
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6560
      start: 6559
    functionDepth: 0
    functionLinenumber: 6559
    functionLinenumberEnd: 6560
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6561
      start: 6560
    functionDepth: 0
    functionLinenumber: 6560
    functionLinenumberEnd: 6561
    functionName: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6562
      start: 6561
    functionDepth: 0
    functionLinenumber: 6561
    functionLinenumberEnd: 6562
    functionName: INTERNAL_CATCH_NTTP_REG_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6563
      start: 6562
    functionDepth: 0
    functionLinenumber: 6562
    functionLinenumberEnd: 6563
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6564
      start: 6563
    functionDepth: 0
    functionLinenumber: 6563
    functionLinenumberEnd: 6564
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6565
      start: 6564
    functionDepth: 0
    functionLinenumber: 6564
    functionLinenumberEnd: 6565
    functionName: INTERNAL_CATCH_REMOVE_PARENS_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6568
      start: 6567
    functionDepth: 0
    functionLinenumber: 6567
    functionLinenumberEnd: 6568
    functionName: INTERNAL_CATCH_NTTP_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6569
      start: 6568
    functionDepth: 0
    functionLinenumber: 6568
    functionLinenumberEnd: 6569
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST_METHOD(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TestName
    - ','
    - ClassName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6569
    functionDepth: 0
    functionLinenumber: 6569
    functionLinenumberEnd: 6570
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD(TestName, ClassName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6571
      start: 6570
    functionDepth: 0
    functionLinenumber: 6570
    functionLinenumberEnd: 6571
    functionName: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_METHOD_GEN(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestFunc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6572
      start: 6571
    functionDepth: 0
    functionLinenumber: 6571
    functionLinenumberEnd: 6572
    functionName: INTERNAL_CATCH_NTTP_REG_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_NTTP_REG_GEN(TestFunc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6573
      start: 6572
    functionDepth: 0
    functionLinenumber: 6572
    functionLinenumberEnd: 6573
    functionName: INTERNAL_CATCH_DEFINE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DEFINE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TestName
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6574
      start: 6573
    functionDepth: 0
    functionLinenumber: 6573
    functionLinenumberEnd: 6574
    functionName: INTERNAL_CATCH_DECLARE_SIG_TEST
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_DECLARE_SIG_TEST(TestName, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6574
    functionDepth: 0
    functionLinenumber: 6574
    functionLinenumberEnd: 6575
    functionName: INTERNAL_CATCH_REMOVE_PARENS_GEN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_REMOVE_PARENS_GEN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TestName
    - ','
    - TestFunc
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6590
      start: 6588
    functionDepth: 0
    functionLinenumber: 6588
    functionLinenumberEnd: 6590
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( TestName, TestFunc,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - TestNameClass
    - ','
    - TestName
    - ','
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6597
      start: 6590
    functionDepth: 0
    functionLinenumber: 6590
    functionLinenumberEnd: 6597
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( TestNameClass,
      TestName, ClassName, Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6601
      start: 6599
    functionDepth: 0
    functionLinenumber: 6599
    functionLinenumberEnd: 6601
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6604
      start: 6602
    functionDepth: 0
    functionLinenumber: 6602
    functionLinenumberEnd: 6604
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6609
      start: 6607
    functionDepth: 0
    functionLinenumber: 6607
    functionLinenumberEnd: 6609
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6612
      start: 6610
    functionDepth: 0
    functionLinenumber: 6610
    functionLinenumberEnd: 6612
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6617
      start: 6615
    functionDepth: 0
    functionLinenumber: 6615
    functionLinenumberEnd: 6617
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName,
      Name, Tags,... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6620
      start: 6618
    functionDepth: 0
    functionLinenumber: 6618
    functionLinenumberEnd: 6620
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName,
      Name, Tags,... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6625
      start: 6623
    functionDepth: 0
    functionLinenumber: 6623
    functionLinenumberEnd: 6625
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6628
      start: 6626
    functionDepth: 0
    functionLinenumber: 6626
    functionLinenumberEnd: 6628
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName,
      Name, Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TestName
    - ','
    - TestFunc
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6650
      start: 6633
    functionDepth: 0
    functionLinenumber: 6633
    functionLinenumberEnd: 6650
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_2(TestName, TestFunc, Name, Tags,
      Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6667
      start: 6665
    functionDepth: 0
    functionLinenumber: 6665
    functionLinenumberEnd: 6667
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6670
      start: 6668
    functionDepth: 0
    functionLinenumber: 6668
    functionLinenumberEnd: 6670
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6675
      start: 6673
    functionDepth: 0
    functionLinenumber: 6673
    functionLinenumberEnd: 6675
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6678
      start: 6676
    functionDepth: 0
    functionLinenumber: 6676
    functionLinenumberEnd: 6678
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6718
      start: 6716
    functionDepth: 0
    functionLinenumber: 6716
    functionLinenumberEnd: 6718
    functionName: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6721
      start: 6719
    functionDepth: 0
    functionLinenumber: 6719
    functionLinenumberEnd: 6721
    functionName: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6726
      start: 6724
    functionDepth: 0
    functionLinenumber: 6724
    functionLinenumberEnd: 6726
    functionName: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6729
      start: 6727
    functionDepth: 0
    functionLinenumber: 6727
    functionLinenumberEnd: 6729
    functionName: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_CATCH_UNIQUE_NAME
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6761,1
    - Dst: INTERNAL_CATCH_UNIQUE_NAME
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6761,1
    - Dst: INTERNAL_CATCH_NTTP_GEN
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6772,1
    - Dst: INTERNAL_CATCH_REMOVE_PARENS
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6773,1
    - Dst: INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6774,1
    - Dst: INTERNAL_CATCH_REMOVE_PARENS
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6774,1
    - Dst: INTERNAL_CATCH_NTTP_REG_METHOD_GEN
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6775,1
    - Dst: INTERNAL_CATCH_REMOVE_PARENS
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6775,1
    - Dst: TestNameClass
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6778,1
    - Dst: CATCH_REC_LIST
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6780,1
    - Dst: reg_test
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6782,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6782,1
    - Dst: TestNameClass<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(__VA_ARGS__)>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:6786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6789
      start: 6757
    functionDepth: 1
    functionLinenumber: 6757
    functionLinenumberEnd: 6789
    functionName: CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - reg_test
    - INTERNAL_CATCH_DECLARE_SIG_TEST_METHOD
    - INTERNAL_CATCH_NTTP_REG_METHOD_GEN
    - TestNameClass<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(__VA_ARGS__)>
    - std::string
    - CATCH_REC_LIST
    - INTERNAL_CATCH_UNIQUE_NAME
    - TestNameClass
    - INTERNAL_CATCH_REMOVE_PARENS
    - INTERNAL_CATCH_NTTP_GEN
    linkageType: ''
    returnType: typename TestType
    signature: typename TestType CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6797
      start: 6795
    functionDepth: 0
    functionLinenumber: 6795
    functionLinenumberEnd: 6797
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,...
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6800
      start: 6798
    functionDepth: 0
    functionLinenumber: 6798
    functionLinenumberEnd: 6800
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,...
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6805
      start: 6803
    functionDepth: 0
    functionLinenumber: 6803
    functionLinenumberEnd: 6805
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags,
      Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6808
      start: 6806
    functionDepth: 0
    functionLinenumber: 6806
    functionLinenumberEnd: 6808
    functionName: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags,
      Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6850
      start: 6848
    functionDepth: 0
    functionLinenumber: 6848
    functionLinenumberEnd: 6850
    functionName: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name,
      Tags, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6853
      start: 6851
    functionDepth: 0
    functionLinenumber: 6851
    functionLinenumberEnd: 6853
    functionName: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name,
      Tags, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6858
      start: 6856
    functionDepth: 0
    functionLinenumber: 6856
    functionLinenumberEnd: 6858
    functionName: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name,
      Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - Signature
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6861
      start: 6859
    functionDepth: 0
    functionLinenumber: 6859
    functionLinenumberEnd: 6861
    functionName: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name,
      Tags, Signature, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ClassName
    - ','
    - Name
    - ','
    - Tags
    - ','
    - TmplList
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6897
      start: 6895
    functionDepth: 0
    functionLinenumber: 6895
    functionLinenumberEnd: 6897
    functionName: INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD(ClassName, Name, Tags,
      TmplList)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6906
      start: 6905
    functionDepth: 0
    functionLinenumber: 6905
    functionLinenumberEnd: 6906
    functionName: CATCH_TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6907
      start: 6906
    functionDepth: 0
    functionLinenumber: 6906
    functionLinenumberEnd: 6907
    functionName: CATCH_TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6908
      start: 6907
    functionDepth: 0
    functionLinenumber: 6907
    functionLinenumberEnd: 6908
    functionName: CATCH_TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6909
      start: 6908
    functionDepth: 0
    functionLinenumber: 6908
    functionLinenumberEnd: 6909
    functionName: CATCH_TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6910
      start: 6909
    functionDepth: 0
    functionLinenumber: 6909
    functionLinenumberEnd: 6910
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6911
      start: 6910
    functionDepth: 0
    functionLinenumber: 6910
    functionLinenumberEnd: 6911
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6912
      start: 6911
    functionDepth: 0
    functionLinenumber: 6911
    functionLinenumberEnd: 6912
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6913
      start: 6912
    functionDepth: 0
    functionLinenumber: 6912
    functionLinenumberEnd: 6913
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6914
      start: 6913
    functionDepth: 0
    functionLinenumber: 6913
    functionLinenumberEnd: 6914
    functionName: CATCH_TEMPLATE_LIST_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_LIST_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6915
      start: 6914
    functionDepth: 0
    functionLinenumber: 6914
    functionLinenumberEnd: 6915
    functionName: CATCH_TEMPLATE_LIST_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6917
      start: 6916
    functionDepth: 0
    functionLinenumber: 6916
    functionLinenumberEnd: 6917
    functionName: CATCH_TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6918
      start: 6917
    functionDepth: 0
    functionLinenumber: 6917
    functionLinenumberEnd: 6918
    functionName: CATCH_TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6919
      start: 6918
    functionDepth: 0
    functionLinenumber: 6918
    functionLinenumberEnd: 6919
    functionName: CATCH_TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6920
      start: 6919
    functionDepth: 0
    functionLinenumber: 6919
    functionLinenumberEnd: 6920
    functionName: CATCH_TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6921
      start: 6920
    functionDepth: 0
    functionLinenumber: 6920
    functionLinenumberEnd: 6921
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6922
      start: 6921
    functionDepth: 0
    functionLinenumber: 6921
    functionLinenumberEnd: 6922
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6923
      start: 6922
    functionDepth: 0
    functionLinenumber: 6922
    functionLinenumberEnd: 6923
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6924
      start: 6923
    functionDepth: 0
    functionLinenumber: 6923
    functionLinenumberEnd: 6924
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6925
      start: 6924
    functionDepth: 0
    functionLinenumber: 6924
    functionLinenumberEnd: 6925
    functionName: CATCH_TEMPLATE_LIST_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_LIST_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6926
      start: 6925
    functionDepth: 0
    functionLinenumber: 6925
    functionLinenumberEnd: 6926
    functionName: CATCH_TEMPLATE_LIST_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6932
      start: 6931
    functionDepth: 0
    functionLinenumber: 6931
    functionLinenumberEnd: 6932
    functionName: CATCH_TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6933
      start: 6932
    functionDepth: 0
    functionLinenumber: 6932
    functionLinenumberEnd: 6933
    functionName: CATCH_TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6934
      start: 6933
    functionDepth: 0
    functionLinenumber: 6933
    functionLinenumberEnd: 6934
    functionName: CATCH_TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6935
      start: 6934
    functionDepth: 0
    functionLinenumber: 6934
    functionLinenumberEnd: 6935
    functionName: CATCH_TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6936
    functionDepth: 0
    functionLinenumber: 6936
    functionLinenumberEnd: 6937
    functionName: CATCH_TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6938
      start: 6937
    functionDepth: 0
    functionLinenumber: 6937
    functionLinenumberEnd: 6938
    functionName: CATCH_TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6939
      start: 6938
    functionDepth: 0
    functionLinenumber: 6938
    functionLinenumberEnd: 6939
    functionName: CATCH_TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6940
      start: 6939
    functionDepth: 0
    functionLinenumber: 6939
    functionLinenumberEnd: 6940
    functionName: CATCH_TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6944
      start: 6943
    functionDepth: 0
    functionLinenumber: 6943
    functionLinenumberEnd: 6944
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6945
      start: 6944
    functionDepth: 0
    functionLinenumber: 6944
    functionLinenumberEnd: 6945
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6946
      start: 6945
    functionDepth: 0
    functionLinenumber: 6945
    functionLinenumberEnd: 6946
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6947
      start: 6946
    functionDepth: 0
    functionLinenumber: 6946
    functionLinenumberEnd: 6947
    functionName: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6948
      start: 6947
    functionDepth: 0
    functionLinenumber: 6947
    functionLinenumberEnd: 6948
    functionName: CATCH_TEMPLATE_LIST_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_LIST_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6949
      start: 6948
    functionDepth: 0
    functionLinenumber: 6948
    functionLinenumberEnd: 6949
    functionName: CATCH_TEMPLATE_LIST_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TEMPLATE_LIST_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6954
      start: 6953
    functionDepth: 0
    functionLinenumber: 6953
    functionLinenumberEnd: 6954
    functionName: TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6955
      start: 6954
    functionDepth: 0
    functionLinenumber: 6954
    functionLinenumberEnd: 6955
    functionName: TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6956
      start: 6955
    functionDepth: 0
    functionLinenumber: 6955
    functionLinenumberEnd: 6956
    functionName: TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6957
      start: 6956
    functionDepth: 0
    functionLinenumber: 6956
    functionLinenumberEnd: 6957
    functionName: TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6958
      start: 6957
    functionDepth: 0
    functionLinenumber: 6957
    functionLinenumberEnd: 6958
    functionName: TEMPLATE_PRODUCT_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6959
      start: 6958
    functionDepth: 0
    functionLinenumber: 6958
    functionLinenumberEnd: 6959
    functionName: TEMPLATE_PRODUCT_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6960
      start: 6959
    functionDepth: 0
    functionLinenumber: 6959
    functionLinenumberEnd: 6960
    functionName: TEMPLATE_PRODUCT_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6961
      start: 6960
    functionDepth: 0
    functionLinenumber: 6960
    functionLinenumberEnd: 6961
    functionName: TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6962
      start: 6961
    functionDepth: 0
    functionLinenumber: 6961
    functionLinenumberEnd: 6962
    functionName: TEMPLATE_LIST_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_LIST_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6963
      start: 6962
    functionDepth: 0
    functionLinenumber: 6962
    functionLinenumberEnd: 6963
    functionName: TEMPLATE_LIST_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_LIST_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6965
      start: 6964
    functionDepth: 0
    functionLinenumber: 6964
    functionLinenumberEnd: 6965
    functionName: TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6966
      start: 6965
    functionDepth: 0
    functionLinenumber: 6965
    functionLinenumberEnd: 6966
    functionName: TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6967
      start: 6966
    functionDepth: 0
    functionLinenumber: 6966
    functionLinenumberEnd: 6967
    functionName: TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6968
      start: 6967
    functionDepth: 0
    functionLinenumber: 6967
    functionLinenumberEnd: 6968
    functionName: TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6969
      start: 6968
    functionDepth: 0
    functionLinenumber: 6968
    functionLinenumberEnd: 6969
    functionName: TEMPLATE_PRODUCT_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6970
      start: 6969
    functionDepth: 0
    functionLinenumber: 6969
    functionLinenumberEnd: 6970
    functionName: TEMPLATE_PRODUCT_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6971
      start: 6970
    functionDepth: 0
    functionLinenumber: 6970
    functionLinenumberEnd: 6971
    functionName: TEMPLATE_PRODUCT_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6972
      start: 6971
    functionDepth: 0
    functionLinenumber: 6971
    functionLinenumberEnd: 6972
    functionName: TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6973
      start: 6972
    functionDepth: 0
    functionLinenumber: 6972
    functionLinenumberEnd: 6973
    functionName: TEMPLATE_LIST_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_LIST_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6974
      start: 6973
    functionDepth: 0
    functionLinenumber: 6973
    functionLinenumberEnd: 6974
    functionName: TEMPLATE_LIST_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_LIST_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6980
      start: 6979
    functionDepth: 0
    functionLinenumber: 6979
    functionLinenumberEnd: 6980
    functionName: TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6981
      start: 6980
    functionDepth: 0
    functionLinenumber: 6980
    functionLinenumberEnd: 6981
    functionName: TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6982
      start: 6981
    functionDepth: 0
    functionLinenumber: 6981
    functionLinenumberEnd: 6982
    functionName: TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6983
      start: 6982
    functionDepth: 0
    functionLinenumber: 6982
    functionLinenumberEnd: 6983
    functionName: TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6985
      start: 6984
    functionDepth: 0
    functionLinenumber: 6984
    functionLinenumberEnd: 6985
    functionName: TEMPLATE_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6986
      start: 6985
    functionDepth: 0
    functionLinenumber: 6985
    functionLinenumberEnd: 6986
    functionName: TEMPLATE_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6987
      start: 6986
    functionDepth: 0
    functionLinenumber: 6986
    functionLinenumberEnd: 6987
    functionName: TEMPLATE_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6988
      start: 6987
    functionDepth: 0
    functionLinenumber: 6987
    functionLinenumberEnd: 6988
    functionName: TEMPLATE_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6992
      start: 6991
    functionDepth: 0
    functionLinenumber: 6991
    functionLinenumberEnd: 6992
    functionName: TEMPLATE_PRODUCT_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6993
      start: 6992
    functionDepth: 0
    functionLinenumber: 6992
    functionLinenumberEnd: 6993
    functionName: TEMPLATE_PRODUCT_TEST_CASE_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_SIG( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6994
      start: 6993
    functionDepth: 0
    functionLinenumber: 6993
    functionLinenumberEnd: 6994
    functionName: TEMPLATE_PRODUCT_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6995
      start: 6994
    functionDepth: 0
    functionLinenumber: 6994
    functionLinenumberEnd: 6995
    functionName: TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6996
      start: 6995
    functionDepth: 0
    functionLinenumber: 6995
    functionLinenumberEnd: 6996
    functionName: TEMPLATE_LIST_TEST_CASE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_LIST_TEST_CASE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - className
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6997
      start: 6996
    functionDepth: 0
    functionLinenumber: 6996
    functionLinenumberEnd: 6997
    functionName: TEMPLATE_LIST_TEST_CASE_METHOD
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPLATE_LIST_TEST_CASE_METHOD( className, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - original_
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7030
      start: 7028
    functionDepth: 0
    functionLinenumber: 7028
    functionLinenumberEnd: 7030
    functionName: Catch::Tag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Tag(StringRef original_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - info
    - invoker
    argTypes:
    - TestCaseInfo*
    - ITestInvoker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7104
      start: 7103
    functionDepth: 0
    functionLinenumber: 7103
    functionLinenumberEnd: 7104
    functionName: Catch::TestCaseHandle::TestCaseHandle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestCaseHandle(TestCaseInfo* info, ITestInvoker* invoker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseHandle::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7108
      start: 7106
    functionDepth: 0
    functionLinenumber: 7106
    functionLinenumberEnd: 7108
    functionName: Catch::TestCaseHandle::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::TestCaseHandle::invoke
    linkageType: ''
    returnType: void
    signature: void invoke() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - original_
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7030
      start: 7028
    functionDepth: 0
    functionLinenumber: 7028
    functionLinenumberEnd: 7030
    functionName: Catch::Tag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Tag(StringRef original_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - info
    - invoker
    argTypes:
    - TestCaseInfo*
    - ITestInvoker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7104
      start: 7103
    functionDepth: 0
    functionLinenumber: 7103
    functionLinenumberEnd: 7104
    functionName: Catch::TestCaseHandle::TestCaseHandle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestCaseHandle(TestCaseInfo* info, ITestInvoker* invoker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseHandle::invoke
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7108
      start: 7106
    functionDepth: 0
    functionLinenumber: 7106
    functionLinenumberEnd: 7108
    functionName: Catch::TestCaseHandle::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::TestCaseHandle::invoke
    linkageType: ''
    returnType: void
    signature: void invoke() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7175
      start: 7173
    functionDepth: 0
    functionLinenumber: 7173
    functionLinenumberEnd: 7175
    functionName: Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::ExceptionTranslator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExceptionTranslator( std::string(*translateFunction)( T const&
      ) )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7181,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7181,1
    - Dst: Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::translate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7183,1
    - Dst: m_translateFunction
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - it
    - itEnd
    argTypes:
    - ExceptionTranslators::const_iterator
    - ExceptionTranslators::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7191
      start: 7177
    functionDepth: 1
    functionLinenumber: 7177
    functionLinenumberEnd: 7191
    functionName: Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::translate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - m_translateFunction
    - Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::translate
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: std::string
    signature: std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator
      itEnd ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::registerTranslatorImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7200,1
    - Dst: Detail::make_unique<ExceptionTranslator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7203
      start: 7199
    functionDepth: 1
    functionLinenumber: 7199
    functionLinenumberEnd: 7203
    functionName: Catch::ExceptionTranslatorRegistrar::ExceptionTranslatorRegistrar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::registerTranslatorImpl
    - Detail::make_unique<ExceptionTranslator<T>>
    linkageType: ''
    returnType: void
    signature: void ExceptionTranslatorRegistrar( std::string(*translateFunction)(
      T const& ) )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7175
      start: 7173
    functionDepth: 0
    functionLinenumber: 7173
    functionLinenumberEnd: 7175
    functionName: Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::ExceptionTranslator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExceptionTranslator( std::string(*translateFunction)( T const&
      ) )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7181,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7181,1
    - Dst: Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::translate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7183,1
    - Dst: m_translateFunction
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - it
    - itEnd
    argTypes:
    - ExceptionTranslators::const_iterator
    - ExceptionTranslators::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7191
      start: 7177
    functionDepth: 1
    functionLinenumber: 7177
    functionLinenumberEnd: 7191
    functionName: Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::translate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - m_translateFunction
    - Catch::ExceptionTranslatorRegistrar::ExceptionTranslator::translate
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: std::string
    signature: std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator
      itEnd ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::registerTranslatorImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7200,1
    - Dst: Detail::make_unique<ExceptionTranslator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7203
      start: 7199
    functionDepth: 1
    functionLinenumber: 7199
    functionLinenumberEnd: 7203
    functionName: Catch::ExceptionTranslatorRegistrar::ExceptionTranslatorRegistrar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::registerTranslatorImpl
    - Detail::make_unique<ExceptionTranslator<T>>
    linkageType: ''
    returnType: void
    signature: void ExceptionTranslatorRegistrar( std::string(*translateFunction)(
      T const& ) )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - translatorName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7216
      start: 7209
    functionDepth: 0
    functionLinenumber: 7209
    functionLinenumberEnd: 7216
    functionName: INTERNAL_CATCH_TRANSLATE_EXCEPTION2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7218
      start: 7217
    functionDepth: 0
    functionLinenumber: 7217
    functionLinenumberEnd: 7218
    functionName: INTERNAL_CATCH_TRANSLATE_EXCEPTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - translatorName
    - ','
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7222
      start: 7220
    functionDepth: 0
    functionLinenumber: 7220
    functionLinenumberEnd: 7222
    functionName: INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( translatorName, signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7228
      start: 7227
    functionDepth: 0
    functionLinenumber: 7227
    functionLinenumberEnd: 7228
    functionName: CATCH_TRANSLATE_EXCEPTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRANSLATE_EXCEPTION( signature )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - signature
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7230
      start: 7229
    functionDepth: 0
    functionLinenumber: 7229
    functionLinenumberEnd: 7230
    functionName: CATCH_TRANSLATE_EXCEPTION
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRANSLATE_EXCEPTION( signature )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7245
      start: 7245
    functionDepth: 0
    functionLinenumber: 7245
    functionLinenumberEnd: 7245
    functionName: Catch::Version
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Version( Version const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7246
      start: 7246
    functionDepth: 0
    functionLinenumber: 7246
    functionLinenumberEnd: 7246
    functionName: '& operator=( Version const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Version
    signature: Version & operator=( Version const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7245
      start: 7245
    functionDepth: 0
    functionLinenumber: 7245
    functionLinenumberEnd: 7245
    functionName: Catch::Version
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Version( Version const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7246
      start: 7246
    functionDepth: 0
    functionLinenumber: 7246
    functionLinenumberEnd: 7246
    functionName: '& operator=( Version const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Version
    signature: Version & operator=( Version const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7314
      start: 7312
    functionDepth: 0
    functionLinenumber: 7312
    functionLinenumberEnd: 7314
    functionName: Catch::GeneratorException::GeneratorException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorException(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7314
      start: 7312
    functionDepth: 0
    functionLinenumber: 7312
    functionLinenumberEnd: 7314
    functionName: Catch::GeneratorException::GeneratorException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorException(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7358
      start: 7358
    functionDepth: 0
    functionLinenumber: 7358
    functionLinenumberEnd: 7358
    functionName: Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7361
      start: 7361
    functionDepth: 0
    functionLinenumber: 7361
    functionLinenumberEnd: 7361
    functionName: Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase(GeneratorUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7362
      start: 7362
    functionDepth: 0
    functionLinenumber: 7362
    functionLinenumberEnd: 7362
    functionName: '& operator=(GeneratorUntypedBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeneratorUntypedBase
    signature: GeneratorUntypedBase & operator=(GeneratorUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7378
      start: 7378
    functionDepth: 0
    functionLinenumber: 7378
    functionLinenumberEnd: 7378
    functionName: Catch::Generators::GeneratorUntypedBase::currentElementIndex
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t currentElementIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7358
      start: 7358
    functionDepth: 0
    functionLinenumber: 7358
    functionLinenumberEnd: 7358
    functionName: Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7361
      start: 7361
    functionDepth: 0
    functionLinenumber: 7361
    functionLinenumberEnd: 7361
    functionName: Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase(GeneratorUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7362
      start: 7362
    functionDepth: 0
    functionLinenumber: 7362
    functionLinenumberEnd: 7362
    functionName: '& operator=(GeneratorUntypedBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeneratorUntypedBase
    signature: GeneratorUntypedBase & operator=(GeneratorUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7378
      start: 7378
    functionDepth: 0
    functionLinenumber: 7378
    functionLinenumberEnd: 7378
    functionName: Catch::Generators::GeneratorUntypedBase::currentElementIndex
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t currentElementIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7358
      start: 7358
    functionDepth: 0
    functionLinenumber: 7358
    functionLinenumberEnd: 7358
    functionName: Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7361
      start: 7361
    functionDepth: 0
    functionLinenumber: 7361
    functionLinenumberEnd: 7361
    functionName: Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase(GeneratorUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7362
      start: 7362
    functionDepth: 0
    functionLinenumber: 7362
    functionLinenumberEnd: 7362
    functionName: '& operator=(GeneratorUntypedBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeneratorUntypedBase
    signature: GeneratorUntypedBase & operator=(GeneratorUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7378
      start: 7378
    functionDepth: 0
    functionLinenumber: 7378
    functionLinenumberEnd: 7378
    functionName: Catch::Generators::GeneratorUntypedBase::currentElementIndex
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t currentElementIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7358
      start: 7358
    functionDepth: 0
    functionLinenumber: 7358
    functionLinenumberEnd: 7358
    functionName: Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7361
      start: 7361
    functionDepth: 0
    functionLinenumber: 7361
    functionLinenumberEnd: 7361
    functionName: Catch::Generators::GeneratorUntypedBase::GeneratorUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase(GeneratorUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7362
      start: 7362
    functionDepth: 0
    functionLinenumber: 7362
    functionLinenumberEnd: 7362
    functionName: '& operator=(GeneratorUntypedBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeneratorUntypedBase
    signature: GeneratorUntypedBase & operator=(GeneratorUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7378
      start: 7378
    functionDepth: 0
    functionLinenumber: 7378
    functionLinenumberEnd: 7378
    functionName: Catch::Generators::GeneratorUntypedBase::currentElementIndex
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t currentElementIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7429,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7430
      start: 7428
    functionDepth: 1
    functionLinenumber: 7428
    functionLinenumberEnd: 7430
    functionName: Catch::Generators::IGenerator::stringifyImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string stringifyImpl() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generator
    argTypes:
    - IGenerator<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7450
      start: 7449
    functionDepth: 0
    functionLinenumber: 7449
    functionLinenumberEnd: 7450
    functionName: Catch::Generators::GeneratorWrapper::GeneratorWrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorWrapper(IGenerator<T>* generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generator
    argTypes:
    - GeneratorPtr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7452
      start: 7451
    functionDepth: 1
    functionLinenumber: 7451
    functionLinenumberEnd: 7452
    functionName: Catch::Generators::GeneratorWrapper::GeneratorWrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void GeneratorWrapper(GeneratorPtr<T> generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7456
      start: 7454
    functionDepth: 0
    functionLinenumber: 7454
    functionLinenumberEnd: 7456
    functionName: '& get() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7457
    functionDepth: 0
    functionLinenumber: 7457
    functionLinenumberEnd: 7459
    functionName: Catch::Generators::GeneratorWrapper::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - countedNext
    linkageType: ''
    returnType: bool
    signature: bool next()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7469
      start: 7467
    functionDepth: 0
    functionLinenumber: 7467
    functionLinenumberEnd: 7469
    functionName: Catch::Generators::SingleValueGenerator::SingleValueGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SingleValueGenerator(T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7472
      start: 7470
    functionDepth: 1
    functionLinenumber: 7470
    functionLinenumberEnd: 7472
    functionName: Catch::Generators::SingleValueGenerator::SingleValueGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SingleValueGenerator(T&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7476
      start: 7474
    functionDepth: 0
    functionLinenumber: 7474
    functionLinenumberEnd: 7476
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7479
      start: 7477
    functionDepth: 0
    functionLinenumber: 7477
    functionLinenumberEnd: 7479
    functionName: Catch::Generators::SingleValueGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - values
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7490
      start: 7490
    functionDepth: 0
    functionLinenumber: 7490
    functionLinenumberEnd: 7490
    functionName: Catch::Generators::FixedValuesGenerator::FixedValuesGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FixedValuesGenerator( std::initializer_list<T> values )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7494
      start: 7492
    functionDepth: 0
    functionLinenumber: 7492
    functionLinenumberEnd: 7494
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7498
      start: 7495
    functionDepth: 1
    functionLinenumber: 7495
    functionLinenumberEnd: 7498
    functionName: Catch::Generators::FixedValuesGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<DecayedT>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7503,1
    - Dst: Catch::Detail::make_unique<SingleValueGenerator<DecayedT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7504,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7506
      start: 7502
    functionDepth: 1
    functionLinenumber: 7502
    functionLinenumberEnd: 7506
    functionName: Catch::Generators::value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<SingleValueGenerator<DecayedT>>
    - GeneratorWrapper<DecayedT>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<DecayedT>
    signature: GeneratorWrapper<DecayedT> value( T&& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7509,1
    - Dst: Catch::Detail::make_unique<FixedValuesGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - values
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7510
      start: 7508
    functionDepth: 0
    functionLinenumber: 7508
    functionLinenumberEnd: 7510
    functionName: Catch::Generators::values
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<FixedValuesGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> values(std::initializer_list<T> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7518,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7519
      start: 7517
    functionDepth: 1
    functionLinenumber: 7517
    functionLinenumberEnd: 7519
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( GeneratorWrapper<T>&& generator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7521,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7522
      start: 7520
    functionDepth: 0
    functionLinenumber: 7520
    functionLinenumberEnd: 7522
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - value
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( T const& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7525
      start: 7523
    functionDepth: 1
    functionLinenumber: 7523
    functionLinenumberEnd: 7525
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - value
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( T&& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7530
      start: 7527
    functionDepth: 1
    functionLinenumber: 7527
    functionLinenumberEnd: 7530
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - T
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: std::enable_if_t<!std::is_same<std::decay_t<U>, T>::value>
    signature: std::enable_if_t<!std::is_same<std::decay_t<U>, T>::value> add_generator(
      U&& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7533,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' valueOrGenerator'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7534
      start: 7532
    functionDepth: 2
    functionLinenumber: 7532
    functionLinenumberEnd: 7534
    functionName: Catch::Generators::Generators::add_generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void add_generators( U&& valueOrGenerator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7538,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7538,1
    - Dst: Catch::Generators::Generators::add_generators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7539,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' valueOrGenerator'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7537
    functionDepth: 2
    functionLinenumber: 7537
    functionLinenumberEnd: 7540
    functionName: Catch::Generators::Generators::add_generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Generators::Generators::add_generators
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void add_generators( U&& valueOrGenerator, Gs&&... moreGenerators )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7545,1
    - Dst: Catch::Generators::Generators::add_generators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7546,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7547
      start: 7544
    functionDepth: 3
    functionLinenumber: 7544
    functionLinenumberEnd: 7547
    functionName: Catch::Generators::Generators::Generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Generators::add_generators
    - reserve
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void Generators(Gs &&... moreGenerators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7549
    functionDepth: 0
    functionLinenumber: 7549
    functionLinenumberEnd: 7551
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7554,1
    - Dst: Catch::Generators::Generators::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7557,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7562
      start: 7553
    functionDepth: 1
    functionLinenumber: 7553
    functionLinenumberEnd: 7562
    functionName: Catch::Generators::Generators::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Generators::Generators::next
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::values
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tuples
    argTypes:
    - std::initializer_list<std::tuple<std::decay_t<Ts>...>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7570
      start: 7567
    functionDepth: 1
    functionLinenumber: 7567
    functionLinenumberEnd: 7570
    functionName: Catch::Generators::table
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::values
    linkageType: ''
    returnType: GeneratorWrapper<std::tuple<std::decay_t<Ts>...>>
    signature: GeneratorWrapper<std::tuple<std::decay_t<Ts>...>> table( std::initializer_list<std::tuple<std::decay_t<Ts>...>>
      tuples )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generators<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7579
      start: 7577
    functionDepth: 1
    functionLinenumber: 7577
    functionLinenumberEnd: 7579
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Generators<T>
    - CATCH_MOVE
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( GeneratorWrapper<T>&& generator, Gs &&... moreGenerators
      ) -> Generators<T>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generators<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7582,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7583
      start: 7581
    functionDepth: 1
    functionLinenumber: 7581
    functionLinenumberEnd: 7583
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Generators<T>
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( GeneratorWrapper<T>&& generator ) -> Generators<T>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::makeGenerators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: Catch::Generators::value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7587
      start: 7585
    functionDepth: 2
    functionLinenumber: 7585
    functionLinenumberEnd: 7587
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Generators::makeGenerators
    - Catch::Generators::value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( T&& val, Gs &&... moreGenerators ) -> Generators<std::decay_t<T>>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::makeGenerators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: Catch::Generators::value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7591
      start: 7589
    functionDepth: 2
    functionLinenumber: 7589
    functionLinenumberEnd: 7591
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - T
    - Catch::Generators::makeGenerators
    - Catch::Generators::value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( as<T>, U&& val, Gs &&... moreGenerators ) -> Generators<T>
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7600,1
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7601,1
    - Dst: Catch::Generators::acquireGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7603,1
    - Dst: Catch::Generators::createGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7607,1
    - Dst: Catch::Detail::make_unique<Generators<UnderlyingType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7610,1
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7611,1
    - Dst: static_cast<IGenerator<UnderlyingType> const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7614,1
    - Dst: IGeneratorTracker*::getGenerator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7614,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - generatorName
    - ' lineInfo'
    - ' generatorExpression'
    argTypes:
    - StringRef
    - SourceLineInfo
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7616
      start: 7600
    functionDepth: 1
    functionLinenumber: 7600
    functionLinenumberEnd: 7616
    functionName: Catch::Generators::generate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - IGeneratorTracker*::getGenerator
    - Catch::Detail::make_unique<Generators<UnderlyingType>>
    - static_cast<IGenerator<UnderlyingType> const&>
    - generatorExpression
    - Catch::Generators::acquireGeneratorTracker
    - get
    - Catch::Generators::createGeneratorTracker
    linkageType: ''
    returnType: auto
    signature: auto generate( StringRef generatorName, SourceLineInfo const& lineInfo,
      L const& generatorExpression ) -> typename decltype(generatorExpression())::type
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7429,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7430
      start: 7428
    functionDepth: 1
    functionLinenumber: 7428
    functionLinenumberEnd: 7430
    functionName: Catch::Generators::IGenerator::stringifyImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string stringifyImpl() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generator
    argTypes:
    - IGenerator<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7450
      start: 7449
    functionDepth: 0
    functionLinenumber: 7449
    functionLinenumberEnd: 7450
    functionName: Catch::Generators::GeneratorWrapper::GeneratorWrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorWrapper(IGenerator<T>* generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generator
    argTypes:
    - GeneratorPtr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7452
      start: 7451
    functionDepth: 1
    functionLinenumber: 7451
    functionLinenumberEnd: 7452
    functionName: Catch::Generators::GeneratorWrapper::GeneratorWrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void GeneratorWrapper(GeneratorPtr<T> generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7456
      start: 7454
    functionDepth: 0
    functionLinenumber: 7454
    functionLinenumberEnd: 7456
    functionName: '& get() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7457
    functionDepth: 0
    functionLinenumber: 7457
    functionLinenumberEnd: 7459
    functionName: Catch::Generators::GeneratorWrapper::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - countedNext
    linkageType: ''
    returnType: bool
    signature: bool next()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7469
      start: 7467
    functionDepth: 0
    functionLinenumber: 7467
    functionLinenumberEnd: 7469
    functionName: Catch::Generators::SingleValueGenerator::SingleValueGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SingleValueGenerator(T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7472
      start: 7470
    functionDepth: 1
    functionLinenumber: 7470
    functionLinenumberEnd: 7472
    functionName: Catch::Generators::SingleValueGenerator::SingleValueGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SingleValueGenerator(T&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7476
      start: 7474
    functionDepth: 0
    functionLinenumber: 7474
    functionLinenumberEnd: 7476
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7479
      start: 7477
    functionDepth: 0
    functionLinenumber: 7477
    functionLinenumberEnd: 7479
    functionName: Catch::Generators::SingleValueGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - values
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7490
      start: 7490
    functionDepth: 0
    functionLinenumber: 7490
    functionLinenumberEnd: 7490
    functionName: Catch::Generators::FixedValuesGenerator::FixedValuesGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FixedValuesGenerator( std::initializer_list<T> values )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7494
      start: 7492
    functionDepth: 0
    functionLinenumber: 7492
    functionLinenumberEnd: 7494
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7498
      start: 7495
    functionDepth: 1
    functionLinenumber: 7495
    functionLinenumberEnd: 7498
    functionName: Catch::Generators::FixedValuesGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<DecayedT>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7503,1
    - Dst: Catch::Detail::make_unique<SingleValueGenerator<DecayedT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7504,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7506
      start: 7502
    functionDepth: 1
    functionLinenumber: 7502
    functionLinenumberEnd: 7506
    functionName: Catch::Generators::value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::make_unique<SingleValueGenerator<DecayedT>>
    - GeneratorWrapper<DecayedT>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<DecayedT>
    signature: GeneratorWrapper<DecayedT> value( T&& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7509,1
    - Dst: Catch::Detail::make_unique<FixedValuesGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - values
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7510
      start: 7508
    functionDepth: 0
    functionLinenumber: 7508
    functionLinenumberEnd: 7510
    functionName: Catch::Generators::values
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::make_unique<FixedValuesGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> values(std::initializer_list<T> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7518,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7519
      start: 7517
    functionDepth: 1
    functionLinenumber: 7517
    functionLinenumberEnd: 7519
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( GeneratorWrapper<T>&& generator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7521,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7522
      start: 7520
    functionDepth: 0
    functionLinenumber: 7520
    functionLinenumberEnd: 7522
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - value
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( T const& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7525
      start: 7523
    functionDepth: 1
    functionLinenumber: 7523
    functionLinenumberEnd: 7525
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - value
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( T&& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7530
      start: 7527
    functionDepth: 1
    functionLinenumber: 7527
    functionLinenumberEnd: 7530
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - T
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: std::enable_if_t<!std::is_same<std::decay_t<U>, T>::value>
    signature: std::enable_if_t<!std::is_same<std::decay_t<U>, T>::value> add_generator(
      U&& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7533,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' valueOrGenerator'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7534
      start: 7532
    functionDepth: 2
    functionLinenumber: 7532
    functionLinenumberEnd: 7534
    functionName: Catch::Generators::Generators::add_generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void add_generators( U&& valueOrGenerator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7538,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7538,1
    - Dst: Catch::Generators::Generators::add_generators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7539,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' valueOrGenerator'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7537
    functionDepth: 2
    functionLinenumber: 7537
    functionLinenumberEnd: 7540
    functionName: Catch::Generators::Generators::add_generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Generators::Generators::add_generators
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void add_generators( U&& valueOrGenerator, Gs&&... moreGenerators )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7545,1
    - Dst: Catch::Generators::Generators::add_generators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7546,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7547
      start: 7544
    functionDepth: 3
    functionLinenumber: 7544
    functionLinenumberEnd: 7547
    functionName: Catch::Generators::Generators::Generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Generators::add_generators
    - reserve
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void Generators(Gs &&... moreGenerators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7549
    functionDepth: 0
    functionLinenumber: 7549
    functionLinenumberEnd: 7551
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7554,1
    - Dst: Catch::Generators::Generators::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7557,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7562
      start: 7553
    functionDepth: 1
    functionLinenumber: 7553
    functionLinenumberEnd: 7562
    functionName: Catch::Generators::Generators::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Generators::Generators::next
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::values
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tuples
    argTypes:
    - std::initializer_list<std::tuple<std::decay_t<Ts>...>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7570
      start: 7567
    functionDepth: 1
    functionLinenumber: 7567
    functionLinenumberEnd: 7570
    functionName: Catch::Generators::table
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::values
    linkageType: ''
    returnType: GeneratorWrapper<std::tuple<std::decay_t<Ts>...>>
    signature: GeneratorWrapper<std::tuple<std::decay_t<Ts>...>> table( std::initializer_list<std::tuple<std::decay_t<Ts>...>>
      tuples )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generators<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7579
      start: 7577
    functionDepth: 1
    functionLinenumber: 7577
    functionLinenumberEnd: 7579
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Generators<T>
    - CATCH_MOVE
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( GeneratorWrapper<T>&& generator, Gs &&... moreGenerators
      ) -> Generators<T>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generators<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7582,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7583
      start: 7581
    functionDepth: 1
    functionLinenumber: 7581
    functionLinenumberEnd: 7583
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Generators<T>
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( GeneratorWrapper<T>&& generator ) -> Generators<T>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::makeGenerators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: Catch::Generators::value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7587
      start: 7585
    functionDepth: 2
    functionLinenumber: 7585
    functionLinenumberEnd: 7587
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Generators::makeGenerators
    - Catch::Generators::value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( T&& val, Gs &&... moreGenerators ) -> Generators<std::decay_t<T>>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::makeGenerators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: Catch::Generators::value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7591
      start: 7589
    functionDepth: 2
    functionLinenumber: 7589
    functionLinenumberEnd: 7591
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - T
    - Catch::Generators::makeGenerators
    - Catch::Generators::value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( as<T>, U&& val, Gs &&... moreGenerators ) -> Generators<T>
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7600,1
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7601,1
    - Dst: Catch::Generators::acquireGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7603,1
    - Dst: Catch::Generators::createGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7607,1
    - Dst: Catch::Detail::make_unique<Generators<UnderlyingType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7610,1
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7611,1
    - Dst: static_cast<IGenerator<UnderlyingType> const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7614,1
    - Dst: IGeneratorTracker*::getGenerator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7614,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - generatorName
    - ' lineInfo'
    - ' generatorExpression'
    argTypes:
    - StringRef
    - SourceLineInfo
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7616
      start: 7600
    functionDepth: 1
    functionLinenumber: 7600
    functionLinenumberEnd: 7616
    functionName: Catch::Generators::generate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - IGeneratorTracker*::getGenerator
    - Catch::Detail::make_unique<Generators<UnderlyingType>>
    - static_cast<IGenerator<UnderlyingType> const&>
    - generatorExpression
    - Catch::Generators::acquireGeneratorTracker
    - get
    - Catch::Generators::createGeneratorTracker
    linkageType: ''
    returnType: auto
    signature: auto generate( StringRef generatorName, SourceLineInfo const& lineInfo,
      L const& generatorExpression ) -> typename decltype(generatorExpression())::type
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7429,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7430
      start: 7428
    functionDepth: 1
    functionLinenumber: 7428
    functionLinenumberEnd: 7430
    functionName: Catch::Generators::IGenerator::stringifyImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string stringifyImpl() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generator
    argTypes:
    - IGenerator<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7450
      start: 7449
    functionDepth: 0
    functionLinenumber: 7449
    functionLinenumberEnd: 7450
    functionName: Catch::Generators::GeneratorWrapper::GeneratorWrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorWrapper(IGenerator<T>* generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generator
    argTypes:
    - GeneratorPtr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7452
      start: 7451
    functionDepth: 1
    functionLinenumber: 7451
    functionLinenumberEnd: 7452
    functionName: Catch::Generators::GeneratorWrapper::GeneratorWrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void GeneratorWrapper(GeneratorPtr<T> generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7456
      start: 7454
    functionDepth: 0
    functionLinenumber: 7454
    functionLinenumberEnd: 7456
    functionName: '& get() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7457
    functionDepth: 0
    functionLinenumber: 7457
    functionLinenumberEnd: 7459
    functionName: Catch::Generators::GeneratorWrapper::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - countedNext
    linkageType: ''
    returnType: bool
    signature: bool next()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7469
      start: 7467
    functionDepth: 0
    functionLinenumber: 7467
    functionLinenumberEnd: 7469
    functionName: Catch::Generators::SingleValueGenerator::SingleValueGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SingleValueGenerator(T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7472
      start: 7470
    functionDepth: 1
    functionLinenumber: 7470
    functionLinenumberEnd: 7472
    functionName: Catch::Generators::SingleValueGenerator::SingleValueGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SingleValueGenerator(T&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7476
      start: 7474
    functionDepth: 0
    functionLinenumber: 7474
    functionLinenumberEnd: 7476
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7479
      start: 7477
    functionDepth: 0
    functionLinenumber: 7477
    functionLinenumberEnd: 7479
    functionName: Catch::Generators::SingleValueGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - values
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7490
      start: 7490
    functionDepth: 0
    functionLinenumber: 7490
    functionLinenumberEnd: 7490
    functionName: Catch::Generators::FixedValuesGenerator::FixedValuesGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FixedValuesGenerator( std::initializer_list<T> values )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7494
      start: 7492
    functionDepth: 0
    functionLinenumber: 7492
    functionLinenumberEnd: 7494
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7498
      start: 7495
    functionDepth: 1
    functionLinenumber: 7495
    functionLinenumberEnd: 7498
    functionName: Catch::Generators::FixedValuesGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<DecayedT>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7503,1
    - Dst: Catch::Detail::make_unique<SingleValueGenerator<DecayedT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7504,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7506
      start: 7502
    functionDepth: 1
    functionLinenumber: 7502
    functionLinenumberEnd: 7506
    functionName: Catch::Generators::value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::make_unique<SingleValueGenerator<DecayedT>>
    - GeneratorWrapper<DecayedT>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<DecayedT>
    signature: GeneratorWrapper<DecayedT> value( T&& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7509,1
    - Dst: Catch::Detail::make_unique<FixedValuesGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - values
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7510
      start: 7508
    functionDepth: 0
    functionLinenumber: 7508
    functionLinenumberEnd: 7510
    functionName: Catch::Generators::values
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::make_unique<FixedValuesGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> values(std::initializer_list<T> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7518,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7519
      start: 7517
    functionDepth: 1
    functionLinenumber: 7517
    functionLinenumberEnd: 7519
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( GeneratorWrapper<T>&& generator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7521,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7522
      start: 7520
    functionDepth: 0
    functionLinenumber: 7520
    functionLinenumberEnd: 7522
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - value
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( T const& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7525
      start: 7523
    functionDepth: 1
    functionLinenumber: 7523
    functionLinenumberEnd: 7525
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - value
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( T&& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7530
      start: 7527
    functionDepth: 1
    functionLinenumber: 7527
    functionLinenumberEnd: 7530
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - T
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: std::enable_if_t<!std::is_same<std::decay_t<U>, T>::value>
    signature: std::enable_if_t<!std::is_same<std::decay_t<U>, T>::value> add_generator(
      U&& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7533,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' valueOrGenerator'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7534
      start: 7532
    functionDepth: 2
    functionLinenumber: 7532
    functionLinenumberEnd: 7534
    functionName: Catch::Generators::Generators::add_generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void add_generators( U&& valueOrGenerator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7538,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7538,1
    - Dst: Catch::Generators::Generators::add_generators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7539,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' valueOrGenerator'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7537
    functionDepth: 2
    functionLinenumber: 7537
    functionLinenumberEnd: 7540
    functionName: Catch::Generators::Generators::add_generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Generators::Generators::add_generators
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void add_generators( U&& valueOrGenerator, Gs&&... moreGenerators )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7545,1
    - Dst: Catch::Generators::Generators::add_generators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7546,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7547
      start: 7544
    functionDepth: 3
    functionLinenumber: 7544
    functionLinenumberEnd: 7547
    functionName: Catch::Generators::Generators::Generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Generators::add_generators
    - reserve
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void Generators(Gs &&... moreGenerators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7549
    functionDepth: 0
    functionLinenumber: 7549
    functionLinenumberEnd: 7551
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7554,1
    - Dst: Catch::Generators::Generators::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7557,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7562
      start: 7553
    functionDepth: 1
    functionLinenumber: 7553
    functionLinenumberEnd: 7562
    functionName: Catch::Generators::Generators::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Generators::Generators::next
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::values
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tuples
    argTypes:
    - std::initializer_list<std::tuple<std::decay_t<Ts>...>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7570
      start: 7567
    functionDepth: 1
    functionLinenumber: 7567
    functionLinenumberEnd: 7570
    functionName: Catch::Generators::table
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::values
    linkageType: ''
    returnType: GeneratorWrapper<std::tuple<std::decay_t<Ts>...>>
    signature: GeneratorWrapper<std::tuple<std::decay_t<Ts>...>> table( std::initializer_list<std::tuple<std::decay_t<Ts>...>>
      tuples )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generators<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7579
      start: 7577
    functionDepth: 1
    functionLinenumber: 7577
    functionLinenumberEnd: 7579
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Generators<T>
    - CATCH_MOVE
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( GeneratorWrapper<T>&& generator, Gs &&... moreGenerators
      ) -> Generators<T>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generators<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7582,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7583
      start: 7581
    functionDepth: 1
    functionLinenumber: 7581
    functionLinenumberEnd: 7583
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Generators<T>
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( GeneratorWrapper<T>&& generator ) -> Generators<T>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::makeGenerators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: Catch::Generators::value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7587
      start: 7585
    functionDepth: 2
    functionLinenumber: 7585
    functionLinenumberEnd: 7587
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Generators::makeGenerators
    - Catch::Generators::value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( T&& val, Gs &&... moreGenerators ) -> Generators<std::decay_t<T>>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::makeGenerators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: Catch::Generators::value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7591
      start: 7589
    functionDepth: 2
    functionLinenumber: 7589
    functionLinenumberEnd: 7591
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - T
    - Catch::Generators::makeGenerators
    - Catch::Generators::value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( as<T>, U&& val, Gs &&... moreGenerators ) -> Generators<T>
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7600,1
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7601,1
    - Dst: Catch::Generators::acquireGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7603,1
    - Dst: Catch::Generators::createGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7607,1
    - Dst: Catch::Detail::make_unique<Generators<UnderlyingType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7610,1
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7611,1
    - Dst: static_cast<IGenerator<UnderlyingType> const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7614,1
    - Dst: IGeneratorTracker*::getGenerator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7614,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - generatorName
    - ' lineInfo'
    - ' generatorExpression'
    argTypes:
    - StringRef
    - SourceLineInfo
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7616
      start: 7600
    functionDepth: 1
    functionLinenumber: 7600
    functionLinenumberEnd: 7616
    functionName: Catch::Generators::generate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - IGeneratorTracker*::getGenerator
    - Catch::Detail::make_unique<Generators<UnderlyingType>>
    - static_cast<IGenerator<UnderlyingType> const&>
    - generatorExpression
    - Catch::Generators::acquireGeneratorTracker
    - get
    - Catch::Generators::createGeneratorTracker
    linkageType: ''
    returnType: auto
    signature: auto generate( StringRef generatorName, SourceLineInfo const& lineInfo,
      L const& generatorExpression ) -> typename decltype(generatorExpression())::type
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7429,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7430
      start: 7428
    functionDepth: 1
    functionLinenumber: 7428
    functionLinenumberEnd: 7430
    functionName: Catch::Generators::IGenerator::stringifyImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string stringifyImpl() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generator
    argTypes:
    - IGenerator<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7450
      start: 7449
    functionDepth: 0
    functionLinenumber: 7449
    functionLinenumberEnd: 7450
    functionName: Catch::Generators::GeneratorWrapper::GeneratorWrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorWrapper(IGenerator<T>* generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generator
    argTypes:
    - GeneratorPtr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7452
      start: 7451
    functionDepth: 1
    functionLinenumber: 7451
    functionLinenumberEnd: 7452
    functionName: Catch::Generators::GeneratorWrapper::GeneratorWrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void GeneratorWrapper(GeneratorPtr<T> generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7456
      start: 7454
    functionDepth: 0
    functionLinenumber: 7454
    functionLinenumberEnd: 7456
    functionName: '& get() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7457
    functionDepth: 0
    functionLinenumber: 7457
    functionLinenumberEnd: 7459
    functionName: Catch::Generators::GeneratorWrapper::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - countedNext
    linkageType: ''
    returnType: bool
    signature: bool next()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7469
      start: 7467
    functionDepth: 0
    functionLinenumber: 7467
    functionLinenumberEnd: 7469
    functionName: Catch::Generators::SingleValueGenerator::SingleValueGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SingleValueGenerator(T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7472
      start: 7470
    functionDepth: 1
    functionLinenumber: 7470
    functionLinenumberEnd: 7472
    functionName: Catch::Generators::SingleValueGenerator::SingleValueGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SingleValueGenerator(T&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7476
      start: 7474
    functionDepth: 0
    functionLinenumber: 7474
    functionLinenumberEnd: 7476
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7479
      start: 7477
    functionDepth: 0
    functionLinenumber: 7477
    functionLinenumberEnd: 7479
    functionName: Catch::Generators::SingleValueGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - values
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7490
      start: 7490
    functionDepth: 0
    functionLinenumber: 7490
    functionLinenumberEnd: 7490
    functionName: Catch::Generators::FixedValuesGenerator::FixedValuesGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FixedValuesGenerator( std::initializer_list<T> values )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7494
      start: 7492
    functionDepth: 0
    functionLinenumber: 7492
    functionLinenumberEnd: 7494
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7498
      start: 7495
    functionDepth: 1
    functionLinenumber: 7495
    functionLinenumberEnd: 7498
    functionName: Catch::Generators::FixedValuesGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<DecayedT>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7503,1
    - Dst: Catch::Detail::make_unique<SingleValueGenerator<DecayedT>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7504,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7506
      start: 7502
    functionDepth: 1
    functionLinenumber: 7502
    functionLinenumberEnd: 7506
    functionName: Catch::Generators::value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Detail::make_unique<SingleValueGenerator<DecayedT>>
    - GeneratorWrapper<DecayedT>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<DecayedT>
    signature: GeneratorWrapper<DecayedT> value( T&& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7509,1
    - Dst: Catch::Detail::make_unique<FixedValuesGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - values
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7510
      start: 7508
    functionDepth: 0
    functionLinenumber: 7508
    functionLinenumberEnd: 7510
    functionName: Catch::Generators::values
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Detail::make_unique<FixedValuesGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> values(std::initializer_list<T> values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7518,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7519
      start: 7517
    functionDepth: 1
    functionLinenumber: 7517
    functionLinenumberEnd: 7519
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( GeneratorWrapper<T>&& generator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7521,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7522
      start: 7520
    functionDepth: 0
    functionLinenumber: 7520
    functionLinenumberEnd: 7522
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - value
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( T const& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7525
      start: 7523
    functionDepth: 1
    functionLinenumber: 7523
    functionLinenumberEnd: 7525
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 9
    functionsReached:
    - value
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void add_generator( T&& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7530
      start: 7527
    functionDepth: 1
    functionLinenumber: 7527
    functionLinenumberEnd: 7530
    functionName: Catch::Generators::Generators::add_generator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 10
    functionsReached:
    - T
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: std::enable_if_t<!std::is_same<std::decay_t<U>, T>::value>
    signature: std::enable_if_t<!std::is_same<std::decay_t<U>, T>::value> add_generator(
      U&& val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7533,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' valueOrGenerator'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7534
      start: 7532
    functionDepth: 2
    functionLinenumber: 7532
    functionLinenumberEnd: 7534
    functionName: Catch::Generators::Generators::add_generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void add_generators( U&& valueOrGenerator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::Generators::add_generator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7538,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7538,1
    - Dst: Catch::Generators::Generators::add_generators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7539,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' valueOrGenerator'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7537
    functionDepth: 2
    functionLinenumber: 7537
    functionLinenumberEnd: 7540
    functionName: Catch::Generators::Generators::add_generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Generators::Generators::add_generators
    - Catch::Generators::Generators::add_generator
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void add_generators( U&& valueOrGenerator, Gs&&... moreGenerators )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7545,1
    - Dst: Catch::Generators::Generators::add_generators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7546,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7547
      start: 7544
    functionDepth: 3
    functionLinenumber: 7544
    functionLinenumberEnd: 7547
    functionName: Catch::Generators::Generators::Generators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Generators::add_generators
    - reserve
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void Generators(Gs &&... moreGenerators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7549
    functionDepth: 0
    functionLinenumber: 7549
    functionLinenumberEnd: 7551
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7554,1
    - Dst: Catch::Generators::Generators::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7557,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7562
      start: 7553
    functionDepth: 1
    functionLinenumber: 7553
    functionLinenumberEnd: 7562
    functionName: Catch::Generators::Generators::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Generators::Generators::next
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::values
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tuples
    argTypes:
    - std::initializer_list<std::tuple<std::decay_t<Ts>...>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7570
      start: 7567
    functionDepth: 1
    functionLinenumber: 7567
    functionLinenumberEnd: 7570
    functionName: Catch::Generators::table
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::values
    linkageType: ''
    returnType: GeneratorWrapper<std::tuple<std::decay_t<Ts>...>>
    signature: GeneratorWrapper<std::tuple<std::decay_t<Ts>...>> table( std::initializer_list<std::tuple<std::decay_t<Ts>...>>
      tuples )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generators<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7579
      start: 7577
    functionDepth: 1
    functionLinenumber: 7577
    functionLinenumberEnd: 7579
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Generators<T>
    - CATCH_MOVE
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( GeneratorWrapper<T>&& generator, Gs &&... moreGenerators
      ) -> Generators<T>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Generators<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7582,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7583
      start: 7581
    functionDepth: 1
    functionLinenumber: 7581
    functionLinenumberEnd: 7583
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Generators<T>
    - CATCH_MOVE
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( GeneratorWrapper<T>&& generator ) -> Generators<T>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::makeGenerators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: Catch::Generators::value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7587
      start: 7585
    functionDepth: 2
    functionLinenumber: 7585
    functionLinenumberEnd: 7587
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Generators::makeGenerators
    - Catch::Generators::value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( T&& val, Gs &&... moreGenerators ) -> Generators<std::decay_t<T>>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::makeGenerators
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: Catch::Generators::value
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7591
      start: 7589
    functionDepth: 2
    functionLinenumber: 7589
    functionLinenumberEnd: 7591
    functionName: Catch::Generators::makeGenerators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - T
    - Catch::Generators::makeGenerators
    - Catch::Generators::value
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeGenerators( as<T>, U&& val, Gs &&... moreGenerators ) -> Generators<T>
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7600,1
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7601,1
    - Dst: Catch::Generators::acquireGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7603,1
    - Dst: Catch::Generators::createGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7607,1
    - Dst: Catch::Detail::make_unique<Generators<UnderlyingType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7610,1
    - Dst: generatorExpression
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7611,1
    - Dst: static_cast<IGenerator<UnderlyingType> const&>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7614,1
    - Dst: IGeneratorTracker*::getGenerator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7614,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - generatorName
    - ' lineInfo'
    - ' generatorExpression'
    argTypes:
    - StringRef
    - SourceLineInfo
    - L
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7616
      start: 7600
    functionDepth: 1
    functionLinenumber: 7600
    functionLinenumberEnd: 7616
    functionName: Catch::Generators::generate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - IGeneratorTracker*::getGenerator
    - Catch::Detail::make_unique<Generators<UnderlyingType>>
    - static_cast<IGenerator<UnderlyingType> const&>
    - generatorExpression
    - Catch::Generators::acquireGeneratorTracker
    - get
    - Catch::Generators::createGeneratorTracker
    linkageType: ''
    returnType: auto
    signature: auto generate( StringRef generatorName, SourceLineInfo const& lineInfo,
      L const& generatorExpression ) -> typename decltype(generatorExpression())::type
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7622
      start: 7621
    functionDepth: 0
    functionLinenumber: 7621
    functionLinenumberEnd: 7622
    functionName: CATCH_INTERNAL_GENERATOR_STRINGIZE_IMPL
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_GENERATOR_STRINGIZE_IMPL( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7623
      start: 7622
    functionDepth: 0
    functionLinenumber: 7622
    functionLinenumberEnd: 7623
    functionName: CATCH_INTERNAL_GENERATOR_STRINGIZE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_GENERATOR_STRINGIZE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7628
      start: 7624
    functionDepth: 0
    functionLinenumber: 7624
    functionLinenumberEnd: 7628
    functionName: GENERATE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7632
      start: 7628
    functionDepth: 0
    functionLinenumber: 7628
    functionLinenumberEnd: 7632
    functionName: GENERATE_COPY
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_COPY( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7636
      start: 7632
    functionDepth: 0
    functionLinenumber: 7632
    functionLinenumberEnd: 7636
    functionName: GENERATE_REF
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_REF( ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7656,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - target
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts:
    - condition: (target != 0 && "Empty generators are not allowed")
      pos:
        line_end: 7658
        line_start: 7658
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 7660
      start: 7655
    functionDepth: 1
    functionLinenumber: 7655
    functionLinenumberEnd: 7660
    functionName: Catch::Generators::TakeGenerator::TakeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TakeGenerator(size_t target, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7663
      start: 7661
    functionDepth: 0
    functionLinenumber: 7661
    functionLinenumberEnd: 7663
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::TakeGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7677
      start: 7664
    functionDepth: 1
    functionLinenumber: 7664
    functionLinenumberEnd: 7677
    functionName: Catch::Generators::TakeGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Generators::TakeGenerator::next
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    - Dst: Catch::Detail::make_unique<TakeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - target
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7683
      start: 7681
    functionDepth: 1
    functionLinenumber: 7681
    functionLinenumberEnd: 7683
    functionName: Catch::Generators::take
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - Catch::Detail::make_unique<TakeGenerator<T>>
    - CATCH_MOVE
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> take(size_t target, GeneratorWrapper<T>&& generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7693,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7694,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7696,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7696,1
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7699,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' pred'
    - ' generator'
    argTypes:
    - P
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7704
      start: 7692
    functionDepth: 1
    functionLinenumber: 7692
    functionLinenumberEnd: 7704
    functionName: Catch::Generators::FilterGenerator::FilterGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Detail::throw_generator_exception
    - m_predicate
    - CATCH_MOVE
    - CATCH_FORWARD
    - Catch::Generators::FilterGenerator::next
    - get
    linkageType: ''
    returnType: void
    signature: void FilterGenerator(P&& pred, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7708
      start: 7706
    functionDepth: 0
    functionLinenumber: 7706
    functionLinenumberEnd: 7708
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7711,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7717
      start: 7710
    functionDepth: 1
    functionLinenumber: 7710
    functionLinenumberEnd: 7717
    functionName: Catch::Generators::FilterGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Generators::FilterGenerator::next
    - get
    - m_predicate
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: Catch::Detail::make_unique<FilterGenerator<T, Predicate>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' pred'
    - ' generator'
    argTypes:
    - Predicate
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7724
      start: 7722
    functionDepth: 1
    functionLinenumber: 7722
    functionLinenumberEnd: 7724
    functionName: Catch::Generators::filter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - CATCH_FORWARD
    - Catch::Detail::make_unique<FilterGenerator<T, Predicate>>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> filter(Predicate&& pred, GeneratorWrapper<T>&&
      generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7738,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - repeats
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts:
    - condition: (m_target_repeats > 0 && "Repeat generator must repeat at least once")
      pos:
        line_end: 7740
        line_start: 7740
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 7742
      start: 7737
    functionDepth: 1
    functionLinenumber: 7737
    functionLinenumberEnd: 7742
    functionName: Catch::Generators::RepeatGenerator::RepeatGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void RepeatGenerator(size_t repeats, GeneratorWrapper<T>&& generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7746,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7746,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7750
      start: 7744
    functionDepth: 0
    functionLinenumber: 7744
    functionLinenumberEnd: 7750
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - get
    - back
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::RepeatGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7760,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7774
      start: 7752
    functionDepth: 1
    functionLinenumber: 7752
    functionLinenumberEnd: 7774
    functionName: Catch::Generators::RepeatGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Generators::RepeatGenerator::next
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    - Dst: Catch::Detail::make_unique<RepeatGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - repeats
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7780
      start: 7778
    functionDepth: 1
    functionLinenumber: 7778
    functionLinenumberEnd: 7780
    functionName: Catch::Generators::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RepeatGenerator<T>>
    - GeneratorWrapper<T>
    - CATCH_MOVE
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> repeat(size_t repeats, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7792,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7793,1
    - Dst: m_function
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7794,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - F2
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7795
      start: 7791
    functionDepth: 1
    functionLinenumber: 7791
    functionLinenumberEnd: 7795
    functionName: Catch::Generators::MapGenerator::MapGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_function
    - CATCH_MOVE
    - CATCH_FORWARD
    - get
    linkageType: ''
    returnType: void
    signature: void MapGenerator(F2&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7799
      start: 7797
    functionDepth: 0
    functionLinenumber: 7797
    functionLinenumberEnd: 7799
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::MapGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7801,1
    - Dst: m_function
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7803,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7806
      start: 7800
    functionDepth: 1
    functionLinenumber: 7800
    functionLinenumberEnd: 7806
    functionName: Catch::Generators::MapGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Generators::MapGenerator::next
    - get
    - m_function
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7811,1
    - Dst: Catch::Detail::make_unique<MapGenerator<T, U, Func>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - Func
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7814
      start: 7810
    functionDepth: 1
    functionLinenumber: 7810
    functionLinenumberEnd: 7814
    functionName: Catch::Generators::map
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - Catch::Detail::make_unique<MapGenerator<T, U, Func>>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7818,1
    - Dst: Catch::Detail::make_unique<MapGenerator<T, U, Func>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - Func
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7821
      start: 7817
    functionDepth: 1
    functionLinenumber: 7817
    functionLinenumberEnd: 7821
    functionName: Catch::Generators::map
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - Catch::Detail::make_unique<MapGenerator<T, U, Func>>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7831,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7833,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7835,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7835,1
    - Dst: Catch::Generators::ChunkGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7837,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7838,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7840,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - size
    - generator
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7830
    functionDepth: 1
    functionLinenumber: 7830
    functionLinenumberEnd: 7843
    functionName: Catch::Generators::ChunkGenerator::ChunkGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Generators::Detail::throw_generator_exception
    - Catch::Generators::ChunkGenerator::next
    - reserve
    - CATCH_MOVE
    - get
    linkageType: ''
    returnType: void
    signature: void ChunkGenerator(size_t size, GeneratorWrapper<T> generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7846
      start: 7844
    functionDepth: 0
    functionLinenumber: 7844
    functionLinenumberEnd: 7846
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7848,1
    - Dst: Catch::Generators::ChunkGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7850,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7853,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7856
      start: 7847
    functionDepth: 1
    functionLinenumber: 7847
    functionLinenumberEnd: 7856
    functionName: Catch::Generators::ChunkGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - push_back
    - Catch::Generators::ChunkGenerator::next
    - get
    - clear
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<std::vector<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7861,1
    - Dst: Catch::Detail::make_unique<ChunkGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7862,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - size
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7864
      start: 7860
    functionDepth: 1
    functionLinenumber: 7860
    functionLinenumberEnd: 7864
    functionName: Catch::Generators::chunk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<std::vector<T>>
    - CATCH_MOVE
    - Catch::Detail::make_unique<ChunkGenerator<T>>
    linkageType: ''
    returnType: GeneratorWrapper<std::vector<T>>
    signature: GeneratorWrapper<std::vector<T>> chunk(size_t size, GeneratorWrapper<T>&&
      generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7656,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - target
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts:
    - condition: (target != 0 && "Empty generators are not allowed")
      pos:
        line_end: 7658
        line_start: 7658
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 7660
      start: 7655
    functionDepth: 1
    functionLinenumber: 7655
    functionLinenumberEnd: 7660
    functionName: Catch::Generators::TakeGenerator::TakeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TakeGenerator(size_t target, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7663
      start: 7661
    functionDepth: 0
    functionLinenumber: 7661
    functionLinenumberEnd: 7663
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::TakeGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7677
      start: 7664
    functionDepth: 1
    functionLinenumber: 7664
    functionLinenumberEnd: 7677
    functionName: Catch::Generators::TakeGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Generators::TakeGenerator::next
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    - Dst: Catch::Detail::make_unique<TakeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - target
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7683
      start: 7681
    functionDepth: 1
    functionLinenumber: 7681
    functionLinenumberEnd: 7683
    functionName: Catch::Generators::take
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - Catch::Detail::make_unique<TakeGenerator<T>>
    - CATCH_MOVE
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> take(size_t target, GeneratorWrapper<T>&& generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7693,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7694,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7696,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7696,1
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7699,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' pred'
    - ' generator'
    argTypes:
    - P
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7704
      start: 7692
    functionDepth: 2
    functionLinenumber: 7692
    functionLinenumberEnd: 7704
    functionName: Catch::Generators::FilterGenerator::FilterGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Detail::throw_generator_exception
    - m_predicate
    - CATCH_MOVE
    - CATCH_FORWARD
    - Catch::Generators::FilterGenerator::next
    - get
    linkageType: ''
    returnType: void
    signature: void FilterGenerator(P&& pred, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7708
      start: 7706
    functionDepth: 0
    functionLinenumber: 7706
    functionLinenumberEnd: 7708
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7711,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7717
      start: 7710
    functionDepth: 1
    functionLinenumber: 7710
    functionLinenumberEnd: 7717
    functionName: Catch::Generators::FilterGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Generators::FilterGenerator::next
    - get
    - m_predicate
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: Catch::Detail::make_unique<FilterGenerator<T, Predicate>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' pred'
    - ' generator'
    argTypes:
    - Predicate
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7724
      start: 7722
    functionDepth: 1
    functionLinenumber: 7722
    functionLinenumberEnd: 7724
    functionName: Catch::Generators::filter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - CATCH_FORWARD
    - Catch::Detail::make_unique<FilterGenerator<T, Predicate>>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> filter(Predicate&& pred, GeneratorWrapper<T>&&
      generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7738,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - repeats
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts:
    - condition: (m_target_repeats > 0 && "Repeat generator must repeat at least once")
      pos:
        line_end: 7740
        line_start: 7740
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 7742
      start: 7737
    functionDepth: 1
    functionLinenumber: 7737
    functionLinenumberEnd: 7742
    functionName: Catch::Generators::RepeatGenerator::RepeatGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void RepeatGenerator(size_t repeats, GeneratorWrapper<T>&& generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7746,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7746,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7750
      start: 7744
    functionDepth: 0
    functionLinenumber: 7744
    functionLinenumberEnd: 7750
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - get
    - back
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::RepeatGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7760,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7774
      start: 7752
    functionDepth: 1
    functionLinenumber: 7752
    functionLinenumberEnd: 7774
    functionName: Catch::Generators::RepeatGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Generators::RepeatGenerator::next
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    - Dst: Catch::Detail::make_unique<RepeatGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - repeats
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7780
      start: 7778
    functionDepth: 1
    functionLinenumber: 7778
    functionLinenumberEnd: 7780
    functionName: Catch::Generators::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RepeatGenerator<T>>
    - GeneratorWrapper<T>
    - CATCH_MOVE
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> repeat(size_t repeats, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7792,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7793,1
    - Dst: m_function
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7794,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - F2
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7795
      start: 7791
    functionDepth: 1
    functionLinenumber: 7791
    functionLinenumberEnd: 7795
    functionName: Catch::Generators::MapGenerator::MapGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_function
    - CATCH_MOVE
    - CATCH_FORWARD
    - get
    linkageType: ''
    returnType: void
    signature: void MapGenerator(F2&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7799
      start: 7797
    functionDepth: 0
    functionLinenumber: 7797
    functionLinenumberEnd: 7799
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::MapGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7801,1
    - Dst: m_function
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7803,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7806
      start: 7800
    functionDepth: 1
    functionLinenumber: 7800
    functionLinenumberEnd: 7806
    functionName: Catch::Generators::MapGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Generators::MapGenerator::next
    - get
    - m_function
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7811,1
    - Dst: Catch::Detail::make_unique<MapGenerator<T, U, Func>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - Func
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7814
      start: 7810
    functionDepth: 1
    functionLinenumber: 7810
    functionLinenumberEnd: 7814
    functionName: Catch::Generators::map
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - Catch::Detail::make_unique<MapGenerator<T, U, Func>>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7818,1
    - Dst: Catch::Detail::make_unique<MapGenerator<T, U, Func>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - Func
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7821
      start: 7817
    functionDepth: 1
    functionLinenumber: 7817
    functionLinenumberEnd: 7821
    functionName: Catch::Generators::map
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - Catch::Detail::make_unique<MapGenerator<T, U, Func>>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7831,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7833,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7835,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7835,1
    - Dst: Catch::Generators::ChunkGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7837,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7838,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7840,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - size
    - generator
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7830
    functionDepth: 2
    functionLinenumber: 7830
    functionLinenumberEnd: 7843
    functionName: Catch::Generators::ChunkGenerator::ChunkGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Generators::Detail::throw_generator_exception
    - Catch::Generators::ChunkGenerator::next
    - reserve
    - CATCH_MOVE
    - get
    linkageType: ''
    returnType: void
    signature: void ChunkGenerator(size_t size, GeneratorWrapper<T> generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7846
      start: 7844
    functionDepth: 0
    functionLinenumber: 7844
    functionLinenumberEnd: 7846
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7848,1
    - Dst: Catch::Generators::ChunkGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7850,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7853,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7856
      start: 7847
    functionDepth: 1
    functionLinenumber: 7847
    functionLinenumberEnd: 7856
    functionName: Catch::Generators::ChunkGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - push_back
    - Catch::Generators::ChunkGenerator::next
    - get
    - clear
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<std::vector<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7861,1
    - Dst: Catch::Detail::make_unique<ChunkGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7862,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - size
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7864
      start: 7860
    functionDepth: 1
    functionLinenumber: 7860
    functionLinenumberEnd: 7864
    functionName: Catch::Generators::chunk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<std::vector<T>>
    - CATCH_MOVE
    - Catch::Detail::make_unique<ChunkGenerator<T>>
    linkageType: ''
    returnType: GeneratorWrapper<std::vector<T>>
    signature: GeneratorWrapper<std::vector<T>> chunk(size_t size, GeneratorWrapper<T>&&
      generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7656,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - target
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts:
    - condition: (target != 0 && "Empty generators are not allowed")
      pos:
        line_end: 7658
        line_start: 7658
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 7660
      start: 7655
    functionDepth: 1
    functionLinenumber: 7655
    functionLinenumberEnd: 7660
    functionName: Catch::Generators::TakeGenerator::TakeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TakeGenerator(size_t target, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7663
      start: 7661
    functionDepth: 0
    functionLinenumber: 7661
    functionLinenumberEnd: 7663
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::TakeGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7677
      start: 7664
    functionDepth: 1
    functionLinenumber: 7664
    functionLinenumberEnd: 7677
    functionName: Catch::Generators::TakeGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Generators::TakeGenerator::next
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    - Dst: Catch::Detail::make_unique<TakeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - target
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7683
      start: 7681
    functionDepth: 1
    functionLinenumber: 7681
    functionLinenumberEnd: 7683
    functionName: Catch::Generators::take
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - Catch::Detail::make_unique<TakeGenerator<T>>
    - CATCH_MOVE
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> take(size_t target, GeneratorWrapper<T>&& generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7693,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7694,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7696,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7696,1
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7699,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' pred'
    - ' generator'
    argTypes:
    - P
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7704
      start: 7692
    functionDepth: 2
    functionLinenumber: 7692
    functionLinenumberEnd: 7704
    functionName: Catch::Generators::FilterGenerator::FilterGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Detail::throw_generator_exception
    - m_predicate
    - CATCH_MOVE
    - CATCH_FORWARD
    - Catch::Generators::FilterGenerator::next
    - get
    linkageType: ''
    returnType: void
    signature: void FilterGenerator(P&& pred, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7708
      start: 7706
    functionDepth: 0
    functionLinenumber: 7706
    functionLinenumberEnd: 7708
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7711,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7717
      start: 7710
    functionDepth: 1
    functionLinenumber: 7710
    functionLinenumberEnd: 7717
    functionName: Catch::Generators::FilterGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Generators::FilterGenerator::next
    - get
    - m_predicate
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: Catch::Detail::make_unique<FilterGenerator<T, Predicate>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' pred'
    - ' generator'
    argTypes:
    - Predicate
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7724
      start: 7722
    functionDepth: 1
    functionLinenumber: 7722
    functionLinenumberEnd: 7724
    functionName: Catch::Generators::filter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - CATCH_FORWARD
    - Catch::Detail::make_unique<FilterGenerator<T, Predicate>>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> filter(Predicate&& pred, GeneratorWrapper<T>&&
      generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7738,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - repeats
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts:
    - condition: (m_target_repeats > 0 && "Repeat generator must repeat at least once")
      pos:
        line_end: 7740
        line_start: 7740
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 7742
      start: 7737
    functionDepth: 1
    functionLinenumber: 7737
    functionLinenumberEnd: 7742
    functionName: Catch::Generators::RepeatGenerator::RepeatGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void RepeatGenerator(size_t repeats, GeneratorWrapper<T>&& generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7746,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7746,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7750
      start: 7744
    functionDepth: 0
    functionLinenumber: 7744
    functionLinenumberEnd: 7750
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - get
    - back
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::RepeatGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7760,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7774
      start: 7752
    functionDepth: 1
    functionLinenumber: 7752
    functionLinenumberEnd: 7774
    functionName: Catch::Generators::RepeatGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Generators::RepeatGenerator::next
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    - Dst: Catch::Detail::make_unique<RepeatGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - repeats
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7780
      start: 7778
    functionDepth: 1
    functionLinenumber: 7778
    functionLinenumberEnd: 7780
    functionName: Catch::Generators::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RepeatGenerator<T>>
    - GeneratorWrapper<T>
    - CATCH_MOVE
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> repeat(size_t repeats, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7792,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7793,1
    - Dst: m_function
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7794,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - F2
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7795
      start: 7791
    functionDepth: 1
    functionLinenumber: 7791
    functionLinenumberEnd: 7795
    functionName: Catch::Generators::MapGenerator::MapGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_function
    - CATCH_MOVE
    - CATCH_FORWARD
    - get
    linkageType: ''
    returnType: void
    signature: void MapGenerator(F2&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7799
      start: 7797
    functionDepth: 0
    functionLinenumber: 7797
    functionLinenumberEnd: 7799
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::MapGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7801,1
    - Dst: m_function
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7803,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7806
      start: 7800
    functionDepth: 1
    functionLinenumber: 7800
    functionLinenumberEnd: 7806
    functionName: Catch::Generators::MapGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Generators::MapGenerator::next
    - get
    - m_function
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7811,1
    - Dst: Catch::Detail::make_unique<MapGenerator<T, U, Func>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - Func
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7814
      start: 7810
    functionDepth: 1
    functionLinenumber: 7810
    functionLinenumberEnd: 7814
    functionName: Catch::Generators::map
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - Catch::Detail::make_unique<MapGenerator<T, U, Func>>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7818,1
    - Dst: Catch::Detail::make_unique<MapGenerator<T, U, Func>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - Func
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7821
      start: 7817
    functionDepth: 1
    functionLinenumber: 7817
    functionLinenumberEnd: 7821
    functionName: Catch::Generators::map
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - Catch::Detail::make_unique<MapGenerator<T, U, Func>>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7831,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7833,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7835,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7835,1
    - Dst: Catch::Generators::ChunkGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7837,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7838,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7840,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - size
    - generator
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7830
    functionDepth: 2
    functionLinenumber: 7830
    functionLinenumberEnd: 7843
    functionName: Catch::Generators::ChunkGenerator::ChunkGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Generators::Detail::throw_generator_exception
    - Catch::Generators::ChunkGenerator::next
    - reserve
    - CATCH_MOVE
    - get
    linkageType: ''
    returnType: void
    signature: void ChunkGenerator(size_t size, GeneratorWrapper<T> generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7846
      start: 7844
    functionDepth: 0
    functionLinenumber: 7844
    functionLinenumberEnd: 7846
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7848,1
    - Dst: Catch::Generators::ChunkGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7850,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7853,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7856
      start: 7847
    functionDepth: 1
    functionLinenumber: 7847
    functionLinenumberEnd: 7856
    functionName: Catch::Generators::ChunkGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - push_back
    - Catch::Generators::ChunkGenerator::next
    - get
    - clear
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<std::vector<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7861,1
    - Dst: Catch::Detail::make_unique<ChunkGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7862,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - size
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7864
      start: 7860
    functionDepth: 1
    functionLinenumber: 7860
    functionLinenumberEnd: 7864
    functionName: Catch::Generators::chunk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<std::vector<T>>
    - CATCH_MOVE
    - Catch::Detail::make_unique<ChunkGenerator<T>>
    linkageType: ''
    returnType: GeneratorWrapper<std::vector<T>>
    signature: GeneratorWrapper<std::vector<T>> chunk(size_t size, GeneratorWrapper<T>&&
      generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7656,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - target
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts:
    - condition: (target != 0 && "Empty generators are not allowed")
      pos:
        line_end: 7658
        line_start: 7658
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 7660
      start: 7655
    functionDepth: 1
    functionLinenumber: 7655
    functionLinenumberEnd: 7660
    functionName: Catch::Generators::TakeGenerator::TakeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TakeGenerator(size_t target, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7663
      start: 7661
    functionDepth: 0
    functionLinenumber: 7661
    functionLinenumberEnd: 7663
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::TakeGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7677
      start: 7664
    functionDepth: 1
    functionLinenumber: 7664
    functionLinenumberEnd: 7677
    functionName: Catch::Generators::TakeGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Generators::TakeGenerator::next
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    - Dst: Catch::Detail::make_unique<TakeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - target
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7683
      start: 7681
    functionDepth: 1
    functionLinenumber: 7681
    functionLinenumberEnd: 7683
    functionName: Catch::Generators::take
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - Catch::Detail::make_unique<TakeGenerator<T>>
    - CATCH_MOVE
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> take(size_t target, GeneratorWrapper<T>&& generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7693,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7694,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7696,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7696,1
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7699,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' pred'
    - ' generator'
    argTypes:
    - P
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7704
      start: 7692
    functionDepth: 2
    functionLinenumber: 7692
    functionLinenumberEnd: 7704
    functionName: Catch::Generators::FilterGenerator::FilterGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Generators::Detail::throw_generator_exception
    - m_predicate
    - CATCH_MOVE
    - CATCH_FORWARD
    - Catch::Generators::FilterGenerator::next
    - get
    linkageType: ''
    returnType: void
    signature: void FilterGenerator(P&& pred, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7708
      start: 7706
    functionDepth: 0
    functionLinenumber: 7706
    functionLinenumberEnd: 7708
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7711,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    - Dst: Catch::Generators::FilterGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7717
      start: 7710
    functionDepth: 1
    functionLinenumber: 7710
    functionLinenumberEnd: 7717
    functionName: Catch::Generators::FilterGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Generators::FilterGenerator::next
    - get
    - m_predicate
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: Catch::Detail::make_unique<FilterGenerator<T, Predicate>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' pred'
    - ' generator'
    argTypes:
    - Predicate
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7724
      start: 7722
    functionDepth: 1
    functionLinenumber: 7722
    functionLinenumberEnd: 7724
    functionName: Catch::Generators::filter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - CATCH_FORWARD
    - Catch::Detail::make_unique<FilterGenerator<T, Predicate>>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> filter(Predicate&& pred, GeneratorWrapper<T>&&
      generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7738,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - repeats
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts:
    - condition: (m_target_repeats > 0 && "Repeat generator must repeat at least once")
      pos:
        line_end: 7740
        line_start: 7740
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 7742
      start: 7737
    functionDepth: 1
    functionLinenumber: 7737
    functionLinenumberEnd: 7742
    functionName: Catch::Generators::RepeatGenerator::RepeatGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void RepeatGenerator(size_t repeats, GeneratorWrapper<T>&& generator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7746,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7746,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7750
      start: 7744
    functionDepth: 0
    functionLinenumber: 7744
    functionLinenumberEnd: 7750
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - get
    - back
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::RepeatGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7760,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7774
      start: 7752
    functionDepth: 1
    functionLinenumber: 7752
    functionLinenumberEnd: 7774
    functionName: Catch::Generators::RepeatGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Generators::RepeatGenerator::next
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    - Dst: Catch::Detail::make_unique<RepeatGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - repeats
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7780
      start: 7778
    functionDepth: 1
    functionLinenumber: 7778
    functionLinenumberEnd: 7780
    functionName: Catch::Generators::repeat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RepeatGenerator<T>>
    - GeneratorWrapper<T>
    - CATCH_MOVE
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> repeat(size_t repeats, GeneratorWrapper<T>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7792,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7793,1
    - Dst: m_function
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7794,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - F2
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7795
      start: 7791
    functionDepth: 1
    functionLinenumber: 7791
    functionLinenumberEnd: 7795
    functionName: Catch::Generators::MapGenerator::MapGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_function
    - CATCH_MOVE
    - CATCH_FORWARD
    - get
    linkageType: ''
    returnType: void
    signature: void MapGenerator(F2&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7799
      start: 7797
    functionDepth: 0
    functionLinenumber: 7797
    functionLinenumberEnd: 7799
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::MapGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7801,1
    - Dst: m_function
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7803,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7806
      start: 7800
    functionDepth: 1
    functionLinenumber: 7800
    functionLinenumberEnd: 7806
    functionName: Catch::Generators::MapGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Generators::MapGenerator::next
    - get
    - m_function
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7811,1
    - Dst: Catch::Detail::make_unique<MapGenerator<T, U, Func>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - Func
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7814
      start: 7810
    functionDepth: 1
    functionLinenumber: 7810
    functionLinenumberEnd: 7814
    functionName: Catch::Generators::map
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - Catch::Detail::make_unique<MapGenerator<T, U, Func>>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7818,1
    - Dst: Catch::Detail::make_unique<MapGenerator<T, U, Func>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' function'
    - ' generator'
    argTypes:
    - Func
    - GeneratorWrapper<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7821
      start: 7817
    functionDepth: 1
    functionLinenumber: 7817
    functionLinenumberEnd: 7821
    functionName: Catch::Generators::map
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<T>
    - CATCH_MOVE
    - Catch::Detail::make_unique<MapGenerator<T, U, Func>>
    - CATCH_FORWARD
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> map(Func&& function, GeneratorWrapper<U>&& generator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7831,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7833,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7835,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7835,1
    - Dst: Catch::Generators::ChunkGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7837,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7838,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7840,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - size
    - generator
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7830
    functionDepth: 2
    functionLinenumber: 7830
    functionLinenumberEnd: 7843
    functionName: Catch::Generators::ChunkGenerator::ChunkGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::Generators::Detail::throw_generator_exception
    - Catch::Generators::ChunkGenerator::next
    - reserve
    - CATCH_MOVE
    - get
    linkageType: ''
    returnType: void
    signature: void ChunkGenerator(size_t size, GeneratorWrapper<T> generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7846
      start: 7844
    functionDepth: 0
    functionLinenumber: 7844
    functionLinenumberEnd: 7846
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> & get() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7848,1
    - Dst: Catch::Generators::ChunkGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7850,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7853,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7856
      start: 7847
    functionDepth: 1
    functionLinenumber: 7847
    functionLinenumberEnd: 7856
    functionName: Catch::Generators::ChunkGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - push_back
    - Catch::Generators::ChunkGenerator::next
    - get
    - clear
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<std::vector<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7861,1
    - Dst: Catch::Detail::make_unique<ChunkGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7862,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - size
    - ' generator'
    argTypes:
    - size_t
    - GeneratorWrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7864
      start: 7860
    functionDepth: 1
    functionLinenumber: 7860
    functionLinenumberEnd: 7864
    functionName: Catch::Generators::chunk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<std::vector<T>>
    - CATCH_MOVE
    - Catch::Detail::make_unique<ChunkGenerator<T>>
    linkageType: ''
    returnType: GeneratorWrapper<std::vector<T>>
    signature: GeneratorWrapper<std::vector<T>> chunk(size_t size, GeneratorWrapper<T>&&
      generator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7896
      start: 7894
    functionDepth: 0
    functionLinenumber: 7894
    functionLinenumberEnd: 7896
    functionName: Catch::SimplePcg32::result_type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_type (min)()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<result_type>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7899
      start: 7897
    functionDepth: 0
    functionLinenumber: 7897
    functionLinenumberEnd: 7899
    functionName: Catch::SimplePcg32::result_type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<result_type>
    linkageType: ''
    returnType: void
    signature: void result_type (max)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7902
      start: 7902
    functionDepth: 0
    functionLinenumber: 7902
    functionLinenumberEnd: 7902
    functionName: Catch::SimplePcg32::SimplePcg32
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimplePcg32()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7896
      start: 7894
    functionDepth: 0
    functionLinenumber: 7894
    functionLinenumberEnd: 7896
    functionName: Catch::SimplePcg32::result_type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_type (min)()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<result_type>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:7898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7899
      start: 7897
    functionDepth: 0
    functionLinenumber: 7897
    functionLinenumberEnd: 7899
    functionName: Catch::SimplePcg32::result_type
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<result_type>
    linkageType: ''
    returnType: void
    signature: void result_type (max)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7902
      start: 7902
    functionDepth: 0
    functionLinenumber: 7902
    functionLinenumberEnd: 7902
    functionName: Catch::SimplePcg32::SimplePcg32
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimplePcg32()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7985
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 7985
    functionName: SizedUnsignedTypeHelper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SizedUnsignedTypeHelper( TYPE )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ExtendedMultResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8004
      start: 8002
    functionDepth: 0
    functionLinenumber: 8002
    functionLinenumberEnd: 8004
    functionName: operator==( ExtendedMultResult const& rhs ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( ExtendedMultResult const& rhs ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8017,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8018,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8020,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8020,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8024,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8024,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8028,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8028,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8030,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8030,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8034
      start: 8013
    functionDepth: 1
    functionLinenumber: 8013
    functionLinenumberEnd: 8034
    functionName: Catch::Detail::extendedMultPortable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CarryBits
    - Digits
    linkageType: ''
    returnType: ExtendedMultResult<std::uint64_t>
    signature: ExtendedMultResult<std::uint64_t> extendedMultPortable(std::uint64_t
      lhs, std::uint64_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8016
      start: 8015
    functionDepth: 0
    functionLinenumber: 8015
    functionLinenumberEnd: 8016
    functionName: CarryBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CarryBits( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8017
      start: 8016
    functionDepth: 0
    functionLinenumber: 8016
    functionLinenumberEnd: 8017
    functionName: Digits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Digits( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __uint128_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8040,1
    - Dst: __uint128_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8040,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8041,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8042,1
    - Dst: _umul128
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8045,1
    - Dst: Catch::Detail::extendedMultPortable
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8050
      start: 8037
    functionDepth: 2
    functionLinenumber: 8037
    functionLinenumberEnd: 8050
    functionName: Catch::Detail::extendedMult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::extendedMultPortable
    - __uint128_t
    - _umul128
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: ExtendedMultResult<std::uint64_t>
    signature: ExtendedMultResult<std::uint64_t> extendedMult( std::uint64_t lhs,
      std::uint64_t rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WideType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8062,1
    - Dst: WideType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8062,1
    - Dst: static_cast<UInt>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8064,1
    - Dst: static_cast<UInt>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8065,1
    - Dst: UInt
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - UInt
    - UInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8066
      start: 8054
    functionDepth: 0
    functionLinenumber: 8054
    functionLinenumberEnd: 8066
    functionName: Catch::Detail::extendedMult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UInt>
    - UInt
    - WideType
    linkageType: ''
    returnType: ExtendedMultResult<UInt>
    signature: ExtendedMultResult<UInt> extendedMult( UInt lhs, UInt rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7985
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 7985
    functionName: SizedUnsignedTypeHelper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SizedUnsignedTypeHelper( TYPE )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ExtendedMultResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8004
      start: 8002
    functionDepth: 0
    functionLinenumber: 8002
    functionLinenumberEnd: 8004
    functionName: operator==( ExtendedMultResult const& rhs ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( ExtendedMultResult const& rhs ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8017,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8018,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8020,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8020,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8024,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8024,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8028,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8028,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8030,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8030,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8034
      start: 8013
    functionDepth: 1
    functionLinenumber: 8013
    functionLinenumberEnd: 8034
    functionName: Catch::Detail::extendedMultPortable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - CarryBits
    - Digits
    linkageType: ''
    returnType: ExtendedMultResult<std::uint64_t>
    signature: ExtendedMultResult<std::uint64_t> extendedMultPortable(std::uint64_t
      lhs, std::uint64_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8016
      start: 8015
    functionDepth: 0
    functionLinenumber: 8015
    functionLinenumberEnd: 8016
    functionName: CarryBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CarryBits( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8017
      start: 8016
    functionDepth: 0
    functionLinenumber: 8016
    functionLinenumberEnd: 8017
    functionName: Digits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Digits( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __uint128_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8040,1
    - Dst: __uint128_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8040,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8041,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8042,1
    - Dst: _umul128
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8045,1
    - Dst: Catch::Detail::extendedMultPortable
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8050
      start: 8037
    functionDepth: 2
    functionLinenumber: 8037
    functionLinenumberEnd: 8050
    functionName: Catch::Detail::extendedMult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::extendedMultPortable
    - __uint128_t
    - _umul128
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: ExtendedMultResult<std::uint64_t>
    signature: ExtendedMultResult<std::uint64_t> extendedMult( std::uint64_t lhs,
      std::uint64_t rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WideType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8062,1
    - Dst: WideType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8062,1
    - Dst: static_cast<UInt>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8064,1
    - Dst: static_cast<UInt>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8065,1
    - Dst: UInt
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - UInt
    - UInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8066
      start: 8054
    functionDepth: 0
    functionLinenumber: 8054
    functionLinenumberEnd: 8066
    functionName: Catch::Detail::extendedMult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UInt>
    - UInt
    - WideType
    linkageType: ''
    returnType: ExtendedMultResult<UInt>
    signature: ExtendedMultResult<UInt> extendedMult( UInt lhs, UInt rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8095,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8096,1
    - Dst: static_cast<gresult_type>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8096,1
    - Dst: gen
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' gen'
    argTypes:
    - Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8110
      start: 8090
    functionDepth: 1
    functionLinenumber: 8090
    functionLinenumberEnd: 8110
    functionName: Catch::fillBitsFrom
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - gen
    - libtorrent::aux::max
    - static_cast<gresult_type>
    linkageType: ''
    returnType: "std::enable_if_t<sizeof(typename Generator::result_type) < sizeof(TargetType),\n
      \           TargetType>"
    signature: "std::enable_if_t<sizeof(typename Generator::result_type) < sizeof(TargetType),\n
      \           TargetType> fillBitsFrom(Generator& gen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnsignedType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8132,1
    - Dst: static_cast<UnsignedType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - UnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8134
      start: 8120
    functionDepth: 0
    functionLinenumber: 8120
    functionLinenumberEnd: 8134
    functionName: Catch::transposeToNaturalOrder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnsignedType>
    - UnsignedType
    linkageType: ''
    returnType: std::enable_if_t<std::is_signed<OriginalType>::value, UnsignedType>
    signature: std::enable_if_t<std::is_signed<OriginalType>::value, UnsignedType>
      transposeToNaturalOrder( UnsignedType in )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - UnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8148
      start: 8140
    functionDepth: 0
    functionLinenumber: 8140
    functionLinenumberEnd: 8148
    functionName: Catch::transposeToNaturalOrder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<std::is_unsigned<OriginalType>::value, UnsignedType>
    signature: std::enable_if_t<std::is_unsigned<OriginalType>::value, UnsignedType>
      transposeToNaturalOrder(UnsignedType in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7985
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 7985
    functionName: SizedUnsignedTypeHelper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SizedUnsignedTypeHelper( TYPE )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ExtendedMultResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8004
      start: 8002
    functionDepth: 0
    functionLinenumber: 8002
    functionLinenumberEnd: 8004
    functionName: operator==( ExtendedMultResult const& rhs ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( ExtendedMultResult const& rhs ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8017,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8018,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8020,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8020,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8024,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8024,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8028,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8028,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8030,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8030,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8034
      start: 8013
    functionDepth: 1
    functionLinenumber: 8013
    functionLinenumberEnd: 8034
    functionName: Catch::Detail::extendedMultPortable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - CarryBits
    - Digits
    linkageType: ''
    returnType: ExtendedMultResult<std::uint64_t>
    signature: ExtendedMultResult<std::uint64_t> extendedMultPortable(std::uint64_t
      lhs, std::uint64_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8016
      start: 8015
    functionDepth: 0
    functionLinenumber: 8015
    functionLinenumberEnd: 8016
    functionName: CarryBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CarryBits( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8017
      start: 8016
    functionDepth: 0
    functionLinenumber: 8016
    functionLinenumberEnd: 8017
    functionName: Digits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Digits( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __uint128_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8040,1
    - Dst: __uint128_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8040,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8041,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8042,1
    - Dst: _umul128
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8045,1
    - Dst: Catch::Detail::extendedMultPortable
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8050
      start: 8037
    functionDepth: 2
    functionLinenumber: 8037
    functionLinenumberEnd: 8050
    functionName: Catch::Detail::extendedMult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::extendedMultPortable
    - __uint128_t
    - _umul128
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: ExtendedMultResult<std::uint64_t>
    signature: ExtendedMultResult<std::uint64_t> extendedMult( std::uint64_t lhs,
      std::uint64_t rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WideType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8062,1
    - Dst: WideType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8062,1
    - Dst: static_cast<UInt>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8064,1
    - Dst: static_cast<UInt>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8065,1
    - Dst: UInt
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - UInt
    - UInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8066
      start: 8054
    functionDepth: 0
    functionLinenumber: 8054
    functionLinenumberEnd: 8066
    functionName: Catch::Detail::extendedMult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UInt>
    - UInt
    - WideType
    linkageType: ''
    returnType: ExtendedMultResult<UInt>
    signature: ExtendedMultResult<UInt> extendedMult( UInt lhs, UInt rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7985
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 7985
    functionName: SizedUnsignedTypeHelper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SizedUnsignedTypeHelper( TYPE )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ExtendedMultResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8004
      start: 8002
    functionDepth: 0
    functionLinenumber: 8002
    functionLinenumberEnd: 8004
    functionName: operator==( ExtendedMultResult const& rhs ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( ExtendedMultResult const& rhs ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8017,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8018,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8020,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8020,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8024,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8024,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8028,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8028,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8030,1
    - Dst: CarryBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8030,1
    - Dst: Digits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8034
      start: 8013
    functionDepth: 1
    functionLinenumber: 8013
    functionLinenumberEnd: 8034
    functionName: Catch::Detail::extendedMultPortable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - CarryBits
    - Digits
    linkageType: ''
    returnType: ExtendedMultResult<std::uint64_t>
    signature: ExtendedMultResult<std::uint64_t> extendedMultPortable(std::uint64_t
      lhs, std::uint64_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8016
      start: 8015
    functionDepth: 0
    functionLinenumber: 8015
    functionLinenumberEnd: 8016
    functionName: CarryBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CarryBits( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8017
      start: 8016
    functionDepth: 0
    functionLinenumber: 8016
    functionLinenumberEnd: 8017
    functionName: Digits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Digits( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __uint128_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8040,1
    - Dst: __uint128_t
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8040,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8041,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8042,1
    - Dst: _umul128
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8045,1
    - Dst: Catch::Detail::extendedMultPortable
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8050
      start: 8037
    functionDepth: 2
    functionLinenumber: 8037
    functionLinenumberEnd: 8050
    functionName: Catch::Detail::extendedMult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::extendedMultPortable
    - __uint128_t
    - _umul128
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: ExtendedMultResult<std::uint64_t>
    signature: ExtendedMultResult<std::uint64_t> extendedMult( std::uint64_t lhs,
      std::uint64_t rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WideType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8062,1
    - Dst: WideType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8062,1
    - Dst: static_cast<UInt>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8064,1
    - Dst: static_cast<UInt>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8065,1
    - Dst: UInt
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - UInt
    - UInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8066
      start: 8054
    functionDepth: 0
    functionLinenumber: 8054
    functionLinenumberEnd: 8066
    functionName: Catch::Detail::extendedMult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UInt>
    - UInt
    - WideType
    linkageType: ''
    returnType: ExtendedMultResult<UInt>
    signature: ExtendedMultResult<UInt> extendedMult( UInt lhs, UInt rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8095,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8096,1
    - Dst: static_cast<gresult_type>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8096,1
    - Dst: gen
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' gen'
    argTypes:
    - Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8110
      start: 8090
    functionDepth: 1
    functionLinenumber: 8090
    functionLinenumberEnd: 8110
    functionName: Catch::fillBitsFrom
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - gen
    - libtorrent::aux::max
    - static_cast<gresult_type>
    linkageType: ''
    returnType: "std::enable_if_t<sizeof(typename Generator::result_type) < sizeof(TargetType),\n
      \           TargetType>"
    signature: "std::enable_if_t<sizeof(typename Generator::result_type) < sizeof(TargetType),\n
      \           TargetType> fillBitsFrom(Generator& gen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnsignedType
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8132,1
    - Dst: static_cast<UnsignedType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - UnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8134
      start: 8120
    functionDepth: 0
    functionLinenumber: 8120
    functionLinenumberEnd: 8134
    functionName: Catch::transposeToNaturalOrder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnsignedType>
    - UnsignedType
    linkageType: ''
    returnType: std::enable_if_t<std::is_signed<OriginalType>::value, UnsignedType>
    signature: std::enable_if_t<std::is_signed<OriginalType>::value, UnsignedType>
      transposeToNaturalOrder( UnsignedType in )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - UnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8148
      start: 8140
    functionDepth: 0
    functionLinenumber: 8140
    functionLinenumberEnd: 8148
    functionName: Catch::transposeToNaturalOrder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<std::is_unsigned<OriginalType>::value, UnsignedType>
    signature: std::enable_if_t<std::is_unsigned<OriginalType>::value, UnsignedType>
      transposeToNaturalOrder(UnsignedType in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uniform_integer_distribution::transposeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8194,1
    - Dst: Catch::uniform_integer_distribution::transposeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IntegerType
    - IntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8195
      start: 8191
    functionDepth: 1
    functionLinenumber: 8191
    functionLinenumberEnd: 8195
    functionName: Catch::uniform_integer_distribution::computeDistance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::uniform_integer_distribution::transposeTo
    linkageType: ''
    returnType: UnsignedIntegerType
    signature: UnsignedIntegerType computeDistance(IntegerType a, IntegerType b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ab_distance
    argTypes:
    - UnsignedIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8202
      start: 8197
    functionDepth: 0
    functionLinenumber: 8197
    functionLinenumberEnd: 8202
    functionName: Catch::uniform_integer_distribution::computeRejectionThreshold
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UnsignedIntegerType
    signature: UnsignedIntegerType computeRejectionThreshold(UnsignedIntegerType ab_distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::transposeToNaturalOrder<IntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8205,1
    - Dst: static_cast<UnsignedIntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - IntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8207
      start: 8204
    functionDepth: 0
    functionLinenumber: 8204
    functionLinenumberEnd: 8207
    functionName: Catch::uniform_integer_distribution::transposeTo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<UnsignedIntegerType>
    - Detail::transposeToNaturalOrder<IntegerType>
    linkageType: ''
    returnType: UnsignedIntegerType
    signature: UnsignedIntegerType transposeTo(IntegerType in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<IntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8209,1
    - Dst: Detail::transposeToNaturalOrder<IntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - UnsignedIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8211
      start: 8208
    functionDepth: 0
    functionLinenumber: 8208
    functionLinenumberEnd: 8211
    functionName: Catch::uniform_integer_distribution::transposeBack
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<IntegerType>
    - Detail::transposeToNaturalOrder<IntegerType>
    linkageType: ''
    returnType: IntegerType
    signature: IntegerType transposeBack(UnsignedIntegerType in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uniform_integer_distribution::transposeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8217,1
    - Dst: Catch::uniform_integer_distribution::computeDistance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8218,1
    - Dst: Catch::uniform_integer_distribution::computeRejectionThreshold
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8219,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IntegerType
    - IntegerType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8219
        line_start: 8219
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8221
      start: 8216
    functionDepth: 2
    functionLinenumber: 8216
    functionLinenumberEnd: 8221
    functionName: Catch::uniform_integer_distribution::uniform_integer_distribution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::uniform_integer_distribution::computeDistance
    - Catch::uniform_integer_distribution::computeRejectionThreshold
    - assert
    - Catch::uniform_integer_distribution::transposeTo
    linkageType: ''
    returnType: void
    signature: void uniform_integer_distribution( IntegerType a, IntegerType b )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transposeBack
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8227,1
    - Dst: Detail::fillBitsFrom<UnsignedIntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8227,1
    - Dst: Detail::fillBitsFrom<UnsignedIntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8230,1
    - Dst: Catch::Detail::extendedMult
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8231,1
    - Dst: Detail::fillBitsFrom<UnsignedIntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8235,1
    - Dst: Catch::Detail::extendedMult
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8236,1
    - Dst: transposeBack
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8240
      start: 8224
    functionDepth: 3
    functionLinenumber: 8224
    functionLinenumberEnd: 8240
    functionName: operator()( Generator& g )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - transposeBack
    - Catch::Detail::extendedMult
    - Detail::fillBitsFrom<UnsignedIntegerType>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()( Generator& g )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uniform_integer_distribution::transposeBack
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8242
      start: 8242
    functionDepth: 1
    functionLinenumber: 8242
    functionLinenumberEnd: 8242
    functionName: Catch::uniform_integer_distribution::a
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::uniform_integer_distribution::transposeBack
    linkageType: ''
    returnType: result_type
    signature: result_type a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uniform_integer_distribution::transposeBack
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8243
      start: 8243
    functionDepth: 1
    functionLinenumber: 8243
    functionLinenumberEnd: 8243
    functionName: Catch::uniform_integer_distribution::b
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::uniform_integer_distribution::transposeBack
    linkageType: ''
    returnType: result_type
    signature: result_type b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uniform_integer_distribution::transposeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8194,1
    - Dst: Catch::uniform_integer_distribution::transposeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IntegerType
    - IntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8195
      start: 8191
    functionDepth: 1
    functionLinenumber: 8191
    functionLinenumberEnd: 8195
    functionName: Catch::uniform_integer_distribution::computeDistance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::uniform_integer_distribution::transposeTo
    linkageType: ''
    returnType: UnsignedIntegerType
    signature: UnsignedIntegerType computeDistance(IntegerType a, IntegerType b) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ab_distance
    argTypes:
    - UnsignedIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8202
      start: 8197
    functionDepth: 0
    functionLinenumber: 8197
    functionLinenumberEnd: 8202
    functionName: Catch::uniform_integer_distribution::computeRejectionThreshold
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UnsignedIntegerType
    signature: UnsignedIntegerType computeRejectionThreshold(UnsignedIntegerType ab_distance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::transposeToNaturalOrder<IntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8205,1
    - Dst: static_cast<UnsignedIntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - IntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8207
      start: 8204
    functionDepth: 0
    functionLinenumber: 8204
    functionLinenumberEnd: 8207
    functionName: Catch::uniform_integer_distribution::transposeTo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - static_cast<UnsignedIntegerType>
    - Detail::transposeToNaturalOrder<IntegerType>
    linkageType: ''
    returnType: UnsignedIntegerType
    signature: UnsignedIntegerType transposeTo(IntegerType in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<IntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8209,1
    - Dst: Detail::transposeToNaturalOrder<IntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - UnsignedIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8211
      start: 8208
    functionDepth: 0
    functionLinenumber: 8208
    functionLinenumberEnd: 8211
    functionName: Catch::uniform_integer_distribution::transposeBack
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - static_cast<IntegerType>
    - Detail::transposeToNaturalOrder<IntegerType>
    linkageType: ''
    returnType: IntegerType
    signature: IntegerType transposeBack(UnsignedIntegerType in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uniform_integer_distribution::transposeTo
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8217,1
    - Dst: Catch::uniform_integer_distribution::computeDistance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8218,1
    - Dst: Catch::uniform_integer_distribution::computeRejectionThreshold
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8219,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IntegerType
    - IntegerType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8219
        line_start: 8219
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8221
      start: 8216
    functionDepth: 2
    functionLinenumber: 8216
    functionLinenumberEnd: 8221
    functionName: Catch::uniform_integer_distribution::uniform_integer_distribution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::uniform_integer_distribution::computeDistance
    - Catch::uniform_integer_distribution::computeRejectionThreshold
    - assert
    - Catch::uniform_integer_distribution::transposeTo
    linkageType: ''
    returnType: void
    signature: void uniform_integer_distribution( IntegerType a, IntegerType b )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transposeBack
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8227,1
    - Dst: Detail::fillBitsFrom<UnsignedIntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8227,1
    - Dst: Detail::fillBitsFrom<UnsignedIntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8230,1
    - Dst: Catch::Detail::extendedMult
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8231,1
    - Dst: Detail::fillBitsFrom<UnsignedIntegerType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8235,1
    - Dst: Catch::Detail::extendedMult
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8236,1
    - Dst: transposeBack
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8240
      start: 8224
    functionDepth: 3
    functionLinenumber: 8224
    functionLinenumberEnd: 8240
    functionName: operator()( Generator& g )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - transposeBack
    - Catch::Detail::extendedMult
    - Detail::fillBitsFrom<UnsignedIntegerType>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()( Generator& g )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uniform_integer_distribution::transposeBack
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8242
      start: 8242
    functionDepth: 1
    functionLinenumber: 8242
    functionLinenumberEnd: 8242
    functionName: Catch::uniform_integer_distribution::a
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::uniform_integer_distribution::transposeBack
    linkageType: ''
    returnType: result_type
    signature: result_type a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uniform_integer_distribution::transposeBack
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8243
      start: 8243
    functionDepth: 1
    functionLinenumber: 8243
    functionLinenumberEnd: 8243
    functionName: Catch::uniform_integer_distribution::b
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::uniform_integer_distribution::transposeBack
    linkageType: ''
    returnType: result_type
    signature: result_type b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8298,1
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8300,1
    - Dst: std::numeric_limits<FloatType>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8300,1
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8301,1
    - Dst: std::numeric_limits<FloatType>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8297
        line_start: 8297
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8304
      start: 8293
    functionDepth: 1
    functionLinenumber: 8293
    functionLinenumberEnd: 8304
    functionName: Catch::Detail::gamma
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::nextafter
    - assert
    - std::numeric_limits<FloatType>::infinity
    linkageType: ''
    returnType: FloatType
    signature: FloatType gamma(FloatType a, FloatType b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8336,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8343,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8343,1
    - Dst: static_cast<DistanceType<FloatType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8346,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - distance
    argTypes:
    - FloatType
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8335
        line_start: 8335
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8349
      start: 8334
    functionDepth: 0
    functionLinenumber: 8334
    functionLinenumberEnd: 8349
    functionName: Catch::Detail::count_equidistant_floats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::ceil
    - static_cast<DistanceType<FloatType>>
    - assert
    - std::fabs
    linkageType: ''
    returnType: DistanceType<FloatType>
    signature: DistanceType<FloatType> count_equidistant_floats( FloatType a, FloatType
      b, FloatType distance )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8298,1
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8300,1
    - Dst: std::numeric_limits<FloatType>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8300,1
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8301,1
    - Dst: std::numeric_limits<FloatType>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8297
        line_start: 8297
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8304
      start: 8293
    functionDepth: 1
    functionLinenumber: 8293
    functionLinenumberEnd: 8304
    functionName: Catch::Detail::gamma
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::nextafter
    - assert
    - std::numeric_limits<FloatType>::infinity
    linkageType: ''
    returnType: FloatType
    signature: FloatType gamma(FloatType a, FloatType b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8336,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8343,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8343,1
    - Dst: static_cast<DistanceType<FloatType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8346,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - distance
    argTypes:
    - FloatType
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8335
        line_start: 8335
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8349
      start: 8334
    functionDepth: 0
    functionLinenumber: 8334
    functionLinenumberEnd: 8349
    functionName: Catch::Detail::count_equidistant_floats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::ceil
    - static_cast<DistanceType<FloatType>>
    - assert
    - std::fabs
    linkageType: ''
    returnType: DistanceType<FloatType>
    signature: DistanceType<FloatType> count_equidistant_floats( FloatType a, FloatType
      b, FloatType distance )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8298,1
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8300,1
    - Dst: std::numeric_limits<FloatType>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8300,1
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8301,1
    - Dst: std::numeric_limits<FloatType>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8297
        line_start: 8297
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8304
      start: 8293
    functionDepth: 1
    functionLinenumber: 8293
    functionLinenumberEnd: 8304
    functionName: Catch::Detail::gamma
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::nextafter
    - assert
    - std::numeric_limits<FloatType>::infinity
    linkageType: ''
    returnType: FloatType
    signature: FloatType gamma(FloatType a, FloatType b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8336,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8343,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8343,1
    - Dst: static_cast<DistanceType<FloatType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8346,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - distance
    argTypes:
    - FloatType
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8335
        line_start: 8335
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8349
      start: 8334
    functionDepth: 0
    functionLinenumber: 8334
    functionLinenumberEnd: 8349
    functionName: Catch::Detail::count_equidistant_floats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::ceil
    - static_cast<DistanceType<FloatType>>
    - assert
    - std::fabs
    linkageType: ''
    returnType: DistanceType<FloatType>
    signature: DistanceType<FloatType> count_equidistant_floats( FloatType a, FloatType
      b, FloatType distance )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8298,1
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8300,1
    - Dst: std::numeric_limits<FloatType>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8300,1
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8301,1
    - Dst: std::numeric_limits<FloatType>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8297
        line_start: 8297
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8304
      start: 8293
    functionDepth: 1
    functionLinenumber: 8293
    functionLinenumberEnd: 8304
    functionName: Catch::Detail::gamma
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::nextafter
    - assert
    - std::numeric_limits<FloatType>::infinity
    linkageType: ''
    returnType: FloatType
    signature: FloatType gamma(FloatType a, FloatType b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8336,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8343,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8343,1
    - Dst: static_cast<DistanceType<FloatType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8346,1
    - Dst: std::ceil
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - distance
    argTypes:
    - FloatType
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8335
        line_start: 8335
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8349
      start: 8334
    functionDepth: 0
    functionLinenumber: 8334
    functionLinenumberEnd: 8349
    functionName: Catch::Detail::count_equidistant_floats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::ceil
    - static_cast<DistanceType<FloatType>>
    - assert
    - std::fabs
    linkageType: ''
    returnType: DistanceType<FloatType>
    signature: DistanceType<FloatType> count_equidistant_floats( FloatType a, FloatType
      b, FloatType distance )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8377
      start: 8374
    functionDepth: 0
    functionLinenumber: 8374
    functionLinenumberEnd: 8377
    functionName: Catch::Detail::calculate_max_steps_in_one_go
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t calculate_max_steps_in_one_go(double gamma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8381
      start: 8378
    functionDepth: 0
    functionLinenumber: 8378
    functionLinenumberEnd: 8381
    functionName: Catch::Detail::calculate_max_steps_in_one_go
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t calculate_max_steps_in_one_go(float gamma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8377
      start: 8374
    functionDepth: 0
    functionLinenumber: 8374
    functionLinenumberEnd: 8377
    functionName: Catch::Detail::calculate_max_steps_in_one_go
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t calculate_max_steps_in_one_go(double gamma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8381
      start: 8378
    functionDepth: 0
    functionLinenumber: 8378
    functionLinenumberEnd: 8381
    functionName: Catch::Detail::calculate_max_steps_in_one_go
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t calculate_max_steps_in_one_go(float gamma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::gamma
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8439,1
    - Dst: Catch::Detail::count_equidistant_floats
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8440,1
    - Dst: Catch::Detail::calculate_max_steps_in_one_go
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8442,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8443,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8443,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8444
        line_start: 8444
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8446
      start: 8436
    functionDepth: 2
    functionLinenumber: 8436
    functionLinenumberEnd: 8446
    functionName: Catch::uniform_floating_point_distribution::uniform_floating_point_distribution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::Detail::calculate_max_steps_in_one_go
    - Catch::Detail::gamma
    - Catch::Detail::count_equidistant_floats
    - std::fabs
    linkageType: ''
    returnType: void
    signature: void uniform_floating_point_distribution( FloatType a, FloatType b
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_int_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8450,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8468
      start: 8449
    functionDepth: 0
    functionLinenumber: 8449
    functionLinenumberEnd: 8468
    functionName: operator()( Generator& g )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_int_dist
    linkageType: ''
    returnType: result_type
    signature: result_type operator()( Generator& g )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8470
      start: 8470
    functionDepth: 0
    functionLinenumber: 8470
    functionLinenumberEnd: 8470
    functionName: Catch::uniform_floating_point_distribution::a
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8471
      start: 8471
    functionDepth: 0
    functionLinenumber: 8471
    functionLinenumberEnd: 8471
    functionName: Catch::uniform_floating_point_distribution::b
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type b() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8377
      start: 8374
    functionDepth: 0
    functionLinenumber: 8374
    functionLinenumberEnd: 8377
    functionName: Catch::Detail::calculate_max_steps_in_one_go
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t calculate_max_steps_in_one_go(double gamma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8381
      start: 8378
    functionDepth: 0
    functionLinenumber: 8378
    functionLinenumberEnd: 8381
    functionName: Catch::Detail::calculate_max_steps_in_one_go
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t calculate_max_steps_in_one_go(float gamma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8377
      start: 8374
    functionDepth: 0
    functionLinenumber: 8374
    functionLinenumberEnd: 8377
    functionName: Catch::Detail::calculate_max_steps_in_one_go
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t calculate_max_steps_in_one_go(double gamma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8381
      start: 8378
    functionDepth: 0
    functionLinenumber: 8378
    functionLinenumberEnd: 8381
    functionName: Catch::Detail::calculate_max_steps_in_one_go
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t calculate_max_steps_in_one_go(float gamma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::gamma
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8439,1
    - Dst: Catch::Detail::count_equidistant_floats
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8440,1
    - Dst: Catch::Detail::calculate_max_steps_in_one_go
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8442,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8443,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8443,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FloatType
    - FloatType
    assertStmts:
    - condition: ( a <= b )
      pos:
        line_end: 8444
        line_start: 8444
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8446
      start: 8436
    functionDepth: 2
    functionLinenumber: 8436
    functionLinenumberEnd: 8446
    functionName: Catch::uniform_floating_point_distribution::uniform_floating_point_distribution
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::Detail::calculate_max_steps_in_one_go
    - Catch::Detail::gamma
    - Catch::Detail::count_equidistant_floats
    - std::fabs
    linkageType: ''
    returnType: void
    signature: void uniform_floating_point_distribution( FloatType a, FloatType b
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_int_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8450,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8468
      start: 8449
    functionDepth: 0
    functionLinenumber: 8449
    functionLinenumberEnd: 8468
    functionName: operator()( Generator& g )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_int_dist
    linkageType: ''
    returnType: result_type
    signature: result_type operator()( Generator& g )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8470
      start: 8470
    functionDepth: 0
    functionLinenumber: 8470
    functionLinenumberEnd: 8470
    functionName: Catch::uniform_floating_point_distribution::a
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8471
      start: 8471
    functionDepth: 0
    functionLinenumber: 8471
    functionLinenumberEnd: 8471
    functionName: Catch::uniform_floating_point_distribution::b
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8496,1
    - Dst: Catch::Generators::RandomFloatingGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - Float
    - Float
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8497
      start: 8493
    functionDepth: 1
    functionLinenumber: 8493
    functionLinenumberEnd: 8497
    functionName: Catch::Generators::RandomFloatingGenerator::RandomFloatingGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomFloatingGenerator::next
    linkageType: ''
    returnType: void
    signature: void RandomFloatingGenerator( Float a, Float b, std::uint32_t seed
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8501
      start: 8499
    functionDepth: 0
    functionLinenumber: 8499
    functionLinenumberEnd: 8501
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Float
    signature: Float & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8505
      start: 8502
    functionDepth: 0
    functionLinenumber: 8502
    functionLinenumberEnd: 8505
    functionName: Catch::Generators::RandomFloatingGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - m_dist
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8519
      start: 8519
    functionDepth: 0
    functionLinenumber: 8519
    functionLinenumberEnd: 8519
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long double
    signature: long double & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8534,1
    - Dst: Catch::Generators::RandomIntegerGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - Integer
    - Integer
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8535
      start: 8531
    functionDepth: 1
    functionLinenumber: 8531
    functionLinenumberEnd: 8535
    functionName: Catch::Generators::RandomIntegerGenerator::RandomIntegerGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomIntegerGenerator::next
    linkageType: ''
    returnType: void
    signature: void RandomIntegerGenerator( Integer a, Integer b, std::uint32_t seed
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8539
      start: 8537
    functionDepth: 0
    functionLinenumber: 8537
    functionLinenumberEnd: 8539
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Integer
    signature: Integer & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8543
      start: 8540
    functionDepth: 0
    functionLinenumber: 8540
    functionLinenumberEnd: 8543
    functionName: Catch::Generators::RandomIntegerGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - m_dist
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8549,1
    - Dst: Catch::Detail::make_unique<RandomIntegerGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8550,1
    - Dst: Catch::Generators::Detail::getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8552
      start: 8547
    functionDepth: 1
    functionLinenumber: 8547
    functionLinenumberEnd: 8552
    functionName: Catch::Generators::random
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - Catch::Detail::make_unique<RandomIntegerGenerator<T>>
    - GeneratorWrapper<T>
    - Catch::Generators::Detail::getSeed
    linkageType: ''
    returnType: std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>>
    signature: std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>> random(T
      a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8558,1
    - Dst: Catch::Detail::make_unique<RandomFloatingGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8559,1
    - Dst: Catch::Generators::Detail::getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8561
      start: 8555
    functionDepth: 1
    functionLinenumber: 8555
    functionLinenumberEnd: 8561
    functionName: Catch::Generators::random
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - Catch::Detail::make_unique<RandomFloatingGenerator<T>>
    - GeneratorWrapper<T>
    - Catch::Generators::Detail::getSeed
    linkageType: ''
    returnType: 'std::enable_if_t<std::is_floating_point<T>::value,

      GeneratorWrapper<T>>'
    signature: 'std::enable_if_t<std::is_floating_point<T>::value,

      GeneratorWrapper<T>> random(T a, T b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8496,1
    - Dst: Catch::Generators::RandomFloatingGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - Float
    - Float
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8497
      start: 8493
    functionDepth: 1
    functionLinenumber: 8493
    functionLinenumberEnd: 8497
    functionName: Catch::Generators::RandomFloatingGenerator::RandomFloatingGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomFloatingGenerator::next
    linkageType: ''
    returnType: void
    signature: void RandomFloatingGenerator( Float a, Float b, std::uint32_t seed
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8501
      start: 8499
    functionDepth: 0
    functionLinenumber: 8499
    functionLinenumberEnd: 8501
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Float
    signature: Float & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8505
      start: 8502
    functionDepth: 0
    functionLinenumber: 8502
    functionLinenumberEnd: 8505
    functionName: Catch::Generators::RandomFloatingGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - m_dist
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8519
      start: 8519
    functionDepth: 0
    functionLinenumber: 8519
    functionLinenumberEnd: 8519
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long double
    signature: long double & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8534,1
    - Dst: Catch::Generators::RandomIntegerGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - Integer
    - Integer
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8535
      start: 8531
    functionDepth: 1
    functionLinenumber: 8531
    functionLinenumberEnd: 8535
    functionName: Catch::Generators::RandomIntegerGenerator::RandomIntegerGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomIntegerGenerator::next
    linkageType: ''
    returnType: void
    signature: void RandomIntegerGenerator( Integer a, Integer b, std::uint32_t seed
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8539
      start: 8537
    functionDepth: 0
    functionLinenumber: 8537
    functionLinenumberEnd: 8539
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Integer
    signature: Integer & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8543
      start: 8540
    functionDepth: 0
    functionLinenumber: 8540
    functionLinenumberEnd: 8543
    functionName: Catch::Generators::RandomIntegerGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - m_dist
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8549,1
    - Dst: Catch::Detail::make_unique<RandomIntegerGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8550,1
    - Dst: Catch::Generators::Detail::getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8552
      start: 8547
    functionDepth: 1
    functionLinenumber: 8547
    functionLinenumberEnd: 8552
    functionName: Catch::Generators::random
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - Catch::Detail::make_unique<RandomIntegerGenerator<T>>
    - GeneratorWrapper<T>
    - Catch::Generators::Detail::getSeed
    linkageType: ''
    returnType: std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>>
    signature: std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>> random(T
      a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8558,1
    - Dst: Catch::Detail::make_unique<RandomFloatingGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8559,1
    - Dst: Catch::Generators::Detail::getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8561
      start: 8555
    functionDepth: 1
    functionLinenumber: 8555
    functionLinenumberEnd: 8561
    functionName: Catch::Generators::random
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - Catch::Detail::make_unique<RandomFloatingGenerator<T>>
    - GeneratorWrapper<T>
    - Catch::Generators::Detail::getSeed
    linkageType: ''
    returnType: 'std::enable_if_t<std::is_floating_point<T>::value,

      GeneratorWrapper<T>>'
    signature: 'std::enable_if_t<std::is_floating_point<T>::value,

      GeneratorWrapper<T>> random(T a, T b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8496,1
    - Dst: Catch::Generators::RandomFloatingGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - Float
    - Float
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8497
      start: 8493
    functionDepth: 1
    functionLinenumber: 8493
    functionLinenumberEnd: 8497
    functionName: Catch::Generators::RandomFloatingGenerator::RandomFloatingGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomFloatingGenerator::next
    linkageType: ''
    returnType: void
    signature: void RandomFloatingGenerator( Float a, Float b, std::uint32_t seed
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8501
      start: 8499
    functionDepth: 0
    functionLinenumber: 8499
    functionLinenumberEnd: 8501
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Float
    signature: Float & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8505
      start: 8502
    functionDepth: 0
    functionLinenumber: 8502
    functionLinenumberEnd: 8505
    functionName: Catch::Generators::RandomFloatingGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - m_dist
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8519
      start: 8519
    functionDepth: 0
    functionLinenumber: 8519
    functionLinenumberEnd: 8519
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long double
    signature: long double & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8534,1
    - Dst: Catch::Generators::RandomIntegerGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - Integer
    - Integer
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8535
      start: 8531
    functionDepth: 1
    functionLinenumber: 8531
    functionLinenumberEnd: 8535
    functionName: Catch::Generators::RandomIntegerGenerator::RandomIntegerGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomIntegerGenerator::next
    linkageType: ''
    returnType: void
    signature: void RandomIntegerGenerator( Integer a, Integer b, std::uint32_t seed
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8539
      start: 8537
    functionDepth: 0
    functionLinenumber: 8537
    functionLinenumberEnd: 8539
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Integer
    signature: Integer & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8543
      start: 8540
    functionDepth: 0
    functionLinenumber: 8540
    functionLinenumberEnd: 8543
    functionName: Catch::Generators::RandomIntegerGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - m_dist
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8549,1
    - Dst: Catch::Detail::make_unique<RandomIntegerGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8550,1
    - Dst: Catch::Generators::Detail::getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8552
      start: 8547
    functionDepth: 1
    functionLinenumber: 8547
    functionLinenumberEnd: 8552
    functionName: Catch::Generators::random
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - Catch::Detail::make_unique<RandomIntegerGenerator<T>>
    - GeneratorWrapper<T>
    - Catch::Generators::Detail::getSeed
    linkageType: ''
    returnType: std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>>
    signature: std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>> random(T
      a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8558,1
    - Dst: Catch::Detail::make_unique<RandomFloatingGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8559,1
    - Dst: Catch::Generators::Detail::getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8561
      start: 8555
    functionDepth: 1
    functionLinenumber: 8555
    functionLinenumberEnd: 8561
    functionName: Catch::Generators::random
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - Catch::Detail::make_unique<RandomFloatingGenerator<T>>
    - GeneratorWrapper<T>
    - Catch::Generators::Detail::getSeed
    linkageType: ''
    returnType: 'std::enable_if_t<std::is_floating_point<T>::value,

      GeneratorWrapper<T>>'
    signature: 'std::enable_if_t<std::is_floating_point<T>::value,

      GeneratorWrapper<T>> random(T a, T b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8496,1
    - Dst: Catch::Generators::RandomFloatingGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - Float
    - Float
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8497
      start: 8493
    functionDepth: 1
    functionLinenumber: 8493
    functionLinenumberEnd: 8497
    functionName: Catch::Generators::RandomFloatingGenerator::RandomFloatingGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomFloatingGenerator::next
    linkageType: ''
    returnType: void
    signature: void RandomFloatingGenerator( Float a, Float b, std::uint32_t seed
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8501
      start: 8499
    functionDepth: 0
    functionLinenumber: 8499
    functionLinenumberEnd: 8501
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Float
    signature: Float & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8505
      start: 8502
    functionDepth: 0
    functionLinenumber: 8502
    functionLinenumberEnd: 8505
    functionName: Catch::Generators::RandomFloatingGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - m_dist
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8519
      start: 8519
    functionDepth: 0
    functionLinenumber: 8519
    functionLinenumberEnd: 8519
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long double
    signature: long double & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8534,1
    - Dst: Catch::Generators::RandomIntegerGenerator::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - Integer
    - Integer
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8535
      start: 8531
    functionDepth: 1
    functionLinenumber: 8531
    functionLinenumberEnd: 8535
    functionName: Catch::Generators::RandomIntegerGenerator::RandomIntegerGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomIntegerGenerator::next
    linkageType: ''
    returnType: void
    signature: void RandomIntegerGenerator( Integer a, Integer b, std::uint32_t seed
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8539
      start: 8537
    functionDepth: 0
    functionLinenumber: 8537
    functionLinenumberEnd: 8539
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Integer
    signature: Integer & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_dist
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8543
      start: 8540
    functionDepth: 0
    functionLinenumber: 8540
    functionLinenumberEnd: 8543
    functionName: Catch::Generators::RandomIntegerGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - m_dist
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8549,1
    - Dst: Catch::Detail::make_unique<RandomIntegerGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8550,1
    - Dst: Catch::Generators::Detail::getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8552
      start: 8547
    functionDepth: 1
    functionLinenumber: 8547
    functionLinenumberEnd: 8552
    functionName: Catch::Generators::random
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - Catch::Detail::make_unique<RandomIntegerGenerator<T>>
    - GeneratorWrapper<T>
    - Catch::Generators::Detail::getSeed
    linkageType: ''
    returnType: std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>>
    signature: std::enable_if_t<std::is_integral<T>::value, GeneratorWrapper<T>> random(T
      a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8558,1
    - Dst: Catch::Detail::make_unique<RandomFloatingGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8559,1
    - Dst: Catch::Generators::Detail::getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8561
      start: 8555
    functionDepth: 1
    functionLinenumber: 8555
    functionLinenumberEnd: 8561
    functionName: Catch::Generators::random
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 15
    functionsReached:
    - Catch::Detail::make_unique<RandomFloatingGenerator<T>>
    - GeneratorWrapper<T>
    - Catch::Generators::Detail::getSeed
    linkageType: ''
    returnType: 'std::enable_if_t<std::is_floating_point<T>::value,

      GeneratorWrapper<T>>'
    signature: 'std::enable_if_t<std::is_floating_point<T>::value,

      GeneratorWrapper<T>> random(T a, T b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8594,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8596,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8597,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8597,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - ' start'
    - ' end'
    - ' step'
    argTypes:
    - T
    - T
    - T
    assertStmts:
    - condition: (m_current != m_end && "Range start and end cannot be equal")
      pos:
        line_end: 8595
        line_start: 8595
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: (((m_positive && m_current <= m_end) || (!m_positive && m_current
        >= m_end)) && "Step moves away from end")
      pos:
        line_end: 8597
        line_start: 8597
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: (m_step != T(0) && "Step size cannot be zero")
      pos:
        line_end: 8596
        line_start: 8596
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8599
      start: 8590
    functionDepth: 0
    functionLinenumber: 8590
    functionLinenumberEnd: 8599
    functionName: Catch::Generators::RangeGenerator::RangeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - T
    linkageType: ''
    returnType: void
    signature: void RangeGenerator(T const& start, T const& end, T const& step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8602,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8603
      start: 8601
    functionDepth: 0
    functionLinenumber: 8601
    functionLinenumberEnd: 8603
    functionName: Catch::Generators::RangeGenerator::RangeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T
    linkageType: ''
    returnType: void
    signature: void RangeGenerator(T const& start, T const& end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8607
      start: 8605
    functionDepth: 0
    functionLinenumber: 8605
    functionLinenumberEnd: 8607
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8612
    functionName: Catch::Generators::RangeGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8618,1
    - Dst: Catch::Detail::make_unique<RangeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' start'
    - ' end'
    - ' step'
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8616
    functionDepth: 0
    functionLinenumber: 8616
    functionLinenumberEnd: 8619
    functionName: Catch::Generators::range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RangeGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> range(T const& start, T const& end, T const& step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8624,1
    - Dst: Catch::Detail::make_unique<RangeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8625
      start: 8622
    functionDepth: 0
    functionLinenumber: 8622
    functionLinenumberEnd: 8625
    functionName: Catch::Generators::range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RangeGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> range(T const& start, T const& end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8639,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIterator
    - InputSentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8642
      start: 8638
    functionDepth: 1
    functionLinenumber: 8638
    functionLinenumberEnd: 8642
    functionName: Catch::Generators::IteratorGenerator::IteratorGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - Catch::Generators::Detail::throw_generator_exception
    linkageType: ''
    returnType: void
    signature: void IteratorGenerator(InputIterator first, InputSentinel last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8644
    functionDepth: 0
    functionLinenumber: 8644
    functionLinenumberEnd: 8646
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8651
      start: 8648
    functionDepth: 1
    functionLinenumber: 8648
    functionLinenumberEnd: 8651
    functionName: Catch::Generators::IteratorGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<ResultType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8658,1
    - Dst: Catch::Detail::make_unique<IteratorGenerator<ResultType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - InputIterator
    - InputSentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8659
      start: 8657
    functionDepth: 0
    functionLinenumber: 8657
    functionLinenumberEnd: 8659
    functionName: Catch::Generators::from_range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - GeneratorWrapper<ResultType>
    - Catch::Detail::make_unique<IteratorGenerator<ResultType>>
    linkageType: ''
    returnType: GeneratorWrapper<ResultType>
    signature: GeneratorWrapper<ResultType> from_range(InputIterator from, InputSentinel
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::from_range
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8666
      start: 8662
    functionDepth: 1
    functionLinenumber: 8662
    functionLinenumberEnd: 8666
    functionName: Catch::Generators::from_range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - end
    - Catch::Generators::from_range
    - begin
    linkageType: ''
    returnType: auto
    signature: auto from_range(Container const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8594,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8596,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8597,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8597,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - ' start'
    - ' end'
    - ' step'
    argTypes:
    - T
    - T
    - T
    assertStmts:
    - condition: (m_current != m_end && "Range start and end cannot be equal")
      pos:
        line_end: 8595
        line_start: 8595
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: (((m_positive && m_current <= m_end) || (!m_positive && m_current
        >= m_end)) && "Step moves away from end")
      pos:
        line_end: 8597
        line_start: 8597
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: (m_step != T(0) && "Step size cannot be zero")
      pos:
        line_end: 8596
        line_start: 8596
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8599
      start: 8590
    functionDepth: 0
    functionLinenumber: 8590
    functionLinenumberEnd: 8599
    functionName: Catch::Generators::RangeGenerator::RangeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - T
    linkageType: ''
    returnType: void
    signature: void RangeGenerator(T const& start, T const& end, T const& step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8602,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8603
      start: 8601
    functionDepth: 0
    functionLinenumber: 8601
    functionLinenumberEnd: 8603
    functionName: Catch::Generators::RangeGenerator::RangeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T
    linkageType: ''
    returnType: void
    signature: void RangeGenerator(T const& start, T const& end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8607
      start: 8605
    functionDepth: 0
    functionLinenumber: 8605
    functionLinenumberEnd: 8607
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8612
    functionName: Catch::Generators::RangeGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8618,1
    - Dst: Catch::Detail::make_unique<RangeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' start'
    - ' end'
    - ' step'
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8616
    functionDepth: 0
    functionLinenumber: 8616
    functionLinenumberEnd: 8619
    functionName: Catch::Generators::range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RangeGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> range(T const& start, T const& end, T const& step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8624,1
    - Dst: Catch::Detail::make_unique<RangeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8625
      start: 8622
    functionDepth: 0
    functionLinenumber: 8622
    functionLinenumberEnd: 8625
    functionName: Catch::Generators::range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RangeGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> range(T const& start, T const& end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8639,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIterator
    - InputSentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8642
      start: 8638
    functionDepth: 1
    functionLinenumber: 8638
    functionLinenumberEnd: 8642
    functionName: Catch::Generators::IteratorGenerator::IteratorGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - Catch::Generators::Detail::throw_generator_exception
    linkageType: ''
    returnType: void
    signature: void IteratorGenerator(InputIterator first, InputSentinel last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8644
    functionDepth: 0
    functionLinenumber: 8644
    functionLinenumberEnd: 8646
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8651
      start: 8648
    functionDepth: 1
    functionLinenumber: 8648
    functionLinenumberEnd: 8651
    functionName: Catch::Generators::IteratorGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<ResultType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8658,1
    - Dst: Catch::Detail::make_unique<IteratorGenerator<ResultType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - InputIterator
    - InputSentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8659
      start: 8657
    functionDepth: 0
    functionLinenumber: 8657
    functionLinenumberEnd: 8659
    functionName: Catch::Generators::from_range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - GeneratorWrapper<ResultType>
    - Catch::Detail::make_unique<IteratorGenerator<ResultType>>
    linkageType: ''
    returnType: GeneratorWrapper<ResultType>
    signature: GeneratorWrapper<ResultType> from_range(InputIterator from, InputSentinel
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::from_range
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8666
      start: 8662
    functionDepth: 1
    functionLinenumber: 8662
    functionLinenumberEnd: 8666
    functionName: Catch::Generators::from_range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - end
    - Catch::Generators::from_range
    - begin
    linkageType: ''
    returnType: auto
    signature: auto from_range(Container const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8594,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8596,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8597,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8597,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - ' start'
    - ' end'
    - ' step'
    argTypes:
    - T
    - T
    - T
    assertStmts:
    - condition: (m_current != m_end && "Range start and end cannot be equal")
      pos:
        line_end: 8595
        line_start: 8595
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: (((m_positive && m_current <= m_end) || (!m_positive && m_current
        >= m_end)) && "Step moves away from end")
      pos:
        line_end: 8597
        line_start: 8597
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: (m_step != T(0) && "Step size cannot be zero")
      pos:
        line_end: 8596
        line_start: 8596
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8599
      start: 8590
    functionDepth: 0
    functionLinenumber: 8590
    functionLinenumberEnd: 8599
    functionName: Catch::Generators::RangeGenerator::RangeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - T
    linkageType: ''
    returnType: void
    signature: void RangeGenerator(T const& start, T const& end, T const& step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8602,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8603
      start: 8601
    functionDepth: 0
    functionLinenumber: 8601
    functionLinenumberEnd: 8603
    functionName: Catch::Generators::RangeGenerator::RangeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T
    linkageType: ''
    returnType: void
    signature: void RangeGenerator(T const& start, T const& end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8607
      start: 8605
    functionDepth: 0
    functionLinenumber: 8605
    functionLinenumberEnd: 8607
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8612
    functionName: Catch::Generators::RangeGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8618,1
    - Dst: Catch::Detail::make_unique<RangeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' start'
    - ' end'
    - ' step'
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8616
    functionDepth: 0
    functionLinenumber: 8616
    functionLinenumberEnd: 8619
    functionName: Catch::Generators::range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RangeGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> range(T const& start, T const& end, T const& step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8624,1
    - Dst: Catch::Detail::make_unique<RangeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8625
      start: 8622
    functionDepth: 0
    functionLinenumber: 8622
    functionLinenumberEnd: 8625
    functionName: Catch::Generators::range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RangeGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> range(T const& start, T const& end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8639,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIterator
    - InputSentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8642
      start: 8638
    functionDepth: 1
    functionLinenumber: 8638
    functionLinenumberEnd: 8642
    functionName: Catch::Generators::IteratorGenerator::IteratorGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - Catch::Generators::Detail::throw_generator_exception
    linkageType: ''
    returnType: void
    signature: void IteratorGenerator(InputIterator first, InputSentinel last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8644
    functionDepth: 0
    functionLinenumber: 8644
    functionLinenumberEnd: 8646
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8651
      start: 8648
    functionDepth: 1
    functionLinenumber: 8648
    functionLinenumberEnd: 8651
    functionName: Catch::Generators::IteratorGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<ResultType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8658,1
    - Dst: Catch::Detail::make_unique<IteratorGenerator<ResultType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - InputIterator
    - InputSentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8659
      start: 8657
    functionDepth: 0
    functionLinenumber: 8657
    functionLinenumberEnd: 8659
    functionName: Catch::Generators::from_range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - GeneratorWrapper<ResultType>
    - Catch::Detail::make_unique<IteratorGenerator<ResultType>>
    linkageType: ''
    returnType: GeneratorWrapper<ResultType>
    signature: GeneratorWrapper<ResultType> from_range(InputIterator from, InputSentinel
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::from_range
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8666
      start: 8662
    functionDepth: 1
    functionLinenumber: 8662
    functionLinenumberEnd: 8666
    functionName: Catch::Generators::from_range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - end
    - Catch::Generators::from_range
    - begin
    linkageType: ''
    returnType: auto
    signature: auto from_range(Container const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8594,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8596,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8597,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8597,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - ' start'
    - ' end'
    - ' step'
    argTypes:
    - T
    - T
    - T
    assertStmts:
    - condition: (m_current != m_end && "Range start and end cannot be equal")
      pos:
        line_end: 8595
        line_start: 8595
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: (((m_positive && m_current <= m_end) || (!m_positive && m_current
        >= m_end)) && "Step moves away from end")
      pos:
        line_end: 8597
        line_start: 8597
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: (m_step != T(0) && "Step size cannot be zero")
      pos:
        line_end: 8596
        line_start: 8596
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 8599
      start: 8590
    functionDepth: 0
    functionLinenumber: 8590
    functionLinenumberEnd: 8599
    functionName: Catch::Generators::RangeGenerator::RangeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - T
    linkageType: ''
    returnType: void
    signature: void RangeGenerator(T const& start, T const& end, T const& step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8602,1
    - Dst: T
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8603
      start: 8601
    functionDepth: 0
    functionLinenumber: 8601
    functionLinenumberEnd: 8603
    functionName: Catch::Generators::RangeGenerator::RangeGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - T
    linkageType: ''
    returnType: void
    signature: void RangeGenerator(T const& start, T const& end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8607
      start: 8605
    functionDepth: 0
    functionLinenumber: 8605
    functionLinenumberEnd: 8607
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8612
    functionName: Catch::Generators::RangeGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8618,1
    - Dst: Catch::Detail::make_unique<RangeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' start'
    - ' end'
    - ' step'
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8616
    functionDepth: 0
    functionLinenumber: 8616
    functionLinenumberEnd: 8619
    functionName: Catch::Generators::range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RangeGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> range(T const& start, T const& end, T const& step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8624,1
    - Dst: Catch::Detail::make_unique<RangeGenerator<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' start'
    - ' end'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8625
      start: 8622
    functionDepth: 0
    functionLinenumber: 8622
    functionLinenumberEnd: 8625
    functionName: Catch::Generators::range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<RangeGenerator<T>>
    - GeneratorWrapper<T>
    linkageType: ''
    returnType: GeneratorWrapper<T>
    signature: GeneratorWrapper<T> range(T const& start, T const& end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8639,1
    - Dst: Catch::Generators::Detail::throw_generator_exception
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIterator
    - InputSentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8642
      start: 8638
    functionDepth: 1
    functionLinenumber: 8638
    functionLinenumberEnd: 8642
    functionName: Catch::Generators::IteratorGenerator::IteratorGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    - Catch::Generators::Detail::throw_generator_exception
    linkageType: ''
    returnType: void
    signature: void IteratorGenerator(InputIterator first, InputSentinel last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8644
    functionDepth: 0
    functionLinenumber: 8644
    functionLinenumberEnd: 8646
    functionName: '& get() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8651
      start: 8648
    functionDepth: 1
    functionLinenumber: 8648
    functionLinenumberEnd: 8651
    functionName: Catch::Generators::IteratorGenerator::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeneratorWrapper<ResultType>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8658,1
    - Dst: Catch::Detail::make_unique<IteratorGenerator<ResultType>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - InputIterator
    - InputSentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8659
      start: 8657
    functionDepth: 0
    functionLinenumber: 8657
    functionLinenumberEnd: 8659
    functionName: Catch::Generators::from_range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - GeneratorWrapper<ResultType>
    - Catch::Detail::make_unique<IteratorGenerator<ResultType>>
    linkageType: ''
    returnType: GeneratorWrapper<ResultType>
    signature: GeneratorWrapper<ResultType> from_range(InputIterator from, InputSentinel
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::from_range
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:8665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8666
      start: 8662
    functionDepth: 1
    functionLinenumber: 8662
    functionLinenumberEnd: 8666
    functionName: Catch::Generators::from_range
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - end
    - Catch::Generators::from_range
    - begin
    linkageType: ''
    returnType: auto
    signature: auto from_range(Container const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8709
      start: 8709
    functionDepth: 0
    functionLinenumber: 8709
    functionLinenumberEnd: 8709
    functionName: Catch::TestRunInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestRunInfo(StringRef _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8709
      start: 8709
    functionDepth: 0
    functionLinenumber: 8709
    functionLinenumberEnd: 8709
    functionName: Catch::TestRunInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestRunInfo(StringRef _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8739
      start: 8739
    functionDepth: 0
    functionLinenumber: 8739
    functionLinenumberEnd: 8739
    functionName: Catch::ReporterConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReporterConfig( ReporterConfig&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8740
      start: 8740
    functionDepth: 0
    functionLinenumber: 8740
    functionLinenumberEnd: 8740
    functionName: '& operator=( ReporterConfig&& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReporterConfig
    signature: ReporterConfig & operator=( ReporterConfig&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8760
      start: 8760
    functionDepth: 0
    functionLinenumber: 8760
    functionLinenumberEnd: 8760
    functionName: Catch::AssertionStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionStats( AssertionStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8761
      start: 8761
    functionDepth: 0
    functionLinenumber: 8761
    functionLinenumberEnd: 8761
    functionName: Catch::AssertionStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionStats( AssertionStats && )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8762
      start: 8762
    functionDepth: 0
    functionLinenumber: 8762
    functionLinenumberEnd: 8762
    functionName: '& operator = ( AssertionStats const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionStats
    signature: AssertionStats & operator = ( AssertionStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8763
      start: 8763
    functionDepth: 0
    functionLinenumber: 8763
    functionLinenumberEnd: 8763
    functionName: '& operator = ( AssertionStats && )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionStats
    signature: AssertionStats & operator = ( AssertionStats && )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - config
    argTypes:
    - IConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8838
      start: 8838
    functionDepth: 0
    functionLinenumber: 8838
    functionLinenumberEnd: 8838
    functionName: Catch::IEventListener::IEventListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IEventListener( IConfig const* config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8847
      start: 8845
    functionDepth: 0
    functionLinenumber: 8845
    functionLinenumberEnd: 8847
    functionName: '& getPreferences() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReporterPreferences
    signature: ReporterPreferences & getPreferences() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8739
      start: 8739
    functionDepth: 0
    functionLinenumber: 8739
    functionLinenumberEnd: 8739
    functionName: Catch::ReporterConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReporterConfig( ReporterConfig&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8740
      start: 8740
    functionDepth: 0
    functionLinenumber: 8740
    functionLinenumberEnd: 8740
    functionName: '& operator=( ReporterConfig&& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReporterConfig
    signature: ReporterConfig & operator=( ReporterConfig&& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8760
      start: 8760
    functionDepth: 0
    functionLinenumber: 8760
    functionLinenumberEnd: 8760
    functionName: Catch::AssertionStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionStats( AssertionStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8761
      start: 8761
    functionDepth: 0
    functionLinenumber: 8761
    functionLinenumberEnd: 8761
    functionName: Catch::AssertionStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionStats( AssertionStats && )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8762
      start: 8762
    functionDepth: 0
    functionLinenumber: 8762
    functionLinenumberEnd: 8762
    functionName: '& operator = ( AssertionStats const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionStats
    signature: AssertionStats & operator = ( AssertionStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8763
      start: 8763
    functionDepth: 0
    functionLinenumber: 8763
    functionLinenumberEnd: 8763
    functionName: '& operator = ( AssertionStats && )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionStats
    signature: AssertionStats & operator = ( AssertionStats && )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - config
    argTypes:
    - IConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8838
      start: 8838
    functionDepth: 0
    functionLinenumber: 8838
    functionLinenumberEnd: 8838
    functionName: Catch::IEventListener::IEventListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IEventListener( IConfig const* config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8847
      start: 8845
    functionDepth: 0
    functionLinenumber: 8845
    functionLinenumberEnd: 8847
    functionName: '& getPreferences() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReporterPreferences
    signature: ReporterPreferences & getPreferences() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9159
      start: 9159
    functionDepth: 0
    functionLinenumber: 9159
    functionLinenumberEnd: 9159
    functionName: Catch::ColourImpl::ColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9173
      start: 9173
    functionDepth: 0
    functionLinenumber: 9173
    functionLinenumberEnd: 9173
    functionName: Catch::ColourImpl::ColourGuard::ColourGuard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColourGuard( ColourGuard const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9174
      start: 9174
    functionDepth: 0
    functionLinenumber: 9174
    functionLinenumberEnd: 9174
    functionName: '& operator=( ColourGuard const& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColourGuard
    signature: ColourGuard & operator=( ColourGuard const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engageImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' guard'
    argTypes:
    - std::ostream
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9201
      start: 9197
    functionDepth: 0
    functionLinenumber: 9197
    functionLinenumberEnd: 9201
    functionName: "& operator<<( std::ostream& lhs,\n                                             ColourGuard&
      guard )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - engageImpl
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<( std::ostream& lhs,\n                                             ColourGuard&
      guard )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engageImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' guard'
    argTypes:
    - std::ostream
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9207
      start: 9203
    functionDepth: 0
    functionLinenumber: 9203
    functionLinenumberEnd: 9207
    functionName: "& operator<<( std::ostream& lhs,\n                                            ColourGuard&&
      guard)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - engageImpl
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<( std::ostream& lhs,\n                                            ColourGuard&&
      guard)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9159
      start: 9159
    functionDepth: 0
    functionLinenumber: 9159
    functionLinenumberEnd: 9159
    functionName: Catch::ColourImpl::ColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9173
      start: 9173
    functionDepth: 0
    functionLinenumber: 9173
    functionLinenumberEnd: 9173
    functionName: Catch::ColourImpl::ColourGuard::ColourGuard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColourGuard( ColourGuard const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9174
      start: 9174
    functionDepth: 0
    functionLinenumber: 9174
    functionLinenumberEnd: 9174
    functionName: '& operator=( ColourGuard const& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColourGuard
    signature: ColourGuard & operator=( ColourGuard const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engageImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' guard'
    argTypes:
    - std::ostream
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9201
      start: 9197
    functionDepth: 0
    functionLinenumber: 9197
    functionLinenumberEnd: 9201
    functionName: "& operator<<( std::ostream& lhs,\n                                             ColourGuard&
      guard )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - engageImpl
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<( std::ostream& lhs,\n                                             ColourGuard&
      guard )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engageImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' guard'
    argTypes:
    - std::ostream
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9207
      start: 9203
    functionDepth: 0
    functionLinenumber: 9203
    functionLinenumberEnd: 9207
    functionName: "& operator<<( std::ostream& lhs,\n                                            ColourGuard&&
      guard)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - engageImpl
    linkageType: ''
    returnType: std::ostream
    signature: "std::ostream & operator<<( std::ostream& lhs,\n                                            ColourGuard&&
      guard)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9284,1
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cont'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9286
      start: 9284
    functionDepth: 1
    functionLinenumber: 9284
    functionLinenumberEnd: 9286
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::empty
    linkageType: ''
    returnType: auto
    signature: auto empty(Container const& cont) -> decltype(cont.empty())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9293
      start: 9288
    functionDepth: 0
    functionLinenumber: 9288
    functionLinenumberEnd: 9293
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty(const T (&)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<T>::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9297
      start: 9295
    functionDepth: 1
    functionLinenumber: 9295
    functionLinenumberEnd: 9297
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - std::initializer_list<T>::size
    linkageType: ''
    returnType: bool
    signature: bool empty(std::initializer_list<T> list) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9301,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cont'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9303
      start: 9301
    functionDepth: 0
    functionLinenumber: 9301
    functionLinenumberEnd: 9303
    functionName: Catch::Detail::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::size
    linkageType: ''
    returnType: auto
    signature: auto size(Container const& cont) -> decltype(cont.size())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9307
      start: 9305
    functionDepth: 0
    functionLinenumber: 9305
    functionLinenumberEnd: 9307
    functionName: Catch::Detail::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size(const T(&)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9284,1
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cont'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9286
      start: 9284
    functionDepth: 1
    functionLinenumber: 9284
    functionLinenumberEnd: 9286
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Detail::empty
    linkageType: ''
    returnType: auto
    signature: auto empty(Container const& cont) -> decltype(cont.empty())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9293
      start: 9288
    functionDepth: 0
    functionLinenumber: 9288
    functionLinenumberEnd: 9293
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty(const T (&)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<T>::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9297
      start: 9295
    functionDepth: 1
    functionLinenumber: 9295
    functionLinenumberEnd: 9297
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - std::initializer_list<T>::size
    linkageType: ''
    returnType: bool
    signature: bool empty(std::initializer_list<T> list) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9301,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cont'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9303
      start: 9301
    functionDepth: 0
    functionLinenumber: 9301
    functionLinenumberEnd: 9303
    functionName: Catch::Detail::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::size
    linkageType: ''
    returnType: auto
    signature: auto size(Container const& cont) -> decltype(cont.size())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9307
      start: 9305
    functionDepth: 0
    functionLinenumber: 9305
    functionLinenumberEnd: 9307
    functionName: Catch::Detail::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size(const T(&)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9284,1
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cont'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9286
      start: 9284
    functionDepth: 1
    functionLinenumber: 9284
    functionLinenumberEnd: 9286
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Detail::empty
    linkageType: ''
    returnType: auto
    signature: auto empty(Container const& cont) -> decltype(cont.empty())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9293
      start: 9288
    functionDepth: 0
    functionLinenumber: 9288
    functionLinenumberEnd: 9293
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty(const T (&)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<T>::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9297
      start: 9295
    functionDepth: 1
    functionLinenumber: 9295
    functionLinenumberEnd: 9297
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::initializer_list<T>::size
    linkageType: ''
    returnType: bool
    signature: bool empty(std::initializer_list<T> list) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9301,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cont'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9303
      start: 9301
    functionDepth: 0
    functionLinenumber: 9301
    functionLinenumberEnd: 9303
    functionName: Catch::Detail::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Detail::size
    linkageType: ''
    returnType: auto
    signature: auto size(Container const& cont) -> decltype(cont.size())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9307
      start: 9305
    functionDepth: 0
    functionLinenumber: 9305
    functionLinenumberEnd: 9307
    functionName: Catch::Detail::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size(const T(&)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9284,1
    - Dst: Catch::Detail::empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cont'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9286
      start: 9284
    functionDepth: 1
    functionLinenumber: 9284
    functionLinenumberEnd: 9286
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Detail::empty
    linkageType: ''
    returnType: auto
    signature: auto empty(Container const& cont) -> decltype(cont.empty())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9293
      start: 9288
    functionDepth: 0
    functionLinenumber: 9288
    functionLinenumberEnd: 9293
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty(const T (&)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<T>::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - std::initializer_list<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9297
      start: 9295
    functionDepth: 1
    functionLinenumber: 9295
    functionLinenumberEnd: 9297
    functionName: Catch::Detail::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - std::initializer_list<T>::size
    linkageType: ''
    returnType: bool
    signature: bool empty(std::initializer_list<T> list) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9301,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cont'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9303
      start: 9301
    functionDepth: 0
    functionLinenumber: 9301
    functionLinenumberEnd: 9303
    functionName: Catch::Detail::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Detail::size
    linkageType: ''
    returnType: auto
    signature: auto size(Container const& cont) -> decltype(cont.size())
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9307
      start: 9305
    functionDepth: 0
    functionLinenumber: 9305
    functionLinenumberEnd: 9307
    functionName: Catch::Detail::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size(const T(&)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9342
      start: 9341
    functionDepth: 0
    functionLinenumber: 9341
    functionLinenumberEnd: 9342
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9344
      start: 9343
    functionDepth: 0
    functionLinenumber: 9343
    functionLinenumberEnd: 9344
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9347
      start: 9345
    functionDepth: 0
    functionLinenumber: 9345
    functionLinenumberEnd: 9347
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9354
      start: 9353
    functionDepth: 0
    functionLinenumber: 9353
    functionLinenumberEnd: 9354
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9356
      start: 9355
    functionDepth: 0
    functionLinenumber: 9355
    functionLinenumberEnd: 9356
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9358
      start: 9357
    functionDepth: 0
    functionLinenumber: 9357
    functionLinenumberEnd: 9358
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9360
      start: 9359
    functionDepth: 0
    functionLinenumber: 9359
    functionLinenumberEnd: 9360
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9368
      start: 9367
    functionDepth: 0
    functionLinenumber: 9367
    functionLinenumberEnd: 9368
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9372
      start: 9371
    functionDepth: 0
    functionLinenumber: 9371
    functionLinenumberEnd: 9372
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9375
      start: 9374
    functionDepth: 0
    functionLinenumber: 9374
    functionLinenumberEnd: 9375
    functionName: CATCH_TRAP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_TRAP()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isDebuggerActive
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9382,1
    - Dst: CATCH_TRAP
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9382
      start: 9376
    functionDepth: 1
    functionLinenumber: 9376
    functionLinenumberEnd: 9382
    functionName: CATCH_BREAK_INTO_DEBUGGER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_TRAP
    - Catch::isDebuggerActive
    linkageType: ''
    returnType: void
    signature: void CATCH_BREAK_INTO_DEBUGGER() []
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9385
      start: 9384
    functionDepth: 0
    functionLinenumber: 9384
    functionLinenumberEnd: 9385
    functionName: CATCH_BREAK_INTO_DEBUGGER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_BREAK_INTO_DEBUGGER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - Ex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9403
      start: 9400
    functionDepth: 0
    functionLinenumber: 9400
    functionLinenumberEnd: 9403
    functionName: Catch::throw_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void throw_exception(Ex const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - Ex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9403
      start: 9400
    functionDepth: 0
    functionLinenumber: 9400
    functionLinenumberEnd: 9403
    functionName: Catch::throw_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void throw_exception(Ex const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9420
      start: 9418
    functionDepth: 0
    functionLinenumber: 9418
    functionLinenumberEnd: 9420
    functionName: CATCH_MAKE_MSG
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_MAKE_MSG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9423
      start: 9421
    functionDepth: 0
    functionLinenumber: 9421
    functionLinenumberEnd: 9423
    functionName: CATCH_INTERNAL_ERROR
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_INTERNAL_ERROR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9426
      start: 9424
    functionDepth: 0
    functionLinenumber: 9424
    functionLinenumberEnd: 9426
    functionName: CATCH_ERROR
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_ERROR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9429
      start: 9427
    functionDepth: 0
    functionLinenumber: 9427
    functionLinenumberEnd: 9429
    functionName: CATCH_RUNTIME_ERROR
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_RUNTIME_ERROR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - condition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9432
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9432
    functionName: CATCH_ENFORCE
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_ENFORCE( condition, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9541,1
    - Dst: Catch::FatalConditionHandler::engage_platform
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!m_started && "Handler cannot be installed twice.")
      pos:
        line_end: 9540
        line_start: 9540
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 9544
      start: 9540
    functionDepth: 1
    functionLinenumber: 9540
    functionLinenumberEnd: 9544
    functionName: Catch::FatalConditionHandler::engage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::FatalConditionHandler::engage_platform
    linkageType: ''
    returnType: void
    signature: void engage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9547,1
    - Dst: Catch::FatalConditionHandler::disengage_platform
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_started && "Handler cannot be uninstalled without being installed
        first")
      pos:
        line_end: 9546
        line_start: 9546
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 9550
      start: 9546
    functionDepth: 1
    functionLinenumber: 9546
    functionLinenumberEnd: 9550
    functionName: Catch::FatalConditionHandler::disengage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::FatalConditionHandler::disengage_platform
    - assert
    linkageType: ''
    returnType: void
    signature: void disengage() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - FatalConditionHandler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9560
      start: 9557
    functionDepth: 0
    functionLinenumber: 9557
    functionLinenumberEnd: 9560
    functionName: Catch::FatalConditionHandlerGuard::FatalConditionHandlerGuard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - engage
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandlerGuard(FatalConditionHandler* handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disengage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9563
      start: 9561
    functionDepth: 0
    functionLinenumber: 9561
    functionLinenumberEnd: 9563
    functionName: ~FatalConditionHandlerGuard()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - disengage
    linkageType: ''
    returnType: void
    signature: void ~FatalConditionHandlerGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9541,1
    - Dst: Catch::FatalConditionHandler::engage_platform
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!m_started && "Handler cannot be installed twice.")
      pos:
        line_end: 9540
        line_start: 9540
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 9544
      start: 9540
    functionDepth: 1
    functionLinenumber: 9540
    functionLinenumberEnd: 9544
    functionName: Catch::FatalConditionHandler::engage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::FatalConditionHandler::engage_platform
    linkageType: ''
    returnType: void
    signature: void engage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9547,1
    - Dst: Catch::FatalConditionHandler::disengage_platform
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_started && "Handler cannot be uninstalled without being installed
        first")
      pos:
        line_end: 9546
        line_start: 9546
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 9550
      start: 9546
    functionDepth: 1
    functionLinenumber: 9546
    functionLinenumberEnd: 9550
    functionName: Catch::FatalConditionHandler::disengage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::FatalConditionHandler::disengage_platform
    - assert
    linkageType: ''
    returnType: void
    signature: void disengage() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - FatalConditionHandler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9560
      start: 9557
    functionDepth: 0
    functionLinenumber: 9557
    functionLinenumberEnd: 9560
    functionName: Catch::FatalConditionHandlerGuard::FatalConditionHandlerGuard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - engage
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandlerGuard(FatalConditionHandler* handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disengage
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9563
      start: 9561
    functionDepth: 0
    functionLinenumber: 9561
    functionLinenumberEnd: 9563
    functionName: ~FatalConditionHandlerGuard()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - disengage
    linkageType: ''
    returnType: void
    signature: void ~FatalConditionHandlerGuard()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9623,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9625,1
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9625,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9627,1
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9627,1
    - Dst: std::signbit
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9643,1
    - Dst: std::signbit
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9643,1
    - Dst: Catch::ulpDistance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9644,1
    - Dst: std::abs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9644,1
    - Dst: Catch::ulpDistance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9645,1
    - Dst: std::abs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9645,1
    - Dst: Catch::Detail::convertToBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9651,1
    - Dst: Catch::Detail::convertToBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9652,1
    - Dst: std::swap
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - FP
    - FP
    assertStmts:
    - condition: "( std::numeric_limits<FP>::is_iec559 &&\n            \"ulpDistance
        assumes IEEE-754 format for floating point types\" )"
      pos:
        line_end: 9623
        line_start: 9622
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: "( !Catch::isnan( rhs ) &&\n                \"Distance between NaN
        and number is not meaningful\" )"
      pos:
        line_end: 9627
        line_start: 9626
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: "( !Catch::isnan( lhs ) &&\n                \"Distance between NaN
        and number is not meaningful\" )"
      pos:
        line_end: 9625
        line_start: 9624
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 9661
      start: 9622
    functionDepth: 1
    functionLinenumber: 9622
    functionLinenumberEnd: 9661
    functionName: Catch::ulpDistance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::convertToBits
    - assert
    - Catch::isnan
    - Catch::ulpDistance
    - std::swap
    - std::abs
    - std::signbit
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ulpDistance( FP lhs, FP rhs )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9623,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9625,1
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9625,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9627,1
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9627,1
    - Dst: std::signbit
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9643,1
    - Dst: std::signbit
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9643,1
    - Dst: Catch::ulpDistance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9644,1
    - Dst: std::abs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9644,1
    - Dst: Catch::ulpDistance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9645,1
    - Dst: std::abs
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9645,1
    - Dst: Catch::Detail::convertToBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9651,1
    - Dst: Catch::Detail::convertToBits
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9652,1
    - Dst: std::swap
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - FP
    - FP
    assertStmts:
    - condition: "( std::numeric_limits<FP>::is_iec559 &&\n            \"ulpDistance
        assumes IEEE-754 format for floating point types\" )"
      pos:
        line_end: 9623
        line_start: 9622
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: "( !Catch::isnan( rhs ) &&\n                \"Distance between NaN
        and number is not meaningful\" )"
      pos:
        line_end: 9627
        line_start: 9626
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    - condition: "( !Catch::isnan( lhs ) &&\n                \"Distance between NaN
        and number is not meaningful\" )"
      pos:
        line_end: 9625
        line_start: 9624
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 9661
      start: 9622
    functionDepth: 1
    functionLinenumber: 9622
    functionLinenumberEnd: 9661
    functionName: Catch::ulpDistance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::convertToBits
    - assert
    - Catch::isnan
    - Catch::ulpDistance
    - std::swap
    - std::abs
    - std::signbit
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ulpDistance( FP lhs, FP rhs )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - start
    - sentinel
    - ' value'
    - cmp
    argTypes:
    - ForwardIter
    - Sentinel
    - T
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9710
      start: 9701
    functionDepth: 0
    functionLinenumber: 9701
    functionLinenumberEnd: 9710
    functionName: Catch::Detail::find_sentinel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: ForwardIter
    signature: "ForwardIter find_sentinel( ForwardIter start,\n                                   Sentinel
      sentinel,\n                                   T const& value,\n                                   Comparator
      cmp )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - start
    - sentinel
    - ' value'
    - cmp
    argTypes:
    - ForwardIter
    - Sentinel
    - T
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9726
      start: 9716
    functionDepth: 0
    functionLinenumber: 9716
    functionLinenumberEnd: 9726
    functionName: Catch::Detail::count_sentinel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: "std::ptrdiff_t count_sentinel( ForwardIter start,\n                                       Sentinel
      sentinel,\n                                       T const& value,\n                                       Comparator
      cmp )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iter
    - sentinel
    argTypes:
    - ForwardIter
    - Sentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9738
      start: 9729
    functionDepth: 0
    functionLinenumber: 9729
    functionLinenumberEnd: 9738
    functionName: Catch::Detail::sentinel_distance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,\n                         std::ptrdiff_t>"
    signature: "std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,\n                         std::ptrdiff_t>
      sentinel_distance( ForwardIter iter, const Sentinel sentinel )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - ForwardIter
    - ForwardIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9744
      start: 9741
    functionDepth: 0
    functionLinenumber: 9741
    functionLinenumberEnd: 9744
    functionName: Catch::Detail::sentinel_distance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::distance
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: "std::ptrdiff_t sentinel_distance( ForwardIter first,\n                                          ForwardIter
      last )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::find_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9758,1
    - Dst: Catch::Detail::count_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9762,1
    - Dst: Catch::Detail::count_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - first_1
    - end_1
    - first_2
    - end_2
    - cmp
    argTypes:
    - ForwardIter1
    - Sentinel1
    - ForwardIter2
    - Sentinel2
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9778
      start: 9751
    functionDepth: 1
    functionLinenumber: 9751
    functionLinenumberEnd: 9778
    functionName: Catch::Detail::check_element_counts
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::count_sentinel
    - Catch::Detail::find_sentinel
    linkageType: ''
    returnType: bool
    signature: "bool check_element_counts( ForwardIter1 first_1,\n                                   const
      Sentinel1 end_1,\n                                   ForwardIter2 first_2,\n
      \                                  const Sentinel2 end_2,\n                                   Comparator
      cmp )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9793,1
    - Dst: Catch::Detail::sentinel_distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9804,1
    - Dst: Catch::Detail::sentinel_distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9805,1
    - Dst: Catch::Detail::check_element_counts
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9812,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - first_1
    - end_1
    - first_2
    - end_2
    - cmp
    argTypes:
    - ForwardIter1
    - Sentinel1
    - ForwardIter2
    - Sentinel2
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9813
      start: 9785
    functionDepth: 2
    functionLinenumber: 9785
    functionLinenumberEnd: 9813
    functionName: Catch::Detail::is_permutation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - cmp
    - Catch::Detail::check_element_counts
    - Catch::Detail::sentinel_distance
    linkageType: ''
    returnType: bool
    signature: "bool is_permutation( ForwardIter1 first_1,\n                             const
      Sentinel1 end_1,\n                             ForwardIter2 first_2,\n                             const
      Sentinel2 end_2,\n                             Comparator cmp )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - start
    - sentinel
    - ' value'
    - cmp
    argTypes:
    - ForwardIter
    - Sentinel
    - T
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9710
      start: 9701
    functionDepth: 0
    functionLinenumber: 9701
    functionLinenumberEnd: 9710
    functionName: Catch::Detail::find_sentinel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - cmp
    linkageType: ''
    returnType: ForwardIter
    signature: "ForwardIter find_sentinel( ForwardIter start,\n                                   Sentinel
      sentinel,\n                                   T const& value,\n                                   Comparator
      cmp )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - start
    - sentinel
    - ' value'
    - cmp
    argTypes:
    - ForwardIter
    - Sentinel
    - T
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9726
      start: 9716
    functionDepth: 0
    functionLinenumber: 9716
    functionLinenumberEnd: 9726
    functionName: Catch::Detail::count_sentinel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - cmp
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: "std::ptrdiff_t count_sentinel( ForwardIter start,\n                                       Sentinel
      sentinel,\n                                       T const& value,\n                                       Comparator
      cmp )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iter
    - sentinel
    argTypes:
    - ForwardIter
    - Sentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9738
      start: 9729
    functionDepth: 0
    functionLinenumber: 9729
    functionLinenumberEnd: 9738
    functionName: Catch::Detail::sentinel_distance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: "std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,\n                         std::ptrdiff_t>"
    signature: "std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,\n                         std::ptrdiff_t>
      sentinel_distance( ForwardIter iter, const Sentinel sentinel )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - ForwardIter
    - ForwardIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9744
      start: 9741
    functionDepth: 0
    functionLinenumber: 9741
    functionLinenumberEnd: 9744
    functionName: Catch::Detail::sentinel_distance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - std::distance
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: "std::ptrdiff_t sentinel_distance( ForwardIter first,\n                                          ForwardIter
      last )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::find_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9758,1
    - Dst: Catch::Detail::count_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9762,1
    - Dst: Catch::Detail::count_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - first_1
    - end_1
    - first_2
    - end_2
    - cmp
    argTypes:
    - ForwardIter1
    - Sentinel1
    - ForwardIter2
    - Sentinel2
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9778
      start: 9751
    functionDepth: 1
    functionLinenumber: 9751
    functionLinenumberEnd: 9778
    functionName: Catch::Detail::check_element_counts
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::count_sentinel
    - Catch::Detail::find_sentinel
    linkageType: ''
    returnType: bool
    signature: "bool check_element_counts( ForwardIter1 first_1,\n                                   const
      Sentinel1 end_1,\n                                   ForwardIter2 first_2,\n
      \                                  const Sentinel2 end_2,\n                                   Comparator
      cmp )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9793,1
    - Dst: Catch::Detail::sentinel_distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9804,1
    - Dst: Catch::Detail::sentinel_distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9805,1
    - Dst: Catch::Detail::check_element_counts
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9812,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - first_1
    - end_1
    - first_2
    - end_2
    - cmp
    argTypes:
    - ForwardIter1
    - Sentinel1
    - ForwardIter2
    - Sentinel2
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9813
      start: 9785
    functionDepth: 2
    functionLinenumber: 9785
    functionLinenumberEnd: 9813
    functionName: Catch::Detail::is_permutation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - cmp
    - Catch::Detail::check_element_counts
    - Catch::Detail::sentinel_distance
    linkageType: ''
    returnType: bool
    signature: "bool is_permutation( ForwardIter1 first_1,\n                             const
      Sentinel1 end_1,\n                             ForwardIter2 first_2,\n                             const
      Sentinel2 end_2,\n                             Comparator cmp )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - start
    - sentinel
    - ' value'
    - cmp
    argTypes:
    - ForwardIter
    - Sentinel
    - T
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9710
      start: 9701
    functionDepth: 0
    functionLinenumber: 9701
    functionLinenumberEnd: 9710
    functionName: Catch::Detail::find_sentinel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - cmp
    linkageType: ''
    returnType: ForwardIter
    signature: "ForwardIter find_sentinel( ForwardIter start,\n                                   Sentinel
      sentinel,\n                                   T const& value,\n                                   Comparator
      cmp )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - start
    - sentinel
    - ' value'
    - cmp
    argTypes:
    - ForwardIter
    - Sentinel
    - T
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9726
      start: 9716
    functionDepth: 0
    functionLinenumber: 9716
    functionLinenumberEnd: 9726
    functionName: Catch::Detail::count_sentinel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - cmp
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: "std::ptrdiff_t count_sentinel( ForwardIter start,\n                                       Sentinel
      sentinel,\n                                       T const& value,\n                                       Comparator
      cmp )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iter
    - sentinel
    argTypes:
    - ForwardIter
    - Sentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9738
      start: 9729
    functionDepth: 0
    functionLinenumber: 9729
    functionLinenumberEnd: 9738
    functionName: Catch::Detail::sentinel_distance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: "std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,\n                         std::ptrdiff_t>"
    signature: "std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,\n                         std::ptrdiff_t>
      sentinel_distance( ForwardIter iter, const Sentinel sentinel )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - ForwardIter
    - ForwardIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9744
      start: 9741
    functionDepth: 0
    functionLinenumber: 9741
    functionLinenumberEnd: 9744
    functionName: Catch::Detail::sentinel_distance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - std::distance
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: "std::ptrdiff_t sentinel_distance( ForwardIter first,\n                                          ForwardIter
      last )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::find_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9758,1
    - Dst: Catch::Detail::count_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9762,1
    - Dst: Catch::Detail::count_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - first_1
    - end_1
    - first_2
    - end_2
    - cmp
    argTypes:
    - ForwardIter1
    - Sentinel1
    - ForwardIter2
    - Sentinel2
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9778
      start: 9751
    functionDepth: 1
    functionLinenumber: 9751
    functionLinenumberEnd: 9778
    functionName: Catch::Detail::check_element_counts
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Detail::count_sentinel
    - Catch::Detail::find_sentinel
    linkageType: ''
    returnType: bool
    signature: "bool check_element_counts( ForwardIter1 first_1,\n                                   const
      Sentinel1 end_1,\n                                   ForwardIter2 first_2,\n
      \                                  const Sentinel2 end_2,\n                                   Comparator
      cmp )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9793,1
    - Dst: Catch::Detail::sentinel_distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9804,1
    - Dst: Catch::Detail::sentinel_distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9805,1
    - Dst: Catch::Detail::check_element_counts
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9812,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - first_1
    - end_1
    - first_2
    - end_2
    - cmp
    argTypes:
    - ForwardIter1
    - Sentinel1
    - ForwardIter2
    - Sentinel2
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9813
      start: 9785
    functionDepth: 2
    functionLinenumber: 9785
    functionLinenumberEnd: 9813
    functionName: Catch::Detail::is_permutation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - cmp
    - Catch::Detail::check_element_counts
    - Catch::Detail::sentinel_distance
    linkageType: ''
    returnType: bool
    signature: "bool is_permutation( ForwardIter1 first_1,\n                             const
      Sentinel1 end_1,\n                             ForwardIter2 first_2,\n                             const
      Sentinel2 end_2,\n                             Comparator cmp )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - start
    - sentinel
    - ' value'
    - cmp
    argTypes:
    - ForwardIter
    - Sentinel
    - T
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9710
      start: 9701
    functionDepth: 0
    functionLinenumber: 9701
    functionLinenumberEnd: 9710
    functionName: Catch::Detail::find_sentinel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - cmp
    linkageType: ''
    returnType: ForwardIter
    signature: "ForwardIter find_sentinel( ForwardIter start,\n                                   Sentinel
      sentinel,\n                                   T const& value,\n                                   Comparator
      cmp )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - start
    - sentinel
    - ' value'
    - cmp
    argTypes:
    - ForwardIter
    - Sentinel
    - T
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9726
      start: 9716
    functionDepth: 0
    functionLinenumber: 9716
    functionLinenumberEnd: 9726
    functionName: Catch::Detail::count_sentinel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - cmp
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: "std::ptrdiff_t count_sentinel( ForwardIter start,\n                                       Sentinel
      sentinel,\n                                       T const& value,\n                                       Comparator
      cmp )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iter
    - sentinel
    argTypes:
    - ForwardIter
    - Sentinel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9738
      start: 9729
    functionDepth: 0
    functionLinenumber: 9729
    functionLinenumberEnd: 9738
    functionName: Catch::Detail::sentinel_distance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: "std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,\n                         std::ptrdiff_t>"
    signature: "std::enable_if_t<!std::is_same<ForwardIter, Sentinel>::value,\n                         std::ptrdiff_t>
      sentinel_distance( ForwardIter iter, const Sentinel sentinel )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - ForwardIter
    - ForwardIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9744
      start: 9741
    functionDepth: 0
    functionLinenumber: 9741
    functionLinenumberEnd: 9744
    functionName: Catch::Detail::sentinel_distance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - std::distance
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: "std::ptrdiff_t sentinel_distance( ForwardIter first,\n                                          ForwardIter
      last )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::find_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9758,1
    - Dst: Catch::Detail::count_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9762,1
    - Dst: Catch::Detail::count_sentinel
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - first_1
    - end_1
    - first_2
    - end_2
    - cmp
    argTypes:
    - ForwardIter1
    - Sentinel1
    - ForwardIter2
    - Sentinel2
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9778
      start: 9751
    functionDepth: 1
    functionLinenumber: 9751
    functionLinenumberEnd: 9778
    functionName: Catch::Detail::check_element_counts
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Detail::count_sentinel
    - Catch::Detail::find_sentinel
    linkageType: ''
    returnType: bool
    signature: "bool check_element_counts( ForwardIter1 first_1,\n                                   const
      Sentinel1 end_1,\n                                   ForwardIter2 first_2,\n
      \                                  const Sentinel2 end_2,\n                                   Comparator
      cmp )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9793,1
    - Dst: Catch::Detail::sentinel_distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9804,1
    - Dst: Catch::Detail::sentinel_distance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9805,1
    - Dst: Catch::Detail::check_element_counts
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9812,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - first_1
    - end_1
    - first_2
    - end_2
    - cmp
    argTypes:
    - ForwardIter1
    - Sentinel1
    - ForwardIter2
    - Sentinel2
    - Comparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9813
      start: 9785
    functionDepth: 2
    functionLinenumber: 9785
    functionLinenumberEnd: 9813
    functionName: Catch::Detail::is_permutation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - cmp
    - Catch::Detail::check_element_counts
    - Catch::Detail::sentinel_distance
    linkageType: ''
    returnType: bool
    signature: "bool is_permutation( ForwardIter1 first_1,\n                             const
      Sentinel1 end_1,\n                             ForwardIter2 first_2,\n                             const
      Sentinel2 end_2,\n                             Comparator cmp )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9847
      start: 9847
    functionDepth: 0
    functionLinenumber: 9847
    functionLinenumberEnd: 9847
    functionName: Catch::IStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9847
      start: 9847
    functionDepth: 0
    functionLinenumber: 9847
    functionLinenumberEnd: 9847
    functionName: Catch::IStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9897
      start: 9895
    functionDepth: 0
    functionLinenumber: 9895
    functionLinenumberEnd: 9897
    functionName: Catch::JsonValueWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::JsonValueWriter::writeImpl
    linkageType: ''
    returnType: void
    signature: void write( T const& value ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9913,1
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' value'
    - quote_value
    argTypes:
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9914
      start: 9911
    functionDepth: 0
    functionLinenumber: 9911
    functionLinenumberEnd: 9914
    functionName: Catch::JsonValueWriter::writeImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::JsonValueWriter::writeImpl
    - str
    linkageType: ''
    returnType: void
    signature: void writeImpl( T const& value, bool quote_value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - JsonObjectWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9927
      start: 9927
    functionDepth: 0
    functionLinenumber: 9927
    functionLinenumberEnd: 9927
    functionName: '& operator=( JsonObjectWriter&& source )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter & operator=( JsonObjectWriter&& source )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - JsonArrayWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9946
      start: 9946
    functionDepth: 0
    functionLinenumber: 9946
    functionLinenumberEnd: 9946
    functionName: '& operator=( JsonArrayWriter&& source )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & operator=( JsonArrayWriter&& source )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonArrayWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9956
      start: 9954
    functionDepth: 1
    functionLinenumber: 9954
    functionLinenumberEnd: 9956
    functionName: Catch::JsonArrayWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::JsonArrayWriter::writeImpl
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & write( T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::appendCommaNewline
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9963,1
    - Dst: Catch::JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9968
      start: 9962
    functionDepth: 1
    functionLinenumber: 9962
    functionLinenumberEnd: 9968
    functionName: Catch::JsonArrayWriter::writeImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::JsonArrayWriter::write
    - Catch::JsonUtils::appendCommaNewline
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & writeImpl( T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9897
      start: 9895
    functionDepth: 0
    functionLinenumber: 9895
    functionLinenumberEnd: 9897
    functionName: Catch::JsonValueWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::JsonValueWriter::writeImpl
    linkageType: ''
    returnType: void
    signature: void write( T const& value ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9913,1
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' value'
    - quote_value
    argTypes:
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9914
      start: 9911
    functionDepth: 0
    functionLinenumber: 9911
    functionLinenumberEnd: 9914
    functionName: Catch::JsonValueWriter::writeImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::JsonValueWriter::writeImpl
    - str
    linkageType: ''
    returnType: void
    signature: void writeImpl( T const& value, bool quote_value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - JsonObjectWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9927
      start: 9927
    functionDepth: 0
    functionLinenumber: 9927
    functionLinenumberEnd: 9927
    functionName: '& operator=( JsonObjectWriter&& source )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter & operator=( JsonObjectWriter&& source )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - JsonArrayWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9946
      start: 9946
    functionDepth: 0
    functionLinenumber: 9946
    functionLinenumberEnd: 9946
    functionName: '& operator=( JsonArrayWriter&& source )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & operator=( JsonArrayWriter&& source )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonArrayWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9956
      start: 9954
    functionDepth: 2
    functionLinenumber: 9954
    functionLinenumberEnd: 9956
    functionName: Catch::JsonArrayWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::JsonArrayWriter::writeImpl
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & write( T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::appendCommaNewline
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9963,1
    - Dst: Catch::JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:9965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9968
      start: 9962
    functionDepth: 1
    functionLinenumber: 9962
    functionLinenumberEnd: 9968
    functionName: Catch::JsonArrayWriter::writeImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::JsonArrayWriter::write
    - Catch::JsonUtils::appendCommaNewline
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & writeImpl( T const& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10074
      start: 10074
    functionDepth: 0
    functionLinenumber: 10074
    functionLinenumberEnd: 10074
    functionName: Catch::RedirectedStreams::RedirectedStreams
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RedirectedStreams(RedirectedStreams const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10075
      start: 10075
    functionDepth: 0
    functionLinenumber: 10075
    functionLinenumberEnd: 10075
    functionName: '& operator=(RedirectedStreams const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RedirectedStreams
    signature: RedirectedStreams & operator=(RedirectedStreams const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10076
      start: 10076
    functionDepth: 0
    functionLinenumber: 10076
    functionLinenumberEnd: 10076
    functionName: Catch::RedirectedStreams::RedirectedStreams
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RedirectedStreams(RedirectedStreams&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10077
      start: 10077
    functionDepth: 0
    functionLinenumber: 10077
    functionLinenumberEnd: 10077
    functionName: '& operator=(RedirectedStreams&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RedirectedStreams
    signature: RedirectedStreams & operator=(RedirectedStreams&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10096
      start: 10096
    functionDepth: 0
    functionLinenumber: 10096
    functionLinenumberEnd: 10096
    functionName: Catch::TempFile::TempFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TempFile(TempFile const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10097
      start: 10097
    functionDepth: 0
    functionLinenumber: 10097
    functionLinenumberEnd: 10097
    functionName: '& operator=(TempFile const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TempFile
    signature: TempFile & operator=(TempFile const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10098
      start: 10098
    functionDepth: 0
    functionLinenumber: 10098
    functionLinenumberEnd: 10098
    functionName: Catch::TempFile::TempFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TempFile(TempFile&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10099
      start: 10099
    functionDepth: 0
    functionLinenumber: 10099
    functionLinenumberEnd: 10099
    functionName: '& operator=(TempFile&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TempFile
    signature: TempFile & operator=(TempFile&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10117
      start: 10117
    functionDepth: 0
    functionLinenumber: 10117
    functionLinenumberEnd: 10117
    functionName: Catch::OutputRedirect::OutputRedirect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OutputRedirect(OutputRedirect const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10118
      start: 10118
    functionDepth: 0
    functionLinenumber: 10118
    functionLinenumberEnd: 10118
    functionName: '& operator=(OutputRedirect const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OutputRedirect
    signature: OutputRedirect & operator=(OutputRedirect const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10119
      start: 10119
    functionDepth: 0
    functionLinenumber: 10119
    functionLinenumberEnd: 10119
    functionName: Catch::OutputRedirect::OutputRedirect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OutputRedirect(OutputRedirect&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10120
      start: 10120
    functionDepth: 0
    functionLinenumber: 10120
    functionLinenumberEnd: 10120
    functionName: '& operator=(OutputRedirect&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OutputRedirect
    signature: OutputRedirect & operator=(OutputRedirect&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10074
      start: 10074
    functionDepth: 0
    functionLinenumber: 10074
    functionLinenumberEnd: 10074
    functionName: Catch::RedirectedStreams::RedirectedStreams
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RedirectedStreams(RedirectedStreams const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10075
      start: 10075
    functionDepth: 0
    functionLinenumber: 10075
    functionLinenumberEnd: 10075
    functionName: '& operator=(RedirectedStreams const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RedirectedStreams
    signature: RedirectedStreams & operator=(RedirectedStreams const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10076
      start: 10076
    functionDepth: 0
    functionLinenumber: 10076
    functionLinenumberEnd: 10076
    functionName: Catch::RedirectedStreams::RedirectedStreams
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RedirectedStreams(RedirectedStreams&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10077
      start: 10077
    functionDepth: 0
    functionLinenumber: 10077
    functionLinenumberEnd: 10077
    functionName: '& operator=(RedirectedStreams&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RedirectedStreams
    signature: RedirectedStreams & operator=(RedirectedStreams&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10096
      start: 10096
    functionDepth: 0
    functionLinenumber: 10096
    functionLinenumberEnd: 10096
    functionName: Catch::TempFile::TempFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TempFile(TempFile const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10097
      start: 10097
    functionDepth: 0
    functionLinenumber: 10097
    functionLinenumberEnd: 10097
    functionName: '& operator=(TempFile const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TempFile
    signature: TempFile & operator=(TempFile const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10098
      start: 10098
    functionDepth: 0
    functionLinenumber: 10098
    functionLinenumberEnd: 10098
    functionName: Catch::TempFile::TempFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TempFile(TempFile&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10099
      start: 10099
    functionDepth: 0
    functionLinenumber: 10099
    functionLinenumberEnd: 10099
    functionName: '& operator=(TempFile&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TempFile
    signature: TempFile & operator=(TempFile&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10117
      start: 10117
    functionDepth: 0
    functionLinenumber: 10117
    functionLinenumberEnd: 10117
    functionName: Catch::OutputRedirect::OutputRedirect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OutputRedirect(OutputRedirect const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10118
      start: 10118
    functionDepth: 0
    functionLinenumber: 10118
    functionLinenumberEnd: 10118
    functionName: '& operator=(OutputRedirect const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OutputRedirect
    signature: OutputRedirect & operator=(OutputRedirect const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10119
      start: 10119
    functionDepth: 0
    functionLinenumber: 10119
    functionLinenumberEnd: 10119
    functionName: Catch::OutputRedirect::OutputRedirect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OutputRedirect(OutputRedirect&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10120
      start: 10120
    functionDepth: 0
    functionLinenumber: 10120
    functionLinenumberEnd: 10120
    functionName: '& operator=(OutputRedirect&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OutputRedirect
    signature: OutputRedirect & operator=(OutputRedirect&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10237
      start: 10230
    functionDepth: 0
    functionLinenumber: 10230
    functionLinenumberEnd: 10237
    functionName: operator==(NameAndLocation const& lhs, NameAndLocation const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(NameAndLocation const& lhs, NameAndLocation const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10241
      start: 10238
    functionDepth: 0
    functionLinenumber: 10238
    functionLinenumberEnd: 10241
    functionName: "operator!=(NameAndLocation const& lhs,\n                               NameAndLocation
      const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(NameAndLocation const& lhs,\n                               NameAndLocation
      const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name_
    - location_
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10257
      start: 10255
    functionDepth: 0
    functionLinenumber: 10255
    functionLinenumberEnd: 10257
    functionName: Catch::TestCaseTracking::NameAndLocationRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NameAndLocationRef( StringRef name_,\n                                      SourceLineInfo
      location_ )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocationRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10268
      start: 10259
    functionDepth: 0
    functionLinenumber: 10259
    functionLinenumberEnd: 10268
    functionName: "operator==( NameAndLocation const& lhs,\n                                NameAndLocationRef
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: bool
    signature: "bool operator==( NameAndLocation const& lhs,\n                                NameAndLocationRef
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocationRef
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10272
      start: 10269
    functionDepth: 0
    functionLinenumber: 10269
    functionLinenumberEnd: 10272
    functionName: "operator==( NameAndLocationRef const& lhs,\n                                NameAndLocation
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==( NameAndLocationRef const& lhs,\n                                NameAndLocation
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' nameAndLoc'
    - parent
    argTypes:
    - NameAndLocation
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10302
      start: 10299
    functionDepth: 1
    functionLinenumber: 10299
    functionLinenumberEnd: 10302
    functionName: Catch::TestCaseTracking::ITracker::ITracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ITracker( NameAndLocation&& nameAndLoc, ITracker* parent )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10308
      start: 10306
    functionDepth: 0
    functionLinenumber: 10306
    functionLinenumberEnd: 10308
    functionName: '& nameAndLocation() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NameAndLocation
    signature: NameAndLocation & nameAndLocation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10311
      start: 10309
    functionDepth: 0
    functionLinenumber: 10309
    functionLinenumberEnd: 10311
    functionName: Catch::TestCaseTracking::ITracker::parent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITracker
    signature: ITracker * parent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10323
      start: 10321
    functionDepth: 0
    functionLinenumber: 10321
    functionLinenumberEnd: 10323
    functionName: Catch::TestCaseTracking::ITracker::isSuccessfullyCompleted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isSuccessfullyCompleted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10345
      start: 10343
    functionDepth: 0
    functionLinenumber: 10343
    functionLinenumberEnd: 10345
    functionName: Catch::TestCaseTracking::ITracker::hasChildren
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool hasChildren() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10386
      start: 10383
    functionDepth: 0
    functionLinenumber: 10383
    functionLinenumberEnd: 10386
    functionName: Catch::TestCaseTracking::TrackerContext::startCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: void
    signature: void startCycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10390
      start: 10390
    functionDepth: 0
    functionLinenumber: 10390
    functionLinenumberEnd: 10390
    functionName: '& currentTracker()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITracker
    signature: ITracker & currentTracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10435
      start: 10435
    functionDepth: 0
    functionLinenumber: 10435
    functionLinenumberEnd: 10435
    functionName: '& getFilters() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> & getFilters() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10237
      start: 10230
    functionDepth: 0
    functionLinenumber: 10230
    functionLinenumberEnd: 10237
    functionName: operator==(NameAndLocation const& lhs, NameAndLocation const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(NameAndLocation const& lhs, NameAndLocation const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10241
      start: 10238
    functionDepth: 0
    functionLinenumber: 10238
    functionLinenumberEnd: 10241
    functionName: "operator!=(NameAndLocation const& lhs,\n                               NameAndLocation
      const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(NameAndLocation const& lhs,\n                               NameAndLocation
      const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name_
    - location_
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10257
      start: 10255
    functionDepth: 0
    functionLinenumber: 10255
    functionLinenumberEnd: 10257
    functionName: Catch::TestCaseTracking::NameAndLocationRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NameAndLocationRef( StringRef name_,\n                                      SourceLineInfo
      location_ )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocationRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10268
      start: 10259
    functionDepth: 0
    functionLinenumber: 10259
    functionLinenumberEnd: 10268
    functionName: "operator==( NameAndLocation const& lhs,\n                                NameAndLocationRef
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: bool
    signature: "bool operator==( NameAndLocation const& lhs,\n                                NameAndLocationRef
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocationRef
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10272
      start: 10269
    functionDepth: 0
    functionLinenumber: 10269
    functionLinenumberEnd: 10272
    functionName: "operator==( NameAndLocationRef const& lhs,\n                                NameAndLocation
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==( NameAndLocationRef const& lhs,\n                                NameAndLocation
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' nameAndLoc'
    - parent
    argTypes:
    - NameAndLocation
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10302
      start: 10299
    functionDepth: 1
    functionLinenumber: 10299
    functionLinenumberEnd: 10302
    functionName: Catch::TestCaseTracking::ITracker::ITracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ITracker( NameAndLocation&& nameAndLoc, ITracker* parent )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10308
      start: 10306
    functionDepth: 0
    functionLinenumber: 10306
    functionLinenumberEnd: 10308
    functionName: '& nameAndLocation() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NameAndLocation
    signature: NameAndLocation & nameAndLocation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10311
      start: 10309
    functionDepth: 0
    functionLinenumber: 10309
    functionLinenumberEnd: 10311
    functionName: Catch::TestCaseTracking::ITracker::parent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITracker
    signature: ITracker * parent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10323
      start: 10321
    functionDepth: 0
    functionLinenumber: 10321
    functionLinenumberEnd: 10323
    functionName: Catch::TestCaseTracking::ITracker::isSuccessfullyCompleted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isSuccessfullyCompleted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10345
      start: 10343
    functionDepth: 0
    functionLinenumber: 10343
    functionLinenumberEnd: 10345
    functionName: Catch::TestCaseTracking::ITracker::hasChildren
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool hasChildren() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10386
      start: 10383
    functionDepth: 0
    functionLinenumber: 10383
    functionLinenumberEnd: 10386
    functionName: Catch::TestCaseTracking::TrackerContext::startCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: void
    signature: void startCycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10390
      start: 10390
    functionDepth: 0
    functionLinenumber: 10390
    functionLinenumberEnd: 10390
    functionName: '& currentTracker()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITracker
    signature: ITracker & currentTracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10435
      start: 10435
    functionDepth: 0
    functionLinenumber: 10435
    functionLinenumberEnd: 10435
    functionName: '& getFilters() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> & getFilters() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10237
      start: 10230
    functionDepth: 0
    functionLinenumber: 10230
    functionLinenumberEnd: 10237
    functionName: operator==(NameAndLocation const& lhs, NameAndLocation const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(NameAndLocation const& lhs, NameAndLocation const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10241
      start: 10238
    functionDepth: 0
    functionLinenumber: 10238
    functionLinenumberEnd: 10241
    functionName: "operator!=(NameAndLocation const& lhs,\n                               NameAndLocation
      const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(NameAndLocation const& lhs,\n                               NameAndLocation
      const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name_
    - location_
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10257
      start: 10255
    functionDepth: 0
    functionLinenumber: 10255
    functionLinenumberEnd: 10257
    functionName: Catch::TestCaseTracking::NameAndLocationRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NameAndLocationRef( StringRef name_,\n                                      SourceLineInfo
      location_ )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocationRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10268
      start: 10259
    functionDepth: 0
    functionLinenumber: 10259
    functionLinenumberEnd: 10268
    functionName: "operator==( NameAndLocation const& lhs,\n                                NameAndLocationRef
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: bool
    signature: "bool operator==( NameAndLocation const& lhs,\n                                NameAndLocationRef
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocationRef
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10272
      start: 10269
    functionDepth: 0
    functionLinenumber: 10269
    functionLinenumberEnd: 10272
    functionName: "operator==( NameAndLocationRef const& lhs,\n                                NameAndLocation
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==( NameAndLocationRef const& lhs,\n                                NameAndLocation
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' nameAndLoc'
    - parent
    argTypes:
    - NameAndLocation
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10302
      start: 10299
    functionDepth: 1
    functionLinenumber: 10299
    functionLinenumberEnd: 10302
    functionName: Catch::TestCaseTracking::ITracker::ITracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ITracker( NameAndLocation&& nameAndLoc, ITracker* parent )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10308
      start: 10306
    functionDepth: 0
    functionLinenumber: 10306
    functionLinenumberEnd: 10308
    functionName: '& nameAndLocation() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NameAndLocation
    signature: NameAndLocation & nameAndLocation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10311
      start: 10309
    functionDepth: 0
    functionLinenumber: 10309
    functionLinenumberEnd: 10311
    functionName: Catch::TestCaseTracking::ITracker::parent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITracker
    signature: ITracker * parent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10323
      start: 10321
    functionDepth: 0
    functionLinenumber: 10321
    functionLinenumberEnd: 10323
    functionName: Catch::TestCaseTracking::ITracker::isSuccessfullyCompleted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isSuccessfullyCompleted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10345
      start: 10343
    functionDepth: 0
    functionLinenumber: 10343
    functionLinenumberEnd: 10345
    functionName: Catch::TestCaseTracking::ITracker::hasChildren
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool hasChildren() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10386
      start: 10383
    functionDepth: 0
    functionLinenumber: 10383
    functionLinenumberEnd: 10386
    functionName: Catch::TestCaseTracking::TrackerContext::startCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: void
    signature: void startCycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10390
      start: 10390
    functionDepth: 0
    functionLinenumber: 10390
    functionLinenumberEnd: 10390
    functionName: '& currentTracker()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITracker
    signature: ITracker & currentTracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10435
      start: 10435
    functionDepth: 0
    functionLinenumber: 10435
    functionLinenumberEnd: 10435
    functionName: '& getFilters() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> & getFilters() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10237
      start: 10230
    functionDepth: 0
    functionLinenumber: 10230
    functionLinenumberEnd: 10237
    functionName: operator==(NameAndLocation const& lhs, NameAndLocation const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(NameAndLocation const& lhs, NameAndLocation const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10241
      start: 10238
    functionDepth: 0
    functionLinenumber: 10238
    functionLinenumberEnd: 10241
    functionName: "operator!=(NameAndLocation const& lhs,\n                               NameAndLocation
      const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(NameAndLocation const& lhs,\n                               NameAndLocation
      const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name_
    - location_
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10257
      start: 10255
    functionDepth: 0
    functionLinenumber: 10255
    functionLinenumberEnd: 10257
    functionName: Catch::TestCaseTracking::NameAndLocationRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NameAndLocationRef( StringRef name_,\n                                      SourceLineInfo
      location_ )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocation
    - NameAndLocationRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10268
      start: 10259
    functionDepth: 0
    functionLinenumber: 10259
    functionLinenumberEnd: 10268
    functionName: "operator==( NameAndLocation const& lhs,\n                                NameAndLocationRef
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: bool
    signature: "bool operator==( NameAndLocation const& lhs,\n                                NameAndLocationRef
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - NameAndLocationRef
    - NameAndLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10272
      start: 10269
    functionDepth: 0
    functionLinenumber: 10269
    functionLinenumberEnd: 10272
    functionName: "operator==( NameAndLocationRef const& lhs,\n                                NameAndLocation
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==( NameAndLocationRef const& lhs,\n                                NameAndLocation
      const& rhs )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' nameAndLoc'
    - parent
    argTypes:
    - NameAndLocation
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10302
      start: 10299
    functionDepth: 1
    functionLinenumber: 10299
    functionLinenumberEnd: 10302
    functionName: Catch::TestCaseTracking::ITracker::ITracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ITracker( NameAndLocation&& nameAndLoc, ITracker* parent )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10308
      start: 10306
    functionDepth: 0
    functionLinenumber: 10306
    functionLinenumberEnd: 10308
    functionName: '& nameAndLocation() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NameAndLocation
    signature: NameAndLocation & nameAndLocation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10311
      start: 10309
    functionDepth: 0
    functionLinenumber: 10309
    functionLinenumberEnd: 10311
    functionName: Catch::TestCaseTracking::ITracker::parent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITracker
    signature: ITracker * parent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10323
      start: 10321
    functionDepth: 0
    functionLinenumber: 10321
    functionLinenumberEnd: 10323
    functionName: Catch::TestCaseTracking::ITracker::isSuccessfullyCompleted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isSuccessfullyCompleted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10345
      start: 10343
    functionDepth: 0
    functionLinenumber: 10343
    functionLinenumberEnd: 10345
    functionName: Catch::TestCaseTracking::ITracker::hasChildren
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool hasChildren() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10386
      start: 10383
    functionDepth: 0
    functionLinenumber: 10383
    functionLinenumberEnd: 10386
    functionName: Catch::TestCaseTracking::TrackerContext::startCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: void
    signature: void startCycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10390
      start: 10390
    functionDepth: 0
    functionLinenumber: 10390
    functionLinenumberEnd: 10390
    functionName: '& currentTracker()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITracker
    signature: ITracker & currentTracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10435
      start: 10435
    functionDepth: 0
    functionLinenumber: 10435
    functionLinenumberEnd: 10435
    functionName: '& getFilters() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> & getFilters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10464
      start: 10464
    functionDepth: 0
    functionLinenumber: 10464
    functionLinenumberEnd: 10464
    functionName: Catch::RunContext::RunContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RunContext( RunContext const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10465
      start: 10465
    functionDepth: 0
    functionLinenumber: 10465
    functionLinenumberEnd: 10465
    functionName: '& operator =( RunContext const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RunContext
    signature: RunContext & operator =( RunContext const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10464
      start: 10464
    functionDepth: 0
    functionLinenumber: 10464
    functionLinenumberEnd: 10464
    functionName: Catch::RunContext::RunContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RunContext( RunContext const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10465
      start: 10465
    functionDepth: 0
    functionLinenumber: 10465
    functionLinenumberEnd: 10465
    functionName: '& operator =( RunContext const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RunContext
    signature: RunContext & operator =( RunContext const& )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10601,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10607,1
    - Dst: std::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10615,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10615,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10615,1
    - Dst: std::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10616,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10616,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10616,1
    - Dst: Container
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' container'
    - shardCount
    - shardIndex
    argTypes:
    - Container
    - std::size_t
    - std::size_t
    assertStmts:
    - condition: (shardCount > shardIndex)
      pos:
        line_end: 10600
        line_start: 10600
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 10619
      start: 10600
    functionDepth: 1
    functionLinenumber: 10600
    functionLinenumberEnd: 10619
    functionName: Catch::createShard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - static_cast<std::ptrdiff_t>
    - Container
    - begin
    - std::next
    - size
    linkageType: ''
    returnType: Container
    signature: Container createShard(Container const& container, std::size_t const
      shardCount, std::size_t const shardIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10601,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10607,1
    - Dst: std::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10615,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10615,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10615,1
    - Dst: std::next
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10616,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10616,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10616,1
    - Dst: Container
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' container'
    - shardCount
    - shardIndex
    argTypes:
    - Container
    - std::size_t
    - std::size_t
    assertStmts:
    - condition: (shardCount > shardIndex)
      pos:
        line_end: 10600
        line_start: 10600
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 10619
      start: 10600
    functionDepth: 1
    functionLinenumber: 10600
    functionLinenumberEnd: 10619
    functionName: Catch::createShard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - static_cast<std::ptrdiff_t>
    - Container
    - begin
    - std::next
    - size
    linkageType: ''
    returnType: Container
    signature: Container createShard(Container const& container, std::size_t const
      shardCount, std::size_t const shardIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Singleton::Singleton
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10646,1
    - Dst: addSingleton
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10650
      start: 10643
    functionDepth: 0
    functionLinenumber: 10643
    functionLinenumberEnd: 10650
    functionName: Catch::Singleton::getInternal
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - addSingleton
    - Singleton::Singleton
    linkageType: ''
    returnType: auto
    signature: auto getInternal() -> Singleton*
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Singleton::getInternal
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10655
      start: 10653
    functionDepth: 1
    functionLinenumber: 10653
    functionLinenumberEnd: 10655
    functionName: Catch::Singleton::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Singleton::getInternal
    linkageType: ''
    returnType: auto
    signature: auto get() -> InterfaceT const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Singleton::getInternal
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10658
      start: 10656
    functionDepth: 1
    functionLinenumber: 10656
    functionLinenumberEnd: 10658
    functionName: Catch::Singleton::getMutable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Singleton::getInternal
    linkageType: ''
    returnType: auto
    signature: auto getMutable() -> MutableInterfaceT&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Singleton::Singleton
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10646,1
    - Dst: addSingleton
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10650
      start: 10643
    functionDepth: 0
    functionLinenumber: 10643
    functionLinenumberEnd: 10650
    functionName: Catch::Singleton::getInternal
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - addSingleton
    - Singleton::Singleton
    linkageType: ''
    returnType: auto
    signature: auto getInternal() -> Singleton*
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Singleton::getInternal
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10655
      start: 10653
    functionDepth: 1
    functionLinenumber: 10653
    functionLinenumberEnd: 10655
    functionName: Catch::Singleton::get
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Singleton::getInternal
    linkageType: ''
    returnType: auto
    signature: auto get() -> InterfaceT const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Singleton::getInternal
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10658
      start: 10656
    functionDepth: 1
    functionLinenumber: 10656
    functionLinenumberEnd: 10658
    functionName: Catch::Singleton::getMutable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Singleton::getInternal
    linkageType: ''
    returnType: auto
    signature: auto getMutable() -> MutableInterfaceT&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - label
    argTypes:
    - std::uint64_t
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10753
      start: 10750
    functionDepth: 0
    functionLinenumber: 10750
    functionLinenumberEnd: 10753
    functionName: Catch::pluralise::pluralise
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pluralise(std::uint64_t count, StringRef label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - label
    argTypes:
    - std::uint64_t
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10753
      start: 10750
    functionDepth: 0
    functionLinenumber: 10750
    functionLinenumberEnd: 10753
    functionName: Catch::pluralise::pluralise
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pluralise(std::uint64_t count, StringRef label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10925
      start: 10921
    functionDepth: 0
    functionLinenumber: 10921
    functionLinenumberEnd: 10925
    functionName: Catch::TestSpecParser::addCharToPattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void addCharToPattern(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10925
      start: 10921
    functionDepth: 0
    functionLinenumber: 10921
    functionLinenumberEnd: 10925
    functionName: Catch::TestSpecParser::addCharToPattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void addCharToPattern(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10983
      start: 10983
    functionDepth: 0
    functionLinenumber: 10983
    functionLinenumberEnd: 10983
    functionName: Catch::TextFlow::AnsiSkippingString::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10997
      start: 10996
    functionDepth: 0
    functionLinenumber: 10996
    functionLinenumberEnd: 10997
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void const_iterator( const std::string& string, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11011,1
    - Dst: tryParseAnsiEscapes
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11013
      start: 11010
    functionDepth: 0
    functionLinenumber: 11010
    functionLinenumberEnd: 11013
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - tryParseAnsiEscapes
    - begin
    linkageType: ''
    returnType: void
    signature: void const_iterator( const std::string& string )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11015
      start: 11015
    functionDepth: 0
    functionLinenumber: 11015
    functionLinenumberEnd: 11015
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: advance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11020
      start: 11017
    functionDepth: 0
    functionLinenumber: 11017
    functionLinenumberEnd: 11020
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - advance
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11025
      start: 11021
    functionDepth: 0
    functionLinenumber: 11021
    functionLinenumberEnd: 11025
    functionName: operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator++( int )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unadvance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11029
      start: 11026
    functionDepth: 0
    functionLinenumber: 11026
    functionLinenumberEnd: 11029
    functionName: '& operator--()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - unadvance
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11034
      start: 11030
    functionDepth: 0
    functionLinenumber: 11030
    functionLinenumberEnd: 11034
    functionName: operator--( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator--( int )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11038
      start: 11036
    functionDepth: 0
    functionLinenumber: 11036
    functionLinenumberEnd: 11038
    functionName: operator==( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11041
      start: 11039
    functionDepth: 0
    functionLinenumber: 11039
    functionLinenumberEnd: 11041
    functionName: operator!=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11044
      start: 11042
    functionDepth: 0
    functionLinenumber: 11042
    functionLinenumberEnd: 11044
    functionName: operator<=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11049
      start: 11046
    functionDepth: 0
    functionLinenumber: 11046
    functionLinenumberEnd: 11049
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::oneBefore
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator oneBefore() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11090,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11091,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' column'
    argTypes:
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11092
      start: 11088
    functionDepth: 0
    functionLinenumber: 11088
    functionLinenumberEnd: 11092
    functionName: Catch::TextFlow::Column::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_string::end
    linkageType: ''
    returnType: void
    signature: void const_iterator( Column const& column, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11123
      start: 11120
    functionDepth: 0
    functionLinenumber: 11120
    functionLinenumberEnd: 11123
    functionName: operator==( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11126
      start: 11124
    functionDepth: 0
    functionLinenumber: 11124
    functionLinenumberEnd: 11126
    functionName: operator!=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11130
      start: 11130
    functionDepth: 0
    functionLinenumber: 11130
    functionLinenumberEnd: 11130
    functionName: Catch::TextFlow::Column::Column
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Column( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11132
      start: 11131
    functionDepth: 1
    functionLinenumber: 11131
    functionLinenumberEnd: 11132
    functionName: Catch::TextFlow::Column::Column
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Column( std::string&& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - newWidth
    argTypes:
    - size_t
    assertStmts:
    - condition: ( newWidth > 0 )
      pos:
        line_end: 11134
        line_start: 11134
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 11138
      start: 11134
    functionDepth: 0
    functionLinenumber: 11134
    functionLinenumberEnd: 11138
    functionName: '& width( size_t newWidth ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Column
    signature: Column & width( size_t newWidth ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11140,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - newWidth
    argTypes:
    - size_t
    assertStmts:
    - condition: ( newWidth > 0 )
      pos:
        line_end: 11139
        line_start: 11139
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 11143
      start: 11139
    functionDepth: 1
    functionLinenumber: 11139
    functionLinenumberEnd: 11143
    functionName: '&& width( size_t newWidth ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && width( size_t newWidth ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11147
      start: 11144
    functionDepth: 0
    functionLinenumber: 11144
    functionLinenumberEnd: 11147
    functionName: '& indent( size_t newIndent ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column
    signature: Column & indent( size_t newIndent ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11151
      start: 11148
    functionDepth: 1
    functionLinenumber: 11148
    functionLinenumberEnd: 11151
    functionName: '&& indent( size_t newIndent ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && indent( size_t newIndent ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11155
      start: 11152
    functionDepth: 0
    functionLinenumber: 11152
    functionLinenumberEnd: 11155
    functionName: '& initialIndent( size_t newIndent ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column
    signature: Column & initialIndent( size_t newIndent ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11159
      start: 11156
    functionDepth: 1
    functionLinenumber: 11156
    functionLinenumberEnd: 11159
    functionName: '&& initialIndent( size_t newIndent ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && initialIndent( size_t newIndent ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11161
      start: 11161
    functionDepth: 0
    functionLinenumber: 11161
    functionLinenumberEnd: 11161
    functionName: Catch::TextFlow::Column::width
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11162
      start: 11162
    functionDepth: 0
    functionLinenumber: 11162
    functionLinenumberEnd: 11162
    functionName: Catch::TextFlow::Column::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11165
      start: 11163
    functionDepth: 0
    functionLinenumber: 11163
    functionLinenumberEnd: 11165
    functionName: Catch::TextFlow::Column::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11202
      start: 11200
    functionDepth: 0
    functionLinenumber: 11200
    functionLinenumberEnd: 11202
    functionName: operator==( iterator const& other ) const -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator==( iterator const& other ) const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11205
      start: 11203
    functionDepth: 0
    functionLinenumber: 11203
    functionLinenumberEnd: 11205
    functionName: operator!=( iterator const& other ) const -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator!=( iterator const& other ) const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11212
      start: 11212
    functionDepth: 0
    functionLinenumber: 11212
    functionLinenumberEnd: 11212
    functionName: Catch::TextFlow::Columns::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - iterator
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator::EndTag
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11213
      start: 11213
    functionDepth: 0
    functionLinenumber: 11213
    functionLinenumberEnd: 11213
    functionName: Catch::TextFlow::Columns::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - iterator::EndTag
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10983
      start: 10983
    functionDepth: 0
    functionLinenumber: 10983
    functionLinenumberEnd: 10983
    functionName: Catch::TextFlow::AnsiSkippingString::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10997
      start: 10996
    functionDepth: 0
    functionLinenumber: 10996
    functionLinenumberEnd: 10997
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void const_iterator( const std::string& string, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11011,1
    - Dst: tryParseAnsiEscapes
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11013
      start: 11010
    functionDepth: 0
    functionLinenumber: 11010
    functionLinenumberEnd: 11013
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - tryParseAnsiEscapes
    - begin
    linkageType: ''
    returnType: void
    signature: void const_iterator( const std::string& string )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11015
      start: 11015
    functionDepth: 0
    functionLinenumber: 11015
    functionLinenumberEnd: 11015
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: advance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11020
      start: 11017
    functionDepth: 0
    functionLinenumber: 11017
    functionLinenumberEnd: 11020
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - advance
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11025
      start: 11021
    functionDepth: 0
    functionLinenumber: 11021
    functionLinenumberEnd: 11025
    functionName: operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator++( int )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unadvance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11029
      start: 11026
    functionDepth: 0
    functionLinenumber: 11026
    functionLinenumberEnd: 11029
    functionName: '& operator--()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - unadvance
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11034
      start: 11030
    functionDepth: 0
    functionLinenumber: 11030
    functionLinenumberEnd: 11034
    functionName: operator--( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator--( int )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11038
      start: 11036
    functionDepth: 0
    functionLinenumber: 11036
    functionLinenumberEnd: 11038
    functionName: operator==( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11041
      start: 11039
    functionDepth: 0
    functionLinenumber: 11039
    functionLinenumberEnd: 11041
    functionName: operator!=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11044
      start: 11042
    functionDepth: 0
    functionLinenumber: 11042
    functionLinenumberEnd: 11044
    functionName: operator<=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11049
      start: 11046
    functionDepth: 0
    functionLinenumber: 11046
    functionLinenumberEnd: 11049
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::oneBefore
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator oneBefore() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11090,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11091,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' column'
    argTypes:
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11092
      start: 11088
    functionDepth: 0
    functionLinenumber: 11088
    functionLinenumberEnd: 11092
    functionName: Catch::TextFlow::Column::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_string::end
    linkageType: ''
    returnType: void
    signature: void const_iterator( Column const& column, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11123
      start: 11120
    functionDepth: 0
    functionLinenumber: 11120
    functionLinenumberEnd: 11123
    functionName: operator==( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11126
      start: 11124
    functionDepth: 0
    functionLinenumber: 11124
    functionLinenumberEnd: 11126
    functionName: operator!=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11130
      start: 11130
    functionDepth: 0
    functionLinenumber: 11130
    functionLinenumberEnd: 11130
    functionName: Catch::TextFlow::Column::Column
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Column( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11132
      start: 11131
    functionDepth: 1
    functionLinenumber: 11131
    functionLinenumberEnd: 11132
    functionName: Catch::TextFlow::Column::Column
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Column( std::string&& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - newWidth
    argTypes:
    - size_t
    assertStmts:
    - condition: ( newWidth > 0 )
      pos:
        line_end: 11134
        line_start: 11134
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 11138
      start: 11134
    functionDepth: 0
    functionLinenumber: 11134
    functionLinenumberEnd: 11138
    functionName: '& width( size_t newWidth ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Column
    signature: Column & width( size_t newWidth ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11140,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - newWidth
    argTypes:
    - size_t
    assertStmts:
    - condition: ( newWidth > 0 )
      pos:
        line_end: 11139
        line_start: 11139
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 11143
      start: 11139
    functionDepth: 1
    functionLinenumber: 11139
    functionLinenumberEnd: 11143
    functionName: '&& width( size_t newWidth ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && width( size_t newWidth ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11147
      start: 11144
    functionDepth: 0
    functionLinenumber: 11144
    functionLinenumberEnd: 11147
    functionName: '& indent( size_t newIndent ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column
    signature: Column & indent( size_t newIndent ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11151
      start: 11148
    functionDepth: 1
    functionLinenumber: 11148
    functionLinenumberEnd: 11151
    functionName: '&& indent( size_t newIndent ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && indent( size_t newIndent ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11155
      start: 11152
    functionDepth: 0
    functionLinenumber: 11152
    functionLinenumberEnd: 11155
    functionName: '& initialIndent( size_t newIndent ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column
    signature: Column & initialIndent( size_t newIndent ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11159
      start: 11156
    functionDepth: 1
    functionLinenumber: 11156
    functionLinenumberEnd: 11159
    functionName: '&& initialIndent( size_t newIndent ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && initialIndent( size_t newIndent ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11161
      start: 11161
    functionDepth: 0
    functionLinenumber: 11161
    functionLinenumberEnd: 11161
    functionName: Catch::TextFlow::Column::width
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11162
      start: 11162
    functionDepth: 0
    functionLinenumber: 11162
    functionLinenumberEnd: 11162
    functionName: Catch::TextFlow::Column::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11165
      start: 11163
    functionDepth: 0
    functionLinenumber: 11163
    functionLinenumberEnd: 11165
    functionName: Catch::TextFlow::Column::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11202
      start: 11200
    functionDepth: 0
    functionLinenumber: 11200
    functionLinenumberEnd: 11202
    functionName: operator==( iterator const& other ) const -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator==( iterator const& other ) const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11205
      start: 11203
    functionDepth: 0
    functionLinenumber: 11203
    functionLinenumberEnd: 11205
    functionName: operator!=( iterator const& other ) const -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator!=( iterator const& other ) const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11212
      start: 11212
    functionDepth: 0
    functionLinenumber: 11212
    functionLinenumberEnd: 11212
    functionName: Catch::TextFlow::Columns::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - iterator
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator::EndTag
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11213
      start: 11213
    functionDepth: 0
    functionLinenumber: 11213
    functionLinenumberEnd: 11213
    functionName: Catch::TextFlow::Columns::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - iterator::EndTag
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10983
      start: 10983
    functionDepth: 0
    functionLinenumber: 10983
    functionLinenumberEnd: 10983
    functionName: Catch::TextFlow::AnsiSkippingString::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10997
      start: 10996
    functionDepth: 0
    functionLinenumber: 10996
    functionLinenumberEnd: 10997
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void const_iterator( const std::string& string, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11011,1
    - Dst: tryParseAnsiEscapes
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11013
      start: 11010
    functionDepth: 0
    functionLinenumber: 11010
    functionLinenumberEnd: 11013
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - tryParseAnsiEscapes
    - begin
    linkageType: ''
    returnType: void
    signature: void const_iterator( const std::string& string )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11015
      start: 11015
    functionDepth: 0
    functionLinenumber: 11015
    functionLinenumberEnd: 11015
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: advance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11020
      start: 11017
    functionDepth: 0
    functionLinenumber: 11017
    functionLinenumberEnd: 11020
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - advance
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11025
      start: 11021
    functionDepth: 0
    functionLinenumber: 11021
    functionLinenumberEnd: 11025
    functionName: operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator++( int )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unadvance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11029
      start: 11026
    functionDepth: 0
    functionLinenumber: 11026
    functionLinenumberEnd: 11029
    functionName: '& operator--()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - unadvance
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11034
      start: 11030
    functionDepth: 0
    functionLinenumber: 11030
    functionLinenumberEnd: 11034
    functionName: operator--( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator--( int )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11038
      start: 11036
    functionDepth: 0
    functionLinenumber: 11036
    functionLinenumberEnd: 11038
    functionName: operator==( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11041
      start: 11039
    functionDepth: 0
    functionLinenumber: 11039
    functionLinenumberEnd: 11041
    functionName: operator!=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11044
      start: 11042
    functionDepth: 0
    functionLinenumber: 11042
    functionLinenumberEnd: 11044
    functionName: operator<=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11049
      start: 11046
    functionDepth: 0
    functionLinenumber: 11046
    functionLinenumberEnd: 11049
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::oneBefore
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator oneBefore() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11090,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11091,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' column'
    argTypes:
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11092
      start: 11088
    functionDepth: 0
    functionLinenumber: 11088
    functionLinenumberEnd: 11092
    functionName: Catch::TextFlow::Column::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_string::end
    linkageType: ''
    returnType: void
    signature: void const_iterator( Column const& column, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11123
      start: 11120
    functionDepth: 0
    functionLinenumber: 11120
    functionLinenumberEnd: 11123
    functionName: operator==( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11126
      start: 11124
    functionDepth: 0
    functionLinenumber: 11124
    functionLinenumberEnd: 11126
    functionName: operator!=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11130
      start: 11130
    functionDepth: 0
    functionLinenumber: 11130
    functionLinenumberEnd: 11130
    functionName: Catch::TextFlow::Column::Column
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Column( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11132
      start: 11131
    functionDepth: 1
    functionLinenumber: 11131
    functionLinenumberEnd: 11132
    functionName: Catch::TextFlow::Column::Column
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Column( std::string&& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - newWidth
    argTypes:
    - size_t
    assertStmts:
    - condition: ( newWidth > 0 )
      pos:
        line_end: 11134
        line_start: 11134
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 11138
      start: 11134
    functionDepth: 0
    functionLinenumber: 11134
    functionLinenumberEnd: 11138
    functionName: '& width( size_t newWidth ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Column
    signature: Column & width( size_t newWidth ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11140,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - newWidth
    argTypes:
    - size_t
    assertStmts:
    - condition: ( newWidth > 0 )
      pos:
        line_end: 11139
        line_start: 11139
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 11143
      start: 11139
    functionDepth: 1
    functionLinenumber: 11139
    functionLinenumberEnd: 11143
    functionName: '&& width( size_t newWidth ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && width( size_t newWidth ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11147
      start: 11144
    functionDepth: 0
    functionLinenumber: 11144
    functionLinenumberEnd: 11147
    functionName: '& indent( size_t newIndent ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column
    signature: Column & indent( size_t newIndent ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11151
      start: 11148
    functionDepth: 1
    functionLinenumber: 11148
    functionLinenumberEnd: 11151
    functionName: '&& indent( size_t newIndent ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && indent( size_t newIndent ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11155
      start: 11152
    functionDepth: 0
    functionLinenumber: 11152
    functionLinenumberEnd: 11155
    functionName: '& initialIndent( size_t newIndent ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column
    signature: Column & initialIndent( size_t newIndent ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11159
      start: 11156
    functionDepth: 1
    functionLinenumber: 11156
    functionLinenumberEnd: 11159
    functionName: '&& initialIndent( size_t newIndent ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && initialIndent( size_t newIndent ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11161
      start: 11161
    functionDepth: 0
    functionLinenumber: 11161
    functionLinenumberEnd: 11161
    functionName: Catch::TextFlow::Column::width
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11162
      start: 11162
    functionDepth: 0
    functionLinenumber: 11162
    functionLinenumberEnd: 11162
    functionName: Catch::TextFlow::Column::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11165
      start: 11163
    functionDepth: 0
    functionLinenumber: 11163
    functionLinenumberEnd: 11165
    functionName: Catch::TextFlow::Column::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11202
      start: 11200
    functionDepth: 0
    functionLinenumber: 11200
    functionLinenumberEnd: 11202
    functionName: operator==( iterator const& other ) const -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator==( iterator const& other ) const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11205
      start: 11203
    functionDepth: 0
    functionLinenumber: 11203
    functionLinenumberEnd: 11205
    functionName: operator!=( iterator const& other ) const -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator!=( iterator const& other ) const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11212
      start: 11212
    functionDepth: 0
    functionLinenumber: 11212
    functionLinenumberEnd: 11212
    functionName: Catch::TextFlow::Columns::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - iterator
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator::EndTag
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11213
      start: 11213
    functionDepth: 0
    functionLinenumber: 11213
    functionLinenumberEnd: 11213
    functionName: Catch::TextFlow::Columns::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - iterator::EndTag
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10983
      start: 10983
    functionDepth: 0
    functionLinenumber: 10983
    functionLinenumberEnd: 10983
    functionName: Catch::TextFlow::AnsiSkippingString::size
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:10997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10997
      start: 10996
    functionDepth: 0
    functionLinenumber: 10996
    functionLinenumberEnd: 10997
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void const_iterator( const std::string& string, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11011,1
    - Dst: tryParseAnsiEscapes
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' string'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11013
      start: 11010
    functionDepth: 0
    functionLinenumber: 11010
    functionLinenumberEnd: 11013
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - tryParseAnsiEscapes
    - begin
    linkageType: ''
    returnType: void
    signature: void const_iterator( const std::string& string )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11015
      start: 11015
    functionDepth: 0
    functionLinenumber: 11015
    functionLinenumberEnd: 11015
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: advance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11020
      start: 11017
    functionDepth: 0
    functionLinenumber: 11017
    functionLinenumberEnd: 11020
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - advance
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11025
      start: 11021
    functionDepth: 0
    functionLinenumber: 11021
    functionLinenumberEnd: 11025
    functionName: operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator++( int )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unadvance
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11029
      start: 11026
    functionDepth: 0
    functionLinenumber: 11026
    functionLinenumberEnd: 11029
    functionName: '& operator--()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - unadvance
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11034
      start: 11030
    functionDepth: 0
    functionLinenumber: 11030
    functionLinenumberEnd: 11034
    functionName: operator--( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator--( int )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11038
      start: 11036
    functionDepth: 0
    functionLinenumber: 11036
    functionLinenumberEnd: 11038
    functionName: operator==( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11041
      start: 11039
    functionDepth: 0
    functionLinenumber: 11039
    functionLinenumberEnd: 11041
    functionName: operator!=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11044
      start: 11042
    functionDepth: 0
    functionLinenumber: 11042
    functionLinenumberEnd: 11044
    functionName: operator<=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11049
      start: 11046
    functionDepth: 0
    functionLinenumber: 11046
    functionLinenumberEnd: 11049
    functionName: Catch::TextFlow::AnsiSkippingString::const_iterator::oneBefore
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator oneBefore() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11090,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11091,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' column'
    argTypes:
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11092
      start: 11088
    functionDepth: 0
    functionLinenumber: 11088
    functionLinenumberEnd: 11092
    functionName: Catch::TextFlow::Column::const_iterator::const_iterator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_string::end
    linkageType: ''
    returnType: void
    signature: void const_iterator( Column const& column, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11123
      start: 11120
    functionDepth: 0
    functionLinenumber: 11120
    functionLinenumberEnd: 11123
    functionName: operator==( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11126
      start: 11124
    functionDepth: 0
    functionLinenumber: 11124
    functionLinenumberEnd: 11126
    functionName: operator!=( const_iterator const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=( const_iterator const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11130
      start: 11130
    functionDepth: 0
    functionLinenumber: 11130
    functionLinenumberEnd: 11130
    functionName: Catch::TextFlow::Column::Column
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Column( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11132
      start: 11131
    functionDepth: 1
    functionLinenumber: 11131
    functionLinenumberEnd: 11132
    functionName: Catch::TextFlow::Column::Column
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void Column( std::string&& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - newWidth
    argTypes:
    - size_t
    assertStmts:
    - condition: ( newWidth > 0 )
      pos:
        line_end: 11134
        line_start: 11134
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 11138
      start: 11134
    functionDepth: 0
    functionLinenumber: 11134
    functionLinenumberEnd: 11138
    functionName: '& width( size_t newWidth ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Column
    signature: Column & width( size_t newWidth ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11140,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - newWidth
    argTypes:
    - size_t
    assertStmts:
    - condition: ( newWidth > 0 )
      pos:
        line_end: 11139
        line_start: 11139
        source_file: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    constantsTouched: []
    func_position:
      end: 11143
      start: 11139
    functionDepth: 1
    functionLinenumber: 11139
    functionLinenumberEnd: 11143
    functionName: '&& width( size_t newWidth ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && width( size_t newWidth ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11147
      start: 11144
    functionDepth: 0
    functionLinenumber: 11144
    functionLinenumberEnd: 11147
    functionName: '& indent( size_t newIndent ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column
    signature: Column & indent( size_t newIndent ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11151
      start: 11148
    functionDepth: 1
    functionLinenumber: 11148
    functionLinenumberEnd: 11151
    functionName: '&& indent( size_t newIndent ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && indent( size_t newIndent ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11155
      start: 11152
    functionDepth: 0
    functionLinenumber: 11152
    functionLinenumberEnd: 11155
    functionName: '& initialIndent( size_t newIndent ) &'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column
    signature: Column & initialIndent( size_t newIndent ) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - newIndent
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11159
      start: 11156
    functionDepth: 1
    functionLinenumber: 11156
    functionLinenumberEnd: 11159
    functionName: '&& initialIndent( size_t newIndent ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Column
    signature: Column && initialIndent( size_t newIndent ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11161
      start: 11161
    functionDepth: 0
    functionLinenumber: 11161
    functionLinenumberEnd: 11161
    functionName: Catch::TextFlow::Column::width
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t width() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11162
      start: 11162
    functionDepth: 0
    functionLinenumber: 11162
    functionLinenumberEnd: 11162
    functionName: Catch::TextFlow::Column::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11165
      start: 11163
    functionDepth: 0
    functionLinenumber: 11163
    functionLinenumberEnd: 11165
    functionName: Catch::TextFlow::Column::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11202
      start: 11200
    functionDepth: 0
    functionLinenumber: 11200
    functionLinenumberEnd: 11202
    functionName: operator==( iterator const& other ) const -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator==( iterator const& other ) const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11205
      start: 11203
    functionDepth: 0
    functionLinenumber: 11203
    functionLinenumberEnd: 11205
    functionName: operator!=( iterator const& other ) const -> bool
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto operator!=( iterator const& other ) const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11212
      start: 11212
    functionDepth: 0
    functionLinenumber: 11212
    functionLinenumberEnd: 11212
    functionName: Catch::TextFlow::Columns::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - iterator
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator::EndTag
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11213
      start: 11213
    functionDepth: 0
    functionLinenumber: 11213
    functionLinenumberEnd: 11213
    functionName: Catch::TextFlow::Columns::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - iterator::EndTag
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::to_string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11239,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11245
      start: 11237
    functionDepth: 0
    functionLinenumber: 11237
    functionLinenumberEnd: 11245
    functionName: Catch::to_string
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - ReusableStringStream::str
    - Catch::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(T const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::to_string
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11239,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11245
      start: 11237
    functionDepth: 0
    functionLinenumber: 11237
    functionLinenumberEnd: 11245
    functionName: Catch::to_string
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - ReusableStringStream::str
    - Catch::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(T const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - ' attribute'
    argTypes:
    - StringRef
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11329
      start: 11325
    functionDepth: 1
    functionLinenumber: 11325
    functionLinenumberEnd: 11329
    functionName: Catch::XmlWriter::ScopedElement::writeAttribute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::XmlWriter::ScopedElement::writeAttribute
    linkageType: ''
    returnType: ScopedElement
    signature: "ScopedElement & writeAttribute( StringRef name,\n                                           T
      const& attribute )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11339
      start: 11339
    functionDepth: 0
    functionLinenumber: 11339
    functionLinenumberEnd: 11339
    functionName: Catch::XmlWriter::XmlWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter( XmlWriter const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11340
      start: 11340
    functionDepth: 0
    functionLinenumber: 11340
    functionLinenumberEnd: 11340
    functionName: '& operator=( XmlWriter const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & operator=( XmlWriter const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::XmlWriter::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11369,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - ' attribute'
    argTypes:
    - StringRef
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11370
      start: 11366
    functionDepth: 1
    functionLinenumber: 11366
    functionLinenumberEnd: 11370
    functionName: Catch::XmlWriter::writeAttribute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - ReusableStringStream::str
    - Catch::XmlWriter::writeAttribute
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & writeAttribute( StringRef name, T const& attribute )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - ' attribute'
    argTypes:
    - StringRef
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11329
      start: 11325
    functionDepth: 1
    functionLinenumber: 11325
    functionLinenumberEnd: 11329
    functionName: Catch::XmlWriter::ScopedElement::writeAttribute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::XmlWriter::ScopedElement::writeAttribute
    linkageType: ''
    returnType: ScopedElement
    signature: "ScopedElement & writeAttribute( StringRef name,\n                                           T
      const& attribute )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11339
      start: 11339
    functionDepth: 0
    functionLinenumber: 11339
    functionLinenumberEnd: 11339
    functionName: Catch::XmlWriter::XmlWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter( XmlWriter const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11340
      start: 11340
    functionDepth: 0
    functionLinenumber: 11340
    functionLinenumberEnd: 11340
    functionName: '& operator=( XmlWriter const& )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & operator=( XmlWriter const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::XmlWriter::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11369,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - ' attribute'
    argTypes:
    - StringRef
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11370
      start: 11366
    functionDepth: 1
    functionLinenumber: 11366
    functionLinenumberEnd: 11370
    functionName: Catch::XmlWriter::writeAttribute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - ReusableStringStream::str
    - Catch::XmlWriter::writeAttribute
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & writeAttribute( StringRef name, T const& attribute )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' arg'
    - ' matcher'
    argTypes:
    - ArgT
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11455
      start: 11451
    functionDepth: 1
    functionLinenumber: 11451
    functionLinenumberEnd: 11455
    functionName: Catch::MatchExpr::MatchExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void MatchExpr( ArgT && arg, MatcherT const& matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11458,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11461
      start: 11457
    functionDepth: 1
    functionLinenumber: 11457
    functionLinenumberEnd: 11461
    functionName: Catch::MatchExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - toString
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream& os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MatchExpr<ArgT, MatcherT>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11482,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matcher'
    argTypes:
    - ArgT
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11483
      start: 11481
    functionDepth: 1
    functionLinenumber: 11481
    functionLinenumberEnd: 11483
    functionName: Catch::makeMatchExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - MatchExpr<ArgT, MatcherT>
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeMatchExpr( ArgT && arg, MatcherT const& matcher ) -> MatchExpr<ArgT,
      MatcherT>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11452,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' arg'
    - ' matcher'
    argTypes:
    - ArgT
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11455
      start: 11451
    functionDepth: 1
    functionLinenumber: 11451
    functionLinenumberEnd: 11455
    functionName: Catch::MatchExpr::MatchExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void MatchExpr( ArgT && arg, MatcherT const& matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11458,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11461
      start: 11457
    functionDepth: 1
    functionLinenumber: 11457
    functionLinenumberEnd: 11461
    functionName: Catch::MatchExpr::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - toString
    linkageType: ''
    returnType: void
    signature: void streamReconstructedExpression( std::ostream& os ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MatchExpr<ArgT, MatcherT>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11482,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matcher'
    argTypes:
    - ArgT
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11483
      start: 11481
    functionDepth: 1
    functionLinenumber: 11481
    functionLinenumberEnd: 11483
    functionName: Catch::makeMatchExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - MatchExpr<ArgT, MatcherT>
    - CATCH_FORWARD
    linkageType: ''
    returnType: auto
    signature: auto makeMatchExpr( ArgT && arg, MatcherT const& matcher ) -> MatchExpr<ArgT,
      MatcherT>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - macroName
    - ','
    - matcher
    - ','
    - resultDisposition
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11497
      start: 11489
    functionDepth: 0
    functionLinenumber: 11489
    functionLinenumberEnd: 11497
    functionName: INTERNAL_CHECK_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CHECK_THAT( macroName, matcher, resultDisposition, arg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - macroName
    - ','
    - exceptionType
    - ','
    - resultDisposition
    - ','
    - matcher
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11518
      start: 11500
    functionDepth: 0
    functionLinenumber: 11500
    functionLinenumberEnd: 11518
    functionName: INTERNAL_CATCH_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_CATCH_THROWS_MATCHES( macroName, exceptionType, resultDisposition,
      matcher, ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11530
      start: 11530
    functionDepth: 0
    functionLinenumber: 11530
    functionLinenumberEnd: 11530
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11532
      start: 11532
    functionDepth: 0
    functionLinenumber: 11532
    functionLinenumberEnd: 11532
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase(MatcherUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11533
      start: 11533
    functionDepth: 0
    functionLinenumber: 11533
    functionLinenumberEnd: 11533
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase(MatcherUntypedBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11535
      start: 11535
    functionDepth: 0
    functionLinenumber: 11535
    functionLinenumberEnd: 11535
    functionName: '& operator = (MatcherUntypedBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherUntypedBase
    signature: MatcherUntypedBase & operator = (MatcherUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11536
      start: 11536
    functionDepth: 0
    functionLinenumber: 11536
    functionLinenumberEnd: 11536
    functionName: '& operator = (MatcherUntypedBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherUntypedBase
    signature: MatcherUntypedBase & operator = (MatcherUntypedBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11560
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11560
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11561
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11561
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11562
    functionName: '& operator=(MatchAllOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11563
    functionDepth: 0
    functionLinenumber: 11563
    functionLinenumberEnd: 11563
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11564
      start: 11564
    functionDepth: 0
    functionLinenumber: 11564
    functionLinenumberEnd: 11564
    functionName: '& operator=(MatchAllOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAllOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11573
      start: 11567
    functionDepth: 1
    functionLinenumber: 11567
    functionLinenumberEnd: 11573
    functionName: Catch::Matchers::Detail::MatchAllOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::Detail::MatchAllOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11588
      start: 11574
    functionDepth: 1
    functionLinenumber: 11574
    functionLinenumberEnd: 11588
    functionName: Catch::Matchers::Detail::MatchAllOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11591,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11593
      start: 11590
    functionDepth: 1
    functionLinenumber: 11590
    functionLinenumberEnd: 11593
    functionName: operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAllOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11597
      start: 11594
    functionDepth: 1
    functionLinenumber: 11594
    functionLinenumberEnd: 11597
    functionName: operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11613
      start: 11613
    functionDepth: 0
    functionLinenumber: 11613
    functionLinenumberEnd: 11613
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11614
    functionDepth: 0
    functionLinenumber: 11614
    functionLinenumberEnd: 11614
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11615
      start: 11615
    functionDepth: 0
    functionLinenumber: 11615
    functionLinenumberEnd: 11615
    functionName: '& operator=(MatchAnyOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11616
    functionDepth: 0
    functionLinenumber: 11616
    functionLinenumberEnd: 11616
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11617
      start: 11617
    functionDepth: 0
    functionLinenumber: 11617
    functionLinenumberEnd: 11617
    functionName: '& operator=(MatchAnyOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAnyOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11625
      start: 11619
    functionDepth: 1
    functionLinenumber: 11619
    functionLinenumberEnd: 11625
    functionName: Catch::Matchers::Detail::MatchAnyOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::Detail::MatchAnyOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11640
    functionName: Catch::Matchers::Detail::MatchAnyOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11643,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11642
    functionDepth: 1
    functionLinenumber: 11642
    functionLinenumberEnd: 11645
    functionName: operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAnyOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11649
      start: 11646
    functionDepth: 1
    functionLinenumber: 11646
    functionLinenumberEnd: 11649
    functionName: operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' underlyingMatcher'
    argTypes:
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11668
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11668
    functionName: Catch::Matchers::Detail::MatchNotOf::MatchNotOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11672
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11672
    functionName: Catch::Matchers::Detail::MatchNotOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11676
      start: 11674
    functionDepth: 0
    functionLinenumber: 11674
    functionLinenumberEnd: 11676
    functionName: Catch::Matchers::Detail::MatchNotOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11560
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11560
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11561
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11561
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11562
    functionName: '& operator=(MatchAllOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11563
    functionDepth: 0
    functionLinenumber: 11563
    functionLinenumberEnd: 11563
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11564
      start: 11564
    functionDepth: 0
    functionLinenumber: 11564
    functionLinenumberEnd: 11564
    functionName: '& operator=(MatchAllOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAllOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11573
      start: 11567
    functionDepth: 1
    functionLinenumber: 11567
    functionLinenumberEnd: 11573
    functionName: Catch::Matchers::Detail::MatchAllOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::Detail::MatchAllOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11588
      start: 11574
    functionDepth: 1
    functionLinenumber: 11574
    functionLinenumberEnd: 11588
    functionName: Catch::Matchers::Detail::MatchAllOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11591,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11593
      start: 11590
    functionDepth: 1
    functionLinenumber: 11590
    functionLinenumberEnd: 11593
    functionName: operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAllOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11597
      start: 11594
    functionDepth: 1
    functionLinenumber: 11594
    functionLinenumberEnd: 11597
    functionName: operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11613
      start: 11613
    functionDepth: 0
    functionLinenumber: 11613
    functionLinenumberEnd: 11613
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11614
    functionDepth: 0
    functionLinenumber: 11614
    functionLinenumberEnd: 11614
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11615
      start: 11615
    functionDepth: 0
    functionLinenumber: 11615
    functionLinenumberEnd: 11615
    functionName: '& operator=(MatchAnyOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11616
    functionDepth: 0
    functionLinenumber: 11616
    functionLinenumberEnd: 11616
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11617
      start: 11617
    functionDepth: 0
    functionLinenumber: 11617
    functionLinenumberEnd: 11617
    functionName: '& operator=(MatchAnyOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAnyOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11625
      start: 11619
    functionDepth: 1
    functionLinenumber: 11619
    functionLinenumberEnd: 11625
    functionName: Catch::Matchers::Detail::MatchAnyOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::Detail::MatchAnyOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11640
    functionName: Catch::Matchers::Detail::MatchAnyOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11643,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11642
    functionDepth: 1
    functionLinenumber: 11642
    functionLinenumberEnd: 11645
    functionName: operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAnyOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11649
      start: 11646
    functionDepth: 1
    functionLinenumber: 11646
    functionLinenumberEnd: 11649
    functionName: operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' underlyingMatcher'
    argTypes:
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11668
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11668
    functionName: Catch::Matchers::Detail::MatchNotOf::MatchNotOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11672
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11672
    functionName: Catch::Matchers::Detail::MatchNotOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11676
      start: 11674
    functionDepth: 0
    functionLinenumber: 11674
    functionLinenumberEnd: 11676
    functionName: Catch::Matchers::Detail::MatchNotOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<T>
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11684
      start: 11682
    functionDepth: 0
    functionLinenumber: 11682
    functionLinenumberEnd: 11684
    functionName: operator&& (MatcherBase<T> const& lhs, MatcherBase<T> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchAllOf<T>
    signature: Detail::MatchAllOf<T> operator&& (MatcherBase<T> const& lhs, MatcherBase<T>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<T>
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11688
      start: 11686
    functionDepth: 0
    functionLinenumber: 11686
    functionLinenumberEnd: 11688
    functionName: operator|| (MatcherBase<T> const& lhs, MatcherBase<T> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchAnyOf<T>
    signature: Detail::MatchAnyOf<T> operator|| (MatcherBase<T> const& lhs, MatcherBase<T>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11693
      start: 11691
    functionDepth: 0
    functionLinenumber: 11691
    functionLinenumberEnd: 11693
    functionName: operator! (MatcherBase<T> const& matcher)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchNotOf<T>
    signature: Detail::MatchNotOf<T> operator! (MatcherBase<T> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11530
      start: 11530
    functionDepth: 0
    functionLinenumber: 11530
    functionLinenumberEnd: 11530
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11532
      start: 11532
    functionDepth: 0
    functionLinenumber: 11532
    functionLinenumberEnd: 11532
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase(MatcherUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11533
      start: 11533
    functionDepth: 0
    functionLinenumber: 11533
    functionLinenumberEnd: 11533
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase(MatcherUntypedBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11535
      start: 11535
    functionDepth: 0
    functionLinenumber: 11535
    functionLinenumberEnd: 11535
    functionName: '& operator = (MatcherUntypedBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherUntypedBase
    signature: MatcherUntypedBase & operator = (MatcherUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11536
      start: 11536
    functionDepth: 0
    functionLinenumber: 11536
    functionLinenumberEnd: 11536
    functionName: '& operator = (MatcherUntypedBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherUntypedBase
    signature: MatcherUntypedBase & operator = (MatcherUntypedBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11560
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11560
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11561
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11561
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11562
    functionName: '& operator=(MatchAllOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11563
    functionDepth: 0
    functionLinenumber: 11563
    functionLinenumberEnd: 11563
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11564
      start: 11564
    functionDepth: 0
    functionLinenumber: 11564
    functionLinenumberEnd: 11564
    functionName: '& operator=(MatchAllOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAllOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11573
      start: 11567
    functionDepth: 1
    functionLinenumber: 11567
    functionLinenumberEnd: 11573
    functionName: Catch::Matchers::Detail::MatchAllOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::Detail::MatchAllOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11588
      start: 11574
    functionDepth: 1
    functionLinenumber: 11574
    functionLinenumberEnd: 11588
    functionName: Catch::Matchers::Detail::MatchAllOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11591,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11593
      start: 11590
    functionDepth: 1
    functionLinenumber: 11590
    functionLinenumberEnd: 11593
    functionName: operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAllOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11597
      start: 11594
    functionDepth: 1
    functionLinenumber: 11594
    functionLinenumberEnd: 11597
    functionName: operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11613
      start: 11613
    functionDepth: 0
    functionLinenumber: 11613
    functionLinenumberEnd: 11613
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11614
    functionDepth: 0
    functionLinenumber: 11614
    functionLinenumberEnd: 11614
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11615
      start: 11615
    functionDepth: 0
    functionLinenumber: 11615
    functionLinenumberEnd: 11615
    functionName: '& operator=(MatchAnyOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11616
    functionDepth: 0
    functionLinenumber: 11616
    functionLinenumberEnd: 11616
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11617
      start: 11617
    functionDepth: 0
    functionLinenumber: 11617
    functionLinenumberEnd: 11617
    functionName: '& operator=(MatchAnyOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAnyOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11625
      start: 11619
    functionDepth: 1
    functionLinenumber: 11619
    functionLinenumberEnd: 11625
    functionName: Catch::Matchers::Detail::MatchAnyOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::Detail::MatchAnyOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11640
    functionName: Catch::Matchers::Detail::MatchAnyOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11643,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11642
    functionDepth: 1
    functionLinenumber: 11642
    functionLinenumberEnd: 11645
    functionName: operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAnyOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11649
      start: 11646
    functionDepth: 1
    functionLinenumber: 11646
    functionLinenumberEnd: 11649
    functionName: operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' underlyingMatcher'
    argTypes:
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11668
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11668
    functionName: Catch::Matchers::Detail::MatchNotOf::MatchNotOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11672
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11672
    functionName: Catch::Matchers::Detail::MatchNotOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11676
      start: 11674
    functionDepth: 0
    functionLinenumber: 11674
    functionLinenumberEnd: 11676
    functionName: Catch::Matchers::Detail::MatchNotOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11560
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11560
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11561
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11561
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11562
    functionName: '& operator=(MatchAllOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11563
    functionDepth: 0
    functionLinenumber: 11563
    functionLinenumberEnd: 11563
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11564
      start: 11564
    functionDepth: 0
    functionLinenumber: 11564
    functionLinenumberEnd: 11564
    functionName: '& operator=(MatchAllOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAllOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11573
      start: 11567
    functionDepth: 1
    functionLinenumber: 11567
    functionLinenumberEnd: 11573
    functionName: Catch::Matchers::Detail::MatchAllOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::Detail::MatchAllOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11588
      start: 11574
    functionDepth: 1
    functionLinenumber: 11574
    functionLinenumberEnd: 11588
    functionName: Catch::Matchers::Detail::MatchAllOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11591,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11593
      start: 11590
    functionDepth: 1
    functionLinenumber: 11590
    functionLinenumberEnd: 11593
    functionName: operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAllOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11597
      start: 11594
    functionDepth: 1
    functionLinenumber: 11594
    functionLinenumberEnd: 11597
    functionName: operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11613
      start: 11613
    functionDepth: 0
    functionLinenumber: 11613
    functionLinenumberEnd: 11613
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11614
    functionDepth: 0
    functionLinenumber: 11614
    functionLinenumberEnd: 11614
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11615
      start: 11615
    functionDepth: 0
    functionLinenumber: 11615
    functionLinenumberEnd: 11615
    functionName: '& operator=(MatchAnyOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11616
    functionDepth: 0
    functionLinenumber: 11616
    functionLinenumberEnd: 11616
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11617
      start: 11617
    functionDepth: 0
    functionLinenumber: 11617
    functionLinenumberEnd: 11617
    functionName: '& operator=(MatchAnyOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAnyOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11625
      start: 11619
    functionDepth: 1
    functionLinenumber: 11619
    functionLinenumberEnd: 11625
    functionName: Catch::Matchers::Detail::MatchAnyOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::Detail::MatchAnyOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11640
    functionName: Catch::Matchers::Detail::MatchAnyOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11643,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11642
    functionDepth: 1
    functionLinenumber: 11642
    functionLinenumberEnd: 11645
    functionName: operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAnyOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11649
      start: 11646
    functionDepth: 1
    functionLinenumber: 11646
    functionLinenumberEnd: 11649
    functionName: operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' underlyingMatcher'
    argTypes:
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11668
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11668
    functionName: Catch::Matchers::Detail::MatchNotOf::MatchNotOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11672
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11672
    functionName: Catch::Matchers::Detail::MatchNotOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11676
      start: 11674
    functionDepth: 0
    functionLinenumber: 11674
    functionLinenumberEnd: 11676
    functionName: Catch::Matchers::Detail::MatchNotOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<T>
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11684
      start: 11682
    functionDepth: 0
    functionLinenumber: 11682
    functionLinenumberEnd: 11684
    functionName: operator&& (MatcherBase<T> const& lhs, MatcherBase<T> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchAllOf<T>
    signature: Detail::MatchAllOf<T> operator&& (MatcherBase<T> const& lhs, MatcherBase<T>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<T>
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11688
      start: 11686
    functionDepth: 0
    functionLinenumber: 11686
    functionLinenumberEnd: 11688
    functionName: operator|| (MatcherBase<T> const& lhs, MatcherBase<T> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchAnyOf<T>
    signature: Detail::MatchAnyOf<T> operator|| (MatcherBase<T> const& lhs, MatcherBase<T>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11693
      start: 11691
    functionDepth: 0
    functionLinenumber: 11691
    functionLinenumberEnd: 11693
    functionName: operator! (MatcherBase<T> const& matcher)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchNotOf<T>
    signature: Detail::MatchNotOf<T> operator! (MatcherBase<T> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11530
      start: 11530
    functionDepth: 0
    functionLinenumber: 11530
    functionLinenumberEnd: 11530
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11532
      start: 11532
    functionDepth: 0
    functionLinenumber: 11532
    functionLinenumberEnd: 11532
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase(MatcherUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11533
      start: 11533
    functionDepth: 0
    functionLinenumber: 11533
    functionLinenumberEnd: 11533
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase(MatcherUntypedBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11535
      start: 11535
    functionDepth: 0
    functionLinenumber: 11535
    functionLinenumberEnd: 11535
    functionName: '& operator = (MatcherUntypedBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherUntypedBase
    signature: MatcherUntypedBase & operator = (MatcherUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11536
      start: 11536
    functionDepth: 0
    functionLinenumber: 11536
    functionLinenumberEnd: 11536
    functionName: '& operator = (MatcherUntypedBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherUntypedBase
    signature: MatcherUntypedBase & operator = (MatcherUntypedBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11560
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11560
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11561
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11561
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11562
    functionName: '& operator=(MatchAllOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11563
    functionDepth: 0
    functionLinenumber: 11563
    functionLinenumberEnd: 11563
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11564
      start: 11564
    functionDepth: 0
    functionLinenumber: 11564
    functionLinenumberEnd: 11564
    functionName: '& operator=(MatchAllOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAllOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11573
      start: 11567
    functionDepth: 1
    functionLinenumber: 11567
    functionLinenumberEnd: 11573
    functionName: Catch::Matchers::Detail::MatchAllOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Matchers::Detail::MatchAllOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11588
      start: 11574
    functionDepth: 1
    functionLinenumber: 11574
    functionLinenumberEnd: 11588
    functionName: Catch::Matchers::Detail::MatchAllOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11591,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11593
      start: 11590
    functionDepth: 1
    functionLinenumber: 11590
    functionLinenumberEnd: 11593
    functionName: operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAllOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11597
      start: 11594
    functionDepth: 1
    functionLinenumber: 11594
    functionLinenumberEnd: 11597
    functionName: operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11613
      start: 11613
    functionDepth: 0
    functionLinenumber: 11613
    functionLinenumberEnd: 11613
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11614
    functionDepth: 0
    functionLinenumber: 11614
    functionLinenumberEnd: 11614
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11615
      start: 11615
    functionDepth: 0
    functionLinenumber: 11615
    functionLinenumberEnd: 11615
    functionName: '& operator=(MatchAnyOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11616
    functionDepth: 0
    functionLinenumber: 11616
    functionLinenumberEnd: 11616
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11617
      start: 11617
    functionDepth: 0
    functionLinenumber: 11617
    functionLinenumberEnd: 11617
    functionName: '& operator=(MatchAnyOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAnyOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11625
      start: 11619
    functionDepth: 1
    functionLinenumber: 11619
    functionLinenumberEnd: 11625
    functionName: Catch::Matchers::Detail::MatchAnyOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Matchers::Detail::MatchAnyOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11640
    functionName: Catch::Matchers::Detail::MatchAnyOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11643,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11642
    functionDepth: 1
    functionLinenumber: 11642
    functionLinenumberEnd: 11645
    functionName: operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAnyOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11649
      start: 11646
    functionDepth: 1
    functionLinenumber: 11646
    functionLinenumberEnd: 11649
    functionName: operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' underlyingMatcher'
    argTypes:
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11668
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11668
    functionName: Catch::Matchers::Detail::MatchNotOf::MatchNotOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11672
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11672
    functionName: Catch::Matchers::Detail::MatchNotOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11676
      start: 11674
    functionDepth: 0
    functionLinenumber: 11674
    functionLinenumberEnd: 11676
    functionName: Catch::Matchers::Detail::MatchNotOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11560
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11560
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11561
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11561
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11562
    functionName: '& operator=(MatchAllOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11563
    functionDepth: 0
    functionLinenumber: 11563
    functionLinenumberEnd: 11563
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11564
      start: 11564
    functionDepth: 0
    functionLinenumber: 11564
    functionLinenumberEnd: 11564
    functionName: '& operator=(MatchAllOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAllOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11573
      start: 11567
    functionDepth: 1
    functionLinenumber: 11567
    functionLinenumberEnd: 11573
    functionName: Catch::Matchers::Detail::MatchAllOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Matchers::Detail::MatchAllOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11588
      start: 11574
    functionDepth: 1
    functionLinenumber: 11574
    functionLinenumberEnd: 11588
    functionName: Catch::Matchers::Detail::MatchAllOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11591,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11593
      start: 11590
    functionDepth: 1
    functionLinenumber: 11590
    functionLinenumberEnd: 11593
    functionName: operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAllOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11597
      start: 11594
    functionDepth: 1
    functionLinenumber: 11594
    functionLinenumberEnd: 11597
    functionName: operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11613
      start: 11613
    functionDepth: 0
    functionLinenumber: 11613
    functionLinenumberEnd: 11613
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11614
    functionDepth: 0
    functionLinenumber: 11614
    functionLinenumberEnd: 11614
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11615
      start: 11615
    functionDepth: 0
    functionLinenumber: 11615
    functionLinenumberEnd: 11615
    functionName: '& operator=(MatchAnyOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11616
    functionDepth: 0
    functionLinenumber: 11616
    functionLinenumberEnd: 11616
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11617
      start: 11617
    functionDepth: 0
    functionLinenumber: 11617
    functionLinenumberEnd: 11617
    functionName: '& operator=(MatchAnyOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAnyOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11625
      start: 11619
    functionDepth: 1
    functionLinenumber: 11619
    functionLinenumberEnd: 11625
    functionName: Catch::Matchers::Detail::MatchAnyOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Matchers::Detail::MatchAnyOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11640
    functionName: Catch::Matchers::Detail::MatchAnyOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11643,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11642
    functionDepth: 1
    functionLinenumber: 11642
    functionLinenumberEnd: 11645
    functionName: operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAnyOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11649
      start: 11646
    functionDepth: 1
    functionLinenumber: 11646
    functionLinenumberEnd: 11649
    functionName: operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' underlyingMatcher'
    argTypes:
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11668
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11668
    functionName: Catch::Matchers::Detail::MatchNotOf::MatchNotOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11672
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11672
    functionName: Catch::Matchers::Detail::MatchNotOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11676
      start: 11674
    functionDepth: 0
    functionLinenumber: 11674
    functionLinenumberEnd: 11676
    functionName: Catch::Matchers::Detail::MatchNotOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<T>
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11684
      start: 11682
    functionDepth: 0
    functionLinenumber: 11682
    functionLinenumberEnd: 11684
    functionName: operator&& (MatcherBase<T> const& lhs, MatcherBase<T> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchAllOf<T>
    signature: Detail::MatchAllOf<T> operator&& (MatcherBase<T> const& lhs, MatcherBase<T>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<T>
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11688
      start: 11686
    functionDepth: 0
    functionLinenumber: 11686
    functionLinenumberEnd: 11688
    functionName: operator|| (MatcherBase<T> const& lhs, MatcherBase<T> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchAnyOf<T>
    signature: Detail::MatchAnyOf<T> operator|| (MatcherBase<T> const& lhs, MatcherBase<T>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11693
      start: 11691
    functionDepth: 0
    functionLinenumber: 11691
    functionLinenumberEnd: 11693
    functionName: operator! (MatcherBase<T> const& matcher)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchNotOf<T>
    signature: Detail::MatchNotOf<T> operator! (MatcherBase<T> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11530
      start: 11530
    functionDepth: 0
    functionLinenumber: 11530
    functionLinenumberEnd: 11530
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11532
      start: 11532
    functionDepth: 0
    functionLinenumber: 11532
    functionLinenumberEnd: 11532
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase(MatcherUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11533
      start: 11533
    functionDepth: 0
    functionLinenumber: 11533
    functionLinenumberEnd: 11533
    functionName: Catch::Matchers::MatcherUntypedBase::MatcherUntypedBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase(MatcherUntypedBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11535
      start: 11535
    functionDepth: 0
    functionLinenumber: 11535
    functionLinenumberEnd: 11535
    functionName: '& operator = (MatcherUntypedBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherUntypedBase
    signature: MatcherUntypedBase & operator = (MatcherUntypedBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11536
      start: 11536
    functionDepth: 0
    functionLinenumber: 11536
    functionLinenumberEnd: 11536
    functionName: '& operator = (MatcherUntypedBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherUntypedBase
    signature: MatcherUntypedBase & operator = (MatcherUntypedBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11560
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11560
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11561
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11561
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11562
    functionName: '& operator=(MatchAllOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11563
    functionDepth: 0
    functionLinenumber: 11563
    functionLinenumberEnd: 11563
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11564
      start: 11564
    functionDepth: 0
    functionLinenumber: 11564
    functionLinenumberEnd: 11564
    functionName: '& operator=(MatchAllOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAllOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11573
      start: 11567
    functionDepth: 1
    functionLinenumber: 11567
    functionLinenumberEnd: 11573
    functionName: Catch::Matchers::Detail::MatchAllOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Matchers::Detail::MatchAllOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11588
      start: 11574
    functionDepth: 1
    functionLinenumber: 11574
    functionLinenumberEnd: 11588
    functionName: Catch::Matchers::Detail::MatchAllOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11591,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11593
      start: 11590
    functionDepth: 1
    functionLinenumber: 11590
    functionLinenumberEnd: 11593
    functionName: operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAllOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11597
      start: 11594
    functionDepth: 1
    functionLinenumber: 11594
    functionLinenumberEnd: 11597
    functionName: operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11613
      start: 11613
    functionDepth: 0
    functionLinenumber: 11613
    functionLinenumberEnd: 11613
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11614
    functionDepth: 0
    functionLinenumber: 11614
    functionLinenumberEnd: 11614
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11615
      start: 11615
    functionDepth: 0
    functionLinenumber: 11615
    functionLinenumberEnd: 11615
    functionName: '& operator=(MatchAnyOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11616
    functionDepth: 0
    functionLinenumber: 11616
    functionLinenumberEnd: 11616
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11617
      start: 11617
    functionDepth: 0
    functionLinenumber: 11617
    functionLinenumberEnd: 11617
    functionName: '& operator=(MatchAnyOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAnyOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11625
      start: 11619
    functionDepth: 1
    functionLinenumber: 11619
    functionLinenumberEnd: 11625
    functionName: Catch::Matchers::Detail::MatchAnyOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Matchers::Detail::MatchAnyOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11640
    functionName: Catch::Matchers::Detail::MatchAnyOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11643,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11642
    functionDepth: 1
    functionLinenumber: 11642
    functionLinenumberEnd: 11645
    functionName: operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAnyOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11649
      start: 11646
    functionDepth: 1
    functionLinenumber: 11646
    functionLinenumberEnd: 11649
    functionName: operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' underlyingMatcher'
    argTypes:
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11668
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11668
    functionName: Catch::Matchers::Detail::MatchNotOf::MatchNotOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11672
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11672
    functionName: Catch::Matchers::Detail::MatchNotOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11676
      start: 11674
    functionDepth: 0
    functionLinenumber: 11674
    functionLinenumberEnd: 11676
    functionName: Catch::Matchers::Detail::MatchNotOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11560
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11560
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11561
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11561
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11562
    functionName: '& operator=(MatchAllOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11563
    functionDepth: 0
    functionLinenumber: 11563
    functionLinenumberEnd: 11563
    functionName: Catch::Matchers::Detail::MatchAllOf::MatchAllOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOf(MatchAllOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11564
      start: 11564
    functionDepth: 0
    functionLinenumber: 11564
    functionLinenumberEnd: 11564
    functionName: '& operator=(MatchAllOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf & operator=(MatchAllOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAllOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11573
      start: 11567
    functionDepth: 1
    functionLinenumber: 11567
    functionLinenumberEnd: 11573
    functionName: Catch::Matchers::Detail::MatchAllOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Matchers::Detail::MatchAllOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11576,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11588
      start: 11574
    functionDepth: 1
    functionLinenumber: 11574
    functionLinenumberEnd: 11588
    functionName: Catch::Matchers::Detail::MatchAllOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11591,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11593
      start: 11590
    functionDepth: 1
    functionLinenumber: 11590
    functionLinenumberEnd: 11593
    functionName: operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatchAllOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11595,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAllOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11597
      start: 11594
    functionDepth: 1
    functionLinenumber: 11594
    functionLinenumberEnd: 11597
    functionName: operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAllOf
    signature: MatchAllOf operator&& (MatcherBase<ArgT> const& lhs, MatchAllOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11613
      start: 11613
    functionDepth: 0
    functionLinenumber: 11613
    functionLinenumberEnd: 11613
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11614
      start: 11614
    functionDepth: 0
    functionLinenumber: 11614
    functionLinenumberEnd: 11614
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11615
      start: 11615
    functionDepth: 0
    functionLinenumber: 11615
    functionLinenumberEnd: 11615
    functionName: '& operator=(MatchAnyOf const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11616
    functionDepth: 0
    functionLinenumber: 11616
    functionLinenumberEnd: 11616
    functionName: Catch::Matchers::Detail::MatchAnyOf::MatchAnyOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOf(MatchAnyOf&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11617
      start: 11617
    functionDepth: 0
    functionLinenumber: 11617
    functionLinenumberEnd: 11617
    functionName: '& operator=(MatchAnyOf&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf & operator=(MatchAnyOf&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchAnyOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11625
      start: 11619
    functionDepth: 1
    functionLinenumber: 11619
    functionLinenumberEnd: 11625
    functionName: Catch::Matchers::Detail::MatchAnyOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Matchers::Detail::MatchAnyOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11628,1
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11640
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11640
    functionName: Catch::Matchers::Detail::MatchAnyOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11643,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOf
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11642
    functionDepth: 1
    functionLinenumber: 11642
    functionLinenumberEnd: 11645
    functionName: operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::push_back
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatchAnyOf&& lhs, MatcherBase<ArgT> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_matchers::insert
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: m_matchers::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgT>
    - MatchAnyOf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11649
      start: 11646
    functionDepth: 1
    functionLinenumber: 11646
    functionLinenumberEnd: 11649
    functionName: operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_matchers::insert
    - m_matchers::begin
    linkageType: ''
    returnType: MatchAnyOf
    signature: MatchAnyOf operator|| (MatcherBase<ArgT> const& lhs, MatchAnyOf&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' underlyingMatcher'
    argTypes:
    - MatcherBase<ArgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11668
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11668
    functionName: Catch::Matchers::Detail::MatchNotOf::MatchNotOf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOf::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - ArgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11672
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11672
    functionName: Catch::Matchers::Detail::MatchNotOf::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOf::match
    linkageType: ''
    returnType: bool
    signature: bool match( ArgT const& arg ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11676
      start: 11674
    functionDepth: 0
    functionLinenumber: 11674
    functionLinenumberEnd: 11676
    functionName: Catch::Matchers::Detail::MatchNotOf::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<T>
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11684
      start: 11682
    functionDepth: 0
    functionLinenumber: 11682
    functionLinenumberEnd: 11684
    functionName: operator&& (MatcherBase<T> const& lhs, MatcherBase<T> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchAllOf<T>
    signature: Detail::MatchAllOf<T> operator&& (MatcherBase<T> const& lhs, MatcherBase<T>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<T>
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11688
      start: 11686
    functionDepth: 0
    functionLinenumber: 11686
    functionLinenumberEnd: 11688
    functionName: operator|| (MatcherBase<T> const& lhs, MatcherBase<T> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchAnyOf<T>
    signature: Detail::MatchAnyOf<T> operator|| (MatcherBase<T> const& lhs, MatcherBase<T>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherBase<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11693
      start: 11691
    functionDepth: 0
    functionLinenumber: 11691
    functionLinenumberEnd: 11693
    functionName: operator! (MatcherBase<T> const& matcher)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Detail::MatchNotOf<T>
    signature: Detail::MatchNotOf<T> operator! (MatcherBase<T> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11702
      start: 11701
    functionDepth: 0
    functionLinenumber: 11701
    functionLinenumberEnd: 11702
    functionName: CATCH_REQUIRE_THROWS_WITH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_WITH( expr, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11703
      start: 11702
    functionDepth: 0
    functionLinenumber: 11702
    functionLinenumberEnd: 11703
    functionName: CATCH_REQUIRE_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11705
      start: 11704
    functionDepth: 0
    functionLinenumber: 11704
    functionLinenumberEnd: 11705
    functionName: CATCH_CHECK_THROWS_WITH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_WITH( expr, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11706
      start: 11705
    functionDepth: 0
    functionLinenumber: 11705
    functionLinenumberEnd: 11706
    functionName: CATCH_CHECK_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_MATCHES( expr, exceptionType, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11708
      start: 11707
    functionDepth: 0
    functionLinenumber: 11707
    functionLinenumberEnd: 11708
    functionName: CATCH_CHECK_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THAT( arg, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11709
      start: 11708
    functionDepth: 0
    functionLinenumber: 11708
    functionLinenumberEnd: 11709
    functionName: CATCH_REQUIRE_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THAT( arg, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11713
      start: 11712
    functionDepth: 0
    functionLinenumber: 11712
    functionLinenumberEnd: 11713
    functionName: CATCH_REQUIRE_THROWS_WITH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_WITH( expr, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11714
      start: 11713
    functionDepth: 0
    functionLinenumber: 11713
    functionLinenumberEnd: 11714
    functionName: CATCH_REQUIRE_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11716
      start: 11715
    functionDepth: 0
    functionLinenumber: 11715
    functionLinenumberEnd: 11716
    functionName: CATCH_CHECK_THROWS_WITH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_WITH( expr, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11717
      start: 11716
    functionDepth: 0
    functionLinenumber: 11716
    functionLinenumberEnd: 11717
    functionName: CATCH_CHECK_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THROWS_MATCHES( expr, exceptionType, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11719
      start: 11718
    functionDepth: 0
    functionLinenumber: 11718
    functionLinenumberEnd: 11719
    functionName: CATCH_CHECK_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_CHECK_THAT( arg, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11720
      start: 11719
    functionDepth: 0
    functionLinenumber: 11719
    functionLinenumberEnd: 11720
    functionName: CATCH_REQUIRE_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REQUIRE_THAT( arg, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11724
      start: 11723
    functionDepth: 0
    functionLinenumber: 11723
    functionLinenumberEnd: 11724
    functionName: REQUIRE_THROWS_WITH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_WITH( expr, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11725
      start: 11724
    functionDepth: 0
    functionLinenumber: 11724
    functionLinenumberEnd: 11725
    functionName: REQUIRE_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11727
      start: 11726
    functionDepth: 0
    functionLinenumber: 11726
    functionLinenumberEnd: 11727
    functionName: CHECK_THROWS_WITH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_WITH( expr, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11728
      start: 11727
    functionDepth: 0
    functionLinenumber: 11727
    functionLinenumberEnd: 11728
    functionName: CHECK_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_MATCHES( expr, exceptionType, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11730
      start: 11729
    functionDepth: 0
    functionLinenumber: 11729
    functionLinenumberEnd: 11730
    functionName: CHECK_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THAT( arg, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11731
      start: 11730
    functionDepth: 0
    functionLinenumber: 11730
    functionLinenumberEnd: 11731
    functionName: REQUIRE_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THAT( arg, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11735
      start: 11734
    functionDepth: 0
    functionLinenumber: 11734
    functionLinenumberEnd: 11735
    functionName: REQUIRE_THROWS_WITH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_WITH( expr, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11736
      start: 11735
    functionDepth: 0
    functionLinenumber: 11735
    functionLinenumberEnd: 11736
    functionName: REQUIRE_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THROWS_MATCHES( expr, exceptionType, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11738
      start: 11737
    functionDepth: 0
    functionLinenumber: 11737
    functionLinenumberEnd: 11738
    functionName: CHECK_THROWS_WITH
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_WITH( expr, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - exceptionType
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11739
      start: 11738
    functionDepth: 0
    functionLinenumber: 11738
    functionLinenumberEnd: 11739
    functionName: CHECK_THROWS_MATCHES
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THROWS_MATCHES( expr, exceptionType, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11741
      start: 11740
    functionDepth: 0
    functionLinenumber: 11740
    functionLinenumberEnd: 11741
    functionName: CHECK_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_THAT( arg, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - matcher
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11742
      start: 11741
    functionDepth: 0
    functionLinenumber: 11741
    functionLinenumberEnd: 11742
    functionName: REQUIRE_THAT
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_THAT( arg, matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11766
      start: 11766
    functionDepth: 0
    functionLinenumber: 11766
    functionLinenumberEnd: 11766
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11769
      start: 11769
    functionDepth: 0
    functionLinenumber: 11769
    functionLinenumberEnd: 11769
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase(MatcherGenericBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11770
      start: 11770
    functionDepth: 0
    functionLinenumber: 11770
    functionLinenumberEnd: 11770
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase(MatcherGenericBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11772
      start: 11772
    functionDepth: 0
    functionLinenumber: 11772
    functionLinenumberEnd: 11772
    functionName: '& operator=(MatcherGenericBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherGenericBase
    signature: MatcherGenericBase & operator=(MatcherGenericBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11773
      start: 11773
    functionDepth: 0
    functionLinenumber: 11773
    functionLinenumberEnd: 11773
    functionName: '& operator=(MatcherGenericBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherGenericBase
    signature: MatcherGenericBase & operator=(MatcherGenericBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::array<void const*, N>
    - std::array<void const*, M>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11784
      start: 11779
    functionDepth: 0
    functionLinenumber: 11779
    functionLinenumberEnd: 11784
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N + M>
    signature: std::array<void const*, N + M> array_cat(std::array<void const*, N>
      && lhs, std::array<void const*, M> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::array<void const*, N>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11792
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11792
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(std::array<void const*, N> &&
      lhs, void const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - void*
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11799
      start: 11795
    functionDepth: 0
    functionLinenumber: 11795
    functionLinenumberEnd: 11799
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(void const* lhs, std::array<void
      const*, N> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11818
    functionDepth: 0
    functionLinenumber: 11818
    functionLinenumberEnd: 11820
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    - Dst: Catch::Matchers::Detail::match_all_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11823
    functionDepth: 1
    functionLinenumber: 11823
    functionLinenumberEnd: 11825
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::Detail::match_all_of
    - static_cast<T const*>
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11831
      start: 11829
    functionDepth: 0
    functionLinenumber: 11829
    functionLinenumberEnd: 11831
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    - Dst: Catch::Matchers::Detail::match_any_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11836
      start: 11834
    functionDepth: 1
    functionLinenumber: 11834
    functionLinenumberEnd: 11836
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<T const*>
    - Catch::Matchers::Detail::match_any_of
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MatcherTs const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11843,1
    - Dst: Catch::Matchers::Detail::describe_multi_matcher
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - combine
    - ' matchers'
    argTypes:
    - StringRef
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11841
    functionDepth: 1
    functionLinenumber: 11841
    functionLinenumberEnd: 11847
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::Detail::describe_multi_matcher
    - std::array::size
    - std::array::data
    - static_cast<MatcherTs const*>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::array<void
      const*, sizeof...(MatcherTs)> const& matchers, std::index_sequence<Idx...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11853
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11854
    functionDepth: 0
    functionLinenumber: 11854
    functionLinenumberEnd: 11854
    functionName: '& operator=(MatchAllOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11855
      start: 11855
    functionDepth: 0
    functionLinenumber: 11855
    functionLinenumberEnd: 11855
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11856
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11856
    functionName: '& operator=(MatchAllOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11858
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11859
    functionDepth: 0
    functionLinenumber: 11859
    functionLinenumberEnd: 11859
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_all_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11864
      start: 11862
    functionDepth: 0
    functionLinenumber: 11862
    functionLinenumberEnd: 11864
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_all_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11868
      start: 11866
    functionDepth: 0
    functionLinenumber: 11866
    functionLinenumberEnd: 11868
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatchAllOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11883
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11883
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::Detail::array_cat
    - CATCH_MOVE
    linkageType: ''
    returnType: MatchAllOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11887
    functionDepth: 1
    functionLinenumber: 11887
    functionLinenumberEnd: 11892
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::Detail::array_cat
    - static_cast<void const*>
    - CATCH_MOVE
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAllOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: "operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::Detail::array_cat
    - static_cast<void const*>
    - CATCH_MOVE
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>> operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11908
    functionDepth: 0
    functionLinenumber: 11908
    functionLinenumberEnd: 11908
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11909
      start: 11909
    functionDepth: 0
    functionLinenumber: 11909
    functionLinenumberEnd: 11909
    functionName: '& operator=(MatchAnyOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11910
      start: 11910
    functionDepth: 0
    functionLinenumber: 11910
    functionLinenumberEnd: 11910
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11911
    functionDepth: 0
    functionLinenumber: 11911
    functionLinenumberEnd: 11911
    functionName: '& operator=(MatchAnyOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11913
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11913
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11914
    functionDepth: 0
    functionLinenumber: 11914
    functionLinenumberEnd: 11914
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_any_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11919
      start: 11917
    functionDepth: 0
    functionLinenumber: 11917
    functionLinenumberEnd: 11919
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_any_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11923
      start: 11921
    functionDepth: 0
    functionLinenumber: 11921
    functionLinenumberEnd: 11923
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatchAnyOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11937
      start: 11933
    functionDepth: 1
    functionLinenumber: 11933
    functionLinenumberEnd: 11937
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::Detail::array_cat
    - CATCH_MOVE
    linkageType: ''
    returnType: MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11946
      start: 11941
    functionDepth: 1
    functionLinenumber: 11941
    functionLinenumberEnd: 11946
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::Detail::array_cat
    - static_cast<void const*>
    - CATCH_MOVE
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAnyOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11955
      start: 11950
    functionDepth: 1
    functionLinenumber: 11950
    functionLinenumberEnd: 11955
    functionName: "operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::Detail::array_cat
    - static_cast<void const*>
    - CATCH_MOVE
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>> operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11964
      start: 11964
    functionDepth: 0
    functionLinenumber: 11964
    functionLinenumberEnd: 11964
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11965
      start: 11965
    functionDepth: 0
    functionLinenumber: 11965
    functionLinenumberEnd: 11965
    functionName: '& operator=(MatchNotOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11966
      start: 11966
    functionDepth: 0
    functionLinenumber: 11966
    functionLinenumberEnd: 11966
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11967
      start: 11967
    functionDepth: 0
    functionLinenumber: 11967
    functionLinenumberEnd: 11967
    functionName: '& operator=(MatchNotOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11969
      start: 11969
    functionDepth: 0
    functionLinenumber: 11969
    functionLinenumberEnd: 11969
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOfGeneric::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11974
      start: 11972
    functionDepth: 1
    functionLinenumber: 11972
    functionLinenumberEnd: 11974
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOfGeneric::match
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11978
      start: 11976
    functionDepth: 0
    functionLinenumber: 11976
    functionLinenumberEnd: 11978
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatchNotOfGeneric<MatcherT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11983
    functionName: '& operator ! (MatchNotOfGeneric<MatcherT> const& matcher)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherT
    signature: MatcherT & operator ! (MatchNotOfGeneric<MatcherT> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::array<void const*, N>
    - std::array<void const*, M>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11784
      start: 11779
    functionDepth: 0
    functionLinenumber: 11779
    functionLinenumberEnd: 11784
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N + M>
    signature: std::array<void const*, N + M> array_cat(std::array<void const*, N>
      && lhs, std::array<void const*, M> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::array<void const*, N>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11792
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11792
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(std::array<void const*, N> &&
      lhs, void const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - void*
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11799
      start: 11795
    functionDepth: 0
    functionLinenumber: 11795
    functionLinenumberEnd: 11799
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(void const* lhs, std::array<void
      const*, N> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11818
    functionDepth: 0
    functionLinenumber: 11818
    functionLinenumberEnd: 11820
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    - Dst: Catch::Matchers::Detail::match_all_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11823
    functionDepth: 1
    functionLinenumber: 11823
    functionLinenumberEnd: 11825
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::Detail::match_all_of
    - static_cast<T const*>
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11831
      start: 11829
    functionDepth: 0
    functionLinenumber: 11829
    functionLinenumberEnd: 11831
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    - Dst: Catch::Matchers::Detail::match_any_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11836
      start: 11834
    functionDepth: 1
    functionLinenumber: 11834
    functionLinenumberEnd: 11836
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - static_cast<T const*>
    - Catch::Matchers::Detail::match_any_of
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MatcherTs const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11843,1
    - Dst: Catch::Matchers::Detail::describe_multi_matcher
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - combine
    - ' matchers'
    argTypes:
    - StringRef
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11841
    functionDepth: 1
    functionLinenumber: 11841
    functionLinenumberEnd: 11847
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::Detail::describe_multi_matcher
    - std::array::size
    - std::array::data
    - static_cast<MatcherTs const*>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::array<void
      const*, sizeof...(MatcherTs)> const& matchers, std::index_sequence<Idx...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11853
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11854
    functionDepth: 0
    functionLinenumber: 11854
    functionLinenumberEnd: 11854
    functionName: '& operator=(MatchAllOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11855
      start: 11855
    functionDepth: 0
    functionLinenumber: 11855
    functionLinenumberEnd: 11855
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11856
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11856
    functionName: '& operator=(MatchAllOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11858
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11859
    functionDepth: 0
    functionLinenumber: 11859
    functionLinenumberEnd: 11859
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_all_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11864
      start: 11862
    functionDepth: 0
    functionLinenumber: 11862
    functionLinenumberEnd: 11864
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_all_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11868
      start: 11866
    functionDepth: 0
    functionLinenumber: 11866
    functionLinenumberEnd: 11868
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatchAllOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11883
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11883
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAllOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11887
    functionDepth: 1
    functionLinenumber: 11887
    functionLinenumberEnd: 11892
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAllOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: "operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>> operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11908
    functionDepth: 0
    functionLinenumber: 11908
    functionLinenumberEnd: 11908
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11909
      start: 11909
    functionDepth: 0
    functionLinenumber: 11909
    functionLinenumberEnd: 11909
    functionName: '& operator=(MatchAnyOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11910
      start: 11910
    functionDepth: 0
    functionLinenumber: 11910
    functionLinenumberEnd: 11910
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11911
    functionDepth: 0
    functionLinenumber: 11911
    functionLinenumberEnd: 11911
    functionName: '& operator=(MatchAnyOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11913
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11913
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11914
    functionDepth: 0
    functionLinenumber: 11914
    functionLinenumberEnd: 11914
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_any_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11919
      start: 11917
    functionDepth: 0
    functionLinenumber: 11917
    functionLinenumberEnd: 11919
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_any_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11923
      start: 11921
    functionDepth: 0
    functionLinenumber: 11921
    functionLinenumberEnd: 11923
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatchAnyOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11937
      start: 11933
    functionDepth: 1
    functionLinenumber: 11933
    functionLinenumberEnd: 11937
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11946
      start: 11941
    functionDepth: 1
    functionLinenumber: 11941
    functionLinenumberEnd: 11946
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAnyOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11955
      start: 11950
    functionDepth: 1
    functionLinenumber: 11950
    functionLinenumberEnd: 11955
    functionName: "operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>> operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11964
      start: 11964
    functionDepth: 0
    functionLinenumber: 11964
    functionLinenumberEnd: 11964
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11965
      start: 11965
    functionDepth: 0
    functionLinenumber: 11965
    functionLinenumberEnd: 11965
    functionName: '& operator=(MatchNotOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11966
      start: 11966
    functionDepth: 0
    functionLinenumber: 11966
    functionLinenumberEnd: 11966
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11967
      start: 11967
    functionDepth: 0
    functionLinenumber: 11967
    functionLinenumberEnd: 11967
    functionName: '& operator=(MatchNotOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11969
      start: 11969
    functionDepth: 0
    functionLinenumber: 11969
    functionLinenumberEnd: 11969
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOfGeneric::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11974
      start: 11972
    functionDepth: 1
    functionLinenumber: 11972
    functionLinenumberEnd: 11974
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOfGeneric::match
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11978
      start: 11976
    functionDepth: 0
    functionLinenumber: 11976
    functionLinenumberEnd: 11978
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatchNotOfGeneric<MatcherT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11983
    functionName: '& operator ! (MatchNotOfGeneric<MatcherT> const& matcher)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherT
    signature: MatcherT & operator ! (MatchNotOfGeneric<MatcherT> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11993
      start: 11990
    functionDepth: 0
    functionLinenumber: 11990
    functionLinenumberEnd: 11993
    functionName: operator && (MatcherLHS const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>>
    signature: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>> operator && (MatcherLHS const&
      lhs, MatcherRHS const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11999
      start: 11996
    functionDepth: 0
    functionLinenumber: 11996
    functionLinenumberEnd: 11999
    functionName: operator || (MatcherLHS const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>>
    signature: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>> operator || (MatcherLHS const&
      lhs, MatcherRHS const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12006
      start: 12003
    functionDepth: 0
    functionLinenumber: 12003
    functionLinenumberEnd: 12006
    functionName: operator ! (MatcherT const& matcher)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>>
      operator ! (MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherBase<ArgRHS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12014
      start: 12011
    functionDepth: 0
    functionLinenumber: 12011
    functionLinenumberEnd: 12014
    functionName: operator && (MatcherLHS const& lhs, MatcherBase<ArgRHS> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>> operator && (MatcherLHS const& lhs, MatcherBase<ArgRHS>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgLHS>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12020
      start: 12017
    functionDepth: 0
    functionLinenumber: 12017
    functionLinenumberEnd: 12020
    functionName: operator && (MatcherBase<ArgLHS> const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>> operator && (MatcherBase<ArgLHS> const& lhs, MatcherRHS const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherBase<ArgRHS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12026
      start: 12023
    functionDepth: 0
    functionLinenumber: 12023
    functionLinenumberEnd: 12026
    functionName: operator || (MatcherLHS const& lhs, MatcherBase<ArgRHS> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>> operator || (MatcherLHS const& lhs, MatcherBase<ArgRHS>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgLHS>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12032
      start: 12029
    functionDepth: 0
    functionLinenumber: 12029
    functionLinenumberEnd: 12032
    functionName: operator || (MatcherBase<ArgLHS> const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>> operator || (MatcherBase<ArgLHS> const& lhs, MatcherRHS const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11766
      start: 11766
    functionDepth: 0
    functionLinenumber: 11766
    functionLinenumberEnd: 11766
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11769
      start: 11769
    functionDepth: 0
    functionLinenumber: 11769
    functionLinenumberEnd: 11769
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase(MatcherGenericBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11770
      start: 11770
    functionDepth: 0
    functionLinenumber: 11770
    functionLinenumberEnd: 11770
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase(MatcherGenericBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11772
      start: 11772
    functionDepth: 0
    functionLinenumber: 11772
    functionLinenumberEnd: 11772
    functionName: '& operator=(MatcherGenericBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherGenericBase
    signature: MatcherGenericBase & operator=(MatcherGenericBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11773
      start: 11773
    functionDepth: 0
    functionLinenumber: 11773
    functionLinenumberEnd: 11773
    functionName: '& operator=(MatcherGenericBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherGenericBase
    signature: MatcherGenericBase & operator=(MatcherGenericBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::array<void const*, N>
    - std::array<void const*, M>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11784
      start: 11779
    functionDepth: 0
    functionLinenumber: 11779
    functionLinenumberEnd: 11784
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N + M>
    signature: std::array<void const*, N + M> array_cat(std::array<void const*, N>
      && lhs, std::array<void const*, M> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::array<void const*, N>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11792
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11792
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(std::array<void const*, N> &&
      lhs, void const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - void*
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11799
      start: 11795
    functionDepth: 0
    functionLinenumber: 11795
    functionLinenumberEnd: 11799
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(void const* lhs, std::array<void
      const*, N> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11818
    functionDepth: 0
    functionLinenumber: 11818
    functionLinenumberEnd: 11820
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    - Dst: Catch::Matchers::Detail::match_all_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11823
    functionDepth: 1
    functionLinenumber: 11823
    functionLinenumberEnd: 11825
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::Detail::match_all_of
    - static_cast<T const*>
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11831
      start: 11829
    functionDepth: 0
    functionLinenumber: 11829
    functionLinenumberEnd: 11831
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    - Dst: Catch::Matchers::Detail::match_any_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11836
      start: 11834
    functionDepth: 1
    functionLinenumber: 11834
    functionLinenumberEnd: 11836
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - static_cast<T const*>
    - Catch::Matchers::Detail::match_any_of
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MatcherTs const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11843,1
    - Dst: Catch::Matchers::Detail::describe_multi_matcher
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - combine
    - ' matchers'
    argTypes:
    - StringRef
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11841
    functionDepth: 1
    functionLinenumber: 11841
    functionLinenumberEnd: 11847
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::Detail::describe_multi_matcher
    - std::array::size
    - std::array::data
    - static_cast<MatcherTs const*>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::array<void
      const*, sizeof...(MatcherTs)> const& matchers, std::index_sequence<Idx...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11853
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11854
    functionDepth: 0
    functionLinenumber: 11854
    functionLinenumberEnd: 11854
    functionName: '& operator=(MatchAllOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11855
      start: 11855
    functionDepth: 0
    functionLinenumber: 11855
    functionLinenumberEnd: 11855
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11856
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11856
    functionName: '& operator=(MatchAllOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11858
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11859
    functionDepth: 0
    functionLinenumber: 11859
    functionLinenumberEnd: 11859
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_all_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11864
      start: 11862
    functionDepth: 0
    functionLinenumber: 11862
    functionLinenumberEnd: 11864
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_all_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11868
      start: 11866
    functionDepth: 0
    functionLinenumber: 11866
    functionLinenumberEnd: 11868
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatchAllOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11883
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11883
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAllOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11887
    functionDepth: 1
    functionLinenumber: 11887
    functionLinenumberEnd: 11892
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAllOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: "operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>> operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11908
    functionDepth: 0
    functionLinenumber: 11908
    functionLinenumberEnd: 11908
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11909
      start: 11909
    functionDepth: 0
    functionLinenumber: 11909
    functionLinenumberEnd: 11909
    functionName: '& operator=(MatchAnyOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11910
      start: 11910
    functionDepth: 0
    functionLinenumber: 11910
    functionLinenumberEnd: 11910
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11911
    functionDepth: 0
    functionLinenumber: 11911
    functionLinenumberEnd: 11911
    functionName: '& operator=(MatchAnyOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11913
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11913
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11914
    functionDepth: 0
    functionLinenumber: 11914
    functionLinenumberEnd: 11914
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_any_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11919
      start: 11917
    functionDepth: 0
    functionLinenumber: 11917
    functionLinenumberEnd: 11919
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_any_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11923
      start: 11921
    functionDepth: 0
    functionLinenumber: 11921
    functionLinenumberEnd: 11923
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatchAnyOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11937
      start: 11933
    functionDepth: 1
    functionLinenumber: 11933
    functionLinenumberEnd: 11937
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11946
      start: 11941
    functionDepth: 1
    functionLinenumber: 11941
    functionLinenumberEnd: 11946
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAnyOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11955
      start: 11950
    functionDepth: 1
    functionLinenumber: 11950
    functionLinenumberEnd: 11955
    functionName: "operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>> operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11964
      start: 11964
    functionDepth: 0
    functionLinenumber: 11964
    functionLinenumberEnd: 11964
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11965
      start: 11965
    functionDepth: 0
    functionLinenumber: 11965
    functionLinenumberEnd: 11965
    functionName: '& operator=(MatchNotOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11966
      start: 11966
    functionDepth: 0
    functionLinenumber: 11966
    functionLinenumberEnd: 11966
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11967
      start: 11967
    functionDepth: 0
    functionLinenumber: 11967
    functionLinenumberEnd: 11967
    functionName: '& operator=(MatchNotOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11969
      start: 11969
    functionDepth: 0
    functionLinenumber: 11969
    functionLinenumberEnd: 11969
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOfGeneric::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11974
      start: 11972
    functionDepth: 1
    functionLinenumber: 11972
    functionLinenumberEnd: 11974
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOfGeneric::match
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11978
      start: 11976
    functionDepth: 0
    functionLinenumber: 11976
    functionLinenumberEnd: 11978
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatchNotOfGeneric<MatcherT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11983
    functionName: '& operator ! (MatchNotOfGeneric<MatcherT> const& matcher)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherT
    signature: MatcherT & operator ! (MatchNotOfGeneric<MatcherT> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::array<void const*, N>
    - std::array<void const*, M>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11784
      start: 11779
    functionDepth: 0
    functionLinenumber: 11779
    functionLinenumberEnd: 11784
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N + M>
    signature: std::array<void const*, N + M> array_cat(std::array<void const*, N>
      && lhs, std::array<void const*, M> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::array<void const*, N>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11792
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11792
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(std::array<void const*, N> &&
      lhs, void const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - void*
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11799
      start: 11795
    functionDepth: 0
    functionLinenumber: 11795
    functionLinenumberEnd: 11799
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(void const* lhs, std::array<void
      const*, N> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11818
    functionDepth: 0
    functionLinenumber: 11818
    functionLinenumberEnd: 11820
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    - Dst: Catch::Matchers::Detail::match_all_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11823
    functionDepth: 1
    functionLinenumber: 11823
    functionLinenumberEnd: 11825
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::Detail::match_all_of
    - static_cast<T const*>
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11831
      start: 11829
    functionDepth: 0
    functionLinenumber: 11829
    functionLinenumberEnd: 11831
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    - Dst: Catch::Matchers::Detail::match_any_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11836
      start: 11834
    functionDepth: 1
    functionLinenumber: 11834
    functionLinenumberEnd: 11836
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - static_cast<T const*>
    - Catch::Matchers::Detail::match_any_of
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MatcherTs const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11843,1
    - Dst: Catch::Matchers::Detail::describe_multi_matcher
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - combine
    - ' matchers'
    argTypes:
    - StringRef
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11841
    functionDepth: 1
    functionLinenumber: 11841
    functionLinenumberEnd: 11847
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::Detail::describe_multi_matcher
    - std::array::size
    - std::array::data
    - static_cast<MatcherTs const*>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::array<void
      const*, sizeof...(MatcherTs)> const& matchers, std::index_sequence<Idx...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11853
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11854
    functionDepth: 0
    functionLinenumber: 11854
    functionLinenumberEnd: 11854
    functionName: '& operator=(MatchAllOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11855
      start: 11855
    functionDepth: 0
    functionLinenumber: 11855
    functionLinenumberEnd: 11855
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11856
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11856
    functionName: '& operator=(MatchAllOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11858
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11859
    functionDepth: 0
    functionLinenumber: 11859
    functionLinenumberEnd: 11859
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_all_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11864
      start: 11862
    functionDepth: 0
    functionLinenumber: 11862
    functionLinenumberEnd: 11864
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_all_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11868
      start: 11866
    functionDepth: 0
    functionLinenumber: 11866
    functionLinenumberEnd: 11868
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatchAllOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11883
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11883
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAllOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11887
    functionDepth: 1
    functionLinenumber: 11887
    functionLinenumberEnd: 11892
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAllOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: "operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>> operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11908
    functionDepth: 0
    functionLinenumber: 11908
    functionLinenumberEnd: 11908
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11909
      start: 11909
    functionDepth: 0
    functionLinenumber: 11909
    functionLinenumberEnd: 11909
    functionName: '& operator=(MatchAnyOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11910
      start: 11910
    functionDepth: 0
    functionLinenumber: 11910
    functionLinenumberEnd: 11910
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11911
    functionDepth: 0
    functionLinenumber: 11911
    functionLinenumberEnd: 11911
    functionName: '& operator=(MatchAnyOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11913
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11913
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11914
    functionDepth: 0
    functionLinenumber: 11914
    functionLinenumberEnd: 11914
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_any_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11919
      start: 11917
    functionDepth: 0
    functionLinenumber: 11917
    functionLinenumberEnd: 11919
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_any_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11923
      start: 11921
    functionDepth: 0
    functionLinenumber: 11921
    functionLinenumberEnd: 11923
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatchAnyOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11937
      start: 11933
    functionDepth: 1
    functionLinenumber: 11933
    functionLinenumberEnd: 11937
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11946
      start: 11941
    functionDepth: 1
    functionLinenumber: 11941
    functionLinenumberEnd: 11946
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAnyOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11955
      start: 11950
    functionDepth: 1
    functionLinenumber: 11950
    functionLinenumberEnd: 11955
    functionName: "operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>> operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11964
      start: 11964
    functionDepth: 0
    functionLinenumber: 11964
    functionLinenumberEnd: 11964
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11965
      start: 11965
    functionDepth: 0
    functionLinenumber: 11965
    functionLinenumberEnd: 11965
    functionName: '& operator=(MatchNotOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11966
      start: 11966
    functionDepth: 0
    functionLinenumber: 11966
    functionLinenumberEnd: 11966
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11967
      start: 11967
    functionDepth: 0
    functionLinenumber: 11967
    functionLinenumberEnd: 11967
    functionName: '& operator=(MatchNotOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11969
      start: 11969
    functionDepth: 0
    functionLinenumber: 11969
    functionLinenumberEnd: 11969
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOfGeneric::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11974
      start: 11972
    functionDepth: 1
    functionLinenumber: 11972
    functionLinenumberEnd: 11974
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOfGeneric::match
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11978
      start: 11976
    functionDepth: 0
    functionLinenumber: 11976
    functionLinenumberEnd: 11978
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatchNotOfGeneric<MatcherT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11983
    functionName: '& operator ! (MatchNotOfGeneric<MatcherT> const& matcher)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherT
    signature: MatcherT & operator ! (MatchNotOfGeneric<MatcherT> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11993
      start: 11990
    functionDepth: 0
    functionLinenumber: 11990
    functionLinenumberEnd: 11993
    functionName: operator && (MatcherLHS const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>>
    signature: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>> operator && (MatcherLHS const&
      lhs, MatcherRHS const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11999
      start: 11996
    functionDepth: 0
    functionLinenumber: 11996
    functionLinenumberEnd: 11999
    functionName: operator || (MatcherLHS const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>>
    signature: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>> operator || (MatcherLHS const&
      lhs, MatcherRHS const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12006
      start: 12003
    functionDepth: 0
    functionLinenumber: 12003
    functionLinenumberEnd: 12006
    functionName: operator ! (MatcherT const& matcher)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>>
      operator ! (MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherBase<ArgRHS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12014
      start: 12011
    functionDepth: 0
    functionLinenumber: 12011
    functionLinenumberEnd: 12014
    functionName: operator && (MatcherLHS const& lhs, MatcherBase<ArgRHS> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>> operator && (MatcherLHS const& lhs, MatcherBase<ArgRHS>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgLHS>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12020
      start: 12017
    functionDepth: 0
    functionLinenumber: 12017
    functionLinenumberEnd: 12020
    functionName: operator && (MatcherBase<ArgLHS> const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>> operator && (MatcherBase<ArgLHS> const& lhs, MatcherRHS const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherBase<ArgRHS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12026
      start: 12023
    functionDepth: 0
    functionLinenumber: 12023
    functionLinenumberEnd: 12026
    functionName: operator || (MatcherLHS const& lhs, MatcherBase<ArgRHS> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>> operator || (MatcherLHS const& lhs, MatcherBase<ArgRHS>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgLHS>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12032
      start: 12029
    functionDepth: 0
    functionLinenumber: 12029
    functionLinenumberEnd: 12032
    functionName: operator || (MatcherBase<ArgLHS> const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>> operator || (MatcherBase<ArgLHS> const& lhs, MatcherRHS const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11766
      start: 11766
    functionDepth: 0
    functionLinenumber: 11766
    functionLinenumberEnd: 11766
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11769
      start: 11769
    functionDepth: 0
    functionLinenumber: 11769
    functionLinenumberEnd: 11769
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase(MatcherGenericBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11770
      start: 11770
    functionDepth: 0
    functionLinenumber: 11770
    functionLinenumberEnd: 11770
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase(MatcherGenericBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11772
      start: 11772
    functionDepth: 0
    functionLinenumber: 11772
    functionLinenumberEnd: 11772
    functionName: '& operator=(MatcherGenericBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherGenericBase
    signature: MatcherGenericBase & operator=(MatcherGenericBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11773
      start: 11773
    functionDepth: 0
    functionLinenumber: 11773
    functionLinenumberEnd: 11773
    functionName: '& operator=(MatcherGenericBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherGenericBase
    signature: MatcherGenericBase & operator=(MatcherGenericBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::array<void const*, N>
    - std::array<void const*, M>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11784
      start: 11779
    functionDepth: 0
    functionLinenumber: 11779
    functionLinenumberEnd: 11784
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N + M>
    signature: std::array<void const*, N + M> array_cat(std::array<void const*, N>
      && lhs, std::array<void const*, M> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::array<void const*, N>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11792
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11792
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(std::array<void const*, N> &&
      lhs, void const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - void*
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11799
      start: 11795
    functionDepth: 0
    functionLinenumber: 11795
    functionLinenumberEnd: 11799
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(void const* lhs, std::array<void
      const*, N> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11818
    functionDepth: 0
    functionLinenumber: 11818
    functionLinenumberEnd: 11820
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    - Dst: Catch::Matchers::Detail::match_all_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11823
    functionDepth: 1
    functionLinenumber: 11823
    functionLinenumberEnd: 11825
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Matchers::Detail::match_all_of
    - static_cast<T const*>
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11831
      start: 11829
    functionDepth: 0
    functionLinenumber: 11829
    functionLinenumberEnd: 11831
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    - Dst: Catch::Matchers::Detail::match_any_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11836
      start: 11834
    functionDepth: 1
    functionLinenumber: 11834
    functionLinenumberEnd: 11836
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - static_cast<T const*>
    - Catch::Matchers::Detail::match_any_of
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MatcherTs const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11843,1
    - Dst: Catch::Matchers::Detail::describe_multi_matcher
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - combine
    - ' matchers'
    argTypes:
    - StringRef
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11841
    functionDepth: 1
    functionLinenumber: 11841
    functionLinenumberEnd: 11847
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Matchers::Detail::describe_multi_matcher
    - std::array::size
    - std::array::data
    - static_cast<MatcherTs const*>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::array<void
      const*, sizeof...(MatcherTs)> const& matchers, std::index_sequence<Idx...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11853
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11854
    functionDepth: 0
    functionLinenumber: 11854
    functionLinenumberEnd: 11854
    functionName: '& operator=(MatchAllOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11855
      start: 11855
    functionDepth: 0
    functionLinenumber: 11855
    functionLinenumberEnd: 11855
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11856
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11856
    functionName: '& operator=(MatchAllOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11858
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11859
    functionDepth: 0
    functionLinenumber: 11859
    functionLinenumberEnd: 11859
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_all_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11864
      start: 11862
    functionDepth: 0
    functionLinenumber: 11862
    functionLinenumberEnd: 11864
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_all_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11868
      start: 11866
    functionDepth: 0
    functionLinenumber: 11866
    functionLinenumberEnd: 11868
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatchAllOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11883
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11883
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAllOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11887
    functionDepth: 1
    functionLinenumber: 11887
    functionLinenumberEnd: 11892
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAllOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: "operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>> operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11908
    functionDepth: 0
    functionLinenumber: 11908
    functionLinenumberEnd: 11908
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11909
      start: 11909
    functionDepth: 0
    functionLinenumber: 11909
    functionLinenumberEnd: 11909
    functionName: '& operator=(MatchAnyOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11910
      start: 11910
    functionDepth: 0
    functionLinenumber: 11910
    functionLinenumberEnd: 11910
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11911
    functionDepth: 0
    functionLinenumber: 11911
    functionLinenumberEnd: 11911
    functionName: '& operator=(MatchAnyOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11913
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11913
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11914
    functionDepth: 0
    functionLinenumber: 11914
    functionLinenumberEnd: 11914
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_any_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11919
      start: 11917
    functionDepth: 0
    functionLinenumber: 11917
    functionLinenumberEnd: 11919
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_any_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11923
      start: 11921
    functionDepth: 0
    functionLinenumber: 11921
    functionLinenumberEnd: 11923
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatchAnyOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11937
      start: 11933
    functionDepth: 1
    functionLinenumber: 11933
    functionLinenumberEnd: 11937
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11946
      start: 11941
    functionDepth: 1
    functionLinenumber: 11941
    functionLinenumberEnd: 11946
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAnyOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11955
      start: 11950
    functionDepth: 1
    functionLinenumber: 11950
    functionLinenumberEnd: 11955
    functionName: "operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>> operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11964
      start: 11964
    functionDepth: 0
    functionLinenumber: 11964
    functionLinenumberEnd: 11964
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11965
      start: 11965
    functionDepth: 0
    functionLinenumber: 11965
    functionLinenumberEnd: 11965
    functionName: '& operator=(MatchNotOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11966
      start: 11966
    functionDepth: 0
    functionLinenumber: 11966
    functionLinenumberEnd: 11966
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11967
      start: 11967
    functionDepth: 0
    functionLinenumber: 11967
    functionLinenumberEnd: 11967
    functionName: '& operator=(MatchNotOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11969
      start: 11969
    functionDepth: 0
    functionLinenumber: 11969
    functionLinenumberEnd: 11969
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOfGeneric::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11974
      start: 11972
    functionDepth: 1
    functionLinenumber: 11972
    functionLinenumberEnd: 11974
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOfGeneric::match
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11978
      start: 11976
    functionDepth: 0
    functionLinenumber: 11976
    functionLinenumberEnd: 11978
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatchNotOfGeneric<MatcherT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11983
    functionName: '& operator ! (MatchNotOfGeneric<MatcherT> const& matcher)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherT
    signature: MatcherT & operator ! (MatchNotOfGeneric<MatcherT> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::array<void const*, N>
    - std::array<void const*, M>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11784
      start: 11779
    functionDepth: 0
    functionLinenumber: 11779
    functionLinenumberEnd: 11784
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N + M>
    signature: std::array<void const*, N + M> array_cat(std::array<void const*, N>
      && lhs, std::array<void const*, M> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::array<void const*, N>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11792
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11792
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(std::array<void const*, N> &&
      lhs, void const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - void*
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11799
      start: 11795
    functionDepth: 0
    functionLinenumber: 11795
    functionLinenumberEnd: 11799
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(void const* lhs, std::array<void
      const*, N> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11818
    functionDepth: 0
    functionLinenumber: 11818
    functionLinenumberEnd: 11820
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    - Dst: Catch::Matchers::Detail::match_all_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11823
    functionDepth: 1
    functionLinenumber: 11823
    functionLinenumberEnd: 11825
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Matchers::Detail::match_all_of
    - static_cast<T const*>
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11831
      start: 11829
    functionDepth: 0
    functionLinenumber: 11829
    functionLinenumberEnd: 11831
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    - Dst: Catch::Matchers::Detail::match_any_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11836
      start: 11834
    functionDepth: 1
    functionLinenumber: 11834
    functionLinenumberEnd: 11836
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - static_cast<T const*>
    - Catch::Matchers::Detail::match_any_of
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MatcherTs const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11843,1
    - Dst: Catch::Matchers::Detail::describe_multi_matcher
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - combine
    - ' matchers'
    argTypes:
    - StringRef
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11841
    functionDepth: 1
    functionLinenumber: 11841
    functionLinenumberEnd: 11847
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Matchers::Detail::describe_multi_matcher
    - std::array::size
    - std::array::data
    - static_cast<MatcherTs const*>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::array<void
      const*, sizeof...(MatcherTs)> const& matchers, std::index_sequence<Idx...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11853
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11854
    functionDepth: 0
    functionLinenumber: 11854
    functionLinenumberEnd: 11854
    functionName: '& operator=(MatchAllOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11855
      start: 11855
    functionDepth: 0
    functionLinenumber: 11855
    functionLinenumberEnd: 11855
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11856
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11856
    functionName: '& operator=(MatchAllOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11858
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11859
    functionDepth: 0
    functionLinenumber: 11859
    functionLinenumberEnd: 11859
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_all_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11864
      start: 11862
    functionDepth: 0
    functionLinenumber: 11862
    functionLinenumberEnd: 11864
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_all_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11868
      start: 11866
    functionDepth: 0
    functionLinenumber: 11866
    functionLinenumberEnd: 11868
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatchAllOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11883
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11883
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAllOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11887
    functionDepth: 1
    functionLinenumber: 11887
    functionLinenumberEnd: 11892
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAllOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: "operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>> operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11908
    functionDepth: 0
    functionLinenumber: 11908
    functionLinenumberEnd: 11908
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11909
      start: 11909
    functionDepth: 0
    functionLinenumber: 11909
    functionLinenumberEnd: 11909
    functionName: '& operator=(MatchAnyOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11910
      start: 11910
    functionDepth: 0
    functionLinenumber: 11910
    functionLinenumberEnd: 11910
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11911
    functionDepth: 0
    functionLinenumber: 11911
    functionLinenumberEnd: 11911
    functionName: '& operator=(MatchAnyOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11913
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11913
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11914
    functionDepth: 0
    functionLinenumber: 11914
    functionLinenumberEnd: 11914
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_any_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11919
      start: 11917
    functionDepth: 0
    functionLinenumber: 11917
    functionLinenumberEnd: 11919
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_any_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11923
      start: 11921
    functionDepth: 0
    functionLinenumber: 11921
    functionLinenumberEnd: 11923
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatchAnyOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11937
      start: 11933
    functionDepth: 1
    functionLinenumber: 11933
    functionLinenumberEnd: 11937
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11946
      start: 11941
    functionDepth: 1
    functionLinenumber: 11941
    functionLinenumberEnd: 11946
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAnyOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11955
      start: 11950
    functionDepth: 1
    functionLinenumber: 11950
    functionLinenumberEnd: 11955
    functionName: "operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>> operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11964
      start: 11964
    functionDepth: 0
    functionLinenumber: 11964
    functionLinenumberEnd: 11964
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11965
      start: 11965
    functionDepth: 0
    functionLinenumber: 11965
    functionLinenumberEnd: 11965
    functionName: '& operator=(MatchNotOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11966
      start: 11966
    functionDepth: 0
    functionLinenumber: 11966
    functionLinenumberEnd: 11966
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11967
      start: 11967
    functionDepth: 0
    functionLinenumber: 11967
    functionLinenumberEnd: 11967
    functionName: '& operator=(MatchNotOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11969
      start: 11969
    functionDepth: 0
    functionLinenumber: 11969
    functionLinenumberEnd: 11969
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOfGeneric::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11974
      start: 11972
    functionDepth: 1
    functionLinenumber: 11972
    functionLinenumberEnd: 11974
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOfGeneric::match
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11978
      start: 11976
    functionDepth: 0
    functionLinenumber: 11976
    functionLinenumberEnd: 11978
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatchNotOfGeneric<MatcherT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11983
    functionName: '& operator ! (MatchNotOfGeneric<MatcherT> const& matcher)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherT
    signature: MatcherT & operator ! (MatchNotOfGeneric<MatcherT> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11993
      start: 11990
    functionDepth: 0
    functionLinenumber: 11990
    functionLinenumberEnd: 11993
    functionName: operator && (MatcherLHS const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>>
    signature: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>> operator && (MatcherLHS const&
      lhs, MatcherRHS const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11999
      start: 11996
    functionDepth: 0
    functionLinenumber: 11996
    functionLinenumberEnd: 11999
    functionName: operator || (MatcherLHS const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>>
    signature: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>> operator || (MatcherLHS const&
      lhs, MatcherRHS const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12006
      start: 12003
    functionDepth: 0
    functionLinenumber: 12003
    functionLinenumberEnd: 12006
    functionName: operator ! (MatcherT const& matcher)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>>
      operator ! (MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherBase<ArgRHS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12014
      start: 12011
    functionDepth: 0
    functionLinenumber: 12011
    functionLinenumberEnd: 12014
    functionName: operator && (MatcherLHS const& lhs, MatcherBase<ArgRHS> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>> operator && (MatcherLHS const& lhs, MatcherBase<ArgRHS>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgLHS>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12020
      start: 12017
    functionDepth: 0
    functionLinenumber: 12017
    functionLinenumberEnd: 12020
    functionName: operator && (MatcherBase<ArgLHS> const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>> operator && (MatcherBase<ArgLHS> const& lhs, MatcherRHS const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherBase<ArgRHS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12026
      start: 12023
    functionDepth: 0
    functionLinenumber: 12023
    functionLinenumberEnd: 12026
    functionName: operator || (MatcherLHS const& lhs, MatcherBase<ArgRHS> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>> operator || (MatcherLHS const& lhs, MatcherBase<ArgRHS>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgLHS>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12032
      start: 12029
    functionDepth: 0
    functionLinenumber: 12029
    functionLinenumberEnd: 12032
    functionName: operator || (MatcherBase<ArgLHS> const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>> operator || (MatcherBase<ArgLHS> const& lhs, MatcherRHS const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11766
      start: 11766
    functionDepth: 0
    functionLinenumber: 11766
    functionLinenumberEnd: 11766
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11769
      start: 11769
    functionDepth: 0
    functionLinenumber: 11769
    functionLinenumberEnd: 11769
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase(MatcherGenericBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11770
      start: 11770
    functionDepth: 0
    functionLinenumber: 11770
    functionLinenumberEnd: 11770
    functionName: Catch::Matchers::MatcherGenericBase::MatcherGenericBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase(MatcherGenericBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11772
      start: 11772
    functionDepth: 0
    functionLinenumber: 11772
    functionLinenumberEnd: 11772
    functionName: '& operator=(MatcherGenericBase const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherGenericBase
    signature: MatcherGenericBase & operator=(MatcherGenericBase const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11773
      start: 11773
    functionDepth: 0
    functionLinenumber: 11773
    functionLinenumberEnd: 11773
    functionName: '& operator=(MatcherGenericBase&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherGenericBase
    signature: MatcherGenericBase & operator=(MatcherGenericBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::array<void const*, N>
    - std::array<void const*, M>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11784
      start: 11779
    functionDepth: 0
    functionLinenumber: 11779
    functionLinenumberEnd: 11784
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N + M>
    signature: std::array<void const*, N + M> array_cat(std::array<void const*, N>
      && lhs, std::array<void const*, M> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::array<void const*, N>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11792
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11792
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(std::array<void const*, N> &&
      lhs, void const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - void*
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11799
      start: 11795
    functionDepth: 0
    functionLinenumber: 11795
    functionLinenumberEnd: 11799
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(void const* lhs, std::array<void
      const*, N> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11818
    functionDepth: 0
    functionLinenumber: 11818
    functionLinenumberEnd: 11820
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    - Dst: Catch::Matchers::Detail::match_all_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11823
    functionDepth: 1
    functionLinenumber: 11823
    functionLinenumberEnd: 11825
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Matchers::Detail::match_all_of
    - static_cast<T const*>
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11831
      start: 11829
    functionDepth: 0
    functionLinenumber: 11829
    functionLinenumberEnd: 11831
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    - Dst: Catch::Matchers::Detail::match_any_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11836
      start: 11834
    functionDepth: 1
    functionLinenumber: 11834
    functionLinenumberEnd: 11836
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - static_cast<T const*>
    - Catch::Matchers::Detail::match_any_of
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MatcherTs const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11843,1
    - Dst: Catch::Matchers::Detail::describe_multi_matcher
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - combine
    - ' matchers'
    argTypes:
    - StringRef
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11841
    functionDepth: 1
    functionLinenumber: 11841
    functionLinenumberEnd: 11847
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Matchers::Detail::describe_multi_matcher
    - std::array::size
    - std::array::data
    - static_cast<MatcherTs const*>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::array<void
      const*, sizeof...(MatcherTs)> const& matchers, std::index_sequence<Idx...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11853
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11854
    functionDepth: 0
    functionLinenumber: 11854
    functionLinenumberEnd: 11854
    functionName: '& operator=(MatchAllOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11855
      start: 11855
    functionDepth: 0
    functionLinenumber: 11855
    functionLinenumberEnd: 11855
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11856
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11856
    functionName: '& operator=(MatchAllOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11858
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11859
    functionDepth: 0
    functionLinenumber: 11859
    functionLinenumberEnd: 11859
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_all_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11864
      start: 11862
    functionDepth: 0
    functionLinenumber: 11862
    functionLinenumberEnd: 11864
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_all_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11868
      start: 11866
    functionDepth: 0
    functionLinenumber: 11866
    functionLinenumberEnd: 11868
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatchAllOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11883
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11883
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAllOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11887
    functionDepth: 1
    functionLinenumber: 11887
    functionLinenumberEnd: 11892
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAllOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: "operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>> operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11908
    functionDepth: 0
    functionLinenumber: 11908
    functionLinenumberEnd: 11908
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11909
      start: 11909
    functionDepth: 0
    functionLinenumber: 11909
    functionLinenumberEnd: 11909
    functionName: '& operator=(MatchAnyOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11910
      start: 11910
    functionDepth: 0
    functionLinenumber: 11910
    functionLinenumberEnd: 11910
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11911
    functionDepth: 0
    functionLinenumber: 11911
    functionLinenumberEnd: 11911
    functionName: '& operator=(MatchAnyOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11913
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11913
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11914
    functionDepth: 0
    functionLinenumber: 11914
    functionLinenumberEnd: 11914
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_any_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11919
      start: 11917
    functionDepth: 0
    functionLinenumber: 11917
    functionLinenumberEnd: 11919
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_any_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11923
      start: 11921
    functionDepth: 0
    functionLinenumber: 11921
    functionLinenumberEnd: 11923
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatchAnyOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11937
      start: 11933
    functionDepth: 1
    functionLinenumber: 11933
    functionLinenumberEnd: 11937
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11946
      start: 11941
    functionDepth: 1
    functionLinenumber: 11941
    functionLinenumberEnd: 11946
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAnyOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11955
      start: 11950
    functionDepth: 1
    functionLinenumber: 11950
    functionLinenumberEnd: 11955
    functionName: "operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>> operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11964
      start: 11964
    functionDepth: 0
    functionLinenumber: 11964
    functionLinenumberEnd: 11964
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11965
      start: 11965
    functionDepth: 0
    functionLinenumber: 11965
    functionLinenumberEnd: 11965
    functionName: '& operator=(MatchNotOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11966
      start: 11966
    functionDepth: 0
    functionLinenumber: 11966
    functionLinenumberEnd: 11966
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11967
      start: 11967
    functionDepth: 0
    functionLinenumber: 11967
    functionLinenumberEnd: 11967
    functionName: '& operator=(MatchNotOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11969
      start: 11969
    functionDepth: 0
    functionLinenumber: 11969
    functionLinenumberEnd: 11969
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOfGeneric::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11974
      start: 11972
    functionDepth: 1
    functionLinenumber: 11972
    functionLinenumberEnd: 11974
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOfGeneric::match
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11978
      start: 11976
    functionDepth: 0
    functionLinenumber: 11976
    functionLinenumberEnd: 11978
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatchNotOfGeneric<MatcherT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11983
    functionName: '& operator ! (MatchNotOfGeneric<MatcherT> const& matcher)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherT
    signature: MatcherT & operator ! (MatchNotOfGeneric<MatcherT> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11781,1
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::array<void const*, N>
    - std::array<void const*, M>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11784
      start: 11779
    functionDepth: 0
    functionLinenumber: 11779
    functionLinenumberEnd: 11784
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N + M>
    signature: std::array<void const*, N + M> array_cat(std::array<void const*, N>
      && lhs, std::array<void const*, M> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::array<void const*, N>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11792
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11792
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(std::array<void const*, N> &&
      lhs, void const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_n
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    - Dst: std::array::begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - void*
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11799
      start: 11795
    functionDepth: 0
    functionLinenumber: 11795
    functionLinenumberEnd: 11799
    functionName: Catch::Matchers::Detail::array_cat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 6
    functionsReached:
    - std::copy_n
    - std::array::begin
    - begin
    linkageType: ''
    returnType: std::array<void const*, N+1>
    signature: std::array<void const*, N+1> array_cat(void const* lhs, std::array<void
      const*, N> && rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11818
    functionDepth: 0
    functionLinenumber: 11818
    functionLinenumberEnd: 11820
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    - Dst: Catch::Matchers::Detail::match_all_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11823
    functionDepth: 1
    functionLinenumber: 11823
    functionLinenumberEnd: 11825
    functionName: Catch::Matchers::Detail::match_all_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Matchers::Detail::match_all_of
    - static_cast<T const*>
    linkageType: ''
    returnType: bool
    signature: bool match_all_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11831
      start: 11829
    functionDepth: 0
    functionLinenumber: 11829
    functionLinenumberEnd: 11831
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&&, std::array<void const*, N> const&, std::index_sequence<>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    - Dst: Catch::Matchers::Detail::match_any_of
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' arg'
    - ' matchers'
    argTypes:
    - Arg
    - std::array<void const*, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11836
      start: 11834
    functionDepth: 1
    functionLinenumber: 11834
    functionLinenumberEnd: 11836
    functionName: Catch::Matchers::Detail::match_any_of
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - static_cast<T const*>
    - Catch::Matchers::Detail::match_any_of
    linkageType: ''
    returnType: bool
    signature: bool match_any_of(Arg&& arg, std::array<void const*, N> const& matchers,
      std::index_sequence<Idx, Indices...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MatcherTs const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11843,1
    - Dst: Catch::Matchers::Detail::describe_multi_matcher
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - combine
    - ' matchers'
    argTypes:
    - StringRef
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11841
    functionDepth: 1
    functionLinenumber: 11841
    functionLinenumberEnd: 11847
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Matchers::Detail::describe_multi_matcher
    - std::array::size
    - std::array::data
    - static_cast<MatcherTs const*>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::array<void
      const*, sizeof...(MatcherTs)> const& matchers, std::index_sequence<Idx...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11853
    functionDepth: 0
    functionLinenumber: 11853
    functionLinenumberEnd: 11853
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11854
    functionDepth: 0
    functionLinenumber: 11854
    functionLinenumberEnd: 11854
    functionName: '& operator=(MatchAllOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11855
      start: 11855
    functionDepth: 0
    functionLinenumber: 11855
    functionLinenumberEnd: 11855
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11856
      start: 11856
    functionDepth: 0
    functionLinenumber: 11856
    functionLinenumberEnd: 11856
    functionName: '& operator=(MatchAllOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAllOfGeneric
    signature: MatchAllOfGeneric & operator=(MatchAllOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11858
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11859
    functionDepth: 0
    functionLinenumber: 11859
    functionLinenumberEnd: 11859
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::MatchAllOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAllOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_all_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11864
      start: 11862
    functionDepth: 0
    functionLinenumber: 11862
    functionLinenumberEnd: 11864
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_all_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11868
      start: 11866
    functionDepth: 0
    functionLinenumber: 11866
    functionLinenumberEnd: 11868
    functionName: Catch::Matchers::Detail::MatchAllOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatchAllOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11883
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11883
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAllOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAllOfGeneric<MatcherTs..., MatchersRHS...> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAllOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAllOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11887
    functionDepth: 1
    functionLinenumber: 11887
    functionLinenumberEnd: 11892
    functionName: "operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAllOfGeneric<MatcherTs...,
      MatcherRHS>> operator && (\n                    MatchAllOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAllOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11901
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11901
    functionName: "operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAllOfGeneric<MatcherLHS,
      MatcherTs...>> operator && (\n                    MatcherLHS const& lhs,\n                    MatchAllOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11908
    functionDepth: 0
    functionLinenumber: 11908
    functionLinenumberEnd: 11908
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11909
      start: 11909
    functionDepth: 0
    functionLinenumber: 11909
    functionLinenumberEnd: 11909
    functionName: '& operator=(MatchAnyOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11910
      start: 11910
    functionDepth: 0
    functionLinenumber: 11910
    functionLinenumberEnd: 11910
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11911
    functionDepth: 0
    functionLinenumber: 11911
    functionLinenumberEnd: 11911
    functionName: '& operator=(MatchAnyOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchAnyOfGeneric
    signature: MatchAnyOfGeneric & operator=(MatchAnyOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11913
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11913
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::addressof
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(MatcherTs const&... matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matchers
    argTypes:
    - std::array<void const*, sizeof...(MatcherTs)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11914
    functionDepth: 0
    functionLinenumber: 11914
    functionLinenumberEnd: 11914
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::MatchAnyOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchAnyOfGeneric(std::array<void const*, sizeof...(MatcherTs)>
      matchers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_any_of<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11919
      start: 11917
    functionDepth: 0
    functionLinenumber: 11917
    functionLinenumberEnd: 11919
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - match_any_of<MatcherTs...>
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: describe_multi_matcher<MatcherTs...>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11923
      start: 11921
    functionDepth: 0
    functionLinenumber: 11921
    functionLinenumberEnd: 11923
    functionName: Catch::Matchers::Detail::MatchAnyOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - describe_multi_matcher<MatcherTs...>
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatchAnyOfGeneric<MatchersRHS...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11937
      start: 11933
    functionDepth: 1
    functionLinenumber: 11933
    functionLinenumberEnd: 11937
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - array_cat
    linkageType: ''
    returnType: MatchAnyOfGeneric<MatcherTs..., MatchersRHS...>
    signature: "MatchAnyOfGeneric<MatcherTs..., MatchersRHS...> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatchAnyOfGeneric<MatchersRHS...>&& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatchAnyOfGeneric<MatcherTs...>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11946
      start: 11941
    functionDepth: 1
    functionLinenumber: 11941
    functionLinenumberEnd: 11946
    functionName: "operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>>"
    signature: "std::enable_if_t<is_matcher<MatcherRHS>::value,\n            MatchAnyOfGeneric<MatcherTs...,
      MatcherRHS>> operator || (\n                    MatchAnyOfGeneric<MatcherTs...>&&
      lhs,\n                    MatcherRHS const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_cat
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: std::addressof
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatchAnyOfGeneric<MatcherTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11955
      start: 11950
    functionDepth: 1
    functionLinenumber: 11950
    functionLinenumberEnd: 11955
    functionName: "operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - CATCH_MOVE
    - array_cat
    - std::addressof
    linkageType: ''
    returnType: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>>"
    signature: "std::enable_if_t<is_matcher<MatcherLHS>::value,\n            MatchAnyOfGeneric<MatcherLHS,
      MatcherTs...>> operator || (\n                MatcherLHS const& lhs,\n                MatchAnyOfGeneric<MatcherTs...>&&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11964
      start: 11964
    functionDepth: 0
    functionLinenumber: 11964
    functionLinenumberEnd: 11964
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11965
      start: 11965
    functionDepth: 0
    functionLinenumber: 11965
    functionLinenumberEnd: 11965
    functionName: '& operator=(MatchNotOfGeneric const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11966
      start: 11966
    functionDepth: 0
    functionLinenumber: 11966
    functionLinenumberEnd: 11966
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11967
      start: 11967
    functionDepth: 0
    functionLinenumber: 11967
    functionLinenumberEnd: 11967
    functionName: '& operator=(MatchNotOfGeneric&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatchNotOfGeneric
    signature: MatchNotOfGeneric & operator=(MatchNotOfGeneric&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11969
      start: 11969
    functionDepth: 0
    functionLinenumber: 11969
    functionLinenumberEnd: 11969
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::MatchNotOfGeneric
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatchNotOfGeneric(MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::Detail::MatchNotOfGeneric::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11974
      start: 11972
    functionDepth: 1
    functionLinenumber: 11972
    functionLinenumberEnd: 11974
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 8
    functionsReached:
    - Catch::Matchers::Detail::MatchNotOfGeneric::match
    linkageType: ''
    returnType: bool
    signature: bool match(Arg&& arg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:11977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11978
      start: 11976
    functionDepth: 0
    functionLinenumber: 11976
    functionLinenumberEnd: 11978
    functionName: Catch::Matchers::Detail::MatchNotOfGeneric::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatchNotOfGeneric<MatcherT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11981
    functionDepth: 0
    functionLinenumber: 11981
    functionLinenumberEnd: 11983
    functionName: '& operator ! (MatchNotOfGeneric<MatcherT> const& matcher)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MatcherT
    signature: MatcherT & operator ! (MatchNotOfGeneric<MatcherT> const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11993
      start: 11990
    functionDepth: 0
    functionLinenumber: 11990
    functionLinenumberEnd: 11993
    functionName: operator && (MatcherLHS const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>>
    signature: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>> operator && (MatcherLHS const&
      lhs, MatcherRHS const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11999
      start: 11996
    functionDepth: 0
    functionLinenumber: 11996
    functionLinenumberEnd: 11999
    functionName: operator || (MatcherLHS const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>>
    signature: std::enable_if_t<Detail::are_generic_matchers<MatcherLHS, MatcherRHS>::value,
      Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>> operator || (MatcherLHS const&
      lhs, MatcherRHS const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - MatcherT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12006
      start: 12003
    functionDepth: 0
    functionLinenumber: 12003
    functionLinenumberEnd: 12006
    functionName: operator ! (MatcherT const& matcher)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherT>::value, Detail::MatchNotOfGeneric<MatcherT>>
      operator ! (MatcherT const& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherBase<ArgRHS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12014
      start: 12011
    functionDepth: 0
    functionLinenumber: 12011
    functionLinenumberEnd: 12014
    functionName: operator && (MatcherLHS const& lhs, MatcherBase<ArgRHS> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>> operator && (MatcherLHS const& lhs, MatcherBase<ArgRHS>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgLHS>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12020
      start: 12017
    functionDepth: 0
    functionLinenumber: 12017
    functionLinenumberEnd: 12020
    functionName: operator && (MatcherBase<ArgLHS> const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>> operator && (MatcherBase<ArgLHS> const& lhs, MatcherRHS const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherLHS
    - MatcherBase<ArgRHS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12026
      start: 12023
    functionDepth: 0
    functionLinenumber: 12023
    functionLinenumberEnd: 12026
    functionName: operator || (MatcherLHS const& lhs, MatcherBase<ArgRHS> const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS,
      MatcherBase<ArgRHS>>> operator || (MatcherLHS const& lhs, MatcherBase<ArgRHS>
      const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MatcherBase<ArgLHS>
    - MatcherRHS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12032
      start: 12029
    functionDepth: 0
    functionLinenumber: 12029
    functionLinenumberEnd: 12032
    functionName: operator || (MatcherBase<ArgLHS> const& lhs, MatcherRHS const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>>
    signature: std::enable_if_t<Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>,
      MatcherRHS>> operator || (MatcherBase<ArgLHS> const& lhs, MatcherRHS const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12052
      start: 12045
    functionDepth: 0
    functionLinenumber: 12045
    functionLinenumberEnd: 12052
    functionName: Catch::Matchers::IsEmptyMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - target_size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12062
      start: 12060
    functionDepth: 0
    functionLinenumber: 12060
    functionLinenumberEnd: 12062
    functionName: Catch::Matchers::HasSizeMatcher::HasSizeMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HasSizeMatcher(std::size_t target_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12072
      start: 12065
    functionDepth: 1
    functionLinenumber: 12065
    functionLinenumberEnd: 12072
    functionName: Catch::Matchers::HasSizeMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - m
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12083
      start: 12081
    functionDepth: 1
    functionLinenumber: 12081
    functionLinenumberEnd: 12083
    functionName: Catch::Matchers::SizeMatchesMatcher::SizeMatchesMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SizeMatchesMatcher(Matcher m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::SizeMatchesMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12092,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12093
      start: 12086
    functionDepth: 1
    functionLinenumber: 12086
    functionLinenumberEnd: 12093
    functionName: Catch::Matchers::SizeMatchesMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::SizeMatchesMatcher::match
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::SizeMatchesMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12097
      start: 12095
    functionDepth: 1
    functionLinenumber: 12095
    functionLinenumberEnd: 12097
    functionName: Catch::Matchers::SizeMatchesMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::SizeMatchesMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12109
      start: 12106
    functionDepth: 1
    functionLinenumber: 12106
    functionLinenumberEnd: 12109
    functionName: Catch::Matchers::SizeIs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        SizeMatchesMatcher<Matcher>>"
    signature: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        SizeMatchesMatcher<Matcher>>
      SizeIs(Matcher&& m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12052
      start: 12045
    functionDepth: 0
    functionLinenumber: 12045
    functionLinenumberEnd: 12052
    functionName: Catch::Matchers::IsEmptyMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - target_size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12062
      start: 12060
    functionDepth: 0
    functionLinenumber: 12060
    functionLinenumberEnd: 12062
    functionName: Catch::Matchers::HasSizeMatcher::HasSizeMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HasSizeMatcher(std::size_t target_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12072
      start: 12065
    functionDepth: 1
    functionLinenumber: 12065
    functionLinenumberEnd: 12072
    functionName: Catch::Matchers::HasSizeMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - m
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12083
      start: 12081
    functionDepth: 1
    functionLinenumber: 12081
    functionLinenumberEnd: 12083
    functionName: Catch::Matchers::SizeMatchesMatcher::SizeMatchesMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SizeMatchesMatcher(Matcher m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::SizeMatchesMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12092,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12093
      start: 12086
    functionDepth: 1
    functionLinenumber: 12086
    functionLinenumberEnd: 12093
    functionName: Catch::Matchers::SizeMatchesMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::SizeMatchesMatcher::match
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::SizeMatchesMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12097
      start: 12095
    functionDepth: 1
    functionLinenumber: 12095
    functionLinenumberEnd: 12097
    functionName: Catch::Matchers::SizeMatchesMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::SizeMatchesMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12109
      start: 12106
    functionDepth: 1
    functionLinenumber: 12106
    functionLinenumberEnd: 12109
    functionName: Catch::Matchers::SizeIs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        SizeMatchesMatcher<Matcher>>"
    signature: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        SizeMatchesMatcher<Matcher>>
      SizeIs(Matcher&& m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12052
      start: 12045
    functionDepth: 0
    functionLinenumber: 12045
    functionLinenumberEnd: 12052
    functionName: Catch::Matchers::IsEmptyMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - target_size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12062
      start: 12060
    functionDepth: 0
    functionLinenumber: 12060
    functionLinenumberEnd: 12062
    functionName: Catch::Matchers::HasSizeMatcher::HasSizeMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HasSizeMatcher(std::size_t target_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12072
      start: 12065
    functionDepth: 1
    functionLinenumber: 12065
    functionLinenumberEnd: 12072
    functionName: Catch::Matchers::HasSizeMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - m
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12083
      start: 12081
    functionDepth: 1
    functionLinenumber: 12081
    functionLinenumberEnd: 12083
    functionName: Catch::Matchers::SizeMatchesMatcher::SizeMatchesMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SizeMatchesMatcher(Matcher m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::SizeMatchesMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12092,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12093
      start: 12086
    functionDepth: 1
    functionLinenumber: 12086
    functionLinenumberEnd: 12093
    functionName: Catch::Matchers::SizeMatchesMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::SizeMatchesMatcher::match
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::SizeMatchesMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12097
      start: 12095
    functionDepth: 1
    functionLinenumber: 12095
    functionLinenumberEnd: 12097
    functionName: Catch::Matchers::SizeMatchesMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::SizeMatchesMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12109
      start: 12106
    functionDepth: 1
    functionLinenumber: 12106
    functionLinenumberEnd: 12109
    functionName: Catch::Matchers::SizeIs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        SizeMatchesMatcher<Matcher>>"
    signature: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        SizeMatchesMatcher<Matcher>>
      SizeIs(Matcher&& m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12052
      start: 12045
    functionDepth: 0
    functionLinenumber: 12045
    functionLinenumberEnd: 12052
    functionName: Catch::Matchers::IsEmptyMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - target_size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12062
      start: 12060
    functionDepth: 0
    functionLinenumber: 12060
    functionLinenumberEnd: 12062
    functionName: Catch::Matchers::HasSizeMatcher::HasSizeMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HasSizeMatcher(std::size_t target_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12072
      start: 12065
    functionDepth: 1
    functionLinenumber: 12065
    functionLinenumberEnd: 12072
    functionName: Catch::Matchers::HasSizeMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - m
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12083
      start: 12081
    functionDepth: 1
    functionLinenumber: 12081
    functionLinenumberEnd: 12083
    functionName: Catch::Matchers::SizeMatchesMatcher::SizeMatchesMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SizeMatchesMatcher(Matcher m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::SizeMatchesMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12092,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12093
      start: 12086
    functionDepth: 1
    functionLinenumber: 12086
    functionLinenumberEnd: 12093
    functionName: Catch::Matchers::SizeMatchesMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::SizeMatchesMatcher::match
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::SizeMatchesMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12097
      start: 12095
    functionDepth: 1
    functionLinenumber: 12095
    functionLinenumberEnd: 12097
    functionName: Catch::Matchers::SizeMatchesMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::SizeMatchesMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12109
      start: 12106
    functionDepth: 1
    functionLinenumber: 12106
    functionLinenumberEnd: 12109
    functionName: Catch::Matchers::SizeIs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        SizeMatchesMatcher<Matcher>>"
    signature: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        SizeMatchesMatcher<Matcher>>
      SizeIs(Matcher&& m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12134,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' target'
    - ' predicate'
    argTypes:
    - T2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12136
      start: 12133
    functionDepth: 1
    functionLinenumber: 12133
    functionLinenumberEnd: 12136
    functionName: Catch::Matchers::ContainsElementMatcher::ContainsElementMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void ContainsElementMatcher(T2&& target, Equality2&& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12140
      start: 12138
    functionDepth: 1
    functionLinenumber: 12138
    functionLinenumberEnd: 12140
    functionName: Catch::Matchers::ContainsElementMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_eq
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12148
      start: 12143
    functionDepth: 0
    functionLinenumber: 12143
    functionLinenumberEnd: 12148
    functionName: Catch::Matchers::ContainsElementMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_eq
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12161
      start: 12159
    functionDepth: 1
    functionLinenumber: 12159
    functionLinenumberEnd: 12161
    functionName: Catch::Matchers::ContainsMatcherMatcher::ContainsMatcherMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ContainsMatcherMatcher(Matcher matcher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ContainsMatcherMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12171
      start: 12164
    functionDepth: 1
    functionLinenumber: 12164
    functionLinenumberEnd: 12171
    functionName: Catch::Matchers::ContainsMatcherMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::ContainsMatcherMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ContainsMatcherMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12175
      start: 12173
    functionDepth: 1
    functionLinenumber: 12173
    functionLinenumberEnd: 12175
    functionName: Catch::Matchers::ContainsMatcherMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::ContainsMatcherMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12187
      start: 12184
    functionDepth: 1
    functionLinenumber: 12184
    functionLinenumberEnd: 12187
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<!Detail::is_matcher<T>::value,\n        ContainsElementMatcher<T,
      std::equal_to<>>>"
    signature: "std::enable_if_t<!Detail::is_matcher<T>::value,\n        ContainsElementMatcher<T,
      std::equal_to<>>> Contains(T&& elem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12194
      start: 12191
    functionDepth: 1
    functionLinenumber: 12191
    functionLinenumberEnd: 12194
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        ContainsMatcherMatcher<Matcher>>"
    signature: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        ContainsMatcherMatcher<Matcher>>
      Contains(Matcher&& matcher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12203,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' elem'
    - ' eq'
    argTypes:
    - T
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12204
      start: 12202
    functionDepth: 1
    functionLinenumber: 12202
    functionLinenumberEnd: 12204
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: ContainsElementMatcher<T, Equality>
    signature: ContainsElementMatcher<T, Equality> Contains(T&& elem, Equality&& eq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12134,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' target'
    - ' predicate'
    argTypes:
    - T2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12136
      start: 12133
    functionDepth: 1
    functionLinenumber: 12133
    functionLinenumberEnd: 12136
    functionName: Catch::Matchers::ContainsElementMatcher::ContainsElementMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void ContainsElementMatcher(T2&& target, Equality2&& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12140
      start: 12138
    functionDepth: 1
    functionLinenumber: 12138
    functionLinenumberEnd: 12140
    functionName: Catch::Matchers::ContainsElementMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_eq
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12148
      start: 12143
    functionDepth: 0
    functionLinenumber: 12143
    functionLinenumberEnd: 12148
    functionName: Catch::Matchers::ContainsElementMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_eq
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12161
      start: 12159
    functionDepth: 1
    functionLinenumber: 12159
    functionLinenumberEnd: 12161
    functionName: Catch::Matchers::ContainsMatcherMatcher::ContainsMatcherMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ContainsMatcherMatcher(Matcher matcher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ContainsMatcherMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12171
      start: 12164
    functionDepth: 1
    functionLinenumber: 12164
    functionLinenumberEnd: 12171
    functionName: Catch::Matchers::ContainsMatcherMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::ContainsMatcherMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ContainsMatcherMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12175
      start: 12173
    functionDepth: 1
    functionLinenumber: 12173
    functionLinenumberEnd: 12175
    functionName: Catch::Matchers::ContainsMatcherMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::ContainsMatcherMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12187
      start: 12184
    functionDepth: 1
    functionLinenumber: 12184
    functionLinenumberEnd: 12187
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<!Detail::is_matcher<T>::value,\n        ContainsElementMatcher<T,
      std::equal_to<>>>"
    signature: "std::enable_if_t<!Detail::is_matcher<T>::value,\n        ContainsElementMatcher<T,
      std::equal_to<>>> Contains(T&& elem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12194
      start: 12191
    functionDepth: 1
    functionLinenumber: 12191
    functionLinenumberEnd: 12194
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        ContainsMatcherMatcher<Matcher>>"
    signature: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        ContainsMatcherMatcher<Matcher>>
      Contains(Matcher&& matcher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12203,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' elem'
    - ' eq'
    argTypes:
    - T
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12204
      start: 12202
    functionDepth: 1
    functionLinenumber: 12202
    functionLinenumberEnd: 12204
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: ContainsElementMatcher<T, Equality>
    signature: ContainsElementMatcher<T, Equality> Contains(T&& elem, Equality&& eq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12134,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' target'
    - ' predicate'
    argTypes:
    - T2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12136
      start: 12133
    functionDepth: 1
    functionLinenumber: 12133
    functionLinenumberEnd: 12136
    functionName: Catch::Matchers::ContainsElementMatcher::ContainsElementMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void ContainsElementMatcher(T2&& target, Equality2&& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12140
      start: 12138
    functionDepth: 1
    functionLinenumber: 12138
    functionLinenumberEnd: 12140
    functionName: Catch::Matchers::ContainsElementMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_eq
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12148
      start: 12143
    functionDepth: 0
    functionLinenumber: 12143
    functionLinenumberEnd: 12148
    functionName: Catch::Matchers::ContainsElementMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_eq
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12161
      start: 12159
    functionDepth: 1
    functionLinenumber: 12159
    functionLinenumberEnd: 12161
    functionName: Catch::Matchers::ContainsMatcherMatcher::ContainsMatcherMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ContainsMatcherMatcher(Matcher matcher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ContainsMatcherMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12171
      start: 12164
    functionDepth: 1
    functionLinenumber: 12164
    functionLinenumberEnd: 12171
    functionName: Catch::Matchers::ContainsMatcherMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::ContainsMatcherMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ContainsMatcherMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12175
      start: 12173
    functionDepth: 1
    functionLinenumber: 12173
    functionLinenumberEnd: 12175
    functionName: Catch::Matchers::ContainsMatcherMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::ContainsMatcherMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12187
      start: 12184
    functionDepth: 1
    functionLinenumber: 12184
    functionLinenumberEnd: 12187
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<!Detail::is_matcher<T>::value,\n        ContainsElementMatcher<T,
      std::equal_to<>>>"
    signature: "std::enable_if_t<!Detail::is_matcher<T>::value,\n        ContainsElementMatcher<T,
      std::equal_to<>>> Contains(T&& elem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12194
      start: 12191
    functionDepth: 1
    functionLinenumber: 12191
    functionLinenumberEnd: 12194
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        ContainsMatcherMatcher<Matcher>>"
    signature: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        ContainsMatcherMatcher<Matcher>>
      Contains(Matcher&& matcher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12203,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' elem'
    - ' eq'
    argTypes:
    - T
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12204
      start: 12202
    functionDepth: 1
    functionLinenumber: 12202
    functionLinenumberEnd: 12204
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: ContainsElementMatcher<T, Equality>
    signature: ContainsElementMatcher<T, Equality> Contains(T&& elem, Equality&& eq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12134,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' target'
    - ' predicate'
    argTypes:
    - T2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12136
      start: 12133
    functionDepth: 1
    functionLinenumber: 12133
    functionLinenumberEnd: 12136
    functionName: Catch::Matchers::ContainsElementMatcher::ContainsElementMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void ContainsElementMatcher(T2&& target, Equality2&& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12140
      start: 12138
    functionDepth: 1
    functionLinenumber: 12138
    functionLinenumberEnd: 12140
    functionName: Catch::Matchers::ContainsElementMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_eq
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12148
      start: 12143
    functionDepth: 0
    functionLinenumber: 12143
    functionLinenumberEnd: 12148
    functionName: Catch::Matchers::ContainsElementMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_eq
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12161
      start: 12159
    functionDepth: 1
    functionLinenumber: 12159
    functionLinenumberEnd: 12161
    functionName: Catch::Matchers::ContainsMatcherMatcher::ContainsMatcherMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ContainsMatcherMatcher(Matcher matcher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ContainsMatcherMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12171
      start: 12164
    functionDepth: 1
    functionLinenumber: 12164
    functionLinenumberEnd: 12171
    functionName: Catch::Matchers::ContainsMatcherMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::ContainsMatcherMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ContainsMatcherMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12175
      start: 12173
    functionDepth: 1
    functionLinenumber: 12173
    functionLinenumberEnd: 12175
    functionName: Catch::Matchers::ContainsMatcherMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::ContainsMatcherMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12187
      start: 12184
    functionDepth: 1
    functionLinenumber: 12184
    functionLinenumberEnd: 12187
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<!Detail::is_matcher<T>::value,\n        ContainsElementMatcher<T,
      std::equal_to<>>>"
    signature: "std::enable_if_t<!Detail::is_matcher<T>::value,\n        ContainsElementMatcher<T,
      std::equal_to<>>> Contains(T&& elem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12194
      start: 12191
    functionDepth: 1
    functionLinenumber: 12191
    functionLinenumberEnd: 12194
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        ContainsMatcherMatcher<Matcher>>"
    signature: "std::enable_if_t<Detail::is_matcher<Matcher>::value,\n        ContainsMatcherMatcher<Matcher>>
      Contains(Matcher&& matcher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12203,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' elem'
    - ' eq'
    argTypes:
    - T
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12204
      start: 12202
    functionDepth: 1
    functionLinenumber: 12202
    functionLinenumberEnd: 12204
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: ContainsElementMatcher<T, Equality>
    signature: ContainsElementMatcher<T, Equality> Contains(T&& elem, Equality&& eq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12225
      start: 12223
    functionDepth: 0
    functionLinenumber: 12223
    functionLinenumberEnd: 12225
    functionName: Catch::Matchers::ExceptionMessageMatcher::ExceptionMessageMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExceptionMessageMatcher(std::string const& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - StringMatcherType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12242
      start: 12241
    functionDepth: 1
    functionLinenumber: 12241
    functionLinenumberEnd: 12242
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::ExceptionMessageMatchesMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ExceptionMessageMatchesMatcher( StringMatcherType matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ExceptionMessageMatchesMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12245,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12246
      start: 12244
    functionDepth: 1
    functionLinenumber: 12244
    functionLinenumberEnd: 12246
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - what
    - Catch::Matchers::ExceptionMessageMatchesMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match( std::exception const& ex ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ExceptionMessageMatchesMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12250
      start: 12248
    functionDepth: 1
    functionLinenumber: 12248
    functionLinenumberEnd: 12250
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::ExceptionMessageMatchesMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - StringMatcherType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12259
      start: 12256
    functionDepth: 1
    functionLinenumber: 12256
    functionLinenumberEnd: 12259
    functionName: Catch::Matchers::MessageMatches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: ExceptionMessageMatchesMatcher<StringMatcherType>
    signature: ExceptionMessageMatchesMatcher<StringMatcherType> MessageMatches( StringMatcherType&&
      matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12225
      start: 12223
    functionDepth: 0
    functionLinenumber: 12223
    functionLinenumberEnd: 12225
    functionName: Catch::Matchers::ExceptionMessageMatcher::ExceptionMessageMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExceptionMessageMatcher(std::string const& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - StringMatcherType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12242
      start: 12241
    functionDepth: 1
    functionLinenumber: 12241
    functionLinenumberEnd: 12242
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::ExceptionMessageMatchesMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ExceptionMessageMatchesMatcher( StringMatcherType matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ExceptionMessageMatchesMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12245,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12246
      start: 12244
    functionDepth: 1
    functionLinenumber: 12244
    functionLinenumberEnd: 12246
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - what
    - Catch::Matchers::ExceptionMessageMatchesMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match( std::exception const& ex ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ExceptionMessageMatchesMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12250
      start: 12248
    functionDepth: 1
    functionLinenumber: 12248
    functionLinenumberEnd: 12250
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::ExceptionMessageMatchesMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - StringMatcherType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12259
      start: 12256
    functionDepth: 1
    functionLinenumber: 12256
    functionLinenumberEnd: 12259
    functionName: Catch::Matchers::MessageMatches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: ExceptionMessageMatchesMatcher<StringMatcherType>
    signature: ExceptionMessageMatchesMatcher<StringMatcherType> MessageMatches( StringMatcherType&&
      matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12225
      start: 12223
    functionDepth: 0
    functionLinenumber: 12223
    functionLinenumberEnd: 12225
    functionName: Catch::Matchers::ExceptionMessageMatcher::ExceptionMessageMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExceptionMessageMatcher(std::string const& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - StringMatcherType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12242
      start: 12241
    functionDepth: 1
    functionLinenumber: 12241
    functionLinenumberEnd: 12242
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::ExceptionMessageMatchesMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ExceptionMessageMatchesMatcher( StringMatcherType matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ExceptionMessageMatchesMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12245,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12246
      start: 12244
    functionDepth: 1
    functionLinenumber: 12244
    functionLinenumberEnd: 12246
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - what
    - Catch::Matchers::ExceptionMessageMatchesMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match( std::exception const& ex ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ExceptionMessageMatchesMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12250
      start: 12248
    functionDepth: 1
    functionLinenumber: 12248
    functionLinenumberEnd: 12250
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::ExceptionMessageMatchesMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - StringMatcherType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12259
      start: 12256
    functionDepth: 1
    functionLinenumber: 12256
    functionLinenumberEnd: 12259
    functionName: Catch::Matchers::MessageMatches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: ExceptionMessageMatchesMatcher<StringMatcherType>
    signature: ExceptionMessageMatchesMatcher<StringMatcherType> MessageMatches( StringMatcherType&&
      matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12225
      start: 12223
    functionDepth: 0
    functionLinenumber: 12223
    functionLinenumberEnd: 12225
    functionName: Catch::Matchers::ExceptionMessageMatcher::ExceptionMessageMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExceptionMessageMatcher(std::string const& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - StringMatcherType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12242
      start: 12241
    functionDepth: 1
    functionLinenumber: 12241
    functionLinenumberEnd: 12242
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::ExceptionMessageMatchesMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ExceptionMessageMatchesMatcher( StringMatcherType matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ExceptionMessageMatchesMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12245,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12246
      start: 12244
    functionDepth: 1
    functionLinenumber: 12244
    functionLinenumberEnd: 12246
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - what
    - Catch::Matchers::ExceptionMessageMatchesMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match( std::exception const& ex ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ExceptionMessageMatchesMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12250
      start: 12248
    functionDepth: 1
    functionLinenumber: 12248
    functionLinenumberEnd: 12250
    functionName: Catch::Matchers::ExceptionMessageMatchesMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::ExceptionMessageMatchesMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - StringMatcherType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12259
      start: 12256
    functionDepth: 1
    functionLinenumber: 12256
    functionLinenumberEnd: 12259
    functionName: Catch::Matchers::MessageMatches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: ExceptionMessageMatchesMatcher<StringMatcherType>
    signature: ExceptionMessageMatchesMatcher<StringMatcherType> MessageMatches( StringMatcherType&&
      matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12342
      start: 12342
    functionDepth: 0
    functionLinenumber: 12342
    functionLinenumberEnd: 12342
    functionName: Catch::Matchers::IsNaNMatcher::IsNaNMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsNaNMatcher()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12342
      start: 12342
    functionDepth: 0
    functionLinenumber: 12342
    functionLinenumberEnd: 12342
    functionName: Catch::Matchers::IsNaNMatcher::IsNaNMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsNaNMatcher()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12342
      start: 12342
    functionDepth: 0
    functionLinenumber: 12342
    functionLinenumberEnd: 12342
    functionName: Catch::Matchers::IsNaNMatcher::IsNaNMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsNaNMatcher()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12342
      start: 12342
    functionDepth: 0
    functionLinenumber: 12342
    functionLinenumberEnd: 12342
    functionName: Catch::Matchers::IsNaNMatcher::IsNaNMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsNaNMatcher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12375,1
    - Dst: Detail::finalizeDescription
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' elem'
    - ' descr'
    argTypes:
    - Predicate
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12377
      start: 12374
    functionDepth: 1
    functionLinenumber: 12374
    functionLinenumberEnd: 12377
    functionName: Catch::Matchers::PredicateMatcher::PredicateMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::finalizeDescription
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void PredicateMatcher(Predicate&& elem, std::string const& descr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12381
      start: 12379
    functionDepth: 0
    functionLinenumber: 12379
    functionLinenumberEnd: 12381
    functionName: Catch::Matchers::PredicateMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_predicate
    linkageType: ''
    returnType: bool
    signature: bool match( T const& item ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12385
      start: 12383
    functionDepth: 0
    functionLinenumber: 12383
    functionLinenumberEnd: 12385
    functionName: Catch::Matchers::PredicateMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PredicateMatcher<T, Pred>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12397,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - Pred
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12398
      start: 12394
    functionDepth: 1
    functionLinenumber: 12394
    functionLinenumberEnd: 12398
    functionName: Catch::Matchers::Predicate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - PredicateMatcher<T, Pred>
    - CATCH_FORWARD
    linkageType: ''
    returnType: PredicateMatcher<T, Pred>
    signature: PredicateMatcher<T, Pred> Predicate(Pred&& predicate, std::string const&
      description = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12375,1
    - Dst: Detail::finalizeDescription
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' elem'
    - ' descr'
    argTypes:
    - Predicate
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12377
      start: 12374
    functionDepth: 1
    functionLinenumber: 12374
    functionLinenumberEnd: 12377
    functionName: Catch::Matchers::PredicateMatcher::PredicateMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::finalizeDescription
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void PredicateMatcher(Predicate&& elem, std::string const& descr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12381
      start: 12379
    functionDepth: 0
    functionLinenumber: 12379
    functionLinenumberEnd: 12381
    functionName: Catch::Matchers::PredicateMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_predicate
    linkageType: ''
    returnType: bool
    signature: bool match( T const& item ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12385
      start: 12383
    functionDepth: 0
    functionLinenumber: 12383
    functionLinenumberEnd: 12385
    functionName: Catch::Matchers::PredicateMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PredicateMatcher<T, Pred>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12397,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - Pred
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12398
      start: 12394
    functionDepth: 1
    functionLinenumber: 12394
    functionLinenumberEnd: 12398
    functionName: Catch::Matchers::Predicate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - PredicateMatcher<T, Pred>
    - CATCH_FORWARD
    linkageType: ''
    returnType: PredicateMatcher<T, Pred>
    signature: PredicateMatcher<T, Pred> Predicate(Pred&& predicate, std::string const&
      description = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12375,1
    - Dst: Detail::finalizeDescription
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' elem'
    - ' descr'
    argTypes:
    - Predicate
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12377
      start: 12374
    functionDepth: 1
    functionLinenumber: 12374
    functionLinenumberEnd: 12377
    functionName: Catch::Matchers::PredicateMatcher::PredicateMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::finalizeDescription
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void PredicateMatcher(Predicate&& elem, std::string const& descr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12381
      start: 12379
    functionDepth: 0
    functionLinenumber: 12379
    functionLinenumberEnd: 12381
    functionName: Catch::Matchers::PredicateMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_predicate
    linkageType: ''
    returnType: bool
    signature: bool match( T const& item ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12385
      start: 12383
    functionDepth: 0
    functionLinenumber: 12383
    functionLinenumberEnd: 12385
    functionName: Catch::Matchers::PredicateMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PredicateMatcher<T, Pred>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12397,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - Pred
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12398
      start: 12394
    functionDepth: 1
    functionLinenumber: 12394
    functionLinenumberEnd: 12398
    functionName: Catch::Matchers::Predicate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - PredicateMatcher<T, Pred>
    - CATCH_FORWARD
    linkageType: ''
    returnType: PredicateMatcher<T, Pred>
    signature: PredicateMatcher<T, Pred> Predicate(Pred&& predicate, std::string const&
      description = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12375,1
    - Dst: Detail::finalizeDescription
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' elem'
    - ' descr'
    argTypes:
    - Predicate
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12377
      start: 12374
    functionDepth: 1
    functionLinenumber: 12374
    functionLinenumberEnd: 12377
    functionName: Catch::Matchers::PredicateMatcher::PredicateMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::finalizeDescription
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: void PredicateMatcher(Predicate&& elem, std::string const& descr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12381
      start: 12379
    functionDepth: 0
    functionLinenumber: 12379
    functionLinenumberEnd: 12381
    functionName: Catch::Matchers::PredicateMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - m_predicate
    linkageType: ''
    returnType: bool
    signature: bool match( T const& item ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12385
      start: 12383
    functionDepth: 0
    functionLinenumber: 12383
    functionLinenumberEnd: 12385
    functionName: Catch::Matchers::PredicateMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PredicateMatcher<T, Pred>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12397,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - Pred
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12398
      start: 12394
    functionDepth: 1
    functionLinenumber: 12394
    functionLinenumberEnd: 12398
    functionName: Catch::Matchers::Predicate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - PredicateMatcher<T, Pred>
    - CATCH_FORWARD
    linkageType: ''
    returnType: PredicateMatcher<T, Pred>
    signature: PredicateMatcher<T, Pred> Predicate(Pred&& predicate, std::string const&
      description = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12419
      start: 12417
    functionDepth: 1
    functionLinenumber: 12417
    functionLinenumberEnd: 12419
    functionName: Catch::Matchers::AllMatchMatcher::AllMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AllMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AllMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12423
      start: 12421
    functionDepth: 1
    functionLinenumber: 12421
    functionLinenumberEnd: 12423
    functionName: Catch::Matchers::AllMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::AllMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AllMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12433
      start: 12426
    functionDepth: 1
    functionLinenumber: 12426
    functionLinenumberEnd: 12433
    functionName: Catch::Matchers::AllMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::AllMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12443
      start: 12441
    functionDepth: 1
    functionLinenumber: 12441
    functionLinenumberEnd: 12443
    functionName: Catch::Matchers::NoneMatchMatcher::NoneMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void NoneMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::NoneMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12447
      start: 12445
    functionDepth: 1
    functionLinenumber: 12445
    functionLinenumberEnd: 12447
    functionName: Catch::Matchers::NoneMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::NoneMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::NoneMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12457
      start: 12450
    functionDepth: 1
    functionLinenumber: 12450
    functionLinenumberEnd: 12457
    functionName: Catch::Matchers::NoneMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::NoneMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12467
      start: 12465
    functionDepth: 1
    functionLinenumber: 12465
    functionLinenumberEnd: 12467
    functionName: Catch::Matchers::AnyMatchMatcher::AnyMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AnyMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AnyMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12471
      start: 12469
    functionDepth: 1
    functionLinenumber: 12469
    functionLinenumberEnd: 12471
    functionName: Catch::Matchers::AnyMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::AnyMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AnyMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12481
      start: 12474
    functionDepth: 1
    functionLinenumber: 12474
    functionLinenumberEnd: 12481
    functionName: Catch::Matchers::AnyMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::AnyMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12497
      start: 12490
    functionDepth: 0
    functionLinenumber: 12490
    functionLinenumberEnd: 12497
    functionName: Catch::Matchers::AllTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12513
      start: 12506
    functionDepth: 0
    functionLinenumber: 12506
    functionLinenumberEnd: 12513
    functionName: Catch::Matchers::NoneTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12529
      start: 12522
    functionDepth: 0
    functionLinenumber: 12522
    functionLinenumberEnd: 12529
    functionName: Catch::Matchers::AnyTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12536
      start: 12534
    functionDepth: 1
    functionLinenumber: 12534
    functionLinenumberEnd: 12536
    functionName: Catch::Matchers::AllMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: AllMatchMatcher<Matcher>
    signature: AllMatchMatcher<Matcher> AllMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12542
      start: 12540
    functionDepth: 1
    functionLinenumber: 12540
    functionLinenumberEnd: 12542
    functionName: Catch::Matchers::NoneMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: NoneMatchMatcher<Matcher>
    signature: NoneMatchMatcher<Matcher> NoneMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12548
      start: 12546
    functionDepth: 1
    functionLinenumber: 12546
    functionLinenumberEnd: 12548
    functionName: Catch::Matchers::AnyMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: AnyMatchMatcher<Matcher>
    signature: AnyMatchMatcher<Matcher> AnyMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12419
      start: 12417
    functionDepth: 1
    functionLinenumber: 12417
    functionLinenumberEnd: 12419
    functionName: Catch::Matchers::AllMatchMatcher::AllMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AllMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AllMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12423
      start: 12421
    functionDepth: 1
    functionLinenumber: 12421
    functionLinenumberEnd: 12423
    functionName: Catch::Matchers::AllMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::AllMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AllMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12433
      start: 12426
    functionDepth: 1
    functionLinenumber: 12426
    functionLinenumberEnd: 12433
    functionName: Catch::Matchers::AllMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::AllMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12443
      start: 12441
    functionDepth: 1
    functionLinenumber: 12441
    functionLinenumberEnd: 12443
    functionName: Catch::Matchers::NoneMatchMatcher::NoneMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void NoneMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::NoneMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12447
      start: 12445
    functionDepth: 1
    functionLinenumber: 12445
    functionLinenumberEnd: 12447
    functionName: Catch::Matchers::NoneMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::NoneMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::NoneMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12457
      start: 12450
    functionDepth: 1
    functionLinenumber: 12450
    functionLinenumberEnd: 12457
    functionName: Catch::Matchers::NoneMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::NoneMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12467
      start: 12465
    functionDepth: 1
    functionLinenumber: 12465
    functionLinenumberEnd: 12467
    functionName: Catch::Matchers::AnyMatchMatcher::AnyMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AnyMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AnyMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12471
      start: 12469
    functionDepth: 1
    functionLinenumber: 12469
    functionLinenumberEnd: 12471
    functionName: Catch::Matchers::AnyMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::AnyMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AnyMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12481
      start: 12474
    functionDepth: 1
    functionLinenumber: 12474
    functionLinenumberEnd: 12481
    functionName: Catch::Matchers::AnyMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::AnyMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12497
      start: 12490
    functionDepth: 0
    functionLinenumber: 12490
    functionLinenumberEnd: 12497
    functionName: Catch::Matchers::AllTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12513
      start: 12506
    functionDepth: 0
    functionLinenumber: 12506
    functionLinenumberEnd: 12513
    functionName: Catch::Matchers::NoneTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12529
      start: 12522
    functionDepth: 0
    functionLinenumber: 12522
    functionLinenumberEnd: 12529
    functionName: Catch::Matchers::AnyTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12536
      start: 12534
    functionDepth: 1
    functionLinenumber: 12534
    functionLinenumberEnd: 12536
    functionName: Catch::Matchers::AllMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: AllMatchMatcher<Matcher>
    signature: AllMatchMatcher<Matcher> AllMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12542
      start: 12540
    functionDepth: 1
    functionLinenumber: 12540
    functionLinenumberEnd: 12542
    functionName: Catch::Matchers::NoneMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: NoneMatchMatcher<Matcher>
    signature: NoneMatchMatcher<Matcher> NoneMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12548
      start: 12546
    functionDepth: 1
    functionLinenumber: 12546
    functionLinenumberEnd: 12548
    functionName: Catch::Matchers::AnyMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: AnyMatchMatcher<Matcher>
    signature: AnyMatchMatcher<Matcher> AnyMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12419
      start: 12417
    functionDepth: 1
    functionLinenumber: 12417
    functionLinenumberEnd: 12419
    functionName: Catch::Matchers::AllMatchMatcher::AllMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AllMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AllMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12423
      start: 12421
    functionDepth: 1
    functionLinenumber: 12421
    functionLinenumberEnd: 12423
    functionName: Catch::Matchers::AllMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::AllMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AllMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12433
      start: 12426
    functionDepth: 1
    functionLinenumber: 12426
    functionLinenumberEnd: 12433
    functionName: Catch::Matchers::AllMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::AllMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12443
      start: 12441
    functionDepth: 1
    functionLinenumber: 12441
    functionLinenumberEnd: 12443
    functionName: Catch::Matchers::NoneMatchMatcher::NoneMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void NoneMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::NoneMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12447
      start: 12445
    functionDepth: 1
    functionLinenumber: 12445
    functionLinenumberEnd: 12447
    functionName: Catch::Matchers::NoneMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::NoneMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::NoneMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12457
      start: 12450
    functionDepth: 1
    functionLinenumber: 12450
    functionLinenumberEnd: 12457
    functionName: Catch::Matchers::NoneMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::NoneMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12467
      start: 12465
    functionDepth: 1
    functionLinenumber: 12465
    functionLinenumberEnd: 12467
    functionName: Catch::Matchers::AnyMatchMatcher::AnyMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AnyMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AnyMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12471
      start: 12469
    functionDepth: 1
    functionLinenumber: 12469
    functionLinenumberEnd: 12471
    functionName: Catch::Matchers::AnyMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::AnyMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AnyMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12481
      start: 12474
    functionDepth: 1
    functionLinenumber: 12474
    functionLinenumberEnd: 12481
    functionName: Catch::Matchers::AnyMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::AnyMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12497
      start: 12490
    functionDepth: 0
    functionLinenumber: 12490
    functionLinenumberEnd: 12497
    functionName: Catch::Matchers::AllTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12513
      start: 12506
    functionDepth: 0
    functionLinenumber: 12506
    functionLinenumberEnd: 12513
    functionName: Catch::Matchers::NoneTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12529
      start: 12522
    functionDepth: 0
    functionLinenumber: 12522
    functionLinenumberEnd: 12529
    functionName: Catch::Matchers::AnyTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12536
      start: 12534
    functionDepth: 1
    functionLinenumber: 12534
    functionLinenumberEnd: 12536
    functionName: Catch::Matchers::AllMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: AllMatchMatcher<Matcher>
    signature: AllMatchMatcher<Matcher> AllMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12542
      start: 12540
    functionDepth: 1
    functionLinenumber: 12540
    functionLinenumberEnd: 12542
    functionName: Catch::Matchers::NoneMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: NoneMatchMatcher<Matcher>
    signature: NoneMatchMatcher<Matcher> NoneMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12548
      start: 12546
    functionDepth: 1
    functionLinenumber: 12546
    functionLinenumberEnd: 12548
    functionName: Catch::Matchers::AnyMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: AnyMatchMatcher<Matcher>
    signature: AnyMatchMatcher<Matcher> AnyMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12419
      start: 12417
    functionDepth: 1
    functionLinenumber: 12417
    functionLinenumberEnd: 12419
    functionName: Catch::Matchers::AllMatchMatcher::AllMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AllMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AllMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12423
      start: 12421
    functionDepth: 1
    functionLinenumber: 12421
    functionLinenumberEnd: 12423
    functionName: Catch::Matchers::AllMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::AllMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AllMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12433
      start: 12426
    functionDepth: 1
    functionLinenumber: 12426
    functionLinenumberEnd: 12433
    functionName: Catch::Matchers::AllMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::AllMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12443
      start: 12441
    functionDepth: 1
    functionLinenumber: 12441
    functionLinenumberEnd: 12443
    functionName: Catch::Matchers::NoneMatchMatcher::NoneMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void NoneMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::NoneMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12447
      start: 12445
    functionDepth: 1
    functionLinenumber: 12445
    functionLinenumberEnd: 12447
    functionName: Catch::Matchers::NoneMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::NoneMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::NoneMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12457
      start: 12450
    functionDepth: 1
    functionLinenumber: 12450
    functionLinenumberEnd: 12457
    functionName: Catch::Matchers::NoneMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::NoneMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12467
      start: 12465
    functionDepth: 1
    functionLinenumber: 12465
    functionLinenumberEnd: 12467
    functionName: Catch::Matchers::AnyMatchMatcher::AnyMatchMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AnyMatchMatcher(Matcher matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AnyMatchMatcher::describe
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12471
      start: 12469
    functionDepth: 1
    functionLinenumber: 12469
    functionLinenumberEnd: 12471
    functionName: Catch::Matchers::AnyMatchMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::AnyMatchMatcher::describe
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::AnyMatchMatcher::match
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12481
      start: 12474
    functionDepth: 1
    functionLinenumber: 12474
    functionLinenumberEnd: 12481
    functionName: Catch::Matchers::AnyMatchMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::AnyMatchMatcher::match
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12497
      start: 12490
    functionDepth: 0
    functionLinenumber: 12490
    functionLinenumberEnd: 12497
    functionName: Catch::Matchers::AllTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12513
      start: 12506
    functionDepth: 0
    functionLinenumber: 12506
    functionLinenumberEnd: 12513
    functionName: Catch::Matchers::NoneTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12529
      start: 12522
    functionDepth: 0
    functionLinenumber: 12522
    functionLinenumberEnd: 12529
    functionName: Catch::Matchers::AnyTrueMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(RangeLike&& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12536
      start: 12534
    functionDepth: 1
    functionLinenumber: 12534
    functionLinenumberEnd: 12536
    functionName: Catch::Matchers::AllMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: AllMatchMatcher<Matcher>
    signature: AllMatchMatcher<Matcher> AllMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12542
      start: 12540
    functionDepth: 1
    functionLinenumber: 12540
    functionLinenumberEnd: 12542
    functionName: Catch::Matchers::NoneMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: NoneMatchMatcher<Matcher>
    signature: NoneMatchMatcher<Matcher> NoneMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matcher'
    argTypes:
    - Matcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12548
      start: 12546
    functionDepth: 1
    functionLinenumber: 12546
    functionLinenumberEnd: 12548
    functionName: Catch::Matchers::AnyMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: AnyMatchMatcher<Matcher>
    signature: AnyMatchMatcher<Matcher> AnyMatch(Matcher&& matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12587,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - TargetRangeLike2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12588
      start: 12585
    functionDepth: 1
    functionLinenumber: 12585
    functionLinenumberEnd: 12588
    functionName: Catch::Matchers::RangeEqualsMatcher::RangeEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: "void RangeEqualsMatcher( TargetRangeLike2&& range,\n                                Equality2&&
      predicate )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12592,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12593,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12594,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12595,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12605
      start: 12591
    functionDepth: 0
    functionLinenumber: 12591
    functionLinenumberEnd: 12605
    functionName: Catch::Matchers::RangeEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - end
    - m_predicate
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12609
      start: 12607
    functionDepth: 1
    functionLinenumber: 12607
    functionLinenumberEnd: 12609
    functionName: Catch::Matchers::RangeEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12625,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - TargetRangeLike2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12626
      start: 12623
    functionDepth: 1
    functionLinenumber: 12623
    functionLinenumberEnd: 12626
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::UnorderedRangeEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: "void UnorderedRangeEqualsMatcher( TargetRangeLike2&& range,\n                                         Equality2&&
      predicate )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::is_permutation
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12632,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12632,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12633,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12634,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12637
      start: 12629
    functionDepth: 3
    functionLinenumber: 12629
    functionLinenumberEnd: 12637
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::is_permutation
    - end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12642
      start: 12639
    functionDepth: 1
    functionLinenumber: 12639
    functionLinenumberEnd: 12642
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12656
      start: 12652
    functionDepth: 1
    functionLinenumber: 12652
    functionLinenumberEnd: 12656
    functionName: Catch::Matchers::RangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<!Detail::is_matcher<RangeLike>::value,\n                         RangeEqualsMatcher<RangeLike,
      std::equal_to<>>>"
    signature: "std::enable_if_t<!Detail::is_matcher<RangeLike>::value,\n                         RangeEqualsMatcher<RangeLike,
      std::equal_to<>>> RangeEquals( RangeLike&& range )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12667,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - RangeLike
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12668
      start: 12665
    functionDepth: 1
    functionLinenumber: 12665
    functionLinenumberEnd: 12668
    functionName: Catch::Matchers::RangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: RangeEqualsMatcher<RangeLike, Equality>
    signature: RangeEqualsMatcher<RangeLike, Equality> RangeEquals( RangeLike&& range,
      Equality&& predicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12682
      start: 12677
    functionDepth: 1
    functionLinenumber: 12677
    functionLinenumberEnd: 12682
    functionName: Catch::Matchers::UnorderedRangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<\n            !Detail::is_matcher<RangeLike>::value,\n
      \           UnorderedRangeEqualsMatcher<RangeLike, std::equal_to<>>>"
    signature: "std::enable_if_t<\n            !Detail::is_matcher<RangeLike>::value,\n
      \           UnorderedRangeEqualsMatcher<RangeLike, std::equal_to<>>> UnorderedRangeEquals(
      RangeLike&& range )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12693,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - RangeLike
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12694
      start: 12691
    functionDepth: 1
    functionLinenumber: 12691
    functionLinenumberEnd: 12694
    functionName: Catch::Matchers::UnorderedRangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: UnorderedRangeEqualsMatcher<RangeLike, Equality>
    signature: UnorderedRangeEqualsMatcher<RangeLike, Equality> UnorderedRangeEquals(
      RangeLike&& range, Equality&& predicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12587,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - TargetRangeLike2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12588
      start: 12585
    functionDepth: 1
    functionLinenumber: 12585
    functionLinenumberEnd: 12588
    functionName: Catch::Matchers::RangeEqualsMatcher::RangeEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: "void RangeEqualsMatcher( TargetRangeLike2&& range,\n                                Equality2&&
      predicate )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12592,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12593,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12594,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12595,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12605
      start: 12591
    functionDepth: 0
    functionLinenumber: 12591
    functionLinenumberEnd: 12605
    functionName: Catch::Matchers::RangeEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - end
    - m_predicate
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12609
      start: 12607
    functionDepth: 1
    functionLinenumber: 12607
    functionLinenumberEnd: 12609
    functionName: Catch::Matchers::RangeEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12625,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - TargetRangeLike2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12626
      start: 12623
    functionDepth: 1
    functionLinenumber: 12623
    functionLinenumberEnd: 12626
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::UnorderedRangeEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: "void UnorderedRangeEqualsMatcher( TargetRangeLike2&& range,\n                                         Equality2&&
      predicate )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::is_permutation
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12632,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12632,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12633,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12634,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12637
      start: 12629
    functionDepth: 3
    functionLinenumber: 12629
    functionLinenumberEnd: 12637
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::is_permutation
    - end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12642
      start: 12639
    functionDepth: 1
    functionLinenumber: 12639
    functionLinenumberEnd: 12642
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12656
      start: 12652
    functionDepth: 1
    functionLinenumber: 12652
    functionLinenumberEnd: 12656
    functionName: Catch::Matchers::RangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<!Detail::is_matcher<RangeLike>::value,\n                         RangeEqualsMatcher<RangeLike,
      std::equal_to<>>>"
    signature: "std::enable_if_t<!Detail::is_matcher<RangeLike>::value,\n                         RangeEqualsMatcher<RangeLike,
      std::equal_to<>>> RangeEquals( RangeLike&& range )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12667,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - RangeLike
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12668
      start: 12665
    functionDepth: 1
    functionLinenumber: 12665
    functionLinenumberEnd: 12668
    functionName: Catch::Matchers::RangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: RangeEqualsMatcher<RangeLike, Equality>
    signature: RangeEqualsMatcher<RangeLike, Equality> RangeEquals( RangeLike&& range,
      Equality&& predicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12682
      start: 12677
    functionDepth: 1
    functionLinenumber: 12677
    functionLinenumberEnd: 12682
    functionName: Catch::Matchers::UnorderedRangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<\n            !Detail::is_matcher<RangeLike>::value,\n
      \           UnorderedRangeEqualsMatcher<RangeLike, std::equal_to<>>>"
    signature: "std::enable_if_t<\n            !Detail::is_matcher<RangeLike>::value,\n
      \           UnorderedRangeEqualsMatcher<RangeLike, std::equal_to<>>> UnorderedRangeEquals(
      RangeLike&& range )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12693,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - RangeLike
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12694
      start: 12691
    functionDepth: 1
    functionLinenumber: 12691
    functionLinenumberEnd: 12694
    functionName: Catch::Matchers::UnorderedRangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: UnorderedRangeEqualsMatcher<RangeLike, Equality>
    signature: UnorderedRangeEqualsMatcher<RangeLike, Equality> UnorderedRangeEquals(
      RangeLike&& range, Equality&& predicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12587,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - TargetRangeLike2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12588
      start: 12585
    functionDepth: 1
    functionLinenumber: 12585
    functionLinenumberEnd: 12588
    functionName: Catch::Matchers::RangeEqualsMatcher::RangeEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: "void RangeEqualsMatcher( TargetRangeLike2&& range,\n                                Equality2&&
      predicate )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12592,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12593,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12594,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12595,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12605
      start: 12591
    functionDepth: 0
    functionLinenumber: 12591
    functionLinenumberEnd: 12605
    functionName: Catch::Matchers::RangeEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - end
    - m_predicate
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12609
      start: 12607
    functionDepth: 1
    functionLinenumber: 12607
    functionLinenumberEnd: 12609
    functionName: Catch::Matchers::RangeEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12625,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - TargetRangeLike2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12626
      start: 12623
    functionDepth: 1
    functionLinenumber: 12623
    functionLinenumberEnd: 12626
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::UnorderedRangeEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: "void UnorderedRangeEqualsMatcher( TargetRangeLike2&& range,\n                                         Equality2&&
      predicate )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::is_permutation
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12632,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12632,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12633,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12634,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12637
      start: 12629
    functionDepth: 3
    functionLinenumber: 12629
    functionLinenumberEnd: 12637
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::is_permutation
    - end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12642
      start: 12639
    functionDepth: 1
    functionLinenumber: 12639
    functionLinenumberEnd: 12642
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12656
      start: 12652
    functionDepth: 1
    functionLinenumber: 12652
    functionLinenumberEnd: 12656
    functionName: Catch::Matchers::RangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<!Detail::is_matcher<RangeLike>::value,\n                         RangeEqualsMatcher<RangeLike,
      std::equal_to<>>>"
    signature: "std::enable_if_t<!Detail::is_matcher<RangeLike>::value,\n                         RangeEqualsMatcher<RangeLike,
      std::equal_to<>>> RangeEquals( RangeLike&& range )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12667,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - RangeLike
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12668
      start: 12665
    functionDepth: 1
    functionLinenumber: 12665
    functionLinenumberEnd: 12668
    functionName: Catch::Matchers::RangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: RangeEqualsMatcher<RangeLike, Equality>
    signature: RangeEqualsMatcher<RangeLike, Equality> RangeEquals( RangeLike&& range,
      Equality&& predicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12682
      start: 12677
    functionDepth: 1
    functionLinenumber: 12677
    functionLinenumberEnd: 12682
    functionName: Catch::Matchers::UnorderedRangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<\n            !Detail::is_matcher<RangeLike>::value,\n
      \           UnorderedRangeEqualsMatcher<RangeLike, std::equal_to<>>>"
    signature: "std::enable_if_t<\n            !Detail::is_matcher<RangeLike>::value,\n
      \           UnorderedRangeEqualsMatcher<RangeLike, std::equal_to<>>> UnorderedRangeEquals(
      RangeLike&& range )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12693,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - RangeLike
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12694
      start: 12691
    functionDepth: 1
    functionLinenumber: 12691
    functionLinenumberEnd: 12694
    functionName: Catch::Matchers::UnorderedRangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: UnorderedRangeEqualsMatcher<RangeLike, Equality>
    signature: UnorderedRangeEqualsMatcher<RangeLike, Equality> UnorderedRangeEquals(
      RangeLike&& range, Equality&& predicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12587,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - TargetRangeLike2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12588
      start: 12585
    functionDepth: 1
    functionLinenumber: 12585
    functionLinenumberEnd: 12588
    functionName: Catch::Matchers::RangeEqualsMatcher::RangeEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: "void RangeEqualsMatcher( TargetRangeLike2&& range,\n                                Equality2&&
      predicate )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12592,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12593,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12594,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12595,1
    - Dst: m_predicate
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12605
      start: 12591
    functionDepth: 0
    functionLinenumber: 12591
    functionLinenumberEnd: 12605
    functionName: Catch::Matchers::RangeEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - end
    - m_predicate
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12609
      start: 12607
    functionDepth: 1
    functionLinenumber: 12607
    functionLinenumberEnd: 12609
    functionName: Catch::Matchers::RangeEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12625,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - TargetRangeLike2
    - Equality2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12626
      start: 12623
    functionDepth: 1
    functionLinenumber: 12623
    functionLinenumberEnd: 12626
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::UnorderedRangeEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: void
    signature: "void UnorderedRangeEqualsMatcher( TargetRangeLike2&& range,\n                                         Equality2&&
      predicate )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::is_permutation
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12632,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12632,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12633,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12634,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12637
      start: 12629
    functionDepth: 3
    functionLinenumber: 12629
    functionLinenumberEnd: 12637
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::is_permutation
    - end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match( RangeLike&& rng ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12642
      start: 12639
    functionDepth: 1
    functionLinenumber: 12639
    functionLinenumberEnd: 12642
    functionName: Catch::Matchers::UnorderedRangeEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12656
      start: 12652
    functionDepth: 1
    functionLinenumber: 12652
    functionLinenumberEnd: 12656
    functionName: Catch::Matchers::RangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<!Detail::is_matcher<RangeLike>::value,\n                         RangeEqualsMatcher<RangeLike,
      std::equal_to<>>>"
    signature: "std::enable_if_t<!Detail::is_matcher<RangeLike>::value,\n                         RangeEqualsMatcher<RangeLike,
      std::equal_to<>>> RangeEquals( RangeLike&& range )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12667,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - RangeLike
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12668
      start: 12665
    functionDepth: 1
    functionLinenumber: 12665
    functionLinenumberEnd: 12668
    functionName: Catch::Matchers::RangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: RangeEqualsMatcher<RangeLike, Equality>
    signature: RangeEqualsMatcher<RangeLike, Equality> RangeEquals( RangeLike&& range,
      Equality&& predicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - RangeLike
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12682
      start: 12677
    functionDepth: 1
    functionLinenumber: 12677
    functionLinenumberEnd: 12682
    functionName: Catch::Matchers::UnorderedRangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: "std::enable_if_t<\n            !Detail::is_matcher<RangeLike>::value,\n
      \           UnorderedRangeEqualsMatcher<RangeLike, std::equal_to<>>>"
    signature: "std::enable_if_t<\n            !Detail::is_matcher<RangeLike>::value,\n
      \           UnorderedRangeEqualsMatcher<RangeLike, std::equal_to<>>> UnorderedRangeEquals(
      RangeLike&& range )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12693,1
    - Dst: CATCH_FORWARD
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' range'
    - ' predicate'
    argTypes:
    - RangeLike
    - Equality
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12694
      start: 12691
    functionDepth: 1
    functionLinenumber: 12691
    functionLinenumberEnd: 12694
    functionName: Catch::Matchers::UnorderedRangeEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_FORWARD
    linkageType: ''
    returnType: UnorderedRangeEqualsMatcher<RangeLike, Equality>
    signature: UnorderedRangeEqualsMatcher<RangeLike, Equality> UnorderedRangeEquals(
      RangeLike&& range, Equality&& predicate )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12794
      start: 12792
    functionDepth: 0
    functionLinenumber: 12792
    functionLinenumberEnd: 12794
    functionName: Catch::Matchers::VectorContainsElementMatcher::VectorContainsElementMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorContainsElementMatcher(T const& comparator)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12803
      start: 12796
    functionDepth: 0
    functionLinenumber: 12796
    functionLinenumberEnd: 12803
    functionName: Catch::Matchers::VectorContainsElementMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, Alloc> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12807
      start: 12805
    functionDepth: 1
    functionLinenumber: 12805
    functionLinenumberEnd: 12807
    functionName: Catch::Matchers::VectorContainsElementMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12817
      start: 12815
    functionDepth: 0
    functionLinenumber: 12815
    functionLinenumberEnd: 12817
    functionName: Catch::Matchers::ContainsMatcher::ContainsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ContainsMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12821,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12836
      start: 12819
    functionDepth: 1
    functionLinenumber: 12819
    functionLinenumberEnd: 12836
    functionName: Catch::Matchers::ContainsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12839
      start: 12837
    functionDepth: 1
    functionLinenumber: 12837
    functionLinenumberEnd: 12839
    functionName: Catch::Matchers::ContainsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12849
      start: 12847
    functionDepth: 0
    functionLinenumber: 12847
    functionLinenumberEnd: 12849
    functionName: Catch::Matchers::EqualsMatcher::EqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EqualsMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12856,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12856,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12861
      start: 12851
    functionDepth: 1
    functionLinenumber: 12851
    functionLinenumberEnd: 12861
    functionName: Catch::Matchers::EqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12864
      start: 12862
    functionDepth: 1
    functionLinenumber: 12862
    functionLinenumberEnd: 12864
    functionName: Catch::Matchers::EqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12875
      start: 12873
    functionDepth: 0
    functionLinenumber: 12873
    functionLinenumberEnd: 12875
    functionName: Catch::Matchers::ApproxMatcher::ApproxMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ApproxMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12880,1
    - Dst: approx
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12884
      start: 12877
    functionDepth: 1
    functionLinenumber: 12877
    functionLinenumberEnd: 12884
    functionName: Catch::Matchers::ApproxMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    - approx
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12887
      start: 12885
    functionDepth: 1
    functionLinenumber: 12885
    functionLinenumberEnd: 12887
    functionName: Catch::Matchers::ApproxMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12890,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newEpsilon'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12892
      start: 12889
    functionDepth: 1
    functionLinenumber: 12889
    functionLinenumberEnd: 12892
    functionName: Catch::Matchers::ApproxMatcher::epsilon
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<double>
    - Catch::Matchers::ApproxMatcher::epsilon
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & epsilon( T const& newEpsilon )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::margin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12895,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newMargin'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12897
      start: 12894
    functionDepth: 1
    functionLinenumber: 12894
    functionLinenumberEnd: 12897
    functionName: Catch::Matchers::ApproxMatcher::margin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - static_cast<double>
    - Catch::Matchers::ApproxMatcher::margin
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & margin( T const& newMargin )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::scale
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12900,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newScale'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12902
      start: 12899
    functionDepth: 1
    functionLinenumber: 12899
    functionLinenumberEnd: 12902
    functionName: Catch::Matchers::ApproxMatcher::scale
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::ApproxMatcher::scale
    - static_cast<double>
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & scale( T const& newScale )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12912
      start: 12910
    functionDepth: 0
    functionLinenumber: 12910
    functionLinenumberEnd: 12912
    functionName: Catch::Matchers::UnorderedEqualsMatcher::UnorderedEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnorderedEqualsMatcher(std::vector<T, AllocComp> const& target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12914,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12914,1
    - Dst: std::is_permutation
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12918
      start: 12913
    functionDepth: 1
    functionLinenumber: 12913
    functionLinenumberEnd: 12918
    functionName: Catch::Matchers::UnorderedEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::is_permutation
    - end
    - size
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& vec) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12922
      start: 12920
    functionDepth: 1
    functionLinenumber: 12920
    functionLinenumberEnd: 12922
    functionName: Catch::Matchers::UnorderedEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12933
      start: 12931
    functionDepth: 0
    functionLinenumber: 12931
    functionLinenumberEnd: 12933
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ContainsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: ContainsMatcher<T, AllocComp, AllocMatch>
    signature: ContainsMatcher<T, AllocComp, AllocMatch> Contains( std::vector<T,
      AllocComp> const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorContainsElementMatcher<T, Alloc>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12939
      start: 12937
    functionDepth: 0
    functionLinenumber: 12937
    functionLinenumberEnd: 12939
    functionName: Catch::Matchers::VectorContains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - VectorContainsElementMatcher<T, Alloc>
    linkageType: ''
    returnType: VectorContainsElementMatcher<T, Alloc>
    signature: VectorContainsElementMatcher<T, Alloc> VectorContains( T const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EqualsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12945
      start: 12943
    functionDepth: 0
    functionLinenumber: 12943
    functionLinenumberEnd: 12945
    functionName: Catch::Matchers::Equals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - EqualsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: EqualsMatcher<T, AllocComp, AllocMatch>
    signature: EqualsMatcher<T, AllocComp, AllocMatch> Equals( std::vector<T, AllocComp>
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ApproxMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12951
      start: 12949
    functionDepth: 0
    functionLinenumber: 12949
    functionLinenumberEnd: 12951
    functionName: Catch::Matchers::Approx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ApproxMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: ApproxMatcher<T, AllocComp, AllocMatch>
    signature: ApproxMatcher<T, AllocComp, AllocMatch> Approx( std::vector<T, AllocComp>
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12957
      start: 12955
    functionDepth: 0
    functionLinenumber: 12955
    functionLinenumberEnd: 12957
    functionName: Catch::Matchers::UnorderedEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
    signature: UnorderedEqualsMatcher<T, AllocComp, AllocMatch> UnorderedEquals(std::vector<T,
      AllocComp> const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12794
      start: 12792
    functionDepth: 0
    functionLinenumber: 12792
    functionLinenumberEnd: 12794
    functionName: Catch::Matchers::VectorContainsElementMatcher::VectorContainsElementMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorContainsElementMatcher(T const& comparator)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12803
      start: 12796
    functionDepth: 0
    functionLinenumber: 12796
    functionLinenumberEnd: 12803
    functionName: Catch::Matchers::VectorContainsElementMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, Alloc> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12807
      start: 12805
    functionDepth: 1
    functionLinenumber: 12805
    functionLinenumberEnd: 12807
    functionName: Catch::Matchers::VectorContainsElementMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12817
      start: 12815
    functionDepth: 0
    functionLinenumber: 12815
    functionLinenumberEnd: 12817
    functionName: Catch::Matchers::ContainsMatcher::ContainsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ContainsMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12821,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12836
      start: 12819
    functionDepth: 1
    functionLinenumber: 12819
    functionLinenumberEnd: 12836
    functionName: Catch::Matchers::ContainsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12839
      start: 12837
    functionDepth: 1
    functionLinenumber: 12837
    functionLinenumberEnd: 12839
    functionName: Catch::Matchers::ContainsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12849
      start: 12847
    functionDepth: 0
    functionLinenumber: 12847
    functionLinenumberEnd: 12849
    functionName: Catch::Matchers::EqualsMatcher::EqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EqualsMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12856,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12856,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12861
      start: 12851
    functionDepth: 1
    functionLinenumber: 12851
    functionLinenumberEnd: 12861
    functionName: Catch::Matchers::EqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12864
      start: 12862
    functionDepth: 1
    functionLinenumber: 12862
    functionLinenumberEnd: 12864
    functionName: Catch::Matchers::EqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12875
      start: 12873
    functionDepth: 0
    functionLinenumber: 12873
    functionLinenumberEnd: 12875
    functionName: Catch::Matchers::ApproxMatcher::ApproxMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ApproxMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12880,1
    - Dst: approx
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12884
      start: 12877
    functionDepth: 1
    functionLinenumber: 12877
    functionLinenumberEnd: 12884
    functionName: Catch::Matchers::ApproxMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    - approx
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12887
      start: 12885
    functionDepth: 1
    functionLinenumber: 12885
    functionLinenumberEnd: 12887
    functionName: Catch::Matchers::ApproxMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12890,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newEpsilon'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12892
      start: 12889
    functionDepth: 1
    functionLinenumber: 12889
    functionLinenumberEnd: 12892
    functionName: Catch::Matchers::ApproxMatcher::epsilon
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - static_cast<double>
    - Catch::Matchers::ApproxMatcher::epsilon
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & epsilon( T const& newEpsilon )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::margin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12895,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newMargin'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12897
      start: 12894
    functionDepth: 1
    functionLinenumber: 12894
    functionLinenumberEnd: 12897
    functionName: Catch::Matchers::ApproxMatcher::margin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - static_cast<double>
    - Catch::Matchers::ApproxMatcher::margin
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & margin( T const& newMargin )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::scale
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12900,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newScale'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12902
      start: 12899
    functionDepth: 1
    functionLinenumber: 12899
    functionLinenumberEnd: 12902
    functionName: Catch::Matchers::ApproxMatcher::scale
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::ApproxMatcher::scale
    - static_cast<double>
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & scale( T const& newScale )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12912
      start: 12910
    functionDepth: 0
    functionLinenumber: 12910
    functionLinenumberEnd: 12912
    functionName: Catch::Matchers::UnorderedEqualsMatcher::UnorderedEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnorderedEqualsMatcher(std::vector<T, AllocComp> const& target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12914,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12914,1
    - Dst: std::is_permutation
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12918
      start: 12913
    functionDepth: 1
    functionLinenumber: 12913
    functionLinenumberEnd: 12918
    functionName: Catch::Matchers::UnorderedEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::is_permutation
    - end
    - size
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& vec) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12922
      start: 12920
    functionDepth: 1
    functionLinenumber: 12920
    functionLinenumberEnd: 12922
    functionName: Catch::Matchers::UnorderedEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12933
      start: 12931
    functionDepth: 0
    functionLinenumber: 12931
    functionLinenumberEnd: 12933
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ContainsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: ContainsMatcher<T, AllocComp, AllocMatch>
    signature: ContainsMatcher<T, AllocComp, AllocMatch> Contains( std::vector<T,
      AllocComp> const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorContainsElementMatcher<T, Alloc>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12939
      start: 12937
    functionDepth: 0
    functionLinenumber: 12937
    functionLinenumberEnd: 12939
    functionName: Catch::Matchers::VectorContains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - VectorContainsElementMatcher<T, Alloc>
    linkageType: ''
    returnType: VectorContainsElementMatcher<T, Alloc>
    signature: VectorContainsElementMatcher<T, Alloc> VectorContains( T const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EqualsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12945
      start: 12943
    functionDepth: 0
    functionLinenumber: 12943
    functionLinenumberEnd: 12945
    functionName: Catch::Matchers::Equals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - EqualsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: EqualsMatcher<T, AllocComp, AllocMatch>
    signature: EqualsMatcher<T, AllocComp, AllocMatch> Equals( std::vector<T, AllocComp>
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ApproxMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12951
      start: 12949
    functionDepth: 0
    functionLinenumber: 12949
    functionLinenumberEnd: 12951
    functionName: Catch::Matchers::Approx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ApproxMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: ApproxMatcher<T, AllocComp, AllocMatch>
    signature: ApproxMatcher<T, AllocComp, AllocMatch> Approx( std::vector<T, AllocComp>
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12957
      start: 12955
    functionDepth: 0
    functionLinenumber: 12955
    functionLinenumberEnd: 12957
    functionName: Catch::Matchers::UnorderedEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
    signature: UnorderedEqualsMatcher<T, AllocComp, AllocMatch> UnorderedEquals(std::vector<T,
      AllocComp> const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12794
      start: 12792
    functionDepth: 0
    functionLinenumber: 12792
    functionLinenumberEnd: 12794
    functionName: Catch::Matchers::VectorContainsElementMatcher::VectorContainsElementMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorContainsElementMatcher(T const& comparator)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12803
      start: 12796
    functionDepth: 0
    functionLinenumber: 12796
    functionLinenumberEnd: 12803
    functionName: Catch::Matchers::VectorContainsElementMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, Alloc> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12807
      start: 12805
    functionDepth: 1
    functionLinenumber: 12805
    functionLinenumberEnd: 12807
    functionName: Catch::Matchers::VectorContainsElementMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12817
      start: 12815
    functionDepth: 0
    functionLinenumber: 12815
    functionLinenumberEnd: 12817
    functionName: Catch::Matchers::ContainsMatcher::ContainsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ContainsMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12821,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12836
      start: 12819
    functionDepth: 1
    functionLinenumber: 12819
    functionLinenumberEnd: 12836
    functionName: Catch::Matchers::ContainsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12839
      start: 12837
    functionDepth: 1
    functionLinenumber: 12837
    functionLinenumberEnd: 12839
    functionName: Catch::Matchers::ContainsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12849
      start: 12847
    functionDepth: 0
    functionLinenumber: 12847
    functionLinenumberEnd: 12849
    functionName: Catch::Matchers::EqualsMatcher::EqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EqualsMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12856,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12856,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12861
      start: 12851
    functionDepth: 1
    functionLinenumber: 12851
    functionLinenumberEnd: 12861
    functionName: Catch::Matchers::EqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12864
      start: 12862
    functionDepth: 1
    functionLinenumber: 12862
    functionLinenumberEnd: 12864
    functionName: Catch::Matchers::EqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12875
      start: 12873
    functionDepth: 0
    functionLinenumber: 12873
    functionLinenumberEnd: 12875
    functionName: Catch::Matchers::ApproxMatcher::ApproxMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ApproxMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12880,1
    - Dst: approx
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12884
      start: 12877
    functionDepth: 1
    functionLinenumber: 12877
    functionLinenumberEnd: 12884
    functionName: Catch::Matchers::ApproxMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    - approx
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12887
      start: 12885
    functionDepth: 1
    functionLinenumber: 12885
    functionLinenumberEnd: 12887
    functionName: Catch::Matchers::ApproxMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12890,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newEpsilon'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12892
      start: 12889
    functionDepth: 1
    functionLinenumber: 12889
    functionLinenumberEnd: 12892
    functionName: Catch::Matchers::ApproxMatcher::epsilon
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - static_cast<double>
    - Catch::Matchers::ApproxMatcher::epsilon
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & epsilon( T const& newEpsilon )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::margin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12895,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newMargin'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12897
      start: 12894
    functionDepth: 1
    functionLinenumber: 12894
    functionLinenumberEnd: 12897
    functionName: Catch::Matchers::ApproxMatcher::margin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - static_cast<double>
    - Catch::Matchers::ApproxMatcher::margin
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & margin( T const& newMargin )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::scale
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12900,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newScale'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12902
      start: 12899
    functionDepth: 1
    functionLinenumber: 12899
    functionLinenumberEnd: 12902
    functionName: Catch::Matchers::ApproxMatcher::scale
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 3
    functionsReached:
    - Catch::Matchers::ApproxMatcher::scale
    - static_cast<double>
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & scale( T const& newScale )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12912
      start: 12910
    functionDepth: 0
    functionLinenumber: 12910
    functionLinenumberEnd: 12912
    functionName: Catch::Matchers::UnorderedEqualsMatcher::UnorderedEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnorderedEqualsMatcher(std::vector<T, AllocComp> const& target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12914,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12914,1
    - Dst: std::is_permutation
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12918
      start: 12913
    functionDepth: 1
    functionLinenumber: 12913
    functionLinenumberEnd: 12918
    functionName: Catch::Matchers::UnorderedEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::is_permutation
    - end
    - size
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& vec) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12922
      start: 12920
    functionDepth: 1
    functionLinenumber: 12920
    functionLinenumberEnd: 12922
    functionName: Catch::Matchers::UnorderedEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12933
      start: 12931
    functionDepth: 0
    functionLinenumber: 12931
    functionLinenumberEnd: 12933
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ContainsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: ContainsMatcher<T, AllocComp, AllocMatch>
    signature: ContainsMatcher<T, AllocComp, AllocMatch> Contains( std::vector<T,
      AllocComp> const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorContainsElementMatcher<T, Alloc>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12939
      start: 12937
    functionDepth: 0
    functionLinenumber: 12937
    functionLinenumberEnd: 12939
    functionName: Catch::Matchers::VectorContains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - VectorContainsElementMatcher<T, Alloc>
    linkageType: ''
    returnType: VectorContainsElementMatcher<T, Alloc>
    signature: VectorContainsElementMatcher<T, Alloc> VectorContains( T const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EqualsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12945
      start: 12943
    functionDepth: 0
    functionLinenumber: 12943
    functionLinenumberEnd: 12945
    functionName: Catch::Matchers::Equals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - EqualsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: EqualsMatcher<T, AllocComp, AllocMatch>
    signature: EqualsMatcher<T, AllocComp, AllocMatch> Equals( std::vector<T, AllocComp>
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ApproxMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12951
      start: 12949
    functionDepth: 0
    functionLinenumber: 12949
    functionLinenumberEnd: 12951
    functionName: Catch::Matchers::Approx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ApproxMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: ApproxMatcher<T, AllocComp, AllocMatch>
    signature: ApproxMatcher<T, AllocComp, AllocMatch> Approx( std::vector<T, AllocComp>
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12957
      start: 12955
    functionDepth: 0
    functionLinenumber: 12955
    functionLinenumberEnd: 12957
    functionName: Catch::Matchers::UnorderedEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
    signature: UnorderedEqualsMatcher<T, AllocComp, AllocMatch> UnorderedEquals(std::vector<T,
      AllocComp> const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12794
      start: 12792
    functionDepth: 0
    functionLinenumber: 12792
    functionLinenumberEnd: 12794
    functionName: Catch::Matchers::VectorContainsElementMatcher::VectorContainsElementMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorContainsElementMatcher(T const& comparator)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12803
      start: 12796
    functionDepth: 0
    functionLinenumber: 12796
    functionLinenumberEnd: 12803
    functionName: Catch::Matchers::VectorContainsElementMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, Alloc> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12807
      start: 12805
    functionDepth: 1
    functionLinenumber: 12805
    functionLinenumberEnd: 12807
    functionName: Catch::Matchers::VectorContainsElementMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12817
      start: 12815
    functionDepth: 0
    functionLinenumber: 12815
    functionLinenumberEnd: 12817
    functionName: Catch::Matchers::ContainsMatcher::ContainsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ContainsMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12821,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12836
      start: 12819
    functionDepth: 1
    functionLinenumber: 12819
    functionLinenumberEnd: 12836
    functionName: Catch::Matchers::ContainsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12839
      start: 12837
    functionDepth: 1
    functionLinenumber: 12837
    functionLinenumberEnd: 12839
    functionName: Catch::Matchers::ContainsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12849
      start: 12847
    functionDepth: 0
    functionLinenumber: 12847
    functionLinenumberEnd: 12849
    functionName: Catch::Matchers::EqualsMatcher::EqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EqualsMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12856,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12856,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12861
      start: 12851
    functionDepth: 1
    functionLinenumber: 12851
    functionLinenumberEnd: 12861
    functionName: Catch::Matchers::EqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12864
      start: 12862
    functionDepth: 1
    functionLinenumber: 12862
    functionLinenumberEnd: 12864
    functionName: Catch::Matchers::EqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12875
      start: 12873
    functionDepth: 0
    functionLinenumber: 12873
    functionLinenumberEnd: 12875
    functionName: Catch::Matchers::ApproxMatcher::ApproxMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ApproxMatcher(std::vector<T, AllocComp> const& comparator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12880,1
    - Dst: approx
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12884
      start: 12877
    functionDepth: 1
    functionLinenumber: 12877
    functionLinenumberEnd: 12884
    functionName: Catch::Matchers::ApproxMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - size
    - approx
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& v) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12887
      start: 12885
    functionDepth: 1
    functionLinenumber: 12885
    functionLinenumberEnd: 12887
    functionName: Catch::Matchers::ApproxMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12890,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newEpsilon'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12892
      start: 12889
    functionDepth: 1
    functionLinenumber: 12889
    functionLinenumberEnd: 12892
    functionName: Catch::Matchers::ApproxMatcher::epsilon
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - static_cast<double>
    - Catch::Matchers::ApproxMatcher::epsilon
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & epsilon( T const& newEpsilon )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::margin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12895,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newMargin'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12897
      start: 12894
    functionDepth: 1
    functionLinenumber: 12894
    functionLinenumberEnd: 12897
    functionName: Catch::Matchers::ApproxMatcher::margin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - static_cast<double>
    - Catch::Matchers::ApproxMatcher::margin
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & margin( T const& newMargin )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::ApproxMatcher::scale
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12900,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' newScale'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12902
      start: 12899
    functionDepth: 1
    functionLinenumber: 12899
    functionLinenumberEnd: 12902
    functionName: Catch::Matchers::ApproxMatcher::scale
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 4
    functionsReached:
    - Catch::Matchers::ApproxMatcher::scale
    - static_cast<double>
    linkageType: ''
    returnType: ApproxMatcher
    signature: ApproxMatcher & scale( T const& newScale )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12912
      start: 12910
    functionDepth: 0
    functionLinenumber: 12910
    functionLinenumberEnd: 12912
    functionName: Catch::Matchers::UnorderedEqualsMatcher::UnorderedEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnorderedEqualsMatcher(std::vector<T, AllocComp> const& target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12914,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12914,1
    - Dst: std::is_permutation
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<T, AllocMatch>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12918
      start: 12913
    functionDepth: 1
    functionLinenumber: 12913
    functionLinenumberEnd: 12918
    functionName: Catch::Matchers::UnorderedEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - std::is_permutation
    - end
    - size
    - begin
    linkageType: ''
    returnType: bool
    signature: bool match(std::vector<T, AllocMatch> const& vec) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12922
      start: 12920
    functionDepth: 1
    functionLinenumber: 12920
    functionLinenumberEnd: 12922
    functionName: Catch::Matchers::UnorderedEqualsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string describe() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12933
      start: 12931
    functionDepth: 0
    functionLinenumber: 12931
    functionLinenumberEnd: 12933
    functionName: Catch::Matchers::Contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ContainsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: ContainsMatcher<T, AllocComp, AllocMatch>
    signature: ContainsMatcher<T, AllocComp, AllocMatch> Contains( std::vector<T,
      AllocComp> const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorContainsElementMatcher<T, Alloc>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12939
      start: 12937
    functionDepth: 0
    functionLinenumber: 12937
    functionLinenumberEnd: 12939
    functionName: Catch::Matchers::VectorContains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - VectorContainsElementMatcher<T, Alloc>
    linkageType: ''
    returnType: VectorContainsElementMatcher<T, Alloc>
    signature: VectorContainsElementMatcher<T, Alloc> VectorContains( T const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EqualsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12945
      start: 12943
    functionDepth: 0
    functionLinenumber: 12943
    functionLinenumberEnd: 12945
    functionName: Catch::Matchers::Equals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - EqualsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: EqualsMatcher<T, AllocComp, AllocMatch>
    signature: EqualsMatcher<T, AllocComp, AllocMatch> Equals( std::vector<T, AllocComp>
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ApproxMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12951
      start: 12949
    functionDepth: 0
    functionLinenumber: 12949
    functionLinenumberEnd: 12951
    functionName: Catch::Matchers::Approx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - ApproxMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: ApproxMatcher<T, AllocComp, AllocMatch>
    signature: ApproxMatcher<T, AllocComp, AllocMatch> Approx( std::vector<T, AllocComp>
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:12956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::vector<T, AllocComp>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12957
      start: 12955
    functionDepth: 0
    functionLinenumber: 12955
    functionLinenumberEnd: 12957
    functionName: Catch::Matchers::UnorderedEquals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
    linkageType: ''
    returnType: UnorderedEqualsMatcher<T, AllocComp, AllocMatch>
    signature: UnorderedEqualsMatcher<T, AllocComp, AllocMatch> UnorderedEquals(std::vector<T,
      AllocComp> const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13077
      start: 13075
    functionDepth: 1
    functionLinenumber: 13075
    functionLinenumberEnd: 13077
    functionName: Catch::StreamingReporterBase::StreamingReporterBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void StreamingReporterBase(ReporterConfig&& _config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13080
      start: 13080
    functionDepth: 0
    functionLinenumber: 13080
    functionLinenumberEnd: 13080
    functionName: Catch::StreamingReporterBase::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkPreparing( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13081
      start: 13081
    functionDepth: 0
    functionLinenumber: 13081
    functionLinenumberEnd: 13081
    functionName: Catch::StreamingReporterBase::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkStarting( BenchmarkInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13082
      start: 13082
    functionDepth: 0
    functionLinenumber: 13082
    functionLinenumberEnd: 13082
    functionName: Catch::StreamingReporterBase::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkEnded( BenchmarkStats<> const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13083
      start: 13083
    functionDepth: 0
    functionLinenumber: 13083
    functionLinenumberEnd: 13083
    functionName: Catch::StreamingReporterBase::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkFailed( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13085
      start: 13085
    functionDepth: 0
    functionLinenumber: 13085
    functionLinenumberEnd: 13085
    functionName: Catch::StreamingReporterBase::fatalErrorEncountered
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fatalErrorEncountered( StringRef /*error*/ ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13086
      start: 13086
    functionDepth: 0
    functionLinenumber: 13086
    functionLinenumberEnd: 13086
    functionName: Catch::StreamingReporterBase::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noMatchingTestCases( StringRef /*unmatchedSpec*/ ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13087
      start: 13087
    functionDepth: 0
    functionLinenumber: 13087
    functionLinenumberEnd: 13087
    functionName: Catch::StreamingReporterBase::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reportInvalidTestSpec( StringRef /*invalidArgument*/ ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' _testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13093
      start: 13091
    functionDepth: 0
    functionLinenumber: 13091
    functionLinenumberEnd: 13093
    functionName: Catch::StreamingReporterBase::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCaseStarting(TestCaseInfo const& _testInfo) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13094
      start: 13094
    functionDepth: 0
    functionLinenumber: 13094
    functionLinenumberEnd: 13094
    functionName: Catch::StreamingReporterBase::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCasePartialStarting( TestCaseInfo const&, uint64_t ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' _sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13097
      start: 13095
    functionDepth: 0
    functionLinenumber: 13095
    functionLinenumberEnd: 13097
    functionName: Catch::StreamingReporterBase::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void sectionStarting(SectionInfo const& _sectionInfo) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13099
      start: 13099
    functionDepth: 0
    functionLinenumber: 13099
    functionLinenumberEnd: 13099
    functionName: Catch::StreamingReporterBase::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assertionStarting( AssertionInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13100
      start: 13100
    functionDepth: 0
    functionLinenumber: 13100
    functionLinenumberEnd: 13100
    functionName: Catch::StreamingReporterBase::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assertionEnded( AssertionStats const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13104
      start: 13102
    functionDepth: 0
    functionLinenumber: 13102
    functionLinenumberEnd: 13104
    functionName: Catch::StreamingReporterBase::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: void
    signature: void sectionEnded(SectionStats const& /* _sectionStats */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13105
      start: 13105
    functionDepth: 0
    functionLinenumber: 13105
    functionLinenumberEnd: 13105
    functionName: Catch::StreamingReporterBase::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCasePartialEnded( TestCaseStats const&, uint64_t ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13108
      start: 13106
    functionDepth: 0
    functionLinenumber: 13106
    functionLinenumberEnd: 13108
    functionName: Catch::StreamingReporterBase::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCaseEnded(TestCaseStats const& /* _testCaseStats */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13114
      start: 13111
    functionDepth: 0
    functionLinenumber: 13111
    functionLinenumberEnd: 13114
    functionName: Catch::StreamingReporterBase::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void skipTest(TestCaseInfo const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13077
      start: 13075
    functionDepth: 1
    functionLinenumber: 13075
    functionLinenumberEnd: 13077
    functionName: Catch::StreamingReporterBase::StreamingReporterBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void StreamingReporterBase(ReporterConfig&& _config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13080
      start: 13080
    functionDepth: 0
    functionLinenumber: 13080
    functionLinenumberEnd: 13080
    functionName: Catch::StreamingReporterBase::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkPreparing( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13081
      start: 13081
    functionDepth: 0
    functionLinenumber: 13081
    functionLinenumberEnd: 13081
    functionName: Catch::StreamingReporterBase::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkStarting( BenchmarkInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13082
      start: 13082
    functionDepth: 0
    functionLinenumber: 13082
    functionLinenumberEnd: 13082
    functionName: Catch::StreamingReporterBase::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkEnded( BenchmarkStats<> const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13083
      start: 13083
    functionDepth: 0
    functionLinenumber: 13083
    functionLinenumberEnd: 13083
    functionName: Catch::StreamingReporterBase::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkFailed( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13085
      start: 13085
    functionDepth: 0
    functionLinenumber: 13085
    functionLinenumberEnd: 13085
    functionName: Catch::StreamingReporterBase::fatalErrorEncountered
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fatalErrorEncountered( StringRef /*error*/ ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13086
      start: 13086
    functionDepth: 0
    functionLinenumber: 13086
    functionLinenumberEnd: 13086
    functionName: Catch::StreamingReporterBase::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noMatchingTestCases( StringRef /*unmatchedSpec*/ ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13087
      start: 13087
    functionDepth: 0
    functionLinenumber: 13087
    functionLinenumberEnd: 13087
    functionName: Catch::StreamingReporterBase::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reportInvalidTestSpec( StringRef /*invalidArgument*/ ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' _testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13093
      start: 13091
    functionDepth: 0
    functionLinenumber: 13091
    functionLinenumberEnd: 13093
    functionName: Catch::StreamingReporterBase::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCaseStarting(TestCaseInfo const& _testInfo) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13094
      start: 13094
    functionDepth: 0
    functionLinenumber: 13094
    functionLinenumberEnd: 13094
    functionName: Catch::StreamingReporterBase::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCasePartialStarting( TestCaseInfo const&, uint64_t ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' _sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13097
      start: 13095
    functionDepth: 0
    functionLinenumber: 13095
    functionLinenumberEnd: 13097
    functionName: Catch::StreamingReporterBase::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void sectionStarting(SectionInfo const& _sectionInfo) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13099
      start: 13099
    functionDepth: 0
    functionLinenumber: 13099
    functionLinenumberEnd: 13099
    functionName: Catch::StreamingReporterBase::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assertionStarting( AssertionInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13100
      start: 13100
    functionDepth: 0
    functionLinenumber: 13100
    functionLinenumberEnd: 13100
    functionName: Catch::StreamingReporterBase::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assertionEnded( AssertionStats const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13104
      start: 13102
    functionDepth: 0
    functionLinenumber: 13102
    functionLinenumberEnd: 13104
    functionName: Catch::StreamingReporterBase::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: void
    signature: void sectionEnded(SectionStats const& /* _sectionStats */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13105
      start: 13105
    functionDepth: 0
    functionLinenumber: 13105
    functionLinenumberEnd: 13105
    functionName: Catch::StreamingReporterBase::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCasePartialEnded( TestCaseStats const&, uint64_t ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13108
      start: 13106
    functionDepth: 0
    functionLinenumber: 13106
    functionLinenumberEnd: 13108
    functionName: Catch::StreamingReporterBase::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCaseEnded(TestCaseStats const& /* _testCaseStats */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13114
      start: 13111
    functionDepth: 0
    functionLinenumber: 13111
    functionLinenumberEnd: 13114
    functionName: Catch::StreamingReporterBase::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void skipTest(TestCaseInfo const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13138
      start: 13136
    functionDepth: 1
    functionLinenumber: 13136
    functionLinenumberEnd: 13138
    functionName: Catch::AutomakeReporter::AutomakeReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AutomakeReporter(ReporterConfig&& _config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13144
      start: 13141
    functionDepth: 0
    functionLinenumber: 13141
    functionLinenumberEnd: 13144
    functionName: Catch::AutomakeReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13138
      start: 13136
    functionDepth: 1
    functionLinenumber: 13136
    functionLinenumberEnd: 13138
    functionName: Catch::AutomakeReporter::AutomakeReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AutomakeReporter(ReporterConfig&& _config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13144
      start: 13141
    functionDepth: 0
    functionLinenumber: 13141
    functionLinenumberEnd: 13144
    functionName: Catch::AutomakeReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13302
      start: 13302
    functionDepth: 0
    functionLinenumber: 13302
    functionLinenumberEnd: 13302
    functionName: Catch::CumulativeReporterBase::Node
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Node( T const& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' _stats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13309
      start: 13309
    functionDepth: 0
    functionLinenumber: 13309
    functionLinenumberEnd: 13309
    functionName: Catch::CumulativeReporterBase::SectionNode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SectionNode(SectionStats const& _stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SectionNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13313
      start: 13311
    functionDepth: 0
    functionLinenumber: 13311
    functionLinenumberEnd: 13313
    functionName: operator == (SectionNode const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator == (SectionNode const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13332
      start: 13330
    functionDepth: 1
    functionLinenumber: 13330
    functionLinenumberEnd: 13332
    functionName: Catch::CumulativeReporterBase::CumulativeReporterBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase(ReporterConfig&& _config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13335
      start: 13335
    functionDepth: 0
    functionLinenumber: 13335
    functionLinenumberEnd: 13335
    functionName: Catch::CumulativeReporterBase::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkPreparing( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13336
      start: 13336
    functionDepth: 0
    functionLinenumber: 13336
    functionLinenumberEnd: 13336
    functionName: Catch::CumulativeReporterBase::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkStarting( BenchmarkInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13338
      start: 13338
    functionDepth: 0
    functionLinenumber: 13338
    functionLinenumberEnd: 13338
    functionName: Catch::CumulativeReporterBase::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkFailed( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13340
      start: 13340
    functionDepth: 0
    functionLinenumber: 13340
    functionLinenumberEnd: 13340
    functionName: Catch::CumulativeReporterBase::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noMatchingTestCases( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13341
      start: 13341
    functionDepth: 0
    functionLinenumber: 13341
    functionLinenumberEnd: 13341
    functionName: Catch::CumulativeReporterBase::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reportInvalidTestSpec( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13342
      start: 13342
    functionDepth: 0
    functionLinenumber: 13342
    functionLinenumberEnd: 13342
    functionName: Catch::CumulativeReporterBase::fatalErrorEncountered
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fatalErrorEncountered( StringRef /*error*/ ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13344
      start: 13344
    functionDepth: 0
    functionLinenumber: 13344
    functionLinenumberEnd: 13344
    functionName: Catch::CumulativeReporterBase::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testRunStarting( TestRunInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13346
      start: 13346
    functionDepth: 0
    functionLinenumber: 13346
    functionLinenumberEnd: 13346
    functionName: Catch::CumulativeReporterBase::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCaseStarting( TestCaseInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13347
      start: 13347
    functionDepth: 0
    functionLinenumber: 13347
    functionLinenumberEnd: 13347
    functionName: Catch::CumulativeReporterBase::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCasePartialStarting( TestCaseInfo const&, uint64_t ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13350
      start: 13350
    functionDepth: 0
    functionLinenumber: 13350
    functionLinenumberEnd: 13350
    functionName: Catch::CumulativeReporterBase::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assertionStarting( AssertionInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13354
      start: 13354
    functionDepth: 0
    functionLinenumber: 13354
    functionLinenumberEnd: 13354
    functionName: Catch::CumulativeReporterBase::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCasePartialEnded( TestCaseStats const&, uint64_t ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13360
      start: 13360
    functionDepth: 0
    functionLinenumber: 13360
    functionLinenumberEnd: 13360
    functionName: Catch::CumulativeReporterBase::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void skipTest(TestCaseInfo const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' _value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13302
      start: 13302
    functionDepth: 0
    functionLinenumber: 13302
    functionLinenumberEnd: 13302
    functionName: Catch::CumulativeReporterBase::Node
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Node( T const& _value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' _stats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13309
      start: 13309
    functionDepth: 0
    functionLinenumber: 13309
    functionLinenumberEnd: 13309
    functionName: Catch::CumulativeReporterBase::SectionNode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SectionNode(SectionStats const& _stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SectionNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13313
      start: 13311
    functionDepth: 0
    functionLinenumber: 13311
    functionLinenumberEnd: 13313
    functionName: operator == (SectionNode const& other) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator == (SectionNode const& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13332
      start: 13330
    functionDepth: 1
    functionLinenumber: 13330
    functionLinenumberEnd: 13332
    functionName: Catch::CumulativeReporterBase::CumulativeReporterBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase(ReporterConfig&& _config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13335
      start: 13335
    functionDepth: 0
    functionLinenumber: 13335
    functionLinenumberEnd: 13335
    functionName: Catch::CumulativeReporterBase::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkPreparing( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13336
      start: 13336
    functionDepth: 0
    functionLinenumber: 13336
    functionLinenumberEnd: 13336
    functionName: Catch::CumulativeReporterBase::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkStarting( BenchmarkInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13338
      start: 13338
    functionDepth: 0
    functionLinenumber: 13338
    functionLinenumberEnd: 13338
    functionName: Catch::CumulativeReporterBase::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void benchmarkFailed( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13340
      start: 13340
    functionDepth: 0
    functionLinenumber: 13340
    functionLinenumberEnd: 13340
    functionName: Catch::CumulativeReporterBase::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noMatchingTestCases( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13341
      start: 13341
    functionDepth: 0
    functionLinenumber: 13341
    functionLinenumberEnd: 13341
    functionName: Catch::CumulativeReporterBase::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reportInvalidTestSpec( StringRef ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13342
      start: 13342
    functionDepth: 0
    functionLinenumber: 13342
    functionLinenumberEnd: 13342
    functionName: Catch::CumulativeReporterBase::fatalErrorEncountered
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fatalErrorEncountered( StringRef /*error*/ ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13344
      start: 13344
    functionDepth: 0
    functionLinenumber: 13344
    functionLinenumberEnd: 13344
    functionName: Catch::CumulativeReporterBase::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testRunStarting( TestRunInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13346
      start: 13346
    functionDepth: 0
    functionLinenumber: 13346
    functionLinenumberEnd: 13346
    functionName: Catch::CumulativeReporterBase::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCaseStarting( TestCaseInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13347
      start: 13347
    functionDepth: 0
    functionLinenumber: 13347
    functionLinenumberEnd: 13347
    functionName: Catch::CumulativeReporterBase::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCasePartialStarting( TestCaseInfo const&, uint64_t ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13350
      start: 13350
    functionDepth: 0
    functionLinenumber: 13350
    functionLinenumberEnd: 13350
    functionName: Catch::CumulativeReporterBase::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assertionStarting( AssertionInfo const& ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13354
      start: 13354
    functionDepth: 0
    functionLinenumber: 13354
    functionLinenumberEnd: 13354
    functionName: Catch::CumulativeReporterBase::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void testCasePartialEnded( TestCaseStats const&, uint64_t ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13360
      start: 13360
    functionDepth: 0
    functionLinenumber: 13360
    functionLinenumberEnd: 13360
    functionName: Catch::CumulativeReporterBase::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void skipTest(TestCaseInfo const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c_
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13468
      start: 13468
    functionDepth: 0
    functionLinenumber: 13468
    functionLinenumberEnd: 13468
    functionName: Catch::lineOfChars
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lineOfChars( char c_ )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c_
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13468
      start: 13468
    functionDepth: 0
    functionLinenumber: 13468
    functionLinenumberEnd: 13468
    functionName: Catch::lineOfChars
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lineOfChars( char c_ )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13766,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13767
      start: 13765
    functionDepth: 1
    functionLinenumber: 13765
    functionLinenumberEnd: 13767
    functionName: Catch::ReporterFactory::create
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Detail::make_unique<T>
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr create( ReporterConfig&& config ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AutomakeReporter::getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13771
      start: 13769
    functionDepth: 1
    functionLinenumber: 13769
    functionLinenumberEnd: 13771
    functionName: Catch::ReporterFactory::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::AutomakeReporter::getDescription
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: registerReporterImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13779,1
    - Dst: Detail::make_unique<ReporterFactory<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13781
      start: 13778
    functionDepth: 0
    functionLinenumber: 13778
    functionLinenumberEnd: 13781
    functionName: Catch::ReporterRegistrar::ReporterRegistrar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<ReporterFactory<T>>
    - registerReporterImpl
    linkageType: ''
    returnType: void
    signature: void ReporterRegistrar( std::string const& name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AutomakeReporter::getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13792
      start: 13790
    functionDepth: 1
    functionLinenumber: 13790
    functionLinenumberEnd: 13792
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::getDescriptionImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::AutomakeReporter::getDescription
    linkageType: ''
    returnType: std::string
    signature: std::string getDescriptionImpl( std::true_type ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13796
      start: 13794
    functionDepth: 0
    functionLinenumber: 13794
    functionLinenumberEnd: 13796
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::getDescriptionImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescriptionImpl( std::false_type ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - listenerName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13800
      start: 13799
    functionDepth: 0
    functionLinenumber: 13799
    functionLinenumberEnd: 13800
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::TypedListenerFactory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypedListenerFactory( StringRef listenerName )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - IConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13804
      start: 13802
    functionDepth: 0
    functionLinenumber: 13802
    functionLinenumberEnd: 13804
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::create
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<T>
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr create( IConfig const* config ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13808
      start: 13806
    functionDepth: 0
    functionLinenumber: 13806
    functionLinenumberEnd: 13808
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::getName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef getName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ListenerRegistrar::TypedListenerFactory::getDescriptionImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13812
      start: 13810
    functionDepth: 2
    functionLinenumber: 13810
    functionLinenumberEnd: 13812
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::ListenerRegistrar::TypedListenerFactory::getDescriptionImpl
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: registerListenerImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13817,1
    - Dst: Detail::make_unique<TypedListenerFactory>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listenerName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13818
      start: 13816
    functionDepth: 1
    functionLinenumber: 13816
    functionLinenumberEnd: 13818
    functionName: Catch::ListenerRegistrar::ListenerRegistrar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TypedListenerFactory>
    - registerListenerImpl
    linkageType: ''
    returnType: void
    signature: void ListenerRegistrar(StringRef listenerName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13766,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13767
      start: 13765
    functionDepth: 1
    functionLinenumber: 13765
    functionLinenumberEnd: 13767
    functionName: Catch::ReporterFactory::create
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Detail::make_unique<T>
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr create( ReporterConfig&& config ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AutomakeReporter::getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13771
      start: 13769
    functionDepth: 1
    functionLinenumber: 13769
    functionLinenumberEnd: 13771
    functionName: Catch::ReporterFactory::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::AutomakeReporter::getDescription
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: registerReporterImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13779,1
    - Dst: Detail::make_unique<ReporterFactory<T>>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13781
      start: 13778
    functionDepth: 0
    functionLinenumber: 13778
    functionLinenumberEnd: 13781
    functionName: Catch::ReporterRegistrar::ReporterRegistrar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<ReporterFactory<T>>
    - registerReporterImpl
    linkageType: ''
    returnType: void
    signature: void ReporterRegistrar( std::string const& name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AutomakeReporter::getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13792
      start: 13790
    functionDepth: 1
    functionLinenumber: 13790
    functionLinenumberEnd: 13792
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::getDescriptionImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached:
    - Catch::AutomakeReporter::getDescription
    linkageType: ''
    returnType: std::string
    signature: std::string getDescriptionImpl( std::true_type ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13796
      start: 13794
    functionDepth: 0
    functionLinenumber: 13794
    functionLinenumberEnd: 13796
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::getDescriptionImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescriptionImpl( std::false_type ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - listenerName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13800
      start: 13799
    functionDepth: 0
    functionLinenumber: 13799
    functionLinenumberEnd: 13800
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::TypedListenerFactory
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypedListenerFactory( StringRef listenerName )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<T>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - IConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13804
      start: 13802
    functionDepth: 0
    functionLinenumber: 13802
    functionLinenumberEnd: 13804
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::create
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<T>
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr create( IConfig const* config ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13808
      start: 13806
    functionDepth: 0
    functionLinenumber: 13806
    functionLinenumberEnd: 13808
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::getName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef getName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ListenerRegistrar::TypedListenerFactory::getDescriptionImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13812
      start: 13810
    functionDepth: 2
    functionLinenumber: 13810
    functionLinenumberEnd: 13812
    functionName: Catch::ListenerRegistrar::TypedListenerFactory::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::ListenerRegistrar::TypedListenerFactory::getDescriptionImpl
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: registerListenerImpl
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13817,1
    - Dst: Detail::make_unique<TypedListenerFactory>
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listenerName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13818
      start: 13816
    functionDepth: 1
    functionLinenumber: 13816
    functionLinenumberEnd: 13818
    functionName: Catch::ListenerRegistrar::ListenerRegistrar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TypedListenerFactory>
    - registerListenerImpl
    linkageType: ''
    returnType: void
    signature: void ListenerRegistrar(StringRef listenerName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - reporterType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13832
      start: 13824
    functionDepth: 0
    functionLinenumber: 13824
    functionLinenumberEnd: 13832
    functionName: CATCH_REGISTER_REPORTER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_REPORTER( name, reporterType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - listenerType
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13841
      start: 13833
    functionDepth: 0
    functionLinenumber: 13833
    functionLinenumberEnd: 13841
    functionName: CATCH_REGISTER_LISTENER
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_REGISTER_LISTENER( listenerType )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13867
      start: 13861
    functionDepth: 1
    functionLinenumber: 13861
    functionLinenumberEnd: 13867
    functionName: Catch::SonarQubeReporter::SonarQubeReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter(ReporterConfig&& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13872
      start: 13869
    functionDepth: 0
    functionLinenumber: 13869
    functionLinenumberEnd: 13872
    functionName: Catch::SonarQubeReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::SonarQubeReporter::writeRun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13877,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13879
      start: 13876
    functionDepth: 1
    functionLinenumber: 13876
    functionLinenumberEnd: 13879
    functionName: Catch::SonarQubeReporter::testRunEndedCumulative
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::SonarQubeReporter::writeRun
    - endElement
    linkageType: ''
    returnType: void
    signature: void testRunEndedCumulative() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13867
      start: 13861
    functionDepth: 1
    functionLinenumber: 13861
    functionLinenumberEnd: 13867
    functionName: Catch::SonarQubeReporter::SonarQubeReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter(ReporterConfig&& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13872
      start: 13869
    functionDepth: 0
    functionLinenumber: 13869
    functionLinenumberEnd: 13872
    functionName: Catch::SonarQubeReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::SonarQubeReporter::writeRun
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13877,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13879
      start: 13876
    functionDepth: 1
    functionLinenumber: 13876
    functionLinenumberEnd: 13879
    functionName: Catch::SonarQubeReporter::testRunEndedCumulative
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::SonarQubeReporter::writeRun
    - endElement
    linkageType: ''
    returnType: void
    signature: void testRunEndedCumulative() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13914
      start: 13911
    functionDepth: 1
    functionLinenumber: 13911
    functionLinenumberEnd: 13914
    functionName: Catch::TAPReporter::TAPReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TAPReporter( ReporterConfig&& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13919
      start: 13916
    functionDepth: 0
    functionLinenumber: 13916
    functionLinenumberEnd: 13919
    functionName: Catch::TAPReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13914
      start: 13911
    functionDepth: 1
    functionLinenumber: 13911
    functionLinenumberEnd: 13914
    functionName: Catch::TAPReporter::TAPReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TAPReporter( ReporterConfig&& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13919
      start: 13916
    functionDepth: 0
    functionLinenumber: 13916
    functionLinenumberEnd: 13919
    functionName: Catch::TAPReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13957
      start: 13953
    functionDepth: 1
    functionLinenumber: 13953
    functionLinenumberEnd: 13957
    functionName: Catch::TeamCityReporter::TeamCityReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter( ReporterConfig&& _config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13964
      start: 13961
    functionDepth: 0
    functionLinenumber: 13961
    functionLinenumberEnd: 13964
    functionName: Catch::TeamCityReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13975
      start: 13972
    functionDepth: 1
    functionLinenumber: 13972
    functionLinenumberEnd: 13975
    functionName: Catch::TeamCityReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::sectionStarting
    linkageType: ''
    returnType: void
    signature: void sectionStarting(SectionInfo const& sectionInfo) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13957
      start: 13953
    functionDepth: 1
    functionLinenumber: 13953
    functionLinenumberEnd: 13957
    functionName: Catch::TeamCityReporter::TeamCityReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter( ReporterConfig&& _config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13964
      start: 13961
    functionDepth: 0
    functionLinenumber: 13961
    functionLinenumberEnd: 13964
    functionName: Catch::TeamCityReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/catch.hpp:13974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13975
      start: 13972
    functionDepth: 1
    functionLinenumber: 13972
    functionLinenumberEnd: 13975
    functionName: Catch::TeamCityReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/catch.hpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::sectionStarting
    linkageType: ''
    returnType: void
    signature: void sectionStarting(SectionInfo const& sectionInfo) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/multi_homed.cpp:49,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/multi_homed.cpp:49,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_homed.cpp:54,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/multi_homed.cpp:54,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_homed.cpp:58,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/multi_homed.cpp:59,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/multi_homed.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' ec'
    - bytes_transferred
    - ' s'
    argTypes:
    - boost::system::error_code
    - std::size_t
    - udp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: on_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/multi_homed.cpp
    functionUses: 2
    functionsReached:
    - duration_cast<milliseconds>
    - message
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void on_receive(boost::system::error_code const& ec, std::size_t bytes_transferred\n\t,
      udp::socket& s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:45,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:45,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:49,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:50,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:56,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:57,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:59,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:59,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:60,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' ec'
    - ' sock'
    - ' listener'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    - ip::tcp::acceptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 61
    functionName: incoming_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_accept
    - duration_cast<milliseconds>
    - message
    - std::ref
    - sim::chrono::high_resolution_clock::now
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: "void incoming_connection(boost::system::error_code const& ec\n\t,
      ip::tcp::socket& sock, ip::tcp::acceptor& listener)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:66,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:66,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:70,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:70,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:76,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:77,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:82,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:82,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:83,1
    - Dst: boost::system::error_code::message
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:83,1
    - Dst: async_connect
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:84,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:84,1
    - Dst: ip::make_address
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:84,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:85,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' ec'
    - ' sock'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - rand_v4
    - open
    - async_connect
    - duration_cast<milliseconds>
    - message
    - std::ref
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - boost::system::error_code::message
    - ip::make_address
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: "void on_connected(boost::system::error_code const& ec\n\t, ip::tcp::socket&
      sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:45,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:45,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:49,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:50,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:56,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:57,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:59,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:59,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:60,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' ec'
    - ' sock'
    - ' listener'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    - ip::tcp::acceptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 61
    functionName: incoming_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_accept
    - duration_cast<milliseconds>
    - message
    - std::ref
    - sim::chrono::high_resolution_clock::now
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: "void incoming_connection(boost::system::error_code const& ec\n\t,
      ip::tcp::socket& sock, ip::tcp::acceptor& listener)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:66,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:66,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:70,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:70,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:76,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:77,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:82,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:82,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:83,1
    - Dst: boost::system::error_code::message
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:83,1
    - Dst: async_connect
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:84,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:84,1
    - Dst: ip::make_address
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:84,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:85,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' ec'
    - ' sock'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/multi_accept.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - rand_v4
    - open
    - async_connect
    - duration_cast<milliseconds>
    - message
    - std::ref
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - boost::system::error_code::message
    - ip::make_address
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: "void on_connected(boost::system::error_code const& ec\n\t, ip::tcp::socket&
      sock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:46,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:47,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:48,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:49,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:51,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:55,1
    - Dst: endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:55,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:56,1
    - Dst: endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:56,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:61,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' ec'
    - ips
    argTypes:
    - boost::system::error_code
    - asio::ip::tcp::resolver::results_type
    assertStmts:
    - condition: (ip.endpoint().address() == *expect_it)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/test/resolver.cpp
    - condition: (ip.endpoint().port() == 8080)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/libtorrent/simulation/libsimulator/test/resolver.cpp
    - condition: (expect_it == expect.end())
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/libtorrent/simulation/libsimulator/test/resolver.cpp
    constantsTouched: []
    func_position:
      end: 62
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 62
    functionName: on_name_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/resolver.cpp
    functionUses: 0
    functionsReached:
    - assert
    - make_address_v4
    - std::vector::begin
    - endpoint
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: "void on_name_lookup(boost::system::error_code const& ec\n\t, asio::ip::tcp::resolver::results_type
      ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:69,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ec'
    - ips
    argTypes:
    - boost::system::error_code
    - asio::ip::tcp::resolver::results_type
    assertStmts:
    - condition: (ec == boost::system::error_code(asio::error::host_not_found))
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libtorrent/simulation/libsimulator/test/resolver.cpp
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: on_failed_name_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/resolver.cpp
    functionUses: 0
    functionsReached:
    - assert
    - libtorrent::socks_error::make_error_code
    linkageType: ''
    returnType: void
    signature: "void on_failed_name_lookup(boost::system::error_code const& ec\n\t,
      asio::ip::tcp::resolver::results_type ips)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:83,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:84,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:85,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:86,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:88,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:88,1
    - Dst: sim::default_config::hostname_lookup
      Src: /src/libtorrent/simulation/libsimulator/test/resolver.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' requestor'
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - asio::ip::address
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/resolver.cpp
    functionUses: 8
    functionsReached:
    - sim::default_config::hostname_lookup
    - make_address_v4
    - duration_cast<duration>
    - libtorrent::total_milliseconds
    linkageType: ''
    returnType: duration
    signature: "duration hostname_lookup(\n\t\tasio::ip::address const& requestor\n\t\t,
      std::string hostname\n\t\t, std::vector<asio::ip::address>& result\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:42,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:42,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:46,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:46,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:51,1
    - Dst: async_write_some
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:56,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:56,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:58,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:58,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:61,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' ec'
    - bytes_transferred
    - ' sock'
    argTypes:
    - boost::system::error_code
    - std::size_t
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 63
    functionName: on_sent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - duration_cast<milliseconds>
    - message
    - std::ref
    - both_sides_from_store_buffer
    - async_write_some
    - sim::chrono::high_resolution_clock::now
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: "void on_sent(boost::system::error_code const& ec, std::size_t bytes_transferred\n\t,
      ip::tcp::socket& sock)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:67,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:67,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:71,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:71,1
    - Dst: read_some
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:76,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:76,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:78,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:80,1
    - Dst: boost::system::error_code::message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:80,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:86,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:89,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:90,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' ec'
    - ' sock'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 91
    functionName: on_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - async_wait
    - duration_cast<milliseconds>
    - message
    - libtorrent::socks_error::make_error_code
    - std::ref
    - read_some
    - both_sides_from_store_buffer
    - sim::chrono::high_resolution_clock::now
    - boost::system::error_code::message
    - std::printf
    linkageType: ''
    returnType: void
    signature: void on_receive(boost::system::error_code const& ec, ip::tcp::socket&
      sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:96,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:96,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:100,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:101,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:106,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:107,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:107,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:108,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:109,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:109,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:110,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:111,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:111,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:112,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:112,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:113,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:113,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:114,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:114,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:115,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:115,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:116,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:116,1
    - Dst: non_blocking
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:118,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:119,1
    - Dst: boost::system::error_code::message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:119,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:122,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' ec'
    - ' sock'
    - ' ep'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 123
    functionName: incoming_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - ip::tcp::endpoint::address
    - async_wait
    - remote_endpoint
    - duration_cast<milliseconds>
    - message
    - non_blocking
    - std::ref
    - ip::tcp::endpoint::port
    - CHECK
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - boost::system::error_code::message
    - port
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void incoming_connection(boost::system::error_code const& ec\n\t,
      ip::tcp::socket& sock, ip::tcp::endpoint const& ep)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:128,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:128,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:132,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:132,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:137,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:138,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:138,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:139,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:140,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:141,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:143,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:143,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:144,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:144,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:146,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:146,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:147,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:147,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:148,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:148,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:149,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:149,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:151,1
    - Dst: async_write_some
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:152,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:152,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:153,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' ec'
    - ' sock'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 154
    functionName: on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/null_buffers.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - ip::tcp::endpoint::address
    - remote_endpoint
    - duration_cast<milliseconds>
    - message
    - std::ref
    - ip::tcp::endpoint::port
    - CHECK
    - both_sides_from_store_buffer
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - async_write_some
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void on_connected(boost::system::error_code const& ec\n\t, ip::tcp::socket&
      sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:44,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:44,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:48,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:48,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:54,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:55,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' ec'
    - bytes_transferred
    - ' sock'
    argTypes:
    - boost::system::error_code
    - std::size_t
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: on_sent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<milliseconds>
    - message
    - sim::chrono::high_resolution_clock::now
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: "void on_sent(boost::system::error_code const& ec, std::size_t bytes_transferred\n\t,
      ip::tcp::socket& sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:62,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:62,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:66,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:66,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:72,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:74,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:75,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' ec'
    - bytes_transferred
    - ' sock'
    argTypes:
    - boost::system::error_code
    - std::size_t
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: on_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - duration_cast<milliseconds>
    - message
    - std::ref
    - async_read_some
    - both_sides_from_store_buffer
    - sim::chrono::high_resolution_clock::now
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void on_receive(boost::system::error_code const& ec\n\t, std::size_t
      bytes_transferred, ip::tcp::socket& sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:81,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:81,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:85,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:86,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:91,1
    - Dst: REQUIRE
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:93,1
    - Dst: REQUIRE
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:94,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:95,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:96,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:96,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:97,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:97,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:98,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:98,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:99,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:99,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:100,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:100,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:101,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:101,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:103,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:103,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:104,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ' ec'
    - ' sock'
    - ' ep'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 105
    functionName: incoming_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - ip::tcp::endpoint::address
    - remote_endpoint
    - duration_cast<milliseconds>
    - message
    - std::ref
    - ip::tcp::endpoint::port
    - CHECK
    - async_read_some
    - both_sides_from_store_buffer
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - port
    - REQUIRE
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void incoming_connection(boost::system::error_code const& ec\n\t,
      ip::tcp::socket& sock, ip::tcp::endpoint const& ep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:110,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:110,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:114,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:114,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:119,1
    - Dst: REQUIRE
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:120,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:121,1
    - Dst: REQUIRE
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:122,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:124,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:126,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:126,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:127,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:127,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:129,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:129,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:130,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:130,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:131,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:131,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:132,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:132,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:134,1
    - Dst: async_write_some
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:135,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:135,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:136,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' ec'
    - ' sock'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 137
    functionName: on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - ip::tcp::endpoint::address
    - remote_endpoint
    - duration_cast<milliseconds>
    - message
    - std::ref
    - ip::tcp::endpoint::port
    - CHECK
    - both_sides_from_store_buffer
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - async_write_some
    - REQUIRE
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void on_connected(boost::system::error_code const& ec\n\t, ip::tcp::socket&
      sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:44,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:44,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:48,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:48,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:54,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:55,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' ec'
    - bytes_transferred
    - ' sock'
    argTypes:
    - boost::system::error_code
    - std::size_t
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: on_sent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<milliseconds>
    - message
    - sim::chrono::high_resolution_clock::now
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: "void on_sent(boost::system::error_code const& ec, std::size_t bytes_transferred\n\t,
      ip::tcp::socket& sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:62,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:62,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:66,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:66,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:72,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:74,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:75,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' ec'
    - bytes_transferred
    - ' sock'
    argTypes:
    - boost::system::error_code
    - std::size_t
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: on_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - duration_cast<milliseconds>
    - message
    - std::ref
    - async_read_some
    - both_sides_from_store_buffer
    - sim::chrono::high_resolution_clock::now
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void on_receive(boost::system::error_code const& ec\n\t, std::size_t
      bytes_transferred, ip::tcp::socket& sock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:81,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:81,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:85,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:86,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:91,1
    - Dst: REQUIRE
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:93,1
    - Dst: REQUIRE
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:94,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:95,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:96,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:96,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:97,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:97,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:98,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:98,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:99,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:99,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:100,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:100,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:101,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:101,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:103,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:103,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:104,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ' ec'
    - ' sock'
    - ' ep'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 105
    functionName: incoming_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - ip::tcp::endpoint::address
    - remote_endpoint
    - duration_cast<milliseconds>
    - message
    - std::ref
    - ip::tcp::endpoint::port
    - CHECK
    - async_read_some
    - both_sides_from_store_buffer
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - port
    - REQUIRE
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void incoming_connection(boost::system::error_code const& ec\n\t,
      ip::tcp::socket& sock, ip::tcp::endpoint const& ep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:110,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:110,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:114,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:114,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:119,1
    - Dst: REQUIRE
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:120,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:121,1
    - Dst: REQUIRE
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:122,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:124,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:126,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:126,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:127,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:127,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:129,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:129,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:130,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:130,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:131,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:131,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:132,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:132,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:134,1
    - Dst: async_write_some
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:135,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:135,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:136,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' ec'
    - ' sock'
    argTypes:
    - boost::system::error_code
    - ip::tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 137
    functionName: on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/acceptor.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - ip::tcp::endpoint::address
    - remote_endpoint
    - duration_cast<milliseconds>
    - message
    - std::ref
    - ip::tcp::endpoint::port
    - CHECK
    - both_sides_from_store_buffer
    - local_endpoint
    - sim::chrono::high_resolution_clock::now
    - async_write_some
    - REQUIRE
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void on_connected(boost::system::error_code const& ec\n\t, ip::tcp::socket&
      sock)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:48,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:48,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:50,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:53,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:57,1
    - Dst: CHECK
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:61,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:66,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:66,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:67,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:67,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/timer.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' timer'
    - ' ec'
    argTypes:
    - high_resolution_timer
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: print_time
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/timer.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - duration_cast<milliseconds>
    - message
    - seconds
    - expires_after
    - std::ref
    - CHECK
    - sim::chrono::high_resolution_clock::now
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void print_time(high_resolution_timer& timer\n\t, boost::system::error_code
      const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ChronometerConcept::~ChronometerConcept()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept::~ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ChronometerConcept::~ChronometerConcept()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept::~ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ChronometerConcept::~ChronometerConcept()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept::~ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ChronometerConcept::~ChronometerConcept()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept::~ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ChronometerConcept::~ChronometerConcept()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept::~ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ChronometerConcept::~ChronometerConcept()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept::~ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ChronometerConcept::~ChronometerConcept()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept::~ChronometerConcept()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ChronometerConcept::~ChronometerConcept()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChronometerConcept::~ChronometerConcept()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IConfig::benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:61,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: Catch::Benchmark::Detail::analyse_samples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:68,1
    - Dst: IConfig::benchmarkConfidenceInterval
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:69,1
    - Dst: IConfig::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:70,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:73,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:78,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:79,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:91,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:92,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:93,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:110,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:112,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:113,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - first
    - last
    argTypes:
    - IConfig
    - FDuration*
    - FDuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: Catch::Benchmark::Detail::analyse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - IConfig::benchmarkResamples
    - IConfig::benchmarkNoAnalysis
    - std::vector::push_back
    - IConfig::benchmarkConfidenceInterval
    - std::vector::data
    - std::vector::size
    - auto::count
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - CATCH_MOVE
    - Catch::Benchmark::Detail::analyse_samples
    - wrap_estimate
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: SampleAnalysis
    signature: SampleAnalysis analyse(const IConfig &cfg, FDuration* first, FDuration*
      last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IConfig::benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:61,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: Catch::Benchmark::Detail::analyse_samples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:68,1
    - Dst: IConfig::benchmarkConfidenceInterval
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:69,1
    - Dst: IConfig::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:70,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:73,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:78,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:79,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:91,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:92,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:93,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:110,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:112,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:113,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - first
    - last
    argTypes:
    - IConfig
    - FDuration*
    - FDuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: Catch::Benchmark::Detail::analyse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - IConfig::benchmarkResamples
    - IConfig::benchmarkNoAnalysis
    - std::vector::push_back
    - IConfig::benchmarkConfidenceInterval
    - std::vector::data
    - std::vector::size
    - auto::count
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - CATCH_MOVE
    - Catch::Benchmark::Detail::analyse_samples
    - wrap_estimate
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: SampleAnalysis
    signature: SampleAnalysis analyse(const IConfig &cfg, FDuration* first, FDuration*
      last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IConfig::benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:61,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: Catch::Benchmark::Detail::analyse_samples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:68,1
    - Dst: IConfig::benchmarkConfidenceInterval
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:69,1
    - Dst: IConfig::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:70,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:73,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:78,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:79,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:91,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:92,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:93,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:110,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:112,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:113,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - first
    - last
    argTypes:
    - IConfig
    - FDuration*
    - FDuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: Catch::Benchmark::Detail::analyse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - IConfig::benchmarkResamples
    - IConfig::benchmarkNoAnalysis
    - std::vector::push_back
    - IConfig::benchmarkConfidenceInterval
    - std::vector::data
    - std::vector::size
    - auto::count
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - CATCH_MOVE
    - Catch::Benchmark::Detail::analyse_samples
    - wrap_estimate
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: SampleAnalysis
    signature: SampleAnalysis analyse(const IConfig &cfg, FDuration* first, FDuration*
      last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IConfig::benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:61,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: Catch::Benchmark::Detail::analyse_samples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:68,1
    - Dst: IConfig::benchmarkConfidenceInterval
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:69,1
    - Dst: IConfig::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:70,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:73,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:78,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:79,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:91,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:92,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:93,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:110,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:112,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:113,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - first
    - last
    argTypes:
    - IConfig
    - FDuration*
    - FDuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: Catch::Benchmark::Detail::analyse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - IConfig::benchmarkResamples
    - IConfig::benchmarkNoAnalysis
    - std::vector::push_back
    - IConfig::benchmarkConfidenceInterval
    - std::vector::data
    - std::vector::size
    - auto::count
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - CATCH_MOVE
    - Catch::Benchmark::Detail::analyse_samples
    - wrap_estimate
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: SampleAnalysis
    signature: SampleAnalysis analyse(const IConfig &cfg, FDuration* first, FDuration*
      last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IConfig::benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:61,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: Catch::Benchmark::Detail::analyse_samples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:68,1
    - Dst: IConfig::benchmarkConfidenceInterval
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:69,1
    - Dst: IConfig::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:70,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:73,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:78,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:79,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:91,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:92,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:93,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:110,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:112,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:113,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - first
    - last
    argTypes:
    - IConfig
    - FDuration*
    - FDuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: Catch::Benchmark::Detail::analyse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - IConfig::benchmarkResamples
    - IConfig::benchmarkNoAnalysis
    - std::vector::push_back
    - IConfig::benchmarkConfidenceInterval
    - std::vector::data
    - std::vector::size
    - auto::count
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - CATCH_MOVE
    - Catch::Benchmark::Detail::analyse_samples
    - wrap_estimate
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: SampleAnalysis
    signature: SampleAnalysis analyse(const IConfig &cfg, FDuration* first, FDuration*
      last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IConfig::benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:61,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: Catch::Benchmark::Detail::analyse_samples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:68,1
    - Dst: IConfig::benchmarkConfidenceInterval
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:69,1
    - Dst: IConfig::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:70,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:73,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:78,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:79,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:91,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:92,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:93,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:110,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:112,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:113,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - first
    - last
    argTypes:
    - IConfig
    - FDuration*
    - FDuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: Catch::Benchmark::Detail::analyse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - IConfig::benchmarkResamples
    - IConfig::benchmarkNoAnalysis
    - std::vector::push_back
    - IConfig::benchmarkConfidenceInterval
    - std::vector::data
    - std::vector::size
    - auto::count
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - CATCH_MOVE
    - Catch::Benchmark::Detail::analyse_samples
    - wrap_estimate
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: SampleAnalysis
    signature: SampleAnalysis analyse(const IConfig &cfg, FDuration* first, FDuration*
      last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IConfig::benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:61,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: Catch::Benchmark::Detail::analyse_samples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:68,1
    - Dst: IConfig::benchmarkConfidenceInterval
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:69,1
    - Dst: IConfig::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:70,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:73,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:78,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:79,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:91,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:92,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:93,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:110,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:112,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:113,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - first
    - last
    argTypes:
    - IConfig
    - FDuration*
    - FDuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: Catch::Benchmark::Detail::analyse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - IConfig::benchmarkResamples
    - IConfig::benchmarkNoAnalysis
    - std::vector::push_back
    - IConfig::benchmarkConfidenceInterval
    - std::vector::data
    - std::vector::size
    - auto::count
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - CATCH_MOVE
    - Catch::Benchmark::Detail::analyse_samples
    - wrap_estimate
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: SampleAnalysis
    signature: SampleAnalysis analyse(const IConfig &cfg, FDuration* first, FDuration*
      last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IConfig::benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:61,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: auto::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:65,1
    - Dst: Catch::Benchmark::Detail::analyse_samples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:68,1
    - Dst: IConfig::benchmarkConfidenceInterval
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:69,1
    - Dst: IConfig::benchmarkResamples
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:70,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:71,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:72,1
    - Dst: Catch::Benchmark::Detail::classify_outliers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:73,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:74,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:78,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:79,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:87,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:91,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:92,1
    - Dst: wrap_estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:93,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:99,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:110,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:112,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:113,1
    - Dst: FDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - first
    - last
    argTypes:
    - IConfig
    - FDuration*
    - FDuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 120
    functionName: Catch::Benchmark::Detail::analyse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - IConfig::benchmarkResamples
    - IConfig::benchmarkNoAnalysis
    - std::vector::push_back
    - IConfig::benchmarkConfidenceInterval
    - std::vector::data
    - std::vector::size
    - auto::count
    - std::vector::reserve
    - Catch::Benchmark::Detail::classify_outliers
    - CATCH_MOVE
    - Catch::Benchmark::Detail::analyse_samples
    - wrap_estimate
    - FDuration
    - static_cast<size_t>
    linkageType: ''
    returnType: SampleAnalysis
    signature: SampleAnalysis analyse(const IConfig &cfg, FDuration* first, FDuration*
      last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BenchmarkFunction::callable::~callable()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction::callable::~callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BenchmarkFunction::callable::~callable()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction::callable::~callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BenchmarkFunction::callable::~callable()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction::callable::~callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BenchmarkFunction::callable::~callable()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction::callable::~callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BenchmarkFunction::callable::~callable()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction::callable::~callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BenchmarkFunction::callable::~callable()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction::callable::~callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BenchmarkFunction::callable::~callable()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction::callable::~callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: BenchmarkFunction::callable::~callable()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BenchmarkFunction::callable::~callable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Catch::Benchmark::Detail::optimized_away_error::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * optimized_away_error::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Catch::Benchmark::Detail::throw_optimized_away_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_optimized_away_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Catch::Benchmark::Detail::optimized_away_error::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * optimized_away_error::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Catch::Benchmark::Detail::throw_optimized_away_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_optimized_away_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Catch::Benchmark::Detail::optimized_away_error::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * optimized_away_error::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Catch::Benchmark::Detail::throw_optimized_away_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_optimized_away_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Catch::Benchmark::Detail::optimized_away_error::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * optimized_away_error::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Catch::Benchmark::Detail::throw_optimized_away_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_optimized_away_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Catch::Benchmark::Detail::optimized_away_error::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * optimized_away_error::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Catch::Benchmark::Detail::throw_optimized_away_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_optimized_away_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Catch::Benchmark::Detail::optimized_away_error::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * optimized_away_error::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Catch::Benchmark::Detail::throw_optimized_away_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_optimized_away_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Catch::Benchmark::Detail::optimized_away_error::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * optimized_away_error::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Catch::Benchmark::Detail::throw_optimized_away_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_optimized_away_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Catch::Benchmark::Detail::optimized_away_error::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * optimized_away_error::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Catch::Benchmark::Detail::throw_optimized_away_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_optimized_away_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:189,1
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:193,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:195,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:199,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:202,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:203,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    - Dst: sample::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ' rng'
    - resamples
    - first
    - last
    - ' estimator'
    argTypes:
    - URng
    - unsigned int
    - double*
    - double*
    - Estimator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: Catch::Benchmark::Detail::resample
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sample::begin
    - sample::end
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - std::vector::clear
    - sample::push_back
    - estimator
    - sample::reserve
    - dist
    - std::vector::reserve
    - std::sort
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample resample( URng& rng,\n                          unsigned int
      resamples,\n                          double const* first,\n                          double
      const* last,\n                          Estimator& estimator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:226,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:227,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:235,1
    - Dst: var_out
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:236,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:237,1
    - Dst: c_max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mean
    - stddev
    - n
    argTypes:
    - Estimate<double>
    - Estimate<double>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: Catch::Benchmark::Detail::outlier_variance
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - static_cast<int>
    - var_out
    - c_max
    linkageType: ''
    returnType: double
    signature: "double outlier_variance( Estimate<double> mean,\n                                                Estimate<double>
      stddev,\n                                                int n )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:247,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:275,1
    - Dst: sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: Catch::Benchmark::Detail::erf_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double erf_inv( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:320,1
    - Dst: std::accumulate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:322,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: Catch::Benchmark::Detail::standard_deviation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - std::accumulate
    - Catch::Benchmark::Detail::mean
    linkageType: ''
    returnType: double
    signature: double standard_deviation( double const* first, double const* last
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:339,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:342,1
    - Dst: sample::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: Catch::Benchmark::Detail::jackknife
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::iter_swap
    - sample::push_back
    - estimator
    - sample::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: sample
    signature: "sample jackknife( double ( *estimator )( double const*,\n                                                                double
      const* ),\n                                         double* first,\n                                         double*
      last )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:365,1
    - Dst: std::nth_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:367,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:369,1
    - Dst: std::min_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - k
    - q
    - first
    - last
    argTypes:
    - int
    - int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Catch::Benchmark::Detail::weighted_average_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::min_element
    - static_cast<double>
    - Catch::Detail::directCompare
    - std::nth_element
    linkageType: ''
    returnType: double
    signature: "double weighted_average_quantile( int k,\n                                              int
      q,\n                                              double* first,\n                                              double*
      last )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: Catch::Benchmark::Detail::classify_outliers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 24
    functionsReached:
    - std::vector::data
    - std::vector::size
    - Catch::Benchmark::Detail::weighted_average_quantile
    linkageType: ''
    returnType: OutlierClassification
    signature: OutlierClassification classify_outliers( double const* first, double
      const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: Catch::Benchmark::Detail::mean
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double mean( double const* first, double const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erfc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Catch::Benchmark::Detail::normal_cdf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::erfc
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double normal_cdf( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::erf_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Catch::Benchmark::Detail::erfc_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Benchmark::Detail::erf_inv
    linkageType: ''
    returnType: double
    signature: double erfc_inv(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:425,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:428,1
    - Dst: Catch::Benchmark::Detail::erfc_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts:
    - condition: (p >= 0 && p <= 1)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Catch::Benchmark::Detail::normal_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::sqrt
    - assert
    - Catch::Benchmark::Detail::erfc_inv
    linkageType: ''
    returnType: double
    signature: double normal_quantile(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:448,1
    - Dst: Catch::Benchmark::Detail::jackknife
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:453,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: std::pow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:465,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:469,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:471,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:473,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:477,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:478,1
    - Dst: std::lround
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: Catch::Benchmark::Detail::normal_cdf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:482,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:489,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - confidence_level
    - first
    - last
    - ' resample'
    argTypes:
    - double
    - double*
    - double*
    - sample
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 496
    functionName: Catch::Benchmark::Detail::bootstrap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - a
    - begin
    - static_cast<double>
    - static_cast<size_t>
    - Catch::Benchmark::Detail::mean
    - std::lround
    - end
    - estimator
    - std::pow
    - sample::data
    - Catch::Benchmark::Detail::normal_quantile
    - sample::size
    - cumn
    - static_cast<long>
    - size
    - Catch::Benchmark::Detail::normal_cdf
    - std::count_if
    - Catch::Benchmark::Detail::jackknife
    - Catch::Detail::directCompare
    linkageType: ''
    returnType: Estimate<double>
    signature: "Estimate<double> bootstrap( double confidence_level,\n                       double*
      first,\n                       double* last,\n                       sample
      const& resample,\n                       double ( *estimator )( double const*,
      double const* ) )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:508,1
    - Dst: std::async
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:509,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:511,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:512,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:516,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:517,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:519,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:520,1
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:524,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:526,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:527,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:530,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:531,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:534,1
    - Dst: Catch::Benchmark::Detail::outlier_variance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - confidence_level
    - n_resamples
    - first
    - last
    argTypes:
    - double
    - unsigned int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Catch::Benchmark::Detail::analyse_samples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - rd
    - auto::get
    - Catch::Benchmark::Detail::resample
    - std::async
    - Catch::Benchmark::Detail::outlier_variance
    - Catch::Benchmark::Detail::bootstrap
    - Estimate
    linkageType: ''
    returnType: bootstrap_analysis
    signature: "bootstrap_analysis analyse_samples(double confidence_level,\n                                               unsigned
      int n_resamples,\n                                               double* first,\n
      \                                              double* last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:365,1
    - Dst: std::nth_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:367,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:369,1
    - Dst: std::min_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - k
    - q
    - first
    - last
    argTypes:
    - int
    - int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Catch::Benchmark::Detail::weighted_average_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::min_element
    - static_cast<double>
    - Catch::Detail::directCompare
    - std::nth_element
    linkageType: ''
    returnType: double
    signature: "double weighted_average_quantile( int k,\n                                              int
      q,\n                                              double* first,\n                                              double*
      last )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: Catch::Benchmark::Detail::classify_outliers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 24
    functionsReached:
    - std::vector::data
    - std::vector::size
    - Catch::Benchmark::Detail::weighted_average_quantile
    linkageType: ''
    returnType: OutlierClassification
    signature: OutlierClassification classify_outliers( double const* first, double
      const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: Catch::Benchmark::Detail::mean
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 33
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double mean( double const* first, double const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erfc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Catch::Benchmark::Detail::normal_cdf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::erfc
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double normal_cdf( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::erf_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Catch::Benchmark::Detail::erfc_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::Benchmark::Detail::erf_inv
    linkageType: ''
    returnType: double
    signature: double erfc_inv(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:425,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:428,1
    - Dst: Catch::Benchmark::Detail::erfc_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts:
    - condition: (p >= 0 && p <= 1)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Catch::Benchmark::Detail::normal_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::sqrt
    - assert
    - Catch::Benchmark::Detail::erfc_inv
    linkageType: ''
    returnType: double
    signature: double normal_quantile(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:448,1
    - Dst: Catch::Benchmark::Detail::jackknife
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:453,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: std::pow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:465,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:469,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:471,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:473,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:477,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:478,1
    - Dst: std::lround
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: Catch::Benchmark::Detail::normal_cdf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:482,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:489,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - confidence_level
    - first
    - last
    - ' resample'
    argTypes:
    - double
    - double*
    - double*
    - sample
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 496
    functionName: Catch::Benchmark::Detail::bootstrap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - a
    - begin
    - static_cast<double>
    - static_cast<size_t>
    - Catch::Benchmark::Detail::mean
    - std::lround
    - end
    - estimator
    - std::pow
    - sample::data
    - Catch::Benchmark::Detail::normal_quantile
    - sample::size
    - cumn
    - static_cast<long>
    - size
    - Catch::Benchmark::Detail::normal_cdf
    - std::count_if
    - Catch::Benchmark::Detail::jackknife
    - Catch::Detail::directCompare
    linkageType: ''
    returnType: Estimate<double>
    signature: "Estimate<double> bootstrap( double confidence_level,\n                       double*
      first,\n                       double* last,\n                       sample
      const& resample,\n                       double ( *estimator )( double const*,
      double const* ) )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:508,1
    - Dst: std::async
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:509,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:511,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:512,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:516,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:517,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:519,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:520,1
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:524,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:526,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:527,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:530,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:531,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:534,1
    - Dst: Catch::Benchmark::Detail::outlier_variance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - confidence_level
    - n_resamples
    - first
    - last
    argTypes:
    - double
    - unsigned int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Catch::Benchmark::Detail::analyse_samples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - rd
    - auto::get
    - Catch::Benchmark::Detail::resample
    - std::async
    - Catch::Benchmark::Detail::outlier_variance
    - Catch::Benchmark::Detail::bootstrap
    - Estimate
    linkageType: ''
    returnType: bootstrap_analysis
    signature: "bootstrap_analysis analyse_samples(double confidence_level,\n                                               unsigned
      int n_resamples,\n                                               double* first,\n
      \                                              double* last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:365,1
    - Dst: std::nth_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:367,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:369,1
    - Dst: std::min_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - k
    - q
    - first
    - last
    argTypes:
    - int
    - int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Catch::Benchmark::Detail::weighted_average_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::min_element
    - static_cast<double>
    - Catch::Detail::directCompare
    - std::nth_element
    linkageType: ''
    returnType: double
    signature: "double weighted_average_quantile( int k,\n                                              int
      q,\n                                              double* first,\n                                              double*
      last )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: Catch::Benchmark::Detail::classify_outliers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 24
    functionsReached:
    - std::vector::data
    - std::vector::size
    - Catch::Benchmark::Detail::weighted_average_quantile
    linkageType: ''
    returnType: OutlierClassification
    signature: OutlierClassification classify_outliers( double const* first, double
      const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: Catch::Benchmark::Detail::mean
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 34
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double mean( double const* first, double const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erfc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Catch::Benchmark::Detail::normal_cdf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::erfc
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double normal_cdf( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::erf_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Catch::Benchmark::Detail::erfc_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::Benchmark::Detail::erf_inv
    linkageType: ''
    returnType: double
    signature: double erfc_inv(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:425,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:428,1
    - Dst: Catch::Benchmark::Detail::erfc_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts:
    - condition: (p >= 0 && p <= 1)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Catch::Benchmark::Detail::normal_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::sqrt
    - assert
    - Catch::Benchmark::Detail::erfc_inv
    linkageType: ''
    returnType: double
    signature: double normal_quantile(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:448,1
    - Dst: Catch::Benchmark::Detail::jackknife
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:453,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: std::pow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:465,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:469,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:471,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:473,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:477,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:478,1
    - Dst: std::lround
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: Catch::Benchmark::Detail::normal_cdf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:482,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:489,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - confidence_level
    - first
    - last
    - ' resample'
    argTypes:
    - double
    - double*
    - double*
    - sample
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 496
    functionName: Catch::Benchmark::Detail::bootstrap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - a
    - begin
    - static_cast<double>
    - static_cast<size_t>
    - Catch::Benchmark::Detail::mean
    - std::lround
    - end
    - estimator
    - std::pow
    - sample::data
    - Catch::Benchmark::Detail::normal_quantile
    - sample::size
    - cumn
    - static_cast<long>
    - size
    - Catch::Benchmark::Detail::normal_cdf
    - std::count_if
    - Catch::Benchmark::Detail::jackknife
    - Catch::Detail::directCompare
    linkageType: ''
    returnType: Estimate<double>
    signature: "Estimate<double> bootstrap( double confidence_level,\n                       double*
      first,\n                       double* last,\n                       sample
      const& resample,\n                       double ( *estimator )( double const*,
      double const* ) )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:508,1
    - Dst: std::async
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:509,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:511,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:512,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:516,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:517,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:519,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:520,1
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:524,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:526,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:527,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:530,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:531,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:534,1
    - Dst: Catch::Benchmark::Detail::outlier_variance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - confidence_level
    - n_resamples
    - first
    - last
    argTypes:
    - double
    - unsigned int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Catch::Benchmark::Detail::analyse_samples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - rd
    - auto::get
    - Catch::Benchmark::Detail::resample
    - std::async
    - Catch::Benchmark::Detail::outlier_variance
    - Catch::Benchmark::Detail::bootstrap
    - Estimate
    linkageType: ''
    returnType: bootstrap_analysis
    signature: "bootstrap_analysis analyse_samples(double confidence_level,\n                                               unsigned
      int n_resamples,\n                                               double* first,\n
      \                                              double* last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:365,1
    - Dst: std::nth_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:367,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:369,1
    - Dst: std::min_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - k
    - q
    - first
    - last
    argTypes:
    - int
    - int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Catch::Benchmark::Detail::weighted_average_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - std::min_element
    - static_cast<double>
    - Catch::Detail::directCompare
    - std::nth_element
    linkageType: ''
    returnType: double
    signature: "double weighted_average_quantile( int k,\n                                              int
      q,\n                                              double* first,\n                                              double*
      last )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: Catch::Benchmark::Detail::classify_outliers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 24
    functionsReached:
    - std::vector::data
    - std::vector::size
    - Catch::Benchmark::Detail::weighted_average_quantile
    linkageType: ''
    returnType: OutlierClassification
    signature: OutlierClassification classify_outliers( double const* first, double
      const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: Catch::Benchmark::Detail::mean
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 35
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double mean( double const* first, double const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erfc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Catch::Benchmark::Detail::normal_cdf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - std::erfc
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double normal_cdf( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::erf_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Catch::Benchmark::Detail::erfc_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::Benchmark::Detail::erf_inv
    linkageType: ''
    returnType: double
    signature: double erfc_inv(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:425,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:428,1
    - Dst: Catch::Benchmark::Detail::erfc_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts:
    - condition: (p >= 0 && p <= 1)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Catch::Benchmark::Detail::normal_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - std::sqrt
    - assert
    - Catch::Benchmark::Detail::erfc_inv
    linkageType: ''
    returnType: double
    signature: double normal_quantile(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:448,1
    - Dst: Catch::Benchmark::Detail::jackknife
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:453,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: std::pow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:465,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:469,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:471,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:473,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:477,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:478,1
    - Dst: std::lround
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: Catch::Benchmark::Detail::normal_cdf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:482,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:489,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - confidence_level
    - first
    - last
    - ' resample'
    argTypes:
    - double
    - double*
    - double*
    - sample
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 496
    functionName: Catch::Benchmark::Detail::bootstrap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - a
    - begin
    - static_cast<double>
    - static_cast<size_t>
    - Catch::Benchmark::Detail::mean
    - std::lround
    - end
    - estimator
    - std::pow
    - sample::data
    - Catch::Benchmark::Detail::normal_quantile
    - sample::size
    - cumn
    - static_cast<long>
    - size
    - Catch::Benchmark::Detail::normal_cdf
    - std::count_if
    - Catch::Benchmark::Detail::jackknife
    - Catch::Detail::directCompare
    linkageType: ''
    returnType: Estimate<double>
    signature: "Estimate<double> bootstrap( double confidence_level,\n                       double*
      first,\n                       double* last,\n                       sample
      const& resample,\n                       double ( *estimator )( double const*,
      double const* ) )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:508,1
    - Dst: std::async
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:509,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:511,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:512,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:516,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:517,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:519,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:520,1
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:524,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:526,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:527,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:530,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:531,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:534,1
    - Dst: Catch::Benchmark::Detail::outlier_variance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - confidence_level
    - n_resamples
    - first
    - last
    argTypes:
    - double
    - unsigned int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Catch::Benchmark::Detail::analyse_samples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - rd
    - auto::get
    - Catch::Benchmark::Detail::resample
    - std::async
    - Catch::Benchmark::Detail::outlier_variance
    - Catch::Benchmark::Detail::bootstrap
    - Estimate
    linkageType: ''
    returnType: bootstrap_analysis
    signature: "bootstrap_analysis analyse_samples(double confidence_level,\n                                               unsigned
      int n_resamples,\n                                               double* first,\n
      \                                              double* last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:365,1
    - Dst: std::nth_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:367,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:369,1
    - Dst: std::min_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - k
    - q
    - first
    - last
    argTypes:
    - int
    - int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Catch::Benchmark::Detail::weighted_average_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - std::min_element
    - static_cast<double>
    - Catch::Detail::directCompare
    - std::nth_element
    linkageType: ''
    returnType: double
    signature: "double weighted_average_quantile( int k,\n                                              int
      q,\n                                              double* first,\n                                              double*
      last )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: Catch::Benchmark::Detail::classify_outliers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 24
    functionsReached:
    - std::vector::data
    - std::vector::size
    - Catch::Benchmark::Detail::weighted_average_quantile
    linkageType: ''
    returnType: OutlierClassification
    signature: OutlierClassification classify_outliers( double const* first, double
      const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: Catch::Benchmark::Detail::mean
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 36
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double mean( double const* first, double const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erfc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Catch::Benchmark::Detail::normal_cdf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - std::erfc
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double normal_cdf( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::erf_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Catch::Benchmark::Detail::erfc_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::Benchmark::Detail::erf_inv
    linkageType: ''
    returnType: double
    signature: double erfc_inv(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:425,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:428,1
    - Dst: Catch::Benchmark::Detail::erfc_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts:
    - condition: (p >= 0 && p <= 1)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Catch::Benchmark::Detail::normal_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - std::sqrt
    - assert
    - Catch::Benchmark::Detail::erfc_inv
    linkageType: ''
    returnType: double
    signature: double normal_quantile(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:448,1
    - Dst: Catch::Benchmark::Detail::jackknife
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:453,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: std::pow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:465,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:469,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:471,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:473,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:477,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:478,1
    - Dst: std::lround
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: Catch::Benchmark::Detail::normal_cdf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:482,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:489,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - confidence_level
    - first
    - last
    - ' resample'
    argTypes:
    - double
    - double*
    - double*
    - sample
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 496
    functionName: Catch::Benchmark::Detail::bootstrap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - a
    - begin
    - static_cast<double>
    - static_cast<size_t>
    - Catch::Benchmark::Detail::mean
    - std::lround
    - end
    - estimator
    - std::pow
    - sample::data
    - Catch::Benchmark::Detail::normal_quantile
    - sample::size
    - cumn
    - static_cast<long>
    - size
    - Catch::Benchmark::Detail::normal_cdf
    - std::count_if
    - Catch::Benchmark::Detail::jackknife
    - Catch::Detail::directCompare
    linkageType: ''
    returnType: Estimate<double>
    signature: "Estimate<double> bootstrap( double confidence_level,\n                       double*
      first,\n                       double* last,\n                       sample
      const& resample,\n                       double ( *estimator )( double const*,
      double const* ) )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:508,1
    - Dst: std::async
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:509,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:511,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:512,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:516,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:517,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:519,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:520,1
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:524,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:526,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:527,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:530,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:531,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:534,1
    - Dst: Catch::Benchmark::Detail::outlier_variance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - confidence_level
    - n_resamples
    - first
    - last
    argTypes:
    - double
    - unsigned int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Catch::Benchmark::Detail::analyse_samples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - rd
    - auto::get
    - Catch::Benchmark::Detail::resample
    - std::async
    - Catch::Benchmark::Detail::outlier_variance
    - Catch::Benchmark::Detail::bootstrap
    - Estimate
    linkageType: ''
    returnType: bootstrap_analysis
    signature: "bootstrap_analysis analyse_samples(double confidence_level,\n                                               unsigned
      int n_resamples,\n                                               double* first,\n
      \                                              double* last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:365,1
    - Dst: std::nth_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:367,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:369,1
    - Dst: std::min_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - k
    - q
    - first
    - last
    argTypes:
    - int
    - int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Catch::Benchmark::Detail::weighted_average_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - static_cast<int>
    - std::min_element
    - static_cast<double>
    - Catch::Detail::directCompare
    - std::nth_element
    linkageType: ''
    returnType: double
    signature: "double weighted_average_quantile( int k,\n                                              int
      q,\n                                              double* first,\n                                              double*
      last )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: Catch::Benchmark::Detail::classify_outliers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 24
    functionsReached:
    - std::vector::data
    - std::vector::size
    - Catch::Benchmark::Detail::weighted_average_quantile
    linkageType: ''
    returnType: OutlierClassification
    signature: OutlierClassification classify_outliers( double const* first, double
      const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: Catch::Benchmark::Detail::mean
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 37
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double mean( double const* first, double const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erfc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Catch::Benchmark::Detail::normal_cdf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - std::erfc
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double normal_cdf( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::erf_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Catch::Benchmark::Detail::erfc_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - Catch::Benchmark::Detail::erf_inv
    linkageType: ''
    returnType: double
    signature: double erfc_inv(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:425,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:428,1
    - Dst: Catch::Benchmark::Detail::erfc_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts:
    - condition: (p >= 0 && p <= 1)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Catch::Benchmark::Detail::normal_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - std::sqrt
    - assert
    - Catch::Benchmark::Detail::erfc_inv
    linkageType: ''
    returnType: double
    signature: double normal_quantile(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:448,1
    - Dst: Catch::Benchmark::Detail::jackknife
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:453,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: std::pow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:465,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:469,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:471,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:473,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:477,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:478,1
    - Dst: std::lround
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: Catch::Benchmark::Detail::normal_cdf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:482,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:489,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - confidence_level
    - first
    - last
    - ' resample'
    argTypes:
    - double
    - double*
    - double*
    - sample
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 496
    functionName: Catch::Benchmark::Detail::bootstrap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - a
    - begin
    - static_cast<double>
    - static_cast<size_t>
    - Catch::Benchmark::Detail::mean
    - std::lround
    - end
    - estimator
    - std::pow
    - sample::data
    - Catch::Benchmark::Detail::normal_quantile
    - sample::size
    - cumn
    - static_cast<long>
    - size
    - Catch::Benchmark::Detail::normal_cdf
    - std::count_if
    - Catch::Benchmark::Detail::jackknife
    - Catch::Detail::directCompare
    linkageType: ''
    returnType: Estimate<double>
    signature: "Estimate<double> bootstrap( double confidence_level,\n                       double*
      first,\n                       double* last,\n                       sample
      const& resample,\n                       double ( *estimator )( double const*,
      double const* ) )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:508,1
    - Dst: std::async
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:509,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:511,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:512,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:516,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:517,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:519,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:520,1
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:524,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:526,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:527,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:530,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:531,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:534,1
    - Dst: Catch::Benchmark::Detail::outlier_variance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - confidence_level
    - n_resamples
    - first
    - last
    argTypes:
    - double
    - unsigned int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Catch::Benchmark::Detail::analyse_samples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - rd
    - auto::get
    - Catch::Benchmark::Detail::resample
    - std::async
    - Catch::Benchmark::Detail::outlier_variance
    - Catch::Benchmark::Detail::bootstrap
    - Estimate
    linkageType: ''
    returnType: bootstrap_analysis
    signature: "bootstrap_analysis analyse_samples(double confidence_level,\n                                               unsigned
      int n_resamples,\n                                               double* first,\n
      \                                              double* last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:365,1
    - Dst: std::nth_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:367,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:369,1
    - Dst: std::min_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - k
    - q
    - first
    - last
    argTypes:
    - int
    - int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Catch::Benchmark::Detail::weighted_average_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - std::min_element
    - static_cast<double>
    - Catch::Detail::directCompare
    - std::nth_element
    linkageType: ''
    returnType: double
    signature: "double weighted_average_quantile( int k,\n                                              int
      q,\n                                              double* first,\n                                              double*
      last )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: Catch::Benchmark::Detail::classify_outliers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 24
    functionsReached:
    - std::vector::data
    - std::vector::size
    - Catch::Benchmark::Detail::weighted_average_quantile
    linkageType: ''
    returnType: OutlierClassification
    signature: OutlierClassification classify_outliers( double const* first, double
      const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: Catch::Benchmark::Detail::mean
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 38
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double mean( double const* first, double const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erfc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Catch::Benchmark::Detail::normal_cdf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - std::erfc
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double normal_cdf( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::erf_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Catch::Benchmark::Detail::erfc_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - Catch::Benchmark::Detail::erf_inv
    linkageType: ''
    returnType: double
    signature: double erfc_inv(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:425,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:428,1
    - Dst: Catch::Benchmark::Detail::erfc_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts:
    - condition: (p >= 0 && p <= 1)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Catch::Benchmark::Detail::normal_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - std::sqrt
    - assert
    - Catch::Benchmark::Detail::erfc_inv
    linkageType: ''
    returnType: double
    signature: double normal_quantile(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:448,1
    - Dst: Catch::Benchmark::Detail::jackknife
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:453,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: std::pow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:465,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:469,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:471,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:473,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:477,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:478,1
    - Dst: std::lround
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: Catch::Benchmark::Detail::normal_cdf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:482,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:489,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - confidence_level
    - first
    - last
    - ' resample'
    argTypes:
    - double
    - double*
    - double*
    - sample
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 496
    functionName: Catch::Benchmark::Detail::bootstrap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - a
    - begin
    - static_cast<double>
    - static_cast<size_t>
    - Catch::Benchmark::Detail::mean
    - std::lround
    - end
    - estimator
    - std::pow
    - sample::data
    - Catch::Benchmark::Detail::normal_quantile
    - sample::size
    - cumn
    - static_cast<long>
    - size
    - Catch::Benchmark::Detail::normal_cdf
    - std::count_if
    - Catch::Benchmark::Detail::jackknife
    - Catch::Detail::directCompare
    linkageType: ''
    returnType: Estimate<double>
    signature: "Estimate<double> bootstrap( double confidence_level,\n                       double*
      first,\n                       double* last,\n                       sample
      const& resample,\n                       double ( *estimator )( double const*,
      double const* ) )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:508,1
    - Dst: std::async
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:509,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:511,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:512,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:516,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:517,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:519,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:520,1
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:524,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:526,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:527,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:530,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:531,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:534,1
    - Dst: Catch::Benchmark::Detail::outlier_variance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - confidence_level
    - n_resamples
    - first
    - last
    argTypes:
    - double
    - unsigned int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Catch::Benchmark::Detail::analyse_samples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - rd
    - auto::get
    - Catch::Benchmark::Detail::resample
    - std::async
    - Catch::Benchmark::Detail::outlier_variance
    - Catch::Benchmark::Detail::bootstrap
    - Estimate
    linkageType: ''
    returnType: bootstrap_analysis
    signature: "bootstrap_analysis analyse_samples(double confidence_level,\n                                               unsigned
      int n_resamples,\n                                               double* first,\n
      \                                              double* last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:365,1
    - Dst: std::nth_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:367,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:369,1
    - Dst: std::min_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - k
    - q
    - first
    - last
    argTypes:
    - int
    - int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Catch::Benchmark::Detail::weighted_average_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - static_cast<int>
    - std::min_element
    - static_cast<double>
    - Catch::Detail::directCompare
    - std::nth_element
    linkageType: ''
    returnType: double
    signature: "double weighted_average_quantile( int k,\n                                              int
      q,\n                                              double* first,\n                                              double*
      last )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:381,1
    - Dst: Catch::Benchmark::Detail::weighted_average_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: Catch::Benchmark::Detail::classify_outliers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 24
    functionsReached:
    - std::vector::data
    - std::vector::size
    - Catch::Benchmark::Detail::weighted_average_quantile
    linkageType: ''
    returnType: OutlierClassification
    signature: OutlierClassification classify_outliers( double const* first, double
      const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: Catch::Benchmark::Detail::mean
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 39
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double mean( double const* first, double const* last )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erfc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Catch::Benchmark::Detail::normal_cdf
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - std::erfc
    - std::sqrt
    linkageType: ''
    returnType: double
    signature: double normal_cdf( double x )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Benchmark::Detail::erf_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Catch::Benchmark::Detail::erfc_inv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - Catch::Benchmark::Detail::erf_inv
    linkageType: ''
    returnType: double
    signature: double erfc_inv(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::sqrt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:425,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:428,1
    - Dst: Catch::Benchmark::Detail::erfc_inv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts:
    - condition: (p >= 0 && p <= 1)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: Catch::Benchmark::Detail::normal_quantile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - std::sqrt
    - assert
    - Catch::Benchmark::Detail::erfc_inv
    linkageType: ''
    returnType: double
    signature: double normal_quantile(double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: estimator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:448,1
    - Dst: Catch::Benchmark::Detail::jackknife
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:453,1
    - Dst: Catch::Benchmark::Detail::mean
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: sample::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:455,1
    - Dst: std::pow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:465,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:466,1
    - Dst: std::count_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:468,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:469,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:471,1
    - Dst: Catch::Detail::directCompare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:473,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:477,1
    - Dst: Catch::Benchmark::Detail::normal_quantile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:478,1
    - Dst: std::lround
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: Catch::Benchmark::Detail::normal_cdf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:481,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:482,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:489,1
    - Dst: a
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:490,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:491,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    - Dst: cumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - confidence_level
    - first
    - last
    - ' resample'
    argTypes:
    - double
    - double*
    - double*
    - sample
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 496
    functionName: Catch::Benchmark::Detail::bootstrap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - a
    - begin
    - static_cast<double>
    - static_cast<size_t>
    - Catch::Benchmark::Detail::mean
    - std::lround
    - end
    - estimator
    - std::pow
    - sample::data
    - Catch::Benchmark::Detail::normal_quantile
    - sample::size
    - cumn
    - static_cast<long>
    - size
    - Catch::Benchmark::Detail::normal_cdf
    - std::count_if
    - Catch::Benchmark::Detail::jackknife
    - Catch::Detail::directCompare
    linkageType: ''
    returnType: Estimate<double>
    signature: "Estimate<double> bootstrap( double confidence_level,\n                       double*
      first,\n                       double* last,\n                       sample
      const& resample,\n                       double ( *estimator )( double const*,
      double const* ) )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:508,1
    - Dst: std::async
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:509,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:511,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:512,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:516,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:517,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:519,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:520,1
    - Dst: rd
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:524,1
    - Dst: Catch::Benchmark::Detail::resample
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:526,1
    - Dst: Catch::Benchmark::Detail::bootstrap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:527,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:530,1
    - Dst: Estimate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:531,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:534,1
    - Dst: Catch::Benchmark::Detail::outlier_variance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - confidence_level
    - n_resamples
    - first
    - last
    argTypes:
    - double
    - unsigned int
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Catch::Benchmark::Detail::analyse_samples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - rd
    - auto::get
    - Catch::Benchmark::Detail::resample
    - std::async
    - Catch::Benchmark::Detail::outlier_variance
    - Catch::Benchmark::Detail::bootstrap
    - Estimate
    linkageType: ''
    returnType: bootstrap_analysis
    signature: "bootstrap_analysis analyse_samples(double confidence_level,\n                                               unsigned
      int n_resamples,\n                                               double* first,\n
      \                                              double* last)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - margin
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 554
    functionName: marginComparison
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool marginComparison(double lhs, double rhs, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - margin
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 554
    functionName: marginComparison
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool marginComparison(double lhs, double rhs, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:561,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 565
    functionName: Catch::Approx::Approx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: void
    signature: void Approx::Approx ( double value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Approx::Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: Catch::Approx::custom
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Approx::Approx
    linkageType: ''
    returnType: Approx
    signature: Approx Approx::custom()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: Approx::operator-() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Approx
    signature: Approx Approx::operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:580,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: Catch::Approx::toString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string Approx::toString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: marginComparison
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:587,1
    - Dst: marginComparison
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:588,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:588,1
    - Dst: std::isinf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: Catch::Approx::equalityComparisonImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - marginComparison
    - std::fabs
    - std::isinf
    linkageType: ''
    returnType: bool
    signature: bool Approx::equalityComparisonImpl(const double other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newMargin
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: Catch::Approx::setMargin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void Approx::setMargin(double newMargin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - newEpsilon
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: Catch::Approx::setEpsilon
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void Approx::setEpsilon(double newEpsilon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: operator ""_a(long double val)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Approx
    linkageType: ''
    returnType: Approx
    signature: Approx operator ""_a(long double val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: operator ""_a(unsigned long long val)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Approx
    linkageType: ''
    returnType: Approx
    signature: Approx operator ""_a(unsigned long long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: operator ""_a(long double val)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Approx
    linkageType: ''
    returnType: Approx
    signature: Approx operator ""_a(long double val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: operator ""_a(unsigned long long val)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Approx
    linkageType: ''
    returnType: Approx
    signature: Approx operator ""_a(unsigned long long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Catch::Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: Catch::StringMaker<Catch::Approx>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<Catch::Approx>::convert(Catch::Approx const&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:561,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 565
    functionName: Catch::Approx::Approx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - static_cast<double>
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: void
    signature: void Approx::Approx ( double value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Approx::Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: Catch::Approx::custom
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Approx::Approx
    linkageType: ''
    returnType: Approx
    signature: Approx Approx::custom()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: Approx::operator-() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Approx
    signature: Approx Approx::operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:580,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: Catch::Approx::toString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string Approx::toString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: marginComparison
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:587,1
    - Dst: marginComparison
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:588,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:588,1
    - Dst: std::isinf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: Catch::Approx::equalityComparisonImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - marginComparison
    - std::fabs
    - std::isinf
    linkageType: ''
    returnType: bool
    signature: bool Approx::equalityComparisonImpl(const double other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newMargin
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: Catch::Approx::setMargin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void Approx::setMargin(double newMargin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - newEpsilon
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: Catch::Approx::setEpsilon
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void Approx::setEpsilon(double newEpsilon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: operator ""_a(long double val)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Approx
    linkageType: ''
    returnType: Approx
    signature: Approx operator ""_a(long double val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: operator ""_a(unsigned long long val)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Approx
    linkageType: ''
    returnType: Approx
    signature: Approx operator ""_a(unsigned long long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: operator ""_a(long double val)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Approx
    linkageType: ''
    returnType: Approx
    signature: Approx operator ""_a(long double val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Approx
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: operator ""_a(unsigned long long val)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Approx
    linkageType: ''
    returnType: Approx
    signature: Approx operator ""_a(unsigned long long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Catch::Approx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: Catch::StringMaker<Catch::Approx>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - toString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<Catch::Approx>::convert(Catch::Approx const&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _resultType
    - ' _lazyExpression'
    argTypes:
    - ResultWas::OfType
    - LazyExpression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 626
    functionName: Catch::AssertionResultData::AssertionResultData
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionResultData::AssertionResultData(ResultWas::OfType _resultType,
      LazyExpression const & _lazyExpression)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:630,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 638
    functionName: Catch::AssertionResultData::reconstructExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string AssertionResultData::reconstructExpression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' info'
    - ' data'
    argTypes:
    - AssertionInfo
    - AssertionResultData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: Catch::AssertionResult::AssertionResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData&&
      data )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 648
    functionName: Catch::AssertionResult::succeeded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isOk
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::succeeded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:652,1
    - Dst: shouldSuppressFailure
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: Catch::AssertionResult::isOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isOk
    - shouldSuppressFailure
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::isOk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: Catch::AssertionResult::getResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultWas::OfType
    signature: ResultWas::OfType AssertionResult::getResultType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: capturedExpression::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 661
    functionName: Catch::AssertionResult::hasExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - capturedExpression::empty
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::hasExpression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: message::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 665
    functionName: Catch::AssertionResult::hasMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - message::empty
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::hasMessage() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:669,1
    - Dst: capturedExpression::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:669,1
    - Dst: isFalseTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:670,1
    - Dst: isFalseTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: Catch::AssertionResult::getExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - capturedExpression::size
    - isFalseTest
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string AssertionResult::getExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: macroName::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:681,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:682,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:685,1
    - Dst: macroName::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:685,1
    - Dst: capturedExpression::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 691
    functionName: Catch::AssertionResult::getExpressionInMacro
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - macroName::empty
    - capturedExpression::size
    - static_cast<std::string>
    - macroName::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string AssertionResult::getExpressionInMacro() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionResult::hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:694,1
    - Dst: Catch::AssertionResult::getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:694,1
    - Dst: Catch::AssertionResult::getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 695
    functionName: Catch::AssertionResult::hasExpandedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::AssertionResult::getExpression
    - Catch::AssertionResult::hasExpression
    - Catch::AssertionResult::getExpandedExpression
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::hasExpandedExpression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reconstructExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:698,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:699,1
    - Dst: Catch::AssertionResult::getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: Catch::AssertionResult::getExpandedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - Catch::AssertionResult::getExpression
    - reconstructExpression
    linkageType: ''
    returnType: std::string
    signature: std::string AssertionResult::getExpandedExpression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: Catch::AssertionResult::getMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef AssertionResult::getMessage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 709
    functionName: Catch::AssertionResult::getSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SourceLineInfo
    signature: SourceLineInfo AssertionResult::getSourceInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: Catch::AssertionResult::getTestMacroName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef AssertionResult::getTestMacroName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _resultType
    - ' _lazyExpression'
    argTypes:
    - ResultWas::OfType
    - LazyExpression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 626
    functionName: Catch::AssertionResultData::AssertionResultData
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionResultData::AssertionResultData(ResultWas::OfType _resultType,
      LazyExpression const & _lazyExpression)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:630,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 638
    functionName: Catch::AssertionResultData::reconstructExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string AssertionResultData::reconstructExpression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' info'
    - ' data'
    argTypes:
    - AssertionInfo
    - AssertionResultData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: Catch::AssertionResult::AssertionResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData&&
      data )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 648
    functionName: Catch::AssertionResult::succeeded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isOk
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::succeeded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:652,1
    - Dst: shouldSuppressFailure
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: Catch::AssertionResult::isOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isOk
    - shouldSuppressFailure
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::isOk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: Catch::AssertionResult::getResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultWas::OfType
    signature: ResultWas::OfType AssertionResult::getResultType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: capturedExpression::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 661
    functionName: Catch::AssertionResult::hasExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - capturedExpression::empty
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::hasExpression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: message::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 665
    functionName: Catch::AssertionResult::hasMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - message::empty
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::hasMessage() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:669,1
    - Dst: capturedExpression::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:669,1
    - Dst: isFalseTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:670,1
    - Dst: isFalseTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: Catch::AssertionResult::getExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - capturedExpression::size
    - isFalseTest
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string AssertionResult::getExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: macroName::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:681,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:682,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:685,1
    - Dst: macroName::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:685,1
    - Dst: capturedExpression::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 691
    functionName: Catch::AssertionResult::getExpressionInMacro
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - macroName::empty
    - capturedExpression::size
    - static_cast<std::string>
    - macroName::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string AssertionResult::getExpressionInMacro() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionResult::hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:694,1
    - Dst: Catch::AssertionResult::getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:694,1
    - Dst: Catch::AssertionResult::getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 695
    functionName: Catch::AssertionResult::hasExpandedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::AssertionResult::getExpression
    - Catch::AssertionResult::hasExpression
    - Catch::AssertionResult::getExpandedExpression
    linkageType: ''
    returnType: bool
    signature: bool AssertionResult::hasExpandedExpression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reconstructExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:698,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:699,1
    - Dst: Catch::AssertionResult::getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: Catch::AssertionResult::getExpandedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - Catch::AssertionResult::getExpression
    - reconstructExpression
    linkageType: ''
    returnType: std::string
    signature: std::string AssertionResult::getExpandedExpression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: Catch::AssertionResult::getMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef AssertionResult::getMessage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 709
    functionName: Catch::AssertionResult::getSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SourceLineInfo
    signature: SourceLineInfo AssertionResult::getSourceInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: Catch::AssertionResult::getTestMacroName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef AssertionResult::getTestMacroName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: Catch::enableBazelEnvSupport
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::getEnv
    linkageType: ''
    returnType: bool
    signature: bool enableBazelEnvSupport()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:738,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:739,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:740,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:749,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:754,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:757,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:760,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:765,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:767,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:772,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:774,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 783
    functionName: Catch::readBazelShardingOptions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::parseUInt
    - Catch::cerr
    - warn
    - Catch::Detail::getEnv
    linkageType: ''
    returnType: Optional<bazelShardingOptions>
    signature: Optional<bazelShardingOptions> readBazelShardingOptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: Catch::enableBazelEnvSupport
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::getEnv
    linkageType: ''
    returnType: bool
    signature: bool enableBazelEnvSupport()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:738,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:739,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:740,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:749,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:754,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:757,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:760,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:765,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:767,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:772,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:774,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 783
    functionName: Catch::readBazelShardingOptions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::parseUInt
    - Catch::cerr
    - warn
    - Catch::Detail::getEnv
    linkageType: ''
    returnType: Optional<bazelShardingOptions>
    signature: Optional<bazelShardingOptions> readBazelShardingOptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ProcessedReporterSpec
    - ProcessedReporterSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: "operator==( ProcessedReporterSpec const& lhs,\n                     ProcessedReporterSpec
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==( ProcessedReporterSpec const& lhs,\n                     ProcessedReporterSpec
      const& rhs )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:802,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:805,1
    - Dst: reporterSpecifications::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:809,1
    - Dst: parseReporterSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:815,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:816,1
    - Dst: reporterSpecifications::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:819,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:819,1
    - Dst: enableBazelEnvSupport
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:822,1
    - Dst: Catch::Config::readBazelEnvVars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:823,1
    - Dst: testsOrTags::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:829,1
    - Dst: TestSpecParser::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:832,1
    - Dst: TestSpecParser::testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:835,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:845,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:846,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:852,1
    - Dst: Catch::Config::name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:853,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:854,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:854,1
    - Dst: colourMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:856,1
    - Dst: customOptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:857,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - ConfigData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 859
    functionName: Catch::Config::Config
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Config::name
    - reporterSpecifications::push_back
    - parseReporterSpec
    - testsOrTags::empty
    - push_back
    - std::move
    - customOptions
    - reporterSpecifications::empty
    - CATCH_ENFORCE
    - TestSpecParser::testSpec
    - outputFile
    - Catch::Config::readBazelEnvVars
    - colourMode
    - TestSpecParser::parse
    - trim
    - enableBazelEnvSupport
    linkageType: ''
    returnType: void
    signature: void Config::Config( ConfigData const& data )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 861
    functionName: Config::~Config()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config::~Config()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 864
    functionName: Catch::Config::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::listTests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 865
    functionName: Catch::Config::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::listTags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 866
    functionName: Catch::Config::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::listReporters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 867
    functionName: Catch::Config::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::listListeners() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 869
    functionName: '& Config::getTestsOrTags() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & Config::getTestsOrTags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 870
    functionName: '& Config::getSectionsToRun() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & Config::getSectionsToRun() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: '& Config::getReporterSpecs() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<ReporterSpec>
    signature: std::vector<ReporterSpec> & Config::getReporterSpecs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: "&\n    Config::getProcessedReporterSpecs() const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<ProcessedReporterSpec>
    signature: "std::vector<ProcessedReporterSpec> &\n    Config::getProcessedReporterSpecs()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 881
    functionName: '& Config::testSpec() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestSpec
    signature: TestSpec & Config::testSpec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 882
    functionName: Catch::Config::hasTestFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::hasTestFilters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 884
    functionName: Catch::Config::showHelp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::showHelp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 887
    functionName: Catch::Config::allowThrows
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::allowThrows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 888
    functionName: Catch::Config::name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - name::empty
    linkageType: ''
    returnType: StringRef
    signature: StringRef Config::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 889
    functionName: Catch::Config::includeSuccessfulResults
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::includeSuccessfulResults() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 892
    functionName: Catch::Config::warnAboutMissingAssertions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::warnAboutMissingAssertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: Catch::Config::warnAboutUnmatchedTestSpecs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::warnAboutUnmatchedTestSpecs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 896
    functionName: Catch::Config::zeroTestsCountAsSuccess
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::zeroTestsCountAsSuccess() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 897
    functionName: Catch::Config::showDurations
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ShowDurations
    signature: ShowDurations Config::showDurations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 898
    functionName: Catch::Config::minDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double Config::minDuration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 899
    functionName: Catch::Config::runOrder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestRunOrder
    signature: TestRunOrder Config::runOrder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 900
    functionName: Catch::Config::rngSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Config::rngSeed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 901
    functionName: Catch::Config::shardCount
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Config::shardCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 902
    functionName: Catch::Config::shardIndex
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Config::shardIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: Catch::Config::defaultColourMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColourMode
    signature: ColourMode Config::defaultColourMode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 904
    functionName: Catch::Config::shouldDebugBreak
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::shouldDebugBreak() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 905
    functionName: Catch::Config::abortAfter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Config::abortAfter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 906
    functionName: Catch::Config::showInvisibles
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::showInvisibles() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 907
    functionName: Catch::Config::verbosity
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Verbosity
    signature: Verbosity Config::verbosity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 909
    functionName: Catch::Config::skipBenchmarks
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::skipBenchmarks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 910
    functionName: Catch::Config::benchmarkNoAnalysis
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::benchmarkNoAnalysis() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 911
    functionName: Catch::Config::benchmarkSamples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Config::benchmarkSamples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 912
    functionName: Catch::Config::benchmarkConfidenceInterval
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double Config::benchmarkConfidenceInterval() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 913
    functionName: Catch::Config::benchmarkResamples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Config::benchmarkResamples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 914
    functionName: Catch::Config::benchmarkWarmupTime
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::total_milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds Config::benchmarkWarmupTime() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:922,1
    - Dst: reporterSpecifications::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:925,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:926,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:929,1
    - Dst: testsOrTags::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:933,1
    - Dst: testsOrTags::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:934,1
    - Dst: readBazelShardingOptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:937,1
    - Dst: std::ofstream::is_open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 947
    functionName: Catch::Config::readBazelEnvVars
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - reporterSpecifications::push_back
    - testsOrTags::clear
    - testsOrTags::push_back
    - Catch::Detail::getEnv
    - readBazelShardingOptions
    - std::string
    - std::ofstream::is_open
    linkageType: ''
    returnType: void
    signature: void Config::readBazelEnvVars()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: Catch::enableBazelEnvSupport
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::getEnv
    linkageType: ''
    returnType: bool
    signature: bool enableBazelEnvSupport()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:738,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:739,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:740,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:749,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:754,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:757,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:760,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:765,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:767,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:772,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:774,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 783
    functionName: Catch::readBazelShardingOptions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::parseUInt
    - Catch::cerr
    - warn
    - Catch::Detail::getEnv
    linkageType: ''
    returnType: Optional<bazelShardingOptions>
    signature: Optional<bazelShardingOptions> readBazelShardingOptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: Catch::enableBazelEnvSupport
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::getEnv
    linkageType: ''
    returnType: bool
    signature: bool enableBazelEnvSupport()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:738,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:739,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:740,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:749,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:754,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:757,1
    - Dst: warn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:760,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:765,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:767,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:772,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:774,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 783
    functionName: Catch::readBazelShardingOptions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::parseUInt
    - Catch::cerr
    - warn
    - Catch::Detail::getEnv
    linkageType: ''
    returnType: Optional<bazelShardingOptions>
    signature: Optional<bazelShardingOptions> readBazelShardingOptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ProcessedReporterSpec
    - ProcessedReporterSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: "operator==( ProcessedReporterSpec const& lhs,\n                     ProcessedReporterSpec
      const& rhs )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==( ProcessedReporterSpec const& lhs,\n                     ProcessedReporterSpec
      const& rhs )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:802,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:805,1
    - Dst: reporterSpecifications::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:809,1
    - Dst: parseReporterSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:815,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:816,1
    - Dst: reporterSpecifications::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:819,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:819,1
    - Dst: enableBazelEnvSupport
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:822,1
    - Dst: Catch::Config::readBazelEnvVars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:823,1
    - Dst: testsOrTags::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:829,1
    - Dst: TestSpecParser::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:832,1
    - Dst: TestSpecParser::testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:835,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:845,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:846,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:852,1
    - Dst: Catch::Config::name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:853,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:854,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:854,1
    - Dst: colourMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:856,1
    - Dst: customOptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:857,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - ConfigData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 859
    functionName: Catch::Config::Config
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Config::name
    - reporterSpecifications::push_back
    - parseReporterSpec
    - testsOrTags::empty
    - push_back
    - std::move
    - customOptions
    - reporterSpecifications::empty
    - CATCH_ENFORCE
    - TestSpecParser::testSpec
    - outputFile
    - Catch::Config::readBazelEnvVars
    - colourMode
    - TestSpecParser::parse
    - trim
    - enableBazelEnvSupport
    linkageType: ''
    returnType: void
    signature: void Config::Config( ConfigData const& data )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 861
    functionName: Config::~Config()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config::~Config()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 864
    functionName: Catch::Config::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::listTests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 865
    functionName: Catch::Config::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::listTags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 866
    functionName: Catch::Config::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::listReporters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 867
    functionName: Catch::Config::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::listListeners() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 869
    functionName: '& Config::getTestsOrTags() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & Config::getTestsOrTags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 870
    functionName: '& Config::getSectionsToRun() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & Config::getSectionsToRun() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: '& Config::getReporterSpecs() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<ReporterSpec>
    signature: std::vector<ReporterSpec> & Config::getReporterSpecs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: "&\n    Config::getProcessedReporterSpecs() const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<ProcessedReporterSpec>
    signature: "std::vector<ProcessedReporterSpec> &\n    Config::getProcessedReporterSpecs()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 881
    functionName: '& Config::testSpec() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestSpec
    signature: TestSpec & Config::testSpec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 882
    functionName: Catch::Config::hasTestFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::hasTestFilters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 884
    functionName: Catch::Config::showHelp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::showHelp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 887
    functionName: Catch::Config::allowThrows
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::allowThrows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 888
    functionName: Catch::Config::name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - name::empty
    linkageType: ''
    returnType: StringRef
    signature: StringRef Config::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 889
    functionName: Catch::Config::includeSuccessfulResults
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::includeSuccessfulResults() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 892
    functionName: Catch::Config::warnAboutMissingAssertions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::warnAboutMissingAssertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: Catch::Config::warnAboutUnmatchedTestSpecs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::warnAboutUnmatchedTestSpecs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 896
    functionName: Catch::Config::zeroTestsCountAsSuccess
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::zeroTestsCountAsSuccess() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 897
    functionName: Catch::Config::showDurations
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ShowDurations
    signature: ShowDurations Config::showDurations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 898
    functionName: Catch::Config::minDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double Config::minDuration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 899
    functionName: Catch::Config::runOrder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestRunOrder
    signature: TestRunOrder Config::runOrder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 900
    functionName: Catch::Config::rngSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Config::rngSeed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 901
    functionName: Catch::Config::shardCount
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Config::shardCount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 902
    functionName: Catch::Config::shardIndex
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Config::shardIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: Catch::Config::defaultColourMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColourMode
    signature: ColourMode Config::defaultColourMode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 904
    functionName: Catch::Config::shouldDebugBreak
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::shouldDebugBreak() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 905
    functionName: Catch::Config::abortAfter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Config::abortAfter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 906
    functionName: Catch::Config::showInvisibles
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::showInvisibles() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 907
    functionName: Catch::Config::verbosity
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Verbosity
    signature: Verbosity Config::verbosity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 909
    functionName: Catch::Config::skipBenchmarks
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::skipBenchmarks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 910
    functionName: Catch::Config::benchmarkNoAnalysis
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Config::benchmarkNoAnalysis() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 911
    functionName: Catch::Config::benchmarkSamples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Config::benchmarkSamples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 912
    functionName: Catch::Config::benchmarkConfidenceInterval
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double Config::benchmarkConfidenceInterval() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 913
    functionName: Catch::Config::benchmarkResamples
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int Config::benchmarkResamples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 914
    functionName: Catch::Config::benchmarkWarmupTime
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::total_milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds Config::benchmarkWarmupTime() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:922,1
    - Dst: reporterSpecifications::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:925,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:926,1
    - Dst: Catch::Detail::getEnv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:929,1
    - Dst: testsOrTags::clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:933,1
    - Dst: testsOrTags::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:934,1
    - Dst: readBazelShardingOptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:937,1
    - Dst: std::ofstream::is_open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 947
    functionName: Catch::Config::readBazelEnvVars
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - reporterSpecifications::push_back
    - testsOrTags::clear
    - testsOrTags::push_back
    - Catch::Detail::getEnv
    - readBazelShardingOptions
    - std::string
    - std::ofstream::is_open
    linkageType: ''
    returnType: void
    signature: void Config::readBazelEnvVars()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 958
    functionName: Catch::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getCurrentContext
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 958
    functionName: Catch::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getCurrentContext
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:972,1
    - Dst: m_stream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:973,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' builder'
    argTypes:
    - MessageBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: Catch::ScopedMessage::ScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - CATCH_MOVE
    - m_stream::str
    linkageType: ''
    returnType: void
    signature: void ScopedMessage::ScopedMessage( MessageBuilder&& builder )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' old'
    argTypes:
    - ScopedMessage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 980
    functionName: Catch::ScopedMessage::ScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ScopedMessage::ScopedMessage( ScopedMessage&& old ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uncaught_exceptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:983,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 986
    functionName: ScopedMessage::~ScopedMessage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - uncaught_exceptions
    linkageType: ''
    returnType: void
    signature: void ScopedMessage::~ScopedMessage()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:993,1
    - Dst: isspace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:995,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:995,1
    - Dst: isspace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:998,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:998,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1001,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1004,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1010,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1015,1
    - Dst: std::stack::push
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1024,1
    - Dst: std::stack::pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1030,1
    - Dst: skipq
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1034,1
    - Dst: std::stack::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1037,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1038,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1039,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1039,1
    - Dst: trimmed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1039,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1040,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1046,1
    - Dst: std::stack::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1046,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1047,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1048,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1048,1
    - Dst: trimmed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1048,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1048,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1049,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - macroName
    - ' lineInfo'
    - resultType
    - names
    argTypes:
    - StringRef
    - SourceLineInfo
    - ResultWas::OfType
    - StringRef
    assertStmts:
    - condition: (openings.empty() && "Mismatched openings")
      pos:
        line_end: 1045
        line_start: 1045
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1050
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1050
    functionName: Catch::Capturer::Capturer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - StringRef::substr
    - std::stack::empty
    - isspace
    - StringRef::size
    - static_cast<unsigned char>
    - CATCH_INTERNAL_ERROR
    - getResultCapture
    - std::stack::push
    - trimmed
    - back
    - std::stack::pop
    - emplace_back
    - static_cast<std::string>
    - skipq
    linkageType: ''
    returnType: void
    signature: "void Capturer::Capturer( StringRef macroName,\n                        SourceLineInfo
      const& lineInfo,\n                        ResultWas::OfType resultType,\n                        StringRef
      names )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uncaught_exceptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1052,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1053,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1053,1
    - Dst: popScopedMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_captured == m_messages.size() )
      pos:
        line_end: 1052
        line_start: 1052
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1057
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1057
    functionName: Capturer::~Capturer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - popScopedMessage
    - assert
    - size
    - uncaught_exceptions
    linkageType: ''
    returnType: void
    signature: void Capturer::~Capturer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1060,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1060,1
    - Dst: pushScopedMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - index
    - ' value'
    argTypes:
    - size_t
    - std::string
    assertStmts:
    - condition: ( index < m_messages.size() )
      pos:
        line_end: 1059
        line_start: 1059
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1064
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1064
    functionName: Catch::Capturer::captureValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - pushScopedMessage
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void Capturer::captureValue( size_t index, std::string const& value
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:972,1
    - Dst: m_stream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:973,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' builder'
    argTypes:
    - MessageBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: Catch::ScopedMessage::ScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - CATCH_MOVE
    - m_stream::str
    linkageType: ''
    returnType: void
    signature: void ScopedMessage::ScopedMessage( MessageBuilder&& builder )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' old'
    argTypes:
    - ScopedMessage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 980
    functionName: Catch::ScopedMessage::ScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ScopedMessage::ScopedMessage( ScopedMessage&& old ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uncaught_exceptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:983,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 986
    functionName: ScopedMessage::~ScopedMessage()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - uncaught_exceptions
    linkageType: ''
    returnType: void
    signature: void ScopedMessage::~ScopedMessage()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:993,1
    - Dst: isspace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:995,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:995,1
    - Dst: isspace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:998,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:998,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1001,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1004,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1010,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1015,1
    - Dst: std::stack::push
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1024,1
    - Dst: std::stack::pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1030,1
    - Dst: skipq
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1034,1
    - Dst: std::stack::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1037,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1038,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1039,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1039,1
    - Dst: trimmed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1039,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1040,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1046,1
    - Dst: std::stack::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1046,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1047,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1048,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1048,1
    - Dst: trimmed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1048,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1048,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1049,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - macroName
    - ' lineInfo'
    - resultType
    - names
    argTypes:
    - StringRef
    - SourceLineInfo
    - ResultWas::OfType
    - StringRef
    assertStmts:
    - condition: (openings.empty() && "Mismatched openings")
      pos:
        line_end: 1045
        line_start: 1045
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1050
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1050
    functionName: Catch::Capturer::Capturer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - StringRef::substr
    - std::stack::empty
    - isspace
    - StringRef::size
    - static_cast<unsigned char>
    - CATCH_INTERNAL_ERROR
    - getResultCapture
    - std::stack::push
    - trimmed
    - back
    - std::stack::pop
    - emplace_back
    - static_cast<std::string>
    - skipq
    linkageType: ''
    returnType: void
    signature: "void Capturer::Capturer( StringRef macroName,\n                        SourceLineInfo
      const& lineInfo,\n                        ResultWas::OfType resultType,\n                        StringRef
      names )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uncaught_exceptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1052,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1053,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1053,1
    - Dst: popScopedMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_captured == m_messages.size() )
      pos:
        line_end: 1052
        line_start: 1052
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1057
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1057
    functionName: Capturer::~Capturer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - popScopedMessage
    - assert
    - size
    - uncaught_exceptions
    linkageType: ''
    returnType: void
    signature: void Capturer::~Capturer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1060,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1060,1
    - Dst: pushScopedMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - index
    - ' value'
    argTypes:
    - size_t
    - std::string
    assertStmts:
    - condition: ( index < m_messages.size() )
      pos:
        line_end: 1059
        line_start: 1059
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1064
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1064
    functionName: Catch::Capturer::captureValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - pushScopedMessage
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void Capturer::captureValue( size_t index, std::string const& value
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1082
    functionName: Catch::RegistryHub::RegistryHub
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1085
    functionName: '& getReporterRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReporterRegistry
    signature: ReporterRegistry & getReporterRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    functionName: '& getTestCaseRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITestCaseRegistry
    signature: ITestCaseRegistry & getTestCaseRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: '& getExceptionTranslatorRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IExceptionTranslatorRegistry
    signature: IExceptionTranslatorRegistry & getExceptionTranslatorRegistry() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    functionName: '& getTagAliasRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITagAliasRegistry
    signature: ITagAliasRegistry & getTagAliasRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1097
    functionName: '& getStartupExceptionRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StartupExceptionRegistry
    signature: StartupExceptionRegistry & getStartupExceptionRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1101,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - factory
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1102
    functionName: Catch::RegistryHub::registerReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RegistryHub::registerReporter
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerReporter( std::string const& name, IReporterFactoryPtr
      factory ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerListener
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - factory
    argTypes:
    - Detail::unique_ptr<EventListenerFactory>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1105
    functionName: Catch::RegistryHub::registerListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RegistryHub::registerListener
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerListener( Detail::unique_ptr<EventListenerFactory> factory
      ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' testInfo'
    - ' invoker'
    argTypes:
    - Detail::unique_ptr<TestCaseInfo>
    - Detail::unique_ptr<ITestInvoker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1108
    functionName: Catch::RegistryHub::registerTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RegistryHub::registerTest
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerTest( Detail::unique_ptr<TestCaseInfo>&& testInfo, Detail::unique_ptr<ITestInvoker>&&
      invoker ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerTranslator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1110,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1111
    functionName: Catch::RegistryHub::registerTranslator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RegistryHub::registerTranslator
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerTranslator( Detail::unique_ptr<IExceptionTranslator>&&
      translator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alias'
    - ' tag'
    - ' lineInfo'
    argTypes:
    - std::string
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1114
    functionName: Catch::RegistryHub::registerTagAlias
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - add
    linkageType: ''
    returnType: void
    signature: void registerTagAlias( std::string const& alias, std::string const&
      tag, SourceLineInfo const& lineInfo ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1117,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1117,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1121
    functionName: Catch::RegistryHub::registerStartupException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - std::current_exception
    - add
    linkageType: ''
    returnType: void
    signature: void registerStartupException() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1124
    functionName: '& getMutableEnumValuesRegistry() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IMutableEnumValuesRegistry
    signature: IMutableEnumValuesRegistry & getMutableEnumValuesRegistry() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1082
    functionName: Catch::RegistryHub::RegistryHub
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1085
    functionName: '& getReporterRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReporterRegistry
    signature: ReporterRegistry & getReporterRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    functionName: '& getTestCaseRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITestCaseRegistry
    signature: ITestCaseRegistry & getTestCaseRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: '& getExceptionTranslatorRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IExceptionTranslatorRegistry
    signature: IExceptionTranslatorRegistry & getExceptionTranslatorRegistry() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    functionName: '& getTagAliasRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITagAliasRegistry
    signature: ITagAliasRegistry & getTagAliasRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1097
    functionName: '& getStartupExceptionRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StartupExceptionRegistry
    signature: StartupExceptionRegistry & getStartupExceptionRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1101,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - factory
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1102
    functionName: Catch::RegistryHub::registerReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RegistryHub::registerReporter
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerReporter( std::string const& name, IReporterFactoryPtr
      factory ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerListener
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - factory
    argTypes:
    - Detail::unique_ptr<EventListenerFactory>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1105
    functionName: Catch::RegistryHub::registerListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RegistryHub::registerListener
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerListener( Detail::unique_ptr<EventListenerFactory> factory
      ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' testInfo'
    - ' invoker'
    argTypes:
    - Detail::unique_ptr<TestCaseInfo>
    - Detail::unique_ptr<ITestInvoker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1108
    functionName: Catch::RegistryHub::registerTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RegistryHub::registerTest
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerTest( Detail::unique_ptr<TestCaseInfo>&& testInfo, Detail::unique_ptr<ITestInvoker>&&
      invoker ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerTranslator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1110,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1111
    functionName: Catch::RegistryHub::registerTranslator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RegistryHub::registerTranslator
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerTranslator( Detail::unique_ptr<IExceptionTranslator>&&
      translator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alias'
    - ' tag'
    - ' lineInfo'
    argTypes:
    - std::string
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1114
    functionName: Catch::RegistryHub::registerTagAlias
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - add
    linkageType: ''
    returnType: void
    signature: void registerTagAlias( std::string const& alias, std::string const&
      tag, SourceLineInfo const& lineInfo ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1117,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1117,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1121
    functionName: Catch::RegistryHub::registerStartupException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - std::current_exception
    - add
    linkageType: ''
    returnType: void
    signature: void registerStartupException() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1124
    functionName: '& getMutableEnumValuesRegistry() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IMutableEnumValuesRegistry
    signature: IMutableEnumValuesRegistry & getMutableEnumValuesRegistry() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_set_and_get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1140
    functionName: Catch::getRegistryHub
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - test_set_and_get
    linkageType: ''
    returnType: IRegistryHub
    signature: IRegistryHub & getRegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Singleton::getMutable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1143
    functionName: Catch::getMutableRegistryHub
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Singleton::getMutable
    linkageType: ''
    returnType: IMutableRegistryHub
    signature: IMutableRegistryHub & getMutableRegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cleanupSingletons
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1145,1
    - Dst: Catch::cleanUpContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1147
    functionName: Catch::cleanUp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cleanupSingletons
    - Catch::cleanUpContext
    linkageType: ''
    returnType: void
    signature: void cleanUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1148
    functionDepth: 3
    functionLinenumber: 1148
    functionLinenumberEnd: 1150
    functionName: Catch::translateActiveException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::getRegistryHub
    linkageType: ''
    returnType: std::string
    signature: std::string translateActiveException()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1082
    functionName: Catch::RegistryHub::RegistryHub
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1085
    functionName: '& getReporterRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReporterRegistry
    signature: ReporterRegistry & getReporterRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    functionName: '& getTestCaseRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITestCaseRegistry
    signature: ITestCaseRegistry & getTestCaseRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: '& getExceptionTranslatorRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IExceptionTranslatorRegistry
    signature: IExceptionTranslatorRegistry & getExceptionTranslatorRegistry() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    functionName: '& getTagAliasRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITagAliasRegistry
    signature: ITagAliasRegistry & getTagAliasRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1097
    functionName: '& getStartupExceptionRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StartupExceptionRegistry
    signature: StartupExceptionRegistry & getStartupExceptionRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1101,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - factory
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1102
    functionName: Catch::RegistryHub::registerReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::RegistryHub::registerReporter
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerReporter( std::string const& name, IReporterFactoryPtr
      factory ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerListener
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - factory
    argTypes:
    - Detail::unique_ptr<EventListenerFactory>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1105
    functionName: Catch::RegistryHub::registerListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::RegistryHub::registerListener
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerListener( Detail::unique_ptr<EventListenerFactory> factory
      ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' testInfo'
    - ' invoker'
    argTypes:
    - Detail::unique_ptr<TestCaseInfo>
    - Detail::unique_ptr<ITestInvoker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1108
    functionName: Catch::RegistryHub::registerTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::RegistryHub::registerTest
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerTest( Detail::unique_ptr<TestCaseInfo>&& testInfo, Detail::unique_ptr<ITestInvoker>&&
      invoker ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerTranslator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1110,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1111
    functionName: Catch::RegistryHub::registerTranslator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::RegistryHub::registerTranslator
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerTranslator( Detail::unique_ptr<IExceptionTranslator>&&
      translator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alias'
    - ' tag'
    - ' lineInfo'
    argTypes:
    - std::string
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1114
    functionName: Catch::RegistryHub::registerTagAlias
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - add
    linkageType: ''
    returnType: void
    signature: void registerTagAlias( std::string const& alias, std::string const&
      tag, SourceLineInfo const& lineInfo ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1117,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1117,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1121
    functionName: Catch::RegistryHub::registerStartupException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - std::current_exception
    - add
    linkageType: ''
    returnType: void
    signature: void registerStartupException() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1124
    functionName: '& getMutableEnumValuesRegistry() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IMutableEnumValuesRegistry
    signature: IMutableEnumValuesRegistry & getMutableEnumValuesRegistry() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1082
    functionName: Catch::RegistryHub::RegistryHub
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1085
    functionName: '& getReporterRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ReporterRegistry
    signature: ReporterRegistry & getReporterRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    functionName: '& getTestCaseRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITestCaseRegistry
    signature: ITestCaseRegistry & getTestCaseRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: '& getExceptionTranslatorRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IExceptionTranslatorRegistry
    signature: IExceptionTranslatorRegistry & getExceptionTranslatorRegistry() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    functionName: '& getTagAliasRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ITagAliasRegistry
    signature: ITagAliasRegistry & getTagAliasRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1097
    functionName: '& getStartupExceptionRegistry() const override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StartupExceptionRegistry
    signature: StartupExceptionRegistry & getStartupExceptionRegistry() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1101,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - factory
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1102
    functionName: Catch::RegistryHub::registerReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::RegistryHub::registerReporter
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerReporter( std::string const& name, IReporterFactoryPtr
      factory ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerListener
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1104,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - factory
    argTypes:
    - Detail::unique_ptr<EventListenerFactory>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1105
    functionName: Catch::RegistryHub::registerListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::RegistryHub::registerListener
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerListener( Detail::unique_ptr<EventListenerFactory> factory
      ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' testInfo'
    - ' invoker'
    argTypes:
    - Detail::unique_ptr<TestCaseInfo>
    - Detail::unique_ptr<ITestInvoker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1108
    functionName: Catch::RegistryHub::registerTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::RegistryHub::registerTest
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerTest( Detail::unique_ptr<TestCaseInfo>&& testInfo, Detail::unique_ptr<ITestInvoker>&&
      invoker ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RegistryHub::registerTranslator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1110,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1111
    functionName: Catch::RegistryHub::registerTranslator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::RegistryHub::registerTranslator
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void registerTranslator( Detail::unique_ptr<IExceptionTranslator>&&
      translator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alias'
    - ' tag'
    - ' lineInfo'
    argTypes:
    - std::string
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1114
    functionName: Catch::RegistryHub::registerTagAlias
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - add
    linkageType: ''
    returnType: void
    signature: void registerTagAlias( std::string const& alias, std::string const&
      tag, SourceLineInfo const& lineInfo ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1117,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1117,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1121
    functionName: Catch::RegistryHub::registerStartupException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - std::current_exception
    - add
    linkageType: ''
    returnType: void
    signature: void registerStartupException() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1124
    functionName: '& getMutableEnumValuesRegistry() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IMutableEnumValuesRegistry
    signature: IMutableEnumValuesRegistry & getMutableEnumValuesRegistry() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_set_and_get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1140
    functionName: Catch::getRegistryHub
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - test_set_and_get
    linkageType: ''
    returnType: IRegistryHub
    signature: IRegistryHub & getRegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Singleton::getMutable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1143
    functionName: Catch::getMutableRegistryHub
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Singleton::getMutable
    linkageType: ''
    returnType: IMutableRegistryHub
    signature: IMutableRegistryHub & getMutableRegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cleanupSingletons
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1145,1
    - Dst: Catch::cleanUpContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1147
    functionName: Catch::cleanUp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cleanupSingletons
    - Catch::cleanUpContext
    linkageType: ''
    returnType: void
    signature: void cleanUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1148
    functionDepth: 3
    functionLinenumber: 1148
    functionLinenumberEnd: 1150
    functionName: Catch::translateActiveException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::getRegistryHub
    linkageType: ''
    returnType: std::string
    signature: std::string translateActiveException()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1169,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1169,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' reporterName'
    - ' config'
    argTypes:
    - std::string
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1173
    functionName: Catch::createReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - CATCH_MOVE
    - Catch::getRegistryHub
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr createReporter(std::string const& reporterName, ReporterConfig&&
      config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1176,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1177,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1178,1
    - Dst: Catch::createReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1179,1
    - Dst: Catch::ReporterConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1181,1
    - Dst: Catch::makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1182,1
    - Dst: Detail::make_unique<MultiReporter>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1187,1
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1189,1
    - Dst: auto::addListener
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1191,1
    - Dst: create
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1191,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1194,1
    - Dst: auto::addReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1195,1
    - Dst: Catch::createReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1195,1
    - Dst: Catch::ReporterConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1197,1
    - Dst: Catch::makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1204
    functionName: Catch::prepareReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getRegistryHub
    - Catch::makeStream
    - create
    - Config*::getProcessedReporterSpecs
    - auto::addReporter
    - Detail::make_unique<MultiReporter>
    - Catch::createReporter
    - auto::addListener
    - Catch::ReporterConfig
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr prepareReporters(Config const* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1209,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1211,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1213,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1213,1
    - Dst: getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1216,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1217,1
    - Dst: hasFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1218,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1221,1
    - Dst: matchesByFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1226,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1228,1
    - Dst: tests::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1228,1
    - Dst: tests::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1229,1
    - Dst: createShard
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    - Dst: shardCount
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    - Dst: shardIndex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reporter'
    - config
    argTypes:
    - IEventListenerPtr
    - Config*
    assertStmts:
    - condition: "( m_config->testSpec().getInvalidSpecs().empty() &&\n                        \"Invalid
        test specs should be handled before running tests\" )"
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1234
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1234
    functionName: Catch::TestGroup::TestGroup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - assert
    - matchesByFilter
    - createShard
    - tests::end
    - insert
    - emplace
    - shardIndex
    - shardCount
    - tests::begin
    - CATCH_MOVE
    - getAllTestCasesSorted
    - hasFilters
    - get
    - testSpec
    linkageType: ''
    returnType: void
    signature: void TestGroup(IEventListenerPtr&& reporter, Config const* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1239,1
    - Dst: runTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1240,1
    - Dst: skipTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1242,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1242,1
    - Dst: tests::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1246,1
    - Dst: noMatchingTestCases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1253
    functionName: Catch::TestGroup::execute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - skipTest
    - aborting
    - runTest
    - noMatchingTestCases
    - tests::empty
    linkageType: ''
    returnType: Totals
    signature: Totals execute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1257
    functionName: Catch::TestGroup::hadUnmatchedTestSpecs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hadUnmatchedTestSpecs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1270,1
    - Dst: addFilenameTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1269
    functionDepth: 3
    functionLinenumber: 1269
    functionLinenumberEnd: 1273
    functionName: Catch::applyFilenamesAsTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - addFilenameTag
    - Catch::getRegistryHub
    linkageType: ''
    returnType: void
    signature: void applyFilenamesAsTags()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1169,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1169,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' reporterName'
    - ' config'
    argTypes:
    - std::string
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1173
    functionName: Catch::createReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - CATCH_ENFORCE
    - CATCH_MOVE
    - Catch::getRegistryHub
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr createReporter(std::string const& reporterName, ReporterConfig&&
      config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1176,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1177,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1178,1
    - Dst: Catch::createReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1179,1
    - Dst: Catch::ReporterConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1181,1
    - Dst: Catch::makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1182,1
    - Dst: Detail::make_unique<MultiReporter>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1187,1
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1189,1
    - Dst: auto::addListener
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1191,1
    - Dst: create
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1191,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1194,1
    - Dst: auto::addReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1195,1
    - Dst: Catch::createReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1195,1
    - Dst: Catch::ReporterConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1197,1
    - Dst: Catch::makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1204
    functionName: Catch::prepareReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getRegistryHub
    - Catch::makeStream
    - create
    - Config*::getProcessedReporterSpecs
    - auto::addReporter
    - Detail::make_unique<MultiReporter>
    - Catch::createReporter
    - auto::addListener
    - Catch::ReporterConfig
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr prepareReporters(Config const* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1209,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1211,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1213,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1213,1
    - Dst: getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1216,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1217,1
    - Dst: hasFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1218,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1221,1
    - Dst: matchesByFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1226,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1228,1
    - Dst: tests::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1228,1
    - Dst: tests::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1229,1
    - Dst: createShard
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    - Dst: shardCount
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    - Dst: shardIndex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reporter'
    - config
    argTypes:
    - IEventListenerPtr
    - Config*
    assertStmts:
    - condition: "( m_config->testSpec().getInvalidSpecs().empty() &&\n                        \"Invalid
        test specs should be handled before running tests\" )"
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1234
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1234
    functionName: Catch::TestGroup::TestGroup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - assert
    - matchesByFilter
    - createShard
    - tests::end
    - insert
    - emplace
    - shardIndex
    - shardCount
    - tests::begin
    - CATCH_MOVE
    - getAllTestCasesSorted
    - hasFilters
    - get
    - testSpec
    linkageType: ''
    returnType: void
    signature: void TestGroup(IEventListenerPtr&& reporter, Config const* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1239,1
    - Dst: runTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1240,1
    - Dst: skipTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1242,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1242,1
    - Dst: tests::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1246,1
    - Dst: noMatchingTestCases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1253
    functionName: Catch::TestGroup::execute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - skipTest
    - aborting
    - runTest
    - noMatchingTestCases
    - tests::empty
    linkageType: ''
    returnType: Totals
    signature: Totals execute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1257
    functionName: Catch::TestGroup::hadUnmatchedTestSpecs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hadUnmatchedTestSpecs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1270,1
    - Dst: addFilenameTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1269
    functionDepth: 3
    functionLinenumber: 1269
    functionLinenumberEnd: 1273
    functionName: Catch::applyFilenamesAsTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - addFilenameTag
    - Catch::getRegistryHub
    linkageType: ''
    returnType: void
    signature: void applyFilenamesAsTags()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1280,1
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1281
    functionName: Catch::Session::Session
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: void Session::Session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1169,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1169,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' reporterName'
    - ' config'
    argTypes:
    - std::string
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1173
    functionName: Catch::createReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_ENFORCE
    - CATCH_MOVE
    - Catch::getRegistryHub
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr createReporter(std::string const& reporterName, ReporterConfig&&
      config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1176,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1177,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1178,1
    - Dst: Catch::createReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1179,1
    - Dst: Catch::ReporterConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1181,1
    - Dst: Catch::makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1182,1
    - Dst: Detail::make_unique<MultiReporter>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1187,1
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1189,1
    - Dst: auto::addListener
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1191,1
    - Dst: create
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1191,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1194,1
    - Dst: auto::addReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1195,1
    - Dst: Catch::createReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1195,1
    - Dst: Catch::ReporterConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1197,1
    - Dst: Catch::makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1204
    functionName: Catch::prepareReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getRegistryHub
    - Catch::makeStream
    - create
    - Config*::getProcessedReporterSpecs
    - auto::addReporter
    - Detail::make_unique<MultiReporter>
    - Catch::createReporter
    - auto::addListener
    - Catch::ReporterConfig
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr prepareReporters(Config const* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1209,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1211,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1213,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1213,1
    - Dst: getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1216,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1217,1
    - Dst: hasFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1218,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1221,1
    - Dst: matchesByFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1226,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1228,1
    - Dst: tests::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1228,1
    - Dst: tests::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1229,1
    - Dst: createShard
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    - Dst: shardCount
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    - Dst: shardIndex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reporter'
    - config
    argTypes:
    - IEventListenerPtr
    - Config*
    assertStmts:
    - condition: "( m_config->testSpec().getInvalidSpecs().empty() &&\n                        \"Invalid
        test specs should be handled before running tests\" )"
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1234
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1234
    functionName: Catch::TestGroup::TestGroup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - assert
    - matchesByFilter
    - createShard
    - tests::end
    - insert
    - emplace
    - shardIndex
    - shardCount
    - tests::begin
    - CATCH_MOVE
    - getAllTestCasesSorted
    - hasFilters
    - get
    - testSpec
    linkageType: ''
    returnType: void
    signature: void TestGroup(IEventListenerPtr&& reporter, Config const* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1239,1
    - Dst: runTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1240,1
    - Dst: skipTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1242,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1242,1
    - Dst: tests::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1246,1
    - Dst: noMatchingTestCases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1253
    functionName: Catch::TestGroup::execute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - skipTest
    - aborting
    - runTest
    - noMatchingTestCases
    - tests::empty
    linkageType: ''
    returnType: Totals
    signature: Totals execute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1257
    functionName: Catch::TestGroup::hadUnmatchedTestSpecs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hadUnmatchedTestSpecs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1270,1
    - Dst: addFilenameTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1269
    functionDepth: 3
    functionLinenumber: 1269
    functionLinenumberEnd: 1273
    functionName: Catch::applyFilenamesAsTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - addFilenameTag
    - Catch::getRegistryHub
    linkageType: ''
    returnType: void
    signature: void applyFilenamesAsTags()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1169,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1169,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' reporterName'
    - ' config'
    argTypes:
    - std::string
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1173
    functionName: Catch::createReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - CATCH_ENFORCE
    - CATCH_MOVE
    - Catch::getRegistryHub
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr createReporter(std::string const& reporterName, ReporterConfig&&
      config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1176,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1177,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1178,1
    - Dst: Catch::createReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1179,1
    - Dst: Catch::ReporterConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1181,1
    - Dst: Catch::makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1182,1
    - Dst: Detail::make_unique<MultiReporter>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1187,1
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1189,1
    - Dst: auto::addListener
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1191,1
    - Dst: create
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1191,1
    - Dst: Config*::getProcessedReporterSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1194,1
    - Dst: auto::addReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1195,1
    - Dst: Catch::createReporter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1195,1
    - Dst: Catch::ReporterConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1197,1
    - Dst: Catch::makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1204
    functionName: Catch::prepareReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getRegistryHub
    - Catch::makeStream
    - create
    - Config*::getProcessedReporterSpecs
    - auto::addReporter
    - Detail::make_unique<MultiReporter>
    - Catch::createReporter
    - auto::addListener
    - Catch::ReporterConfig
    linkageType: ''
    returnType: IEventListenerPtr
    signature: IEventListenerPtr prepareReporters(Config const* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1209,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1211,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1213,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1213,1
    - Dst: getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1216,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1217,1
    - Dst: hasFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1218,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1221,1
    - Dst: matchesByFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1226,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1228,1
    - Dst: tests::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1228,1
    - Dst: tests::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1229,1
    - Dst: createShard
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    - Dst: shardCount
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    - Dst: shardIndex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reporter'
    - config
    argTypes:
    - IEventListenerPtr
    - Config*
    assertStmts:
    - condition: "( m_config->testSpec().getInvalidSpecs().empty() &&\n                        \"Invalid
        test specs should be handled before running tests\" )"
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1234
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1234
    functionName: Catch::TestGroup::TestGroup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - assert
    - matchesByFilter
    - createShard
    - tests::end
    - insert
    - emplace
    - shardIndex
    - shardCount
    - tests::begin
    - CATCH_MOVE
    - getAllTestCasesSorted
    - hasFilters
    - get
    - testSpec
    linkageType: ''
    returnType: void
    signature: void TestGroup(IEventListenerPtr&& reporter, Config const* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1239,1
    - Dst: runTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1240,1
    - Dst: skipTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1242,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1242,1
    - Dst: tests::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1246,1
    - Dst: noMatchingTestCases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1253
    functionName: Catch::TestGroup::execute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - skipTest
    - aborting
    - runTest
    - noMatchingTestCases
    - tests::empty
    linkageType: ''
    returnType: Totals
    signature: Totals execute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1257
    functionName: Catch::TestGroup::hadUnmatchedTestSpecs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hadUnmatchedTestSpecs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1270,1
    - Dst: addFilenameTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1269
    functionDepth: 3
    functionLinenumber: 1269
    functionLinenumberEnd: 1273
    functionName: Catch::applyFilenamesAsTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - addFilenameTag
    - Catch::getRegistryHub
    linkageType: ''
    returnType: void
    signature: void applyFilenamesAsTags()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1280,1
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1281
    functionName: Catch::Session::Session
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: void Session::Session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cleanUp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1311
    functionDepth: 2
    functionLinenumber: 1311
    functionLinenumberEnd: 1313
    functionName: Session::~Session()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cleanUp
    linkageType: ''
    returnType: void
    signature: void Session::~Session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1316,1
    - Dst: libraryVersion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1320
    functionName: Session::showHelp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    - libraryVersion
    linkageType: ''
    returnType: void
    signature: void Session::showHelp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1322,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1323,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1324,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1325,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1326,1
    - Dst: libraryVersion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1327
    functionName: Session::libIdentify
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    - std::setw
    - libraryVersion
    linkageType: ''
    returnType: void
    signature: void Session::libIdentify()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1333,1
    - Dst: Catch::Clara::Args::Args
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1333,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1336,1
    - Dst: getCurrentMutableContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1337,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1337,1
    - Dst: makeStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1338,1
    - Dst: makeColourImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1339,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1339,1
    - Dst: auto::stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1341,1
    - Dst: auto::guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1342,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1344,1
    - Dst: auto::errorMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1344,1
    - Dst: auto::stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1346,1
    - Dst: Session::showHelp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1351,1
    - Dst: Session::libIdentify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1353,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1357
    functionName: Session::applyCommandLine
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - makeColourImpl
    - reset
    - auto::guardColour
    - getCurrentMutableContext
    - Catch::Clara::Args::Args
    - auto::get
    - Session::showHelp
    - auto::stream
    - Catch::TextFlow::Column::Column
    - auto::errorMessage
    - makeStream
    - config
    - Session::libIdentify
    - get
    - parse
    linkageType: ''
    returnType: int
    signature: int Session::applyCommandLine( int argc, char const * const * argv
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char::char
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1362,1
    - Dst: WideCharToMultiByte
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1365,1
    - Dst: char::char
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1367,1
    - Dst: WideCharToMultiByte
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1369,1
    - Dst: Session::applyCommandLine
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1380
    functionName: Session::applyCommandLine
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - char::char
    - WideCharToMultiByte
    - Session::applyCommandLine
    linkageType: ''
    returnType: int
    signature: int Session::applyCommandLine( int argc, wchar_t const * const * argv
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' configData'
    argTypes:
    - ConfigData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1386
    functionName: Session::useConfigData
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void Session::useConfigData( ConfigData const& configData )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1390,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1391,1
    - Dst: std::getchar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1391,1
    - Dst: Session::runInternal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1393,1
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1395,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1396,1
    - Dst: std::getchar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1399
    functionName: Session::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - static_cast<void>
    - Catch::cout
    - std::getchar
    - Session::runInternal
    linkageType: ''
    returnType: int
    signature: int Session::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1403
    functionName: '& Session::cli() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Clara::Parser
    signature: Clara::Parser & Session::cli() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' newParser'
    argTypes:
    - Clara::Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1406
    functionName: Session::cli
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session::cli( Clara::Parser const& newParser )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1409
    functionName: '& Session::configData()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigData
    signature: ConfigData & Session::configData()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<Config>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1414
    functionName: '& Session::config()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<Config>
    linkageType: ''
    returnType: Config
    signature: Config & Session::config()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1425,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1433,1
    - Dst: seedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1435,1
    - Dst: applyFilenamesAsTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1438,1
    - Dst: getCurrentMutableContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1442,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1442,1
    - Dst: prepareReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1445,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1445,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1447,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1448,1
    - Dst: auto::reportInvalidTestSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1450,1
    - Dst: list
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1457,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1461,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1461,1
    - Dst: TestGroup::execute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1462,1
    - Dst: TestGroup::hadUnmatchedTestSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1464,1
    - Dst: warnAboutUnmatchedTestSpecs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1465,1
    - Dst: auto::testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1469,1
    - Dst: zeroTestsCountAsSuccess
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1470,1
    - Dst: auto::testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1474,1
    - Dst: auto::testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1475,1
    - Dst: zeroTestsCountAsSuccess
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1476,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1483,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1484
    functionName: Session::runInternal
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - zeroTestsCountAsSuccess
    - TestGroup::hadUnmatchedTestSpecs
    - static_cast<int>
    - auto::testCases::total
    - getCurrentMutableContext
    - applyFilenamesAsTags
    - list
    - auto::reportInvalidTestSpec
    - TestGroup::execute
    - empty
    - seedRng
    - CATCH_MOVE
    - warnAboutUnmatchedTestSpecs
    - config
    - Catch::cerr
    - get
    - testSpec
    - prepareReporters
    linkageType: ''
    returnType: int
    signature: int Session::runInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1487,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1489
    functionName: catch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    - what
    linkageType: ''
    returnType: void
    signature: void catch( std::exception& ex )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - alias
    - tag
    - ' lineInfo'
    argTypes:
    - char*
    - char*
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1503
    functionName: Catch::RegistrarForTagAliases::RegistrarForTagAliases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: void RegistrarForTagAliases::RegistrarForTagAliases(char const* alias,
      char const* tag, SourceLineInfo const& lineInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - alias
    - tag
    - ' lineInfo'
    argTypes:
    - char*
    - char*
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1503
    functionName: Catch::RegistrarForTagAliases::RegistrarForTagAliases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: void RegistrarForTagAliases::RegistrarForTagAliases(char const* alias,
      char const* tag, SourceLineInfo const& lineInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1525,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1526,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1528
    functionName: operator|(TestCaseProperties lhs, TestCaseProperties rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties operator|(TestCaseProperties lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1531,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1532,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1535
    functionName: '& operator|=(TestCaseProperties& lhs, TestCaseProperties rhs)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties & operator|=(TestCaseProperties& lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1538,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1539,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1541
    functionName: operator&(TestCaseProperties lhs, TestCaseProperties rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties operator&(TestCaseProperties lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tcp
    argTypes:
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1547
    functionName: Catch::applies
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: bool
    signature: bool applies(TestCaseProperties tcp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - tag
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1564
    functionName: Catch::parseSpecialTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties parseSpecialTag( StringRef tag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::parseSpecialTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1566,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1567,1
    - Dst: std::isalnum
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1568,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1569
    functionName: Catch::isReservedTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::parseSpecialTag
    - static_cast<unsigned char>
    - StringRef::size
    - std::isalnum
    linkageType: ''
    returnType: bool
    signature: bool isReservedTag( StringRef tag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1571,1
    - Dst: Catch::isReservedTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' _lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1575
    functionName: Catch::enforceNotReservedTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - Catch::isReservedTag
    linkageType: ''
    returnType: void
    signature: void enforceNotReservedTag( StringRef tag, SourceLineInfo const& _lineInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1580
    functionName: Catch::makeDefaultName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string makeDefaultName()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1583,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1588,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - filename
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1597
    functionName: Catch::extractFilenamePart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractFilenamePart(StringRef filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::extractFilenamePart
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filepath
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1604
    functionName: Catch::sizeOfExtraTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::extractFilenamePart
    linkageType: ''
    returnType: size_t
    signature: size_t sizeOfExtraTags(StringRef filepath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1525,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1526,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1528
    functionName: operator|(TestCaseProperties lhs, TestCaseProperties rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties operator|(TestCaseProperties lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1531,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1532,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1535
    functionName: '& operator|=(TestCaseProperties& lhs, TestCaseProperties rhs)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties & operator|=(TestCaseProperties& lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1538,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1539,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1541
    functionName: operator&(TestCaseProperties lhs, TestCaseProperties rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties operator&(TestCaseProperties lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tcp
    argTypes:
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1547
    functionName: Catch::applies
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: bool
    signature: bool applies(TestCaseProperties tcp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - tag
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1564
    functionName: Catch::parseSpecialTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties parseSpecialTag( StringRef tag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::parseSpecialTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1566,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1567,1
    - Dst: std::isalnum
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1568,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1569
    functionName: Catch::isReservedTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::parseSpecialTag
    - static_cast<unsigned char>
    - StringRef::size
    - std::isalnum
    linkageType: ''
    returnType: bool
    signature: bool isReservedTag( StringRef tag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1571,1
    - Dst: Catch::isReservedTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' _lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1575
    functionName: Catch::enforceNotReservedTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - Catch::isReservedTag
    linkageType: ''
    returnType: void
    signature: void enforceNotReservedTag( StringRef tag, SourceLineInfo const& _lineInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1580
    functionName: Catch::makeDefaultName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string makeDefaultName()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1583,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1588,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - filename
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1597
    functionName: Catch::extractFilenamePart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - StringRef
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractFilenamePart(StringRef filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::extractFilenamePart
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filepath
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1604
    functionName: Catch::sizeOfExtraTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::extractFilenamePart
    linkageType: ''
    returnType: size_t
    signature: size_t sizeOfExtraTags(StringRef filepath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Tag
    - Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: operator<(  Tag const& lhs, Tag const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: bool
    signature: bool operator<(  Tag const& lhs, Tag const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Tag
    - Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1611
    functionDepth: 0
    functionLinenumber: 1611
    functionLinenumberEnd: 1614
    functionName: operator==( Tag const& lhs, Tag const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: bool
    signature: bool operator==( Tag const& lhs, Tag const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestCaseInfo>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _className
    - ' nameAndTags'
    - ' _lineInfo'
    argTypes:
    - StringRef
    - NameAndTags
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1621
    functionName: Catch::makeTestCaseInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestCaseInfo>
    linkageType: ''
    returnType: Detail::unique_ptr<TestCaseInfo>
    signature: "Detail::unique_ptr<TestCaseInfo> makeTestCaseInfo(StringRef _className,\n
      \                        NameAndTags const& nameAndTags,\n                         SourceLineInfo
      const& _lineInfo )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: name::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1626,1
    - Dst: makeDefaultName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1626,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1633,1
    - Dst: sizeOfExtraTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1633,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1634,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1641,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1644,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1653,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1660,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1665,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1666,1
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1666,1
    - Dst: enforceNotReservedTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1671,1
    - Dst: parseSpecialTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1672,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1676,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1677,1
    - Dst: Catch::TestCaseInfo::internalAppendTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1682,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1685,1
    - Dst: Catch::TestCaseInfo::isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1691,1
    - Dst: Catch::TestCaseInfo::internalAppendTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1692,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1696,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1696,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1696,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1697,1
    - Dst: std::unique
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1697,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1697,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1697,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - _className
    - ' _nameAndTags'
    - ' _lineInfo'
    argTypes:
    - StringRef
    - NameAndTags
    - SourceLineInfo
    assertStmts:
    - condition: (tagStart < tagEnd)
      pos:
        line_end: 1659
        line_start: 1659
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1699
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1699
    functionName: Catch::TestCaseInfo::TestCaseInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sizeOfExtraTags
    - assert
    - StringRef::empty
    - begin
    - CATCH_ENFORCE
    - StringRef::substr
    - parseSpecialTag
    - Catch::TestCaseInfo::internalAppendTag
    - makeDefaultName
    - StringRef::size
    - enforceNotReservedTag
    - std::sort
    - Catch::TestCaseInfo::isHidden
    - end
    - erase
    - reserve
    - std::unique
    - name::empty
    linkageType: ''
    returnType: void
    signature: "void TestCaseInfo::TestCaseInfo(StringRef _className,\n                               NameAndTags
      const& _nameAndTags,\n                               SourceLineInfo const& _lineInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applies
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1703
    functionName: Catch::TestCaseInfo::isHidden
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - applies
    linkageType: ''
    returnType: bool
    signature: bool TestCaseInfo::isHidden() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applies
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1706
    functionName: Catch::TestCaseInfo::throws
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - applies
    linkageType: ''
    returnType: bool
    signature: bool TestCaseInfo::throws() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applies
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1709
    functionName: Catch::TestCaseInfo::okToFail
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - applies
    linkageType: ''
    returnType: bool
    signature: bool TestCaseInfo::okToFail() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applies
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1712
    functionName: Catch::TestCaseInfo::expectedToFail
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - applies
    linkageType: ''
    returnType: bool
    signature: bool TestCaseInfo::expectedToFail() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extractFilenamePart
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1716,1
    - Dst: Catch::TestCaseInfo::internalAppendTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1718
    functionName: Catch::TestCaseInfo::addFilenameTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseInfo::internalAppendTag
    - extractFilenamePart
    linkageType: ''
    returnType: void
    signature: void TestCaseInfo::addFilenameTag()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1723,1
    - Dst: original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1725,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1727,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1729,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1735
    functionName: Catch::TestCaseInfo::tagsAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - original::size
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string TestCaseInfo::tagsAsString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1739,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1741,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1743,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1743,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tagStr
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1737
    functionDepth: 1
    functionLinenumber: 1737
    functionLinenumberEnd: 1744
    functionName: Catch::TestCaseInfo::internalAppendTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef
    - c_str
    - size
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void TestCaseInfo::internalAppendTag(StringRef tagStr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: name::compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1750,1
    - Dst: className::compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - TestCaseInfo
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1759
    functionName: operator<( TestCaseInfo const& lhs, TestCaseInfo const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name::compare
    - className::compare
    linkageType: ''
    returnType: bool
    signature: bool operator<( TestCaseInfo const& lhs, TestCaseInfo const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1763
    functionName: '& TestCaseHandle::getTestCaseInfo() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestCaseInfo
    signature: TestCaseInfo & TestCaseHandle::getTestCaseInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1525,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1526,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1528
    functionName: operator|(TestCaseProperties lhs, TestCaseProperties rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties operator|(TestCaseProperties lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1531,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1532,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1535
    functionName: '& operator|=(TestCaseProperties& lhs, TestCaseProperties rhs)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties & operator|=(TestCaseProperties& lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1538,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1539,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1541
    functionName: operator&(TestCaseProperties lhs, TestCaseProperties rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties operator&(TestCaseProperties lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tcp
    argTypes:
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1547
    functionName: Catch::applies
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: bool
    signature: bool applies(TestCaseProperties tcp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - tag
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1564
    functionName: Catch::parseSpecialTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties parseSpecialTag( StringRef tag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::parseSpecialTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1566,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1567,1
    - Dst: std::isalnum
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1568,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1569
    functionName: Catch::isReservedTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::parseSpecialTag
    - static_cast<unsigned char>
    - StringRef::size
    - std::isalnum
    linkageType: ''
    returnType: bool
    signature: bool isReservedTag( StringRef tag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1571,1
    - Dst: Catch::isReservedTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' _lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1575
    functionName: Catch::enforceNotReservedTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - Catch::isReservedTag
    linkageType: ''
    returnType: void
    signature: void enforceNotReservedTag( StringRef tag, SourceLineInfo const& _lineInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1580
    functionName: Catch::makeDefaultName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string makeDefaultName()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1583,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1588,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - filename
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1597
    functionName: Catch::extractFilenamePart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractFilenamePart(StringRef filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::extractFilenamePart
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filepath
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1604
    functionName: Catch::sizeOfExtraTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::extractFilenamePart
    linkageType: ''
    returnType: size_t
    signature: size_t sizeOfExtraTags(StringRef filepath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1525,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1526,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1528
    functionName: operator|(TestCaseProperties lhs, TestCaseProperties rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties operator|(TestCaseProperties lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1531,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1532,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1535
    functionName: '& operator|=(TestCaseProperties& lhs, TestCaseProperties rhs)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties & operator|=(TestCaseProperties& lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestCaseProperties>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1538,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1539,1
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - TestCaseProperties
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1541
    functionName: operator&(TestCaseProperties lhs, TestCaseProperties rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestCaseProperties>
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties operator&(TestCaseProperties lhs, TestCaseProperties
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TCP_underlying_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tcp
    argTypes:
    - TestCaseProperties
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1547
    functionName: Catch::applies
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TCP_underlying_type>
    linkageType: ''
    returnType: bool
    signature: bool applies(TestCaseProperties tcp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - tag
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1564
    functionName: Catch::parseSpecialTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: TestCaseProperties
    signature: TestCaseProperties parseSpecialTag( StringRef tag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::parseSpecialTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1566,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1567,1
    - Dst: std::isalnum
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1568,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1569
    functionName: Catch::isReservedTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::parseSpecialTag
    - static_cast<unsigned char>
    - StringRef::size
    - std::isalnum
    linkageType: ''
    returnType: bool
    signature: bool isReservedTag( StringRef tag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1571,1
    - Dst: Catch::isReservedTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' _lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1575
    functionName: Catch::enforceNotReservedTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - Catch::isReservedTag
    linkageType: ''
    returnType: void
    signature: void enforceNotReservedTag( StringRef tag, SourceLineInfo const& _lineInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1580
    functionName: Catch::makeDefaultName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string makeDefaultName()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1583,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1588,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - filename
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1597
    functionName: Catch::extractFilenamePart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - StringRef
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractFilenamePart(StringRef filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::extractFilenamePart
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filepath
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1604
    functionName: Catch::sizeOfExtraTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::extractFilenamePart
    linkageType: ''
    returnType: size_t
    signature: size_t sizeOfExtraTags(StringRef filepath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Tag
    - Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: operator<(  Tag const& lhs, Tag const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: bool
    signature: bool operator<(  Tag const& lhs, Tag const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Tag
    - Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1611
    functionDepth: 0
    functionLinenumber: 1611
    functionLinenumberEnd: 1614
    functionName: operator==( Tag const& lhs, Tag const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: bool
    signature: bool operator==( Tag const& lhs, Tag const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestCaseInfo>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _className
    - ' nameAndTags'
    - ' _lineInfo'
    argTypes:
    - StringRef
    - NameAndTags
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1621
    functionName: Catch::makeTestCaseInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestCaseInfo>
    linkageType: ''
    returnType: Detail::unique_ptr<TestCaseInfo>
    signature: "Detail::unique_ptr<TestCaseInfo> makeTestCaseInfo(StringRef _className,\n
      \                        NameAndTags const& nameAndTags,\n                         SourceLineInfo
      const& _lineInfo )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: name::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1626,1
    - Dst: makeDefaultName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1626,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1633,1
    - Dst: sizeOfExtraTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1633,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1634,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1641,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1644,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1653,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1660,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1665,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1666,1
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1666,1
    - Dst: enforceNotReservedTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1671,1
    - Dst: parseSpecialTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1672,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1676,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1677,1
    - Dst: Catch::TestCaseInfo::internalAppendTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1682,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1685,1
    - Dst: Catch::TestCaseInfo::isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1691,1
    - Dst: Catch::TestCaseInfo::internalAppendTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1692,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1696,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1696,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1696,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1697,1
    - Dst: std::unique
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1697,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1697,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1697,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - _className
    - ' _nameAndTags'
    - ' _lineInfo'
    argTypes:
    - StringRef
    - NameAndTags
    - SourceLineInfo
    assertStmts:
    - condition: (tagStart < tagEnd)
      pos:
        line_end: 1659
        line_start: 1659
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 1699
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1699
    functionName: Catch::TestCaseInfo::TestCaseInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sizeOfExtraTags
    - assert
    - StringRef::empty
    - begin
    - CATCH_ENFORCE
    - StringRef::substr
    - parseSpecialTag
    - Catch::TestCaseInfo::internalAppendTag
    - makeDefaultName
    - StringRef::size
    - enforceNotReservedTag
    - std::sort
    - Catch::TestCaseInfo::isHidden
    - end
    - erase
    - reserve
    - std::unique
    - name::empty
    linkageType: ''
    returnType: void
    signature: "void TestCaseInfo::TestCaseInfo(StringRef _className,\n                               NameAndTags
      const& _nameAndTags,\n                               SourceLineInfo const& _lineInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applies
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1703
    functionName: Catch::TestCaseInfo::isHidden
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - applies
    linkageType: ''
    returnType: bool
    signature: bool TestCaseInfo::isHidden() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applies
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1706
    functionName: Catch::TestCaseInfo::throws
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - applies
    linkageType: ''
    returnType: bool
    signature: bool TestCaseInfo::throws() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applies
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1709
    functionName: Catch::TestCaseInfo::okToFail
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - applies
    linkageType: ''
    returnType: bool
    signature: bool TestCaseInfo::okToFail() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applies
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1712
    functionName: Catch::TestCaseInfo::expectedToFail
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - applies
    linkageType: ''
    returnType: bool
    signature: bool TestCaseInfo::expectedToFail() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extractFilenamePart
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1716,1
    - Dst: Catch::TestCaseInfo::internalAppendTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1714
    functionDepth: 2
    functionLinenumber: 1714
    functionLinenumberEnd: 1718
    functionName: Catch::TestCaseInfo::addFilenameTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseInfo::internalAppendTag
    - extractFilenamePart
    linkageType: ''
    returnType: void
    signature: void TestCaseInfo::addFilenameTag()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1723,1
    - Dst: original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1725,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1727,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1729,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1735
    functionName: Catch::TestCaseInfo::tagsAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - original::size
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string TestCaseInfo::tagsAsString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1739,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1741,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1743,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1743,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tagStr
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1737
    functionDepth: 1
    functionLinenumber: 1737
    functionLinenumberEnd: 1744
    functionName: Catch::TestCaseInfo::internalAppendTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - StringRef
    - c_str
    - size
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void TestCaseInfo::internalAppendTag(StringRef tagStr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: name::compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1750,1
    - Dst: className::compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - TestCaseInfo
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1759
    functionName: operator<( TestCaseInfo const& lhs, TestCaseInfo const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name::compare
    - className::compare
    linkageType: ''
    returnType: bool
    signature: bool operator<( TestCaseInfo const& lhs, TestCaseInfo const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1763
    functionName: '& TestCaseHandle::getTestCaseInfo() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestCaseInfo
    signature: TestCaseInfo & TestCaseHandle::getTestCaseInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1778
    functionName: TestSpec::Pattern::Pattern( std::string const& name )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::Pattern::Pattern( std::string const& name )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1780
    functionDepth: 0
    functionLinenumber: 1780
    functionLinenumberEnd: 1780
    functionName: TestSpec::Pattern::~Pattern()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::Pattern::~Pattern()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1782
    functionDepth: 0
    functionLinenumber: 1782
    functionLinenumberEnd: 1784
    functionName: '& TestSpec::Pattern::name() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & TestSpec::Pattern::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' name'
    - ' filterString'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1790
    functionName: TestSpec::NamePattern::NamePattern( std::string const& name, std::string
      const& filterString )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - toLower
    linkageType: ''
    returnType: void
    signature: void TestSpec::NamePattern::NamePattern( std::string const& name, std::string
      const& filterString )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1794
    functionName: TestSpec::NamePattern::matches( TestCaseInfo const& testCase ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - matches
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::NamePattern::matches( TestCaseInfo const& testCase )
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1798
    functionName: TestSpec::NamePattern::serializeTo( std::ostream& out ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: void
    signature: void TestSpec::NamePattern::serializeTo( std::ostream& out ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' tag'
    - ' filterString'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 1804
    functionName: TestSpec::TagPattern::TagPattern( std::string const& tag, std::string
      const& filterString )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::TagPattern::TagPattern( std::string const& tag, std::string
      const& filterString )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1807,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1807,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1808,1
    - Dst: Tag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1809,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1810
    functionName: TestSpec::TagPattern::matches( TestCaseInfo const& testCase ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Tag
    - end
    - std::find
    - begin
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::TagPattern::matches( TestCaseInfo const& testCase )
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1814
    functionName: TestSpec::TagPattern::serializeTo( std::ostream& out ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: void
    signature: void TestSpec::TagPattern::serializeTo( std::ostream& out ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1817,1
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1820,1
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1830
    functionName: TestSpec::Filter::matches( TestCaseInfo const& testCase ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isHidden
    - matches
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::Filter::matches( TestCaseInfo const& testCase ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1848
    functionName: TestSpec::Filter::serializeTo( std::ostream& out ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::Filter::serializeTo( std::ostream& out ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ReusableStringStream::ReusableStringStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1852,1
    - Dst: Catch::ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' filter'
    argTypes:
    - Filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1855
    functionName: Catch::TestSpec::extractFilterName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ReusableStringStream::ReusableStringStream
    - Catch::ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string TestSpec::extractFilterName( Filter const& filter )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1859
    functionName: Catch::TestSpec::hasFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::hasFilters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1862,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1862,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1862,1
    - Dst: Catch::TestSpec::matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1863
    functionName: Catch::TestSpec::matches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - end
    - std::any_of
    - Catch::TestSpec::matches
    - begin
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::matches( TestCaseInfo const& testCase ) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Matches::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1867,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1867,1
    - Dst: isThrowSafe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1871,1
    - Dst: Catch::TestSpec::matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1872,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1872,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1873,1
    - Dst: Matches::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1874,1
    - Dst: Catch::TestSpec::extractFilterName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' testCases'
    - ' config'
    argTypes:
    - std::vector<TestCaseHandle>
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1865
    functionDepth: 2
    functionLinenumber: 1865
    functionLinenumberEnd: 1878
    functionName: Catch::TestSpec::matchesByFilter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - Catch::TestSpec::extractFilterName
    - isThrowSafe
    - Matches::reserve
    - std::vector::emplace_back
    - Matches::push_back
    - size
    - Catch::TestSpec::matches
    linkageType: ''
    returnType: TestSpec::Matches
    signature: TestSpec::Matches TestSpec::matchesByFilter( std::vector<TestCaseHandle>
      const& testCases, IConfig const& config ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1882
    functionName: '& TestSpec::getInvalidSpecs() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestSpec::vectorStrings
    signature: TestSpec::vectorStrings & TestSpec::getInvalidSpecs() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1893
    functionName: Catch::TestSpec::serializeTo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::serializeTo( std::ostream& out ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1778
    functionName: TestSpec::Pattern::Pattern( std::string const& name )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::Pattern::Pattern( std::string const& name )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1780
    functionDepth: 0
    functionLinenumber: 1780
    functionLinenumberEnd: 1780
    functionName: TestSpec::Pattern::~Pattern()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::Pattern::~Pattern()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1782
    functionDepth: 0
    functionLinenumber: 1782
    functionLinenumberEnd: 1784
    functionName: '& TestSpec::Pattern::name() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & TestSpec::Pattern::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' name'
    - ' filterString'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1790
    functionName: TestSpec::NamePattern::NamePattern( std::string const& name, std::string
      const& filterString )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - toLower
    linkageType: ''
    returnType: void
    signature: void TestSpec::NamePattern::NamePattern( std::string const& name, std::string
      const& filterString )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1794
    functionName: TestSpec::NamePattern::matches( TestCaseInfo const& testCase ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - matches
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::NamePattern::matches( TestCaseInfo const& testCase )
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1798
    functionName: TestSpec::NamePattern::serializeTo( std::ostream& out ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: void
    signature: void TestSpec::NamePattern::serializeTo( std::ostream& out ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' tag'
    - ' filterString'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 1804
    functionName: TestSpec::TagPattern::TagPattern( std::string const& tag, std::string
      const& filterString )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::TagPattern::TagPattern( std::string const& tag, std::string
      const& filterString )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1807,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1807,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1808,1
    - Dst: Tag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1809,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1810
    functionName: TestSpec::TagPattern::matches( TestCaseInfo const& testCase ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Tag
    - end
    - std::find
    - begin
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::TagPattern::matches( TestCaseInfo const& testCase )
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1814
    functionName: TestSpec::TagPattern::serializeTo( std::ostream& out ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: void
    signature: void TestSpec::TagPattern::serializeTo( std::ostream& out ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1817,1
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1820,1
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1830
    functionName: TestSpec::Filter::matches( TestCaseInfo const& testCase ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isHidden
    - matches
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::Filter::matches( TestCaseInfo const& testCase ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1848
    functionName: TestSpec::Filter::serializeTo( std::ostream& out ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::Filter::serializeTo( std::ostream& out ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ReusableStringStream::ReusableStringStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1852,1
    - Dst: Catch::ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' filter'
    argTypes:
    - Filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1855
    functionName: Catch::TestSpec::extractFilterName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::ReusableStringStream::ReusableStringStream
    - Catch::ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string TestSpec::extractFilterName( Filter const& filter )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1859
    functionName: Catch::TestSpec::hasFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::hasFilters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1862,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1862,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1862,1
    - Dst: Catch::TestSpec::matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1863
    functionName: Catch::TestSpec::matches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - end
    - std::any_of
    - Catch::TestSpec::matches
    - begin
    linkageType: ''
    returnType: bool
    signature: bool TestSpec::matches( TestCaseInfo const& testCase ) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Matches::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1867,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1867,1
    - Dst: isThrowSafe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1871,1
    - Dst: Catch::TestSpec::matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1872,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1872,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1873,1
    - Dst: Matches::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1874,1
    - Dst: Catch::TestSpec::extractFilterName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' testCases'
    - ' config'
    argTypes:
    - std::vector<TestCaseHandle>
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1865
    functionDepth: 2
    functionLinenumber: 1865
    functionLinenumberEnd: 1878
    functionName: Catch::TestSpec::matchesByFilter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - Catch::TestSpec::extractFilterName
    - isThrowSafe
    - Matches::reserve
    - std::vector::emplace_back
    - Matches::push_back
    - size
    - Catch::TestSpec::matches
    linkageType: ''
    returnType: TestSpec::Matches
    signature: TestSpec::Matches TestSpec::matchesByFilter( std::vector<TestCaseHandle>
      const& testCases, IConfig const& config ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1882
    functionName: '& TestSpec::getInvalidSpecs() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestSpec::vectorStrings
    signature: TestSpec::vectorStrings & TestSpec::getInvalidSpecs() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1893
    functionName: Catch::TestSpec::serializeTo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpec::serializeTo( std::ostream& out ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1905,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1906
    functionName: Catch::getCurrentNanosecondsSinceEpoch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: auto
    signature: auto getCurrentNanosecondsSinceEpoch() -> uint64_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1905,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1906
    functionName: Catch::getCurrentNanosecondsSinceEpoch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: auto
    signature: auto getCurrentNanosecondsSinceEpoch() -> uint64_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentNanosecondsSinceEpoch
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1911
    functionName: Catch::Timer::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getCurrentNanosecondsSinceEpoch
    linkageType: ''
    returnType: void
    signature: void Timer::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentNanosecondsSinceEpoch
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1912
    functionDepth: 0
    functionLinenumber: 1912
    functionLinenumberEnd: 1914
    functionName: Catch::Timer::getElapsedNanoseconds
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 52
    functionsReached:
    - getCurrentNanosecondsSinceEpoch
    linkageType: ''
    returnType: auto
    signature: auto Timer::getElapsedNanoseconds() const -> uint64_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1915
    functionDepth: 1
    functionLinenumber: 1915
    functionLinenumberEnd: 1917
    functionName: Catch::Timer::getElapsedMicroseconds
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Timer::getElapsedNanoseconds
    linkageType: ''
    returnType: auto
    signature: auto Timer::getElapsedMicroseconds() const -> uint64_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1919,1
    - Dst: Catch::Timer::getElapsedMicroseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1920
    functionName: Catch::Timer::getElapsedMilliseconds
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - Catch::Timer::getElapsedMicroseconds
    linkageType: ''
    returnType: auto
    signature: auto Timer::getElapsedMilliseconds() const -> unsigned int
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Timer::getElapsedMicroseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1921
    functionDepth: 2
    functionLinenumber: 1921
    functionLinenumberEnd: 1923
    functionName: Catch::Timer::getElapsedSeconds
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Timer::getElapsedMicroseconds
    linkageType: ''
    returnType: auto
    signature: auto Timer::getElapsedSeconds() const -> double
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1905,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1906
    functionName: Catch::getCurrentNanosecondsSinceEpoch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: auto
    signature: auto getCurrentNanosecondsSinceEpoch() -> uint64_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1905,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1906
    functionName: Catch::getCurrentNanosecondsSinceEpoch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: auto
    signature: auto getCurrentNanosecondsSinceEpoch() -> uint64_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentNanosecondsSinceEpoch
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1911
    functionName: Catch::Timer::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getCurrentNanosecondsSinceEpoch
    linkageType: ''
    returnType: void
    signature: void Timer::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentNanosecondsSinceEpoch
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1912
    functionDepth: 0
    functionLinenumber: 1912
    functionLinenumberEnd: 1914
    functionName: Catch::Timer::getElapsedNanoseconds
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 53
    functionsReached:
    - getCurrentNanosecondsSinceEpoch
    linkageType: ''
    returnType: auto
    signature: auto Timer::getElapsedNanoseconds() const -> uint64_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Timer::getElapsedNanoseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1915
    functionDepth: 1
    functionLinenumber: 1915
    functionLinenumberEnd: 1917
    functionName: Catch::Timer::getElapsedMicroseconds
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::Timer::getElapsedNanoseconds
    linkageType: ''
    returnType: auto
    signature: auto Timer::getElapsedMicroseconds() const -> uint64_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1919,1
    - Dst: Catch::Timer::getElapsedMicroseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1920
    functionName: Catch::Timer::getElapsedMilliseconds
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - Catch::Timer::getElapsedMicroseconds
    linkageType: ''
    returnType: auto
    signature: auto Timer::getElapsedMilliseconds() const -> unsigned int
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Timer::getElapsedMicroseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1921
    functionDepth: 2
    functionLinenumber: 1921
    functionLinenumberEnd: 1923
    functionName: Catch::Timer::getElapsedSeconds
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Timer::getElapsedMicroseconds
    linkageType: ''
    returnType: auto
    signature: auto Timer::getElapsedSeconds() const -> double
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: Catch::Detail::which
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: Arch
    signature: Arch which()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1955,1
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1960,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1963,1
    - Dst: std::string::find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1964,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1965,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1971
    functionName: Catch::Detail::fpToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::setprecision
    - std::string::find_last_not_of
    - Catch::isnan
    - std::string::substr
    - ReusableStringStream::str
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fpToString(T value, int precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: Catch::Detail::which
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: Arch
    signature: Arch which()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1955,1
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1960,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1963,1
    - Dst: std::string::find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1964,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1965,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1971
    functionName: Catch::Detail::fpToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::setprecision
    - std::string::find_last_not_of
    - Catch::isnan
    - std::string::substr
    - ReusableStringStream::str
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fpToString(T value, int precision)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1978,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1978,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1991,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1994,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1997,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2000,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2003,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - string
    - escapeInvisibles
    argTypes:
    - StringRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 2010
    functionName: Catch::Detail::convertIntoString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - std::string::push_back
    - std::string::append
    - StringRef::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string convertIntoString(StringRef string, bool escapeInvisibles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2013,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2014
    functionName: Catch::Detail::convertIntoString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - getCurrentContext
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string convertIntoString(StringRef string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2018,1
    - Dst: Catch::Detail::which
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2019,1
    - Dst: static_cast<unsigned char const *>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2024,1
    - Dst: std::setfill
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2026,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2028,1
    - Dst: static_cast<unsigned>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2028,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - object
    - size
    argTypes:
    - void*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2030
    functionName: Catch::Detail::rawMemoryToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - static_cast<unsigned>
    - static_cast<unsigned char const *>
    - std::setw
    - ReusableStringStream::str
    - Catch::Detail::which
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string rawMemoryToString( const void *object, std::size_t size
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: Catch::Detail::which
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: Arch
    signature: Arch which()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1955,1
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1960,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1963,1
    - Dst: std::string::find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1964,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1965,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1971
    functionName: Catch::Detail::fpToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::setprecision
    - std::string::find_last_not_of
    - Catch::isnan
    - std::string::substr
    - ReusableStringStream::str
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fpToString(T value, int precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: Catch::Detail::which
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: Arch
    signature: Arch which()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1955,1
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1960,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1963,1
    - Dst: std::string::find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1964,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1965,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1971
    functionName: Catch::Detail::fpToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::setprecision
    - std::string::find_last_not_of
    - Catch::isnan
    - std::string::substr
    - ReusableStringStream::str
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fpToString(T value, int precision)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1978,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1978,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1991,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1994,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1997,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2000,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2003,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - string
    - escapeInvisibles
    argTypes:
    - StringRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 2010
    functionName: Catch::Detail::convertIntoString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - std::string::push_back
    - std::string::append
    - StringRef::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string convertIntoString(StringRef string, bool escapeInvisibles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2013,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2014
    functionName: Catch::Detail::convertIntoString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - getCurrentContext
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string convertIntoString(StringRef string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2018,1
    - Dst: Catch::Detail::which
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2019,1
    - Dst: static_cast<unsigned char const *>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2024,1
    - Dst: std::setfill
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2026,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2028,1
    - Dst: static_cast<unsigned>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2028,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - object
    - size
    argTypes:
    - void*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2030
    functionName: Catch::Detail::rawMemoryToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - static_cast<unsigned>
    - static_cast<unsigned char const *>
    - std::setw
    - ReusableStringStream::str
    - Catch::Detail::which
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string rawMemoryToString( const void *object, std::size_t size
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2041
    functionDepth: 2
    functionLinenumber: 2041
    functionLinenumberEnd: 2043
    functionName: Catch::StringMaker<std::string>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::string>::convert(const std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2047,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2047,1
    - Dst: std::string_view::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2047,1
    - Dst: std::string_view::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2046
    functionDepth: 2
    functionLinenumber: 2046
    functionLinenumberEnd: 2048
    functionName: Catch::StringMaker<std::string_view>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - std::string_view::data
    - Catch::Detail::convertIntoString
    - std::string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::string_view>::convert(std::string_view
      str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2051
    functionDepth: 2
    functionLinenumber: 2051
    functionLinenumberEnd: 2057
    functionName: Catch::StringMaker<char const*>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<char const*>::convert(char const* str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2058
    functionDepth: 2
    functionLinenumber: 2058
    functionLinenumberEnd: 2064
    functionName: Catch::StringMaker<char*>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<char*>::convert(char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2069,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2069,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2071,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' wstr'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2074
    functionName: Catch::StringMaker<std::wstring>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<char>
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::wstring>::convert(const std::wstring&
      wstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StringMaker<std::wstring>::convert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2078,1
    - Dst: std::wstring
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::wstring_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2077
    functionDepth: 0
    functionLinenumber: 2077
    functionLinenumberEnd: 2079
    functionName: Catch::StringMaker<std::wstring_view>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StringMaker<std::wstring>::convert
    - std::wstring
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::wstring_view>::convert(std::wstring_view
      str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2088
    functionName: Catch::StringMaker<wchar_t const*>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<wchar_t const*>::convert(wchar_t const * str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2095
    functionName: Catch::StringMaker<wchar_t *>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<wchar_t *>::convert(wchar_t * str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2101,1
    - Dst: std::to_integer<unsigned long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2100
    functionDepth: 1
    functionLinenumber: 2100
    functionLinenumberEnd: 2102
    functionName: Catch::StringMaker<std::byte>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - std::to_integer<unsigned long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::byte>::convert(std::byte value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2106,1
    - Dst: static_cast<long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2105
    functionDepth: 1
    functionLinenumber: 2105
    functionLinenumberEnd: 2107
    functionName: Catch::StringMaker<int>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<int>::convert(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2109,1
    - Dst: static_cast<long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2110
    functionName: Catch::StringMaker<long>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<long>::convert(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2111
    functionDepth: 0
    functionLinenumber: 2111
    functionLinenumberEnd: 2118
    functionName: Catch::StringMaker<long long>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<long long>::convert(long long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2121,1
    - Dst: static_cast<unsigned long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2122
    functionName: Catch::StringMaker<unsigned int>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<unsigned long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<unsigned int>::convert(unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2124,1
    - Dst: static_cast<unsigned long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2125
    functionName: Catch::StringMaker<unsigned long>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<unsigned long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<unsigned long>::convert(unsigned long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2133
    functionName: Catch::StringMaker<unsigned long long>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<unsigned long long>::convert(unsigned long
      long value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2145,1
    - Dst: static_cast<unsigned int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2151
    functionName: Catch::StringMaker<signed char>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<unsigned int>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<signed char>::convert(signed char value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2153,1
    - Dst: static_cast<signed char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2154
    functionName: Catch::StringMaker<char>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<signed char>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<char>::convert(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2156,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2157
    functionName: Catch::StringMaker<unsigned char>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<char>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<unsigned char>::convert(unsigned char value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::fpToString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2161
    functionDepth: 2
    functionLinenumber: 2161
    functionLinenumberEnd: 2163
    functionName: Catch::StringMaker<float>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::fpToString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<float>::convert(float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::fpToString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2169
    functionName: Catch::StringMaker<double>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::fpToString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<double>::convert(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: Catch::Detail::which
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: Arch
    signature: Arch which()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1955,1
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1960,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1963,1
    - Dst: std::string::find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1964,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1965,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1971
    functionName: Catch::Detail::fpToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::setprecision
    - std::string::find_last_not_of
    - Catch::isnan
    - std::string::substr
    - ReusableStringStream::str
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fpToString(T value, int precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: Catch::Detail::which
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: Arch
    signature: Arch which()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1955,1
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1960,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1963,1
    - Dst: std::string::find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1964,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1965,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1971
    functionName: Catch::Detail::fpToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::setprecision
    - std::string::find_last_not_of
    - Catch::isnan
    - std::string::substr
    - ReusableStringStream::str
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fpToString(T value, int precision)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1978,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1978,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1991,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1994,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1997,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2000,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2003,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - string
    - escapeInvisibles
    argTypes:
    - StringRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 2010
    functionName: Catch::Detail::convertIntoString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - std::string::push_back
    - std::string::append
    - StringRef::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string convertIntoString(StringRef string, bool escapeInvisibles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2013,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2014
    functionName: Catch::Detail::convertIntoString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 13
    functionsReached:
    - getCurrentContext
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string convertIntoString(StringRef string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2018,1
    - Dst: Catch::Detail::which
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2019,1
    - Dst: static_cast<unsigned char const *>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2024,1
    - Dst: std::setfill
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2026,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2028,1
    - Dst: static_cast<unsigned>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2028,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - object
    - size
    argTypes:
    - void*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2030
    functionName: Catch::Detail::rawMemoryToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - static_cast<unsigned>
    - static_cast<unsigned char const *>
    - std::setw
    - ReusableStringStream::str
    - Catch::Detail::which
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string rawMemoryToString( const void *object, std::size_t size
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: Catch::Detail::which
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: Arch
    signature: Arch which()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1955,1
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1960,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1963,1
    - Dst: std::string::find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1964,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1965,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1971
    functionName: Catch::Detail::fpToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::setprecision
    - std::string::find_last_not_of
    - Catch::isnan
    - std::string::substr
    - ReusableStringStream::str
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fpToString(T value, int precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1950
    functionName: Catch::Detail::which
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: Arch
    signature: Arch which()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1955,1
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1960,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1963,1
    - Dst: std::string::find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1964,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1965,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1971
    functionName: Catch::Detail::fpToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::setprecision
    - std::string::find_last_not_of
    - Catch::isnan
    - std::string::substr
    - ReusableStringStream::str
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fpToString(T value, int precision)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1978,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1978,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1991,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1994,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:1997,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2000,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2003,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - string
    - escapeInvisibles
    argTypes:
    - StringRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 2010
    functionName: Catch::Detail::convertIntoString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 13
    functionsReached:
    - std::string::push_back
    - std::string::append
    - StringRef::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string convertIntoString(StringRef string, bool escapeInvisibles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2013,1
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2014
    functionName: Catch::Detail::convertIntoString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 14
    functionsReached:
    - getCurrentContext
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string convertIntoString(StringRef string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2018,1
    - Dst: Catch::Detail::which
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2019,1
    - Dst: static_cast<unsigned char const *>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2024,1
    - Dst: std::setfill
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2026,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2028,1
    - Dst: static_cast<unsigned>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2028,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - object
    - size
    argTypes:
    - void*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2030
    functionName: Catch::Detail::rawMemoryToString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - static_cast<unsigned>
    - static_cast<unsigned char const *>
    - std::setw
    - ReusableStringStream::str
    - Catch::Detail::which
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string rawMemoryToString( const void *object, std::size_t size
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2041
    functionDepth: 2
    functionLinenumber: 2041
    functionLinenumberEnd: 2043
    functionName: Catch::StringMaker<std::string>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::string>::convert(const std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2047,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2047,1
    - Dst: std::string_view::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2047,1
    - Dst: std::string_view::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2046
    functionDepth: 2
    functionLinenumber: 2046
    functionLinenumberEnd: 2048
    functionName: Catch::StringMaker<std::string_view>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - std::string_view::data
    - Catch::Detail::convertIntoString
    - std::string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::string_view>::convert(std::string_view
      str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2051
    functionDepth: 2
    functionLinenumber: 2051
    functionLinenumberEnd: 2057
    functionName: Catch::StringMaker<char const*>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<char const*>::convert(char const* str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::convertIntoString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2058
    functionDepth: 2
    functionLinenumber: 2058
    functionLinenumberEnd: 2064
    functionName: Catch::StringMaker<char*>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::convertIntoString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<char*>::convert(char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2069,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2069,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2071,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' wstr'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2074
    functionName: Catch::StringMaker<std::wstring>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<char>
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::wstring>::convert(const std::wstring&
      wstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StringMaker<std::wstring>::convert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2078,1
    - Dst: std::wstring
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::wstring_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2077
    functionDepth: 0
    functionLinenumber: 2077
    functionLinenumberEnd: 2079
    functionName: Catch::StringMaker<std::wstring_view>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StringMaker<std::wstring>::convert
    - std::wstring
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::wstring_view>::convert(std::wstring_view
      str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2088
    functionName: Catch::StringMaker<wchar_t const*>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<wchar_t const*>::convert(wchar_t const * str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2095
    functionName: Catch::StringMaker<wchar_t *>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<wchar_t *>::convert(wchar_t * str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2101,1
    - Dst: std::to_integer<unsigned long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2100
    functionDepth: 1
    functionLinenumber: 2100
    functionLinenumberEnd: 2102
    functionName: Catch::StringMaker<std::byte>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - std::to_integer<unsigned long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<std::byte>::convert(std::byte value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2106,1
    - Dst: static_cast<long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2105
    functionDepth: 1
    functionLinenumber: 2105
    functionLinenumberEnd: 2107
    functionName: Catch::StringMaker<int>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<int>::convert(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2109,1
    - Dst: static_cast<long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2110
    functionName: Catch::StringMaker<long>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<long>::convert(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2111
    functionDepth: 0
    functionLinenumber: 2111
    functionLinenumberEnd: 2118
    functionName: Catch::StringMaker<long long>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<long long>::convert(long long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2121,1
    - Dst: static_cast<unsigned long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2122
    functionName: Catch::StringMaker<unsigned int>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<unsigned long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<unsigned int>::convert(unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2124,1
    - Dst: static_cast<unsigned long long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2125
    functionName: Catch::StringMaker<unsigned long>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<unsigned long long>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<unsigned long>::convert(unsigned long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2133
    functionName: Catch::StringMaker<unsigned long long>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<unsigned long long>::convert(unsigned long
      long value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2145,1
    - Dst: static_cast<unsigned int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2151
    functionName: Catch::StringMaker<signed char>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<unsigned int>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<signed char>::convert(signed char value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2153,1
    - Dst: static_cast<signed char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2154
    functionName: Catch::StringMaker<char>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<signed char>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<char>::convert(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2156,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2157
    functionName: Catch::StringMaker<unsigned char>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    - static_cast<char>
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<unsigned char>::convert(unsigned char value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::fpToString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2161
    functionDepth: 2
    functionLinenumber: 2161
    functionLinenumberEnd: 2163
    functionName: Catch::StringMaker<float>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::fpToString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<float>::convert(float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::fpToString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2169
    functionName: Catch::StringMaker<double>::convert
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::fpToString
    linkageType: ''
    returnType: std::string
    signature: std::string StringMaker<double>::convert(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2177
    functionDepth: 0
    functionLinenumber: 2177
    functionLinenumberEnd: 2184
    functionName: Counts::operator - ( Counts const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Counts
    signature: Counts Counts::operator - ( Counts const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2192
    functionName: '& Counts::operator += ( Counts const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Counts
    signature: Counts & Counts::operator += ( Counts const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2194
    functionDepth: 0
    functionLinenumber: 2194
    functionLinenumberEnd: 2196
    functionName: Catch::Counts::total
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t Counts::total() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2197
    functionDepth: 0
    functionLinenumber: 2197
    functionLinenumberEnd: 2199
    functionName: Catch::Counts::allPassed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Counts::allPassed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2200
    functionDepth: 0
    functionLinenumber: 2200
    functionLinenumberEnd: 2202
    functionName: Catch::Counts::allOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Counts::allOk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2204
    functionDepth: 0
    functionLinenumber: 2204
    functionLinenumberEnd: 2209
    functionName: Totals::operator - ( Totals const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Totals
    signature: Totals Totals::operator - ( Totals const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2215
    functionName: '& Totals::operator += ( Totals const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Totals
    signature: Totals & Totals::operator += ( Totals const& other )
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' prevTotals'
    argTypes:
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2217
    functionDepth: 0
    functionLinenumber: 2217
    functionLinenumberEnd: 2228
    functionName: Catch::Totals::delta
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Totals
    signature: Totals Totals::delta( Totals const& prevTotals ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2177
    functionDepth: 0
    functionLinenumber: 2177
    functionLinenumberEnd: 2184
    functionName: Counts::operator - ( Counts const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Counts
    signature: Counts Counts::operator - ( Counts const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2192
    functionName: '& Counts::operator += ( Counts const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Counts
    signature: Counts & Counts::operator += ( Counts const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2194
    functionDepth: 0
    functionLinenumber: 2194
    functionLinenumberEnd: 2196
    functionName: Catch::Counts::total
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t Counts::total() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2197
    functionDepth: 0
    functionLinenumber: 2197
    functionLinenumberEnd: 2199
    functionName: Catch::Counts::allPassed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Counts::allPassed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2200
    functionDepth: 0
    functionLinenumber: 2200
    functionLinenumberEnd: 2202
    functionName: Catch::Counts::allOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Counts::allOk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2204
    functionDepth: 0
    functionLinenumber: 2204
    functionLinenumberEnd: 2209
    functionName: Totals::operator - ( Totals const& other ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Totals
    signature: Totals Totals::operator - ( Totals const& other ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2215
    functionName: '& Totals::operator += ( Totals const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Totals
    signature: Totals & Totals::operator += ( Totals const& other )
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' prevTotals'
    argTypes:
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2217
    functionDepth: 0
    functionLinenumber: 2217
    functionLinenumberEnd: 2228
    functionName: Catch::Totals::delta
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Totals
    signature: Totals Totals::delta( Totals const& prevTotals ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2239,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2241
    functionName: Catch::Detail::registerTranslatorImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: "void registerTranslatorImpl(\n            Detail::unique_ptr<IExceptionTranslator>&&
      translator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2239,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2241
    functionName: Catch::Detail::registerTranslatorImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: "void registerTranslatorImpl(\n            Detail::unique_ptr<IExceptionTranslator>&&
      translator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2239,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2241
    functionName: Catch::Detail::registerTranslatorImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: "void registerTranslatorImpl(\n            Detail::unique_ptr<IExceptionTranslator>&&
      translator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2239,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2241
    functionName: Catch::Detail::registerTranslatorImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: "void registerTranslatorImpl(\n            Detail::unique_ptr<IExceptionTranslator>&&
      translator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - _majorVersion
    - _minorVersion
    - _patchNumber
    - _branchName
    - _buildNumber
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2250
    functionDepth: 0
    functionLinenumber: 2250
    functionLinenumberEnd: 2261
    functionName: Catch::Version::Version
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Version::Version\n        (   unsigned int _majorVersion,\n            unsigned
      int _minorVersion,\n            unsigned int _patchNumber,\n            char
      const * const _branchName,\n            unsigned int _buildNumber )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' os'
    - ' version'
    argTypes:
    - std::ostream
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2273
    functionName: '& operator << ( std::ostream& os, Version const& version )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << ( std::ostream& os, Version const& version
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2278
    functionName: Catch::libraryVersion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Version
    signature: Version & libraryVersion()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - _majorVersion
    - _minorVersion
    - _patchNumber
    - _branchName
    - _buildNumber
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2250
    functionDepth: 0
    functionLinenumber: 2250
    functionLinenumberEnd: 2261
    functionName: Catch::Version::Version
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Version::Version\n        (   unsigned int _majorVersion,\n            unsigned
      int _minorVersion,\n            unsigned int _patchNumber,\n            char
      const * const _branchName,\n            unsigned int _buildNumber )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' os'
    - ' version'
    argTypes:
    - std::ostream
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2273
    functionName: '& operator << ( std::ostream& os, Version const& version )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << ( std::ostream& os, Version const& version
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2278
    functionName: Catch::libraryVersion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Version
    signature: Version & libraryVersion()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2287
    functionDepth: 0
    functionLinenumber: 2287
    functionLinenumberEnd: 2289
    functionName: Catch::GeneratorException::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * GeneratorException::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2287
    functionDepth: 0
    functionLinenumber: 2287
    functionLinenumberEnd: 2289
    functionName: Catch::GeneratorException::what
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * GeneratorException::what() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2298
    functionName: IGeneratorTracker::~IGeneratorTracker()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IGeneratorTracker::~IGeneratorTracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: Catch::Generators::Detail::throw_generator_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_generator_exception(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: Catch::Generators::Detail::throw_generator_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_generator_exception(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2310
    functionDepth: 0
    functionLinenumber: 2310
    functionLinenumberEnd: 2310
    functionName: GeneratorUntypedBase::~GeneratorUntypedBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase::~GeneratorUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - generatorName
    - ' lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2312
    functionDepth: 1
    functionLinenumber: 2312
    functionLinenumberEnd: 2314
    functionName: Catch::Generators::acquireGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getResultCapture
    linkageType: ''
    returnType: IGeneratorTracker
    signature: IGeneratorTracker * acquireGeneratorTracker(StringRef generatorName,
      SourceLineInfo const& lineInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2319,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - generatorName
    - lineInfo
    - ' generator'
    argTypes:
    - StringRef
    - SourceLineInfo
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2316
    functionDepth: 1
    functionLinenumber: 2316
    functionLinenumberEnd: 2321
    functionName: Catch::Generators::createGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getResultCapture
    - CATCH_MOVE
    linkageType: ''
    returnType: IGeneratorTracker
    signature: "IGeneratorTracker * createGeneratorTracker( StringRef generatorName,\n
      \                                SourceLineInfo lineInfo,\n                                 GeneratorBasePtr&&
      generator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: Catch::Generators::Detail::throw_generator_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_generator_exception(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: Catch::Generators::Detail::throw_generator_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_generator_exception(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2310
    functionDepth: 0
    functionLinenumber: 2310
    functionLinenumberEnd: 2310
    functionName: GeneratorUntypedBase::~GeneratorUntypedBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase::~GeneratorUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - generatorName
    - ' lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2312
    functionDepth: 1
    functionLinenumber: 2312
    functionLinenumberEnd: 2314
    functionName: Catch::Generators::acquireGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getResultCapture
    linkageType: ''
    returnType: IGeneratorTracker
    signature: IGeneratorTracker * acquireGeneratorTracker(StringRef generatorName,
      SourceLineInfo const& lineInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2319,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - generatorName
    - lineInfo
    - ' generator'
    argTypes:
    - StringRef
    - SourceLineInfo
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2316
    functionDepth: 1
    functionLinenumber: 2316
    functionLinenumberEnd: 2321
    functionName: Catch::Generators::createGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getResultCapture
    - CATCH_MOVE
    linkageType: ''
    returnType: IGeneratorTracker
    signature: "IGeneratorTracker * createGeneratorTracker( StringRef generatorName,\n
      \                                SourceLineInfo lineInfo,\n                                 GeneratorBasePtr&&
      generator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2298
    functionName: IGeneratorTracker::~IGeneratorTracker()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IGeneratorTracker::~IGeneratorTracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: Catch::Generators::Detail::throw_generator_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_generator_exception(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: Catch::Generators::Detail::throw_generator_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_generator_exception(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2310
    functionDepth: 0
    functionLinenumber: 2310
    functionLinenumberEnd: 2310
    functionName: GeneratorUntypedBase::~GeneratorUntypedBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase::~GeneratorUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - generatorName
    - ' lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2312
    functionDepth: 1
    functionLinenumber: 2312
    functionLinenumberEnd: 2314
    functionName: Catch::Generators::acquireGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getResultCapture
    linkageType: ''
    returnType: IGeneratorTracker
    signature: IGeneratorTracker * acquireGeneratorTracker(StringRef generatorName,
      SourceLineInfo const& lineInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2319,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - generatorName
    - lineInfo
    - ' generator'
    argTypes:
    - StringRef
    - SourceLineInfo
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2316
    functionDepth: 1
    functionLinenumber: 2316
    functionLinenumberEnd: 2321
    functionName: Catch::Generators::createGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getResultCapture
    - CATCH_MOVE
    linkageType: ''
    returnType: IGeneratorTracker
    signature: "IGeneratorTracker * createGeneratorTracker( StringRef generatorName,\n
      \                                SourceLineInfo lineInfo,\n                                 GeneratorBasePtr&&
      generator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: Catch::Generators::Detail::throw_generator_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_generator_exception(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: Catch::Generators::Detail::throw_generator_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::throw_exception
    linkageType: ''
    returnType: void
    signature: void throw_generator_exception(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2310
    functionDepth: 0
    functionLinenumber: 2310
    functionLinenumberEnd: 2310
    functionName: GeneratorUntypedBase::~GeneratorUntypedBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GeneratorUntypedBase::~GeneratorUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - generatorName
    - ' lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2312
    functionDepth: 1
    functionLinenumber: 2312
    functionLinenumberEnd: 2314
    functionName: Catch::Generators::acquireGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getResultCapture
    linkageType: ''
    returnType: IGeneratorTracker
    signature: IGeneratorTracker * acquireGeneratorTracker(StringRef generatorName,
      SourceLineInfo const& lineInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2319,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - generatorName
    - lineInfo
    - ' generator'
    argTypes:
    - StringRef
    - SourceLineInfo
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2316
    functionDepth: 1
    functionLinenumber: 2316
    functionLinenumberEnd: 2321
    functionName: Catch::Generators::createGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getResultCapture
    - CATCH_MOVE
    linkageType: ''
    returnType: IGeneratorTracker
    signature: "IGeneratorTracker * createGeneratorTracker( StringRef generatorName,\n
      \                                SourceLineInfo lineInfo,\n                                 GeneratorBasePtr&&
      generator )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: Catch::Generators::Detail::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - sharedRng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: Catch::Generators::Detail::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - sharedRng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - long double
    - long double
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2339
    functionName: Catch::Generators::PImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PImpl( long double a, long double b, uint32_t seed )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<PImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2347,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2348,1
    - Dst: Catch::Generators::RandomFloatingGenerator<long double>::next
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - long double
    - long double
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2349
    functionName: Catch::Generators::RandomFloatingGenerator<long double>::RandomFloatingGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomFloatingGenerator<long double>::next
    - Catch::Detail::make_unique<PImpl>
    linkageType: ''
    returnType: void
    signature: "void RandomFloatingGenerator<long double>::RandomFloatingGenerator(\n
      \           long double a, long double b, std::uint32_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2352
    functionName: RandomFloatingGenerator<long double>::~RandomFloatingGenerator()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RandomFloatingGenerator<long double>::~RandomFloatingGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2353
    functionDepth: 0
    functionLinenumber: 2353
    functionLinenumberEnd: 2356
    functionName: Catch::Generators::RandomFloatingGenerator<long double>::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - dist
    linkageType: ''
    returnType: bool
    signature: bool RandomFloatingGenerator<long double>::next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: Catch::Generators::Detail::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - sharedRng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: Catch::Generators::Detail::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - sharedRng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - long double
    - long double
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2339
    functionName: Catch::Generators::PImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PImpl( long double a, long double b, uint32_t seed )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<PImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2347,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2348,1
    - Dst: Catch::Generators::RandomFloatingGenerator<long double>::next
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - long double
    - long double
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2349
    functionName: Catch::Generators::RandomFloatingGenerator<long double>::RandomFloatingGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomFloatingGenerator<long double>::next
    - Catch::Detail::make_unique<PImpl>
    linkageType: ''
    returnType: void
    signature: "void RandomFloatingGenerator<long double>::RandomFloatingGenerator(\n
      \           long double a, long double b, std::uint32_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2352
    functionName: RandomFloatingGenerator<long double>::~RandomFloatingGenerator()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RandomFloatingGenerator<long double>::~RandomFloatingGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2353
    functionDepth: 0
    functionLinenumber: 2353
    functionLinenumberEnd: 2356
    functionName: Catch::Generators::RandomFloatingGenerator<long double>::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - dist
    linkageType: ''
    returnType: bool
    signature: bool RandomFloatingGenerator<long double>::next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: Catch::Generators::Detail::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - sharedRng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: Catch::Generators::Detail::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - sharedRng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - long double
    - long double
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2339
    functionName: Catch::Generators::PImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PImpl( long double a, long double b, uint32_t seed )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<PImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2347,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2348,1
    - Dst: Catch::Generators::RandomFloatingGenerator<long double>::next
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - long double
    - long double
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2349
    functionName: Catch::Generators::RandomFloatingGenerator<long double>::RandomFloatingGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomFloatingGenerator<long double>::next
    - Catch::Detail::make_unique<PImpl>
    linkageType: ''
    returnType: void
    signature: "void RandomFloatingGenerator<long double>::RandomFloatingGenerator(\n
      \           long double a, long double b, std::uint32_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2352
    functionName: RandomFloatingGenerator<long double>::~RandomFloatingGenerator()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RandomFloatingGenerator<long double>::~RandomFloatingGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2353
    functionDepth: 0
    functionLinenumber: 2353
    functionLinenumberEnd: 2356
    functionName: Catch::Generators::RandomFloatingGenerator<long double>::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - dist
    linkageType: ''
    returnType: bool
    signature: bool RandomFloatingGenerator<long double>::next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: Catch::Generators::Detail::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - sharedRng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2334
    functionName: Catch::Generators::Detail::getSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - sharedRng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t getSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - long double
    - long double
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2339
    functionName: Catch::Generators::PImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PImpl( long double a, long double b, uint32_t seed )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<PImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2347,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2348,1
    - Dst: Catch::Generators::RandomFloatingGenerator<long double>::next
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - seed
    argTypes:
    - long double
    - long double
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2349
    functionName: Catch::Generators::RandomFloatingGenerator<long double>::RandomFloatingGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - Catch::Generators::RandomFloatingGenerator<long double>::next
    - Catch::Detail::make_unique<PImpl>
    linkageType: ''
    returnType: void
    signature: "void RandomFloatingGenerator<long double>::RandomFloatingGenerator(\n
      \           long double a, long double b, std::uint32_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2352
    functionName: RandomFloatingGenerator<long double>::~RandomFloatingGenerator()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RandomFloatingGenerator<long double>::~RandomFloatingGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dist
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2353
    functionDepth: 0
    functionLinenumber: 2353
    functionLinenumberEnd: 2356
    functionName: Catch::Generators::RandomFloatingGenerator<long double>::next
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - dist
    linkageType: ''
    returnType: bool
    signature: bool RandomFloatingGenerator<long double>::next()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2364
    functionDepth: 0
    functionLinenumber: 2364
    functionLinenumberEnd: 2364
    functionName: IResultCapture::~IResultCapture()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IResultCapture::~IResultCapture()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2364
    functionDepth: 0
    functionLinenumber: 2364
    functionLinenumberEnd: 2364
    functionName: IResultCapture::~IResultCapture()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IResultCapture::~IResultCapture()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2371
    functionDepth: 0
    functionLinenumber: 2371
    functionLinenumberEnd: 2371
    functionName: IConfig::~IConfig()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IConfig::~IConfig()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2371
    functionDepth: 0
    functionLinenumber: 2371
    functionLinenumberEnd: 2371
    functionName: IConfig::~IConfig()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IConfig::~IConfig()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2378
    functionName: IExceptionTranslator::~IExceptionTranslator()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IExceptionTranslator::~IExceptionTranslator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2379
    functionDepth: 0
    functionLinenumber: 2379
    functionLinenumberEnd: 2379
    functionName: IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2378
    functionName: IExceptionTranslator::~IExceptionTranslator()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IExceptionTranslator::~IExceptionTranslator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2379
    functionDepth: 0
    functionLinenumber: 2379
    functionLinenumberEnd: 2379
    functionName: IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2390,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2396
    functionName: Catch::Generators::GeneratorUntypedBase::countedNext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - next
    - clear
    linkageType: ''
    returnType: bool
    signature: bool GeneratorUntypedBase::countedNext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2399,1
    - Dst: stringifyImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2398
    functionDepth: 0
    functionLinenumber: 2398
    functionLinenumberEnd: 2403
    functionName: Catch::Generators::GeneratorUntypedBase::currentElementAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - stringifyImpl
    - empty
    linkageType: ''
    returnType: StringRef
    signature: StringRef GeneratorUntypedBase::currentElementAsString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2390,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2396
    functionName: Catch::Generators::GeneratorUntypedBase::countedNext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - next
    - clear
    linkageType: ''
    returnType: bool
    signature: bool GeneratorUntypedBase::countedNext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2399,1
    - Dst: stringifyImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2398
    functionDepth: 0
    functionLinenumber: 2398
    functionLinenumberEnd: 2403
    functionName: Catch::Generators::GeneratorUntypedBase::currentElementAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - stringifyImpl
    - empty
    linkageType: ''
    returnType: StringRef
    signature: StringRef GeneratorUntypedBase::currentElementAsString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2390,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2396
    functionName: Catch::Generators::GeneratorUntypedBase::countedNext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - next
    - clear
    linkageType: ''
    returnType: bool
    signature: bool GeneratorUntypedBase::countedNext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2399,1
    - Dst: stringifyImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2398
    functionDepth: 0
    functionLinenumber: 2398
    functionLinenumberEnd: 2403
    functionName: Catch::Generators::GeneratorUntypedBase::currentElementAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - stringifyImpl
    - empty
    linkageType: ''
    returnType: StringRef
    signature: StringRef GeneratorUntypedBase::currentElementAsString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2390,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2396
    functionName: Catch::Generators::GeneratorUntypedBase::countedNext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - next
    - clear
    linkageType: ''
    returnType: bool
    signature: bool GeneratorUntypedBase::countedNext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2399,1
    - Dst: stringifyImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2398
    functionDepth: 0
    functionLinenumber: 2398
    functionLinenumberEnd: 2403
    functionName: Catch::Generators::GeneratorUntypedBase::currentElementAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - stringifyImpl
    - empty
    linkageType: ''
    returnType: StringRef
    signature: StringRef GeneratorUntypedBase::currentElementAsString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2412
    functionName: IRegistryHub::~IRegistryHub()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRegistryHub::~IRegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2413
    functionName: IMutableRegistryHub::~IMutableRegistryHub()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IMutableRegistryHub::~IMutableRegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2412
    functionName: IRegistryHub::~IRegistryHub()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRegistryHub::~IRegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2413
    functionName: IMutableRegistryHub::~IMutableRegistryHub()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IMutableRegistryHub::~IMutableRegistryHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2427,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _fullConfig
    - _stream
    - colourMode
    - customOptions
    argTypes:
    - IConfig*
    - Detail::unique_ptr<IStream>
    - ColourMode
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2430
    functionName: Catch::ReporterConfig::ReporterConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ReporterConfig::ReporterConfig(\n        IConfig const* _fullConfig,\n
      \       Detail::unique_ptr<IStream> _stream,\n        ColourMode colourMode,\n
      \       std::map<std::string, std::string> customOptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2433,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_stream )
      pos:
        line_end: 2432
        line_start: 2432
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 2435
      start: 2432
    functionDepth: 1
    functionLinenumber: 2432
    functionLinenumberEnd: 2435
    functionName: Catch::ReporterConfig::takeStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: Detail::unique_ptr<IStream>
    signature: Detail::unique_ptr<IStream> ReporterConfig::takeStream() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2436
    functionName: Catch::ReporterConfig::fullConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IConfig
    signature: IConfig * ReporterConfig::fullConfig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2437
    functionDepth: 0
    functionLinenumber: 2437
    functionLinenumberEnd: 2437
    functionName: Catch::ReporterConfig::colourMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColourMode
    signature: ColourMode ReporterConfig::colourMode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2442
    functionName: "&\n    ReporterConfig::customOptions() const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: "std::map<std::string, std::string> &\n    ReporterConfig::customOptions()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2444
    functionDepth: 0
    functionLinenumber: 2444
    functionLinenumberEnd: 2444
    functionName: ReporterConfig::~ReporterConfig()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReporterConfig::~ReporterConfig()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2453,1
    - Dst: getTestMacroName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2456,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2456,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2456,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2457,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2457,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2459,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' _assertionResult'
    - ' _infoMessages'
    - ' _totals'
    argTypes:
    - AssertionResult
    - std::vector<MessageInfo>
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2461
    functionName: Catch::AssertionStats::AssertionStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - push_back
    - getTestMacroName
    - getSourceInfo
    - getMessage
    - CATCH_MOVE
    - static_cast<std::string>
    - hasMessage
    linkageType: ''
    returnType: void
    signature: "void AssertionStats::AssertionStats( AssertionResult const& _assertionResult,\n
      \                                   std::vector<MessageInfo> const& _infoMessages,\n
      \                                   Totals const& _totals )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - ' _sectionInfo'
    - ' _assertions'
    - _durationInSeconds
    - _missingAssertions
    argTypes:
    - SectionInfo
    - Counts
    - double
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2471
    functionName: Catch::SectionStats::SectionStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void SectionStats::SectionStats(  SectionInfo&& _sectionInfo,\n                                 Counts
      const& _assertions,\n                                 double _durationInSeconds,\n
      \                                bool _missingAssertions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2481,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 5
    argNames:
    - ' _testInfo'
    - ' _totals'
    - ' _stdOut'
    - ' _stdErr'
    - _aborting
    argTypes:
    - TestCaseInfo
    - Totals
    - std::string
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2484
    functionName: Catch::TestCaseStats::TestCaseStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void TestCaseStats::TestCaseStats(  TestCaseInfo const& _testInfo,\n
      \                                  Totals const& _totals,\n                                   std::string&&
      _stdOut,\n                                   std::string&& _stdErr,\n                                   bool
      _aborting )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' _runInfo'
    - ' _totals'
    - _aborting
    argTypes:
    - TestRunInfo
    - Totals
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2487
    functionDepth: 0
    functionLinenumber: 2487
    functionLinenumberEnd: 2493
    functionName: Catch::TestRunStats::TestRunStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestRunStats::TestRunStats(   TestRunInfo const& _runInfo,\n
      \                   Totals const& _totals,\n                    bool _aborting
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2495
    functionName: IEventListener::~IEventListener()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IEventListener::~IEventListener()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2427,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - _fullConfig
    - _stream
    - colourMode
    - customOptions
    argTypes:
    - IConfig*
    - Detail::unique_ptr<IStream>
    - ColourMode
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2430
    functionName: Catch::ReporterConfig::ReporterConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ReporterConfig::ReporterConfig(\n        IConfig const* _fullConfig,\n
      \       Detail::unique_ptr<IStream> _stream,\n        ColourMode colourMode,\n
      \       std::map<std::string, std::string> customOptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2433,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_stream )
      pos:
        line_end: 2432
        line_start: 2432
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 2435
      start: 2432
    functionDepth: 1
    functionLinenumber: 2432
    functionLinenumberEnd: 2435
    functionName: Catch::ReporterConfig::takeStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - CATCH_MOVE
    linkageType: ''
    returnType: Detail::unique_ptr<IStream>
    signature: Detail::unique_ptr<IStream> ReporterConfig::takeStream() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2436
    functionName: Catch::ReporterConfig::fullConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IConfig
    signature: IConfig * ReporterConfig::fullConfig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2437
    functionDepth: 0
    functionLinenumber: 2437
    functionLinenumberEnd: 2437
    functionName: Catch::ReporterConfig::colourMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColourMode
    signature: ColourMode ReporterConfig::colourMode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2442
    functionName: "&\n    ReporterConfig::customOptions() const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: "std::map<std::string, std::string> &\n    ReporterConfig::customOptions()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2444
    functionDepth: 0
    functionLinenumber: 2444
    functionLinenumberEnd: 2444
    functionName: ReporterConfig::~ReporterConfig()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReporterConfig::~ReporterConfig()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2453,1
    - Dst: getTestMacroName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2456,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2456,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2456,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2457,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2457,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2459,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' _assertionResult'
    - ' _infoMessages'
    - ' _totals'
    argTypes:
    - AssertionResult
    - std::vector<MessageInfo>
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2461
    functionName: Catch::AssertionStats::AssertionStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - push_back
    - getTestMacroName
    - getSourceInfo
    - getMessage
    - CATCH_MOVE
    - static_cast<std::string>
    - hasMessage
    linkageType: ''
    returnType: void
    signature: "void AssertionStats::AssertionStats( AssertionResult const& _assertionResult,\n
      \                                   std::vector<MessageInfo> const& _infoMessages,\n
      \                                   Totals const& _totals )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - ' _sectionInfo'
    - ' _assertions'
    - _durationInSeconds
    - _missingAssertions
    argTypes:
    - SectionInfo
    - Counts
    - double
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2471
    functionName: Catch::SectionStats::SectionStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void SectionStats::SectionStats(  SectionInfo&& _sectionInfo,\n                                 Counts
      const& _assertions,\n                                 double _durationInSeconds,\n
      \                                bool _missingAssertions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2481,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 5
    argNames:
    - ' _testInfo'
    - ' _totals'
    - ' _stdOut'
    - ' _stdErr'
    - _aborting
    argTypes:
    - TestCaseInfo
    - Totals
    - std::string
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2484
    functionName: Catch::TestCaseStats::TestCaseStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void TestCaseStats::TestCaseStats(  TestCaseInfo const& _testInfo,\n
      \                                  Totals const& _totals,\n                                   std::string&&
      _stdOut,\n                                   std::string&& _stdErr,\n                                   bool
      _aborting )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' _runInfo'
    - ' _totals'
    - _aborting
    argTypes:
    - TestRunInfo
    - Totals
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2487
    functionDepth: 0
    functionLinenumber: 2487
    functionLinenumberEnd: 2493
    functionName: Catch::TestRunStats::TestRunStats
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestRunStats::TestRunStats(   TestRunInfo const& _runInfo,\n
      \                   Totals const& _totals,\n                    bool _aborting
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2495
    functionName: IEventListener::~IEventListener()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IEventListener::~IEventListener()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2503
    functionName: IReporterFactory::~IReporterFactory()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IReporterFactory::~IReporterFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2504
    functionName: EventListenerFactory::~EventListenerFactory()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerFactory::~EventListenerFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2503
    functionName: IReporterFactory::~IReporterFactory()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IReporterFactory::~IReporterFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2504
    functionName: EventListenerFactory::~EventListenerFactory()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerFactory::~EventListenerFactory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2511
    functionDepth: 0
    functionLinenumber: 2511
    functionLinenumberEnd: 2511
    functionName: ITestCaseRegistry::~ITestCaseRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITestCaseRegistry::~ITestCaseRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2511
    functionDepth: 0
    functionLinenumber: 2511
    functionLinenumberEnd: 2511
    functionName: ITestCaseRegistry::~ITestCaseRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITestCaseRegistry::~ITestCaseRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2524,1
    - Dst: notifyAssertionStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - macroName
    - ' lineInfo'
    - capturedExpression
    - resultDisposition
    argTypes:
    - StringRef
    - SourceLineInfo
    - StringRef
    - ResultDisposition::Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2518
    functionDepth: 1
    functionLinenumber: 2518
    functionLinenumberEnd: 2527
    functionName: Catch::AssertionHandler::AssertionHandler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - notifyAssertionStarted
    linkageType: ''
    returnType: void
    signature: "void AssertionHandler::AssertionHandler\n        (   StringRef macroName,\n
      \           SourceLineInfo const& lineInfo,\n            StringRef capturedExpression,\n
      \           ResultDisposition::Flags resultDisposition )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ITransientExpression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2531
      start: 2529
    functionDepth: 1
    functionLinenumber: 2529
    functionLinenumberEnd: 2531
    functionName: Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 9
    functionsReached:
    - Catch::AssertionHandler::handleExpr
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleExpr( ITransientExpression const& expr
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionHandler::handleMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - resultType
    - message
    argTypes:
    - ResultWas::OfType
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2532
    functionDepth: 1
    functionLinenumber: 2532
    functionLinenumberEnd: 2534
    functionName: Catch::AssertionHandler::handleMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::AssertionHandler::handleMessage
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleMessage(ResultWas::OfType resultType,
      StringRef message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2536
    functionDepth: 0
    functionLinenumber: 2536
    functionLinenumberEnd: 2538
    functionName: Catch::AssertionHandler::allowThrows
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getCurrentContext
    linkageType: ''
    returnType: auto
    signature: auto AssertionHandler::allowThrows() const -> bool
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_BREAK_INTO_DEBUGGER
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2548,1
    - Dst: throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2551,1
    - Dst: throw_test_skip_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2540
    functionDepth: 2
    functionLinenumber: 2540
    functionLinenumberEnd: 2556
    functionName: Catch::AssertionHandler::complete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - throw_test_skip_exception
    - CATCH_BREAK_INTO_DEBUGGER
    - throw_test_failure_exception
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::complete()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionHandler::handleUnexpectedInflightException
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2559,1
    - Dst: Catch::translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2558
    functionDepth: 4
    functionLinenumber: 2558
    functionLinenumberEnd: 2560
    functionName: Catch::AssertionHandler::handleUnexpectedInflightException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::AssertionHandler::handleUnexpectedInflightException
    - Catch::translateActiveException
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleUnexpectedInflightException()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handleNonExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2562
    functionDepth: 0
    functionLinenumber: 2562
    functionLinenumberEnd: 2564
    functionName: Catch::AssertionHandler::handleExceptionThrownAsExpected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - handleNonExpr
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleExceptionThrownAsExpected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handleNonExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2565
    functionDepth: 0
    functionLinenumber: 2565
    functionLinenumberEnd: 2567
    functionName: Catch::AssertionHandler::handleExceptionNotThrownAsExpected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - handleNonExpr
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleExceptionNotThrownAsExpected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionHandler::handleUnexpectedExceptionNotThrown
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2571
    functionName: Catch::AssertionHandler::handleUnexpectedExceptionNotThrown
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::AssertionHandler::handleUnexpectedExceptionNotThrown
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleUnexpectedExceptionNotThrown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handleNonExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2573
    functionDepth: 0
    functionLinenumber: 2573
    functionLinenumberEnd: 2575
    functionName: Catch::AssertionHandler::handleThrowingCallSkipped
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - handleNonExpr
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleThrowingCallSkipped()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::handleExceptionMatchExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2580,1
    - Dst: Catch::Matchers::Equals
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' handler'
    - ' str'
    argTypes:
    - AssertionHandler
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2581
    functionName: Catch::handleExceptionMatchExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::Matchers::Equals
    - Catch::handleExceptionMatchExpr
    linkageType: ''
    returnType: void
    signature: void handleExceptionMatchExpr( AssertionHandler& handler, std::string
      const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2524,1
    - Dst: notifyAssertionStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - macroName
    - ' lineInfo'
    - capturedExpression
    - resultDisposition
    argTypes:
    - StringRef
    - SourceLineInfo
    - StringRef
    - ResultDisposition::Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2518
    functionDepth: 1
    functionLinenumber: 2518
    functionLinenumberEnd: 2527
    functionName: Catch::AssertionHandler::AssertionHandler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - notifyAssertionStarted
    linkageType: ''
    returnType: void
    signature: "void AssertionHandler::AssertionHandler\n        (   StringRef macroName,\n
      \           SourceLineInfo const& lineInfo,\n            StringRef capturedExpression,\n
      \           ResultDisposition::Flags resultDisposition )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionHandler::handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' expr'
    argTypes:
    - ITransientExpression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2531
      start: 2529
    functionDepth: 1
    functionLinenumber: 2529
    functionLinenumberEnd: 2531
    functionName: Catch::AssertionHandler::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached:
    - Catch::AssertionHandler::handleExpr
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleExpr( ITransientExpression const& expr
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionHandler::handleMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - resultType
    - message
    argTypes:
    - ResultWas::OfType
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2532
    functionDepth: 1
    functionLinenumber: 2532
    functionLinenumberEnd: 2534
    functionName: Catch::AssertionHandler::handleMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::AssertionHandler::handleMessage
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleMessage(ResultWas::OfType resultType,
      StringRef message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2536
    functionDepth: 0
    functionLinenumber: 2536
    functionLinenumberEnd: 2538
    functionName: Catch::AssertionHandler::allowThrows
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getCurrentContext
    linkageType: ''
    returnType: auto
    signature: auto AssertionHandler::allowThrows() const -> bool
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_BREAK_INTO_DEBUGGER
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2548,1
    - Dst: throw_test_failure_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2551,1
    - Dst: throw_test_skip_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2540
    functionDepth: 2
    functionLinenumber: 2540
    functionLinenumberEnd: 2556
    functionName: Catch::AssertionHandler::complete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - throw_test_skip_exception
    - CATCH_BREAK_INTO_DEBUGGER
    - throw_test_failure_exception
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::complete()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionHandler::handleUnexpectedInflightException
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2559,1
    - Dst: Catch::translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2558
    functionDepth: 4
    functionLinenumber: 2558
    functionLinenumberEnd: 2560
    functionName: Catch::AssertionHandler::handleUnexpectedInflightException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::AssertionHandler::handleUnexpectedInflightException
    - Catch::translateActiveException
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleUnexpectedInflightException()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handleNonExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2562
    functionDepth: 0
    functionLinenumber: 2562
    functionLinenumberEnd: 2564
    functionName: Catch::AssertionHandler::handleExceptionThrownAsExpected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - handleNonExpr
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleExceptionThrownAsExpected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handleNonExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2565
    functionDepth: 0
    functionLinenumber: 2565
    functionLinenumberEnd: 2567
    functionName: Catch::AssertionHandler::handleExceptionNotThrownAsExpected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - handleNonExpr
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleExceptionNotThrownAsExpected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionHandler::handleUnexpectedExceptionNotThrown
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2571
    functionName: Catch::AssertionHandler::handleUnexpectedExceptionNotThrown
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::AssertionHandler::handleUnexpectedExceptionNotThrown
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleUnexpectedExceptionNotThrown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handleNonExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2573
    functionDepth: 0
    functionLinenumber: 2573
    functionLinenumberEnd: 2575
    functionName: Catch::AssertionHandler::handleThrowingCallSkipped
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - handleNonExpr
    linkageType: ''
    returnType: void
    signature: void AssertionHandler::handleThrowingCallSkipped()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::handleExceptionMatchExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2580,1
    - Dst: Catch::Matchers::Equals
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' handler'
    - ' str'
    argTypes:
    - AssertionHandler
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2581
    functionName: Catch::handleExceptionMatchExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::Matchers::Equals
    - Catch::handleExceptionMatchExpr
    linkageType: ''
    returnType: void
    signature: void handleExceptionMatchExpr( AssertionHandler& handler, std::string
      const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2595,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2596,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2596,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2597,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2597,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2598,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2599
    functionName: "CaseInsensitiveLess::operator()( StringRef lhs,\n                                              StringRef
      rhs ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::end
    - StringRef::begin
    - toLower
    - std::lexicographical_compare
    linkageType: ''
    returnType: bool
    signature: "bool CaseInsensitiveLess::operator()( StringRef lhs,\n                                              StringRef
      rhs ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2604,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2605,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2605,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2606,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2606,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2607,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2601
    functionDepth: 1
    functionLinenumber: 2601
    functionLinenumberEnd: 2608
    functionName: "CaseInsensitiveEqualTo::operator()( StringRef lhs,\n                                            StringRef
      rhs ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::end
    - equal
    - StringRef::begin
    - toLower
    linkageType: ''
    returnType: bool
    signature: "bool CaseInsensitiveEqualTo::operator()( StringRef lhs,\n                                            StringRef
      rhs ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2595,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2596,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2596,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2597,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2597,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2598,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2599
    functionName: "CaseInsensitiveLess::operator()( StringRef lhs,\n                                              StringRef
      rhs ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::end
    - StringRef::begin
    - toLower
    - std::lexicographical_compare
    linkageType: ''
    returnType: bool
    signature: "bool CaseInsensitiveLess::operator()( StringRef lhs,\n                                              StringRef
      rhs ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2604,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2605,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2605,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2606,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2606,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2607,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2601
    functionDepth: 1
    functionLinenumber: 2601
    functionLinenumberEnd: 2608
    functionName: "CaseInsensitiveEqualTo::operator()( StringRef lhs,\n                                            StringRef
      rhs ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::end
    - equal
    - StringRef::begin
    - toLower
    linkageType: ''
    returnType: bool
    signature: "bool CaseInsensitiveEqualTo::operator()( StringRef lhs,\n                                            StringRef
      rhs ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2595,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2596,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2596,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2597,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2597,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2598,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2599
    functionName: "CaseInsensitiveLess::operator()( StringRef lhs,\n                                              StringRef
      rhs ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::end
    - StringRef::begin
    - toLower
    - std::lexicographical_compare
    linkageType: ''
    returnType: bool
    signature: "bool CaseInsensitiveLess::operator()( StringRef lhs,\n                                              StringRef
      rhs ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2604,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2605,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2605,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2606,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2606,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2607,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2601
    functionDepth: 1
    functionLinenumber: 2601
    functionLinenumberEnd: 2608
    functionName: "CaseInsensitiveEqualTo::operator()( StringRef lhs,\n                                            StringRef
      rhs ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::end
    - equal
    - StringRef::begin
    - toLower
    linkageType: ''
    returnType: bool
    signature: "bool CaseInsensitiveEqualTo::operator()( StringRef lhs,\n                                            StringRef
      rhs ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2595,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2596,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2596,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2597,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2597,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2598,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2599
    functionName: "CaseInsensitiveLess::operator()( StringRef lhs,\n                                              StringRef
      rhs ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::end
    - StringRef::begin
    - toLower
    - std::lexicographical_compare
    linkageType: ''
    returnType: bool
    signature: "bool CaseInsensitiveLess::operator()( StringRef lhs,\n                                              StringRef
      rhs ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2604,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2605,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2605,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2606,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2606,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2607,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2601
    functionDepth: 1
    functionLinenumber: 2601
    functionLinenumberEnd: 2608
    functionName: "CaseInsensitiveEqualTo::operator()( StringRef lhs,\n                                            StringRef
      rhs ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::end
    - equal
    - StringRef::begin
    - toLower
    linkageType: ''
    returnType: bool
    signature: "bool CaseInsensitiveEqualTo::operator()( StringRef lhs,\n                                            StringRef
      rhs ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2626
    functionName: isOptPrefix
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isOptPrefix( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2634,1
    - Dst: Catch::StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - optName
    argTypes:
    - Catch::StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2628
    functionDepth: 1
    functionLinenumber: 2628
    functionLinenumberEnd: 2638
    functionName: normaliseOpt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StringRef::size
    - Catch::StringRef::substr
    linkageType: ''
    returnType: Catch::StringRef
    signature: Catch::StringRef normaliseOpt( Catch::StringRef optName )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2645,1
    - Dst: is_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sr
    argTypes:
    - Catch::StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2640
    functionDepth: 0
    functionLinenumber: 2640
    functionLinenumberEnd: 2651
    functionName: find_first_separator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - is_separator
    - Catch::StringRef::size
    linkageType: ''
    returnType: size_t
    signature: size_t find_first_separator(Catch::StringRef sr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2626
    functionName: isOptPrefix
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isOptPrefix( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2634,1
    - Dst: Catch::StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - optName
    argTypes:
    - Catch::StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2628
    functionDepth: 1
    functionLinenumber: 2628
    functionLinenumberEnd: 2638
    functionName: normaliseOpt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StringRef::size
    - Catch::StringRef::substr
    linkageType: ''
    returnType: Catch::StringRef
    signature: Catch::StringRef normaliseOpt( Catch::StringRef optName )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2645,1
    - Dst: is_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sr
    argTypes:
    - Catch::StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2640
    functionDepth: 0
    functionLinenumber: 2640
    functionLinenumberEnd: 2651
    functionName: find_first_separator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - is_separator
    - Catch::StringRef::size
    linkageType: ''
    returnType: size_t
    signature: size_t find_first_separator(Catch::StringRef sr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2660,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2663,1
    - Dst: isOptPrefix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2669,1
    - Dst: find_first_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2670,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2672,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2674,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2675,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2679,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2681,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2682,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2684,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2687,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: Catch::Clara::Detail::TokenStream::loadBuffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - find_first_separator
    - StringRef::substr
    - empty
    - StringRef::size
    - clear
    - isOptPrefix
    linkageType: ''
    returnType: void
    signature: void TokenStream::loadBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_args::begin
    - m_args::end
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Args const& args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::TokenStream::loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it_
    - itEnd_
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2704
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::TokenStream::loadBuffer
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Iterator it_, Iterator itEnd_ )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2707,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: '& TokenStream::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - erase
    - loadBuffer
    - size
    - begin
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & TokenStream::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      std::string&
      target )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2725,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2734,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2739
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - toLower
    - Catch::Clara::Detail::BasicResult::runtimeError
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      bool&
      target )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2741
    functionName: Catch::Clara::Detail::ParserBase::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ParserBase::cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::ParserBase::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: exeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: TokenStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2745
    functionName: Catch::Clara::Detail::ParserBase::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - TokenStream
    - static_cast<std::string>
    - exeName
    - Catch::Clara::Detail::ParserBase::parse
    linkageType: ''
    returnType: InternalParseResult
    signature: InternalParseResult ParserBase::parse( Args const& args ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - remainingTokens
    argTypes:
    - ParseResultType
    - TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2749
    functionName: Catch::Clara::Detail::ParseState::ParseState
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ParseState::ParseState( ParseResultType type,\n                                    TokenStream
      remainingTokens )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: Catch::Clara::Detail::BoundFlagRef::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult BoundFlagRef::setFlag( bool flag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2756
    functionName: ResultBase::~ResultBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase::~ResultBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2758
    functionName: Catch::Clara::Detail::BoundRef::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isContainer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2760
    functionName: Catch::Clara::Detail::BoundRef::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2762
    functionName: Catch::Clara::Detail::BoundFlagRefBase::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundFlagRefBase::isFlag() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2660,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2663,1
    - Dst: isOptPrefix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2669,1
    - Dst: find_first_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2670,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2672,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2674,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2675,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2679,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2681,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2682,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2684,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2687,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: Catch::Clara::Detail::TokenStream::loadBuffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - find_first_separator
    - StringRef::substr
    - empty
    - StringRef::size
    - clear
    - isOptPrefix
    linkageType: ''
    returnType: void
    signature: void TokenStream::loadBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_args::begin
    - m_args::end
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Args const& args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::TokenStream::loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it_
    - itEnd_
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2704
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::TokenStream::loadBuffer
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Iterator it_, Iterator itEnd_ )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2707,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: '& TokenStream::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - erase
    - loadBuffer
    - size
    - begin
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & TokenStream::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      std::string&
      target )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2725,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2734,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2739
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - toLower
    - Catch::Clara::Detail::BasicResult::runtimeError
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      bool&
      target )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2741
    functionName: Catch::Clara::Detail::ParserBase::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ParserBase::cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::ParserBase::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: exeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: TokenStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2745
    functionName: Catch::Clara::Detail::ParserBase::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - TokenStream
    - static_cast<std::string>
    - exeName
    - Catch::Clara::Detail::ParserBase::parse
    linkageType: ''
    returnType: InternalParseResult
    signature: InternalParseResult ParserBase::parse( Args const& args ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - remainingTokens
    argTypes:
    - ParseResultType
    - TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2749
    functionName: Catch::Clara::Detail::ParseState::ParseState
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ParseState::ParseState( ParseResultType type,\n                                    TokenStream
      remainingTokens )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: Catch::Clara::Detail::BoundFlagRef::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult BoundFlagRef::setFlag( bool flag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2756
    functionName: ResultBase::~ResultBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase::~ResultBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2758
    functionName: Catch::Clara::Detail::BoundRef::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isContainer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2760
    functionName: Catch::Clara::Detail::BoundRef::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2762
    functionName: Catch::Clara::Detail::BoundFlagRefBase::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundFlagRefBase::isFlag() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2768,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2770,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2774,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2774,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2775,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2777,1
    - Dst: isFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2777,1
    - Dst: static_cast<Detail::BoundValueRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2779,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2779,1
    - Dst: auto::setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2781,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2781,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2783,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2785,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2786,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts:
    - condition: (!m_ref->isFlag())
      pos:
        line_end: 2776
        line_start: 2776
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 2788
      start: 2766
    functionDepth: 2
    functionLinenumber: 2766
    functionLinenumberEnd: 2788
    functionName: Catch::Clara::Arg::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::setValue
    - assert
    - static_cast<Detail::BoundValueRefBase*>
    - isFlag
    - Catch::Clara::Detail::BasicResult::ok
    - Detail::InternalParseResult
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Clara::Detail::ParseState::ParseState
    - validate
    - get
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Arg::parse(std::string const&,\n                                               Detail::TokenStream
      tokens) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundFlagRef>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2791
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundFlagRef>
    linkageType: ''
    returnType: void
    signature: void Opt::Opt(bool& ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2803,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2793
    functionDepth: 0
    functionLinenumber: 2793
    functionLinenumberEnd: 2806
    functionName: Catch::Clara::Opt::getHelpColumns
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - empty
    linkageType: ''
    returnType: Detail::HelpColumns
    signature: Detail::HelpColumns Opt::getHelpColumns() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: normaliseOpt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2809,1
    - Dst: normaliseOpt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - optToken
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2808
    functionDepth: 2
    functionLinenumber: 2808
    functionLinenumberEnd: 2815
    functionName: Catch::Clara::Opt::isMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - normaliseOpt
    linkageType: ''
    returnType: bool
    signature: bool Opt::isMatch(StringRef optToken) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Opt::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2819,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2821,1
    - Dst: Catch::Clara::Opt::isMatch
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2826,1
    - Dst: isFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2827,1
    - Dst: static_cast<Detail::BoundFlagRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2829,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2830,1
    - Dst: auto::setFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2831,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2833,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2834,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2836,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2836,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2837,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2837,1
    - Dst: static_cast<Detail::BoundValueRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2840,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2841,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2844,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2849,1
    - Dst: auto::setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2852,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2852,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2854,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2855,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2857,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2857,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2858,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2858,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2860,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2860,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2861,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2864,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2865,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2865,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2817
    functionDepth: 3
    functionLinenumber: 2817
    functionLinenumberEnd: 2866
    functionName: Catch::Clara::Opt::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::setValue
    - static_cast<Detail::BoundValueRefBase*>
    - isFlag
    - static_cast<Detail::BoundFlagRefBase*>
    - Catch::Clara::Detail::ParseState::ParseState
    - Detail::InternalParseResult
    - auto::value
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Clara::Opt::validate
    - Catch::Clara::Detail::BasicResult::runtimeError
    - get
    - Catch::Clara::Opt::isMatch
    - auto::setFlag
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Opt::parse(std::string const&,\n                                       Detail::TokenStream
      tokens) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2869,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2870,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2872,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2873,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2877,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2881,1
    - Dst: Catch::Clara::Detail::ParserBase::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2868
    functionDepth: 3
    functionLinenumber: 2868
    functionLinenumberEnd: 2886
    functionName: Catch::Clara::Opt::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::Clara::Detail::BasicResult::logicError
    - Catch::Clara::Detail::ParserBase::validate
    - empty
    linkageType: ''
    returnType: Detail::Result
    signature: Detail::Result Opt::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2888
    functionDepth: 0
    functionLinenumber: 2888
    functionLinenumberEnd: 2889
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<std::string>
    linkageType: ''
    returnType: void
    signature: void ExeName::ExeName()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundValueRef<std::string>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2893
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundValueRef<std::string>>
    linkageType: ''
    returnType: void
    signature: void ExeName::ExeName(std::string& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2898,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2899,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 2900
    functionName: Catch::Clara::ExeName::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::ParseState::ParseState
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult ExeName::parse(std::string const&,\n                           Detail::TokenStream
      tokens) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_last_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2903,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2906,1
    - Dst: setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2910,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' newName'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2902
    functionDepth: 2
    functionLinenumber: 2902
    functionLinenumberEnd: 2913
    functionName: Catch::Clara::ExeName::set
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - substr
    - setValue
    - find_last_of
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult ExeName::set(std::string const& newName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2919,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2919,1
    - Dst: m_options::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2920,1
    - Dst: m_options::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2921,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2922,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2925
    functionName: '& Parser::operator|=( Parser const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    - m_options::begin
    - m_options::end
    - m_args::end
    - m_args::begin
    linkageType: ''
    returnType: Parser
    signature: Parser & Parser::operator|=( Parser const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2929,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2929,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2931,1
    - Dst: Catch::Clara::Parser::getHelpColumns
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2927
    functionDepth: 1
    functionLinenumber: 2927
    functionLinenumberEnd: 2934
    functionName: Catch::Clara::Parser::getHelpColumns
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::vector::reserve
    - Catch::Clara::Parser::getHelpColumns
    - size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Detail::HelpColumns>
    signature: std::vector<Detail::HelpColumns> Parser::getHelpColumns() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2937,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2939,1
    - Dst: isOptional
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2946,1
    - Dst: hint
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2950,1
    - Dst: cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2951,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2956,1
    - Dst: Catch::Clara::Parser::getHelpColumns
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2961,1
    - Dst: left::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2965,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2970,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2970,1
    - Dst: Catch::TextFlow::Spacer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2973,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2974,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2974,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2936
    functionDepth: 2
    functionLinenumber: 2936
    functionLinenumberEnd: 2978
    functionName: Catch::Clara::Parser::writeToStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name
    - isOptional
    - left::size
    - empty
    - Catch::TextFlow::Spacer
    - hint
    - cardinality
    - Catch::Clara::Parser::getHelpColumns
    - Catch::TextFlow::Column::Column
    - CATCH_MOVE
    - static_cast<std::string>
    linkageType: ''
    returnType: void
    signature: void Parser::writeToStream( std::ostream& os ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Parser::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2982,1
    - Dst: Catch::Clara::Parser::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2987,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2980
    functionDepth: 2
    functionLinenumber: 2980
    functionLinenumberEnd: 2992
    functionName: Catch::Clara::Parser::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - Catch::Clara::Parser::validate
    linkageType: ''
    returnType: Detail::Result
    signature: Detail::Result Parser::validate() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3005,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3008,1
    - Dst: set
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3011,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3013,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3014,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3014,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3015,1
    - Dst: parser::cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3019,1
    - Dst: parser::cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3020,1
    - Dst: parser::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3021,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3022,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3025,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3034,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3037,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3039,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - ' exeName'
    - tokens
    argTypes:
    - std::string
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 2994
    functionDepth: 2
    functionLinenumber: 2994
    functionLinenumberEnd: 3043
    functionName: Catch::Clara::Parser::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - parser::cardinality
    - set
    - std::vector::reserve
    - parser::parse
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    - auto::value
    - Catch::Clara::Detail::ParseState::ParseState
    - Catch::Clara::Detail::BasicResult::runtimeError
    - size
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Parser::parse( std::string const& exeName,\n
      \                      Detail::TokenStream tokens ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3045
    functionDepth: 0
    functionLinenumber: 3045
    functionLinenumberEnd: 3046
    functionName: Catch::Clara::Args::Args
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Args::Args(int argc, char const* const* argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<StringRef>::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3049,1
    - Dst: std::initializer_list<StringRef>::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3050,1
    - Dst: std::initializer_list<StringRef>::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - args
    argTypes:
    - std::initializer_list<StringRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3048
    functionDepth: 0
    functionLinenumber: 3048
    functionLinenumberEnd: 3050
    functionName: Catch::Clara::Args::Args
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::initializer_list<StringRef>::end
    - std::initializer_list<StringRef>::begin
    linkageType: ''
    returnType: void
    signature: void Args::Args(std::initializer_list<StringRef> args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3056,1
    - Dst: static_cast<Opt&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3058,1
    - Dst: optional
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' showHelpFlag'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3053
    functionDepth: 2
    functionLinenumber: 3053
    functionLinenumberEnd: 3061
    functionName: Catch::Clara::Help::Help
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - static_cast<Opt&>
    - optional
    linkageType: ''
    returnType: void
    signature: void Help::Help( bool& showHelpFlag )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2660,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2663,1
    - Dst: isOptPrefix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2669,1
    - Dst: find_first_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2670,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2672,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2674,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2675,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2679,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2681,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2682,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2684,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2687,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: Catch::Clara::Detail::TokenStream::loadBuffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - find_first_separator
    - StringRef::substr
    - empty
    - StringRef::size
    - clear
    - isOptPrefix
    linkageType: ''
    returnType: void
    signature: void TokenStream::loadBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_args::begin
    - m_args::end
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Args const& args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::TokenStream::loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it_
    - itEnd_
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2704
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::TokenStream::loadBuffer
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Iterator it_, Iterator itEnd_ )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2707,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: '& TokenStream::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - erase
    - loadBuffer
    - size
    - begin
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & TokenStream::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      std::string&
      target )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2725,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2734,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2739
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - toLower
    - Catch::Clara::Detail::BasicResult::runtimeError
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      bool&
      target )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2741
    functionName: Catch::Clara::Detail::ParserBase::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ParserBase::cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::ParserBase::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: exeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: TokenStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2745
    functionName: Catch::Clara::Detail::ParserBase::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - TokenStream
    - static_cast<std::string>
    - exeName
    - Catch::Clara::Detail::ParserBase::parse
    linkageType: ''
    returnType: InternalParseResult
    signature: InternalParseResult ParserBase::parse( Args const& args ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - remainingTokens
    argTypes:
    - ParseResultType
    - TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2749
    functionName: Catch::Clara::Detail::ParseState::ParseState
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ParseState::ParseState( ParseResultType type,\n                                    TokenStream
      remainingTokens )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: Catch::Clara::Detail::BoundFlagRef::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult BoundFlagRef::setFlag( bool flag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2756
    functionName: ResultBase::~ResultBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase::~ResultBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2758
    functionName: Catch::Clara::Detail::BoundRef::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isContainer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2760
    functionName: Catch::Clara::Detail::BoundRef::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2762
    functionName: Catch::Clara::Detail::BoundFlagRefBase::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundFlagRefBase::isFlag() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2660,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2663,1
    - Dst: isOptPrefix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2669,1
    - Dst: find_first_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2670,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2672,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2674,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2675,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2679,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2681,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2682,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2684,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2687,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: Catch::Clara::Detail::TokenStream::loadBuffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - push_back
    - find_first_separator
    - StringRef::substr
    - empty
    - StringRef::size
    - clear
    - isOptPrefix
    linkageType: ''
    returnType: void
    signature: void TokenStream::loadBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_args::begin
    - m_args::end
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Args const& args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::TokenStream::loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it_
    - itEnd_
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2704
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::TokenStream::loadBuffer
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Iterator it_, Iterator itEnd_ )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2707,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: '& TokenStream::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - erase
    - loadBuffer
    - size
    - begin
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & TokenStream::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      std::string&
      target )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2725,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2734,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2739
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - toLower
    - Catch::Clara::Detail::BasicResult::runtimeError
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      bool&
      target )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2741
    functionName: Catch::Clara::Detail::ParserBase::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ParserBase::cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::ParserBase::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: exeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: TokenStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2745
    functionName: Catch::Clara::Detail::ParserBase::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - TokenStream
    - static_cast<std::string>
    - exeName
    - Catch::Clara::Detail::ParserBase::parse
    linkageType: ''
    returnType: InternalParseResult
    signature: InternalParseResult ParserBase::parse( Args const& args ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - remainingTokens
    argTypes:
    - ParseResultType
    - TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2749
    functionName: Catch::Clara::Detail::ParseState::ParseState
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ParseState::ParseState( ParseResultType type,\n                                    TokenStream
      remainingTokens )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: Catch::Clara::Detail::BoundFlagRef::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult BoundFlagRef::setFlag( bool flag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2756
    functionName: ResultBase::~ResultBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase::~ResultBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2758
    functionName: Catch::Clara::Detail::BoundRef::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isContainer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2760
    functionName: Catch::Clara::Detail::BoundRef::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2762
    functionName: Catch::Clara::Detail::BoundFlagRefBase::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundFlagRefBase::isFlag() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2768,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2770,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2774,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2774,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2775,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2777,1
    - Dst: isFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2777,1
    - Dst: static_cast<Detail::BoundValueRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2779,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2779,1
    - Dst: auto::setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2781,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2781,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2783,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2785,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2786,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts:
    - condition: (!m_ref->isFlag())
      pos:
        line_end: 2776
        line_start: 2776
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 2788
      start: 2766
    functionDepth: 2
    functionLinenumber: 2766
    functionLinenumberEnd: 2788
    functionName: Catch::Clara::Arg::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::setValue
    - assert
    - static_cast<Detail::BoundValueRefBase*>
    - isFlag
    - Catch::Clara::Detail::BasicResult::ok
    - Detail::InternalParseResult
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Clara::Detail::ParseState::ParseState
    - validate
    - get
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Arg::parse(std::string const&,\n                                               Detail::TokenStream
      tokens) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundFlagRef>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2791
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundFlagRef>
    linkageType: ''
    returnType: void
    signature: void Opt::Opt(bool& ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2803,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2793
    functionDepth: 0
    functionLinenumber: 2793
    functionLinenumberEnd: 2806
    functionName: Catch::Clara::Opt::getHelpColumns
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - empty
    linkageType: ''
    returnType: Detail::HelpColumns
    signature: Detail::HelpColumns Opt::getHelpColumns() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: normaliseOpt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2809,1
    - Dst: normaliseOpt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - optToken
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2808
    functionDepth: 2
    functionLinenumber: 2808
    functionLinenumberEnd: 2815
    functionName: Catch::Clara::Opt::isMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - normaliseOpt
    linkageType: ''
    returnType: bool
    signature: bool Opt::isMatch(StringRef optToken) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Opt::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2819,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2821,1
    - Dst: Catch::Clara::Opt::isMatch
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2826,1
    - Dst: isFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2827,1
    - Dst: static_cast<Detail::BoundFlagRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2829,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2830,1
    - Dst: auto::setFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2831,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2833,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2834,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2836,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2836,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2837,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2837,1
    - Dst: static_cast<Detail::BoundValueRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2840,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2841,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2844,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2849,1
    - Dst: auto::setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2852,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2852,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2854,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2855,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2857,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2857,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2858,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2858,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2860,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2860,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2861,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2864,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2865,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2865,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2817
    functionDepth: 4
    functionLinenumber: 2817
    functionLinenumberEnd: 2866
    functionName: Catch::Clara::Opt::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::setValue
    - static_cast<Detail::BoundValueRefBase*>
    - isFlag
    - static_cast<Detail::BoundFlagRefBase*>
    - Catch::Clara::Detail::ParseState::ParseState
    - Detail::InternalParseResult
    - auto::value
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Clara::Opt::validate
    - Catch::Clara::Detail::BasicResult::runtimeError
    - get
    - Catch::Clara::Opt::isMatch
    - auto::setFlag
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Opt::parse(std::string const&,\n                                       Detail::TokenStream
      tokens) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2869,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2870,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2872,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2873,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2877,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2881,1
    - Dst: Catch::Clara::Detail::ParserBase::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2868
    functionDepth: 3
    functionLinenumber: 2868
    functionLinenumberEnd: 2886
    functionName: Catch::Clara::Opt::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::Clara::Detail::BasicResult::logicError
    - Catch::Clara::Detail::ParserBase::validate
    - empty
    linkageType: ''
    returnType: Detail::Result
    signature: Detail::Result Opt::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2888
    functionDepth: 0
    functionLinenumber: 2888
    functionLinenumberEnd: 2889
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<std::string>
    linkageType: ''
    returnType: void
    signature: void ExeName::ExeName()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundValueRef<std::string>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2893
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundValueRef<std::string>>
    linkageType: ''
    returnType: void
    signature: void ExeName::ExeName(std::string& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2898,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2899,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 2900
    functionName: Catch::Clara::ExeName::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::ParseState::ParseState
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult ExeName::parse(std::string const&,\n                           Detail::TokenStream
      tokens) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_last_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2903,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2906,1
    - Dst: setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2910,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' newName'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2902
    functionDepth: 2
    functionLinenumber: 2902
    functionLinenumberEnd: 2913
    functionName: Catch::Clara::ExeName::set
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - substr
    - setValue
    - find_last_of
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult ExeName::set(std::string const& newName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2919,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2919,1
    - Dst: m_options::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2920,1
    - Dst: m_options::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2921,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2922,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2925
    functionName: '& Parser::operator|=( Parser const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    - m_options::begin
    - m_options::end
    - m_args::end
    - m_args::begin
    linkageType: ''
    returnType: Parser
    signature: Parser & Parser::operator|=( Parser const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2929,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2929,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2931,1
    - Dst: Catch::Clara::Parser::getHelpColumns
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2927
    functionDepth: 1
    functionLinenumber: 2927
    functionLinenumberEnd: 2934
    functionName: Catch::Clara::Parser::getHelpColumns
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - std::vector::reserve
    - Catch::Clara::Parser::getHelpColumns
    - size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Detail::HelpColumns>
    signature: std::vector<Detail::HelpColumns> Parser::getHelpColumns() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2937,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2939,1
    - Dst: isOptional
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2946,1
    - Dst: hint
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2950,1
    - Dst: cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2951,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2956,1
    - Dst: Catch::Clara::Parser::getHelpColumns
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2961,1
    - Dst: left::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2965,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2970,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2970,1
    - Dst: Catch::TextFlow::Spacer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2973,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2974,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2974,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2936
    functionDepth: 2
    functionLinenumber: 2936
    functionLinenumberEnd: 2978
    functionName: Catch::Clara::Parser::writeToStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name
    - isOptional
    - left::size
    - empty
    - Catch::TextFlow::Spacer
    - hint
    - cardinality
    - Catch::Clara::Parser::getHelpColumns
    - Catch::TextFlow::Column::Column
    - CATCH_MOVE
    - static_cast<std::string>
    linkageType: ''
    returnType: void
    signature: void Parser::writeToStream( std::ostream& os ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Parser::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2982,1
    - Dst: Catch::Clara::Parser::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2987,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2980
    functionDepth: 2
    functionLinenumber: 2980
    functionLinenumberEnd: 2992
    functionName: Catch::Clara::Parser::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - Catch::Clara::Parser::validate
    linkageType: ''
    returnType: Detail::Result
    signature: Detail::Result Parser::validate() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3005,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3008,1
    - Dst: set
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3011,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3013,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3014,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3014,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3015,1
    - Dst: parser::cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3019,1
    - Dst: parser::cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3020,1
    - Dst: parser::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3021,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3022,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3025,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3034,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3037,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3039,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - ' exeName'
    - tokens
    argTypes:
    - std::string
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 2994
    functionDepth: 2
    functionLinenumber: 2994
    functionLinenumberEnd: 3043
    functionName: Catch::Clara::Parser::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - parser::cardinality
    - set
    - std::vector::reserve
    - parser::parse
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    - auto::value
    - Catch::Clara::Detail::ParseState::ParseState
    - Catch::Clara::Detail::BasicResult::runtimeError
    - size
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Parser::parse( std::string const& exeName,\n
      \                      Detail::TokenStream tokens ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3045
    functionDepth: 0
    functionLinenumber: 3045
    functionLinenumberEnd: 3046
    functionName: Catch::Clara::Args::Args
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Args::Args(int argc, char const* const* argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<StringRef>::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3049,1
    - Dst: std::initializer_list<StringRef>::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3050,1
    - Dst: std::initializer_list<StringRef>::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - args
    argTypes:
    - std::initializer_list<StringRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3048
    functionDepth: 0
    functionLinenumber: 3048
    functionLinenumberEnd: 3050
    functionName: Catch::Clara::Args::Args
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::initializer_list<StringRef>::end
    - std::initializer_list<StringRef>::begin
    linkageType: ''
    returnType: void
    signature: void Args::Args(std::initializer_list<StringRef> args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3056,1
    - Dst: static_cast<Opt&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3058,1
    - Dst: optional
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' showHelpFlag'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3053
    functionDepth: 2
    functionLinenumber: 3053
    functionLinenumberEnd: 3061
    functionName: Catch::Clara::Help::Help
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - static_cast<Opt&>
    - optional
    linkageType: ''
    returnType: void
    signature: void Help::Help( bool& showHelpFlag )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2660,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2663,1
    - Dst: isOptPrefix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2669,1
    - Dst: find_first_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2670,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2672,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2674,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2675,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2679,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2681,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2682,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2684,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2687,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: Catch::Clara::Detail::TokenStream::loadBuffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - push_back
    - find_first_separator
    - StringRef::substr
    - empty
    - StringRef::size
    - clear
    - isOptPrefix
    linkageType: ''
    returnType: void
    signature: void TokenStream::loadBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_args::begin
    - m_args::end
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Args const& args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::TokenStream::loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it_
    - itEnd_
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2704
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::TokenStream::loadBuffer
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Iterator it_, Iterator itEnd_ )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2707,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: '& TokenStream::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - erase
    - loadBuffer
    - size
    - begin
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & TokenStream::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      std::string&
      target )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2725,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2734,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2739
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - toLower
    - Catch::Clara::Detail::BasicResult::runtimeError
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      bool&
      target )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2741
    functionName: Catch::Clara::Detail::ParserBase::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ParserBase::cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::ParserBase::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: exeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: TokenStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2745
    functionName: Catch::Clara::Detail::ParserBase::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - TokenStream
    - static_cast<std::string>
    - exeName
    - Catch::Clara::Detail::ParserBase::parse
    linkageType: ''
    returnType: InternalParseResult
    signature: InternalParseResult ParserBase::parse( Args const& args ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - remainingTokens
    argTypes:
    - ParseResultType
    - TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2749
    functionName: Catch::Clara::Detail::ParseState::ParseState
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ParseState::ParseState( ParseResultType type,\n                                    TokenStream
      remainingTokens )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: Catch::Clara::Detail::BoundFlagRef::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult BoundFlagRef::setFlag( bool flag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2756
    functionName: ResultBase::~ResultBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase::~ResultBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2758
    functionName: Catch::Clara::Detail::BoundRef::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isContainer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2760
    functionName: Catch::Clara::Detail::BoundRef::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2762
    functionName: Catch::Clara::Detail::BoundFlagRefBase::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundFlagRefBase::isFlag() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2660,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2663,1
    - Dst: isOptPrefix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2669,1
    - Dst: find_first_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2670,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2672,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2674,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2675,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2679,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2681,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2682,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2684,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2687,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: Catch::Clara::Detail::TokenStream::loadBuffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - push_back
    - find_first_separator
    - StringRef::substr
    - empty
    - StringRef::size
    - clear
    - isOptPrefix
    linkageType: ''
    returnType: void
    signature: void TokenStream::loadBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_args::begin
    - m_args::end
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Args const& args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::TokenStream::loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it_
    - itEnd_
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2704
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::TokenStream::loadBuffer
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Iterator it_, Iterator itEnd_ )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2707,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: '& TokenStream::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - erase
    - loadBuffer
    - size
    - begin
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & TokenStream::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      std::string&
      target )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2725,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2734,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2739
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - toLower
    - Catch::Clara::Detail::BasicResult::runtimeError
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      bool&
      target )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2741
    functionName: Catch::Clara::Detail::ParserBase::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ParserBase::cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::ParserBase::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: exeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: TokenStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2745
    functionName: Catch::Clara::Detail::ParserBase::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - TokenStream
    - static_cast<std::string>
    - exeName
    - Catch::Clara::Detail::ParserBase::parse
    linkageType: ''
    returnType: InternalParseResult
    signature: InternalParseResult ParserBase::parse( Args const& args ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - remainingTokens
    argTypes:
    - ParseResultType
    - TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2749
    functionName: Catch::Clara::Detail::ParseState::ParseState
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ParseState::ParseState( ParseResultType type,\n                                    TokenStream
      remainingTokens )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: Catch::Clara::Detail::BoundFlagRef::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult BoundFlagRef::setFlag( bool flag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2756
    functionName: ResultBase::~ResultBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase::~ResultBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2758
    functionName: Catch::Clara::Detail::BoundRef::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isContainer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2760
    functionName: Catch::Clara::Detail::BoundRef::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2762
    functionName: Catch::Clara::Detail::BoundFlagRefBase::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundFlagRefBase::isFlag() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2768,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2770,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2774,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2774,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2775,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2777,1
    - Dst: isFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2777,1
    - Dst: static_cast<Detail::BoundValueRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2779,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2779,1
    - Dst: auto::setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2781,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2781,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2783,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2785,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2786,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts:
    - condition: (!m_ref->isFlag())
      pos:
        line_end: 2776
        line_start: 2776
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 2788
      start: 2766
    functionDepth: 2
    functionLinenumber: 2766
    functionLinenumberEnd: 2788
    functionName: Catch::Clara::Arg::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::setValue
    - assert
    - static_cast<Detail::BoundValueRefBase*>
    - isFlag
    - Catch::Clara::Detail::BasicResult::ok
    - Detail::InternalParseResult
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Clara::Detail::ParseState::ParseState
    - validate
    - get
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Arg::parse(std::string const&,\n                                               Detail::TokenStream
      tokens) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundFlagRef>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2791
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundFlagRef>
    linkageType: ''
    returnType: void
    signature: void Opt::Opt(bool& ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2803,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2793
    functionDepth: 0
    functionLinenumber: 2793
    functionLinenumberEnd: 2806
    functionName: Catch::Clara::Opt::getHelpColumns
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - empty
    linkageType: ''
    returnType: Detail::HelpColumns
    signature: Detail::HelpColumns Opt::getHelpColumns() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: normaliseOpt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2809,1
    - Dst: normaliseOpt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - optToken
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2808
    functionDepth: 2
    functionLinenumber: 2808
    functionLinenumberEnd: 2815
    functionName: Catch::Clara::Opt::isMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - normaliseOpt
    linkageType: ''
    returnType: bool
    signature: bool Opt::isMatch(StringRef optToken) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Opt::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2819,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2821,1
    - Dst: Catch::Clara::Opt::isMatch
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2826,1
    - Dst: isFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2827,1
    - Dst: static_cast<Detail::BoundFlagRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2829,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2830,1
    - Dst: auto::setFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2831,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2833,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2834,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2836,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2836,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2837,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2837,1
    - Dst: static_cast<Detail::BoundValueRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2840,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2841,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2844,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2849,1
    - Dst: auto::setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2852,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2852,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2854,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2855,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2857,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2857,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2858,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2858,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2860,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2860,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2861,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2864,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2865,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2865,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2817
    functionDepth: 4
    functionLinenumber: 2817
    functionLinenumberEnd: 2866
    functionName: Catch::Clara::Opt::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::setValue
    - static_cast<Detail::BoundValueRefBase*>
    - isFlag
    - static_cast<Detail::BoundFlagRefBase*>
    - Catch::Clara::Detail::ParseState::ParseState
    - Detail::InternalParseResult
    - auto::value
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Clara::Opt::validate
    - Catch::Clara::Detail::BasicResult::runtimeError
    - get
    - Catch::Clara::Opt::isMatch
    - auto::setFlag
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Opt::parse(std::string const&,\n                                       Detail::TokenStream
      tokens) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2869,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2870,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2872,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2873,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2877,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2881,1
    - Dst: Catch::Clara::Detail::ParserBase::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2868
    functionDepth: 3
    functionLinenumber: 2868
    functionLinenumberEnd: 2886
    functionName: Catch::Clara::Opt::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::Clara::Detail::BasicResult::logicError
    - Catch::Clara::Detail::ParserBase::validate
    - empty
    linkageType: ''
    returnType: Detail::Result
    signature: Detail::Result Opt::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2888
    functionDepth: 0
    functionLinenumber: 2888
    functionLinenumberEnd: 2889
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<std::string>
    linkageType: ''
    returnType: void
    signature: void ExeName::ExeName()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundValueRef<std::string>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2893
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundValueRef<std::string>>
    linkageType: ''
    returnType: void
    signature: void ExeName::ExeName(std::string& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2898,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2899,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 2900
    functionName: Catch::Clara::ExeName::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::ParseState::ParseState
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult ExeName::parse(std::string const&,\n                           Detail::TokenStream
      tokens) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_last_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2903,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2906,1
    - Dst: setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2910,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' newName'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2902
    functionDepth: 2
    functionLinenumber: 2902
    functionLinenumberEnd: 2913
    functionName: Catch::Clara::ExeName::set
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - substr
    - setValue
    - find_last_of
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult ExeName::set(std::string const& newName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2919,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2919,1
    - Dst: m_options::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2920,1
    - Dst: m_options::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2921,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2922,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2925
    functionName: '& Parser::operator|=( Parser const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    - m_options::begin
    - m_options::end
    - m_args::end
    - m_args::begin
    linkageType: ''
    returnType: Parser
    signature: Parser & Parser::operator|=( Parser const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2929,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2929,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2931,1
    - Dst: Catch::Clara::Parser::getHelpColumns
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2927
    functionDepth: 1
    functionLinenumber: 2927
    functionLinenumberEnd: 2934
    functionName: Catch::Clara::Parser::getHelpColumns
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - std::vector::reserve
    - Catch::Clara::Parser::getHelpColumns
    - size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Detail::HelpColumns>
    signature: std::vector<Detail::HelpColumns> Parser::getHelpColumns() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2937,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2939,1
    - Dst: isOptional
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2946,1
    - Dst: hint
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2950,1
    - Dst: cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2951,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2956,1
    - Dst: Catch::Clara::Parser::getHelpColumns
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2961,1
    - Dst: left::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2965,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2970,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2970,1
    - Dst: Catch::TextFlow::Spacer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2973,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2974,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2974,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2936
    functionDepth: 2
    functionLinenumber: 2936
    functionLinenumberEnd: 2978
    functionName: Catch::Clara::Parser::writeToStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name
    - isOptional
    - left::size
    - empty
    - Catch::TextFlow::Spacer
    - hint
    - cardinality
    - Catch::Clara::Parser::getHelpColumns
    - Catch::TextFlow::Column::Column
    - CATCH_MOVE
    - static_cast<std::string>
    linkageType: ''
    returnType: void
    signature: void Parser::writeToStream( std::ostream& os ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Parser::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2982,1
    - Dst: Catch::Clara::Parser::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2987,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2980
    functionDepth: 2
    functionLinenumber: 2980
    functionLinenumberEnd: 2992
    functionName: Catch::Clara::Parser::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - Catch::Clara::Parser::validate
    linkageType: ''
    returnType: Detail::Result
    signature: Detail::Result Parser::validate() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3005,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3008,1
    - Dst: set
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3011,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3013,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3014,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3014,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3015,1
    - Dst: parser::cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3019,1
    - Dst: parser::cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3020,1
    - Dst: parser::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3021,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3022,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3025,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3034,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3037,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3039,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - ' exeName'
    - tokens
    argTypes:
    - std::string
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 2994
    functionDepth: 2
    functionLinenumber: 2994
    functionLinenumberEnd: 3043
    functionName: Catch::Clara::Parser::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - parser::cardinality
    - set
    - std::vector::reserve
    - parser::parse
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    - auto::value
    - Catch::Clara::Detail::ParseState::ParseState
    - Catch::Clara::Detail::BasicResult::runtimeError
    - size
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Parser::parse( std::string const& exeName,\n
      \                      Detail::TokenStream tokens ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3045
    functionDepth: 0
    functionLinenumber: 3045
    functionLinenumberEnd: 3046
    functionName: Catch::Clara::Args::Args
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Args::Args(int argc, char const* const* argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<StringRef>::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3049,1
    - Dst: std::initializer_list<StringRef>::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3050,1
    - Dst: std::initializer_list<StringRef>::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - args
    argTypes:
    - std::initializer_list<StringRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3048
    functionDepth: 0
    functionLinenumber: 3048
    functionLinenumberEnd: 3050
    functionName: Catch::Clara::Args::Args
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::initializer_list<StringRef>::end
    - std::initializer_list<StringRef>::begin
    linkageType: ''
    returnType: void
    signature: void Args::Args(std::initializer_list<StringRef> args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3056,1
    - Dst: static_cast<Opt&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3058,1
    - Dst: optional
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' showHelpFlag'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3053
    functionDepth: 2
    functionLinenumber: 3053
    functionLinenumberEnd: 3061
    functionName: Catch::Clara::Help::Help
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - static_cast<Opt&>
    - optional
    linkageType: ''
    returnType: void
    signature: void Help::Help( bool& showHelpFlag )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2660,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2663,1
    - Dst: isOptPrefix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2669,1
    - Dst: find_first_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2670,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2672,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2674,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2675,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2679,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2681,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2682,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2684,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2687,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: Catch::Clara::Detail::TokenStream::loadBuffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - push_back
    - find_first_separator
    - StringRef::substr
    - empty
    - StringRef::size
    - clear
    - isOptPrefix
    linkageType: ''
    returnType: void
    signature: void TokenStream::loadBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_args::begin
    - m_args::end
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Args const& args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::TokenStream::loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it_
    - itEnd_
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2704
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::TokenStream::loadBuffer
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Iterator it_, Iterator itEnd_ )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2707,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: '& TokenStream::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - erase
    - loadBuffer
    - size
    - begin
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & TokenStream::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      std::string&
      target )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2725,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2734,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2739
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - toLower
    - Catch::Clara::Detail::BasicResult::runtimeError
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      bool&
      target )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2741
    functionName: Catch::Clara::Detail::ParserBase::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ParserBase::cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::ParserBase::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: exeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: TokenStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2745
    functionName: Catch::Clara::Detail::ParserBase::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - TokenStream
    - static_cast<std::string>
    - exeName
    - Catch::Clara::Detail::ParserBase::parse
    linkageType: ''
    returnType: InternalParseResult
    signature: InternalParseResult ParserBase::parse( Args const& args ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - remainingTokens
    argTypes:
    - ParseResultType
    - TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2749
    functionName: Catch::Clara::Detail::ParseState::ParseState
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ParseState::ParseState( ParseResultType type,\n                                    TokenStream
      remainingTokens )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: Catch::Clara::Detail::BoundFlagRef::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult BoundFlagRef::setFlag( bool flag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2756
    functionName: ResultBase::~ResultBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase::~ResultBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2758
    functionName: Catch::Clara::Detail::BoundRef::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isContainer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2760
    functionName: Catch::Clara::Detail::BoundRef::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2762
    functionName: Catch::Clara::Detail::BoundFlagRefBase::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundFlagRefBase::isFlag() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2660,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2663,1
    - Dst: isOptPrefix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2669,1
    - Dst: find_first_separator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2670,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2672,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2674,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2675,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2677,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2679,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2681,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2682,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2684,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2687,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2696
    functionName: Catch::Clara::Detail::TokenStream::loadBuffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - push_back
    - find_first_separator
    - StringRef::substr
    - empty
    - StringRef::size
    - clear
    - isOptPrefix
    linkageType: ''
    returnType: void
    signature: void TokenStream::loadBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_args::begin
    - m_args::end
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Args const& args )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::TokenStream::loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it_
    - itEnd_
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2704
    functionName: Catch::Clara::Detail::TokenStream::TokenStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::TokenStream::loadBuffer
    linkageType: ''
    returnType: void
    signature: void TokenStream::TokenStream( Iterator it_, Iterator itEnd_ )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2707,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2708,1
    - Dst: loadBuffer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: '& TokenStream::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - erase
    - loadBuffer
    - size
    - begin
    linkageType: ''
    returnType: TokenStream
    signature: TokenStream & TokenStream::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      std::string&
      target )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2725,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2734,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2739
    functionName: Catch::Clara::Detail::convertInto
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - toLower
    - Catch::Clara::Detail::BasicResult::runtimeError
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: "ParserResult convertInto( std::string const& source,\n                                      bool&
      target )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2741
    functionName: Catch::Clara::Detail::ParserBase::cardinality
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ParserBase::cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::ParserBase::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: exeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    - Dst: TokenStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2745
    functionName: Catch::Clara::Detail::ParserBase::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - TokenStream
    - static_cast<std::string>
    - exeName
    - Catch::Clara::Detail::ParserBase::parse
    linkageType: ''
    returnType: InternalParseResult
    signature: InternalParseResult ParserBase::parse( Args const& args ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - remainingTokens
    argTypes:
    - ParseResultType
    - TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2749
    functionName: Catch::Clara::Detail::ParseState::ParseState
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ParseState::ParseState( ParseResultType type,\n                                    TokenStream
      remainingTokens )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2751
    functionDepth: 2
    functionLinenumber: 2751
    functionLinenumberEnd: 2754
    functionName: Catch::Clara::Detail::BoundFlagRef::setFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult BoundFlagRef::setFlag( bool flag )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2756
    functionName: ResultBase::~ResultBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultBase::~ResultBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2758
    functionName: Catch::Clara::Detail::BoundRef::isContainer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isContainer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2760
    functionName: Catch::Clara::Detail::BoundRef::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundRef::isFlag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2762
    functionName: Catch::Clara::Detail::BoundFlagRefBase::isFlag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BoundFlagRefBase::isFlag() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2768,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2770,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2774,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2774,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2775,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2777,1
    - Dst: isFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2777,1
    - Dst: static_cast<Detail::BoundValueRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2779,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2779,1
    - Dst: auto::setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2781,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2781,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2783,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2785,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2786,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts:
    - condition: (!m_ref->isFlag())
      pos:
        line_end: 2776
        line_start: 2776
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 2788
      start: 2766
    functionDepth: 2
    functionLinenumber: 2766
    functionLinenumberEnd: 2788
    functionName: Catch::Clara::Arg::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::setValue
    - assert
    - static_cast<Detail::BoundValueRefBase*>
    - isFlag
    - Catch::Clara::Detail::BasicResult::ok
    - Detail::InternalParseResult
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Clara::Detail::ParseState::ParseState
    - validate
    - get
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Arg::parse(std::string const&,\n                                               Detail::TokenStream
      tokens) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundFlagRef>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2791
    functionName: Catch::Clara::Opt::Opt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundFlagRef>
    linkageType: ''
    returnType: void
    signature: void Opt::Opt(bool& ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2803,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2793
    functionDepth: 0
    functionLinenumber: 2793
    functionLinenumberEnd: 2806
    functionName: Catch::Clara::Opt::getHelpColumns
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - empty
    linkageType: ''
    returnType: Detail::HelpColumns
    signature: Detail::HelpColumns Opt::getHelpColumns() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: normaliseOpt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2809,1
    - Dst: normaliseOpt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - optToken
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2808
    functionDepth: 2
    functionLinenumber: 2808
    functionLinenumberEnd: 2815
    functionName: Catch::Clara::Opt::isMatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - normaliseOpt
    linkageType: ''
    returnType: bool
    signature: bool Opt::isMatch(StringRef optToken) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Opt::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2819,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2821,1
    - Dst: Catch::Clara::Opt::isMatch
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2826,1
    - Dst: isFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2827,1
    - Dst: static_cast<Detail::BoundFlagRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2829,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2830,1
    - Dst: auto::setFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2831,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2833,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2834,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2836,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2836,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2837,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2837,1
    - Dst: static_cast<Detail::BoundValueRefBase*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2840,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2841,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2844,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2849,1
    - Dst: auto::setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2852,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2852,1
    - Dst: Detail::InternalParseResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2854,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2855,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2857,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2857,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2858,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2858,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2860,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2860,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2861,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2864,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2865,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2865,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2817
    functionDepth: 4
    functionLinenumber: 2817
    functionLinenumberEnd: 2866
    functionName: Catch::Clara::Opt::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::setValue
    - static_cast<Detail::BoundValueRefBase*>
    - isFlag
    - static_cast<Detail::BoundFlagRefBase*>
    - Catch::Clara::Detail::ParseState::ParseState
    - Detail::InternalParseResult
    - auto::value
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Clara::Opt::validate
    - Catch::Clara::Detail::BasicResult::runtimeError
    - get
    - Catch::Clara::Opt::isMatch
    - auto::setFlag
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Opt::parse(std::string const&,\n                                       Detail::TokenStream
      tokens) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2869,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2870,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2872,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2873,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2877,1
    - Dst: Catch::Clara::Detail::BasicResult::logicError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2881,1
    - Dst: Catch::Clara::Detail::ParserBase::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2868
    functionDepth: 3
    functionLinenumber: 2868
    functionLinenumberEnd: 2886
    functionName: Catch::Clara::Opt::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::Clara::Detail::BasicResult::logicError
    - Catch::Clara::Detail::ParserBase::validate
    - empty
    linkageType: ''
    returnType: Detail::Result
    signature: Detail::Result Opt::validate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2888
    functionDepth: 0
    functionLinenumber: 2888
    functionLinenumberEnd: 2889
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<std::string>
    linkageType: ''
    returnType: void
    signature: void ExeName::ExeName()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Detail::BoundValueRef<std::string>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2893
    functionName: Catch::Clara::ExeName::ExeName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Detail::BoundValueRef<std::string>>
    linkageType: ''
    returnType: void
    signature: void ExeName::ExeName(std::string& ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2898,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2899,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 2900
    functionName: Catch::Clara::ExeName::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::ParseState::ParseState
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult ExeName::parse(std::string const&,\n                           Detail::TokenStream
      tokens) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_last_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2903,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2906,1
    - Dst: setValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2910,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' newName'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2902
    functionDepth: 2
    functionLinenumber: 2902
    functionLinenumberEnd: 2913
    functionName: Catch::Clara::ExeName::set
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - substr
    - setValue
    - find_last_of
    - Catch::Clara::Detail::BasicResult::ok
    linkageType: ''
    returnType: ParserResult
    signature: ParserResult ExeName::set(std::string const& newName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2919,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2919,1
    - Dst: m_options::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2920,1
    - Dst: m_options::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2921,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2922,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    - Dst: m_args::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    - Dst: m_args::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2925
    functionName: '& Parser::operator|=( Parser const& other )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    - m_options::begin
    - m_options::end
    - m_args::end
    - m_args::begin
    linkageType: ''
    returnType: Parser
    signature: Parser & Parser::operator|=( Parser const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2929,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2929,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2931,1
    - Dst: Catch::Clara::Parser::getHelpColumns
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2927
    functionDepth: 1
    functionLinenumber: 2927
    functionLinenumberEnd: 2934
    functionName: Catch::Clara::Parser::getHelpColumns
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - std::vector::reserve
    - Catch::Clara::Parser::getHelpColumns
    - size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Detail::HelpColumns>
    signature: std::vector<Detail::HelpColumns> Parser::getHelpColumns() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2937,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2939,1
    - Dst: isOptional
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2946,1
    - Dst: hint
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2950,1
    - Dst: cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2951,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2956,1
    - Dst: Catch::Clara::Parser::getHelpColumns
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2961,1
    - Dst: left::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2965,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2970,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2970,1
    - Dst: Catch::TextFlow::Spacer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2973,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2974,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2974,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2936
    functionDepth: 2
    functionLinenumber: 2936
    functionLinenumberEnd: 2978
    functionName: Catch::Clara::Parser::writeToStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - name
    - isOptional
    - left::size
    - empty
    - Catch::TextFlow::Spacer
    - hint
    - cardinality
    - Catch::Clara::Parser::getHelpColumns
    - Catch::TextFlow::Column::Column
    - CATCH_MOVE
    - static_cast<std::string>
    linkageType: ''
    returnType: void
    signature: void Parser::writeToStream( std::ostream& os ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Parser::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2982,1
    - Dst: Catch::Clara::Parser::validate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2987,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:2991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2980
    functionDepth: 2
    functionLinenumber: 2980
    functionLinenumberEnd: 2992
    functionName: Catch::Clara::Parser::validate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - Catch::Clara::Parser::validate
    linkageType: ''
    returnType: Detail::Result
    signature: Detail::Result Parser::validate() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3003,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3005,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3008,1
    - Dst: set
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3011,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3013,1
    - Dst: Catch::Clara::Detail::ParseState::ParseState
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3014,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3014,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3015,1
    - Dst: parser::cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3019,1
    - Dst: parser::cardinality
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3020,1
    - Dst: parser::parse
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3021,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3022,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3025,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3034,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3037,1
    - Dst: auto::value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3039,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - ' exeName'
    - tokens
    argTypes:
    - std::string
    - Detail::TokenStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 2994
    functionDepth: 2
    functionLinenumber: 2994
    functionLinenumberEnd: 3043
    functionName: Catch::Clara::Parser::parse
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - parser::cardinality
    - set
    - std::vector::reserve
    - parser::parse
    - Catch::Clara::Detail::BasicResult::ok
    - CATCH_MOVE
    - auto::value
    - Catch::Clara::Detail::ParseState::ParseState
    - Catch::Clara::Detail::BasicResult::runtimeError
    - size
    linkageType: ''
    returnType: Detail::InternalParseResult
    signature: "Detail::InternalParseResult Parser::parse( std::string const& exeName,\n
      \                      Detail::TokenStream tokens ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3045
    functionDepth: 0
    functionLinenumber: 3045
    functionLinenumberEnd: 3046
    functionName: Catch::Clara::Args::Args
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Args::Args(int argc, char const* const* argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<StringRef>::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3049,1
    - Dst: std::initializer_list<StringRef>::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3050,1
    - Dst: std::initializer_list<StringRef>::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - args
    argTypes:
    - std::initializer_list<StringRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3048
    functionDepth: 0
    functionLinenumber: 3048
    functionLinenumberEnd: 3050
    functionName: Catch::Clara::Args::Args
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::initializer_list<StringRef>::end
    - std::initializer_list<StringRef>::begin
    linkageType: ''
    returnType: void
    signature: void Args::Args(std::initializer_list<StringRef> args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3056,1
    - Dst: static_cast<Opt&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3058,1
    - Dst: optional
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' showHelpFlag'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3053
    functionDepth: 2
    functionLinenumber: 3053
    functionLinenumberEnd: 3061
    functionName: Catch::Clara::Help::Help
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Clara::Detail::BasicResult::ok
    - static_cast<Opt&>
    - optional
    linkageType: ''
    returnType: void
    signature: void Help::Help( bool& showHelpFlag )
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WarnAbout::What>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3080,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3081,1
    - Dst: static_cast<WarnAbout::What>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3083,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3084,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3087,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3091,1
    - Dst: std::ifstream::is_open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3092,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3093,1
    - Dst: std::getline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3096,1
    - Dst: Catch::trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3097,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3098,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3098,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3099,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3100,1
    - Dst: testsOrTags::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3101,1
    - Dst: testsOrTags::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3102,1
    - Dst: testsOrTags::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3106,1
    - Dst: testsOrTags::erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3107,1
    - Dst: testsOrTags::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3107,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3109,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3112,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3114,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3116,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3119,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3120,1
    - Dst: Catch::generateRandomSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3124,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3125,1
    - Dst: Catch::generateRandomSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3127,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3128,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3133,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3135,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3138,1
    - Dst: Catch::Detail::stringToColourMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3141,1
    - Dst: Catch::toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3141,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3143,1
    - Dst: Catch::isColourImplAvailable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3149,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3150,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3155,1
    - Dst: Catch::toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3158,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3168,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3169,1
    - Dst: Catch::toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3172,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3180,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3181,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3184,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3185,1
    - Dst: Catch::parseReporterSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3189,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3191,1
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3199,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3200,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3200,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3202,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3203,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3204,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3209,1
    - Dst: reporterSpecifications::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3210,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3210,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3218,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3223,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3227,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3230,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3232,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3236,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3240,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3244,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3246,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3250,1
    - Dst: ExeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3254,1
    - Dst: Help
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3255,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3256,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3259,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3262,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3265,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3268,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3271,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3274,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3277,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3280,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3283,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3286,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3289,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3292,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3295,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3298,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3301,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3304,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3307,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3310,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3313,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3316,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3319,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3322,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3325,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3328,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3331,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3334,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3337,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3340,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3343,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3346,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3349,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3352,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3355,1
    - Dst: Arg
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3358,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 121
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ConfigData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3074
    functionDepth: 3
    functionLinenumber: 3074
    functionLinenumberEnd: 3362
    functionName: Catch::makeCommandLineParser
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reporterSpecifications::push_back
    - Catch::parseReporterSpec
    - Catch::trim
    - Catch::getRegistryHub
    - empty
    - outputFile
    - testsOrTags::erase
    - Catch::startsWith
    - Catch::parseUInt
    - std::getline
    - static_cast<WarnAbout::What>
    - end
    - Catch::Clara::Detail::BasicResult::ok
    - Opt
    - Arg
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::ifstream::is_open
    - Catch::generateRandomSeed
    - Catch::Detail::stringToColourMode
    - Catch::isColourImplAvailable
    - Help
    - testsOrTags::empty
    - ExeName
    - testsOrTags::push_back
    - Catch::toLower
    - c_str
    - name
    - std::string::empty
    - find
    - testsOrTags::end
    - CATCH_MOVE
    - testsOrTags::emplace_back
    linkageType: ''
    returnType: Clara::Parser
    signature: Clara::Parser makeCommandLineParser( ConfigData& config )
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WarnAbout::What>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3080,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3081,1
    - Dst: static_cast<WarnAbout::What>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3083,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3084,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3087,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3091,1
    - Dst: std::ifstream::is_open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3092,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3093,1
    - Dst: std::getline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3096,1
    - Dst: Catch::trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3097,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3098,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3098,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3099,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3100,1
    - Dst: testsOrTags::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3101,1
    - Dst: testsOrTags::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3102,1
    - Dst: testsOrTags::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3106,1
    - Dst: testsOrTags::erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3107,1
    - Dst: testsOrTags::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3107,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3109,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3112,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3114,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3116,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3119,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3120,1
    - Dst: Catch::generateRandomSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3124,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3125,1
    - Dst: Catch::generateRandomSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3127,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3128,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3133,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3135,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3138,1
    - Dst: Catch::Detail::stringToColourMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3141,1
    - Dst: Catch::toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3141,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3143,1
    - Dst: Catch::isColourImplAvailable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3149,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3150,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3155,1
    - Dst: Catch::toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3158,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3168,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3169,1
    - Dst: Catch::toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3172,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3180,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3181,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3184,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3185,1
    - Dst: Catch::parseReporterSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3189,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3191,1
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3199,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3200,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3200,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3202,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3203,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3204,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3209,1
    - Dst: reporterSpecifications::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3210,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3210,1
    - Dst: outputFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3218,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3223,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3227,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3230,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3232,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3236,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3240,1
    - Dst: Catch::parseUInt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3244,1
    - Dst: Catch::Clara::Detail::BasicResult::runtimeError
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3246,1
    - Dst: Catch::Clara::Detail::BasicResult::ok
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3250,1
    - Dst: ExeName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3254,1
    - Dst: Help
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3255,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3256,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3259,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3262,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3265,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3268,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3271,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3274,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3277,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3280,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3283,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3286,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3289,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3292,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3295,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3298,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3301,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3304,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3307,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3310,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3313,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3316,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3319,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3322,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3325,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3328,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3331,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3334,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3337,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3340,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3343,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3346,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3349,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3352,1
    - Dst: Opt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3355,1
    - Dst: Arg
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3358,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 121
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ConfigData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3074
    functionDepth: 3
    functionLinenumber: 3074
    functionLinenumberEnd: 3362
    functionName: Catch::makeCommandLineParser
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reporterSpecifications::push_back
    - Catch::parseReporterSpec
    - Catch::trim
    - Catch::getRegistryHub
    - empty
    - outputFile
    - testsOrTags::erase
    - Catch::startsWith
    - Catch::parseUInt
    - std::getline
    - static_cast<WarnAbout::What>
    - end
    - Catch::Clara::Detail::BasicResult::ok
    - Opt
    - Arg
    - Catch::Clara::Detail::BasicResult::runtimeError
    - std::ifstream::is_open
    - Catch::generateRandomSeed
    - Catch::Detail::stringToColourMode
    - Catch::isColourImplAvailable
    - Help
    - testsOrTags::empty
    - ExeName
    - testsOrTags::push_back
    - Catch::toLower
    - c_str
    - name
    - std::string::empty
    - find
    - testsOrTags::end
    - CATCH_MOVE
    - testsOrTags::emplace_back
    linkageType: ''
    returnType: Clara::Parser
    signature: Clara::Parser makeCommandLineParser( ConfigData& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3380
    functionDepth: 0
    functionLinenumber: 3380
    functionLinenumberEnd: 3380
    functionName: ColourImpl::~ColourImpl()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColourImpl::~ColourImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColourGuard
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3384
      start: 3382
    functionDepth: 0
    functionLinenumber: 3382
    functionLinenumberEnd: 3384
    functionName: Catch::ColourImpl::guardColour
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ColourGuard
    linkageType: ''
    returnType: ColourImpl::ColourGuard
    signature: ColourImpl::ColourGuard ColourImpl::guardColour( Colour::Code colourCode
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3387,1
    - Dst: m_stream::stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3387,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3390,1
    - Dst: use
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::ostream
    assertStmts:
    - condition: "( &stream == &m_colourImpl->m_stream->stream() &&\n                \"Engaging
        colour guard for different stream than used by the \"\n                \"parent
        colour implementation\" )"
      pos:
        line_end: 3388
        line_start: 3386
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 3394
      start: 3386
    functionDepth: 0
    functionLinenumber: 3386
    functionLinenumberEnd: 3394
    functionName: ColourImpl::ColourGuard::engageImpl( std::ostream& stream )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - assert
    - use
    - m_stream::stream
    linkageType: ''
    returnType: void
    signature: void ColourImpl::ColourGuard::engageImpl( std::ostream& stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - code
    - colour
    argTypes:
    - Colour::Code
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3399
      start: 3396
    functionDepth: 0
    functionLinenumber: 3396
    functionLinenumberEnd: 3399
    functionName: "ColourImpl::ColourGuard::ColourGuard( Colour::Code code,\n                                          ColourImpl
      const* colour )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ColourImpl::ColourGuard::ColourGuard( Colour::Code code,\n                                          ColourImpl
      const* colour )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3400
    functionDepth: 0
    functionLinenumber: 3400
    functionLinenumberEnd: 3405
    functionName: ColourImpl::ColourGuard::ColourGuard( ColourGuard&& rhs ) noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColourImpl::ColourGuard::ColourGuard( ColourGuard&& rhs ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3409,1
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3410,1
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3406
    functionDepth: 0
    functionLinenumber: 3406
    functionLinenumberEnd: 3414
    functionName: "&\n    ColourImpl::ColourGuard::operator=( ColourGuard&& rhs )
      noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: ColourImpl::ColourGuard
    signature: "ColourImpl::ColourGuard &\n    ColourImpl::ColourGuard::operator=(
      ColourGuard&& rhs ) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3415
    functionDepth: 0
    functionLinenumber: 3415
    functionLinenumberEnd: 3419
    functionName: ColourImpl::ColourGuard::~ColourGuard()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - use
    linkageType: ''
    returnType: void
    signature: void ColourImpl::ColourGuard::~ColourGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engageImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3421
    functionDepth: 0
    functionLinenumber: 3421
    functionLinenumberEnd: 3425
    functionName: "&\n    ColourImpl::ColourGuard::engage( std::ostream& stream )
      &"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - engageImpl
    linkageType: ''
    returnType: ColourImpl::ColourGuard
    signature: "ColourImpl::ColourGuard &\n    ColourImpl::ColourGuard::engage( std::ostream&
      stream ) &"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engageImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3429,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3431
      start: 3427
    functionDepth: 1
    functionLinenumber: 3427
    functionLinenumberEnd: 3431
    functionName: "&&\n    ColourImpl::ColourGuard::engage( std::ostream& stream )
      &&"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - engageImpl
    - CATCH_MOVE
    linkageType: ''
    returnType: ColourImpl::ColourGuard
    signature: "ColourImpl::ColourGuard &&\n    ColourImpl::ColourGuard::engage( std::ostream&
      stream ) &&"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3438
    functionDepth: 0
    functionLinenumber: 3438
    functionLinenumberEnd: 3438
    functionName: Catch::NoColourImpl::NoColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3441
    functionDepth: 0
    functionLinenumber: 3441
    functionLinenumberEnd: 3441
    functionName: Catch::NoColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3438
    functionDepth: 0
    functionLinenumber: 3438
    functionLinenumberEnd: 3438
    functionName: Catch::NoColourImpl::NoColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3441
    functionDepth: 0
    functionLinenumber: 3441
    functionLinenumberEnd: 3441
    functionName: Catch::NoColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3380
    functionDepth: 0
    functionLinenumber: 3380
    functionLinenumberEnd: 3380
    functionName: ColourImpl::~ColourImpl()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColourImpl::~ColourImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColourGuard
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3384
      start: 3382
    functionDepth: 0
    functionLinenumber: 3382
    functionLinenumberEnd: 3384
    functionName: Catch::ColourImpl::guardColour
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ColourGuard
    linkageType: ''
    returnType: ColourImpl::ColourGuard
    signature: ColourImpl::ColourGuard ColourImpl::guardColour( Colour::Code colourCode
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3387,1
    - Dst: m_stream::stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3387,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3390,1
    - Dst: use
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::ostream
    assertStmts:
    - condition: "( &stream == &m_colourImpl->m_stream->stream() &&\n                \"Engaging
        colour guard for different stream than used by the \"\n                \"parent
        colour implementation\" )"
      pos:
        line_end: 3388
        line_start: 3386
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 3394
      start: 3386
    functionDepth: 0
    functionLinenumber: 3386
    functionLinenumberEnd: 3394
    functionName: ColourImpl::ColourGuard::engageImpl( std::ostream& stream )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - assert
    - use
    - m_stream::stream
    linkageType: ''
    returnType: void
    signature: void ColourImpl::ColourGuard::engageImpl( std::ostream& stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - code
    - colour
    argTypes:
    - Colour::Code
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3399
      start: 3396
    functionDepth: 0
    functionLinenumber: 3396
    functionLinenumberEnd: 3399
    functionName: "ColourImpl::ColourGuard::ColourGuard( Colour::Code code,\n                                          ColourImpl
      const* colour )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ColourImpl::ColourGuard::ColourGuard( Colour::Code code,\n                                          ColourImpl
      const* colour )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3400
    functionDepth: 0
    functionLinenumber: 3400
    functionLinenumberEnd: 3405
    functionName: ColourImpl::ColourGuard::ColourGuard( ColourGuard&& rhs ) noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ColourImpl::ColourGuard::ColourGuard( ColourGuard&& rhs ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3409,1
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3410,1
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ColourGuard
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3406
    functionDepth: 0
    functionLinenumber: 3406
    functionLinenumberEnd: 3414
    functionName: "&\n    ColourImpl::ColourGuard::operator=( ColourGuard&& rhs )
      noexcept"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: ColourImpl::ColourGuard
    signature: "ColourImpl::ColourGuard &\n    ColourImpl::ColourGuard::operator=(
      ColourGuard&& rhs ) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3415
    functionDepth: 0
    functionLinenumber: 3415
    functionLinenumberEnd: 3419
    functionName: ColourImpl::ColourGuard::~ColourGuard()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - use
    linkageType: ''
    returnType: void
    signature: void ColourImpl::ColourGuard::~ColourGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engageImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3421
    functionDepth: 0
    functionLinenumber: 3421
    functionLinenumberEnd: 3425
    functionName: "&\n    ColourImpl::ColourGuard::engage( std::ostream& stream )
      &"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - engageImpl
    linkageType: ''
    returnType: ColourImpl::ColourGuard
    signature: "ColourImpl::ColourGuard &\n    ColourImpl::ColourGuard::engage( std::ostream&
      stream ) &"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engageImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3429,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3431
      start: 3427
    functionDepth: 1
    functionLinenumber: 3427
    functionLinenumberEnd: 3431
    functionName: "&&\n    ColourImpl::ColourGuard::engage( std::ostream& stream )
      &&"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - engageImpl
    - CATCH_MOVE
    linkageType: ''
    returnType: ColourImpl::ColourGuard
    signature: "ColourImpl::ColourGuard &&\n    ColourImpl::ColourGuard::engage( std::ostream&
      stream ) &&"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3438
    functionDepth: 0
    functionLinenumber: 3438
    functionLinenumberEnd: 3438
    functionName: Catch::NoColourImpl::NoColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3441
    functionDepth: 0
    functionLinenumber: 3441
    functionLinenumberEnd: 3441
    functionName: Catch::NoColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3438
    functionDepth: 0
    functionLinenumber: 3438
    functionLinenumberEnd: 3438
    functionName: Catch::NoColourImpl::NoColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3441
    functionDepth: 0
    functionLinenumber: 3441
    functionLinenumberEnd: 3441
    functionName: Catch::NoColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3459,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3456
    functionDepth: 0
    functionLinenumber: 3456
    functionLinenumberEnd: 3463
    functionName: Catch::Win32ColourImpl::Win32ColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: void
    signature: void Win32ColourImpl(IStream* stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - IStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3470
    functionName: Catch::Win32ColourImpl::useImplementationForStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isConsole
    linkageType: ''
    returnType: bool
    signature: bool useImplementationForStream(IStream const& stream)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3475,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3476,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3477,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3478,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3479,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3480,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3481,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3482,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3484,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3485,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3486,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3487,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3488,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3490,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - _colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3495
    functionName: Catch::Win32ColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - Catch::Win32ColourImpl::setTextAttribute
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code _colourCode ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3498,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _textAttribute
    argTypes:
    - WORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3497
    functionDepth: 0
    functionLinenumber: 3497
    functionLinenumberEnd: 3501
    functionName: Catch::Win32ColourImpl::setTextAttribute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - SetConsoleTextAttribute
    - GetStdHandle
    linkageType: ''
    returnType: void
    signature: void setTextAttribute( WORD _textAttribute ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3459,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3456
    functionDepth: 0
    functionLinenumber: 3456
    functionLinenumberEnd: 3463
    functionName: Catch::Win32ColourImpl::Win32ColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: void
    signature: void Win32ColourImpl(IStream* stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - IStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3470
    functionName: Catch::Win32ColourImpl::useImplementationForStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isConsole
    linkageType: ''
    returnType: bool
    signature: bool useImplementationForStream(IStream const& stream)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3475,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3476,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3477,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3478,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3479,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3480,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3481,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3482,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3484,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3485,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3486,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3487,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3488,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3490,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - _colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3495
    functionName: Catch::Win32ColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - Catch::Win32ColourImpl::setTextAttribute
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code _colourCode ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3498,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _textAttribute
    argTypes:
    - WORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3497
    functionDepth: 0
    functionLinenumber: 3497
    functionLinenumberEnd: 3501
    functionName: Catch::Win32ColourImpl::setTextAttribute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - SetConsoleTextAttribute
    - GetStdHandle
    linkageType: ''
    returnType: void
    signature: void setTextAttribute( WORD _textAttribute ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3459,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3456
    functionDepth: 0
    functionLinenumber: 3456
    functionLinenumberEnd: 3463
    functionName: Catch::Win32ColourImpl::Win32ColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: void
    signature: void Win32ColourImpl(IStream* stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - IStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3470
    functionName: Catch::Win32ColourImpl::useImplementationForStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isConsole
    linkageType: ''
    returnType: bool
    signature: bool useImplementationForStream(IStream const& stream)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3475,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3476,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3477,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3478,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3479,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3480,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3481,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3482,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3484,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3485,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3486,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3487,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3488,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3490,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - _colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3495
    functionName: Catch::Win32ColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - Catch::Win32ColourImpl::setTextAttribute
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code _colourCode ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3498,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _textAttribute
    argTypes:
    - WORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3497
    functionDepth: 0
    functionLinenumber: 3497
    functionLinenumberEnd: 3501
    functionName: Catch::Win32ColourImpl::setTextAttribute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - SetConsoleTextAttribute
    - GetStdHandle
    linkageType: ''
    returnType: void
    signature: void setTextAttribute( WORD _textAttribute ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3459,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3456
    functionDepth: 0
    functionLinenumber: 3456
    functionLinenumberEnd: 3463
    functionName: Catch::Win32ColourImpl::Win32ColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: void
    signature: void Win32ColourImpl(IStream* stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - IStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3470
    functionName: Catch::Win32ColourImpl::useImplementationForStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isConsole
    linkageType: ''
    returnType: bool
    signature: bool useImplementationForStream(IStream const& stream)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3475,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3476,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3477,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3478,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3479,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3480,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3481,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3482,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3484,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3485,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3486,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3487,1
    - Dst: Catch::Win32ColourImpl::setTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3488,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3490,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - _colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3495
    functionName: Catch::Win32ColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - Catch::Win32ColourImpl::setTextAttribute
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code _colourCode ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleTextAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3498,1
    - Dst: GetStdHandle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _textAttribute
    argTypes:
    - WORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3497
    functionDepth: 0
    functionLinenumber: 3497
    functionLinenumberEnd: 3501
    functionName: Catch::Win32ColourImpl::setTextAttribute
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - SetConsoleTextAttribute
    - GetStdHandle
    linkageType: ''
    returnType: void
    signature: void setTextAttribute( WORD _textAttribute ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3522
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3522
    functionName: Catch::ANSIColourImpl::ANSIColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ANSIColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3532,1
    - Dst: isatty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3536,1
    - Dst: isDebuggerActive
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - IStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3524
    functionDepth: 1
    functionLinenumber: 3524
    functionLinenumberEnd: 3543
    functionName: Catch::ANSIColourImpl::useImplementationForStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isatty
    - isDebuggerActive
    - isConsole
    linkageType: ''
    returnType: bool
    signature: bool useImplementationForStream(IStream const& stream)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3548,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3556,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3557,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3558,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3559,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3560,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3561,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3562,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3564,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3565,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3566,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3567,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3568,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3570,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - _colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3546
    functionDepth: 1
    functionLinenumber: 3546
    functionLinenumberEnd: 3573
    functionName: Catch::ANSIColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - stream
    - setColour
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code _colourCode ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3522
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3522
    functionName: Catch::ANSIColourImpl::ANSIColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ANSIColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3532,1
    - Dst: isatty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3536,1
    - Dst: isDebuggerActive
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - IStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3524
    functionDepth: 1
    functionLinenumber: 3524
    functionLinenumberEnd: 3543
    functionName: Catch::ANSIColourImpl::useImplementationForStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isatty
    - isDebuggerActive
    - isConsole
    linkageType: ''
    returnType: bool
    signature: bool useImplementationForStream(IStream const& stream)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3548,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3556,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3557,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3558,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3559,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3560,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3561,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3562,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3564,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3565,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3566,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3567,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3568,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3570,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - _colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3546
    functionDepth: 1
    functionLinenumber: 3546
    functionLinenumberEnd: 3573
    functionName: Catch::ANSIColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - stream
    - setColour
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code _colourCode ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3522
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3522
    functionName: Catch::ANSIColourImpl::ANSIColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ANSIColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3532,1
    - Dst: isatty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3536,1
    - Dst: isDebuggerActive
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - IStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3524
    functionDepth: 1
    functionLinenumber: 3524
    functionLinenumberEnd: 3543
    functionName: Catch::ANSIColourImpl::useImplementationForStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isatty
    - isDebuggerActive
    - isConsole
    linkageType: ''
    returnType: bool
    signature: bool useImplementationForStream(IStream const& stream)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3548,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3556,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3557,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3558,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3559,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3560,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3561,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3562,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3564,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3565,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3566,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3567,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3568,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3570,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - _colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3546
    functionDepth: 1
    functionLinenumber: 3546
    functionLinenumberEnd: 3573
    functionName: Catch::ANSIColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - stream
    - setColour
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code _colourCode ) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stream
    argTypes:
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3522
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3522
    functionName: Catch::ANSIColourImpl::ANSIColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ANSIColourImpl( IStream* stream )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3532,1
    - Dst: isatty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3536,1
    - Dst: isDebuggerActive
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - IStream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3524
    functionDepth: 1
    functionLinenumber: 3524
    functionLinenumberEnd: 3543
    functionName: Catch::ANSIColourImpl::useImplementationForStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isatty
    - isDebuggerActive
    - isConsole
    linkageType: ''
    returnType: bool
    signature: bool useImplementationForStream(IStream const& stream)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3548,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3556,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3557,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3558,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3559,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3560,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3561,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3562,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3564,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3565,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3566,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3567,1
    - Dst: setColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3568,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3570,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - _colourCode
    argTypes:
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3546
    functionDepth: 1
    functionLinenumber: 3546
    functionLinenumberEnd: 3573
    functionName: Catch::ANSIColourImpl::use
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    - stream
    - setColour
    linkageType: ''
    returnType: void
    signature: void use( Colour::Code _colourCode ) const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<Win32ColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3585,1
    - Dst: Detail::make_unique<ANSIColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3589,1
    - Dst: Detail::make_unique<NoColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3592,1
    - Dst: Catch::Win32ColourImpl::useImplementationForStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3597,1
    - Dst: Detail::make_unique<Win32ColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3598,1
    - Dst: Catch::ANSIColourImpl::useImplementationForStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3601,1
    - Dst: Detail::make_unique<ANSIColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3602,1
    - Dst: Detail::make_unique<NoColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3604,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3607,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3607,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - colourSelection
    - stream
    argTypes:
    - ColourMode
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3581
    functionDepth: 2
    functionLinenumber: 3581
    functionLinenumberEnd: 3608
    functionName: Catch::makeColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Detail::make_unique<Win32ColourImpl>
    - Catch::ANSIColourImpl::useImplementationForStream
    - Catch::Win32ColourImpl::useImplementationForStream
    - Detail::make_unique<NoColourImpl>
    - Detail::make_unique<ANSIColourImpl>
    - CATCH_ERROR
    linkageType: ''
    returnType: Detail::unique_ptr<ColourImpl>
    signature: "Detail::unique_ptr<ColourImpl> makeColourImpl( ColourMode colourSelection,\n
      \                                                  IStream* stream )"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - colourSelection
    argTypes:
    - ColourMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3622
      start: 3610
    functionDepth: 0
    functionLinenumber: 3610
    functionLinenumberEnd: 3622
    functionName: Catch::isColourImplAvailable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isColourImplAvailable( ColourMode colourSelection )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<Win32ColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3585,1
    - Dst: Detail::make_unique<ANSIColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3589,1
    - Dst: Detail::make_unique<NoColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3592,1
    - Dst: Catch::Win32ColourImpl::useImplementationForStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3597,1
    - Dst: Detail::make_unique<Win32ColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3598,1
    - Dst: Catch::ANSIColourImpl::useImplementationForStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3601,1
    - Dst: Detail::make_unique<ANSIColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3602,1
    - Dst: Detail::make_unique<NoColourImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3604,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3607,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3607,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - colourSelection
    - stream
    argTypes:
    - ColourMode
    - IStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3581
    functionDepth: 2
    functionLinenumber: 3581
    functionLinenumberEnd: 3608
    functionName: Catch::makeColourImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Detail::make_unique<Win32ColourImpl>
    - Catch::ANSIColourImpl::useImplementationForStream
    - Catch::Win32ColourImpl::useImplementationForStream
    - Detail::make_unique<NoColourImpl>
    - Detail::make_unique<ANSIColourImpl>
    - CATCH_ERROR
    linkageType: ''
    returnType: Detail::unique_ptr<ColourImpl>
    signature: "Detail::unique_ptr<ColourImpl> makeColourImpl( ColourMode colourSelection,\n
      \                                                  IStream* stream )"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - colourSelection
    argTypes:
    - ColourMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3622
      start: 3610
    functionDepth: 0
    functionLinenumber: 3610
    functionLinenumberEnd: 3622
    functionName: Catch::isColourImplAvailable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isColourImplAvailable( ColourMode colourSelection )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3638
    functionDepth: 0
    functionLinenumber: 3638
    functionLinenumberEnd: 3641
    functionName: Catch::cleanUpContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanUpContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Context::Context
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3642
    functionDepth: 0
    functionLinenumber: 3642
    functionLinenumberEnd: 3644
    functionName: Catch::Context::createContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Context::Context
    linkageType: ''
    returnType: void
    signature: void Context::createContext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Context::createContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3646
    functionDepth: 1
    functionLinenumber: 3646
    functionLinenumberEnd: 3650
    functionName: Catch::getCurrentMutableContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Context::createContext
    linkageType: ''
    returnType: Context
    signature: Context & getCurrentMutableContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resultCapture
    argTypes:
    - IResultCapture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3654
      start: 3652
    functionDepth: 0
    functionLinenumber: 3652
    functionLinenumberEnd: 3654
    functionName: Catch::Context::setResultCapture
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context::setResultCapture( IResultCapture* resultCapture )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - IConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3656
      start: 3656
    functionDepth: 0
    functionLinenumber: 3656
    functionLinenumberEnd: 3656
    functionName: Catch::Context::setConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context::setConfig( IConfig const* config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3661
      start: 3658
    functionDepth: 0
    functionLinenumber: 3658
    functionLinenumberEnd: 3661
    functionName: Catch::sharedRng
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SimplePcg32
    signature: SimplePcg32 & sharedRng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3638
    functionDepth: 0
    functionLinenumber: 3638
    functionLinenumberEnd: 3641
    functionName: Catch::cleanUpContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanUpContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Context::Context
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3642
    functionDepth: 0
    functionLinenumber: 3642
    functionLinenumberEnd: 3644
    functionName: Catch::Context::createContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Context::Context
    linkageType: ''
    returnType: void
    signature: void Context::createContext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Context::createContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3646
    functionDepth: 1
    functionLinenumber: 3646
    functionLinenumberEnd: 3650
    functionName: Catch::getCurrentMutableContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Context::createContext
    linkageType: ''
    returnType: Context
    signature: Context & getCurrentMutableContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resultCapture
    argTypes:
    - IResultCapture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3654
      start: 3652
    functionDepth: 0
    functionLinenumber: 3652
    functionLinenumberEnd: 3654
    functionName: Catch::Context::setResultCapture
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context::setResultCapture( IResultCapture* resultCapture )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - IConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3656
      start: 3656
    functionDepth: 0
    functionLinenumber: 3656
    functionLinenumberEnd: 3656
    functionName: Catch::Context::setConfig
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context::setConfig( IConfig const* config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3661
      start: 3658
    functionDepth: 0
    functionLinenumber: 3658
    functionLinenumberEnd: 3661
    functionName: Catch::sharedRng
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SimplePcg32
    signature: SimplePcg32 & sharedRng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __android_log_write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3676,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3675
    functionDepth: 0
    functionLinenumber: 3675
    functionLinenumberEnd: 3677
    functionName: Catch::writeToDebugConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - __android_log_write
    linkageType: ''
    returnType: void
    signature: void writeToDebugConsole( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __android_log_write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3676,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3675
    functionDepth: 0
    functionLinenumber: 3675
    functionLinenumberEnd: 3677
    functionName: Catch::writeToDebugConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - __android_log_write
    linkageType: ''
    returnType: void
    signature: void writeToDebugConsole( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::OutputDebugStringA
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3684,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3685
      start: 3683
    functionDepth: 0
    functionLinenumber: 3683
    functionLinenumberEnd: 3685
    functionName: Catch::writeToDebugConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - ::OutputDebugStringA
    linkageType: ''
    returnType: void
    signature: void writeToDebugConsole( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::OutputDebugStringA
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3684,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3685
      start: 3683
    functionDepth: 0
    functionLinenumber: 3683
    functionLinenumberEnd: 3685
    functionName: Catch::writeToDebugConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - ::OutputDebugStringA
    linkageType: ''
    returnType: void
    signature: void writeToDebugConsole( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3691
    functionDepth: 1
    functionLinenumber: 3691
    functionLinenumberEnd: 3694
    functionName: Catch::writeToDebugConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void writeToDebugConsole( std::string const& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3691
    functionDepth: 1
    functionLinenumber: 3691
    functionLinenumberEnd: 3694
    functionName: Catch::writeToDebugConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void writeToDebugConsole( std::string const& text )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3738,1
    - Dst: sysctl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3743,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3722
    functionDepth: 1
    functionLinenumber: 3722
    functionLinenumberEnd: 3751
    functionName: Catch::isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::cerr
    - getpid
    - sysctl
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3756
      start: 3753
    functionDepth: 0
    functionLinenumber: 3753
    functionLinenumberEnd: 3756
    functionName: Catch::isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3738,1
    - Dst: sysctl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3743,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3722
    functionDepth: 1
    functionLinenumber: 3722
    functionLinenumberEnd: 3751
    functionName: Catch::isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::cerr
    - getpid
    - sysctl
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3756
      start: 3753
    functionDepth: 0
    functionLinenumber: 3753
    functionLinenumberEnd: 3756
    functionName: Catch::isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::getline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3777,1
    - Dst: std::string::compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3779,1
    - Dst: std::string::length
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3788
      start: 3772
    functionDepth: 1
    functionLinenumber: 3772
    functionLinenumberEnd: 3788
    functionName: Catch::isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::string::compare
    - std::getline
    - std::string::length
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::getline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3777,1
    - Dst: std::string::compare
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3779,1
    - Dst: std::string::length
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3788
      start: 3772
    functionDepth: 1
    functionLinenumber: 3772
    functionLinenumberEnd: 3788
    functionName: Catch::isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::string::compare
    - std::getline
    - std::string::length
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsDebuggerPresent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3796
      start: 3791
    functionDepth: 1
    functionLinenumber: 3791
    functionLinenumberEnd: 3796
    functionName: IsDebuggerPresent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - IsDebuggerPresent
    linkageType: ''
    returnType: int
    signature: int IsDebuggerPresent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsDebuggerPresent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3795
      start: 3793
    functionDepth: 2
    functionLinenumber: 3793
    functionLinenumberEnd: 3795
    functionName: isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - IsDebuggerPresent
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsDebuggerPresent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3803
      start: 3798
    functionDepth: 1
    functionLinenumber: 3798
    functionLinenumberEnd: 3803
    functionName: IsDebuggerPresent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - IsDebuggerPresent
    linkageType: ''
    returnType: int
    signature: int IsDebuggerPresent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsDebuggerPresent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3800
    functionDepth: 2
    functionLinenumber: 3800
    functionLinenumberEnd: 3802
    functionName: isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - IsDebuggerPresent
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3806
      start: 3806
    functionDepth: 0
    functionLinenumber: 3806
    functionLinenumberEnd: 3806
    functionName: Catch::isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3806
      start: 3806
    functionDepth: 0
    functionLinenumber: 3806
    functionLinenumberEnd: 3806
    functionName: Catch::isDebuggerActive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isDebuggerActive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3815
    functionDepth: 0
    functionLinenumber: 3815
    functionLinenumberEnd: 3820
    functionName: Catch::ITransientExpression::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ITransientExpression::streamReconstructedExpression(\n        std::ostream&
      os ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3823,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3823,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3824,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - os
    - ' lhs'
    - op
    - ' rhs'
    argTypes:
    - std::ostream
    - std::string
    - StringRef
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3822
    functionDepth: 1
    functionLinenumber: 3822
    functionLinenumberEnd: 3829
    functionName: Catch::formatReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - size
    - find
    linkageType: ''
    returnType: void
    signature: void formatReconstructedExpression( std::ostream &os, std::string const&
      lhs, StringRef op, std::string const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3815
    functionDepth: 0
    functionLinenumber: 3815
    functionLinenumberEnd: 3820
    functionName: Catch::ITransientExpression::streamReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ITransientExpression::streamReconstructedExpression(\n        std::ostream&
      os ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3823,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3823,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3824,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - os
    - ' lhs'
    - op
    - ' rhs'
    argTypes:
    - std::ostream
    - std::string
    - StringRef
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3822
    functionDepth: 1
    functionLinenumber: 3822
    functionLinenumberEnd: 3829
    functionName: Catch::formatReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - size
    - find
    linkageType: ''
    returnType: void
    signature: void formatReconstructedExpression( std::ostream &os, std::string const&
      lhs, StringRef op, std::string const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3841,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3842,1
    - Dst: std::terminate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3839
    functionDepth: 1
    functionLinenumber: 3839
    functionLinenumberEnd: 3844
    functionName: Catch::throw_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached:
    - std::terminate
    - Catch::cerr
    - what
    linkageType: ''
    returnType: void
    signature: void throw_exception(std::exception const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3849,1
    - Dst: std::logic_error
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3850
      start: 3847
    functionDepth: 0
    functionLinenumber: 3847
    functionLinenumberEnd: 3850
    functionName: Catch::throw_logic_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::throw_exception
    - std::logic_error
    linkageType: ''
    returnType: void
    signature: void throw_logic_error(std::string const& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3854,1
    - Dst: std::domain_error
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3855
      start: 3852
    functionDepth: 0
    functionLinenumber: 3852
    functionLinenumberEnd: 3855
    functionName: Catch::throw_domain_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::throw_exception
    - std::domain_error
    linkageType: ''
    returnType: void
    signature: void throw_domain_error(std::string const& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3859,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3860
      start: 3857
    functionDepth: 0
    functionLinenumber: 3857
    functionLinenumberEnd: 3860
    functionName: Catch::throw_runtime_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::throw_exception
    - std::runtime_error
    linkageType: ''
    returnType: void
    signature: void throw_runtime_error(std::string const& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3841,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3842,1
    - Dst: std::terminate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3839
    functionDepth: 1
    functionLinenumber: 3839
    functionLinenumberEnd: 3844
    functionName: Catch::throw_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 19
    functionsReached:
    - std::terminate
    - Catch::cerr
    - what
    linkageType: ''
    returnType: void
    signature: void throw_exception(std::exception const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3849,1
    - Dst: std::logic_error
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3850
      start: 3847
    functionDepth: 0
    functionLinenumber: 3847
    functionLinenumberEnd: 3850
    functionName: Catch::throw_logic_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::throw_exception
    - std::logic_error
    linkageType: ''
    returnType: void
    signature: void throw_logic_error(std::string const& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3854,1
    - Dst: std::domain_error
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3855
      start: 3852
    functionDepth: 0
    functionLinenumber: 3852
    functionLinenumberEnd: 3855
    functionName: Catch::throw_domain_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::throw_exception
    - std::domain_error
    linkageType: ''
    returnType: void
    signature: void throw_domain_error(std::string const& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::throw_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3859,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3860
      start: 3857
    functionDepth: 0
    functionLinenumber: 3857
    functionLinenumberEnd: 3860
    functionName: Catch::throw_runtime_error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::throw_exception
    - std::runtime_error
    linkageType: ''
    returnType: void
    signature: void throw_runtime_error(std::string const& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3872
      start: 3872
    functionDepth: 0
    functionLinenumber: 3872
    functionLinenumberEnd: 3872
    functionName: IMutableEnumValuesRegistry::~IMutableEnumValuesRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IMutableEnumValuesRegistry::~IMutableEnumValuesRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3881,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - enumInstance
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3886
    functionName: Catch::Detail::extractInstanceName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractInstanceName(StringRef enumInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3881,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - enumInstance
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3886
    functionName: Catch::Detail::extractInstanceName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractInstanceName(StringRef enumInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splitStringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3890,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3892,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3892,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    - Dst: Catch::Detail::extractInstanceName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - enums
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3889
    functionDepth: 2
    functionLinenumber: 3889
    functionLinenumberEnd: 3897
    functionName: Catch::Detail::parseEnums
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - splitStringRef
    - std::vector::push_back
    - Catch::Detail::extractInstanceName
    - auto::size
    - std::vector::reserve
    - trim
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> parseEnums( StringRef enums )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3899
    functionName: EnumInfo::~EnumInfo()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumInfo::~EnumInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3907
      start: 3901
    functionDepth: 0
    functionLinenumber: 3901
    functionLinenumberEnd: 3907
    functionName: Catch::Detail::EnumInfo::lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef EnumInfo::lookup( int value ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<EnumInfo>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3910,1
    - Dst: auto::m_values::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3912,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3912,1
    - Dst: Catch::Detail::parseEnums
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3914,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: auto::m_values::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - enumName
    - allValueNames
    - ' values'
    argTypes:
    - StringRef
    - StringRef
    - std::vector<int>
    assertStmts:
    - condition: ( valueNames.size() == values.size() )
      pos:
        line_end: 3914
        line_start: 3914
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 3921
      start: 3909
    functionDepth: 3
    functionLinenumber: 3909
    functionLinenumberEnd: 3921
    functionName: Catch::Detail::makeEnumInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::Detail::size
    - Catch::Detail::parseEnums
    - auto::size
    - auto::m_values::emplace_back
    - auto::m_values::reserve
    - Catch::Detail::make_unique<EnumInfo>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<EnumInfo>
    signature: Catch::Detail::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName,
      StringRef allValueNames, std::vector<int> const& values )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3924,1
    - Dst: makeEnumInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3924,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enumName
    - allValueNames
    - ' values'
    argTypes:
    - StringRef
    - StringRef
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3923
    functionDepth: 0
    functionLinenumber: 3923
    functionLinenumberEnd: 3926
    functionName: '& EnumValuesRegistry::registerEnum( StringRef enumName, StringRef
      allValueNames, std::vector<int> const& values )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - makeEnumInfo
    - push_back
    - back
    linkageType: ''
    returnType: EnumInfo
    signature: EnumInfo & EnumValuesRegistry::registerEnum( StringRef enumName, StringRef
      allValueNames, std::vector<int> const& values )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3881,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - enumInstance
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3886
    functionName: Catch::Detail::extractInstanceName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractInstanceName(StringRef enumInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3881,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - enumInstance
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3886
    functionName: Catch::Detail::extractInstanceName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractInstanceName(StringRef enumInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splitStringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3890,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3892,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3892,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    - Dst: Catch::Detail::extractInstanceName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - enums
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3889
    functionDepth: 2
    functionLinenumber: 3889
    functionLinenumberEnd: 3897
    functionName: Catch::Detail::parseEnums
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - splitStringRef
    - std::vector::push_back
    - Catch::Detail::extractInstanceName
    - auto::size
    - std::vector::reserve
    - trim
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> parseEnums( StringRef enums )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3899
    functionName: EnumInfo::~EnumInfo()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumInfo::~EnumInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3907
      start: 3901
    functionDepth: 0
    functionLinenumber: 3901
    functionLinenumberEnd: 3907
    functionName: Catch::Detail::EnumInfo::lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef EnumInfo::lookup( int value ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<EnumInfo>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3910,1
    - Dst: auto::m_values::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3912,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3912,1
    - Dst: Catch::Detail::parseEnums
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3914,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: auto::m_values::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - enumName
    - allValueNames
    - ' values'
    argTypes:
    - StringRef
    - StringRef
    - std::vector<int>
    assertStmts:
    - condition: ( valueNames.size() == values.size() )
      pos:
        line_end: 3914
        line_start: 3914
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 3921
      start: 3909
    functionDepth: 3
    functionLinenumber: 3909
    functionLinenumberEnd: 3921
    functionName: Catch::Detail::makeEnumInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::Detail::size
    - Catch::Detail::parseEnums
    - auto::size
    - auto::m_values::emplace_back
    - auto::m_values::reserve
    - Catch::Detail::make_unique<EnumInfo>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<EnumInfo>
    signature: Catch::Detail::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName,
      StringRef allValueNames, std::vector<int> const& values )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3924,1
    - Dst: makeEnumInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3924,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enumName
    - allValueNames
    - ' values'
    argTypes:
    - StringRef
    - StringRef
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3923
    functionDepth: 0
    functionLinenumber: 3923
    functionLinenumberEnd: 3926
    functionName: '& EnumValuesRegistry::registerEnum( StringRef enumName, StringRef
      allValueNames, std::vector<int> const& values )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - makeEnumInfo
    - push_back
    - back
    linkageType: ''
    returnType: EnumInfo
    signature: EnumInfo & EnumValuesRegistry::registerEnum( StringRef enumName, StringRef
      allValueNames, std::vector<int> const& values )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3872
      start: 3872
    functionDepth: 0
    functionLinenumber: 3872
    functionLinenumberEnd: 3872
    functionName: IMutableEnumValuesRegistry::~IMutableEnumValuesRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IMutableEnumValuesRegistry::~IMutableEnumValuesRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3881,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - enumInstance
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3886
    functionName: Catch::Detail::extractInstanceName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractInstanceName(StringRef enumInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3881,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - enumInstance
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3886
    functionName: Catch::Detail::extractInstanceName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractInstanceName(StringRef enumInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splitStringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3890,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3892,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3892,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    - Dst: Catch::Detail::extractInstanceName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - enums
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3889
    functionDepth: 2
    functionLinenumber: 3889
    functionLinenumberEnd: 3897
    functionName: Catch::Detail::parseEnums
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - splitStringRef
    - std::vector::push_back
    - Catch::Detail::extractInstanceName
    - auto::size
    - std::vector::reserve
    - trim
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> parseEnums( StringRef enums )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3899
    functionName: EnumInfo::~EnumInfo()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumInfo::~EnumInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3907
      start: 3901
    functionDepth: 0
    functionLinenumber: 3901
    functionLinenumberEnd: 3907
    functionName: Catch::Detail::EnumInfo::lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef EnumInfo::lookup( int value ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<EnumInfo>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3910,1
    - Dst: auto::m_values::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3912,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3912,1
    - Dst: Catch::Detail::parseEnums
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3914,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: auto::m_values::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - enumName
    - allValueNames
    - ' values'
    argTypes:
    - StringRef
    - StringRef
    - std::vector<int>
    assertStmts:
    - condition: ( valueNames.size() == values.size() )
      pos:
        line_end: 3914
        line_start: 3914
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 3921
      start: 3909
    functionDepth: 3
    functionLinenumber: 3909
    functionLinenumberEnd: 3921
    functionName: Catch::Detail::makeEnumInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::Detail::size
    - Catch::Detail::parseEnums
    - auto::size
    - auto::m_values::emplace_back
    - auto::m_values::reserve
    - Catch::Detail::make_unique<EnumInfo>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<EnumInfo>
    signature: Catch::Detail::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName,
      StringRef allValueNames, std::vector<int> const& values )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3924,1
    - Dst: makeEnumInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3924,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enumName
    - allValueNames
    - ' values'
    argTypes:
    - StringRef
    - StringRef
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3923
    functionDepth: 0
    functionLinenumber: 3923
    functionLinenumberEnd: 3926
    functionName: '& EnumValuesRegistry::registerEnum( StringRef enumName, StringRef
      allValueNames, std::vector<int> const& values )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - makeEnumInfo
    - push_back
    - back
    linkageType: ''
    returnType: EnumInfo
    signature: EnumInfo & EnumValuesRegistry::registerEnum( StringRef enumName, StringRef
      allValueNames, std::vector<int> const& values )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3881,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - enumInstance
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3886
    functionName: Catch::Detail::extractInstanceName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractInstanceName(StringRef enumInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3881,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - enumInstance
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3886
    functionName: Catch::Detail::extractInstanceName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractInstanceName(StringRef enumInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splitStringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3890,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3892,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3892,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    - Dst: Catch::Detail::extractInstanceName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - enums
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3889
    functionDepth: 2
    functionLinenumber: 3889
    functionLinenumberEnd: 3897
    functionName: Catch::Detail::parseEnums
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - splitStringRef
    - std::vector::push_back
    - Catch::Detail::extractInstanceName
    - auto::size
    - std::vector::reserve
    - trim
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> parseEnums( StringRef enums )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3899
    functionName: EnumInfo::~EnumInfo()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnumInfo::~EnumInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3907
      start: 3901
    functionDepth: 0
    functionLinenumber: 3901
    functionLinenumberEnd: 3907
    functionName: Catch::Detail::EnumInfo::lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef EnumInfo::lookup( int value ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<EnumInfo>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3910,1
    - Dst: auto::m_values::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3912,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3912,1
    - Dst: Catch::Detail::parseEnums
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3914,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: Catch::Detail::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3915,1
    - Dst: auto::m_values::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - enumName
    - allValueNames
    - ' values'
    argTypes:
    - StringRef
    - StringRef
    - std::vector<int>
    assertStmts:
    - condition: ( valueNames.size() == values.size() )
      pos:
        line_end: 3914
        line_start: 3914
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 3921
      start: 3909
    functionDepth: 3
    functionLinenumber: 3909
    functionLinenumberEnd: 3921
    functionName: Catch::Detail::makeEnumInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::Detail::size
    - Catch::Detail::parseEnums
    - auto::size
    - auto::m_values::emplace_back
    - auto::m_values::reserve
    - Catch::Detail::make_unique<EnumInfo>
    linkageType: ''
    returnType: Catch::Detail::unique_ptr<EnumInfo>
    signature: Catch::Detail::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName,
      StringRef allValueNames, std::vector<int> const& values )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3924,1
    - Dst: makeEnumInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3924,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enumName
    - allValueNames
    - ' values'
    argTypes:
    - StringRef
    - StringRef
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3923
    functionDepth: 0
    functionLinenumber: 3923
    functionLinenumberEnd: 3926
    functionName: '& EnumValuesRegistry::registerEnum( StringRef enumName, StringRef
      allValueNames, std::vector<int> const& values )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - makeEnumInfo
    - push_back
    - back
    linkageType: ''
    returnType: EnumInfo
    signature: EnumInfo & EnumValuesRegistry::registerEnum( StringRef enumName, StringRef
      allValueNames, std::vector<int> const& values )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3938
    functionDepth: 0
    functionLinenumber: 3938
    functionLinenumberEnd: 3938
    functionName: Catch::ErrnoGuard::ErrnoGuard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrnoGuard::ErrnoGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3939
    functionDepth: 0
    functionLinenumber: 3939
    functionLinenumberEnd: 3939
    functionName: ErrnoGuard::~ErrnoGuard()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrnoGuard::~ErrnoGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3938
    functionDepth: 0
    functionLinenumber: 3938
    functionLinenumberEnd: 3938
    functionName: Catch::ErrnoGuard::ErrnoGuard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrnoGuard::ErrnoGuard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3939
    functionDepth: 0
    functionLinenumber: 3939
    functionLinenumberEnd: 3939
    functionName: ErrnoGuard::~ErrnoGuard()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrnoGuard::~ErrnoGuard()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3953,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3954,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3954,1
    - Dst: translate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3956,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3956,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' translators'
    argTypes:
    - "std::vector<\n                Detail::unique_ptr<IExceptionTranslator const>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3959
      start: 3950
    functionDepth: 0
    functionLinenumber: 3950
    functionLinenumberEnd: 3959
    functionName: Catch::tryTranslators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - translate
    - begin
    - empty
    - end
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: std::string
    signature: "std::string tryTranslators(\n            std::vector<\n                Detail::unique_ptr<IExceptionTranslator
      const>> const& translators )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3953,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3954,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3954,1
    - Dst: translate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3956,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3956,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' translators'
    argTypes:
    - "std::vector<\n                Detail::unique_ptr<IExceptionTranslator const>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3959
      start: 3950
    functionDepth: 0
    functionLinenumber: 3950
    functionLinenumberEnd: 3959
    functionName: Catch::tryTranslators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - translate
    - begin
    - empty
    - end
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: std::string
    signature: "std::string tryTranslators(\n            std::vector<\n                Detail::unique_ptr<IExceptionTranslator
      const>> const& translators )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3964
    functionDepth: 0
    functionLinenumber: 3964
    functionLinenumberEnd: 3964
    functionName: ExceptionTranslatorRegistry::~ExceptionTranslatorRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExceptionTranslatorRegistry::~ExceptionTranslatorRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3967,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3966
    functionDepth: 1
    functionLinenumber: 3966
    functionLinenumberEnd: 3968
    functionName: Catch::ExceptionTranslatorRegistry::registerTranslator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ExceptionTranslatorRegistry::registerTranslator( Detail::unique_ptr<IExceptionTranslator>&&
      translator )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3980,1
    - Dst: tryTranslators
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3987,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3992,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3992,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3995,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3995,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3971
    functionDepth: 0
    functionLinenumber: 3971
    functionLinenumberEnd: 4009
    functionName: Catch::ExceptionTranslatorRegistry::translateActiveException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::rethrow_exception
    - std::current_exception
    - tryTranslators
    - what
    linkageType: ''
    returnType: std::string
    signature: std::string ExceptionTranslatorRegistry::translateActiveException()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4012
    functionDepth: 1
    functionLinenumber: 4012
    functionLinenumberEnd: 4014
    functionName: Catch::ExceptionTranslatorRegistry::translateActiveException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: std::string
    signature: std::string ExceptionTranslatorRegistry::translateActiveException()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3953,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3954,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3954,1
    - Dst: translate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3956,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3956,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' translators'
    argTypes:
    - "std::vector<\n                Detail::unique_ptr<IExceptionTranslator const>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3959
      start: 3950
    functionDepth: 0
    functionLinenumber: 3950
    functionLinenumberEnd: 3959
    functionName: Catch::tryTranslators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - translate
    - begin
    - empty
    - end
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: std::string
    signature: "std::string tryTranslators(\n            std::vector<\n                Detail::unique_ptr<IExceptionTranslator
      const>> const& translators )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3953,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3954,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3954,1
    - Dst: translate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3956,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3956,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' translators'
    argTypes:
    - "std::vector<\n                Detail::unique_ptr<IExceptionTranslator const>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3959
      start: 3950
    functionDepth: 0
    functionLinenumber: 3950
    functionLinenumberEnd: 3959
    functionName: Catch::tryTranslators
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - translate
    - begin
    - empty
    - end
    - std::rethrow_exception
    - std::current_exception
    linkageType: ''
    returnType: std::string
    signature: "std::string tryTranslators(\n            std::vector<\n                Detail::unique_ptr<IExceptionTranslator
      const>> const& translators )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3964
    functionDepth: 0
    functionLinenumber: 3964
    functionLinenumberEnd: 3964
    functionName: ExceptionTranslatorRegistry::~ExceptionTranslatorRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExceptionTranslatorRegistry::~ExceptionTranslatorRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3967,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' translator'
    argTypes:
    - Detail::unique_ptr<IExceptionTranslator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3966
    functionDepth: 1
    functionLinenumber: 3966
    functionLinenumberEnd: 3968
    functionName: Catch::ExceptionTranslatorRegistry::registerTranslator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ExceptionTranslatorRegistry::registerTranslator( Detail::unique_ptr<IExceptionTranslator>&&
      translator )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3980,1
    - Dst: tryTranslators
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3987,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3992,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3992,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3995,1
    - Dst: std::current_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3995,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:3998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3971
    functionDepth: 0
    functionLinenumber: 3971
    functionLinenumberEnd: 4009
    functionName: Catch::ExceptionTranslatorRegistry::translateActiveException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::rethrow_exception
    - std::current_exception
    - tryTranslators
    - what
    linkageType: ''
    returnType: std::string
    signature: std::string ExceptionTranslatorRegistry::translateActiveException()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4012
    functionDepth: 1
    functionLinenumber: 4012
    functionLinenumberEnd: 4014
    functionName: Catch::ExceptionTranslatorRegistry::translateActiveException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: std::string
    signature: std::string ExceptionTranslatorRegistry::translateActiveException()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4049
    functionDepth: 0
    functionLinenumber: 4049
    functionLinenumberEnd: 4049
    functionName: Catch::FatalConditionHandler::engage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::engage_platform()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4050
    functionDepth: 0
    functionLinenumber: 4050
    functionLinenumberEnd: 4050
    functionName: Catch::FatalConditionHandler::disengage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::disengage_platform() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 4051
    functionDepth: 0
    functionLinenumber: 4051
    functionLinenumberEnd: 4051
    functionName: Catch::FatalConditionHandler::FatalConditionHandler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4052
    functionDepth: 0
    functionLinenumber: 4052
    functionLinenumberEnd: 4052
    functionName: FatalConditionHandler::~FatalConditionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::~FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4049
    functionDepth: 0
    functionLinenumber: 4049
    functionLinenumberEnd: 4049
    functionName: Catch::FatalConditionHandler::engage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::engage_platform()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4050
    functionDepth: 0
    functionLinenumber: 4050
    functionLinenumberEnd: 4050
    functionName: Catch::FatalConditionHandler::disengage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::disengage_platform() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 4051
    functionDepth: 0
    functionLinenumber: 4051
    functionLinenumberEnd: 4051
    functionName: Catch::FatalConditionHandler::FatalConditionHandler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4052
    functionDepth: 0
    functionLinenumber: 4052
    functionLinenumberEnd: 4052
    functionName: FatalConditionHandler::~FatalConditionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::~FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4068
      start: 4066
    functionDepth: 2
    functionLinenumber: 4066
    functionLinenumberEnd: 4068
    functionName: reportFatal
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getCurrentContext
    linkageType: ''
    returnType: void
    signature: void reportFatal( char const * const message )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4068
      start: 4066
    functionDepth: 2
    functionLinenumber: 4066
    functionLinenumberEnd: 4068
    functionName: reportFatal
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getCurrentContext
    linkageType: ''
    returnType: void
    signature: void reportFatal( char const * const message )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reportFatal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ExceptionInfo
    argTypes:
    - PEXCEPTION_POINTERS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4094
    functionDepth: 3
    functionLinenumber: 4094
    functionLinenumberEnd: 4103
    functionName: Catch::topLevelExceptionFilter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reportFatal
    linkageType: ''
    returnType: LONG
    signature: LONG topLevelExceptionFilter(PEXCEPTION_POINTERS ExceptionInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ULONG>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4114,1
    - Dst: SetThreadStackGuarantee
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4115,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4122
      start: 4113
    functionDepth: 1
    functionLinenumber: 4113
    functionLinenumberEnd: 4122
    functionName: Catch::FatalConditionHandler::FatalConditionHandler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    - SetThreadStackGuarantee
    - static_cast<ULONG>
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4126
      start: 4126
    functionDepth: 0
    functionLinenumber: 4126
    functionLinenumberEnd: 4126
    functionName: FatalConditionHandler::~FatalConditionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::~FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetUnhandledExceptionFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4132
      start: 4129
    functionDepth: 0
    functionLinenumber: 4129
    functionLinenumberEnd: 4132
    functionName: Catch::FatalConditionHandler::engage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - SetUnhandledExceptionFilter
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::engage_platform()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetUnhandledExceptionFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4135,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4134
    functionDepth: 1
    functionLinenumber: 4134
    functionLinenumberEnd: 4141
    functionName: Catch::FatalConditionHandler::disengage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::cerr
    - SetUnhandledExceptionFilter
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::disengage_platform() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reportFatal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ExceptionInfo
    argTypes:
    - PEXCEPTION_POINTERS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4094
    functionDepth: 3
    functionLinenumber: 4094
    functionLinenumberEnd: 4103
    functionName: Catch::topLevelExceptionFilter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reportFatal
    linkageType: ''
    returnType: LONG
    signature: LONG topLevelExceptionFilter(PEXCEPTION_POINTERS ExceptionInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ULONG>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4114,1
    - Dst: SetThreadStackGuarantee
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4115,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4122
      start: 4113
    functionDepth: 1
    functionLinenumber: 4113
    functionLinenumberEnd: 4122
    functionName: Catch::FatalConditionHandler::FatalConditionHandler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    - SetThreadStackGuarantee
    - static_cast<ULONG>
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4126
      start: 4126
    functionDepth: 0
    functionLinenumber: 4126
    functionLinenumberEnd: 4126
    functionName: FatalConditionHandler::~FatalConditionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::~FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetUnhandledExceptionFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4132
      start: 4129
    functionDepth: 0
    functionLinenumber: 4129
    functionLinenumberEnd: 4132
    functionName: Catch::FatalConditionHandler::engage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - SetUnhandledExceptionFilter
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::engage_platform()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetUnhandledExceptionFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4135,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4134
    functionDepth: 1
    functionLinenumber: 4134
    functionLinenumberEnd: 4141
    functionName: Catch::FatalConditionHandler::disengage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::cerr
    - SetUnhandledExceptionFilter
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::disengage_platform() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4186,1
    - Dst: sigaltstack
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4190
      start: 4180
    functionDepth: 0
    functionLinenumber: 4180
    functionLinenumberEnd: 4190
    functionName: Catch::restorePreviousSignalHandlers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sigaction
    - sigaltstack
    linkageType: ''
    returnType: void
    signature: void restorePreviousSignalHandlers() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::restorePreviousSignalHandlers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4203,1
    - Dst: reportFatal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4204,1
    - Dst: raise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4192
    functionDepth: 3
    functionLinenumber: 4192
    functionLinenumberEnd: 4206
    functionName: Catch::handleSignal
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reportFatal
    - raise
    - Catch::restorePreviousSignalHandlers
    linkageType: ''
    returnType: void
    signature: void handleSignal( int sig )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4209,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4211,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4211,1
    - Dst: char::char
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!altStackMem && "Cannot initialize POSIX signal handler when one
        already exists")
      pos:
        line_end: 4208
        line_start: 4208
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 4214
      start: 4208
    functionDepth: 0
    functionLinenumber: 4208
    functionLinenumberEnd: 4214
    functionName: Catch::FatalConditionHandler::FatalConditionHandler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - char::char
    - assert
    - std::max
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4221
      start: 4216
    functionDepth: 0
    functionLinenumber: 4216
    functionLinenumberEnd: 4221
    functionName: FatalConditionHandler::~FatalConditionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::~FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigaltstack
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4228,1
    - Dst: sigaction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4236
      start: 4223
    functionDepth: 0
    functionLinenumber: 4223
    functionLinenumberEnd: 4236
    functionName: Catch::FatalConditionHandler::engage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - sigaction
    - sigaltstack
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::engage_platform()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restorePreviousSignalHandlers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4245
      start: 4243
    functionDepth: 0
    functionLinenumber: 4243
    functionLinenumberEnd: 4245
    functionName: Catch::FatalConditionHandler::disengage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - restorePreviousSignalHandlers
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::disengage_platform() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4186,1
    - Dst: sigaltstack
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4190
      start: 4180
    functionDepth: 0
    functionLinenumber: 4180
    functionLinenumberEnd: 4190
    functionName: Catch::restorePreviousSignalHandlers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - sigaction
    - sigaltstack
    linkageType: ''
    returnType: void
    signature: void restorePreviousSignalHandlers() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::restorePreviousSignalHandlers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4203,1
    - Dst: reportFatal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4204,1
    - Dst: raise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4192
    functionDepth: 3
    functionLinenumber: 4192
    functionLinenumberEnd: 4206
    functionName: Catch::handleSignal
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - reportFatal
    - raise
    - Catch::restorePreviousSignalHandlers
    linkageType: ''
    returnType: void
    signature: void handleSignal( int sig )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4209,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4211,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4211,1
    - Dst: char::char
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!altStackMem && "Cannot initialize POSIX signal handler when one
        already exists")
      pos:
        line_end: 4208
        line_start: 4208
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 4214
      start: 4208
    functionDepth: 0
    functionLinenumber: 4208
    functionLinenumberEnd: 4214
    functionName: Catch::FatalConditionHandler::FatalConditionHandler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - char::char
    - assert
    - std::max
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4221
      start: 4216
    functionDepth: 0
    functionLinenumber: 4216
    functionLinenumberEnd: 4221
    functionName: FatalConditionHandler::~FatalConditionHandler()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::~FatalConditionHandler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigaltstack
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4228,1
    - Dst: sigaction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4236
      start: 4223
    functionDepth: 0
    functionLinenumber: 4223
    functionLinenumberEnd: 4236
    functionName: Catch::FatalConditionHandler::engage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - sigaction
    - sigaltstack
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::engage_platform()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restorePreviousSignalHandlers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4245
      start: 4243
    functionDepth: 0
    functionLinenumber: 4243
    functionLinenumberEnd: 4245
    functionName: Catch::FatalConditionHandler::disengage_platform
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - restorePreviousSignalHandlers
    linkageType: ''
    returnType: void
    signature: void FatalConditionHandler::disengage_platform() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4259
    functionDepth: 0
    functionLinenumber: 4259
    functionLinenumberEnd: 4264
    functionName: Catch::Detail::convertToBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t convertToBits(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4271
      start: 4266
    functionDepth: 0
    functionLinenumber: 4266
    functionLinenumberEnd: 4271
    functionName: Catch::Detail::convertToBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t convertToBits(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4277
    functionName: Catch::Detail::directCompare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool directCompare( float lhs, float rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4278
    functionDepth: 0
    functionLinenumber: 4278
    functionLinenumberEnd: 4278
    functionName: Catch::Detail::directCompare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool directCompare( double lhs, double rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4259
    functionDepth: 0
    functionLinenumber: 4259
    functionLinenumberEnd: 4264
    functionName: Catch::Detail::convertToBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t convertToBits(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4271
      start: 4266
    functionDepth: 0
    functionLinenumber: 4266
    functionLinenumberEnd: 4271
    functionName: Catch::Detail::convertToBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t convertToBits(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4277
    functionName: Catch::Detail::directCompare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool directCompare( float lhs, float rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4278
    functionDepth: 0
    functionLinenumber: 4278
    functionLinenumberEnd: 4278
    functionName: Catch::Detail::directCompare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool directCompare( double lhs, double rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4259
    functionDepth: 0
    functionLinenumber: 4259
    functionLinenumberEnd: 4264
    functionName: Catch::Detail::convertToBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t convertToBits(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4271
      start: 4266
    functionDepth: 0
    functionLinenumber: 4266
    functionLinenumberEnd: 4271
    functionName: Catch::Detail::convertToBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t convertToBits(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4277
    functionName: Catch::Detail::directCompare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool directCompare( float lhs, float rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4278
    functionDepth: 0
    functionLinenumber: 4278
    functionLinenumberEnd: 4278
    functionName: Catch::Detail::directCompare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool directCompare( double lhs, double rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4259
    functionDepth: 0
    functionLinenumber: 4259
    functionLinenumberEnd: 4264
    functionName: Catch::Detail::convertToBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t convertToBits(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4271
      start: 4266
    functionDepth: 0
    functionLinenumber: 4266
    functionLinenumberEnd: 4271
    functionName: Catch::Detail::convertToBits
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t convertToBits(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4277
    functionName: Catch::Detail::directCompare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool directCompare( float lhs, float rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4278
    functionDepth: 0
    functionLinenumber: 4278
    functionLinenumberEnd: 4278
    functionName: Catch::Detail::directCompare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool directCompare( double lhs, double rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4298
    functionDepth: 0
    functionLinenumber: 4298
    functionLinenumberEnd: 4298
    functionName: Catch::Detail::getEnv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * getEnv( char const* )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - varName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4301
    functionDepth: 0
    functionLinenumber: 4301
    functionLinenumberEnd: 4312
    functionName: Catch::Detail::getEnv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached:
    - std::getenv
    linkageType: ''
    returnType: char
    signature: char * getEnv( char const* varName )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4298
    functionDepth: 0
    functionLinenumber: 4298
    functionLinenumberEnd: 4298
    functionName: Catch::Detail::getEnv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * getEnv( char const* )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - varName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4301
    functionDepth: 0
    functionLinenumber: 4301
    functionLinenumberEnd: 4312
    functionName: Catch::Detail::getEnv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached:
    - std::getenv
    linkageType: ''
    returnType: char
    signature: char * getEnv( char const* varName )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4298
    functionDepth: 0
    functionLinenumber: 4298
    functionLinenumberEnd: 4298
    functionName: Catch::Detail::getEnv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * getEnv( char const* )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - varName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4301
    functionDepth: 0
    functionLinenumber: 4301
    functionLinenumberEnd: 4312
    functionName: Catch::Detail::getEnv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached:
    - std::getenv
    linkageType: ''
    returnType: char
    signature: char * getEnv( char const* varName )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4298
    functionDepth: 0
    functionLinenumber: 4298
    functionLinenumberEnd: 4298
    functionName: Catch::Detail::getEnv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * getEnv( char const* )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - varName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4301
    functionDepth: 0
    functionLinenumber: 4301
    functionLinenumberEnd: 4312
    functionName: Catch::Detail::getEnv
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached:
    - std::getenv
    linkageType: ''
    returnType: char
    signature: char * getEnv( char const* varName )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4327
    functionDepth: 0
    functionLinenumber: 4327
    functionLinenumberEnd: 4327
    functionName: Catch::IStream::~IStream()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Catch::IStream::~IStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4339
    functionName: Catch::Detail::StreamBufImpl::StreamBufImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - setp
    linkageType: ''
    returnType: void
    signature: void StreamBufImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4343
    functionName: ~StreamBufImpl() noexcept override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    linkageType: ''
    returnType: void
    signature: void ~StreamBufImpl() noexcept override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4347,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: sputc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4356
    functionName: Catch::Detail::StreamBufImpl::overflow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    - m_writer
    - std::string
    - static_cast<char>
    - epptr
    - pbase
    - sputc
    linkageType: ''
    returnType: int
    signature: int overflow( int c ) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: static_cast<std::string::size_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: Catch::Detail::StreamBufImpl::sync
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - m_writer
    - std::string
    - pptr
    - setp
    - static_cast<std::string::size_type>
    - epptr
    - pbase
    linkageType: ''
    returnType: int
    signature: int sync() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4372,1
    - Dst: writeToDebugConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4375
    functionName: operator()( std::string const& str )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - writeToDebugConsole
    linkageType: ''
    returnType: void
    signature: void operator()( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    - Dst: fail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4383
    functionDepth: 1
    functionLinenumber: 4383
    functionLinenumberEnd: 4387
    functionName: Catch::Detail::FileStream::FileStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - fail
    - CATCH_ENFORCE
    - open
    linkageType: ''
    returnType: void
    signature: void FileStream( std::string const& filename )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4391
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4401
    functionName: Catch::Detail::CoutStream::CoutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void CoutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4404
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4405
    functionName: Catch::Detail::CoutStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4414
    functionName: Catch::Detail::CerrStream::CerrStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: void CerrStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4417
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4418
    functionName: Catch::Detail::CerrStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4428,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: Catch::Detail::DebugOutStream::DebugOutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
    - get
    linkageType: ''
    returnType: void
    signature: void DebugOutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4433
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4339
    functionName: Catch::Detail::StreamBufImpl::StreamBufImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - setp
    linkageType: ''
    returnType: void
    signature: void StreamBufImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4343
    functionName: ~StreamBufImpl() noexcept override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    linkageType: ''
    returnType: void
    signature: void ~StreamBufImpl() noexcept override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4347,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: sputc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4356
    functionName: Catch::Detail::StreamBufImpl::overflow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    - m_writer
    - std::string
    - static_cast<char>
    - epptr
    - pbase
    - sputc
    linkageType: ''
    returnType: int
    signature: int overflow( int c ) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: static_cast<std::string::size_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: Catch::Detail::StreamBufImpl::sync
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - m_writer
    - std::string
    - pptr
    - setp
    - static_cast<std::string::size_type>
    - epptr
    - pbase
    linkageType: ''
    returnType: int
    signature: int sync() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4372,1
    - Dst: writeToDebugConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4375
    functionName: operator()( std::string const& str )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - writeToDebugConsole
    linkageType: ''
    returnType: void
    signature: void operator()( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    - Dst: fail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4383
    functionDepth: 1
    functionLinenumber: 4383
    functionLinenumberEnd: 4387
    functionName: Catch::Detail::FileStream::FileStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - fail
    - CATCH_ENFORCE
    - open
    linkageType: ''
    returnType: void
    signature: void FileStream( std::string const& filename )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4391
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4401
    functionName: Catch::Detail::CoutStream::CoutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void CoutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4404
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4405
    functionName: Catch::Detail::CoutStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4414
    functionName: Catch::Detail::CerrStream::CerrStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: void CerrStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4417
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4418
    functionName: Catch::Detail::CerrStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4428,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: Catch::Detail::DebugOutStream::DebugOutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
    - get
    linkageType: ''
    returnType: void
    signature: void DebugOutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4433
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4339
    functionName: Catch::Detail::StreamBufImpl::StreamBufImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - setp
    linkageType: ''
    returnType: void
    signature: void StreamBufImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4343
    functionName: ~StreamBufImpl() noexcept override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    linkageType: ''
    returnType: void
    signature: void ~StreamBufImpl() noexcept override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4347,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: sputc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4356
    functionName: Catch::Detail::StreamBufImpl::overflow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    - m_writer
    - std::string
    - static_cast<char>
    - epptr
    - pbase
    - sputc
    linkageType: ''
    returnType: int
    signature: int overflow( int c ) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: static_cast<std::string::size_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: Catch::Detail::StreamBufImpl::sync
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - m_writer
    - std::string
    - pptr
    - setp
    - static_cast<std::string::size_type>
    - epptr
    - pbase
    linkageType: ''
    returnType: int
    signature: int sync() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4372,1
    - Dst: writeToDebugConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4375
    functionName: operator()( std::string const& str )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - writeToDebugConsole
    linkageType: ''
    returnType: void
    signature: void operator()( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    - Dst: fail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4383
    functionDepth: 1
    functionLinenumber: 4383
    functionLinenumberEnd: 4387
    functionName: Catch::Detail::FileStream::FileStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - fail
    - CATCH_ENFORCE
    - open
    linkageType: ''
    returnType: void
    signature: void FileStream( std::string const& filename )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4391
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4401
    functionName: Catch::Detail::CoutStream::CoutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void CoutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4404
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4405
    functionName: Catch::Detail::CoutStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4414
    functionName: Catch::Detail::CerrStream::CerrStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: void CerrStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4417
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4418
    functionName: Catch::Detail::CerrStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4428,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: Catch::Detail::DebugOutStream::DebugOutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
    - get
    linkageType: ''
    returnType: void
    signature: void DebugOutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4433
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4339
    functionName: Catch::Detail::StreamBufImpl::StreamBufImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - setp
    linkageType: ''
    returnType: void
    signature: void StreamBufImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4343
    functionName: ~StreamBufImpl() noexcept override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    linkageType: ''
    returnType: void
    signature: void ~StreamBufImpl() noexcept override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4347,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: sputc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4356
    functionName: Catch::Detail::StreamBufImpl::overflow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    - m_writer
    - std::string
    - static_cast<char>
    - epptr
    - pbase
    - sputc
    linkageType: ''
    returnType: int
    signature: int overflow( int c ) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: static_cast<std::string::size_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: Catch::Detail::StreamBufImpl::sync
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - m_writer
    - std::string
    - pptr
    - setp
    - static_cast<std::string::size_type>
    - epptr
    - pbase
    linkageType: ''
    returnType: int
    signature: int sync() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4372,1
    - Dst: writeToDebugConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4375
    functionName: operator()( std::string const& str )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - writeToDebugConsole
    linkageType: ''
    returnType: void
    signature: void operator()( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    - Dst: fail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4383
    functionDepth: 1
    functionLinenumber: 4383
    functionLinenumberEnd: 4387
    functionName: Catch::Detail::FileStream::FileStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - fail
    - CATCH_ENFORCE
    - open
    linkageType: ''
    returnType: void
    signature: void FileStream( std::string const& filename )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4391
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4401
    functionName: Catch::Detail::CoutStream::CoutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void CoutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4404
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4405
    functionName: Catch::Detail::CoutStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4414
    functionName: Catch::Detail::CerrStream::CerrStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: void CerrStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4417
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4418
    functionName: Catch::Detail::CerrStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4428,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: Catch::Detail::DebugOutStream::DebugOutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
    - get
    linkageType: ''
    returnType: void
    signature: void DebugOutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4433
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4442,1
    - Dst: Detail::make_unique<Detail::CoutStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4443,1
    - Dst: Detail::make_unique<Detail::DebugOutStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4447,1
    - Dst: Detail::make_unique<Detail::CerrStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4449,1
    - Dst: Detail::make_unique<Detail::CoutStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4451,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4453,1
    - Dst: Detail::make_unique<Detail::FileStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4457
      start: 4441
    functionDepth: 1
    functionLinenumber: 4441
    functionLinenumberEnd: 4457
    functionName: Catch::makeStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Detail::make_unique<Detail::FileStream>
    - empty
    - Detail::make_unique<Detail::CerrStream>
    - Detail::make_unique<Detail::CoutStream>
    - Detail::make_unique<Detail::DebugOutStream>
    - CATCH_ERROR
    linkageType: ''
    returnType: auto
    signature: auto makeStream( std::string const& filename ) -> Detail::unique_ptr<IStream>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4327
    functionDepth: 0
    functionLinenumber: 4327
    functionLinenumberEnd: 4327
    functionName: Catch::IStream::~IStream()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Catch::IStream::~IStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4339
    functionName: Catch::Detail::StreamBufImpl::StreamBufImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - setp
    linkageType: ''
    returnType: void
    signature: void StreamBufImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4343
    functionName: ~StreamBufImpl() noexcept override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    linkageType: ''
    returnType: void
    signature: void ~StreamBufImpl() noexcept override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4347,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: sputc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4356
    functionName: Catch::Detail::StreamBufImpl::overflow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    - m_writer
    - std::string
    - static_cast<char>
    - epptr
    - pbase
    - sputc
    linkageType: ''
    returnType: int
    signature: int overflow( int c ) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: static_cast<std::string::size_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: Catch::Detail::StreamBufImpl::sync
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached:
    - m_writer
    - std::string
    - pptr
    - setp
    - static_cast<std::string::size_type>
    - epptr
    - pbase
    linkageType: ''
    returnType: int
    signature: int sync() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4372,1
    - Dst: writeToDebugConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4375
    functionName: operator()( std::string const& str )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - writeToDebugConsole
    linkageType: ''
    returnType: void
    signature: void operator()( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    - Dst: fail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4383
    functionDepth: 1
    functionLinenumber: 4383
    functionLinenumberEnd: 4387
    functionName: Catch::Detail::FileStream::FileStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - fail
    - CATCH_ENFORCE
    - open
    linkageType: ''
    returnType: void
    signature: void FileStream( std::string const& filename )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4391
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4401
    functionName: Catch::Detail::CoutStream::CoutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void CoutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4404
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4405
    functionName: Catch::Detail::CoutStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4414
    functionName: Catch::Detail::CerrStream::CerrStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: void CerrStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4417
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4418
    functionName: Catch::Detail::CerrStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4428,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: Catch::Detail::DebugOutStream::DebugOutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
    - get
    linkageType: ''
    returnType: void
    signature: void DebugOutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4433
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4339
    functionName: Catch::Detail::StreamBufImpl::StreamBufImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - setp
    linkageType: ''
    returnType: void
    signature: void StreamBufImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4343
    functionName: ~StreamBufImpl() noexcept override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    linkageType: ''
    returnType: void
    signature: void ~StreamBufImpl() noexcept override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4347,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: sputc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4356
    functionName: Catch::Detail::StreamBufImpl::overflow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    - m_writer
    - std::string
    - static_cast<char>
    - epptr
    - pbase
    - sputc
    linkageType: ''
    returnType: int
    signature: int overflow( int c ) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: static_cast<std::string::size_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: Catch::Detail::StreamBufImpl::sync
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - m_writer
    - std::string
    - pptr
    - setp
    - static_cast<std::string::size_type>
    - epptr
    - pbase
    linkageType: ''
    returnType: int
    signature: int sync() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4372,1
    - Dst: writeToDebugConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4375
    functionName: operator()( std::string const& str )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - writeToDebugConsole
    linkageType: ''
    returnType: void
    signature: void operator()( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    - Dst: fail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4383
    functionDepth: 1
    functionLinenumber: 4383
    functionLinenumberEnd: 4387
    functionName: Catch::Detail::FileStream::FileStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - fail
    - CATCH_ENFORCE
    - open
    linkageType: ''
    returnType: void
    signature: void FileStream( std::string const& filename )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4391
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4401
    functionName: Catch::Detail::CoutStream::CoutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void CoutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4404
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4405
    functionName: Catch::Detail::CoutStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4414
    functionName: Catch::Detail::CerrStream::CerrStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: void CerrStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4417
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4418
    functionName: Catch::Detail::CerrStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4428,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: Catch::Detail::DebugOutStream::DebugOutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
    - get
    linkageType: ''
    returnType: void
    signature: void DebugOutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4433
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4339
    functionName: Catch::Detail::StreamBufImpl::StreamBufImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - setp
    linkageType: ''
    returnType: void
    signature: void StreamBufImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4343
    functionName: ~StreamBufImpl() noexcept override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    linkageType: ''
    returnType: void
    signature: void ~StreamBufImpl() noexcept override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4347,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: sputc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4356
    functionName: Catch::Detail::StreamBufImpl::overflow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    - m_writer
    - std::string
    - static_cast<char>
    - epptr
    - pbase
    - sputc
    linkageType: ''
    returnType: int
    signature: int overflow( int c ) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: static_cast<std::string::size_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: Catch::Detail::StreamBufImpl::sync
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 14
    functionsReached:
    - m_writer
    - std::string
    - pptr
    - setp
    - static_cast<std::string::size_type>
    - epptr
    - pbase
    linkageType: ''
    returnType: int
    signature: int sync() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4372,1
    - Dst: writeToDebugConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4375
    functionName: operator()( std::string const& str )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - writeToDebugConsole
    linkageType: ''
    returnType: void
    signature: void operator()( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    - Dst: fail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4383
    functionDepth: 1
    functionLinenumber: 4383
    functionLinenumberEnd: 4387
    functionName: Catch::Detail::FileStream::FileStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - fail
    - CATCH_ENFORCE
    - open
    linkageType: ''
    returnType: void
    signature: void FileStream( std::string const& filename )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4391
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4401
    functionName: Catch::Detail::CoutStream::CoutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void CoutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4404
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4405
    functionName: Catch::Detail::CoutStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4414
    functionName: Catch::Detail::CerrStream::CerrStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: void CerrStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4417
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4418
    functionName: Catch::Detail::CerrStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4428,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: Catch::Detail::DebugOutStream::DebugOutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
    - get
    linkageType: ''
    returnType: void
    signature: void DebugOutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4433
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4339
    functionName: Catch::Detail::StreamBufImpl::StreamBufImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - setp
    linkageType: ''
    returnType: void
    signature: void StreamBufImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4343
    functionName: ~StreamBufImpl() noexcept override
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    linkageType: ''
    returnType: void
    signature: void ~StreamBufImpl() noexcept override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::StreamBufImpl::sync
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4347,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4350,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4351,1
    - Dst: sputc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4356
    functionName: Catch::Detail::StreamBufImpl::overflow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::StreamBufImpl::sync
    - m_writer
    - std::string
    - static_cast<char>
    - epptr
    - pbase
    - sputc
    linkageType: ''
    returnType: int
    signature: int overflow( int c ) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4359,1
    - Dst: m_writer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: static_cast<std::string::size_type>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4360,1
    - Dst: setp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: pbase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    - Dst: epptr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: Catch::Detail::StreamBufImpl::sync
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 16
    functionsReached:
    - m_writer
    - std::string
    - pptr
    - setp
    - static_cast<std::string::size_type>
    - epptr
    - pbase
    linkageType: ''
    returnType: int
    signature: int sync() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4372,1
    - Dst: writeToDebugConsole
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4375
    functionName: operator()( std::string const& str )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - writeToDebugConsole
    linkageType: ''
    returnType: void
    signature: void operator()( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4384,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    - Dst: fail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4383
    functionDepth: 1
    functionLinenumber: 4383
    functionLinenumberEnd: 4387
    functionName: Catch::Detail::FileStream::FileStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - fail
    - CATCH_ENFORCE
    - open
    linkageType: ''
    returnType: void
    signature: void FileStream( std::string const& filename )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4389
    functionDepth: 0
    functionLinenumber: 4389
    functionLinenumberEnd: 4391
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4401
    functionName: Catch::Detail::CoutStream::CoutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    linkageType: ''
    returnType: void
    signature: void CoutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4404
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4405
    functionName: Catch::Detail::CoutStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4414
    functionDepth: 1
    functionLinenumber: 4414
    functionLinenumberEnd: 4414
    functionName: Catch::Detail::CerrStream::CerrStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: void CerrStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4417
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4418
    functionDepth: 0
    functionLinenumber: 4418
    functionLinenumberEnd: 4418
    functionName: Catch::Detail::CerrStream::isConsole
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isConsole() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4428,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4427
    functionDepth: 0
    functionLinenumber: 4427
    functionLinenumberEnd: 4430
    functionName: Catch::Detail::DebugOutStream::DebugOutStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<StreamBufImpl<OutputDebugWriter>>
    - get
    linkageType: ''
    returnType: void
    signature: void DebugOutStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4433
    functionName: '& stream() override'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & stream() override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4442,1
    - Dst: Detail::make_unique<Detail::CoutStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4443,1
    - Dst: Detail::make_unique<Detail::DebugOutStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4447,1
    - Dst: Detail::make_unique<Detail::CerrStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4449,1
    - Dst: Detail::make_unique<Detail::CoutStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4451,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4453,1
    - Dst: Detail::make_unique<Detail::FileStream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4457
      start: 4441
    functionDepth: 1
    functionLinenumber: 4441
    functionLinenumberEnd: 4457
    functionName: Catch::makeStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Detail::make_unique<Detail::FileStream>
    - empty
    - Detail::make_unique<Detail::CerrStream>
    - Detail::make_unique<Detail::CoutStream>
    - Detail::make_unique<Detail::DebugOutStream>
    - CATCH_ERROR
    linkageType: ''
    returnType: auto
    signature: auto makeStream( std::string const& filename ) -> Detail::unique_ptr<IStream>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - level
    argTypes:
    - std::ostream
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4468
      start: 4464
    functionDepth: 0
    functionLinenumber: 4464
    functionLinenumberEnd: 4468
    functionName: Catch::JsonUtils::indent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonUtils::indent( std::ostream& os, std::uint64_t level )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::indent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' os'
    - ' should_comma'
    - level
    argTypes:
    - std::ostream
    - bool
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4476
      start: 4469
    functionDepth: 1
    functionLinenumber: 4469
    functionLinenumberEnd: 4476
    functionName: Catch::JsonUtils::appendCommaNewline
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::JsonUtils::indent
    linkageType: ''
    returnType: void
    signature: "void JsonUtils::appendCommaNewline( std::ostream& os,\n                                        bool&
      should_comma,\n                                        std::uint64_t level )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4479
      start: 4478
    functionDepth: 0
    functionLinenumber: 4478
    functionLinenumberEnd: 4479
    functionName: Catch::JsonObjectWriter::JsonObjectWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonObjectWriter::JsonObjectWriter( std::ostream& os )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - indent_level
    argTypes:
    - std::ostream
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4485
      start: 4481
    functionDepth: 0
    functionLinenumber: 4481
    functionLinenumberEnd: 4485
    functionName: Catch::JsonObjectWriter::JsonObjectWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JsonObjectWriter::JsonObjectWriter( std::ostream& os,\n                                        std::uint64_t
      indent_level )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - JsonObjectWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4486
    functionDepth: 0
    functionLinenumber: 4486
    functionLinenumberEnd: 4492
    functionName: Catch::JsonObjectWriter::JsonObjectWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonObjectWriter::JsonObjectWriter( JsonObjectWriter&& source
      ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::indent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4494
    functionDepth: 1
    functionLinenumber: 4494
    functionLinenumberEnd: 4500
    functionName: JsonObjectWriter::~JsonObjectWriter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::indent
    linkageType: ''
    returnType: void
    signature: void JsonObjectWriter::~JsonObjectWriter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::appendCommaNewline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4508
      start: 4502
    functionDepth: 2
    functionLinenumber: 4502
    functionLinenumberEnd: 4508
    functionName: Catch::JsonObjectWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::appendCommaNewline
    linkageType: ''
    returnType: JsonValueWriter
    signature: JsonValueWriter JsonObjectWriter::write( StringRef key )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4511
      start: 4510
    functionDepth: 0
    functionLinenumber: 4510
    functionLinenumberEnd: 4511
    functionName: Catch::JsonArrayWriter::JsonArrayWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonArrayWriter::JsonArrayWriter( std::ostream& os )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - indent_level
    argTypes:
    - std::ostream
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4516
      start: 4512
    functionDepth: 0
    functionLinenumber: 4512
    functionLinenumberEnd: 4516
    functionName: Catch::JsonArrayWriter::JsonArrayWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JsonArrayWriter::JsonArrayWriter( std::ostream& os,\n                                      std::uint64_t
      indent_level )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - JsonArrayWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4523
      start: 4517
    functionDepth: 0
    functionLinenumber: 4517
    functionLinenumberEnd: 4523
    functionName: Catch::JsonArrayWriter::JsonArrayWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonArrayWriter::JsonArrayWriter( JsonArrayWriter&& source ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::indent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4524
    functionDepth: 1
    functionLinenumber: 4524
    functionLinenumberEnd: 4530
    functionName: JsonArrayWriter::~JsonArrayWriter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::indent
    linkageType: ''
    returnType: void
    signature: void JsonArrayWriter::~JsonArrayWriter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::appendCommaNewline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4536
      start: 4532
    functionDepth: 2
    functionLinenumber: 4532
    functionLinenumberEnd: 4536
    functionName: Catch::JsonArrayWriter::writeObject
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::appendCommaNewline
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter JsonArrayWriter::writeObject()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::appendCommaNewline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4542
      start: 4538
    functionDepth: 2
    functionLinenumber: 4538
    functionLinenumberEnd: 4542
    functionName: Catch::JsonArrayWriter::writeArray
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::appendCommaNewline
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter JsonArrayWriter::writeArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4544
    functionDepth: 0
    functionLinenumber: 4544
    functionLinenumberEnd: 4546
    functionName: '& JsonArrayWriter::write( bool value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeImpl
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & JsonArrayWriter::write( bool value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4549
      start: 4548
    functionDepth: 0
    functionLinenumber: 4548
    functionLinenumberEnd: 4549
    functionName: Catch::JsonValueWriter::JsonValueWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonValueWriter::JsonValueWriter( std::ostream& os )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' os'
    - indent_level
    argTypes:
    - std::ostream
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4551
    functionDepth: 0
    functionLinenumber: 4551
    functionLinenumberEnd: 4553
    functionName: Catch::JsonValueWriter::JsonValueWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JsonValueWriter::JsonValueWriter( std::ostream& os,\n                                      std::uint64_t
      indent_level )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4557
      start: 4555
    functionDepth: 0
    functionLinenumber: 4555
    functionLinenumberEnd: 4557
    functionName: Catch::JsonValueWriter::writeObject
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter JsonValueWriter::writeObject() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4561
      start: 4559
    functionDepth: 0
    functionLinenumber: 4559
    functionLinenumberEnd: 4561
    functionName: Catch::JsonValueWriter::writeArray
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter JsonValueWriter::writeArray() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Catch::StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4565
      start: 4563
    functionDepth: 0
    functionLinenumber: 4563
    functionLinenumberEnd: 4565
    functionName: Catch::JsonValueWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonValueWriter::writeImpl
    linkageType: ''
    returnType: void
    signature: void JsonValueWriter::write( Catch::StringRef value ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4567
    functionDepth: 0
    functionLinenumber: 4567
    functionLinenumberEnd: 4569
    functionName: Catch::JsonValueWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonValueWriter::writeImpl
    linkageType: ''
    returnType: void
    signature: void JsonValueWriter::write( bool value ) &&
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - value
    - quote
    argTypes:
    - Catch::StringRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4571
    functionDepth: 0
    functionLinenumber: 4571
    functionLinenumberEnd: 4598
    functionName: Catch::JsonValueWriter::writeImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonValueWriter::writeImpl( Catch::StringRef value, bool quote
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - level
    argTypes:
    - std::ostream
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4468
      start: 4464
    functionDepth: 0
    functionLinenumber: 4464
    functionLinenumberEnd: 4468
    functionName: Catch::JsonUtils::indent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonUtils::indent( std::ostream& os, std::uint64_t level )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::indent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' os'
    - ' should_comma'
    - level
    argTypes:
    - std::ostream
    - bool
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4476
      start: 4469
    functionDepth: 1
    functionLinenumber: 4469
    functionLinenumberEnd: 4476
    functionName: Catch::JsonUtils::appendCommaNewline
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - Catch::JsonUtils::indent
    linkageType: ''
    returnType: void
    signature: "void JsonUtils::appendCommaNewline( std::ostream& os,\n                                        bool&
      should_comma,\n                                        std::uint64_t level )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4479
      start: 4478
    functionDepth: 0
    functionLinenumber: 4478
    functionLinenumberEnd: 4479
    functionName: Catch::JsonObjectWriter::JsonObjectWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonObjectWriter::JsonObjectWriter( std::ostream& os )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - indent_level
    argTypes:
    - std::ostream
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4485
      start: 4481
    functionDepth: 0
    functionLinenumber: 4481
    functionLinenumberEnd: 4485
    functionName: Catch::JsonObjectWriter::JsonObjectWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JsonObjectWriter::JsonObjectWriter( std::ostream& os,\n                                        std::uint64_t
      indent_level )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - JsonObjectWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4486
    functionDepth: 0
    functionLinenumber: 4486
    functionLinenumberEnd: 4492
    functionName: Catch::JsonObjectWriter::JsonObjectWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonObjectWriter::JsonObjectWriter( JsonObjectWriter&& source
      ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::indent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4494
    functionDepth: 1
    functionLinenumber: 4494
    functionLinenumberEnd: 4500
    functionName: JsonObjectWriter::~JsonObjectWriter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::indent
    linkageType: ''
    returnType: void
    signature: void JsonObjectWriter::~JsonObjectWriter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::appendCommaNewline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4508
      start: 4502
    functionDepth: 2
    functionLinenumber: 4502
    functionLinenumberEnd: 4508
    functionName: Catch::JsonObjectWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::appendCommaNewline
    linkageType: ''
    returnType: JsonValueWriter
    signature: JsonValueWriter JsonObjectWriter::write( StringRef key )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4511
      start: 4510
    functionDepth: 0
    functionLinenumber: 4510
    functionLinenumberEnd: 4511
    functionName: Catch::JsonArrayWriter::JsonArrayWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonArrayWriter::JsonArrayWriter( std::ostream& os )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - indent_level
    argTypes:
    - std::ostream
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4516
      start: 4512
    functionDepth: 0
    functionLinenumber: 4512
    functionLinenumberEnd: 4516
    functionName: Catch::JsonArrayWriter::JsonArrayWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JsonArrayWriter::JsonArrayWriter( std::ostream& os,\n                                      std::uint64_t
      indent_level )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - JsonArrayWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4523
      start: 4517
    functionDepth: 0
    functionLinenumber: 4517
    functionLinenumberEnd: 4523
    functionName: Catch::JsonArrayWriter::JsonArrayWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonArrayWriter::JsonArrayWriter( JsonArrayWriter&& source ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::indent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4524
    functionDepth: 1
    functionLinenumber: 4524
    functionLinenumberEnd: 4530
    functionName: JsonArrayWriter::~JsonArrayWriter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::indent
    linkageType: ''
    returnType: void
    signature: void JsonArrayWriter::~JsonArrayWriter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::appendCommaNewline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4536
      start: 4532
    functionDepth: 2
    functionLinenumber: 4532
    functionLinenumberEnd: 4536
    functionName: Catch::JsonArrayWriter::writeObject
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::appendCommaNewline
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter JsonArrayWriter::writeObject()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonUtils::appendCommaNewline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4542
      start: 4538
    functionDepth: 2
    functionLinenumber: 4538
    functionLinenumberEnd: 4542
    functionName: Catch::JsonArrayWriter::writeArray
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonUtils::appendCommaNewline
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter JsonArrayWriter::writeArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4544
    functionDepth: 0
    functionLinenumber: 4544
    functionLinenumberEnd: 4546
    functionName: '& JsonArrayWriter::write( bool value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeImpl
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & JsonArrayWriter::write( bool value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4549
      start: 4548
    functionDepth: 0
    functionLinenumber: 4548
    functionLinenumberEnd: 4549
    functionName: Catch::JsonValueWriter::JsonValueWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonValueWriter::JsonValueWriter( std::ostream& os )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' os'
    - indent_level
    argTypes:
    - std::ostream
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4551
    functionDepth: 0
    functionLinenumber: 4551
    functionLinenumberEnd: 4553
    functionName: Catch::JsonValueWriter::JsonValueWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JsonValueWriter::JsonValueWriter( std::ostream& os,\n                                      std::uint64_t
      indent_level )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4557
      start: 4555
    functionDepth: 0
    functionLinenumber: 4555
    functionLinenumberEnd: 4557
    functionName: Catch::JsonValueWriter::writeObject
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter JsonValueWriter::writeObject() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4561
      start: 4559
    functionDepth: 0
    functionLinenumber: 4559
    functionLinenumberEnd: 4561
    functionName: Catch::JsonValueWriter::writeArray
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter JsonValueWriter::writeArray() &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Catch::StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4565
      start: 4563
    functionDepth: 0
    functionLinenumber: 4563
    functionLinenumberEnd: 4565
    functionName: Catch::JsonValueWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonValueWriter::writeImpl
    linkageType: ''
    returnType: void
    signature: void JsonValueWriter::write( Catch::StringRef value ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::writeImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4567
    functionDepth: 0
    functionLinenumber: 4567
    functionLinenumberEnd: 4569
    functionName: Catch::JsonValueWriter::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonValueWriter::writeImpl
    linkageType: ''
    returnType: void
    signature: void JsonValueWriter::write( bool value ) &&
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - value
    - quote
    argTypes:
    - Catch::StringRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4571
    functionDepth: 0
    functionLinenumber: 4571
    functionLinenumberEnd: 4598
    functionName: Catch::JsonValueWriter::writeImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonValueWriter::writeImpl( Catch::StringRef value, bool quote
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_transientExpression::isBinaryExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' os'
    - ' lazyExpr'
    argTypes:
    - std::ostream
    - LazyExpression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4620
      start: 4607
    functionDepth: 0
    functionLinenumber: 4607
    functionLinenumberEnd: 4620
    functionName: operator << (std::ostream& os, LazyExpression const& lazyExpr) ->
      std::ostream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_transientExpression::isBinaryExpression
    linkageType: ''
    returnType: auto
    signature: auto operator << (std::ostream& os, LazyExpression const& lazyExpr)
      -> std::ostream&
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_transientExpression::isBinaryExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' os'
    - ' lazyExpr'
    argTypes:
    - std::ostream
    - LazyExpression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4620
      start: 4607
    functionDepth: 0
    functionLinenumber: 4607
    functionLinenumberEnd: 4620
    functionName: operator << (std::ostream& os, LazyExpression const& lazyExpr) ->
      std::ostream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_transientExpression::isBinaryExpression
    linkageType: ''
    returnType: auto
    signature: auto operator << (std::ostream& os, LazyExpression const& lazyExpr)
      -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CrtSetDbgFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4633,1
    - Dst: _CrtSetDbgFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4636,1
    - Dst: _CrtSetReportMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4637,1
    - Dst: _CrtSetReportFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4638,1
    - Dst: _CrtSetBreakAlloc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4641
      start: 4632
    functionDepth: 0
    functionLinenumber: 4632
    functionLinenumberEnd: 4641
    functionName: Catch::LeakDetector::LeakDetector
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - _CrtSetBreakAlloc
    - _CrtSetDbgFlag
    - _CrtSetReportFile
    - _CrtSetReportMode
    linkageType: ''
    returnType: void
    signature: void LeakDetector::LeakDetector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CrtSetDbgFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4633,1
    - Dst: _CrtSetDbgFlag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4636,1
    - Dst: _CrtSetReportMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4637,1
    - Dst: _CrtSetReportFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4638,1
    - Dst: _CrtSetBreakAlloc
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4641
      start: 4632
    functionDepth: 0
    functionLinenumber: 4632
    functionLinenumberEnd: 4641
    functionName: Catch::LeakDetector::LeakDetector
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - _CrtSetBreakAlloc
    - _CrtSetDbgFlag
    - _CrtSetReportFile
    - _CrtSetReportMode
    linkageType: ''
    returnType: void
    signature: void LeakDetector::LeakDetector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4646
      start: 4646
    functionDepth: 0
    functionLinenumber: 4646
    functionLinenumberEnd: 4646
    functionName: Catch::LeakDetector::LeakDetector()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Catch::LeakDetector::LeakDetector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cleanUp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4652
      start: 4650
    functionDepth: 2
    functionLinenumber: 4650
    functionLinenumberEnd: 4652
    functionName: Catch::LeakDetector::~LeakDetector()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cleanUp
    linkageType: ''
    returnType: void
    signature: void Catch::LeakDetector::~LeakDetector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4661,1
    - Dst: Catch::filterTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4662,1
    - Dst: Catch::getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4662,1
    - Dst: Catch::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4660
    functionDepth: 1
    functionLinenumber: 4660
    functionLinenumberEnd: 4664
    functionName: Catch::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::getAllTestCasesSorted
    - Catch::filterTests
    - Catch::listTests
    - testSpec
    linkageType: ''
    returnType: void
    signature: void listTests(IEventListener& reporter, IConfig const& config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4667,1
    - Dst: Catch::filterTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4668,1
    - Dst: Catch::getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4668,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4672,1
    - Dst: std::map::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4673,1
    - Dst: std::map::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4674,1
    - Dst: std::map::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: TagInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: auto::second::add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4676,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4680,1
    - Dst: std::map::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4680,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4682,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4682,1
    - Dst: Catch::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4686
      start: 4666
    functionDepth: 1
    functionLinenumber: 4666
    functionLinenumberEnd: 4686
    functionName: Catch::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getTestCaseInfo
    - std::map::size
    - std::vector::push_back
    - std::make_pair
    - std::map::insert
    - std::map::end
    - Catch::getAllTestCasesSorted
    - Catch::filterTests
    - std::vector::reserve
    - CATCH_MOVE
    - Catch::listTags
    - auto::second::add
    - TagInfo
    - testSpec
    - std::map::find
    linkageType: ''
    returnType: void
    signature: void listTags(IEventListener& reporter, IConfig const& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4691,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4692,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4692,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4694,1
    - Dst: second::getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4694,1
    - Dst: Catch::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4688
    functionDepth: 3
    functionLinenumber: 4688
    functionLinenumberEnd: 4698
    functionName: Catch::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - second::getDescription
    - std::vector::push_back
    - Catch::getRegistryHub
    - Catch::listReporters
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: void
    signature: void listReporters(IEventListener& reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4704,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4705,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4705,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: getName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: Catch::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4711
      start: 4700
    functionDepth: 3
    functionLinenumber: 4700
    functionLinenumberEnd: 4711
    functionName: Catch::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - Catch::getRegistryHub
    - getDescription
    - std::vector::reserve
    - Catch::listListeners
    - getName
    - size
    linkageType: ''
    returnType: void
    signature: void listListeners(IEventListener& reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4661,1
    - Dst: Catch::filterTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4662,1
    - Dst: Catch::getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4662,1
    - Dst: Catch::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4660
    functionDepth: 1
    functionLinenumber: 4660
    functionLinenumberEnd: 4664
    functionName: Catch::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::getAllTestCasesSorted
    - Catch::filterTests
    - Catch::listTests
    - testSpec
    linkageType: ''
    returnType: void
    signature: void listTests(IEventListener& reporter, IConfig const& config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4667,1
    - Dst: Catch::filterTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4668,1
    - Dst: Catch::getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4668,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4672,1
    - Dst: std::map::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4673,1
    - Dst: std::map::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4674,1
    - Dst: std::map::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: TagInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: auto::second::add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4676,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4680,1
    - Dst: std::map::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4680,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4682,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4682,1
    - Dst: Catch::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4686
      start: 4666
    functionDepth: 1
    functionLinenumber: 4666
    functionLinenumberEnd: 4686
    functionName: Catch::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - getTestCaseInfo
    - std::map::size
    - std::vector::push_back
    - std::make_pair
    - std::map::insert
    - std::map::end
    - Catch::getAllTestCasesSorted
    - Catch::filterTests
    - std::vector::reserve
    - CATCH_MOVE
    - Catch::listTags
    - auto::second::add
    - TagInfo
    - testSpec
    - std::map::find
    linkageType: ''
    returnType: void
    signature: void listTags(IEventListener& reporter, IConfig const& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4691,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4692,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4692,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4694,1
    - Dst: second::getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4694,1
    - Dst: Catch::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4688
    functionDepth: 3
    functionLinenumber: 4688
    functionLinenumberEnd: 4698
    functionName: Catch::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - second::getDescription
    - std::vector::push_back
    - Catch::getRegistryHub
    - Catch::listReporters
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: void
    signature: void listReporters(IEventListener& reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4704,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4705,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4705,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: getName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: Catch::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4711
      start: 4700
    functionDepth: 3
    functionLinenumber: 4700
    functionLinenumberEnd: 4711
    functionName: Catch::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - Catch::getRegistryHub
    - getDescription
    - std::vector::reserve
    - Catch::listListeners
    - getName
    - size
    linkageType: ''
    returnType: void
    signature: void listListeners(IEventListener& reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spelling
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4715
    functionDepth: 0
    functionLinenumber: 4715
    functionLinenumberEnd: 4718
    functionName: Catch::TagInfo::add
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void TagInfo::add( StringRef spelling )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4722,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4724,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4734
      start: 4720
    functionDepth: 1
    functionLinenumber: 4720
    functionLinenumberEnd: 4734
    functionName: Catch::TagInfo::all
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string TagInfo::all() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4738,1
    - Dst: Catch::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4740,1
    - Dst: Catch::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4742,1
    - Dst: Catch::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4744,1
    - Dst: Catch::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4746,1
    - Dst: Catch::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4748,1
    - Dst: Catch::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4750,1
    - Dst: Catch::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4736
    functionDepth: 4
    functionLinenumber: 4736
    functionLinenumberEnd: 4755
    functionName: Catch::list
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::listListeners
    - Catch::listTests
    - Catch::listTags
    - Catch::listReporters
    linkageType: ''
    returnType: bool
    signature: bool list( IEventListener& reporter, Config const& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4661,1
    - Dst: Catch::filterTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4662,1
    - Dst: Catch::getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4662,1
    - Dst: Catch::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4660
    functionDepth: 1
    functionLinenumber: 4660
    functionLinenumberEnd: 4664
    functionName: Catch::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::getAllTestCasesSorted
    - Catch::filterTests
    - Catch::listTests
    - testSpec
    linkageType: ''
    returnType: void
    signature: void listTests(IEventListener& reporter, IConfig const& config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4667,1
    - Dst: Catch::filterTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4668,1
    - Dst: Catch::getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4668,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4672,1
    - Dst: std::map::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4673,1
    - Dst: std::map::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4674,1
    - Dst: std::map::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: TagInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: auto::second::add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4676,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4680,1
    - Dst: std::map::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4680,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4682,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4682,1
    - Dst: Catch::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4686
      start: 4666
    functionDepth: 1
    functionLinenumber: 4666
    functionLinenumberEnd: 4686
    functionName: Catch::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getTestCaseInfo
    - std::map::size
    - std::vector::push_back
    - std::make_pair
    - std::map::insert
    - std::map::end
    - Catch::getAllTestCasesSorted
    - Catch::filterTests
    - std::vector::reserve
    - CATCH_MOVE
    - Catch::listTags
    - auto::second::add
    - TagInfo
    - testSpec
    - std::map::find
    linkageType: ''
    returnType: void
    signature: void listTags(IEventListener& reporter, IConfig const& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4691,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4692,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4692,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4694,1
    - Dst: second::getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4694,1
    - Dst: Catch::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4688
    functionDepth: 3
    functionLinenumber: 4688
    functionLinenumberEnd: 4698
    functionName: Catch::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - second::getDescription
    - std::vector::push_back
    - Catch::getRegistryHub
    - Catch::listReporters
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: void
    signature: void listReporters(IEventListener& reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4704,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4705,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4705,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: getName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: Catch::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4711
      start: 4700
    functionDepth: 3
    functionLinenumber: 4700
    functionLinenumberEnd: 4711
    functionName: Catch::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - Catch::getRegistryHub
    - getDescription
    - std::vector::reserve
    - Catch::listListeners
    - getName
    - size
    linkageType: ''
    returnType: void
    signature: void listListeners(IEventListener& reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4661,1
    - Dst: Catch::filterTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4662,1
    - Dst: Catch::getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4662,1
    - Dst: Catch::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4660
    functionDepth: 1
    functionLinenumber: 4660
    functionLinenumberEnd: 4664
    functionName: Catch::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - Catch::getAllTestCasesSorted
    - Catch::filterTests
    - Catch::listTests
    - testSpec
    linkageType: ''
    returnType: void
    signature: void listTests(IEventListener& reporter, IConfig const& config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4667,1
    - Dst: Catch::filterTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4668,1
    - Dst: Catch::getAllTestCasesSorted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4668,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4672,1
    - Dst: std::map::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4673,1
    - Dst: std::map::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4674,1
    - Dst: std::map::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: TagInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4675,1
    - Dst: auto::second::add
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4676,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4680,1
    - Dst: std::map::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4680,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4682,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4682,1
    - Dst: Catch::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4686
      start: 4666
    functionDepth: 1
    functionLinenumber: 4666
    functionLinenumberEnd: 4686
    functionName: Catch::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - getTestCaseInfo
    - std::map::size
    - std::vector::push_back
    - std::make_pair
    - std::map::insert
    - std::map::end
    - Catch::getAllTestCasesSorted
    - Catch::filterTests
    - std::vector::reserve
    - CATCH_MOVE
    - Catch::listTags
    - auto::second::add
    - TagInfo
    - testSpec
    - std::map::find
    linkageType: ''
    returnType: void
    signature: void listTags(IEventListener& reporter, IConfig const& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4691,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4692,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4692,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4694,1
    - Dst: second::getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4694,1
    - Dst: Catch::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4688
    functionDepth: 3
    functionLinenumber: 4688
    functionLinenumberEnd: 4698
    functionName: Catch::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - second::getDescription
    - std::vector::push_back
    - Catch::getRegistryHub
    - Catch::listReporters
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: void
    signature: void listReporters(IEventListener& reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4704,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4705,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4705,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: getName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: getDescription
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4707,1
    - Dst: Catch::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4711
      start: 4700
    functionDepth: 3
    functionLinenumber: 4700
    functionLinenumberEnd: 4711
    functionName: Catch::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - std::vector::push_back
    - Catch::getRegistryHub
    - getDescription
    - std::vector::reserve
    - Catch::listListeners
    - getName
    - size
    linkageType: ''
    returnType: void
    signature: void listListeners(IEventListener& reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spelling
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4715
    functionDepth: 0
    functionLinenumber: 4715
    functionLinenumberEnd: 4718
    functionName: Catch::TagInfo::add
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void TagInfo::add( StringRef spelling )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4722,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4724,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4734
      start: 4720
    functionDepth: 1
    functionLinenumber: 4720
    functionLinenumberEnd: 4734
    functionName: Catch::TagInfo::all
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string TagInfo::all() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4738,1
    - Dst: Catch::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4740,1
    - Dst: Catch::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4742,1
    - Dst: Catch::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4744,1
    - Dst: Catch::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4746,1
    - Dst: Catch::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4748,1
    - Dst: Catch::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4750,1
    - Dst: Catch::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' reporter'
    - ' config'
    argTypes:
    - IEventListener
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4736
    functionDepth: 4
    functionLinenumber: 4736
    functionLinenumberEnd: 4755
    functionName: Catch::list
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::listListeners
    - Catch::listTests
    - Catch::listTags
    - Catch::listReporters
    linkageType: ''
    returnType: bool
    signature: bool list( IEventListener& reporter, Config const& config )
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Session::Session
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4783,1
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4830,1
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4832,1
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4832,1
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4836,1
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4839,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4839,1
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4840,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4843,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4843,1
    - Dst: Catch::clog
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4844,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4844,1
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4846,1
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4854,1
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4855,1
    - Dst: tmpnam_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4862,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4863,1
    - Dst: fopen_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4865,1
    - Dst: strerror_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4867,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4868,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4870,1
    - Dst: std::tmpfile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4875,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4877,1
    - Dst: std::fclose
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4885,1
    - Dst: std::remove
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4889,1
    - Dst: std::rewind
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4901,1
    - Dst: std::fgets
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4902,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4905,1
    - Dst: dup
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4909,1
    - Dst: dup
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4910,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: fileno
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: getFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    - Dst: fileno
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    - Dst: getFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4918,1
    - Dst: fflush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4919,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4922,1
    - Dst: Catch::clog
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4923,1
    - Dst: fflush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4924,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4926,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4927,1
    - Dst: getContents
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4929,1
    - Dst: getContents
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4930,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4954,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4957,1
    - Dst: std::stoull
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4963,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4969,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4973,1
    - Dst: static_cast<unsigned int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4976,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 73
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4987
      start: 4773
    functionDepth: 2
    functionLinenumber: 4773
    functionLinenumberEnd: 4987
    functionName: wmain
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - CATCH_RUNTIME_ERROR
    - str
    - fileno
    - Catch::cerr
    - dup2
    - std::fclose
    - auto::empty
    - Catch::clog
    - fflush
    - static_cast<unsigned int>
    - Catch::cout
    - rdbuf
    - std::fgets
    - std::rewind
    - fopen_s
    - tmpnam_s
    - getFile
    - dup
    - libtorrent::aux::max
    - auto::size
    - std::stringstream::str
    - getContents
    - std::tmpfile
    - Catch::Session::Session
    - trim
    - std::remove
    - strerror_s
    - get
    linkageType: ''
    returnType: int
    signature: int wmain (int argc, wchar_t * argv[], wchar_t * [])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Session::Session
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4784
      start: 4776
    functionDepth: 2
    functionLinenumber: 4776
    functionLinenumberEnd: 4784
    functionName: main
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Session::Session
    linkageType: ''
    returnType: int
    signature: int main (int argc, char * argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _macroName
    - ' _lineInfo'
    - _type
    argTypes:
    - StringRef
    - SourceLineInfo
    - ResultWas::OfType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4800
      start: 4793
    functionDepth: 0
    functionLinenumber: 4793
    functionLinenumberEnd: 4800
    functionName: Catch::MessageInfo::MessageInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MessageInfo::MessageInfo(   StringRef _macroName,\n                                SourceLineInfo
      const& _lineInfo,\n                                ResultWas::OfType _type )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _macroName
    - ' _lineInfo'
    - _type
    argTypes:
    - StringRef
    - SourceLineInfo
    - ResultWas::OfType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4800
      start: 4793
    functionDepth: 0
    functionLinenumber: 4793
    functionLinenumberEnd: 4800
    functionName: Catch::MessageInfo::MessageInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void MessageInfo::MessageInfo(   StringRef _macroName,\n                                SourceLineInfo
      const& _lineInfo,\n                                ResultWas::OfType _type )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4830,1
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4832,1
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' originalStream'
    - ' redirectionStream'
    argTypes:
    - std::ostream
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4833
      start: 4827
    functionDepth: 0
    functionLinenumber: 4827
    functionLinenumberEnd: 4833
    functionName: Catch::RedirectedStream::RedirectedStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void RedirectedStream::RedirectedStream( std::ostream& originalStream,
      std::ostream& redirectionStream )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4837
      start: 4835
    functionDepth: 0
    functionLinenumber: 4835
    functionLinenumberEnd: 4837
    functionName: RedirectedStream::~RedirectedStream()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void RedirectedStream::~RedirectedStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4839,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4839
      start: 4839
    functionDepth: 1
    functionLinenumber: 4839
    functionLinenumberEnd: 4839
    functionName: Catch::RedirectedStdOut::RedirectedStdOut
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    - get
    linkageType: ''
    returnType: void
    signature: void RedirectedStdOut::RedirectedStdOut()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RedirectedStdOut::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4840
    functionDepth: 1
    functionLinenumber: 4840
    functionLinenumberEnd: 4840
    functionName: Catch::RedirectedStdOut::str
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RedirectedStdOut::str
    linkageType: ''
    returnType: auto
    signature: auto RedirectedStdOut::str() const -> std::string
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4843,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4843,1
    - Dst: Catch::clog
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4844,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4842
    functionDepth: 1
    functionLinenumber: 4842
    functionLinenumberEnd: 4845
    functionName: Catch::RedirectedStdErr::RedirectedStdErr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::clog
    - Catch::cerr
    - get
    linkageType: ''
    returnType: void
    signature: void RedirectedStdErr::RedirectedStdErr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RedirectedStdErr::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4846
      start: 4846
    functionDepth: 1
    functionLinenumber: 4846
    functionLinenumberEnd: 4846
    functionName: Catch::RedirectedStdErr::str
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RedirectedStdErr::str
    linkageType: ''
    returnType: auto
    signature: auto RedirectedStdErr::str() const -> std::string
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' redirectedCout'
    - ' redirectedCerr'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4848
    functionDepth: 0
    functionLinenumber: 4848
    functionLinenumberEnd: 4851
    functionName: Catch::RedirectedStreams::RedirectedStreams
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RedirectedStreams::RedirectedStreams(std::string& redirectedCout,
      std::string& redirectedCerr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4854,1
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4856
      start: 4853
    functionDepth: 0
    functionLinenumber: 4853
    functionLinenumberEnd: 4856
    functionName: RedirectedStreams::~RedirectedStreams()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - str
    linkageType: ''
    returnType: void
    signature: void RedirectedStreams::~RedirectedStreams()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmpnam_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4862,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4863,1
    - Dst: fopen_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4865,1
    - Dst: strerror_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4867,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4868,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4872
      start: 4861
    functionDepth: 1
    functionLinenumber: 4861
    functionLinenumberEnd: 4872
    functionName: Catch::TempFile::TempFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - fopen_s
    - tmpnam_s
    - CATCH_RUNTIME_ERROR
    - strerror_s
    linkageType: ''
    returnType: void
    signature: void TempFile::TempFile()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tmpfile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4875,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4879
      start: 4874
    functionDepth: 1
    functionLinenumber: 4874
    functionLinenumberEnd: 4879
    functionName: Catch::TempFile::TempFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::tmpfile
    - CATCH_RUNTIME_ERROR
    linkageType: ''
    returnType: void
    signature: void TempFile::TempFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fclose
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4885,1
    - Dst: std::remove
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4883
    functionDepth: 0
    functionLinenumber: 4883
    functionLinenumberEnd: 4891
    functionName: TempFile::~TempFile()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::fclose
    - std::remove
    linkageType: ''
    returnType: void
    signature: void TempFile::~TempFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4896
      start: 4894
    functionDepth: 0
    functionLinenumber: 4894
    functionLinenumberEnd: 4896
    functionName: Catch::TempFile::getFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: FILE * TempFile::getFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rewind
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4901,1
    - Dst: std::fgets
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4902,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4906
      start: 4898
    functionDepth: 0
    functionLinenumber: 4898
    functionLinenumberEnd: 4906
    functionName: Catch::TempFile::getContents
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - std::fgets
    - std::rewind
    linkageType: ''
    returnType: std::string
    signature: std::string TempFile::getContents()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4909,1
    - Dst: dup
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4910,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: fileno
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: getFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    - Dst: fileno
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    - Dst: getFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' stdout_dest'
    - ' stderr_dest'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4908
    functionDepth: 0
    functionLinenumber: 4908
    functionLinenumberEnd: 4915
    functionName: Catch::OutputRedirect::OutputRedirect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getFile
    - fileno
    - dup
    - dup2
    linkageType: ''
    returnType: void
    signature: void OutputRedirect::OutputRedirect(std::string& stdout_dest, std::string&
      stderr_dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4918,1
    - Dst: fflush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4919,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4922,1
    - Dst: Catch::clog
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4923,1
    - Dst: fflush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4924,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4926,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4927,1
    - Dst: getContents
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4929,1
    - Dst: getContents
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4931
      start: 4917
    functionDepth: 1
    functionLinenumber: 4917
    functionLinenumberEnd: 4931
    functionName: OutputRedirect::~OutputRedirect()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getContents
    - Catch::clog
    - fflush
    - Catch::cout
    - Catch::cerr
    - dup2
    linkageType: ''
    returnType: void
    signature: void OutputRedirect::~OutputRedirect()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4830,1
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4832,1
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' originalStream'
    - ' redirectionStream'
    argTypes:
    - std::ostream
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4833
      start: 4827
    functionDepth: 0
    functionLinenumber: 4827
    functionLinenumberEnd: 4833
    functionName: Catch::RedirectedStream::RedirectedStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void RedirectedStream::RedirectedStream( std::ostream& originalStream,
      std::ostream& redirectionStream )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4837
      start: 4835
    functionDepth: 0
    functionLinenumber: 4835
    functionLinenumberEnd: 4837
    functionName: RedirectedStream::~RedirectedStream()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void RedirectedStream::~RedirectedStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4839,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4839
      start: 4839
    functionDepth: 1
    functionLinenumber: 4839
    functionLinenumberEnd: 4839
    functionName: Catch::RedirectedStdOut::RedirectedStdOut
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::cout
    - get
    linkageType: ''
    returnType: void
    signature: void RedirectedStdOut::RedirectedStdOut()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RedirectedStdOut::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4840
    functionDepth: 1
    functionLinenumber: 4840
    functionLinenumberEnd: 4840
    functionName: Catch::RedirectedStdOut::str
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RedirectedStdOut::str
    linkageType: ''
    returnType: auto
    signature: auto RedirectedStdOut::str() const -> std::string
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4843,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4843,1
    - Dst: Catch::clog
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4844,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4842
    functionDepth: 1
    functionLinenumber: 4842
    functionLinenumberEnd: 4845
    functionName: Catch::RedirectedStdErr::RedirectedStdErr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::clog
    - Catch::cerr
    - get
    linkageType: ''
    returnType: void
    signature: void RedirectedStdErr::RedirectedStdErr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RedirectedStdErr::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4846
      start: 4846
    functionDepth: 1
    functionLinenumber: 4846
    functionLinenumberEnd: 4846
    functionName: Catch::RedirectedStdErr::str
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RedirectedStdErr::str
    linkageType: ''
    returnType: auto
    signature: auto RedirectedStdErr::str() const -> std::string
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' redirectedCout'
    - ' redirectedCerr'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4848
    functionDepth: 0
    functionLinenumber: 4848
    functionLinenumberEnd: 4851
    functionName: Catch::RedirectedStreams::RedirectedStreams
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RedirectedStreams::RedirectedStreams(std::string& redirectedCout,
      std::string& redirectedCerr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4854,1
    - Dst: str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4856
      start: 4853
    functionDepth: 0
    functionLinenumber: 4853
    functionLinenumberEnd: 4856
    functionName: RedirectedStreams::~RedirectedStreams()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - str
    linkageType: ''
    returnType: void
    signature: void RedirectedStreams::~RedirectedStreams()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmpnam_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4862,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4863,1
    - Dst: fopen_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4865,1
    - Dst: strerror_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4867,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4868,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4872
      start: 4861
    functionDepth: 1
    functionLinenumber: 4861
    functionLinenumberEnd: 4872
    functionName: Catch::TempFile::TempFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - fopen_s
    - tmpnam_s
    - CATCH_RUNTIME_ERROR
    - strerror_s
    linkageType: ''
    returnType: void
    signature: void TempFile::TempFile()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tmpfile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4875,1
    - Dst: CATCH_RUNTIME_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4879
      start: 4874
    functionDepth: 1
    functionLinenumber: 4874
    functionLinenumberEnd: 4879
    functionName: Catch::TempFile::TempFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::tmpfile
    - CATCH_RUNTIME_ERROR
    linkageType: ''
    returnType: void
    signature: void TempFile::TempFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fclose
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4885,1
    - Dst: std::remove
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4883
    functionDepth: 0
    functionLinenumber: 4883
    functionLinenumberEnd: 4891
    functionName: TempFile::~TempFile()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::fclose
    - std::remove
    linkageType: ''
    returnType: void
    signature: void TempFile::~TempFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4896
      start: 4894
    functionDepth: 0
    functionLinenumber: 4894
    functionLinenumberEnd: 4896
    functionName: Catch::TempFile::getFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: FILE * TempFile::getFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::rewind
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4901,1
    - Dst: std::fgets
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4902,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4906
      start: 4898
    functionDepth: 0
    functionLinenumber: 4898
    functionLinenumberEnd: 4906
    functionName: Catch::TempFile::getContents
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - std::fgets
    - std::rewind
    linkageType: ''
    returnType: std::string
    signature: std::string TempFile::getContents()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4909,1
    - Dst: dup
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4910,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: fileno
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: getFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4913,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    - Dst: fileno
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    - Dst: getFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' stdout_dest'
    - ' stderr_dest'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4908
    functionDepth: 0
    functionLinenumber: 4908
    functionLinenumberEnd: 4915
    functionName: Catch::OutputRedirect::OutputRedirect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getFile
    - fileno
    - dup
    - dup2
    linkageType: ''
    returnType: void
    signature: void OutputRedirect::OutputRedirect(std::string& stdout_dest, std::string&
      stderr_dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4918,1
    - Dst: fflush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4919,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4922,1
    - Dst: Catch::clog
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4923,1
    - Dst: fflush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4924,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4926,1
    - Dst: dup2
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4927,1
    - Dst: getContents
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4929,1
    - Dst: getContents
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4931
      start: 4917
    functionDepth: 1
    functionLinenumber: 4917
    functionLinenumberEnd: 4931
    functionName: OutputRedirect::~OutputRedirect()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getContents
    - Catch::clog
    - fflush
    - Catch::cout
    - Catch::cerr
    - dup2
    linkageType: ''
    returnType: void
    signature: void OutputRedirect::~OutputRedirect()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4954,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4957,1
    - Dst: std::stoull
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4963,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4969,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4973,1
    - Dst: static_cast<unsigned int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' input'
    - base
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4977
      start: 4953
    functionDepth: 1
    functionLinenumber: 4953
    functionLinenumberEnd: 4977
    functionName: Catch::parseUInt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - Catch::trim
    - std::stoull
    - auto::empty
    - static_cast<unsigned int>
    - libtorrent::aux::max
    - auto::size
    linkageType: ''
    returnType: Optional<unsigned int>
    signature: Optional<unsigned int> parseUInt(std::string const& input, int base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4980
      start: 4978
    functionDepth: 0
    functionLinenumber: 4978
    functionLinenumberEnd: 4980
    functionName: Catch::CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON( std::invalid_argument const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4983
      start: 4981
    functionDepth: 0
    functionLinenumber: 4981
    functionLinenumberEnd: 4983
    functionName: Catch::CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON( std::out_of_range const& )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4954,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4957,1
    - Dst: std::stoull
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4963,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4969,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4973,1
    - Dst: static_cast<unsigned int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' input'
    - base
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4977
      start: 4953
    functionDepth: 1
    functionLinenumber: 4953
    functionLinenumberEnd: 4977
    functionName: Catch::parseUInt
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - Catch::trim
    - std::stoull
    - auto::empty
    - static_cast<unsigned int>
    - libtorrent::aux::max
    - auto::size
    linkageType: ''
    returnType: Optional<unsigned int>
    signature: Optional<unsigned int> parseUInt(std::string const& input, int base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4980
      start: 4978
    functionDepth: 0
    functionLinenumber: 4978
    functionLinenumberEnd: 4980
    functionName: Catch::CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON( std::invalid_argument const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4983
      start: 4981
    functionDepth: 0
    functionLinenumber: 4981
    functionLinenumberEnd: 4983
    functionName: Catch::CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON( std::out_of_range const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4999
      start: 4997
    functionDepth: 1
    functionLinenumber: 4997
    functionLinenumberEnd: 4999
    functionName: Catch::isnan
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 11
    functionsReached:
    - Catch::isnan
    linkageType: ''
    returnType: bool
    signature: bool isnan(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5002
      start: 5000
    functionDepth: 1
    functionLinenumber: 5000
    functionLinenumberEnd: 5002
    functionName: Catch::isnan
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - Catch::isnan
    linkageType: ''
    returnType: bool
    signature: bool isnan(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::_isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5007
      start: 5005
    functionDepth: 0
    functionLinenumber: 5005
    functionLinenumberEnd: 5007
    functionName: Catch::isnan
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - std::_isnan
    linkageType: ''
    returnType: bool
    signature: bool isnan(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::_isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5010
      start: 5008
    functionDepth: 0
    functionLinenumber: 5008
    functionLinenumberEnd: 5010
    functionName: Catch::isnan
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 12
    functionsReached:
    - std::_isnan
    linkageType: ''
    returnType: bool
    signature: bool isnan(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 5014
    functionDepth: 1
    functionLinenumber: 5014
    functionLinenumberEnd: 5014
    functionName: Catch::nextafter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: float
    signature: float nextafter( float x, float y )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5015
      start: 5015
    functionDepth: 1
    functionLinenumber: 5015
    functionLinenumberEnd: 5015
    functionName: Catch::nextafter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: double
    signature: double nextafter( double x, double y )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::nextafterf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5017
      start: 5017
    functionDepth: 0
    functionLinenumber: 5017
    functionLinenumberEnd: 5017
    functionName: Catch::nextafter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - ::nextafterf
    linkageType: ''
    returnType: float
    signature: float nextafter( float x, float y )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5018
      start: 5018
    functionDepth: 1
    functionLinenumber: 5018
    functionLinenumberEnd: 5018
    functionName: Catch::nextafter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: double
    signature: double nextafter( double x, double y )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:4998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4999
      start: 4997
    functionDepth: 1
    functionLinenumber: 4997
    functionLinenumberEnd: 4999
    functionName: Catch::isnan
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 13
    functionsReached:
    - Catch::isnan
    linkageType: ''
    returnType: bool
    signature: bool isnan(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5002
      start: 5000
    functionDepth: 1
    functionLinenumber: 5000
    functionLinenumberEnd: 5002
    functionName: Catch::isnan
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 14
    functionsReached:
    - Catch::isnan
    linkageType: ''
    returnType: bool
    signature: bool isnan(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::_isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5007
      start: 5005
    functionDepth: 0
    functionLinenumber: 5005
    functionLinenumberEnd: 5007
    functionName: Catch::isnan
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 14
    functionsReached:
    - std::_isnan
    linkageType: ''
    returnType: bool
    signature: bool isnan(float f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::_isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5010
      start: 5008
    functionDepth: 0
    functionLinenumber: 5008
    functionLinenumberEnd: 5010
    functionName: Catch::isnan
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 14
    functionsReached:
    - std::_isnan
    linkageType: ''
    returnType: bool
    signature: bool isnan(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 5014
    functionDepth: 1
    functionLinenumber: 5014
    functionLinenumberEnd: 5014
    functionName: Catch::nextafter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: float
    signature: float nextafter( float x, float y )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5015
      start: 5015
    functionDepth: 1
    functionLinenumber: 5015
    functionLinenumberEnd: 5015
    functionName: Catch::nextafter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 9
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: double
    signature: double nextafter( double x, double y )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::nextafterf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5017
      start: 5017
    functionDepth: 0
    functionLinenumber: 5017
    functionLinenumberEnd: 5017
    functionName: Catch::nextafter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 9
    functionsReached:
    - ::nextafterf
    linkageType: ''
    returnType: float
    signature: float nextafter( float x, float y )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5018
      start: 5018
    functionDepth: 1
    functionLinenumber: 5018
    functionLinenumberEnd: 5018
    functionName: Catch::nextafter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: double
    signature: double nextafter( double x, double y )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - val
    - count
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5038
      start: 5034
    functionDepth: 0
    functionLinenumber: 5034
    functionLinenumberEnd: 5038
    functionName: Catch::rotate_right
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotate_right(uint32_t val, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - val
    - count
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5038
      start: 5034
    functionDepth: 0
    functionLinenumber: 5034
    functionLinenumberEnd: 5038
    functionName: Catch::rotate_right
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotate_right(uint32_t val, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::SimplePcg32::seed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed_
    argTypes:
    - result_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5049
      start: 5047
    functionDepth: 1
    functionLinenumber: 5047
    functionLinenumberEnd: 5049
    functionName: Catch::SimplePcg32::SimplePcg32
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::SimplePcg32::seed
    linkageType: ''
    returnType: void
    signature: void SimplePcg32::SimplePcg32(result_type seed_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - seed_
    argTypes:
    - result_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5057
      start: 5052
    functionDepth: 0
    functionLinenumber: 5052
    functionLinenumberEnd: 5057
    functionName: Catch::SimplePcg32::seed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimplePcg32::seed(result_type seed_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - skip
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5065
      start: 5059
    functionDepth: 0
    functionLinenumber: 5059
    functionLinenumberEnd: 5065
    functionName: Catch::SimplePcg32::discard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    linkageType: ''
    returnType: void
    signature: void SimplePcg32::discard(uint64_t skip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5069,1
    - Dst: rotate_right
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5076
      start: 5067
    functionDepth: 0
    functionLinenumber: 5067
    functionLinenumberEnd: 5076
    functionName: SimplePcg32::operator()()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - rotate_right
    linkageType: ''
    returnType: SimplePcg32::result_type
    signature: SimplePcg32::result_type SimplePcg32::operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - SimplePcg32
    - SimplePcg32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5080
      start: 5078
    functionDepth: 0
    functionLinenumber: 5078
    functionLinenumberEnd: 5080
    functionName: operator==(SimplePcg32 const& lhs, SimplePcg32 const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(SimplePcg32 const& lhs, SimplePcg32 const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - SimplePcg32
    - SimplePcg32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5084
      start: 5082
    functionDepth: 0
    functionLinenumber: 5082
    functionLinenumberEnd: 5084
    functionName: operator!=(SimplePcg32 const& lhs, SimplePcg32 const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(SimplePcg32 const& lhs, SimplePcg32 const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - val
    - count
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5038
      start: 5034
    functionDepth: 0
    functionLinenumber: 5034
    functionLinenumberEnd: 5038
    functionName: Catch::rotate_right
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotate_right(uint32_t val, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - val
    - count
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5038
      start: 5034
    functionDepth: 0
    functionLinenumber: 5034
    functionLinenumberEnd: 5038
    functionName: Catch::rotate_right
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotate_right(uint32_t val, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::SimplePcg32::seed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed_
    argTypes:
    - result_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5049
      start: 5047
    functionDepth: 1
    functionLinenumber: 5047
    functionLinenumberEnd: 5049
    functionName: Catch::SimplePcg32::SimplePcg32
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::SimplePcg32::seed
    linkageType: ''
    returnType: void
    signature: void SimplePcg32::SimplePcg32(result_type seed_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - seed_
    argTypes:
    - result_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5057
      start: 5052
    functionDepth: 0
    functionLinenumber: 5052
    functionLinenumberEnd: 5057
    functionName: Catch::SimplePcg32::seed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimplePcg32::seed(result_type seed_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - skip
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5065
      start: 5059
    functionDepth: 0
    functionLinenumber: 5059
    functionLinenumberEnd: 5065
    functionName: Catch::SimplePcg32::discard
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    linkageType: ''
    returnType: void
    signature: void SimplePcg32::discard(uint64_t skip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5069,1
    - Dst: rotate_right
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5076
      start: 5067
    functionDepth: 0
    functionLinenumber: 5067
    functionLinenumberEnd: 5076
    functionName: SimplePcg32::operator()()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - rotate_right
    linkageType: ''
    returnType: SimplePcg32::result_type
    signature: SimplePcg32::result_type SimplePcg32::operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - SimplePcg32
    - SimplePcg32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5080
      start: 5078
    functionDepth: 0
    functionLinenumber: 5078
    functionLinenumberEnd: 5080
    functionName: operator==(SimplePcg32 const& lhs, SimplePcg32 const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(SimplePcg32 const& lhs, SimplePcg32 const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - SimplePcg32
    - SimplePcg32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5084
      start: 5082
    functionDepth: 0
    functionLinenumber: 5082
    functionLinenumberEnd: 5084
    functionName: operator!=(SimplePcg32 const& lhs, SimplePcg32 const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(SimplePcg32 const& lhs, SimplePcg32 const& rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5099,1
    - Dst: std::time
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5099,1
    - Dst: Detail::fillBitsFrom<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5104,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - from
    argTypes:
    - GenerateFrom
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5110
      start: 5096
    functionDepth: 1
    functionLinenumber: 5096
    functionLinenumberEnd: 5110
    functionName: Catch::generateRandomSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_ERROR
    - std::time
    - static_cast<std::uint32_t>
    - Detail::fillBitsFrom<std::uint32_t>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t generateRandomSeed( GenerateFrom from )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5099,1
    - Dst: std::time
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5099,1
    - Dst: Detail::fillBitsFrom<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5104,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - from
    argTypes:
    - GenerateFrom
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5110
      start: 5096
    functionDepth: 1
    functionLinenumber: 5096
    functionLinenumberEnd: 5110
    functionName: Catch::generateRandomSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_ERROR
    - std::time
    - static_cast<std::uint32_t>
    - Detail::fillBitsFrom<std::uint32_t>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t generateRandomSeed( GenerateFrom from )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<ReporterRegistryImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5125,1
    - Dst: Detail::make_unique<ReporterFactory<AutomakeReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5129,1
    - Dst: Detail::make_unique<ReporterFactory<CompactReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5131,1
    - Dst: Detail::make_unique<ReporterFactory<ConsoleReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5133,1
    - Dst: Detail::make_unique<ReporterFactory<JunitReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5135,1
    - Dst: Detail::make_unique<ReporterFactory<SonarQubeReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5137,1
    - Dst: Detail::make_unique<ReporterFactory<TAPReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5139,1
    - Dst: Detail::make_unique<ReporterFactory<TeamCityReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5141,1
    - Dst: Detail::make_unique<ReporterFactory<XmlReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5143,1
    - Dst: Detail::make_unique<ReporterFactory<JsonReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5146
      start: 5124
    functionDepth: 0
    functionLinenumber: 5124
    functionLinenumberEnd: 5146
    functionName: Catch::ReporterRegistry::ReporterRegistry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<ReporterFactory<AutomakeReporter>>
    - Detail::make_unique<ReporterFactory<JunitReporter>>
    - Detail::make_unique<ReporterRegistryImpl>
    - Detail::make_unique<ReporterFactory<TeamCityReporter>>
    - Detail::make_unique<ReporterFactory<ConsoleReporter>>
    - Detail::make_unique<ReporterFactory<TAPReporter>>
    - Detail::make_unique<ReporterFactory<CompactReporter>>
    - Detail::make_unique<ReporterFactory<XmlReporter>>
    - Detail::make_unique<ReporterFactory<JsonReporter>>
    - Detail::make_unique<ReporterFactory<SonarQubeReporter>>
    linkageType: ''
    returnType: void
    signature: void ReporterRegistry::ReporterRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5148
      start: 5148
    functionDepth: 0
    functionLinenumber: 5148
    functionLinenumberEnd: 5148
    functionName: ReporterRegistry::~ReporterRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReporterRegistry::~ReporterRegistry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: factories::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5153,1
    - Dst: factories::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5154,1
    - Dst: auto::second::create
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5155,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - ' config'
    argTypes:
    - std::string
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5156
      start: 5150
    functionDepth: 1
    functionLinenumber: 5150
    functionLinenumberEnd: 5156
    functionName: Catch::ReporterRegistry::create
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - factories::find
    - CATCH_MOVE
    - auto::second::create
    - factories::end
    linkageType: ''
    returnType: IEventListenerPtr
    signature: "IEventListenerPtr ReporterRegistry::create( std::string const& name,\n
      \                             ReporterConfig&& config ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5160,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5160,1
    - Dst: factories::emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5163,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5163,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - factory
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5167
      start: 5158
    functionDepth: 1
    functionLinenumber: 5158
    functionLinenumberEnd: 5167
    functionName: Catch::ReporterRegistry::registerReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - CATCH_MOVE
    - factories::emplace
    - find
    linkageType: ''
    returnType: void
    signature: "void ReporterRegistry::registerReporter( std::string const& name,\n
      \                                            IReporterFactoryPtr factory )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listeners::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5170,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - factory
    argTypes:
    - Detail::unique_ptr<EventListenerFactory>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5171
      start: 5168
    functionDepth: 1
    functionLinenumber: 5168
    functionLinenumberEnd: 5171
    functionName: Catch::ReporterRegistry::registerListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - listeners::push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ReporterRegistry::registerListener(\n        Detail::unique_ptr<EventListenerFactory>
      factory )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5178
      start: 5173
    functionDepth: 0
    functionLinenumber: 5173
    functionLinenumberEnd: 5178
    functionName: "&\n    ReporterRegistry::getFactories() const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "std::map<std::string,\n             IReporterFactoryPtr,\n             Detail::CaseInsensitiveLess>"
    signature: "std::map<std::string,\n             IReporterFactoryPtr,\n             Detail::CaseInsensitiveLess>
      &\n    ReporterRegistry::getFactories() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5183
      start: 5180
    functionDepth: 0
    functionLinenumber: 5180
    functionLinenumberEnd: 5183
    functionName: "&\n    ReporterRegistry::getListeners() const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Detail::unique_ptr<EventListenerFactory>>
    signature: "std::vector<Detail::unique_ptr<EventListenerFactory>> &\n    ReporterRegistry::getListeners()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<ReporterRegistryImpl>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5125,1
    - Dst: Detail::make_unique<ReporterFactory<AutomakeReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5129,1
    - Dst: Detail::make_unique<ReporterFactory<CompactReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5131,1
    - Dst: Detail::make_unique<ReporterFactory<ConsoleReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5133,1
    - Dst: Detail::make_unique<ReporterFactory<JunitReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5135,1
    - Dst: Detail::make_unique<ReporterFactory<SonarQubeReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5137,1
    - Dst: Detail::make_unique<ReporterFactory<TAPReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5139,1
    - Dst: Detail::make_unique<ReporterFactory<TeamCityReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5141,1
    - Dst: Detail::make_unique<ReporterFactory<XmlReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5143,1
    - Dst: Detail::make_unique<ReporterFactory<JsonReporter>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5146
      start: 5124
    functionDepth: 0
    functionLinenumber: 5124
    functionLinenumberEnd: 5146
    functionName: Catch::ReporterRegistry::ReporterRegistry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<ReporterFactory<AutomakeReporter>>
    - Detail::make_unique<ReporterFactory<JunitReporter>>
    - Detail::make_unique<ReporterRegistryImpl>
    - Detail::make_unique<ReporterFactory<TeamCityReporter>>
    - Detail::make_unique<ReporterFactory<ConsoleReporter>>
    - Detail::make_unique<ReporterFactory<TAPReporter>>
    - Detail::make_unique<ReporterFactory<CompactReporter>>
    - Detail::make_unique<ReporterFactory<XmlReporter>>
    - Detail::make_unique<ReporterFactory<JsonReporter>>
    - Detail::make_unique<ReporterFactory<SonarQubeReporter>>
    linkageType: ''
    returnType: void
    signature: void ReporterRegistry::ReporterRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5148
      start: 5148
    functionDepth: 0
    functionLinenumber: 5148
    functionLinenumberEnd: 5148
    functionName: ReporterRegistry::~ReporterRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReporterRegistry::~ReporterRegistry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: factories::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5153,1
    - Dst: factories::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5154,1
    - Dst: auto::second::create
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5155,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - ' config'
    argTypes:
    - std::string
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5156
      start: 5150
    functionDepth: 1
    functionLinenumber: 5150
    functionLinenumberEnd: 5156
    functionName: Catch::ReporterRegistry::create
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - factories::find
    - CATCH_MOVE
    - auto::second::create
    - factories::end
    linkageType: ''
    returnType: IEventListenerPtr
    signature: "IEventListenerPtr ReporterRegistry::create( std::string const& name,\n
      \                             ReporterConfig&& config ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5160,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5160,1
    - Dst: factories::emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5163,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5163,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - factory
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5167
      start: 5158
    functionDepth: 1
    functionLinenumber: 5158
    functionLinenumberEnd: 5167
    functionName: Catch::ReporterRegistry::registerReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - CATCH_MOVE
    - factories::emplace
    - find
    linkageType: ''
    returnType: void
    signature: "void ReporterRegistry::registerReporter( std::string const& name,\n
      \                                            IReporterFactoryPtr factory )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listeners::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5170,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - factory
    argTypes:
    - Detail::unique_ptr<EventListenerFactory>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5171
      start: 5168
    functionDepth: 1
    functionLinenumber: 5168
    functionLinenumberEnd: 5171
    functionName: Catch::ReporterRegistry::registerListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - listeners::push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ReporterRegistry::registerListener(\n        Detail::unique_ptr<EventListenerFactory>
      factory )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5178
      start: 5173
    functionDepth: 0
    functionLinenumber: 5173
    functionLinenumberEnd: 5178
    functionName: "&\n    ReporterRegistry::getFactories() const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "std::map<std::string,\n             IReporterFactoryPtr,\n             Detail::CaseInsensitiveLess>"
    signature: "std::map<std::string,\n             IReporterFactoryPtr,\n             Detail::CaseInsensitiveLess>
      &\n    ReporterRegistry::getFactories() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5183
      start: 5180
    functionDepth: 0
    functionLinenumber: 5180
    functionLinenumberEnd: 5183
    functionName: "&\n    ReporterRegistry::getListeners() const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Detail::unique_ptr<EventListenerFactory>>
    signature: "std::vector<Detail::unique_ptr<EventListenerFactory>> &\n    ReporterRegistry::getListeners()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5200,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5202,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5204,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5205,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kvString
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5206
      start: 5199
    functionDepth: 1
    functionLinenumber: 5199
    functionLinenumberEnd: 5206
    functionName: Catch::splitKVPair
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - StringRef::begin
    - std::find
    - StringRef::size
    - StringRef::end
    - static_cast<size_t>
    linkageType: ''
    returnType: kvPair
    signature: kvPair splitKVPair(StringRef kvString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5200,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5202,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5204,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5205,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kvString
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5206
      start: 5199
    functionDepth: 1
    functionLinenumber: 5199
    functionLinenumberEnd: 5206
    functionName: Catch::splitKVPair
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - StringRef::begin
    - std::find
    - StringRef::size
    - StringRef::end
    - static_cast<size_t>
    linkageType: ''
    returnType: kvPair
    signature: kvPair splitKVPair(StringRef kvString)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5222,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5226,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5231,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5233,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5238,1
    - Dst: findNextSeparator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5239,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5243,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5252,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - reporterSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5257
      start: 5210
    functionDepth: 1
    functionLinenumber: 5210
    functionLinenumberEnd: 5257
    functionName: Catch::Detail::splitReporterSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::emplace_back
    - StringRef::substr
    - StringRef::size
    - static_cast<std::string>
    - findNextSeparator
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> splitReporterSpec( StringRef reporterSpec
      )
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - colourMode
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5271
      start: 5259
    functionDepth: 0
    functionLinenumber: 5259
    functionLinenumberEnd: 5271
    functionName: Catch::Detail::stringToColourMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Optional<ColourMode>
    signature: Optional<ColourMode> stringToColourMode( StringRef colourMode )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5222,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5226,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5231,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5233,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5238,1
    - Dst: findNextSeparator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5239,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5243,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5252,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - reporterSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5257
      start: 5210
    functionDepth: 1
    functionLinenumber: 5210
    functionLinenumberEnd: 5257
    functionName: Catch::Detail::splitReporterSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::emplace_back
    - StringRef::substr
    - StringRef::size
    - static_cast<std::string>
    - findNextSeparator
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> splitReporterSpec( StringRef reporterSpec
      )
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - colourMode
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5271
      start: 5259
    functionDepth: 0
    functionLinenumber: 5259
    functionLinenumberEnd: 5271
    functionName: Catch::Detail::stringToColourMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Optional<ColourMode>
    signature: Optional<ColourMode> stringToColourMode( StringRef colourMode )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ReporterSpec
    - ReporterSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5280
      start: 5275
    functionDepth: 0
    functionLinenumber: 5275
    functionLinenumberEnd: 5280
    functionName: operator==( ReporterSpec const& lhs, ReporterSpec const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( ReporterSpec const& lhs, ReporterSpec const& rhs )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::splitReporterSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5283,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5285,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5285,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5292,1
    - Dst: Catch::splitKVPair
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5293,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5296,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5296,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5301,1
    - Dst: std::map::emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5305,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5305,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5305,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5316,1
    - Dst: Catch::Detail::stringToColourMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5322,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5333,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5334,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5335,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5336,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - reporterSpec
    argTypes:
    - StringRef
    assertStmts:
    - condition: ( parts.size() > 0 && "Split should never return empty vector" )
      pos:
        line_end: 5284
        line_start: 5284
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5337
      start: 5282
    functionDepth: 2
    functionLinenumber: 5282
    functionLinenumberEnd: 5337
    functionName: Catch::parseReporterSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - assert
    - auto::empty
    - empty
    - std::string
    - Catch::Detail::stringToColourMode
    - std::map::emplace
    - auto::size
    - Catch::splitKVPair
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Detail::splitReporterSpec
    linkageType: ''
    returnType: Optional<ReporterSpec>
    signature: Optional<ReporterSpec> parseReporterSpec( StringRef reporterSpec )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5344,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5345,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5346,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - name
    - outputFileName
    - colourMode
    - customOptions
    argTypes:
    - std::string
    - Optional<std::string>
    - Optional<ColourMode>
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5339
    functionDepth: 1
    functionLinenumber: 5339
    functionLinenumberEnd: 5347
    functionName: Catch::ReporterSpec::ReporterSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ReporterSpec::ReporterSpec(\n        std::string name,\n        Optional<std::string>
      outputFileName,\n        Optional<ColourMode> colourMode,\n        std::map<std::string,
      std::string> customOptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5200,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5202,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5204,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5205,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kvString
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5206
      start: 5199
    functionDepth: 1
    functionLinenumber: 5199
    functionLinenumberEnd: 5206
    functionName: Catch::splitKVPair
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - StringRef::substr
    - StringRef::begin
    - std::find
    - StringRef::size
    - StringRef::end
    - static_cast<size_t>
    linkageType: ''
    returnType: kvPair
    signature: kvPair splitKVPair(StringRef kvString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5200,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5201,1
    - Dst: StringRef::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5202,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5204,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5205,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kvString
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5206
      start: 5199
    functionDepth: 1
    functionLinenumber: 5199
    functionLinenumberEnd: 5206
    functionName: Catch::splitKVPair
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - StringRef::substr
    - StringRef::begin
    - std::find
    - StringRef::size
    - StringRef::end
    - static_cast<size_t>
    linkageType: ''
    returnType: kvPair
    signature: kvPair splitKVPair(StringRef kvString)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5222,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5226,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5231,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5233,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5238,1
    - Dst: findNextSeparator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5239,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5243,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5252,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - reporterSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5257
      start: 5210
    functionDepth: 1
    functionLinenumber: 5210
    functionLinenumberEnd: 5257
    functionName: Catch::Detail::splitReporterSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - std::vector::emplace_back
    - StringRef::substr
    - StringRef::size
    - static_cast<std::string>
    - findNextSeparator
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> splitReporterSpec( StringRef reporterSpec
      )
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - colourMode
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5271
      start: 5259
    functionDepth: 0
    functionLinenumber: 5259
    functionLinenumberEnd: 5271
    functionName: Catch::Detail::stringToColourMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Optional<ColourMode>
    signature: Optional<ColourMode> stringToColourMode( StringRef colourMode )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5222,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5226,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5231,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5233,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5238,1
    - Dst: findNextSeparator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5239,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5240,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5243,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5252,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - reporterSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5257
      start: 5210
    functionDepth: 1
    functionLinenumber: 5210
    functionLinenumberEnd: 5257
    functionName: Catch::Detail::splitReporterSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - std::vector::emplace_back
    - StringRef::substr
    - StringRef::size
    - static_cast<std::string>
    - findNextSeparator
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> splitReporterSpec( StringRef reporterSpec
      )
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - colourMode
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5271
      start: 5259
    functionDepth: 0
    functionLinenumber: 5259
    functionLinenumberEnd: 5271
    functionName: Catch::Detail::stringToColourMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Optional<ColourMode>
    signature: Optional<ColourMode> stringToColourMode( StringRef colourMode )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ReporterSpec
    - ReporterSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5280
      start: 5275
    functionDepth: 0
    functionLinenumber: 5275
    functionLinenumberEnd: 5280
    functionName: operator==( ReporterSpec const& lhs, ReporterSpec const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==( ReporterSpec const& lhs, ReporterSpec const& rhs )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::splitReporterSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5283,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5285,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5285,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5292,1
    - Dst: Catch::splitKVPair
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5293,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5296,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5296,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5301,1
    - Dst: std::map::emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5305,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5305,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5305,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5316,1
    - Dst: Catch::Detail::stringToColourMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5322,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5333,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5334,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5335,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5336,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - reporterSpec
    argTypes:
    - StringRef
    assertStmts:
    - condition: ( parts.size() > 0 && "Split should never return empty vector" )
      pos:
        line_end: 5284
        line_start: 5284
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5337
      start: 5282
    functionDepth: 2
    functionLinenumber: 5282
    functionLinenumberEnd: 5337
    functionName: Catch::parseReporterSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - assert
    - auto::empty
    - empty
    - std::string
    - Catch::Detail::stringToColourMode
    - std::map::emplace
    - auto::size
    - Catch::splitKVPair
    - CATCH_MOVE
    - static_cast<std::string>
    - Catch::Detail::splitReporterSpec
    linkageType: ''
    returnType: Optional<ReporterSpec>
    signature: Optional<ReporterSpec> parseReporterSpec( StringRef reporterSpec )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5344,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5345,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5346,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - name
    - outputFileName
    - colourMode
    - customOptions
    argTypes:
    - std::string
    - Optional<std::string>
    - Optional<ColourMode>
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5339
    functionDepth: 1
    functionLinenumber: 5339
    functionLinenumberEnd: 5347
    functionName: Catch::ReporterSpec::ReporterSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void ReporterSpec::ReporterSpec(\n        std::string name,\n        Optional<std::string>
      outputFileName,\n        Optional<ColourMode> colourMode,\n        std::map<std::string,
      std::string> customOptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resultType
    argTypes:
    - ResultWas::OfType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5357
      start: 5355
    functionDepth: 0
    functionLinenumber: 5355
    functionLinenumberEnd: 5357
    functionName: Catch::isOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isOk( ResultWas::OfType resultType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5360
      start: 5358
    functionDepth: 0
    functionLinenumber: 5358
    functionLinenumberEnd: 5360
    functionName: Catch::isJustInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isJustInfo( int flags )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ResultDisposition::Flags>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5363,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5363,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ResultDisposition::Flags
    - ResultDisposition::Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5364
      start: 5362
    functionDepth: 0
    functionLinenumber: 5362
    functionLinenumberEnd: 5364
    functionName: operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags
      rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<ResultDisposition::Flags>
    linkageType: ''
    returnType: ResultDisposition::Flags
    signature: ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs,
      ResultDisposition::Flags rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5366
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5366
    functionName: Catch::shouldContinueOnFailure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool shouldContinueOnFailure( int flags )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5367
      start: 5367
    functionDepth: 0
    functionLinenumber: 5367
    functionLinenumberEnd: 5367
    functionName: Catch::shouldSuppressFailure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool shouldSuppressFailure( int flags )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resultType
    argTypes:
    - ResultWas::OfType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5357
      start: 5355
    functionDepth: 0
    functionLinenumber: 5355
    functionLinenumberEnd: 5357
    functionName: Catch::isOk
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isOk( ResultWas::OfType resultType )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5360
      start: 5358
    functionDepth: 0
    functionLinenumber: 5358
    functionLinenumberEnd: 5360
    functionName: Catch::isJustInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isJustInfo( int flags )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ResultDisposition::Flags>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5363,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5363,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ResultDisposition::Flags
    - ResultDisposition::Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5364
      start: 5362
    functionDepth: 0
    functionLinenumber: 5362
    functionLinenumberEnd: 5364
    functionName: operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags
      rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<ResultDisposition::Flags>
    linkageType: ''
    returnType: ResultDisposition::Flags
    signature: ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs,
      ResultDisposition::Flags rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5366
      start: 5366
    functionDepth: 0
    functionLinenumber: 5366
    functionLinenumberEnd: 5366
    functionName: Catch::shouldContinueOnFailure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool shouldContinueOnFailure( int flags )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5367
      start: 5367
    functionDepth: 0
    functionLinenumber: 5367
    functionLinenumberEnd: 5367
    functionName: Catch::shouldSuppressFailure
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool shouldSuppressFailure( int flags )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5386,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5387,1
    - Dst: Detail::make_unique<std::ostringstream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5387,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5388,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5391,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5395
      start: 5385
    functionDepth: 1
    functionLinenumber: 5385
    functionLinenumberEnd: 5395
    functionName: Catch::add
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - pop_back
    - empty
    - Detail::make_unique<std::ostringstream>
    - back
    - size
    linkageType: ''
    returnType: auto
    signature: auto add() -> std::size_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyfmt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5398,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5400
      start: 5397
    functionDepth: 0
    functionLinenumber: 5397
    functionLinenumberEnd: 5400
    functionName: Catch::release
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - copyfmt
    linkageType: ''
    returnType: void
    signature: void release( std::size_t index )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Singleton::getMutable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5404,1
    - Dst: Catch::Singleton::getMutable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5405,1
    - Dst: Catch::ReusableStringStream::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5403
    functionDepth: 2
    functionLinenumber: 5403
    functionLinenumberEnd: 5406
    functionName: Catch::ReusableStringStream::ReusableStringStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::Singleton::getMutable
    - Catch::ReusableStringStream::get
    linkageType: ''
    returnType: void
    signature: void ReusableStringStream::ReusableStringStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::ostringstream*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5409,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5410,1
    - Dst: Catch::Singleton::getMutable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5412
      start: 5408
    functionDepth: 2
    functionLinenumber: 5408
    functionLinenumberEnd: 5412
    functionName: ReusableStringStream::~ReusableStringStream()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Singleton::getMutable
    - static_cast<std::ostringstream*>
    - clear
    linkageType: ''
    returnType: void
    signature: void ReusableStringStream::~ReusableStringStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::ostringstream*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5416
      start: 5414
    functionDepth: 0
    functionLinenumber: 5414
    functionLinenumberEnd: 5416
    functionName: Catch::ReusableStringStream::str
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - static_cast<std::ostringstream*>
    linkageType: ''
    returnType: std::string
    signature: std::string ReusableStringStream::str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::ostringstream*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5420
      start: 5418
    functionDepth: 0
    functionLinenumber: 5418
    functionLinenumberEnd: 5420
    functionName: Catch::ReusableStringStream::str
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - static_cast<std::ostringstream*>
    linkageType: ''
    returnType: void
    signature: void ReusableStringStream::str( std::string const& str )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5386,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5387,1
    - Dst: Detail::make_unique<std::ostringstream>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5387,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5388,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5391,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5395
      start: 5385
    functionDepth: 1
    functionLinenumber: 5385
    functionLinenumberEnd: 5395
    functionName: Catch::add
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - pop_back
    - empty
    - Detail::make_unique<std::ostringstream>
    - back
    - size
    linkageType: ''
    returnType: auto
    signature: auto add() -> std::size_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyfmt
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5398,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5400
      start: 5397
    functionDepth: 0
    functionLinenumber: 5397
    functionLinenumberEnd: 5400
    functionName: Catch::release
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - copyfmt
    linkageType: ''
    returnType: void
    signature: void release( std::size_t index )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Singleton::getMutable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5404,1
    - Dst: Catch::Singleton::getMutable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5405,1
    - Dst: Catch::ReusableStringStream::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5403
    functionDepth: 2
    functionLinenumber: 5403
    functionLinenumberEnd: 5406
    functionName: Catch::ReusableStringStream::ReusableStringStream
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::Singleton::getMutable
    - Catch::ReusableStringStream::get
    linkageType: ''
    returnType: void
    signature: void ReusableStringStream::ReusableStringStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::ostringstream*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5409,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5410,1
    - Dst: Catch::Singleton::getMutable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5412
      start: 5408
    functionDepth: 2
    functionLinenumber: 5408
    functionLinenumberEnd: 5412
    functionName: ReusableStringStream::~ReusableStringStream()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Singleton::getMutable
    - static_cast<std::ostringstream*>
    - clear
    linkageType: ''
    returnType: void
    signature: void ReusableStringStream::~ReusableStringStream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::ostringstream*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5416
      start: 5414
    functionDepth: 0
    functionLinenumber: 5414
    functionLinenumberEnd: 5416
    functionName: Catch::ReusableStringStream::str
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - static_cast<std::ostringstream*>
    linkageType: ''
    returnType: std::string
    signature: std::string ReusableStringStream::str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::ostringstream*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5420
      start: 5418
    functionDepth: 0
    functionLinenumber: 5418
    functionLinenumberEnd: 5420
    functionName: Catch::ReusableStringStream::str
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - static_cast<std::ostringstream*>
    linkageType: ''
    returnType: void
    signature: void ReusableStringStream::str( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - TestCaseTracking::NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5439
    functionDepth: 1
    functionLinenumber: 5439
    functionLinenumberEnd: 5443
    functionName: Catch::Generators::GeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void GeneratorTracker(\n                    TestCaseTracking::NameAndLocation&&
      nameAndLocation,\n                    TrackerContext& ctx,\n                    ITracker*
      parent )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5451,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5463,1
    - Dst: parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5464,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5466,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: auto::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5468,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5470,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5472,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: ITracker*::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5475,1
    - Dst: GeneratorTracker*::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    - Dst: GeneratorTracker*::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' ctx'
    - "\n                             nameAndLocation"
    argTypes:
    - TrackerContext
    - TestCaseTracking::NameAndLocationRef
    assertStmts:
    - condition: ( thisTracker )
      pos:
        line_end: 5465
        line_start: 5465
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( thisTracker->isGeneratorTracker() )
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 5471
        line_start: 5471
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker->isGeneratorTracker() )
      pos:
        line_end: 5472
        line_start: 5472
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5483
      start: 5445
    functionDepth: 0
    functionLinenumber: 5445
    functionLinenumberEnd: 5483
    functionName: Catch::Generators::acquire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::isGeneratorTracker
    - GeneratorTracker*::open
    - assert
    - GeneratorTracker*::isComplete
    - static_cast<GeneratorTracker*>
    - nameAndLocation
    - currentTracker
    - parent
    - ITracker*::isGeneratorTracker
    - findChild
    linkageType: ''
    returnType: GeneratorTracker
    signature: "GeneratorTracker *\n                acquire( TrackerContext& ctx,\n
      \                        TestCaseTracking::NameAndLocationRef const&\n                             nameAndLocation
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5486
    functionName: Catch::Generators::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isGeneratorTracker() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5489
    functionName: Catch::Generators::hasGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto hasGenerator() const -> bool override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5491,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5502,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5504,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5505,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5506,1
    - Dst: hasStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5509,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5510,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5521,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5522,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5524,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5528,1
    - Dst: getFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5529,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5531,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5534,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5536,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5537,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5540,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5551,1
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5554,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5555,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( parent &&\n                                \"Missing root (test
        case) level section\" )"
      pos:
        line_end: 5524
        line_start: 5523
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_generator && "Tracker without generator" )
      pos:
        line_end: 5550
        line_start: 5550
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5558
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5558
    functionName: Catch::Generators::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isSectionTracker
    - assert
    - begin
    - empty
    - end
    - Catch::TestCaseTracking::TrackerBase::close
    - ITracker*::isSectionTracker
    - std::find
    - countedNext
    - getFilters
    - clear
    - hasStarted
    - static_cast<SectionTracker const&>
    - ITracker*::parent
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void close() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5561
    functionDepth: 0
    functionLinenumber: 5561
    functionLinenumberEnd: 5563
    functionName: Catch::Generators::getGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getGenerator() const -> GeneratorBasePtr const& override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5566
    functionName: Catch::Generators::setGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void setGenerator( GeneratorBasePtr&& generator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - TestCaseTracking::NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5439
    functionDepth: 1
    functionLinenumber: 5439
    functionLinenumberEnd: 5443
    functionName: Catch::Generators::GeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void GeneratorTracker(\n                    TestCaseTracking::NameAndLocation&&
      nameAndLocation,\n                    TrackerContext& ctx,\n                    ITracker*
      parent )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5451,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5463,1
    - Dst: parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5464,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5466,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: auto::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5468,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5470,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5472,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: ITracker*::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5475,1
    - Dst: GeneratorTracker*::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    - Dst: GeneratorTracker*::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' ctx'
    - "\n                             nameAndLocation"
    argTypes:
    - TrackerContext
    - TestCaseTracking::NameAndLocationRef
    assertStmts:
    - condition: ( thisTracker )
      pos:
        line_end: 5465
        line_start: 5465
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( thisTracker->isGeneratorTracker() )
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 5471
        line_start: 5471
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker->isGeneratorTracker() )
      pos:
        line_end: 5472
        line_start: 5472
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5483
      start: 5445
    functionDepth: 0
    functionLinenumber: 5445
    functionLinenumberEnd: 5483
    functionName: Catch::Generators::acquire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::isGeneratorTracker
    - GeneratorTracker*::open
    - assert
    - GeneratorTracker*::isComplete
    - static_cast<GeneratorTracker*>
    - nameAndLocation
    - currentTracker
    - parent
    - ITracker*::isGeneratorTracker
    - findChild
    linkageType: ''
    returnType: GeneratorTracker
    signature: "GeneratorTracker *\n                acquire( TrackerContext& ctx,\n
      \                        TestCaseTracking::NameAndLocationRef const&\n                             nameAndLocation
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5486
    functionName: Catch::Generators::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isGeneratorTracker() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5489
    functionName: Catch::Generators::hasGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto hasGenerator() const -> bool override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5491,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5502,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5504,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5505,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5506,1
    - Dst: hasStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5509,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5510,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5521,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5522,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5524,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5528,1
    - Dst: getFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5529,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5531,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5534,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5536,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5537,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5540,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5551,1
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5554,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5555,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( parent &&\n                                \"Missing root (test
        case) level section\" )"
      pos:
        line_end: 5524
        line_start: 5523
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_generator && "Tracker without generator" )
      pos:
        line_end: 5550
        line_start: 5550
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5558
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5558
    functionName: Catch::Generators::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isSectionTracker
    - assert
    - begin
    - empty
    - end
    - Catch::TestCaseTracking::TrackerBase::close
    - ITracker*::isSectionTracker
    - std::find
    - countedNext
    - getFilters
    - clear
    - hasStarted
    - static_cast<SectionTracker const&>
    - ITracker*::parent
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void close() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5561
    functionDepth: 0
    functionLinenumber: 5561
    functionLinenumberEnd: 5563
    functionName: Catch::Generators::getGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getGenerator() const -> GeneratorBasePtr const& override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5566
    functionName: Catch::Generators::setGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void setGenerator( GeneratorBasePtr&& generator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - TestCaseTracking::NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5439
    functionDepth: 1
    functionLinenumber: 5439
    functionLinenumberEnd: 5443
    functionName: Catch::Generators::GeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void GeneratorTracker(\n                    TestCaseTracking::NameAndLocation&&
      nameAndLocation,\n                    TrackerContext& ctx,\n                    ITracker*
      parent )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5451,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5463,1
    - Dst: parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5464,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5466,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: auto::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5468,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5470,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5472,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: ITracker*::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5475,1
    - Dst: GeneratorTracker*::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    - Dst: GeneratorTracker*::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' ctx'
    - "\n                             nameAndLocation"
    argTypes:
    - TrackerContext
    - TestCaseTracking::NameAndLocationRef
    assertStmts:
    - condition: ( thisTracker )
      pos:
        line_end: 5465
        line_start: 5465
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( thisTracker->isGeneratorTracker() )
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 5471
        line_start: 5471
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker->isGeneratorTracker() )
      pos:
        line_end: 5472
        line_start: 5472
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5483
      start: 5445
    functionDepth: 0
    functionLinenumber: 5445
    functionLinenumberEnd: 5483
    functionName: Catch::Generators::acquire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::isGeneratorTracker
    - GeneratorTracker*::open
    - assert
    - GeneratorTracker*::isComplete
    - static_cast<GeneratorTracker*>
    - nameAndLocation
    - currentTracker
    - parent
    - ITracker*::isGeneratorTracker
    - findChild
    linkageType: ''
    returnType: GeneratorTracker
    signature: "GeneratorTracker *\n                acquire( TrackerContext& ctx,\n
      \                        TestCaseTracking::NameAndLocationRef const&\n                             nameAndLocation
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5486
    functionName: Catch::Generators::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isGeneratorTracker() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5489
    functionName: Catch::Generators::hasGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto hasGenerator() const -> bool override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5491,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5502,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5504,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5505,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5506,1
    - Dst: hasStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5509,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5510,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5521,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5522,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5524,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5528,1
    - Dst: getFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5529,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5531,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5534,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5536,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5537,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5540,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5551,1
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5554,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5555,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( parent &&\n                                \"Missing root (test
        case) level section\" )"
      pos:
        line_end: 5524
        line_start: 5523
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_generator && "Tracker without generator" )
      pos:
        line_end: 5550
        line_start: 5550
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5558
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5558
    functionName: Catch::Generators::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isSectionTracker
    - assert
    - begin
    - empty
    - end
    - Catch::TestCaseTracking::TrackerBase::close
    - ITracker*::isSectionTracker
    - std::find
    - countedNext
    - getFilters
    - clear
    - hasStarted
    - static_cast<SectionTracker const&>
    - ITracker*::parent
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void close() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5561
    functionDepth: 0
    functionLinenumber: 5561
    functionLinenumberEnd: 5563
    functionName: Catch::Generators::getGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getGenerator() const -> GeneratorBasePtr const& override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5566
    functionName: Catch::Generators::setGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void setGenerator( GeneratorBasePtr&& generator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - TestCaseTracking::NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5439
    functionDepth: 1
    functionLinenumber: 5439
    functionLinenumberEnd: 5443
    functionName: Catch::Generators::GeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void GeneratorTracker(\n                    TestCaseTracking::NameAndLocation&&
      nameAndLocation,\n                    TrackerContext& ctx,\n                    ITracker*
      parent )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5451,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5463,1
    - Dst: parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5464,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5466,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: auto::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5468,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5470,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5472,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: ITracker*::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5475,1
    - Dst: GeneratorTracker*::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    - Dst: GeneratorTracker*::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' ctx'
    - "\n                             nameAndLocation"
    argTypes:
    - TrackerContext
    - TestCaseTracking::NameAndLocationRef
    assertStmts:
    - condition: ( thisTracker )
      pos:
        line_end: 5465
        line_start: 5465
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( thisTracker->isGeneratorTracker() )
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 5471
        line_start: 5471
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker->isGeneratorTracker() )
      pos:
        line_end: 5472
        line_start: 5472
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5483
      start: 5445
    functionDepth: 0
    functionLinenumber: 5445
    functionLinenumberEnd: 5483
    functionName: Catch::Generators::acquire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::isGeneratorTracker
    - GeneratorTracker*::open
    - assert
    - GeneratorTracker*::isComplete
    - static_cast<GeneratorTracker*>
    - nameAndLocation
    - currentTracker
    - parent
    - ITracker*::isGeneratorTracker
    - findChild
    linkageType: ''
    returnType: GeneratorTracker
    signature: "GeneratorTracker *\n                acquire( TrackerContext& ctx,\n
      \                        TestCaseTracking::NameAndLocationRef const&\n                             nameAndLocation
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5486
    functionName: Catch::Generators::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isGeneratorTracker() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5489
    functionName: Catch::Generators::hasGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto hasGenerator() const -> bool override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5491,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5502,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5504,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5505,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5506,1
    - Dst: hasStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5509,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5510,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5521,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5522,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5524,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5528,1
    - Dst: getFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5529,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5531,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5534,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5536,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5537,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5540,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5551,1
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5554,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5555,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( parent &&\n                                \"Missing root (test
        case) level section\" )"
      pos:
        line_end: 5524
        line_start: 5523
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_generator && "Tracker without generator" )
      pos:
        line_end: 5550
        line_start: 5550
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5558
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5558
    functionName: Catch::Generators::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isSectionTracker
    - assert
    - begin
    - empty
    - end
    - Catch::TestCaseTracking::TrackerBase::close
    - ITracker*::isSectionTracker
    - std::find
    - countedNext
    - getFilters
    - clear
    - hasStarted
    - static_cast<SectionTracker const&>
    - ITracker*::parent
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void close() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5561
    functionDepth: 0
    functionLinenumber: 5561
    functionLinenumberEnd: 5563
    functionName: Catch::Generators::getGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getGenerator() const -> GeneratorBasePtr const& override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5566
    functionName: Catch::Generators::setGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void setGenerator( GeneratorBasePtr&& generator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IConfig*::name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5572,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5574,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5575,1
    - Dst: SourceLineInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5575,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5575,1
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5576,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5576,1
    - Dst: getCurrentMutableContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5578,1
    - Dst: testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - _config
    - ' reporter'
    argTypes:
    - IConfig*
    - IEventListenerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5580
      start: 5571
    functionDepth: 1
    functionLinenumber: 5571
    functionLinenumberEnd: 5580
    functionName: Catch::RunContext::RunContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - getCurrentMutableContext
    - SourceLineInfo
    - includeSuccessfulResults
    - testRunStarting
    - CATCH_MOVE
    - getPreferences
    - IConfig*::name
    linkageType: ''
    returnType: void
    signature: void RunContext::RunContext(IConfig const* _config, IEventListenerPtr&&
      reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5583,1
    - Dst: TestRunStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5583,1
    - Dst: aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5584
      start: 5582
    functionDepth: 0
    functionLinenumber: 5582
    functionLinenumberEnd: 5584
    functionName: RunContext::~RunContext()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - testRunEnded
    - TestRunStats
    - aborting
    linkageType: ''
    returnType: void
    signature: void RunContext::~RunContext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5589,1
    - Dst: testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5590,1
    - Dst: startRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5594,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5595,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5595,1
    - Dst: static_cast<SectionTracker&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5596,1
    - Dst: getSectionsToRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5596,1
    - Dst: seedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5629,1
    - Dst: startCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5635,1
    - Dst: Catch::Generators::acquire
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5636,1
    - Dst: Catch::TestCaseTracking::NameAndLocationRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5636,1
    - Dst: testCasePartialStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5638,1
    - Dst: Catch::RunContext::runCurrentTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5642,1
    - Dst: delta
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5646,1
    - Dst: TestCaseStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5647,1
    - Dst: Catch::RunContext::aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5647,1
    - Dst: testCasePartialEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5649,1
    - Dst: isSuccessfullyCompleted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5651,1
    - Dst: Catch::RunContext::aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5651,1
    - Dst: delta
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5653,1
    - Dst: expectedToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5654,1
    - Dst: testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5660,1
    - Dst: TestCaseStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5660,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5662,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5663,1
    - Dst: Catch::RunContext::aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseHandle
    assertStmts:
    - condition: (rootTracker.isSectionTracker())
      pos:
        line_end: 5594
        line_start: 5594
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5670
      start: 5586
    functionDepth: 1
    functionLinenumber: 5586
    functionLinenumberEnd: 5670
    functionName: Catch::RunContext::runTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::NameAndLocationRef
    - testCasePartialStarting
    - static_cast<SectionTracker&>
    - startCycle
    - seedRng
    - testCasePartialEnded
    - isSuccessfullyCompleted
    - getTestCaseInfo
    - isSectionTracker
    - assert
    - Catch::Generators::acquire
    - testCaseEnded
    - expectedToFail
    - testCaseStarting
    - TestCaseStats
    - startRun
    - Catch::RunContext::aborting
    - Catch::RunContext::runCurrentTest
    - CATCH_MOVE
    - getSectionsToRun
    - delta
    linkageType: ''
    returnType: Totals
    signature: Totals RunContext::runTest(TestCaseHandle const& testCase)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5674,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5677,1
    - Dst: succeeded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5680,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5682,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5684,1
    - Dst: Catch::RunContext::assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5693,1
    - Dst: AssertionStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5693,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5695,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5696,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5701,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - AssertionResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5702
      start: 5673
    functionDepth: 1
    functionLinenumber: 5673
    functionLinenumberEnd: 5702
    functionName: Catch::RunContext::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getResultType
    - getTestCaseInfo
    - Catch::RunContext::assertionEnded
    - AssertionStats
    - isOk
    - succeeded
    - CATCH_MOVE
    - clear
    linkageType: ''
    returnType: void
    signature: void RunContext::assertionEnded(AssertionResult&& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5707
      start: 5703
    functionDepth: 0
    functionLinenumber: 5703
    functionLinenumberEnd: 5707
    functionName: Catch::RunContext::resetAssertionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: void RunContext::resetAssertionInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - AssertionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5711
      start: 5709
    functionDepth: 0
    functionLinenumber: 5709
    functionLinenumberEnd: 5711
    functionName: Catch::RunContext::notifyAssertionStarted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assertionStarting
    linkageType: ''
    returnType: void
    signature: void RunContext::notifyAssertionStarted( AssertionInfo const& info
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::acquire
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5717,1
    - Dst: Catch::TestCaseTracking::NameAndLocationRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5718,1
    - Dst: isOpen
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5721,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5723,1
    - Dst: sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - sectionName
    - ' sectionLineInfo'
    - ' assertions'
    argTypes:
    - StringRef
    - SourceLineInfo
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5733
      start: 5713
    functionDepth: 1
    functionLinenumber: 5713
    functionLinenumberEnd: 5733
    functionName: Catch::RunContext::sectionStarted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::NameAndLocationRef
    - push_back
    - sectionStarting
    - Catch::Generators::acquire
    - isOpen
    linkageType: ''
    returnType: bool
    signature: "bool RunContext::sectionStarted( StringRef sectionName,\n                                     SourceLineInfo
      const& sectionLineInfo,\n                                     Counts& assertions
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::acquire
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5738,1
    - Dst: Catch::TestCaseTracking::NameAndLocationRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - generatorName
    - ' lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5744
      start: 5734
    functionDepth: 1
    functionLinenumber: 5734
    functionLinenumberEnd: 5744
    functionName: Catch::RunContext::acquireGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::NameAndLocationRef
    - Catch::Generators::acquire
    linkageType: ''
    returnType: IGeneratorTracker
    signature: "IGeneratorTracker *\n    RunContext::acquireGeneratorTracker( StringRef
      generatorName,\n                                         SourceLineInfo const&
      lineInfo )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::NameAndLocation::NameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5751,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5751,1
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5752,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5753,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5754,1
    - Dst: Catch::Detail::make_unique<Generators::GeneratorTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5757,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5758,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5759,1
    - Dst: addChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5760,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5760,1
    - Dst: auto::setGenerator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5762,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5762,1
    - Dst: auto::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - generatorName
    - lineInfo
    - ' generator'
    argTypes:
    - StringRef
    - SourceLineInfo
    - Generators::GeneratorBasePtr
    assertStmts:
    - condition: "(\n            currentTracker.nameAndLocation() != nameAndLoc &&\n
        \           \"Trying to create tracker for a genreator that already has one\"
        )"
      pos:
        line_end: 5754
        line_start: 5752
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5765
      start: 5746
    functionDepth: 1
    functionLinenumber: 5746
    functionLinenumberEnd: 5765
    functionName: Catch::RunContext::createGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::TestCaseTracking::NameAndLocation::NameAndLocation
    - auto::get
    - nameAndLocation
    - currentTracker
    - Catch::Detail::make_unique<Generators::GeneratorTracker>
    - CATCH_MOVE
    - addChild
    - static_cast<std::string>
    - auto::setGenerator
    - auto::open
    linkageType: ''
    returnType: IGeneratorTracker
    signature: "IGeneratorTracker * RunContext::createGeneratorTracker(\n        StringRef
      generatorName,\n        SourceLineInfo lineInfo,\n        Generators::GeneratorBasePtr&&
      generator )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5768,1
    - Dst: warnAboutMissingAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5770,1
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' assertions'
    argTypes:
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5777
      start: 5767
    functionDepth: 0
    functionLinenumber: 5767
    functionLinenumberEnd: 5777
    functionName: Catch::RunContext::testForMissingAssertions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - currentTracker
    - warnAboutMissingAssertions
    - total
    linkageType: ''
    returnType: bool
    signature: bool RunContext::testForMissingAssertions(Counts& assertions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::testForMissingAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5781,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5783,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5784,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5785,1
    - Dst: Catch::RunContext::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5788,1
    - Dst: SectionStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5788,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5788,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5789,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' endInfo'
    argTypes:
    - SectionEndInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5791
      start: 5779
    functionDepth: 1
    functionLinenumber: 5779
    functionLinenumberEnd: 5791
    functionName: Catch::RunContext::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - pop_back
    - empty
    - CATCH_MOVE
    - back
    - SectionStats
    - Catch::RunContext::sectionEnded
    - clear
    - Catch::RunContext::testForMissingAssertions
    linkageType: ''
    returnType: void
    signature: void RunContext::sectionEnded(SectionEndInfo&& endInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5794,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5795,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5797,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5799,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5801,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' endInfo'
    argTypes:
    - SectionEndInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5802
      start: 5793
    functionDepth: 1
    functionLinenumber: 5793
    functionLinenumberEnd: 5802
    functionName: Catch::RunContext::sectionEndedEarly
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - pop_back
    - empty
    - CATCH_MOVE
    - back
    linkageType: ''
    returnType: void
    signature: void RunContext::sectionEndedEarly(SectionEndInfo&& endInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::benchmarkPreparing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5806
      start: 5804
    functionDepth: 1
    functionLinenumber: 5804
    functionLinenumberEnd: 5806
    functionName: Catch::RunContext::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RunContext::benchmarkPreparing
    linkageType: ''
    returnType: void
    signature: void RunContext::benchmarkPreparing( StringRef name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::benchmarkStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - BenchmarkInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5809
      start: 5807
    functionDepth: 1
    functionLinenumber: 5807
    functionLinenumberEnd: 5809
    functionName: Catch::RunContext::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RunContext::benchmarkStarting
    linkageType: ''
    returnType: void
    signature: void RunContext::benchmarkStarting( BenchmarkInfo const& info )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::benchmarkEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' stats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5812
      start: 5810
    functionDepth: 1
    functionLinenumber: 5810
    functionLinenumberEnd: 5812
    functionName: Catch::RunContext::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RunContext::benchmarkEnded
    linkageType: ''
    returnType: void
    signature: void RunContext::benchmarkEnded( BenchmarkStats<> const& stats )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::benchmarkFailed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5815
      start: 5813
    functionDepth: 1
    functionLinenumber: 5813
    functionLinenumberEnd: 5815
    functionName: Catch::RunContext::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::RunContext::benchmarkFailed
    linkageType: ''
    returnType: void
    signature: void RunContext::benchmarkFailed( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - MessageInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5819
      start: 5817
    functionDepth: 0
    functionLinenumber: 5817
    functionLinenumberEnd: 5819
    functionName: Catch::RunContext::pushScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void RunContext::pushScopedMessage(MessageInfo const & message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    - Dst: std::remove
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - MessageInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5823
      start: 5821
    functionDepth: 0
    functionLinenumber: 5821
    functionLinenumberEnd: 5823
    functionName: Catch::RunContext::popScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::remove
    - erase
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void RunContext::popScopedMessage(MessageInfo const & message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5826,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' builder'
    argTypes:
    - MessageBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5827
      start: 5825
    functionDepth: 1
    functionLinenumber: 5825
    functionLinenumberEnd: 5827
    functionName: Catch::RunContext::emplaceUnscopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void RunContext::emplaceUnscopedMessage( MessageBuilder&& builder )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5831,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5833
      start: 5829
    functionDepth: 0
    functionLinenumber: 5829
    functionLinenumberEnd: 5833
    functionName: Catch::RunContext::getCurrentTestName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string RunContext::getCurrentTestName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5837
      start: 5835
    functionDepth: 0
    functionLinenumber: 5835
    functionLinenumberEnd: 5837
    functionName: Catch::RunContext::getLastResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionResult
    signature: AssertionResult * RunContext::getLastResult() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5841
      start: 5839
    functionDepth: 0
    functionLinenumber: 5839
    functionLinenumberEnd: 5841
    functionName: Catch::RunContext::exceptionEarlyReported
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RunContext::exceptionEarlyReported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fatalErrorEncountered
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5845,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5850,1
    - Dst: Catch::RunContext::assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5853,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5853,1
    - Dst: Catch::RunContext::resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5854,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5858,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5859,1
    - Dst: SectionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5860,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5860,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5860,1
    - Dst: Catch::RunContext::sectionEndedEarly
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5861,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5861,1
    - Dst: handleUnfinishedSections
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5863,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5866,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5871,1
    - Dst: Catch::RunContext::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5872,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5874,1
    - Dst: testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5879,1
    - Dst: TestCaseStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5879,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5881,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5882,1
    - Dst: testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5885,1
    - Dst: TestRunStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - message
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5886
      start: 5843
    functionDepth: 2
    functionLinenumber: 5843
    functionLinenumberEnd: 5886
    functionName: Catch::RunContext::handleFatalErrorCondition
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::RunContext::assertionEnded
    - getTestCaseInfo
    - testRunEnded
    - testCaseEnded
    - empty
    - fatalErrorEncountered
    - SectionInfo
    - handleUnfinishedSections
    - std::string
    - TestRunStats
    - CATCH_MOVE
    - static_cast<std::string>
    - back
    - Catch::RunContext::sectionEnded
    - TestCaseStats
    - Catch::RunContext::resetAssertionInfo
    - Catch::RunContext::sectionEndedEarly
    linkageType: ''
    returnType: void
    signature: void RunContext::handleFatalErrorCondition( StringRef message )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5890
      start: 5888
    functionDepth: 0
    functionLinenumber: 5888
    functionLinenumberEnd: 5890
    functionName: Catch::RunContext::lastAssertionPassed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RunContext::lastAssertionPassed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5895,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5897
      start: 5892
    functionDepth: 1
    functionLinenumber: 5892
    functionLinenumberEnd: 5897
    functionName: Catch::RunContext::assertionPassed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::RunContext::resetAssertionInfo
    - clear
    linkageType: ''
    returnType: void
    signature: void RunContext::assertionPassed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5900,1
    - Dst: abortAfter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5901
      start: 5899
    functionDepth: 0
    functionLinenumber: 5899
    functionLinenumberEnd: 5901
    functionName: Catch::RunContext::aborting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - abortAfter
    - static_cast<std::size_t>
    linkageType: ''
    returnType: bool
    signature: bool RunContext::aborting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5904,1
    - Dst: sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5906,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5910,1
    - Dst: if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5914,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5914,1
    - Dst: Timer::start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5918,1
    - Dst: invokeActiveTestCase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5919,1
    - Dst: Timer::start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5922,1
    - Dst: invokeActiveTestCase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' redirectedCout'
    - ' redirectedCerr'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5925
      start: 5903
    functionDepth: 0
    functionLinenumber: 5903
    functionLinenumberEnd: 5925
    functionName: Catch::RunContext::runCurrentTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getTestCaseInfo
    - sectionStarting
    - StringRef
    - Timer::start
    - invokeActiveTestCase
    - getPreferences
    - if
    linkageType: ''
    returnType: void
    signature: void RunContext::runCurrentTest(std::string & redirectedCout, std::string
      & redirectedCerr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - TestCaseTracking::NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5439
    functionDepth: 1
    functionLinenumber: 5439
    functionLinenumberEnd: 5443
    functionName: Catch::Generators::GeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void GeneratorTracker(\n                    TestCaseTracking::NameAndLocation&&
      nameAndLocation,\n                    TrackerContext& ctx,\n                    ITracker*
      parent )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5451,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5463,1
    - Dst: parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5464,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5466,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: auto::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5468,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5470,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5472,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: ITracker*::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5475,1
    - Dst: GeneratorTracker*::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    - Dst: GeneratorTracker*::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' ctx'
    - "\n                             nameAndLocation"
    argTypes:
    - TrackerContext
    - TestCaseTracking::NameAndLocationRef
    assertStmts:
    - condition: ( thisTracker )
      pos:
        line_end: 5465
        line_start: 5465
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( thisTracker->isGeneratorTracker() )
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 5471
        line_start: 5471
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker->isGeneratorTracker() )
      pos:
        line_end: 5472
        line_start: 5472
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5483
      start: 5445
    functionDepth: 0
    functionLinenumber: 5445
    functionLinenumberEnd: 5483
    functionName: Catch::Generators::acquire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - auto::isGeneratorTracker
    - GeneratorTracker*::open
    - assert
    - GeneratorTracker*::isComplete
    - static_cast<GeneratorTracker*>
    - nameAndLocation
    - currentTracker
    - parent
    - ITracker*::isGeneratorTracker
    - findChild
    linkageType: ''
    returnType: GeneratorTracker
    signature: "GeneratorTracker *\n                acquire( TrackerContext& ctx,\n
      \                        TestCaseTracking::NameAndLocationRef const&\n                             nameAndLocation
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5486
    functionName: Catch::Generators::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isGeneratorTracker() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5489
    functionName: Catch::Generators::hasGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto hasGenerator() const -> bool override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5491,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5502,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5504,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5505,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5506,1
    - Dst: hasStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5509,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5510,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5521,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5522,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5524,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5528,1
    - Dst: getFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5529,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5531,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5534,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5536,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5537,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5540,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5551,1
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5554,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5555,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( parent &&\n                                \"Missing root (test
        case) level section\" )"
      pos:
        line_end: 5524
        line_start: 5523
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_generator && "Tracker without generator" )
      pos:
        line_end: 5550
        line_start: 5550
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5558
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5558
    functionName: Catch::Generators::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isSectionTracker
    - assert
    - begin
    - empty
    - end
    - Catch::TestCaseTracking::TrackerBase::close
    - ITracker*::isSectionTracker
    - std::find
    - countedNext
    - getFilters
    - clear
    - hasStarted
    - static_cast<SectionTracker const&>
    - ITracker*::parent
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void close() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5561
    functionDepth: 0
    functionLinenumber: 5561
    functionLinenumberEnd: 5563
    functionName: Catch::Generators::getGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getGenerator() const -> GeneratorBasePtr const& override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5566
    functionName: Catch::Generators::setGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void setGenerator( GeneratorBasePtr&& generator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - TestCaseTracking::NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5439
    functionDepth: 1
    functionLinenumber: 5439
    functionLinenumberEnd: 5443
    functionName: Catch::Generators::GeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void GeneratorTracker(\n                    TestCaseTracking::NameAndLocation&&
      nameAndLocation,\n                    TrackerContext& ctx,\n                    ITracker*
      parent )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5451,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5463,1
    - Dst: parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5464,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5466,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: auto::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5468,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5470,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5472,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: ITracker*::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5475,1
    - Dst: GeneratorTracker*::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    - Dst: GeneratorTracker*::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' ctx'
    - "\n                             nameAndLocation"
    argTypes:
    - TrackerContext
    - TestCaseTracking::NameAndLocationRef
    assertStmts:
    - condition: ( thisTracker )
      pos:
        line_end: 5465
        line_start: 5465
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( thisTracker->isGeneratorTracker() )
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 5471
        line_start: 5471
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker->isGeneratorTracker() )
      pos:
        line_end: 5472
        line_start: 5472
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5483
      start: 5445
    functionDepth: 0
    functionLinenumber: 5445
    functionLinenumberEnd: 5483
    functionName: Catch::Generators::acquire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - auto::isGeneratorTracker
    - GeneratorTracker*::open
    - assert
    - GeneratorTracker*::isComplete
    - static_cast<GeneratorTracker*>
    - nameAndLocation
    - currentTracker
    - parent
    - ITracker*::isGeneratorTracker
    - findChild
    linkageType: ''
    returnType: GeneratorTracker
    signature: "GeneratorTracker *\n                acquire( TrackerContext& ctx,\n
      \                        TestCaseTracking::NameAndLocationRef const&\n                             nameAndLocation
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5486
    functionName: Catch::Generators::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isGeneratorTracker() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5489
    functionName: Catch::Generators::hasGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto hasGenerator() const -> bool override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5491,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5502,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5504,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5505,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5506,1
    - Dst: hasStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5509,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5510,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5521,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5522,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5524,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5528,1
    - Dst: getFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5529,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5531,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5534,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5536,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5537,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5540,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5551,1
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5554,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5555,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( parent &&\n                                \"Missing root (test
        case) level section\" )"
      pos:
        line_end: 5524
        line_start: 5523
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_generator && "Tracker without generator" )
      pos:
        line_end: 5550
        line_start: 5550
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5558
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5558
    functionName: Catch::Generators::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isSectionTracker
    - assert
    - begin
    - empty
    - end
    - Catch::TestCaseTracking::TrackerBase::close
    - ITracker*::isSectionTracker
    - std::find
    - countedNext
    - getFilters
    - clear
    - hasStarted
    - static_cast<SectionTracker const&>
    - ITracker*::parent
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void close() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5561
    functionDepth: 0
    functionLinenumber: 5561
    functionLinenumberEnd: 5563
    functionName: Catch::Generators::getGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getGenerator() const -> GeneratorBasePtr const& override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5566
    functionName: Catch::Generators::setGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void setGenerator( GeneratorBasePtr&& generator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - TestCaseTracking::NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5439
    functionDepth: 1
    functionLinenumber: 5439
    functionLinenumberEnd: 5443
    functionName: Catch::Generators::GeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void GeneratorTracker(\n                    TestCaseTracking::NameAndLocation&&
      nameAndLocation,\n                    TrackerContext& ctx,\n                    ITracker*
      parent )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5451,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5463,1
    - Dst: parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5464,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5466,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: auto::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5468,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5470,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5472,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: ITracker*::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5475,1
    - Dst: GeneratorTracker*::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    - Dst: GeneratorTracker*::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' ctx'
    - "\n                             nameAndLocation"
    argTypes:
    - TrackerContext
    - TestCaseTracking::NameAndLocationRef
    assertStmts:
    - condition: ( thisTracker )
      pos:
        line_end: 5465
        line_start: 5465
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( thisTracker->isGeneratorTracker() )
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 5471
        line_start: 5471
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker->isGeneratorTracker() )
      pos:
        line_end: 5472
        line_start: 5472
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5483
      start: 5445
    functionDepth: 0
    functionLinenumber: 5445
    functionLinenumberEnd: 5483
    functionName: Catch::Generators::acquire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - auto::isGeneratorTracker
    - GeneratorTracker*::open
    - assert
    - GeneratorTracker*::isComplete
    - static_cast<GeneratorTracker*>
    - nameAndLocation
    - currentTracker
    - parent
    - ITracker*::isGeneratorTracker
    - findChild
    linkageType: ''
    returnType: GeneratorTracker
    signature: "GeneratorTracker *\n                acquire( TrackerContext& ctx,\n
      \                        TestCaseTracking::NameAndLocationRef const&\n                             nameAndLocation
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5486
    functionName: Catch::Generators::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isGeneratorTracker() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5489
    functionName: Catch::Generators::hasGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto hasGenerator() const -> bool override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5491,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5502,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5504,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5505,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5506,1
    - Dst: hasStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5509,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5510,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5521,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5522,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5524,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5528,1
    - Dst: getFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5529,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5531,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5534,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5536,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5537,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5540,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5551,1
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5554,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5555,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( parent &&\n                                \"Missing root (test
        case) level section\" )"
      pos:
        line_end: 5524
        line_start: 5523
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_generator && "Tracker without generator" )
      pos:
        line_end: 5550
        line_start: 5550
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5558
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5558
    functionName: Catch::Generators::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isSectionTracker
    - assert
    - begin
    - empty
    - end
    - Catch::TestCaseTracking::TrackerBase::close
    - ITracker*::isSectionTracker
    - std::find
    - countedNext
    - getFilters
    - clear
    - hasStarted
    - static_cast<SectionTracker const&>
    - ITracker*::parent
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void close() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5561
    functionDepth: 0
    functionLinenumber: 5561
    functionLinenumberEnd: 5563
    functionName: Catch::Generators::getGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getGenerator() const -> GeneratorBasePtr const& override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5566
    functionName: Catch::Generators::setGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void setGenerator( GeneratorBasePtr&& generator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - TestCaseTracking::NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5439
    functionDepth: 1
    functionLinenumber: 5439
    functionLinenumberEnd: 5443
    functionName: Catch::Generators::GeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: "void GeneratorTracker(\n                    TestCaseTracking::NameAndLocation&&
      nameAndLocation,\n                    TrackerContext& ctx,\n                    ITracker*
      parent )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5451,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5463,1
    - Dst: parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5464,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5466,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: auto::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5467,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5468,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5470,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5472,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: ITracker*::isGeneratorTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5473,1
    - Dst: static_cast<GeneratorTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5475,1
    - Dst: GeneratorTracker*::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    - Dst: GeneratorTracker*::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' ctx'
    - "\n                             nameAndLocation"
    argTypes:
    - TrackerContext
    - TestCaseTracking::NameAndLocationRef
    assertStmts:
    - condition: ( thisTracker )
      pos:
        line_end: 5465
        line_start: 5465
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( thisTracker->isGeneratorTracker() )
      pos:
        line_end: 5466
        line_start: 5466
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 5471
        line_start: 5471
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker->isGeneratorTracker() )
      pos:
        line_end: 5472
        line_start: 5472
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5483
      start: 5445
    functionDepth: 0
    functionLinenumber: 5445
    functionLinenumberEnd: 5483
    functionName: Catch::Generators::acquire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - auto::isGeneratorTracker
    - GeneratorTracker*::open
    - assert
    - GeneratorTracker*::isComplete
    - static_cast<GeneratorTracker*>
    - nameAndLocation
    - currentTracker
    - parent
    - ITracker*::isGeneratorTracker
    - findChild
    linkageType: ''
    returnType: GeneratorTracker
    signature: "GeneratorTracker *\n                acquire( TrackerContext& ctx,\n
      \                        TestCaseTracking::NameAndLocationRef const&\n                             nameAndLocation
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5486
    functionName: Catch::Generators::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isGeneratorTracker() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5489
    functionName: Catch::Generators::hasGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto hasGenerator() const -> bool override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5491,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5502,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5504,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5505,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5506,1
    - Dst: hasStarted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5509,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5510,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5521,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5522,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5524,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5528,1
    - Dst: getFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5529,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5531,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5534,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5535,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5536,1
    - Dst: static_cast<SectionTracker const&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5537,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5540,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5551,1
    - Dst: countedNext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5554,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5555,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( parent &&\n                                \"Missing root (test
        case) level section\" )"
      pos:
        line_end: 5524
        line_start: 5523
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_generator && "Tracker without generator" )
      pos:
        line_end: 5550
        line_start: 5550
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5558
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5558
    functionName: Catch::Generators::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isSectionTracker
    - assert
    - begin
    - empty
    - end
    - Catch::TestCaseTracking::TrackerBase::close
    - ITracker*::isSectionTracker
    - std::find
    - countedNext
    - getFilters
    - clear
    - hasStarted
    - static_cast<SectionTracker const&>
    - ITracker*::parent
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void close() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5561
    functionDepth: 0
    functionLinenumber: 5561
    functionLinenumberEnd: 5563
    functionName: Catch::Generators::getGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto getGenerator() const -> GeneratorBasePtr const& override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - GeneratorBasePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5566
    functionName: Catch::Generators::setGenerator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void setGenerator( GeneratorBasePtr&& generator ) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IConfig*::name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5572,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5574,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5575,1
    - Dst: SourceLineInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5575,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5575,1
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5576,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5576,1
    - Dst: getCurrentMutableContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5578,1
    - Dst: testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - _config
    - ' reporter'
    argTypes:
    - IConfig*
    - IEventListenerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5580
      start: 5571
    functionDepth: 1
    functionLinenumber: 5571
    functionLinenumberEnd: 5580
    functionName: Catch::RunContext::RunContext
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - getCurrentMutableContext
    - SourceLineInfo
    - includeSuccessfulResults
    - testRunStarting
    - CATCH_MOVE
    - getPreferences
    - IConfig*::name
    linkageType: ''
    returnType: void
    signature: void RunContext::RunContext(IConfig const* _config, IEventListenerPtr&&
      reporter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5583,1
    - Dst: TestRunStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5583,1
    - Dst: aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5584
      start: 5582
    functionDepth: 0
    functionLinenumber: 5582
    functionLinenumberEnd: 5584
    functionName: RunContext::~RunContext()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - testRunEnded
    - TestRunStats
    - aborting
    linkageType: ''
    returnType: void
    signature: void RunContext::~RunContext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5589,1
    - Dst: testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5590,1
    - Dst: startRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5594,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5595,1
    - Dst: isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5595,1
    - Dst: static_cast<SectionTracker&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5596,1
    - Dst: getSectionsToRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5596,1
    - Dst: seedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5629,1
    - Dst: startCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5635,1
    - Dst: Catch::Generators::acquire
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5636,1
    - Dst: Catch::TestCaseTracking::NameAndLocationRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5636,1
    - Dst: testCasePartialStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5638,1
    - Dst: Catch::RunContext::runCurrentTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5642,1
    - Dst: delta
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5646,1
    - Dst: TestCaseStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5647,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5647,1
    - Dst: Catch::RunContext::aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5647,1
    - Dst: testCasePartialEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5649,1
    - Dst: isSuccessfullyCompleted
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5651,1
    - Dst: Catch::RunContext::aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5651,1
    - Dst: delta
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5653,1
    - Dst: expectedToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5654,1
    - Dst: testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5660,1
    - Dst: TestCaseStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5660,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5662,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5663,1
    - Dst: Catch::RunContext::aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - ' testCase'
    argTypes:
    - TestCaseHandle
    assertStmts:
    - condition: (rootTracker.isSectionTracker())
      pos:
        line_end: 5594
        line_start: 5594
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5670
      start: 5586
    functionDepth: 1
    functionLinenumber: 5586
    functionLinenumberEnd: 5670
    functionName: Catch::RunContext::runTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::NameAndLocationRef
    - testCasePartialStarting
    - static_cast<SectionTracker&>
    - startCycle
    - seedRng
    - testCasePartialEnded
    - isSuccessfullyCompleted
    - getTestCaseInfo
    - isSectionTracker
    - assert
    - Catch::Generators::acquire
    - testCaseEnded
    - expectedToFail
    - testCaseStarting
    - TestCaseStats
    - startRun
    - Catch::RunContext::aborting
    - Catch::RunContext::runCurrentTest
    - CATCH_MOVE
    - getSectionsToRun
    - delta
    linkageType: ''
    returnType: Totals
    signature: Totals RunContext::runTest(TestCaseHandle const& testCase)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5674,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5677,1
    - Dst: succeeded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5680,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5682,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5684,1
    - Dst: Catch::RunContext::assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5693,1
    - Dst: AssertionStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5693,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5695,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5696,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5701,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - AssertionResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5702
      start: 5673
    functionDepth: 1
    functionLinenumber: 5673
    functionLinenumberEnd: 5702
    functionName: Catch::RunContext::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - getResultType
    - getTestCaseInfo
    - Catch::RunContext::assertionEnded
    - AssertionStats
    - isOk
    - succeeded
    - CATCH_MOVE
    - clear
    linkageType: ''
    returnType: void
    signature: void RunContext::assertionEnded(AssertionResult&& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5707
      start: 5703
    functionDepth: 0
    functionLinenumber: 5703
    functionLinenumberEnd: 5707
    functionName: Catch::RunContext::resetAssertionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: void
    signature: void RunContext::resetAssertionInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - AssertionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5711
      start: 5709
    functionDepth: 0
    functionLinenumber: 5709
    functionLinenumberEnd: 5711
    functionName: Catch::RunContext::notifyAssertionStarted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assertionStarting
    linkageType: ''
    returnType: void
    signature: void RunContext::notifyAssertionStarted( AssertionInfo const& info
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::acquire
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5717,1
    - Dst: Catch::TestCaseTracking::NameAndLocationRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5718,1
    - Dst: isOpen
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5721,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5723,1
    - Dst: sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - sectionName
    - ' sectionLineInfo'
    - ' assertions'
    argTypes:
    - StringRef
    - SourceLineInfo
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5733
      start: 5713
    functionDepth: 1
    functionLinenumber: 5713
    functionLinenumberEnd: 5733
    functionName: Catch::RunContext::sectionStarted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::NameAndLocationRef
    - push_back
    - sectionStarting
    - Catch::Generators::acquire
    - isOpen
    linkageType: ''
    returnType: bool
    signature: "bool RunContext::sectionStarted( StringRef sectionName,\n                                     SourceLineInfo
      const& sectionLineInfo,\n                                     Counts& assertions
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Generators::acquire
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5738,1
    - Dst: Catch::TestCaseTracking::NameAndLocationRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - generatorName
    - ' lineInfo'
    argTypes:
    - StringRef
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5744
      start: 5734
    functionDepth: 1
    functionLinenumber: 5734
    functionLinenumberEnd: 5744
    functionName: Catch::RunContext::acquireGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::NameAndLocationRef
    - Catch::Generators::acquire
    linkageType: ''
    returnType: IGeneratorTracker
    signature: "IGeneratorTracker *\n    RunContext::acquireGeneratorTracker( StringRef
      generatorName,\n                                         SourceLineInfo const&
      lineInfo )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::NameAndLocation::NameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5751,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5751,1
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5752,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5753,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5754,1
    - Dst: Catch::Detail::make_unique<Generators::GeneratorTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5757,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5758,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5759,1
    - Dst: addChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5760,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5760,1
    - Dst: auto::setGenerator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5762,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5762,1
    - Dst: auto::open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - generatorName
    - lineInfo
    - ' generator'
    argTypes:
    - StringRef
    - SourceLineInfo
    - Generators::GeneratorBasePtr
    assertStmts:
    - condition: "(\n            currentTracker.nameAndLocation() != nameAndLoc &&\n
        \           \"Trying to create tracker for a genreator that already has one\"
        )"
      pos:
        line_end: 5754
        line_start: 5752
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 5765
      start: 5746
    functionDepth: 1
    functionLinenumber: 5746
    functionLinenumberEnd: 5765
    functionName: Catch::RunContext::createGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::TestCaseTracking::NameAndLocation::NameAndLocation
    - auto::get
    - nameAndLocation
    - currentTracker
    - Catch::Detail::make_unique<Generators::GeneratorTracker>
    - CATCH_MOVE
    - addChild
    - static_cast<std::string>
    - auto::setGenerator
    - auto::open
    linkageType: ''
    returnType: IGeneratorTracker
    signature: "IGeneratorTracker * RunContext::createGeneratorTracker(\n        StringRef
      generatorName,\n        SourceLineInfo lineInfo,\n        Generators::GeneratorBasePtr&&
      generator )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5768,1
    - Dst: warnAboutMissingAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5770,1
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' assertions'
    argTypes:
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5777
      start: 5767
    functionDepth: 0
    functionLinenumber: 5767
    functionLinenumberEnd: 5777
    functionName: Catch::RunContext::testForMissingAssertions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - currentTracker
    - warnAboutMissingAssertions
    - total
    linkageType: ''
    returnType: bool
    signature: bool RunContext::testForMissingAssertions(Counts& assertions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::testForMissingAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5781,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5783,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5784,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5785,1
    - Dst: Catch::RunContext::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5788,1
    - Dst: SectionStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5788,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5788,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5789,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' endInfo'
    argTypes:
    - SectionEndInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5791
      start: 5779
    functionDepth: 1
    functionLinenumber: 5779
    functionLinenumberEnd: 5791
    functionName: Catch::RunContext::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - pop_back
    - empty
    - CATCH_MOVE
    - back
    - SectionStats
    - Catch::RunContext::sectionEnded
    - clear
    - Catch::RunContext::testForMissingAssertions
    linkageType: ''
    returnType: void
    signature: void RunContext::sectionEnded(SectionEndInfo&& endInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5794,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5795,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5797,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5799,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5801,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' endInfo'
    argTypes:
    - SectionEndInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5802
      start: 5793
    functionDepth: 1
    functionLinenumber: 5793
    functionLinenumberEnd: 5802
    functionName: Catch::RunContext::sectionEndedEarly
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - pop_back
    - empty
    - CATCH_MOVE
    - back
    linkageType: ''
    returnType: void
    signature: void RunContext::sectionEndedEarly(SectionEndInfo&& endInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::benchmarkPreparing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5806
      start: 5804
    functionDepth: 1
    functionLinenumber: 5804
    functionLinenumberEnd: 5806
    functionName: Catch::RunContext::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RunContext::benchmarkPreparing
    linkageType: ''
    returnType: void
    signature: void RunContext::benchmarkPreparing( StringRef name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::benchmarkStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - BenchmarkInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5809
      start: 5807
    functionDepth: 1
    functionLinenumber: 5807
    functionLinenumberEnd: 5809
    functionName: Catch::RunContext::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RunContext::benchmarkStarting
    linkageType: ''
    returnType: void
    signature: void RunContext::benchmarkStarting( BenchmarkInfo const& info )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::benchmarkEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' stats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5812
      start: 5810
    functionDepth: 1
    functionLinenumber: 5810
    functionLinenumberEnd: 5812
    functionName: Catch::RunContext::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RunContext::benchmarkEnded
    linkageType: ''
    returnType: void
    signature: void RunContext::benchmarkEnded( BenchmarkStats<> const& stats )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::benchmarkFailed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5815
      start: 5813
    functionDepth: 1
    functionLinenumber: 5813
    functionLinenumberEnd: 5815
    functionName: Catch::RunContext::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::RunContext::benchmarkFailed
    linkageType: ''
    returnType: void
    signature: void RunContext::benchmarkFailed( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - MessageInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5819
      start: 5817
    functionDepth: 0
    functionLinenumber: 5817
    functionLinenumberEnd: 5819
    functionName: Catch::RunContext::pushScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void RunContext::pushScopedMessage(MessageInfo const & message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    - Dst: std::remove
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - MessageInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5823
      start: 5821
    functionDepth: 0
    functionLinenumber: 5821
    functionLinenumberEnd: 5823
    functionName: Catch::RunContext::popScopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::remove
    - erase
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void RunContext::popScopedMessage(MessageInfo const & message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5826,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' builder'
    argTypes:
    - MessageBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5827
      start: 5825
    functionDepth: 1
    functionLinenumber: 5825
    functionLinenumberEnd: 5827
    functionName: Catch::RunContext::emplaceUnscopedMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void RunContext::emplaceUnscopedMessage( MessageBuilder&& builder )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5831,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5833
      start: 5829
    functionDepth: 0
    functionLinenumber: 5829
    functionLinenumberEnd: 5833
    functionName: Catch::RunContext::getCurrentTestName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string RunContext::getCurrentTestName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5837
      start: 5835
    functionDepth: 0
    functionLinenumber: 5835
    functionLinenumberEnd: 5837
    functionName: Catch::RunContext::getLastResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionResult
    signature: AssertionResult * RunContext::getLastResult() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5841
      start: 5839
    functionDepth: 0
    functionLinenumber: 5839
    functionLinenumberEnd: 5841
    functionName: Catch::RunContext::exceptionEarlyReported
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RunContext::exceptionEarlyReported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fatalErrorEncountered
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5845,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5850,1
    - Dst: Catch::RunContext::assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5853,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5853,1
    - Dst: Catch::RunContext::resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5854,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5858,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5859,1
    - Dst: SectionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5860,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5860,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5860,1
    - Dst: Catch::RunContext::sectionEndedEarly
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5861,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5861,1
    - Dst: handleUnfinishedSections
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5863,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5866,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5871,1
    - Dst: Catch::RunContext::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5872,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5874,1
    - Dst: testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5879,1
    - Dst: TestCaseStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5879,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5881,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5882,1
    - Dst: testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5885,1
    - Dst: TestRunStats
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - message
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5886
      start: 5843
    functionDepth: 2
    functionLinenumber: 5843
    functionLinenumberEnd: 5886
    functionName: Catch::RunContext::handleFatalErrorCondition
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::RunContext::assertionEnded
    - getTestCaseInfo
    - testRunEnded
    - testCaseEnded
    - empty
    - fatalErrorEncountered
    - SectionInfo
    - handleUnfinishedSections
    - std::string
    - TestRunStats
    - CATCH_MOVE
    - static_cast<std::string>
    - back
    - Catch::RunContext::sectionEnded
    - TestCaseStats
    - Catch::RunContext::resetAssertionInfo
    - Catch::RunContext::sectionEndedEarly
    linkageType: ''
    returnType: void
    signature: void RunContext::handleFatalErrorCondition( StringRef message )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5890
      start: 5888
    functionDepth: 0
    functionLinenumber: 5888
    functionLinenumberEnd: 5890
    functionName: Catch::RunContext::lastAssertionPassed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RunContext::lastAssertionPassed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::RunContext::resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5895,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5897
      start: 5892
    functionDepth: 1
    functionLinenumber: 5892
    functionLinenumberEnd: 5897
    functionName: Catch::RunContext::assertionPassed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::RunContext::resetAssertionInfo
    - clear
    linkageType: ''
    returnType: void
    signature: void RunContext::assertionPassed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5900,1
    - Dst: abortAfter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5901
      start: 5899
    functionDepth: 0
    functionLinenumber: 5899
    functionLinenumberEnd: 5901
    functionName: Catch::RunContext::aborting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - abortAfter
    - static_cast<std::size_t>
    linkageType: ''
    returnType: bool
    signature: bool RunContext::aborting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5904,1
    - Dst: sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5906,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5910,1
    - Dst: if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5914,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5914,1
    - Dst: Timer::start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5918,1
    - Dst: invokeActiveTestCase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5919,1
    - Dst: Timer::start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5922,1
    - Dst: invokeActiveTestCase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' redirectedCout'
    - ' redirectedCerr'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5925
      start: 5903
    functionDepth: 0
    functionLinenumber: 5903
    functionLinenumberEnd: 5925
    functionName: Catch::RunContext::runCurrentTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - getTestCaseInfo
    - sectionStarting
    - StringRef
    - Timer::start
    - invokeActiveTestCase
    - getPreferences
    - if
    linkageType: ''
    returnType: void
    signature: void RunContext::runCurrentTest(std::string & redirectedCout, std::string
      & redirectedCerr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5932
      start: 5930
    functionDepth: 0
    functionLinenumber: 5930
    functionLinenumberEnd: 5932
    functionName: CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON (TestFailureException&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5934
      start: 5932
    functionDepth: 0
    functionLinenumber: 5932
    functionLinenumberEnd: 5934
    functionName: CATCH_CATCH_ANON
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CATCH_CATCH_ANON (TestSkipException&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invoke
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5965
      start: 5954
    functionDepth: 1
    functionLinenumber: 5954
    functionLinenumberEnd: 5965
    functionName: RunContext::invokeActiveTestCase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - invoke
    linkageType: ''
    returnType: void
    signature: void RunContext::invokeActiveTestCase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5970,1
    - Dst: rend
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5971,1
    - Dst: sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5974,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5974,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5976
      start: 5967
    functionDepth: 1
    functionLinenumber: 5967
    functionLinenumberEnd: 5976
    functionName: RunContext::handleUnfinishedSections
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sectionEnded
    - rbegin
    - rend
    - CATCH_MOVE
    - clear
    linkageType: ''
    returnType: void
    signature: void RunContext::handleUnfinishedSections()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isFalseTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5983,1
    - Dst: getResult
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5984,1
    - Dst: assertionPassed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5988,1
    - Dst: RunContext::reportExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5991,1
    - Dst: RunContext::reportExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5995,1
    - Dst: RunContext::populateReaction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5996,1
    - Dst: resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:5998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' info'
    - ' expr'
    - ' reaction'
    argTypes:
    - AssertionInfo
    - ITransientExpression
    - AssertionReaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5999
      start: 5978
    functionDepth: 1
    functionLinenumber: 5978
    functionLinenumberEnd: 5999
    functionName: RunContext::handleExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResult
    - assertionPassed
    - RunContext::populateReaction
    - RunContext::reportExpr
    - isFalseTest
    - resetAssertionInfo
    linkageType: ''
    returnType: void
    signature: "void RunContext::handleExpr(\n        AssertionInfo const& info,\n
      \       ITransientExpression const& expr,\n        AssertionReaction& reaction\n
      \   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6009,1
    - Dst: assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6012,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - info
    - resultType
    - expr
    - negated
    argTypes:
    - AssertionInfo
    - ResultWas::OfType
    - ITransientExpression*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6013
      start: 6000
    functionDepth: 1
    functionLinenumber: 6000
    functionLinenumberEnd: 6013
    functionName: RunContext::reportExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - CATCH_MOVE
    - assertionEnded
    linkageType: ''
    returnType: void
    signature: "void RunContext::reportExpr(\n            AssertionInfo const &info,\n
      \           ResultWas::OfType resultType,\n            ITransientExpression
      const *expr,\n            bool negated )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6024,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6026,1
    - Dst: AssertionResult::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6028,1
    - Dst: assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6029,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6029,1
    - Dst: RunContext::populateReaction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6031,1
    - Dst: resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' info'
    - resultType
    - message
    - ' reaction'
    argTypes:
    - AssertionInfo
    - ResultWas::OfType
    - StringRef
    - AssertionReaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6038
      start: 6015
    functionDepth: 1
    functionLinenumber: 6015
    functionLinenumberEnd: 6038
    functionName: RunContext::handleMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assertionEnded
    - RunContext::populateReaction
    - CATCH_MOVE
    - static_cast<std::string>
    - AssertionResult::isOk
    - resetAssertionInfo
    linkageType: ''
    returnType: void
    signature: "void RunContext::handleMessage(\n            AssertionInfo const&
      info,\n            ResultWas::OfType resultType,\n            StringRef message,\n
      \           AssertionReaction& reaction\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunContext::handleNonExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' info'
    - ' reaction'
    argTypes:
    - AssertionInfo
    - AssertionReaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6044
      start: 6039
    functionDepth: 1
    functionLinenumber: 6039
    functionLinenumberEnd: 6044
    functionName: RunContext::handleUnexpectedExceptionNotThrown
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - RunContext::handleNonExpr
    linkageType: ''
    returnType: void
    signature: "void RunContext::handleUnexpectedExceptionNotThrown(\n            AssertionInfo
      const& info,\n            AssertionReaction& reaction\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6054,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6055,1
    - Dst: assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6056,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6056,1
    - Dst: RunContext::populateReaction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6057,1
    - Dst: resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' info'
    - ' message'
    - ' reaction'
    argTypes:
    - AssertionInfo
    - std::string
    - AssertionReaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6059
      start: 6046
    functionDepth: 1
    functionLinenumber: 6046
    functionLinenumberEnd: 6059
    functionName: RunContext::handleUnexpectedInflightException
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - RunContext::populateReaction
    - CATCH_MOVE
    - resetAssertionInfo
    - assertionEnded
    linkageType: ''
    returnType: void
    signature: "void RunContext::handleUnexpectedInflightException(\n            AssertionInfo
      const& info,\n            std::string&& message,\n            AssertionReaction&
      reaction\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shouldDebugBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6062,1
    - Dst: aborting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' reaction'
    argTypes:
    - AssertionReaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6064
      start: 6061
    functionDepth: 0
    functionLinenumber: 6061
    functionLinenumberEnd: 6064
    functionName: RunContext::populateReaction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - shouldDebugBreak
    - aborting
    linkageType: ''
    returnType: void
    signature: void RunContext::populateReaction( AssertionReaction& reaction )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6074,1
    - Dst: assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6075,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6075,1
    - Dst: resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - AssertionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6077
      start: 6066
    functionDepth: 1
    functionLinenumber: 6066
    functionLinenumberEnd: 6077
    functionName: RunContext::handleIncomplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - resetAssertionInfo
    - assertionEnded
    linkageType: ''
    returnType: void
    signature: "void RunContext::handleIncomplete(\n            AssertionInfo const&
      info\n    )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6086,1
    - Dst: AssertionResult::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6088,1
    - Dst: assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6089,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6089,1
    - Dst: RunContext::populateReaction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6090,1
    - Dst: resetAssertionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - info
    - resultType
    - reaction
    argTypes:
    - AssertionInfo
    - ResultWas::OfType
    - AssertionReaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6092
      start: 6078
    functionDepth: 1
    functionLinenumber: 6078
    functionLinenumberEnd: 6092
    functionName: RunContext::handleNonExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - assertionEnded
    - RunContext::populateReaction
    - CATCH_MOVE
    - AssertionResult::isOk
    - resetAssertionInfo
    linkageType: ''
    returnType: void
    signature: "void RunContext::handleNonExpr(\n            AssertionInfo const &info,\n
      \           ResultWas::OfType resultType,\n            AssertionReaction &reaction\n
      \   )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6096,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6100
      start: 6095
    functionDepth: 1
    functionLinenumber: 6095
    functionLinenumberEnd: 6100
    functionName: getResultCapture
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 32
    functionsReached:
    - getCurrentContext
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: IResultCapture
    signature: IResultCapture & getResultCapture()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sharedRng
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6103,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6104
      start: 6102
    functionDepth: 1
    functionLinenumber: 6102
    functionLinenumberEnd: 6104
    functionName: seedRng
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - sharedRng
    - rngSeed
    linkageType: ''
    returnType: void
    signature: void seedRng(IConfig const& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrentContext
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6108
      start: 6106
    functionDepth: 0
    functionLinenumber: 6106
    functionLinenumberEnd: 6108
    functionName: rngSeed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getCurrentContext
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rngSeed()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6117,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6119,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6125
      start: 6116
    functionDepth: 2
    functionLinenumber: 6116
    functionLinenumberEnd: 6125
    functionName: Catch::Section::Section
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - CATCH_MOVE
    - start
    linkageType: ''
    returnType: void
    signature: void Section::Section( SectionInfo&& info )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6130,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6132,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6138,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' _lineInfo'
    - _name
    argTypes:
    - SourceLineInfo
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 6127
    functionDepth: 2
    functionLinenumber: 6127
    functionLinenumberEnd: 6142
    functionName: Catch::Section::Section
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - static_cast<std::size_t>
    - static_cast<std::string>
    - start
    linkageType: ''
    returnType: void
    signature: "void Section::Section( SourceLineInfo const& _lineInfo,\n                      StringRef
      _name,\n                      const char* const )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6146,1
    - Dst: getElapsedSeconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6146,1
    - Dst: uncaught_exceptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6147,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6148,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6148,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6150,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6144
    functionDepth: 2
    functionLinenumber: 6144
    functionLinenumberEnd: 6153
    functionName: Section::~Section()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - getElapsedSeconds
    - CATCH_MOVE
    - uncaught_exceptions
    linkageType: ''
    returnType: void
    signature: void Section::~Section()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6158
      start: 6156
    functionDepth: 0
    functionLinenumber: 6156
    functionLinenumberEnd: 6158
    functionName: Section::operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Section::operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6117,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6119,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6125
      start: 6116
    functionDepth: 2
    functionLinenumber: 6116
    functionLinenumberEnd: 6125
    functionName: Catch::Section::Section
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - CATCH_MOVE
    - start
    linkageType: ''
    returnType: void
    signature: void Section::Section( SectionInfo&& info )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6130,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6132,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6138,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' _lineInfo'
    - _name
    argTypes:
    - SourceLineInfo
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 6127
    functionDepth: 2
    functionLinenumber: 6127
    functionLinenumberEnd: 6142
    functionName: Catch::Section::Section
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - static_cast<std::size_t>
    - static_cast<std::string>
    - start
    linkageType: ''
    returnType: void
    signature: "void Section::Section( SourceLineInfo const& _lineInfo,\n                      StringRef
      _name,\n                      const char* const )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6146,1
    - Dst: getElapsedSeconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6146,1
    - Dst: uncaught_exceptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6147,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6148,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6148,1
    - Dst: getResultCapture
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6150,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6144
    functionDepth: 2
    functionLinenumber: 6144
    functionLinenumberEnd: 6153
    functionName: Section::~Section()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultCapture
    - getElapsedSeconds
    - CATCH_MOVE
    - uncaught_exceptions
    linkageType: ''
    returnType: void
    signature: void Section::~Section()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6158
      start: 6156
    functionDepth: 0
    functionLinenumber: 6156
    functionLinenumberEnd: 6158
    functionName: Section::operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Section::operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<ISingleton*>::vector<ISingleton*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6170
    functionDepth: 0
    functionLinenumber: 6170
    functionLinenumberEnd: 6175
    functionName: Catch::getSingletons
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector<ISingleton*>::vector<ISingleton*>
    linkageType: ''
    returnType: auto
    signature: auto getSingletons() -> std::vector<ISingleton*>*&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<ISingleton*>::vector<ISingleton*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6170
    functionDepth: 0
    functionLinenumber: 6170
    functionLinenumberEnd: 6175
    functionName: Catch::getSingletons
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector<ISingleton*>::vector<ISingleton*>
    linkageType: ''
    returnType: auto
    signature: auto getSingletons() -> std::vector<ISingleton*>*&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6178
      start: 6178
    functionDepth: 0
    functionLinenumber: 6178
    functionLinenumberEnd: 6178
    functionName: ISingleton::~ISingleton()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ISingleton::~ISingleton()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getSingletons
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - singleton
    argTypes:
    - ISingleton*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6182
      start: 6180
    functionDepth: 1
    functionLinenumber: 6180
    functionLinenumberEnd: 6182
    functionName: Catch::addSingleton
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getSingletons
    linkageType: ''
    returnType: void
    signature: void addSingleton(ISingleton* singleton )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getSingletons
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6189
      start: 6183
    functionDepth: 1
    functionLinenumber: 6183
    functionLinenumberEnd: 6189
    functionName: Catch::cleanupSingletons
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::getSingletons
    linkageType: ''
    returnType: void
    signature: void cleanupSingletons()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<ISingleton*>::vector<ISingleton*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6170
    functionDepth: 0
    functionLinenumber: 6170
    functionLinenumberEnd: 6175
    functionName: Catch::getSingletons
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::vector<ISingleton*>::vector<ISingleton*>
    linkageType: ''
    returnType: auto
    signature: auto getSingletons() -> std::vector<ISingleton*>*&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<ISingleton*>::vector<ISingleton*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6175
      start: 6170
    functionDepth: 0
    functionLinenumber: 6170
    functionLinenumberEnd: 6175
    functionName: Catch::getSingletons
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::vector<ISingleton*>::vector<ISingleton*>
    linkageType: ''
    returnType: auto
    signature: auto getSingletons() -> std::vector<ISingleton*>*&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6178
      start: 6178
    functionDepth: 0
    functionLinenumber: 6178
    functionLinenumberEnd: 6178
    functionName: ISingleton::~ISingleton()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ISingleton::~ISingleton()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getSingletons
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - singleton
    argTypes:
    - ISingleton*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6182
      start: 6180
    functionDepth: 1
    functionLinenumber: 6180
    functionLinenumberEnd: 6182
    functionName: Catch::addSingleton
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::getSingletons
    linkageType: ''
    returnType: void
    signature: void addSingleton(ISingleton* singleton )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getSingletons
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6189
      start: 6183
    functionDepth: 1
    functionLinenumber: 6183
    functionLinenumberEnd: 6189
    functionName: Catch::cleanupSingletons
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::getSingletons
    linkageType: ''
    returnType: void
    signature: void cleanupSingletons()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strcmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6202
      start: 6200
    functionDepth: 0
    functionLinenumber: 6200
    functionLinenumberEnd: 6202
    functionName: SourceLineInfo::operator == ( SourceLineInfo const& other ) const
      noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::strcmp
    linkageType: ''
    returnType: bool
    signature: bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strcmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6207
      start: 6203
    functionDepth: 0
    functionLinenumber: 6203
    functionLinenumberEnd: 6207
    functionName: SourceLineInfo::operator < ( SourceLineInfo const& other ) const
      noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::strcmp
    linkageType: ''
    returnType: bool
    signature: bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' info'
    argTypes:
    - std::ostream
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6216
      start: 6209
    functionDepth: 0
    functionLinenumber: 6209
    functionLinenumberEnd: 6216
    functionName: '& operator << ( std::ostream& os, SourceLineInfo const& info )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << ( std::ostream& os, SourceLineInfo const&
      info )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strcmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6202
      start: 6200
    functionDepth: 0
    functionLinenumber: 6200
    functionLinenumberEnd: 6202
    functionName: SourceLineInfo::operator == ( SourceLineInfo const& other ) const
      noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::strcmp
    linkageType: ''
    returnType: bool
    signature: bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strcmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6207
      start: 6203
    functionDepth: 0
    functionLinenumber: 6203
    functionLinenumberEnd: 6207
    functionName: SourceLineInfo::operator < ( SourceLineInfo const& other ) const
      noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::strcmp
    linkageType: ''
    returnType: bool
    signature: bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' os'
    - ' info'
    argTypes:
    - std::ostream
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6216
      start: 6209
    functionDepth: 0
    functionLinenumber: 6209
    functionLinenumberEnd: 6216
    functionName: '& operator << ( std::ostream& os, SourceLineInfo const& info )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << ( std::ostream& os, SourceLineInfo const&
      info )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exception'
    argTypes:
    - std::exception_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6228
      start: 6225
    functionDepth: 0
    functionLinenumber: 6225
    functionLinenumberEnd: 6228
    functionName: Catch::StartupExceptionRegistry::add
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void StartupExceptionRegistry::add( std::exception_ptr const& exception
      ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6236
      start: 6234
    functionDepth: 0
    functionLinenumber: 6234
    functionLinenumberEnd: 6236
    functionName: '& StartupExceptionRegistry::getExceptions() const noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::exception_ptr>
    signature: std::vector<std::exception_ptr> & StartupExceptionRegistry::getExceptions()
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exception'
    argTypes:
    - std::exception_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6228
      start: 6225
    functionDepth: 0
    functionLinenumber: 6225
    functionLinenumberEnd: 6228
    functionName: Catch::StartupExceptionRegistry::add
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void StartupExceptionRegistry::add( std::exception_ptr const& exception
      ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6236
      start: 6234
    functionDepth: 0
    functionLinenumber: 6234
    functionLinenumberEnd: 6236
    functionName: '& StartupExceptionRegistry::getExceptions() const noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::exception_ptr>
    signature: std::vector<std::exception_ptr> & StartupExceptionRegistry::getExceptions()
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6251
      start: 6251
    functionDepth: 0
    functionLinenumber: 6251
    functionLinenumberEnd: 6251
    functionName: Catch::cout
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & cout()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6252
      start: 6252
    functionDepth: 0
    functionLinenumber: 6252
    functionLinenumberEnd: 6252
    functionName: Catch::cerr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & cerr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6253
      start: 6253
    functionDepth: 0
    functionLinenumber: 6253
    functionLinenumberEnd: 6253
    functionName: Catch::clog
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & clog()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6251
      start: 6251
    functionDepth: 0
    functionLinenumber: 6251
    functionLinenumberEnd: 6251
    functionName: Catch::cout
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & cout()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6252
      start: 6252
    functionDepth: 0
    functionLinenumber: 6252
    functionLinenumberEnd: 6252
    functionName: Catch::cerr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & cerr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6253
      start: 6253
    functionDepth: 0
    functionLinenumber: 6253
    functionLinenumberEnd: 6253
    functionName: Catch::clog
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & clog()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: equal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' prefix'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6269
      start: 6267
    functionDepth: 1
    functionLinenumber: 6267
    functionLinenumberEnd: 6269
    functionName: Catch::startsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - equal
    - end
    - size
    - begin
    linkageType: ''
    returnType: bool
    signature: bool startsWith( std::string const& s, std::string const& prefix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - prefix
    argTypes:
    - StringRef
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6272
      start: 6270
    functionDepth: 0
    functionLinenumber: 6270
    functionLinenumberEnd: 6272
    functionName: Catch::startsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: bool
    signature: bool startsWith( StringRef s, char prefix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: equal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: rbegin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: rend
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: rbegin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' suffix'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6275
      start: 6273
    functionDepth: 1
    functionLinenumber: 6273
    functionLinenumberEnd: 6275
    functionName: Catch::endsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - equal
    - rend
    - rbegin
    - size
    linkageType: ''
    returnType: bool
    signature: bool endsWith( std::string const& s, std::string const& suffix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6277,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - suffix
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6278
      start: 6276
    functionDepth: 1
    functionLinenumber: 6276
    functionLinenumberEnd: 6278
    functionName: Catch::endsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - size
    linkageType: ''
    returnType: bool
    signature: bool endsWith( std::string const& s, char suffix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' infix'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6281
      start: 6279
    functionDepth: 0
    functionLinenumber: 6279
    functionLinenumberEnd: 6281
    functionName: Catch::contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: bool
    signature: bool contains( std::string const& s, std::string const& infix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6286
      start: 6282
    functionDepth: 1
    functionLinenumber: 6282
    functionLinenumberEnd: 6286
    functionName: Catch::toLowerInPlace
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::toLower
    linkageType: ''
    returnType: void
    signature: void toLowerInPlace( std::string& s )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::toLowerInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6291
      start: 6287
    functionDepth: 2
    functionLinenumber: 6287
    functionLinenumberEnd: 6291
    functionName: Catch::toLower
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::toLowerInPlace
    linkageType: ''
    returnType: std::string
    signature: std::string toLower( std::string const& s )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6293,1
    - Dst: std::tolower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6293,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6294
      start: 6292
    functionDepth: 0
    functionLinenumber: 6292
    functionLinenumberEnd: 6294
    functionName: Catch::toLower
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - std::tolower
    - static_cast<unsigned char>
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char toLower(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_first_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6298,1
    - Dst: find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6299,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6301,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6302
      start: 6296
    functionDepth: 0
    functionLinenumber: 6296
    functionLinenumberEnd: 6302
    functionName: Catch::trim
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - find_first_not_of
    - substr
    - std::string
    - find_last_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string trim( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6309,1
    - Dst: is_ws
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6309,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6310,1
    - Dst: is_ws
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6311,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6314
      start: 6304
    functionDepth: 1
    functionLinenumber: 6304
    functionLinenumberEnd: 6314
    functionName: Catch::trim
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - is_ws
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef trim(StringRef ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6317,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6322,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6323,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6326,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6326,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6326,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6326,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6328,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6330,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6331,1
    - Dst: std::string::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6332,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6336,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6337,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' str'
    - ' replaceThis'
    - ' withThis'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6340
      start: 6316
    functionDepth: 1
    functionLinenumber: 6316
    functionLinenumberEnd: 6340
    functionName: Catch::replaceInPlace
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - append
    - find
    - reserve
    - CATCH_MOVE
    - std::string::find
    - clear
    - size
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool replaceInPlace( std::string& str, std::string const& replaceThis,
      std::string const& withThis )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6345,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6348,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6348,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6352,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6353,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6353,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - str
    - delimiter
    argTypes:
    - StringRef
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6355
      start: 6342
    functionDepth: 1
    functionLinenumber: 6342
    functionLinenumberEnd: 6355
    functionName: Catch::splitStringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - StringRef::size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> splitStringRef( StringRef str, char delimiter
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - ' pluraliser'
    argTypes:
    - std::ostream
    - pluralise
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6362
      start: 6357
    functionDepth: 0
    functionLinenumber: 6357
    functionLinenumberEnd: 6362
    functionName: '& operator << ( std::ostream& os, pluralise const& pluraliser )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << ( std::ostream& os, pluralise const& pluraliser
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: equal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' prefix'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6269
      start: 6267
    functionDepth: 1
    functionLinenumber: 6267
    functionLinenumberEnd: 6269
    functionName: Catch::startsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - equal
    - end
    - size
    - begin
    linkageType: ''
    returnType: bool
    signature: bool startsWith( std::string const& s, std::string const& prefix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - prefix
    argTypes:
    - StringRef
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6272
      start: 6270
    functionDepth: 0
    functionLinenumber: 6270
    functionLinenumberEnd: 6272
    functionName: Catch::startsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: bool
    signature: bool startsWith( StringRef s, char prefix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: equal
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: rbegin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: rend
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    - Dst: rbegin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' suffix'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6275
      start: 6273
    functionDepth: 1
    functionLinenumber: 6273
    functionLinenumberEnd: 6275
    functionName: Catch::endsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - equal
    - rend
    - rbegin
    - size
    linkageType: ''
    returnType: bool
    signature: bool endsWith( std::string const& s, std::string const& suffix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6277,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - suffix
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6278
      start: 6276
    functionDepth: 1
    functionLinenumber: 6276
    functionLinenumberEnd: 6278
    functionName: Catch::endsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - size
    linkageType: ''
    returnType: bool
    signature: bool endsWith( std::string const& s, char suffix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' infix'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6281
      start: 6279
    functionDepth: 0
    functionLinenumber: 6279
    functionLinenumberEnd: 6281
    functionName: Catch::contains
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: bool
    signature: bool contains( std::string const& s, std::string const& infix )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6286
      start: 6282
    functionDepth: 3
    functionLinenumber: 6282
    functionLinenumberEnd: 6286
    functionName: Catch::toLowerInPlace
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::toLower
    linkageType: ''
    returnType: void
    signature: void toLowerInPlace( std::string& s )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::toLowerInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6291
      start: 6287
    functionDepth: 2
    functionLinenumber: 6287
    functionLinenumberEnd: 6291
    functionName: Catch::toLower
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::toLowerInPlace
    linkageType: ''
    returnType: std::string
    signature: std::string toLower( std::string const& s )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6293,1
    - Dst: std::tolower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6293,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6294
      start: 6292
    functionDepth: 0
    functionLinenumber: 6292
    functionLinenumberEnd: 6294
    functionName: Catch::toLower
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - std::tolower
    - static_cast<unsigned char>
    - static_cast<char>
    linkageType: ''
    returnType: char
    signature: char toLower(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_first_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6298,1
    - Dst: find_last_not_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6299,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6301,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6302
      start: 6296
    functionDepth: 0
    functionLinenumber: 6296
    functionLinenumberEnd: 6302
    functionName: Catch::trim
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - find_first_not_of
    - substr
    - std::string
    - find_last_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string trim( std::string const& str )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6309,1
    - Dst: is_ws
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6309,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6310,1
    - Dst: is_ws
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6311,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6314
      start: 6304
    functionDepth: 1
    functionLinenumber: 6304
    functionLinenumberEnd: 6314
    functionName: Catch::trim
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - is_ws
    - StringRef::substr
    - StringRef::size
    linkageType: ''
    returnType: StringRef
    signature: StringRef trim(StringRef ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6317,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6322,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6323,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6326,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6326,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6326,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6326,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6328,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6330,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6331,1
    - Dst: std::string::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6332,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6336,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6337,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' str'
    - ' replaceThis'
    - ' withThis'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6340
      start: 6316
    functionDepth: 1
    functionLinenumber: 6316
    functionLinenumberEnd: 6340
    functionName: Catch::replaceInPlace
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - append
    - find
    - reserve
    - CATCH_MOVE
    - std::string::find
    - clear
    - size
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool replaceInPlace( std::string& str, std::string const& replaceThis,
      std::string const& withThis )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6345,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6348,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6348,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6352,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6353,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6353,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - str
    - delimiter
    argTypes:
    - StringRef
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6355
      start: 6342
    functionDepth: 1
    functionLinenumber: 6342
    functionLinenumberEnd: 6355
    functionName: Catch::splitStringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - StringRef::size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<StringRef>
    signature: std::vector<StringRef> splitStringRef( StringRef str, char delimiter
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - ' pluraliser'
    argTypes:
    - std::ostream
    - pluralise
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6362
      start: 6357
    functionDepth: 0
    functionLinenumber: 6357
    functionLinenumberEnd: 6362
    functionName: '& operator << ( std::ostream& os, pluralise const& pluraliser )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << ( std::ostream& os, pluralise const& pluraliser
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rawChars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6376
      start: 6374
    functionDepth: 0
    functionLinenumber: 6374
    functionLinenumberEnd: 6376
    functionName: Catch::StringRef::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::strlen
    linkageType: ''
    returnType: void
    signature: void StringRef::StringRef( char const* rawChars ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6381,1
    - Dst: strncmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6384
      start: 6379
    functionDepth: 0
    functionLinenumber: 6379
    functionLinenumberEnd: 6384
    functionName: StringRef::operator<(StringRef rhs) const noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool StringRef::operator<(StringRef rhs) const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6388,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6405
      start: 6386
    functionDepth: 0
    functionLinenumber: 6386
    functionLinenumberEnd: 6405
    functionName: Catch::StringRef::compare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - std::min
    linkageType: ''
    returnType: int
    signature: int StringRef::compare( StringRef rhs ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6408,1
    - Dst: StringRef::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6408,1
    - Dst: static_cast<std::streamsize>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6408,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - str
    argTypes:
    - std::ostream
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6409
      start: 6407
    functionDepth: 2
    functionLinenumber: 6407
    functionLinenumberEnd: 6409
    functionName: operator << ( std::ostream& os, StringRef str ) -> std::ostream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - write
    - static_cast<std::streamsize>
    - StringRef::size
    - StringRef::data
    linkageType: ''
    returnType: auto
    signature: auto operator << ( std::ostream& os, StringRef str ) -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6413,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6413,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6417
      start: 6411
    functionDepth: 1
    functionLinenumber: 6411
    functionLinenumberEnd: 6417
    functionName: operator+(StringRef lhs, StringRef rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string operator+(StringRef lhs, StringRef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6420,1
    - Dst: StringRef::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6420,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::string
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6422
      start: 6419
    functionDepth: 1
    functionLinenumber: 6419
    functionLinenumberEnd: 6422
    functionName: operator+=( std::string& lhs, StringRef rhs ) -> std::string&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::data
    - StringRef::size
    - append
    linkageType: ''
    returnType: auto
    signature: auto operator+=( std::string& lhs, StringRef rhs ) -> std::string&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rawChars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6376
      start: 6374
    functionDepth: 0
    functionLinenumber: 6374
    functionLinenumberEnd: 6376
    functionName: Catch::StringRef::StringRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::strlen
    linkageType: ''
    returnType: void
    signature: void StringRef::StringRef( char const* rawChars ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6381,1
    - Dst: strncmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6384
      start: 6379
    functionDepth: 0
    functionLinenumber: 6379
    functionLinenumberEnd: 6384
    functionName: StringRef::operator<(StringRef rhs) const noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool StringRef::operator<(StringRef rhs) const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6388,1
    - Dst: std::min
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6405
      start: 6386
    functionDepth: 0
    functionLinenumber: 6386
    functionLinenumberEnd: 6405
    functionName: Catch::StringRef::compare
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - std::min
    linkageType: ''
    returnType: int
    signature: int StringRef::compare( StringRef rhs ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6408,1
    - Dst: StringRef::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6408,1
    - Dst: static_cast<std::streamsize>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6408,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - str
    argTypes:
    - std::ostream
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6409
      start: 6407
    functionDepth: 2
    functionLinenumber: 6407
    functionLinenumberEnd: 6409
    functionName: operator << ( std::ostream& os, StringRef str ) -> std::ostream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - write
    - static_cast<std::streamsize>
    - StringRef::size
    - StringRef::data
    linkageType: ''
    returnType: auto
    signature: auto operator << ( std::ostream& os, StringRef str ) -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6413,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6413,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6417
      start: 6411
    functionDepth: 1
    functionLinenumber: 6411
    functionLinenumberEnd: 6417
    functionName: operator+(StringRef lhs, StringRef rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string operator+(StringRef lhs, StringRef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6420,1
    - Dst: StringRef::data
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6420,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - std::string
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6422
      start: 6419
    functionDepth: 1
    functionLinenumber: 6419
    functionLinenumberEnd: 6422
    functionName: operator+=( std::string& lhs, StringRef rhs ) -> std::string&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::data
    - StringRef::size
    - append
    linkageType: ''
    returnType: auto
    signature: auto operator+=( std::string& lhs, StringRef rhs ) -> std::string&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6430
      start: 6430
    functionDepth: 0
    functionLinenumber: 6430
    functionLinenumberEnd: 6430
    functionName: TagAliasRegistry::~TagAliasRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TagAliasRegistry::~TagAliasRegistry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TagAliasRegistry::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6433,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' alias'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6432
    functionDepth: 1
    functionLinenumber: 6432
    functionLinenumberEnd: 6438
    functionName: Catch::TagAliasRegistry::find
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - end
    - Catch::TagAliasRegistry::find
    linkageType: ''
    returnType: TagAlias
    signature: TagAlias * TagAliasRegistry::find( std::string const& alias ) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6443,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6445,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6447,1
    - Dst: first::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' unexpandedTestSpec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6451
      start: 6440
    functionDepth: 1
    functionLinenumber: 6440
    functionLinenumberEnd: 6451
    functionName: Catch::TagAliasRegistry::expandAliases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::substr
    - first::size
    - std::string::find
    linkageType: ''
    returnType: std::string
    signature: std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec
      ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6454,1
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6454,1
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6454,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6457,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6457,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6457,1
    - Dst: TagAlias
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6457,1
    - Dst: Catch::TagAliasRegistry::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' alias'
    - ' tag'
    - ' lineInfo'
    argTypes:
    - std::string
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6461
      start: 6453
    functionDepth: 2
    functionLinenumber: 6453
    functionLinenumberEnd: 6461
    functionName: Catch::TagAliasRegistry::add
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    - CATCH_ENFORCE
    - endsWith
    - insert
    - startsWith
    - TagAlias
    - Catch::TagAliasRegistry::find
    linkageType: ''
    returnType: void
    signature: void TagAliasRegistry::add( std::string const& alias, std::string const&
      tag, SourceLineInfo const& lineInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6463
      start: 6463
    functionDepth: 0
    functionLinenumber: 6463
    functionLinenumberEnd: 6463
    functionName: ITagAliasRegistry::~ITagAliasRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITagAliasRegistry::~ITagAliasRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6467
      start: 6465
    functionDepth: 0
    functionLinenumber: 6465
    functionLinenumberEnd: 6467
    functionName: '& ITagAliasRegistry::get()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getRegistryHub
    linkageType: ''
    returnType: ITagAliasRegistry
    signature: ITagAliasRegistry & ITagAliasRegistry::get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6430
      start: 6430
    functionDepth: 0
    functionLinenumber: 6430
    functionLinenumberEnd: 6430
    functionName: TagAliasRegistry::~TagAliasRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TagAliasRegistry::~TagAliasRegistry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TagAliasRegistry::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6433,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' alias'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6432
    functionDepth: 1
    functionLinenumber: 6432
    functionLinenumberEnd: 6438
    functionName: Catch::TagAliasRegistry::find
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - end
    - Catch::TagAliasRegistry::find
    linkageType: ''
    returnType: TagAlias
    signature: TagAlias * TagAliasRegistry::find( std::string const& alias ) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6443,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6445,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6447,1
    - Dst: first::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' unexpandedTestSpec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6451
      start: 6440
    functionDepth: 1
    functionLinenumber: 6440
    functionLinenumberEnd: 6451
    functionName: Catch::TagAliasRegistry::expandAliases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::substr
    - first::size
    - std::string::find
    linkageType: ''
    returnType: std::string
    signature: std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec
      ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6454,1
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6454,1
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6454,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6457,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6457,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6457,1
    - Dst: TagAlias
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6457,1
    - Dst: Catch::TagAliasRegistry::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' alias'
    - ' tag'
    - ' lineInfo'
    argTypes:
    - std::string
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6461
      start: 6453
    functionDepth: 2
    functionLinenumber: 6453
    functionLinenumberEnd: 6461
    functionName: Catch::TagAliasRegistry::add
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    - CATCH_ENFORCE
    - endsWith
    - insert
    - startsWith
    - TagAlias
    - Catch::TagAliasRegistry::find
    linkageType: ''
    returnType: void
    signature: void TagAliasRegistry::add( std::string const& alias, std::string const&
      tag, SourceLineInfo const& lineInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6463
      start: 6463
    functionDepth: 0
    functionLinenumber: 6463
    functionLinenumberEnd: 6463
    functionName: ITagAliasRegistry::~ITagAliasRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITagAliasRegistry::~ITagAliasRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6467
      start: 6465
    functionDepth: 0
    functionLinenumber: 6465
    functionLinenumberEnd: 6467
    functionName: '& ITagAliasRegistry::get()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getRegistryHub
    linkageType: ''
    returnType: ITagAliasRegistry
    signature: ITagAliasRegistry & ITagAliasRegistry::get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - seed
    argTypes:
    - hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6475
      start: 6475
    functionDepth: 0
    functionLinenumber: 6475
    functionLinenumberEnd: 6475
    functionName: Catch::TestCaseInfoHasher::TestCaseInfoHasher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestCaseInfoHasher::TestCaseInfoHasher( hash_t seed )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6497,1
    - Dst: static_cast<uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6500
      start: 6477
    functionDepth: 0
    functionLinenumber: 6477
    functionLinenumberEnd: 6500
    functionName: TestCaseInfoHasher::operator()( TestCaseInfo const& t ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TestCaseInfoHasher::operator()( TestCaseInfo const& t ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - seed
    argTypes:
    - hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6475
      start: 6475
    functionDepth: 0
    functionLinenumber: 6475
    functionLinenumberEnd: 6475
    functionName: Catch::TestCaseInfoHasher::TestCaseInfoHasher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestCaseInfoHasher::TestCaseInfoHasher( hash_t seed )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6497,1
    - Dst: static_cast<uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6500
      start: 6477
    functionDepth: 0
    functionLinenumber: 6477
    functionLinenumberEnd: 6500
    functionName: TestCaseInfoHasher::operator()( TestCaseInfo const& t ) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TestCaseInfoHasher::operator()( TestCaseInfo const& t ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6521,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6522,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6523,1
    - Dst: auto::tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6532
      start: 6512
    functionDepth: 1
    functionLinenumber: 6512
    functionLinenumberEnd: 6532
    functionName: Catch::enforceNoDuplicateTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - getTestCaseInfo
    - std::set::insert
    - auto::tagsAsString
    linkageType: ''
    returnType: void
    signature: "void enforceNoDuplicateTestCases(\n            std::vector<TestCaseHandle>
      const& tests )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6537,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6537,1
    - Dst: Catch::isThrowSafe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' testCase'
    - ' testSpec'
    - ' config'
    argTypes:
    - TestCaseHandle
    - TestSpec
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6539
      start: 6534
    functionDepth: 1
    functionLinenumber: 6534
    functionLinenumberEnd: 6539
    functionName: Catch::matchTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isThrowSafe
    - getTestCaseInfo
    - matches
    linkageType: ''
    returnType: bool
    signature: "bool matchTest( TestCaseHandle const& testCase,\n                               TestSpec
      const& testSpec,\n                               IConfig const& config )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6521,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6522,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6523,1
    - Dst: auto::tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6532
      start: 6512
    functionDepth: 1
    functionLinenumber: 6512
    functionLinenumberEnd: 6532
    functionName: Catch::enforceNoDuplicateTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - getTestCaseInfo
    - std::set::insert
    - auto::tagsAsString
    linkageType: ''
    returnType: void
    signature: "void enforceNoDuplicateTestCases(\n            std::vector<TestCaseHandle>
      const& tests )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6537,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6537,1
    - Dst: Catch::isThrowSafe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' testCase'
    - ' testSpec'
    - ' config'
    argTypes:
    - TestCaseHandle
    - TestSpec
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6539
      start: 6534
    functionDepth: 1
    functionLinenumber: 6534
    functionLinenumberEnd: 6539
    functionName: Catch::matchTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isThrowSafe
    - getTestCaseInfo
    - matches
    linkageType: ''
    returnType: bool
    signature: "bool matchTest( TestCaseHandle const& testCase,\n                               TestSpec
      const& testSpec,\n                               IConfig const& config )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: runOrder
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6544,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6550,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6551,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6552,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6554,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6554,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6562,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6564,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6564,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6567,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6567,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6567,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6570,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6570,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6571,1
    - Dst: second::getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6574,1
    - Dst: second::getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6575,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6581,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6581,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6584,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - ' config'
    - ' unsortedTestCases'
    argTypes:
    - IConfig
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6592
      start: 6543
    functionDepth: 1
    functionLinenumber: 6543
    functionLinenumberEnd: 6592
    functionName: Catch::sortTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - h
    - getTestCaseInfo
    - second::getTestCaseInfo
    - std::vector::size
    - std::vector::push_back
    - std::vector::emplace_back
    - rngSeed
    - std::vector::begin
    - CATCH_INTERNAL_ERROR
    - size
    - std::vector::reserve
    - std::vector::end
    - runOrder
    - std::sort
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> sortTests( IConfig const& config, std::vector<TestCaseHandle>
      const& unsortedTestCases )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6595,1
    - Dst: allowThrows
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' testCase'
    - ' config'
    argTypes:
    - TestCaseHandle
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6596
      start: 6594
    functionDepth: 0
    functionLinenumber: 6594
    functionLinenumberEnd: 6596
    functionName: Catch::isThrowSafe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - getTestCaseInfo
    - allowThrows
    linkageType: ''
    returnType: bool
    signature: bool isThrowSafe( TestCaseHandle const& testCase, IConfig const& config
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6600,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6600,1
    - Dst: hasFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6602,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6602,1
    - Dst: hasFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6603,1
    - Dst: Catch::matchTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6603,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6604,1
    - Dst: Catch::createShard
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6607,1
    - Dst: shardCount
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6607,1
    - Dst: shardIndex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - ' testCases'
    - ' testSpec'
    - ' config'
    argTypes:
    - std::vector<TestCaseHandle>
    - TestSpec
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6608
      start: 6598
    functionDepth: 2
    functionLinenumber: 6598
    functionLinenumberEnd: 6608
    functionName: Catch::filterTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - getTestCaseInfo
    - std::vector::push_back
    - shardIndex
    - shardCount
    - Catch::matchTest
    - std::vector::reserve
    - Catch::createShard
    - hasFilters
    - size
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> filterTests( std::vector<TestCaseHandle>
      const& testCases, TestSpec const& testSpec, IConfig const& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6611
      start: 6609
    functionDepth: 3
    functionLinenumber: 6609
    functionLinenumberEnd: 6611
    functionName: Catch::getAllTestCasesSorted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::getRegistryHub
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> & getAllTestCasesSorted( IConfig const&
      config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6613
      start: 6613
    functionDepth: 0
    functionLinenumber: 6613
    functionLinenumberEnd: 6613
    functionName: TestRegistry::~TestRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestRegistry::~TestRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6616,1
    - Dst: Detail::unique_ptr<TestCaseInfo>::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6616,1
    - Dst: Detail::unique_ptr<ITestInvoker>::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6616,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6617,1
    - Dst: Detail::unique_ptr<TestCaseInfo>::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6617,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6618,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6618,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6619,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - testInfo
    - testInvoker
    argTypes:
    - Detail::unique_ptr<TestCaseInfo>
    - Detail::unique_ptr<ITestInvoker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6620
      start: 6615
    functionDepth: 1
    functionLinenumber: 6615
    functionLinenumberEnd: 6620
    functionName: Catch::TestRegistry::registerTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - Detail::unique_ptr<TestCaseInfo>::get
    - Detail::unique_ptr<ITestInvoker>::get
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void TestRegistry::registerTest(Detail::unique_ptr<TestCaseInfo> testInfo,
      Detail::unique_ptr<ITestInvoker> testInvoker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6624
      start: 6622
    functionDepth: 0
    functionLinenumber: 6622
    functionLinenumberEnd: 6624
    functionName: '& TestRegistry::getAllInfos() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TestCaseInfo*>
    signature: std::vector<TestCaseInfo*> & TestRegistry::getAllInfos() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6628
      start: 6626
    functionDepth: 0
    functionLinenumber: 6626
    functionLinenumberEnd: 6628
    functionName: '& TestRegistry::getAllTests() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> & TestRegistry::getAllTests() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6630,1
    - Dst: enforceNoDuplicateTestCases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6631,1
    - Dst: runOrder
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6633,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6633,1
    - Dst: sortTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6634,1
    - Dst: runOrder
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6638
      start: 6629
    functionDepth: 0
    functionLinenumber: 6629
    functionLinenumberEnd: 6638
    functionName: '& TestRegistry::getAllTestsSorted( IConfig const& config ) const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - runOrder
    - empty
    - enforceNoDuplicateTestCases
    - sortTests
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> & TestRegistry::getAllTestsSorted( IConfig
      const& config ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6521,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6522,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6523,1
    - Dst: auto::tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6532
      start: 6512
    functionDepth: 1
    functionLinenumber: 6512
    functionLinenumberEnd: 6532
    functionName: Catch::enforceNoDuplicateTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - getTestCaseInfo
    - std::set::insert
    - auto::tagsAsString
    linkageType: ''
    returnType: void
    signature: "void enforceNoDuplicateTestCases(\n            std::vector<TestCaseHandle>
      const& tests )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6537,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6537,1
    - Dst: Catch::isThrowSafe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' testCase'
    - ' testSpec'
    - ' config'
    argTypes:
    - TestCaseHandle
    - TestSpec
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6539
      start: 6534
    functionDepth: 1
    functionLinenumber: 6534
    functionLinenumberEnd: 6539
    functionName: Catch::matchTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::isThrowSafe
    - getTestCaseInfo
    - matches
    linkageType: ''
    returnType: bool
    signature: "bool matchTest( TestCaseHandle const& testCase,\n                               TestSpec
      const& testSpec,\n                               IConfig const& config )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6521,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6522,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6523,1
    - Dst: auto::tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6532
      start: 6512
    functionDepth: 1
    functionLinenumber: 6512
    functionLinenumberEnd: 6532
    functionName: Catch::enforceNoDuplicateTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    - getTestCaseInfo
    - std::set::insert
    - auto::tagsAsString
    linkageType: ''
    returnType: void
    signature: "void enforceNoDuplicateTestCases(\n            std::vector<TestCaseHandle>
      const& tests )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6537,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6537,1
    - Dst: Catch::isThrowSafe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' testCase'
    - ' testSpec'
    - ' config'
    argTypes:
    - TestCaseHandle
    - TestSpec
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6539
      start: 6534
    functionDepth: 1
    functionLinenumber: 6534
    functionLinenumberEnd: 6539
    functionName: Catch::matchTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::isThrowSafe
    - getTestCaseInfo
    - matches
    linkageType: ''
    returnType: bool
    signature: "bool matchTest( TestCaseHandle const& testCase,\n                               TestSpec
      const& testSpec,\n                               IConfig const& config )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: runOrder
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6544,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6550,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6551,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6552,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6554,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6554,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6562,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6564,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6564,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6567,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6567,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6567,1
    - Dst: std::sort
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6570,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6570,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6571,1
    - Dst: second::getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6574,1
    - Dst: second::getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6575,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6581,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6581,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6584,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - ' config'
    - ' unsortedTestCases'
    argTypes:
    - IConfig
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6592
      start: 6543
    functionDepth: 1
    functionLinenumber: 6543
    functionLinenumberEnd: 6592
    functionName: Catch::sortTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - h
    - getTestCaseInfo
    - second::getTestCaseInfo
    - std::vector::size
    - std::vector::push_back
    - std::vector::emplace_back
    - rngSeed
    - std::vector::begin
    - CATCH_INTERNAL_ERROR
    - size
    - std::vector::reserve
    - std::vector::end
    - runOrder
    - std::sort
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> sortTests( IConfig const& config, std::vector<TestCaseHandle>
      const& unsortedTestCases )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6595,1
    - Dst: allowThrows
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' testCase'
    - ' config'
    argTypes:
    - TestCaseHandle
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6596
      start: 6594
    functionDepth: 0
    functionLinenumber: 6594
    functionLinenumberEnd: 6596
    functionName: Catch::isThrowSafe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getTestCaseInfo
    - allowThrows
    linkageType: ''
    returnType: bool
    signature: bool isThrowSafe( TestCaseHandle const& testCase, IConfig const& config
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6600,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6600,1
    - Dst: hasFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6602,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6602,1
    - Dst: hasFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6603,1
    - Dst: Catch::matchTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6603,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6604,1
    - Dst: Catch::createShard
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6607,1
    - Dst: shardCount
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6607,1
    - Dst: shardIndex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - ' testCases'
    - ' testSpec'
    - ' config'
    argTypes:
    - std::vector<TestCaseHandle>
    - TestSpec
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6608
      start: 6598
    functionDepth: 2
    functionLinenumber: 6598
    functionLinenumberEnd: 6608
    functionName: Catch::filterTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - getTestCaseInfo
    - std::vector::push_back
    - shardIndex
    - shardCount
    - Catch::matchTest
    - std::vector::reserve
    - Catch::createShard
    - hasFilters
    - size
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> filterTests( std::vector<TestCaseHandle>
      const& testCases, TestSpec const& testSpec, IConfig const& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::getRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6611
      start: 6609
    functionDepth: 3
    functionLinenumber: 6609
    functionLinenumberEnd: 6611
    functionName: Catch::getAllTestCasesSorted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::getRegistryHub
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> & getAllTestCasesSorted( IConfig const&
      config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6613
      start: 6613
    functionDepth: 0
    functionLinenumber: 6613
    functionLinenumberEnd: 6613
    functionName: TestRegistry::~TestRegistry()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestRegistry::~TestRegistry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6616,1
    - Dst: Detail::unique_ptr<TestCaseInfo>::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6616,1
    - Dst: Detail::unique_ptr<ITestInvoker>::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6616,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6617,1
    - Dst: Detail::unique_ptr<TestCaseInfo>::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6617,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6618,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6618,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6619,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - testInfo
    - testInvoker
    argTypes:
    - Detail::unique_ptr<TestCaseInfo>
    - Detail::unique_ptr<ITestInvoker>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6620
      start: 6615
    functionDepth: 1
    functionLinenumber: 6615
    functionLinenumberEnd: 6620
    functionName: Catch::TestRegistry::registerTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - Detail::unique_ptr<TestCaseInfo>::get
    - Detail::unique_ptr<ITestInvoker>::get
    - CATCH_MOVE
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void TestRegistry::registerTest(Detail::unique_ptr<TestCaseInfo> testInfo,
      Detail::unique_ptr<ITestInvoker> testInvoker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6624
      start: 6622
    functionDepth: 0
    functionLinenumber: 6622
    functionLinenumberEnd: 6624
    functionName: '& TestRegistry::getAllInfos() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TestCaseInfo*>
    signature: std::vector<TestCaseInfo*> & TestRegistry::getAllInfos() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6628
      start: 6626
    functionDepth: 0
    functionLinenumber: 6626
    functionLinenumberEnd: 6628
    functionName: '& TestRegistry::getAllTests() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> & TestRegistry::getAllTests() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6630,1
    - Dst: enforceNoDuplicateTestCases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6631,1
    - Dst: runOrder
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6633,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6633,1
    - Dst: sortTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6634,1
    - Dst: runOrder
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6638
      start: 6629
    functionDepth: 0
    functionLinenumber: 6629
    functionLinenumberEnd: 6638
    functionName: '& TestRegistry::getAllTestsSorted( IConfig const& config ) const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - runOrder
    - empty
    - enforceNoDuplicateTestCases
    - sortTests
    linkageType: ''
    returnType: std::vector<TestCaseHandle>
    signature: std::vector<TestCaseHandle> & TestRegistry::getAllTestsSorted( IConfig
      const& config ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' _name'
    - ' _location'
    argTypes:
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6659
      start: 6656
    functionDepth: 1
    functionLinenumber: 6656
    functionLinenumberEnd: 6659
    functionName: Catch::TestCaseTracking::NameAndLocation::NameAndLocation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void NameAndLocation::NameAndLocation( std::string&& _name, SourceLineInfo
      const& _location )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6662
      start: 6662
    functionDepth: 0
    functionLinenumber: 6662
    functionLinenumberEnd: 6662
    functionName: ITracker::~ITracker()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITracker::~ITracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6666
      start: 6664
    functionDepth: 0
    functionLinenumber: 6664
    functionLinenumberEnd: 6666
    functionName: Catch::TestCaseTracking::ITracker::markAsNeedingAnotherRun
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITracker::markAsNeedingAnotherRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6669,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' child'
    argTypes:
    - ITrackerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6670
      start: 6668
    functionDepth: 1
    functionLinenumber: 6668
    functionLinenumberEnd: 6670
    functionName: Catch::TestCaseTracking::ITracker::addChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ITracker::addChild( ITrackerPtr&& child )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6673,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6674,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6675,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6677,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6684,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' nameAndLocation'
    argTypes:
    - NameAndLocationRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6685
      start: 6672
    functionDepth: 0
    functionLinenumber: 6672
    functionLinenumberEnd: 6685
    functionName: Catch::TestCaseTracking::ITracker::findChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - begin
    - auto::get
    - nameAndLocation
    - end
    - std::find_if
    linkageType: ''
    returnType: ITracker
    signature: ITracker * ITracker::findChild( NameAndLocationRef const& nameAndLocation
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6687
      start: 6687
    functionDepth: 0
    functionLinenumber: 6687
    functionLinenumberEnd: 6687
    functionName: Catch::TestCaseTracking::ITracker::isSectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isSectionTracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6688
      start: 6688
    functionDepth: 0
    functionLinenumber: 6688
    functionLinenumberEnd: 6688
    functionName: Catch::TestCaseTracking::ITracker::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isGeneratorTracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6692
      start: 6690
    functionDepth: 0
    functionLinenumber: 6690
    functionLinenumberEnd: 6692
    functionName: Catch::TestCaseTracking::ITracker::isOpen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isComplete
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isOpen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6694
      start: 6694
    functionDepth: 0
    functionLinenumber: 6694
    functionLinenumberEnd: 6694
    functionName: Catch::TestCaseTracking::ITracker::hasStarted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::hasStarted() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::ITracker::openChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6703
      start: 6696
    functionDepth: 1
    functionLinenumber: 6696
    functionLinenumberEnd: 6703
    functionName: Catch::TestCaseTracking::ITracker::openChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::TestCaseTracking::ITracker::openChild
    linkageType: ''
    returnType: void
    signature: void ITracker::openChild()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<SectionTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6707,1
    - Dst: NameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6714
      start: 6705
    functionDepth: 0
    functionLinenumber: 6705
    functionLinenumberEnd: 6714
    functionName: '& TrackerContext::startRun()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<SectionTracker>
    - NameAndLocation
    linkageType: ''
    returnType: ITracker
    signature: ITracker & TrackerContext::startRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6718
      start: 6716
    functionDepth: 0
    functionLinenumber: 6716
    functionLinenumberEnd: 6718
    functionName: Catch::TestCaseTracking::TrackerContext::completeCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackerContext::completeCycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6722
      start: 6720
    functionDepth: 0
    functionLinenumber: 6720
    functionLinenumberEnd: 6722
    functionName: Catch::TestCaseTracking::TrackerContext::completedCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TrackerContext::completedCycle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6725
      start: 6723
    functionDepth: 0
    functionLinenumber: 6723
    functionLinenumberEnd: 6725
    functionName: Catch::TestCaseTracking::TrackerContext::setCurrentTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackerContext::setCurrentTracker( ITracker* tracker )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6731
      start: 6728
    functionDepth: 1
    functionLinenumber: 6728
    functionLinenumberEnd: 6731
    functionName: Catch::TestCaseTracking::TrackerBase::TrackerBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TrackerBase::TrackerBase( NameAndLocation&& nameAndLocation, TrackerContext&
      ctx, ITracker* parent )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6735
      start: 6733
    functionDepth: 0
    functionLinenumber: 6733
    functionLinenumberEnd: 6735
    functionName: Catch::TestCaseTracking::TrackerBase::isComplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TrackerBase::isComplete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToThis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6739,1
    - Dst: openChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6742
      start: 6737
    functionDepth: 1
    functionLinenumber: 6737
    functionLinenumberEnd: 6742
    functionName: Catch::TestCaseTracking::TrackerBase::open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::moveToThis
    - openChild
    linkageType: ''
    returnType: void
    signature: void TrackerBase::open()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6747,1
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6748,1
    - Dst: all_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: Catch::TestCaseTracking::TrackerBase::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6765,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6768,1
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToParent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6770,1
    - Dst: completeCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6772
      start: 6744
    functionDepth: 2
    functionLinenumber: 6744
    functionLinenumberEnd: 6772
    functionName: Catch::TestCaseTracking::TrackerBase::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::isComplete
    - begin
    - completeCycle
    - end
    - currentTracker
    - CATCH_INTERNAL_ERROR
    - Catch::TestCaseTracking::TrackerBase::moveToParent
    - all_of
    linkageType: ''
    returnType: void
    signature: void TrackerBase::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: markAsNeedingAnotherRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6776,1
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToParent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6777,1
    - Dst: completeCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6779
      start: 6773
    functionDepth: 1
    functionLinenumber: 6773
    functionLinenumberEnd: 6779
    functionName: Catch::TestCaseTracking::TrackerBase::fail
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - completeCycle
    - markAsNeedingAnotherRun
    - Catch::TestCaseTracking::TrackerBase::moveToParent
    linkageType: ''
    returnType: void
    signature: void TrackerBase::fail()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6782,1
    - Dst: setCurrentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_parent )
      pos:
        line_end: 6781
        line_start: 6781
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 6784
      start: 6781
    functionDepth: 0
    functionLinenumber: 6781
    functionLinenumberEnd: 6784
    functionName: Catch::TestCaseTracking::TrackerBase::moveToParent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - setCurrentTracker
    - assert
    linkageType: ''
    returnType: void
    signature: void TrackerBase::moveToParent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setCurrentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6787
      start: 6785
    functionDepth: 0
    functionLinenumber: 6785
    functionLinenumberEnd: 6787
    functionName: Catch::TestCaseTracking::TrackerBase::moveToThis
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - setCurrentTracker
    linkageType: ''
    returnType: void
    signature: void TrackerBase::moveToThis()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6790,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: ITracker::nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6794,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6795,1
    - Dst: static_cast<SectionTracker&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6798,1
    - Dst: Catch::TestCaseTracking::SectionTracker::addNextFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6801
      start: 6789
    functionDepth: 1
    functionLinenumber: 6789
    functionLinenumberEnd: 6801
    functionName: Catch::TestCaseTracking::SectionTracker::SectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ITracker::nameAndLocation
    - StringRef
    - ITracker*::isSectionTracker
    - static_cast<SectionTracker&>
    - CATCH_MOVE
    - trim
    - Catch::TestCaseTracking::SectionTracker::addNextFilters
    - ITracker*::parent
    linkageType: ''
    returnType: void
    signature: void SectionTracker::SectionTracker( NameAndLocation&& nameAndLocation,
      TrackerContext& ctx, ITracker* parent )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6806,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6807,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: Catch::TestCaseTracking::TrackerBase::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6812
      start: 6803
    functionDepth: 1
    functionLinenumber: 6803
    functionLinenumberEnd: 6812
    functionName: Catch::TestCaseTracking::SectionTracker::isComplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::isComplete
    - begin
    - empty
    - end
    - std::find
    linkageType: ''
    returnType: bool
    signature: bool SectionTracker::isComplete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6814
      start: 6814
    functionDepth: 0
    functionLinenumber: 6814
    functionLinenumberEnd: 6814
    functionName: Catch::TestCaseTracking::SectionTracker::isSectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SectionTracker::isSectionTracker() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6819,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6821,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6822,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6823,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6823,1
    - Dst: static_cast<SectionTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6824,1
    - Dst: Catch::Detail::make_unique<SectionTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6826,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6827,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6831,1
    - Dst: addChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6832,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6832,1
    - Dst: completedCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6835,1
    - Dst: SectionTracker*::tryOpen
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' ctx'
    - ' nameAndLocation'
    argTypes:
    - TrackerContext
    - NameAndLocationRef
    assertStmts:
    - condition: ( childTracker->isSectionTracker() )
      pos:
        line_end: 6822
        line_start: 6822
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 6821
        line_start: 6821
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 6840
      start: 6816
    functionDepth: 1
    functionLinenumber: 6816
    functionLinenumberEnd: 6840
    functionName: '& SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef
      const& nameAndLocation )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - auto::get
    - completedCycle
    - ITracker*::isSectionTracker
    - currentTracker
    - SectionTracker*::tryOpen
    - addChild
    - CATCH_MOVE
    - static_cast<std::string>
    - static_cast<SectionTracker*>
    - Catch::Detail::make_unique<SectionTracker>
    - findChild
    linkageType: ''
    returnType: SectionTracker
    signature: SectionTracker & SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef
      const& nameAndLocation )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::SectionTracker::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6843,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6845
      start: 6842
    functionDepth: 2
    functionLinenumber: 6842
    functionLinenumberEnd: 6845
    functionName: Catch::TestCaseTracking::SectionTracker::tryOpen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - open
    - Catch::TestCaseTracking::SectionTracker::isComplete
    linkageType: ''
    returnType: void
    signature: void SectionTracker::tryOpen()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6848,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6850,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6851,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6854
      start: 6847
    functionDepth: 1
    functionLinenumber: 6847
    functionLinenumberEnd: 6854
    functionName: Catch::TestCaseTracking::SectionTracker::addInitialFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - begin
    - insert
    - empty
    - end
    - reserve
    - emplace_back
    - size
    linkageType: ''
    returnType: void
    signature: void SectionTracker::addInitialFilters( std::vector<std::string> const&
      filters )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6856,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<StringRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6858
      start: 6855
    functionDepth: 1
    functionLinenumber: 6855
    functionLinenumberEnd: 6858
    functionName: Catch::TestCaseTracking::SectionTracker::addNextFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - insert
    - end
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: void SectionTracker::addNextFilters( std::vector<StringRef> const&
      filters )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6862
      start: 6860
    functionDepth: 0
    functionLinenumber: 6860
    functionLinenumberEnd: 6862
    functionName: Catch::TestCaseTracking::SectionTracker::trimmedName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef SectionTracker::trimmedName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' _name'
    - ' _location'
    argTypes:
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6659
      start: 6656
    functionDepth: 1
    functionLinenumber: 6656
    functionLinenumberEnd: 6659
    functionName: Catch::TestCaseTracking::NameAndLocation::NameAndLocation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void NameAndLocation::NameAndLocation( std::string&& _name, SourceLineInfo
      const& _location )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6662
      start: 6662
    functionDepth: 0
    functionLinenumber: 6662
    functionLinenumberEnd: 6662
    functionName: ITracker::~ITracker()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITracker::~ITracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6666
      start: 6664
    functionDepth: 0
    functionLinenumber: 6664
    functionLinenumberEnd: 6666
    functionName: Catch::TestCaseTracking::ITracker::markAsNeedingAnotherRun
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITracker::markAsNeedingAnotherRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6669,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' child'
    argTypes:
    - ITrackerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6670
      start: 6668
    functionDepth: 1
    functionLinenumber: 6668
    functionLinenumberEnd: 6670
    functionName: Catch::TestCaseTracking::ITracker::addChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ITracker::addChild( ITrackerPtr&& child )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6673,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6674,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6675,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6677,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6684,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' nameAndLocation'
    argTypes:
    - NameAndLocationRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6685
      start: 6672
    functionDepth: 0
    functionLinenumber: 6672
    functionLinenumberEnd: 6685
    functionName: Catch::TestCaseTracking::ITracker::findChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - begin
    - auto::get
    - nameAndLocation
    - end
    - std::find_if
    linkageType: ''
    returnType: ITracker
    signature: ITracker * ITracker::findChild( NameAndLocationRef const& nameAndLocation
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6687
      start: 6687
    functionDepth: 0
    functionLinenumber: 6687
    functionLinenumberEnd: 6687
    functionName: Catch::TestCaseTracking::ITracker::isSectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isSectionTracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6688
      start: 6688
    functionDepth: 0
    functionLinenumber: 6688
    functionLinenumberEnd: 6688
    functionName: Catch::TestCaseTracking::ITracker::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isGeneratorTracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6692
      start: 6690
    functionDepth: 0
    functionLinenumber: 6690
    functionLinenumberEnd: 6692
    functionName: Catch::TestCaseTracking::ITracker::isOpen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isComplete
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isOpen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6694
      start: 6694
    functionDepth: 0
    functionLinenumber: 6694
    functionLinenumberEnd: 6694
    functionName: Catch::TestCaseTracking::ITracker::hasStarted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::hasStarted() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::ITracker::openChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6703
      start: 6696
    functionDepth: 1
    functionLinenumber: 6696
    functionLinenumberEnd: 6703
    functionName: Catch::TestCaseTracking::ITracker::openChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::TestCaseTracking::ITracker::openChild
    linkageType: ''
    returnType: void
    signature: void ITracker::openChild()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<SectionTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6707,1
    - Dst: NameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6714
      start: 6705
    functionDepth: 0
    functionLinenumber: 6705
    functionLinenumberEnd: 6714
    functionName: '& TrackerContext::startRun()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<SectionTracker>
    - NameAndLocation
    linkageType: ''
    returnType: ITracker
    signature: ITracker & TrackerContext::startRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6718
      start: 6716
    functionDepth: 0
    functionLinenumber: 6716
    functionLinenumberEnd: 6718
    functionName: Catch::TestCaseTracking::TrackerContext::completeCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackerContext::completeCycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6722
      start: 6720
    functionDepth: 0
    functionLinenumber: 6720
    functionLinenumberEnd: 6722
    functionName: Catch::TestCaseTracking::TrackerContext::completedCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TrackerContext::completedCycle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6725
      start: 6723
    functionDepth: 0
    functionLinenumber: 6723
    functionLinenumberEnd: 6725
    functionName: Catch::TestCaseTracking::TrackerContext::setCurrentTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackerContext::setCurrentTracker( ITracker* tracker )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6731
      start: 6728
    functionDepth: 1
    functionLinenumber: 6728
    functionLinenumberEnd: 6731
    functionName: Catch::TestCaseTracking::TrackerBase::TrackerBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TrackerBase::TrackerBase( NameAndLocation&& nameAndLocation, TrackerContext&
      ctx, ITracker* parent )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6735
      start: 6733
    functionDepth: 0
    functionLinenumber: 6733
    functionLinenumberEnd: 6735
    functionName: Catch::TestCaseTracking::TrackerBase::isComplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TrackerBase::isComplete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToThis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6739,1
    - Dst: openChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6742
      start: 6737
    functionDepth: 1
    functionLinenumber: 6737
    functionLinenumberEnd: 6742
    functionName: Catch::TestCaseTracking::TrackerBase::open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::moveToThis
    - openChild
    linkageType: ''
    returnType: void
    signature: void TrackerBase::open()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6747,1
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6748,1
    - Dst: all_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: Catch::TestCaseTracking::TrackerBase::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6765,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6768,1
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToParent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6770,1
    - Dst: completeCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6772
      start: 6744
    functionDepth: 2
    functionLinenumber: 6744
    functionLinenumberEnd: 6772
    functionName: Catch::TestCaseTracking::TrackerBase::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::isComplete
    - begin
    - completeCycle
    - end
    - currentTracker
    - CATCH_INTERNAL_ERROR
    - Catch::TestCaseTracking::TrackerBase::moveToParent
    - all_of
    linkageType: ''
    returnType: void
    signature: void TrackerBase::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: markAsNeedingAnotherRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6776,1
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToParent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6777,1
    - Dst: completeCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6779
      start: 6773
    functionDepth: 1
    functionLinenumber: 6773
    functionLinenumberEnd: 6779
    functionName: Catch::TestCaseTracking::TrackerBase::fail
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - completeCycle
    - markAsNeedingAnotherRun
    - Catch::TestCaseTracking::TrackerBase::moveToParent
    linkageType: ''
    returnType: void
    signature: void TrackerBase::fail()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6782,1
    - Dst: setCurrentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_parent )
      pos:
        line_end: 6781
        line_start: 6781
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 6784
      start: 6781
    functionDepth: 0
    functionLinenumber: 6781
    functionLinenumberEnd: 6784
    functionName: Catch::TestCaseTracking::TrackerBase::moveToParent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - setCurrentTracker
    - assert
    linkageType: ''
    returnType: void
    signature: void TrackerBase::moveToParent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setCurrentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6787
      start: 6785
    functionDepth: 0
    functionLinenumber: 6785
    functionLinenumberEnd: 6787
    functionName: Catch::TestCaseTracking::TrackerBase::moveToThis
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - setCurrentTracker
    linkageType: ''
    returnType: void
    signature: void TrackerBase::moveToThis()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6790,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: ITracker::nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6794,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6795,1
    - Dst: static_cast<SectionTracker&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6798,1
    - Dst: Catch::TestCaseTracking::SectionTracker::addNextFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6801
      start: 6789
    functionDepth: 2
    functionLinenumber: 6789
    functionLinenumberEnd: 6801
    functionName: Catch::TestCaseTracking::SectionTracker::SectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ITracker::nameAndLocation
    - StringRef
    - ITracker*::isSectionTracker
    - static_cast<SectionTracker&>
    - CATCH_MOVE
    - trim
    - Catch::TestCaseTracking::SectionTracker::addNextFilters
    - ITracker*::parent
    linkageType: ''
    returnType: void
    signature: void SectionTracker::SectionTracker( NameAndLocation&& nameAndLocation,
      TrackerContext& ctx, ITracker* parent )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6806,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6807,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: Catch::TestCaseTracking::TrackerBase::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6812
      start: 6803
    functionDepth: 1
    functionLinenumber: 6803
    functionLinenumberEnd: 6812
    functionName: Catch::TestCaseTracking::SectionTracker::isComplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::isComplete
    - begin
    - empty
    - end
    - std::find
    linkageType: ''
    returnType: bool
    signature: bool SectionTracker::isComplete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6814
      start: 6814
    functionDepth: 0
    functionLinenumber: 6814
    functionLinenumberEnd: 6814
    functionName: Catch::TestCaseTracking::SectionTracker::isSectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SectionTracker::isSectionTracker() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6819,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6821,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6822,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6823,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6823,1
    - Dst: static_cast<SectionTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6824,1
    - Dst: Catch::Detail::make_unique<SectionTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6826,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6827,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6831,1
    - Dst: addChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6832,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6832,1
    - Dst: completedCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6835,1
    - Dst: SectionTracker*::tryOpen
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' ctx'
    - ' nameAndLocation'
    argTypes:
    - TrackerContext
    - NameAndLocationRef
    assertStmts:
    - condition: ( childTracker->isSectionTracker() )
      pos:
        line_end: 6822
        line_start: 6822
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 6821
        line_start: 6821
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 6840
      start: 6816
    functionDepth: 1
    functionLinenumber: 6816
    functionLinenumberEnd: 6840
    functionName: '& SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef
      const& nameAndLocation )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - auto::get
    - completedCycle
    - ITracker*::isSectionTracker
    - currentTracker
    - SectionTracker*::tryOpen
    - addChild
    - CATCH_MOVE
    - static_cast<std::string>
    - static_cast<SectionTracker*>
    - Catch::Detail::make_unique<SectionTracker>
    - findChild
    linkageType: ''
    returnType: SectionTracker
    signature: SectionTracker & SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef
      const& nameAndLocation )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::SectionTracker::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6843,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6845
      start: 6842
    functionDepth: 2
    functionLinenumber: 6842
    functionLinenumberEnd: 6845
    functionName: Catch::TestCaseTracking::SectionTracker::tryOpen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - open
    - Catch::TestCaseTracking::SectionTracker::isComplete
    linkageType: ''
    returnType: void
    signature: void SectionTracker::tryOpen()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6848,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6850,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6851,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6854
      start: 6847
    functionDepth: 1
    functionLinenumber: 6847
    functionLinenumberEnd: 6854
    functionName: Catch::TestCaseTracking::SectionTracker::addInitialFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - begin
    - insert
    - empty
    - end
    - reserve
    - emplace_back
    - size
    linkageType: ''
    returnType: void
    signature: void SectionTracker::addInitialFilters( std::vector<std::string> const&
      filters )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6856,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<StringRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6858
      start: 6855
    functionDepth: 1
    functionLinenumber: 6855
    functionLinenumberEnd: 6858
    functionName: Catch::TestCaseTracking::SectionTracker::addNextFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - insert
    - end
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: void SectionTracker::addNextFilters( std::vector<StringRef> const&
      filters )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6862
      start: 6860
    functionDepth: 0
    functionLinenumber: 6860
    functionLinenumberEnd: 6862
    functionName: Catch::TestCaseTracking::SectionTracker::trimmedName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef SectionTracker::trimmedName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' _name'
    - ' _location'
    argTypes:
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6659
      start: 6656
    functionDepth: 1
    functionLinenumber: 6656
    functionLinenumberEnd: 6659
    functionName: Catch::TestCaseTracking::NameAndLocation::NameAndLocation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void NameAndLocation::NameAndLocation( std::string&& _name, SourceLineInfo
      const& _location )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6662
      start: 6662
    functionDepth: 0
    functionLinenumber: 6662
    functionLinenumberEnd: 6662
    functionName: ITracker::~ITracker()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITracker::~ITracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6666
      start: 6664
    functionDepth: 0
    functionLinenumber: 6664
    functionLinenumberEnd: 6666
    functionName: Catch::TestCaseTracking::ITracker::markAsNeedingAnotherRun
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITracker::markAsNeedingAnotherRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6669,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' child'
    argTypes:
    - ITrackerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6670
      start: 6668
    functionDepth: 1
    functionLinenumber: 6668
    functionLinenumberEnd: 6670
    functionName: Catch::TestCaseTracking::ITracker::addChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ITracker::addChild( ITrackerPtr&& child )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6673,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6674,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6675,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6677,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6684,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' nameAndLocation'
    argTypes:
    - NameAndLocationRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6685
      start: 6672
    functionDepth: 0
    functionLinenumber: 6672
    functionLinenumberEnd: 6685
    functionName: Catch::TestCaseTracking::ITracker::findChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - begin
    - auto::get
    - nameAndLocation
    - end
    - std::find_if
    linkageType: ''
    returnType: ITracker
    signature: ITracker * ITracker::findChild( NameAndLocationRef const& nameAndLocation
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6687
      start: 6687
    functionDepth: 0
    functionLinenumber: 6687
    functionLinenumberEnd: 6687
    functionName: Catch::TestCaseTracking::ITracker::isSectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isSectionTracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6688
      start: 6688
    functionDepth: 0
    functionLinenumber: 6688
    functionLinenumberEnd: 6688
    functionName: Catch::TestCaseTracking::ITracker::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isGeneratorTracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6692
      start: 6690
    functionDepth: 0
    functionLinenumber: 6690
    functionLinenumberEnd: 6692
    functionName: Catch::TestCaseTracking::ITracker::isOpen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isComplete
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isOpen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6694
      start: 6694
    functionDepth: 0
    functionLinenumber: 6694
    functionLinenumberEnd: 6694
    functionName: Catch::TestCaseTracking::ITracker::hasStarted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::hasStarted() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::ITracker::openChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6703
      start: 6696
    functionDepth: 1
    functionLinenumber: 6696
    functionLinenumberEnd: 6703
    functionName: Catch::TestCaseTracking::ITracker::openChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::TestCaseTracking::ITracker::openChild
    linkageType: ''
    returnType: void
    signature: void ITracker::openChild()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<SectionTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6707,1
    - Dst: NameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6714
      start: 6705
    functionDepth: 0
    functionLinenumber: 6705
    functionLinenumberEnd: 6714
    functionName: '& TrackerContext::startRun()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<SectionTracker>
    - NameAndLocation
    linkageType: ''
    returnType: ITracker
    signature: ITracker & TrackerContext::startRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6718
      start: 6716
    functionDepth: 0
    functionLinenumber: 6716
    functionLinenumberEnd: 6718
    functionName: Catch::TestCaseTracking::TrackerContext::completeCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackerContext::completeCycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6722
      start: 6720
    functionDepth: 0
    functionLinenumber: 6720
    functionLinenumberEnd: 6722
    functionName: Catch::TestCaseTracking::TrackerContext::completedCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TrackerContext::completedCycle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6725
      start: 6723
    functionDepth: 0
    functionLinenumber: 6723
    functionLinenumberEnd: 6725
    functionName: Catch::TestCaseTracking::TrackerContext::setCurrentTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackerContext::setCurrentTracker( ITracker* tracker )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6731
      start: 6728
    functionDepth: 1
    functionLinenumber: 6728
    functionLinenumberEnd: 6731
    functionName: Catch::TestCaseTracking::TrackerBase::TrackerBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TrackerBase::TrackerBase( NameAndLocation&& nameAndLocation, TrackerContext&
      ctx, ITracker* parent )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6735
      start: 6733
    functionDepth: 0
    functionLinenumber: 6733
    functionLinenumberEnd: 6735
    functionName: Catch::TestCaseTracking::TrackerBase::isComplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TrackerBase::isComplete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToThis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6739,1
    - Dst: openChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6742
      start: 6737
    functionDepth: 1
    functionLinenumber: 6737
    functionLinenumberEnd: 6742
    functionName: Catch::TestCaseTracking::TrackerBase::open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::moveToThis
    - openChild
    linkageType: ''
    returnType: void
    signature: void TrackerBase::open()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6747,1
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6748,1
    - Dst: all_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: Catch::TestCaseTracking::TrackerBase::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6765,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6768,1
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToParent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6770,1
    - Dst: completeCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6772
      start: 6744
    functionDepth: 2
    functionLinenumber: 6744
    functionLinenumberEnd: 6772
    functionName: Catch::TestCaseTracking::TrackerBase::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::isComplete
    - begin
    - completeCycle
    - end
    - currentTracker
    - CATCH_INTERNAL_ERROR
    - Catch::TestCaseTracking::TrackerBase::moveToParent
    - all_of
    linkageType: ''
    returnType: void
    signature: void TrackerBase::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: markAsNeedingAnotherRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6776,1
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToParent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6777,1
    - Dst: completeCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6779
      start: 6773
    functionDepth: 1
    functionLinenumber: 6773
    functionLinenumberEnd: 6779
    functionName: Catch::TestCaseTracking::TrackerBase::fail
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - completeCycle
    - markAsNeedingAnotherRun
    - Catch::TestCaseTracking::TrackerBase::moveToParent
    linkageType: ''
    returnType: void
    signature: void TrackerBase::fail()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6782,1
    - Dst: setCurrentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_parent )
      pos:
        line_end: 6781
        line_start: 6781
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 6784
      start: 6781
    functionDepth: 0
    functionLinenumber: 6781
    functionLinenumberEnd: 6784
    functionName: Catch::TestCaseTracking::TrackerBase::moveToParent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - setCurrentTracker
    - assert
    linkageType: ''
    returnType: void
    signature: void TrackerBase::moveToParent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setCurrentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6787
      start: 6785
    functionDepth: 0
    functionLinenumber: 6785
    functionLinenumberEnd: 6787
    functionName: Catch::TestCaseTracking::TrackerBase::moveToThis
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - setCurrentTracker
    linkageType: ''
    returnType: void
    signature: void TrackerBase::moveToThis()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6790,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: ITracker::nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6794,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6795,1
    - Dst: static_cast<SectionTracker&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6798,1
    - Dst: Catch::TestCaseTracking::SectionTracker::addNextFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6801
      start: 6789
    functionDepth: 2
    functionLinenumber: 6789
    functionLinenumberEnd: 6801
    functionName: Catch::TestCaseTracking::SectionTracker::SectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ITracker::nameAndLocation
    - StringRef
    - ITracker*::isSectionTracker
    - static_cast<SectionTracker&>
    - CATCH_MOVE
    - trim
    - Catch::TestCaseTracking::SectionTracker::addNextFilters
    - ITracker*::parent
    linkageType: ''
    returnType: void
    signature: void SectionTracker::SectionTracker( NameAndLocation&& nameAndLocation,
      TrackerContext& ctx, ITracker* parent )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6806,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6807,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: Catch::TestCaseTracking::TrackerBase::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6812
      start: 6803
    functionDepth: 1
    functionLinenumber: 6803
    functionLinenumberEnd: 6812
    functionName: Catch::TestCaseTracking::SectionTracker::isComplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::isComplete
    - begin
    - empty
    - end
    - std::find
    linkageType: ''
    returnType: bool
    signature: bool SectionTracker::isComplete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6814
      start: 6814
    functionDepth: 0
    functionLinenumber: 6814
    functionLinenumberEnd: 6814
    functionName: Catch::TestCaseTracking::SectionTracker::isSectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SectionTracker::isSectionTracker() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6819,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6821,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6822,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6823,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6823,1
    - Dst: static_cast<SectionTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6824,1
    - Dst: Catch::Detail::make_unique<SectionTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6826,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6827,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6831,1
    - Dst: addChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6832,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6832,1
    - Dst: completedCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6835,1
    - Dst: SectionTracker*::tryOpen
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' ctx'
    - ' nameAndLocation'
    argTypes:
    - TrackerContext
    - NameAndLocationRef
    assertStmts:
    - condition: ( childTracker->isSectionTracker() )
      pos:
        line_end: 6822
        line_start: 6822
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 6821
        line_start: 6821
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 6840
      start: 6816
    functionDepth: 1
    functionLinenumber: 6816
    functionLinenumberEnd: 6840
    functionName: '& SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef
      const& nameAndLocation )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - auto::get
    - completedCycle
    - ITracker*::isSectionTracker
    - currentTracker
    - SectionTracker*::tryOpen
    - addChild
    - CATCH_MOVE
    - static_cast<std::string>
    - static_cast<SectionTracker*>
    - Catch::Detail::make_unique<SectionTracker>
    - findChild
    linkageType: ''
    returnType: SectionTracker
    signature: SectionTracker & SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef
      const& nameAndLocation )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::SectionTracker::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6843,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6845
      start: 6842
    functionDepth: 2
    functionLinenumber: 6842
    functionLinenumberEnd: 6845
    functionName: Catch::TestCaseTracking::SectionTracker::tryOpen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - open
    - Catch::TestCaseTracking::SectionTracker::isComplete
    linkageType: ''
    returnType: void
    signature: void SectionTracker::tryOpen()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6848,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6850,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6851,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6854
      start: 6847
    functionDepth: 1
    functionLinenumber: 6847
    functionLinenumberEnd: 6854
    functionName: Catch::TestCaseTracking::SectionTracker::addInitialFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - begin
    - insert
    - empty
    - end
    - reserve
    - emplace_back
    - size
    linkageType: ''
    returnType: void
    signature: void SectionTracker::addInitialFilters( std::vector<std::string> const&
      filters )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6856,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<StringRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6858
      start: 6855
    functionDepth: 1
    functionLinenumber: 6855
    functionLinenumberEnd: 6858
    functionName: Catch::TestCaseTracking::SectionTracker::addNextFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - insert
    - end
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: void SectionTracker::addNextFilters( std::vector<StringRef> const&
      filters )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6862
      start: 6860
    functionDepth: 0
    functionLinenumber: 6860
    functionLinenumberEnd: 6862
    functionName: Catch::TestCaseTracking::SectionTracker::trimmedName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef SectionTracker::trimmedName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' _name'
    - ' _location'
    argTypes:
    - std::string
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6659
      start: 6656
    functionDepth: 1
    functionLinenumber: 6656
    functionLinenumberEnd: 6659
    functionName: Catch::TestCaseTracking::NameAndLocation::NameAndLocation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void NameAndLocation::NameAndLocation( std::string&& _name, SourceLineInfo
      const& _location )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6662
      start: 6662
    functionDepth: 0
    functionLinenumber: 6662
    functionLinenumberEnd: 6662
    functionName: ITracker::~ITracker()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITracker::~ITracker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6666
      start: 6664
    functionDepth: 0
    functionLinenumber: 6664
    functionLinenumberEnd: 6666
    functionName: Catch::TestCaseTracking::ITracker::markAsNeedingAnotherRun
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITracker::markAsNeedingAnotherRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6669,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' child'
    argTypes:
    - ITrackerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6670
      start: 6668
    functionDepth: 1
    functionLinenumber: 6668
    functionLinenumberEnd: 6670
    functionName: Catch::TestCaseTracking::ITracker::addChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void ITracker::addChild( ITrackerPtr&& child )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6673,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6674,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6675,1
    - Dst: nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6677,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6684,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' nameAndLocation'
    argTypes:
    - NameAndLocationRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6685
      start: 6672
    functionDepth: 0
    functionLinenumber: 6672
    functionLinenumberEnd: 6685
    functionName: Catch::TestCaseTracking::ITracker::findChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - begin
    - auto::get
    - nameAndLocation
    - end
    - std::find_if
    linkageType: ''
    returnType: ITracker
    signature: ITracker * ITracker::findChild( NameAndLocationRef const& nameAndLocation
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6687
      start: 6687
    functionDepth: 0
    functionLinenumber: 6687
    functionLinenumberEnd: 6687
    functionName: Catch::TestCaseTracking::ITracker::isSectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isSectionTracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6688
      start: 6688
    functionDepth: 0
    functionLinenumber: 6688
    functionLinenumberEnd: 6688
    functionName: Catch::TestCaseTracking::ITracker::isGeneratorTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isGeneratorTracker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6692
      start: 6690
    functionDepth: 0
    functionLinenumber: 6690
    functionLinenumberEnd: 6692
    functionName: Catch::TestCaseTracking::ITracker::isOpen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isComplete
    linkageType: ''
    returnType: bool
    signature: bool ITracker::isOpen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6694
      start: 6694
    functionDepth: 0
    functionLinenumber: 6694
    functionLinenumberEnd: 6694
    functionName: Catch::TestCaseTracking::ITracker::hasStarted
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ITracker::hasStarted() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::ITracker::openChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6703
      start: 6696
    functionDepth: 1
    functionLinenumber: 6696
    functionLinenumberEnd: 6703
    functionName: Catch::TestCaseTracking::ITracker::openChild
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::TestCaseTracking::ITracker::openChild
    linkageType: ''
    returnType: void
    signature: void ITracker::openChild()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::make_unique<SectionTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6707,1
    - Dst: NameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6714
      start: 6705
    functionDepth: 0
    functionLinenumber: 6705
    functionLinenumberEnd: 6714
    functionName: '& TrackerContext::startRun()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::make_unique<SectionTracker>
    - NameAndLocation
    linkageType: ''
    returnType: ITracker
    signature: ITracker & TrackerContext::startRun()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6718
      start: 6716
    functionDepth: 0
    functionLinenumber: 6716
    functionLinenumberEnd: 6718
    functionName: Catch::TestCaseTracking::TrackerContext::completeCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackerContext::completeCycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6722
      start: 6720
    functionDepth: 0
    functionLinenumber: 6720
    functionLinenumberEnd: 6722
    functionName: Catch::TestCaseTracking::TrackerContext::completedCycle
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TrackerContext::completedCycle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6725
      start: 6723
    functionDepth: 0
    functionLinenumber: 6723
    functionLinenumberEnd: 6725
    functionName: Catch::TestCaseTracking::TrackerContext::setCurrentTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrackerContext::setCurrentTracker( ITracker* tracker )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6731
      start: 6728
    functionDepth: 1
    functionLinenumber: 6728
    functionLinenumberEnd: 6731
    functionName: Catch::TestCaseTracking::TrackerBase::TrackerBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TrackerBase::TrackerBase( NameAndLocation&& nameAndLocation, TrackerContext&
      ctx, ITracker* parent )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6735
      start: 6733
    functionDepth: 0
    functionLinenumber: 6733
    functionLinenumberEnd: 6735
    functionName: Catch::TestCaseTracking::TrackerBase::isComplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TrackerBase::isComplete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToThis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6739,1
    - Dst: openChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6742
      start: 6737
    functionDepth: 1
    functionLinenumber: 6737
    functionLinenumberEnd: 6742
    functionName: Catch::TestCaseTracking::TrackerBase::open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::moveToThis
    - openChild
    linkageType: ''
    returnType: void
    signature: void TrackerBase::open()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6747,1
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6748,1
    - Dst: all_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: Catch::TestCaseTracking::TrackerBase::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6758,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6765,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6768,1
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToParent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6770,1
    - Dst: completeCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6772
      start: 6744
    functionDepth: 2
    functionLinenumber: 6744
    functionLinenumberEnd: 6772
    functionName: Catch::TestCaseTracking::TrackerBase::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::isComplete
    - begin
    - completeCycle
    - end
    - currentTracker
    - CATCH_INTERNAL_ERROR
    - Catch::TestCaseTracking::TrackerBase::moveToParent
    - all_of
    linkageType: ''
    returnType: void
    signature: void TrackerBase::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: markAsNeedingAnotherRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6776,1
    - Dst: Catch::TestCaseTracking::TrackerBase::moveToParent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6777,1
    - Dst: completeCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6779
      start: 6773
    functionDepth: 1
    functionLinenumber: 6773
    functionLinenumberEnd: 6779
    functionName: Catch::TestCaseTracking::TrackerBase::fail
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - completeCycle
    - markAsNeedingAnotherRun
    - Catch::TestCaseTracking::TrackerBase::moveToParent
    linkageType: ''
    returnType: void
    signature: void TrackerBase::fail()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6782,1
    - Dst: setCurrentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_parent )
      pos:
        line_end: 6781
        line_start: 6781
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 6784
      start: 6781
    functionDepth: 0
    functionLinenumber: 6781
    functionLinenumberEnd: 6784
    functionName: Catch::TestCaseTracking::TrackerBase::moveToParent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - setCurrentTracker
    - assert
    linkageType: ''
    returnType: void
    signature: void TrackerBase::moveToParent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setCurrentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6787
      start: 6785
    functionDepth: 0
    functionLinenumber: 6785
    functionLinenumberEnd: 6787
    functionName: Catch::TestCaseTracking::TrackerBase::moveToThis
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - setCurrentTracker
    linkageType: ''
    returnType: void
    signature: void TrackerBase::moveToThis()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6790,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: ITracker::nameAndLocation
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6791,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6794,1
    - Dst: ITracker*::parent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6795,1
    - Dst: static_cast<SectionTracker&>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6798,1
    - Dst: Catch::TestCaseTracking::SectionTracker::addNextFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' nameAndLocation'
    - ' ctx'
    - parent
    argTypes:
    - NameAndLocation
    - TrackerContext
    - ITracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6801
      start: 6789
    functionDepth: 2
    functionLinenumber: 6789
    functionLinenumberEnd: 6801
    functionName: Catch::TestCaseTracking::SectionTracker::SectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ITracker::nameAndLocation
    - StringRef
    - ITracker*::isSectionTracker
    - static_cast<SectionTracker&>
    - CATCH_MOVE
    - trim
    - Catch::TestCaseTracking::SectionTracker::addNextFilters
    - ITracker*::parent
    linkageType: ''
    returnType: void
    signature: void SectionTracker::SectionTracker( NameAndLocation&& nameAndLocation,
      TrackerContext& ctx, ITracker* parent )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6806,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6807,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6808,1
    - Dst: Catch::TestCaseTracking::TrackerBase::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6812
      start: 6803
    functionDepth: 1
    functionLinenumber: 6803
    functionLinenumberEnd: 6812
    functionName: Catch::TestCaseTracking::SectionTracker::isComplete
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::TestCaseTracking::TrackerBase::isComplete
    - begin
    - empty
    - end
    - std::find
    linkageType: ''
    returnType: bool
    signature: bool SectionTracker::isComplete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6814
      start: 6814
    functionDepth: 0
    functionLinenumber: 6814
    functionLinenumberEnd: 6814
    functionName: Catch::TestCaseTracking::SectionTracker::isSectionTracker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SectionTracker::isSectionTracker() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: currentTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6819,1
    - Dst: findChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6821,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6822,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6823,1
    - Dst: ITracker*::isSectionTracker
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6823,1
    - Dst: static_cast<SectionTracker*>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6824,1
    - Dst: Catch::Detail::make_unique<SectionTracker>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6826,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6827,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6831,1
    - Dst: addChild
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6832,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6832,1
    - Dst: completedCycle
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6835,1
    - Dst: SectionTracker*::tryOpen
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' ctx'
    - ' nameAndLocation'
    argTypes:
    - TrackerContext
    - NameAndLocationRef
    assertStmts:
    - condition: ( childTracker->isSectionTracker() )
      pos:
        line_end: 6822
        line_start: 6822
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( childTracker )
      pos:
        line_end: 6821
        line_start: 6821
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 6840
      start: 6816
    functionDepth: 1
    functionLinenumber: 6816
    functionLinenumberEnd: 6840
    functionName: '& SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef
      const& nameAndLocation )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - auto::get
    - completedCycle
    - ITracker*::isSectionTracker
    - currentTracker
    - SectionTracker*::tryOpen
    - addChild
    - CATCH_MOVE
    - static_cast<std::string>
    - static_cast<SectionTracker*>
    - Catch::Detail::make_unique<SectionTracker>
    - findChild
    linkageType: ''
    returnType: SectionTracker
    signature: SectionTracker & SectionTracker::acquire( TrackerContext& ctx, NameAndLocationRef
      const& nameAndLocation )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestCaseTracking::SectionTracker::isComplete
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6843,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6845
      start: 6842
    functionDepth: 2
    functionLinenumber: 6842
    functionLinenumberEnd: 6845
    functionName: Catch::TestCaseTracking::SectionTracker::tryOpen
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - open
    - Catch::TestCaseTracking::SectionTracker::isComplete
    linkageType: ''
    returnType: void
    signature: void SectionTracker::tryOpen()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6848,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6849,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6850,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6851,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6854
      start: 6847
    functionDepth: 1
    functionLinenumber: 6847
    functionLinenumberEnd: 6854
    functionName: Catch::TestCaseTracking::SectionTracker::addInitialFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - begin
    - insert
    - empty
    - end
    - reserve
    - emplace_back
    - size
    linkageType: ''
    returnType: void
    signature: void SectionTracker::addInitialFilters( std::vector<std::string> const&
      filters )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6856,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<StringRef>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6858
      start: 6855
    functionDepth: 1
    functionLinenumber: 6855
    functionLinenumberEnd: 6858
    functionName: Catch::TestCaseTracking::SectionTracker::addNextFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - insert
    - end
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: void SectionTracker::addNextFilters( std::vector<StringRef> const&
      filters )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6862
      start: 6860
    functionDepth: 0
    functionLinenumber: 6860
    functionLinenumberEnd: 6862
    functionName: Catch::TestCaseTracking::SectionTracker::trimmedName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef SectionTracker::trimmedName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6883
      start: 6877
    functionDepth: 1
    functionLinenumber: 6877
    functionLinenumberEnd: 6883
    functionName: Catch::throw_test_failure_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void throw_test_failure_exception()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSkipException
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6887,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6891
      start: 6885
    functionDepth: 1
    functionLinenumber: 6885
    functionLinenumberEnd: 6891
    functionName: Catch::throw_test_skip_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestSkipException
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void throw_test_skip_exception()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6883
      start: 6877
    functionDepth: 1
    functionLinenumber: 6877
    functionLinenumberEnd: 6883
    functionName: Catch::throw_test_failure_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void throw_test_failure_exception()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSkipException
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6887,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6891
      start: 6885
    functionDepth: 1
    functionLinenumber: 6885
    functionLinenumberEnd: 6891
    functionName: Catch::throw_test_skip_exception
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestSkipException
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void throw_test_skip_exception()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6901
      start: 6901
    functionDepth: 0
    functionLinenumber: 6901
    functionLinenumberEnd: 6901
    functionName: ITestInvoker::~ITestInvoker()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITestInvoker::~ITestInvoker()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6905,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6911,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6911,1
    - Dst: std::make_reverse_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6913,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6913,1
    - Dst: std::make_reverse_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6914,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6914,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6920,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6922,1
    - Dst: auto::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6927,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6928,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - classOrMethodName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6930
      start: 6904
    functionDepth: 2
    functionLinenumber: 6904
    functionLinenumberEnd: 6930
    functionName: Catch::extractClassName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - std::make_reverse_iterator
    - auto::substr
    - StringRef::size
    - std::find
    - static_cast<std::size_t>
    - Catch::startsWith
    - auto::end
    - auto::begin
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractClassName( StringRef classOrMethodName )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - testAsFunction
    argTypes:
    - TestType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6938
      start: 6937
    functionDepth: 0
    functionLinenumber: 6937
    functionLinenumberEnd: 6938
    functionName: Catch::TestInvokerAsFunction::TestInvokerAsFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsFunction( TestType testAsFunction ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_testAsFunction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6940
      start: 6940
    functionDepth: 0
    functionLinenumber: 6940
    functionLinenumberEnd: 6940
    functionName: Catch::TestInvokerAsFunction::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_testAsFunction
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6905,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6911,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6911,1
    - Dst: std::make_reverse_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6913,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6913,1
    - Dst: std::make_reverse_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6914,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6914,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6920,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6922,1
    - Dst: auto::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6927,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6928,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - classOrMethodName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6930
      start: 6904
    functionDepth: 2
    functionLinenumber: 6904
    functionLinenumberEnd: 6930
    functionName: Catch::extractClassName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - std::make_reverse_iterator
    - auto::substr
    - StringRef::size
    - std::find
    - static_cast<std::size_t>
    - Catch::startsWith
    - auto::end
    - auto::begin
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractClassName( StringRef classOrMethodName )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - testAsFunction
    argTypes:
    - TestType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6938
      start: 6937
    functionDepth: 0
    functionLinenumber: 6937
    functionLinenumberEnd: 6938
    functionName: Catch::TestInvokerAsFunction::TestInvokerAsFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsFunction( TestType testAsFunction ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_testAsFunction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6940
      start: 6940
    functionDepth: 0
    functionLinenumber: 6940
    functionLinenumberEnd: 6940
    functionName: Catch::TestInvokerAsFunction::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_testAsFunction
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsFunction>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6947
      start: 6945
    functionDepth: 0
    functionLinenumber: 6945
    functionLinenumberEnd: 6947
    functionName: Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsFunction>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void(*testAsFunction)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6951,1
    - Dst: makeTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6953,1
    - Dst: extractClassName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - invoker
    - ' lineInfo'
    - classOrMethod
    - ' nameAndTags'
    argTypes:
    - Detail::unique_ptr<ITestInvoker>
    - SourceLineInfo
    - StringRef
    - NameAndTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6959
      start: 6949
    functionDepth: 1
    functionLinenumber: 6949
    functionLinenumberEnd: 6959
    functionName: Catch::AutoReg::AutoReg
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - makeTestCaseInfo
    - extractClassName
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: void AutoReg::AutoReg( Detail::unique_ptr<ITestInvoker> invoker, SourceLineInfo
      const& lineInfo, StringRef classOrMethod, NameAndTags const& nameAndTags ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6901
      start: 6901
    functionDepth: 0
    functionLinenumber: 6901
    functionLinenumberEnd: 6901
    functionName: ITestInvoker::~ITestInvoker()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ITestInvoker::~ITestInvoker()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6905,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6911,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6911,1
    - Dst: std::make_reverse_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6913,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6913,1
    - Dst: std::make_reverse_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6914,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6914,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6920,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6922,1
    - Dst: auto::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6927,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6928,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - classOrMethodName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6930
      start: 6904
    functionDepth: 2
    functionLinenumber: 6904
    functionLinenumberEnd: 6930
    functionName: Catch::extractClassName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - std::make_reverse_iterator
    - auto::substr
    - StringRef::size
    - std::find
    - static_cast<std::size_t>
    - Catch::startsWith
    - auto::end
    - auto::begin
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractClassName( StringRef classOrMethodName )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - testAsFunction
    argTypes:
    - TestType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6938
      start: 6937
    functionDepth: 0
    functionLinenumber: 6937
    functionLinenumberEnd: 6938
    functionName: Catch::TestInvokerAsFunction::TestInvokerAsFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsFunction( TestType testAsFunction ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_testAsFunction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6940
      start: 6940
    functionDepth: 0
    functionLinenumber: 6940
    functionLinenumberEnd: 6940
    functionName: Catch::TestInvokerAsFunction::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_testAsFunction
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6905,1
    - Dst: StringRef::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6911,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6911,1
    - Dst: std::make_reverse_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6913,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6913,1
    - Dst: std::make_reverse_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6914,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6914,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6920,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6922,1
    - Dst: auto::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6927,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6928,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - classOrMethodName
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6930
      start: 6904
    functionDepth: 2
    functionLinenumber: 6904
    functionLinenumberEnd: 6930
    functionName: Catch::extractClassName
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::substr
    - std::make_reverse_iterator
    - auto::substr
    - StringRef::size
    - std::find
    - static_cast<std::size_t>
    - Catch::startsWith
    - auto::end
    - auto::begin
    linkageType: ''
    returnType: StringRef
    signature: StringRef extractClassName( StringRef classOrMethodName )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - testAsFunction
    argTypes:
    - TestType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6938
      start: 6937
    functionDepth: 0
    functionLinenumber: 6937
    functionLinenumberEnd: 6938
    functionName: Catch::TestInvokerAsFunction::TestInvokerAsFunction
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestInvokerAsFunction( TestType testAsFunction ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_testAsFunction
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6940
      start: 6940
    functionDepth: 0
    functionLinenumber: 6940
    functionLinenumberEnd: 6940
    functionName: Catch::TestInvokerAsFunction::invoke
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_testAsFunction
    linkageType: ''
    returnType: void
    signature: void invoke() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestInvokerAsFunction>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6947
      start: 6945
    functionDepth: 0
    functionLinenumber: 6945
    functionLinenumberEnd: 6947
    functionName: Catch::makeTestInvoker
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Detail::make_unique<TestInvokerAsFunction>
    linkageType: ''
    returnType: Detail::unique_ptr<ITestInvoker>
    signature: Detail::unique_ptr<ITestInvoker> makeTestInvoker( void(*testAsFunction)()
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6951,1
    - Dst: makeTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6953,1
    - Dst: extractClassName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6954,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - invoker
    - ' lineInfo'
    - classOrMethod
    - ' nameAndTags'
    argTypes:
    - Detail::unique_ptr<ITestInvoker>
    - SourceLineInfo
    - StringRef
    - NameAndTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6959
      start: 6949
    functionDepth: 1
    functionLinenumber: 6949
    functionLinenumberEnd: 6959
    functionName: Catch::AutoReg::AutoReg
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - makeTestCaseInfo
    - extractClassName
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: void AutoReg::AutoReg( Detail::unique_ptr<ITestInvoker> invoker, SourceLineInfo
      const& lineInfo, StringRef classOrMethod, NameAndTags const& nameAndTags ) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' tagAliases'
    argTypes:
    - ITagAliasRegistry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6972
      start: 6972
    functionDepth: 0
    functionLinenumber: 6972
    functionLinenumberEnd: 6972
    functionName: Catch::TestSpecParser::TestSpecParser
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::TestSpecParser( ITagAliasRegistry const& tagAliases
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expandAliases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6977,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6978,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6979,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6979,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6980,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6980,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6983,1
    - Dst: visitChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6985,1
    - Dst: m_invalidSpecs::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6986,1
    - Dst: endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6991
      start: 6974
    functionDepth: 1
    functionLinenumber: 6974
    functionLinenumberEnd: 6991
    functionName: '& TestSpecParser::parse( std::string const& arg )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - expandAliases
    - endMode
    - m_invalidSpecs::push_back
    - visitChar
    - reserve
    - clear
    - size
    linkageType: ''
    returnType: TestSpecParser
    signature: TestSpecParser & TestSpecParser::parse( std::string const& arg )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::addFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6993,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6995
      start: 6992
    functionDepth: 1
    functionLinenumber: 6992
    functionLinenumberEnd: 6995
    functionName: Catch::TestSpecParser::testSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::TestSpecParser::addFilter
    linkageType: ''
    returnType: TestSpec
    signature: TestSpec TestSpecParser::testSpec()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6998,1
    - Dst: Catch::TestSpecParser::addCharToPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6999,1
    - Dst: Catch::TestSpecParser::separate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7002,1
    - Dst: Catch::TestSpecParser::processNoneChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7007,1
    - Dst: Catch::TestSpecParser::processNameChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7011,1
    - Dst: Catch::TestSpecParser::endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7014,1
    - Dst: Catch::TestSpecParser::addCharToPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7015,1
    - Dst: Catch::TestSpecParser::processOtherChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7020,1
    - Dst: Catch::TestSpecParser::isControlChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7026,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7031
      start: 6996
    functionDepth: 1
    functionLinenumber: 6996
    functionLinenumberEnd: 7031
    functionName: Catch::TestSpecParser::visitChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestSpecParser::endMode
    - Catch::TestSpecParser::processNameChar
    - Catch::TestSpecParser::isControlChar
    - Catch::TestSpecParser::processOtherChar
    - Catch::TestSpecParser::processNoneChar
    - Catch::TestSpecParser::separate
    - Catch::TestSpecParser::addCharToPattern
    - Catch::TestSpecParser::escape
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::visitChar( char c )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7042,1
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7045,1
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7051
      start: 7034
    functionDepth: 1
    functionLinenumber: 7034
    functionLinenumberEnd: 7051
    functionName: Catch::TestSpecParser::processNoneChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::TestSpecParser::startNewMode
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::processNoneChar( char c )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7057,1
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7060
      start: 7052
    functionDepth: 1
    functionLinenumber: 7052
    functionLinenumberEnd: 7060
    functionName: Catch::TestSpecParser::processNameChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::TestSpecParser::endMode
    - Catch::TestSpecParser::startNewMode
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::processNameChar( char c )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::isControlChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7062,1
    - Dst: Catch::TestSpecParser::endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7067
      start: 7061
    functionDepth: 1
    functionLinenumber: 7061
    functionLinenumberEnd: 7067
    functionName: Catch::TestSpecParser::processOtherChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::TestSpecParser::endMode
    - Catch::TestSpecParser::isControlChar
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::processOtherChar( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7070
      start: 7068
    functionDepth: 0
    functionLinenumber: 7068
    functionLinenumberEnd: 7070
    functionName: Catch::TestSpecParser::startNewMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::startNewMode( Mode mode )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::addNamePattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7075,1
    - Dst: Catch::TestSpecParser::addTagPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7077,1
    - Dst: Catch::TestSpecParser::revertBackToLastMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7079,1
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7085
      start: 7071
    functionDepth: 1
    functionLinenumber: 7071
    functionLinenumberEnd: 7085
    functionName: Catch::TestSpecParser::endMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::TestSpecParser::addNamePattern
    - Catch::TestSpecParser::revertBackToLastMode
    - Catch::TestSpecParser::startNewMode
    - Catch::TestSpecParser::addTagPattern
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::endMode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::saveLastMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7087,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7090
      start: 7086
    functionDepth: 1
    functionLinenumber: 7086
    functionLinenumberEnd: 7090
    functionName: Catch::TestSpecParser::escape
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - Catch::TestSpecParser::saveLastMode
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::escape()
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7106
      start: 7091
    functionDepth: 0
    functionLinenumber: 7091
    functionLinenumberEnd: 7106
    functionName: Catch::TestSpecParser::isControlChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::isControlChar( char c ) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_required::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7109,1
    - Dst: m_forbidden::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7109,1
    - Dst: m_filters::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7110,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7110,1
    - Dst: Catch::TestSpec::matchesByFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7113
      start: 7108
    functionDepth: 3
    functionLinenumber: 7108
    functionLinenumberEnd: 7113
    functionName: Catch::TestSpecParser::addFilter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - m_required::empty
    - m_filters::push_back
    - CATCH_MOVE
    - Catch::TestSpec::matchesByFilter
    - m_forbidden::empty
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::addFilter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7117
      start: 7115
    functionDepth: 0
    functionLinenumber: 7115
    functionLinenumberEnd: 7117
    functionName: Catch::TestSpecParser::saveLastMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::saveLastMode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7121
      start: 7119
    functionDepth: 0
    functionLinenumber: 7119
    functionLinenumberEnd: 7121
    functionName: Catch::TestSpecParser::revertBackToLastMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::revertBackToLastMode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7127,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7128,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7129,1
    - Dst: Catch::TestSpecParser::endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7133,1
    - Dst: Catch::TestSpecParser::addFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7136
      start: 7123
    functionDepth: 4
    functionLinenumber: 7123
    functionLinenumberEnd: 7136
    functionName: Catch::TestSpecParser::separate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::TestSpecParser::addFilter
    - Catch::TestSpecParser::endMode
    - size
    - clear
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::separate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7140,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7141,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7141,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7142,1
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7143,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7145,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7152
      start: 7138
    functionDepth: 1
    functionLinenumber: 7138
    functionLinenumberEnd: 7152
    functionName: Catch::TestSpecParser::preprocessPattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::substr
    - startsWith
    - size
    - clear
    linkageType: ''
    returnType: std::string
    signature: std::string TestSpecParser::preprocessPattern()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::preprocessPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7155,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7157,1
    - Dst: m_forbidden::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7159,1
    - Dst: Detail::make_unique<TestSpec::NamePattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7159,1
    - Dst: m_required::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7161,1
    - Dst: Detail::make_unique<TestSpec::NamePattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7161,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7167
      start: 7154
    functionDepth: 2
    functionLinenumber: 7154
    functionLinenumberEnd: 7167
    functionName: Catch::TestSpecParser::addNamePattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - m_required::emplace_back
    - auto::empty
    - Detail::make_unique<TestSpec::NamePattern>
    - Catch::TestSpecParser::preprocessPattern
    - clear
    - m_forbidden::emplace_back
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::addNamePattern()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::preprocessPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7170,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7172,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7175,1
    - Dst: auto::erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7176,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7176,1
    - Dst: m_forbidden::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7178,1
    - Dst: Detail::make_unique<TestSpec::TagPattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7178,1
    - Dst: m_required::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7180,1
    - Dst: Detail::make_unique<TestSpec::TagPattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7180,1
    - Dst: m_forbidden::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7184,1
    - Dst: Detail::make_unique<TestSpec::TagPattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7184,1
    - Dst: m_required::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7186,1
    - Dst: Detail::make_unique<TestSpec::TagPattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7186,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7192
      start: 7169
    functionDepth: 2
    functionLinenumber: 7169
    functionLinenumberEnd: 7192
    functionName: Catch::TestSpecParser::addTagPattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Detail::make_unique<TestSpec::TagPattern>
    - m_required::emplace_back
    - auto::empty
    - auto::size
    - Catch::TestSpecParser::preprocessPattern
    - auto::erase
    - clear
    - auto::begin
    - m_forbidden::emplace_back
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::addTagPattern()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' tagAliases'
    argTypes:
    - ITagAliasRegistry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6972
      start: 6972
    functionDepth: 0
    functionLinenumber: 6972
    functionLinenumberEnd: 6972
    functionName: Catch::TestSpecParser::TestSpecParser
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::TestSpecParser( ITagAliasRegistry const& tagAliases
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expandAliases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6977,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6978,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6979,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6979,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6980,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6980,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6983,1
    - Dst: visitChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6985,1
    - Dst: m_invalidSpecs::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6986,1
    - Dst: endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6991
      start: 6974
    functionDepth: 1
    functionLinenumber: 6974
    functionLinenumberEnd: 6991
    functionName: '& TestSpecParser::parse( std::string const& arg )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - expandAliases
    - endMode
    - m_invalidSpecs::push_back
    - visitChar
    - reserve
    - clear
    - size
    linkageType: ''
    returnType: TestSpecParser
    signature: TestSpecParser & TestSpecParser::parse( std::string const& arg )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::addFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6993,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6995
      start: 6992
    functionDepth: 4
    functionLinenumber: 6992
    functionLinenumberEnd: 6995
    functionName: Catch::TestSpecParser::testSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::TestSpecParser::addFilter
    linkageType: ''
    returnType: TestSpec
    signature: TestSpec TestSpecParser::testSpec()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6998,1
    - Dst: Catch::TestSpecParser::addCharToPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:6999,1
    - Dst: Catch::TestSpecParser::separate
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7002,1
    - Dst: Catch::TestSpecParser::processNoneChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7007,1
    - Dst: Catch::TestSpecParser::processNameChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7011,1
    - Dst: Catch::TestSpecParser::endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7014,1
    - Dst: Catch::TestSpecParser::addCharToPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7015,1
    - Dst: Catch::TestSpecParser::processOtherChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7020,1
    - Dst: Catch::TestSpecParser::isControlChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7026,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7031
      start: 6996
    functionDepth: 5
    functionLinenumber: 6996
    functionLinenumberEnd: 7031
    functionName: Catch::TestSpecParser::visitChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TestSpecParser::endMode
    - Catch::TestSpecParser::processNameChar
    - Catch::TestSpecParser::isControlChar
    - Catch::TestSpecParser::processOtherChar
    - Catch::TestSpecParser::processNoneChar
    - Catch::TestSpecParser::separate
    - Catch::TestSpecParser::addCharToPattern
    - Catch::TestSpecParser::escape
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::visitChar( char c )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7042,1
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7045,1
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7051
      start: 7034
    functionDepth: 1
    functionLinenumber: 7034
    functionLinenumberEnd: 7051
    functionName: Catch::TestSpecParser::processNoneChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::TestSpecParser::startNewMode
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::processNoneChar( char c )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7057,1
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7060
      start: 7052
    functionDepth: 2
    functionLinenumber: 7052
    functionLinenumberEnd: 7060
    functionName: Catch::TestSpecParser::processNameChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::TestSpecParser::endMode
    - Catch::TestSpecParser::startNewMode
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::processNameChar( char c )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::isControlChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7062,1
    - Dst: Catch::TestSpecParser::endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7067
      start: 7061
    functionDepth: 2
    functionLinenumber: 7061
    functionLinenumberEnd: 7067
    functionName: Catch::TestSpecParser::processOtherChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::TestSpecParser::endMode
    - Catch::TestSpecParser::isControlChar
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::processOtherChar( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7070
      start: 7068
    functionDepth: 0
    functionLinenumber: 7068
    functionLinenumberEnd: 7070
    functionName: Catch::TestSpecParser::startNewMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::startNewMode( Mode mode )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::addNamePattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7075,1
    - Dst: Catch::TestSpecParser::addTagPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7077,1
    - Dst: Catch::TestSpecParser::revertBackToLastMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7079,1
    - Dst: Catch::TestSpecParser::startNewMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7085
      start: 7071
    functionDepth: 3
    functionLinenumber: 7071
    functionLinenumberEnd: 7085
    functionName: Catch::TestSpecParser::endMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - Catch::TestSpecParser::addNamePattern
    - Catch::TestSpecParser::revertBackToLastMode
    - Catch::TestSpecParser::startNewMode
    - Catch::TestSpecParser::addTagPattern
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::endMode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::saveLastMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7087,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7090
      start: 7086
    functionDepth: 1
    functionLinenumber: 7086
    functionLinenumberEnd: 7090
    functionName: Catch::TestSpecParser::escape
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - Catch::TestSpecParser::saveLastMode
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::escape()
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7106
      start: 7091
    functionDepth: 0
    functionLinenumber: 7091
    functionLinenumberEnd: 7106
    functionName: Catch::TestSpecParser::isControlChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::isControlChar( char c ) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_required::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7109,1
    - Dst: m_forbidden::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7109,1
    - Dst: m_filters::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7110,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7110,1
    - Dst: Catch::TestSpec::matchesByFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7113
      start: 7108
    functionDepth: 3
    functionLinenumber: 7108
    functionLinenumberEnd: 7113
    functionName: Catch::TestSpecParser::addFilter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - m_required::empty
    - m_filters::push_back
    - CATCH_MOVE
    - Catch::TestSpec::matchesByFilter
    - m_forbidden::empty
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::addFilter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7117
      start: 7115
    functionDepth: 0
    functionLinenumber: 7115
    functionLinenumberEnd: 7117
    functionName: Catch::TestSpecParser::saveLastMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::saveLastMode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7121
      start: 7119
    functionDepth: 0
    functionLinenumber: 7119
    functionLinenumberEnd: 7121
    functionName: Catch::TestSpecParser::revertBackToLastMode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::revertBackToLastMode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7127,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7128,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7129,1
    - Dst: Catch::TestSpecParser::endMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7133,1
    - Dst: Catch::TestSpecParser::addFilter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7136
      start: 7123
    functionDepth: 4
    functionLinenumber: 7123
    functionLinenumberEnd: 7136
    functionName: Catch::TestSpecParser::separate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::TestSpecParser::addFilter
    - Catch::TestSpecParser::endMode
    - size
    - clear
    linkageType: ''
    returnType: bool
    signature: bool TestSpecParser::separate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7140,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7141,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7141,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7142,1
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7143,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7145,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7152
      start: 7138
    functionDepth: 1
    functionLinenumber: 7138
    functionLinenumberEnd: 7152
    functionName: Catch::TestSpecParser::preprocessPattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - std::string::substr
    - startsWith
    - size
    - clear
    linkageType: ''
    returnType: std::string
    signature: std::string TestSpecParser::preprocessPattern()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::preprocessPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7155,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7157,1
    - Dst: m_forbidden::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7159,1
    - Dst: Detail::make_unique<TestSpec::NamePattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7159,1
    - Dst: m_required::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7161,1
    - Dst: Detail::make_unique<TestSpec::NamePattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7161,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7167
      start: 7154
    functionDepth: 2
    functionLinenumber: 7154
    functionLinenumberEnd: 7167
    functionName: Catch::TestSpecParser::addNamePattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - m_required::emplace_back
    - auto::empty
    - Detail::make_unique<TestSpec::NamePattern>
    - Catch::TestSpecParser::preprocessPattern
    - clear
    - m_forbidden::emplace_back
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::addNamePattern()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TestSpecParser::preprocessPattern
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7170,1
    - Dst: auto::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7172,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7175,1
    - Dst: auto::erase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7176,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7176,1
    - Dst: m_forbidden::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7178,1
    - Dst: Detail::make_unique<TestSpec::TagPattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7178,1
    - Dst: m_required::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7180,1
    - Dst: Detail::make_unique<TestSpec::TagPattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7180,1
    - Dst: m_forbidden::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7184,1
    - Dst: Detail::make_unique<TestSpec::TagPattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7184,1
    - Dst: m_required::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7186,1
    - Dst: Detail::make_unique<TestSpec::TagPattern>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7186,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7192
      start: 7169
    functionDepth: 2
    functionLinenumber: 7169
    functionLinenumberEnd: 7192
    functionName: Catch::TestSpecParser::addTagPattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Detail::make_unique<TestSpec::TagPattern>
    - m_required::emplace_back
    - auto::empty
    - auto::size
    - Catch::TestSpecParser::preprocessPattern
    - auto::erase
    - clear
    - auto::begin
    - m_forbidden::emplace_back
    linkageType: ''
    returnType: void
    signature: void TestSpecParser::addTagPattern()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7205
      start: 7203
    functionDepth: 0
    functionLinenumber: 7203
    functionLinenumberEnd: 7205
    functionName: isWhitespace
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isWhitespace( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memchr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7210
      start: 7207
    functionDepth: 0
    functionLinenumber: 7207
    functionLinenumberEnd: 7210
    functionName: isBreakableBefore
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::memchr
    linkageType: ''
    returnType: bool
    signature: bool isBreakableBefore( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memchr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7215
      start: 7212
    functionDepth: 0
    functionLinenumber: 7212
    functionLinenumberEnd: 7215
    functionName: isBreakableAfter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::memchr
    linkageType: ''
    returnType: bool
    signature: bool isBreakableAfter( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7205
      start: 7203
    functionDepth: 0
    functionLinenumber: 7203
    functionLinenumberEnd: 7205
    functionName: isWhitespace
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isWhitespace( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memchr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7210
      start: 7207
    functionDepth: 0
    functionLinenumber: 7207
    functionLinenumberEnd: 7210
    functionName: isBreakableBefore
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::memchr
    linkageType: ''
    returnType: bool
    signature: bool isBreakableBefore( char c )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memchr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7215
      start: 7212
    functionDepth: 0
    functionLinenumber: 7212
    functionLinenumberEnd: 7215
    functionName: isBreakableAfter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::memchr
    linkageType: ''
    returnType: bool
    signature: bool isBreakableAfter( char c )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7222,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7222,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7224,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7225,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7227,1
    - Dst: isdigit
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7228,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7231,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7245
      start: 7221
    functionDepth: 1
    functionLinenumber: 7221
    functionLinenumberEnd: 7245
    functionName: Catch::TextFlow::AnsiSkippingString::preprocessString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    - Catch::TextFlow::AnsiSkippingString::end
    - Catch::TextFlow::AnsiSkippingString::begin
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::preprocessString()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TextFlow::AnsiSkippingString::preprocessString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7250
      start: 7247
    functionDepth: 2
    functionLinenumber: 7247
    functionLinenumberEnd: 7250
    functionName: Catch::TextFlow::AnsiSkippingString::AnsiSkippingString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TextFlow::AnsiSkippingString::preprocessString
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::AnsiSkippingString( std::string const& text
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7253,1
    - Dst: Catch::TextFlow::AnsiSkippingString::preprocessString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7255
      start: 7252
    functionDepth: 2
    functionLinenumber: 7252
    functionLinenumberEnd: 7255
    functionName: Catch::TextFlow::AnsiSkippingString::AnsiSkippingString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::TextFlow::AnsiSkippingString::preprocessString
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::AnsiSkippingString( std::string&& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7259
      start: 7257
    functionDepth: 0
    functionLinenumber: 7257
    functionLinenumberEnd: 7259
    functionName: Catch::TextFlow::AnsiSkippingString::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: AnsiSkippingString::const_iterator
    signature: AnsiSkippingString::const_iterator AnsiSkippingString::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7263
      start: 7261
    functionDepth: 0
    functionLinenumber: 7261
    functionLinenumberEnd: 7263
    functionName: Catch::TextFlow::AnsiSkippingString::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: AnsiSkippingString::const_iterator
    signature: AnsiSkippingString::const_iterator AnsiSkippingString::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: std::transform
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7280
      start: 7265
    functionDepth: 1
    functionLinenumber: 7265
    functionLinenumberEnd: 7280
    functionName: Catch::TextFlow::AnsiSkippingString::substring
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::transform
    - Catch::TextFlow::AnsiSkippingString::begin
    - std::string
    - auto::end
    - auto::begin
    linkageType: ''
    returnType: std::string
    signature: "std::string AnsiSkippingString::substring( const_iterator begin,\n
      \                                                  const_iterator end ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7285,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7286,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7288,1
    - Dst: isdigit
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7289,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7300
      start: 7282
    functionDepth: 0
    functionLinenumber: 7282
    functionLinenumberEnd: 7300
    functionName: AnsiSkippingString::const_iterator::tryParseAnsiEscapes()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    - end
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::tryParseAnsiEscapes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7303,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7303,1
    - Dst: tryParseAnsiEscapes
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_it != m_string->end() )
      pos:
        line_end: 7302
        line_start: 7302
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7306
      start: 7302
    functionDepth: 0
    functionLinenumber: 7302
    functionLinenumberEnd: 7306
    functionName: AnsiSkippingString::const_iterator::advance()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - end
    - tryParseAnsiEscapes
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::advance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7309,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7309,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7315,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7315,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7320,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7320,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7308
        line_start: 7308
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7319
        line_start: 7319
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7314
        line_start: 7314
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( *m_it == '\033' )
      pos:
        line_end: 7320
        line_start: 7320
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7324
      start: 7308
    functionDepth: 0
    functionLinenumber: 7308
    functionLinenumberEnd: 7324
    functionName: AnsiSkippingString::const_iterator::unadvance()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - begin
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::unadvance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7328,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7329,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7330,1
    - Dst: AnsiSkippingString::const_iterator::oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7330,1
    - Dst: isBreakableBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7331,1
    - Dst: isBreakableAfter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7332,1
    - Dst: AnsiSkippingString::const_iterator::oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ' line'
    - it
    argTypes:
    - AnsiSkippingString
    - AnsiSkippingString::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7333
      start: 7326
    functionDepth: 1
    functionLinenumber: 7326
    functionLinenumberEnd: 7333
    functionName: Catch::TextFlow::isBoundary
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - end
    - AnsiSkippingString::const_iterator::oneBefore
    - isBreakableAfter
    - isBreakableBefore
    linkageType: ''
    returnType: bool
    signature: "bool isBoundary( AnsiSkippingString const& line,\n                                AnsiSkippingString::const_iterator
      it )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7340,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7345,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7345,1
    - Dst: indentSize
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7348,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7350,1
    - Dst: isBoundary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7367,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7372,1
    - Dst: oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7372,1
    - Dst: oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_lineStart != current_line.end() )
      pos:
        line_end: 7344
        line_start: 7344
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7384
      start: 7335
    functionDepth: 1
    functionLinenumber: 7335
    functionLinenumberEnd: 7384
    functionName: Column::const_iterator::calcLength()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - assert
    - end
    - oneBefore
    - isBoundary
    - indentSize
    linkageType: ''
    returnType: void
    signature: void Column::const_iterator::calcLength()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7391
      start: 7386
    functionDepth: 0
    functionLinenumber: 7386
    functionLinenumberEnd: 7391
    functionName: Column::const_iterator::indentSize() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_string::begin
    linkageType: ''
    returnType: size_t
    signature: size_t Column::const_iterator::indentSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: indentSize
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7397,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7399,1
    - Dst: m_string::substring
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7401,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - AnsiSkippingString::const_iterator
    - AnsiSkippingString::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7405
      start: 7393
    functionDepth: 0
    functionLinenumber: 7393
    functionLinenumberEnd: 7405
    functionName: "Column::const_iterator::addIndentAndSuffix(\n            AnsiSkippingString::const_iterator
      start,\n            AnsiSkippingString::const_iterator end ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - std::string::append
    - indentSize
    - m_string::substring
    linkageType: ''
    returnType: std::string
    signature: "std::string Column::const_iterator::addIndentAndSuffix(\n            AnsiSkippingString::const_iterator
      start,\n            AnsiSkippingString::const_iterator end ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7409,1
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7410,1
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7411,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7412,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7413,1
    - Dst: calcLength
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7415,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' column'
    argTypes:
    - Column
    assertStmts:
    - condition: ( m_column.m_width > m_column.m_indent )
      pos:
        line_end: 7411
        line_start: 7411
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: "( m_column.m_initialIndent == std::string::npos ||\n                    m_column.m_width
        > m_column.m_initialIndent )"
      pos:
        line_end: 7413
        line_start: 7412
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7419
      start: 7407
    functionDepth: 0
    functionLinenumber: 7407
    functionLinenumberEnd: 7419
    functionName: Column::const_iterator::const_iterator( Column const& column )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_string::end
    - assert
    - calcLength
    - m_string::begin
    linkageType: ''
    returnType: void
    signature: void Column::const_iterator::const_iterator( Column const& column )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7422,1
    - Dst: addIndentAndSuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_lineStart <= m_parsedTo )
      pos:
        line_end: 7421
        line_start: 7421
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7424
      start: 7421
    functionDepth: 0
    functionLinenumber: 7421
    functionLinenumberEnd: 7424
    functionName: Column::const_iterator::operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - addIndentAndSuffix
    linkageType: ''
    returnType: std::string
    signature: std::string Column::const_iterator::operator*() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7429,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7432,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7433,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7438,1
    - Dst: calcLength
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7440
      start: 7426
    functionDepth: 1
    functionLinenumber: 7426
    functionLinenumberEnd: 7440
    functionName: '& Column::const_iterator::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - end
    - calcLength
    linkageType: ''
    returnType: Column::const_iterator
    signature: Column::const_iterator & Column::const_iterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7446
      start: 7442
    functionDepth: 0
    functionLinenumber: 7442
    functionLinenumberEnd: 7446
    functionName: Column::const_iterator::operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column::const_iterator
    signature: Column::const_iterator Column::const_iterator::operator++( int )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' col'
    argTypes:
    - std::ostream
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7448
    functionDepth: 0
    functionLinenumber: 7448
    functionLinenumberEnd: 7459
    functionName: '& operator<<( std::ostream& os, Column const& col )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& os, Column const& col )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Column::width
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spaceWidth
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7465
      start: 7461
    functionDepth: 0
    functionLinenumber: 7461
    functionLinenumberEnd: 7465
    functionName: Catch::TextFlow::Spacer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Column::width
    linkageType: ''
    returnType: Column
    signature: Column Spacer( size_t spaceWidth )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7470,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7470,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7472,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' columns'
    argTypes:
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7474
      start: 7467
    functionDepth: 1
    functionLinenumber: 7467
    functionLinenumberEnd: 7474
    functionName: Columns::iterator::iterator( Columns const& columns, EndTag )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - reserve
    - end
    - size
    linkageType: ''
    returnType: void
    signature: void Columns::iterator::iterator( Columns const& columns, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7478,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7480,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7480,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7482,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' columns'
    argTypes:
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7484
      start: 7476
    functionDepth: 1
    functionLinenumber: 7476
    functionLinenumberEnd: 7484
    functionName: Columns::iterator::iterator( Columns const& columns )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - reserve
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: void Columns::iterator::iterator( Columns const& columns )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7489,1
    - Dst: width
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7490,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7491,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7496,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7497,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7498,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7498,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7505
      start: 7486
    functionDepth: 1
    functionLinenumber: 7486
    functionLinenumberEnd: 7505
    functionName: Columns::iterator::operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - append
    - end
    - clear
    - width
    - size
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string Columns::iterator::operator*() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7508,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7514
      start: 7507
    functionDepth: 1
    functionLinenumber: 7507
    functionLinenumberEnd: 7514
    functionName: '& Columns::iterator::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - end
    - size
    linkageType: ''
    returnType: Columns::iterator
    signature: Columns::iterator & Columns::iterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7520
      start: 7516
    functionDepth: 0
    functionLinenumber: 7516
    functionLinenumberEnd: 7520
    functionName: Columns::iterator::operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns::iterator
    signature: Columns::iterator Columns::iterator::operator++( int )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' cols'
    argTypes:
    - std::ostream
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7533
      start: 7522
    functionDepth: 0
    functionLinenumber: 7522
    functionLinenumberEnd: 7533
    functionName: '& operator<<( std::ostream& os, Columns const& cols )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& os, Columns const& cols )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Column
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7535
    functionDepth: 0
    functionLinenumber: 7535
    functionLinenumberEnd: 7540
    functionName: operator+( Column const& lhs, Column const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Column const& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7543,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Column
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7546
      start: 7541
    functionDepth: 1
    functionLinenumber: 7541
    functionLinenumberEnd: 7546
    functionName: operator+( Column&& lhs, Column&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Column&& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_columns::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7548
    functionDepth: 0
    functionLinenumber: 7548
    functionLinenumberEnd: 7551
    functionName: '& operator+=( Columns& lhs, Column const& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_columns::push_back
    linkageType: ''
    returnType: Columns
    signature: Columns & operator+=( Columns& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_columns::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7553,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7555
      start: 7552
    functionDepth: 1
    functionLinenumber: 7552
    functionLinenumberEnd: 7555
    functionName: '& operator+=( Columns& lhs, Column&& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_columns::push_back
    linkageType: ''
    returnType: Columns
    signature: Columns & operator+=( Columns& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7560
      start: 7556
    functionDepth: 0
    functionLinenumber: 7556
    functionLinenumberEnd: 7560
    functionName: operator+( Columns const& lhs, Column const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Columns const& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7562,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7564
      start: 7561
    functionDepth: 1
    functionLinenumber: 7561
    functionLinenumberEnd: 7564
    functionName: operator+( Columns&& lhs, Column&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Columns&& lhs, Column&& rhs )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7222,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7222,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7224,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7225,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7227,1
    - Dst: isdigit
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7228,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7231,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7245
      start: 7221
    functionDepth: 1
    functionLinenumber: 7221
    functionLinenumberEnd: 7245
    functionName: Catch::TextFlow::AnsiSkippingString::preprocessString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - isdigit
    - Catch::TextFlow::AnsiSkippingString::end
    - Catch::TextFlow::AnsiSkippingString::begin
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::preprocessString()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TextFlow::AnsiSkippingString::preprocessString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7250
      start: 7247
    functionDepth: 2
    functionLinenumber: 7247
    functionLinenumberEnd: 7250
    functionName: Catch::TextFlow::AnsiSkippingString::AnsiSkippingString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TextFlow::AnsiSkippingString::preprocessString
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::AnsiSkippingString( std::string const& text
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7253,1
    - Dst: Catch::TextFlow::AnsiSkippingString::preprocessString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7255
      start: 7252
    functionDepth: 2
    functionLinenumber: 7252
    functionLinenumberEnd: 7255
    functionName: Catch::TextFlow::AnsiSkippingString::AnsiSkippingString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::TextFlow::AnsiSkippingString::preprocessString
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::AnsiSkippingString( std::string&& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7259
      start: 7257
    functionDepth: 0
    functionLinenumber: 7257
    functionLinenumberEnd: 7259
    functionName: Catch::TextFlow::AnsiSkippingString::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: AnsiSkippingString::const_iterator
    signature: AnsiSkippingString::const_iterator AnsiSkippingString::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7263
      start: 7261
    functionDepth: 0
    functionLinenumber: 7261
    functionLinenumberEnd: 7263
    functionName: Catch::TextFlow::AnsiSkippingString::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: AnsiSkippingString::const_iterator
    signature: AnsiSkippingString::const_iterator AnsiSkippingString::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: std::transform
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7280
      start: 7265
    functionDepth: 1
    functionLinenumber: 7265
    functionLinenumberEnd: 7280
    functionName: Catch::TextFlow::AnsiSkippingString::substring
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::transform
    - Catch::TextFlow::AnsiSkippingString::begin
    - std::string
    - auto::end
    - auto::begin
    linkageType: ''
    returnType: std::string
    signature: "std::string AnsiSkippingString::substring( const_iterator begin,\n
      \                                                  const_iterator end ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7285,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7286,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7288,1
    - Dst: isdigit
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7289,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7300
      start: 7282
    functionDepth: 0
    functionLinenumber: 7282
    functionLinenumberEnd: 7300
    functionName: AnsiSkippingString::const_iterator::tryParseAnsiEscapes()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    - end
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::tryParseAnsiEscapes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7303,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7303,1
    - Dst: tryParseAnsiEscapes
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_it != m_string->end() )
      pos:
        line_end: 7302
        line_start: 7302
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7306
      start: 7302
    functionDepth: 0
    functionLinenumber: 7302
    functionLinenumberEnd: 7306
    functionName: AnsiSkippingString::const_iterator::advance()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - end
    - tryParseAnsiEscapes
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::advance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7309,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7309,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7315,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7315,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7320,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7320,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7308
        line_start: 7308
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7319
        line_start: 7319
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7314
        line_start: 7314
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( *m_it == '\033' )
      pos:
        line_end: 7320
        line_start: 7320
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7324
      start: 7308
    functionDepth: 0
    functionLinenumber: 7308
    functionLinenumberEnd: 7324
    functionName: AnsiSkippingString::const_iterator::unadvance()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - begin
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::unadvance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7328,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7329,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7330,1
    - Dst: AnsiSkippingString::const_iterator::oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7330,1
    - Dst: isBreakableBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7331,1
    - Dst: isBreakableAfter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7332,1
    - Dst: AnsiSkippingString::const_iterator::oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ' line'
    - it
    argTypes:
    - AnsiSkippingString
    - AnsiSkippingString::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7333
      start: 7326
    functionDepth: 1
    functionLinenumber: 7326
    functionLinenumberEnd: 7333
    functionName: Catch::TextFlow::isBoundary
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - end
    - AnsiSkippingString::const_iterator::oneBefore
    - isBreakableAfter
    - isBreakableBefore
    linkageType: ''
    returnType: bool
    signature: "bool isBoundary( AnsiSkippingString const& line,\n                                AnsiSkippingString::const_iterator
      it )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7340,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7345,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7345,1
    - Dst: indentSize
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7348,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7350,1
    - Dst: isBoundary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7367,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7372,1
    - Dst: oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7372,1
    - Dst: oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_lineStart != current_line.end() )
      pos:
        line_end: 7344
        line_start: 7344
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7384
      start: 7335
    functionDepth: 1
    functionLinenumber: 7335
    functionLinenumberEnd: 7384
    functionName: Column::const_iterator::calcLength()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - assert
    - end
    - oneBefore
    - isBoundary
    - indentSize
    linkageType: ''
    returnType: void
    signature: void Column::const_iterator::calcLength()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7391
      start: 7386
    functionDepth: 0
    functionLinenumber: 7386
    functionLinenumberEnd: 7391
    functionName: Column::const_iterator::indentSize() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_string::begin
    linkageType: ''
    returnType: size_t
    signature: size_t Column::const_iterator::indentSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: indentSize
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7397,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7399,1
    - Dst: m_string::substring
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7401,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - AnsiSkippingString::const_iterator
    - AnsiSkippingString::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7405
      start: 7393
    functionDepth: 0
    functionLinenumber: 7393
    functionLinenumberEnd: 7405
    functionName: "Column::const_iterator::addIndentAndSuffix(\n            AnsiSkippingString::const_iterator
      start,\n            AnsiSkippingString::const_iterator end ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - std::string::append
    - indentSize
    - m_string::substring
    linkageType: ''
    returnType: std::string
    signature: "std::string Column::const_iterator::addIndentAndSuffix(\n            AnsiSkippingString::const_iterator
      start,\n            AnsiSkippingString::const_iterator end ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7409,1
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7410,1
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7411,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7412,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7413,1
    - Dst: calcLength
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7415,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' column'
    argTypes:
    - Column
    assertStmts:
    - condition: ( m_column.m_width > m_column.m_indent )
      pos:
        line_end: 7411
        line_start: 7411
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: "( m_column.m_initialIndent == std::string::npos ||\n                    m_column.m_width
        > m_column.m_initialIndent )"
      pos:
        line_end: 7413
        line_start: 7412
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7419
      start: 7407
    functionDepth: 0
    functionLinenumber: 7407
    functionLinenumberEnd: 7419
    functionName: Column::const_iterator::const_iterator( Column const& column )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_string::end
    - assert
    - calcLength
    - m_string::begin
    linkageType: ''
    returnType: void
    signature: void Column::const_iterator::const_iterator( Column const& column )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7422,1
    - Dst: addIndentAndSuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_lineStart <= m_parsedTo )
      pos:
        line_end: 7421
        line_start: 7421
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7424
      start: 7421
    functionDepth: 0
    functionLinenumber: 7421
    functionLinenumberEnd: 7424
    functionName: Column::const_iterator::operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - addIndentAndSuffix
    linkageType: ''
    returnType: std::string
    signature: std::string Column::const_iterator::operator*() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7429,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7432,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7433,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7438,1
    - Dst: calcLength
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7440
      start: 7426
    functionDepth: 1
    functionLinenumber: 7426
    functionLinenumberEnd: 7440
    functionName: '& Column::const_iterator::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - end
    - calcLength
    linkageType: ''
    returnType: Column::const_iterator
    signature: Column::const_iterator & Column::const_iterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7446
      start: 7442
    functionDepth: 0
    functionLinenumber: 7442
    functionLinenumberEnd: 7446
    functionName: Column::const_iterator::operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column::const_iterator
    signature: Column::const_iterator Column::const_iterator::operator++( int )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' col'
    argTypes:
    - std::ostream
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7448
    functionDepth: 0
    functionLinenumber: 7448
    functionLinenumberEnd: 7459
    functionName: '& operator<<( std::ostream& os, Column const& col )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& os, Column const& col )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Column::width
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spaceWidth
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7465
      start: 7461
    functionDepth: 0
    functionLinenumber: 7461
    functionLinenumberEnd: 7465
    functionName: Catch::TextFlow::Spacer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Column::width
    linkageType: ''
    returnType: Column
    signature: Column Spacer( size_t spaceWidth )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7470,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7470,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7472,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' columns'
    argTypes:
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7474
      start: 7467
    functionDepth: 1
    functionLinenumber: 7467
    functionLinenumberEnd: 7474
    functionName: Columns::iterator::iterator( Columns const& columns, EndTag )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - reserve
    - end
    - size
    linkageType: ''
    returnType: void
    signature: void Columns::iterator::iterator( Columns const& columns, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7478,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7480,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7480,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7482,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' columns'
    argTypes:
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7484
      start: 7476
    functionDepth: 1
    functionLinenumber: 7476
    functionLinenumberEnd: 7484
    functionName: Columns::iterator::iterator( Columns const& columns )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - reserve
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: void Columns::iterator::iterator( Columns const& columns )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7489,1
    - Dst: width
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7490,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7491,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7496,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7497,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7498,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7498,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7505
      start: 7486
    functionDepth: 1
    functionLinenumber: 7486
    functionLinenumberEnd: 7505
    functionName: Columns::iterator::operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - append
    - end
    - clear
    - width
    - size
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string Columns::iterator::operator*() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7508,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7514
      start: 7507
    functionDepth: 1
    functionLinenumber: 7507
    functionLinenumberEnd: 7514
    functionName: '& Columns::iterator::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - end
    - size
    linkageType: ''
    returnType: Columns::iterator
    signature: Columns::iterator & Columns::iterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7520
      start: 7516
    functionDepth: 0
    functionLinenumber: 7516
    functionLinenumberEnd: 7520
    functionName: Columns::iterator::operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns::iterator
    signature: Columns::iterator Columns::iterator::operator++( int )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' cols'
    argTypes:
    - std::ostream
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7533
      start: 7522
    functionDepth: 0
    functionLinenumber: 7522
    functionLinenumberEnd: 7533
    functionName: '& operator<<( std::ostream& os, Columns const& cols )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& os, Columns const& cols )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Column
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7535
    functionDepth: 0
    functionLinenumber: 7535
    functionLinenumberEnd: 7540
    functionName: operator+( Column const& lhs, Column const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Column const& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7543,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Column
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7546
      start: 7541
    functionDepth: 1
    functionLinenumber: 7541
    functionLinenumberEnd: 7546
    functionName: operator+( Column&& lhs, Column&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Column&& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_columns::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7548
    functionDepth: 0
    functionLinenumber: 7548
    functionLinenumberEnd: 7551
    functionName: '& operator+=( Columns& lhs, Column const& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_columns::push_back
    linkageType: ''
    returnType: Columns
    signature: Columns & operator+=( Columns& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_columns::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7553,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7555
      start: 7552
    functionDepth: 1
    functionLinenumber: 7552
    functionLinenumberEnd: 7555
    functionName: '& operator+=( Columns& lhs, Column&& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_columns::push_back
    linkageType: ''
    returnType: Columns
    signature: Columns & operator+=( Columns& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7560
      start: 7556
    functionDepth: 0
    functionLinenumber: 7556
    functionLinenumberEnd: 7560
    functionName: operator+( Columns const& lhs, Column const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Columns const& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7562,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7564
      start: 7561
    functionDepth: 1
    functionLinenumber: 7561
    functionLinenumberEnd: 7564
    functionName: operator+( Columns&& lhs, Column&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Columns&& lhs, Column&& rhs )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7222,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7222,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7224,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7225,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7227,1
    - Dst: isdigit
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7228,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7231,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7245
      start: 7221
    functionDepth: 1
    functionLinenumber: 7221
    functionLinenumberEnd: 7245
    functionName: Catch::TextFlow::AnsiSkippingString::preprocessString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - isdigit
    - Catch::TextFlow::AnsiSkippingString::end
    - Catch::TextFlow::AnsiSkippingString::begin
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::preprocessString()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TextFlow::AnsiSkippingString::preprocessString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7250
      start: 7247
    functionDepth: 2
    functionLinenumber: 7247
    functionLinenumberEnd: 7250
    functionName: Catch::TextFlow::AnsiSkippingString::AnsiSkippingString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TextFlow::AnsiSkippingString::preprocessString
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::AnsiSkippingString( std::string const& text
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7253,1
    - Dst: Catch::TextFlow::AnsiSkippingString::preprocessString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7255
      start: 7252
    functionDepth: 2
    functionLinenumber: 7252
    functionLinenumberEnd: 7255
    functionName: Catch::TextFlow::AnsiSkippingString::AnsiSkippingString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::TextFlow::AnsiSkippingString::preprocessString
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::AnsiSkippingString( std::string&& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7259
      start: 7257
    functionDepth: 0
    functionLinenumber: 7257
    functionLinenumberEnd: 7259
    functionName: Catch::TextFlow::AnsiSkippingString::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: AnsiSkippingString::const_iterator
    signature: AnsiSkippingString::const_iterator AnsiSkippingString::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7263
      start: 7261
    functionDepth: 0
    functionLinenumber: 7261
    functionLinenumberEnd: 7263
    functionName: Catch::TextFlow::AnsiSkippingString::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: AnsiSkippingString::const_iterator
    signature: AnsiSkippingString::const_iterator AnsiSkippingString::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: std::transform
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7280
      start: 7265
    functionDepth: 1
    functionLinenumber: 7265
    functionLinenumberEnd: 7280
    functionName: Catch::TextFlow::AnsiSkippingString::substring
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::transform
    - Catch::TextFlow::AnsiSkippingString::begin
    - std::string
    - auto::end
    - auto::begin
    linkageType: ''
    returnType: std::string
    signature: "std::string AnsiSkippingString::substring( const_iterator begin,\n
      \                                                  const_iterator end ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7285,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7286,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7288,1
    - Dst: isdigit
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7289,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7300
      start: 7282
    functionDepth: 0
    functionLinenumber: 7282
    functionLinenumberEnd: 7300
    functionName: AnsiSkippingString::const_iterator::tryParseAnsiEscapes()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    - end
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::tryParseAnsiEscapes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7303,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7303,1
    - Dst: tryParseAnsiEscapes
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_it != m_string->end() )
      pos:
        line_end: 7302
        line_start: 7302
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7306
      start: 7302
    functionDepth: 0
    functionLinenumber: 7302
    functionLinenumberEnd: 7306
    functionName: AnsiSkippingString::const_iterator::advance()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - end
    - tryParseAnsiEscapes
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::advance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7309,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7309,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7315,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7315,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7320,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7320,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7308
        line_start: 7308
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7319
        line_start: 7319
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7314
        line_start: 7314
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( *m_it == '\033' )
      pos:
        line_end: 7320
        line_start: 7320
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7324
      start: 7308
    functionDepth: 0
    functionLinenumber: 7308
    functionLinenumberEnd: 7324
    functionName: AnsiSkippingString::const_iterator::unadvance()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - begin
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::unadvance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7328,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7329,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7330,1
    - Dst: AnsiSkippingString::const_iterator::oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7330,1
    - Dst: isBreakableBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7331,1
    - Dst: isBreakableAfter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7332,1
    - Dst: AnsiSkippingString::const_iterator::oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ' line'
    - it
    argTypes:
    - AnsiSkippingString
    - AnsiSkippingString::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7333
      start: 7326
    functionDepth: 1
    functionLinenumber: 7326
    functionLinenumberEnd: 7333
    functionName: Catch::TextFlow::isBoundary
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - end
    - AnsiSkippingString::const_iterator::oneBefore
    - isBreakableAfter
    - isBreakableBefore
    linkageType: ''
    returnType: bool
    signature: "bool isBoundary( AnsiSkippingString const& line,\n                                AnsiSkippingString::const_iterator
      it )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7340,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7345,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7345,1
    - Dst: indentSize
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7348,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7350,1
    - Dst: isBoundary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7367,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7372,1
    - Dst: oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7372,1
    - Dst: oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_lineStart != current_line.end() )
      pos:
        line_end: 7344
        line_start: 7344
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7384
      start: 7335
    functionDepth: 1
    functionLinenumber: 7335
    functionLinenumberEnd: 7384
    functionName: Column::const_iterator::calcLength()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - assert
    - end
    - oneBefore
    - isBoundary
    - indentSize
    linkageType: ''
    returnType: void
    signature: void Column::const_iterator::calcLength()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7391
      start: 7386
    functionDepth: 0
    functionLinenumber: 7386
    functionLinenumberEnd: 7391
    functionName: Column::const_iterator::indentSize() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_string::begin
    linkageType: ''
    returnType: size_t
    signature: size_t Column::const_iterator::indentSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: indentSize
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7397,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7399,1
    - Dst: m_string::substring
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7401,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - AnsiSkippingString::const_iterator
    - AnsiSkippingString::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7405
      start: 7393
    functionDepth: 0
    functionLinenumber: 7393
    functionLinenumberEnd: 7405
    functionName: "Column::const_iterator::addIndentAndSuffix(\n            AnsiSkippingString::const_iterator
      start,\n            AnsiSkippingString::const_iterator end ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - std::string::append
    - indentSize
    - m_string::substring
    linkageType: ''
    returnType: std::string
    signature: "std::string Column::const_iterator::addIndentAndSuffix(\n            AnsiSkippingString::const_iterator
      start,\n            AnsiSkippingString::const_iterator end ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7409,1
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7410,1
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7411,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7412,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7413,1
    - Dst: calcLength
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7415,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' column'
    argTypes:
    - Column
    assertStmts:
    - condition: ( m_column.m_width > m_column.m_indent )
      pos:
        line_end: 7411
        line_start: 7411
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: "( m_column.m_initialIndent == std::string::npos ||\n                    m_column.m_width
        > m_column.m_initialIndent )"
      pos:
        line_end: 7413
        line_start: 7412
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7419
      start: 7407
    functionDepth: 0
    functionLinenumber: 7407
    functionLinenumberEnd: 7419
    functionName: Column::const_iterator::const_iterator( Column const& column )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_string::end
    - assert
    - calcLength
    - m_string::begin
    linkageType: ''
    returnType: void
    signature: void Column::const_iterator::const_iterator( Column const& column )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7422,1
    - Dst: addIndentAndSuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_lineStart <= m_parsedTo )
      pos:
        line_end: 7421
        line_start: 7421
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7424
      start: 7421
    functionDepth: 0
    functionLinenumber: 7421
    functionLinenumberEnd: 7424
    functionName: Column::const_iterator::operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - addIndentAndSuffix
    linkageType: ''
    returnType: std::string
    signature: std::string Column::const_iterator::operator*() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7429,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7432,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7433,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7438,1
    - Dst: calcLength
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7440
      start: 7426
    functionDepth: 1
    functionLinenumber: 7426
    functionLinenumberEnd: 7440
    functionName: '& Column::const_iterator::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - end
    - calcLength
    linkageType: ''
    returnType: Column::const_iterator
    signature: Column::const_iterator & Column::const_iterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7446
      start: 7442
    functionDepth: 0
    functionLinenumber: 7442
    functionLinenumberEnd: 7446
    functionName: Column::const_iterator::operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column::const_iterator
    signature: Column::const_iterator Column::const_iterator::operator++( int )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' col'
    argTypes:
    - std::ostream
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7448
    functionDepth: 0
    functionLinenumber: 7448
    functionLinenumberEnd: 7459
    functionName: '& operator<<( std::ostream& os, Column const& col )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& os, Column const& col )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Column::width
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spaceWidth
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7465
      start: 7461
    functionDepth: 0
    functionLinenumber: 7461
    functionLinenumberEnd: 7465
    functionName: Catch::TextFlow::Spacer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Column::width
    linkageType: ''
    returnType: Column
    signature: Column Spacer( size_t spaceWidth )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7470,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7470,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7472,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' columns'
    argTypes:
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7474
      start: 7467
    functionDepth: 1
    functionLinenumber: 7467
    functionLinenumberEnd: 7474
    functionName: Columns::iterator::iterator( Columns const& columns, EndTag )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - reserve
    - end
    - size
    linkageType: ''
    returnType: void
    signature: void Columns::iterator::iterator( Columns const& columns, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7478,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7480,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7480,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7482,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' columns'
    argTypes:
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7484
      start: 7476
    functionDepth: 1
    functionLinenumber: 7476
    functionLinenumberEnd: 7484
    functionName: Columns::iterator::iterator( Columns const& columns )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - reserve
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: void Columns::iterator::iterator( Columns const& columns )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7489,1
    - Dst: width
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7490,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7491,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7496,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7497,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7498,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7498,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7505
      start: 7486
    functionDepth: 1
    functionLinenumber: 7486
    functionLinenumberEnd: 7505
    functionName: Columns::iterator::operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - append
    - end
    - clear
    - width
    - size
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string Columns::iterator::operator*() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7508,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7514
      start: 7507
    functionDepth: 1
    functionLinenumber: 7507
    functionLinenumberEnd: 7514
    functionName: '& Columns::iterator::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - end
    - size
    linkageType: ''
    returnType: Columns::iterator
    signature: Columns::iterator & Columns::iterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7520
      start: 7516
    functionDepth: 0
    functionLinenumber: 7516
    functionLinenumberEnd: 7520
    functionName: Columns::iterator::operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns::iterator
    signature: Columns::iterator Columns::iterator::operator++( int )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' cols'
    argTypes:
    - std::ostream
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7533
      start: 7522
    functionDepth: 0
    functionLinenumber: 7522
    functionLinenumberEnd: 7533
    functionName: '& operator<<( std::ostream& os, Columns const& cols )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& os, Columns const& cols )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Column
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7535
    functionDepth: 0
    functionLinenumber: 7535
    functionLinenumberEnd: 7540
    functionName: operator+( Column const& lhs, Column const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Column const& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7543,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Column
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7546
      start: 7541
    functionDepth: 1
    functionLinenumber: 7541
    functionLinenumberEnd: 7546
    functionName: operator+( Column&& lhs, Column&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Column&& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_columns::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7548
    functionDepth: 0
    functionLinenumber: 7548
    functionLinenumberEnd: 7551
    functionName: '& operator+=( Columns& lhs, Column const& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_columns::push_back
    linkageType: ''
    returnType: Columns
    signature: Columns & operator+=( Columns& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_columns::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7553,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7555
      start: 7552
    functionDepth: 1
    functionLinenumber: 7552
    functionLinenumberEnd: 7555
    functionName: '& operator+=( Columns& lhs, Column&& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_columns::push_back
    linkageType: ''
    returnType: Columns
    signature: Columns & operator+=( Columns& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7560
      start: 7556
    functionDepth: 0
    functionLinenumber: 7556
    functionLinenumberEnd: 7560
    functionName: operator+( Columns const& lhs, Column const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Columns const& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7562,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7564
      start: 7561
    functionDepth: 1
    functionLinenumber: 7561
    functionLinenumberEnd: 7564
    functionName: operator+( Columns&& lhs, Column&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Columns&& lhs, Column&& rhs )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7222,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7222,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7224,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7225,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7227,1
    - Dst: isdigit
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7228,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7231,1
    - Dst: Catch::TextFlow::AnsiSkippingString::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7245
      start: 7221
    functionDepth: 1
    functionLinenumber: 7221
    functionLinenumberEnd: 7245
    functionName: Catch::TextFlow::AnsiSkippingString::preprocessString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - isdigit
    - Catch::TextFlow::AnsiSkippingString::end
    - Catch::TextFlow::AnsiSkippingString::begin
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::preprocessString()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::TextFlow::AnsiSkippingString::preprocessString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7250
      start: 7247
    functionDepth: 2
    functionLinenumber: 7247
    functionLinenumberEnd: 7250
    functionName: Catch::TextFlow::AnsiSkippingString::AnsiSkippingString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TextFlow::AnsiSkippingString::preprocessString
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::AnsiSkippingString( std::string const& text
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7253,1
    - Dst: Catch::TextFlow::AnsiSkippingString::preprocessString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' text'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7255
      start: 7252
    functionDepth: 2
    functionLinenumber: 7252
    functionLinenumberEnd: 7255
    functionName: Catch::TextFlow::AnsiSkippingString::AnsiSkippingString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - Catch::TextFlow::AnsiSkippingString::preprocessString
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::AnsiSkippingString( std::string&& text )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7259
      start: 7257
    functionDepth: 0
    functionLinenumber: 7257
    functionLinenumberEnd: 7259
    functionName: Catch::TextFlow::AnsiSkippingString::begin
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: AnsiSkippingString::const_iterator
    signature: AnsiSkippingString::const_iterator AnsiSkippingString::begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7263
      start: 7261
    functionDepth: 0
    functionLinenumber: 7261
    functionLinenumberEnd: 7263
    functionName: Catch::TextFlow::AnsiSkippingString::end
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - const_iterator
    linkageType: ''
    returnType: AnsiSkippingString::const_iterator
    signature: AnsiSkippingString::const_iterator AnsiSkippingString::end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: Catch::TextFlow::AnsiSkippingString::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7273,1
    - Dst: std::transform
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    - Dst: auto::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7280
      start: 7265
    functionDepth: 1
    functionLinenumber: 7265
    functionLinenumberEnd: 7280
    functionName: Catch::TextFlow::AnsiSkippingString::substring
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::transform
    - Catch::TextFlow::AnsiSkippingString::begin
    - std::string
    - auto::end
    - auto::begin
    linkageType: ''
    returnType: std::string
    signature: "std::string AnsiSkippingString::substring( const_iterator begin,\n
      \                                                  const_iterator end ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7285,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7286,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7288,1
    - Dst: isdigit
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7289,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7300
      start: 7282
    functionDepth: 0
    functionLinenumber: 7282
    functionLinenumberEnd: 7300
    functionName: AnsiSkippingString::const_iterator::tryParseAnsiEscapes()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    - end
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::tryParseAnsiEscapes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7303,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7303,1
    - Dst: tryParseAnsiEscapes
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_it != m_string->end() )
      pos:
        line_end: 7302
        line_start: 7302
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7306
      start: 7302
    functionDepth: 0
    functionLinenumber: 7302
    functionLinenumberEnd: 7306
    functionName: AnsiSkippingString::const_iterator::advance()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - end
    - tryParseAnsiEscapes
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::advance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7309,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7309,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7315,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7315,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7320,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7320,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7308
        line_start: 7308
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7319
        line_start: 7319
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_it != m_string->begin() )
      pos:
        line_end: 7314
        line_start: 7314
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( *m_it == '\033' )
      pos:
        line_end: 7320
        line_start: 7320
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7324
      start: 7308
    functionDepth: 0
    functionLinenumber: 7308
    functionLinenumberEnd: 7324
    functionName: AnsiSkippingString::const_iterator::unadvance()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - begin
    linkageType: ''
    returnType: void
    signature: void AnsiSkippingString::const_iterator::unadvance()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7328,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7329,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7330,1
    - Dst: AnsiSkippingString::const_iterator::oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7330,1
    - Dst: isBreakableBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7331,1
    - Dst: isBreakableAfter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7332,1
    - Dst: AnsiSkippingString::const_iterator::oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ' line'
    - it
    argTypes:
    - AnsiSkippingString
    - AnsiSkippingString::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7333
      start: 7326
    functionDepth: 1
    functionLinenumber: 7326
    functionLinenumberEnd: 7333
    functionName: Catch::TextFlow::isBoundary
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - end
    - AnsiSkippingString::const_iterator::oneBefore
    - isBreakableAfter
    - isBreakableBefore
    linkageType: ''
    returnType: bool
    signature: "bool isBoundary( AnsiSkippingString const& line,\n                                AnsiSkippingString::const_iterator
      it )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7340,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7345,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7345,1
    - Dst: indentSize
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7348,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7350,1
    - Dst: isBoundary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7367,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7372,1
    - Dst: oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7372,1
    - Dst: oneBefore
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_lineStart != current_line.end() )
      pos:
        line_end: 7344
        line_start: 7344
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7384
      start: 7335
    functionDepth: 1
    functionLinenumber: 7335
    functionLinenumberEnd: 7384
    functionName: Column::const_iterator::calcLength()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - assert
    - end
    - oneBefore
    - isBoundary
    - indentSize
    linkageType: ''
    returnType: void
    signature: void Column::const_iterator::calcLength()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7391
      start: 7386
    functionDepth: 0
    functionLinenumber: 7386
    functionLinenumberEnd: 7391
    functionName: Column::const_iterator::indentSize() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_string::begin
    linkageType: ''
    returnType: size_t
    signature: size_t Column::const_iterator::indentSize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: indentSize
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7397,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7399,1
    - Dst: m_string::substring
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7401,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - AnsiSkippingString::const_iterator
    - AnsiSkippingString::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7405
      start: 7393
    functionDepth: 0
    functionLinenumber: 7393
    functionLinenumberEnd: 7405
    functionName: "Column::const_iterator::addIndentAndSuffix(\n            AnsiSkippingString::const_iterator
      start,\n            AnsiSkippingString::const_iterator end ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - std::string::append
    - indentSize
    - m_string::substring
    linkageType: ''
    returnType: std::string
    signature: "std::string Column::const_iterator::addIndentAndSuffix(\n            AnsiSkippingString::const_iterator
      start,\n            AnsiSkippingString::const_iterator end ) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7409,1
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7410,1
    - Dst: m_string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7411,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7412,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7413,1
    - Dst: calcLength
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7415,1
    - Dst: m_string::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' column'
    argTypes:
    - Column
    assertStmts:
    - condition: ( m_column.m_width > m_column.m_indent )
      pos:
        line_end: 7411
        line_start: 7411
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: "( m_column.m_initialIndent == std::string::npos ||\n                    m_column.m_width
        > m_column.m_initialIndent )"
      pos:
        line_end: 7413
        line_start: 7412
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7419
      start: 7407
    functionDepth: 0
    functionLinenumber: 7407
    functionLinenumberEnd: 7419
    functionName: Column::const_iterator::const_iterator( Column const& column )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_string::end
    - assert
    - calcLength
    - m_string::begin
    linkageType: ''
    returnType: void
    signature: void Column::const_iterator::const_iterator( Column const& column )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7422,1
    - Dst: addIndentAndSuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_lineStart <= m_parsedTo )
      pos:
        line_end: 7421
        line_start: 7421
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 7424
      start: 7421
    functionDepth: 0
    functionLinenumber: 7421
    functionLinenumberEnd: 7424
    functionName: Column::const_iterator::operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - addIndentAndSuffix
    linkageType: ''
    returnType: std::string
    signature: std::string Column::const_iterator::operator*() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7429,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7432,1
    - Dst: isWhitespace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7433,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7438,1
    - Dst: calcLength
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7440
      start: 7426
    functionDepth: 1
    functionLinenumber: 7426
    functionLinenumberEnd: 7440
    functionName: '& Column::const_iterator::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isWhitespace
    - end
    - calcLength
    linkageType: ''
    returnType: Column::const_iterator
    signature: Column::const_iterator & Column::const_iterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7446
      start: 7442
    functionDepth: 0
    functionLinenumber: 7442
    functionLinenumberEnd: 7446
    functionName: Column::const_iterator::operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Column::const_iterator
    signature: Column::const_iterator Column::const_iterator::operator++( int )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' col'
    argTypes:
    - std::ostream
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7459
      start: 7448
    functionDepth: 0
    functionLinenumber: 7448
    functionLinenumberEnd: 7459
    functionName: '& operator<<( std::ostream& os, Column const& col )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& os, Column const& col )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Column::width
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spaceWidth
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7465
      start: 7461
    functionDepth: 0
    functionLinenumber: 7461
    functionLinenumberEnd: 7465
    functionName: Catch::TextFlow::Spacer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Column::width
    linkageType: ''
    returnType: Column
    signature: Column Spacer( size_t spaceWidth )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7470,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7470,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7472,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' columns'
    argTypes:
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7474
      start: 7467
    functionDepth: 1
    functionLinenumber: 7467
    functionLinenumberEnd: 7474
    functionName: Columns::iterator::iterator( Columns const& columns, EndTag )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - reserve
    - end
    - size
    linkageType: ''
    returnType: void
    signature: void Columns::iterator::iterator( Columns const& columns, EndTag )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7478,1
    - Dst: reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7480,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7480,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7482,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' columns'
    argTypes:
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7484
      start: 7476
    functionDepth: 1
    functionLinenumber: 7476
    functionLinenumberEnd: 7484
    functionName: Columns::iterator::iterator( Columns const& columns )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - reserve
    - size
    - begin
    linkageType: ''
    returnType: void
    signature: void Columns::iterator::iterator( Columns const& columns )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7489,1
    - Dst: width
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7490,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7491,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7496,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7497,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7498,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7498,1
    - Dst: append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7505
      start: 7486
    functionDepth: 1
    functionLinenumber: 7486
    functionLinenumberEnd: 7505
    functionName: Columns::iterator::operator*() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - append
    - end
    - clear
    - width
    - size
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string Columns::iterator::operator*() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7508,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7514
      start: 7507
    functionDepth: 1
    functionLinenumber: 7507
    functionLinenumberEnd: 7514
    functionName: '& Columns::iterator::operator++()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - end
    - size
    linkageType: ''
    returnType: Columns::iterator
    signature: Columns::iterator & Columns::iterator::operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7520
      start: 7516
    functionDepth: 0
    functionLinenumber: 7516
    functionLinenumberEnd: 7520
    functionName: Columns::iterator::operator++( int )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns::iterator
    signature: Columns::iterator Columns::iterator::operator++( int )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' os'
    - ' cols'
    argTypes:
    - std::ostream
    - Columns
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7533
      start: 7522
    functionDepth: 0
    functionLinenumber: 7522
    functionLinenumberEnd: 7533
    functionName: '& operator<<( std::ostream& os, Columns const& cols )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& os, Columns const& cols )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Column
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7535
    functionDepth: 0
    functionLinenumber: 7535
    functionLinenumberEnd: 7540
    functionName: operator+( Column const& lhs, Column const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Column const& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7543,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Column
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7546
      start: 7541
    functionDepth: 1
    functionLinenumber: 7541
    functionLinenumberEnd: 7546
    functionName: operator+( Column&& lhs, Column&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Column&& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_columns::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7548
    functionDepth: 0
    functionLinenumber: 7548
    functionLinenumberEnd: 7551
    functionName: '& operator+=( Columns& lhs, Column const& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_columns::push_back
    linkageType: ''
    returnType: Columns
    signature: Columns & operator+=( Columns& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_columns::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7553,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7555
      start: 7552
    functionDepth: 1
    functionLinenumber: 7552
    functionLinenumberEnd: 7555
    functionName: '& operator+=( Columns& lhs, Column&& rhs )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - m_columns::push_back
    linkageType: ''
    returnType: Columns
    signature: Columns & operator+=( Columns& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7560
      start: 7556
    functionDepth: 0
    functionLinenumber: 7556
    functionLinenumberEnd: 7560
    functionName: operator+( Columns const& lhs, Column const& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Columns const& lhs, Column const& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7562,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Columns
    - Column
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7564
      start: 7561
    functionDepth: 1
    functionLinenumber: 7561
    functionLinenumberEnd: 7564
    functionName: operator+( Columns&& lhs, Column&& rhs )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: Columns
    signature: Columns operator+( Columns&& lhs, Column&& rhs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uncaught_exceptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7579,1
    - Dst: std::uncaught_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7583
      start: 7575
    functionDepth: 1
    functionLinenumber: 7575
    functionLinenumberEnd: 7583
    functionName: Catch::uncaught_exceptions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::uncaught_exceptions
    - std::uncaught_exception
    linkageType: ''
    returnType: bool
    signature: bool uncaught_exceptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::uncaught_exceptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7579,1
    - Dst: std::uncaught_exception
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7583
      start: 7575
    functionDepth: 1
    functionLinenumber: 7575
    functionLinenumberEnd: 7583
    functionName: Catch::uncaught_exceptions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::uncaught_exceptions
    - std::uncaught_exception
    linkageType: ''
    returnType: bool
    signature: bool uncaught_exceptions()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7593,1
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7595,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7596,1
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7599,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7600,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7600,1
    - Dst: static_cast<WildcardPosition>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' pattern'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7603
      start: 7590
    functionDepth: 1
    functionLinenumber: 7590
    functionLinenumberEnd: 7603
    functionName: Catch::WildcardPattern::WildcardPattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endsWith
    - startsWith
    - Catch::WildcardPattern::normaliseString
    - static_cast<WildcardPosition>
    - substr
    - size
    linkageType: ''
    returnType: void
    signature: "void WildcardPattern::WildcardPattern( std::string const& pattern,\n
      \                                     CaseSensitive caseSensitivity )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7608,1
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7610,1
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7610,1
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7612,1
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7612,1
    - Dst: contains
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7614,1
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7614,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7618
      start: 7605
    functionDepth: 1
    functionLinenumber: 7605
    functionLinenumberEnd: 7618
    functionName: Catch::WildcardPattern::matches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endsWith
    - startsWith
    - CATCH_INTERNAL_ERROR
    - Catch::WildcardPattern::normaliseString
    - contains
    linkageType: ''
    returnType: bool
    signature: bool WildcardPattern::matches( std::string const& str ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7621,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7622
      start: 7620
    functionDepth: 0
    functionLinenumber: 7620
    functionLinenumberEnd: 7622
    functionName: Catch::WildcardPattern::normaliseString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - toLower
    - trim
    linkageType: ''
    returnType: std::string
    signature: std::string WildcardPattern::normaliseString( std::string const& str
      ) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7593,1
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7595,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7596,1
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7599,1
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7600,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7600,1
    - Dst: static_cast<WildcardPosition>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' pattern'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7603
      start: 7590
    functionDepth: 1
    functionLinenumber: 7590
    functionLinenumberEnd: 7603
    functionName: Catch::WildcardPattern::WildcardPattern
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endsWith
    - startsWith
    - Catch::WildcardPattern::normaliseString
    - static_cast<WildcardPosition>
    - substr
    - size
    linkageType: ''
    returnType: void
    signature: "void WildcardPattern::WildcardPattern( std::string const& pattern,\n
      \                                     CaseSensitive caseSensitivity )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7608,1
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7610,1
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7610,1
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7612,1
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7612,1
    - Dst: contains
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7614,1
    - Dst: Catch::WildcardPattern::normaliseString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7614,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7618
      start: 7605
    functionDepth: 1
    functionLinenumber: 7605
    functionLinenumberEnd: 7618
    functionName: Catch::WildcardPattern::matches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endsWith
    - startsWith
    - CATCH_INTERNAL_ERROR
    - Catch::WildcardPattern::normaliseString
    - contains
    linkageType: ''
    returnType: bool
    signature: bool WildcardPattern::matches( std::string const& str ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7621,1
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7622
      start: 7620
    functionDepth: 0
    functionLinenumber: 7620
    functionLinenumberEnd: 7622
    functionName: Catch::WildcardPattern::normaliseString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - toLower
    - trim
    linkageType: ''
    returnType: std::string
    signature: std::string WildcardPattern::normaliseString( std::string const& str
      ) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7638
    functionDepth: 1
    functionLinenumber: 7638
    functionLinenumberEnd: 7649
    functionName: Catch::trailingBytes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t trailingBytes(unsigned char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7651
    functionDepth: 1
    functionLinenumber: 7651
    functionLinenumberEnd: 7662
    functionName: Catch::headerValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t headerValue(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7665,1
    - Dst: std::setfill
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7667,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7667,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7668,1
    - Dst: flags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - c
    argTypes:
    - std::ostream
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7670
      start: 7664
    functionDepth: 0
    functionLinenumber: 7664
    functionLinenumberEnd: 7670
    functionName: Catch::hexEscapeChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::setw
    - std::setfill
    - flags
    linkageType: ''
    returnType: void
    signature: void hexEscapeChar(std::ostream& os, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7674
      start: 7672
    functionDepth: 0
    functionLinenumber: 7672
    functionLinenumberEnd: 7674
    functionName: Catch::shouldNewline
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: bool
    signature: bool shouldNewline(XmlFormatting fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7678
      start: 7676
    functionDepth: 0
    functionLinenumber: 7676
    functionLinenumberEnd: 7678
    functionName: Catch::shouldIndent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: bool
    signature: bool shouldIndent(XmlFormatting fmt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7638
    functionDepth: 1
    functionLinenumber: 7638
    functionLinenumberEnd: 7649
    functionName: Catch::trailingBytes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t trailingBytes(unsigned char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7651
    functionDepth: 1
    functionLinenumber: 7651
    functionLinenumberEnd: 7662
    functionName: Catch::headerValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t headerValue(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7665,1
    - Dst: std::setfill
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7667,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7667,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7668,1
    - Dst: flags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - c
    argTypes:
    - std::ostream
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7670
      start: 7664
    functionDepth: 0
    functionLinenumber: 7664
    functionLinenumberEnd: 7670
    functionName: Catch::hexEscapeChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::setw
    - std::setfill
    - flags
    linkageType: ''
    returnType: void
    signature: void hexEscapeChar(std::ostream& os, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7674
      start: 7672
    functionDepth: 0
    functionLinenumber: 7672
    functionLinenumberEnd: 7674
    functionName: Catch::shouldNewline
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: bool
    signature: bool shouldNewline(XmlFormatting fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7678
      start: 7676
    functionDepth: 0
    functionLinenumber: 7676
    functionLinenumberEnd: 7678
    functionName: Catch::shouldIndent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: bool
    signature: bool shouldIndent(XmlFormatting fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<XmlFormatting>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7683,1
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7684,1
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - XmlFormatting
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7687
      start: 7682
    functionDepth: 0
    functionLinenumber: 7682
    functionLinenumberEnd: 7687
    functionName: operator | (XmlFormatting lhs, XmlFormatting rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XmlFormatting>
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: XmlFormatting
    signature: XmlFormatting operator | (XmlFormatting lhs, XmlFormatting rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<XmlFormatting>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7690,1
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7691,1
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - XmlFormatting
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7694
      start: 7689
    functionDepth: 0
    functionLinenumber: 7689
    functionLinenumberEnd: 7694
    functionName: operator & (XmlFormatting lhs, XmlFormatting rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XmlFormatting>
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: XmlFormatting
    signature: XmlFormatting operator & (XmlFormatting lhs, XmlFormatting rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - str
    - forWhat
    argTypes:
    - StringRef
    - ForWhat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7700
      start: 7697
    functionDepth: 0
    functionLinenumber: 7697
    functionLinenumberEnd: 7700
    functionName: Catch::XmlEncode::XmlEncode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlEncode::XmlEncode( StringRef str, ForWhat forWhat )
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7706,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7707,1
    - Dst: hexEscapeChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7733,1
    - Dst: hexEscapeChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7751,1
    - Dst: trailingBytes
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7755,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7757,1
    - Dst: hexEscapeChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7758,1
    - Dst: headerValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7765,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7767,1
    - Dst: hexEscapeChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7782,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 51
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7794
      start: 7702
    functionDepth: 1
    functionLinenumber: 7702
    functionLinenumberEnd: 7794
    functionName: Catch::XmlEncode::encodeTo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - hexEscapeChar
    - headerValue
    - trailingBytes
    - static_cast<unsigned char>
    - size
    linkageType: ''
    returnType: void
    signature: void XmlEncode::encodeTo( std::ostream& os ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encodeTo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' xmlEncode'
    argTypes:
    - std::ostream
    - XmlEncode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7799
      start: 7796
    functionDepth: 0
    functionLinenumber: 7796
    functionLinenumberEnd: 7799
    functionName: '& operator << ( std::ostream& os, XmlEncode const& xmlEncode )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - encodeTo
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << ( std::ostream& os, XmlEncode const& xmlEncode
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - writer
    - fmt
    argTypes:
    - XmlWriter*
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7804
      start: 7801
    functionDepth: 0
    functionLinenumber: 7801
    functionLinenumberEnd: 7804
    functionName: XmlWriter::ScopedElement::ScopedElement( XmlWriter* writer, XmlFormatting
      fmt )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::ScopedElement::ScopedElement( XmlWriter* writer, XmlFormatting
      fmt )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ScopedElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7812
      start: 7806
    functionDepth: 0
    functionLinenumber: 7806
    functionLinenumberEnd: 7812
    functionName: XmlWriter::ScopedElement::ScopedElement( ScopedElement&& other )
      noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::ScopedElement::ScopedElement( ScopedElement&& other
      ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ScopedElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7822
      start: 7813
    functionDepth: 0
    functionLinenumber: 7813
    functionLinenumberEnd: 7822
    functionName: '& XmlWriter::ScopedElement::operator=( ScopedElement&& other )
      noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endElement
    linkageType: ''
    returnType: XmlWriter::ScopedElement
    signature: XmlWriter::ScopedElement & XmlWriter::ScopedElement::operator=( ScopedElement&&
      other ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7829
      start: 7825
    functionDepth: 0
    functionLinenumber: 7825
    functionLinenumberEnd: 7829
    functionName: XmlWriter::ScopedElement::~ScopedElement()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlWriter::ScopedElement::~ScopedElement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - text
    - fmt
    argTypes:
    - StringRef
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7835
      start: 7831
    functionDepth: 0
    functionLinenumber: 7831
    functionLinenumberEnd: 7835
    functionName: "&\n    XmlWriter::ScopedElement::writeText( StringRef text, XmlFormatting
      fmt )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeText
    linkageType: ''
    returnType: XmlWriter::ScopedElement
    signature: "XmlWriter::ScopedElement &\n    XmlWriter::ScopedElement::writeText(
      StringRef text, XmlFormatting fmt )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - attribute
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7842
      start: 7837
    functionDepth: 0
    functionLinenumber: 7837
    functionLinenumberEnd: 7842
    functionName: "&\n    XmlWriter::ScopedElement::writeAttribute( StringRef name,\n
      \                                             StringRef attribute )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    linkageType: ''
    returnType: XmlWriter::ScopedElement
    signature: "XmlWriter::ScopedElement &\n    XmlWriter::ScopedElement::writeAttribute(
      StringRef name,\n                                              StringRef attribute
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::XmlWriter::writeDeclaration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7848
      start: 7845
    functionDepth: 1
    functionLinenumber: 7845
    functionLinenumberEnd: 7848
    functionName: Catch::XmlWriter::XmlWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::XmlWriter::writeDeclaration
    linkageType: ''
    returnType: void
    signature: void XmlWriter::XmlWriter( std::ostream& os )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7851,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7852,1
    - Dst: newlineIfNecessary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7855
      start: 7850
    functionDepth: 0
    functionLinenumber: 7850
    functionLinenumberEnd: 7855
    functionName: XmlWriter::~XmlWriter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - newlineIfNecessary
    - empty
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlWriter::~XmlWriter()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7858,1
    - Dst: newlineIfNecessary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7859,1
    - Dst: shouldIndent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7860,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7865,1
    - Dst: applyFormatting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' name'
    - fmt
    argTypes:
    - std::string
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7869
      start: 7857
    functionDepth: 0
    functionLinenumber: 7857
    functionLinenumberEnd: 7869
    functionName: '& XmlWriter::startElement( std::string const& name, XmlFormatting
      fmt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - shouldIndent
    - applyFormatting
    - newlineIfNecessary
    - ensureTagClosed
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::startElement( std::string const& name, XmlFormatting
      fmt )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - fmt
    argTypes:
    - std::string
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7875
      start: 7871
    functionDepth: 0
    functionLinenumber: 7871
    functionLinenumberEnd: 7875
    functionName: Catch::XmlWriter::scopedElement
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - startElement
    linkageType: ''
    returnType: XmlWriter::ScopedElement
    signature: XmlWriter::ScopedElement XmlWriter::scopedElement( std::string const&
      name, XmlFormatting fmt )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7878,1
    - Dst: newlineIfNecessary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7884,1
    - Dst: shouldIndent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7885,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7888,1
    - Dst: applyFormatting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7891,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7894
      start: 7877
    functionDepth: 1
    functionLinenumber: 7877
    functionLinenumberEnd: 7894
    functionName: '& XmlWriter::endElement(XmlFormatting fmt)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - applyFormatting
    - back
    - shouldIndent
    - newlineIfNecessary
    - substr
    - size
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::endElement(XmlFormatting fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7898,1
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7898,1
    - Dst: XmlEncode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - name
    - attribute
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7901
      start: 7896
    functionDepth: 0
    functionLinenumber: 7896
    functionLinenumberEnd: 7901
    functionName: "& XmlWriter::writeAttribute( StringRef name,\n                                          StringRef
      attribute )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - XmlEncode
    - StringRef::empty
    linkageType: ''
    returnType: XmlWriter
    signature: "XmlWriter & XmlWriter::writeAttribute( StringRef name,\n                                          StringRef
      attribute )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - attribute
    argTypes:
    - StringRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7906
      start: 7903
    functionDepth: 0
    functionLinenumber: 7903
    functionLinenumberEnd: 7906
    functionName: '& XmlWriter::writeAttribute( StringRef name, bool attribute )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::writeAttribute( StringRef name, bool attribute
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7910,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - attribute
    argTypes:
    - StringRef
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7912
      start: 7908
    functionDepth: 0
    functionLinenumber: 7908
    functionLinenumberEnd: 7912
    functionName: "& XmlWriter::writeAttribute( StringRef name,\n                                          char
      const* attribute )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    - StringRef
    linkageType: ''
    returnType: XmlWriter
    signature: "XmlWriter & XmlWriter::writeAttribute( StringRef name,\n                                          char
      const* attribute )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7915,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7915,1
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7916,1
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7918,1
    - Dst: shouldIndent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7919,1
    - Dst: XmlEncode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7922,1
    - Dst: applyFormatting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - text
    - fmt
    argTypes:
    - StringRef
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7926
      start: 7914
    functionDepth: 1
    functionLinenumber: 7914
    functionLinenumberEnd: 7926
    functionName: '& XmlWriter::writeText( StringRef text, XmlFormatting fmt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::empty
    - XmlEncode
    - CATCH_ENFORCE
    - empty
    - applyFormatting
    - shouldIndent
    - ensureTagClosed
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::writeText( StringRef text, XmlFormatting fmt
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7929,1
    - Dst: shouldIndent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7930,1
    - Dst: applyFormatting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - text
    - fmt
    argTypes:
    - StringRef
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7936
      start: 7928
    functionDepth: 0
    functionLinenumber: 7928
    functionLinenumberEnd: 7936
    functionName: '& XmlWriter::writeComment( StringRef text, XmlFormatting fmt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - applyFormatting
    - ensureTagClosed
    - shouldIndent
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::writeComment( StringRef text, XmlFormatting
      fmt )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7940
      start: 7938
    functionDepth: 0
    functionLinenumber: 7938
    functionLinenumberEnd: 7940
    functionName: Catch::XmlWriter::writeStylesheetRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::writeStylesheetRef( StringRef url )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::XmlWriter::newlineIfNecessary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7948
      start: 7942
    functionDepth: 1
    functionLinenumber: 7942
    functionLinenumberEnd: 7948
    functionName: Catch::XmlWriter::ensureTagClosed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::XmlWriter::newlineIfNecessary
    linkageType: ''
    returnType: void
    signature: void XmlWriter::ensureTagClosed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shouldNewline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7952
      start: 7950
    functionDepth: 0
    functionLinenumber: 7950
    functionLinenumberEnd: 7952
    functionName: Catch::XmlWriter::applyFormatting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - shouldNewline
    linkageType: ''
    returnType: void
    signature: void XmlWriter::applyFormatting(XmlFormatting fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7956
      start: 7954
    functionDepth: 0
    functionLinenumber: 7954
    functionLinenumberEnd: 7956
    functionName: Catch::XmlWriter::writeDeclaration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::writeDeclaration()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7963
      start: 7958
    functionDepth: 0
    functionLinenumber: 7958
    functionLinenumberEnd: 7963
    functionName: Catch::XmlWriter::newlineIfNecessary
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::newlineIfNecessary()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7638
    functionDepth: 1
    functionLinenumber: 7638
    functionLinenumberEnd: 7649
    functionName: Catch::trailingBytes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t trailingBytes(unsigned char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7651
    functionDepth: 1
    functionLinenumber: 7651
    functionLinenumberEnd: 7662
    functionName: Catch::headerValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t headerValue(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7665,1
    - Dst: std::setfill
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7667,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7667,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7668,1
    - Dst: flags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - c
    argTypes:
    - std::ostream
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7670
      start: 7664
    functionDepth: 0
    functionLinenumber: 7664
    functionLinenumberEnd: 7670
    functionName: Catch::hexEscapeChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::setw
    - std::setfill
    - flags
    linkageType: ''
    returnType: void
    signature: void hexEscapeChar(std::ostream& os, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7674
      start: 7672
    functionDepth: 0
    functionLinenumber: 7672
    functionLinenumberEnd: 7674
    functionName: Catch::shouldNewline
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: bool
    signature: bool shouldNewline(XmlFormatting fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7678
      start: 7676
    functionDepth: 0
    functionLinenumber: 7676
    functionLinenumberEnd: 7678
    functionName: Catch::shouldIndent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: bool
    signature: bool shouldIndent(XmlFormatting fmt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7638
    functionDepth: 1
    functionLinenumber: 7638
    functionLinenumberEnd: 7649
    functionName: Catch::trailingBytes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t trailingBytes(unsigned char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7651
    functionDepth: 1
    functionLinenumber: 7651
    functionLinenumberEnd: 7662
    functionName: Catch::headerValue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t headerValue(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7665,1
    - Dst: std::setfill
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7667,1
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7667,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7668,1
    - Dst: flags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - c
    argTypes:
    - std::ostream
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7670
      start: 7664
    functionDepth: 0
    functionLinenumber: 7664
    functionLinenumberEnd: 7670
    functionName: Catch::hexEscapeChar
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::setw
    - std::setfill
    - flags
    linkageType: ''
    returnType: void
    signature: void hexEscapeChar(std::ostream& os, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7674
      start: 7672
    functionDepth: 0
    functionLinenumber: 7672
    functionLinenumberEnd: 7674
    functionName: Catch::shouldNewline
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: bool
    signature: bool shouldNewline(XmlFormatting fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7678
      start: 7676
    functionDepth: 0
    functionLinenumber: 7676
    functionLinenumberEnd: 7678
    functionName: Catch::shouldIndent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: bool
    signature: bool shouldIndent(XmlFormatting fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<XmlFormatting>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7683,1
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7684,1
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - XmlFormatting
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7687
      start: 7682
    functionDepth: 0
    functionLinenumber: 7682
    functionLinenumberEnd: 7687
    functionName: operator | (XmlFormatting lhs, XmlFormatting rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XmlFormatting>
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: XmlFormatting
    signature: XmlFormatting operator | (XmlFormatting lhs, XmlFormatting rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<XmlFormatting>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7690,1
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7691,1
    - Dst: static_cast<std::underlying_type_t<XmlFormatting>>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - XmlFormatting
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7694
      start: 7689
    functionDepth: 0
    functionLinenumber: 7689
    functionLinenumberEnd: 7694
    functionName: operator & (XmlFormatting lhs, XmlFormatting rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XmlFormatting>
    - static_cast<std::underlying_type_t<XmlFormatting>>
    linkageType: ''
    returnType: XmlFormatting
    signature: XmlFormatting operator & (XmlFormatting lhs, XmlFormatting rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - str
    - forWhat
    argTypes:
    - StringRef
    - ForWhat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7700
      start: 7697
    functionDepth: 0
    functionLinenumber: 7697
    functionLinenumberEnd: 7700
    functionName: Catch::XmlEncode::XmlEncode
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlEncode::XmlEncode( StringRef str, ForWhat forWhat )
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7706,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7707,1
    - Dst: hexEscapeChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7733,1
    - Dst: hexEscapeChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7751,1
    - Dst: trailingBytes
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7755,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7757,1
    - Dst: hexEscapeChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7758,1
    - Dst: headerValue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7765,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7767,1
    - Dst: hexEscapeChar
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7782,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 51
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7794
      start: 7702
    functionDepth: 1
    functionLinenumber: 7702
    functionLinenumberEnd: 7794
    functionName: Catch::XmlEncode::encodeTo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - hexEscapeChar
    - headerValue
    - trailingBytes
    - static_cast<unsigned char>
    - size
    linkageType: ''
    returnType: void
    signature: void XmlEncode::encodeTo( std::ostream& os ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encodeTo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' xmlEncode'
    argTypes:
    - std::ostream
    - XmlEncode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7799
      start: 7796
    functionDepth: 0
    functionLinenumber: 7796
    functionLinenumberEnd: 7799
    functionName: '& operator << ( std::ostream& os, XmlEncode const& xmlEncode )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - encodeTo
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator << ( std::ostream& os, XmlEncode const& xmlEncode
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - writer
    - fmt
    argTypes:
    - XmlWriter*
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7804
      start: 7801
    functionDepth: 0
    functionLinenumber: 7801
    functionLinenumberEnd: 7804
    functionName: XmlWriter::ScopedElement::ScopedElement( XmlWriter* writer, XmlFormatting
      fmt )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::ScopedElement::ScopedElement( XmlWriter* writer, XmlFormatting
      fmt )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ScopedElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7812
      start: 7806
    functionDepth: 0
    functionLinenumber: 7806
    functionLinenumberEnd: 7812
    functionName: XmlWriter::ScopedElement::ScopedElement( ScopedElement&& other )
      noexcept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::ScopedElement::ScopedElement( ScopedElement&& other
      ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ScopedElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7822
      start: 7813
    functionDepth: 0
    functionLinenumber: 7813
    functionLinenumberEnd: 7822
    functionName: '& XmlWriter::ScopedElement::operator=( ScopedElement&& other )
      noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endElement
    linkageType: ''
    returnType: XmlWriter::ScopedElement
    signature: XmlWriter::ScopedElement & XmlWriter::ScopedElement::operator=( ScopedElement&&
      other ) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7829
      start: 7825
    functionDepth: 0
    functionLinenumber: 7825
    functionLinenumberEnd: 7829
    functionName: XmlWriter::ScopedElement::~ScopedElement()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlWriter::ScopedElement::~ScopedElement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - text
    - fmt
    argTypes:
    - StringRef
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7835
      start: 7831
    functionDepth: 0
    functionLinenumber: 7831
    functionLinenumberEnd: 7835
    functionName: "&\n    XmlWriter::ScopedElement::writeText( StringRef text, XmlFormatting
      fmt )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeText
    linkageType: ''
    returnType: XmlWriter::ScopedElement
    signature: "XmlWriter::ScopedElement &\n    XmlWriter::ScopedElement::writeText(
      StringRef text, XmlFormatting fmt )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - attribute
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7842
      start: 7837
    functionDepth: 0
    functionLinenumber: 7837
    functionLinenumberEnd: 7842
    functionName: "&\n    XmlWriter::ScopedElement::writeAttribute( StringRef name,\n
      \                                             StringRef attribute )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    linkageType: ''
    returnType: XmlWriter::ScopedElement
    signature: "XmlWriter::ScopedElement &\n    XmlWriter::ScopedElement::writeAttribute(
      StringRef name,\n                                              StringRef attribute
      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::XmlWriter::writeDeclaration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7848
      start: 7845
    functionDepth: 1
    functionLinenumber: 7845
    functionLinenumberEnd: 7848
    functionName: Catch::XmlWriter::XmlWriter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::XmlWriter::writeDeclaration
    linkageType: ''
    returnType: void
    signature: void XmlWriter::XmlWriter( std::ostream& os )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7851,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7852,1
    - Dst: newlineIfNecessary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7855
      start: 7850
    functionDepth: 0
    functionLinenumber: 7850
    functionLinenumberEnd: 7855
    functionName: XmlWriter::~XmlWriter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - newlineIfNecessary
    - empty
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlWriter::~XmlWriter()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7858,1
    - Dst: newlineIfNecessary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7859,1
    - Dst: shouldIndent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7860,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7865,1
    - Dst: applyFormatting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' name'
    - fmt
    argTypes:
    - std::string
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7869
      start: 7857
    functionDepth: 0
    functionLinenumber: 7857
    functionLinenumberEnd: 7869
    functionName: '& XmlWriter::startElement( std::string const& name, XmlFormatting
      fmt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - shouldIndent
    - applyFormatting
    - newlineIfNecessary
    - ensureTagClosed
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::startElement( std::string const& name, XmlFormatting
      fmt )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - fmt
    argTypes:
    - std::string
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7875
      start: 7871
    functionDepth: 0
    functionLinenumber: 7871
    functionLinenumberEnd: 7875
    functionName: Catch::XmlWriter::scopedElement
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - startElement
    linkageType: ''
    returnType: XmlWriter::ScopedElement
    signature: XmlWriter::ScopedElement XmlWriter::scopedElement( std::string const&
      name, XmlFormatting fmt )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7878,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7878,1
    - Dst: newlineIfNecessary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7884,1
    - Dst: shouldIndent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7885,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7888,1
    - Dst: applyFormatting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7891,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7894
      start: 7877
    functionDepth: 1
    functionLinenumber: 7877
    functionLinenumberEnd: 7894
    functionName: '& XmlWriter::endElement(XmlFormatting fmt)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - applyFormatting
    - back
    - shouldIndent
    - newlineIfNecessary
    - substr
    - size
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::endElement(XmlFormatting fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7898,1
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7898,1
    - Dst: XmlEncode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - name
    - attribute
    argTypes:
    - StringRef
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7901
      start: 7896
    functionDepth: 0
    functionLinenumber: 7896
    functionLinenumberEnd: 7901
    functionName: "& XmlWriter::writeAttribute( StringRef name,\n                                          StringRef
      attribute )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - XmlEncode
    - StringRef::empty
    linkageType: ''
    returnType: XmlWriter
    signature: "XmlWriter & XmlWriter::writeAttribute( StringRef name,\n                                          StringRef
      attribute )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - attribute
    argTypes:
    - StringRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7906
      start: 7903
    functionDepth: 0
    functionLinenumber: 7903
    functionLinenumberEnd: 7906
    functionName: '& XmlWriter::writeAttribute( StringRef name, bool attribute )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::writeAttribute( StringRef name, bool attribute
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7910,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - attribute
    argTypes:
    - StringRef
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7912
      start: 7908
    functionDepth: 0
    functionLinenumber: 7908
    functionLinenumberEnd: 7912
    functionName: "& XmlWriter::writeAttribute( StringRef name,\n                                          char
      const* attribute )"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    - StringRef
    linkageType: ''
    returnType: XmlWriter
    signature: "XmlWriter & XmlWriter::writeAttribute( StringRef name,\n                                          char
      const* attribute )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7915,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7915,1
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7916,1
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7918,1
    - Dst: shouldIndent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7919,1
    - Dst: XmlEncode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7922,1
    - Dst: applyFormatting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - text
    - fmt
    argTypes:
    - StringRef
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7926
      start: 7914
    functionDepth: 1
    functionLinenumber: 7914
    functionLinenumberEnd: 7926
    functionName: '& XmlWriter::writeText( StringRef text, XmlFormatting fmt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef::empty
    - XmlEncode
    - CATCH_ENFORCE
    - empty
    - applyFormatting
    - shouldIndent
    - ensureTagClosed
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::writeText( StringRef text, XmlFormatting fmt
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7929,1
    - Dst: shouldIndent
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7930,1
    - Dst: applyFormatting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - text
    - fmt
    argTypes:
    - StringRef
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7936
      start: 7928
    functionDepth: 0
    functionLinenumber: 7928
    functionLinenumberEnd: 7936
    functionName: '& XmlWriter::writeComment( StringRef text, XmlFormatting fmt )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - applyFormatting
    - ensureTagClosed
    - shouldIndent
    linkageType: ''
    returnType: XmlWriter
    signature: XmlWriter & XmlWriter::writeComment( StringRef text, XmlFormatting
      fmt )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7940
      start: 7938
    functionDepth: 0
    functionLinenumber: 7938
    functionLinenumberEnd: 7940
    functionName: Catch::XmlWriter::writeStylesheetRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::writeStylesheetRef( StringRef url )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::XmlWriter::newlineIfNecessary
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7948
      start: 7942
    functionDepth: 1
    functionLinenumber: 7942
    functionLinenumberEnd: 7948
    functionName: Catch::XmlWriter::ensureTagClosed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::XmlWriter::newlineIfNecessary
    linkageType: ''
    returnType: void
    signature: void XmlWriter::ensureTagClosed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shouldNewline
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - XmlFormatting
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7952
      start: 7950
    functionDepth: 0
    functionLinenumber: 7950
    functionLinenumberEnd: 7952
    functionName: Catch::XmlWriter::applyFormatting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - shouldNewline
    linkageType: ''
    returnType: void
    signature: void XmlWriter::applyFormatting(XmlFormatting fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7956
      start: 7954
    functionDepth: 0
    functionLinenumber: 7954
    functionLinenumberEnd: 7956
    functionName: Catch::XmlWriter::writeDeclaration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::writeDeclaration()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7963
      start: 7958
    functionDepth: 0
    functionLinenumber: 7958
    functionLinenumberEnd: 7963
    functionName: Catch::XmlWriter::newlineIfNecessary
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlWriter::newlineIfNecessary()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7974,1
    - Dst: describe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7978
      start: 7973
    functionDepth: 0
    functionLinenumber: 7973
    functionLinenumberEnd: 7978
    functionName: Catch::Matchers::MatcherUntypedBase::toString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - describe
    linkageType: ''
    returnType: std::string
    signature: std::string MatcherUntypedBase::toString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7980
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 7980
    functionName: MatcherUntypedBase::~MatcherUntypedBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase::~MatcherUntypedBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7974,1
    - Dst: describe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7978
      start: 7973
    functionDepth: 0
    functionLinenumber: 7973
    functionLinenumberEnd: 7978
    functionName: Catch::Matchers::MatcherUntypedBase::toString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - describe
    linkageType: ''
    returnType: std::string
    signature: std::string MatcherUntypedBase::toString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7980
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 7980
    functionName: MatcherUntypedBase::~MatcherUntypedBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase::~MatcherUntypedBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7974,1
    - Dst: describe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7978
      start: 7973
    functionDepth: 0
    functionLinenumber: 7973
    functionLinenumberEnd: 7978
    functionName: Catch::Matchers::MatcherUntypedBase::toString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - describe
    linkageType: ''
    returnType: std::string
    signature: std::string MatcherUntypedBase::toString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7980
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 7980
    functionName: MatcherUntypedBase::~MatcherUntypedBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase::~MatcherUntypedBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7974,1
    - Dst: describe
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7978
      start: 7973
    functionDepth: 0
    functionLinenumber: 7973
    functionLinenumberEnd: 7978
    functionName: Catch::Matchers::MatcherUntypedBase::toString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - describe
    linkageType: ''
    returnType: std::string
    signature: std::string MatcherUntypedBase::toString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7980
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 7980
    functionName: MatcherUntypedBase::~MatcherUntypedBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherUntypedBase::~MatcherUntypedBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7993
      start: 7991
    functionDepth: 0
    functionLinenumber: 7991
    functionLinenumberEnd: 7993
    functionName: Catch::Matchers::IsEmptyMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string IsEmptyMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7999
      start: 7995
    functionDepth: 0
    functionLinenumber: 7995
    functionLinenumberEnd: 7999
    functionName: Catch::Matchers::HasSizeMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string HasSizeMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8003
      start: 8001
    functionDepth: 0
    functionLinenumber: 8001
    functionLinenumberEnd: 8003
    functionName: Catch::Matchers::IsEmpty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IsEmptyMatcher
    signature: IsEmptyMatcher IsEmpty()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8007
      start: 8005
    functionDepth: 0
    functionLinenumber: 8005
    functionLinenumberEnd: 8007
    functionName: Catch::Matchers::SizeIs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HasSizeMatcher
    signature: HasSizeMatcher SizeIs(std::size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7993
      start: 7991
    functionDepth: 0
    functionLinenumber: 7991
    functionLinenumberEnd: 7993
    functionName: Catch::Matchers::IsEmptyMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string IsEmptyMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7999
      start: 7995
    functionDepth: 0
    functionLinenumber: 7995
    functionLinenumberEnd: 7999
    functionName: Catch::Matchers::HasSizeMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string HasSizeMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8003
      start: 8001
    functionDepth: 0
    functionLinenumber: 8001
    functionLinenumberEnd: 8003
    functionName: Catch::Matchers::IsEmpty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IsEmptyMatcher
    signature: IsEmptyMatcher IsEmpty()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8007
      start: 8005
    functionDepth: 0
    functionLinenumber: 8005
    functionLinenumberEnd: 8007
    functionName: Catch::Matchers::SizeIs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HasSizeMatcher
    signature: HasSizeMatcher SizeIs(std::size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7993
      start: 7991
    functionDepth: 0
    functionLinenumber: 7991
    functionLinenumberEnd: 7993
    functionName: Catch::Matchers::IsEmptyMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string IsEmptyMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7999
      start: 7995
    functionDepth: 0
    functionLinenumber: 7995
    functionLinenumberEnd: 7999
    functionName: Catch::Matchers::HasSizeMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string HasSizeMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8003
      start: 8001
    functionDepth: 0
    functionLinenumber: 8001
    functionLinenumberEnd: 8003
    functionName: Catch::Matchers::IsEmpty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IsEmptyMatcher
    signature: IsEmptyMatcher IsEmpty()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8007
      start: 8005
    functionDepth: 0
    functionLinenumber: 8005
    functionLinenumberEnd: 8007
    functionName: Catch::Matchers::SizeIs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HasSizeMatcher
    signature: HasSizeMatcher SizeIs(std::size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7993
      start: 7991
    functionDepth: 0
    functionLinenumber: 7991
    functionLinenumberEnd: 7993
    functionName: Catch::Matchers::IsEmptyMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string IsEmptyMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:7998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7999
      start: 7995
    functionDepth: 0
    functionLinenumber: 7995
    functionLinenumberEnd: 7999
    functionName: Catch::Matchers::HasSizeMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string HasSizeMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8003
      start: 8001
    functionDepth: 0
    functionLinenumber: 8001
    functionLinenumberEnd: 8003
    functionName: Catch::Matchers::IsEmpty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IsEmptyMatcher
    signature: IsEmptyMatcher IsEmpty()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8007
      start: 8005
    functionDepth: 0
    functionLinenumber: 8005
    functionLinenumberEnd: 8007
    functionName: Catch::Matchers::SizeIs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HasSizeMatcher
    signature: HasSizeMatcher SizeIs(std::size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8019
      start: 8017
    functionDepth: 0
    functionLinenumber: 8017
    functionLinenumberEnd: 8019
    functionName: Catch::Matchers::ExceptionMessageMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: bool
    signature: bool ExceptionMessageMatcher::match(std::exception const& ex) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8023
      start: 8021
    functionDepth: 0
    functionLinenumber: 8021
    functionLinenumberEnd: 8023
    functionName: Catch::Matchers::ExceptionMessageMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ExceptionMessageMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExceptionMessageMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8027
      start: 8025
    functionDepth: 0
    functionLinenumber: 8025
    functionLinenumberEnd: 8027
    functionName: Catch::Matchers::Message
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ExceptionMessageMatcher
    linkageType: ''
    returnType: ExceptionMessageMatcher
    signature: ExceptionMessageMatcher Message(std::string const& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8019
      start: 8017
    functionDepth: 0
    functionLinenumber: 8017
    functionLinenumberEnd: 8019
    functionName: Catch::Matchers::ExceptionMessageMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: bool
    signature: bool ExceptionMessageMatcher::match(std::exception const& ex) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8023
      start: 8021
    functionDepth: 0
    functionLinenumber: 8021
    functionLinenumberEnd: 8023
    functionName: Catch::Matchers::ExceptionMessageMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ExceptionMessageMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExceptionMessageMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8027
      start: 8025
    functionDepth: 0
    functionLinenumber: 8025
    functionLinenumberEnd: 8027
    functionName: Catch::Matchers::Message
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ExceptionMessageMatcher
    linkageType: ''
    returnType: ExceptionMessageMatcher
    signature: ExceptionMessageMatcher Message(std::string const& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8019
      start: 8017
    functionDepth: 0
    functionLinenumber: 8017
    functionLinenumberEnd: 8019
    functionName: Catch::Matchers::ExceptionMessageMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: bool
    signature: bool ExceptionMessageMatcher::match(std::exception const& ex) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8023
      start: 8021
    functionDepth: 0
    functionLinenumber: 8021
    functionLinenumberEnd: 8023
    functionName: Catch::Matchers::ExceptionMessageMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ExceptionMessageMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExceptionMessageMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8027
      start: 8025
    functionDepth: 0
    functionLinenumber: 8025
    functionLinenumberEnd: 8027
    functionName: Catch::Matchers::Message
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ExceptionMessageMatcher
    linkageType: ''
    returnType: ExceptionMessageMatcher
    signature: ExceptionMessageMatcher Message(std::string const& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8019
      start: 8017
    functionDepth: 0
    functionLinenumber: 8017
    functionLinenumberEnd: 8019
    functionName: Catch::Matchers::ExceptionMessageMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: bool
    signature: bool ExceptionMessageMatcher::match(std::exception const& ex) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8023
      start: 8021
    functionDepth: 0
    functionLinenumber: 8021
    functionLinenumberEnd: 8023
    functionName: Catch::Matchers::ExceptionMessageMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ExceptionMessageMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExceptionMessageMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8027
      start: 8025
    functionDepth: 0
    functionLinenumber: 8025
    functionLinenumberEnd: 8027
    functionName: Catch::Matchers::Message
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ExceptionMessageMatcher
    linkageType: ''
    returnType: ExceptionMessageMatcher
    signature: ExceptionMessageMatcher Message(std::string const& message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8050,1
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8050,1
    - Dst: Catch::ulpDistance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - lhs
    - rhs
    - maxUlpDiff
    argTypes:
    - FP
    - FP
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8058
      start: 8047
    functionDepth: 2
    functionLinenumber: 8047
    functionLinenumberEnd: 8058
    functionName: Catch::almostEqualUlps
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isnan
    - Catch::ulpDistance
    linkageType: ''
    returnType: bool
    signature: bool almostEqualUlps(FP lhs, FP rhs, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - start
    - direction
    - steps
    argTypes:
    - FP
    - FP
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8067
      start: 8062
    functionDepth: 2
    functionLinenumber: 8062
    functionLinenumberEnd: 8067
    functionName: Catch::step
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: FP
    signature: FP step(FP start, FP direction, uint64_t steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - margin
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8073
      start: 8071
    functionDepth: 0
    functionLinenumber: 8071
    functionLinenumberEnd: 8073
    functionName: Catch::marginComparison
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool marginComparison(double lhs, double rhs, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - num
    argTypes:
    - std::ostream
    - FloatingPoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8080
      start: 8076
    functionDepth: 0
    functionLinenumber: 8076
    functionLinenumberEnd: 8080
    functionName: Catch::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::setprecision
    linkageType: ''
    returnType: void
    signature: void write(std::ostream& out, FloatingPoint num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8050,1
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8050,1
    - Dst: Catch::ulpDistance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - lhs
    - rhs
    - maxUlpDiff
    argTypes:
    - FP
    - FP
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8058
      start: 8047
    functionDepth: 2
    functionLinenumber: 8047
    functionLinenumberEnd: 8058
    functionName: Catch::almostEqualUlps
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isnan
    - Catch::ulpDistance
    linkageType: ''
    returnType: bool
    signature: bool almostEqualUlps(FP lhs, FP rhs, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - start
    - direction
    - steps
    argTypes:
    - FP
    - FP
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8067
      start: 8062
    functionDepth: 2
    functionLinenumber: 8062
    functionLinenumberEnd: 8067
    functionName: Catch::step
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: FP
    signature: FP step(FP start, FP direction, uint64_t steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - margin
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8073
      start: 8071
    functionDepth: 0
    functionLinenumber: 8071
    functionLinenumberEnd: 8073
    functionName: Catch::marginComparison
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool marginComparison(double lhs, double rhs, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - num
    argTypes:
    - std::ostream
    - FloatingPoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8080
      start: 8076
    functionDepth: 0
    functionLinenumber: 8076
    functionLinenumberEnd: 8080
    functionName: Catch::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::setprecision
    linkageType: ''
    returnType: void
    signature: void write(std::ostream& out, FloatingPoint num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - margin
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8099
      start: 8095
    functionDepth: 1
    functionLinenumber: 8095
    functionLinenumberEnd: 8099
    functionName: Catch::Matchers::WithinAbsMatcher::WithinAbsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinAbsMatcher::WithinAbsMatcher(double target, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8103
    functionDepth: 0
    functionLinenumber: 8103
    functionLinenumberEnd: 8105
    functionName: Catch::Matchers::WithinAbsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WithinAbsMatcher::match(double const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8108,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8109
      start: 8107
    functionDepth: 1
    functionLinenumber: 8107
    functionLinenumberEnd: 8109
    functionName: Catch::Matchers::WithinAbsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string WithinAbsMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8114,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - target
    - ulps
    - baseType
    argTypes:
    - double
    - uint64_t
    - Detail::FloatingPointKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8120
      start: 8112
    functionDepth: 1
    functionLinenumber: 8112
    functionLinenumberEnd: 8120
    functionName: Catch::Matchers::WithinUlpsMatcher::WithinUlpsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinUlpsMatcher::WithinUlpsMatcher(double target, uint64_t ulps,
      Detail::FloatingPointKind baseType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: almostEqualUlps<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: almostEqualUlps<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8133,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8137
      start: 8128
    functionDepth: 1
    functionLinenumber: 8128
    functionLinenumberEnd: 8137
    functionName: Catch::Matchers::WithinUlpsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - almostEqualUlps<float>
    - static_cast<float>
    - almostEqualUlps<double>
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: bool
    signature: bool WithinUlpsMatcher::match(double const& matchee) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8149,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8149,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8152,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8157,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8158,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8159,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8162,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8163,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8164,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8168,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8169,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8169,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8170,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8173,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8174,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8174,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8175,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8181
      start: 8143
    functionDepth: 2
    functionLinenumber: 8143
    functionLinenumberEnd: 8181
    functionName: Catch::Matchers::WithinUlpsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - static_cast<float>
    - write
    - std::numeric_limits<float>::infinity
    - step
    - std::numeric_limits<double>::infinity
    linkageType: ''
    returnType: std::string
    signature: std::string WithinUlpsMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8186,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - epsilon
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8188
      start: 8183
    functionDepth: 1
    functionLinenumber: 8183
    functionLinenumberEnd: 8188
    functionName: Catch::Matchers::WithinRelMatcher::WithinRelMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinRelMatcher::WithinRelMatcher(double target, double epsilon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8191,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8191,1
    - Dst: marginComparison
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8192,1
    - Dst: std::isinf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8194
      start: 8190
    functionDepth: 1
    functionLinenumber: 8190
    functionLinenumberEnd: 8194
    functionName: Catch::Matchers::WithinRelMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - marginComparison
    - std::fabs
    - std::isinf
    linkageType: ''
    returnType: bool
    signature: bool WithinRelMatcher::match(double const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ReusableStringStream::ReusableStringStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8197,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8198,1
    - Dst: Catch::ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8200
      start: 8196
    functionDepth: 3
    functionLinenumber: 8196
    functionLinenumberEnd: 8200
    functionName: Catch::Matchers::WithinRelMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ReusableStringStream::ReusableStringStream
    - Catch::Detail::stringify
    - Catch::ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string WithinRelMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinUlpsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - maxUlpDiff
    argTypes:
    - double
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8205
      start: 8203
    functionDepth: 0
    functionLinenumber: 8203
    functionLinenumberEnd: 8205
    functionName: Catch::Matchers::WithinULP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinUlpsMatcher
    linkageType: ''
    returnType: WithinUlpsMatcher
    signature: WithinUlpsMatcher WithinULP(double target, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinUlpsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - maxUlpDiff
    argTypes:
    - float
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8209
      start: 8207
    functionDepth: 0
    functionLinenumber: 8207
    functionLinenumberEnd: 8209
    functionName: Catch::Matchers::WithinULP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinUlpsMatcher
    linkageType: ''
    returnType: WithinUlpsMatcher
    signature: WithinUlpsMatcher WithinULP(float target, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinAbsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - margin
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8213
      start: 8211
    functionDepth: 0
    functionLinenumber: 8211
    functionLinenumberEnd: 8213
    functionName: Catch::Matchers::WithinAbs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinAbsMatcher
    linkageType: ''
    returnType: WithinAbsMatcher
    signature: WithinAbsMatcher WithinAbs(double target, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - eps
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8217
      start: 8215
    functionDepth: 0
    functionLinenumber: 8215
    functionLinenumberEnd: 8217
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(double target, double eps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8220,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8221
      start: 8219
    functionDepth: 2
    functionLinenumber: 8219
    functionLinenumberEnd: 8221
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(double target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - eps
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8225
      start: 8223
    functionDepth: 0
    functionLinenumber: 8223
    functionLinenumberEnd: 8225
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(float target, float eps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8228,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8229
      start: 8227
    functionDepth: 2
    functionLinenumber: 8227
    functionLinenumberEnd: 8229
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(float target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8235
      start: 8233
    functionDepth: 0
    functionLinenumber: 8233
    functionLinenumberEnd: 8235
    functionName: Catch::Matchers::IsNaNMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::isnan
    linkageType: ''
    returnType: bool
    signature: bool IsNaNMatcher::match( double const& matchee ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8240
      start: 8237
    functionDepth: 0
    functionLinenumber: 8237
    functionLinenumberEnd: 8240
    functionName: Catch::Matchers::IsNaNMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string IsNaNMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsNaNMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8242
      start: 8242
    functionDepth: 0
    functionLinenumber: 8242
    functionLinenumberEnd: 8242
    functionName: Catch::Matchers::IsNaN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - IsNaNMatcher
    linkageType: ''
    returnType: IsNaNMatcher
    signature: IsNaNMatcher IsNaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - margin
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8099
      start: 8095
    functionDepth: 1
    functionLinenumber: 8095
    functionLinenumberEnd: 8099
    functionName: Catch::Matchers::WithinAbsMatcher::WithinAbsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinAbsMatcher::WithinAbsMatcher(double target, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8103
    functionDepth: 0
    functionLinenumber: 8103
    functionLinenumberEnd: 8105
    functionName: Catch::Matchers::WithinAbsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WithinAbsMatcher::match(double const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8108,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8109
      start: 8107
    functionDepth: 1
    functionLinenumber: 8107
    functionLinenumberEnd: 8109
    functionName: Catch::Matchers::WithinAbsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string WithinAbsMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8114,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - target
    - ulps
    - baseType
    argTypes:
    - double
    - uint64_t
    - Detail::FloatingPointKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8120
      start: 8112
    functionDepth: 1
    functionLinenumber: 8112
    functionLinenumberEnd: 8120
    functionName: Catch::Matchers::WithinUlpsMatcher::WithinUlpsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinUlpsMatcher::WithinUlpsMatcher(double target, uint64_t ulps,
      Detail::FloatingPointKind baseType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: almostEqualUlps<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: almostEqualUlps<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8133,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8137
      start: 8128
    functionDepth: 1
    functionLinenumber: 8128
    functionLinenumberEnd: 8137
    functionName: Catch::Matchers::WithinUlpsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - almostEqualUlps<float>
    - static_cast<float>
    - almostEqualUlps<double>
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: bool
    signature: bool WithinUlpsMatcher::match(double const& matchee) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8149,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8149,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8152,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8157,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8158,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8159,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8162,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8163,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8164,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8168,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8169,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8169,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8170,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8173,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8174,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8174,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8175,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8181
      start: 8143
    functionDepth: 2
    functionLinenumber: 8143
    functionLinenumberEnd: 8181
    functionName: Catch::Matchers::WithinUlpsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - static_cast<float>
    - write
    - std::numeric_limits<float>::infinity
    - step
    - std::numeric_limits<double>::infinity
    linkageType: ''
    returnType: std::string
    signature: std::string WithinUlpsMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8186,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - epsilon
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8188
      start: 8183
    functionDepth: 1
    functionLinenumber: 8183
    functionLinenumberEnd: 8188
    functionName: Catch::Matchers::WithinRelMatcher::WithinRelMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinRelMatcher::WithinRelMatcher(double target, double epsilon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8191,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8191,1
    - Dst: marginComparison
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8192,1
    - Dst: std::isinf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8194
      start: 8190
    functionDepth: 1
    functionLinenumber: 8190
    functionLinenumberEnd: 8194
    functionName: Catch::Matchers::WithinRelMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - marginComparison
    - std::fabs
    - std::isinf
    linkageType: ''
    returnType: bool
    signature: bool WithinRelMatcher::match(double const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ReusableStringStream::ReusableStringStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8197,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8198,1
    - Dst: Catch::ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8200
      start: 8196
    functionDepth: 3
    functionLinenumber: 8196
    functionLinenumberEnd: 8200
    functionName: Catch::Matchers::WithinRelMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ReusableStringStream::ReusableStringStream
    - Catch::Detail::stringify
    - Catch::ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string WithinRelMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinUlpsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - maxUlpDiff
    argTypes:
    - double
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8205
      start: 8203
    functionDepth: 0
    functionLinenumber: 8203
    functionLinenumberEnd: 8205
    functionName: Catch::Matchers::WithinULP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinUlpsMatcher
    linkageType: ''
    returnType: WithinUlpsMatcher
    signature: WithinUlpsMatcher WithinULP(double target, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinUlpsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - maxUlpDiff
    argTypes:
    - float
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8209
      start: 8207
    functionDepth: 0
    functionLinenumber: 8207
    functionLinenumberEnd: 8209
    functionName: Catch::Matchers::WithinULP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinUlpsMatcher
    linkageType: ''
    returnType: WithinUlpsMatcher
    signature: WithinUlpsMatcher WithinULP(float target, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinAbsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - margin
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8213
      start: 8211
    functionDepth: 0
    functionLinenumber: 8211
    functionLinenumberEnd: 8213
    functionName: Catch::Matchers::WithinAbs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinAbsMatcher
    linkageType: ''
    returnType: WithinAbsMatcher
    signature: WithinAbsMatcher WithinAbs(double target, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - eps
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8217
      start: 8215
    functionDepth: 0
    functionLinenumber: 8215
    functionLinenumberEnd: 8217
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(double target, double eps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8220,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8221
      start: 8219
    functionDepth: 2
    functionLinenumber: 8219
    functionLinenumberEnd: 8221
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(double target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - eps
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8225
      start: 8223
    functionDepth: 0
    functionLinenumber: 8223
    functionLinenumberEnd: 8225
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(float target, float eps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8228,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8229
      start: 8227
    functionDepth: 2
    functionLinenumber: 8227
    functionLinenumberEnd: 8229
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(float target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8235
      start: 8233
    functionDepth: 0
    functionLinenumber: 8233
    functionLinenumberEnd: 8235
    functionName: Catch::Matchers::IsNaNMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::isnan
    linkageType: ''
    returnType: bool
    signature: bool IsNaNMatcher::match( double const& matchee ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8240
      start: 8237
    functionDepth: 0
    functionLinenumber: 8237
    functionLinenumberEnd: 8240
    functionName: Catch::Matchers::IsNaNMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string IsNaNMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsNaNMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8242
      start: 8242
    functionDepth: 0
    functionLinenumber: 8242
    functionLinenumberEnd: 8242
    functionName: Catch::Matchers::IsNaN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - IsNaNMatcher
    linkageType: ''
    returnType: IsNaNMatcher
    signature: IsNaNMatcher IsNaN()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8050,1
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8050,1
    - Dst: Catch::ulpDistance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - lhs
    - rhs
    - maxUlpDiff
    argTypes:
    - FP
    - FP
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8058
      start: 8047
    functionDepth: 2
    functionLinenumber: 8047
    functionLinenumberEnd: 8058
    functionName: Catch::almostEqualUlps
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isnan
    - Catch::ulpDistance
    linkageType: ''
    returnType: bool
    signature: bool almostEqualUlps(FP lhs, FP rhs, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - start
    - direction
    - steps
    argTypes:
    - FP
    - FP
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8067
      start: 8062
    functionDepth: 2
    functionLinenumber: 8062
    functionLinenumberEnd: 8067
    functionName: Catch::step
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: FP
    signature: FP step(FP start, FP direction, uint64_t steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - margin
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8073
      start: 8071
    functionDepth: 0
    functionLinenumber: 8071
    functionLinenumberEnd: 8073
    functionName: Catch::marginComparison
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool marginComparison(double lhs, double rhs, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - num
    argTypes:
    - std::ostream
    - FloatingPoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8080
      start: 8076
    functionDepth: 0
    functionLinenumber: 8076
    functionLinenumberEnd: 8080
    functionName: Catch::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::setprecision
    linkageType: ''
    returnType: void
    signature: void write(std::ostream& out, FloatingPoint num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8050,1
    - Dst: Catch::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8050,1
    - Dst: Catch::ulpDistance
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - lhs
    - rhs
    - maxUlpDiff
    argTypes:
    - FP
    - FP
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8058
      start: 8047
    functionDepth: 2
    functionLinenumber: 8047
    functionLinenumberEnd: 8058
    functionName: Catch::almostEqualUlps
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::isnan
    - Catch::ulpDistance
    linkageType: ''
    returnType: bool
    signature: bool almostEqualUlps(FP lhs, FP rhs, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::nextafter
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - start
    - direction
    - steps
    argTypes:
    - FP
    - FP
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8067
      start: 8062
    functionDepth: 2
    functionLinenumber: 8062
    functionLinenumberEnd: 8067
    functionName: Catch::step
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::nextafter
    linkageType: ''
    returnType: FP
    signature: FP step(FP start, FP direction, uint64_t steps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - margin
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8073
      start: 8071
    functionDepth: 0
    functionLinenumber: 8071
    functionLinenumberEnd: 8073
    functionName: Catch::marginComparison
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool marginComparison(double lhs, double rhs, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - num
    argTypes:
    - std::ostream
    - FloatingPoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8080
      start: 8076
    functionDepth: 0
    functionLinenumber: 8076
    functionLinenumberEnd: 8080
    functionName: Catch::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::setprecision
    linkageType: ''
    returnType: void
    signature: void write(std::ostream& out, FloatingPoint num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - margin
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8099
      start: 8095
    functionDepth: 1
    functionLinenumber: 8095
    functionLinenumberEnd: 8099
    functionName: Catch::Matchers::WithinAbsMatcher::WithinAbsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinAbsMatcher::WithinAbsMatcher(double target, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8103
    functionDepth: 0
    functionLinenumber: 8103
    functionLinenumberEnd: 8105
    functionName: Catch::Matchers::WithinAbsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WithinAbsMatcher::match(double const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8108,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8109
      start: 8107
    functionDepth: 1
    functionLinenumber: 8107
    functionLinenumberEnd: 8109
    functionName: Catch::Matchers::WithinAbsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string WithinAbsMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8114,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - target
    - ulps
    - baseType
    argTypes:
    - double
    - uint64_t
    - Detail::FloatingPointKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8120
      start: 8112
    functionDepth: 1
    functionLinenumber: 8112
    functionLinenumberEnd: 8120
    functionName: Catch::Matchers::WithinUlpsMatcher::WithinUlpsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinUlpsMatcher::WithinUlpsMatcher(double target, uint64_t ulps,
      Detail::FloatingPointKind baseType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: almostEqualUlps<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: almostEqualUlps<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8133,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8137
      start: 8128
    functionDepth: 1
    functionLinenumber: 8128
    functionLinenumberEnd: 8137
    functionName: Catch::Matchers::WithinUlpsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - almostEqualUlps<float>
    - static_cast<float>
    - almostEqualUlps<double>
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: bool
    signature: bool WithinUlpsMatcher::match(double const& matchee) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8149,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8149,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8152,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8157,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8158,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8159,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8162,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8163,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8164,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8168,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8169,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8169,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8170,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8173,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8174,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8174,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8175,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8181
      start: 8143
    functionDepth: 2
    functionLinenumber: 8143
    functionLinenumberEnd: 8181
    functionName: Catch::Matchers::WithinUlpsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - static_cast<float>
    - write
    - std::numeric_limits<float>::infinity
    - step
    - std::numeric_limits<double>::infinity
    linkageType: ''
    returnType: std::string
    signature: std::string WithinUlpsMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8186,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - epsilon
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8188
      start: 8183
    functionDepth: 1
    functionLinenumber: 8183
    functionLinenumberEnd: 8188
    functionName: Catch::Matchers::WithinRelMatcher::WithinRelMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinRelMatcher::WithinRelMatcher(double target, double epsilon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8191,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8191,1
    - Dst: marginComparison
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8192,1
    - Dst: std::isinf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8194
      start: 8190
    functionDepth: 1
    functionLinenumber: 8190
    functionLinenumberEnd: 8194
    functionName: Catch::Matchers::WithinRelMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - marginComparison
    - std::fabs
    - std::isinf
    linkageType: ''
    returnType: bool
    signature: bool WithinRelMatcher::match(double const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ReusableStringStream::ReusableStringStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8197,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8198,1
    - Dst: Catch::ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8200
      start: 8196
    functionDepth: 3
    functionLinenumber: 8196
    functionLinenumberEnd: 8200
    functionName: Catch::Matchers::WithinRelMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ReusableStringStream::ReusableStringStream
    - Catch::Detail::stringify
    - Catch::ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string WithinRelMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinUlpsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - maxUlpDiff
    argTypes:
    - double
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8205
      start: 8203
    functionDepth: 0
    functionLinenumber: 8203
    functionLinenumberEnd: 8205
    functionName: Catch::Matchers::WithinULP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinUlpsMatcher
    linkageType: ''
    returnType: WithinUlpsMatcher
    signature: WithinUlpsMatcher WithinULP(double target, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinUlpsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - maxUlpDiff
    argTypes:
    - float
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8209
      start: 8207
    functionDepth: 0
    functionLinenumber: 8207
    functionLinenumberEnd: 8209
    functionName: Catch::Matchers::WithinULP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinUlpsMatcher
    linkageType: ''
    returnType: WithinUlpsMatcher
    signature: WithinUlpsMatcher WithinULP(float target, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinAbsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - margin
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8213
      start: 8211
    functionDepth: 0
    functionLinenumber: 8211
    functionLinenumberEnd: 8213
    functionName: Catch::Matchers::WithinAbs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinAbsMatcher
    linkageType: ''
    returnType: WithinAbsMatcher
    signature: WithinAbsMatcher WithinAbs(double target, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - eps
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8217
      start: 8215
    functionDepth: 0
    functionLinenumber: 8215
    functionLinenumberEnd: 8217
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(double target, double eps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8220,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8221
      start: 8219
    functionDepth: 2
    functionLinenumber: 8219
    functionLinenumberEnd: 8221
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(double target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - eps
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8225
      start: 8223
    functionDepth: 0
    functionLinenumber: 8223
    functionLinenumberEnd: 8225
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(float target, float eps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8228,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8229
      start: 8227
    functionDepth: 2
    functionLinenumber: 8227
    functionLinenumberEnd: 8229
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(float target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8235
      start: 8233
    functionDepth: 0
    functionLinenumber: 8233
    functionLinenumberEnd: 8235
    functionName: Catch::Matchers::IsNaNMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::isnan
    linkageType: ''
    returnType: bool
    signature: bool IsNaNMatcher::match( double const& matchee ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8240
      start: 8237
    functionDepth: 0
    functionLinenumber: 8237
    functionLinenumberEnd: 8240
    functionName: Catch::Matchers::IsNaNMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string IsNaNMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsNaNMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8242
      start: 8242
    functionDepth: 0
    functionLinenumber: 8242
    functionLinenumberEnd: 8242
    functionName: Catch::Matchers::IsNaN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - IsNaNMatcher
    linkageType: ''
    returnType: IsNaNMatcher
    signature: IsNaNMatcher IsNaN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - margin
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8099
      start: 8095
    functionDepth: 1
    functionLinenumber: 8095
    functionLinenumberEnd: 8099
    functionName: Catch::Matchers::WithinAbsMatcher::WithinAbsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinAbsMatcher::WithinAbsMatcher(double target, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8105
      start: 8103
    functionDepth: 0
    functionLinenumber: 8103
    functionLinenumberEnd: 8105
    functionName: Catch::Matchers::WithinAbsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool WithinAbsMatcher::match(double const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8108,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8109
      start: 8107
    functionDepth: 1
    functionLinenumber: 8107
    functionLinenumberEnd: 8109
    functionName: Catch::Matchers::WithinAbsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string WithinAbsMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8114,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - target
    - ulps
    - baseType
    argTypes:
    - double
    - uint64_t
    - Detail::FloatingPointKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8120
      start: 8112
    functionDepth: 1
    functionLinenumber: 8112
    functionLinenumberEnd: 8120
    functionName: Catch::Matchers::WithinUlpsMatcher::WithinUlpsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinUlpsMatcher::WithinUlpsMatcher(double target, uint64_t ulps,
      Detail::FloatingPointKind baseType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: almostEqualUlps<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8131,1
    - Dst: almostEqualUlps<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8133,1
    - Dst: CATCH_INTERNAL_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8137
      start: 8128
    functionDepth: 1
    functionLinenumber: 8128
    functionLinenumberEnd: 8137
    functionName: Catch::Matchers::WithinUlpsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - almostEqualUlps<float>
    - static_cast<float>
    - almostEqualUlps<double>
    - CATCH_INTERNAL_ERROR
    linkageType: ''
    returnType: bool
    signature: bool WithinUlpsMatcher::match(double const& matchee) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8149,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8149,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8152,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8157,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8158,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8159,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8162,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8163,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8164,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8168,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8169,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8169,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8170,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8173,1
    - Dst: step
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8174,1
    - Dst: static_cast<float>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8174,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8175,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8181
      start: 8143
    functionDepth: 2
    functionLinenumber: 8143
    functionLinenumberEnd: 8181
    functionName: Catch::Matchers::WithinUlpsMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - static_cast<float>
    - write
    - std::numeric_limits<float>::infinity
    - step
    - std::numeric_limits<double>::infinity
    linkageType: ''
    returnType: std::string
    signature: std::string WithinUlpsMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8186,1
    - Dst: CATCH_ENFORCE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - epsilon
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8188
      start: 8183
    functionDepth: 1
    functionLinenumber: 8183
    functionLinenumberEnd: 8188
    functionName: Catch::Matchers::WithinRelMatcher::WithinRelMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_ENFORCE
    linkageType: ''
    returnType: void
    signature: void WithinRelMatcher::WithinRelMatcher(double target, double epsilon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8191,1
    - Dst: std::fabs
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8191,1
    - Dst: marginComparison
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8192,1
    - Dst: std::isinf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8194
      start: 8190
    functionDepth: 1
    functionLinenumber: 8190
    functionLinenumberEnd: 8194
    functionName: Catch::Matchers::WithinRelMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - marginComparison
    - std::fabs
    - std::isinf
    linkageType: ''
    returnType: bool
    signature: bool WithinRelMatcher::match(double const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ReusableStringStream::ReusableStringStream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8197,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8198,1
    - Dst: Catch::ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8200
      start: 8196
    functionDepth: 3
    functionLinenumber: 8196
    functionLinenumberEnd: 8200
    functionName: Catch::Matchers::WithinRelMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ReusableStringStream::ReusableStringStream
    - Catch::Detail::stringify
    - Catch::ReusableStringStream::str
    linkageType: ''
    returnType: std::string
    signature: std::string WithinRelMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinUlpsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - maxUlpDiff
    argTypes:
    - double
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8205
      start: 8203
    functionDepth: 0
    functionLinenumber: 8203
    functionLinenumberEnd: 8205
    functionName: Catch::Matchers::WithinULP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinUlpsMatcher
    linkageType: ''
    returnType: WithinUlpsMatcher
    signature: WithinUlpsMatcher WithinULP(double target, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinUlpsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - maxUlpDiff
    argTypes:
    - float
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8209
      start: 8207
    functionDepth: 0
    functionLinenumber: 8207
    functionLinenumberEnd: 8209
    functionName: Catch::Matchers::WithinULP
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinUlpsMatcher
    linkageType: ''
    returnType: WithinUlpsMatcher
    signature: WithinUlpsMatcher WithinULP(float target, uint64_t maxUlpDiff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinAbsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - margin
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8213
      start: 8211
    functionDepth: 0
    functionLinenumber: 8211
    functionLinenumberEnd: 8213
    functionName: Catch::Matchers::WithinAbs
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinAbsMatcher
    linkageType: ''
    returnType: WithinAbsMatcher
    signature: WithinAbsMatcher WithinAbs(double target, double margin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - eps
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8217
      start: 8215
    functionDepth: 0
    functionLinenumber: 8215
    functionLinenumberEnd: 8217
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(double target, double eps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8220,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8221
      start: 8219
    functionDepth: 2
    functionLinenumber: 8219
    functionLinenumberEnd: 8221
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(double target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - target
    - eps
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8225
      start: 8223
    functionDepth: 0
    functionLinenumber: 8223
    functionLinenumberEnd: 8225
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(float target, float eps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WithinRelMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8228,1
    - Dst: Catch::Approx::epsilon
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8229
      start: 8227
    functionDepth: 2
    functionLinenumber: 8227
    functionLinenumberEnd: 8229
    functionName: Catch::Matchers::WithinRel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - WithinRelMatcher
    - Catch::Approx::epsilon
    linkageType: ''
    returnType: WithinRelMatcher
    signature: WithinRelMatcher WithinRel(float target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isnan
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8235
      start: 8233
    functionDepth: 0
    functionLinenumber: 8233
    functionLinenumberEnd: 8235
    functionName: Catch::Matchers::IsNaNMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::isnan
    linkageType: ''
    returnType: bool
    signature: bool IsNaNMatcher::match( double const& matchee ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8240
      start: 8237
    functionDepth: 0
    functionLinenumber: 8237
    functionLinenumberEnd: 8240
    functionName: Catch::Matchers::IsNaNMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string IsNaNMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsNaNMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8242
      start: 8242
    functionDepth: 0
    functionLinenumber: 8242
    functionLinenumberEnd: 8242
    functionName: Catch::Matchers::IsNaN
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - IsNaNMatcher
    linkageType: ''
    returnType: IsNaNMatcher
    signature: IsNaNMatcher IsNaN()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' desc'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8256
      start: 8250
    functionDepth: 0
    functionLinenumber: 8250
    functionLinenumberEnd: 8256
    functionName: Catch::Matchers::Detail::finalizeDescription(const std::string&
      desc)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string Catch::Matchers::Detail::finalizeDescription(const std::string&
      desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8262
      start: 8262
    functionDepth: 0
    functionLinenumber: 8262
    functionLinenumberEnd: 8262
    functionName: Catch::Matchers::AllTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string AllTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8264
      start: 8264
    functionDepth: 0
    functionLinenumber: 8264
    functionLinenumberEnd: 8264
    functionName: Catch::Matchers::AllTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AllTrueMatcher
    signature: AllTrueMatcher AllTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8266
      start: 8266
    functionDepth: 0
    functionLinenumber: 8266
    functionLinenumberEnd: 8266
    functionName: Catch::Matchers::NoneTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string NoneTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8268
      start: 8268
    functionDepth: 0
    functionLinenumber: 8268
    functionLinenumberEnd: 8268
    functionName: Catch::Matchers::NoneTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NoneTrueMatcher
    signature: NoneTrueMatcher NoneTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8270
      start: 8270
    functionDepth: 0
    functionLinenumber: 8270
    functionLinenumberEnd: 8270
    functionName: Catch::Matchers::AnyTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string AnyTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8272
      start: 8272
    functionDepth: 0
    functionLinenumber: 8272
    functionLinenumberEnd: 8272
    functionName: Catch::Matchers::AnyTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AnyTrueMatcher
    signature: AnyTrueMatcher AnyTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8262
      start: 8262
    functionDepth: 0
    functionLinenumber: 8262
    functionLinenumberEnd: 8262
    functionName: Catch::Matchers::AllTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string AllTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8264
      start: 8264
    functionDepth: 0
    functionLinenumber: 8264
    functionLinenumberEnd: 8264
    functionName: Catch::Matchers::AllTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AllTrueMatcher
    signature: AllTrueMatcher AllTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8266
      start: 8266
    functionDepth: 0
    functionLinenumber: 8266
    functionLinenumberEnd: 8266
    functionName: Catch::Matchers::NoneTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string NoneTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8268
      start: 8268
    functionDepth: 0
    functionLinenumber: 8268
    functionLinenumberEnd: 8268
    functionName: Catch::Matchers::NoneTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NoneTrueMatcher
    signature: NoneTrueMatcher NoneTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8270
      start: 8270
    functionDepth: 0
    functionLinenumber: 8270
    functionLinenumberEnd: 8270
    functionName: Catch::Matchers::AnyTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string AnyTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8272
      start: 8272
    functionDepth: 0
    functionLinenumber: 8272
    functionLinenumberEnd: 8272
    functionName: Catch::Matchers::AnyTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AnyTrueMatcher
    signature: AnyTrueMatcher AnyTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8262
      start: 8262
    functionDepth: 0
    functionLinenumber: 8262
    functionLinenumberEnd: 8262
    functionName: Catch::Matchers::AllTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string AllTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8264
      start: 8264
    functionDepth: 0
    functionLinenumber: 8264
    functionLinenumberEnd: 8264
    functionName: Catch::Matchers::AllTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AllTrueMatcher
    signature: AllTrueMatcher AllTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8266
      start: 8266
    functionDepth: 0
    functionLinenumber: 8266
    functionLinenumberEnd: 8266
    functionName: Catch::Matchers::NoneTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string NoneTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8268
      start: 8268
    functionDepth: 0
    functionLinenumber: 8268
    functionLinenumberEnd: 8268
    functionName: Catch::Matchers::NoneTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NoneTrueMatcher
    signature: NoneTrueMatcher NoneTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8270
      start: 8270
    functionDepth: 0
    functionLinenumber: 8270
    functionLinenumberEnd: 8270
    functionName: Catch::Matchers::AnyTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string AnyTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8272
      start: 8272
    functionDepth: 0
    functionLinenumber: 8272
    functionLinenumberEnd: 8272
    functionName: Catch::Matchers::AnyTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AnyTrueMatcher
    signature: AnyTrueMatcher AnyTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8262
      start: 8262
    functionDepth: 0
    functionLinenumber: 8262
    functionLinenumberEnd: 8262
    functionName: Catch::Matchers::AllTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string AllTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8264
      start: 8264
    functionDepth: 0
    functionLinenumber: 8264
    functionLinenumberEnd: 8264
    functionName: Catch::Matchers::AllTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AllTrueMatcher
    signature: AllTrueMatcher AllTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8266
      start: 8266
    functionDepth: 0
    functionLinenumber: 8266
    functionLinenumberEnd: 8266
    functionName: Catch::Matchers::NoneTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string NoneTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8268
      start: 8268
    functionDepth: 0
    functionLinenumber: 8268
    functionLinenumberEnd: 8268
    functionName: Catch::Matchers::NoneTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NoneTrueMatcher
    signature: NoneTrueMatcher NoneTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8270
      start: 8270
    functionDepth: 0
    functionLinenumber: 8270
    functionLinenumberEnd: 8270
    functionName: Catch::Matchers::AnyTrueMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string AnyTrueMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8272
      start: 8272
    functionDepth: 0
    functionLinenumber: 8272
    functionLinenumberEnd: 8272
    functionName: Catch::Matchers::AnyTrue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AnyTrueMatcher
    signature: AnyTrueMatcher AnyTrue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::CasedString::adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8286
      start: 8283
    functionDepth: 1
    functionLinenumber: 8283
    functionLinenumberEnd: 8286
    functionName: Catch::Matchers::CasedString::CasedString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::CasedString::adjustString
    linkageType: ''
    returnType: void
    signature: void CasedString::CasedString( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8291
      start: 8287
    functionDepth: 0
    functionLinenumber: 8287
    functionLinenumberEnd: 8291
    functionName: Catch::Matchers::CasedString::adjustString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - toLower
    linkageType: ''
    returnType: std::string
    signature: std::string CasedString::adjustString( std::string const& str ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8296
      start: 8292
    functionDepth: 0
    functionLinenumber: 8292
    functionLinenumberEnd: 8296
    functionName: Catch::Matchers::CasedString::caseSensitivitySuffix
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: StringRef
    signature: StringRef CasedString::caseSensitivitySuffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - operation
    - ' comparator'
    argTypes:
    - StringRef
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8302
      start: 8299
    functionDepth: 0
    functionLinenumber: 8299
    functionLinenumberEnd: 8302
    functionName: Catch::Matchers::StringMatcherBase::StringMatcherBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringMatcherBase::StringMatcherBase( StringRef operation, CasedString
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: m_str::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: caseSensitivitySuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8307,1
    - Dst: caseSensitivitySuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8314
      start: 8304
    functionDepth: 1
    functionLinenumber: 8304
    functionLinenumberEnd: 8314
    functionName: Catch::Matchers::StringMatcherBase::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_str::size
    - caseSensitivitySuffix
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string StringMatcherBase::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8316
      start: 8316
    functionDepth: 0
    functionLinenumber: 8316
    functionLinenumberEnd: 8316
    functionName: Catch::Matchers::StringEqualsMatcher::StringEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringEqualsMatcher::StringEqualsMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8320
      start: 8318
    functionDepth: 0
    functionLinenumber: 8318
    functionLinenumberEnd: 8320
    functionName: Catch::Matchers::StringEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    linkageType: ''
    returnType: bool
    signature: bool StringEqualsMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8323
      start: 8323
    functionDepth: 0
    functionLinenumber: 8323
    functionLinenumberEnd: 8323
    functionName: Catch::Matchers::StringContainsMatcher::StringContainsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringContainsMatcher::StringContainsMatcher( CasedString const&
      comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8326,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8327
      start: 8325
    functionDepth: 1
    functionLinenumber: 8325
    functionLinenumberEnd: 8327
    functionName: Catch::Matchers::StringContainsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    - contains
    linkageType: ''
    returnType: bool
    signature: bool StringContainsMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8330
      start: 8330
    functionDepth: 0
    functionLinenumber: 8330
    functionLinenumberEnd: 8330
    functionName: Catch::Matchers::StartsWithMatcher::StartsWithMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartsWithMatcher::StartsWithMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8333,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8334
      start: 8332
    functionDepth: 0
    functionLinenumber: 8332
    functionLinenumberEnd: 8334
    functionName: Catch::Matchers::StartsWithMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    - startsWith
    linkageType: ''
    returnType: bool
    signature: bool StartsWithMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8337
      start: 8337
    functionDepth: 0
    functionLinenumber: 8337
    functionLinenumberEnd: 8337
    functionName: Catch::Matchers::EndsWithMatcher::EndsWithMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EndsWithMatcher::EndsWithMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8340,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8341
      start: 8339
    functionDepth: 0
    functionLinenumber: 8339
    functionLinenumberEnd: 8341
    functionName: Catch::Matchers::EndsWithMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endsWith
    - adjustString
    linkageType: ''
    returnType: bool
    signature: bool EndsWithMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - regex
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8345
      start: 8345
    functionDepth: 1
    functionLinenumber: 8345
    functionLinenumberEnd: 8345
    functionName: Catch::Matchers::RegexMatcher::RegexMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void RegexMatcher::RegexMatcher(std::string regex, CaseSensitive caseSensitivity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::regex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8352,1
    - Dst: std::regex_match
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8354
      start: 8347
    functionDepth: 0
    functionLinenumber: 8347
    functionLinenumberEnd: 8354
    functionName: Catch::Matchers::RegexMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::regex_match
    - std::regex
    linkageType: ''
    returnType: bool
    signature: bool RegexMatcher::match(std::string const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8358
      start: 8356
    functionDepth: 1
    functionLinenumber: 8356
    functionLinenumberEnd: 8358
    functionName: Catch::Matchers::RegexMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string RegexMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEqualsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8362,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8363
      start: 8361
    functionDepth: 0
    functionLinenumber: 8361
    functionLinenumberEnd: 8363
    functionName: Catch::Matchers::Equals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CasedString
    - StringEqualsMatcher
    linkageType: ''
    returnType: StringEqualsMatcher
    signature: StringEqualsMatcher Equals( std::string const& str, CaseSensitive caseSensitivity
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringContainsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8365,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8366
      start: 8364
    functionDepth: 0
    functionLinenumber: 8364
    functionLinenumberEnd: 8366
    functionName: Catch::Matchers::ContainsSubstring
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringContainsMatcher
    - CasedString
    linkageType: ''
    returnType: StringContainsMatcher
    signature: StringContainsMatcher ContainsSubstring( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EndsWithMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8368,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8369
      start: 8367
    functionDepth: 0
    functionLinenumber: 8367
    functionLinenumberEnd: 8369
    functionName: Catch::Matchers::EndsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CasedString
    - EndsWithMatcher
    linkageType: ''
    returnType: EndsWithMatcher
    signature: EndsWithMatcher EndsWith( std::string const& str, CaseSensitive caseSensitivity
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StartsWithMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8371,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8372
      start: 8370
    functionDepth: 0
    functionLinenumber: 8370
    functionLinenumberEnd: 8372
    functionName: Catch::Matchers::StartsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StartsWithMatcher
    - CasedString
    linkageType: ''
    returnType: StartsWithMatcher
    signature: StartsWithMatcher StartsWith( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegexMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' regex'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8376
      start: 8374
    functionDepth: 0
    functionLinenumber: 8374
    functionLinenumberEnd: 8376
    functionName: Catch::Matchers::Matches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - RegexMatcher
    linkageType: ''
    returnType: RegexMatcher
    signature: RegexMatcher Matches(std::string const& regex, CaseSensitive caseSensitivity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::CasedString::adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8286
      start: 8283
    functionDepth: 1
    functionLinenumber: 8283
    functionLinenumberEnd: 8286
    functionName: Catch::Matchers::CasedString::CasedString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::CasedString::adjustString
    linkageType: ''
    returnType: void
    signature: void CasedString::CasedString( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8291
      start: 8287
    functionDepth: 0
    functionLinenumber: 8287
    functionLinenumberEnd: 8291
    functionName: Catch::Matchers::CasedString::adjustString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - toLower
    linkageType: ''
    returnType: std::string
    signature: std::string CasedString::adjustString( std::string const& str ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8296
      start: 8292
    functionDepth: 0
    functionLinenumber: 8292
    functionLinenumberEnd: 8296
    functionName: Catch::Matchers::CasedString::caseSensitivitySuffix
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: StringRef
    signature: StringRef CasedString::caseSensitivitySuffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - operation
    - ' comparator'
    argTypes:
    - StringRef
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8302
      start: 8299
    functionDepth: 0
    functionLinenumber: 8299
    functionLinenumberEnd: 8302
    functionName: Catch::Matchers::StringMatcherBase::StringMatcherBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringMatcherBase::StringMatcherBase( StringRef operation, CasedString
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: m_str::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: caseSensitivitySuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8307,1
    - Dst: caseSensitivitySuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8314
      start: 8304
    functionDepth: 1
    functionLinenumber: 8304
    functionLinenumberEnd: 8314
    functionName: Catch::Matchers::StringMatcherBase::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_str::size
    - caseSensitivitySuffix
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string StringMatcherBase::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8316
      start: 8316
    functionDepth: 0
    functionLinenumber: 8316
    functionLinenumberEnd: 8316
    functionName: Catch::Matchers::StringEqualsMatcher::StringEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringEqualsMatcher::StringEqualsMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8320
      start: 8318
    functionDepth: 0
    functionLinenumber: 8318
    functionLinenumberEnd: 8320
    functionName: Catch::Matchers::StringEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    linkageType: ''
    returnType: bool
    signature: bool StringEqualsMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8323
      start: 8323
    functionDepth: 0
    functionLinenumber: 8323
    functionLinenumberEnd: 8323
    functionName: Catch::Matchers::StringContainsMatcher::StringContainsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringContainsMatcher::StringContainsMatcher( CasedString const&
      comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8326,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8327
      start: 8325
    functionDepth: 1
    functionLinenumber: 8325
    functionLinenumberEnd: 8327
    functionName: Catch::Matchers::StringContainsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    - contains
    linkageType: ''
    returnType: bool
    signature: bool StringContainsMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8330
      start: 8330
    functionDepth: 0
    functionLinenumber: 8330
    functionLinenumberEnd: 8330
    functionName: Catch::Matchers::StartsWithMatcher::StartsWithMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartsWithMatcher::StartsWithMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8333,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8334
      start: 8332
    functionDepth: 0
    functionLinenumber: 8332
    functionLinenumberEnd: 8334
    functionName: Catch::Matchers::StartsWithMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    - startsWith
    linkageType: ''
    returnType: bool
    signature: bool StartsWithMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8337
      start: 8337
    functionDepth: 0
    functionLinenumber: 8337
    functionLinenumberEnd: 8337
    functionName: Catch::Matchers::EndsWithMatcher::EndsWithMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EndsWithMatcher::EndsWithMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8340,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8341
      start: 8339
    functionDepth: 0
    functionLinenumber: 8339
    functionLinenumberEnd: 8341
    functionName: Catch::Matchers::EndsWithMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endsWith
    - adjustString
    linkageType: ''
    returnType: bool
    signature: bool EndsWithMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - regex
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8345
      start: 8345
    functionDepth: 1
    functionLinenumber: 8345
    functionLinenumberEnd: 8345
    functionName: Catch::Matchers::RegexMatcher::RegexMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void RegexMatcher::RegexMatcher(std::string regex, CaseSensitive caseSensitivity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::regex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8352,1
    - Dst: std::regex_match
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8354
      start: 8347
    functionDepth: 0
    functionLinenumber: 8347
    functionLinenumberEnd: 8354
    functionName: Catch::Matchers::RegexMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::regex_match
    - std::regex
    linkageType: ''
    returnType: bool
    signature: bool RegexMatcher::match(std::string const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8358
      start: 8356
    functionDepth: 1
    functionLinenumber: 8356
    functionLinenumberEnd: 8358
    functionName: Catch::Matchers::RegexMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string RegexMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEqualsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8362,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8363
      start: 8361
    functionDepth: 0
    functionLinenumber: 8361
    functionLinenumberEnd: 8363
    functionName: Catch::Matchers::Equals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CasedString
    - StringEqualsMatcher
    linkageType: ''
    returnType: StringEqualsMatcher
    signature: StringEqualsMatcher Equals( std::string const& str, CaseSensitive caseSensitivity
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringContainsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8365,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8366
      start: 8364
    functionDepth: 0
    functionLinenumber: 8364
    functionLinenumberEnd: 8366
    functionName: Catch::Matchers::ContainsSubstring
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringContainsMatcher
    - CasedString
    linkageType: ''
    returnType: StringContainsMatcher
    signature: StringContainsMatcher ContainsSubstring( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EndsWithMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8368,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8369
      start: 8367
    functionDepth: 0
    functionLinenumber: 8367
    functionLinenumberEnd: 8369
    functionName: Catch::Matchers::EndsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CasedString
    - EndsWithMatcher
    linkageType: ''
    returnType: EndsWithMatcher
    signature: EndsWithMatcher EndsWith( std::string const& str, CaseSensitive caseSensitivity
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StartsWithMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8371,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8372
      start: 8370
    functionDepth: 0
    functionLinenumber: 8370
    functionLinenumberEnd: 8372
    functionName: Catch::Matchers::StartsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StartsWithMatcher
    - CasedString
    linkageType: ''
    returnType: StartsWithMatcher
    signature: StartsWithMatcher StartsWith( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegexMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' regex'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8376
      start: 8374
    functionDepth: 0
    functionLinenumber: 8374
    functionLinenumberEnd: 8376
    functionName: Catch::Matchers::Matches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - RegexMatcher
    linkageType: ''
    returnType: RegexMatcher
    signature: RegexMatcher Matches(std::string const& regex, CaseSensitive caseSensitivity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::CasedString::adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8286
      start: 8283
    functionDepth: 1
    functionLinenumber: 8283
    functionLinenumberEnd: 8286
    functionName: Catch::Matchers::CasedString::CasedString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::CasedString::adjustString
    linkageType: ''
    returnType: void
    signature: void CasedString::CasedString( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8291
      start: 8287
    functionDepth: 0
    functionLinenumber: 8287
    functionLinenumberEnd: 8291
    functionName: Catch::Matchers::CasedString::adjustString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - toLower
    linkageType: ''
    returnType: std::string
    signature: std::string CasedString::adjustString( std::string const& str ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8296
      start: 8292
    functionDepth: 0
    functionLinenumber: 8292
    functionLinenumberEnd: 8296
    functionName: Catch::Matchers::CasedString::caseSensitivitySuffix
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: StringRef
    signature: StringRef CasedString::caseSensitivitySuffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - operation
    - ' comparator'
    argTypes:
    - StringRef
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8302
      start: 8299
    functionDepth: 0
    functionLinenumber: 8299
    functionLinenumberEnd: 8302
    functionName: Catch::Matchers::StringMatcherBase::StringMatcherBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringMatcherBase::StringMatcherBase( StringRef operation, CasedString
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: m_str::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: caseSensitivitySuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8307,1
    - Dst: caseSensitivitySuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8314
      start: 8304
    functionDepth: 1
    functionLinenumber: 8304
    functionLinenumberEnd: 8314
    functionName: Catch::Matchers::StringMatcherBase::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_str::size
    - caseSensitivitySuffix
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string StringMatcherBase::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8316
      start: 8316
    functionDepth: 0
    functionLinenumber: 8316
    functionLinenumberEnd: 8316
    functionName: Catch::Matchers::StringEqualsMatcher::StringEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringEqualsMatcher::StringEqualsMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8320
      start: 8318
    functionDepth: 0
    functionLinenumber: 8318
    functionLinenumberEnd: 8320
    functionName: Catch::Matchers::StringEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    linkageType: ''
    returnType: bool
    signature: bool StringEqualsMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8323
      start: 8323
    functionDepth: 0
    functionLinenumber: 8323
    functionLinenumberEnd: 8323
    functionName: Catch::Matchers::StringContainsMatcher::StringContainsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringContainsMatcher::StringContainsMatcher( CasedString const&
      comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8326,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8327
      start: 8325
    functionDepth: 1
    functionLinenumber: 8325
    functionLinenumberEnd: 8327
    functionName: Catch::Matchers::StringContainsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    - contains
    linkageType: ''
    returnType: bool
    signature: bool StringContainsMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8330
      start: 8330
    functionDepth: 0
    functionLinenumber: 8330
    functionLinenumberEnd: 8330
    functionName: Catch::Matchers::StartsWithMatcher::StartsWithMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartsWithMatcher::StartsWithMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8333,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8334
      start: 8332
    functionDepth: 0
    functionLinenumber: 8332
    functionLinenumberEnd: 8334
    functionName: Catch::Matchers::StartsWithMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    - startsWith
    linkageType: ''
    returnType: bool
    signature: bool StartsWithMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8337
      start: 8337
    functionDepth: 0
    functionLinenumber: 8337
    functionLinenumberEnd: 8337
    functionName: Catch::Matchers::EndsWithMatcher::EndsWithMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EndsWithMatcher::EndsWithMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8340,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8341
      start: 8339
    functionDepth: 0
    functionLinenumber: 8339
    functionLinenumberEnd: 8341
    functionName: Catch::Matchers::EndsWithMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endsWith
    - adjustString
    linkageType: ''
    returnType: bool
    signature: bool EndsWithMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - regex
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8345
      start: 8345
    functionDepth: 1
    functionLinenumber: 8345
    functionLinenumberEnd: 8345
    functionName: Catch::Matchers::RegexMatcher::RegexMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void RegexMatcher::RegexMatcher(std::string regex, CaseSensitive caseSensitivity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::regex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8352,1
    - Dst: std::regex_match
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8354
      start: 8347
    functionDepth: 0
    functionLinenumber: 8347
    functionLinenumberEnd: 8354
    functionName: Catch::Matchers::RegexMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::regex_match
    - std::regex
    linkageType: ''
    returnType: bool
    signature: bool RegexMatcher::match(std::string const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8358
      start: 8356
    functionDepth: 1
    functionLinenumber: 8356
    functionLinenumberEnd: 8358
    functionName: Catch::Matchers::RegexMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string RegexMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEqualsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8362,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8363
      start: 8361
    functionDepth: 0
    functionLinenumber: 8361
    functionLinenumberEnd: 8363
    functionName: Catch::Matchers::Equals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CasedString
    - StringEqualsMatcher
    linkageType: ''
    returnType: StringEqualsMatcher
    signature: StringEqualsMatcher Equals( std::string const& str, CaseSensitive caseSensitivity
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringContainsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8365,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8366
      start: 8364
    functionDepth: 0
    functionLinenumber: 8364
    functionLinenumberEnd: 8366
    functionName: Catch::Matchers::ContainsSubstring
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringContainsMatcher
    - CasedString
    linkageType: ''
    returnType: StringContainsMatcher
    signature: StringContainsMatcher ContainsSubstring( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EndsWithMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8368,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8369
      start: 8367
    functionDepth: 0
    functionLinenumber: 8367
    functionLinenumberEnd: 8369
    functionName: Catch::Matchers::EndsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CasedString
    - EndsWithMatcher
    linkageType: ''
    returnType: EndsWithMatcher
    signature: EndsWithMatcher EndsWith( std::string const& str, CaseSensitive caseSensitivity
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StartsWithMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8371,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8372
      start: 8370
    functionDepth: 0
    functionLinenumber: 8370
    functionLinenumberEnd: 8372
    functionName: Catch::Matchers::StartsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StartsWithMatcher
    - CasedString
    linkageType: ''
    returnType: StartsWithMatcher
    signature: StartsWithMatcher StartsWith( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegexMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' regex'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8376
      start: 8374
    functionDepth: 0
    functionLinenumber: 8374
    functionLinenumberEnd: 8376
    functionName: Catch::Matchers::Matches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - RegexMatcher
    linkageType: ''
    returnType: RegexMatcher
    signature: RegexMatcher Matches(std::string const& regex, CaseSensitive caseSensitivity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Matchers::CasedString::adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8286
      start: 8283
    functionDepth: 1
    functionLinenumber: 8283
    functionLinenumberEnd: 8286
    functionName: Catch::Matchers::CasedString::CasedString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Matchers::CasedString::adjustString
    linkageType: ''
    returnType: void
    signature: void CasedString::CasedString( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toLower
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8291
      start: 8287
    functionDepth: 0
    functionLinenumber: 8287
    functionLinenumberEnd: 8291
    functionName: Catch::Matchers::CasedString::adjustString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - toLower
    linkageType: ''
    returnType: std::string
    signature: std::string CasedString::adjustString( std::string const& str ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8296
      start: 8292
    functionDepth: 0
    functionLinenumber: 8292
    functionLinenumberEnd: 8296
    functionName: Catch::Matchers::CasedString::caseSensitivitySuffix
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    linkageType: ''
    returnType: StringRef
    signature: StringRef CasedString::caseSensitivitySuffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - operation
    - ' comparator'
    argTypes:
    - StringRef
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8302
      start: 8299
    functionDepth: 0
    functionLinenumber: 8299
    functionLinenumberEnd: 8302
    functionName: Catch::Matchers::StringMatcherBase::StringMatcherBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringMatcherBase::StringMatcherBase( StringRef operation, CasedString
      const& comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: m_str::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8306,1
    - Dst: caseSensitivitySuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8307,1
    - Dst: caseSensitivitySuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8314
      start: 8304
    functionDepth: 1
    functionLinenumber: 8304
    functionLinenumberEnd: 8314
    functionName: Catch::Matchers::StringMatcherBase::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - m_str::size
    - caseSensitivitySuffix
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string StringMatcherBase::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8316
      start: 8316
    functionDepth: 0
    functionLinenumber: 8316
    functionLinenumberEnd: 8316
    functionName: Catch::Matchers::StringEqualsMatcher::StringEqualsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringEqualsMatcher::StringEqualsMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8320
      start: 8318
    functionDepth: 0
    functionLinenumber: 8318
    functionLinenumberEnd: 8320
    functionName: Catch::Matchers::StringEqualsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    linkageType: ''
    returnType: bool
    signature: bool StringEqualsMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8323
      start: 8323
    functionDepth: 0
    functionLinenumber: 8323
    functionLinenumberEnd: 8323
    functionName: Catch::Matchers::StringContainsMatcher::StringContainsMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringContainsMatcher::StringContainsMatcher( CasedString const&
      comparator )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8326,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8327
      start: 8325
    functionDepth: 1
    functionLinenumber: 8325
    functionLinenumberEnd: 8327
    functionName: Catch::Matchers::StringContainsMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    - contains
    linkageType: ''
    returnType: bool
    signature: bool StringContainsMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8330
      start: 8330
    functionDepth: 0
    functionLinenumber: 8330
    functionLinenumberEnd: 8330
    functionName: Catch::Matchers::StartsWithMatcher::StartsWithMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StartsWithMatcher::StartsWithMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8333,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8334
      start: 8332
    functionDepth: 0
    functionLinenumber: 8332
    functionLinenumberEnd: 8334
    functionName: Catch::Matchers::StartsWithMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - adjustString
    - startsWith
    linkageType: ''
    returnType: bool
    signature: bool StartsWithMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' comparator'
    argTypes:
    - CasedString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8337
      start: 8337
    functionDepth: 0
    functionLinenumber: 8337
    functionLinenumberEnd: 8337
    functionName: Catch::Matchers::EndsWithMatcher::EndsWithMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EndsWithMatcher::EndsWithMatcher( CasedString const& comparator
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: endsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8340,1
    - Dst: adjustString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8341
      start: 8339
    functionDepth: 0
    functionLinenumber: 8339
    functionLinenumberEnd: 8341
    functionName: Catch::Matchers::EndsWithMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endsWith
    - adjustString
    linkageType: ''
    returnType: bool
    signature: bool EndsWithMatcher::match( std::string const& source ) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - regex
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8345
      start: 8345
    functionDepth: 1
    functionLinenumber: 8345
    functionLinenumberEnd: 8345
    functionName: Catch::Matchers::RegexMatcher::RegexMatcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void RegexMatcher::RegexMatcher(std::string regex, CaseSensitive caseSensitivity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::regex
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8352,1
    - Dst: std::regex_match
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' matchee'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8354
      start: 8347
    functionDepth: 0
    functionLinenumber: 8347
    functionLinenumberEnd: 8354
    functionName: Catch::Matchers::RegexMatcher::match
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::regex_match
    - std::regex
    linkageType: ''
    returnType: bool
    signature: bool RegexMatcher::match(std::string const& matchee) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8358
      start: 8356
    functionDepth: 1
    functionLinenumber: 8356
    functionLinenumberEnd: 8358
    functionName: Catch::Matchers::RegexMatcher::describe
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::Detail::stringify
    linkageType: ''
    returnType: std::string
    signature: std::string RegexMatcher::describe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEqualsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8362,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8363
      start: 8361
    functionDepth: 0
    functionLinenumber: 8361
    functionLinenumberEnd: 8363
    functionName: Catch::Matchers::Equals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CasedString
    - StringEqualsMatcher
    linkageType: ''
    returnType: StringEqualsMatcher
    signature: StringEqualsMatcher Equals( std::string const& str, CaseSensitive caseSensitivity
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringContainsMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8365,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8366
      start: 8364
    functionDepth: 0
    functionLinenumber: 8364
    functionLinenumberEnd: 8366
    functionName: Catch::Matchers::ContainsSubstring
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringContainsMatcher
    - CasedString
    linkageType: ''
    returnType: StringContainsMatcher
    signature: StringContainsMatcher ContainsSubstring( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EndsWithMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8368,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8369
      start: 8367
    functionDepth: 0
    functionLinenumber: 8367
    functionLinenumberEnd: 8369
    functionName: Catch::Matchers::EndsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CasedString
    - EndsWithMatcher
    linkageType: ''
    returnType: EndsWithMatcher
    signature: EndsWithMatcher EndsWith( std::string const& str, CaseSensitive caseSensitivity
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StartsWithMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8371,1
    - Dst: CasedString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8372
      start: 8370
    functionDepth: 0
    functionLinenumber: 8370
    functionLinenumberEnd: 8372
    functionName: Catch::Matchers::StartsWith
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StartsWithMatcher
    - CasedString
    linkageType: ''
    returnType: StartsWithMatcher
    signature: StartsWithMatcher StartsWith( std::string const& str, CaseSensitive
      caseSensitivity )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegexMatcher
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' regex'
    - caseSensitivity
    argTypes:
    - std::string
    - CaseSensitive
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8376
      start: 8374
    functionDepth: 0
    functionLinenumber: 8374
    functionLinenumberEnd: 8376
    functionName: Catch::Matchers::Matches
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - RegexMatcher
    linkageType: ''
    returnType: RegexMatcher
    signature: RegexMatcher Matches(std::string const& regex, CaseSensitive caseSensitivity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8385
      start: 8385
    functionDepth: 0
    functionLinenumber: 8385
    functionLinenumberEnd: 8385
    functionName: MatcherGenericBase::~MatcherGenericBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase::~MatcherGenericBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8393,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - combine
    - descriptions_begin
    - descriptions_end
    argTypes:
    - StringRef
    - std::string*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8389
    functionDepth: 1
    functionLinenumber: 8389
    functionLinenumberEnd: 8410
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - auto::size
    - StringRef::size
    - std::string::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::string const*
      descriptions_begin, std::string const* descriptions_end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8393,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - combine
    - descriptions_begin
    - descriptions_end
    argTypes:
    - StringRef
    - std::string*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8389
    functionDepth: 1
    functionLinenumber: 8389
    functionLinenumberEnd: 8410
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - auto::size
    - StringRef::size
    - std::string::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::string const*
      descriptions_begin, std::string const* descriptions_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8385
      start: 8385
    functionDepth: 0
    functionLinenumber: 8385
    functionLinenumberEnd: 8385
    functionName: MatcherGenericBase::~MatcherGenericBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase::~MatcherGenericBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8393,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - combine
    - descriptions_begin
    - descriptions_end
    argTypes:
    - StringRef
    - std::string*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8389
    functionDepth: 1
    functionLinenumber: 8389
    functionLinenumberEnd: 8410
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - auto::size
    - StringRef::size
    - std::string::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::string const*
      descriptions_begin, std::string const* descriptions_end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8393,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - combine
    - descriptions_begin
    - descriptions_end
    argTypes:
    - StringRef
    - std::string*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8389
    functionDepth: 1
    functionLinenumber: 8389
    functionLinenumberEnd: 8410
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - auto::size
    - StringRef::size
    - std::string::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::string const*
      descriptions_begin, std::string const* descriptions_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8385
      start: 8385
    functionDepth: 0
    functionLinenumber: 8385
    functionLinenumberEnd: 8385
    functionName: MatcherGenericBase::~MatcherGenericBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase::~MatcherGenericBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8393,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - combine
    - descriptions_begin
    - descriptions_end
    argTypes:
    - StringRef
    - std::string*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8389
    functionDepth: 1
    functionLinenumber: 8389
    functionLinenumberEnd: 8410
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - auto::size
    - StringRef::size
    - std::string::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::string const*
      descriptions_begin, std::string const* descriptions_end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8393,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - combine
    - descriptions_begin
    - descriptions_end
    argTypes:
    - StringRef
    - std::string*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8389
    functionDepth: 1
    functionLinenumber: 8389
    functionLinenumberEnd: 8410
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - auto::size
    - StringRef::size
    - std::string::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::string const*
      descriptions_begin, std::string const* descriptions_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8385
      start: 8385
    functionDepth: 0
    functionLinenumber: 8385
    functionLinenumberEnd: 8385
    functionName: MatcherGenericBase::~MatcherGenericBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MatcherGenericBase::~MatcherGenericBase()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8393,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - combine
    - descriptions_begin
    - descriptions_end
    argTypes:
    - StringRef
    - std::string*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8389
    functionDepth: 1
    functionLinenumber: 8389
    functionLinenumberEnd: 8410
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - auto::size
    - StringRef::size
    - std::string::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::string const*
      descriptions_begin, std::string const* descriptions_end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8393,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: StringRef::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8395,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - combine
    - descriptions_begin
    - descriptions_end
    argTypes:
    - StringRef
    - std::string*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8389
    functionDepth: 1
    functionLinenumber: 8389
    functionLinenumberEnd: 8410
    functionName: Catch::Matchers::Detail::describe_multi_matcher
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - auto::size
    - StringRef::size
    - std::string::reserve
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string describe_multi_matcher(StringRef combine, std::string const*
      descriptions_begin, std::string const* descriptions_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8425,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' handler'
    - ' matcher'
    argTypes:
    - AssertionHandler
    - StringMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8428
      start: 8424
    functionDepth: 4
    functionLinenumber: 8424
    functionLinenumberEnd: 8428
    functionName: Catch::handleExceptionMatchExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - handleExpr
    - Catch::translateActiveException
    linkageType: ''
    returnType: void
    signature: void handleExceptionMatchExpr( AssertionHandler& handler, StringMatcher
      const& matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::translateActiveException
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8425,1
    - Dst: handleExpr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' handler'
    - ' matcher'
    argTypes:
    - AssertionHandler
    - StringMatcher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8428
      start: 8424
    functionDepth: 4
    functionLinenumber: 8424
    functionLinenumberEnd: 8428
    functionName: Catch::handleExceptionMatchExpr
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - handleExpr
    - Catch::translateActiveException
    linkageType: ''
    returnType: void
    signature: void handleExceptionMatchExpr( AssertionHandler& handler, StringMatcher
      const& matcher )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8438
      start: 8438
    functionDepth: 0
    functionLinenumber: 8438
    functionLinenumberEnd: 8438
    functionName: AutomakeReporter::~AutomakeReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutomakeReporter::~AutomakeReporter()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: totals::assertions::allPassed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8445,1
    - Dst: totals::assertions::allOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8447,1
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' _testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8454
      start: 8440
    functionDepth: 1
    functionLinenumber: 8440
    functionLinenumberEnd: 8454
    functionName: Catch::AutomakeReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testCaseEnded
    - totals::assertions::allPassed
    - totals::assertions::allOk
    linkageType: ''
    returnType: void
    signature: void AutomakeReporter::testCaseEnded(TestCaseStats const& _testCaseStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8458
      start: 8456
    functionDepth: 0
    functionLinenumber: 8456
    functionLinenumberEnd: 8458
    functionName: Catch::AutomakeReporter::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutomakeReporter::skipTest(TestCaseInfo const& testInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8438
      start: 8438
    functionDepth: 0
    functionLinenumber: 8438
    functionLinenumberEnd: 8438
    functionName: AutomakeReporter::~AutomakeReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutomakeReporter::~AutomakeReporter()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: totals::assertions::allPassed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8445,1
    - Dst: totals::assertions::allOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8447,1
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' _testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8454
      start: 8440
    functionDepth: 1
    functionLinenumber: 8440
    functionLinenumberEnd: 8454
    functionName: Catch::AutomakeReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testCaseEnded
    - totals::assertions::allPassed
    - totals::assertions::allOk
    linkageType: ''
    returnType: void
    signature: void AutomakeReporter::testCaseEnded(TestCaseStats const& _testCaseStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8458
      start: 8456
    functionDepth: 0
    functionLinenumber: 8456
    functionLinenumberEnd: 8458
    functionName: Catch::AutomakeReporter::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutomakeReporter::skipTest(TestCaseInfo const& testInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fullConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8469,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8470,1
    - Dst: stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8471,1
    - Dst: makeColourImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8472,1
    - Dst: colourMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8472,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8472,1
    - Dst: customOptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8474
      start: 8468
    functionDepth: 1
    functionLinenumber: 8468
    functionLinenumberEnd: 8474
    functionName: Catch::ReporterBase::ReporterBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - customOptions
    - makeColourImpl
    - colourMode
    - fullConfig
    - CATCH_MOVE
    - stream
    - get
    linkageType: ''
    returnType: void
    signature: void ReporterBase::ReporterBase( ReporterConfig&& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8476
      start: 8476
    functionDepth: 0
    functionLinenumber: 8476
    functionLinenumberEnd: 8476
    functionName: ReporterBase::~ReporterBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReporterBase::~ReporterBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defaultListReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8480,1
    - Dst: verbosity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ReporterDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8481
      start: 8478
    functionDepth: 0
    functionLinenumber: 8478
    functionLinenumberEnd: 8481
    functionName: Catch::ReporterBase::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - defaultListReporters
    - verbosity
    linkageType: ''
    returnType: void
    signature: "void ReporterBase::listReporters(\n        std::vector<ReporterDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defaultListListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8486
      start: 8483
    functionDepth: 0
    functionLinenumber: 8483
    functionLinenumberEnd: 8486
    functionName: Catch::ReporterBase::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - defaultListListeners
    linkageType: ''
    returnType: void
    signature: "void ReporterBase::listListeners(\n        std::vector<ListenerDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defaultListTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8489,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8490,1
    - Dst: hasTestFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8492,1
    - Dst: verbosity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8494
      start: 8488
    functionDepth: 0
    functionLinenumber: 8488
    functionLinenumberEnd: 8494
    functionName: Catch::ReporterBase::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - defaultListTests
    - verbosity
    - get
    - hasTestFilters
    linkageType: ''
    returnType: void
    signature: void ReporterBase::listTests(std::vector<TestCaseHandle> const& tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defaultListTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8497,1
    - Dst: hasTestFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<TagInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8498
      start: 8496
    functionDepth: 0
    functionLinenumber: 8496
    functionLinenumberEnd: 8498
    functionName: Catch::ReporterBase::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - defaultListTags
    - hasTestFilters
    linkageType: ''
    returnType: void
    signature: void ReporterBase::listTags(std::vector<TagInfo> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fullConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8469,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8470,1
    - Dst: stream
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8471,1
    - Dst: makeColourImpl
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8472,1
    - Dst: colourMode
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8472,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8472,1
    - Dst: customOptions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8474
      start: 8468
    functionDepth: 1
    functionLinenumber: 8468
    functionLinenumberEnd: 8474
    functionName: Catch::ReporterBase::ReporterBase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - customOptions
    - makeColourImpl
    - colourMode
    - fullConfig
    - CATCH_MOVE
    - stream
    - get
    linkageType: ''
    returnType: void
    signature: void ReporterBase::ReporterBase( ReporterConfig&& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8476
      start: 8476
    functionDepth: 0
    functionLinenumber: 8476
    functionLinenumberEnd: 8476
    functionName: ReporterBase::~ReporterBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReporterBase::~ReporterBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defaultListReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8480,1
    - Dst: verbosity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ReporterDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8481
      start: 8478
    functionDepth: 0
    functionLinenumber: 8478
    functionLinenumberEnd: 8481
    functionName: Catch::ReporterBase::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - defaultListReporters
    - verbosity
    linkageType: ''
    returnType: void
    signature: "void ReporterBase::listReporters(\n        std::vector<ReporterDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defaultListListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8486
      start: 8483
    functionDepth: 0
    functionLinenumber: 8483
    functionLinenumberEnd: 8486
    functionName: Catch::ReporterBase::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - defaultListListeners
    linkageType: ''
    returnType: void
    signature: "void ReporterBase::listListeners(\n        std::vector<ListenerDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defaultListTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8489,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8490,1
    - Dst: hasTestFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8492,1
    - Dst: verbosity
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8494
      start: 8488
    functionDepth: 0
    functionLinenumber: 8488
    functionLinenumberEnd: 8494
    functionName: Catch::ReporterBase::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - defaultListTests
    - verbosity
    - get
    - hasTestFilters
    linkageType: ''
    returnType: void
    signature: void ReporterBase::listTests(std::vector<TestCaseHandle> const& tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defaultListTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8497,1
    - Dst: hasTestFilters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<TagInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8498
      start: 8496
    functionDepth: 0
    functionLinenumber: 8496
    functionLinenumberEnd: 8498
    functionName: Catch::ReporterBase::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - defaultListTags
    - hasTestFilters
    linkageType: ''
    returnType: void
    signature: void ReporterBase::listTags(std::vector<TagInfo> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8524
      start: 8524
    functionDepth: 0
    functionLinenumber: 8524
    functionLinenumberEnd: 8524
    functionName: '& operator= (AssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionPrinter
    signature: AssertionPrinter & operator= (AssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8525
      start: 8525
    functionDepth: 0
    functionLinenumber: 8525
    functionLinenumberEnd: 8525
    functionName: Catch::AssertionPrinter::AssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionPrinter(AssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infoMessages::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - _printInfoMessages
    - colourImpl_
    argTypes:
    - std::ostream
    - AssertionStats
    - bool
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8533
      start: 8526
    functionDepth: 0
    functionLinenumber: 8526
    functionLinenumberEnd: 8533
    functionName: Catch::AssertionPrinter::AssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - infoMessages::begin
    linkageType: ''
    returnType: void
    signature: void AssertionPrinter(std::ostream& _stream, AssertionStats const&
      _stats, bool _printInfoMessages, ColourImpl* colourImpl_)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionPrinter::printSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8536,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8538,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8540,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8542,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8543,1
    - Dst: Catch::AssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8544,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8545,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8546,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8548,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8551,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8552,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8554,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8555,1
    - Dst: Catch::AssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8556,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8557,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8560,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8561,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8562,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8563,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8564,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8567,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8568,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8569,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8570,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8571,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8574,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8575,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8576,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8577,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8580,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8581,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8582,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8585,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8586,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8587,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8590,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8591,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8592,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8595,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8596,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8597,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8603,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8606
      start: 8535
    functionDepth: 1
    functionLinenumber: 8535
    functionLinenumberEnd: 8606
    functionName: Catch::AssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - Catch::AssertionPrinter::printResultType
    - Catch::AssertionPrinter::printMessage
    - begin
    - Catch::AssertionPrinter::printRemainingMessages
    - hasExpression
    - isOk
    - Catch::AssertionPrinter::printExpressionWas
    - Catch::AssertionPrinter::printReconstructedExpression
    - Catch::AssertionPrinter::printOriginalExpression
    - Catch::AssertionPrinter::printSourceInfo
    - Catch::AssertionPrinter::printIssue
    linkageType: ''
    returnType: void
    signature: void print()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8610,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8612
    functionName: Catch::AssertionPrinter::printSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getSourceInfo
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printSourceInfo() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8615,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - colour
    - passOrFail
    argTypes:
    - Colour::Code
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8614
    functionDepth: 0
    functionLinenumber: 8614
    functionLinenumberEnd: 8619
    functionName: Catch::AssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - StringRef::empty
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printResultType(Colour::Code colour, StringRef passOrFail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - issue
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8623
      start: 8621
    functionDepth: 0
    functionLinenumber: 8621
    functionLinenumberEnd: 8623
    functionName: Catch::AssertionPrinter::printIssue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printIssue(char const* issue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8626,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8629,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8633
      start: 8625
    functionDepth: 1
    functionLinenumber: 8625
    functionLinenumberEnd: 8633
    functionName: Catch::AssertionPrinter::printExpressionWas
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::AssertionPrinter::printOriginalExpression
    - hasExpression
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printExpressionWas()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8636,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8639
      start: 8635
    functionDepth: 0
    functionLinenumber: 8635
    functionLinenumberEnd: 8639
    functionName: Catch::AssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - hasExpression
    - getExpression
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8642,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8643,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8641
    functionDepth: 0
    functionLinenumber: 8641
    functionLinenumberEnd: 8646
    functionName: Catch::AssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - hasExpandedExpression
    - guardColour
    - getExpandedExpression
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8653
      start: 8648
    functionDepth: 0
    functionLinenumber: 8648
    functionLinenumberEnd: 8653
    functionName: Catch::AssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void printMessage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8656,1
    - Dst: cend
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8659,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8660,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8662,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8663,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8668,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8676
      start: 8655
    functionDepth: 1
    functionLinenumber: 8655
    functionLinenumberEnd: 8676
    functionName: Catch::AssertionPrinter::printRemainingMessages
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - pluralise
    - Catch::AssertionPrinter::printMessage
    - guardColour
    - end
    - static_cast<std::size_t>
    - cend
    linkageType: ''
    returnType: void
    signature: void printRemainingMessages(Colour::Code colour = compactDimColour)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8524
      start: 8524
    functionDepth: 0
    functionLinenumber: 8524
    functionLinenumberEnd: 8524
    functionName: '& operator= (AssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionPrinter
    signature: AssertionPrinter & operator= (AssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8525
      start: 8525
    functionDepth: 0
    functionLinenumber: 8525
    functionLinenumberEnd: 8525
    functionName: Catch::AssertionPrinter::AssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionPrinter(AssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infoMessages::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - _printInfoMessages
    - colourImpl_
    argTypes:
    - std::ostream
    - AssertionStats
    - bool
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8533
      start: 8526
    functionDepth: 0
    functionLinenumber: 8526
    functionLinenumberEnd: 8533
    functionName: Catch::AssertionPrinter::AssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - infoMessages::begin
    linkageType: ''
    returnType: void
    signature: void AssertionPrinter(std::ostream& _stream, AssertionStats const&
      _stats, bool _printInfoMessages, ColourImpl* colourImpl_)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionPrinter::printSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8536,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8538,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8540,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8542,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8543,1
    - Dst: Catch::AssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8544,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8545,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8546,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8548,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8551,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8552,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8554,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8555,1
    - Dst: Catch::AssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8556,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8557,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8560,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8561,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8562,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8563,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8564,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8567,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8568,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8569,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8570,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8571,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8574,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8575,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8576,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8577,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8580,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8581,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8582,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8585,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8586,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8587,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8590,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8591,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8592,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8595,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8596,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8597,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8603,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8606
      start: 8535
    functionDepth: 2
    functionLinenumber: 8535
    functionLinenumberEnd: 8606
    functionName: Catch::AssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - Catch::AssertionPrinter::printResultType
    - Catch::AssertionPrinter::printMessage
    - begin
    - Catch::AssertionPrinter::printRemainingMessages
    - hasExpression
    - isOk
    - Catch::AssertionPrinter::printExpressionWas
    - Catch::AssertionPrinter::printReconstructedExpression
    - Catch::AssertionPrinter::printOriginalExpression
    - Catch::AssertionPrinter::printSourceInfo
    - Catch::AssertionPrinter::printIssue
    linkageType: ''
    returnType: void
    signature: void print()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8610,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8612
    functionName: Catch::AssertionPrinter::printSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - getSourceInfo
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printSourceInfo() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8615,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - colour
    - passOrFail
    argTypes:
    - Colour::Code
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8614
    functionDepth: 0
    functionLinenumber: 8614
    functionLinenumberEnd: 8619
    functionName: Catch::AssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef::empty
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printResultType(Colour::Code colour, StringRef passOrFail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - issue
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8623
      start: 8621
    functionDepth: 0
    functionLinenumber: 8621
    functionLinenumberEnd: 8623
    functionName: Catch::AssertionPrinter::printIssue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printIssue(char const* issue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8626,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8629,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8633
      start: 8625
    functionDepth: 1
    functionLinenumber: 8625
    functionLinenumberEnd: 8633
    functionName: Catch::AssertionPrinter::printExpressionWas
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::AssertionPrinter::printOriginalExpression
    - hasExpression
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printExpressionWas()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8636,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8639
      start: 8635
    functionDepth: 0
    functionLinenumber: 8635
    functionLinenumberEnd: 8639
    functionName: Catch::AssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - hasExpression
    - getExpression
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8642,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8643,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8641
    functionDepth: 0
    functionLinenumber: 8641
    functionLinenumberEnd: 8646
    functionName: Catch::AssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - hasExpandedExpression
    - guardColour
    - getExpandedExpression
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8653
      start: 8648
    functionDepth: 0
    functionLinenumber: 8648
    functionLinenumberEnd: 8653
    functionName: Catch::AssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void printMessage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8656,1
    - Dst: cend
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8659,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8660,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8662,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8663,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8668,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8676
      start: 8655
    functionDepth: 1
    functionLinenumber: 8655
    functionLinenumberEnd: 8676
    functionName: Catch::AssertionPrinter::printRemainingMessages
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - pluralise
    - Catch::AssertionPrinter::printMessage
    - guardColour
    - end
    - static_cast<std::size_t>
    - cend
    linkageType: ''
    returnType: void
    signature: void printRemainingMessages(Colour::Code colour = compactDimColour)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8691
      start: 8689
    functionDepth: 0
    functionLinenumber: 8689
    functionLinenumberEnd: 8691
    functionName: Catch::CompactReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string CompactReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unmatchedSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8695
      start: 8693
    functionDepth: 0
    functionLinenumber: 8693
    functionLinenumberEnd: 8695
    functionName: Catch::CompactReporter::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CompactReporter::noMatchingTestCases( StringRef unmatchedSpec
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8698,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8699,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8701,1
    - Dst: getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8705
      start: 8697
    functionDepth: 0
    functionLinenumber: 8697
    functionLinenumberEnd: 8705
    functionName: Catch::CompactReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - guardColour
    - testSpec
    - getSeed
    linkageType: ''
    returnType: void
    signature: void CompactReporter::testRunStarting( TestRunInfo const& )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8713,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8713,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8714,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8714,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8719,1
    - Dst: AssertionPrinter::print
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' _assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8723
      start: 8707
    functionDepth: 1
    functionLinenumber: 8707
    functionLinenumberEnd: 8723
    functionName: Catch::CompactReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - AssertionPrinter::print
    - includeSuccessfulResults
    - isOk
    - get
    linkageType: ''
    returnType: void
    signature: void CompactReporter::assertionEnded( AssertionStats const& _assertionStats
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shouldShowDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8727,1
    - Dst: getFormattedDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' _sectionStats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8730
      start: 8725
    functionDepth: 0
    functionLinenumber: 8725
    functionLinenumberEnd: 8730
    functionName: Catch::CompactReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - shouldShowDuration
    - getFormattedDuration
    linkageType: ''
    returnType: void
    signature: void CompactReporter::sectionEnded(SectionStats const& _sectionStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printTestRunTotals
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8733,1
    - Dst: Catch::StreamingReporterBase::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8736
      start: 8732
    functionDepth: 1
    functionLinenumber: 8732
    functionLinenumberEnd: 8736
    functionName: Catch::CompactReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testRunEnded
    - printTestRunTotals
    linkageType: ''
    returnType: void
    signature: void CompactReporter::testRunEnded( TestRunStats const& _testRunStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8738
      start: 8738
    functionDepth: 0
    functionLinenumber: 8738
    functionLinenumberEnd: 8738
    functionName: CompactReporter::~CompactReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CompactReporter::~CompactReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8524
      start: 8524
    functionDepth: 0
    functionLinenumber: 8524
    functionLinenumberEnd: 8524
    functionName: '& operator= (AssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionPrinter
    signature: AssertionPrinter & operator= (AssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8525
      start: 8525
    functionDepth: 0
    functionLinenumber: 8525
    functionLinenumberEnd: 8525
    functionName: Catch::AssertionPrinter::AssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionPrinter(AssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infoMessages::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - _printInfoMessages
    - colourImpl_
    argTypes:
    - std::ostream
    - AssertionStats
    - bool
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8533
      start: 8526
    functionDepth: 0
    functionLinenumber: 8526
    functionLinenumberEnd: 8533
    functionName: Catch::AssertionPrinter::AssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - infoMessages::begin
    linkageType: ''
    returnType: void
    signature: void AssertionPrinter(std::ostream& _stream, AssertionStats const&
      _stats, bool _printInfoMessages, ColourImpl* colourImpl_)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionPrinter::printSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8536,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8538,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8540,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8542,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8543,1
    - Dst: Catch::AssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8544,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8545,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8546,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8548,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8551,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8552,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8554,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8555,1
    - Dst: Catch::AssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8556,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8557,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8560,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8561,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8562,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8563,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8564,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8567,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8568,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8569,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8570,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8571,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8574,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8575,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8576,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8577,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8580,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8581,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8582,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8585,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8586,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8587,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8590,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8591,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8592,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8595,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8596,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8597,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8603,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8606
      start: 8535
    functionDepth: 2
    functionLinenumber: 8535
    functionLinenumberEnd: 8606
    functionName: Catch::AssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - Catch::AssertionPrinter::printResultType
    - Catch::AssertionPrinter::printMessage
    - begin
    - Catch::AssertionPrinter::printRemainingMessages
    - hasExpression
    - isOk
    - Catch::AssertionPrinter::printExpressionWas
    - Catch::AssertionPrinter::printReconstructedExpression
    - Catch::AssertionPrinter::printOriginalExpression
    - Catch::AssertionPrinter::printSourceInfo
    - Catch::AssertionPrinter::printIssue
    linkageType: ''
    returnType: void
    signature: void print()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8610,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8612
    functionName: Catch::AssertionPrinter::printSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - getSourceInfo
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printSourceInfo() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8615,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - colour
    - passOrFail
    argTypes:
    - Colour::Code
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8614
    functionDepth: 0
    functionLinenumber: 8614
    functionLinenumberEnd: 8619
    functionName: Catch::AssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - StringRef::empty
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printResultType(Colour::Code colour, StringRef passOrFail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - issue
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8623
      start: 8621
    functionDepth: 0
    functionLinenumber: 8621
    functionLinenumberEnd: 8623
    functionName: Catch::AssertionPrinter::printIssue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printIssue(char const* issue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8626,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8629,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8633
      start: 8625
    functionDepth: 1
    functionLinenumber: 8625
    functionLinenumberEnd: 8633
    functionName: Catch::AssertionPrinter::printExpressionWas
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - Catch::AssertionPrinter::printOriginalExpression
    - hasExpression
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printExpressionWas()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8636,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8639
      start: 8635
    functionDepth: 0
    functionLinenumber: 8635
    functionLinenumberEnd: 8639
    functionName: Catch::AssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - hasExpression
    - getExpression
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8642,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8643,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8641
    functionDepth: 0
    functionLinenumber: 8641
    functionLinenumberEnd: 8646
    functionName: Catch::AssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - hasExpandedExpression
    - guardColour
    - getExpandedExpression
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8653
      start: 8648
    functionDepth: 0
    functionLinenumber: 8648
    functionLinenumberEnd: 8653
    functionName: Catch::AssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void printMessage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8656,1
    - Dst: cend
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8659,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8660,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8662,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8663,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8668,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8676
      start: 8655
    functionDepth: 1
    functionLinenumber: 8655
    functionLinenumberEnd: 8676
    functionName: Catch::AssertionPrinter::printRemainingMessages
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - pluralise
    - Catch::AssertionPrinter::printMessage
    - guardColour
    - end
    - static_cast<std::size_t>
    - cend
    linkageType: ''
    returnType: void
    signature: void printRemainingMessages(Colour::Code colour = compactDimColour)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8524
      start: 8524
    functionDepth: 0
    functionLinenumber: 8524
    functionLinenumberEnd: 8524
    functionName: '& operator= (AssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionPrinter
    signature: AssertionPrinter & operator= (AssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8525
      start: 8525
    functionDepth: 0
    functionLinenumber: 8525
    functionLinenumberEnd: 8525
    functionName: Catch::AssertionPrinter::AssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AssertionPrinter(AssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infoMessages::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - _printInfoMessages
    - colourImpl_
    argTypes:
    - std::ostream
    - AssertionStats
    - bool
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8533
      start: 8526
    functionDepth: 0
    functionLinenumber: 8526
    functionLinenumberEnd: 8533
    functionName: Catch::AssertionPrinter::AssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - infoMessages::begin
    linkageType: ''
    returnType: void
    signature: void AssertionPrinter(std::ostream& _stream, AssertionStats const&
      _stats, bool _printInfoMessages, ColourImpl* colourImpl_)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Catch::AssertionPrinter::printSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8536,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8538,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8540,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8542,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8543,1
    - Dst: Catch::AssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8544,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8545,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8546,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8548,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8551,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8552,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8554,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8555,1
    - Dst: Catch::AssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8556,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8557,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8560,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8561,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8562,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8563,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8564,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8567,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8568,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8569,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8570,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8571,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8574,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8575,1
    - Dst: Catch::AssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8576,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8577,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8580,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8581,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8582,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8585,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8586,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8587,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8590,1
    - Dst: Catch::AssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8591,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8592,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8595,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8596,1
    - Dst: Catch::AssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8597,1
    - Dst: Catch::AssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8603,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8606
      start: 8535
    functionDepth: 2
    functionLinenumber: 8535
    functionLinenumberEnd: 8606
    functionName: Catch::AssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - Catch::AssertionPrinter::printResultType
    - Catch::AssertionPrinter::printMessage
    - begin
    - Catch::AssertionPrinter::printRemainingMessages
    - hasExpression
    - isOk
    - Catch::AssertionPrinter::printExpressionWas
    - Catch::AssertionPrinter::printReconstructedExpression
    - Catch::AssertionPrinter::printOriginalExpression
    - Catch::AssertionPrinter::printSourceInfo
    - Catch::AssertionPrinter::printIssue
    linkageType: ''
    returnType: void
    signature: void print()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8610,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8612
    functionName: Catch::AssertionPrinter::printSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getSourceInfo
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printSourceInfo() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8615,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - colour
    - passOrFail
    argTypes:
    - Colour::Code
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8614
    functionDepth: 0
    functionLinenumber: 8614
    functionLinenumberEnd: 8619
    functionName: Catch::AssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - StringRef::empty
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printResultType(Colour::Code colour, StringRef passOrFail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - issue
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8623
      start: 8621
    functionDepth: 0
    functionLinenumber: 8621
    functionLinenumberEnd: 8623
    functionName: Catch::AssertionPrinter::printIssue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printIssue(char const* issue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8626,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8629,1
    - Dst: Catch::AssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8633
      start: 8625
    functionDepth: 1
    functionLinenumber: 8625
    functionLinenumberEnd: 8633
    functionName: Catch::AssertionPrinter::printExpressionWas
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::AssertionPrinter::printOriginalExpression
    - hasExpression
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printExpressionWas()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8636,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8639
      start: 8635
    functionDepth: 0
    functionLinenumber: 8635
    functionLinenumberEnd: 8639
    functionName: Catch::AssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - hasExpression
    - getExpression
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8642,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8643,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8646
      start: 8641
    functionDepth: 0
    functionLinenumber: 8641
    functionLinenumberEnd: 8646
    functionName: Catch::AssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - hasExpandedExpression
    - guardColour
    - getExpandedExpression
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8653
      start: 8648
    functionDepth: 0
    functionLinenumber: 8648
    functionLinenumberEnd: 8653
    functionName: Catch::AssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 7
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void printMessage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8656,1
    - Dst: cend
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8659,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8660,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8662,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8663,1
    - Dst: Catch::AssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8668,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8676
      start: 8655
    functionDepth: 1
    functionLinenumber: 8655
    functionLinenumberEnd: 8676
    functionName: Catch::AssertionPrinter::printRemainingMessages
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - pluralise
    - Catch::AssertionPrinter::printMessage
    - guardColour
    - end
    - static_cast<std::size_t>
    - cend
    linkageType: ''
    returnType: void
    signature: void printRemainingMessages(Colour::Code colour = compactDimColour)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8691
      start: 8689
    functionDepth: 0
    functionLinenumber: 8689
    functionLinenumberEnd: 8691
    functionName: Catch::CompactReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string CompactReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unmatchedSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8695
      start: 8693
    functionDepth: 0
    functionLinenumber: 8693
    functionLinenumberEnd: 8695
    functionName: Catch::CompactReporter::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CompactReporter::noMatchingTestCases( StringRef unmatchedSpec
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8698,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8699,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8701,1
    - Dst: getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8705
      start: 8697
    functionDepth: 0
    functionLinenumber: 8697
    functionLinenumberEnd: 8705
    functionName: Catch::CompactReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - guardColour
    - testSpec
    - getSeed
    linkageType: ''
    returnType: void
    signature: void CompactReporter::testRunStarting( TestRunInfo const& )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8713,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8713,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8714,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8714,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8719,1
    - Dst: AssertionPrinter::print
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' _assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8723
      start: 8707
    functionDepth: 1
    functionLinenumber: 8707
    functionLinenumberEnd: 8723
    functionName: Catch::CompactReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - AssertionPrinter::print
    - includeSuccessfulResults
    - isOk
    - get
    linkageType: ''
    returnType: void
    signature: void CompactReporter::assertionEnded( AssertionStats const& _assertionStats
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shouldShowDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8727,1
    - Dst: getFormattedDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' _sectionStats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8730
      start: 8725
    functionDepth: 0
    functionLinenumber: 8725
    functionLinenumberEnd: 8730
    functionName: Catch::CompactReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - shouldShowDuration
    - getFormattedDuration
    linkageType: ''
    returnType: void
    signature: void CompactReporter::sectionEnded(SectionStats const& _sectionStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printTestRunTotals
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8733,1
    - Dst: Catch::StreamingReporterBase::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8736
      start: 8732
    functionDepth: 1
    functionLinenumber: 8732
    functionLinenumberEnd: 8736
    functionName: Catch::CompactReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testRunEnded
    - printTestRunTotals
    linkageType: ''
    returnType: void
    signature: void CompactReporter::testRunEnded( TestRunStats const& _testRunStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8738
      start: 8738
    functionDepth: 0
    functionLinenumber: 8738
    functionLinenumberEnd: 8738
    functionName: CompactReporter::~CompactReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CompactReporter::~CompactReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8768
      start: 8768
    functionDepth: 0
    functionLinenumber: 8768
    functionLinenumberEnd: 8768
    functionName: '& operator= (ConsoleAssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConsoleAssertionPrinter
    signature: ConsoleAssertionPrinter & operator= (ConsoleAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8769
      start: 8769
    functionDepth: 0
    functionLinenumber: 8769
    functionLinenumberEnd: 8769
    functionName: Catch::ConsoleAssertionPrinter::ConsoleAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleAssertionPrinter(ConsoleAssertionPrinter const&)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8778,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8783,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8785,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8789,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8796,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8805,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8835,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8837,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8843,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8845,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - colourImpl_
    - _printInfoMessages
    argTypes:
    - std::ostream
    - AssertionStats
    - ColourImpl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8856
      start: 8770
    functionDepth: 1
    functionLinenumber: 8770
    functionLinenumberEnd: 8856
    functionName: Catch::ConsoleAssertionPrinter::ConsoleAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - isOk
    - size
    linkageType: ''
    returnType: void
    signature: void ConsoleAssertionPrinter(std::ostream& _stream, AssertionStats
      const& _stats, ColourImpl* colourImpl_, bool _printInfoMessages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleAssertionPrinter::printSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8859,1
    - Dst: totals::assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8860,1
    - Dst: Catch::ConsoleAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8861,1
    - Dst: Catch::ConsoleAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8862,1
    - Dst: Catch::ConsoleAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8863,1
    - Dst: Catch::ConsoleAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8868
      start: 8858
    functionDepth: 1
    functionLinenumber: 8858
    functionLinenumberEnd: 8868
    functionName: Catch::ConsoleAssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ConsoleAssertionPrinter::printOriginalExpression
    - Catch::ConsoleAssertionPrinter::printMessage
    - Catch::ConsoleAssertionPrinter::printReconstructedExpression
    - totals::assertions::total
    - Catch::ConsoleAssertionPrinter::printResultType
    - Catch::ConsoleAssertionPrinter::printSourceInfo
    linkageType: ''
    returnType: void
    signature: void print() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8872,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8875
      start: 8871
    functionDepth: 0
    functionLinenumber: 8871
    functionLinenumberEnd: 8875
    functionName: Catch::ConsoleAssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - empty
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printResultType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8877,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8878,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8881
      start: 8876
    functionDepth: 0
    functionLinenumber: 8876
    functionLinenumberEnd: 8881
    functionName: Catch::ConsoleAssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - hasExpression
    - getExpressionInMacro
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8883,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8885,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8886,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8890
      start: 8882
    functionDepth: 1
    functionLinenumber: 8882
    functionLinenumberEnd: 8890
    functionName: Catch::ConsoleAssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - hasExpandedExpression
    - Catch::TextFlow::Column::Column
    - guardColour
    - getExpandedExpression
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8892,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8899
      start: 8891
    functionDepth: 1
    functionLinenumber: 8891
    functionLinenumberEnd: 8899
    functionName: Catch::ConsoleAssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - empty
    - Catch::TextFlow::Column::Column
    linkageType: ''
    returnType: void
    signature: void printMessage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8901,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8903
      start: 8900
    functionDepth: 0
    functionLinenumber: 8900
    functionLinenumberEnd: 8903
    functionName: Catch::ConsoleAssertionPrinter::printSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getSourceInfo
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printSourceInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - number
    - total
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8919
      start: 8916
    functionDepth: 0
    functionLinenumber: 8916
    functionLinenumberEnd: 8919
    functionName: Catch::makeRatio
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t makeRatio( std::uint64_t number, std::uint64_t total )
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - ' i'
    - ' j'
    - ' k'
    - ' l'
    argTypes:
    - std::size_t
    - std::size_t
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8931
      start: 8921
    functionDepth: 0
    functionLinenumber: 8921
    functionLinenumberEnd: 8931
    functionName: Catch::findMax
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: 'std::size_t &

      findMax( std::size_t& i, std::size_t& j, std::size_t& k, std::size_t& l )'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - inNanoseconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8971
      start: 8955
    functionDepth: 0
    functionLinenumber: 8955
    functionLinenumberEnd: 8971
    functionName: Catch::Duration::Duration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(double inNanoseconds, Unit units = Unit::Auto)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8976,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8978,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8980,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8986
      start: 8973
    functionDepth: 0
    functionLinenumber: 8973
    functionLinenumberEnd: 8986
    functionName: Catch::Duration::value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: auto
    signature: auto value() const -> double
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9003
      start: 8987
    functionDepth: 0
    functionLinenumber: 8987
    functionLinenumberEnd: 9003
    functionName: Catch::Duration::unitsAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef unitsAsString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9005,1
    - Dst: unitsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' duration'
    argTypes:
    - std::ostream
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9006
      start: 9004
    functionDepth: 0
    functionLinenumber: 9004
    functionLinenumberEnd: 9006
    functionName: operator << (std::ostream& os, Duration const& duration) -> std::ostream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - value
    - unitsAsString
    linkageType: ''
    returnType: auto
    signature: auto operator << (std::ostream& os, Duration const& duration) -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8768
      start: 8768
    functionDepth: 0
    functionLinenumber: 8768
    functionLinenumberEnd: 8768
    functionName: '& operator= (ConsoleAssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConsoleAssertionPrinter
    signature: ConsoleAssertionPrinter & operator= (ConsoleAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8769
      start: 8769
    functionDepth: 0
    functionLinenumber: 8769
    functionLinenumberEnd: 8769
    functionName: Catch::ConsoleAssertionPrinter::ConsoleAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleAssertionPrinter(ConsoleAssertionPrinter const&)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8778,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8783,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8785,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8789,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8796,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8805,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8835,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8837,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8843,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8845,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - colourImpl_
    - _printInfoMessages
    argTypes:
    - std::ostream
    - AssertionStats
    - ColourImpl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8856
      start: 8770
    functionDepth: 1
    functionLinenumber: 8770
    functionLinenumberEnd: 8856
    functionName: Catch::ConsoleAssertionPrinter::ConsoleAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - isOk
    - size
    linkageType: ''
    returnType: void
    signature: void ConsoleAssertionPrinter(std::ostream& _stream, AssertionStats
      const& _stats, ColourImpl* colourImpl_, bool _printInfoMessages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleAssertionPrinter::printSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8859,1
    - Dst: totals::assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8860,1
    - Dst: Catch::ConsoleAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8861,1
    - Dst: Catch::ConsoleAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8862,1
    - Dst: Catch::ConsoleAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8863,1
    - Dst: Catch::ConsoleAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8868
      start: 8858
    functionDepth: 2
    functionLinenumber: 8858
    functionLinenumberEnd: 8868
    functionName: Catch::ConsoleAssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ConsoleAssertionPrinter::printOriginalExpression
    - Catch::ConsoleAssertionPrinter::printMessage
    - Catch::ConsoleAssertionPrinter::printReconstructedExpression
    - totals::assertions::total
    - Catch::ConsoleAssertionPrinter::printResultType
    - Catch::ConsoleAssertionPrinter::printSourceInfo
    linkageType: ''
    returnType: void
    signature: void print() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8872,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8875
      start: 8871
    functionDepth: 0
    functionLinenumber: 8871
    functionLinenumberEnd: 8875
    functionName: Catch::ConsoleAssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - empty
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printResultType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8877,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8878,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8881
      start: 8876
    functionDepth: 0
    functionLinenumber: 8876
    functionLinenumberEnd: 8881
    functionName: Catch::ConsoleAssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - hasExpression
    - getExpressionInMacro
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8883,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8885,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8886,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8890
      start: 8882
    functionDepth: 1
    functionLinenumber: 8882
    functionLinenumberEnd: 8890
    functionName: Catch::ConsoleAssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - hasExpandedExpression
    - Catch::TextFlow::Column::Column
    - guardColour
    - getExpandedExpression
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8892,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8899
      start: 8891
    functionDepth: 1
    functionLinenumber: 8891
    functionLinenumberEnd: 8899
    functionName: Catch::ConsoleAssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - empty
    - Catch::TextFlow::Column::Column
    linkageType: ''
    returnType: void
    signature: void printMessage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8901,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8903
      start: 8900
    functionDepth: 0
    functionLinenumber: 8900
    functionLinenumberEnd: 8903
    functionName: Catch::ConsoleAssertionPrinter::printSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - getSourceInfo
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printSourceInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - number
    - total
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8919
      start: 8916
    functionDepth: 0
    functionLinenumber: 8916
    functionLinenumberEnd: 8919
    functionName: Catch::makeRatio
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t makeRatio( std::uint64_t number, std::uint64_t total )
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - ' i'
    - ' j'
    - ' k'
    - ' l'
    argTypes:
    - std::size_t
    - std::size_t
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8931
      start: 8921
    functionDepth: 0
    functionLinenumber: 8921
    functionLinenumberEnd: 8931
    functionName: Catch::findMax
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: 'std::size_t &

      findMax( std::size_t& i, std::size_t& j, std::size_t& k, std::size_t& l )'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - inNanoseconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8971
      start: 8955
    functionDepth: 0
    functionLinenumber: 8955
    functionLinenumberEnd: 8971
    functionName: Catch::Duration::Duration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(double inNanoseconds, Unit units = Unit::Auto)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8976,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8978,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8980,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8986
      start: 8973
    functionDepth: 0
    functionLinenumber: 8973
    functionLinenumberEnd: 8986
    functionName: Catch::Duration::value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: auto
    signature: auto value() const -> double
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9003
      start: 8987
    functionDepth: 0
    functionLinenumber: 8987
    functionLinenumberEnd: 9003
    functionName: Catch::Duration::unitsAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef unitsAsString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9005,1
    - Dst: unitsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' duration'
    argTypes:
    - std::ostream
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9006
      start: 9004
    functionDepth: 0
    functionLinenumber: 9004
    functionLinenumberEnd: 9006
    functionName: operator << (std::ostream& os, Duration const& duration) -> std::ostream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - value
    - unitsAsString
    linkageType: ''
    returnType: auto
    signature: auto operator << (std::ostream& os, Duration const& duration) -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' os'
    - columnInfos
    argTypes:
    - std::ostream
    - std::vector<ColumnInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9028
      start: 9026
    functionDepth: 1
    functionLinenumber: 9026
    functionLinenumberEnd: 9028
    functionName: Catch::TablePrinter::TablePrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TablePrinter( std::ostream& os, std::vector<ColumnInfo> columnInfos
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9032
      start: 9030
    functionDepth: 0
    functionLinenumber: 9030
    functionLinenumberEnd: 9032
    functionName: Catch::TablePrinter::columnInfos
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto columnInfos() const -> std::vector<ColumnInfo> const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RowBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9037,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9041,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9042,1
    - Dst: Catch::TextFlow::Spacer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9043,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (info.width > 2)
      pos:
        line_end: 9040
        line_start: 9040
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9049
      start: 9034
    functionDepth: 1
    functionLinenumber: 9034
    functionLinenumberEnd: 9049
    functionName: Catch::TablePrinter::open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - lineOfChars
    - Catch::TextFlow::Spacer
    - RowBreak
    - Catch::TextFlow::Column::Column
    linkageType: ''
    returnType: void
    signature: void open()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RowBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9056
      start: 9050
    functionDepth: 0
    functionLinenumber: 9050
    functionLinenumberEnd: 9056
    functionName: Catch::TablePrinter::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - RowBreak
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' tp'
    - ' value'
    argTypes:
    - TablePrinter
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9062
      start: 9059
    functionDepth: 0
    functionLinenumber: 9059
    functionLinenumberEnd: 9062
    functionName: '& operator<< (TablePrinter& tp, T const& value)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TablePrinter
    signature: TablePrinter & operator<< (TablePrinter& tp, T const& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_oss::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9065,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9066,1
    - Dst: m_oss::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9067,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9068,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9069,1
    - Dst: m_columnInfos::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9069,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9077,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - TablePrinter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9084
      start: 9064
    functionDepth: 1
    functionLinenumber: 9064
    functionLinenumberEnd: 9084
    functionName: '& operator<< (TablePrinter& tp, ColumnBreak)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - open
    - std::string
    - m_oss::str
    - auto::size
    - m_columnInfos::size
    linkageType: ''
    returnType: TablePrinter
    signature: TablePrinter & operator<< (TablePrinter& tp, ColumnBreak)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - TablePrinter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9092
      start: 9086
    functionDepth: 0
    functionLinenumber: 9086
    functionLinenumberEnd: 9092
    functionName: '& operator<< (TablePrinter& tp, RowBreak)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TablePrinter
    signature: TablePrinter & operator<< (TablePrinter& tp, RowBreak)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - TablePrinter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9097
      start: 9094
    functionDepth: 0
    functionLinenumber: 9094
    functionLinenumberEnd: 9097
    functionName: '& operator<<(TablePrinter& tp, OutputFlush)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TablePrinter
    signature: TablePrinter & operator<<(TablePrinter& tp, OutputFlush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9101,1
    - Dst: Detail::make_unique<TablePrinter>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9102,1
    - Dst: fullConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9122
      start: 9100
    functionDepth: 1
    functionLinenumber: 9100
    functionLinenumberEnd: 9122
    functionName: Catch::ConsoleReporter::ConsoleReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - fullConfig
    - CATCH_MOVE
    - Detail::make_unique<TablePrinter>
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::ConsoleReporter(ReporterConfig&& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9123
      start: 9123
    functionDepth: 0
    functionLinenumber: 9123
    functionLinenumberEnd: 9123
    functionName: ConsoleReporter::~ConsoleReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::~ConsoleReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9127
      start: 9125
    functionDepth: 0
    functionLinenumber: 9125
    functionLinenumberEnd: 9127
    functionName: Catch::ConsoleReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ConsoleReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unmatchedSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9131
      start: 9129
    functionDepth: 0
    functionLinenumber: 9129
    functionLinenumberEnd: 9131
    functionName: Catch::ConsoleReporter::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::noMatchingTestCases( StringRef unmatchedSpec
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9135
      start: 9133
    functionDepth: 0
    functionLinenumber: 9133
    functionLinenumberEnd: 9135
    functionName: Catch::ConsoleReporter::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::reportInvalidTestSpec( StringRef arg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9137
      start: 9137
    functionDepth: 0
    functionLinenumber: 9137
    functionLinenumberEnd: 9137
    functionName: Catch::ConsoleReporter::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::assertionStarting(AssertionInfo const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9142,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9142,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9146,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9146,1
    - Dst: Catch::ConsoleReporter::lazyPrint
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9149,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9151,1
    - Dst: ConsoleAssertionPrinter::print
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' _assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9154
      start: 9139
    functionDepth: 1
    functionLinenumber: 9139
    functionLinenumberEnd: 9154
    functionName: Catch::ConsoleReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - includeSuccessfulResults
    - isOk
    - ConsoleAssertionPrinter::print
    - Catch::ConsoleReporter::lazyPrint
    - get
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::assertionEnded(AssertionStats const& _assertionStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9157,1
    - Dst: Catch::StreamingReporterBase::sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9160
      start: 9156
    functionDepth: 1
    functionLinenumber: 9156
    functionLinenumberEnd: 9160
    functionName: Catch::ConsoleReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::sectionStarting
    - close
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::sectionStarting(SectionInfo const& _sectionInfo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9162,1
    - Dst: Catch::ConsoleReporter::lazyPrint
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9164,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9166,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9167,1
    - Dst: shouldShowDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9174,1
    - Dst: getFormattedDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9175,1
    - Dst: Catch::StreamingReporterBase::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' _sectionStats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9181
      start: 9161
    functionDepth: 1
    functionLinenumber: 9161
    functionLinenumberEnd: 9181
    functionName: Catch::ConsoleReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - guardColour
    - Catch::StreamingReporterBase::sectionEnded
    - shouldShowDuration
    - Catch::ConsoleReporter::lazyPrint
    - getFormattedDuration
    - size
    - close
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::sectionEnded(SectionStats const& _sectionStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9184,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9186,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9186,1
    - Dst: columnInfos
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9187,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9192,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9192,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9192,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9198
      start: 9183
    functionDepth: 1
    functionLinenumber: 9183
    functionLinenumberEnd: 9198
    functionName: Catch::ConsoleReporter::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - columnInfos
    - ColumnBreak
    - Catch::TextFlow::Column::Column
    - static_cast<std::string>
    - Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::benchmarkPreparing( StringRef name )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9201,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9202,1
    - Dst: benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9203,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9205,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - BenchmarkInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9208
      start: 9200
    functionDepth: 0
    functionLinenumber: 9200
    functionLinenumberEnd: 9208
    functionName: Catch::ConsoleReporter::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ColumnBreak
    - benchmarkNoAnalysis
    - Duration
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::benchmarkStarting(BenchmarkInfo const& info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9210,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9212,1
    - Dst: mean::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9212,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9212,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9216,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9217,1
    - Dst: mean::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9217,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9217,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9218,1
    - Dst: mean::lower_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9218,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9218,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9219,1
    - Dst: mean::upper_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9219,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9219,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9219,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9220,1
    - Dst: standardDeviation::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9220,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9220,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9221,1
    - Dst: standardDeviation::lower_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9221,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9221,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: standardDeviation::upper_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' stats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9224
      start: 9209
    functionDepth: 0
    functionLinenumber: 9209
    functionLinenumberEnd: 9224
    functionName: Catch::ConsoleReporter::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - mean::upper_bound::count
    - ColumnBreak
    - mean::point::count
    - standardDeviation::lower_bound::count
    - standardDeviation::upper_bound::count
    - benchmarkNoAnalysis
    - Duration
    - standardDeviation::point::count
    - mean::lower_bound::count
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::benchmarkEnded(BenchmarkStats<> const& stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9227,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9230,1
    - Dst: RowBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9231
      start: 9226
    functionDepth: 0
    functionLinenumber: 9226
    functionLinenumberEnd: 9231
    functionName: Catch::ConsoleReporter::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ColumnBreak
    - guardColour
    - RowBreak
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::benchmarkFailed( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9234,1
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9237
      start: 9233
    functionDepth: 1
    functionLinenumber: 9233
    functionLinenumberEnd: 9237
    functionName: Catch::ConsoleReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testCaseEnded
    - close
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::testCaseEnded(TestCaseStats const& _testCaseStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleReporter::printTotalsDivider
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9239,1
    - Dst: printTestRunTotals
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9240,1
    - Dst: Catch::StreamingReporterBase::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' _testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9243
      start: 9238
    functionDepth: 1
    functionLinenumber: 9238
    functionLinenumberEnd: 9243
    functionName: Catch::ConsoleReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testRunEnded
    - Catch::ConsoleReporter::printTotalsDivider
    - printTestRunTotals
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::testRunEnded(TestRunStats const& _testRunStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9245,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9246,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9247,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9248,1
    - Dst: getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' _testRunInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9251
      start: 9244
    functionDepth: 1
    functionLinenumber: 9244
    functionLinenumberEnd: 9251
    functionName: Catch::ConsoleReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - guardColour
    - Catch::StreamingReporterBase::testRunStarting
    - testSpec
    - getSeed
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::testRunStarting(TestRunInfo const& _testRunInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9255,1
    - Dst: Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9257
      start: 9253
    functionDepth: 1
    functionLinenumber: 9253
    functionLinenumberEnd: 9257
    functionName: Catch::ConsoleReporter::lazyPrint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - close
    - Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::lazyPrint()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleReporter::lazyPrintRunInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9262,1
    - Dst: Catch::ConsoleReporter::printTestCaseAndSectionHeader
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9268
      start: 9259
    functionDepth: 1
    functionLinenumber: 9259
    functionLinenumberEnd: 9268
    functionName: Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::ConsoleReporter::lazyPrintRunInfo
    - Catch::ConsoleReporter::printTestCaseAndSectionHeader
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9271,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9272,1
    - Dst: libraryVersion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9278
      start: 9269
    functionDepth: 0
    functionLinenumber: 9269
    functionLinenumberEnd: 9278
    functionName: Catch::ConsoleReporter::lazyPrintRunInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - lineOfChars
    - libraryVersion
    - guardColour
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::lazyPrintRunInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9280,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9280,1
    - Dst: Catch::ConsoleReporter::printOpenHeader
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9281,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9283,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9284,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9287,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9288,1
    - Dst: Catch::ConsoleReporter::printHeaderString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9290,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9293,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9296,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9297,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!m_sectionStack.empty())
      pos:
        line_end: 9279
        line_start: 9279
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9300
      start: 9279
    functionDepth: 1
    functionLinenumber: 9279
    functionLinenumberEnd: 9300
    functionName: Catch::ConsoleReporter::printTestCaseAndSectionHeader
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::ConsoleReporter::printHeaderString
    - assert
    - guardColour
    - begin
    - lineOfChars
    - empty
    - end
    - back
    - size
    - Catch::ConsoleReporter::printOpenHeader
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printTestCaseAndSectionHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleReporter::printOpenHeader
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9303,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' _name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9305
      start: 9302
    functionDepth: 1
    functionLinenumber: 9302
    functionLinenumberEnd: 9305
    functionName: Catch::ConsoleReporter::printClosedHeader
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - lineOfChars
    - Catch::ConsoleReporter::printOpenHeader
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printClosedHeader(std::string const& _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9307,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9309,1
    - Dst: Catch::ConsoleReporter::printHeaderString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9312
      start: 9306
    functionDepth: 1
    functionLinenumber: 9306
    functionLinenumberEnd: 9312
    functionName: Catch::ConsoleReporter::printOpenHeader
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - lineOfChars
    - Catch::ConsoleReporter::printHeaderString
    - guardColour
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printOpenHeader(std::string const& _name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9335,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' _string'
    - indent
    argTypes:
    - std::string
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9345
      start: 9314
    functionDepth: 1
    functionLinenumber: 9314
    functionLinenumberEnd: 9345
    functionName: Catch::ConsoleReporter::printHeaderString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::TextFlow::Column::Column
    - find
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printHeaderString(std::string const& _string,
      std::size_t indent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9348,1
    - Dst: makeRatio
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9349,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9349,1
    - Dst: makeRatio
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9350,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9350,1
    - Dst: makeRatio
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9351,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9351,1
    - Dst: makeRatio
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9352,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9352,1
    - Dst: findMax
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9354,1
    - Dst: findMax
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9356,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9358,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9359,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9361,1
    - Dst: testCases::allPassed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9362,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9363,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9364,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9366,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9367,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9369,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9370,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9372,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' totals'
    argTypes:
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9376
      start: 9347
    functionDepth: 0
    functionLinenumber: 9347
    functionLinenumberEnd: 9376
    functionName: Catch::ConsoleReporter::printTotalsDivider
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - guardColour
    - makeRatio
    - testCases::allPassed
    - std::string
    - findMax
    - testCases::total
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printTotalsDivider(Totals const& totals)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8768
      start: 8768
    functionDepth: 0
    functionLinenumber: 8768
    functionLinenumberEnd: 8768
    functionName: '& operator= (ConsoleAssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConsoleAssertionPrinter
    signature: ConsoleAssertionPrinter & operator= (ConsoleAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8769
      start: 8769
    functionDepth: 0
    functionLinenumber: 8769
    functionLinenumberEnd: 8769
    functionName: Catch::ConsoleAssertionPrinter::ConsoleAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleAssertionPrinter(ConsoleAssertionPrinter const&)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8778,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8783,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8785,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8789,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8796,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8805,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8835,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8837,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8843,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8845,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - colourImpl_
    - _printInfoMessages
    argTypes:
    - std::ostream
    - AssertionStats
    - ColourImpl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8856
      start: 8770
    functionDepth: 1
    functionLinenumber: 8770
    functionLinenumberEnd: 8856
    functionName: Catch::ConsoleAssertionPrinter::ConsoleAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - isOk
    - size
    linkageType: ''
    returnType: void
    signature: void ConsoleAssertionPrinter(std::ostream& _stream, AssertionStats
      const& _stats, ColourImpl* colourImpl_, bool _printInfoMessages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleAssertionPrinter::printSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8859,1
    - Dst: totals::assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8860,1
    - Dst: Catch::ConsoleAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8861,1
    - Dst: Catch::ConsoleAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8862,1
    - Dst: Catch::ConsoleAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8863,1
    - Dst: Catch::ConsoleAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8868
      start: 8858
    functionDepth: 2
    functionLinenumber: 8858
    functionLinenumberEnd: 8868
    functionName: Catch::ConsoleAssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ConsoleAssertionPrinter::printOriginalExpression
    - Catch::ConsoleAssertionPrinter::printMessage
    - Catch::ConsoleAssertionPrinter::printReconstructedExpression
    - totals::assertions::total
    - Catch::ConsoleAssertionPrinter::printResultType
    - Catch::ConsoleAssertionPrinter::printSourceInfo
    linkageType: ''
    returnType: void
    signature: void print() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8872,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8875
      start: 8871
    functionDepth: 0
    functionLinenumber: 8871
    functionLinenumberEnd: 8875
    functionName: Catch::ConsoleAssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - empty
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printResultType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8877,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8878,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8881
      start: 8876
    functionDepth: 0
    functionLinenumber: 8876
    functionLinenumberEnd: 8881
    functionName: Catch::ConsoleAssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - hasExpression
    - getExpressionInMacro
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8883,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8885,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8886,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8890
      start: 8882
    functionDepth: 1
    functionLinenumber: 8882
    functionLinenumberEnd: 8890
    functionName: Catch::ConsoleAssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - hasExpandedExpression
    - Catch::TextFlow::Column::Column
    - guardColour
    - getExpandedExpression
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8892,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8899
      start: 8891
    functionDepth: 1
    functionLinenumber: 8891
    functionLinenumberEnd: 8899
    functionName: Catch::ConsoleAssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - empty
    - Catch::TextFlow::Column::Column
    linkageType: ''
    returnType: void
    signature: void printMessage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8901,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8903
      start: 8900
    functionDepth: 0
    functionLinenumber: 8900
    functionLinenumberEnd: 8903
    functionName: Catch::ConsoleAssertionPrinter::printSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - getSourceInfo
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printSourceInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - number
    - total
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8919
      start: 8916
    functionDepth: 0
    functionLinenumber: 8916
    functionLinenumberEnd: 8919
    functionName: Catch::makeRatio
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t makeRatio( std::uint64_t number, std::uint64_t total )
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - ' i'
    - ' j'
    - ' k'
    - ' l'
    argTypes:
    - std::size_t
    - std::size_t
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8931
      start: 8921
    functionDepth: 0
    functionLinenumber: 8921
    functionLinenumberEnd: 8931
    functionName: Catch::findMax
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: 'std::size_t &

      findMax( std::size_t& i, std::size_t& j, std::size_t& k, std::size_t& l )'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - inNanoseconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8971
      start: 8955
    functionDepth: 0
    functionLinenumber: 8955
    functionLinenumberEnd: 8971
    functionName: Catch::Duration::Duration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(double inNanoseconds, Unit units = Unit::Auto)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8976,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8978,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8980,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8986
      start: 8973
    functionDepth: 0
    functionLinenumber: 8973
    functionLinenumberEnd: 8986
    functionName: Catch::Duration::value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: auto
    signature: auto value() const -> double
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9003
      start: 8987
    functionDepth: 0
    functionLinenumber: 8987
    functionLinenumberEnd: 9003
    functionName: Catch::Duration::unitsAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef unitsAsString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9005,1
    - Dst: unitsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' duration'
    argTypes:
    - std::ostream
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9006
      start: 9004
    functionDepth: 0
    functionLinenumber: 9004
    functionLinenumberEnd: 9006
    functionName: operator << (std::ostream& os, Duration const& duration) -> std::ostream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - value
    - unitsAsString
    linkageType: ''
    returnType: auto
    signature: auto operator << (std::ostream& os, Duration const& duration) -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8768
      start: 8768
    functionDepth: 0
    functionLinenumber: 8768
    functionLinenumberEnd: 8768
    functionName: '& operator= (ConsoleAssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConsoleAssertionPrinter
    signature: ConsoleAssertionPrinter & operator= (ConsoleAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8769
      start: 8769
    functionDepth: 0
    functionLinenumber: 8769
    functionLinenumberEnd: 8769
    functionName: Catch::ConsoleAssertionPrinter::ConsoleAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleAssertionPrinter(ConsoleAssertionPrinter const&)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8778,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8783,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8785,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8789,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8796,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8805,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8835,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8837,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8843,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8845,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - colourImpl_
    - _printInfoMessages
    argTypes:
    - std::ostream
    - AssertionStats
    - ColourImpl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8856
      start: 8770
    functionDepth: 1
    functionLinenumber: 8770
    functionLinenumberEnd: 8856
    functionName: Catch::ConsoleAssertionPrinter::ConsoleAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - isOk
    - size
    linkageType: ''
    returnType: void
    signature: void ConsoleAssertionPrinter(std::ostream& _stream, AssertionStats
      const& _stats, ColourImpl* colourImpl_, bool _printInfoMessages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleAssertionPrinter::printSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8859,1
    - Dst: totals::assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8860,1
    - Dst: Catch::ConsoleAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8861,1
    - Dst: Catch::ConsoleAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8862,1
    - Dst: Catch::ConsoleAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8863,1
    - Dst: Catch::ConsoleAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8868
      start: 8858
    functionDepth: 2
    functionLinenumber: 8858
    functionLinenumberEnd: 8868
    functionName: Catch::ConsoleAssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::ConsoleAssertionPrinter::printOriginalExpression
    - Catch::ConsoleAssertionPrinter::printMessage
    - Catch::ConsoleAssertionPrinter::printReconstructedExpression
    - totals::assertions::total
    - Catch::ConsoleAssertionPrinter::printResultType
    - Catch::ConsoleAssertionPrinter::printSourceInfo
    linkageType: ''
    returnType: void
    signature: void print() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8872,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8875
      start: 8871
    functionDepth: 0
    functionLinenumber: 8871
    functionLinenumberEnd: 8875
    functionName: Catch::ConsoleAssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - empty
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printResultType() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8877,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8878,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8881
      start: 8876
    functionDepth: 0
    functionLinenumber: 8876
    functionLinenumberEnd: 8881
    functionName: Catch::ConsoleAssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - hasExpression
    - getExpressionInMacro
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8883,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8885,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8886,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8890
      start: 8882
    functionDepth: 1
    functionLinenumber: 8882
    functionLinenumberEnd: 8890
    functionName: Catch::ConsoleAssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - hasExpandedExpression
    - Catch::TextFlow::Column::Column
    - guardColour
    - getExpandedExpression
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8892,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8899
      start: 8891
    functionDepth: 1
    functionLinenumber: 8891
    functionLinenumberEnd: 8899
    functionName: Catch::ConsoleAssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - empty
    - Catch::TextFlow::Column::Column
    linkageType: ''
    returnType: void
    signature: void printMessage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8901,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8903
      start: 8900
    functionDepth: 0
    functionLinenumber: 8900
    functionLinenumberEnd: 8903
    functionName: Catch::ConsoleAssertionPrinter::printSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - getSourceInfo
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printSourceInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - number
    - total
    argTypes:
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8919
      start: 8916
    functionDepth: 0
    functionLinenumber: 8916
    functionLinenumberEnd: 8919
    functionName: Catch::makeRatio
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t makeRatio( std::uint64_t number, std::uint64_t total )
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - ' i'
    - ' j'
    - ' k'
    - ' l'
    argTypes:
    - std::size_t
    - std::size_t
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8931
      start: 8921
    functionDepth: 0
    functionLinenumber: 8921
    functionLinenumberEnd: 8931
    functionName: Catch::findMax
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: 'std::size_t &

      findMax( std::size_t& i, std::size_t& j, std::size_t& k, std::size_t& l )'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - inNanoseconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8971
      start: 8955
    functionDepth: 0
    functionLinenumber: 8955
    functionLinenumberEnd: 8971
    functionName: Catch::Duration::Duration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(double inNanoseconds, Unit units = Unit::Auto)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8976,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8978,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8980,1
    - Dst: static_cast<double>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:8982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8986
      start: 8973
    functionDepth: 0
    functionLinenumber: 8973
    functionLinenumberEnd: 8986
    functionName: Catch::Duration::value
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<double>
    linkageType: ''
    returnType: auto
    signature: auto value() const -> double
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9003
      start: 8987
    functionDepth: 0
    functionLinenumber: 8987
    functionLinenumberEnd: 9003
    functionName: Catch::Duration::unitsAsString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef unitsAsString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9005,1
    - Dst: unitsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' duration'
    argTypes:
    - std::ostream
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9006
      start: 9004
    functionDepth: 0
    functionLinenumber: 9004
    functionLinenumberEnd: 9006
    functionName: operator << (std::ostream& os, Duration const& duration) -> std::ostream&
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - value
    - unitsAsString
    linkageType: ''
    returnType: auto
    signature: auto operator << (std::ostream& os, Duration const& duration) -> std::ostream&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' os'
    - columnInfos
    argTypes:
    - std::ostream
    - std::vector<ColumnInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9028
      start: 9026
    functionDepth: 1
    functionLinenumber: 9026
    functionLinenumberEnd: 9028
    functionName: Catch::TablePrinter::TablePrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void TablePrinter( std::ostream& os, std::vector<ColumnInfo> columnInfos
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9032
      start: 9030
    functionDepth: 0
    functionLinenumber: 9030
    functionLinenumberEnd: 9032
    functionName: Catch::TablePrinter::columnInfos
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto columnInfos() const -> std::vector<ColumnInfo> const&
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RowBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9037,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9041,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9042,1
    - Dst: Catch::TextFlow::Spacer
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9043,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (info.width > 2)
      pos:
        line_end: 9040
        line_start: 9040
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9049
      start: 9034
    functionDepth: 1
    functionLinenumber: 9034
    functionLinenumberEnd: 9049
    functionName: Catch::TablePrinter::open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - lineOfChars
    - Catch::TextFlow::Spacer
    - RowBreak
    - Catch::TextFlow::Column::Column
    linkageType: ''
    returnType: void
    signature: void open()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RowBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9056
      start: 9050
    functionDepth: 0
    functionLinenumber: 9050
    functionLinenumberEnd: 9056
    functionName: Catch::TablePrinter::close
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - RowBreak
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' tp'
    - ' value'
    argTypes:
    - TablePrinter
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9062
      start: 9059
    functionDepth: 0
    functionLinenumber: 9059
    functionLinenumberEnd: 9062
    functionName: '& operator<< (TablePrinter& tp, T const& value)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TablePrinter
    signature: TablePrinter & operator<< (TablePrinter& tp, T const& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_oss::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9065,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9066,1
    - Dst: m_oss::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9067,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9068,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9069,1
    - Dst: m_columnInfos::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9069,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9077,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - TablePrinter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9084
      start: 9064
    functionDepth: 1
    functionLinenumber: 9064
    functionLinenumberEnd: 9084
    functionName: '& operator<< (TablePrinter& tp, ColumnBreak)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - open
    - std::string
    - m_oss::str
    - auto::size
    - m_columnInfos::size
    linkageType: ''
    returnType: TablePrinter
    signature: TablePrinter & operator<< (TablePrinter& tp, ColumnBreak)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - TablePrinter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9092
      start: 9086
    functionDepth: 0
    functionLinenumber: 9086
    functionLinenumberEnd: 9092
    functionName: '& operator<< (TablePrinter& tp, RowBreak)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TablePrinter
    signature: TablePrinter & operator<< (TablePrinter& tp, RowBreak)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - TablePrinter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9097
      start: 9094
    functionDepth: 0
    functionLinenumber: 9094
    functionLinenumberEnd: 9097
    functionName: '& operator<<(TablePrinter& tp, OutputFlush)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TablePrinter
    signature: TablePrinter & operator<<(TablePrinter& tp, OutputFlush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9101,1
    - Dst: Detail::make_unique<TablePrinter>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9102,1
    - Dst: fullConfig
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9122
      start: 9100
    functionDepth: 1
    functionLinenumber: 9100
    functionLinenumberEnd: 9122
    functionName: Catch::ConsoleReporter::ConsoleReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - fullConfig
    - CATCH_MOVE
    - Detail::make_unique<TablePrinter>
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::ConsoleReporter(ReporterConfig&& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9123
      start: 9123
    functionDepth: 0
    functionLinenumber: 9123
    functionLinenumberEnd: 9123
    functionName: ConsoleReporter::~ConsoleReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::~ConsoleReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9127
      start: 9125
    functionDepth: 0
    functionLinenumber: 9125
    functionLinenumberEnd: 9127
    functionName: Catch::ConsoleReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ConsoleReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unmatchedSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9131
      start: 9129
    functionDepth: 0
    functionLinenumber: 9129
    functionLinenumberEnd: 9131
    functionName: Catch::ConsoleReporter::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::noMatchingTestCases( StringRef unmatchedSpec
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9135
      start: 9133
    functionDepth: 0
    functionLinenumber: 9133
    functionLinenumberEnd: 9135
    functionName: Catch::ConsoleReporter::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::reportInvalidTestSpec( StringRef arg )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9137
      start: 9137
    functionDepth: 0
    functionLinenumber: 9137
    functionLinenumberEnd: 9137
    functionName: Catch::ConsoleReporter::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::assertionStarting(AssertionInfo const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9142,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9142,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9146,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9146,1
    - Dst: Catch::ConsoleReporter::lazyPrint
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9149,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9151,1
    - Dst: ConsoleAssertionPrinter::print
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' _assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9154
      start: 9139
    functionDepth: 2
    functionLinenumber: 9139
    functionLinenumberEnd: 9154
    functionName: Catch::ConsoleReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - includeSuccessfulResults
    - isOk
    - ConsoleAssertionPrinter::print
    - Catch::ConsoleReporter::lazyPrint
    - get
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::assertionEnded(AssertionStats const& _assertionStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9157,1
    - Dst: Catch::StreamingReporterBase::sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9160
      start: 9156
    functionDepth: 1
    functionLinenumber: 9156
    functionLinenumberEnd: 9160
    functionName: Catch::ConsoleReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::sectionStarting
    - close
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::sectionStarting(SectionInfo const& _sectionInfo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9162,1
    - Dst: Catch::ConsoleReporter::lazyPrint
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9164,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9166,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9167,1
    - Dst: shouldShowDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9174,1
    - Dst: getFormattedDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9175,1
    - Dst: Catch::StreamingReporterBase::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' _sectionStats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9181
      start: 9161
    functionDepth: 2
    functionLinenumber: 9161
    functionLinenumberEnd: 9181
    functionName: Catch::ConsoleReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - guardColour
    - Catch::StreamingReporterBase::sectionEnded
    - shouldShowDuration
    - Catch::ConsoleReporter::lazyPrint
    - getFormattedDuration
    - size
    - close
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::sectionEnded(SectionStats const& _sectionStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9184,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9186,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9186,1
    - Dst: columnInfos
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9187,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9192,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9192,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9192,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9198
      start: 9183
    functionDepth: 2
    functionLinenumber: 9183
    functionLinenumberEnd: 9198
    functionName: Catch::ConsoleReporter::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - columnInfos
    - ColumnBreak
    - Catch::TextFlow::Column::Column
    - static_cast<std::string>
    - Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::benchmarkPreparing( StringRef name )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9201,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9202,1
    - Dst: benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9203,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9205,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - BenchmarkInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9208
      start: 9200
    functionDepth: 0
    functionLinenumber: 9200
    functionLinenumberEnd: 9208
    functionName: Catch::ConsoleReporter::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ColumnBreak
    - benchmarkNoAnalysis
    - Duration
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::benchmarkStarting(BenchmarkInfo const& info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: benchmarkNoAnalysis
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9210,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9212,1
    - Dst: mean::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9212,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9212,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9216,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9217,1
    - Dst: mean::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9217,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9217,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9218,1
    - Dst: mean::lower_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9218,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9218,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9219,1
    - Dst: mean::upper_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9219,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9219,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9219,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9220,1
    - Dst: standardDeviation::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9220,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9220,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9221,1
    - Dst: standardDeviation::lower_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9221,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9221,1
    - Dst: Duration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: standardDeviation::upper_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' stats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9224
      start: 9209
    functionDepth: 0
    functionLinenumber: 9209
    functionLinenumberEnd: 9224
    functionName: Catch::ConsoleReporter::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - mean::upper_bound::count
    - ColumnBreak
    - mean::point::count
    - standardDeviation::lower_bound::count
    - standardDeviation::upper_bound::count
    - benchmarkNoAnalysis
    - Duration
    - standardDeviation::point::count
    - mean::lower_bound::count
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::benchmarkEnded(BenchmarkStats<> const& stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9227,1
    - Dst: ColumnBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9230,1
    - Dst: RowBreak
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9231
      start: 9226
    functionDepth: 0
    functionLinenumber: 9226
    functionLinenumberEnd: 9231
    functionName: Catch::ConsoleReporter::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ColumnBreak
    - guardColour
    - RowBreak
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::benchmarkFailed( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9234,1
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9237
      start: 9233
    functionDepth: 1
    functionLinenumber: 9233
    functionLinenumberEnd: 9237
    functionName: Catch::ConsoleReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testCaseEnded
    - close
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::testCaseEnded(TestCaseStats const& _testCaseStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleReporter::printTotalsDivider
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9239,1
    - Dst: printTestRunTotals
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9240,1
    - Dst: Catch::StreamingReporterBase::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' _testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9243
      start: 9238
    functionDepth: 1
    functionLinenumber: 9238
    functionLinenumberEnd: 9243
    functionName: Catch::ConsoleReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testRunEnded
    - Catch::ConsoleReporter::printTotalsDivider
    - printTestRunTotals
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::testRunEnded(TestRunStats const& _testRunStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9245,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9246,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9247,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9248,1
    - Dst: getSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' _testRunInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9251
      start: 9244
    functionDepth: 1
    functionLinenumber: 9244
    functionLinenumberEnd: 9251
    functionName: Catch::ConsoleReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - guardColour
    - Catch::StreamingReporterBase::testRunStarting
    - testSpec
    - getSeed
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::testRunStarting(TestRunInfo const& _testRunInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9255,1
    - Dst: Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9257
      start: 9253
    functionDepth: 2
    functionLinenumber: 9253
    functionLinenumberEnd: 9257
    functionName: Catch::ConsoleReporter::lazyPrint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - close
    - Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::lazyPrint()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleReporter::lazyPrintRunInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9262,1
    - Dst: Catch::ConsoleReporter::printTestCaseAndSectionHeader
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9268
      start: 9259
    functionDepth: 2
    functionLinenumber: 9259
    functionLinenumberEnd: 9268
    functionName: Catch::ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::ConsoleReporter::lazyPrintRunInfo
    - Catch::ConsoleReporter::printTestCaseAndSectionHeader
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9271,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9272,1
    - Dst: libraryVersion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9278
      start: 9269
    functionDepth: 0
    functionLinenumber: 9269
    functionLinenumberEnd: 9278
    functionName: Catch::ConsoleReporter::lazyPrintRunInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - lineOfChars
    - libraryVersion
    - guardColour
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::lazyPrintRunInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9280,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9280,1
    - Dst: Catch::ConsoleReporter::printOpenHeader
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9281,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9283,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9284,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9287,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9288,1
    - Dst: Catch::ConsoleReporter::printHeaderString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9290,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9293,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9296,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9297,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!m_sectionStack.empty())
      pos:
        line_end: 9279
        line_start: 9279
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9300
      start: 9279
    functionDepth: 2
    functionLinenumber: 9279
    functionLinenumberEnd: 9300
    functionName: Catch::ConsoleReporter::printTestCaseAndSectionHeader
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::ConsoleReporter::printHeaderString
    - assert
    - guardColour
    - begin
    - lineOfChars
    - empty
    - end
    - back
    - size
    - Catch::ConsoleReporter::printOpenHeader
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printTestCaseAndSectionHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::ConsoleReporter::printOpenHeader
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9303,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' _name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9305
      start: 9302
    functionDepth: 2
    functionLinenumber: 9302
    functionLinenumberEnd: 9305
    functionName: Catch::ConsoleReporter::printClosedHeader
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - lineOfChars
    - Catch::ConsoleReporter::printOpenHeader
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printClosedHeader(std::string const& _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9307,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9309,1
    - Dst: Catch::ConsoleReporter::printHeaderString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' _name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9312
      start: 9306
    functionDepth: 2
    functionLinenumber: 9306
    functionLinenumberEnd: 9312
    functionName: Catch::ConsoleReporter::printOpenHeader
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - lineOfChars
    - Catch::ConsoleReporter::printHeaderString
    - guardColour
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printOpenHeader(std::string const& _name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9335,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' _string'
    - indent
    argTypes:
    - std::string
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9345
      start: 9314
    functionDepth: 1
    functionLinenumber: 9314
    functionLinenumberEnd: 9345
    functionName: Catch::ConsoleReporter::printHeaderString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::TextFlow::Column::Column
    - find
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printHeaderString(std::string const& _string,
      std::size_t indent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9348,1
    - Dst: makeRatio
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9349,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9349,1
    - Dst: makeRatio
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9350,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9350,1
    - Dst: makeRatio
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9351,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9351,1
    - Dst: makeRatio
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9352,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9352,1
    - Dst: findMax
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9354,1
    - Dst: findMax
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9356,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9358,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9359,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9360,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9361,1
    - Dst: testCases::allPassed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9362,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9363,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9364,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9366,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9367,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9369,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9370,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9372,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' totals'
    argTypes:
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9376
      start: 9347
    functionDepth: 0
    functionLinenumber: 9347
    functionLinenumberEnd: 9376
    functionName: Catch::ConsoleReporter::printTotalsDivider
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - guardColour
    - makeRatio
    - testCases::allPassed
    - std::string
    - findMax
    - testCases::total
    linkageType: ''
    returnType: void
    signature: void ConsoleReporter::printTotalsDivider(Totals const& totals)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9397
      start: 9397
    functionDepth: 0
    functionLinenumber: 9397
    functionLinenumberEnd: 9397
    functionName: Catch::BySectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BySectionInfo( SectionInfo const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BySectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9398
      start: 9398
    functionDepth: 0
    functionLinenumber: 9398
    functionLinenumberEnd: 9398
    functionName: Catch::BySectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BySectionInfo( BySectionInfo const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - "\n                    node"
    argTypes:
    - Detail::unique_ptr<CumulativeReporterBase::SectionNode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9405
      start: 9399
    functionDepth: 0
    functionLinenumber: 9399
    functionLinenumberEnd: 9405
    functionName: "operator()(\n                Detail::unique_ptr<CumulativeReporterBase::SectionNode>
      const&\n                    node ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator()(\n                Detail::unique_ptr<CumulativeReporterBase::SectionNode>
      const&\n                    node ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9406
      start: 9406
    functionDepth: 0
    functionLinenumber: 9406
    functionLinenumberEnd: 9406
    functionName: operator=( BySectionInfo const& )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=( BySectionInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9397
      start: 9397
    functionDepth: 0
    functionLinenumber: 9397
    functionLinenumberEnd: 9397
    functionName: Catch::BySectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BySectionInfo( SectionInfo const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BySectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9398
      start: 9398
    functionDepth: 0
    functionLinenumber: 9398
    functionLinenumberEnd: 9398
    functionName: Catch::BySectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BySectionInfo( BySectionInfo const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - "\n                    node"
    argTypes:
    - Detail::unique_ptr<CumulativeReporterBase::SectionNode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9405
      start: 9399
    functionDepth: 0
    functionLinenumber: 9399
    functionLinenumberEnd: 9405
    functionName: "operator()(\n                Detail::unique_ptr<CumulativeReporterBase::SectionNode>
      const&\n                    node ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator()(\n                Detail::unique_ptr<CumulativeReporterBase::SectionNode>
      const&\n                    node ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9406
      start: 9406
    functionDepth: 0
    functionLinenumber: 9406
    functionLinenumberEnd: 9406
    functionName: operator=( BySectionInfo const& )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=( BySectionInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9417
      start: 9415
    functionDepth: 0
    functionLinenumber: 9415
    functionLinenumberEnd: 9417
    functionName: Catch::Detail::AssertionOrBenchmarkResult::AssertionOrBenchmarkResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AssertionOrBenchmarkResult::AssertionOrBenchmarkResult(\n            AssertionStats
      const& assertion )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' benchmark'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9421
      start: 9419
    functionDepth: 0
    functionLinenumber: 9419
    functionLinenumberEnd: 9421
    functionName: Catch::Detail::AssertionOrBenchmarkResult::AssertionOrBenchmarkResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AssertionOrBenchmarkResult::AssertionOrBenchmarkResult(\n            BenchmarkStats<>
      const& benchmark )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9425
      start: 9423
    functionDepth: 0
    functionLinenumber: 9423
    functionLinenumberEnd: 9425
    functionName: Catch::Detail::AssertionOrBenchmarkResult::isAssertion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: bool
    signature: bool AssertionOrBenchmarkResult::isAssertion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9428
      start: 9426
    functionDepth: 0
    functionLinenumber: 9426
    functionLinenumberEnd: 9428
    functionName: Catch::Detail::AssertionOrBenchmarkResult::isBenchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: bool
    signature: bool AssertionOrBenchmarkResult::isBenchmark() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9431,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_assertion.some())
      pos:
        line_end: 9430
        line_start: 9430
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9434
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9434
    functionName: '& AssertionOrBenchmarkResult::asAssertion() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    - assert
    linkageType: ''
    returnType: AssertionStats
    signature: AssertionStats & AssertionOrBenchmarkResult::asAssertion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9436,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_benchmark.some())
      pos:
        line_end: 9435
        line_start: 9435
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9439
      start: 9435
    functionDepth: 0
    functionLinenumber: 9435
    functionLinenumberEnd: 9439
    functionName: '& AssertionOrBenchmarkResult::asBenchmark() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    - assert
    linkageType: ''
    returnType: BenchmarkStats<>
    signature: BenchmarkStats<> & AssertionOrBenchmarkResult::asBenchmark() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9417
      start: 9415
    functionDepth: 0
    functionLinenumber: 9415
    functionLinenumberEnd: 9417
    functionName: Catch::Detail::AssertionOrBenchmarkResult::AssertionOrBenchmarkResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AssertionOrBenchmarkResult::AssertionOrBenchmarkResult(\n            AssertionStats
      const& assertion )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' benchmark'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9421
      start: 9419
    functionDepth: 0
    functionLinenumber: 9419
    functionLinenumberEnd: 9421
    functionName: Catch::Detail::AssertionOrBenchmarkResult::AssertionOrBenchmarkResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AssertionOrBenchmarkResult::AssertionOrBenchmarkResult(\n            BenchmarkStats<>
      const& benchmark )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9425
      start: 9423
    functionDepth: 0
    functionLinenumber: 9423
    functionLinenumberEnd: 9425
    functionName: Catch::Detail::AssertionOrBenchmarkResult::isAssertion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: bool
    signature: bool AssertionOrBenchmarkResult::isAssertion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9428
      start: 9426
    functionDepth: 0
    functionLinenumber: 9426
    functionLinenumberEnd: 9428
    functionName: Catch::Detail::AssertionOrBenchmarkResult::isBenchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: bool
    signature: bool AssertionOrBenchmarkResult::isBenchmark() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9431,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_assertion.some())
      pos:
        line_end: 9430
        line_start: 9430
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9434
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9434
    functionName: '& AssertionOrBenchmarkResult::asAssertion() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    - assert
    linkageType: ''
    returnType: AssertionStats
    signature: AssertionStats & AssertionOrBenchmarkResult::asAssertion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9436,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_benchmark.some())
      pos:
        line_end: 9435
        line_start: 9435
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9439
      start: 9435
    functionDepth: 0
    functionLinenumber: 9435
    functionLinenumberEnd: 9439
    functionName: '& AssertionOrBenchmarkResult::asBenchmark() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    - assert
    linkageType: ''
    returnType: BenchmarkStats<>
    signature: BenchmarkStats<> & AssertionOrBenchmarkResult::asBenchmark() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9443
      start: 9443
    functionDepth: 0
    functionLinenumber: 9443
    functionLinenumberEnd: 9443
    functionName: CumulativeReporterBase::~CumulativeReporterBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::~CumulativeReporterBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9446,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' benchmarkStats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9447
      start: 9445
    functionDepth: 0
    functionLinenumber: 9445
    functionLinenumberEnd: 9447
    functionName: Catch::CumulativeReporterBase::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - back
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::benchmarkEnded(BenchmarkStats<> const&
      benchmarkStats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SectionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9452,1
    - Dst: Counts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9452,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9454,1
    - Dst: Detail::make_unique<SectionNode>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9457,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9459,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9461,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9462,1
    - Dst: childSections::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9462,1
    - Dst: childSections::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9463,1
    - Dst: BySectionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9464,1
    - Dst: childSections::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9465,1
    - Dst: Detail::make_unique<SectionNode>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9467,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9468,1
    - Dst: childSections::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9469,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9469,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9471,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9477
      start: 9449
    functionDepth: 1
    functionLinenumber: 9449
    functionLinenumberEnd: 9477
    functionName: Catch::CumulativeReporterBase::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - childSections::push_back
    - push_back
    - auto::get
    - empty
    - childSections::end
    - SectionInfo
    - Counts
    - childSections::begin
    - CATCH_MOVE
    - back
    - BySectionInfo
    - get
    - Detail::make_unique<SectionNode>
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::sectionStarting( SectionInfo const& sectionInfo
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9481,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9481,1
    - Dst: assertionResult::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9488,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9489,1
    - Dst: assertionResult::getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9490,1
    - Dst: assertionResult::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9493,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9494,1
    - Dst: assertionResult::getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9495,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9497,1
    - Dst: assertionsAndBenchmarks::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts:
    - condition: ( !m_sectionStack.empty() )
      pos:
        line_end: 9480
        line_start: 9480
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9499
      start: 9479
    functionDepth: 0
    functionLinenumber: 9479
    functionLinenumberEnd: 9499
    functionName: Catch::CumulativeReporterBase::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - static_cast<void>
    - empty
    - assertionResult::isOk
    - back
    - assertionsAndBenchmarks::emplace_back
    - assertionResult::getExpandedExpression
    linkageType: ''
    returnType: void
    signature: "void CumulativeReporterBase::assertionEnded(\n        AssertionStats
      const& assertionStats )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9502,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9502,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9503,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' sectionStats'
    argTypes:
    - SectionStats
    assertStmts:
    - condition: ( !m_sectionStack.empty() )
      pos:
        line_end: 9501
        line_start: 9501
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9506
      start: 9501
    functionDepth: 0
    functionLinenumber: 9501
    functionLinenumberEnd: 9506
    functionName: Catch::CumulativeReporterBase::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - back
    - pop_back
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::sectionEnded( SectionStats const& sectionStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestCaseNode>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9510,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9511,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9511,1
    - Dst: auto::children::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9512,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9512,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9513,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9513,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts:
    - condition: ( m_sectionStack.size() == 0 )
      pos:
        line_end: 9510
        line_start: 9510
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_deepestSection )
      pos:
        line_end: 9514
        line_start: 9514
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9518
      start: 9508
    functionDepth: 1
    functionLinenumber: 9508
    functionLinenumberEnd: 9518
    functionName: Catch::CumulativeReporterBase::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - auto::children::push_back
    - assert
    - Detail::make_unique<TestCaseNode>
    - CATCH_MOVE
    - size
    linkageType: ''
    returnType: void
    signature: "void CumulativeReporterBase::testCaseEnded(\n        TestCaseStats
      const& testCaseStats )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9522,1
    - Dst: Detail::make_unique<TestRunNode>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9523,1
    - Dst: children::swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9524,1
    - Dst: testRunEndedCumulative
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' testRunStats'
    argTypes:
    - TestRunStats
    assertStmts:
    - condition: (!m_testRun && "CumulativeReporterBase assumes there can only be
        one test run")
      pos:
        line_end: 9521
        line_start: 9521
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9526
      start: 9521
    functionDepth: 0
    functionLinenumber: 9521
    functionLinenumberEnd: 9526
    functionName: Catch::CumulativeReporterBase::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - testRunEndedCumulative
    - Detail::make_unique<TestRunNode>
    - assert
    - children::swap
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::testRunEnded( TestRunStats const& testRunStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9529,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9530,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9531,1
    - Dst: isAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9535
      start: 9528
    functionDepth: 0
    functionLinenumber: 9528
    functionLinenumberEnd: 9535
    functionName: CumulativeReporterBase::SectionNode::hasAnyAssertions() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isAssertion
    - end
    - std::any_of
    - begin
    linkageType: ''
    returnType: bool
    signature: bool CumulativeReporterBase::SectionNode::hasAnyAssertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9397
      start: 9397
    functionDepth: 0
    functionLinenumber: 9397
    functionLinenumberEnd: 9397
    functionName: Catch::BySectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BySectionInfo( SectionInfo const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BySectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9398
      start: 9398
    functionDepth: 0
    functionLinenumber: 9398
    functionLinenumberEnd: 9398
    functionName: Catch::BySectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BySectionInfo( BySectionInfo const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - "\n                    node"
    argTypes:
    - Detail::unique_ptr<CumulativeReporterBase::SectionNode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9405
      start: 9399
    functionDepth: 0
    functionLinenumber: 9399
    functionLinenumberEnd: 9405
    functionName: "operator()(\n                Detail::unique_ptr<CumulativeReporterBase::SectionNode>
      const&\n                    node ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator()(\n                Detail::unique_ptr<CumulativeReporterBase::SectionNode>
      const&\n                    node ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9406
      start: 9406
    functionDepth: 0
    functionLinenumber: 9406
    functionLinenumberEnd: 9406
    functionName: operator=( BySectionInfo const& )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=( BySectionInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9397
      start: 9397
    functionDepth: 0
    functionLinenumber: 9397
    functionLinenumberEnd: 9397
    functionName: Catch::BySectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BySectionInfo( SectionInfo const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BySectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9398
      start: 9398
    functionDepth: 0
    functionLinenumber: 9398
    functionLinenumberEnd: 9398
    functionName: Catch::BySectionInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BySectionInfo( BySectionInfo const& other )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - "\n                    node"
    argTypes:
    - Detail::unique_ptr<CumulativeReporterBase::SectionNode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9405
      start: 9399
    functionDepth: 0
    functionLinenumber: 9399
    functionLinenumberEnd: 9405
    functionName: "operator()(\n                Detail::unique_ptr<CumulativeReporterBase::SectionNode>
      const&\n                    node ) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator()(\n                Detail::unique_ptr<CumulativeReporterBase::SectionNode>
      const&\n                    node ) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9406
      start: 9406
    functionDepth: 0
    functionLinenumber: 9406
    functionLinenumberEnd: 9406
    functionName: operator=( BySectionInfo const& )
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=( BySectionInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9417
      start: 9415
    functionDepth: 0
    functionLinenumber: 9415
    functionLinenumberEnd: 9417
    functionName: Catch::Detail::AssertionOrBenchmarkResult::AssertionOrBenchmarkResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AssertionOrBenchmarkResult::AssertionOrBenchmarkResult(\n            AssertionStats
      const& assertion )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' benchmark'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9421
      start: 9419
    functionDepth: 0
    functionLinenumber: 9419
    functionLinenumberEnd: 9421
    functionName: Catch::Detail::AssertionOrBenchmarkResult::AssertionOrBenchmarkResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AssertionOrBenchmarkResult::AssertionOrBenchmarkResult(\n            BenchmarkStats<>
      const& benchmark )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9425
      start: 9423
    functionDepth: 0
    functionLinenumber: 9423
    functionLinenumberEnd: 9425
    functionName: Catch::Detail::AssertionOrBenchmarkResult::isAssertion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: bool
    signature: bool AssertionOrBenchmarkResult::isAssertion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9428
      start: 9426
    functionDepth: 0
    functionLinenumber: 9426
    functionLinenumberEnd: 9428
    functionName: Catch::Detail::AssertionOrBenchmarkResult::isBenchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: bool
    signature: bool AssertionOrBenchmarkResult::isBenchmark() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9431,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_assertion.some())
      pos:
        line_end: 9430
        line_start: 9430
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9434
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9434
    functionName: '& AssertionOrBenchmarkResult::asAssertion() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    - assert
    linkageType: ''
    returnType: AssertionStats
    signature: AssertionStats & AssertionOrBenchmarkResult::asAssertion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9436,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_benchmark.some())
      pos:
        line_end: 9435
        line_start: 9435
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9439
      start: 9435
    functionDepth: 0
    functionLinenumber: 9435
    functionLinenumberEnd: 9439
    functionName: '& AssertionOrBenchmarkResult::asBenchmark() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    - assert
    linkageType: ''
    returnType: BenchmarkStats<>
    signature: BenchmarkStats<> & AssertionOrBenchmarkResult::asBenchmark() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9417
      start: 9415
    functionDepth: 0
    functionLinenumber: 9415
    functionLinenumberEnd: 9417
    functionName: Catch::Detail::AssertionOrBenchmarkResult::AssertionOrBenchmarkResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AssertionOrBenchmarkResult::AssertionOrBenchmarkResult(\n            AssertionStats
      const& assertion )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' benchmark'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9421
      start: 9419
    functionDepth: 0
    functionLinenumber: 9419
    functionLinenumberEnd: 9421
    functionName: Catch::Detail::AssertionOrBenchmarkResult::AssertionOrBenchmarkResult
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AssertionOrBenchmarkResult::AssertionOrBenchmarkResult(\n            BenchmarkStats<>
      const& benchmark )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9425
      start: 9423
    functionDepth: 0
    functionLinenumber: 9423
    functionLinenumberEnd: 9425
    functionName: Catch::Detail::AssertionOrBenchmarkResult::isAssertion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: bool
    signature: bool AssertionOrBenchmarkResult::isAssertion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9428
      start: 9426
    functionDepth: 0
    functionLinenumber: 9426
    functionLinenumberEnd: 9428
    functionName: Catch::Detail::AssertionOrBenchmarkResult::isBenchmark
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    linkageType: ''
    returnType: bool
    signature: bool AssertionOrBenchmarkResult::isBenchmark() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9431,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_assertion.some())
      pos:
        line_end: 9430
        line_start: 9430
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9434
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9434
    functionName: '& AssertionOrBenchmarkResult::asAssertion() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    - assert
    linkageType: ''
    returnType: AssertionStats
    signature: AssertionStats & AssertionOrBenchmarkResult::asAssertion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9436,1
    - Dst: some
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_benchmark.some())
      pos:
        line_end: 9435
        line_start: 9435
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9439
      start: 9435
    functionDepth: 0
    functionLinenumber: 9435
    functionLinenumberEnd: 9439
    functionName: '& AssertionOrBenchmarkResult::asBenchmark() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - some
    - assert
    linkageType: ''
    returnType: BenchmarkStats<>
    signature: BenchmarkStats<> & AssertionOrBenchmarkResult::asBenchmark() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9443
      start: 9443
    functionDepth: 0
    functionLinenumber: 9443
    functionLinenumberEnd: 9443
    functionName: CumulativeReporterBase::~CumulativeReporterBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::~CumulativeReporterBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9446,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' benchmarkStats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9447
      start: 9445
    functionDepth: 0
    functionLinenumber: 9445
    functionLinenumberEnd: 9447
    functionName: Catch::CumulativeReporterBase::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - back
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::benchmarkEnded(BenchmarkStats<> const&
      benchmarkStats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SectionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9452,1
    - Dst: Counts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9452,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9454,1
    - Dst: Detail::make_unique<SectionNode>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9457,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9459,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9461,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9462,1
    - Dst: childSections::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9462,1
    - Dst: childSections::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9463,1
    - Dst: BySectionInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9464,1
    - Dst: childSections::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9465,1
    - Dst: Detail::make_unique<SectionNode>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9467,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9468,1
    - Dst: childSections::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9469,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9469,1
    - Dst: auto::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9471,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9477
      start: 9449
    functionDepth: 1
    functionLinenumber: 9449
    functionLinenumberEnd: 9477
    functionName: Catch::CumulativeReporterBase::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - childSections::push_back
    - push_back
    - auto::get
    - empty
    - childSections::end
    - SectionInfo
    - Counts
    - childSections::begin
    - CATCH_MOVE
    - back
    - BySectionInfo
    - get
    - Detail::make_unique<SectionNode>
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::sectionStarting( SectionInfo const& sectionInfo
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9481,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9481,1
    - Dst: assertionResult::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9488,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9489,1
    - Dst: assertionResult::getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9490,1
    - Dst: assertionResult::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9493,1
    - Dst: static_cast<void>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9494,1
    - Dst: assertionResult::getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9495,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9497,1
    - Dst: assertionsAndBenchmarks::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts:
    - condition: ( !m_sectionStack.empty() )
      pos:
        line_end: 9480
        line_start: 9480
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9499
      start: 9479
    functionDepth: 0
    functionLinenumber: 9479
    functionLinenumberEnd: 9499
    functionName: Catch::CumulativeReporterBase::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - static_cast<void>
    - empty
    - assertionResult::isOk
    - back
    - assertionsAndBenchmarks::emplace_back
    - assertionResult::getExpandedExpression
    linkageType: ''
    returnType: void
    signature: "void CumulativeReporterBase::assertionEnded(\n        AssertionStats
      const& assertionStats )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9502,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9502,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9503,1
    - Dst: pop_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' sectionStats'
    argTypes:
    - SectionStats
    assertStmts:
    - condition: ( !m_sectionStack.empty() )
      pos:
        line_end: 9501
        line_start: 9501
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9506
      start: 9501
    functionDepth: 0
    functionLinenumber: 9501
    functionLinenumberEnd: 9506
    functionName: Catch::CumulativeReporterBase::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - back
    - pop_back
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::sectionEnded( SectionStats const& sectionStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Detail::make_unique<TestCaseNode>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9510,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9511,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9511,1
    - Dst: auto::children::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9512,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9512,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9513,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9513,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts:
    - condition: ( m_sectionStack.size() == 0 )
      pos:
        line_end: 9510
        line_start: 9510
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_deepestSection )
      pos:
        line_end: 9514
        line_start: 9514
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9518
      start: 9508
    functionDepth: 1
    functionLinenumber: 9508
    functionLinenumberEnd: 9518
    functionName: Catch::CumulativeReporterBase::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - auto::children::push_back
    - assert
    - Detail::make_unique<TestCaseNode>
    - CATCH_MOVE
    - size
    linkageType: ''
    returnType: void
    signature: "void CumulativeReporterBase::testCaseEnded(\n        TestCaseStats
      const& testCaseStats )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9522,1
    - Dst: Detail::make_unique<TestRunNode>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9523,1
    - Dst: children::swap
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9524,1
    - Dst: testRunEndedCumulative
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' testRunStats'
    argTypes:
    - TestRunStats
    assertStmts:
    - condition: (!m_testRun && "CumulativeReporterBase assumes there can only be
        one test run")
      pos:
        line_end: 9521
        line_start: 9521
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9526
      start: 9521
    functionDepth: 0
    functionLinenumber: 9521
    functionLinenumberEnd: 9526
    functionName: Catch::CumulativeReporterBase::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - testRunEndedCumulative
    - Detail::make_unique<TestRunNode>
    - assert
    - children::swap
    linkageType: ''
    returnType: void
    signature: void CumulativeReporterBase::testRunEnded( TestRunStats const& testRunStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9529,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9530,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9531,1
    - Dst: isAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9535
      start: 9528
    functionDepth: 0
    functionLinenumber: 9528
    functionLinenumberEnd: 9535
    functionName: CumulativeReporterBase::SectionNode::hasAnyAssertions() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - isAssertion
    - end
    - std::any_of
    - begin
    linkageType: ''
    returnType: bool
    signature: bool CumulativeReporterBase::SectionNode::hasAnyAssertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9544
      start: 9544
    functionDepth: 0
    functionLinenumber: 9544
    functionLinenumberEnd: 9544
    functionName: Catch::EventListenerBase::fatalErrorEncountered
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::fatalErrorEncountered( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9546
      start: 9546
    functionDepth: 0
    functionLinenumber: 9546
    functionLinenumberEnd: 9546
    functionName: Catch::EventListenerBase::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::benchmarkPreparing( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9547
      start: 9547
    functionDepth: 0
    functionLinenumber: 9547
    functionLinenumberEnd: 9547
    functionName: Catch::EventListenerBase::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::benchmarkStarting( BenchmarkInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9548
      start: 9548
    functionDepth: 0
    functionLinenumber: 9548
    functionLinenumberEnd: 9548
    functionName: Catch::EventListenerBase::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::benchmarkEnded( BenchmarkStats<> const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9549
      start: 9549
    functionDepth: 0
    functionLinenumber: 9549
    functionLinenumberEnd: 9549
    functionName: Catch::EventListenerBase::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::benchmarkFailed( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9551
      start: 9551
    functionDepth: 0
    functionLinenumber: 9551
    functionLinenumberEnd: 9551
    functionName: Catch::EventListenerBase::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::assertionStarting( AssertionInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9553
      start: 9553
    functionDepth: 0
    functionLinenumber: 9553
    functionLinenumberEnd: 9553
    functionName: Catch::EventListenerBase::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::assertionEnded( AssertionStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9555
      start: 9554
    functionDepth: 0
    functionLinenumber: 9554
    functionLinenumberEnd: 9555
    functionName: Catch::EventListenerBase::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EventListenerBase::listReporters(\n        std::vector<ReporterDescription>
      const& )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9557
      start: 9556
    functionDepth: 0
    functionLinenumber: 9556
    functionLinenumberEnd: 9557
    functionName: Catch::EventListenerBase::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EventListenerBase::listListeners(\n        std::vector<ListenerDescription>
      const& )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9558
    functionDepth: 0
    functionLinenumber: 9558
    functionLinenumberEnd: 9558
    functionName: Catch::EventListenerBase::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::listTests( std::vector<TestCaseHandle> const&
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9559
      start: 9559
    functionDepth: 0
    functionLinenumber: 9559
    functionLinenumberEnd: 9559
    functionName: Catch::EventListenerBase::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::listTags( std::vector<TagInfo> const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9560
      start: 9560
    functionDepth: 0
    functionLinenumber: 9560
    functionLinenumberEnd: 9560
    functionName: Catch::EventListenerBase::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::noMatchingTestCases( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9561
      start: 9561
    functionDepth: 0
    functionLinenumber: 9561
    functionLinenumberEnd: 9561
    functionName: Catch::EventListenerBase::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::reportInvalidTestSpec( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9562
      start: 9562
    functionDepth: 0
    functionLinenumber: 9562
    functionLinenumberEnd: 9562
    functionName: Catch::EventListenerBase::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testRunStarting( TestRunInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9563
      start: 9563
    functionDepth: 0
    functionLinenumber: 9563
    functionLinenumberEnd: 9563
    functionName: Catch::EventListenerBase::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testCaseStarting( TestCaseInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9564
      start: 9564
    functionDepth: 0
    functionLinenumber: 9564
    functionLinenumberEnd: 9564
    functionName: Catch::EventListenerBase::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testCasePartialStarting(TestCaseInfo const&,
      uint64_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9565
      start: 9565
    functionDepth: 0
    functionLinenumber: 9565
    functionLinenumberEnd: 9565
    functionName: Catch::EventListenerBase::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::sectionStarting( SectionInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9566
      start: 9566
    functionDepth: 0
    functionLinenumber: 9566
    functionLinenumberEnd: 9566
    functionName: Catch::EventListenerBase::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::sectionEnded( SectionStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9567
      start: 9567
    functionDepth: 0
    functionLinenumber: 9567
    functionLinenumberEnd: 9567
    functionName: Catch::EventListenerBase::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testCasePartialEnded(TestCaseStats const&,
      uint64_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9568
      start: 9568
    functionDepth: 0
    functionLinenumber: 9568
    functionLinenumberEnd: 9568
    functionName: Catch::EventListenerBase::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testCaseEnded( TestCaseStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9569
      start: 9569
    functionDepth: 0
    functionLinenumber: 9569
    functionLinenumberEnd: 9569
    functionName: Catch::EventListenerBase::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testRunEnded( TestRunStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9570
      start: 9570
    functionDepth: 0
    functionLinenumber: 9570
    functionLinenumberEnd: 9570
    functionName: Catch::EventListenerBase::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::skipTest( TestCaseInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9544
      start: 9544
    functionDepth: 0
    functionLinenumber: 9544
    functionLinenumberEnd: 9544
    functionName: Catch::EventListenerBase::fatalErrorEncountered
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::fatalErrorEncountered( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9546
      start: 9546
    functionDepth: 0
    functionLinenumber: 9546
    functionLinenumberEnd: 9546
    functionName: Catch::EventListenerBase::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::benchmarkPreparing( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9547
      start: 9547
    functionDepth: 0
    functionLinenumber: 9547
    functionLinenumberEnd: 9547
    functionName: Catch::EventListenerBase::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::benchmarkStarting( BenchmarkInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9548
      start: 9548
    functionDepth: 0
    functionLinenumber: 9548
    functionLinenumberEnd: 9548
    functionName: Catch::EventListenerBase::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::benchmarkEnded( BenchmarkStats<> const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9549
      start: 9549
    functionDepth: 0
    functionLinenumber: 9549
    functionLinenumberEnd: 9549
    functionName: Catch::EventListenerBase::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::benchmarkFailed( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9551
      start: 9551
    functionDepth: 0
    functionLinenumber: 9551
    functionLinenumberEnd: 9551
    functionName: Catch::EventListenerBase::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::assertionStarting( AssertionInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9553
      start: 9553
    functionDepth: 0
    functionLinenumber: 9553
    functionLinenumberEnd: 9553
    functionName: Catch::EventListenerBase::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::assertionEnded( AssertionStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9555
      start: 9554
    functionDepth: 0
    functionLinenumber: 9554
    functionLinenumberEnd: 9555
    functionName: Catch::EventListenerBase::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EventListenerBase::listReporters(\n        std::vector<ReporterDescription>
      const& )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9557
      start: 9556
    functionDepth: 0
    functionLinenumber: 9556
    functionLinenumberEnd: 9557
    functionName: Catch::EventListenerBase::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EventListenerBase::listListeners(\n        std::vector<ListenerDescription>
      const& )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9558
    functionDepth: 0
    functionLinenumber: 9558
    functionLinenumberEnd: 9558
    functionName: Catch::EventListenerBase::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::listTests( std::vector<TestCaseHandle> const&
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9559
      start: 9559
    functionDepth: 0
    functionLinenumber: 9559
    functionLinenumberEnd: 9559
    functionName: Catch::EventListenerBase::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::listTags( std::vector<TagInfo> const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9560
      start: 9560
    functionDepth: 0
    functionLinenumber: 9560
    functionLinenumberEnd: 9560
    functionName: Catch::EventListenerBase::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::noMatchingTestCases( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9561
      start: 9561
    functionDepth: 0
    functionLinenumber: 9561
    functionLinenumberEnd: 9561
    functionName: Catch::EventListenerBase::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::reportInvalidTestSpec( StringRef )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9562
      start: 9562
    functionDepth: 0
    functionLinenumber: 9562
    functionLinenumberEnd: 9562
    functionName: Catch::EventListenerBase::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testRunStarting( TestRunInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9563
      start: 9563
    functionDepth: 0
    functionLinenumber: 9563
    functionLinenumberEnd: 9563
    functionName: Catch::EventListenerBase::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testCaseStarting( TestCaseInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9564
      start: 9564
    functionDepth: 0
    functionLinenumber: 9564
    functionLinenumberEnd: 9564
    functionName: Catch::EventListenerBase::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testCasePartialStarting(TestCaseInfo const&,
      uint64_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9565
      start: 9565
    functionDepth: 0
    functionLinenumber: 9565
    functionLinenumberEnd: 9565
    functionName: Catch::EventListenerBase::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::sectionStarting( SectionInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9566
      start: 9566
    functionDepth: 0
    functionLinenumber: 9566
    functionLinenumberEnd: 9566
    functionName: Catch::EventListenerBase::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::sectionEnded( SectionStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9567
      start: 9567
    functionDepth: 0
    functionLinenumber: 9567
    functionLinenumberEnd: 9567
    functionName: Catch::EventListenerBase::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testCasePartialEnded(TestCaseStats const&,
      uint64_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9568
      start: 9568
    functionDepth: 0
    functionLinenumber: 9568
    functionLinenumberEnd: 9568
    functionName: Catch::EventListenerBase::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testCaseEnded( TestCaseStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9569
      start: 9569
    functionDepth: 0
    functionLinenumber: 9569
    functionLinenumberEnd: 9569
    functionName: Catch::EventListenerBase::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::testRunEnded( TestRunStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9570
      start: 9570
    functionDepth: 0
    functionLinenumber: 9570
    functionLinenumberEnd: 9570
    functionName: Catch::EventListenerBase::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EventListenerBase::skipTest( TestCaseInfo const& )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9588,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' out'
    - ' tests'
    argTypes:
    - std::ostream
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9599
      start: 9585
    functionDepth: 2
    functionLinenumber: 9585
    functionLinenumberEnd: 9599
    functionName: Catch::listTestNamesOnly
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - Catch::startsWith
    linkageType: ''
    returnType: void
    signature: "void listTestNamesOnly(std::ostream& out,\n                               std::vector<TestCaseHandle>
      const& tests)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9588,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' out'
    - ' tests'
    argTypes:
    - std::ostream
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9599
      start: 9585
    functionDepth: 2
    functionLinenumber: 9585
    functionLinenumberEnd: 9599
    functionName: Catch::listTestNamesOnly
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - Catch::startsWith
    linkageType: ''
    returnType: void
    signature: "void listTestNamesOnly(std::ostream& out,\n                               std::vector<TestCaseHandle>
      const& tests)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9617,1
    - Dst: sprintf_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9618,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9620,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9621,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duration
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9624
      start: 9606
    functionDepth: 0
    functionLinenumber: 9606
    functionLinenumberEnd: 9624
    functionName: Catch::getFormattedDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sprintf_s
    - std::string
    - std::snprintf
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string getFormattedDuration( double duration )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9627,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9630,1
    - Dst: minDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' config'
    - duration
    argTypes:
    - IConfig
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9635
      start: 9626
    functionDepth: 0
    functionLinenumber: 9626
    functionLinenumberEnd: 9635
    functionName: Catch::shouldShowDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - showDurations
    - minDuration
    linkageType: ''
    returnType: bool
    signature: bool shouldShowDuration( IConfig const& config, double duration )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9639,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9641,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9645,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9650,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9657
      start: 9637
    functionDepth: 1
    functionLinenumber: 9637
    functionLinenumberEnd: 9657
    functionName: Catch::serializeFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::append
    - std::string::push_back
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string serializeFilters( std::vector<std::string> const& filters
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' out'
    - value
    argTypes:
    - std::ostream
    - lineOfChars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9664
      start: 9659
    functionDepth: 0
    functionLinenumber: 9659
    functionLinenumberEnd: 9664
    functionName: '& operator<<( std::ostream& out, lineOfChars value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - put
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& out, lineOfChars value )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9672,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9672,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9673,1
    - Dst: name::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9676,1
    - Dst: name::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9676,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9672,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9682,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9687,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' out'
    - ' descriptions'
    - verbosity
    argTypes:
    - std::ostream
    - std::vector<ReporterDescription>
    - Verbosity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9698
      start: 9666
    functionDepth: 1
    functionLinenumber: 9666
    functionLinenumberEnd: 9698
    functionName: Catch::defaultListReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::max_element
    - begin
    - end
    - Catch::TextFlow::Column::Column
    - name::size
    - size
    linkageType: ''
    returnType: void
    signature: "void defaultListReporters( std::ostream& out,\n                          std::vector<ReporterDescription>
      const& descriptions,\n                          Verbosity verbosity )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9704,1
    - Dst: std::max_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9709,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9709,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9710,1
    - Dst: name::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9713,1
    - Dst: name::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9713,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9709,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9718,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9718,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' out'
    - ' descriptions'
    argTypes:
    - std::ostream
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9730
      start: 9700
    functionDepth: 1
    functionLinenumber: 9700
    functionLinenumberEnd: 9730
    functionName: Catch::defaultListListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::max_element
    - begin
    - empty
    - end
    - Catch::TextFlow::Column::Column
    - name::size
    - static_cast<std::string>
    - size
    linkageType: ''
    returnType: void
    signature: "void defaultListListeners( std::ostream& out,\n                               std::vector<ListenerDescription>
      const& descriptions )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9743,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9744,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9745,1
    - Dst: all
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9745,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9747,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9751,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' out'
    - ' tags'
    - isFiltered
    argTypes:
    - std::ostream
    - std::vector<TagInfo>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9752
      start: 9732
    functionDepth: 1
    functionLinenumber: 9732
    functionLinenumberEnd: 9752
    functionName: Catch::defaultListTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pluralise
    - auto::size
    - Catch::TextFlow::Column::Column
    - std::setw
    - ReusableStringStream::str
    - all
    - size
    linkageType: ''
    returnType: void
    signature: "void defaultListTags( std::ostream& out,\n                          std::vector<TagInfo>
      const& tags,\n                          bool isFiltered )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::listTestNamesOnly
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9759,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9770,1
    - Dst: isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9771,1
    - Dst: ColourImpl*::guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9774,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9776,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9778,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9778,1
    - Dst: tags::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9780,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9782,1
    - Dst: tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9782,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9787,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9787,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9789,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9789,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - ' out'
    - streamColour
    - ' tests'
    - isFiltered
    - verbosity
    argTypes:
    - std::ostream
    - ColourImpl*
    - std::vector<TestCaseHandle>
    - bool
    - Verbosity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9792
      start: 9754
    functionDepth: 3
    functionLinenumber: 9754
    functionLinenumberEnd: 9792
    functionName: Catch::defaultListTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pluralise
    - getTestCaseInfo
    - tags::empty
    - Catch::listTestNamesOnly
    - Catch::Detail::stringify
    - isHidden
    - ColourImpl*::guardColour
    - Catch::TextFlow::Column::Column
    - tagsAsString
    - size
    linkageType: ''
    returnType: void
    signature: void defaultListTests(std::ostream& out, ColourImpl* streamColour,
      std::vector<TestCaseHandle> const& tests, bool isFiltered, Verbosity verbosity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - suffix
    - colour
    argTypes:
    - std::string
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9798
      start: 9797
    functionDepth: 1
    functionLinenumber: 9797
    functionLinenumberEnd: 9798
    functionName: Catch::SummaryColumn::SummaryColumn
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SummaryColumn( std::string suffix, Colour::Code colour )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9801,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9802,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9802,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9805,1
    - Dst: std::string::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9808,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9808,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9811,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - count
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9813
      start: 9800
    functionDepth: 1
    functionLinenumber: 9800
    functionLinenumberEnd: 9813
    functionName: '&& addRow( std::uint64_t count ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - push_back
    - std::move
    - insert
    - std::max
    - std::string::insert
    - std::string::size
    linkageType: ''
    returnType: SummaryColumn
    signature: SummaryColumn && addRow( std::uint64_t count ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9815
      start: 9815
    functionDepth: 0
    functionLinenumber: 9815
    functionLinenumberEnd: 9815
    functionName: '& getSuffix() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & getSuffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9816
      start: 9816
    functionDepth: 0
    functionLinenumber: 9816
    functionLinenumberEnd: 9816
    functionName: Catch::SummaryColumn::getColour
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Colour::Code
    signature: Colour::Code getColour() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9819
      start: 9817
    functionDepth: 0
    functionLinenumber: 9817
    functionLinenumberEnd: 9819
    functionName: '& getRow( std::size_t index ) const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & getRow( std::size_t index ) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getRow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9834,1
    - Dst: getSuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9835,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9836,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9841,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9845,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9846,1
    - Dst: getColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ' stream'
    - ' colour'
    - label
    - ' cols'
    - row
    argTypes:
    - std::ostream
    - ColourImpl
    - StringRef
    - std::vector<SummaryColumn>
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9851
      start: 9828
    functionDepth: 0
    functionLinenumber: 9828
    functionLinenumberEnd: 9851
    functionName: Catch::printSummaryRow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getSuffix
    - guardColour
    - getRow
    - empty
    - getColour
    linkageType: ''
    returnType: void
    signature: "void printSummaryRow( std::ostream& stream,\n                              ColourImpl&
      colour,\n                              StringRef label,\n                              std::vector<SummaryColumn>
      const& cols,\n                              std::size_t row )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - suffix
    - colour
    argTypes:
    - std::string
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9798
      start: 9797
    functionDepth: 1
    functionLinenumber: 9797
    functionLinenumberEnd: 9798
    functionName: Catch::SummaryColumn::SummaryColumn
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SummaryColumn( std::string suffix, Colour::Code colour )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9801,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9802,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9802,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9805,1
    - Dst: std::string::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9808,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9808,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9811,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - count
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9813
      start: 9800
    functionDepth: 1
    functionLinenumber: 9800
    functionLinenumberEnd: 9813
    functionName: '&& addRow( std::uint64_t count ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - push_back
    - std::move
    - insert
    - std::max
    - std::string::insert
    - std::string::size
    linkageType: ''
    returnType: SummaryColumn
    signature: SummaryColumn && addRow( std::uint64_t count ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9815
      start: 9815
    functionDepth: 0
    functionLinenumber: 9815
    functionLinenumberEnd: 9815
    functionName: '& getSuffix() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & getSuffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9816
      start: 9816
    functionDepth: 0
    functionLinenumber: 9816
    functionLinenumberEnd: 9816
    functionName: Catch::SummaryColumn::getColour
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Colour::Code
    signature: Colour::Code getColour() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9819
      start: 9817
    functionDepth: 0
    functionLinenumber: 9817
    functionLinenumberEnd: 9819
    functionName: '& getRow( std::size_t index ) const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & getRow( std::size_t index ) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getRow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9834,1
    - Dst: getSuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9835,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9836,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9841,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9845,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9846,1
    - Dst: getColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ' stream'
    - ' colour'
    - label
    - ' cols'
    - row
    argTypes:
    - std::ostream
    - ColourImpl
    - StringRef
    - std::vector<SummaryColumn>
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9851
      start: 9828
    functionDepth: 0
    functionLinenumber: 9828
    functionLinenumberEnd: 9851
    functionName: Catch::printSummaryRow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getSuffix
    - guardColour
    - getRow
    - empty
    - getColour
    linkageType: ''
    returnType: void
    signature: "void printSummaryRow( std::ostream& stream,\n                              ColourImpl&
      colour,\n                              StringRef label,\n                              std::vector<SummaryColumn>
      const& cols,\n                              std::size_t row )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9857,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9858,1
    - Dst: assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9863,1
    - Dst: testCases::allPassed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9863,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9864,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9867,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9869,1
    - Dst: assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9877,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9878,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9878,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9879,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9881,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9881,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9884,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9884,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9887,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9887,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9891,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9892,1
    - Dst: Catch::printSummaryRow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9895,1
    - Dst: Catch::printSummaryRow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ' stream'
    - ' streamColour'
    - ' totals'
    argTypes:
    - std::ostream
    - ColourImpl
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9897
      start: 9854
    functionDepth: 1
    functionLinenumber: 9854
    functionLinenumberEnd: 9897
    functionName: Catch::printTestRunTotals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pluralise
    - std::vector::push_back
    - guardColour
    - Catch::printSummaryRow
    - testCases::allPassed
    - SummaryColumn
    - assertions::total
    - testCases::total
    linkageType: ''
    returnType: void
    signature: "void printTestRunTotals( std::ostream& stream,\n                             ColourImpl&
      streamColour,\n                             Totals const& totals )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9588,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' out'
    - ' tests'
    argTypes:
    - std::ostream
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9599
      start: 9585
    functionDepth: 2
    functionLinenumber: 9585
    functionLinenumberEnd: 9599
    functionName: Catch::listTestNamesOnly
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getTestCaseInfo
    - Catch::startsWith
    linkageType: ''
    returnType: void
    signature: "void listTestNamesOnly(std::ostream& out,\n                               std::vector<TestCaseHandle>
      const& tests)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9588,1
    - Dst: Catch::startsWith
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' out'
    - ' tests'
    argTypes:
    - std::ostream
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9599
      start: 9585
    functionDepth: 2
    functionLinenumber: 9585
    functionLinenumberEnd: 9599
    functionName: Catch::listTestNamesOnly
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getTestCaseInfo
    - Catch::startsWith
    linkageType: ''
    returnType: void
    signature: "void listTestNamesOnly(std::ostream& out,\n                               std::vector<TestCaseHandle>
      const& tests)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9617,1
    - Dst: sprintf_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9618,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9620,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9621,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duration
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9624
      start: 9606
    functionDepth: 0
    functionLinenumber: 9606
    functionLinenumberEnd: 9624
    functionName: Catch::getFormattedDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - sprintf_s
    - std::string
    - std::snprintf
    - static_cast<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string getFormattedDuration( double duration )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9627,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9630,1
    - Dst: minDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' config'
    - duration
    argTypes:
    - IConfig
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9635
      start: 9626
    functionDepth: 0
    functionLinenumber: 9626
    functionLinenumberEnd: 9635
    functionName: Catch::shouldShowDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - showDurations
    - minDuration
    linkageType: ''
    returnType: bool
    signature: bool shouldShowDuration( IConfig const& config, double duration )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9639,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9641,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9645,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9650,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' filters'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9657
      start: 9637
    functionDepth: 1
    functionLinenumber: 9637
    functionLinenumberEnd: 9657
    functionName: Catch::serializeFilters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string::append
    - std::string::push_back
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string serializeFilters( std::vector<std::string> const& filters
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' out'
    - value
    argTypes:
    - std::ostream
    - lineOfChars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9664
      start: 9659
    functionDepth: 0
    functionLinenumber: 9659
    functionLinenumberEnd: 9664
    functionName: '& operator<<( std::ostream& out, lineOfChars value )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - put
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<( std::ostream& out, lineOfChars value )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9672,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9672,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9673,1
    - Dst: name::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9676,1
    - Dst: name::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9676,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9672,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9682,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9687,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' out'
    - ' descriptions'
    - verbosity
    argTypes:
    - std::ostream
    - std::vector<ReporterDescription>
    - Verbosity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9698
      start: 9666
    functionDepth: 1
    functionLinenumber: 9666
    functionLinenumberEnd: 9698
    functionName: Catch::defaultListReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::max_element
    - begin
    - end
    - Catch::TextFlow::Column::Column
    - name::size
    - size
    linkageType: ''
    returnType: void
    signature: "void defaultListReporters( std::ostream& out,\n                          std::vector<ReporterDescription>
      const& descriptions,\n                          Verbosity verbosity )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9704,1
    - Dst: std::max_element
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9709,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9709,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9710,1
    - Dst: name::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9713,1
    - Dst: name::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9713,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9709,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9718,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9718,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' out'
    - ' descriptions'
    argTypes:
    - std::ostream
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9730
      start: 9700
    functionDepth: 1
    functionLinenumber: 9700
    functionLinenumberEnd: 9730
    functionName: Catch::defaultListListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::max_element
    - begin
    - empty
    - end
    - Catch::TextFlow::Column::Column
    - name::size
    - static_cast<std::string>
    - size
    linkageType: ''
    returnType: void
    signature: "void defaultListListeners( std::ostream& out,\n                               std::vector<ListenerDescription>
      const& descriptions )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::setw
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9743,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9744,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9745,1
    - Dst: all
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9745,1
    - Dst: auto::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9747,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9751,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' out'
    - ' tags'
    - isFiltered
    argTypes:
    - std::ostream
    - std::vector<TagInfo>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9752
      start: 9732
    functionDepth: 1
    functionLinenumber: 9732
    functionLinenumberEnd: 9752
    functionName: Catch::defaultListTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pluralise
    - auto::size
    - Catch::TextFlow::Column::Column
    - std::setw
    - ReusableStringStream::str
    - all
    - size
    linkageType: ''
    returnType: void
    signature: "void defaultListTags( std::ostream& out,\n                          std::vector<TagInfo>
      const& tags,\n                          bool isFiltered )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Catch::listTestNamesOnly
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9759,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9770,1
    - Dst: isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9771,1
    - Dst: ColourImpl*::guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9774,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9776,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9778,1
    - Dst: Catch::Detail::stringify
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9778,1
    - Dst: tags::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9780,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9782,1
    - Dst: tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9782,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9787,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9787,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9789,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9789,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - ' out'
    - streamColour
    - ' tests'
    - isFiltered
    - verbosity
    argTypes:
    - std::ostream
    - ColourImpl*
    - std::vector<TestCaseHandle>
    - bool
    - Verbosity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9792
      start: 9754
    functionDepth: 3
    functionLinenumber: 9754
    functionLinenumberEnd: 9792
    functionName: Catch::defaultListTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pluralise
    - getTestCaseInfo
    - tags::empty
    - Catch::listTestNamesOnly
    - Catch::Detail::stringify
    - isHidden
    - ColourImpl*::guardColour
    - Catch::TextFlow::Column::Column
    - tagsAsString
    - size
    linkageType: ''
    returnType: void
    signature: void defaultListTests(std::ostream& out, ColourImpl* streamColour,
      std::vector<TestCaseHandle> const& tests, bool isFiltered, Verbosity verbosity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - suffix
    - colour
    argTypes:
    - std::string
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9798
      start: 9797
    functionDepth: 1
    functionLinenumber: 9797
    functionLinenumberEnd: 9798
    functionName: Catch::SummaryColumn::SummaryColumn
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SummaryColumn( std::string suffix, Colour::Code colour )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9801,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9802,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9802,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9805,1
    - Dst: std::string::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9808,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9808,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9811,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - count
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9813
      start: 9800
    functionDepth: 1
    functionLinenumber: 9800
    functionLinenumberEnd: 9813
    functionName: '&& addRow( std::uint64_t count ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - push_back
    - std::move
    - insert
    - std::max
    - std::string::insert
    - std::string::size
    linkageType: ''
    returnType: SummaryColumn
    signature: SummaryColumn && addRow( std::uint64_t count ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9815
      start: 9815
    functionDepth: 0
    functionLinenumber: 9815
    functionLinenumberEnd: 9815
    functionName: '& getSuffix() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & getSuffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9816
      start: 9816
    functionDepth: 0
    functionLinenumber: 9816
    functionLinenumberEnd: 9816
    functionName: Catch::SummaryColumn::getColour
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Colour::Code
    signature: Colour::Code getColour() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9819
      start: 9817
    functionDepth: 0
    functionLinenumber: 9817
    functionLinenumberEnd: 9819
    functionName: '& getRow( std::size_t index ) const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & getRow( std::size_t index ) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getRow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9834,1
    - Dst: getSuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9835,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9836,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9841,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9845,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9846,1
    - Dst: getColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ' stream'
    - ' colour'
    - label
    - ' cols'
    - row
    argTypes:
    - std::ostream
    - ColourImpl
    - StringRef
    - std::vector<SummaryColumn>
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9851
      start: 9828
    functionDepth: 0
    functionLinenumber: 9828
    functionLinenumberEnd: 9851
    functionName: Catch::printSummaryRow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getSuffix
    - guardColour
    - getRow
    - empty
    - getColour
    linkageType: ''
    returnType: void
    signature: "void printSummaryRow( std::ostream& stream,\n                              ColourImpl&
      colour,\n                              StringRef label,\n                              std::vector<SummaryColumn>
      const& cols,\n                              std::size_t row )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - suffix
    - colour
    argTypes:
    - std::string
    - Colour::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9798
      start: 9797
    functionDepth: 1
    functionLinenumber: 9797
    functionLinenumberEnd: 9798
    functionName: Catch::SummaryColumn::SummaryColumn
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void SummaryColumn( std::string suffix, Colour::Code colour )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9801,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9802,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9802,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9805,1
    - Dst: std::string::insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9808,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9808,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9811,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - count
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9813
      start: 9800
    functionDepth: 1
    functionLinenumber: 9800
    functionLinenumberEnd: 9813
    functionName: '&& addRow( std::uint64_t count ) &&'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - push_back
    - std::move
    - insert
    - std::max
    - std::string::insert
    - std::string::size
    linkageType: ''
    returnType: SummaryColumn
    signature: SummaryColumn && addRow( std::uint64_t count ) &&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9815
      start: 9815
    functionDepth: 0
    functionLinenumber: 9815
    functionLinenumberEnd: 9815
    functionName: '& getSuffix() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & getSuffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9816
      start: 9816
    functionDepth: 0
    functionLinenumber: 9816
    functionLinenumberEnd: 9816
    functionName: Catch::SummaryColumn::getColour
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Colour::Code
    signature: Colour::Code getColour() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9819
      start: 9817
    functionDepth: 0
    functionLinenumber: 9817
    functionLinenumberEnd: 9819
    functionName: '& getRow( std::size_t index ) const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & getRow( std::size_t index ) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getRow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9834,1
    - Dst: getSuffix
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9835,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9836,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9841,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9845,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9846,1
    - Dst: getColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ' stream'
    - ' colour'
    - label
    - ' cols'
    - row
    argTypes:
    - std::ostream
    - ColourImpl
    - StringRef
    - std::vector<SummaryColumn>
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9851
      start: 9828
    functionDepth: 0
    functionLinenumber: 9828
    functionLinenumberEnd: 9851
    functionName: Catch::printSummaryRow
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getSuffix
    - guardColour
    - getRow
    - empty
    - getColour
    linkageType: ''
    returnType: void
    signature: "void printSummaryRow( std::ostream& stream,\n                              ColourImpl&
      colour,\n                              StringRef label,\n                              std::vector<SummaryColumn>
      const& cols,\n                              std::size_t row )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9857,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9858,1
    - Dst: assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9863,1
    - Dst: testCases::allPassed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9863,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9864,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9867,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9869,1
    - Dst: assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9877,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9878,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9878,1
    - Dst: testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9879,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9881,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9881,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9884,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9884,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9887,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9887,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9891,1
    - Dst: SummaryColumn
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9892,1
    - Dst: Catch::printSummaryRow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9895,1
    - Dst: Catch::printSummaryRow
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ' stream'
    - ' streamColour'
    - ' totals'
    argTypes:
    - std::ostream
    - ColourImpl
    - Totals
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9897
      start: 9854
    functionDepth: 1
    functionLinenumber: 9854
    functionLinenumberEnd: 9897
    functionName: Catch::printTestRunTotals
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pluralise
    - std::vector::push_back
    - guardColour
    - Catch::printSummaryRow
    - testCases::allPassed
    - SummaryColumn
    - assertions::total
    - testCases::total
    linkageType: ''
    returnType: void
    signature: "void printTestRunTotals( std::ostream& stream,\n                             ColourImpl&
      streamColour,\n                             Totals const& totals )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9909,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9910,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' writer'
    - ' sourceInfo'
    argTypes:
    - JsonObjectWriter
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9913
      start: 9906
    functionDepth: 2
    functionLinenumber: 9906
    functionLinenumberEnd: 9913
    functionName: Catch::writeSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::write
    - auto::write
    linkageType: ''
    returnType: void
    signature: "void writeSourceInfo( JsonObjectWriter& writer,\n                              SourceLineInfo
      const& sourceInfo )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - writer
    - ' tags'
    argTypes:
    - JsonArrayWriter
    - std::vector<Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9919
      start: 9915
    functionDepth: 2
    functionLinenumber: 9915
    functionLinenumberEnd: 9919
    functionName: Catch::writeTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - JsonArrayWriter::write
    linkageType: ''
    returnType: void
    signature: void writeTags( JsonArrayWriter writer, std::vector<Tag> const& tags
      )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9923,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9923,1
    - Dst: okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9924,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9924,1
    - Dst: expectedToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9925,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9926,1
    - Dst: throws
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9928,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - writer
    - ' info'
    argTypes:
    - JsonArrayWriter
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9929
      start: 9921
    functionDepth: 2
    functionLinenumber: 9921
    functionLinenumberEnd: 9929
    functionName: Catch::writeProperties
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - throws
    - expectedToFail
    - isHidden
    - JsonArrayWriter::write
    - okToFail
    linkageType: ''
    returnType: void
    signature: "void writeProperties( JsonArrayWriter writer,\n                              TestCaseInfo
      const& info )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9909,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9910,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' writer'
    - ' sourceInfo'
    argTypes:
    - JsonObjectWriter
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9913
      start: 9906
    functionDepth: 2
    functionLinenumber: 9906
    functionLinenumberEnd: 9913
    functionName: Catch::writeSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::write
    - auto::write
    linkageType: ''
    returnType: void
    signature: "void writeSourceInfo( JsonObjectWriter& writer,\n                              SourceLineInfo
      const& sourceInfo )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - writer
    - ' tags'
    argTypes:
    - JsonArrayWriter
    - std::vector<Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9919
      start: 9915
    functionDepth: 2
    functionLinenumber: 9915
    functionLinenumberEnd: 9919
    functionName: Catch::writeTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - JsonArrayWriter::write
    linkageType: ''
    returnType: void
    signature: void writeTags( JsonArrayWriter writer, std::vector<Tag> const& tags
      )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9923,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9923,1
    - Dst: okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9924,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9924,1
    - Dst: expectedToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9925,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9926,1
    - Dst: throws
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9928,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - writer
    - ' info'
    argTypes:
    - JsonArrayWriter
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9929
      start: 9921
    functionDepth: 2
    functionLinenumber: 9921
    functionLinenumberEnd: 9929
    functionName: Catch::writeProperties
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - throws
    - expectedToFail
    - isHidden
    - JsonArrayWriter::write
    - okToFail
    linkageType: ''
    returnType: void
    signature: "void writeProperties( JsonArrayWriter writer,\n                              TestCaseInfo
      const& info )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9934,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9942,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9943,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9944,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9946,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9949,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9950,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9950,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9951,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9951,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9952,1
    - Dst: libraryVersion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9953,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9954,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9955,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9959
      start: 9933
    functionDepth: 2
    functionLinenumber: 9933
    functionLinenumberEnd: 9959
    functionName: Catch::JsonReporter::JsonReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - libraryVersion
    - name
    - rngSeed
    - write
    - emplace
    - auto::write
    - CATCH_MOVE
    - top
    - testSpec
    linkageType: ''
    returnType: void
    signature: void JsonReporter::JsonReporter( ReporterConfig&& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: endListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9962,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9964,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9964,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9965,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9965,1
    - Dst: endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9966,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9968,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_writers.size() == 1 && "Only the top level object should be open"
        )
      pos:
        line_end: 9963
        line_start: 9963
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_writers.top() == Writer::Object )
      pos:
        line_end: 9964
        line_start: 9964
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_writers.empty() )
      pos:
        line_end: 9967
        line_start: 9967
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9969
      start: 9961
    functionDepth: 1
    functionLinenumber: 9961
    functionLinenumberEnd: 9969
    functionName: JsonReporter::~JsonReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - endObject
    - empty
    - endListing
    - top
    - size
    linkageType: ''
    returnType: void
    signature: void JsonReporter::~JsonReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9972,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9972,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9973,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9975
      start: 9971
    functionDepth: 0
    functionLinenumber: 9971
    functionLinenumberEnd: 9975
    functionName: '& JsonReporter::startArray()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - emplace
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & JsonReporter::startArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9977,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9978,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9979,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9981
      start: 9976
    functionDepth: 0
    functionLinenumber: 9976
    functionLinenumberEnd: 9981
    functionName: '& JsonReporter::startArray( StringRef key )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - emplace
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & JsonReporter::startArray( StringRef key )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9984,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9984,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9985,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9987
      start: 9983
    functionDepth: 0
    functionLinenumber: 9983
    functionLinenumberEnd: 9987
    functionName: '& JsonReporter::startObject()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - emplace
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter & JsonReporter::startObject()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9989,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9990,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9991,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9993
      start: 9988
    functionDepth: 0
    functionLinenumber: 9988
    functionLinenumberEnd: 9993
    functionName: '& JsonReporter::startObject( StringRef key )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - emplace
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter & JsonReporter::startObject( StringRef key )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9996,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9996,1
    - Dst: pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9997,1
    - Dst: pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( isInside( Writer::Object ) )
      pos:
        line_end: 9995
        line_start: 9995
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9999
      start: 9995
    functionDepth: 1
    functionLinenumber: 9995
    functionLinenumberEnd: 9999
    functionName: Catch::JsonReporter::endObject
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pop
    - assert
    - Catch::JsonReporter::isInside
    linkageType: ''
    returnType: void
    signature: void JsonReporter::endObject()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10001,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10001,1
    - Dst: pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10002,1
    - Dst: pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( isInside( Writer::Array ) )
      pos:
        line_end: 10000
        line_start: 10000
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10004
      start: 10000
    functionDepth: 1
    functionLinenumber: 10000
    functionLinenumberEnd: 10004
    functionName: Catch::JsonReporter::endArray
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - pop
    - assert
    - Catch::JsonReporter::isInside
    linkageType: ''
    returnType: void
    signature: void JsonReporter::endArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10007,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - Writer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10008
      start: 10006
    functionDepth: 0
    functionLinenumber: 10006
    functionLinenumberEnd: 10008
    functionName: Catch::JsonReporter::isInside
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - top
    - empty
    linkageType: ''
    returnType: bool
    signature: bool JsonReporter::isInside( Writer writer )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10013
      start: 10010
    functionDepth: 0
    functionLinenumber: 10010
    functionLinenumberEnd: 10013
    functionName: Catch::JsonReporter::startListing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - startObject
    linkageType: ''
    returnType: void
    signature: void JsonReporter::startListing()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10017
      start: 10014
    functionDepth: 2
    functionLinenumber: 10014
    functionLinenumberEnd: 10017
    functionName: Catch::JsonReporter::endListing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endObject
    linkageType: ''
    returnType: void
    signature: void JsonReporter::endListing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10021
      start: 10019
    functionDepth: 0
    functionLinenumber: 10019
    functionLinenumberEnd: 10021
    functionName: Catch::JsonReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string JsonReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10024,1
    - Dst: Catch::JsonReporter::endListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10025,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10027,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10027,1
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10028,1
    - Dst: startArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' runInfo'
    argTypes:
    - TestRunInfo
    assertStmts:
    - condition: ( isInside( Writer::Object ) )
      pos:
        line_end: 10026
        line_start: 10026
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10030
      start: 10023
    functionDepth: 3
    functionLinenumber: 10023
    functionLinenumberEnd: 10030
    functionName: Catch::JsonReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::JsonReporter::isInside
    - startObject
    - startArray
    - Catch::StreamingReporterBase::testRunStarting
    - Catch::JsonReporter::endListing
    linkageType: ''
    returnType: void
    signature: void JsonReporter::testRunStarting( TestRunInfo const& runInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10033,1
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10034,1
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10035,1
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' writer'
    - ' counts'
    argTypes:
    - JsonObjectWriter
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10037
      start: 10032
    functionDepth: 0
    functionLinenumber: 10032
    functionLinenumberEnd: 10037
    functionName: Catch::writeCounts
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::write
    linkageType: ''
    returnType: void
    signature: void writeCounts( JsonObjectWriter&& writer, Counts const& counts )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10040,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10040,1
    - Dst: Catch::JsonReporter::endArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10042,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10046,1
    - Dst: writeCounts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10047,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10047,1
    - Dst: writeCounts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10049,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10049,1
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' runStats'
    argTypes:
    - TestRunStats
    assertStmts:
    - condition: ( isInside( Writer::Array ) )
      pos:
        line_end: 10039
        line_start: 10039
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10055
      start: 10039
    functionDepth: 2
    functionLinenumber: 10039
    functionLinenumberEnd: 10055
    functionName: Catch::JsonReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endArray
    - assert
    - writeCounts
    - Catch::JsonReporter::endObject
    - Catch::JsonReporter::isInside
    - auto::write
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::testRunEnded(TestRunStats const& runStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10058,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10060,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10060,1
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10062,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10066,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10068,1
    - Dst: writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10069,1
    - Dst: writeTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10070,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10070,1
    - Dst: writeProperties
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10071,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10071,1
    - Dst: startArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10077,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' tcInfo'
    argTypes:
    - TestCaseInfo
    assertStmts:
    - condition: "( isInside( Writer::Array ) &&\n                \"We should be in
        the 'test-cases' array\" )"
      pos:
        line_end: 10060
        line_start: 10059
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10078
      start: 10057
    functionDepth: 2
    functionLinenumber: 10057
    functionLinenumberEnd: 10078
    functionName: Catch::JsonReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - writeSourceInfo
    - Catch::JsonReporter::isInside
    - startObject
    - auto::write
    - writeTags
    - Catch::StreamingReporterBase::testCaseStarting
    - startArray
    - writeProperties
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::testCaseStarting( TestCaseInfo const& tcInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10081,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10084,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10084,1
    - Dst: Catch::JsonReporter::endArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10085,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10089,1
    - Dst: writeCounts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10090,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10090,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10100,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10100,1
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' tcStats'
    argTypes:
    - TestCaseStats
    assertStmts:
    - condition: ( isInside( Writer::Array ) )
      pos:
        line_end: 10083
        line_start: 10083
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( isInside( Writer::Object ) )
      pos:
        line_end: 10099
        line_start: 10099
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10102
      start: 10080
    functionDepth: 2
    functionLinenumber: 10080
    functionLinenumberEnd: 10102
    functionName: Catch::JsonReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endArray
    - assert
    - Catch::StreamingReporterBase::testCaseEnded
    - writeCounts
    - Catch::JsonReporter::endObject
    - Catch::JsonReporter::isInside
    - auto::write
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::testCaseEnded( TestCaseStats const& tcStats )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10106,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10107,1
    - Dst: startArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10111
      start: 10104
    functionDepth: 0
    functionLinenumber: 10104
    functionLinenumberEnd: 10111
    functionName: Catch::JsonReporter::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - startArray
    - startObject
    linkageType: ''
    returnType: void
    signature: "void JsonReporter::testCasePartialStarting( TestCaseInfo const& /*tcInfo*/,\n
      \                                               uint64_t index )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::endArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10117,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10118,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10119,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10123,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10124,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10130,1
    - Dst: writeCounts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10131,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10131,1
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' tcStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10141
      start: 10113
    functionDepth: 2
    functionLinenumber: 10113
    functionLinenumberEnd: 10141
    functionName: Catch::JsonReporter::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endArray
    - stdErr::empty
    - stdOut::empty
    - writeCounts
    - Catch::JsonReporter::endObject
    - auto::write
    - top
    linkageType: ''
    returnType: void
    signature: "void JsonReporter::testCasePartialEnded( TestCaseStats const& tcStats,\n
      \                                            uint64_t /*index*/ )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10144,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10144,1
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10148,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10149,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10150,1
    - Dst: writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10151,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10151,1
    - Dst: startArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts:
    - condition: "( isInside( Writer::Array ) &&\n                \"Section should
        always start inside an object\" )"
      pos:
        line_end: 10144
        line_start: 10143
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10159
      start: 10143
    functionDepth: 2
    functionLinenumber: 10143
    functionLinenumberEnd: 10159
    functionName: Catch::JsonReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - writeSourceInfo
    - write
    - Catch::JsonReporter::isInside
    - startObject
    - startArray
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::sectionStarting( SectionInfo const& sectionInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::endArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10162,1
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10168
      start: 10160
    functionDepth: 2
    functionLinenumber: 10160
    functionLinenumberEnd: 10168
    functionName: Catch::JsonReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endArray
    - Catch::JsonReporter::endObject
    linkageType: ''
    returnType: void
    signature: void JsonReporter::sectionEnded( SectionStats const& /*sectionStats
      */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10170
      start: 10170
    functionDepth: 0
    functionLinenumber: 10170
    functionLinenumberEnd: 10170
    functionName: Catch::JsonReporter::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::assertionStarting( AssertionInfo const& /*assertionInfo*/
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10179,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10179,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10180,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10182,1
    - Dst: writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10183,1
    - Dst: assertionResult::getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10184,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10185,1
    - Dst: assertionResult::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts:
    - condition: ( isInside( Writer::Array ) )
      pos:
        line_end: 10178
        line_start: 10178
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10190
      start: 10171
    functionDepth: 2
    functionLinenumber: 10171
    functionLinenumberEnd: 10190
    functionName: Catch::JsonReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assertionResult::getSourceInfo
    - assert
    - writeSourceInfo
    - Catch::JsonReporter::isInside
    - auto::write
    - assertionResult::isOk
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::assertionEnded( AssertionStats const& assertionStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10193
      start: 10193
    functionDepth: 0
    functionLinenumber: 10193
    functionLinenumberEnd: 10193
    functionName: Catch::JsonReporter::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::benchmarkPreparing( StringRef name )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10194
      start: 10194
    functionDepth: 0
    functionLinenumber: 10194
    functionLinenumberEnd: 10194
    functionName: Catch::JsonReporter::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::benchmarkStarting( BenchmarkInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10195
      start: 10195
    functionDepth: 0
    functionLinenumber: 10195
    functionLinenumberEnd: 10195
    functionName: Catch::JsonReporter::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::benchmarkEnded( BenchmarkStats<> const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10196
      start: 10196
    functionDepth: 0
    functionLinenumber: 10196
    functionLinenumberEnd: 10196
    functionName: Catch::JsonReporter::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::benchmarkFailed( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::startListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10200,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10203,1
    - Dst: auto::writeObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10205,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10206,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ReporterDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10209
      start: 10198
    functionDepth: 2
    functionLinenumber: 10198
    functionLinenumberEnd: 10209
    functionName: Catch::JsonReporter::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - Catch::JsonReporter::startListing
    - auto::write
    - auto::writeObject
    linkageType: ''
    returnType: void
    signature: "void JsonReporter::listReporters(\n        std::vector<ReporterDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::startListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10212,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10215,1
    - Dst: auto::writeObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10218,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10219,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10222
      start: 10210
    functionDepth: 2
    functionLinenumber: 10210
    functionLinenumberEnd: 10222
    functionName: Catch::JsonReporter::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - Catch::JsonReporter::startListing
    - auto::write
    - auto::writeObject
    linkageType: ''
    returnType: void
    signature: "void JsonReporter::listListeners(\n        std::vector<ListenerDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::startListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10224,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10226,1
    - Dst: auto::writeObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10229,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10230,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10232,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10233,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10235,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10237,1
    - Dst: writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10242
      start: 10223
    functionDepth: 2
    functionLinenumber: 10223
    functionLinenumberEnd: 10242
    functionName: Catch::JsonReporter::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - writeSourceInfo
    - Catch::JsonReporter::startListing
    - auto::writeObject
    - auto::write
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::listTests( std::vector<TestCaseHandle> const& tests
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::startListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10244,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10246,1
    - Dst: auto::writeObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10248,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10251,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10253,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<TagInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10258
      start: 10243
    functionDepth: 2
    functionLinenumber: 10243
    functionLinenumberEnd: 10258
    functionName: Catch::JsonReporter::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - Catch::JsonReporter::startListing
    - auto::write
    - auto::writeObject
    linkageType: ''
    returnType: void
    signature: void JsonReporter::listTags( std::vector<TagInfo> const& tags )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9909,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9910,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' writer'
    - ' sourceInfo'
    argTypes:
    - JsonObjectWriter
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9913
      start: 9906
    functionDepth: 2
    functionLinenumber: 9906
    functionLinenumberEnd: 9913
    functionName: Catch::writeSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::write
    - auto::write
    linkageType: ''
    returnType: void
    signature: "void writeSourceInfo( JsonObjectWriter& writer,\n                              SourceLineInfo
      const& sourceInfo )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - writer
    - ' tags'
    argTypes:
    - JsonArrayWriter
    - std::vector<Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9919
      start: 9915
    functionDepth: 2
    functionLinenumber: 9915
    functionLinenumberEnd: 9919
    functionName: Catch::writeTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - JsonArrayWriter::write
    linkageType: ''
    returnType: void
    signature: void writeTags( JsonArrayWriter writer, std::vector<Tag> const& tags
      )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9923,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9923,1
    - Dst: okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9924,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9924,1
    - Dst: expectedToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9925,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9926,1
    - Dst: throws
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9928,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - writer
    - ' info'
    argTypes:
    - JsonArrayWriter
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9929
      start: 9921
    functionDepth: 2
    functionLinenumber: 9921
    functionLinenumberEnd: 9929
    functionName: Catch::writeProperties
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - throws
    - expectedToFail
    - isHidden
    - JsonArrayWriter::write
    - okToFail
    linkageType: ''
    returnType: void
    signature: "void writeProperties( JsonArrayWriter writer,\n                              TestCaseInfo
      const& info )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9909,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9910,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' writer'
    - ' sourceInfo'
    argTypes:
    - JsonObjectWriter
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9913
      start: 9906
    functionDepth: 2
    functionLinenumber: 9906
    functionLinenumberEnd: 9913
    functionName: Catch::writeSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::write
    - auto::write
    linkageType: ''
    returnType: void
    signature: "void writeSourceInfo( JsonObjectWriter& writer,\n                              SourceLineInfo
      const& sourceInfo )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - writer
    - ' tags'
    argTypes:
    - JsonArrayWriter
    - std::vector<Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9919
      start: 9915
    functionDepth: 2
    functionLinenumber: 9915
    functionLinenumberEnd: 9919
    functionName: Catch::writeTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - JsonArrayWriter::write
    linkageType: ''
    returnType: void
    signature: void writeTags( JsonArrayWriter writer, std::vector<Tag> const& tags
      )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isHidden
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9923,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9923,1
    - Dst: okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9924,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9924,1
    - Dst: expectedToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9925,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9926,1
    - Dst: throws
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9928,1
    - Dst: JsonArrayWriter::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - writer
    - ' info'
    argTypes:
    - JsonArrayWriter
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9929
      start: 9921
    functionDepth: 2
    functionLinenumber: 9921
    functionLinenumberEnd: 9929
    functionName: Catch::writeProperties
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - throws
    - expectedToFail
    - isHidden
    - JsonArrayWriter::write
    - okToFail
    linkageType: ''
    returnType: void
    signature: "void writeProperties( JsonArrayWriter writer,\n                              TestCaseInfo
      const& info )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9934,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9942,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9943,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9944,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9946,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9949,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9950,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9950,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9951,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9951,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9952,1
    - Dst: libraryVersion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9953,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9954,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9955,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9959
      start: 9933
    functionDepth: 2
    functionLinenumber: 9933
    functionLinenumberEnd: 9959
    functionName: Catch::JsonReporter::JsonReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - libraryVersion
    - name
    - rngSeed
    - write
    - emplace
    - auto::write
    - CATCH_MOVE
    - top
    - testSpec
    linkageType: ''
    returnType: void
    signature: void JsonReporter::JsonReporter( ReporterConfig&& config )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: endListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9962,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9964,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9964,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9965,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9965,1
    - Dst: endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9966,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9968,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( m_writers.size() == 1 && "Only the top level object should be open"
        )
      pos:
        line_end: 9963
        line_start: 9963
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_writers.top() == Writer::Object )
      pos:
        line_end: 9964
        line_start: 9964
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( m_writers.empty() )
      pos:
        line_end: 9967
        line_start: 9967
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9969
      start: 9961
    functionDepth: 1
    functionLinenumber: 9961
    functionLinenumberEnd: 9969
    functionName: JsonReporter::~JsonReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - endObject
    - empty
    - endListing
    - top
    - size
    linkageType: ''
    returnType: void
    signature: void JsonReporter::~JsonReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9972,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9972,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9973,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9975
      start: 9971
    functionDepth: 0
    functionLinenumber: 9971
    functionLinenumberEnd: 9975
    functionName: '& JsonReporter::startArray()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - emplace
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & JsonReporter::startArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9977,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9978,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9979,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9981
      start: 9976
    functionDepth: 0
    functionLinenumber: 9976
    functionLinenumberEnd: 9981
    functionName: '& JsonReporter::startArray( StringRef key )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - emplace
    linkageType: ''
    returnType: JsonArrayWriter
    signature: JsonArrayWriter & JsonReporter::startArray( StringRef key )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9984,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9984,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9985,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9987
      start: 9983
    functionDepth: 0
    functionLinenumber: 9983
    functionLinenumberEnd: 9987
    functionName: '& JsonReporter::startObject()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - emplace
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter & JsonReporter::startObject()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9989,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9990,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9991,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9993
      start: 9988
    functionDepth: 0
    functionLinenumber: 9988
    functionLinenumberEnd: 9993
    functionName: '& JsonReporter::startObject( StringRef key )'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - emplace
    linkageType: ''
    returnType: JsonObjectWriter
    signature: JsonObjectWriter & JsonReporter::startObject( StringRef key )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9996,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9996,1
    - Dst: pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9997,1
    - Dst: pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:9998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( isInside( Writer::Object ) )
      pos:
        line_end: 9995
        line_start: 9995
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 9999
      start: 9995
    functionDepth: 1
    functionLinenumber: 9995
    functionLinenumberEnd: 9999
    functionName: Catch::JsonReporter::endObject
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 5
    functionsReached:
    - pop
    - assert
    - Catch::JsonReporter::isInside
    linkageType: ''
    returnType: void
    signature: void JsonReporter::endObject()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10001,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10001,1
    - Dst: pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10002,1
    - Dst: pop
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( isInside( Writer::Array ) )
      pos:
        line_end: 10000
        line_start: 10000
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10004
      start: 10000
    functionDepth: 1
    functionLinenumber: 10000
    functionLinenumberEnd: 10004
    functionName: Catch::JsonReporter::endArray
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - pop
    - assert
    - Catch::JsonReporter::isInside
    linkageType: ''
    returnType: void
    signature: void JsonReporter::endArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10007,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - Writer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10008
      start: 10006
    functionDepth: 0
    functionLinenumber: 10006
    functionLinenumberEnd: 10008
    functionName: Catch::JsonReporter::isInside
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 10
    functionsReached:
    - top
    - empty
    linkageType: ''
    returnType: bool
    signature: bool JsonReporter::isInside( Writer writer )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10013
      start: 10010
    functionDepth: 0
    functionLinenumber: 10010
    functionLinenumberEnd: 10013
    functionName: Catch::JsonReporter::startListing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - startObject
    linkageType: ''
    returnType: void
    signature: void JsonReporter::startListing()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10017
      start: 10014
    functionDepth: 2
    functionLinenumber: 10014
    functionLinenumberEnd: 10017
    functionName: Catch::JsonReporter::endListing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::JsonReporter::endObject
    linkageType: ''
    returnType: void
    signature: void JsonReporter::endListing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10021
      start: 10019
    functionDepth: 0
    functionLinenumber: 10019
    functionLinenumberEnd: 10021
    functionName: Catch::JsonReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string JsonReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10024,1
    - Dst: Catch::JsonReporter::endListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10025,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10027,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10027,1
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10028,1
    - Dst: startArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' runInfo'
    argTypes:
    - TestRunInfo
    assertStmts:
    - condition: ( isInside( Writer::Object ) )
      pos:
        line_end: 10026
        line_start: 10026
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10030
      start: 10023
    functionDepth: 3
    functionLinenumber: 10023
    functionLinenumberEnd: 10030
    functionName: Catch::JsonReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - Catch::JsonReporter::isInside
    - startObject
    - startArray
    - Catch::StreamingReporterBase::testRunStarting
    - Catch::JsonReporter::endListing
    linkageType: ''
    returnType: void
    signature: void JsonReporter::testRunStarting( TestRunInfo const& runInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10033,1
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10034,1
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10035,1
    - Dst: Catch::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' writer'
    - ' counts'
    argTypes:
    - JsonObjectWriter
    - Counts
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10037
      start: 10032
    functionDepth: 0
    functionLinenumber: 10032
    functionLinenumberEnd: 10037
    functionName: Catch::writeCounts
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::write
    linkageType: ''
    returnType: void
    signature: void writeCounts( JsonObjectWriter&& writer, Counts const& counts )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10040,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10040,1
    - Dst: Catch::JsonReporter::endArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10042,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10046,1
    - Dst: writeCounts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10047,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10047,1
    - Dst: writeCounts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10049,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10049,1
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' runStats'
    argTypes:
    - TestRunStats
    assertStmts:
    - condition: ( isInside( Writer::Array ) )
      pos:
        line_end: 10039
        line_start: 10039
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10055
      start: 10039
    functionDepth: 2
    functionLinenumber: 10039
    functionLinenumberEnd: 10055
    functionName: Catch::JsonReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endArray
    - assert
    - writeCounts
    - Catch::JsonReporter::endObject
    - Catch::JsonReporter::isInside
    - auto::write
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::testRunEnded(TestRunStats const& runStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10058,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10060,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10060,1
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10062,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10066,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10068,1
    - Dst: writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10069,1
    - Dst: writeTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10070,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10070,1
    - Dst: writeProperties
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10071,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10071,1
    - Dst: startArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10077,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' tcInfo'
    argTypes:
    - TestCaseInfo
    assertStmts:
    - condition: "( isInside( Writer::Array ) &&\n                \"We should be in
        the 'test-cases' array\" )"
      pos:
        line_end: 10060
        line_start: 10059
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10078
      start: 10057
    functionDepth: 2
    functionLinenumber: 10057
    functionLinenumberEnd: 10078
    functionName: Catch::JsonReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - writeSourceInfo
    - Catch::JsonReporter::isInside
    - startObject
    - auto::write
    - writeTags
    - Catch::StreamingReporterBase::testCaseStarting
    - startArray
    - writeProperties
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::testCaseStarting( TestCaseInfo const& tcInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10081,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10084,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10084,1
    - Dst: Catch::JsonReporter::endArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10085,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10089,1
    - Dst: writeCounts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10090,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10090,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10100,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10100,1
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' tcStats'
    argTypes:
    - TestCaseStats
    assertStmts:
    - condition: ( isInside( Writer::Array ) )
      pos:
        line_end: 10083
        line_start: 10083
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    - condition: ( isInside( Writer::Object ) )
      pos:
        line_end: 10099
        line_start: 10099
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10102
      start: 10080
    functionDepth: 2
    functionLinenumber: 10080
    functionLinenumberEnd: 10102
    functionName: Catch::JsonReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endArray
    - assert
    - Catch::StreamingReporterBase::testCaseEnded
    - writeCounts
    - Catch::JsonReporter::endObject
    - Catch::JsonReporter::isInside
    - auto::write
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::testCaseEnded( TestCaseStats const& tcStats )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10106,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10107,1
    - Dst: startArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10111
      start: 10104
    functionDepth: 0
    functionLinenumber: 10104
    functionLinenumberEnd: 10111
    functionName: Catch::JsonReporter::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - startArray
    - startObject
    linkageType: ''
    returnType: void
    signature: "void JsonReporter::testCasePartialStarting( TestCaseInfo const& /*tcInfo*/,\n
      \                                               uint64_t index )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::endArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10117,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10118,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10119,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10123,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10124,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10130,1
    - Dst: writeCounts
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10131,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10131,1
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' tcStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10141
      start: 10113
    functionDepth: 2
    functionLinenumber: 10113
    functionLinenumberEnd: 10141
    functionName: Catch::JsonReporter::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endArray
    - stdErr::empty
    - stdOut::empty
    - writeCounts
    - Catch::JsonReporter::endObject
    - auto::write
    - top
    linkageType: ''
    returnType: void
    signature: "void JsonReporter::testCasePartialEnded( TestCaseStats const& tcStats,\n
      \                                            uint64_t /*index*/ )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10144,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10144,1
    - Dst: startObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10148,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10149,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10150,1
    - Dst: writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10151,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10151,1
    - Dst: startArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts:
    - condition: "( isInside( Writer::Array ) &&\n                \"Section should
        always start inside an object\" )"
      pos:
        line_end: 10144
        line_start: 10143
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10159
      start: 10143
    functionDepth: 2
    functionLinenumber: 10143
    functionLinenumberEnd: 10159
    functionName: Catch::JsonReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assert
    - writeSourceInfo
    - write
    - Catch::JsonReporter::isInside
    - startObject
    - startArray
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::sectionStarting( SectionInfo const& sectionInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::endArray
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10162,1
    - Dst: Catch::JsonReporter::endObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10168
      start: 10160
    functionDepth: 2
    functionLinenumber: 10160
    functionLinenumberEnd: 10168
    functionName: Catch::JsonReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonReporter::endArray
    - Catch::JsonReporter::endObject
    linkageType: ''
    returnType: void
    signature: void JsonReporter::sectionEnded( SectionStats const& /*sectionStats
      */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10170
      start: 10170
    functionDepth: 0
    functionLinenumber: 10170
    functionLinenumberEnd: 10170
    functionName: Catch::JsonReporter::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::assertionStarting( AssertionInfo const& /*assertionInfo*/
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10179,1
    - Dst: Catch::JsonReporter::isInside
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10179,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10180,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10182,1
    - Dst: writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10183,1
    - Dst: assertionResult::getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10184,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10185,1
    - Dst: assertionResult::isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts:
    - condition: ( isInside( Writer::Array ) )
      pos:
        line_end: 10178
        line_start: 10178
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10190
      start: 10171
    functionDepth: 2
    functionLinenumber: 10171
    functionLinenumberEnd: 10190
    functionName: Catch::JsonReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assertionResult::getSourceInfo
    - assert
    - writeSourceInfo
    - Catch::JsonReporter::isInside
    - auto::write
    - assertionResult::isOk
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::assertionEnded( AssertionStats const& assertionStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10193
      start: 10193
    functionDepth: 0
    functionLinenumber: 10193
    functionLinenumberEnd: 10193
    functionName: Catch::JsonReporter::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::benchmarkPreparing( StringRef name )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10194
      start: 10194
    functionDepth: 0
    functionLinenumber: 10194
    functionLinenumberEnd: 10194
    functionName: Catch::JsonReporter::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::benchmarkStarting( BenchmarkInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10195
      start: 10195
    functionDepth: 0
    functionLinenumber: 10195
    functionLinenumberEnd: 10195
    functionName: Catch::JsonReporter::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::benchmarkEnded( BenchmarkStats<> const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10196
      start: 10196
    functionDepth: 0
    functionLinenumber: 10196
    functionLinenumberEnd: 10196
    functionName: Catch::JsonReporter::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JsonReporter::benchmarkFailed( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::startListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10200,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10203,1
    - Dst: auto::writeObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10205,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10206,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ReporterDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10209
      start: 10198
    functionDepth: 2
    functionLinenumber: 10198
    functionLinenumberEnd: 10209
    functionName: Catch::JsonReporter::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - Catch::JsonReporter::startListing
    - auto::write
    - auto::writeObject
    linkageType: ''
    returnType: void
    signature: "void JsonReporter::listReporters(\n        std::vector<ReporterDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::startListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10212,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10215,1
    - Dst: auto::writeObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10218,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10219,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10222
      start: 10210
    functionDepth: 2
    functionLinenumber: 10210
    functionLinenumberEnd: 10222
    functionName: Catch::JsonReporter::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - Catch::JsonReporter::startListing
    - auto::write
    - auto::writeObject
    linkageType: ''
    returnType: void
    signature: "void JsonReporter::listListeners(\n        std::vector<ListenerDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::startListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10224,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10226,1
    - Dst: auto::writeObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10229,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10230,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10232,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10233,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10235,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10237,1
    - Dst: writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10242
      start: 10223
    functionDepth: 2
    functionLinenumber: 10223
    functionLinenumberEnd: 10242
    functionName: Catch::JsonReporter::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - writeSourceInfo
    - Catch::JsonReporter::startListing
    - auto::writeObject
    - auto::write
    - top
    linkageType: ''
    returnType: void
    signature: void JsonReporter::listTests( std::vector<TestCaseHandle> const& tests
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonReporter::startListing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10244,1
    - Dst: top
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10246,1
    - Dst: auto::writeObject
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10248,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10251,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10253,1
    - Dst: auto::write
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<TagInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10258
      start: 10243
    functionDepth: 2
    functionLinenumber: 10243
    functionLinenumberEnd: 10258
    functionName: Catch::JsonReporter::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - top
    - Catch::JsonReporter::startListing
    - auto::write
    - auto::writeObject
    linkageType: ''
    returnType: void
    signature: void JsonReporter::listTags( std::vector<TagInfo> const& tags )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::time
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10274,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10278,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10280,1
    - Dst: std::gmtime
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10282,1
    - Dst: gmtime_r
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10284,1
    - Dst: std::strftime
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10291,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10294
      start: 10272
    functionDepth: 0
    functionLinenumber: 10272
    functionLinenumberEnd: 10294
    functionName: Catch::getCurrentTimestamp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - gmtime_s
    - gmtime_r
    - std::string
    - std::time
    - std::gmtime
    - std::strftime
    linkageType: ''
    returnType: std::string
    signature: std::string getCurrentTimestamp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10297,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10297,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10298,1
    - Dst: original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10300,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10302,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10303,1
    - Dst: auto::original::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10304,1
    - Dst: auto::original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10304,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10308
      start: 10296
    functionDepth: 1
    functionLinenumber: 10296
    functionLinenumberEnd: 10308
    functionName: Catch::fileNameTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::original::size
    - begin
    - auto::original::substr
    - end
    - std::string
    - original::size
    - static_cast<std::string>
    - std::find_if
    linkageType: ''
    returnType: std::string
    signature: std::string fileNameTag(std::vector<Tag> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10316,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10318
      start: 10314
    functionDepth: 0
    functionLinenumber: 10314
    functionLinenumberEnd: 10318
    functionName: Catch::formatDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - std::setprecision
    linkageType: ''
    returnType: std::string
    signature: std::string formatDuration( double seconds )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10321,1
    - Dst: replace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10323,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10327
      start: 10320
    functionDepth: 0
    functionLinenumber: 10320
    functionLinenumberEnd: 10327
    functionName: Catch::normalizeNamespaceMarkers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - replace
    - find
    linkageType: ''
    returnType: void
    signature: void normalizeNamespaceMarkers(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::time
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10274,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10278,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10280,1
    - Dst: std::gmtime
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10282,1
    - Dst: gmtime_r
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10284,1
    - Dst: std::strftime
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10291,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10294
      start: 10272
    functionDepth: 0
    functionLinenumber: 10272
    functionLinenumberEnd: 10294
    functionName: Catch::getCurrentTimestamp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - gmtime_s
    - gmtime_r
    - std::string
    - std::time
    - std::gmtime
    - std::strftime
    linkageType: ''
    returnType: std::string
    signature: std::string getCurrentTimestamp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10297,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10297,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10298,1
    - Dst: original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10300,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10302,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10303,1
    - Dst: auto::original::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10304,1
    - Dst: auto::original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10304,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10308
      start: 10296
    functionDepth: 1
    functionLinenumber: 10296
    functionLinenumberEnd: 10308
    functionName: Catch::fileNameTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::original::size
    - begin
    - auto::original::substr
    - end
    - std::string
    - original::size
    - static_cast<std::string>
    - std::find_if
    linkageType: ''
    returnType: std::string
    signature: std::string fileNameTag(std::vector<Tag> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10316,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10318
      start: 10314
    functionDepth: 0
    functionLinenumber: 10314
    functionLinenumberEnd: 10318
    functionName: Catch::formatDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - std::setprecision
    linkageType: ''
    returnType: std::string
    signature: std::string formatDuration( double seconds )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10321,1
    - Dst: replace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10323,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10327
      start: 10320
    functionDepth: 0
    functionLinenumber: 10320
    functionLinenumberEnd: 10327
    functionName: Catch::normalizeNamespaceMarkers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - replace
    - find
    linkageType: ''
    returnType: void
    signature: void normalizeNamespaceMarkers(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10338
      start: 10331
    functionDepth: 1
    functionLinenumber: 10331
    functionLinenumberEnd: 10338
    functionName: Catch::JunitReporter::JunitReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void JunitReporter::JunitReporter( ReporterConfig&& _config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10342
      start: 10340
    functionDepth: 0
    functionLinenumber: 10340
    functionLinenumberEnd: 10342
    functionName: Catch::JunitReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string JunitReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::CumulativeReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10345,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10346,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10347,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10348,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' runInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10351
      start: 10344
    functionDepth: 1
    functionLinenumber: 10344
    functionLinenumberEnd: 10351
    functionName: Catch::JunitReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::CumulativeReporterBase::testRunStarting
    - start
    - clear
    - startElement
    linkageType: ''
    returnType: void
    signature: void JunitReporter::testRunStarting( TestRunInfo const& runInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' testCaseInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10355
      start: 10353
    functionDepth: 0
    functionLinenumber: 10353
    functionLinenumberEnd: 10355
    functionName: Catch::JunitReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - okToFail
    linkageType: ''
    returnType: void
    signature: void JunitReporter::testCaseStarting( TestCaseInfo const& testCaseInfo
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assertionResult::getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10358,1
    - Dst: Catch::CumulativeReporterBase::assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10361
      start: 10357
    functionDepth: 1
    functionLinenumber: 10357
    functionLinenumberEnd: 10361
    functionName: Catch::JunitReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assertionResult::getResultType
    - Catch::CumulativeReporterBase::assertionEnded
    linkageType: ''
    returnType: void
    signature: void JunitReporter::assertionEnded( AssertionStats const& assertionStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::CumulativeReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10367
      start: 10363
    functionDepth: 2
    functionLinenumber: 10363
    functionLinenumberEnd: 10367
    functionName: Catch::JunitReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::CumulativeReporterBase::testCaseEnded
    linkageType: ''
    returnType: void
    signature: void JunitReporter::testCaseEnded( TestCaseStats const& testCaseStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getElapsedSeconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10370,1
    - Dst: Catch::JunitReporter::writeRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10371,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10373
      start: 10369
    functionDepth: 1
    functionLinenumber: 10369
    functionLinenumberEnd: 10373
    functionName: Catch::JunitReporter::testRunEndedCumulative
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getElapsedSeconds
    - Catch::JunitReporter::writeRun
    - endElement
    linkageType: ''
    returnType: void
    signature: void JunitReporter::testRunEndedCumulative()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10376,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10379,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10380,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10381,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10382,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10383,1
    - Dst: totals::assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10383,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10384,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10385,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10386,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10388,1
    - Dst: formatDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10388,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10389,1
    - Dst: getCurrentTimestamp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10389,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10393,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10394,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10396,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10397,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10398,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10400,1
    - Dst: Catch::JunitReporter::writeTestCase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10406,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10408,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10408,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10409,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ' testRunNode'
    - suiteTime
    argTypes:
    - TestRunNode
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10410
      start: 10375
    functionDepth: 1
    functionLinenumber: 10375
    functionLinenumberEnd: 10410
    functionName: Catch::JunitReporter::writeRun
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - writeAttribute
    - rngSeed
    - Catch::JunitReporter::writeTestCase
    - totals::assertions::total
    - formatDuration
    - showDurations
    - trim
    - getCurrentTimestamp
    - scopedElement
    - testSpec
    linkageType: ''
    returnType: void
    signature: void JunitReporter::writeRun( TestRunNode const& testRunNode, double
      suiteTime )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10417,1
    - Dst: children::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10417,1
    - Dst: children::front
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10418,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10421,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10423,1
    - Dst: fileNameTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10424,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10425,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10430,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10431,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10431,1
    - Dst: normalizeNamespaceMarkers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10433,1
    - Dst: Catch::JunitReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10435,1
    - Dst: testInfo::okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' testCaseNode'
    argTypes:
    - TestCaseNode
    assertStmts:
    - condition: ( testCaseNode.children.size() == 1 )
      pos:
        line_end: 10416
        line_start: 10416
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10436
      start: 10412
    functionDepth: 1
    functionLinenumber: 10412
    functionLinenumberEnd: 10436
    functionName: Catch::JunitReporter::writeTestCase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - children::front
    - normalizeNamespaceMarkers
    - Catch::JunitReporter::writeSection
    - assert
    - name
    - std::string::empty
    - fileNameTag
    - children::size
    - testInfo::okToFail
    - static_cast<std::string>
    linkageType: ''
    returnType: void
    signature: void JunitReporter::writeTestCase( TestCaseNode const& testCaseNode
      )
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10442,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10443,1
    - Dst: hasAnyAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10446,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10447,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10448,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10449,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10450,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10451,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10452,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10455,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10456,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10458,1
    - Dst: formatDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10458,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10463,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10466,1
    - Dst: Catch::JunitReporter::writeAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10470,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10473,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10474,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10474,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10475,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10476,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10476,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10479,1
    - Dst: Catch::JunitReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10480,1
    - Dst: Catch::JunitReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10482,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ' className'
    - ' rootName'
    - ' sectionNode'
    - testOkToFail
    argTypes:
    - std::string
    - std::string
    - SectionNode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10483
      start: 10438
    functionDepth: 1
    functionLinenumber: 10438
    functionLinenumberEnd: 10483
    functionName: Catch::JunitReporter::writeSection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::JunitReporter::writeSection
    - stdErr::empty
    - hasAnyAssertions
    - writeAttribute
    - stdOut::empty
    - Catch::JunitReporter::writeAssertions
    - empty
    - formatDuration
    - trim
    - scopedElement
    linkageType: ''
    returnType: void
    signature: "void JunitReporter::writeSection( std::string const& className,\n
      \                                     std::string const& rootName,\n                                      SectionNode
      const& sectionNode,\n                                      bool testOkToFail)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10487,1
    - Dst: Catch::JunitReporter::writeAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10488,1
    - Dst: asAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' sectionNode'
    argTypes:
    - SectionNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10491
      start: 10485
    functionDepth: 1
    functionLinenumber: 10485
    functionLinenumberEnd: 10491
    functionName: Catch::JunitReporter::writeAssertions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - isAssertion
    - Catch::JunitReporter::writeAssertion
    - asAssertion
    linkageType: ''
    returnType: void
    signature: void JunitReporter::writeAssertions( SectionNode const& sectionNode
      )
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10495,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10496,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10498,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10522,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10524,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10524,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10525,1
    - Dst: getTestMacroName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10525,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10528,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10532,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10534,1
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10537,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10539,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10539,1
    - Dst: hasMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10543,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10544,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10549,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10550,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10550,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - ' stats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10552
      start: 10493
    functionDepth: 1
    functionLinenumber: 10493
    functionLinenumberEnd: 10552
    functionName: Catch::JunitReporter::writeAssertion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getResultType
    - getTestMacroName
    - writeAttribute
    - hasExpression
    - getExpressionInMacro
    - hasExpandedExpression
    - getSourceInfo
    - isOk
    - getExpandedExpression
    - Catch::TextFlow::Column::Column
    - getMessage
    - writeText
    - getExpression
    - scopedElement
    - ReusableStringStream::str
    - hasMessage
    linkageType: ''
    returnType: void
    signature: void JunitReporter::writeAssertion( AssertionStats const& stats )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::time
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10274,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10278,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10280,1
    - Dst: std::gmtime
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10282,1
    - Dst: gmtime_r
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10284,1
    - Dst: std::strftime
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10291,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10294
      start: 10272
    functionDepth: 0
    functionLinenumber: 10272
    functionLinenumberEnd: 10294
    functionName: Catch::getCurrentTimestamp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - gmtime_s
    - gmtime_r
    - std::string
    - std::time
    - std::gmtime
    - std::strftime
    linkageType: ''
    returnType: std::string
    signature: std::string getCurrentTimestamp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10297,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10297,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10298,1
    - Dst: original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10300,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10302,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10303,1
    - Dst: auto::original::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10304,1
    - Dst: auto::original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10304,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10308
      start: 10296
    functionDepth: 1
    functionLinenumber: 10296
    functionLinenumberEnd: 10308
    functionName: Catch::fileNameTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::original::size
    - begin
    - auto::original::substr
    - end
    - std::string
    - original::size
    - static_cast<std::string>
    - std::find_if
    linkageType: ''
    returnType: std::string
    signature: std::string fileNameTag(std::vector<Tag> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10316,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10318
      start: 10314
    functionDepth: 0
    functionLinenumber: 10314
    functionLinenumberEnd: 10318
    functionName: Catch::formatDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - std::setprecision
    linkageType: ''
    returnType: std::string
    signature: std::string formatDuration( double seconds )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10321,1
    - Dst: replace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10323,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10327
      start: 10320
    functionDepth: 0
    functionLinenumber: 10320
    functionLinenumberEnd: 10327
    functionName: Catch::normalizeNamespaceMarkers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - replace
    - find
    linkageType: ''
    returnType: void
    signature: void normalizeNamespaceMarkers(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::time
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10274,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10278,1
    - Dst: gmtime_s
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10280,1
    - Dst: std::gmtime
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10282,1
    - Dst: gmtime_r
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10284,1
    - Dst: std::strftime
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10291,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10294
      start: 10272
    functionDepth: 0
    functionLinenumber: 10272
    functionLinenumberEnd: 10294
    functionName: Catch::getCurrentTimestamp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - gmtime_s
    - gmtime_r
    - std::string
    - std::time
    - std::gmtime
    - std::strftime
    linkageType: ''
    returnType: std::string
    signature: std::string getCurrentTimestamp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10297,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10297,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10298,1
    - Dst: original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10300,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10302,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10303,1
    - Dst: auto::original::substr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10304,1
    - Dst: auto::original::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10304,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10308
      start: 10296
    functionDepth: 1
    functionLinenumber: 10296
    functionLinenumberEnd: 10308
    functionName: Catch::fileNameTag
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - auto::original::size
    - begin
    - auto::original::substr
    - end
    - std::string
    - original::size
    - static_cast<std::string>
    - std::find_if
    linkageType: ''
    returnType: std::string
    signature: std::string fileNameTag(std::vector<Tag> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10316,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10318
      start: 10314
    functionDepth: 0
    functionLinenumber: 10314
    functionLinenumberEnd: 10318
    functionName: Catch::formatDuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - ReusableStringStream::str
    - std::setprecision
    linkageType: ''
    returnType: std::string
    signature: std::string formatDuration( double seconds )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10321,1
    - Dst: replace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10323,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10327
      start: 10320
    functionDepth: 0
    functionLinenumber: 10320
    functionLinenumberEnd: 10327
    functionName: Catch::normalizeNamespaceMarkers
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - replace
    - find
    linkageType: ''
    returnType: void
    signature: void normalizeNamespaceMarkers(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10338
      start: 10331
    functionDepth: 1
    functionLinenumber: 10331
    functionLinenumberEnd: 10338
    functionName: Catch::JunitReporter::JunitReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void JunitReporter::JunitReporter( ReporterConfig&& _config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10342
      start: 10340
    functionDepth: 0
    functionLinenumber: 10340
    functionLinenumberEnd: 10342
    functionName: Catch::JunitReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string JunitReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::CumulativeReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10345,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10346,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10347,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10348,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' runInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10351
      start: 10344
    functionDepth: 1
    functionLinenumber: 10344
    functionLinenumberEnd: 10351
    functionName: Catch::JunitReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::CumulativeReporterBase::testRunStarting
    - start
    - clear
    - startElement
    linkageType: ''
    returnType: void
    signature: void JunitReporter::testRunStarting( TestRunInfo const& runInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' testCaseInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10355
      start: 10353
    functionDepth: 0
    functionLinenumber: 10353
    functionLinenumberEnd: 10355
    functionName: Catch::JunitReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - okToFail
    linkageType: ''
    returnType: void
    signature: void JunitReporter::testCaseStarting( TestCaseInfo const& testCaseInfo
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assertionResult::getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10358,1
    - Dst: Catch::CumulativeReporterBase::assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10361
      start: 10357
    functionDepth: 1
    functionLinenumber: 10357
    functionLinenumberEnd: 10361
    functionName: Catch::JunitReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - assertionResult::getResultType
    - Catch::CumulativeReporterBase::assertionEnded
    linkageType: ''
    returnType: void
    signature: void JunitReporter::assertionEnded( AssertionStats const& assertionStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::CumulativeReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10367
      start: 10363
    functionDepth: 2
    functionLinenumber: 10363
    functionLinenumberEnd: 10367
    functionName: Catch::JunitReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::CumulativeReporterBase::testCaseEnded
    linkageType: ''
    returnType: void
    signature: void JunitReporter::testCaseEnded( TestCaseStats const& testCaseStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getElapsedSeconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10370,1
    - Dst: Catch::JunitReporter::writeRun
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10371,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10373
      start: 10369
    functionDepth: 2
    functionLinenumber: 10369
    functionLinenumberEnd: 10373
    functionName: Catch::JunitReporter::testRunEndedCumulative
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getElapsedSeconds
    - Catch::JunitReporter::writeRun
    - endElement
    linkageType: ''
    returnType: void
    signature: void JunitReporter::testRunEndedCumulative()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10376,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10379,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10380,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10381,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10382,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10383,1
    - Dst: totals::assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10383,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10384,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10385,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10386,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10388,1
    - Dst: formatDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10388,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10389,1
    - Dst: getCurrentTimestamp
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10389,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10393,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10394,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10396,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10397,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10398,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10400,1
    - Dst: Catch::JunitReporter::writeTestCase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10406,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10408,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10408,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10409,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ' testRunNode'
    - suiteTime
    argTypes:
    - TestRunNode
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10410
      start: 10375
    functionDepth: 2
    functionLinenumber: 10375
    functionLinenumberEnd: 10410
    functionName: Catch::JunitReporter::writeRun
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - writeAttribute
    - rngSeed
    - Catch::JunitReporter::writeTestCase
    - totals::assertions::total
    - formatDuration
    - showDurations
    - trim
    - getCurrentTimestamp
    - scopedElement
    - testSpec
    linkageType: ''
    returnType: void
    signature: void JunitReporter::writeRun( TestRunNode const& testRunNode, double
      suiteTime )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10417,1
    - Dst: children::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10417,1
    - Dst: children::front
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10418,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10421,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10423,1
    - Dst: fileNameTag
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10424,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10425,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10430,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10431,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10431,1
    - Dst: normalizeNamespaceMarkers
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10433,1
    - Dst: Catch::JunitReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10435,1
    - Dst: testInfo::okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' testCaseNode'
    argTypes:
    - TestCaseNode
    assertStmts:
    - condition: ( testCaseNode.children.size() == 1 )
      pos:
        line_end: 10416
        line_start: 10416
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10436
      start: 10412
    functionDepth: 2
    functionLinenumber: 10412
    functionLinenumberEnd: 10436
    functionName: Catch::JunitReporter::writeTestCase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - children::front
    - normalizeNamespaceMarkers
    - Catch::JunitReporter::writeSection
    - assert
    - name
    - std::string::empty
    - fileNameTag
    - children::size
    - testInfo::okToFail
    - static_cast<std::string>
    linkageType: ''
    returnType: void
    signature: void JunitReporter::writeTestCase( TestCaseNode const& testCaseNode
      )
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10442,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10443,1
    - Dst: hasAnyAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10446,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10447,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10448,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10449,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10450,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10451,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10452,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10455,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10456,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10458,1
    - Dst: formatDuration
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10458,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10463,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10466,1
    - Dst: Catch::JunitReporter::writeAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10470,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10473,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10474,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10474,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10475,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10476,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10476,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10479,1
    - Dst: Catch::JunitReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10480,1
    - Dst: Catch::JunitReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10482,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ' className'
    - ' rootName'
    - ' sectionNode'
    - testOkToFail
    argTypes:
    - std::string
    - std::string
    - SectionNode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10483
      start: 10438
    functionDepth: 2
    functionLinenumber: 10438
    functionLinenumberEnd: 10483
    functionName: Catch::JunitReporter::writeSection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - Catch::JunitReporter::writeSection
    - stdErr::empty
    - hasAnyAssertions
    - writeAttribute
    - stdOut::empty
    - Catch::JunitReporter::writeAssertions
    - empty
    - formatDuration
    - trim
    - scopedElement
    linkageType: ''
    returnType: void
    signature: "void JunitReporter::writeSection( std::string const& className,\n
      \                                     std::string const& rootName,\n                                      SectionNode
      const& sectionNode,\n                                      bool testOkToFail)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10487,1
    - Dst: Catch::JunitReporter::writeAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10488,1
    - Dst: asAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' sectionNode'
    argTypes:
    - SectionNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10491
      start: 10485
    functionDepth: 2
    functionLinenumber: 10485
    functionLinenumberEnd: 10491
    functionName: Catch::JunitReporter::writeAssertions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - isAssertion
    - Catch::JunitReporter::writeAssertion
    - asAssertion
    linkageType: ''
    returnType: void
    signature: void JunitReporter::writeAssertions( SectionNode const& sectionNode
      )
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10495,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10496,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10498,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10522,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10524,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10524,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10525,1
    - Dst: getTestMacroName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10525,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10528,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10532,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10534,1
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10537,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10539,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10539,1
    - Dst: hasMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10543,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10544,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10549,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10550,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10550,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - ' stats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10552
      start: 10493
    functionDepth: 1
    functionLinenumber: 10493
    functionLinenumberEnd: 10552
    functionName: Catch::JunitReporter::writeAssertion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - getResultType
    - getTestMacroName
    - writeAttribute
    - hasExpression
    - getExpressionInMacro
    - hasExpandedExpression
    - getSourceInfo
    - isOk
    - getExpandedExpression
    - Catch::TextFlow::Column::Column
    - getMessage
    - writeText
    - getExpression
    - scopedElement
    - ReusableStringStream::str
    - hasMessage
    linkageType: ''
    returnType: void
    signature: void JunitReporter::writeAssertion( AssertionStats const& stats )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10564,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reporterish'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10567
      start: 10562
    functionDepth: 0
    functionLinenumber: 10562
    functionLinenumberEnd: 10567
    functionName: Catch::MultiReporter::updatePreferences
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getPreferences
    linkageType: ''
    returnType: void
    signature: void MultiReporter::updatePreferences(IEventListener const& reporterish)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::updatePreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10570,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10571,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10571,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' listener'
    argTypes:
    - IEventListenerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10573
      start: 10569
    functionDepth: 1
    functionLinenumber: 10569
    functionLinenumberEnd: 10573
    functionName: Catch::MultiReporter::addListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::MultiReporter::updatePreferences
    - insert
    - CATCH_MOVE
    - begin
    linkageType: ''
    returnType: void
    signature: void MultiReporter::addListener( IEventListenerPtr&& listener )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::updatePreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10576,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10583,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10587,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListenerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10588
      start: 10575
    functionDepth: 1
    functionLinenumber: 10575
    functionLinenumberEnd: 10588
    functionName: Catch::MultiReporter::addReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::MultiReporter::updatePreferences
    - getPreferences
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void MultiReporter::addReporter( IEventListenerPtr&& reporter )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::noMatchingTestCases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - unmatchedSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10594
      start: 10590
    functionDepth: 1
    functionLinenumber: 10590
    functionLinenumberEnd: 10594
    functionName: Catch::MultiReporter::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::noMatchingTestCases
    linkageType: ''
    returnType: void
    signature: void MultiReporter::noMatchingTestCases( StringRef unmatchedSpec )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::fatalErrorEncountered
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10600
      start: 10596
    functionDepth: 1
    functionLinenumber: 10596
    functionLinenumberEnd: 10600
    functionName: Catch::MultiReporter::fatalErrorEncountered
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::fatalErrorEncountered
    linkageType: ''
    returnType: void
    signature: void MultiReporter::fatalErrorEncountered( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::reportInvalidTestSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10606
      start: 10602
    functionDepth: 1
    functionLinenumber: 10602
    functionLinenumberEnd: 10606
    functionName: Catch::MultiReporter::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::reportInvalidTestSpec
    linkageType: ''
    returnType: void
    signature: void MultiReporter::reportInvalidTestSpec( StringRef arg )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::benchmarkPreparing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10612
      start: 10608
    functionDepth: 1
    functionLinenumber: 10608
    functionLinenumberEnd: 10612
    functionName: Catch::MultiReporter::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::benchmarkPreparing
    linkageType: ''
    returnType: void
    signature: void MultiReporter::benchmarkPreparing( StringRef name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::benchmarkStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' benchmarkInfo'
    argTypes:
    - BenchmarkInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10617
      start: 10613
    functionDepth: 1
    functionLinenumber: 10613
    functionLinenumberEnd: 10617
    functionName: Catch::MultiReporter::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::benchmarkStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::benchmarkStarting( BenchmarkInfo const& benchmarkInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::benchmarkEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' benchmarkStats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10622
      start: 10618
    functionDepth: 1
    functionLinenumber: 10618
    functionLinenumberEnd: 10622
    functionName: Catch::MultiReporter::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::benchmarkEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::benchmarkEnded( BenchmarkStats<> const& benchmarkStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::benchmarkFailed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10628
      start: 10624
    functionDepth: 1
    functionLinenumber: 10624
    functionLinenumberEnd: 10628
    functionName: Catch::MultiReporter::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::benchmarkFailed
    linkageType: ''
    returnType: void
    signature: void MultiReporter::benchmarkFailed( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testRunInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10634
      start: 10630
    functionDepth: 1
    functionLinenumber: 10630
    functionLinenumberEnd: 10634
    functionName: Catch::MultiReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::testRunStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::testRunStarting( TestRunInfo const& testRunInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10640
      start: 10636
    functionDepth: 1
    functionLinenumber: 10636
    functionLinenumberEnd: 10640
    functionName: Catch::MultiReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::testCaseStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::testCaseStarting( TestCaseInfo const& testInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testCasePartialStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' testInfo'
    - partNumber
    argTypes:
    - TestCaseInfo
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10648
      start: 10642
    functionDepth: 1
    functionLinenumber: 10642
    functionLinenumberEnd: 10648
    functionName: Catch::MultiReporter::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::testCasePartialStarting
    linkageType: ''
    returnType: void
    signature: "void MultiReporter::testCasePartialStarting( TestCaseInfo const& testInfo,\n
      \                                               uint64_t partNumber )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10654
      start: 10650
    functionDepth: 1
    functionLinenumber: 10650
    functionLinenumberEnd: 10654
    functionName: Catch::MultiReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::sectionStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::sectionStarting( SectionInfo const& sectionInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::assertionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' assertionInfo'
    argTypes:
    - AssertionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10660
      start: 10656
    functionDepth: 1
    functionLinenumber: 10656
    functionLinenumberEnd: 10660
    functionName: Catch::MultiReporter::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::assertionStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::assertionStarting( AssertionInfo const& assertionInfo
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assertionResult::getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10664,1
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10665,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10669,1
    - Dst: Catch::MultiReporter::assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10673
      start: 10662
    functionDepth: 1
    functionLinenumber: 10662
    functionLinenumberEnd: 10673
    functionName: Catch::MultiReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - assertionResult::getResultType
    - getPreferences
    - includeSuccessfulResults
    - Catch::MultiReporter::assertionEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::assertionEnded( AssertionStats const& assertionStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' sectionStats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10679
      start: 10675
    functionDepth: 1
    functionLinenumber: 10675
    functionLinenumberEnd: 10679
    functionName: Catch::MultiReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::sectionEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::sectionEnded( SectionStats const& sectionStats
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10685,1
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10686,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10688,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10689,1
    - Dst: Catch::MultiReporter::testCasePartialEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' testStats'
    - partNumber
    argTypes:
    - TestCaseStats
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10696
      start: 10681
    functionDepth: 1
    functionLinenumber: 10681
    functionLinenumberEnd: 10696
    functionName: Catch::MultiReporter::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - stdErr::empty
    - stdOut::empty
    - Catch::MultiReporter::testCasePartialEnded
    - Catch::cout
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: "void MultiReporter::testCasePartialEnded( TestCaseStats const& testStats,\n
      \                                                 uint64_t partNumber )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10702
      start: 10698
    functionDepth: 1
    functionLinenumber: 10698
    functionLinenumberEnd: 10702
    functionName: Catch::MultiReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::testCaseEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::testCaseEnded( TestCaseStats const& testCaseStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10708
      start: 10704
    functionDepth: 1
    functionLinenumber: 10704
    functionLinenumberEnd: 10708
    functionName: Catch::MultiReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::testRunEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::testRunEnded( TestRunStats const& testRunStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::skipTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10715
      start: 10711
    functionDepth: 1
    functionLinenumber: 10711
    functionLinenumberEnd: 10715
    functionName: Catch::MultiReporter::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::skipTest
    linkageType: ''
    returnType: void
    signature: void MultiReporter::skipTest( TestCaseInfo const& testInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ReporterDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10721
      start: 10717
    functionDepth: 1
    functionLinenumber: 10717
    functionLinenumberEnd: 10721
    functionName: Catch::MultiReporter::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::listReporters
    linkageType: ''
    returnType: void
    signature: void MultiReporter::listReporters(std::vector<ReporterDescription>
      const& descriptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10728
      start: 10723
    functionDepth: 1
    functionLinenumber: 10723
    functionLinenumberEnd: 10728
    functionName: Catch::MultiReporter::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::listListeners
    linkageType: ''
    returnType: void
    signature: "void MultiReporter::listListeners(\n        std::vector<ListenerDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10734
      start: 10730
    functionDepth: 1
    functionLinenumber: 10730
    functionLinenumberEnd: 10734
    functionName: Catch::MultiReporter::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::listTests
    linkageType: ''
    returnType: void
    signature: void MultiReporter::listTests(std::vector<TestCaseHandle> const& tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<TagInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10740
      start: 10736
    functionDepth: 1
    functionLinenumber: 10736
    functionLinenumberEnd: 10740
    functionName: Catch::MultiReporter::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - Catch::MultiReporter::listTags
    linkageType: ''
    returnType: void
    signature: void MultiReporter::listTags(std::vector<TagInfo> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10564,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reporterish'
    argTypes:
    - IEventListener
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10567
      start: 10562
    functionDepth: 0
    functionLinenumber: 10562
    functionLinenumberEnd: 10567
    functionName: Catch::MultiReporter::updatePreferences
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - getPreferences
    linkageType: ''
    returnType: void
    signature: void MultiReporter::updatePreferences(IEventListener const& reporterish)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::updatePreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10570,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10571,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10571,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' listener'
    argTypes:
    - IEventListenerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10573
      start: 10569
    functionDepth: 1
    functionLinenumber: 10569
    functionLinenumberEnd: 10573
    functionName: Catch::MultiReporter::addListener
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::MultiReporter::updatePreferences
    - insert
    - CATCH_MOVE
    - begin
    linkageType: ''
    returnType: void
    signature: void MultiReporter::addListener( IEventListenerPtr&& listener )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::updatePreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10576,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10583,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10587,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' reporter'
    argTypes:
    - IEventListenerPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10588
      start: 10575
    functionDepth: 1
    functionLinenumber: 10575
    functionLinenumberEnd: 10588
    functionName: Catch::MultiReporter::addReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - Catch::MultiReporter::updatePreferences
    - getPreferences
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void MultiReporter::addReporter( IEventListenerPtr&& reporter )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::noMatchingTestCases
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - unmatchedSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10594
      start: 10590
    functionDepth: 1
    functionLinenumber: 10590
    functionLinenumberEnd: 10594
    functionName: Catch::MultiReporter::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::noMatchingTestCases
    linkageType: ''
    returnType: void
    signature: void MultiReporter::noMatchingTestCases( StringRef unmatchedSpec )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::fatalErrorEncountered
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10600
      start: 10596
    functionDepth: 1
    functionLinenumber: 10596
    functionLinenumberEnd: 10600
    functionName: Catch::MultiReporter::fatalErrorEncountered
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::fatalErrorEncountered
    linkageType: ''
    returnType: void
    signature: void MultiReporter::fatalErrorEncountered( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::reportInvalidTestSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10606
      start: 10602
    functionDepth: 1
    functionLinenumber: 10602
    functionLinenumberEnd: 10606
    functionName: Catch::MultiReporter::reportInvalidTestSpec
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::reportInvalidTestSpec
    linkageType: ''
    returnType: void
    signature: void MultiReporter::reportInvalidTestSpec( StringRef arg )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::benchmarkPreparing
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10612
      start: 10608
    functionDepth: 1
    functionLinenumber: 10608
    functionLinenumberEnd: 10612
    functionName: Catch::MultiReporter::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::benchmarkPreparing
    linkageType: ''
    returnType: void
    signature: void MultiReporter::benchmarkPreparing( StringRef name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::benchmarkStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' benchmarkInfo'
    argTypes:
    - BenchmarkInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10617
      start: 10613
    functionDepth: 1
    functionLinenumber: 10613
    functionLinenumberEnd: 10617
    functionName: Catch::MultiReporter::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::benchmarkStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::benchmarkStarting( BenchmarkInfo const& benchmarkInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::benchmarkEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' benchmarkStats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10622
      start: 10618
    functionDepth: 1
    functionLinenumber: 10618
    functionLinenumberEnd: 10622
    functionName: Catch::MultiReporter::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::benchmarkEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::benchmarkEnded( BenchmarkStats<> const& benchmarkStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::benchmarkFailed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10628
      start: 10624
    functionDepth: 1
    functionLinenumber: 10624
    functionLinenumberEnd: 10628
    functionName: Catch::MultiReporter::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::benchmarkFailed
    linkageType: ''
    returnType: void
    signature: void MultiReporter::benchmarkFailed( StringRef error )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testRunInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10634
      start: 10630
    functionDepth: 1
    functionLinenumber: 10630
    functionLinenumberEnd: 10634
    functionName: Catch::MultiReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::testRunStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::testRunStarting( TestRunInfo const& testRunInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10640
      start: 10636
    functionDepth: 1
    functionLinenumber: 10636
    functionLinenumberEnd: 10640
    functionName: Catch::MultiReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::testCaseStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::testCaseStarting( TestCaseInfo const& testInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testCasePartialStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' testInfo'
    - partNumber
    argTypes:
    - TestCaseInfo
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10648
      start: 10642
    functionDepth: 1
    functionLinenumber: 10642
    functionLinenumberEnd: 10648
    functionName: Catch::MultiReporter::testCasePartialStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::testCasePartialStarting
    linkageType: ''
    returnType: void
    signature: "void MultiReporter::testCasePartialStarting( TestCaseInfo const& testInfo,\n
      \                                               uint64_t partNumber )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10654
      start: 10650
    functionDepth: 1
    functionLinenumber: 10650
    functionLinenumberEnd: 10654
    functionName: Catch::MultiReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::sectionStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::sectionStarting( SectionInfo const& sectionInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::assertionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' assertionInfo'
    argTypes:
    - AssertionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10660
      start: 10656
    functionDepth: 1
    functionLinenumber: 10656
    functionLinenumberEnd: 10660
    functionName: Catch::MultiReporter::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::assertionStarting
    linkageType: ''
    returnType: void
    signature: void MultiReporter::assertionStarting( AssertionInfo const& assertionInfo
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assertionResult::getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10664,1
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10665,1
    - Dst: getPreferences
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10669,1
    - Dst: Catch::MultiReporter::assertionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10673
      start: 10662
    functionDepth: 1
    functionLinenumber: 10662
    functionLinenumberEnd: 10673
    functionName: Catch::MultiReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - assertionResult::getResultType
    - getPreferences
    - includeSuccessfulResults
    - Catch::MultiReporter::assertionEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::assertionEnded( AssertionStats const& assertionStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' sectionStats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10679
      start: 10675
    functionDepth: 1
    functionLinenumber: 10675
    functionLinenumberEnd: 10679
    functionName: Catch::MultiReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::sectionEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::sectionEnded( SectionStats const& sectionStats
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10685,1
    - Dst: Catch::cout
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10686,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10688,1
    - Dst: Catch::cerr
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10689,1
    - Dst: Catch::MultiReporter::testCasePartialEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' testStats'
    - partNumber
    argTypes:
    - TestCaseStats
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10696
      start: 10681
    functionDepth: 1
    functionLinenumber: 10681
    functionLinenumberEnd: 10696
    functionName: Catch::MultiReporter::testCasePartialEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - stdErr::empty
    - stdOut::empty
    - Catch::MultiReporter::testCasePartialEnded
    - Catch::cout
    - Catch::cerr
    linkageType: ''
    returnType: void
    signature: "void MultiReporter::testCasePartialEnded( TestCaseStats const& testStats,\n
      \                                                 uint64_t partNumber )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10702
      start: 10698
    functionDepth: 1
    functionLinenumber: 10698
    functionLinenumberEnd: 10702
    functionName: Catch::MultiReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::testCaseEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::testCaseEnded( TestCaseStats const& testCaseStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10708
      start: 10704
    functionDepth: 1
    functionLinenumber: 10704
    functionLinenumberEnd: 10708
    functionName: Catch::MultiReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::testRunEnded
    linkageType: ''
    returnType: void
    signature: void MultiReporter::testRunEnded( TestRunStats const& testRunStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::skipTest
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10715
      start: 10711
    functionDepth: 1
    functionLinenumber: 10711
    functionLinenumberEnd: 10715
    functionName: Catch::MultiReporter::skipTest
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::skipTest
    linkageType: ''
    returnType: void
    signature: void MultiReporter::skipTest( TestCaseInfo const& testInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::listReporters
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ReporterDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10721
      start: 10717
    functionDepth: 1
    functionLinenumber: 10717
    functionLinenumberEnd: 10721
    functionName: Catch::MultiReporter::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::listReporters
    linkageType: ''
    returnType: void
    signature: void MultiReporter::listReporters(std::vector<ReporterDescription>
      const& descriptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::listListeners
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10728
      start: 10723
    functionDepth: 1
    functionLinenumber: 10723
    functionLinenumberEnd: 10728
    functionName: Catch::MultiReporter::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::listListeners
    linkageType: ''
    returnType: void
    signature: "void MultiReporter::listListeners(\n        std::vector<ListenerDescription>
      const& descriptions )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::listTests
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10734
      start: 10730
    functionDepth: 1
    functionLinenumber: 10730
    functionLinenumberEnd: 10734
    functionName: Catch::MultiReporter::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::listTests
    linkageType: ''
    returnType: void
    signature: void MultiReporter::listTests(std::vector<TestCaseHandle> const& tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::MultiReporter::listTags
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<TagInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10740
      start: 10736
    functionDepth: 1
    functionLinenumber: 10736
    functionLinenumberEnd: 10740
    functionName: Catch::MultiReporter::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - Catch::MultiReporter::listTags
    linkageType: ''
    returnType: void
    signature: void MultiReporter::listTags(std::vector<TagInfo> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10754,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - reporterPtr
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10756
      start: 10751
    functionDepth: 1
    functionLinenumber: 10751
    functionLinenumberEnd: 10756
    functionName: Catch::Detail::registerReporterImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: "void registerReporterImpl( std::string const& name,\n                                   IReporterFactoryPtr
      reporterPtr )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10754,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - reporterPtr
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10756
      start: 10751
    functionDepth: 1
    functionLinenumber: 10751
    functionLinenumberEnd: 10756
    functionName: Catch::Detail::registerReporterImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: "void registerReporterImpl( std::string const& name,\n                                   IReporterFactoryPtr
      reporterPtr )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10754,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - reporterPtr
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10756
      start: 10751
    functionDepth: 1
    functionLinenumber: 10751
    functionLinenumberEnd: 10756
    functionName: Catch::Detail::registerReporterImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: "void registerReporterImpl( std::string const& name,\n                                   IReporterFactoryPtr
      reporterPtr )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10754,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - reporterPtr
    argTypes:
    - std::string
    - IReporterFactoryPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10756
      start: 10751
    functionDepth: 1
    functionLinenumber: 10751
    functionLinenumberEnd: 10756
    functionName: Catch::Detail::registerReporterImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: "void registerReporterImpl( std::string const& name,\n                                   IReporterFactoryPtr
      reporterPtr )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutableRegistryHub
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10765,1
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listenerFactory
    argTypes:
    - Detail::unique_ptr<EventListenerFactory>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10766
      start: 10764
    functionDepth: 1
    functionLinenumber: 10764
    functionLinenumberEnd: 10766
    functionName: registerListenerImpl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - CATCH_MOVE
    - getMutableRegistryHub
    linkageType: ''
    returnType: void
    signature: void registerListenerImpl( Detail::unique_ptr<EventListenerFactory>
      listenerFactory )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10782,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10784,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10787,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10789
      start: 10780
    functionDepth: 1
    functionLinenumber: 10780
    functionLinenumberEnd: 10789
    functionName: Catch::createMetadataString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rngSeed
    - ReusableStringStream::str
    - testSpec
    linkageType: ''
    returnType: std::string
    signature: std::string createMetadataString(IConfig const& config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10782,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10784,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10787,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10789
      start: 10780
    functionDepth: 1
    functionLinenumber: 10780
    functionLinenumberEnd: 10789
    functionName: Catch::createMetadataString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rngSeed
    - ReusableStringStream::str
    - testSpec
    linkageType: ''
    returnType: std::string
    signature: std::string createMetadataString(IConfig const& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::CumulativeReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10793,1
    - Dst: writeComment
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10795,1
    - Dst: createMetadataString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10795,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10796,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' testRunInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10798
      start: 10792
    functionDepth: 1
    functionLinenumber: 10792
    functionLinenumberEnd: 10798
    functionName: Catch::SonarQubeReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    - Catch::CumulativeReporterBase::testRunStarting
    - createMetadataString
    - writeComment
    - startElement
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::testRunStarting(TestRunInfo const& testRunInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10804,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10805,1
    - Dst: Catch::SonarQubeReporter::writeTestFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' runNode'
    argTypes:
    - TestRunNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10811
      start: 10800
    functionDepth: 1
    functionLinenumber: 10800
    functionLinenumberEnd: 10811
    functionName: Catch::SonarQubeReporter::writeRun
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - get
    - Catch::SonarQubeReporter::writeTestFile
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeRun( TestRunNode const& runNode )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10814,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10815,1
    - Dst: Catch::SonarQubeReporter::writeTestCase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - filename
    - ' testCaseNodes'
    argTypes:
    - StringRef
    - std::vector<TestCaseNode const*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10819
      start: 10813
    functionDepth: 1
    functionLinenumber: 10813
    functionLinenumberEnd: 10819
    functionName: Catch::SonarQubeReporter::writeTestFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - scopedElement
    - writeAttribute
    - Catch::SonarQubeReporter::writeTestCase
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeTestFile(StringRef filename, std::vector<TestCaseNode
      const*> const& testCaseNodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10824,1
    - Dst: children::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10824,1
    - Dst: children::front
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10825,1
    - Dst: Catch::SonarQubeReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10826,1
    - Dst: value::testInfo::okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' testCaseNode'
    argTypes:
    - TestCaseNode
    assertStmts:
    - condition: (testCaseNode.children.size() == 1)
      pos:
        line_end: 10823
        line_start: 10823
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10827
      start: 10821
    functionDepth: 1
    functionLinenumber: 10821
    functionLinenumberEnd: 10827
    functionName: Catch::SonarQubeReporter::writeTestCase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - children::front
    - assert
    - children::size
    - Catch::SonarQubeReporter::writeSection
    - value::testInfo::okToFail
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeTestCase(TestCaseNode const& testCaseNode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10830,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10831,1
    - Dst: hasAnyAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10834,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10835,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10836,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10837,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10838,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10839,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10839,1
    - Dst: Catch::SonarQubeReporter::writeAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10841,1
    - Dst: Catch::SonarQubeReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10845,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ' rootName'
    - ' sectionNode'
    - okToFail
    argTypes:
    - std::string
    - SectionNode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10846
      start: 10829
    functionDepth: 1
    functionLinenumber: 10829
    functionLinenumberEnd: 10846
    functionName: Catch::SonarQubeReporter::writeSection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - static_cast<long>
    - stdErr::empty
    - hasAnyAssertions
    - writeAttribute
    - stdOut::empty
    - empty
    - Catch::SonarQubeReporter::writeAssertions
    - Catch::SonarQubeReporter::writeSection
    - trim
    - scopedElement
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeSection(std::string const& rootName, SectionNode
      const& sectionNode, bool okToFail)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10850,1
    - Dst: Catch::SonarQubeReporter::writeAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10851,1
    - Dst: asAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' sectionNode'
    - okToFail
    argTypes:
    - SectionNode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10854
      start: 10848
    functionDepth: 1
    functionLinenumber: 10848
    functionLinenumberEnd: 10854
    functionName: Catch::SonarQubeReporter::writeAssertions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - isAssertion
    - Catch::SonarQubeReporter::writeAssertion
    - asAssertion
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeAssertions(SectionNode const& sectionNode,
      bool okToFail)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10858,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10859,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10864,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10889,1
    - Dst: getTestMacroName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10892,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10892,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10893,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10893,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10896,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10900,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10901,1
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10903,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10904,1
    - Dst: hasMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10908,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10909,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10915,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10916,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10916,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - ' stats'
    - okToFail
    argTypes:
    - AssertionStats
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10918
      start: 10856
    functionDepth: 0
    functionLinenumber: 10856
    functionLinenumberEnd: 10918
    functionName: Catch::SonarQubeReporter::writeAssertion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - getResultType
    - getTestMacroName
    - writeAttribute
    - hasExpression
    - getExpressionInMacro
    - hasExpandedExpression
    - getSourceInfo
    - isOk
    - getExpandedExpression
    - getMessage
    - writeText
    - getExpression
    - scopedElement
    - ReusableStringStream::str
    - hasMessage
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeAssertion(AssertionStats const& stats,
      bool okToFail)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10782,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10784,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10787,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10789
      start: 10780
    functionDepth: 1
    functionLinenumber: 10780
    functionLinenumberEnd: 10789
    functionName: Catch::createMetadataString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rngSeed
    - ReusableStringStream::str
    - testSpec
    linkageType: ''
    returnType: std::string
    signature: std::string createMetadataString(IConfig const& config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10782,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10784,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10787,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - IConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10789
      start: 10780
    functionDepth: 1
    functionLinenumber: 10780
    functionLinenumberEnd: 10789
    functionName: Catch::createMetadataString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rngSeed
    - ReusableStringStream::str
    - testSpec
    linkageType: ''
    returnType: std::string
    signature: std::string createMetadataString(IConfig const& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::CumulativeReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10793,1
    - Dst: writeComment
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10795,1
    - Dst: createMetadataString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10795,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10796,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' testRunInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10798
      start: 10792
    functionDepth: 1
    functionLinenumber: 10792
    functionLinenumberEnd: 10798
    functionName: Catch::SonarQubeReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    - Catch::CumulativeReporterBase::testRunStarting
    - createMetadataString
    - writeComment
    - startElement
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::testRunStarting(TestRunInfo const& testRunInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10804,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10805,1
    - Dst: Catch::SonarQubeReporter::writeTestFile
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' runNode'
    argTypes:
    - TestRunNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10811
      start: 10800
    functionDepth: 2
    functionLinenumber: 10800
    functionLinenumberEnd: 10811
    functionName: Catch::SonarQubeReporter::writeRun
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - get
    - Catch::SonarQubeReporter::writeTestFile
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeRun( TestRunNode const& runNode )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10814,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10815,1
    - Dst: Catch::SonarQubeReporter::writeTestCase
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - filename
    - ' testCaseNodes'
    argTypes:
    - StringRef
    - std::vector<TestCaseNode const*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10819
      start: 10813
    functionDepth: 2
    functionLinenumber: 10813
    functionLinenumberEnd: 10819
    functionName: Catch::SonarQubeReporter::writeTestFile
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - scopedElement
    - writeAttribute
    - Catch::SonarQubeReporter::writeTestCase
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeTestFile(StringRef filename, std::vector<TestCaseNode
      const*> const& testCaseNodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10824,1
    - Dst: children::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10824,1
    - Dst: children::front
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10825,1
    - Dst: Catch::SonarQubeReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10826,1
    - Dst: value::testInfo::okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' testCaseNode'
    argTypes:
    - TestCaseNode
    assertStmts:
    - condition: (testCaseNode.children.size() == 1)
      pos:
        line_end: 10823
        line_start: 10823
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 10827
      start: 10821
    functionDepth: 2
    functionLinenumber: 10821
    functionLinenumberEnd: 10827
    functionName: Catch::SonarQubeReporter::writeTestCase
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - children::front
    - assert
    - children::size
    - Catch::SonarQubeReporter::writeSection
    - value::testInfo::okToFail
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeTestCase(TestCaseNode const& testCaseNode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10830,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10831,1
    - Dst: hasAnyAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10834,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10835,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10836,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10837,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10838,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10839,1
    - Dst: static_cast<long>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10839,1
    - Dst: Catch::SonarQubeReporter::writeAssertions
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10841,1
    - Dst: Catch::SonarQubeReporter::writeSection
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10845,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ' rootName'
    - ' sectionNode'
    - okToFail
    argTypes:
    - std::string
    - SectionNode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10846
      start: 10829
    functionDepth: 2
    functionLinenumber: 10829
    functionLinenumberEnd: 10846
    functionName: Catch::SonarQubeReporter::writeSection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - static_cast<long>
    - stdErr::empty
    - hasAnyAssertions
    - writeAttribute
    - stdOut::empty
    - empty
    - Catch::SonarQubeReporter::writeAssertions
    - Catch::SonarQubeReporter::writeSection
    - trim
    - scopedElement
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeSection(std::string const& rootName, SectionNode
      const& sectionNode, bool okToFail)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10850,1
    - Dst: Catch::SonarQubeReporter::writeAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10851,1
    - Dst: asAssertion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' sectionNode'
    - okToFail
    argTypes:
    - SectionNode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10854
      start: 10848
    functionDepth: 1
    functionLinenumber: 10848
    functionLinenumberEnd: 10854
    functionName: Catch::SonarQubeReporter::writeAssertions
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - isAssertion
    - Catch::SonarQubeReporter::writeAssertion
    - asAssertion
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeAssertions(SectionNode const& sectionNode,
      bool okToFail)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10858,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10859,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10864,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10889,1
    - Dst: getTestMacroName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10892,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10892,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10893,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10893,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10896,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10900,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10901,1
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10903,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10904,1
    - Dst: hasMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10908,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10909,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10915,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10916,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10916,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - ' stats'
    - okToFail
    argTypes:
    - AssertionStats
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10918
      start: 10856
    functionDepth: 0
    functionLinenumber: 10856
    functionLinenumberEnd: 10918
    functionName: Catch::SonarQubeReporter::writeAssertion
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - getResultType
    - getTestMacroName
    - writeAttribute
    - hasExpression
    - getExpressionInMacro
    - hasExpandedExpression
    - getSourceInfo
    - isOk
    - getExpandedExpression
    - getMessage
    - writeText
    - getExpression
    - scopedElement
    - ReusableStringStream::str
    - hasMessage
    linkageType: ''
    returnType: void
    signature: void SonarQubeReporter::writeAssertion(AssertionStats const& stats,
      bool okToFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10926
      start: 10926
    functionDepth: 0
    functionLinenumber: 10926
    functionLinenumberEnd: 10926
    functionName: StreamingReporterBase::~StreamingReporterBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StreamingReporterBase::~StreamingReporterBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' _testRunInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10931
      start: 10928
    functionDepth: 0
    functionLinenumber: 10928
    functionLinenumberEnd: 10931
    functionName: Catch::StreamingReporterBase::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StreamingReporterBase::testRunStarting( TestRunInfo const& _testRunInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10935
      start: 10933
    functionDepth: 0
    functionLinenumber: 10933
    functionLinenumberEnd: 10935
    functionName: Catch::StreamingReporterBase::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StreamingReporterBase::testRunEnded( TestRunStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10926
      start: 10926
    functionDepth: 0
    functionLinenumber: 10926
    functionLinenumberEnd: 10926
    functionName: StreamingReporterBase::~StreamingReporterBase()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StreamingReporterBase::~StreamingReporterBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' _testRunInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10931
      start: 10928
    functionDepth: 0
    functionLinenumber: 10928
    functionLinenumberEnd: 10931
    functionName: Catch::StreamingReporterBase::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StreamingReporterBase::testRunStarting( TestRunInfo const& _testRunInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10935
      start: 10933
    functionDepth: 0
    functionLinenumber: 10933
    functionLinenumberEnd: 10935
    functionName: Catch::StreamingReporterBase::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StreamingReporterBase::testRunEnded( TestRunStats const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10955
      start: 10955
    functionDepth: 0
    functionLinenumber: 10955
    functionLinenumberEnd: 10955
    functionName: '& operator= (TapAssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TapAssertionPrinter
    signature: TapAssertionPrinter & operator= (TapAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10956
      start: 10956
    functionDepth: 0
    functionLinenumber: 10956
    functionLinenumberEnd: 10956
    functionName: Catch::TapAssertionPrinter::TapAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TapAssertionPrinter(TapAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infoMessages::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - _counter
    - colour_
    argTypes:
    - std::ostream
    - AssertionStats
    - std::size_t
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10964
      start: 10957
    functionDepth: 0
    functionLinenumber: 10957
    functionLinenumberEnd: 10964
    functionName: Catch::TapAssertionPrinter::TapAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - infoMessages::begin
    linkageType: ''
    returnType: void
    signature: void TapAssertionPrinter(std::ostream& _stream, AssertionStats const&
      _stats, std::size_t _counter, ColourImpl* colour_)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10967,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10969,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10971,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10972,1
    - Dst: Catch::TapAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10973,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10974,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10975,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10977,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10980,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10981,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10983,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10985,1
    - Dst: Catch::TapAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10986,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10987,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10988,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10990,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10993,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10994,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10995,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10996,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10997,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11000,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11001,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11002,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11003,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11004,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11007,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11008,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11009,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11010,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11013,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11014,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11015,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11018,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11019,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11020,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11023,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11024,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11025,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11028,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11029,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11030,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11031,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11037,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11040
      start: 10966
    functionDepth: 1
    functionLinenumber: 10966
    functionLinenumberEnd: 11040
    functionName: Catch::TapAssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - Catch::TapAssertionPrinter::printIssue
    - Catch::TapAssertionPrinter::printReconstructedExpression
    - Catch::TapAssertionPrinter::printExpressionWas
    - begin
    - hasExpression
    - Catch::TapAssertionPrinter::printMessage
    - Catch::TapAssertionPrinter::printOriginalExpression
    - isOk
    - Catch::TapAssertionPrinter::printRemainingMessages
    - Catch::TapAssertionPrinter::printResultType
    linkageType: ''
    returnType: void
    signature: void print()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - passOrFail
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11047
      start: 11043
    functionDepth: 0
    functionLinenumber: 11043
    functionLinenumberEnd: 11047
    functionName: Catch::TapAssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: void
    signature: void printResultType(StringRef passOrFail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - issue
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11051
      start: 11049
    functionDepth: 0
    functionLinenumber: 11049
    functionLinenumberEnd: 11051
    functionName: Catch::TapAssertionPrinter::printIssue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printIssue(StringRef issue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11054,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11056,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11060
      start: 11053
    functionDepth: 1
    functionLinenumber: 11053
    functionLinenumberEnd: 11060
    functionName: Catch::TapAssertionPrinter::printExpressionWas
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - hasExpression
    - Catch::TapAssertionPrinter::printOriginalExpression
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printExpressionWas()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11063,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11066
      start: 11062
    functionDepth: 0
    functionLinenumber: 11062
    functionLinenumberEnd: 11066
    functionName: Catch::TapAssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - hasExpression
    - getExpression
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11069,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11070,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11072,1
    - Dst: std::replace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    - Dst: std::string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    - Dst: std::string::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11076
      start: 11068
    functionDepth: 0
    functionLinenumber: 11068
    functionLinenumberEnd: 11076
    functionName: Catch::TapAssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - guardColour
    - hasExpandedExpression
    - std::replace
    - std::string::begin
    - getExpandedExpression
    - std::string::end
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11083
      start: 11078
    functionDepth: 0
    functionLinenumber: 11078
    functionLinenumberEnd: 11083
    functionName: Catch::TapAssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void printMessage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11086,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11091,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11092,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11094,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11095,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11106
      start: 11085
    functionDepth: 0
    functionLinenumber: 11085
    functionLinenumberEnd: 11106
    functionName: Catch::TapAssertionPrinter::printRemainingMessages
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - pluralise
    - end
    - static_cast<std::size_t>
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printRemainingMessages(Colour::Code colour = tapDimColour)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10955
      start: 10955
    functionDepth: 0
    functionLinenumber: 10955
    functionLinenumberEnd: 10955
    functionName: '& operator= (TapAssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TapAssertionPrinter
    signature: TapAssertionPrinter & operator= (TapAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10956
      start: 10956
    functionDepth: 0
    functionLinenumber: 10956
    functionLinenumberEnd: 10956
    functionName: Catch::TapAssertionPrinter::TapAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TapAssertionPrinter(TapAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infoMessages::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - _counter
    - colour_
    argTypes:
    - std::ostream
    - AssertionStats
    - std::size_t
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10964
      start: 10957
    functionDepth: 0
    functionLinenumber: 10957
    functionLinenumberEnd: 10964
    functionName: Catch::TapAssertionPrinter::TapAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - infoMessages::begin
    linkageType: ''
    returnType: void
    signature: void TapAssertionPrinter(std::ostream& _stream, AssertionStats const&
      _stats, std::size_t _counter, ColourImpl* colour_)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10967,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10969,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10971,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10972,1
    - Dst: Catch::TapAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10973,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10974,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10975,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10977,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10980,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10981,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10983,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10985,1
    - Dst: Catch::TapAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10986,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10987,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10988,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10990,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10993,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10994,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10995,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10996,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10997,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11000,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11001,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11002,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11003,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11004,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11007,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11008,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11009,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11010,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11013,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11014,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11015,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11018,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11019,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11020,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11023,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11024,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11025,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11028,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11029,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11030,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11031,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11037,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11040
      start: 10966
    functionDepth: 2
    functionLinenumber: 10966
    functionLinenumberEnd: 11040
    functionName: Catch::TapAssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - Catch::TapAssertionPrinter::printIssue
    - Catch::TapAssertionPrinter::printReconstructedExpression
    - Catch::TapAssertionPrinter::printExpressionWas
    - begin
    - hasExpression
    - Catch::TapAssertionPrinter::printMessage
    - Catch::TapAssertionPrinter::printOriginalExpression
    - isOk
    - Catch::TapAssertionPrinter::printRemainingMessages
    - Catch::TapAssertionPrinter::printResultType
    linkageType: ''
    returnType: void
    signature: void print()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - passOrFail
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11047
      start: 11043
    functionDepth: 0
    functionLinenumber: 11043
    functionLinenumberEnd: 11047
    functionName: Catch::TapAssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: void
    signature: void printResultType(StringRef passOrFail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - issue
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11051
      start: 11049
    functionDepth: 0
    functionLinenumber: 11049
    functionLinenumberEnd: 11051
    functionName: Catch::TapAssertionPrinter::printIssue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printIssue(StringRef issue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11054,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11056,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11060
      start: 11053
    functionDepth: 1
    functionLinenumber: 11053
    functionLinenumberEnd: 11060
    functionName: Catch::TapAssertionPrinter::printExpressionWas
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - hasExpression
    - Catch::TapAssertionPrinter::printOriginalExpression
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printExpressionWas()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11063,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11066
      start: 11062
    functionDepth: 0
    functionLinenumber: 11062
    functionLinenumberEnd: 11066
    functionName: Catch::TapAssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - hasExpression
    - getExpression
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11069,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11070,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11072,1
    - Dst: std::replace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    - Dst: std::string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    - Dst: std::string::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11076
      start: 11068
    functionDepth: 0
    functionLinenumber: 11068
    functionLinenumberEnd: 11076
    functionName: Catch::TapAssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - guardColour
    - hasExpandedExpression
    - std::replace
    - std::string::begin
    - getExpandedExpression
    - std::string::end
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11083
      start: 11078
    functionDepth: 0
    functionLinenumber: 11078
    functionLinenumberEnd: 11083
    functionName: Catch::TapAssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void printMessage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11086,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11091,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11092,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11094,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11095,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11106
      start: 11085
    functionDepth: 0
    functionLinenumber: 11085
    functionLinenumberEnd: 11106
    functionName: Catch::TapAssertionPrinter::printRemainingMessages
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - pluralise
    - end
    - static_cast<std::size_t>
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printRemainingMessages(Colour::Code colour = tapDimColour)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11121,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11122,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11125
      start: 11120
    functionDepth: 1
    functionLinenumber: 11120
    functionLinenumberEnd: 11125
    functionName: Catch::TAPReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rngSeed
    - testSpec
    linkageType: ''
    returnType: void
    signature: void TAPReporter::testRunStarting( TestRunInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unmatchedSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11129
      start: 11127
    functionDepth: 0
    functionLinenumber: 11127
    functionLinenumberEnd: 11129
    functionName: Catch::TAPReporter::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TAPReporter::noMatchingTestCases( StringRef unmatchedSpec )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11135,1
    - Dst: TapAssertionPrinter::print
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' _assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11139
      start: 11131
    functionDepth: 1
    functionLinenumber: 11131
    functionLinenumberEnd: 11139
    functionName: Catch::TAPReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - TapAssertionPrinter::print
    - get
    linkageType: ''
    returnType: void
    signature: void TAPReporter::assertionEnded(AssertionStats const& _assertionStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: totals::assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11142,1
    - Dst: totals::testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11143,1
    - Dst: Catch::StreamingReporterBase::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' _testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11148
      start: 11141
    functionDepth: 1
    functionLinenumber: 11141
    functionLinenumberEnd: 11148
    functionName: Catch::TAPReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testRunEnded
    - totals::assertions::total
    - totals::testCases::total
    linkageType: ''
    returnType: void
    signature: void TAPReporter::testRunEnded(TestRunStats const& _testRunStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10955
      start: 10955
    functionDepth: 0
    functionLinenumber: 10955
    functionLinenumberEnd: 10955
    functionName: '& operator= (TapAssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TapAssertionPrinter
    signature: TapAssertionPrinter & operator= (TapAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10956
      start: 10956
    functionDepth: 0
    functionLinenumber: 10956
    functionLinenumberEnd: 10956
    functionName: Catch::TapAssertionPrinter::TapAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TapAssertionPrinter(TapAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infoMessages::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - _counter
    - colour_
    argTypes:
    - std::ostream
    - AssertionStats
    - std::size_t
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10964
      start: 10957
    functionDepth: 0
    functionLinenumber: 10957
    functionLinenumberEnd: 10964
    functionName: Catch::TapAssertionPrinter::TapAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - infoMessages::begin
    linkageType: ''
    returnType: void
    signature: void TapAssertionPrinter(std::ostream& _stream, AssertionStats const&
      _stats, std::size_t _counter, ColourImpl* colour_)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10967,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10969,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10971,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10972,1
    - Dst: Catch::TapAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10973,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10974,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10975,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10977,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10980,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10981,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10983,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10985,1
    - Dst: Catch::TapAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10986,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10987,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10988,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10990,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10993,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10994,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10995,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10996,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10997,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11000,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11001,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11002,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11003,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11004,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11007,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11008,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11009,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11010,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11013,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11014,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11015,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11018,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11019,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11020,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11023,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11024,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11025,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11028,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11029,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11030,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11031,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11037,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11040
      start: 10966
    functionDepth: 2
    functionLinenumber: 10966
    functionLinenumberEnd: 11040
    functionName: Catch::TapAssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - Catch::TapAssertionPrinter::printIssue
    - Catch::TapAssertionPrinter::printReconstructedExpression
    - Catch::TapAssertionPrinter::printExpressionWas
    - begin
    - hasExpression
    - Catch::TapAssertionPrinter::printMessage
    - Catch::TapAssertionPrinter::printOriginalExpression
    - isOk
    - Catch::TapAssertionPrinter::printRemainingMessages
    - Catch::TapAssertionPrinter::printResultType
    linkageType: ''
    returnType: void
    signature: void print()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - passOrFail
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11047
      start: 11043
    functionDepth: 0
    functionLinenumber: 11043
    functionLinenumberEnd: 11047
    functionName: Catch::TapAssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: void
    signature: void printResultType(StringRef passOrFail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - issue
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11051
      start: 11049
    functionDepth: 0
    functionLinenumber: 11049
    functionLinenumberEnd: 11051
    functionName: Catch::TapAssertionPrinter::printIssue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printIssue(StringRef issue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11054,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11056,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11060
      start: 11053
    functionDepth: 1
    functionLinenumber: 11053
    functionLinenumberEnd: 11060
    functionName: Catch::TapAssertionPrinter::printExpressionWas
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - hasExpression
    - Catch::TapAssertionPrinter::printOriginalExpression
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printExpressionWas()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11063,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11066
      start: 11062
    functionDepth: 0
    functionLinenumber: 11062
    functionLinenumberEnd: 11066
    functionName: Catch::TapAssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 6
    functionsReached:
    - hasExpression
    - getExpression
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11069,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11070,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11072,1
    - Dst: std::replace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    - Dst: std::string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    - Dst: std::string::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11076
      start: 11068
    functionDepth: 0
    functionLinenumber: 11068
    functionLinenumberEnd: 11076
    functionName: Catch::TapAssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - guardColour
    - hasExpandedExpression
    - std::replace
    - std::string::begin
    - getExpandedExpression
    - std::string::end
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11083
      start: 11078
    functionDepth: 0
    functionLinenumber: 11078
    functionLinenumberEnd: 11083
    functionName: Catch::TapAssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void printMessage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11086,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11091,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11092,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11094,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11095,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11106
      start: 11085
    functionDepth: 0
    functionLinenumber: 11085
    functionLinenumberEnd: 11106
    functionName: Catch::TapAssertionPrinter::printRemainingMessages
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - pluralise
    - end
    - static_cast<std::size_t>
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printRemainingMessages(Colour::Code colour = tapDimColour)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10955
      start: 10955
    functionDepth: 0
    functionLinenumber: 10955
    functionLinenumberEnd: 10955
    functionName: '& operator= (TapAssertionPrinter const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TapAssertionPrinter
    signature: TapAssertionPrinter & operator= (TapAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10956
      start: 10956
    functionDepth: 0
    functionLinenumber: 10956
    functionLinenumberEnd: 10956
    functionName: Catch::TapAssertionPrinter::TapAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TapAssertionPrinter(TapAssertionPrinter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infoMessages::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' _stream'
    - ' _stats'
    - _counter
    - colour_
    argTypes:
    - std::ostream
    - AssertionStats
    - std::size_t
    - ColourImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10964
      start: 10957
    functionDepth: 0
    functionLinenumber: 10957
    functionLinenumberEnd: 10964
    functionName: Catch::TapAssertionPrinter::TapAssertionPrinter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - infoMessages::begin
    linkageType: ''
    returnType: void
    signature: void TapAssertionPrinter(std::ostream& _stream, AssertionStats const&
      _stats, std::size_t _counter, ColourImpl* colour_)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10967,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10969,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10971,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10972,1
    - Dst: Catch::TapAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10973,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10974,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10975,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10977,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10980,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10981,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10983,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10985,1
    - Dst: Catch::TapAssertionPrinter::printReconstructedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10986,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10987,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10988,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10990,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10993,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10994,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10995,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10996,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:10997,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11000,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11001,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11002,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11003,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11004,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11007,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11008,1
    - Dst: Catch::TapAssertionPrinter::printExpressionWas
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11009,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11010,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11013,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11014,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11015,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11018,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11019,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11020,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11023,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11024,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11025,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11028,1
    - Dst: Catch::TapAssertionPrinter::printIssue
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11029,1
    - Dst: Catch::TapAssertionPrinter::printMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11030,1
    - Dst: Catch::TapAssertionPrinter::printRemainingMessages
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11031,1
    - Dst: Catch::TapAssertionPrinter::printResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11037,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11040
      start: 10966
    functionDepth: 2
    functionLinenumber: 10966
    functionLinenumberEnd: 11040
    functionName: Catch::TapAssertionPrinter::print
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - Catch::TapAssertionPrinter::printIssue
    - Catch::TapAssertionPrinter::printReconstructedExpression
    - Catch::TapAssertionPrinter::printExpressionWas
    - begin
    - hasExpression
    - Catch::TapAssertionPrinter::printMessage
    - Catch::TapAssertionPrinter::printOriginalExpression
    - isOk
    - Catch::TapAssertionPrinter::printRemainingMessages
    - Catch::TapAssertionPrinter::printResultType
    linkageType: ''
    returnType: void
    signature: void print()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringRef::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - passOrFail
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11047
      start: 11043
    functionDepth: 0
    functionLinenumber: 11043
    functionLinenumberEnd: 11047
    functionName: Catch::TapAssertionPrinter::printResultType
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - StringRef::empty
    linkageType: ''
    returnType: void
    signature: void printResultType(StringRef passOrFail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - issue
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11051
      start: 11049
    functionDepth: 0
    functionLinenumber: 11049
    functionLinenumberEnd: 11051
    functionName: Catch::TapAssertionPrinter::printIssue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void printIssue(StringRef issue) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11054,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11056,1
    - Dst: Catch::TapAssertionPrinter::printOriginalExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11060
      start: 11053
    functionDepth: 1
    functionLinenumber: 11053
    functionLinenumberEnd: 11060
    functionName: Catch::TapAssertionPrinter::printExpressionWas
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - hasExpression
    - Catch::TapAssertionPrinter::printOriginalExpression
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printExpressionWas()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11063,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11066
      start: 11062
    functionDepth: 0
    functionLinenumber: 11062
    functionLinenumberEnd: 11066
    functionName: Catch::TapAssertionPrinter::printOriginalExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 8
    functionsReached:
    - hasExpression
    - getExpression
    linkageType: ''
    returnType: void
    signature: void printOriginalExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11069,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11070,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11072,1
    - Dst: std::replace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    - Dst: std::string::begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    - Dst: std::string::end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11076
      start: 11068
    functionDepth: 0
    functionLinenumber: 11068
    functionLinenumberEnd: 11076
    functionName: Catch::TapAssertionPrinter::printReconstructedExpression
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - guardColour
    - hasExpandedExpression
    - std::replace
    - std::string::begin
    - getExpandedExpression
    - std::string::end
    linkageType: ''
    returnType: void
    signature: void printReconstructedExpression() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11083
      start: 11078
    functionDepth: 0
    functionLinenumber: 11078
    functionLinenumberEnd: 11083
    functionName: Catch::TapAssertionPrinter::printMessage
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void printMessage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11086,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11091,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11092,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11094,1
    - Dst: pluralise
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11095,1
    - Dst: guardColour
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11106
      start: 11085
    functionDepth: 0
    functionLinenumber: 11085
    functionLinenumberEnd: 11106
    functionName: Catch::TapAssertionPrinter::printRemainingMessages
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 4
    functionsReached:
    - pluralise
    - end
    - static_cast<std::size_t>
    - guardColour
    linkageType: ''
    returnType: void
    signature: void printRemainingMessages(Colour::Code colour = tapDimColour)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11121,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11122,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11125
      start: 11120
    functionDepth: 1
    functionLinenumber: 11120
    functionLinenumberEnd: 11125
    functionName: Catch::TAPReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - rngSeed
    - testSpec
    linkageType: ''
    returnType: void
    signature: void TAPReporter::testRunStarting( TestRunInfo const& )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unmatchedSpec
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11129
      start: 11127
    functionDepth: 0
    functionLinenumber: 11127
    functionLinenumberEnd: 11129
    functionName: Catch::TAPReporter::noMatchingTestCases
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TAPReporter::noMatchingTestCases( StringRef unmatchedSpec )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11135,1
    - Dst: TapAssertionPrinter::print
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' _assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11139
      start: 11131
    functionDepth: 1
    functionLinenumber: 11131
    functionLinenumberEnd: 11139
    functionName: Catch::TAPReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - TapAssertionPrinter::print
    - get
    linkageType: ''
    returnType: void
    signature: void TAPReporter::assertionEnded(AssertionStats const& _assertionStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: totals::assertions::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11142,1
    - Dst: totals::testCases::total
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11143,1
    - Dst: Catch::StreamingReporterBase::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' _testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11148
      start: 11141
    functionDepth: 1
    functionLinenumber: 11141
    functionLinenumberEnd: 11148
    functionName: Catch::TAPReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testRunEnded
    - totals::assertions::total
    - totals::testCases::total
    linkageType: ''
    returnType: void
    signature: void TAPReporter::testRunEnded(TestRunStats const& _testRunStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11167,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - ' _string'
    argTypes:
    - std::ostream
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11175
      start: 11166
    functionDepth: 1
    functionLinenumber: 11166
    functionLinenumberEnd: 11175
    functionName: Catch::printHeaderString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TextFlow::Column::Column
    - find
    linkageType: ''
    returnType: void
    signature: void printHeaderString(std::ostream& os, std::string const& _string,
      std::size_t indent = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11178,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11179,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11180,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11181,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11182,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11183,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11186
      start: 11177
    functionDepth: 2
    functionLinenumber: 11177
    functionLinenumberEnd: 11186
    functionName: Catch::escape
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::replaceInPlace
    - static_cast<std::string>
    linkageType: ''
    returnType: std::string
    signature: std::string escape(StringRef str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11167,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - ' _string'
    argTypes:
    - std::ostream
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11175
      start: 11166
    functionDepth: 1
    functionLinenumber: 11166
    functionLinenumberEnd: 11175
    functionName: Catch::printHeaderString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TextFlow::Column::Column
    - find
    linkageType: ''
    returnType: void
    signature: void printHeaderString(std::ostream& os, std::string const& _string,
      std::size_t indent = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11178,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11179,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11180,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11181,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11182,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11183,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11186
      start: 11177
    functionDepth: 2
    functionLinenumber: 11177
    functionLinenumberEnd: 11186
    functionName: Catch::escape
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::replaceInPlace
    - static_cast<std::string>
    linkageType: ''
    returnType: std::string
    signature: std::string escape(StringRef str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11190
      start: 11190
    functionDepth: 0
    functionLinenumber: 11190
    functionLinenumberEnd: 11190
    functionName: TeamCityReporter::~TeamCityReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::~TeamCityReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' runInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11195
      start: 11192
    functionDepth: 0
    functionLinenumber: 11192
    functionLinenumberEnd: 11195
    functionName: Catch::TeamCityReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - escape
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::testRunStarting( TestRunInfo const& runInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' runStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11200
      start: 11197
    functionDepth: 0
    functionLinenumber: 11197
    functionLinenumberEnd: 11200
    functionName: Catch::TeamCityReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - escape
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::testRunEnded( TestRunStats const& runStats )
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11204,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11205,1
    - Dst: Catch::TeamCityReporter::printSectionHeader
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11209,1
    - Dst: ReusableStringStream::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11209,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11212,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11214,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11238,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11243,1
    - Dst: infoMessages::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11245,1
    - Dst: infoMessages::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11247,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11253,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11255,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11257,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11260,1
    - Dst: okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11262,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11268,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11269,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11269,1
    - Dst: flush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11271,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11272
      start: 11202
    functionDepth: 1
    functionLinenumber: 11202
    functionLinenumberEnd: 11272
    functionName: Catch::TeamCityReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - infoMessages::size
    - hasExpression
    - getSourceInfo
    - getExpressionInMacro
    - isOk
    - getExpandedExpression
    - ReusableStringStream::get
    - flush
    - escape
    - ReusableStringStream::str
    - okToFail
    - Catch::TeamCityReporter::printSectionHeader
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::assertionEnded(AssertionStats const& assertionStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11275,1
    - Dst: Catch::StreamingReporterBase::testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11276,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11278,1
    - Dst: flush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11280
      start: 11274
    functionDepth: 1
    functionLinenumber: 11274
    functionLinenumberEnd: 11280
    functionName: Catch::TeamCityReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testCaseStarting
    - flush
    - start
    - escape
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::testCaseStarting(TestCaseInfo const& testInfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11283,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11285,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11287,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11288,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11289,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11291,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11292,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11294,1
    - Dst: getElapsedMilliseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11295,1
    - Dst: flush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11297
      start: 11282
    functionDepth: 1
    functionLinenumber: 11282
    functionLinenumberEnd: 11297
    functionName: Catch::TeamCityReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testCaseEnded
    - stdErr::empty
    - stdOut::empty
    - flush
    - getElapsedMilliseconds
    - escape
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::testCaseEnded(TestCaseStats const& testCaseStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11300,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11300,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11302,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11303,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11306,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11307,1
    - Dst: printHeaderString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11309,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11310,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11313,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts:
    - condition: (!m_sectionStack.empty())
      pos:
        line_end: 11299
        line_start: 11299
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 11317
      start: 11299
    functionDepth: 1
    functionLinenumber: 11299
    functionLinenumberEnd: 11317
    functionName: Catch::TeamCityReporter::printSectionHeader
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - assert
    - printHeaderString
    - begin
    - lineOfChars
    - empty
    - end
    - front
    - size
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::printSectionHeader(std::ostream& os)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11167,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - ' _string'
    argTypes:
    - std::ostream
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11175
      start: 11166
    functionDepth: 1
    functionLinenumber: 11166
    functionLinenumberEnd: 11175
    functionName: Catch::printHeaderString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TextFlow::Column::Column
    - find
    linkageType: ''
    returnType: void
    signature: void printHeaderString(std::ostream& os, std::string const& _string,
      std::size_t indent = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11178,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11179,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11180,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11181,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11182,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11183,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11186
      start: 11177
    functionDepth: 2
    functionLinenumber: 11177
    functionLinenumberEnd: 11186
    functionName: Catch::escape
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::replaceInPlace
    - static_cast<std::string>
    linkageType: ''
    returnType: std::string
    signature: std::string escape(StringRef str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11167,1
    - Dst: Catch::TextFlow::Column::Column
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' os'
    - ' _string'
    argTypes:
    - std::ostream
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11175
      start: 11166
    functionDepth: 1
    functionLinenumber: 11166
    functionLinenumberEnd: 11175
    functionName: Catch::printHeaderString
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::TextFlow::Column::Column
    - find
    linkageType: ''
    returnType: void
    signature: void printHeaderString(std::ostream& os, std::string const& _string,
      std::size_t indent = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11178,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11179,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11180,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11181,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11182,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11183,1
    - Dst: Catch::replaceInPlace
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11186
      start: 11177
    functionDepth: 2
    functionLinenumber: 11177
    functionLinenumberEnd: 11186
    functionName: Catch::escape
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::replaceInPlace
    - static_cast<std::string>
    linkageType: ''
    returnType: std::string
    signature: std::string escape(StringRef str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11190
      start: 11190
    functionDepth: 0
    functionLinenumber: 11190
    functionLinenumberEnd: 11190
    functionName: TeamCityReporter::~TeamCityReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::~TeamCityReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' runInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11195
      start: 11192
    functionDepth: 0
    functionLinenumber: 11192
    functionLinenumberEnd: 11195
    functionName: Catch::TeamCityReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - escape
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::testRunStarting( TestRunInfo const& runInfo
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' runStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11200
      start: 11197
    functionDepth: 0
    functionLinenumber: 11197
    functionLinenumberEnd: 11200
    functionName: Catch::TeamCityReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - escape
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::testRunEnded( TestRunStats const& runStats )
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11204,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11205,1
    - Dst: Catch::TeamCityReporter::printSectionHeader
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11209,1
    - Dst: ReusableStringStream::get
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11209,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11212,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11214,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11238,1
    - Dst: CATCH_ERROR
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11243,1
    - Dst: infoMessages::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11245,1
    - Dst: infoMessages::size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11247,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11253,1
    - Dst: getExpressionInMacro
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11255,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11257,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11260,1
    - Dst: okToFail
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11262,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11268,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11269,1
    - Dst: ReusableStringStream::str
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11269,1
    - Dst: flush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11271,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11272
      start: 11202
    functionDepth: 2
    functionLinenumber: 11202
    functionLinenumberEnd: 11272
    functionName: Catch::TeamCityReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - infoMessages::size
    - hasExpression
    - getSourceInfo
    - getExpressionInMacro
    - isOk
    - getExpandedExpression
    - ReusableStringStream::get
    - flush
    - escape
    - ReusableStringStream::str
    - okToFail
    - Catch::TeamCityReporter::printSectionHeader
    - CATCH_ERROR
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::assertionEnded(AssertionStats const& assertionStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11275,1
    - Dst: Catch::StreamingReporterBase::testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11276,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11278,1
    - Dst: flush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11280
      start: 11274
    functionDepth: 1
    functionLinenumber: 11274
    functionLinenumberEnd: 11280
    functionName: Catch::TeamCityReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testCaseStarting
    - flush
    - start
    - escape
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::testCaseStarting(TestCaseInfo const& testInfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11283,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11285,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11287,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11288,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11289,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11291,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11292,1
    - Dst: escape
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11294,1
    - Dst: getElapsedMilliseconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11295,1
    - Dst: flush
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11297
      start: 11282
    functionDepth: 1
    functionLinenumber: 11282
    functionLinenumberEnd: 11297
    functionName: Catch::TeamCityReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - Catch::StreamingReporterBase::testCaseEnded
    - stdErr::empty
    - stdOut::empty
    - flush
    - getElapsedMilliseconds
    - escape
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::testCaseEnded(TestCaseStats const& testCaseStats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11300,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11300,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11302,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11303,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11306,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11307,1
    - Dst: printHeaderString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11309,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11310,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11313,1
    - Dst: lineOfChars
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts:
    - condition: (!m_sectionStack.empty())
      pos:
        line_end: 11299
        line_start: 11299
        source_file: /src/libtorrent/simulation/libsimulator/test/main.cpp
    constantsTouched: []
    func_position:
      end: 11317
      start: 11299
    functionDepth: 1
    functionLinenumber: 11299
    functionLinenumberEnd: 11317
    functionName: Catch::TeamCityReporter::printSectionHeader
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 2
    functionsReached:
    - assert
    - printHeaderString
    - begin
    - lineOfChars
    - empty
    - end
    - front
    - size
    linkageType: ''
    returnType: void
    signature: void TeamCityReporter::printSectionHeader(std::ostream& os)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11338
      start: 11332
    functionDepth: 1
    functionLinenumber: 11332
    functionLinenumberEnd: 11338
    functionName: Catch::XmlReporter::XmlReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void XmlReporter::XmlReporter( ReporterConfig&& _config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11340
      start: 11340
    functionDepth: 0
    functionLinenumber: 11340
    functionLinenumberEnd: 11340
    functionName: XmlReporter::~XmlReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlReporter::~XmlReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11344
      start: 11342
    functionDepth: 0
    functionLinenumber: 11342
    functionLinenumberEnd: 11344
    functionName: Catch::XmlReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string XmlReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11348
      start: 11346
    functionDepth: 0
    functionLinenumber: 11346
    functionLinenumberEnd: 11348
    functionName: Catch::XmlReporter::getStylesheetRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string XmlReporter::getStylesheetRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sourceInfo'
    argTypes:
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11354
      start: 11350
    functionDepth: 0
    functionLinenumber: 11350
    functionLinenumberEnd: 11354
    functionName: Catch::XmlReporter::writeSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    linkageType: ''
    returnType: void
    signature: void XmlReporter::writeSourceInfo( SourceLineInfo const& sourceInfo
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11357,1
    - Dst: Catch::XmlReporter::getStylesheetRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11358,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11359,1
    - Dst: writeStylesheetRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11360,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11361,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11362,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11363,1
    - Dst: libraryVersion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11365,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11366,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11367,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11369
      start: 11356
    functionDepth: 1
    functionLinenumber: 11356
    functionLinenumberEnd: 11369
    functionName: Catch::XmlReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeStylesheetRef
    - writeAttribute
    - Catch::XmlReporter::getStylesheetRef
    - libraryVersion
    - name
    - rngSeed
    - std::string::empty
    - Catch::StreamingReporterBase::testRunStarting
    - startElement
    - testSpec
    linkageType: ''
    returnType: void
    signature: void XmlReporter::testRunStarting( TestRunInfo const& testInfo )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11372,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11373,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11374,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11374,1
    - Dst: tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11375,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11377,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11379,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11380,1
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11382
      start: 11371
    functionDepth: 1
    functionLinenumber: 11371
    functionLinenumberEnd: 11382
    functionName: Catch::XmlReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - Catch::XmlReporter::writeSourceInfo
    - Catch::StreamingReporterBase::testCaseStarting
    - showDurations
    - trim
    - startElement
    - tagsAsString
    - start
    - ensureTagClosed
    linkageType: ''
    returnType: void
    signature: void XmlReporter::testCaseStarting( TestCaseInfo const& testInfo )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11385,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11387,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11388,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11388,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11389,1
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11392
      start: 11384
    functionDepth: 1
    functionLinenumber: 11384
    functionLinenumberEnd: 11392
    functionName: Catch::XmlReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - Catch::XmlReporter::writeSourceInfo
    - Catch::StreamingReporterBase::sectionStarting
    - trim
    - startElement
    - ensureTagClosed
    linkageType: ''
    returnType: void
    signature: void XmlReporter::sectionStarting( SectionInfo const& sectionInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11394
      start: 11394
    functionDepth: 0
    functionLinenumber: 11394
    functionLinenumberEnd: 11394
    functionName: Catch::XmlReporter::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlReporter::assertionStarting( AssertionInfo const& )
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11400,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11400,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11402,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11406,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11407,1
    - Dst: auto::writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11408,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11410,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11411,1
    - Dst: auto::writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11412,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11418,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11419,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11424,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11425,1
    - Dst: succeeded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11426,1
    - Dst: getTestMacroName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11427,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11429,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11429,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11431,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11432,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11433,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11434,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11438,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11440,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11441,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11441,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11442,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11442,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11443,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11446,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11447,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11447,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11448,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11448,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11449,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11452,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11453,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11459,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11460,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11460,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11461,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11461,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11462,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11465,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11466,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11466,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11467,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11467,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11468,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11474,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11475,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11476
      start: 11396
    functionDepth: 1
    functionLinenumber: 11396
    functionLinenumberEnd: 11476
    functionName: Catch::XmlReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - getTestMacroName
    - hasExpression
    - getSourceInfo
    - includeSuccessfulResults
    - Catch::XmlReporter::writeSourceInfo
    - isOk
    - succeeded
    - getExpandedExpression
    - auto::writeText
    - getMessage
    - writeText
    - getExpression
    - startElement
    - scopedElement
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::assertionEnded( AssertionStats const& assertionStats
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11479,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11482,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11483,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11484,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11485,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11486,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11488,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11489,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' sectionStats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11494
      start: 11478
    functionDepth: 1
    functionLinenumber: 11478
    functionLinenumberEnd: 11494
    functionName: Catch::XmlReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - XmlWriter::ScopedElement::writeAttribute
    - Catch::StreamingReporterBase::sectionEnded
    - showDurations
    - scopedElement
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::sectionEnded( SectionStats const& sectionStats )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11497,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11498,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11499,1
    - Dst: totals::assertions::allOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11499,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11500,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11502,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11503,1
    - Dst: getElapsedSeconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11503,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11504,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11505,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11505,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11505,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11506,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11507,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11507,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11507,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11510
      start: 11496
    functionDepth: 1
    functionLinenumber: 11496
    functionLinenumberEnd: 11510
    functionName: Catch::XmlReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endElement
    - Catch::StreamingReporterBase::testCaseEnded
    - stdErr::empty
    - StringRef
    - totals::assertions::allOk
    - stdOut::empty
    - getElapsedSeconds
    - showDurations
    - trim
    - scopedElement
    - XmlWriter::ScopedElement::writeAttribute
    linkageType: ''
    returnType: void
    signature: void XmlReporter::testCaseEnded( TestCaseStats const& testCaseStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11513,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11514,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11519,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11525
      start: 11512
    functionDepth: 1
    functionLinenumber: 11512
    functionLinenumberEnd: 11525
    functionName: Catch::XmlReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - Catch::StreamingReporterBase::testRunEnded
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::testRunEnded( TestRunStats const& testRunStats )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11530
      start: 11527
    functionDepth: 0
    functionLinenumber: 11527
    functionLinenumberEnd: 11530
    functionName: Catch::XmlReporter::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - startElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::benchmarkPreparing( StringRef name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - BenchmarkInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11539
      start: 11532
    functionDepth: 0
    functionLinenumber: 11532
    functionLinenumberEnd: 11539
    functionName: Catch::XmlReporter::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    linkageType: ''
    returnType: void
    signature: void XmlReporter::benchmarkStarting(BenchmarkInfo const &info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11542,1
    - Dst: mean::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11543,1
    - Dst: mean::lower_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11544,1
    - Dst: mean::upper_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11545,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11547,1
    - Dst: standardDeviation::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11548,1
    - Dst: standardDeviation::lower_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11549,1
    - Dst: standardDeviation::upper_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11550,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11552,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' benchmarkStats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11559
      start: 11541
    functionDepth: 0
    functionLinenumber: 11541
    functionLinenumberEnd: 11559
    functionName: Catch::XmlReporter::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - mean::upper_bound::count
    - endElement
    - mean::point::count
    - standardDeviation::lower_bound::count
    - scopedElement
    - standardDeviation::upper_bound::count
    - standardDeviation::point::count
    - mean::lower_bound::count
    linkageType: ''
    returnType: void
    signature: void XmlReporter::benchmarkEnded(BenchmarkStats<> const& benchmarkStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11562,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11565
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11565
    functionName: Catch::XmlReporter::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::benchmarkFailed(StringRef error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11568,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11570,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11571,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ReporterDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11578
      start: 11567
    functionDepth: 0
    functionLinenumber: 11567
    functionLinenumberEnd: 11578
    functionName: Catch::XmlReporter::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - startElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::listReporters(std::vector<ReporterDescription> const&
      descriptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11581,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11583,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11584,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11591
      start: 11580
    functionDepth: 0
    functionLinenumber: 11580
    functionLinenumberEnd: 11591
    functionName: Catch::XmlReporter::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - startElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::listListeners(std::vector<ListenerDescription> const&
      descriptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11594,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11596,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11597,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11598,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11601,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11604,1
    - Dst: tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11605,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11608,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11609,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11612,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11593
    functionDepth: 1
    functionLinenumber: 11593
    functionLinenumberEnd: 11616
    functionName: Catch::XmlReporter::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - to_string
    - startElement
    - scopedElement
    - tagsAsString
    linkageType: ''
    returnType: void
    signature: void XmlReporter::listTests(std::vector<TestCaseHandle> const& tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11619,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11621,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11622,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11623,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11625,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<TagInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11632
      start: 11618
    functionDepth: 1
    functionLinenumber: 11618
    functionLinenumberEnd: 11632
    functionName: Catch::XmlReporter::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - to_string
    - startElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::listTags(std::vector<TagInfo> const& tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CATCH_MOVE
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' _config'
    argTypes:
    - ReporterConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11338
      start: 11332
    functionDepth: 1
    functionLinenumber: 11332
    functionLinenumberEnd: 11338
    functionName: Catch::XmlReporter::XmlReporter
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - CATCH_MOVE
    linkageType: ''
    returnType: void
    signature: void XmlReporter::XmlReporter( ReporterConfig&& _config )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11340
      start: 11340
    functionDepth: 0
    functionLinenumber: 11340
    functionLinenumberEnd: 11340
    functionName: XmlReporter::~XmlReporter()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlReporter::~XmlReporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11344
      start: 11342
    functionDepth: 0
    functionLinenumber: 11342
    functionLinenumberEnd: 11344
    functionName: Catch::XmlReporter::getDescription
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string XmlReporter::getDescription()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11348
      start: 11346
    functionDepth: 0
    functionLinenumber: 11346
    functionLinenumberEnd: 11348
    functionName: Catch::XmlReporter::getStylesheetRef
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 1
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string XmlReporter::getStylesheetRef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sourceInfo'
    argTypes:
    - SourceLineInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11354
      start: 11350
    functionDepth: 0
    functionLinenumber: 11350
    functionLinenumberEnd: 11354
    functionName: Catch::XmlReporter::writeSourceInfo
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 3
    functionsReached:
    - writeAttribute
    linkageType: ''
    returnType: void
    signature: void XmlReporter::writeSourceInfo( SourceLineInfo const& sourceInfo
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testRunStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11357,1
    - Dst: Catch::XmlReporter::getStylesheetRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11358,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11359,1
    - Dst: writeStylesheetRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11360,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11361,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11362,1
    - Dst: rngSeed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11363,1
    - Dst: libraryVersion
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11365,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11366,1
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11367,1
    - Dst: testSpec
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestRunInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11369
      start: 11356
    functionDepth: 1
    functionLinenumber: 11356
    functionLinenumberEnd: 11369
    functionName: Catch::XmlReporter::testRunStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeStylesheetRef
    - writeAttribute
    - Catch::XmlReporter::getStylesheetRef
    - libraryVersion
    - name
    - rngSeed
    - std::string::empty
    - Catch::StreamingReporterBase::testRunStarting
    - startElement
    - testSpec
    linkageType: ''
    returnType: void
    signature: void XmlReporter::testRunStarting( TestRunInfo const& testInfo )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11372,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11373,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11374,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11374,1
    - Dst: tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11375,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11377,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11379,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11380,1
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' testInfo'
    argTypes:
    - TestCaseInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11382
      start: 11371
    functionDepth: 1
    functionLinenumber: 11371
    functionLinenumberEnd: 11382
    functionName: Catch::XmlReporter::testCaseStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - Catch::XmlReporter::writeSourceInfo
    - Catch::StreamingReporterBase::testCaseStarting
    - showDurations
    - trim
    - startElement
    - tagsAsString
    - start
    - ensureTagClosed
    linkageType: ''
    returnType: void
    signature: void XmlReporter::testCaseStarting( TestCaseInfo const& testInfo )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::sectionStarting
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11385,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11387,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11388,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11388,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11389,1
    - Dst: ensureTagClosed
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' sectionInfo'
    argTypes:
    - SectionInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11392
      start: 11384
    functionDepth: 1
    functionLinenumber: 11384
    functionLinenumberEnd: 11392
    functionName: Catch::XmlReporter::sectionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - StringRef
    - Catch::XmlReporter::writeSourceInfo
    - Catch::StreamingReporterBase::sectionStarting
    - trim
    - startElement
    - ensureTagClosed
    linkageType: ''
    returnType: void
    signature: void XmlReporter::sectionStarting( SectionInfo const& sectionInfo )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11394
      start: 11394
    functionDepth: 0
    functionLinenumber: 11394
    functionLinenumberEnd: 11394
    functionName: Catch::XmlReporter::assertionStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlReporter::assertionStarting( AssertionInfo const& )
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: includeSuccessfulResults
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11400,1
    - Dst: isOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11400,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11402,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11406,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11407,1
    - Dst: auto::writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11408,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11410,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11411,1
    - Dst: auto::writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11412,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11418,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11419,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11424,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11425,1
    - Dst: succeeded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11426,1
    - Dst: getTestMacroName
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11427,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11429,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11429,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11431,1
    - Dst: getExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11432,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11433,1
    - Dst: getExpandedExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11434,1
    - Dst: getResultType
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11438,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11440,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11441,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11441,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11442,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11442,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11443,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11446,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11447,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11447,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11448,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11448,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11449,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11452,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11453,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11459,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11460,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11460,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11461,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11461,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11462,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11465,1
    - Dst: Catch::XmlReporter::writeSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11466,1
    - Dst: getSourceInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11466,1
    - Dst: writeText
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11467,1
    - Dst: getMessage
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11467,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11468,1
    - Dst: hasExpression
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11474,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11475,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 1
    argNames:
    - ' assertionStats'
    argTypes:
    - AssertionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11476
      start: 11396
    functionDepth: 1
    functionLinenumber: 11396
    functionLinenumberEnd: 11476
    functionName: Catch::XmlReporter::assertionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getResultType
    - getTestMacroName
    - hasExpression
    - getSourceInfo
    - includeSuccessfulResults
    - Catch::XmlReporter::writeSourceInfo
    - isOk
    - succeeded
    - getExpandedExpression
    - auto::writeText
    - getMessage
    - writeText
    - getExpression
    - startElement
    - scopedElement
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::assertionEnded( AssertionStats const& assertionStats
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::sectionEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11479,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11482,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11483,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11484,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11485,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11486,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11488,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11489,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' sectionStats'
    argTypes:
    - SectionStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11494
      start: 11478
    functionDepth: 1
    functionLinenumber: 11478
    functionLinenumberEnd: 11494
    functionName: Catch::XmlReporter::sectionEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - XmlWriter::ScopedElement::writeAttribute
    - Catch::StreamingReporterBase::sectionEnded
    - showDurations
    - scopedElement
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::sectionEnded( SectionStats const& sectionStats )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testCaseEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11497,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11498,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11499,1
    - Dst: totals::assertions::allOk
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11499,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11500,1
    - Dst: showDurations
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11502,1
    - Dst: XmlWriter::ScopedElement::writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11503,1
    - Dst: getElapsedSeconds
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11503,1
    - Dst: stdOut::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11504,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11505,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11505,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11505,1
    - Dst: stdErr::empty
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11506,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11507,1
    - Dst: trim
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11507,1
    - Dst: StringRef
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11507,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' testCaseStats'
    argTypes:
    - TestCaseStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11510
      start: 11496
    functionDepth: 1
    functionLinenumber: 11496
    functionLinenumberEnd: 11510
    functionName: Catch::XmlReporter::testCaseEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - endElement
    - Catch::StreamingReporterBase::testCaseEnded
    - stdErr::empty
    - StringRef
    - totals::assertions::allOk
    - stdOut::empty
    - getElapsedSeconds
    - showDurations
    - trim
    - scopedElement
    - XmlWriter::ScopedElement::writeAttribute
    linkageType: ''
    returnType: void
    signature: void XmlReporter::testCaseEnded( TestCaseStats const& testCaseStats
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::StreamingReporterBase::testRunEnded
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11513,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11514,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11519,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' testRunStats'
    argTypes:
    - TestRunStats
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11525
      start: 11512
    functionDepth: 1
    functionLinenumber: 11512
    functionLinenumberEnd: 11525
    functionName: Catch::XmlReporter::testRunEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - Catch::StreamingReporterBase::testRunEnded
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::testRunEnded( TestRunStats const& testRunStats )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11530
      start: 11527
    functionDepth: 0
    functionLinenumber: 11527
    functionLinenumberEnd: 11530
    functionName: Catch::XmlReporter::benchmarkPreparing
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - startElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::benchmarkPreparing( StringRef name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeAttribute
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - BenchmarkInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11539
      start: 11532
    functionDepth: 0
    functionLinenumber: 11532
    functionLinenumberEnd: 11539
    functionName: Catch::XmlReporter::benchmarkStarting
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - writeAttribute
    linkageType: ''
    returnType: void
    signature: void XmlReporter::benchmarkStarting(BenchmarkInfo const &info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11542,1
    - Dst: mean::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11543,1
    - Dst: mean::lower_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11544,1
    - Dst: mean::upper_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11545,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11547,1
    - Dst: standardDeviation::point::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11548,1
    - Dst: standardDeviation::lower_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11549,1
    - Dst: standardDeviation::upper_bound::count
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11550,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11552,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' benchmarkStats'
    argTypes:
    - BenchmarkStats<>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11559
      start: 11541
    functionDepth: 0
    functionLinenumber: 11541
    functionLinenumberEnd: 11559
    functionName: Catch::XmlReporter::benchmarkEnded
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - mean::upper_bound::count
    - endElement
    - mean::point::count
    - standardDeviation::lower_bound::count
    - scopedElement
    - standardDeviation::upper_bound::count
    - standardDeviation::point::count
    - mean::lower_bound::count
    linkageType: ''
    returnType: void
    signature: void XmlReporter::benchmarkEnded(BenchmarkStats<> const& benchmarkStats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11562,1
    - Dst: endElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - StringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11565
      start: 11561
    functionDepth: 0
    functionLinenumber: 11561
    functionLinenumberEnd: 11565
    functionName: Catch::XmlReporter::benchmarkFailed
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - endElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::benchmarkFailed(StringRef error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11568,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11570,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11571,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ReporterDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11578
      start: 11567
    functionDepth: 0
    functionLinenumber: 11567
    functionLinenumberEnd: 11578
    functionName: Catch::XmlReporter::listReporters
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - startElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::listReporters(std::vector<ReporterDescription> const&
      descriptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11581,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11583,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11584,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' descriptions'
    argTypes:
    - std::vector<ListenerDescription>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11591
      start: 11580
    functionDepth: 0
    functionLinenumber: 11580
    functionLinenumberEnd: 11591
    functionName: Catch::XmlReporter::listListeners
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - startElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::listListeners(std::vector<ListenerDescription> const&
      descriptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11594,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11596,1
    - Dst: getTestCaseInfo
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11597,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11598,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11601,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11604,1
    - Dst: tagsAsString
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11605,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11608,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11609,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11612,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::vector<TestCaseHandle>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11616
      start: 11593
    functionDepth: 1
    functionLinenumber: 11593
    functionLinenumberEnd: 11616
    functionName: Catch::XmlReporter::listTests
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - getTestCaseInfo
    - to_string
    - startElement
    - scopedElement
    - tagsAsString
    linkageType: ''
    returnType: void
    signature: void XmlReporter::listTests(std::vector<TestCaseHandle> const& tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11619,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11621,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11622,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11623,1
    - Dst: scopedElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11625,1
    - Dst: startElement
      Src: /src/libtorrent/simulation/libsimulator/test/main.cpp:11627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' tags'
    argTypes:
    - std::vector<TagInfo>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11632
      start: 11618
    functionDepth: 1
    functionLinenumber: 11618
    functionLinenumberEnd: 11632
    functionName: Catch::XmlReporter::listTags
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/main.cpp
    functionUses: 0
    functionsReached:
    - scopedElement
    - to_string
    - startElement
    linkageType: ''
    returnType: void
    signature: void XmlReporter::listTags(std::vector<TagInfo> const& tags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:47,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:47,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:52,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:52,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:58,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:60,1
    - Dst: async_receive_from
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:64,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:64,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:65,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:66,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' ec'
    - bytes_transferred
    - ' s'
    - ' ep'
    argTypes:
    - boost::system::error_code
    - std::size_t
    - udp::socket
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: on_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - async_receive_from
    - duration_cast<milliseconds>
    - message
    - std::ref
    - both_sides_from_store_buffer
    - sim::chrono::high_resolution_clock::now
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void on_receive(boost::system::error_code const& ec, std::size_t bytes_transferred\n\t,
      udp::socket& s, udp::endpoint& ep)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:47,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:47,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:52,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:52,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:58,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:60,1
    - Dst: async_receive_from
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:64,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:64,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:65,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:66,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' ec'
    - bytes_transferred
    - ' s'
    - ' ep'
    argTypes:
    - boost::system::error_code
    - std::size_t
    - udp::socket
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: on_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/test/udp_socket.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - async_receive_from
    - duration_cast<milliseconds>
    - message
    - std::ref
    - both_sides_from_store_buffer
    - sim::chrono::high_resolution_clock::now
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void on_receive(boost::system::error_code const& ec, std::size_t bytes_transferred\n\t,
      udp::socket& s, udp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: tcp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:49,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:62,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:64,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:65,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:66,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:67,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:68,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:73,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:75,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:78,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:80,1
    - Dst: rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: tcp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_socket
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(socket&& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:88,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:90,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:93,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:94,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:101,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:102,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: tcp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - unbind_socket
    - reset
    - local_endpoint
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::~socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:109,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:111,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:112,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:113,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:117,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - tcp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: tcp::socket::open(tcp protocol, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - clear
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol, boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:127,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: tcp::socket::open(tcp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:139,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:146,1
    - Dst: replace_last
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' bind_ip'
    - ' c'
    - ' ec'
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<aux::channel>
    - boost::system::error_code
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: "tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - assert
    - open
    - rand_v6
    - message
    - replace_last
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:159,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:165,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:172,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: "tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind_socket
    - code
    - make_error_code
    - address
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:182,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: tcp::socket::bind(ip::tcp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::socket::bind(ip::tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:189,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: tcp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:197,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:203,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:208,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:215,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:218,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:220,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:221,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:222,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:229,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:230,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:238,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:245,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:247,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:251,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: tcp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - send_packet
    - reset
    - std::move
    - address
    - route::empty
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - clear
    - port
    - unbind_socket
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:267,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:270,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: tcp::socket::available(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available(boost::system::error_code& ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:295,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: tcp::socket::available() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - available
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:302,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:303,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: tcp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - abort_send_handlers
    - libtorrent::socks_error::make_error_code
    - abort_recv_handlers
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:316,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: tcp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:325,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:331,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: tcp::socket::remote_endpoint(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_idx
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:341,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: tcp::socket::remote_endpoint() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:351,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:352,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:358,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:359,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:364,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:377,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:380,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:385,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ' target'
    - h
    argTypes:
    - tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (h)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!m_connect_handler)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: "tcp::socket::async_connect(tcp::endpoint const& target\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ip::address_v6::any
    - reset
    - auto::address
    - expires_after
    - sim::aux::make_malloc
    - address
    - protocol
    - assert
    - async_wait
    - open
    - init_rand_address
    - libtorrent::total_milliseconds
    - std::bind
    - internal_connect
    - ip::address_v4::any
    - post
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_connect(tcp::endpoint const& target\n\t\t,
      aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:404,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:406,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: tcp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_recv_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:419,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: tcp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:432,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:435,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:438,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: "tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - write_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:464,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:469,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:477,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:481,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:483,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:485,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:503,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: aux::packet::buffer::assign
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:510,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:511,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:516,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 538
    functionName: "tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - send_packet
    - std::move
    - address
    - aux::packet::buffer::assign
    - libtorrent::socks_error::make_error_code
    - route::empty
    - local_endpoint
    - port
    - static_cast<std::uint8_t const*>
    - remote_idx
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:547,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:552,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:558,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:562,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:564,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:576,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:578,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:586,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:589,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:596,1
    - Dst: buffers_t::iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:598,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:599,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffers_t::iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:603,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:609,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:617,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:626,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:629,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:633,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (p.ec)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (buf_offset <= buf_size)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (total_received > 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 637
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 637
    functionName: "tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - reset
    - begin
    - erase
    - empty
    - libtorrent::socks_error::make_error_code
    - end
    - buffers_t::iterator::size
    - front
    - buffer::size
    - memcpy
    - buffer::data
    - buffer::erase
    - static_cast<char*>
    - clear
    - buffer::empty
    - buffers_t::iterator::data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:646,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:647,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:652,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:661,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts:
    - condition: (m_incoming_queue.empty())
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!bufs.empty())
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (bufs[0].size())
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 668
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 668
    functionName: "tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - read_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:676,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:681,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:689,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: "tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - clear
    - sim::aux::make_malloc
    - available
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:701,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 715
    functionName: tcp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - async_wait_read_impl
    - async_read_some_impl
    - size
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_reader()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:723,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: tcp::socket::maybe_wakeup_writer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: tcp::socket::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::socket::internal_is_listening()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:737,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:738,1
    - Dst: self_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:740,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:744,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:747,1
    - Dst: auto*::log_tcp
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:748,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 752
    functionName: tcp::socket::send_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - self_idx
    - std::move
    - forward_packet
    - std::uint32_t
    - aux::packet::buffer::size
    - auto*::log_tcp
    - sim
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::send_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:756,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: tcp::socket::packet_dropped(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - remote_idx
    - std::move
    linkageType: ''
    returnType: void
    signature: void tcp::socket::packet_dropped(aux::packet p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:779,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:788,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:791,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:792,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:796,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:815,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:826,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:830,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:831,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:841,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:851,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:867,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:869,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:870,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:873,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (it != m_outstanding_packet_sizes.end())
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_bytes_in_flight >= acked_bytes)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_connect_handler)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false && "uninitialized packet")
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 880
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 880
    functionName: tcp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - empty
    - maybe_wakeup_writer
    - push_back
    - reset
    - end
    - emplace
    - front
    - sim::aux::make_malloc
    - remote_idx
    - std::printf
    - assert
    - erase
    - maybe_wakeup_reader
    - size
    - std::bind
    - send_packet
    - post
    - forward_packet
    - find
    linkageType: ''
    returnType: void
    signature: void tcp::socket::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: tcp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:49,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:62,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:64,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:65,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:66,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:67,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:68,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:73,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:75,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:78,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:80,1
    - Dst: rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: tcp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_socket
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(socket&& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:88,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:90,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:93,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:94,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:101,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:102,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: tcp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - unbind_socket
    - reset
    - local_endpoint
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::~socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:109,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:111,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:112,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:113,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:117,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - tcp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: tcp::socket::open(tcp protocol, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - clear
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol, boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:127,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: tcp::socket::open(tcp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:139,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:146,1
    - Dst: replace_last
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' bind_ip'
    - ' c'
    - ' ec'
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<aux::channel>
    - boost::system::error_code
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: "tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - assert
    - open
    - rand_v6
    - message
    - replace_last
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:159,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:165,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:172,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: "tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind_socket
    - code
    - make_error_code
    - address
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:182,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: tcp::socket::bind(ip::tcp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::socket::bind(ip::tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:189,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: tcp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:197,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:203,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:208,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:215,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:218,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:220,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:221,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:222,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:229,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:230,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:238,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:245,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:247,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:251,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: tcp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - send_packet
    - reset
    - std::move
    - address
    - route::empty
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - clear
    - port
    - unbind_socket
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:267,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:270,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: tcp::socket::available(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available(boost::system::error_code& ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:295,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: tcp::socket::available() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - available
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:302,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:303,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: tcp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - abort_send_handlers
    - libtorrent::socks_error::make_error_code
    - abort_recv_handlers
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:316,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: tcp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:325,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:331,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: tcp::socket::remote_endpoint(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_idx
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:341,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: tcp::socket::remote_endpoint() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:351,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:352,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:358,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:359,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:364,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:377,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:380,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:385,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ' target'
    - h
    argTypes:
    - tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (h)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!m_connect_handler)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: "tcp::socket::async_connect(tcp::endpoint const& target\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ip::address_v6::any
    - reset
    - auto::address
    - expires_after
    - sim::aux::make_malloc
    - address
    - protocol
    - assert
    - async_wait
    - open
    - init_rand_address
    - libtorrent::total_milliseconds
    - std::bind
    - internal_connect
    - ip::address_v4::any
    - post
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_connect(tcp::endpoint const& target\n\t\t,
      aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:404,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:406,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: tcp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_recv_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:419,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: tcp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:432,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:435,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:438,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: "tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - write_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:464,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:469,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:477,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:481,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:483,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:485,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:503,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: aux::packet::buffer::assign
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:510,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:511,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:516,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 538
    functionName: "tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - send_packet
    - std::move
    - address
    - aux::packet::buffer::assign
    - libtorrent::socks_error::make_error_code
    - route::empty
    - local_endpoint
    - port
    - static_cast<std::uint8_t const*>
    - remote_idx
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:547,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:552,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:558,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:562,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:564,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:576,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:578,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:586,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:589,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:596,1
    - Dst: buffers_t::iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:598,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:599,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffers_t::iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:603,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:609,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:617,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:626,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:629,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:633,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (p.ec)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (buf_offset <= buf_size)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (total_received > 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 637
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 637
    functionName: "tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - reset
    - begin
    - erase
    - empty
    - libtorrent::socks_error::make_error_code
    - end
    - buffers_t::iterator::size
    - front
    - buffer::size
    - memcpy
    - buffer::data
    - buffer::erase
    - static_cast<char*>
    - clear
    - buffer::empty
    - buffers_t::iterator::data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:646,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:647,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:652,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:661,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts:
    - condition: (m_incoming_queue.empty())
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!bufs.empty())
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (bufs[0].size())
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 668
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 668
    functionName: "tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - read_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:676,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:681,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:689,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: "tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - clear
    - sim::aux::make_malloc
    - available
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:701,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 715
    functionName: tcp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - async_wait_read_impl
    - async_read_some_impl
    - size
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_reader()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:723,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: tcp::socket::maybe_wakeup_writer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: tcp::socket::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::socket::internal_is_listening()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:737,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:738,1
    - Dst: self_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:740,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:744,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:747,1
    - Dst: auto*::log_tcp
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:748,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 752
    functionName: tcp::socket::send_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - self_idx
    - std::move
    - forward_packet
    - std::uint32_t
    - aux::packet::buffer::size
    - auto*::log_tcp
    - sim
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::send_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:756,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: tcp::socket::packet_dropped(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - remote_idx
    - std::move
    linkageType: ''
    returnType: void
    signature: void tcp::socket::packet_dropped(aux::packet p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:779,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:788,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:791,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:792,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:796,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:815,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:826,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:830,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:831,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:841,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:851,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:867,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:869,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:870,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:873,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (it != m_outstanding_packet_sizes.end())
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_bytes_in_flight >= acked_bytes)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_connect_handler)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false && "uninitialized packet")
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 880
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 880
    functionName: tcp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - empty
    - maybe_wakeup_writer
    - push_back
    - reset
    - end
    - emplace
    - front
    - sim::aux::make_malloc
    - remote_idx
    - std::printf
    - assert
    - erase
    - maybe_wakeup_reader
    - size
    - std::bind
    - send_packet
    - post
    - forward_packet
    - find
    linkageType: ''
    returnType: void
    signature: void tcp::socket::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: tcp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:49,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:62,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:64,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:65,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:66,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:67,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:68,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:73,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:75,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:78,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:80,1
    - Dst: rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: tcp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_socket
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(socket&& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:88,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:90,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:93,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:94,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:101,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:102,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: tcp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - unbind_socket
    - reset
    - local_endpoint
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::~socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:109,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:111,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:112,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:113,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:117,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - tcp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: tcp::socket::open(tcp protocol, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - clear
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol, boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:127,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: tcp::socket::open(tcp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:139,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:146,1
    - Dst: replace_last
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' bind_ip'
    - ' c'
    - ' ec'
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<aux::channel>
    - boost::system::error_code
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: "tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - assert
    - open
    - rand_v6
    - message
    - replace_last
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:159,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:165,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:172,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: "tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind_socket
    - code
    - make_error_code
    - address
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:182,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: tcp::socket::bind(ip::tcp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::socket::bind(ip::tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:189,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: tcp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:197,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:203,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:208,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:215,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:218,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:220,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:221,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:222,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:229,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:230,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:238,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:245,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:247,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:251,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: tcp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - send_packet
    - reset
    - std::move
    - address
    - route::empty
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - clear
    - port
    - unbind_socket
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:267,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:270,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: tcp::socket::available(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available(boost::system::error_code& ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:295,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: tcp::socket::available() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - available
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:302,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:303,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: tcp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - abort_send_handlers
    - libtorrent::socks_error::make_error_code
    - abort_recv_handlers
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:316,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: tcp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:325,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:331,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: tcp::socket::remote_endpoint(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_idx
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:341,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: tcp::socket::remote_endpoint() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:351,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:352,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:358,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:359,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:364,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:377,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:380,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:385,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ' target'
    - h
    argTypes:
    - tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (h)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!m_connect_handler)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: "tcp::socket::async_connect(tcp::endpoint const& target\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ip::address_v6::any
    - reset
    - auto::address
    - expires_after
    - sim::aux::make_malloc
    - address
    - protocol
    - assert
    - async_wait
    - open
    - init_rand_address
    - libtorrent::total_milliseconds
    - std::bind
    - internal_connect
    - ip::address_v4::any
    - post
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_connect(tcp::endpoint const& target\n\t\t,
      aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:404,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:406,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: tcp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_recv_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:419,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: tcp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:432,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:435,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:438,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: "tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - write_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:464,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:469,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:477,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:481,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:483,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:485,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:503,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: aux::packet::buffer::assign
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:510,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:511,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:516,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 538
    functionName: "tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - send_packet
    - std::move
    - address
    - aux::packet::buffer::assign
    - libtorrent::socks_error::make_error_code
    - route::empty
    - local_endpoint
    - port
    - static_cast<std::uint8_t const*>
    - remote_idx
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:547,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:552,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:558,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:562,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:564,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:576,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:578,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:586,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:589,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:596,1
    - Dst: buffers_t::iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:598,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:599,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffers_t::iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:603,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:609,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:617,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:626,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:629,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:633,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (p.ec)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (buf_offset <= buf_size)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (total_received > 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 637
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 637
    functionName: "tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - reset
    - begin
    - erase
    - empty
    - libtorrent::socks_error::make_error_code
    - end
    - buffers_t::iterator::size
    - front
    - buffer::size
    - memcpy
    - buffer::data
    - buffer::erase
    - static_cast<char*>
    - clear
    - buffer::empty
    - buffers_t::iterator::data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:646,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:647,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:652,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:661,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts:
    - condition: (m_incoming_queue.empty())
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!bufs.empty())
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (bufs[0].size())
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 668
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 668
    functionName: "tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - read_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:676,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:681,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:689,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: "tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - clear
    - sim::aux::make_malloc
    - available
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:701,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 715
    functionName: tcp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - async_wait_read_impl
    - async_read_some_impl
    - size
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_reader()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:723,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: tcp::socket::maybe_wakeup_writer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: tcp::socket::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::socket::internal_is_listening()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:737,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:738,1
    - Dst: self_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:740,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:744,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:747,1
    - Dst: auto*::log_tcp
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:748,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 752
    functionName: tcp::socket::send_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - self_idx
    - std::move
    - forward_packet
    - std::uint32_t
    - aux::packet::buffer::size
    - auto*::log_tcp
    - sim
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::send_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:756,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: tcp::socket::packet_dropped(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - remote_idx
    - std::move
    linkageType: ''
    returnType: void
    signature: void tcp::socket::packet_dropped(aux::packet p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:779,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:788,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:791,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:792,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:796,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:815,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:826,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:830,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:831,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:841,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:851,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:867,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:869,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:870,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:873,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (it != m_outstanding_packet_sizes.end())
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_bytes_in_flight >= acked_bytes)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_connect_handler)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false && "uninitialized packet")
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 880
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 880
    functionName: tcp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - empty
    - maybe_wakeup_writer
    - push_back
    - reset
    - end
    - emplace
    - front
    - sim::aux::make_malloc
    - remote_idx
    - std::printf
    - assert
    - erase
    - maybe_wakeup_reader
    - size
    - std::bind
    - send_packet
    - post
    - forward_packet
    - find
    linkageType: ''
    returnType: void
    signature: void tcp::socket::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: tcp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:49,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:62,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:64,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:65,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:66,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:67,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:68,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:73,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:75,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:78,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:80,1
    - Dst: rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: tcp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_socket
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(socket&& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:88,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:90,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:93,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:94,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:101,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:102,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: tcp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - unbind_socket
    - reset
    - local_endpoint
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::~socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:109,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:111,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:112,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:113,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:117,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - tcp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: tcp::socket::open(tcp protocol, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - clear
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol, boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:127,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: tcp::socket::open(tcp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:139,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:146,1
    - Dst: replace_last
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' bind_ip'
    - ' c'
    - ' ec'
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<aux::channel>
    - boost::system::error_code
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: "tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - assert
    - open
    - rand_v6
    - message
    - replace_last
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:159,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:165,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:172,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: "tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind_socket
    - code
    - make_error_code
    - address
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:182,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: tcp::socket::bind(ip::tcp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::socket::bind(ip::tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:189,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: tcp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:197,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:203,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:208,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:215,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:218,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:220,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:221,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:222,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:229,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:230,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:238,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:245,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:247,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:251,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: tcp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - send_packet
    - reset
    - std::move
    - address
    - route::empty
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - clear
    - port
    - unbind_socket
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:267,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:270,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: tcp::socket::available(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available(boost::system::error_code& ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:295,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: tcp::socket::available() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - available
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:302,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:303,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: tcp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - abort_send_handlers
    - libtorrent::socks_error::make_error_code
    - abort_recv_handlers
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:316,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: tcp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:325,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:331,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: tcp::socket::remote_endpoint(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_idx
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:341,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: tcp::socket::remote_endpoint() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:351,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:352,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:358,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:359,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:364,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:377,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:380,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:385,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ' target'
    - h
    argTypes:
    - tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (h)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!m_connect_handler)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: "tcp::socket::async_connect(tcp::endpoint const& target\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ip::address_v6::any
    - reset
    - auto::address
    - expires_after
    - sim::aux::make_malloc
    - address
    - protocol
    - assert
    - async_wait
    - open
    - init_rand_address
    - libtorrent::total_milliseconds
    - std::bind
    - internal_connect
    - ip::address_v4::any
    - post
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_connect(tcp::endpoint const& target\n\t\t,
      aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:404,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:406,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: tcp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_recv_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:419,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: tcp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:432,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:435,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:438,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: "tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - write_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:464,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:469,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:477,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:481,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:483,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:485,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:503,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: aux::packet::buffer::assign
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:510,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:511,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:516,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 538
    functionName: "tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - send_packet
    - std::move
    - address
    - aux::packet::buffer::assign
    - libtorrent::socks_error::make_error_code
    - route::empty
    - local_endpoint
    - port
    - static_cast<std::uint8_t const*>
    - remote_idx
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:547,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:552,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:558,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:562,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:564,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:576,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:578,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:586,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:589,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:596,1
    - Dst: buffers_t::iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:598,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:599,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffers_t::iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:603,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:609,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:617,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:626,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:629,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:633,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (p.ec)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (buf_offset <= buf_size)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (total_received > 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 637
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 637
    functionName: "tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - reset
    - begin
    - erase
    - empty
    - libtorrent::socks_error::make_error_code
    - end
    - buffers_t::iterator::size
    - front
    - buffer::size
    - memcpy
    - buffer::data
    - buffer::erase
    - static_cast<char*>
    - clear
    - buffer::empty
    - buffers_t::iterator::data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:646,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:647,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:652,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:661,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts:
    - condition: (m_incoming_queue.empty())
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!bufs.empty())
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (bufs[0].size())
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 668
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 668
    functionName: "tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - read_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:676,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:681,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:689,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: "tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - clear
    - sim::aux::make_malloc
    - available
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:701,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 715
    functionName: tcp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - async_wait_read_impl
    - async_read_some_impl
    - size
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_reader()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:723,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: tcp::socket::maybe_wakeup_writer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: tcp::socket::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::socket::internal_is_listening()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:737,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:738,1
    - Dst: self_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:740,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:744,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:747,1
    - Dst: auto*::log_tcp
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:748,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 752
    functionName: tcp::socket::send_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - self_idx
    - std::move
    - forward_packet
    - std::uint32_t
    - aux::packet::buffer::size
    - auto*::log_tcp
    - sim
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::send_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:756,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: tcp::socket::packet_dropped(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - remote_idx
    - std::move
    linkageType: ''
    returnType: void
    signature: void tcp::socket::packet_dropped(aux::packet p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:779,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:788,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:791,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:792,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:796,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:815,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:826,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:830,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:831,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:841,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:851,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:867,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:869,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:870,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:873,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (it != m_outstanding_packet_sizes.end())
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_bytes_in_flight >= acked_bytes)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_connect_handler)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false && "uninitialized packet")
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 880
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 880
    functionName: tcp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - empty
    - maybe_wakeup_writer
    - push_back
    - reset
    - end
    - emplace
    - front
    - sim::aux::make_malloc
    - remote_idx
    - std::printf
    - assert
    - erase
    - maybe_wakeup_reader
    - size
    - std::bind
    - send_packet
    - post
    - forward_packet
    - find
    linkageType: ''
    returnType: void
    signature: void tcp::socket::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: tcp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:49,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:62,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:64,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:65,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:66,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:67,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:68,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:73,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:75,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:78,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:80,1
    - Dst: rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: tcp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_socket
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(socket&& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:88,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:90,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:93,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:94,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:101,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:102,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: tcp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - unbind_socket
    - reset
    - local_endpoint
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::~socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:109,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:111,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:112,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:113,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:117,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - tcp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: tcp::socket::open(tcp protocol, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - clear
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol, boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:127,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: tcp::socket::open(tcp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:139,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:146,1
    - Dst: replace_last
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' bind_ip'
    - ' c'
    - ' ec'
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<aux::channel>
    - boost::system::error_code
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: "tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - assert
    - open
    - rand_v6
    - message
    - replace_last
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:159,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:165,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:172,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: "tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind_socket
    - code
    - make_error_code
    - address
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:182,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: tcp::socket::bind(ip::tcp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::socket::bind(ip::tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:189,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: tcp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:197,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:203,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:208,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:215,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:218,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:220,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:221,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:222,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:229,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:230,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:238,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:245,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:247,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:251,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: tcp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - send_packet
    - reset
    - std::move
    - address
    - route::empty
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - clear
    - port
    - unbind_socket
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:267,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:270,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: tcp::socket::available(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available(boost::system::error_code& ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:295,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: tcp::socket::available() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - available
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:302,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:303,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: tcp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - abort_send_handlers
    - libtorrent::socks_error::make_error_code
    - abort_recv_handlers
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:316,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: tcp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:325,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:331,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: tcp::socket::remote_endpoint(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_idx
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:341,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: tcp::socket::remote_endpoint() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:351,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:352,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:358,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:359,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:364,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:377,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:380,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:385,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ' target'
    - h
    argTypes:
    - tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (h)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!m_connect_handler)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: "tcp::socket::async_connect(tcp::endpoint const& target\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ip::address_v6::any
    - reset
    - auto::address
    - expires_after
    - sim::aux::make_malloc
    - address
    - protocol
    - assert
    - async_wait
    - open
    - init_rand_address
    - libtorrent::total_milliseconds
    - std::bind
    - internal_connect
    - ip::address_v4::any
    - post
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_connect(tcp::endpoint const& target\n\t\t,
      aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:404,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:406,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: tcp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_recv_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:419,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: tcp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:432,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:435,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:438,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: "tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - write_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:464,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:469,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:477,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:481,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:483,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:485,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:503,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: aux::packet::buffer::assign
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:510,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:511,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:516,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 538
    functionName: "tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - send_packet
    - std::move
    - address
    - aux::packet::buffer::assign
    - libtorrent::socks_error::make_error_code
    - route::empty
    - local_endpoint
    - port
    - static_cast<std::uint8_t const*>
    - remote_idx
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:547,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:552,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:558,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:562,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:564,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:576,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:578,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:586,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:589,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:596,1
    - Dst: buffers_t::iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:598,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:599,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffers_t::iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:603,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:609,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:617,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:626,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:629,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:633,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (p.ec)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (buf_offset <= buf_size)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (total_received > 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 637
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 637
    functionName: "tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - reset
    - begin
    - erase
    - empty
    - libtorrent::socks_error::make_error_code
    - end
    - buffers_t::iterator::size
    - front
    - buffer::size
    - memcpy
    - buffer::data
    - buffer::erase
    - static_cast<char*>
    - clear
    - buffer::empty
    - buffers_t::iterator::data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:646,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:647,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:652,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:661,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts:
    - condition: (m_incoming_queue.empty())
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!bufs.empty())
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (bufs[0].size())
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 668
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 668
    functionName: "tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - read_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:676,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:681,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:689,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: "tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - clear
    - sim::aux::make_malloc
    - available
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:701,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 715
    functionName: tcp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - async_wait_read_impl
    - async_read_some_impl
    - size
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_reader()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:723,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: tcp::socket::maybe_wakeup_writer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: tcp::socket::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::socket::internal_is_listening()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:737,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:738,1
    - Dst: self_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:740,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:744,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:747,1
    - Dst: auto*::log_tcp
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:748,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 752
    functionName: tcp::socket::send_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - self_idx
    - std::move
    - forward_packet
    - std::uint32_t
    - aux::packet::buffer::size
    - auto*::log_tcp
    - sim
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::send_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:756,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: tcp::socket::packet_dropped(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - remote_idx
    - std::move
    linkageType: ''
    returnType: void
    signature: void tcp::socket::packet_dropped(aux::packet p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:779,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:788,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:791,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:792,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:796,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:815,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:826,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:830,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:831,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:841,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:851,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:867,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:869,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:870,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:873,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (it != m_outstanding_packet_sizes.end())
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_bytes_in_flight >= acked_bytes)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_connect_handler)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false && "uninitialized packet")
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 880
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 880
    functionName: tcp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - empty
    - maybe_wakeup_writer
    - push_back
    - reset
    - end
    - emplace
    - front
    - sim::aux::make_malloc
    - remote_idx
    - std::printf
    - assert
    - erase
    - maybe_wakeup_reader
    - size
    - std::bind
    - send_packet
    - post
    - forward_packet
    - find
    linkageType: ''
    returnType: void
    signature: void tcp::socket::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: tcp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:49,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:62,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:64,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:65,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:66,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:67,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:68,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:73,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:75,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:78,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:80,1
    - Dst: rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: tcp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_socket
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(socket&& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:88,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:90,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:93,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:94,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:101,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:102,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: tcp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - unbind_socket
    - reset
    - local_endpoint
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::~socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:109,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:111,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:112,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:113,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:117,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - tcp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: tcp::socket::open(tcp protocol, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - clear
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol, boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:127,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: tcp::socket::open(tcp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:139,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:146,1
    - Dst: replace_last
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' bind_ip'
    - ' c'
    - ' ec'
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<aux::channel>
    - boost::system::error_code
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: "tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - assert
    - open
    - rand_v6
    - message
    - replace_last
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:159,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:165,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:172,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: "tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind_socket
    - code
    - make_error_code
    - address
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:182,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: tcp::socket::bind(ip::tcp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::socket::bind(ip::tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:189,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: tcp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:197,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:203,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:208,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:215,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:218,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:220,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:221,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:222,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:229,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:230,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:238,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:245,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:247,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:251,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: tcp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - send_packet
    - reset
    - std::move
    - address
    - route::empty
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - clear
    - port
    - unbind_socket
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:267,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:270,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: tcp::socket::available(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available(boost::system::error_code& ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:295,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: tcp::socket::available() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - available
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:302,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:303,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: tcp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - abort_send_handlers
    - libtorrent::socks_error::make_error_code
    - abort_recv_handlers
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:316,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: tcp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:325,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:331,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: tcp::socket::remote_endpoint(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_idx
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:341,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: tcp::socket::remote_endpoint() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:351,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:352,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:358,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:359,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:364,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:377,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:380,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:385,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ' target'
    - h
    argTypes:
    - tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (h)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!m_connect_handler)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: "tcp::socket::async_connect(tcp::endpoint const& target\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ip::address_v6::any
    - reset
    - auto::address
    - expires_after
    - sim::aux::make_malloc
    - address
    - protocol
    - assert
    - async_wait
    - open
    - init_rand_address
    - libtorrent::total_milliseconds
    - std::bind
    - internal_connect
    - ip::address_v4::any
    - post
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_connect(tcp::endpoint const& target\n\t\t,
      aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:404,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:406,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: tcp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_recv_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:419,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: tcp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:432,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:435,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:438,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: "tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - write_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:464,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:469,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:477,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:481,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:483,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:485,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:503,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: aux::packet::buffer::assign
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:510,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:511,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:516,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 538
    functionName: "tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - send_packet
    - std::move
    - address
    - aux::packet::buffer::assign
    - libtorrent::socks_error::make_error_code
    - route::empty
    - local_endpoint
    - port
    - static_cast<std::uint8_t const*>
    - remote_idx
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:547,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:552,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:558,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:562,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:564,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:576,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:578,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:586,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:589,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:596,1
    - Dst: buffers_t::iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:598,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:599,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffers_t::iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:603,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:609,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:617,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:626,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:629,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:633,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (p.ec)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (buf_offset <= buf_size)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (total_received > 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 637
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 637
    functionName: "tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - reset
    - begin
    - erase
    - empty
    - libtorrent::socks_error::make_error_code
    - end
    - buffers_t::iterator::size
    - front
    - buffer::size
    - memcpy
    - buffer::data
    - buffer::erase
    - static_cast<char*>
    - clear
    - buffer::empty
    - buffers_t::iterator::data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:646,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:647,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:652,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:661,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts:
    - condition: (m_incoming_queue.empty())
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!bufs.empty())
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (bufs[0].size())
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 668
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 668
    functionName: "tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - read_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:676,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:681,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:689,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: "tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - clear
    - sim::aux::make_malloc
    - available
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:701,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 715
    functionName: tcp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - async_wait_read_impl
    - async_read_some_impl
    - size
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_reader()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:723,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: tcp::socket::maybe_wakeup_writer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: tcp::socket::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::socket::internal_is_listening()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:737,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:738,1
    - Dst: self_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:740,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:744,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:747,1
    - Dst: auto*::log_tcp
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:748,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 752
    functionName: tcp::socket::send_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - self_idx
    - std::move
    - forward_packet
    - std::uint32_t
    - aux::packet::buffer::size
    - auto*::log_tcp
    - sim
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::send_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:756,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: tcp::socket::packet_dropped(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - remote_idx
    - std::move
    linkageType: ''
    returnType: void
    signature: void tcp::socket::packet_dropped(aux::packet p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:779,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:788,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:791,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:792,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:796,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:815,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:826,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:830,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:831,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:841,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:851,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:867,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:869,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:870,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:873,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (it != m_outstanding_packet_sizes.end())
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_bytes_in_flight >= acked_bytes)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_connect_handler)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false && "uninitialized packet")
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 880
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 880
    functionName: tcp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - empty
    - maybe_wakeup_writer
    - push_back
    - reset
    - end
    - emplace
    - front
    - sim::aux::make_malloc
    - remote_idx
    - std::printf
    - assert
    - erase
    - maybe_wakeup_reader
    - size
    - std::bind
    - send_packet
    - post
    - forward_packet
    - find
    linkageType: ''
    returnType: void
    signature: void tcp::socket::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: tcp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:49,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:62,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:64,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:65,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:66,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:67,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:68,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:73,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:75,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:78,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:80,1
    - Dst: rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: tcp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_socket
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(socket&& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:88,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:90,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:93,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:94,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:101,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:102,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: tcp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - unbind_socket
    - reset
    - local_endpoint
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::~socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:109,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:111,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:112,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:113,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:117,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - tcp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: tcp::socket::open(tcp protocol, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - clear
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol, boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:127,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: tcp::socket::open(tcp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:139,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:146,1
    - Dst: replace_last
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' bind_ip'
    - ' c'
    - ' ec'
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<aux::channel>
    - boost::system::error_code
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: "tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - assert
    - open
    - rand_v6
    - message
    - replace_last
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:159,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:165,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:172,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: "tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind_socket
    - code
    - make_error_code
    - address
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:182,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: tcp::socket::bind(ip::tcp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::socket::bind(ip::tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:189,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: tcp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:197,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:203,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:208,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:215,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:218,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:220,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:221,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:222,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:229,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:230,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:238,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:245,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:247,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:251,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: tcp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - send_packet
    - reset
    - std::move
    - address
    - route::empty
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - clear
    - port
    - unbind_socket
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:267,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:270,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: tcp::socket::available(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available(boost::system::error_code& ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:295,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: tcp::socket::available() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - available
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:302,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:303,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: tcp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - abort_send_handlers
    - libtorrent::socks_error::make_error_code
    - abort_recv_handlers
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:316,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: tcp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:325,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:331,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: tcp::socket::remote_endpoint(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_idx
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:341,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: tcp::socket::remote_endpoint() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:351,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:352,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:358,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:359,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:364,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:377,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:380,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:385,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ' target'
    - h
    argTypes:
    - tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (h)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!m_connect_handler)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: "tcp::socket::async_connect(tcp::endpoint const& target\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ip::address_v6::any
    - reset
    - auto::address
    - expires_after
    - sim::aux::make_malloc
    - address
    - protocol
    - assert
    - async_wait
    - open
    - init_rand_address
    - libtorrent::total_milliseconds
    - std::bind
    - internal_connect
    - ip::address_v4::any
    - post
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_connect(tcp::endpoint const& target\n\t\t,
      aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:404,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:406,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: tcp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_recv_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:419,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: tcp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:432,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:435,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:438,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: "tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - write_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:464,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:469,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:477,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:481,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:483,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:485,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:503,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: aux::packet::buffer::assign
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:510,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:511,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:516,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 538
    functionName: "tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - send_packet
    - std::move
    - address
    - aux::packet::buffer::assign
    - libtorrent::socks_error::make_error_code
    - route::empty
    - local_endpoint
    - port
    - static_cast<std::uint8_t const*>
    - remote_idx
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:547,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:552,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:558,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:562,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:564,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:576,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:578,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:586,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:589,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:596,1
    - Dst: buffers_t::iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:598,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:599,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffers_t::iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:603,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:609,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:617,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:626,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:629,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:633,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (p.ec)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (buf_offset <= buf_size)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (total_received > 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 637
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 637
    functionName: "tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - reset
    - begin
    - erase
    - empty
    - libtorrent::socks_error::make_error_code
    - end
    - buffers_t::iterator::size
    - front
    - buffer::size
    - memcpy
    - buffer::data
    - buffer::erase
    - static_cast<char*>
    - clear
    - buffer::empty
    - buffers_t::iterator::data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:646,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:647,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:652,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:661,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts:
    - condition: (m_incoming_queue.empty())
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!bufs.empty())
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (bufs[0].size())
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 668
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 668
    functionName: "tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - read_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:676,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:681,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:689,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: "tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - clear
    - sim::aux::make_malloc
    - available
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:701,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 715
    functionName: tcp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - async_wait_read_impl
    - async_read_some_impl
    - size
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_reader()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:723,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: tcp::socket::maybe_wakeup_writer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: tcp::socket::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::socket::internal_is_listening()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:737,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:738,1
    - Dst: self_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:740,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:744,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:747,1
    - Dst: auto*::log_tcp
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:748,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 752
    functionName: tcp::socket::send_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - self_idx
    - std::move
    - forward_packet
    - std::uint32_t
    - aux::packet::buffer::size
    - auto*::log_tcp
    - sim
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::send_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:756,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: tcp::socket::packet_dropped(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - remote_idx
    - std::move
    linkageType: ''
    returnType: void
    signature: void tcp::socket::packet_dropped(aux::packet p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:779,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:788,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:791,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:792,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:796,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:815,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:826,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:830,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:831,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:841,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:851,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:867,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:869,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:870,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:873,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (it != m_outstanding_packet_sizes.end())
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_bytes_in_flight >= acked_bytes)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_connect_handler)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false && "uninitialized packet")
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 880
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 880
    functionName: tcp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - empty
    - maybe_wakeup_writer
    - push_back
    - reset
    - end
    - emplace
    - front
    - sim::aux::make_malloc
    - remote_idx
    - std::printf
    - assert
    - erase
    - maybe_wakeup_reader
    - size
    - std::bind
    - send_packet
    - post
    - forward_packet
    - find
    linkageType: ''
    returnType: void
    signature: void tcp::socket::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: tcp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:49,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:62,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:64,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:65,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:66,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:67,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:68,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:73,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:75,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:76,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:78,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:80,1
    - Dst: rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: tcp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_socket
    linkageType: ''
    returnType: void
    signature: void tcp::socket::socket(socket&& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:88,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:90,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:92,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:93,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:94,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:101,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:102,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: tcp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - unbind_socket
    - reset
    - local_endpoint
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::~socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:109,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:111,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:112,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:113,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:117,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - tcp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: tcp::socket::open(tcp protocol, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - clear
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol, boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:127,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: tcp::socket::open(tcp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void tcp::socket::open(tcp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:136,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:139,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:140,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:146,1
    - Dst: replace_last
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' bind_ip'
    - ' c'
    - ' ec'
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<aux::channel>
    - boost::system::error_code
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: "tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - assert
    - open
    - rand_v6
    - message
    - replace_last
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::internal_connect(tcp::endpoint const& bind_ip\n\t\t,
      std::shared_ptr<aux::channel> const& c\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:159,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:165,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:172,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: "tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind_socket
    - code
    - make_error_code
    - address
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::bind(ip::tcp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:182,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: tcp::socket::bind(ip::tcp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::socket::bind(ip::tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:189,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: tcp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:197,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:203,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:208,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:209,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:213,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:215,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:218,1
    - Dst: unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:220,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:221,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:222,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:229,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:230,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:238,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:245,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:247,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:251,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: tcp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - send_packet
    - reset
    - std::move
    - address
    - route::empty
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - clear
    - port
    - unbind_socket
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::close(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:262,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:267,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:270,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: tcp::socket::available(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available(boost::system::error_code& ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:295,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: tcp::socket::available() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - available
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t tcp::socket::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:302,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:303,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:307,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: tcp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - abort_send_handlers
    - libtorrent::socks_error::make_error_code
    - abort_recv_handlers
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:316,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: tcp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:325,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:331,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: tcp::socket::remote_endpoint(boost::system::error_code& ec) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_idx
    - local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:341,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: tcp::socket::remote_endpoint() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - remote_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint tcp::socket::remote_endpoint() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:349,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:351,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:352,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:356,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:358,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:359,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:360,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:362,1
    - Dst: bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:364,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:368,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:374,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:376,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:377,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:380,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:381,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:385,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:387,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:388,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ' target'
    - h
    argTypes:
    - tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (h)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!m_connect_handler)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: "tcp::socket::async_connect(tcp::endpoint const& target\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ip::address_v6::any
    - reset
    - auto::address
    - expires_after
    - sim::aux::make_malloc
    - address
    - protocol
    - assert
    - async_wait
    - open
    - init_rand_address
    - libtorrent::total_milliseconds
    - std::bind
    - internal_connect
    - ip::address_v4::any
    - post
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_connect(tcp::endpoint const& target\n\t\t,
      aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:400,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:401,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:403,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:404,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:406,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: tcp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_recv_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:415,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:416,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:418,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:419,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: tcp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void tcp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:431,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:432,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:435,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:438,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:445,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:452,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: "tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - write_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_write_some_impl(std::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:464,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:469,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:477,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:481,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:483,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:485,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:503,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:504,1
    - Dst: aux::packet::buffer::assign
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:510,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:511,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:512,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:516,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:518,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::const_buffer>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 538
    functionName: "tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - send_packet
    - std::move
    - address
    - aux::packet::buffer::assign
    - libtorrent::socks_error::make_error_code
    - route::empty
    - local_endpoint
    - port
    - static_cast<std::uint8_t const*>
    - remote_idx
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::write_some_impl(\n\t\tstd::vector<boost::asio::const_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:544,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:547,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:552,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:558,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:562,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:564,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:576,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:578,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:586,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:588,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:589,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:596,1
    - Dst: buffers_t::iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:598,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:599,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffers_t::iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:602,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:603,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:605,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:609,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:617,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:619,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:626,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:629,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:633,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (p.ec)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (buf_offset <= buf_size)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (total_received > 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 637
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 637
    functionName: "tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - reset
    - begin
    - erase
    - empty
    - libtorrent::socks_error::make_error_code
    - end
    - buffers_t::iterator::size
    - front
    - buffer::size
    - memcpy
    - buffer::data
    - buffer::erase
    - static_cast<char*>
    - clear
    - buffer::empty
    - buffers_t::iterator::data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t tcp::socket::read_some_impl(\n\t\tstd::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, boost::system::error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:642,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:643,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:646,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:647,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:652,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:659,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:661,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:665,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - std::vector<boost::asio::mutable_buffer>
    - aux::function<void(boost::system::error_code const&, std::size_t)>
    assertStmts:
    - condition: (m_incoming_queue.empty())
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (!bufs.empty())
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (bufs[0].size())
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 668
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 668
    functionName: "tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - read_some_impl
    - std::size_t
    - clear
    - sim::aux::make_malloc
    - size
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_read_some_impl(std::vector<boost::asio::mutable_buffer>
      const& bufs\n\t\t, aux::function<void(boost::system::error_code const&, std::size_t)>
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: available
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:676,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:679,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:681,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:689,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: "tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - clear
    - sim::aux::make_malloc
    - available
    linkageType: ''
    returnType: void
    signature: "void tcp::socket::async_wait_read_impl(\n\t\taux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:701,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:705,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 715
    functionName: tcp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - async_wait_read_impl
    - async_read_some_impl
    - size
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_reader()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:723,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: tcp::socket::maybe_wakeup_writer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: void tcp::socket::maybe_wakeup_writer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: tcp::socket::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::socket::internal_is_listening()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:737,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:738,1
    - Dst: self_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:740,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:742,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:744,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:747,1
    - Dst: auto*::log_tcp
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:748,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 752
    functionName: tcp::socket::send_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - self_idx
    - std::move
    - forward_packet
    - std::uint32_t
    - aux::packet::buffer::size
    - auto*::log_tcp
    - sim
    - remote_idx
    linkageType: ''
    returnType: void
    signature: void tcp::socket::send_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:756,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: tcp::socket::packet_dropped(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - remote_idx
    - std::move
    linkageType: ''
    returnType: void
    signature: void tcp::socket::packet_dropped(aux::packet p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:779,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:788,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:789,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:791,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:792,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:796,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:800,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:801,1
    - Dst: send_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:802,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:815,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:826,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:828,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:830,1
    - Dst: maybe_wakeup_writer
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:831,1
    - Dst: remote_idx
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:841,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:843,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:851,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:855,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:862,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:867,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:869,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:870,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:871,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:873,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (it != m_outstanding_packet_sizes.end())
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_bytes_in_flight >= acked_bytes)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (m_connect_handler)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    - condition: (false && "uninitialized packet")
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    constantsTouched: []
    func_position:
      end: 880
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 880
    functionName: tcp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/tcp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - empty
    - maybe_wakeup_writer
    - push_back
    - reset
    - end
    - emplace
    - front
    - sim::aux::make_malloc
    - remote_idx
    - std::printf
    - assert
    - erase
    - maybe_wakeup_reader
    - size
    - std::bind
    - send_packet
    - post
    - forward_packet
    - find
    linkageType: ''
    returnType: void
    signature: void tcp::socket::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' ios'
    - bandwidth
    - propagation_delay
    - max_queue_size
    - name
    argTypes:
    - asio::io_context
    - int
    - chrono::high_resolution_clock::duration
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: sim::queue::queue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void queue::queue(asio::io_context& ios\n\t\t, int bandwidth\n\t\t,
      chrono::high_resolution_clock::duration propagation_delay\n\t\t, int max_queue_size\n\t\t,
      std::string name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:48,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:48,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:52,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:58,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:62,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:64,1
    - Dst: chrono::duration_cast<chrono::milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: sim::queue::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - chrono::duration_cast<chrono::milliseconds>
    - count
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string queue::label() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:73,1
    - Dst: aux::packet::ok_to_drop
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:76,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:82,1
    - Dst: drop_fun
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:83,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:87,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:89,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:89,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:91,1
    - Dst: sim::queue::begin_send_next_packet
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: sim::queue::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 0
    functionsReached:
    - drop_fun
    - std::move
    - aux::packet::buffer::size
    - sim::chrono::high_resolution_clock::now
    - emplace_back
    - aux::packet::ok_to_drop
    - size
    - sim::queue::begin_send_next_packet
    linkageType: ''
    returnType: void
    signature: void queue::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:98,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:100,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:102,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:102,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:103,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:103,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:103,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:111,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:111,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:111,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:111,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:118,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:119,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:121,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:121,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:122,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:124,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:125,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:125,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sim::queue::begin_send_next_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 1
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait
    - post
    - boost::int64_t
    - buffer::size
    - get_executor
    - front
    - expires_at
    - chrono::nanoseconds
    - sim::chrono::high_resolution_clock::now
    - chrono::duration_cast<duration>
    linkageType: ''
    returnType: void
    signature: void queue::begin_send_next_packet()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:131,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:131,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:132,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:132,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:133,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:136,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:136,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:138,1
    - Dst: sim::queue::begin_send_next_packet
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: sim::queue::next_packet_sent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - erase
    - forward_packet
    - front
    - aux::packet::buffer::size
    - size
    - sim::queue::begin_send_next_packet
    linkageType: ''
    returnType: void
    signature: void queue::next_packet_sent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' ios'
    - bandwidth
    - propagation_delay
    - max_queue_size
    - name
    argTypes:
    - asio::io_context
    - int
    - chrono::high_resolution_clock::duration
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: sim::queue::queue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void queue::queue(asio::io_context& ios\n\t\t, int bandwidth\n\t\t,
      chrono::high_resolution_clock::duration propagation_delay\n\t\t, int max_queue_size\n\t\t,
      std::string name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:48,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:48,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:52,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:58,1
    - Dst: count
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:62,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:64,1
    - Dst: chrono::duration_cast<chrono::milliseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: sim::queue::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - chrono::duration_cast<chrono::milliseconds>
    - count
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string queue::label() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:73,1
    - Dst: aux::packet::ok_to_drop
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:76,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:82,1
    - Dst: drop_fun
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:83,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:87,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:89,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:89,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:91,1
    - Dst: sim::queue::begin_send_next_packet
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: sim::queue::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 0
    functionsReached:
    - drop_fun
    - std::move
    - aux::packet::buffer::size
    - sim::chrono::high_resolution_clock::now
    - emplace_back
    - aux::packet::ok_to_drop
    - size
    - sim::queue::begin_send_next_packet
    linkageType: ''
    returnType: void
    signature: void queue::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:98,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:100,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:102,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:102,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:103,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:103,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:103,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:111,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:111,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:111,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:111,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:118,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:119,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:121,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:121,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:122,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:124,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:125,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:125,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sim::queue::begin_send_next_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 3
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait
    - post
    - boost::int64_t
    - buffer::size
    - get_executor
    - front
    - expires_at
    - chrono::nanoseconds
    - sim::chrono::high_resolution_clock::now
    - chrono::duration_cast<duration>
    linkageType: ''
    returnType: void
    signature: void queue::begin_send_next_packet()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:131,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:131,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:132,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:132,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:133,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:136,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:136,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:138,1
    - Dst: sim::queue::begin_send_next_packet
      Src: /src/libtorrent/simulation/libsimulator/src/queue.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: sim::queue::next_packet_sent
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/queue.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - erase
    - forward_packet
    - front
    - aux::packet::buffer::size
    - size
    - sim::queue::begin_send_next_packet
    linkageType: ''
    returnType: void
    signature: void queue::next_packet_sent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(basic_resolver<Protocol>&&)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:59,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:60,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:63,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:64,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:66,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:67,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: boost::system::error_code::clear
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:77,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:86,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:87,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:91,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hostname
    - service
    - handler
    argTypes:
    - std::string
    - char*
    - aux::function<void(boost::system::error_code const&, results_type)>
    assertStmts:
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: "(!m_ios->get_ips().empty() && \"internal io service objects can
        only \"\n\t\t\t\"be used for timers\")"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: sim::asio::ip::basic_resolver<Protocol>::async_resolve
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - begin
    - get_ips
    - empty
    - sim::chrono::high_resolution_clock::now
    - sim
    - emplace_back
    - static_cast<unsigned short>
    - atoi
    - front
    - sim::aux::make_malloc
    - make_address_v6
    - assert
    - async_wait
    - boost::system::error_code::clear
    - expires_at
    - results_type::emplace_back
    - std::bind
    - insert
    - libtorrent::total_microseconds
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void basic_resolver<Protocol>::async_resolve(std::string hostname,
      char const* service\n\t\t, aux::function<void(boost::system::error_code const&,
      results_type)> handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:116,1
    - Dst: typename queue_t::value_type::handler
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: sim::asio::ip::basic_resolver<Protocol>::on_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - begin
    - erase
    - empty
    - front
    - expires_at
    - typename queue_t::value_type::handler
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::on_lookup(boost::system::error_code
      const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: sim::asio::ip::basic_resolver<Protocol>::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - swap
    - get_executor
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(basic_resolver<Protocol>&&)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:59,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:60,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:63,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:64,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:66,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:67,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: boost::system::error_code::clear
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:77,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:86,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:87,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:91,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hostname
    - service
    - handler
    argTypes:
    - std::string
    - char*
    - aux::function<void(boost::system::error_code const&, results_type)>
    assertStmts:
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: "(!m_ios->get_ips().empty() && \"internal io service objects can
        only \"\n\t\t\t\"be used for timers\")"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: sim::asio::ip::basic_resolver<Protocol>::async_resolve
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - begin
    - get_ips
    - empty
    - sim::chrono::high_resolution_clock::now
    - sim
    - emplace_back
    - static_cast<unsigned short>
    - atoi
    - front
    - sim::aux::make_malloc
    - make_address_v6
    - assert
    - async_wait
    - boost::system::error_code::clear
    - expires_at
    - results_type::emplace_back
    - std::bind
    - insert
    - libtorrent::total_microseconds
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void basic_resolver<Protocol>::async_resolve(std::string hostname,
      char const* service\n\t\t, aux::function<void(boost::system::error_code const&,
      results_type)> handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:116,1
    - Dst: typename queue_t::value_type::handler
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: sim::asio::ip::basic_resolver<Protocol>::on_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - begin
    - erase
    - empty
    - front
    - expires_at
    - typename queue_t::value_type::handler
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::on_lookup(boost::system::error_code
      const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: sim::asio::ip::basic_resolver<Protocol>::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - swap
    - get_executor
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(basic_resolver<Protocol>&&)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:59,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:60,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:63,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:64,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:66,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:67,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: boost::system::error_code::clear
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:77,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:86,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:87,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:91,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hostname
    - service
    - handler
    argTypes:
    - std::string
    - char*
    - aux::function<void(boost::system::error_code const&, results_type)>
    assertStmts:
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: "(!m_ios->get_ips().empty() && \"internal io service objects can
        only \"\n\t\t\t\"be used for timers\")"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: sim::asio::ip::basic_resolver<Protocol>::async_resolve
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - begin
    - get_ips
    - empty
    - sim::chrono::high_resolution_clock::now
    - sim
    - emplace_back
    - static_cast<unsigned short>
    - atoi
    - front
    - sim::aux::make_malloc
    - make_address_v6
    - assert
    - async_wait
    - boost::system::error_code::clear
    - expires_at
    - results_type::emplace_back
    - std::bind
    - insert
    - libtorrent::total_microseconds
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void basic_resolver<Protocol>::async_resolve(std::string hostname,
      char const* service\n\t\t, aux::function<void(boost::system::error_code const&,
      results_type)> handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:116,1
    - Dst: typename queue_t::value_type::handler
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: sim::asio::ip::basic_resolver<Protocol>::on_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - begin
    - erase
    - empty
    - front
    - expires_at
    - typename queue_t::value_type::handler
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::on_lookup(boost::system::error_code
      const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: sim::asio::ip::basic_resolver<Protocol>::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - swap
    - get_executor
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(basic_resolver<Protocol>&&)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:59,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:60,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:63,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:64,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:66,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:67,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: boost::system::error_code::clear
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:77,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:86,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:87,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:91,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hostname
    - service
    - handler
    argTypes:
    - std::string
    - char*
    - aux::function<void(boost::system::error_code const&, results_type)>
    assertStmts:
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: "(!m_ios->get_ips().empty() && \"internal io service objects can
        only \"\n\t\t\t\"be used for timers\")"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: sim::asio::ip::basic_resolver<Protocol>::async_resolve
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - begin
    - get_ips
    - empty
    - sim::chrono::high_resolution_clock::now
    - sim
    - emplace_back
    - static_cast<unsigned short>
    - atoi
    - front
    - sim::aux::make_malloc
    - make_address_v6
    - assert
    - async_wait
    - boost::system::error_code::clear
    - expires_at
    - results_type::emplace_back
    - std::bind
    - insert
    - libtorrent::total_microseconds
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void basic_resolver<Protocol>::async_resolve(std::string hostname,
      char const* service\n\t\t, aux::function<void(boost::system::error_code const&,
      results_type)> handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:116,1
    - Dst: typename queue_t::value_type::handler
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: sim::asio::ip::basic_resolver<Protocol>::on_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - begin
    - erase
    - empty
    - front
    - expires_at
    - typename queue_t::value_type::handler
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::on_lookup(boost::system::error_code
      const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: sim::asio::ip::basic_resolver<Protocol>::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - swap
    - get_executor
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(basic_resolver<Protocol>&&)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:59,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:60,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:63,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:64,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:66,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:67,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: boost::system::error_code::clear
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:77,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:86,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:87,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:91,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hostname
    - service
    - handler
    argTypes:
    - std::string
    - char*
    - aux::function<void(boost::system::error_code const&, results_type)>
    assertStmts:
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: "(!m_ios->get_ips().empty() && \"internal io service objects can
        only \"\n\t\t\t\"be used for timers\")"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: sim::asio::ip::basic_resolver<Protocol>::async_resolve
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - begin
    - get_ips
    - empty
    - sim::chrono::high_resolution_clock::now
    - sim
    - emplace_back
    - static_cast<unsigned short>
    - atoi
    - front
    - sim::aux::make_malloc
    - make_address_v6
    - assert
    - async_wait
    - boost::system::error_code::clear
    - expires_at
    - results_type::emplace_back
    - std::bind
    - insert
    - libtorrent::total_microseconds
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void basic_resolver<Protocol>::async_resolve(std::string hostname,
      char const* service\n\t\t, aux::function<void(boost::system::error_code const&,
      results_type)> handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:116,1
    - Dst: typename queue_t::value_type::handler
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: sim::asio::ip::basic_resolver<Protocol>::on_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - begin
    - erase
    - empty
    - front
    - expires_at
    - typename queue_t::value_type::handler
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::on_lookup(boost::system::error_code
      const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: sim::asio::ip::basic_resolver<Protocol>::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - swap
    - get_executor
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(basic_resolver<Protocol>&&)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:59,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:60,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:63,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:64,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:66,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:67,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: boost::system::error_code::clear
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:77,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:86,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:87,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:91,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hostname
    - service
    - handler
    argTypes:
    - std::string
    - char*
    - aux::function<void(boost::system::error_code const&, results_type)>
    assertStmts:
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: "(!m_ios->get_ips().empty() && \"internal io service objects can
        only \"\n\t\t\t\"be used for timers\")"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: sim::asio::ip::basic_resolver<Protocol>::async_resolve
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - begin
    - get_ips
    - empty
    - sim::chrono::high_resolution_clock::now
    - sim
    - emplace_back
    - static_cast<unsigned short>
    - atoi
    - front
    - sim::aux::make_malloc
    - make_address_v6
    - assert
    - async_wait
    - boost::system::error_code::clear
    - expires_at
    - results_type::emplace_back
    - std::bind
    - insert
    - libtorrent::total_microseconds
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void basic_resolver<Protocol>::async_resolve(std::string hostname,
      char const* service\n\t\t, aux::function<void(boost::system::error_code const&,
      results_type)> handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:116,1
    - Dst: typename queue_t::value_type::handler
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: sim::asio::ip::basic_resolver<Protocol>::on_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - begin
    - erase
    - empty
    - front
    - expires_at
    - typename queue_t::value_type::handler
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::on_lookup(boost::system::error_code
      const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: sim::asio::ip::basic_resolver<Protocol>::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - swap
    - get_executor
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(basic_resolver<Protocol>&&)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:59,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:60,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:63,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:64,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:66,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:67,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: boost::system::error_code::clear
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:77,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:86,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:87,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:91,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hostname
    - service
    - handler
    argTypes:
    - std::string
    - char*
    - aux::function<void(boost::system::error_code const&, results_type)>
    assertStmts:
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: "(!m_ios->get_ips().empty() && \"internal io service objects can
        only \"\n\t\t\t\"be used for timers\")"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: sim::asio::ip::basic_resolver<Protocol>::async_resolve
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - begin
    - get_ips
    - empty
    - sim::chrono::high_resolution_clock::now
    - sim
    - emplace_back
    - static_cast<unsigned short>
    - atoi
    - front
    - sim::aux::make_malloc
    - make_address_v6
    - assert
    - async_wait
    - boost::system::error_code::clear
    - expires_at
    - results_type::emplace_back
    - std::bind
    - insert
    - libtorrent::total_microseconds
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void basic_resolver<Protocol>::async_resolve(std::string hostname,
      char const* service\n\t\t, aux::function<void(boost::system::error_code const&,
      results_type)> handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:116,1
    - Dst: typename queue_t::value_type::handler
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: sim::asio::ip::basic_resolver<Protocol>::on_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - begin
    - erase
    - empty
    - front
    - expires_at
    - typename queue_t::value_type::handler
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::on_lookup(boost::system::error_code
      const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: sim::asio::ip::basic_resolver<Protocol>::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - swap
    - get_executor
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::asio::ip::basic_resolver<Protocol>::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::basic_resolver(basic_resolver<Protocol>&&)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:52,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:55,1
    - Dst: make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:59,1
    - Dst: make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:60,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:63,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:64,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:66,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:67,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:69,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:71,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:72,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:73,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:74,1
    - Dst: boost::system::error_code::clear
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:77,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:81,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:86,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:87,1
    - Dst: results_type::emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:91,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:96,1
    - Dst: emplace_back
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:97,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:99,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hostname
    - service
    - handler
    argTypes:
    - std::string
    - char*
    - aux::function<void(boost::system::error_code const&, results_type)>
    assertStmts:
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: "(!m_ios->get_ips().empty() && \"internal io service objects can
        only \"\n\t\t\t\"be used for timers\")"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    - condition: (port >= 0 && port <= 0xffff)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: sim::asio::ip::basic_resolver<Protocol>::async_resolve
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - make_address_v4
    - std::move
    - begin
    - get_ips
    - empty
    - sim::chrono::high_resolution_clock::now
    - sim
    - emplace_back
    - static_cast<unsigned short>
    - atoi
    - front
    - sim::aux::make_malloc
    - make_address_v6
    - assert
    - async_wait
    - boost::system::error_code::clear
    - expires_at
    - results_type::emplace_back
    - std::bind
    - insert
    - libtorrent::total_microseconds
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void basic_resolver<Protocol>::async_resolve(std::string hostname,
      char const* service\n\t\t, aux::function<void(boost::system::error_code const&,
      results_type)> handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:108,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:110,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:111,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:116,1
    - Dst: typename queue_t::value_type::handler
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:117,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:120,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: sim::asio::ip::basic_resolver<Protocol>::on_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_wait
    - std::move
    - begin
    - erase
    - empty
    - front
    - expires_at
    - typename queue_t::value_type::handler
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::on_lookup(boost::system::error_code
      const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: sim::aux::make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:132,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/resolver.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: sim::asio::ip::basic_resolver<Protocol>::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - post
    - swap
    - get_executor
    - sim::aux::make_malloc
    linkageType: ''
    returnType: void
    signature: void basic_resolver<Protocol>::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - time_type
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::high_resolution_timer(io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:39,1
    - Dst: sim::asio::high_resolution_timer::expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' expiry_time'
    argTypes:
    - io_context
    - time_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - sim::asio::high_resolution_timer::expires_at
    - time_type
    linkageType: ''
    returnType: void
    signature: "void high_resolution_timer::high_resolution_timer(io_context& ioc,\n\t\tconst
      time_type& expiry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:48,1
    - Dst: sim::asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' expiry_time'
    argTypes:
    - io_context
    - duration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - time_type
    - sim::asio::high_resolution_timer::expires_after
    linkageType: ''
    returnType: void
    signature: "void high_resolution_timer::high_resolution_timer(io_context& ioc,\n\t\tconst
      duration_type& expiry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: high_resolution_timer::~high_resolution_timer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::~high_resolution_timer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:64,1
    - Dst: sim::asio::high_resolution_timer::fire
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: sim::asio::high_resolution_timer::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - remove_timer
    - sim::asio::high_resolution_timer::fire
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: sim::asio::high_resolution_timer::cancel_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::cancel_one()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: sim::asio::high_resolution_timer::expiry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: high_resolution_timer::time_type
    signature: high_resolution_timer::time_type high_resolution_timer::expiry() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:81,1
    - Dst: add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' expiry_time'
    argTypes:
    - high_resolution_timer::time_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: sim::asio::high_resolution_timer::expires_at
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    - add_timer
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::expires_at(high_resolution_timer::time_type
      const& expiry_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:90,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:91,1
    - Dst: add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' expiry_time'
    argTypes:
    - duration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: sim::asio::high_resolution_timer::expires_after
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    - sim::chrono::high_resolution_clock::now
    - add_timer
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::expires_after(const duration_type&
      expiry_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:99,1
    - Dst: sim::asio::high_resolution_timer::wait
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "can't use synchcronous calls in simulator")
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: sim::asio::high_resolution_timer::wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::high_resolution_timer::wait
    - assert
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::wait()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:106,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:107,1
    - Dst: sim::chrono::high_resolution_clock::fast_forward
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "can't use synchcronous calls in simulator")
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: sim::asio::high_resolution_timer::wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 1
    functionsReached:
    - sim::chrono::high_resolution_clock::fast_forward
    - assert
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::wait(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:115,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:116,1
    - Dst: sim::asio::high_resolution_timer::fire
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:119,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (!m_handler)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: sim::asio::high_resolution_timer::async_wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::high_resolution_timer::fire
    - assert
    - libtorrent::socks_error::make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::async_wait(aux::function<void(boost::system::error_code
      const&)> handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ec
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: sim::asio::high_resolution_timer::fire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - post
    - std::bind
    - make_malloc
    - std::move
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::fire(boost::system::error_code ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: sim::asio::high_resolution_timer::get_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::high_resolution_timer::get_executor
    linkageType: ''
    returnType: high_resolution_timer::executor_type
    signature: high_resolution_timer::executor_type high_resolution_timer::get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - time_type
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::high_resolution_timer(io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:39,1
    - Dst: sim::asio::high_resolution_timer::expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' expiry_time'
    argTypes:
    - io_context
    - time_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - sim::asio::high_resolution_timer::expires_at
    - time_type
    linkageType: ''
    returnType: void
    signature: "void high_resolution_timer::high_resolution_timer(io_context& ioc,\n\t\tconst
      time_type& expiry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:48,1
    - Dst: sim::asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' expiry_time'
    argTypes:
    - io_context
    - duration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - time_type
    - sim::asio::high_resolution_timer::expires_after
    linkageType: ''
    returnType: void
    signature: "void high_resolution_timer::high_resolution_timer(io_context& ioc,\n\t\tconst
      duration_type& expiry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: high_resolution_timer::~high_resolution_timer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::~high_resolution_timer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:64,1
    - Dst: sim::asio::high_resolution_timer::fire
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: sim::asio::high_resolution_timer::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 3
    functionsReached:
    - remove_timer
    - sim::asio::high_resolution_timer::fire
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: sim::asio::high_resolution_timer::cancel_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::cancel_one()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: sim::asio::high_resolution_timer::expiry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: high_resolution_timer::time_type
    signature: high_resolution_timer::time_type high_resolution_timer::expiry() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:81,1
    - Dst: add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' expiry_time'
    argTypes:
    - high_resolution_timer::time_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: sim::asio::high_resolution_timer::expires_at
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    - add_timer
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::expires_at(high_resolution_timer::time_type
      const& expiry_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:90,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:91,1
    - Dst: add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' expiry_time'
    argTypes:
    - duration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: sim::asio::high_resolution_timer::expires_after
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    - sim::chrono::high_resolution_clock::now
    - add_timer
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::expires_after(const duration_type&
      expiry_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:99,1
    - Dst: sim::asio::high_resolution_timer::wait
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "can't use synchcronous calls in simulator")
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: sim::asio::high_resolution_timer::wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::high_resolution_timer::wait
    - assert
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::wait()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:106,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:107,1
    - Dst: sim::chrono::high_resolution_clock::fast_forward
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "can't use synchcronous calls in simulator")
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: sim::asio::high_resolution_timer::wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - sim::chrono::high_resolution_clock::fast_forward
    - assert
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::wait(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:115,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:116,1
    - Dst: sim::asio::high_resolution_timer::fire
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:119,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (!m_handler)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: sim::asio::high_resolution_timer::async_wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::high_resolution_timer::fire
    - assert
    - libtorrent::socks_error::make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::async_wait(aux::function<void(boost::system::error_code
      const&)> handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ec
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: sim::asio::high_resolution_timer::fire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 4
    functionsReached:
    - post
    - std::bind
    - make_malloc
    - std::move
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::fire(boost::system::error_code ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: sim::asio::high_resolution_timer::get_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::high_resolution_timer::get_executor
    linkageType: ''
    returnType: high_resolution_timer::executor_type
    signature: high_resolution_timer::executor_type high_resolution_timer::get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - time_type
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::high_resolution_timer(io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:39,1
    - Dst: sim::asio::high_resolution_timer::expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' expiry_time'
    argTypes:
    - io_context
    - time_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - sim::asio::high_resolution_timer::expires_at
    - time_type
    linkageType: ''
    returnType: void
    signature: "void high_resolution_timer::high_resolution_timer(io_context& ioc,\n\t\tconst
      time_type& expiry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:48,1
    - Dst: sim::asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' expiry_time'
    argTypes:
    - io_context
    - duration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - time_type
    - sim::asio::high_resolution_timer::expires_after
    linkageType: ''
    returnType: void
    signature: "void high_resolution_timer::high_resolution_timer(io_context& ioc,\n\t\tconst
      duration_type& expiry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: high_resolution_timer::~high_resolution_timer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::~high_resolution_timer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:64,1
    - Dst: sim::asio::high_resolution_timer::fire
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: sim::asio::high_resolution_timer::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 6
    functionsReached:
    - remove_timer
    - sim::asio::high_resolution_timer::fire
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: sim::asio::high_resolution_timer::cancel_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::cancel_one()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: sim::asio::high_resolution_timer::expiry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: high_resolution_timer::time_type
    signature: high_resolution_timer::time_type high_resolution_timer::expiry() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:81,1
    - Dst: add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' expiry_time'
    argTypes:
    - high_resolution_timer::time_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: sim::asio::high_resolution_timer::expires_at
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    - add_timer
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::expires_at(high_resolution_timer::time_type
      const& expiry_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:90,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:91,1
    - Dst: add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' expiry_time'
    argTypes:
    - duration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: sim::asio::high_resolution_timer::expires_after
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 5
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    - sim::chrono::high_resolution_clock::now
    - add_timer
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::expires_after(const duration_type&
      expiry_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:99,1
    - Dst: sim::asio::high_resolution_timer::wait
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "can't use synchcronous calls in simulator")
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: sim::asio::high_resolution_timer::wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::high_resolution_timer::wait
    - assert
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::wait()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:106,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:107,1
    - Dst: sim::chrono::high_resolution_clock::fast_forward
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "can't use synchcronous calls in simulator")
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: sim::asio::high_resolution_timer::wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 3
    functionsReached:
    - sim::chrono::high_resolution_clock::fast_forward
    - assert
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::wait(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:115,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:116,1
    - Dst: sim::asio::high_resolution_timer::fire
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:119,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (!m_handler)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: sim::asio::high_resolution_timer::async_wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::high_resolution_timer::fire
    - assert
    - libtorrent::socks_error::make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::async_wait(aux::function<void(boost::system::error_code
      const&)> handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ec
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: sim::asio::high_resolution_timer::fire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 6
    functionsReached:
    - post
    - std::bind
    - make_malloc
    - std::move
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::fire(boost::system::error_code ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: sim::asio::high_resolution_timer::get_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::high_resolution_timer::get_executor
    linkageType: ''
    returnType: high_resolution_timer::executor_type
    signature: high_resolution_timer::executor_type high_resolution_timer::get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - time_type
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::high_resolution_timer(io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:39,1
    - Dst: sim::asio::high_resolution_timer::expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' expiry_time'
    argTypes:
    - io_context
    - time_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - sim::asio::high_resolution_timer::expires_at
    - time_type
    linkageType: ''
    returnType: void
    signature: "void high_resolution_timer::high_resolution_timer(io_context& ioc,\n\t\tconst
      time_type& expiry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_type
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:48,1
    - Dst: sim::asio::high_resolution_timer::expires_after
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' expiry_time'
    argTypes:
    - io_context
    - duration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: sim::asio::high_resolution_timer::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - time_type
    - sim::asio::high_resolution_timer::expires_after
    linkageType: ''
    returnType: void
    signature: "void high_resolution_timer::high_resolution_timer(io_context& ioc,\n\t\tconst
      duration_type& expiry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: high_resolution_timer::~high_resolution_timer()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::~high_resolution_timer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:64,1
    - Dst: sim::asio::high_resolution_timer::fire
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: sim::asio::high_resolution_timer::cancel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 9
    functionsReached:
    - remove_timer
    - sim::asio::high_resolution_timer::fire
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: sim::asio::high_resolution_timer::cancel_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::cancel_one()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: sim::asio::high_resolution_timer::expiry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: high_resolution_timer::time_type
    signature: high_resolution_timer::time_type high_resolution_timer::expiry() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:81,1
    - Dst: add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' expiry_time'
    argTypes:
    - high_resolution_timer::time_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: sim::asio::high_resolution_timer::expires_at
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    - add_timer
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::expires_at(high_resolution_timer::time_type
      const& expiry_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:90,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:91,1
    - Dst: add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' expiry_time'
    argTypes:
    - duration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: sim::asio::high_resolution_timer::expires_after
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 6
    functionsReached:
    - sim::asio::high_resolution_timer::cancel
    - sim::chrono::high_resolution_clock::now
    - add_timer
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t high_resolution_timer::expires_after(const duration_type&
      expiry_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:99,1
    - Dst: sim::asio::high_resolution_timer::wait
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "can't use synchcronous calls in simulator")
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: sim::asio::high_resolution_timer::wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::high_resolution_timer::wait
    - assert
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::wait()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:106,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:107,1
    - Dst: sim::chrono::high_resolution_clock::fast_forward
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "can't use synchcronous calls in simulator")
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: sim::asio::high_resolution_timer::wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 4
    functionsReached:
    - sim::chrono::high_resolution_clock::fast_forward
    - assert
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::wait(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:115,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:116,1
    - Dst: sim::asio::high_resolution_timer::fire
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:119,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handler
    argTypes:
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (!m_handler)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: sim::asio::high_resolution_timer::async_wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::high_resolution_timer::fire
    - assert
    - libtorrent::socks_error::make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::async_wait(aux::function<void(boost::system::error_code
      const&)> handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:128,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ec
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: sim::asio::high_resolution_timer::fire
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 8
    functionsReached:
    - post
    - std::bind
    - make_malloc
    - std::move
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer::fire(boost::system::error_code ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::high_resolution_timer::get_executor
      Src: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: sim::asio::high_resolution_timer::get_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_timer.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::high_resolution_timer::get_executor
    linkageType: ''
    returnType: high_resolution_timer::executor_type
    signature: high_resolution_timer::executor_type high_resolution_timer::get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' value'
    argTypes:
    - std::fstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: sim::aux::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 1
    functionsReached:
    - sim::aux::write
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void write(std::fstream& o, T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' value'
    argTypes:
    - std::fstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: sim::aux::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 2
    functionsReached:
    - sim::aux::write
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void write(std::fstream& o, T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:84,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:84,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:85,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:85,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:86,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:86,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:87,1
    - Dst: std::int32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:87,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:88,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:88,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:89,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:89,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: sim::aux::pcap::pcap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - write
    - std::uint32_t
    - std::int32_t
    linkageType: ''
    returnType: void
    signature: void pcap::pcap(char const* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:99,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:99,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:103,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' file'
    - size
    - protocol
    - source
    - dest
    argTypes:
    - std::fstream
    - int
    - int
    - address_v4
    - address_v4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: sim::aux::write_ip_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - sim::aux::write
    - std::uint8_t
    - std::uint16_t
    - std::uint32_t
    - htonl
    - address_v4::to_uint
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_ip_header(std::fstream& file, int const size, int const
      protocol\n\t\t, address_v4 const source, address_v4 const dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:115,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:116,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:118,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:118,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:119,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:119,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:120,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:120,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' file'
    - size
    - src_port
    - dst_port
    argTypes:
    - std::fstream
    - int
    - int
    - int
    assertStmts:
    - condition: (src_port != 0)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    - condition: (dst_port != 0)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: sim::aux::write_udp_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - sim::aux::write
    - assert
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_udp_header(std::fstream& file, int const size, int const
      src_port\n\t\t, int const dst_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:130,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:131,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:133,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:133,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:134,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:134,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:135,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:136,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:137,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:138,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:139,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:139,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:140,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:141,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' file'
    - src_port
    - dst_port
    - seq_nr
    argTypes:
    - std::fstream
    - int
    - int
    - std::uint32_t
    assertStmts:
    - condition: (src_port != 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    - condition: (dst_port != 0)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: sim::aux::write_tcp_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - sim::aux::write
    - assert
    - std::uint8_t
    - std::uint16_t
    - std::uint32_t
    - htonl
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_tcp_header(std::fstream& file, int const src_port\n\t\t,
      int const dst_port, std::uint32_t const seq_nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:151,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: duration_cast<chrono::seconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: duration_cast<chrono::microseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:158,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:158,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:160,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:161,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:162,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:163,1
    - Dst: write_ip_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:166,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:167,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:167,1
    - Dst: write_tcp_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: from::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - src
    - dst
    argTypes:
    - packet
    - tcp::endpoint
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 174
    functionName: sim::aux::pcap::log_tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - duration_cast<chrono::seconds>
    - seconds
    - buffer::size
    - static_cast<std::uint32_t>
    - write
    - tcp::endpoint::port
    - write_tcp_header
    - buffer::data
    - from::port
    - sim::chrono::high_resolution_clock::now
    - reinterpret_cast<char const*>
    - duration_cast<chrono::microseconds>
    - auto::time_since_epoch
    - write_ip_header
    linkageType: ''
    returnType: void
    signature: "void pcap::log_tcp(packet const& p, tcp::endpoint const src\n\t\t,
      tcp::endpoint const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:180,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: duration_cast<chrono::seconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: duration_cast<chrono::microseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:187,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:187,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:189,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:190,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:191,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:192,1
    - Dst: write_ip_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:195,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:196,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:196,1
    - Dst: write_udp_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: from::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - src
    - dst
    argTypes:
    - packet
    - udp::endpoint
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 201
    functionName: sim::aux::pcap::log_udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - write_udp_header
    - udp::endpoint::address
    - duration_cast<chrono::seconds>
    - seconds
    - buffer::size
    - static_cast<std::uint32_t>
    - write
    - buffer::data
    - from::port
    - udp::endpoint::port
    - sim::chrono::high_resolution_clock::now
    - reinterpret_cast<char const*>
    - duration_cast<chrono::microseconds>
    - auto::time_since_epoch
    - write_ip_header
    linkageType: ''
    returnType: void
    signature: "void pcap::log_udp(packet const& p, udp::endpoint const src\n\t\t,
      udp::endpoint const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' value'
    argTypes:
    - std::fstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: sim::aux::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 6
    functionsReached:
    - sim::aux::write
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void write(std::fstream& o, T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' value'
    argTypes:
    - std::fstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: sim::aux::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 7
    functionsReached:
    - sim::aux::write
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void write(std::fstream& o, T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:84,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:84,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:85,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:85,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:86,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:86,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:87,1
    - Dst: std::int32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:87,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:88,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:88,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:89,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:89,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: sim::aux::pcap::pcap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - write
    - std::uint32_t
    - std::int32_t
    linkageType: ''
    returnType: void
    signature: void pcap::pcap(char const* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:99,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:99,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:103,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' file'
    - size
    - protocol
    - source
    - dest
    argTypes:
    - std::fstream
    - int
    - int
    - address_v4
    - address_v4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: sim::aux::write_ip_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - sim::aux::write
    - std::uint8_t
    - std::uint16_t
    - std::uint32_t
    - htonl
    - address_v4::to_uint
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_ip_header(std::fstream& file, int const size, int const
      protocol\n\t\t, address_v4 const source, address_v4 const dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:115,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:116,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:118,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:118,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:119,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:119,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:120,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:120,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' file'
    - size
    - src_port
    - dst_port
    argTypes:
    - std::fstream
    - int
    - int
    - int
    assertStmts:
    - condition: (src_port != 0)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    - condition: (dst_port != 0)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: sim::aux::write_udp_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - sim::aux::write
    - assert
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_udp_header(std::fstream& file, int const size, int const
      src_port\n\t\t, int const dst_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:130,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:131,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:133,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:133,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:134,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:134,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:135,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:136,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:137,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:138,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:139,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:139,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:140,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:141,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' file'
    - src_port
    - dst_port
    - seq_nr
    argTypes:
    - std::fstream
    - int
    - int
    - std::uint32_t
    assertStmts:
    - condition: (src_port != 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    - condition: (dst_port != 0)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: sim::aux::write_tcp_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - sim::aux::write
    - assert
    - std::uint8_t
    - std::uint16_t
    - std::uint32_t
    - htonl
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_tcp_header(std::fstream& file, int const src_port\n\t\t,
      int const dst_port, std::uint32_t const seq_nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:151,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: duration_cast<chrono::seconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: duration_cast<chrono::microseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:158,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:158,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:160,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:161,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:162,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:163,1
    - Dst: write_ip_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:166,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:167,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:167,1
    - Dst: write_tcp_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: from::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - src
    - dst
    argTypes:
    - packet
    - tcp::endpoint
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 174
    functionName: sim::aux::pcap::log_tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - duration_cast<chrono::seconds>
    - seconds
    - buffer::size
    - static_cast<std::uint32_t>
    - write
    - tcp::endpoint::port
    - write_tcp_header
    - buffer::data
    - from::port
    - sim::chrono::high_resolution_clock::now
    - reinterpret_cast<char const*>
    - duration_cast<chrono::microseconds>
    - auto::time_since_epoch
    - write_ip_header
    linkageType: ''
    returnType: void
    signature: "void pcap::log_tcp(packet const& p, tcp::endpoint const src\n\t\t,
      tcp::endpoint const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:180,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: duration_cast<chrono::seconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: duration_cast<chrono::microseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:187,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:187,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:189,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:190,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:191,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:192,1
    - Dst: write_ip_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:195,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:196,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:196,1
    - Dst: write_udp_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: from::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - src
    - dst
    argTypes:
    - packet
    - udp::endpoint
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 201
    functionName: sim::aux::pcap::log_udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - write_udp_header
    - udp::endpoint::address
    - duration_cast<chrono::seconds>
    - seconds
    - buffer::size
    - static_cast<std::uint32_t>
    - write
    - buffer::data
    - from::port
    - udp::endpoint::port
    - sim::chrono::high_resolution_clock::now
    - reinterpret_cast<char const*>
    - duration_cast<chrono::microseconds>
    - auto::time_since_epoch
    - write_ip_header
    linkageType: ''
    returnType: void
    signature: "void pcap::log_udp(packet const& p, udp::endpoint const src\n\t\t,
      udp::endpoint const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' value'
    argTypes:
    - std::fstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: sim::aux::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 11
    functionsReached:
    - sim::aux::write
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void write(std::fstream& o, T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' value'
    argTypes:
    - std::fstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: sim::aux::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 12
    functionsReached:
    - sim::aux::write
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void write(std::fstream& o, T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:84,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:84,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:85,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:85,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:86,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:86,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:87,1
    - Dst: std::int32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:87,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:88,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:88,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:89,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:89,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: sim::aux::pcap::pcap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - write
    - std::uint32_t
    - std::int32_t
    linkageType: ''
    returnType: void
    signature: void pcap::pcap(char const* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:99,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:99,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:103,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' file'
    - size
    - protocol
    - source
    - dest
    argTypes:
    - std::fstream
    - int
    - int
    - address_v4
    - address_v4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: sim::aux::write_ip_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - sim::aux::write
    - std::uint8_t
    - std::uint16_t
    - std::uint32_t
    - htonl
    - address_v4::to_uint
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_ip_header(std::fstream& file, int const size, int const
      protocol\n\t\t, address_v4 const source, address_v4 const dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:115,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:116,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:118,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:118,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:119,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:119,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:120,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:120,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' file'
    - size
    - src_port
    - dst_port
    argTypes:
    - std::fstream
    - int
    - int
    - int
    assertStmts:
    - condition: (src_port != 0)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    - condition: (dst_port != 0)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: sim::aux::write_udp_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - sim::aux::write
    - assert
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_udp_header(std::fstream& file, int const size, int const
      src_port\n\t\t, int const dst_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:130,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:131,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:133,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:133,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:134,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:134,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:135,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:136,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:137,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:138,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:139,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:139,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:140,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:141,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' file'
    - src_port
    - dst_port
    - seq_nr
    argTypes:
    - std::fstream
    - int
    - int
    - std::uint32_t
    assertStmts:
    - condition: (src_port != 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    - condition: (dst_port != 0)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: sim::aux::write_tcp_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - sim::aux::write
    - assert
    - std::uint8_t
    - std::uint16_t
    - std::uint32_t
    - htonl
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_tcp_header(std::fstream& file, int const src_port\n\t\t,
      int const dst_port, std::uint32_t const seq_nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:151,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: duration_cast<chrono::seconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: duration_cast<chrono::microseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:158,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:158,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:160,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:161,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:162,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:163,1
    - Dst: write_ip_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:166,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:167,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:167,1
    - Dst: write_tcp_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: from::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - src
    - dst
    argTypes:
    - packet
    - tcp::endpoint
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 174
    functionName: sim::aux::pcap::log_tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - duration_cast<chrono::seconds>
    - seconds
    - buffer::size
    - static_cast<std::uint32_t>
    - write
    - tcp::endpoint::port
    - write_tcp_header
    - buffer::data
    - from::port
    - sim::chrono::high_resolution_clock::now
    - reinterpret_cast<char const*>
    - duration_cast<chrono::microseconds>
    - auto::time_since_epoch
    - write_ip_header
    linkageType: ''
    returnType: void
    signature: "void pcap::log_tcp(packet const& p, tcp::endpoint const src\n\t\t,
      tcp::endpoint const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:180,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: duration_cast<chrono::seconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: duration_cast<chrono::microseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:187,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:187,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:189,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:190,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:191,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:192,1
    - Dst: write_ip_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:195,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:196,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:196,1
    - Dst: write_udp_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: from::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - src
    - dst
    argTypes:
    - packet
    - udp::endpoint
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 201
    functionName: sim::aux::pcap::log_udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - write_udp_header
    - udp::endpoint::address
    - duration_cast<chrono::seconds>
    - seconds
    - buffer::size
    - static_cast<std::uint32_t>
    - write
    - buffer::data
    - from::port
    - udp::endpoint::port
    - sim::chrono::high_resolution_clock::now
    - reinterpret_cast<char const*>
    - duration_cast<chrono::microseconds>
    - auto::time_since_epoch
    - write_ip_header
    linkageType: ''
    returnType: void
    signature: "void pcap::log_udp(packet const& p, udp::endpoint const src\n\t\t,
      udp::endpoint const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' value'
    argTypes:
    - std::fstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: sim::aux::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 16
    functionsReached:
    - sim::aux::write
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void write(std::fstream& o, T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' o'
    - ' value'
    argTypes:
    - std::fstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: sim::aux::write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 17
    functionsReached:
    - sim::aux::write
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void write(std::fstream& o, T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:84,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:84,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:85,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:85,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:86,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:86,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:87,1
    - Dst: std::int32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:87,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:88,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:88,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:89,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:89,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: sim::aux::pcap::pcap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - write
    - std::uint32_t
    - std::int32_t
    linkageType: ''
    returnType: void
    signature: void pcap::pcap(char const* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:99,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:99,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:103,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:105,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:106,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' file'
    - size
    - protocol
    - source
    - dest
    argTypes:
    - std::fstream
    - int
    - int
    - address_v4
    - address_v4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: sim::aux::write_ip_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - sim::aux::write
    - std::uint8_t
    - std::uint16_t
    - std::uint32_t
    - htonl
    - address_v4::to_uint
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_ip_header(std::fstream& file, int const size, int const
      protocol\n\t\t, address_v4 const source, address_v4 const dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:115,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:116,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:118,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:118,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:119,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:119,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:120,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:120,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' file'
    - size
    - src_port
    - dst_port
    argTypes:
    - std::fstream
    - int
    - int
    - int
    assertStmts:
    - condition: (src_port != 0)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    - condition: (dst_port != 0)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: sim::aux::write_udp_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - sim::aux::write
    - assert
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_udp_header(std::fstream& file, int const size, int const
      src_port\n\t\t, int const dst_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:130,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:131,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:133,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:133,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:134,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:134,1
    - Dst: htonl
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:135,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:136,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:137,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:138,1
    - Dst: htons
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:139,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:139,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:140,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:141,1
    - Dst: sim::aux::write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' file'
    - src_port
    - dst_port
    - seq_nr
    argTypes:
    - std::fstream
    - int
    - int
    - std::uint32_t
    assertStmts:
    - condition: (src_port != 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    - condition: (dst_port != 0)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: sim::aux::write_tcp_header
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - sim::aux::write
    - assert
    - std::uint8_t
    - std::uint16_t
    - std::uint32_t
    - htonl
    - htons
    linkageType: ''
    returnType: void
    signature: "void write_tcp_header(std::fstream& file, int const src_port\n\t\t,
      int const dst_port, std::uint32_t const seq_nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:151,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: duration_cast<chrono::seconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:155,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: duration_cast<chrono::microseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:156,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:158,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:158,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:160,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:161,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:162,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:163,1
    - Dst: write_ip_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:166,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:167,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:167,1
    - Dst: write_tcp_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: from::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:171,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - src
    - dst
    argTypes:
    - packet
    - tcp::endpoint
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 174
    functionName: sim::aux::pcap::log_tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - duration_cast<chrono::seconds>
    - seconds
    - buffer::size
    - static_cast<std::uint32_t>
    - write
    - tcp::endpoint::port
    - write_tcp_header
    - buffer::data
    - from::port
    - sim::chrono::high_resolution_clock::now
    - reinterpret_cast<char const*>
    - duration_cast<chrono::microseconds>
    - auto::time_since_epoch
    - write_ip_header
    linkageType: ''
    returnType: void
    signature: "void pcap::log_tcp(packet const& p, tcp::endpoint const src\n\t\t,
      tcp::endpoint const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:180,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: duration_cast<chrono::seconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:184,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: duration_cast<chrono::microseconds>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: auto::time_since_epoch
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: seconds
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:185,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:187,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:187,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:189,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:190,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:191,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:192,1
    - Dst: write_ip_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:195,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:196,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:196,1
    - Dst: write_udp_header
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: from::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:198,1
    - Dst: write
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/pcap.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - src
    - dst
    argTypes:
    - packet
    - udp::endpoint
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 201
    functionName: sim::aux::pcap::log_udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/pcap.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - write_udp_header
    - udp::endpoint::address
    - duration_cast<chrono::seconds>
    - seconds
    - buffer::size
    - static_cast<std::uint32_t>
    - write
    - buffer::data
    - from::port
    - udp::endpoint::port
    - sim::chrono::high_resolution_clock::now
    - reinterpret_cast<char const*>
    - duration_cast<chrono::microseconds>
    - auto::time_since_epoch
    - write_ip_header
    linkageType: ''
    returnType: void
    signature: "void pcap::log_udp(packet const& p, udp::endpoint const src\n\t\t,
      udp::endpoint const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dst
    argTypes:
    - sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: sim::aux::sink_forwarder::sink_forwarder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::sink_forwarder(sink* dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder::incoming_packet
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:31,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: sim::aux::sink_forwarder::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 1
    functionsReached:
    - sim::aux::sink_forwarder::incoming_packet
    - std::move
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::incoming_packet(packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder::label
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: sim::aux::sink_forwarder::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 1
    functionsReached:
    - sim::aux::sink_forwarder::label
    linkageType: ''
    returnType: std::string
    signature: std::string sink_forwarder::label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sim::aux::sink_forwarder::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::reset(sink* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dst
    argTypes:
    - sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: sim::aux::sink_forwarder::sink_forwarder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::sink_forwarder(sink* dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder::incoming_packet
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:31,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: sim::aux::sink_forwarder::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 2
    functionsReached:
    - sim::aux::sink_forwarder::incoming_packet
    - std::move
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::incoming_packet(packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder::label
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: sim::aux::sink_forwarder::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 2
    functionsReached:
    - sim::aux::sink_forwarder::label
    linkageType: ''
    returnType: std::string
    signature: std::string sink_forwarder::label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sim::aux::sink_forwarder::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::reset(sink* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dst
    argTypes:
    - sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: sim::aux::sink_forwarder::sink_forwarder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::sink_forwarder(sink* dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder::incoming_packet
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:31,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: sim::aux::sink_forwarder::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 3
    functionsReached:
    - sim::aux::sink_forwarder::incoming_packet
    - std::move
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::incoming_packet(packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder::label
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: sim::aux::sink_forwarder::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 3
    functionsReached:
    - sim::aux::sink_forwarder::label
    linkageType: ''
    returnType: std::string
    signature: std::string sink_forwarder::label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sim::aux::sink_forwarder::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::reset(sink* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dst
    argTypes:
    - sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: sim::aux::sink_forwarder::sink_forwarder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::sink_forwarder(sink* dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder::incoming_packet
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:31,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: sim::aux::sink_forwarder::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 4
    functionsReached:
    - sim::aux::sink_forwarder::incoming_packet
    - std::move
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::incoming_packet(packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder::label
      Src: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: sim::aux::sink_forwarder::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 4
    functionsReached:
    - sim::aux::sink_forwarder::label
    linkageType: ''
    returnType: std::string
    signature: std::string sink_forwarder::label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sim::aux::sink_forwarder::reset
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/sink_forwarder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_forwarder::reset(sink* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - hay
    - hsize
    - needle
    - nsize
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: sim::find
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: char
    signature: "char * find(char const* hay, int const hsize\n\t\t\t, char const*
      needle, int const nsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - hay
    - hsize
    - needle
    - nsize
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: sim::find
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: char
    signature: "char * find(char const* hay, int const hsize\n\t\t\t, char const*
      needle, int const nsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:49,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:52,1
    - Dst: strchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:53,1
    - Dst: strchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:58,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: sim::trim
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - std::string::substr
    - std::string::empty
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:68,1
    - Dst: std::string::begin
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:68,1
    - Dst: std::string::end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:68,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:68,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:69,1
    - Dst: tolower
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: sim::lower_case
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - std::transform
    - tolower
    - std::string::begin
    - static_cast<char>
    - std::string::end
    - std::back_inserter
    linkageType: ''
    returnType: std::string
    signature: std::string lower_case(std::string s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:76,1
    - Dst: strchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:84,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:85,1
    - Dst: std::vector::erase
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:87,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:87,1
    - Dst: strchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:90,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: sim::normalize
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::empty
    - strchr
    - c_str
    - std::vector::end
    - std::vector::erase
    linkageType: ''
    returnType: std::string
    signature: std::string normalize(const std::string& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:108,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - code
    - status_message
    - len
    - extra_header
    argTypes:
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 122
    functionName: sim::send_response
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 32
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: "std::string send_response(int code, char const* status_message\n\t\t,
      int len, char const** extra_header)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:132,1
    - Dst: address::is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:133,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:135,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:135,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:136,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:136,1
    - Dst: address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:136,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:140,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:140,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:141,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:141,1
    - Dst: address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:141,1
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:143,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:145,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' ios'
    - listen_port
    - flags
    argTypes:
    - io_context
    - unsigned short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 147
    functionName: sim::http_server::http_server
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - rand_v4
    - listen
    - async_accept
    - open
    - get_ips
    - rand_v6
    - address::is_v4
    - address_v6::any
    - address_v4::any
    - local_endpoint
    - bind
    linkageType: ''
    returnType: void
    signature: void http_server::http_server(io_context& ios, unsigned short listen_port,
      int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:153,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:154,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:154,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:155,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:159,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:160,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:160,1
    - Dst: sim::http_server::read
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: sim::http_server::on_accept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - message
    - sim::http_server::read
    - sim::http_server::close_connection
    - value
    - address
    - std::printf
    - port
    linkageType: ''
    returnType: void
    signature: void http_server::on_accept(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' path'
    - h
    argTypes:
    - std::string
    - handler_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: sim::http_server::register_handler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 14
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void http_server::register_handler(std::string const& path, handler_t
      h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:178,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:179,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:184,1
    - Dst: std::string::find_first_of
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:184,1
    - Dst: std::stoll
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:185,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:185,1
    - Dst: std::string::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:185,1
    - Dst: std::stoll
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:186,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:186,1
    - Dst: std::string::find_first_of
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:186,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:189,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:190,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:190,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:191,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:193,1
    - Dst: gen
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' path'
    - size
    - gen
    argTypes:
    - std::string
    - std::int64_t
    - generator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 198
    functionName: sim::http_server::register_content
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - gen
    - end
    - std::string::c_str
    - std::stoll
    - find
    - std::string::find_first_of
    - std::string::find
    - std::string::substr
    - sim::send_response
    linkageType: ''
    returnType: void
    signature: "void http_server::register_content(std::string const& path\n\t\t,
      std::int64_t const size, generator_t gen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:205,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' path'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: sim::http_server::register_redirect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 8
    functionsReached:
    - sim::send_response
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void http_server::register_redirect(std::string const& path, std::string
      const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: sim::http_server::register_stall_handler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 2
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void http_server::register_stall_handler(std::string const& path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:216,1
    - Dst: resize
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:218,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:220,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:220,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:221,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:221,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:222,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (int(m_recv_buffer.size()) > m_bytes_used)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: sim::http_server::read
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - assert
    - both_sides_from_store_buffer
    - resize
    - async_read_some
    - size
    linkageType: ''
    returnType: void
    signature: void http_server::read()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:231,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:234,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:235,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:236,1
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:239,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:243,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:244,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:245,1
    - Dst: http_request::method::assign
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:247,1
    - Dst: http_request::req::assign
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:248,1
    - Dst: http_request::path::assign
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:250,1
    - Dst: sim::normalize
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:250,1
    - Dst: http_request::req::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:250,1
    - Dst: http_request::req::find_first_of
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:250,1
    - Dst: http_request::path::assign
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:252,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:254,1
    - Dst: http_request::method::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:255,1
    - Dst: http_request::path::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:255,1
    - Dst: http_request::req::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:255,1
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:257,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:262,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:263,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:264,1
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:266,1
    - Dst: static_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:268,1
    - Dst: memchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:268,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:271,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:272,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:273,1
    - Dst: sim::lower_case
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:276,1
    - Dst: sim::trim
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:276,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:276,1
    - Dst: sim::trim
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:277,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:277,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 282
    functionName: sim::parse_request
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - sim::find
    - http_request::req::find_first_of
    - http_request::req::assign
    - http_request::path::assign
    - http_request::path::c_str
    - sim::trim
    - std::string
    - http_request::req::substr
    - static_cast<char const*>
    - std::runtime_error
    - sim::normalize
    - memchr
    - http_request::req::c_str
    - http_request::method::assign
    - sim::lower_case
    - http_request::method::c_str
    - std::printf
    linkageType: ''
    returnType: http_request
    signature: http_request parse_request(char const* start, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: sim::find_request_len
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - sim::find
    linkageType: ''
    returnType: int
    signature: int find_request_len(char const* buf, int const len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:295,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:296,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:296,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:297,1
    - Dst: find_request_len
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:303,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:303,1
    - Dst: sim::http_server::read
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:306,1
    - Dst: parse_request
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:310,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:310,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:312,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:312,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:312,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:315,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:316,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:318,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:318,1
    - Dst: send_response
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:323,1
    - Dst: auto::second
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:327,1
    - Dst: lower_case
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:330,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:332,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:332,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:332,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:333,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:333,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:338,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:339,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 341
    functionName: sim::http_server::on_read
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - begin
    - value
    - data
    - message
    - end
    - auto::second
    - find_request_len
    - std::printf
    - erase
    - lower_case
    - size
    - std::bind
    - async_write
    - parse_request
    - find
    - both_sides_from_store_buffer
    - sim::http_server::close_connection
    - what
    - sim::http_server::read
    - send_response
    linkageType: ''
    returnType: void
    signature: void http_server::on_read(error_code const& ec, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:349,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:350,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:350,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:351,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:358,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:358,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - close
    argTypes:
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 364
    functionName: sim::http_server::on_write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - post
    - error_code
    - message
    - sim::http_server::close_connection
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void http_server::on_write(error_code const& ec\n\t\t, size_t /* bytes_transferred
      */\n\t\t, bool close)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: sim::http_server::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void http_server::stop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:374,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:378,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:381,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:382,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:382,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:389,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 391
    functionName: sim::http_server::close_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 3
    functionsReached:
    - error_code::value
    - std::bind
    - async_accept
    - error_code::message
    - clear
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void http_server::close_connection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - hay
    - hsize
    - needle
    - nsize
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: sim::find
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: char
    signature: "char * find(char const* hay, int const hsize\n\t\t\t, char const*
      needle, int const nsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - hay
    - hsize
    - needle
    - nsize
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: sim::find
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: char
    signature: "char * find(char const* hay, int const hsize\n\t\t\t, char const*
      needle, int const nsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:49,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:52,1
    - Dst: strchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:53,1
    - Dst: strchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:58,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: sim::trim
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 1
    functionsReached:
    - strchr
    - std::string::substr
    - std::string::empty
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:68,1
    - Dst: std::string::begin
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:68,1
    - Dst: std::string::end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:68,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:68,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:69,1
    - Dst: tolower
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: sim::lower_case
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 1
    functionsReached:
    - std::transform
    - tolower
    - std::string::begin
    - static_cast<char>
    - std::string::end
    - std::back_inserter
    linkageType: ''
    returnType: std::string
    signature: std::string lower_case(std::string s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:76,1
    - Dst: strchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:84,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:85,1
    - Dst: std::vector::erase
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:87,1
    - Dst: std::vector::end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:87,1
    - Dst: strchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:90,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: sim::normalize
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - std::vector::empty
    - strchr
    - c_str
    - std::vector::end
    - std::vector::erase
    linkageType: ''
    returnType: std::string
    signature: std::string normalize(const std::string& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:108,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - code
    - status_message
    - len
    - extra_header
    argTypes:
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 122
    functionName: sim::send_response
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 34
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: "std::string send_response(int code, char const* status_message\n\t\t,
      int len, char const** extra_header)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:132,1
    - Dst: address::is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:133,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:135,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:135,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:136,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:136,1
    - Dst: address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:136,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:140,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:140,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:141,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:141,1
    - Dst: address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:141,1
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:143,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:145,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' ios'
    - listen_port
    - flags
    argTypes:
    - io_context
    - unsigned short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 147
    functionName: sim::http_server::http_server
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - rand_v4
    - listen
    - async_accept
    - open
    - get_ips
    - rand_v6
    - address::is_v4
    - address_v6::any
    - address_v4::any
    - local_endpoint
    - bind
    linkageType: ''
    returnType: void
    signature: void http_server::http_server(io_context& ios, unsigned short listen_port,
      int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:153,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:154,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:154,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:155,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:159,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:160,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:160,1
    - Dst: sim::http_server::read
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: sim::http_server::on_accept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - message
    - sim::http_server::read
    - sim::http_server::close_connection
    - value
    - address
    - std::printf
    - port
    linkageType: ''
    returnType: void
    signature: void http_server::on_accept(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' path'
    - h
    argTypes:
    - std::string
    - handler_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: sim::http_server::register_handler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 14
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void http_server::register_handler(std::string const& path, handler_t
      h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:178,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:179,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:184,1
    - Dst: std::string::find_first_of
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:184,1
    - Dst: std::stoll
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:185,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:185,1
    - Dst: std::string::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:185,1
    - Dst: std::stoll
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:186,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:186,1
    - Dst: std::string::find_first_of
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:186,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:189,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:190,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:190,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:191,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:193,1
    - Dst: gen
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' path'
    - size
    - gen
    argTypes:
    - std::string
    - std::int64_t
    - generator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 198
    functionName: sim::http_server::register_content
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - gen
    - end
    - std::string::c_str
    - std::stoll
    - find
    - std::string::find_first_of
    - std::string::find
    - std::string::substr
    - sim::send_response
    linkageType: ''
    returnType: void
    signature: "void http_server::register_content(std::string const& path\n\t\t,
      std::int64_t const size, generator_t gen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:205,1
    - Dst: sim::send_response
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' path'
    - ' target'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: sim::http_server::register_redirect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 8
    functionsReached:
    - sim::send_response
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void http_server::register_redirect(std::string const& path, std::string
      const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: sim::http_server::register_stall_handler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 2
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void http_server::register_stall_handler(std::string const& path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:216,1
    - Dst: resize
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:218,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:220,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:220,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:221,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:221,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:222,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (int(m_recv_buffer.size()) > m_bytes_used)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: sim::http_server::read
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 3
    functionsReached:
    - std::bind
    - assert
    - both_sides_from_store_buffer
    - resize
    - async_read_some
    - size
    linkageType: ''
    returnType: void
    signature: void http_server::read()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:231,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:234,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:235,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:236,1
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:239,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:243,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:244,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:245,1
    - Dst: http_request::method::assign
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:247,1
    - Dst: http_request::req::assign
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:248,1
    - Dst: http_request::path::assign
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:250,1
    - Dst: sim::normalize
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:250,1
    - Dst: http_request::req::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:250,1
    - Dst: http_request::req::find_first_of
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:250,1
    - Dst: http_request::path::assign
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:252,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:254,1
    - Dst: http_request::method::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:255,1
    - Dst: http_request::path::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:255,1
    - Dst: http_request::req::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:255,1
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:257,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:262,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:263,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:264,1
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:266,1
    - Dst: static_cast<char const*>
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:268,1
    - Dst: memchr
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:268,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:271,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:272,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:273,1
    - Dst: sim::lower_case
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:276,1
    - Dst: sim::trim
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:276,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:276,1
    - Dst: sim::trim
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:277,1
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:277,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 282
    functionName: sim::parse_request
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - sim::find
    - http_request::req::find_first_of
    - http_request::req::assign
    - http_request::path::assign
    - http_request::path::c_str
    - sim::trim
    - std::string
    - http_request::req::substr
    - static_cast<char const*>
    - std::runtime_error
    - sim::normalize
    - memchr
    - http_request::req::c_str
    - http_request::method::assign
    - sim::lower_case
    - http_request::method::c_str
    - std::printf
    linkageType: ''
    returnType: http_request
    signature: http_request parse_request(char const* start, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: sim::find_request_len
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - sim::find
    linkageType: ''
    returnType: int
    signature: int find_request_len(char const* buf, int const len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:295,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:296,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:296,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:297,1
    - Dst: find_request_len
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:303,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:303,1
    - Dst: sim::http_server::read
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:306,1
    - Dst: parse_request
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:310,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:310,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:312,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:312,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:312,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:315,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:316,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:318,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:318,1
    - Dst: send_response
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:323,1
    - Dst: auto::second
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:327,1
    - Dst: lower_case
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:330,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:332,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:332,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:332,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:333,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:333,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:338,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:339,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 341
    functionName: sim::http_server::on_read
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - begin
    - value
    - data
    - message
    - end
    - auto::second
    - find_request_len
    - std::printf
    - erase
    - lower_case
    - size
    - std::bind
    - async_write
    - parse_request
    - find
    - both_sides_from_store_buffer
    - sim::http_server::close_connection
    - what
    - sim::http_server::read
    - send_response
    linkageType: ''
    returnType: void
    signature: void http_server::on_read(error_code const& ec, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:349,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:350,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:350,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:351,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:358,1
    - Dst: error_code
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:358,1
    - Dst: sim::http_server::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - close
    argTypes:
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 364
    functionName: sim::http_server::on_write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - post
    - error_code
    - message
    - sim::http_server::close_connection
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void http_server::on_write(error_code const& ec\n\t\t, size_t /* bytes_transferred
      */\n\t\t, bool close)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: sim::http_server::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void http_server::stop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:374,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:378,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:381,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:382,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:382,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:389,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_server.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 391
    functionName: sim::http_server::close_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_server.cpp
    functionUses: 6
    functionsReached:
    - error_code::value
    - std::bind
    - async_accept
    - error_code::message
    - clear
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void http_server::close_connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tcp::acceptor::acceptor(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: tcp::acceptor::acceptor(acceptor&&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(acceptor&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tcp::acceptor::~acceptor()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::~acceptor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:52,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: tcp::acceptor::listen(int qs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - listen
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:65,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: tcp::acceptor::listen(int qs, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:78,1
    - Dst: libtorrent::broadcast_socket::close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: tcp::acceptor::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:87,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: tcp::acceptor::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:100,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:106,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tcp::acceptor::cancel(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel(boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:140,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: tcp::acceptor::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:148,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:159,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:170,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' peer'
    - h
    argTypes:
    - ip::tcp::socket
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:181,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:184,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:190,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:196,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:199,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' peer'
    - ' peer_endpoint'
    - h
    argTypes:
    - ip::tcp::socket
    - ip::tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:213,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:223,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:224,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - aux::function<void(boost::system::error_code const&, ip::tcp::socket peer)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - emplace
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: tcp::acceptor::do_check_accept_queue(boost::system::error_code const&
      ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - check_accept_queue
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::do_check_accept_queue(boost::system::error_code
      const& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:241,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:242,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:245,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:251,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:259,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    - condition: (false)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: tcp::acceptor::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - push_back
    - assert
    - std::exchange
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::incoming_packet(aux::packet p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:283,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:286,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:292,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:299,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:307,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:328,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:335,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:359,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:364,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 370
    functionName: tcp::acceptor::check_accept_queue()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - begin
    - empty
    - libtorrent::broadcast_socket::broadcast_socket
    - reset
    - is_open
    - front
    - clear
    - route
    - address
    - std::exchange
    - erase
    - port
    - internal_connect
    - post
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::check_accept_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp::acceptor::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::acceptor::internal_is_listening()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tcp::acceptor::acceptor(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: tcp::acceptor::acceptor(acceptor&&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(acceptor&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tcp::acceptor::~acceptor()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::~acceptor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:52,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: tcp::acceptor::listen(int qs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - listen
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:65,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: tcp::acceptor::listen(int qs, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:78,1
    - Dst: libtorrent::broadcast_socket::close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: tcp::acceptor::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:87,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: tcp::acceptor::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:100,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:106,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tcp::acceptor::cancel(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel(boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:140,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: tcp::acceptor::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:148,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:159,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:170,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' peer'
    - h
    argTypes:
    - ip::tcp::socket
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:181,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:184,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:190,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:196,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:199,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' peer'
    - ' peer_endpoint'
    - h
    argTypes:
    - ip::tcp::socket
    - ip::tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:213,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:223,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:224,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - aux::function<void(boost::system::error_code const&, ip::tcp::socket peer)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - emplace
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: tcp::acceptor::do_check_accept_queue(boost::system::error_code const&
      ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - check_accept_queue
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::do_check_accept_queue(boost::system::error_code
      const& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:241,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:242,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:245,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:251,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:259,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    - condition: (false)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: tcp::acceptor::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - push_back
    - assert
    - std::exchange
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::incoming_packet(aux::packet p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:283,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:286,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:292,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:299,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:307,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:328,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:335,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:359,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:364,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 370
    functionName: tcp::acceptor::check_accept_queue()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - begin
    - empty
    - libtorrent::broadcast_socket::broadcast_socket
    - reset
    - is_open
    - front
    - clear
    - route
    - address
    - std::exchange
    - erase
    - port
    - internal_connect
    - post
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::check_accept_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp::acceptor::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::acceptor::internal_is_listening()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tcp::acceptor::acceptor(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: tcp::acceptor::acceptor(acceptor&&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(acceptor&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tcp::acceptor::~acceptor()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::~acceptor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:52,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: tcp::acceptor::listen(int qs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - listen
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:65,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: tcp::acceptor::listen(int qs, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:78,1
    - Dst: libtorrent::broadcast_socket::close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: tcp::acceptor::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:87,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: tcp::acceptor::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:100,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:106,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tcp::acceptor::cancel(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel(boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:140,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: tcp::acceptor::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:148,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:159,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:170,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' peer'
    - h
    argTypes:
    - ip::tcp::socket
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:181,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:184,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:190,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:196,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:199,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' peer'
    - ' peer_endpoint'
    - h
    argTypes:
    - ip::tcp::socket
    - ip::tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:213,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:223,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:224,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - aux::function<void(boost::system::error_code const&, ip::tcp::socket peer)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - emplace
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: tcp::acceptor::do_check_accept_queue(boost::system::error_code const&
      ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - check_accept_queue
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::do_check_accept_queue(boost::system::error_code
      const& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:241,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:242,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:245,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:251,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:259,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    - condition: (false)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: tcp::acceptor::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - push_back
    - assert
    - std::exchange
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::incoming_packet(aux::packet p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:283,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:286,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:292,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:299,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:307,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:328,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:335,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:359,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:364,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 370
    functionName: tcp::acceptor::check_accept_queue()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - begin
    - empty
    - libtorrent::broadcast_socket::broadcast_socket
    - reset
    - is_open
    - front
    - clear
    - route
    - address
    - std::exchange
    - erase
    - port
    - internal_connect
    - post
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::check_accept_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp::acceptor::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::acceptor::internal_is_listening()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tcp::acceptor::acceptor(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: tcp::acceptor::acceptor(acceptor&&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(acceptor&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tcp::acceptor::~acceptor()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::~acceptor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:52,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: tcp::acceptor::listen(int qs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - listen
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:65,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: tcp::acceptor::listen(int qs, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:78,1
    - Dst: libtorrent::broadcast_socket::close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: tcp::acceptor::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:87,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: tcp::acceptor::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:100,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:106,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tcp::acceptor::cancel(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel(boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:140,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: tcp::acceptor::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:148,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:159,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:170,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' peer'
    - h
    argTypes:
    - ip::tcp::socket
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:181,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:184,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:190,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:196,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:199,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' peer'
    - ' peer_endpoint'
    - h
    argTypes:
    - ip::tcp::socket
    - ip::tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:213,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:223,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:224,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - aux::function<void(boost::system::error_code const&, ip::tcp::socket peer)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - emplace
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: tcp::acceptor::do_check_accept_queue(boost::system::error_code const&
      ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - check_accept_queue
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::do_check_accept_queue(boost::system::error_code
      const& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:241,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:242,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:245,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:251,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:259,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    - condition: (false)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: tcp::acceptor::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - push_back
    - assert
    - std::exchange
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::incoming_packet(aux::packet p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:283,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:286,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:292,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:299,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:307,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:328,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:335,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:359,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:364,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 370
    functionName: tcp::acceptor::check_accept_queue()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - begin
    - empty
    - libtorrent::broadcast_socket::broadcast_socket
    - reset
    - is_open
    - front
    - clear
    - route
    - address
    - std::exchange
    - erase
    - port
    - internal_connect
    - post
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::check_accept_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp::acceptor::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::acceptor::internal_is_listening()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tcp::acceptor::acceptor(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: tcp::acceptor::acceptor(acceptor&&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(acceptor&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tcp::acceptor::~acceptor()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::~acceptor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:52,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: tcp::acceptor::listen(int qs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - listen
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:65,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: tcp::acceptor::listen(int qs, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:78,1
    - Dst: libtorrent::broadcast_socket::close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: tcp::acceptor::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:87,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: tcp::acceptor::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:100,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:106,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tcp::acceptor::cancel(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel(boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:140,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: tcp::acceptor::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:148,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:159,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:170,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' peer'
    - h
    argTypes:
    - ip::tcp::socket
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:181,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:184,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:190,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:196,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:199,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' peer'
    - ' peer_endpoint'
    - h
    argTypes:
    - ip::tcp::socket
    - ip::tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:213,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:223,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:224,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - aux::function<void(boost::system::error_code const&, ip::tcp::socket peer)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - emplace
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: tcp::acceptor::do_check_accept_queue(boost::system::error_code const&
      ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - check_accept_queue
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::do_check_accept_queue(boost::system::error_code
      const& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:241,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:242,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:245,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:251,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:259,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    - condition: (false)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: tcp::acceptor::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - push_back
    - assert
    - std::exchange
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::incoming_packet(aux::packet p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:283,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:286,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:292,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:299,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:307,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:328,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:335,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:359,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:364,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 370
    functionName: tcp::acceptor::check_accept_queue()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - begin
    - empty
    - libtorrent::broadcast_socket::broadcast_socket
    - reset
    - is_open
    - front
    - clear
    - route
    - address
    - std::exchange
    - erase
    - port
    - internal_connect
    - post
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::check_accept_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp::acceptor::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::acceptor::internal_is_listening()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tcp::acceptor::acceptor(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: tcp::acceptor::acceptor(acceptor&&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(acceptor&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tcp::acceptor::~acceptor()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::~acceptor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:52,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: tcp::acceptor::listen(int qs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - listen
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:65,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: tcp::acceptor::listen(int qs, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:78,1
    - Dst: libtorrent::broadcast_socket::close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: tcp::acceptor::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:87,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: tcp::acceptor::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:100,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:106,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tcp::acceptor::cancel(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel(boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:140,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: tcp::acceptor::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:148,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:159,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:170,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' peer'
    - h
    argTypes:
    - ip::tcp::socket
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:181,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:184,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:190,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:196,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:199,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' peer'
    - ' peer_endpoint'
    - h
    argTypes:
    - ip::tcp::socket
    - ip::tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:213,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:223,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:224,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - aux::function<void(boost::system::error_code const&, ip::tcp::socket peer)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - emplace
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: tcp::acceptor::do_check_accept_queue(boost::system::error_code const&
      ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - check_accept_queue
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::do_check_accept_queue(boost::system::error_code
      const& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:241,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:242,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:245,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:251,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:259,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    - condition: (false)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: tcp::acceptor::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - push_back
    - assert
    - std::exchange
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::incoming_packet(aux::packet p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:283,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:286,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:292,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:299,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:307,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:328,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:335,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:359,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:364,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 370
    functionName: tcp::acceptor::check_accept_queue()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - begin
    - empty
    - libtorrent::broadcast_socket::broadcast_socket
    - reset
    - is_open
    - front
    - clear
    - route
    - address
    - std::exchange
    - erase
    - port
    - internal_connect
    - post
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::check_accept_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp::acceptor::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::acceptor::internal_is_listening()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tcp::acceptor::acceptor(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: tcp::acceptor::acceptor(acceptor&&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(acceptor&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tcp::acceptor::~acceptor()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::~acceptor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:52,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: tcp::acceptor::listen(int qs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - listen
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:65,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: tcp::acceptor::listen(int qs, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:78,1
    - Dst: libtorrent::broadcast_socket::close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: tcp::acceptor::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:87,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: tcp::acceptor::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:100,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:106,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tcp::acceptor::cancel(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel(boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:140,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: tcp::acceptor::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:148,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:159,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:170,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' peer'
    - h
    argTypes:
    - ip::tcp::socket
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:181,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:184,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:190,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:196,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:199,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' peer'
    - ' peer_endpoint'
    - h
    argTypes:
    - ip::tcp::socket
    - ip::tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:213,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:223,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:224,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - aux::function<void(boost::system::error_code const&, ip::tcp::socket peer)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - emplace
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: tcp::acceptor::do_check_accept_queue(boost::system::error_code const&
      ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - check_accept_queue
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::do_check_accept_queue(boost::system::error_code
      const& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:241,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:242,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:245,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:251,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:259,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    - condition: (false)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: tcp::acceptor::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - push_back
    - assert
    - std::exchange
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::incoming_packet(aux::packet p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:283,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:286,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:292,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:299,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:307,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:328,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:335,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:359,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:364,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 370
    functionName: tcp::acceptor::check_accept_queue()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - begin
    - empty
    - libtorrent::broadcast_socket::broadcast_socket
    - reset
    - is_open
    - front
    - clear
    - route
    - address
    - std::exchange
    - erase
    - port
    - internal_connect
    - post
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::check_accept_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp::acceptor::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::acceptor::internal_is_listening()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tcp::acceptor::acceptor(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: tcp::acceptor::acceptor(acceptor&&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::acceptor(acceptor&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tcp::acceptor::~acceptor()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::~acceptor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:52,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: tcp::acceptor::listen(int qs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - listen
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:65,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - qs
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: tcp::acceptor::listen(int qs, boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::listen(int qs, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:78,1
    - Dst: libtorrent::broadcast_socket::close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: tcp::acceptor::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:86,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:87,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:91,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:92,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: tcp::acceptor::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:100,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:105,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:106,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:122,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: tcp::acceptor::cancel(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - post
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - clear
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel(boost::system::error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:140,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: tcp::acceptor::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::cancel()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:148,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:158,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:159,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:165,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:166,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:170,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' peer'
    - h
    argTypes:
    - ip::tcp::socket
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, aux::function<void(boost::system::error_code
      const&)> h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:181,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:184,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:189,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:190,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:194,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:195,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:196,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:199,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' peer'
    - ' peer_endpoint'
    - h
    argTypes:
    - ip::tcp::socket
    - ip::tcp::endpoint
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 204
    functionName: "tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - is_open
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    - close
    linkageType: ''
    returnType: void
    signature: "void tcp::acceptor::async_accept(ip::tcp::socket& peer\n\t\t, ip::tcp::endpoint&
      peer_endpoint\n\t\t, aux::function<void(boost::system::error_code const&)> h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:212,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:213,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:218,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:219,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:220,1
    - Dst: emplace
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:223,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:224,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - aux::function<void(boost::system::error_code const&, ip::tcp::socket peer)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::exchange
    - std::move
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - emplace
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::async_accept(aux::function<void(boost::system::error_code
      const&, ip::tcp::socket peer)> h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: tcp::acceptor::do_check_accept_queue(boost::system::error_code const&
      ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - check_accept_queue
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::do_check_accept_queue(boost::system::error_code
      const& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:241,1
    - Dst: check_accept_queue
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:242,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:245,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:250,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:251,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:257,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:258,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:259,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    - condition: (false)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: tcp::acceptor::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - push_back
    - assert
    - std::exchange
    - post
    - check_accept_queue
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - libtorrent::broadcast_socket::broadcast_socket
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::incoming_packet(aux::packet p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:276,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:283,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:284,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:286,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:290,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:292,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:298,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:299,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:305,1
    - Dst: h
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:306,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:307,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:318,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:319,1
    - Dst: internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:328,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:332,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:335,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:348,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:354,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: bind_handler
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::exchange
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:359,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:364,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp:368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 370
    functionName: tcp::acceptor::check_accept_queue()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::move
    - begin
    - empty
    - libtorrent::broadcast_socket::broadcast_socket
    - reset
    - is_open
    - front
    - clear
    - route
    - address
    - std::exchange
    - erase
    - port
    - internal_connect
    - post
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - bind_handler
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void tcp::acceptor::check_accept_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp::acceptor::internal_is_listening()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/acceptor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tcp::acceptor::internal_is_listening()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<asio::ip::address>
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sim'
    argTypes:
    - sim::simulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - std::vector<asio::ip::address>
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sim'
    - ' ip'
    argTypes:
    - sim::simulation
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim, asio::ip::address
      const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:41,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:42,1
    - Dst: add_io_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' sim'
    - ' ips'
    argTypes:
    - sim::simulation
    - std::vector<asio::ip::address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - config
    - add_io_service
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim, std::vector<asio::ip::address>
      const& ips)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_io_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: io_context::~io_context()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - remove_io_service
    linkageType: ''
    returnType: void
    signature: void io_context::~io_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sim::simulation*>
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sim::simulation*>
    - assert
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' dest'
    argTypes:
    - asio::ip::address
    - asio::ip::address
    assertStmts:
    - condition: (std::count(m_ips.begin(), m_ips.end(), source) > 0 && "source address
        must be a local address to this node/io_context")
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: sim::asio::io_context::get_path_mtu
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    - begin
    - std::count
    - end
    - config
    linkageType: ''
    returnType: int
    signature: int io_context::get_path_mtu(const asio::ip::address& source, const
      asio::ip::address& dest) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: sim::asio::io_context::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: sim::asio::io_context::stopped
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool io_context::stopped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: sim::asio::io_context::restart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::restart()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: sim::asio::io_context::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: sim::asio::io_context::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::run(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: sim::asio::io_context::poll
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: sim::asio::io_context::poll
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: sim::asio::io_context::poll_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll_one()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: sim::asio::io_context::poll_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll_one(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: sim::asio::io_context::add_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::io_context::add_timer
    linkageType: ''
    returnType: void
    signature: void io_context::add_timer(high_resolution_timer* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::remove_timer
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: sim::asio::io_context::remove_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::io_context::remove_timer
    linkageType: ''
    returnType: void
    signature: void io_context::remove_timer(high_resolution_timer* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: '& io_context::get_internal_service()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - get_internal_service
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & io_context::get_internal_service()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:136,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:136,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:137,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:137,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:141,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:143,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:144,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:145,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:149,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:151,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:151,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: is_v6
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:154,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:155,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:157,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:158,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:159,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:163,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:169,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:170,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:171,1
    - Dst: sim::asio::io_context::bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!m_ips.empty() && "you cannot use an internal io_context (one without
        an IP address) for creating and binding sockets")
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 175
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 175
    functionName: sim::asio::io_context::bind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - is_v6
    - ip::tcp::endpoint::address
    - assert
    - ip::address_v4::any
    - begin
    - std::count
    - empty
    - end
    - ip::address_v6::any
    - sim::asio::io_context::bind_socket
    - assign
    - local_endpoint
    - boost::system::generic_category
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: ip::tcp::endpoint
    signature: "ip::tcp::endpoint io_context::bind_socket(ip::tcp::socket* socket\n\t\t,
      ip::tcp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: sim::asio::io_context::unbind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::io_context::unbind_socket
    linkageType: ''
    returnType: void
    signature: "void io_context::unbind_socket(ip::tcp::socket* socket\n\t\t, const
      ip::tcp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prev
    - s
    - ep
    argTypes:
    - asio::ip::tcp::socket*
    - asio::ip::tcp::socket*
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: sim::asio::io_context::rebind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::io_context::rebind_socket
    linkageType: ''
    returnType: void
    signature: void io_context::rebind_socket(asio::ip::tcp::socket* prev, asio::ip::tcp::socket*
      s, asio::ip::tcp::endpoint ep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:191,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:191,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:192,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:192,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:195,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:196,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:198,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:199,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:200,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:204,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:206,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:206,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: is_v6
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:209,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:210,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:212,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:213,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:214,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:218,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:224,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:225,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:226,1
    - Dst: sim::asio::io_context::bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!m_ips.empty() && "you cannot use an internal io_context (one without
        an IP address) for creating and binding sockets")
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 230
    functionName: sim::asio::io_context::bind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - is_v6
    - assert
    - ip::address_v4::any
    - begin
    - std::count
    - sim::asio::io_context::bind_udp_socket
    - empty
    - end
    - ip::udp::endpoint::address
    - ip::address_v6::any
    - assign
    - local_endpoint
    - boost::system::generic_category
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: ip::udp::endpoint
    signature: "ip::udp::endpoint io_context::bind_udp_socket(ip::udp::socket* socket\n\t\t,
      ip::udp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: sim::asio::io_context::unbind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::io_context::unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void io_context::unbind_udp_socket(ip::udp::socket* socket\n\t\t,
      const ip::udp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ep
    argTypes:
    - asio::ip::udp::socket*
    - asio::ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: sim::asio::io_context::rebind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::io_context::rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void io_context::rebind_udp_socket(asio::ip::udp::socket* socket, asio::ip::udp::endpoint
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ' target'
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: sim::asio::io_context::internal_connect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::io_context::internal_connect
    linkageType: ''
    returnType: std::shared_ptr<aux::channel>
    signature: "std::shared_ptr<aux::channel> io_context::internal_connect(ip::tcp::socket*
      s\n\t\t, ip::tcp::endpoint const& target, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' socket'
    - ' ep'
    argTypes:
    - asio::ip::udp::socket
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: sim::asio::io_context::find_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 1
    functionsReached:
    - sim::asio::io_context::find_udp_socket
    linkageType: ''
    returnType: route
    signature: "route io_context::find_udp_socket(asio::ip::udp::socket const& socket\n\t\t,
      ip::udp::endpoint const& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<asio::ip::address>
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sim'
    argTypes:
    - sim::simulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - std::vector<asio::ip::address>
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sim'
    - ' ip'
    argTypes:
    - sim::simulation
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim, asio::ip::address
      const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:41,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:42,1
    - Dst: add_io_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' sim'
    - ' ips'
    argTypes:
    - sim::simulation
    - std::vector<asio::ip::address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - config
    - add_io_service
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim, std::vector<asio::ip::address>
      const& ips)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_io_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: io_context::~io_context()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - remove_io_service
    linkageType: ''
    returnType: void
    signature: void io_context::~io_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sim::simulation*>
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sim::simulation*>
    - assert
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' dest'
    argTypes:
    - asio::ip::address
    - asio::ip::address
    assertStmts:
    - condition: (std::count(m_ips.begin(), m_ips.end(), source) > 0 && "source address
        must be a local address to this node/io_context")
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: sim::asio::io_context::get_path_mtu
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    - begin
    - std::count
    - end
    - config
    linkageType: ''
    returnType: int
    signature: int io_context::get_path_mtu(const asio::ip::address& source, const
      asio::ip::address& dest) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: sim::asio::io_context::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: sim::asio::io_context::stopped
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool io_context::stopped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: sim::asio::io_context::restart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::restart()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: sim::asio::io_context::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: sim::asio::io_context::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::run(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: sim::asio::io_context::poll
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: sim::asio::io_context::poll
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: sim::asio::io_context::poll_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll_one()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: sim::asio::io_context::poll_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll_one(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: sim::asio::io_context::add_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::io_context::add_timer
    linkageType: ''
    returnType: void
    signature: void io_context::add_timer(high_resolution_timer* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::remove_timer
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: sim::asio::io_context::remove_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::io_context::remove_timer
    linkageType: ''
    returnType: void
    signature: void io_context::remove_timer(high_resolution_timer* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: '& io_context::get_internal_service()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - get_internal_service
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & io_context::get_internal_service()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:136,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:136,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:137,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:137,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:141,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:143,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:144,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:145,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:149,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:151,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:151,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: is_v6
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:154,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:155,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:157,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:158,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:159,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:163,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:169,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:170,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:171,1
    - Dst: sim::asio::io_context::bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!m_ips.empty() && "you cannot use an internal io_context (one without
        an IP address) for creating and binding sockets")
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 175
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 175
    functionName: sim::asio::io_context::bind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - is_v6
    - ip::tcp::endpoint::address
    - assert
    - ip::address_v4::any
    - begin
    - std::count
    - empty
    - end
    - ip::address_v6::any
    - sim::asio::io_context::bind_socket
    - assign
    - local_endpoint
    - boost::system::generic_category
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: ip::tcp::endpoint
    signature: "ip::tcp::endpoint io_context::bind_socket(ip::tcp::socket* socket\n\t\t,
      ip::tcp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: sim::asio::io_context::unbind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::io_context::unbind_socket
    linkageType: ''
    returnType: void
    signature: "void io_context::unbind_socket(ip::tcp::socket* socket\n\t\t, const
      ip::tcp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prev
    - s
    - ep
    argTypes:
    - asio::ip::tcp::socket*
    - asio::ip::tcp::socket*
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: sim::asio::io_context::rebind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::io_context::rebind_socket
    linkageType: ''
    returnType: void
    signature: void io_context::rebind_socket(asio::ip::tcp::socket* prev, asio::ip::tcp::socket*
      s, asio::ip::tcp::endpoint ep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:191,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:191,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:192,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:192,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:195,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:196,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:198,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:199,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:200,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:204,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:206,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:206,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: is_v6
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:209,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:210,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:212,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:213,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:214,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:218,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:224,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:225,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:226,1
    - Dst: sim::asio::io_context::bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!m_ips.empty() && "you cannot use an internal io_context (one without
        an IP address) for creating and binding sockets")
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 230
    functionName: sim::asio::io_context::bind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - is_v6
    - assert
    - ip::address_v4::any
    - begin
    - std::count
    - sim::asio::io_context::bind_udp_socket
    - empty
    - end
    - ip::udp::endpoint::address
    - ip::address_v6::any
    - assign
    - local_endpoint
    - boost::system::generic_category
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: ip::udp::endpoint
    signature: "ip::udp::endpoint io_context::bind_udp_socket(ip::udp::socket* socket\n\t\t,
      ip::udp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: sim::asio::io_context::unbind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::io_context::unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void io_context::unbind_udp_socket(ip::udp::socket* socket\n\t\t,
      const ip::udp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ep
    argTypes:
    - asio::ip::udp::socket*
    - asio::ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: sim::asio::io_context::rebind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::io_context::rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void io_context::rebind_udp_socket(asio::ip::udp::socket* socket, asio::ip::udp::endpoint
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ' target'
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: sim::asio::io_context::internal_connect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::io_context::internal_connect
    linkageType: ''
    returnType: std::shared_ptr<aux::channel>
    signature: "std::shared_ptr<aux::channel> io_context::internal_connect(ip::tcp::socket*
      s\n\t\t, ip::tcp::endpoint const& target, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' socket'
    - ' ep'
    argTypes:
    - asio::ip::udp::socket
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: sim::asio::io_context::find_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 2
    functionsReached:
    - sim::asio::io_context::find_udp_socket
    linkageType: ''
    returnType: route
    signature: "route io_context::find_udp_socket(asio::ip::udp::socket const& socket\n\t\t,
      ip::udp::endpoint const& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<asio::ip::address>
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sim'
    argTypes:
    - sim::simulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - std::vector<asio::ip::address>
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sim'
    - ' ip'
    argTypes:
    - sim::simulation
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim, asio::ip::address
      const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:41,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:42,1
    - Dst: add_io_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' sim'
    - ' ips'
    argTypes:
    - sim::simulation
    - std::vector<asio::ip::address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - config
    - add_io_service
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim, std::vector<asio::ip::address>
      const& ips)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_io_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: io_context::~io_context()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - remove_io_service
    linkageType: ''
    returnType: void
    signature: void io_context::~io_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sim::simulation*>
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sim::simulation*>
    - assert
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' dest'
    argTypes:
    - asio::ip::address
    - asio::ip::address
    assertStmts:
    - condition: (std::count(m_ips.begin(), m_ips.end(), source) > 0 && "source address
        must be a local address to this node/io_context")
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: sim::asio::io_context::get_path_mtu
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    - begin
    - std::count
    - end
    - config
    linkageType: ''
    returnType: int
    signature: int io_context::get_path_mtu(const asio::ip::address& source, const
      asio::ip::address& dest) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: sim::asio::io_context::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: sim::asio::io_context::stopped
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool io_context::stopped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: sim::asio::io_context::restart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::restart()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: sim::asio::io_context::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: sim::asio::io_context::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::run(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: sim::asio::io_context::poll
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: sim::asio::io_context::poll
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: sim::asio::io_context::poll_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll_one()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: sim::asio::io_context::poll_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll_one(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: sim::asio::io_context::add_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::io_context::add_timer
    linkageType: ''
    returnType: void
    signature: void io_context::add_timer(high_resolution_timer* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::remove_timer
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: sim::asio::io_context::remove_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::io_context::remove_timer
    linkageType: ''
    returnType: void
    signature: void io_context::remove_timer(high_resolution_timer* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: '& io_context::get_internal_service()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - get_internal_service
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & io_context::get_internal_service()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:136,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:136,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:137,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:137,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:141,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:143,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:144,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:145,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:149,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:151,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:151,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: is_v6
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:154,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:155,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:157,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:158,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:159,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:163,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:169,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:170,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:171,1
    - Dst: sim::asio::io_context::bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!m_ips.empty() && "you cannot use an internal io_context (one without
        an IP address) for creating and binding sockets")
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 175
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 175
    functionName: sim::asio::io_context::bind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - is_v6
    - ip::tcp::endpoint::address
    - assert
    - ip::address_v4::any
    - begin
    - std::count
    - empty
    - end
    - ip::address_v6::any
    - sim::asio::io_context::bind_socket
    - assign
    - local_endpoint
    - boost::system::generic_category
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: ip::tcp::endpoint
    signature: "ip::tcp::endpoint io_context::bind_socket(ip::tcp::socket* socket\n\t\t,
      ip::tcp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: sim::asio::io_context::unbind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::io_context::unbind_socket
    linkageType: ''
    returnType: void
    signature: "void io_context::unbind_socket(ip::tcp::socket* socket\n\t\t, const
      ip::tcp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prev
    - s
    - ep
    argTypes:
    - asio::ip::tcp::socket*
    - asio::ip::tcp::socket*
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: sim::asio::io_context::rebind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::io_context::rebind_socket
    linkageType: ''
    returnType: void
    signature: void io_context::rebind_socket(asio::ip::tcp::socket* prev, asio::ip::tcp::socket*
      s, asio::ip::tcp::endpoint ep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:191,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:191,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:192,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:192,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:195,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:196,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:198,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:199,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:200,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:204,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:206,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:206,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: is_v6
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:209,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:210,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:212,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:213,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:214,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:218,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:224,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:225,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:226,1
    - Dst: sim::asio::io_context::bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!m_ips.empty() && "you cannot use an internal io_context (one without
        an IP address) for creating and binding sockets")
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 230
    functionName: sim::asio::io_context::bind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - is_v6
    - assert
    - ip::address_v4::any
    - begin
    - std::count
    - sim::asio::io_context::bind_udp_socket
    - empty
    - end
    - ip::udp::endpoint::address
    - ip::address_v6::any
    - assign
    - local_endpoint
    - boost::system::generic_category
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: ip::udp::endpoint
    signature: "ip::udp::endpoint io_context::bind_udp_socket(ip::udp::socket* socket\n\t\t,
      ip::udp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: sim::asio::io_context::unbind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::io_context::unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void io_context::unbind_udp_socket(ip::udp::socket* socket\n\t\t,
      const ip::udp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ep
    argTypes:
    - asio::ip::udp::socket*
    - asio::ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: sim::asio::io_context::rebind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::io_context::rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void io_context::rebind_udp_socket(asio::ip::udp::socket* socket, asio::ip::udp::endpoint
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ' target'
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: sim::asio::io_context::internal_connect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::io_context::internal_connect
    linkageType: ''
    returnType: std::shared_ptr<aux::channel>
    signature: "std::shared_ptr<aux::channel> io_context::internal_connect(ip::tcp::socket*
      s\n\t\t, ip::tcp::endpoint const& target, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' socket'
    - ' ep'
    argTypes:
    - asio::ip::udp::socket
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: sim::asio::io_context::find_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 3
    functionsReached:
    - sim::asio::io_context::find_udp_socket
    linkageType: ''
    returnType: route
    signature: "route io_context::find_udp_socket(asio::ip::udp::socket const& socket\n\t\t,
      ip::udp::endpoint const& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<asio::ip::address>
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sim'
    argTypes:
    - sim::simulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - std::vector<asio::ip::address>
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sim'
    - ' ip'
    argTypes:
    - sim::simulation
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim, asio::ip::address
      const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:41,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:42,1
    - Dst: add_io_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' sim'
    - ' ips'
    argTypes:
    - sim::simulation
    - std::vector<asio::ip::address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - config
    - add_io_service
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(sim::simulation& sim, std::vector<asio::ip::address>
      const& ips)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_io_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: io_context::~io_context()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - remove_io_service
    linkageType: ''
    returnType: void
    signature: void io_context::~io_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sim::simulation*>
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:53,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: sim::asio::io_context::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sim::simulation*>
    - assert
    linkageType: ''
    returnType: void
    signature: void io_context::io_context(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:62,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' dest'
    argTypes:
    - asio::ip::address
    - asio::ip::address
    assertStmts:
    - condition: (std::count(m_ips.begin(), m_ips.end(), source) > 0 && "source address
        must be a local address to this node/io_context")
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: sim::asio::io_context::get_path_mtu
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    - begin
    - std::count
    - end
    - config
    linkageType: ''
    returnType: int
    signature: int io_context::get_path_mtu(const asio::ip::address& source, const
      asio::ip::address& dest) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: sim::asio::io_context::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: sim::asio::io_context::stopped
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool io_context::stopped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: sim::asio::io_context::restart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context::restart()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: sim::asio::io_context::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: sim::asio::io_context::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::run(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: sim::asio::io_context::poll
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: sim::asio::io_context::poll
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: sim::asio::io_context::poll_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll_one()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: sim::asio::io_context::poll_one
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t io_context::poll_one(boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::add_timer
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: sim::asio::io_context::add_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::io_context::add_timer
    linkageType: ''
    returnType: void
    signature: void io_context::add_timer(high_resolution_timer* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::remove_timer
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: sim::asio::io_context::remove_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::io_context::remove_timer
    linkageType: ''
    returnType: void
    signature: void io_context::remove_timer(high_resolution_timer* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: '& io_context::get_internal_service()'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 0
    functionsReached:
    - get_internal_service
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & io_context::get_internal_service()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:136,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:136,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:137,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:137,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:139,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:141,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:143,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:144,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:145,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:149,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:151,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:151,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:153,1
    - Dst: is_v6
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:154,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:155,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:157,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:158,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:159,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:163,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:165,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:169,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:170,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:171,1
    - Dst: sim::asio::io_context::bind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!m_ips.empty() && "you cannot use an internal io_context (one without
        an IP address) for creating and binding sockets")
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 175
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 175
    functionName: sim::asio::io_context::bind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - is_v6
    - ip::tcp::endpoint::address
    - assert
    - ip::address_v4::any
    - begin
    - std::count
    - empty
    - end
    - ip::address_v6::any
    - sim::asio::io_context::bind_socket
    - assign
    - local_endpoint
    - boost::system::generic_category
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: ip::tcp::endpoint
    signature: "ip::tcp::endpoint io_context::bind_socket(ip::tcp::socket* socket\n\t\t,
      ip::tcp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::unbind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: sim::asio::io_context::unbind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::io_context::unbind_socket
    linkageType: ''
    returnType: void
    signature: "void io_context::unbind_socket(ip::tcp::socket* socket\n\t\t, const
      ip::tcp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::rebind_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prev
    - s
    - ep
    argTypes:
    - asio::ip::tcp::socket*
    - asio::ip::tcp::socket*
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: sim::asio::io_context::rebind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::io_context::rebind_socket
    linkageType: ''
    returnType: void
    signature: void io_context::rebind_socket(asio::ip::tcp::socket* prev, asio::ip::tcp::socket*
      s, asio::ip::tcp::endpoint ep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:191,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:191,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:192,1
    - Dst: ip::address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:192,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:194,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:195,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:196,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:198,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:199,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:200,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:204,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:206,1
    - Dst: ip::address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:206,1
    - Dst: std::find_if
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:208,1
    - Dst: is_v6
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:209,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:210,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:212,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:213,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:214,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:218,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:220,1
    - Dst: assign
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:224,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:225,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:226,1
    - Dst: sim::asio::io_context::bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!m_ips.empty() && "you cannot use an internal io_context (one without
        an IP address) for creating and binding sockets")
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 230
    functionName: sim::asio::io_context::bind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - is_v6
    - assert
    - ip::address_v4::any
    - begin
    - std::count
    - sim::asio::io_context::bind_udp_socket
    - empty
    - end
    - ip::udp::endpoint::address
    - ip::address_v6::any
    - assign
    - local_endpoint
    - boost::system::generic_category
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: ip::udp::endpoint
    signature: "ip::udp::endpoint io_context::bind_udp_socket(ip::udp::socket* socket\n\t\t,
      ip::udp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: sim::asio::io_context::unbind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::io_context::unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void io_context::unbind_udp_socket(ip::udp::socket* socket\n\t\t,
      const ip::udp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - ep
    argTypes:
    - asio::ip::udp::socket*
    - asio::ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: sim::asio::io_context::rebind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::io_context::rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void io_context::rebind_udp_socket(asio::ip::udp::socket* socket, asio::ip::udp::endpoint
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::internal_connect
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ' target'
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: sim::asio::io_context::internal_connect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::io_context::internal_connect
    linkageType: ''
    returnType: std::shared_ptr<aux::channel>
    signature: "std::shared_ptr<aux::channel> io_context::internal_connect(ip::tcp::socket*
      s\n\t\t, ip::tcp::endpoint const& target, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::io_context::find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/io_service.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' socket'
    - ' ep'
    argTypes:
    - asio::ip::udp::socket
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: sim::asio::io_context::find_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/io_service.cpp
    functionUses: 4
    functionsReached:
    - sim::asio::io_context::find_udp_socket
    linkageType: ''
    returnType: route
    signature: "route io_context::find_udp_socket(asio::ip::udp::socket const& socket\n\t\t,
      ip::udp::endpoint const& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:37,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:37,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:37,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:38,1
    - Dst: milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' sim'
    argTypes:
    - simulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: sim::default_config::build
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<duration>
    - std::make_shared<queue>
    - std::ref
    - milliseconds
    - get_io_context
    linkageType: ''
    returnType: void
    signature: void default_config::build(simulation& sim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:44,1
    - Dst: sim::default_config::clear
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:45,1
    - Dst: sim::default_config::clear
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: sim::default_config::clear
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 1
    functionsReached:
    - reset
    - sim::default_config::clear
    linkageType: ''
    returnType: void
    signature: void default_config::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: sim::default_config::channel_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 0
    functionsReached:
    - route
    linkageType: ''
    returnType: route
    signature: "route default_config::channel_route(\n\t\tasio::ip::address /* src
      */\n\t\t, asio::ip::address /* dst */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:60,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:61,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:61,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:62,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:62,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:62,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:63,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:63,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:64,1
    - Dst: milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:64,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: sim::default_config::incoming_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<duration>
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - find
    - std::ref
    - milliseconds
    - get_io_context
    - route
    linkageType: ''
    returnType: route
    signature: route default_config::incoming_route(asio::ip::address ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: sim::default_config::path_mtu
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int default_config::path_mtu(\n\t\tasio::ip::address /* ip1 */\n\t\t,
      asio::ip::address /* ip2 */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:81,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:82,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:82,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:83,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:83,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:83,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:84,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:84,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:85,1
    - Dst: milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:85,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: sim::default_config::outgoing_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 1
    functionsReached:
    - duration_cast<duration>
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - find
    - std::ref
    - milliseconds
    - get_io_context
    - route
    linkageType: ''
    returnType: route
    signature: route default_config::outgoing_route(asio::ip::address ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:97,1
    - Dst: asio::ip::make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:98,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:99,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:99,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:102,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:103,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: sim::default_config::hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 8
    functionsReached:
    - duration_cast<duration>
    - asio::ip::make_address_v4
    - asio::ip::make_address_v6
    - libtorrent::socks_error::make_error_code
    - libtorrent::total_milliseconds
    - libtorrent::total_microseconds
    linkageType: ''
    returnType: duration
    signature: "duration default_config::hostname_lookup(\n\t\tasio::ip::address const&
      /* requestor */\n\t\t, std::string hostname\n\t\t, std::vector<asio::ip::address>&
      result\n\t\t, boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:37,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:37,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:37,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:38,1
    - Dst: milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' sim'
    argTypes:
    - simulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: sim::default_config::build
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<duration>
    - std::make_shared<queue>
    - std::ref
    - milliseconds
    - get_io_context
    linkageType: ''
    returnType: void
    signature: void default_config::build(simulation& sim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:44,1
    - Dst: sim::default_config::clear
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:45,1
    - Dst: sim::default_config::clear
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: sim::default_config::clear
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 2
    functionsReached:
    - reset
    - sim::default_config::clear
    linkageType: ''
    returnType: void
    signature: void default_config::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: sim::default_config::channel_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 0
    functionsReached:
    - route
    linkageType: ''
    returnType: route
    signature: "route default_config::channel_route(\n\t\tasio::ip::address /* src
      */\n\t\t, asio::ip::address /* dst */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:60,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:61,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:61,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:62,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:62,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:62,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:63,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:63,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:64,1
    - Dst: milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:64,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: sim::default_config::incoming_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 0
    functionsReached:
    - duration_cast<duration>
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - find
    - std::ref
    - milliseconds
    - get_io_context
    - route
    linkageType: ''
    returnType: route
    signature: route default_config::incoming_route(asio::ip::address ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: sim::default_config::path_mtu
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int default_config::path_mtu(\n\t\tasio::ip::address /* ip1 */\n\t\t,
      asio::ip::address /* ip2 */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:81,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:82,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:82,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:83,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:83,1
    - Dst: std::make_shared<queue>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:83,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:84,1
    - Dst: get_io_context
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:84,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:85,1
    - Dst: milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:85,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ip
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: sim::default_config::outgoing_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 1
    functionsReached:
    - duration_cast<duration>
    - std::make_pair
    - std::make_shared<queue>
    - insert
    - end
    - find
    - std::ref
    - milliseconds
    - get_io_context
    - route
    linkageType: ''
    returnType: route
    signature: route default_config::outgoing_route(asio::ip::address ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::make_address_v6
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:97,1
    - Dst: asio::ip::make_address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:98,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:99,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:99,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:102,1
    - Dst: duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:103,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/simulation/libsimulator/src/default_config.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - hostname
    - ' result'
    - ' ec'
    argTypes:
    - std::string
    - std::vector<asio::ip::address>
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: sim::default_config::hostname_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/default_config.cpp
    functionUses: 8
    functionsReached:
    - duration_cast<duration>
    - asio::ip::make_address_v4
    - asio::ip::make_address_v6
    - libtorrent::socks_error::make_error_code
    - libtorrent::total_milliseconds
    - libtorrent::total_microseconds
    linkageType: ''
    returnType: duration
    signature: "duration default_config::hostname_lookup(\n\t\tasio::ip::address const&
      /* requestor */\n\t\t, std::string hostname\n\t\t, std::vector<asio::ip::address>&
      result\n\t\t, boost::system::error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<socks_connection>
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:40,1
    - Dst: fill
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:44,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:45,1
    - Dst: address::is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:46,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:48,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:48,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:49,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:49,1
    - Dst: address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:49,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:53,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:53,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:54,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:54,1
    - Dst: address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:54,1
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:56,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:58,1
    - Dst: socket
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:58,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - ' ios'
    - listen_port
    - version
    - flags
    argTypes:
    - io_context
    - unsigned short
    - int
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: sim::socks_server::socks_server
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<socks_connection>
    - std::bind
    - rand_v4
    - listen
    - async_accept
    - open
    - get_ips
    - rand_v6
    - address::is_v4
    - address_v6::any
    - fill
    - address_v4::any
    - local_endpoint
    - socket
    - bind
    linkageType: ''
    returnType: void
    signature: "void socks_server::socks_server(io_context& ios, unsigned short listen_port,
      int version\n\t\t, std::uint32_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:69,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:70,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:70,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:74,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:75,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:75,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:77,1
    - Dst: std::make_shared<socks_connection>
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:80,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:83,1
    - Dst: socket
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:83,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 85
    functionName: sim::socks_server::on_accept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<socks_connection>
    - std::bind
    - async_accept
    - message
    - socket
    - start
    - value
    - address
    - std::printf
    - port
    linkageType: ''
    returnType: void
    signature: void socks_server::on_accept(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: sim::socks_server::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void socks_server::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' ios'
    - version
    - ' cmd_counts'
    - flags
    - ' bind_port'
    argTypes:
    - asio::io_context
    - int
    - std::array<int, 3>
    - std::uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: sim::socks_connection::socks_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void socks_connection::socks_connection(asio::io_context& ios\n\t\t,
      int version, std::array<int, 3>& cmd_counts, std::uint32_t const flags, int&
      bind_port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:116,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:116,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:117,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:117,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:120,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:120,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:121,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: sim::socks_connection::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::bind
    - async_read
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void socks_connection::start()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:129,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:130,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:130,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:131,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:137,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:139,1
    - Dst: unsigned
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:143,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:146,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:146,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:148,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: sim::socks_connection::on_handshake1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - sim::socks_connection::close_connection
    - async_read
    - both_sides_from_store_buffer
    - value
    - std::printf
    - unsigned
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_handshake1(error_code const& ec, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:156,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:157,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:157,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:158,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:162,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:164,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:165,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:172,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:172,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:173,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: sim::socks_connection::on_handshake2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - async_write
    - std::count
    - message
    - sim::socks_connection::close_connection
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_handshake2(error_code const& ec, size_t bytes_transferred)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:181,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:182,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:182,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:183,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:187,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:187,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:188,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: sim::socks_connection::on_handshake3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - sim::socks_connection::close_connection
    - async_read
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_handshake3(error_code const& ec, size_t bytes_transferred)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:197,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:198,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:198,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:199,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:216,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:218,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:226,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:228,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:248,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:249,1
    - Dst: sim::socks_connection::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:255,1
    - Dst: sim::socks_connection::bind_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:259,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:267,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:269,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:275,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:277,1
    - Dst: unsigned
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:281,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:285,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:287,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:291,1
    - Dst: sim::socks_connection::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:321,1
    - Dst: sim::socks_connection::bind_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:325,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:329,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:329,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:331,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:331,1
    - Dst: sim::socks_connection::udp_associate
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:333,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:348,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:349,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:353,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:358,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:359,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:360,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:371,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:372,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 93
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 374
    functionName: sim::socks_connection::on_request1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - address
    - std::printf
    - std::uint8_t
    - remote_endpoint
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::bind_connection
    - async_read
    - both_sides_from_store_buffer
    - sim::socks_connection::udp_associate
    - value
    - asio::ip::tcp::endpoint::address
    - sim::socks_connection::open_forward_connection
    - unsigned
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_request1(error_code const& ec, size_t bytes_transferred)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:380,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:381,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:381,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:381,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:382,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:392,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:393,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:394,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:394,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:397,1
    - Dst: async_resolve
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:398,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:399,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 401
    functionName: sim::socks_connection::on_request_domain_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - async_resolve
    - std::uint8_t
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - std::string::c_str
    - std::snprintf
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_request_domain_name(error_code const& ec,
      size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::tcp::resolver::results_type::empty
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:406,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:410,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:411,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:411,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:411,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:415,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:416,1
    - Dst: memset
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:429,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:433,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:434,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:435,1
    - Dst: auto::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:438,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:443,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:444,1
    - Dst: asio::ip::tcp::resolver::results_type::front
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:445,1
    - Dst: asio::ip::tcp::resolver::results_type::front
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:446,1
    - Dst: sim::socks_connection::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:447,1
    - Dst: asio::ip::tcp::resolver::results_type::front
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ' ec'
    - ips
    argTypes:
    - boost::system::error_code
    - asio::ip::tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 448
    functionName: sim::socks_connection::on_request_domain_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - async_write
    - auto::close_connection
    - message
    - sim::socks_connection::command
    - asio::ip::tcp::resolver::results_type::front
    - sim::socks_connection::open_forward_connection
    - memset
    - asio::ip::tcp::resolver::results_type::empty
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_request_domain_lookup(boost::system::error_code
      const& ec\n\t\t, asio::ip::tcp::resolver::results_type const ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:452,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:453,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:453,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:453,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:455,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:455,1
    - Dst: async_connect
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:456,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:457,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 459
    functionName: sim::socks_connection::open_forward_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 2
    functionsReached:
    - protocol
    - std::bind
    - shared_from_this
    - open
    - async_connect
    - sim::socks_connection::command
    - port
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::open_forward_connection(const asio::ip::tcp::endpoint&
      target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:463,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:464,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:464,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:464,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:467,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:467,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:470,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:470,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:471,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:475,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:481,1
    - Dst: sim::socks_connection::format_response
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:482,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:482,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:482,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:486,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:487,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:488,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:489,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:490,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:492,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:494,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:495,1
    - Dst: auto::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:498,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:504,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:505,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:506,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 507
    functionName: sim::socks_connection::bind_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 1
    functionsReached:
    - error_code::value
    - protocol
    - shared_from_this
    - async_write
    - auto::close_connection
    - std::bind
    - open
    - tcp::endpoint::address
    - sim::socks_connection::command
    - sim::socks_connection::format_response
    - both_sides_from_store_buffer
    - error_code::message
    - local_endpoint
    - port
    - bind
    - address
    - std::printf
    - tcp::endpoint::port
    linkageType: ''
    returnType: void
    signature: void socks_connection::bind_connection(const asio::ip::tcp::endpoint&
      target)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:511,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:512,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:512,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:514,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:514,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:515,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:515,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:518,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:518,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:521,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:521,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:522,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:526,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:526,1
    - Dst: address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:526,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:526,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:529,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:530,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:530,1
    - Dst: non_blocking
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:534,1
    - Dst: async_receive_from
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:535,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:535,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:536,1
    - Dst: local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:541,1
    - Dst: sim::socks_connection::format_hostname_response
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:543,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:543,1
    - Dst: sim::socks_connection::format_response
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:544,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:544,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:544,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:548,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:550,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:551,1
    - Dst: auto::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:554,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:560,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:560,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:561,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 562
    functionName: sim::socks_connection::udp_associate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 1
    functionsReached:
    - sim::socks_connection::command
    - sim::socks_connection::format_response
    - bind
    - error_code::value
    - udp::endpoint::address
    - std::uint16_t
    - async_receive_from
    - error_code::message
    - sim::socks_connection::format_hostname_response
    - address
    - std::printf
    - protocol
    - shared_from_this
    - auto::close_connection
    - local_bound_to
    - open
    - non_blocking
    - port
    - udp::endpoint::port
    - address_v4
    - std::bind
    - async_write
    - both_sides_from_store_buffer
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void socks_connection::udp_associate(const asio::ip::tcp::endpoint&
      target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:568,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:568,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:569,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:570,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:571,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:577,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:578,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:582,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:583,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:584,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 586
    functionName: sim::socks_connection::wait_for_eof
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - async_read_some
    - both_sides_from_store_buffer
    - local_endpoint
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void socks_connection::wait_for_eof(boost::system::error_code const&
      ec, std::size_t)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:591,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:594,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:594,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:601,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:602,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:602,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:604,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:604,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:616,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:617,1
    - Dst: right::find
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:637,1
    - Dst: right::end
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:638,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:641,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:641,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:642,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:643,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:643,1
    - Dst: async_resolve
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:649,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:649,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:650,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:655,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:655,1
    - Dst: endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:661,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:663,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:663,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:667,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:667,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:670,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:670,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:695,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:695,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:696,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:696,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:700,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:705,1
    - Dst: left::find
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:707,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:707,1
    - Dst: left::end
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:708,1
    - Dst: auto::second::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:710,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:715,1
    - Dst: auto::second::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:715,1
    - Dst: std::copy
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:717,1
    - Dst: auto::second::begin
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:717,1
    - Dst: auto::second::end
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:717,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:717,1
    - Dst: auto::second::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:718,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:723,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:723,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:724,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:727,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:728,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:728,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:733,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:747,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:747,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:748,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:751,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:752,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:752,1
    - Dst: async_receive_from
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:756,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:756,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:757,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 89
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 758
    functionName: sim::socks_connection::on_read_udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::vector::size
    - std::move
    - async_resolve
    - right::end
    - static_cast<char>
    - data
    - right::find
    - left::end
    - async_receive_from
    - message
    - auto::address
    - auto::second::end
    - std::copy
    - error_code::message
    - address
    - std::printf
    - left::find
    - std::array::data
    - port
    - auto::second::size
    - std::bind
    - std::array::size
    - std::vector::data
    - auto::second::begin
    - insert
    - std::string::c_str
    - both_sides_from_store_buffer
    - local_endpoint
    - endpoint
    - send_to
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_read_udp(boost::system::error_code const&
      ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:764,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:765,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:765,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:765,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:766,1
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:770,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:771,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:772,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:773,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:775,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:776,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:777,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 779
    functionName: sim::socks_connection::start_accept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - listen
    - async_accept
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::start_accept(boost::system::error_code const&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:796,1
    - Dst: to_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:799,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:800,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:800,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:801,1
    - Dst: to_v6
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:804,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:805,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:805,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:806,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:817,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:817,1
    - Dst: to_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:822,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:823,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:823,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ' addr'
    - port
    - response
    argTypes:
    - address
    - int
    - int
    assertStmts:
    - condition: (addr.is_v4())
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    constantsTouched: []
    func_position:
      end: 827
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 827
    functionName: sim::socks_connection::format_response
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 2
    functionsReached:
    - assert
    - to_v4
    - memcpy
    - address_v6::bytes_type::size
    - address_v4::bytes_type::size
    - to_v6
    - is_v4
    linkageType: ''
    returnType: int
    signature: "int socks_connection::format_response(address const& addr, int const
      port\n\t\t, int const response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:835,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:836,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:849,1
    - Dst: ::strlen
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - hostname
    - port
    - response
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 856
    functionName: sim::socks_connection::format_hostname_response
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 1
    functionsReached:
    - ::strlen
    - sim::socks_connection::close_connection
    - std::printf
    - std::uint8_t
    linkageType: ''
    returnType: int
    signature: "int socks_connection::format_hostname_response(char const* hostname,
      int const port\n\t\t, int const response)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:860,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:861,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:861,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:861,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:870,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:873,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:874,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:874,1
    - Dst: asio::ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:874,1
    - Dst: sim::socks_connection::format_response
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:880,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:880,1
    - Dst: asio::ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:880,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:884,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:885,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:885,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:885,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:887,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:889,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:890,1
    - Dst: auto::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:893,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:898,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:900,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:901,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:906,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:907,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:907,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:907,1
    - Dst: auto::m_server_connection::async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:912,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:913,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:914,1
    - Dst: auto::m_client_connection::async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:916,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:917,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:918,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 921
    functionName: sim::socks_connection::on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::bind
    - async_write
    - auto::close_connection
    - auto::m_client_connection::async_read_some
    - remote_endpoint
    - message
    - sim::socks_connection::command
    - sim::socks_connection::format_response
    - auto::m_server_connection::async_read_some
    - both_sides_from_store_buffer
    - value
    - asio::ip::tcp::endpoint::port
    - asio::ip::tcp::endpoint::address
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_connected(boost::system::error_code const&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:936,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:937,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:937,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:937,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:938,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:941,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:941,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:942,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 944
    functionName: sim::socks_connection::on_client_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - async_write
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_client_receive(boost::system::error_code
      const& ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:951,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:952,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:952,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:952,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:953,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:957,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:958,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:959,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 961
    functionName: sim::socks_connection::on_client_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_client_forward(error_code const& ec\n\t\t,
      size_t /* bytes_transferred */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:969,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:970,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:970,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:970,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:971,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:975,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:975,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:976,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 978
    functionName: sim::socks_connection::on_server_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - async_write
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_server_receive(boost::system::error_code
      const& ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:985,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:986,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:986,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:986,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:987,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:991,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:992,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:993,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 995
    functionName: sim::socks_connection::on_server_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_server_forward(error_code const& ec\n\t\t,
      size_t /* bytes_transferred */)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1000,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1003,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1004,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1004,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1006,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1009,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1010,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1010,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1013,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1016,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1017,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1019
    functionName: sim::socks_connection::close_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 11
    functionsReached:
    - error_code::value
    - error_code::message
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void socks_connection::close_connection()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1030
    functionName: sim::socks_connection::command
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * socks_connection::command() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<socks_connection>
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:40,1
    - Dst: fill
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:44,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:45,1
    - Dst: address::is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:46,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:48,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:48,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:49,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:49,1
    - Dst: address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:49,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:53,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:53,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:54,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:54,1
    - Dst: address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:54,1
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:56,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:58,1
    - Dst: socket
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:58,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - ' ios'
    - listen_port
    - version
    - flags
    argTypes:
    - io_context
    - unsigned short
    - int
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: sim::socks_server::socks_server
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<socks_connection>
    - std::bind
    - rand_v4
    - listen
    - async_accept
    - open
    - get_ips
    - rand_v6
    - address::is_v4
    - address_v6::any
    - fill
    - address_v4::any
    - local_endpoint
    - socket
    - bind
    linkageType: ''
    returnType: void
    signature: "void socks_server::socks_server(io_context& ios, unsigned short listen_port,
      int version\n\t\t, std::uint32_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:69,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:70,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:70,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:74,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:75,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:75,1
    - Dst: start
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:77,1
    - Dst: std::make_shared<socks_connection>
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:80,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:83,1
    - Dst: socket
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:83,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 85
    functionName: sim::socks_server::on_accept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<socks_connection>
    - std::bind
    - async_accept
    - message
    - socket
    - start
    - value
    - address
    - std::printf
    - port
    linkageType: ''
    returnType: void
    signature: void socks_server::on_accept(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: sim::socks_server::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void socks_server::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' ios'
    - version
    - ' cmd_counts'
    - flags
    - ' bind_port'
    argTypes:
    - asio::io_context
    - int
    - std::array<int, 3>
    - std::uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: sim::socks_connection::socks_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void socks_connection::socks_connection(asio::io_context& ios\n\t\t,
      int version, std::array<int, 3>& cmd_counts, std::uint32_t const flags, int&
      bind_port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:116,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:116,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:117,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:117,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:120,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:120,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:121,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: sim::socks_connection::start
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::bind
    - async_read
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void socks_connection::start()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:129,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:130,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:130,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:131,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:137,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:139,1
    - Dst: unsigned
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:143,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:146,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:146,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:148,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: sim::socks_connection::on_handshake1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - sim::socks_connection::close_connection
    - async_read
    - both_sides_from_store_buffer
    - value
    - std::printf
    - unsigned
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_handshake1(error_code const& ec, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:156,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:157,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:157,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:158,1
    - Dst: std::count
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:162,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:164,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:165,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:172,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:172,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:173,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: sim::socks_connection::on_handshake2
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - async_write
    - std::count
    - message
    - sim::socks_connection::close_connection
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_handshake2(error_code const& ec, size_t bytes_transferred)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:181,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:182,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:182,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:183,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:187,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:187,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:188,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: sim::socks_connection::on_handshake3
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - sim::socks_connection::close_connection
    - async_read
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_handshake3(error_code const& ec, size_t bytes_transferred)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:197,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:198,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:198,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:199,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:216,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:218,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:226,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:228,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:248,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:249,1
    - Dst: sim::socks_connection::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:255,1
    - Dst: sim::socks_connection::bind_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:259,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:267,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:269,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:275,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:277,1
    - Dst: unsigned
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:281,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:285,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:287,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:291,1
    - Dst: sim::socks_connection::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:321,1
    - Dst: sim::socks_connection::bind_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:325,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:329,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:329,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:331,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:331,1
    - Dst: sim::socks_connection::udp_associate
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:333,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:348,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:349,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:353,1
    - Dst: async_read
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:358,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:359,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:360,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:371,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:372,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 93
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 374
    functionName: sim::socks_connection::on_request1
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - address
    - std::printf
    - std::uint8_t
    - remote_endpoint
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::bind_connection
    - async_read
    - both_sides_from_store_buffer
    - sim::socks_connection::udp_associate
    - value
    - asio::ip::tcp::endpoint::address
    - sim::socks_connection::open_forward_connection
    - unsigned
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_request1(error_code const& ec, size_t bytes_transferred)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:380,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:381,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:381,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:381,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:382,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:392,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:393,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:394,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:394,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:397,1
    - Dst: async_resolve
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:398,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:399,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 401
    functionName: sim::socks_connection::on_request_domain_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - async_resolve
    - std::uint8_t
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - std::string::c_str
    - std::snprintf
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_request_domain_name(error_code const& ec,
      size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::tcp::resolver::results_type::empty
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:406,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:410,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:411,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:411,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:411,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:415,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:416,1
    - Dst: memset
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:429,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:433,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:434,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:435,1
    - Dst: auto::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:438,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:443,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:444,1
    - Dst: asio::ip::tcp::resolver::results_type::front
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:445,1
    - Dst: asio::ip::tcp::resolver::results_type::front
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:446,1
    - Dst: sim::socks_connection::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:447,1
    - Dst: asio::ip::tcp::resolver::results_type::front
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ' ec'
    - ips
    argTypes:
    - boost::system::error_code
    - asio::ip::tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 448
    functionName: sim::socks_connection::on_request_domain_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - async_write
    - auto::close_connection
    - message
    - sim::socks_connection::command
    - asio::ip::tcp::resolver::results_type::front
    - sim::socks_connection::open_forward_connection
    - memset
    - asio::ip::tcp::resolver::results_type::empty
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_request_domain_lookup(boost::system::error_code
      const& ec\n\t\t, asio::ip::tcp::resolver::results_type const ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:452,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:453,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:453,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:453,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:455,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:455,1
    - Dst: async_connect
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:456,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:457,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 459
    functionName: sim::socks_connection::open_forward_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 4
    functionsReached:
    - protocol
    - std::bind
    - shared_from_this
    - open
    - async_connect
    - sim::socks_connection::command
    - port
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::open_forward_connection(const asio::ip::tcp::endpoint&
      target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:463,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:464,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:464,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:464,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:467,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:467,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:470,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:470,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:471,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:475,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:481,1
    - Dst: sim::socks_connection::format_response
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:482,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:482,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:482,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:486,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:487,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:488,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:489,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:490,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:492,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:494,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:495,1
    - Dst: auto::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:498,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:504,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:505,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:506,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 507
    functionName: sim::socks_connection::bind_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 2
    functionsReached:
    - error_code::value
    - protocol
    - shared_from_this
    - async_write
    - auto::close_connection
    - std::bind
    - open
    - tcp::endpoint::address
    - sim::socks_connection::command
    - sim::socks_connection::format_response
    - both_sides_from_store_buffer
    - error_code::message
    - local_endpoint
    - port
    - bind
    - address
    - std::printf
    - tcp::endpoint::port
    linkageType: ''
    returnType: void
    signature: void socks_connection::bind_connection(const asio::ip::tcp::endpoint&
      target)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:511,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:512,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:512,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:512,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:514,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:514,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:515,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:515,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:518,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:518,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:521,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:521,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:522,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:526,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:526,1
    - Dst: address_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:526,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:526,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:529,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:530,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:530,1
    - Dst: non_blocking
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:534,1
    - Dst: async_receive_from
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:535,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:535,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:536,1
    - Dst: local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:541,1
    - Dst: sim::socks_connection::format_hostname_response
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:543,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:543,1
    - Dst: sim::socks_connection::format_response
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:544,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:544,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:544,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:548,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:550,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:551,1
    - Dst: auto::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:554,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:560,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:560,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:561,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 562
    functionName: sim::socks_connection::udp_associate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 2
    functionsReached:
    - sim::socks_connection::command
    - sim::socks_connection::format_response
    - bind
    - error_code::value
    - udp::endpoint::address
    - std::uint16_t
    - async_receive_from
    - error_code::message
    - sim::socks_connection::format_hostname_response
    - address
    - std::printf
    - protocol
    - shared_from_this
    - auto::close_connection
    - local_bound_to
    - open
    - non_blocking
    - port
    - udp::endpoint::port
    - address_v4
    - std::bind
    - async_write
    - both_sides_from_store_buffer
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void socks_connection::udp_associate(const asio::ip::tcp::endpoint&
      target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:568,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:568,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:569,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:570,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:571,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:577,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:578,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:582,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:583,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:584,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 586
    functionName: sim::socks_connection::wait_for_eof
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - async_read_some
    - both_sides_from_store_buffer
    - local_endpoint
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void socks_connection::wait_for_eof(boost::system::error_code const&
      ec, std::size_t)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:591,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:594,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:594,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:601,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:602,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:602,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:604,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:604,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:616,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:617,1
    - Dst: right::find
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:637,1
    - Dst: right::end
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:638,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:641,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:641,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:642,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:643,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:643,1
    - Dst: async_resolve
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:649,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:649,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:649,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:650,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:655,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:655,1
    - Dst: endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:661,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:663,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:663,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:667,1
    - Dst: auto::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:667,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:670,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:670,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:695,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:695,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:696,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:696,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:700,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:705,1
    - Dst: left::find
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:707,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:707,1
    - Dst: left::end
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:708,1
    - Dst: auto::second::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:710,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:715,1
    - Dst: auto::second::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:715,1
    - Dst: std::copy
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:717,1
    - Dst: auto::second::begin
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:717,1
    - Dst: auto::second::end
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:717,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:717,1
    - Dst: auto::second::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:718,1
    - Dst: std::vector::data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:723,1
    - Dst: std::vector::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:723,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:724,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:727,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:728,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:728,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:733,1
    - Dst: std::array::data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:747,1
    - Dst: std::array::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:747,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:748,1
    - Dst: send_to
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:751,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:752,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:752,1
    - Dst: async_receive_from
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:756,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:756,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:757,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 89
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 758
    functionName: sim::socks_connection::on_read_udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::vector::size
    - std::move
    - async_resolve
    - right::end
    - static_cast<char>
    - data
    - right::find
    - left::end
    - async_receive_from
    - message
    - auto::address
    - auto::second::end
    - std::copy
    - error_code::message
    - address
    - std::printf
    - left::find
    - std::array::data
    - port
    - auto::second::size
    - std::bind
    - std::array::size
    - std::vector::data
    - auto::second::begin
    - insert
    - std::string::c_str
    - both_sides_from_store_buffer
    - local_endpoint
    - endpoint
    - send_to
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_read_udp(boost::system::error_code const&
      ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:764,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:765,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:765,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:765,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:766,1
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:770,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:771,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:772,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:773,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:775,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:776,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:777,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 779
    functionName: sim::socks_connection::start_accept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - listen
    - async_accept
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::start_accept(boost::system::error_code const&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:796,1
    - Dst: to_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:799,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:800,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:800,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:801,1
    - Dst: to_v6
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:804,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:805,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:805,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:806,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:817,1
    - Dst: is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:817,1
    - Dst: to_v4
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:822,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:823,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:823,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ' addr'
    - port
    - response
    argTypes:
    - address
    - int
    - int
    assertStmts:
    - condition: (addr.is_v4())
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    constantsTouched: []
    func_position:
      end: 827
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 827
    functionName: sim::socks_connection::format_response
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 5
    functionsReached:
    - assert
    - to_v4
    - memcpy
    - address_v6::bytes_type::size
    - address_v4::bytes_type::size
    - to_v6
    - is_v4
    linkageType: ''
    returnType: int
    signature: "int socks_connection::format_response(address const& addr, int const
      port\n\t\t, int const response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:835,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:836,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:849,1
    - Dst: ::strlen
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - hostname
    - port
    - response
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 856
    functionName: sim::socks_connection::format_hostname_response
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 2
    functionsReached:
    - ::strlen
    - sim::socks_connection::close_connection
    - std::printf
    - std::uint8_t
    linkageType: ''
    returnType: int
    signature: "int socks_connection::format_hostname_response(char const* hostname,
      int const port\n\t\t, int const response)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:860,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:861,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:861,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:861,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:870,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:873,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:874,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:874,1
    - Dst: asio::ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:874,1
    - Dst: sim::socks_connection::format_response
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:880,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:880,1
    - Dst: asio::ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:880,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:884,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:885,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:885,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:885,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:887,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:889,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:890,1
    - Dst: auto::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:893,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:898,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:900,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:901,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:906,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:907,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:907,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:907,1
    - Dst: auto::m_server_connection::async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:912,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:913,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:914,1
    - Dst: auto::m_client_connection::async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:916,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:917,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:918,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 921
    functionName: sim::socks_connection::on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::bind
    - async_write
    - auto::close_connection
    - auto::m_client_connection::async_read_some
    - remote_endpoint
    - message
    - sim::socks_connection::command
    - sim::socks_connection::format_response
    - auto::m_server_connection::async_read_some
    - both_sides_from_store_buffer
    - value
    - asio::ip::tcp::endpoint::port
    - asio::ip::tcp::endpoint::address
    - std::printf
    linkageType: ''
    returnType: void
    signature: void socks_connection::on_connected(boost::system::error_code const&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:936,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:937,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:937,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:937,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:938,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:941,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:941,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:942,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 944
    functionName: sim::socks_connection::on_client_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - async_write
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_client_receive(boost::system::error_code
      const& ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:951,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:952,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:952,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:952,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:953,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:957,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:958,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:959,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 961
    functionName: sim::socks_connection::on_client_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_client_forward(error_code const& ec\n\t\t,
      size_t /* bytes_transferred */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:969,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:970,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:970,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:970,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:971,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:975,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:975,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:976,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 978
    functionName: sim::socks_connection::on_server_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - async_write
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_server_receive(boost::system::error_code
      const& ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:985,1
    - Dst: sim::socks_connection::command
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:986,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:986,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:986,1
    - Dst: sim::socks_connection::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:987,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:991,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:992,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:993,1
    - Dst: shared_from_this
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 995
    functionName: sim::socks_connection::on_server_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - message
    - sim::socks_connection::close_connection
    - sim::socks_connection::command
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void socks_connection::on_server_forward(error_code const& ec\n\t\t,
      size_t /* bytes_transferred */)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1000,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1003,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1004,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1004,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1006,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1009,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1010,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1010,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1013,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1016,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1017,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp:1017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1019
    functionName: sim::socks_connection::close_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 22
    functionsReached:
    - error_code::value
    - error_code::message
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void socks_connection::close_connection()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1030
    functionName: sim::socks_connection::command
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/socks_server.cpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * socks_connection::command() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: udp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:52,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:62,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:65,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:66,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:69,1
    - Dst: rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: udp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(socket&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: udp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::~socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:88,1
    - Dst: bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:94,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:101,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: "udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - code
    - make_error_code
    - address
    - bind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:111,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: udp::socket::bind(ip::udp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void udp::socket::bind(ip::udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:119,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:121,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:122,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:126,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - udp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: "udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: "void udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:136,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: udp::socket::open(udp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void udp::socket::open(udp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:143,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: udp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:149,1
    - Dst: unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:151,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:152,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:160,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:161,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:164,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:168,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: udp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::close(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:178,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:179,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:180,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: udp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - abort_recv_handlers
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:188,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: udp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:200,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: udp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::ref
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:216,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:218,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: udp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_recv_handlers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:229,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:231,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:236,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:238,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:248,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: "udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait_receive_impl
    - async_wait
    - std::move
    - post
    - abort_send_handlers
    - std::ref
    - expires_at
    - abort_recv_handlers
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:262,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:266,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:268,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:272,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:274,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:278,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:285,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:286,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:291,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - ' ec'
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: "udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - begin
    - buffer::erase
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    - memcpy
    - front
    - buffer::data
    - erase
    - local_endpoint
    - static_cast<char*>
    - buffer::empty
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:309,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:312,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:316,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sender
    - handler
    argTypes:
    - udp::endpoint*
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: "udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:337,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:338,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:341,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:352,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - handler
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - "aux::function<void(boost::system::error_code const&\n\t\t\t, std::size_t)>"
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: "udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - receive_from_impl
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:369,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:371,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:378,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:380,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:381,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:383,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:387,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:391,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:404,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:415,1
    - Dst: find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:419,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:420,1
    - Dst: route::prepend
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:430,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:437,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:438,1
    - Dst: aux::packet::buffer::insert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: aux::packet::buffer::end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:444,1
    - Dst: auto*::log_udp
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:445,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:447,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - ' b'
    - ' dst'
    - ' ec'
    argTypes:
    - std::vector<asio::const_buffer>
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 454
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 454
    functionName: "udp::socket::send_to_impl(std::vector<asio::const_buffer> const&
      b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - aux::packet::buffer::size
    - std::max
    - sim::chrono::high_resolution_clock::now
    - std::vector<asio::const_buffer>::const_iterator::data
    - sim
    - aux::packet::buffer::insert
    - auto*::log_udp
    - bind
    - boost::int64_t
    - end
    - aux::packet::buffer::end
    - clear
    - static_cast<std::uint8_t const*>
    - address
    - std::vector<asio::const_buffer>::const_iterator::size
    - chrono::duration_cast<duration>
    - assert
    - get_outgoing_route
    - route::empty
    - route::prepend
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - chrono::nanoseconds
    - find_udp_socket
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::send_to_impl(std::vector<asio::const_buffer>
      const& b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:458,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:464,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: udp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - aux::packet::buffer::size
    - maybe_wakeup_reader
    - std::move
    linkageType: ''
    returnType: void
    signature: void udp::socket::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:472,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: udp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - async_wait_receive_impl
    - std::move
    - async_receive_from_impl
    - size
    linkageType: ''
    returnType: void
    signature: void udp::socket::maybe_wakeup_reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: udp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:52,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:62,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:65,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:66,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:69,1
    - Dst: rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: udp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(socket&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: udp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::~socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:88,1
    - Dst: bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:94,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:101,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: "udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - code
    - make_error_code
    - address
    - bind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:111,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: udp::socket::bind(ip::udp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void udp::socket::bind(ip::udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:119,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:121,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:122,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:126,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - udp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: "udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: "void udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:136,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: udp::socket::open(udp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void udp::socket::open(udp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:143,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: udp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:149,1
    - Dst: unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:151,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:152,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:160,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:161,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:164,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:168,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: udp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::close(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:178,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:179,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:180,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: udp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - abort_recv_handlers
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:188,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: udp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:200,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: udp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::ref
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:216,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:218,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: udp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_recv_handlers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:229,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:231,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:236,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:238,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:248,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: "udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait_receive_impl
    - async_wait
    - std::move
    - post
    - abort_send_handlers
    - std::ref
    - expires_at
    - abort_recv_handlers
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:262,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:266,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:268,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:272,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:274,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:278,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:285,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:286,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:291,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - ' ec'
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: "udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - begin
    - buffer::erase
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    - memcpy
    - front
    - buffer::data
    - erase
    - local_endpoint
    - static_cast<char*>
    - buffer::empty
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:309,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:312,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:316,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sender
    - handler
    argTypes:
    - udp::endpoint*
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: "udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:337,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:338,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:341,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:352,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - handler
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - "aux::function<void(boost::system::error_code const&\n\t\t\t, std::size_t)>"
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: "udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - receive_from_impl
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:369,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:371,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:378,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:380,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:381,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:383,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:387,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:391,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:404,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:415,1
    - Dst: find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:419,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:420,1
    - Dst: route::prepend
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:430,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:437,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:438,1
    - Dst: aux::packet::buffer::insert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: aux::packet::buffer::end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:444,1
    - Dst: auto*::log_udp
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:445,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:447,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - ' b'
    - ' dst'
    - ' ec'
    argTypes:
    - std::vector<asio::const_buffer>
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 454
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 454
    functionName: "udp::socket::send_to_impl(std::vector<asio::const_buffer> const&
      b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - aux::packet::buffer::size
    - std::max
    - sim::chrono::high_resolution_clock::now
    - std::vector<asio::const_buffer>::const_iterator::data
    - sim
    - aux::packet::buffer::insert
    - auto*::log_udp
    - bind
    - boost::int64_t
    - end
    - aux::packet::buffer::end
    - clear
    - static_cast<std::uint8_t const*>
    - address
    - std::vector<asio::const_buffer>::const_iterator::size
    - chrono::duration_cast<duration>
    - assert
    - get_outgoing_route
    - route::empty
    - route::prepend
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - chrono::nanoseconds
    - find_udp_socket
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::send_to_impl(std::vector<asio::const_buffer>
      const& b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:458,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:464,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: udp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - aux::packet::buffer::size
    - maybe_wakeup_reader
    - std::move
    linkageType: ''
    returnType: void
    signature: void udp::socket::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:472,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: udp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - async_wait_receive_impl
    - std::move
    - async_receive_from_impl
    - size
    linkageType: ''
    returnType: void
    signature: void udp::socket::maybe_wakeup_reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: udp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:52,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:62,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:65,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:66,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:69,1
    - Dst: rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: udp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(socket&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: udp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::~socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:88,1
    - Dst: bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:94,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:101,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: "udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - code
    - make_error_code
    - address
    - bind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:111,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: udp::socket::bind(ip::udp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void udp::socket::bind(ip::udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:119,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:121,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:122,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:126,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - udp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: "udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: "void udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:136,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: udp::socket::open(udp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void udp::socket::open(udp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:143,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: udp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:149,1
    - Dst: unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:151,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:152,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:160,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:161,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:164,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:168,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: udp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::close(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:178,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:179,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:180,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: udp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - abort_recv_handlers
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:188,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: udp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:200,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: udp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::ref
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:216,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:218,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: udp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_recv_handlers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:229,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:231,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:236,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:238,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:248,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: "udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait_receive_impl
    - async_wait
    - std::move
    - post
    - abort_send_handlers
    - std::ref
    - expires_at
    - abort_recv_handlers
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:262,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:266,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:268,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:272,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:274,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:278,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:285,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:286,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:291,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - ' ec'
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: "udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - begin
    - buffer::erase
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    - memcpy
    - front
    - buffer::data
    - erase
    - local_endpoint
    - static_cast<char*>
    - buffer::empty
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:309,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:312,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:316,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sender
    - handler
    argTypes:
    - udp::endpoint*
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: "udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:337,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:338,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:341,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:352,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - handler
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - "aux::function<void(boost::system::error_code const&\n\t\t\t, std::size_t)>"
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: "udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - receive_from_impl
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:369,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:371,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:378,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:380,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:381,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:383,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:387,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:391,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:404,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:415,1
    - Dst: find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:419,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:420,1
    - Dst: route::prepend
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:430,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:437,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:438,1
    - Dst: aux::packet::buffer::insert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: aux::packet::buffer::end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:444,1
    - Dst: auto*::log_udp
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:445,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:447,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - ' b'
    - ' dst'
    - ' ec'
    argTypes:
    - std::vector<asio::const_buffer>
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 454
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 454
    functionName: "udp::socket::send_to_impl(std::vector<asio::const_buffer> const&
      b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - aux::packet::buffer::size
    - std::max
    - sim::chrono::high_resolution_clock::now
    - std::vector<asio::const_buffer>::const_iterator::data
    - sim
    - aux::packet::buffer::insert
    - auto*::log_udp
    - bind
    - boost::int64_t
    - end
    - aux::packet::buffer::end
    - clear
    - static_cast<std::uint8_t const*>
    - address
    - std::vector<asio::const_buffer>::const_iterator::size
    - chrono::duration_cast<duration>
    - assert
    - get_outgoing_route
    - route::empty
    - route::prepend
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - chrono::nanoseconds
    - find_udp_socket
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::send_to_impl(std::vector<asio::const_buffer>
      const& b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:458,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:464,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: udp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - aux::packet::buffer::size
    - maybe_wakeup_reader
    - std::move
    linkageType: ''
    returnType: void
    signature: void udp::socket::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:472,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: udp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - async_wait_receive_impl
    - std::move
    - async_receive_from_impl
    - size
    linkageType: ''
    returnType: void
    signature: void udp::socket::maybe_wakeup_reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: udp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:52,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:62,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:65,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:66,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:69,1
    - Dst: rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: udp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(socket&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: udp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::~socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:88,1
    - Dst: bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:94,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:101,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: "udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - code
    - make_error_code
    - address
    - bind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:111,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: udp::socket::bind(ip::udp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void udp::socket::bind(ip::udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:119,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:121,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:122,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:126,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - udp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: "udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: "void udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:136,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: udp::socket::open(udp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void udp::socket::open(udp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:143,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: udp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:149,1
    - Dst: unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:151,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:152,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:160,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:161,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:164,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:168,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: udp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::close(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:178,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:179,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:180,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: udp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - abort_recv_handlers
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:188,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: udp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:200,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: udp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::ref
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:216,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:218,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: udp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_recv_handlers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:229,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:231,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:236,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:238,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:248,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: "udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait_receive_impl
    - async_wait
    - std::move
    - post
    - abort_send_handlers
    - std::ref
    - expires_at
    - abort_recv_handlers
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:262,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:266,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:268,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:272,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:274,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:278,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:285,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:286,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:291,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - ' ec'
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: "udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - begin
    - buffer::erase
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    - memcpy
    - front
    - buffer::data
    - erase
    - local_endpoint
    - static_cast<char*>
    - buffer::empty
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:309,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:312,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:316,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sender
    - handler
    argTypes:
    - udp::endpoint*
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: "udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:337,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:338,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:341,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:352,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - handler
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - "aux::function<void(boost::system::error_code const&\n\t\t\t, std::size_t)>"
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: "udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - receive_from_impl
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:369,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:371,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:378,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:380,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:381,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:383,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:387,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:391,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:404,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:415,1
    - Dst: find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:419,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:420,1
    - Dst: route::prepend
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:430,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:437,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:438,1
    - Dst: aux::packet::buffer::insert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: aux::packet::buffer::end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:444,1
    - Dst: auto*::log_udp
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:445,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:447,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - ' b'
    - ' dst'
    - ' ec'
    argTypes:
    - std::vector<asio::const_buffer>
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 454
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 454
    functionName: "udp::socket::send_to_impl(std::vector<asio::const_buffer> const&
      b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - aux::packet::buffer::size
    - std::max
    - sim::chrono::high_resolution_clock::now
    - std::vector<asio::const_buffer>::const_iterator::data
    - sim
    - aux::packet::buffer::insert
    - auto*::log_udp
    - bind
    - boost::int64_t
    - end
    - aux::packet::buffer::end
    - clear
    - static_cast<std::uint8_t const*>
    - address
    - std::vector<asio::const_buffer>::const_iterator::size
    - chrono::duration_cast<duration>
    - assert
    - get_outgoing_route
    - route::empty
    - route::prepend
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - chrono::nanoseconds
    - find_udp_socket
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::send_to_impl(std::vector<asio::const_buffer>
      const& b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:458,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:464,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: udp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - aux::packet::buffer::size
    - maybe_wakeup_reader
    - std::move
    linkageType: ''
    returnType: void
    signature: void udp::socket::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:472,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: udp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - async_wait_receive_impl
    - std::move
    - async_receive_from_impl
    - size
    linkageType: ''
    returnType: void
    signature: void udp::socket::maybe_wakeup_reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: udp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:52,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:62,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:65,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:66,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:69,1
    - Dst: rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: udp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(socket&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: udp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::~socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:88,1
    - Dst: bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:94,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:101,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: "udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - code
    - make_error_code
    - address
    - bind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:111,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: udp::socket::bind(ip::udp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void udp::socket::bind(ip::udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:119,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:121,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:122,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:126,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - udp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: "udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: "void udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:136,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: udp::socket::open(udp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void udp::socket::open(udp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:143,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: udp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:149,1
    - Dst: unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:151,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:152,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:160,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:161,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:164,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:168,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: udp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::close(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:178,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:179,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:180,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: udp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - abort_recv_handlers
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:188,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: udp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:200,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: udp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::ref
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:216,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:218,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: udp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_recv_handlers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:229,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:231,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:236,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:238,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:248,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: "udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait_receive_impl
    - async_wait
    - std::move
    - post
    - abort_send_handlers
    - std::ref
    - expires_at
    - abort_recv_handlers
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:262,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:266,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:268,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:272,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:274,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:278,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:285,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:286,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:291,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - ' ec'
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: "udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - begin
    - buffer::erase
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    - memcpy
    - front
    - buffer::data
    - erase
    - local_endpoint
    - static_cast<char*>
    - buffer::empty
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:309,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:312,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:316,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sender
    - handler
    argTypes:
    - udp::endpoint*
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: "udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:337,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:338,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:341,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:352,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - handler
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - "aux::function<void(boost::system::error_code const&\n\t\t\t, std::size_t)>"
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: "udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - receive_from_impl
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:369,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:371,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:378,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:380,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:381,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:383,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:387,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:391,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:404,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:415,1
    - Dst: find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:419,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:420,1
    - Dst: route::prepend
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:430,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:437,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:438,1
    - Dst: aux::packet::buffer::insert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: aux::packet::buffer::end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:444,1
    - Dst: auto*::log_udp
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:445,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:447,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - ' b'
    - ' dst'
    - ' ec'
    argTypes:
    - std::vector<asio::const_buffer>
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 454
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 454
    functionName: "udp::socket::send_to_impl(std::vector<asio::const_buffer> const&
      b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - aux::packet::buffer::size
    - std::max
    - sim::chrono::high_resolution_clock::now
    - std::vector<asio::const_buffer>::const_iterator::data
    - sim
    - aux::packet::buffer::insert
    - auto*::log_udp
    - bind
    - boost::int64_t
    - end
    - aux::packet::buffer::end
    - clear
    - static_cast<std::uint8_t const*>
    - address
    - std::vector<asio::const_buffer>::const_iterator::size
    - chrono::duration_cast<duration>
    - assert
    - get_outgoing_route
    - route::empty
    - route::prepend
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - chrono::nanoseconds
    - find_udp_socket
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::send_to_impl(std::vector<asio::const_buffer>
      const& b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:458,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:464,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: udp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - aux::packet::buffer::size
    - maybe_wakeup_reader
    - std::move
    linkageType: ''
    returnType: void
    signature: void udp::socket::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:472,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: udp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - async_wait_receive_impl
    - std::move
    - async_receive_from_impl
    - size
    linkageType: ''
    returnType: void
    signature: void udp::socket::maybe_wakeup_reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: udp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:52,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:62,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:65,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:66,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:69,1
    - Dst: rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: udp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(socket&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: udp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::~socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:88,1
    - Dst: bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:94,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:101,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: "udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - code
    - make_error_code
    - address
    - bind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:111,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: udp::socket::bind(ip::udp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void udp::socket::bind(ip::udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:119,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:121,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:122,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:126,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - udp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: "udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: "void udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:136,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: udp::socket::open(udp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void udp::socket::open(udp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:143,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: udp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:149,1
    - Dst: unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:151,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:152,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:160,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:161,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:164,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:168,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: udp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::close(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:178,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:179,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:180,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: udp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - abort_recv_handlers
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:188,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: udp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:200,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: udp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::ref
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:216,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:218,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: udp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_recv_handlers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:229,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:231,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:236,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:238,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:248,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: "udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait_receive_impl
    - async_wait
    - std::move
    - post
    - abort_send_handlers
    - std::ref
    - expires_at
    - abort_recv_handlers
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:262,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:266,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:268,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:272,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:274,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:278,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:285,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:286,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:291,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - ' ec'
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: "udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - begin
    - buffer::erase
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    - memcpy
    - front
    - buffer::data
    - erase
    - local_endpoint
    - static_cast<char*>
    - buffer::empty
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:309,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:312,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:316,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sender
    - handler
    argTypes:
    - udp::endpoint*
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: "udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:337,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:338,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:341,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:352,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - handler
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - "aux::function<void(boost::system::error_code const&\n\t\t\t, std::size_t)>"
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: "udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - receive_from_impl
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:369,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:371,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:378,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:380,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:381,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:383,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:387,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:391,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:404,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:415,1
    - Dst: find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:419,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:420,1
    - Dst: route::prepend
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:430,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:437,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:438,1
    - Dst: aux::packet::buffer::insert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: aux::packet::buffer::end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:444,1
    - Dst: auto*::log_udp
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:445,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:447,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - ' b'
    - ' dst'
    - ' ec'
    argTypes:
    - std::vector<asio::const_buffer>
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 454
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 454
    functionName: "udp::socket::send_to_impl(std::vector<asio::const_buffer> const&
      b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - aux::packet::buffer::size
    - std::max
    - sim::chrono::high_resolution_clock::now
    - std::vector<asio::const_buffer>::const_iterator::data
    - sim
    - aux::packet::buffer::insert
    - auto*::log_udp
    - bind
    - boost::int64_t
    - end
    - aux::packet::buffer::end
    - clear
    - static_cast<std::uint8_t const*>
    - address
    - std::vector<asio::const_buffer>::const_iterator::size
    - chrono::duration_cast<duration>
    - assert
    - get_outgoing_route
    - route::empty
    - route::prepend
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - chrono::nanoseconds
    - find_udp_socket
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::send_to_impl(std::vector<asio::const_buffer>
      const& b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:458,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:464,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: udp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - aux::packet::buffer::size
    - maybe_wakeup_reader
    - std::move
    linkageType: ''
    returnType: void
    signature: void udp::socket::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:472,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: udp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - async_wait_receive_impl
    - std::move
    - async_receive_from_impl
    - size
    linkageType: ''
    returnType: void
    signature: void udp::socket::maybe_wakeup_reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: udp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:52,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:62,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:65,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:66,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:69,1
    - Dst: rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: udp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(socket&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: udp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::~socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:88,1
    - Dst: bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:94,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:101,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: "udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - code
    - make_error_code
    - address
    - bind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:111,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: udp::socket::bind(ip::udp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void udp::socket::bind(ip::udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:119,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:121,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:122,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:126,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - udp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: "udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: "void udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:136,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: udp::socket::open(udp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void udp::socket::open(udp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:143,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: udp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:149,1
    - Dst: unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:151,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:152,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:160,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:161,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:164,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:168,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: udp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::close(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:178,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:179,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:180,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: udp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - abort_recv_handlers
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:188,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: udp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:200,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: udp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::ref
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:216,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:218,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: udp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_recv_handlers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:229,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:231,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:236,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:238,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:248,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: "udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait_receive_impl
    - async_wait
    - std::move
    - post
    - abort_send_handlers
    - std::ref
    - expires_at
    - abort_recv_handlers
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:262,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:266,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:268,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:272,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:274,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:278,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:285,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:286,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:291,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - ' ec'
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: "udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - begin
    - buffer::erase
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    - memcpy
    - front
    - buffer::data
    - erase
    - local_endpoint
    - static_cast<char*>
    - buffer::empty
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:309,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:312,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:316,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sender
    - handler
    argTypes:
    - udp::endpoint*
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: "udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:337,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:338,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:341,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:352,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - handler
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - "aux::function<void(boost::system::error_code const&\n\t\t\t, std::size_t)>"
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: "udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - receive_from_impl
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:369,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:371,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:378,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:380,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:381,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:383,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:387,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:391,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:404,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:415,1
    - Dst: find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:419,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:420,1
    - Dst: route::prepend
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:430,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:437,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:438,1
    - Dst: aux::packet::buffer::insert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: aux::packet::buffer::end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:444,1
    - Dst: auto*::log_udp
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:445,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:447,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - ' b'
    - ' dst'
    - ' ec'
    argTypes:
    - std::vector<asio::const_buffer>
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 454
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 454
    functionName: "udp::socket::send_to_impl(std::vector<asio::const_buffer> const&
      b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - aux::packet::buffer::size
    - std::max
    - sim::chrono::high_resolution_clock::now
    - std::vector<asio::const_buffer>::const_iterator::data
    - sim
    - aux::packet::buffer::insert
    - auto*::log_udp
    - bind
    - boost::int64_t
    - end
    - aux::packet::buffer::end
    - clear
    - static_cast<std::uint8_t const*>
    - address
    - std::vector<asio::const_buffer>::const_iterator::size
    - chrono::duration_cast<duration>
    - assert
    - get_outgoing_route
    - route::empty
    - route::prepend
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - chrono::nanoseconds
    - find_udp_socket
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::send_to_impl(std::vector<asio::const_buffer>
      const& b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:458,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:464,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: udp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - aux::packet::buffer::size
    - maybe_wakeup_reader
    - std::move
    linkageType: ''
    returnType: void
    signature: void udp::socket::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:472,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: udp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - async_wait_receive_impl
    - std::move
    - async_receive_from_impl
    - size
    linkageType: ''
    returnType: void
    signature: void udp::socket::maybe_wakeup_reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: udp::socket::socket(io_context& ios)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:50,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:52,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:55,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:57,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:58,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:62,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:65,1
    - Dst: m_forwarder::reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:66,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:68,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:69,1
    - Dst: rebind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: udp::socket::socket(socket&& s)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - std::move
    - m_forwarder::reset
    - local_endpoint
    - rebind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::socket(socket&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: udp::socket::~socket()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::~socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:88,1
    - Dst: bind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:94,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:101,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: "udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - code
    - make_error_code
    - address
    - bind_udp_socket
    linkageType: ''
    returnType: void
    signature: "void udp::socket::bind(ip::udp::endpoint const& ep\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:111,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: udp::socket::bind(ip::udp::endpoint const& ep)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - bind
    - boost::system::system_error
    linkageType: ''
    returnType: void
    signature: void udp::socket::bind(ip::udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:119,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:121,1
    - Dst: std::make_shared<aux::sink_forwarder>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:122,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:126,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - protocol
    - ' ec'
    argTypes:
    - udp
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: "udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - code
    - make_error_code
    - std::make_shared<aux::sink_forwarder>
    - close
    linkageType: ''
    returnType: void
    signature: "void udp::socket::open(udp protocol\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:136,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: udp::socket::open(udp protocol)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - open
    linkageType: ''
    returnType: void
    signature: void udp::socket::open(udp protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:143,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: udp::socket::close()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - close
    linkageType: ''
    returnType: void
    signature: void udp::socket::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:149,1
    - Dst: unbind_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:151,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:152,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:160,1
    - Dst: reset
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:161,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:164,1
    - Dst: make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:168,1
    - Dst: code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: udp::socket::close(boost::system::error_code& ec)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - cancel
    - code
    - make_error_code
    - local_endpoint
    - unbind_udp_socket
    linkageType: ''
    returnType: void
    signature: void udp::socket::close(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:178,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:179,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:180,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: udp::socket::cancel(boost::system::error_code&)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - abort_recv_handlers
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel(boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:188,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: udp::socket::cancel()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - boost::system::system_error
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp::socket::cancel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:195,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:196,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:199,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:200,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: udp::socket::abort_send_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::ref
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_send_handlers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:211,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:212,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:215,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:216,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:218,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: udp::socket::abort_recv_handlers()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - libtorrent::socks_error::make_error_code
    - cancel
    - std::size_t
    - clear
    linkageType: ''
    returnType: void
    signature: void udp::socket::abort_recv_handlers()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:229,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:231,1
    - Dst: expires_at
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:236,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:238,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: std::ref
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:239,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:244,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:248,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: "udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - async_wait_receive_impl
    - async_wait
    - std::move
    - post
    - abort_send_handlers
    - std::ref
    - expires_at
    - abort_recv_handlers
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait(socket_base::wait_type_t const w\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:259,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:262,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:266,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:268,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:272,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:274,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:278,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:284,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:285,1
    - Dst: buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:286,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:287,1
    - Dst: buffer::erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:289,1
    - Dst: buffer::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:291,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - ' ec'
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - boost::system::error_code
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: "udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - buffer::begin
    - assert
    - begin
    - buffer::erase
    - empty
    - libtorrent::socks_error::make_error_code
    - buffer::size
    - memcpy
    - front
    - buffer::data
    - erase
    - local_endpoint
    - static_cast<char*>
    - buffer::empty
    - size
    - data
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, boost::system::error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:304,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:305,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:309,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:311,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:312,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:316,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sender
    - handler
    argTypes:
    - udp::endpoint*
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: "udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_wait_receive_impl(\n\t\tudp::endpoint* sender\n\t\t,
      aux::function<void(boost::system::error_code const&)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:334,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:337,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:338,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:341,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: std::size_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:350,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:352,1
    - Dst: post
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: make_malloc
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:358,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - ' bufs'
    - sender
    - handler
    argTypes:
    - std::vector<asio::mutable_buffer>
    - udp::endpoint*
    - "aux::function<void(boost::system::error_code const&\n\t\t\t, std::size_t)>"
    assertStmts:
    - condition: (!bufs.empty())
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: "udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - make_malloc
    - std::bind
    - assert
    - std::move
    - post
    - empty
    - libtorrent::socks_error::make_error_code
    - std::size_t
    - clear
    - receive_from_impl
    linkageType: ''
    returnType: void
    signature: "void udp::socket::async_receive_from_impl(\n\t\tstd::vector<asio::mutable_buffer>
      const& bufs\n\t\t, udp::endpoint* sender\n\t\t, socket_base::message_flags /*
      flags */\n\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t,
      std::size_t)> handler)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:369,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:371,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:374,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:378,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:380,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:381,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:383,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:387,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:391,1
    - Dst: get_path_mtu
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:393,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:404,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:415,1
    - Dst: find_udp_socket
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:419,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:420,1
    - Dst: route::prepend
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:428,1
    - Dst: std::max
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:430,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:437,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:438,1
    - Dst: aux::packet::buffer::insert
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: aux::packet::buffer::end
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:440,1
    - Dst: static_cast<std::uint8_t const*>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::data
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: std::vector<asio::const_buffer>::const_iterator::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:441,1
    - Dst: sim
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:444,1
    - Dst: auto*::log_udp
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:445,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:447,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:448,1
    - Dst: chrono::duration_cast<duration>
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: chrono::nanoseconds
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:450,1
    - Dst: boost::int64_t
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - ' b'
    - ' dst'
    - ' ec'
    argTypes:
    - std::vector<asio::const_buffer>
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    constantsTouched: []
    func_position:
      end: 454
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 454
    functionName: "udp::socket::send_to_impl(std::vector<asio::const_buffer> const&
      b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - aux::packet::buffer::size
    - std::max
    - sim::chrono::high_resolution_clock::now
    - std::vector<asio::const_buffer>::const_iterator::data
    - sim
    - aux::packet::buffer::insert
    - auto*::log_udp
    - bind
    - boost::int64_t
    - end
    - aux::packet::buffer::end
    - clear
    - static_cast<std::uint8_t const*>
    - address
    - std::vector<asio::const_buffer>::const_iterator::size
    - chrono::duration_cast<duration>
    - assert
    - get_outgoing_route
    - route::empty
    - route::prepend
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - get_path_mtu
    - local_endpoint
    - chrono::nanoseconds
    - find_udp_socket
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t udp::socket::send_to_impl(std::vector<asio::const_buffer>
      const& b\n\t\t, udp::endpoint const& dst, message_flags /* flags */\n\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:458,1
    - Dst: aux::packet::buffer::size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:464,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:465,1
    - Dst: maybe_wakeup_reader
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: udp::socket::incoming_packet(aux::packet p)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - aux::packet::buffer::size
    - maybe_wakeup_reader
    - std::move
    linkageType: ''
    returnType: void
    signature: void udp::socket::incoming_packet(aux::packet p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:472,1
    - Dst: async_wait_receive_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:477,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: udp::socket::maybe_wakeup_reader()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - async_wait_receive_impl
    - std::move
    - async_receive_from_impl
    - size
    linkageType: ''
    returnType: void
    signature: void udp::socket::maybe_wakeup_reader()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:47,1
    - Dst: address::is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:48,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:50,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:50,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:51,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:51,1
    - Dst: address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:51,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:55,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:55,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:56,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:56,1
    - Dst: address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:56,1
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:58,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:60,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' ios'
    - listen_port
    argTypes:
    - io_context
    - unsigned short const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: sim::http_proxy::http_proxy
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - rand_v4
    - listen
    - async_accept
    - open
    - get_ips
    - rand_v6
    - address::is_v4
    - address_v6::any
    - address_v4::any
    - local_endpoint
    - bind
    linkageType: ''
    returnType: void
    signature: void http_proxy::http_proxy(io_context& ios, unsigned short const listen_port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:71,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:72,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:72,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:73,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:77,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:78,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:78,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:81,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:81,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: sim::http_proxy::on_accept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - message
    - sim::http_proxy::close_connection
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - address
    - std::printf
    - port
    linkageType: ''
    returnType: void
    signature: void http_proxy::on_accept(error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:90,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:91,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:91,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:92,1
    - Dst: find_request_len
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:99,1
    - Dst: parse_request
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:104,1
    - Dst: sim::http_proxy::forward_request
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:105,1
    - Dst: memmove
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:108,1
    - Dst: find_request_len
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:113,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:117,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:117,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:120,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:124,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:125,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 127
    functionName: sim::http_proxy::on_read_request
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - parse_request
    - message
    - sim::http_proxy::close_connection
    - sim::http_proxy::forward_request
    - async_read_some
    - memmove
    - both_sides_from_store_buffer
    - find_request_len
    - value
    - what
    - std::printf
    linkageType: ''
    returnType: void
    signature: void http_proxy::on_read_request(error_code const& ec, size_t bytes_transferred)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: req::compare
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:134,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:136,1
    - Dst: req::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:137,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:138,1
    - Dst: req::find_first_of
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:141,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:143,1
    - Dst: req::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:146,1
    - Dst: req::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:148,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:153,1
    - Dst: std::string::front
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:153,1
    - Dst: std::string::back
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:153,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:154,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:154,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:157,1
    - Dst: req::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:157,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:158,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:178,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:180,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:181,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:182,1
    - Dst: memmove
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:184,1
    - Dst: std::string::data
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:185,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:185,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:186,1
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:188,1
    - Dst: make_address
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:191,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:191,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:192,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:196,1
    - Dst: async_resolve
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:197,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:198,1
    - Dst: sim::http_proxy::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:201,1
    - Dst: sim::http_proxy::write_server_send_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:208,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - ' req'
    argTypes:
    - http_request
    assertStmts:
    - condition: (port >= 0 && port < 0xffff)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    constantsTouched: []
    func_position:
      end: 209
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 209
    functionName: sim::http_proxy::forward_request
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 1
    functionsReached:
    - async_resolve
    - std::runtime_error
    - static_cast<unsigned short>
    - std::string::data
    - sim::http_proxy::write_server_send_buffer
    - is_open
    - atoi
    - make_address
    - std::string::substr
    - req::substr
    - std::string::front
    - std::printf
    - assert
    - std::string::append
    - std::snprintf
    - std::string::back
    - sim::http_proxy::open_forward_connection
    - std::string::size
    - req::compare
    - req::c_str
    - std::bind
    - std::string::c_str
    - memmove
    - req::find_first_of
    linkageType: ''
    returnType: void
    signature: void http_proxy::forward_request(http_request const& req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::tcp::resolver::results_type::empty
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:214,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:218,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:219,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:219,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:223,1
    - Dst: sim::http_proxy::error
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:225,1
    - Dst: sim::http_proxy::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:228,1
    - Dst: asio::ip::tcp::resolver::results_type::front
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - ips
    argTypes:
    - boost::system::error_code
    - asio::ip::tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: sim::http_proxy::on_domain_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - sim::http_proxy::open_forward_connection
    - sim::http_proxy::error
    - message
    - asio::ip::tcp::resolver::results_type::front
    - asio::ip::tcp::resolver::results_type::empty
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void http_proxy::on_domain_lookup(boost::system::error_code const&
      ec\n\t\t, const asio::ip::tcp::resolver::results_type ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:233,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:233,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:235,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:236,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:236,1
    - Dst: async_connect
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:237,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: sim::http_proxy::open_forward_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 2
    functionsReached:
    - protocol
    - std::bind
    - open
    - async_connect
    - port
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: void http_proxy::open_forward_connection(const asio::ip::tcp::endpoint&
      target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_response
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:243,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:244,1
    - Dst: std::string::data
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:244,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:244,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:245,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:245,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:246,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - code
    - message
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: sim::http_proxy::error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - async_write
    - memcpy
    - both_sides_from_store_buffer
    - std::string::data
    - send_response
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void http_proxy::error(int code, char const* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:254,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:254,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:255,1
    - Dst: sim::http_proxy::error
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:256,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:260,1
    - Dst: sim::http_proxy::write_server_send_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:262,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:264,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:265,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: sim::http_proxy::on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - sim::http_proxy::error
    - message
    - async_read_some
    - both_sides_from_store_buffer
    - sim::http_proxy::write_server_send_buffer
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void http_proxy::on_connected(boost::system::error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_write_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:273,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:273,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: sim::http_proxy::write_server_send_buffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - both_sides_from_store_buffer
    - async_write_some
    linkageType: ''
    returnType: void
    signature: void http_proxy::write_server_send_buffer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:283,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:284,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:284,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:285,1
    - Dst: memmove
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:289,1
    - Dst: sim::http_proxy::write_server_send_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 295
    functionName: sim::http_proxy::on_server_write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - message
    - sim::http_proxy::close_connection
    - memmove
    - value
    - sim::http_proxy::write_server_send_buffer
    - std::printf
    linkageType: ''
    returnType: void
    signature: void http_proxy::on_server_write(error_code const& ec, size_t bytes_transferred)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:303,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:304,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:304,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:305,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:309,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:309,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: sim::http_proxy::on_server_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_write
    - message
    - sim::http_proxy::close_connection
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void http_proxy::on_server_receive(boost::system::error_code const&
      ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:318,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:319,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:319,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:320,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:324,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:325,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 327
    functionName: sim::http_proxy::on_server_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - message
    - sim::http_proxy::close_connection
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void http_proxy::on_server_forward(error_code const& ec\n\t\t, size_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: sim::http_proxy::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void http_proxy::stop()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:342,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:345,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:346,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:346,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:348,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:351,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:352,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:352,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 360
    functionName: sim::http_proxy::close_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 5
    functionsReached:
    - error_code::value
    - std::bind
    - async_accept
    - error_code::message
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void http_proxy::close_connection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:47,1
    - Dst: address::is_v4
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:48,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:50,1
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:50,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:51,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:51,1
    - Dst: address_v4::any
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:51,1
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:55,1
    - Dst: rand_v6
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:55,1
    - Dst: bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:56,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:56,1
    - Dst: address_v6::any
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:56,1
    - Dst: listen
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:58,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:60,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' ios'
    - listen_port
    argTypes:
    - io_context
    - unsigned short const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: sim::http_proxy::http_proxy
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - rand_v4
    - listen
    - async_accept
    - open
    - get_ips
    - rand_v6
    - address::is_v4
    - address_v6::any
    - address_v4::any
    - local_endpoint
    - bind
    linkageType: ''
    returnType: void
    signature: void http_proxy::http_proxy(io_context& ios, unsigned short const listen_port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:71,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:72,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:72,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:73,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:77,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:78,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:78,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:81,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:81,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: sim::http_proxy::on_accept
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - message
    - sim::http_proxy::close_connection
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - address
    - std::printf
    - port
    linkageType: ''
    returnType: void
    signature: void http_proxy::on_accept(error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:90,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:91,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:91,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:92,1
    - Dst: find_request_len
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:99,1
    - Dst: parse_request
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:104,1
    - Dst: sim::http_proxy::forward_request
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:105,1
    - Dst: memmove
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:108,1
    - Dst: find_request_len
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:113,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:117,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:117,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:120,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:124,1
    - Dst: what
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:125,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 127
    functionName: sim::http_proxy::on_read_request
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - parse_request
    - message
    - sim::http_proxy::close_connection
    - sim::http_proxy::forward_request
    - async_read_some
    - memmove
    - both_sides_from_store_buffer
    - find_request_len
    - value
    - what
    - std::printf
    linkageType: ''
    returnType: void
    signature: void http_proxy::on_read_request(error_code const& ec, size_t bytes_transferred)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: req::compare
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:134,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:136,1
    - Dst: req::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:137,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:138,1
    - Dst: req::find_first_of
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:141,1
    - Dst: std::string::append
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:143,1
    - Dst: req::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:146,1
    - Dst: req::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:148,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:153,1
    - Dst: std::string::front
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:153,1
    - Dst: std::string::back
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:153,1
    - Dst: std::string::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:154,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:154,1
    - Dst: atoi
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:157,1
    - Dst: req::substr
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:157,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:158,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:178,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:180,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:181,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:182,1
    - Dst: memmove
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:184,1
    - Dst: std::string::data
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:185,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:185,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:186,1
    - Dst: is_open
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:188,1
    - Dst: make_address
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:191,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:191,1
    - Dst: static_cast<unsigned short>
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:192,1
    - Dst: std::snprintf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:196,1
    - Dst: async_resolve
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:197,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:198,1
    - Dst: sim::http_proxy::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:201,1
    - Dst: sim::http_proxy::write_server_send_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:208,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - ' req'
    argTypes:
    - http_request
    assertStmts:
    - condition: (port >= 0 && port < 0xffff)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    constantsTouched: []
    func_position:
      end: 209
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 209
    functionName: sim::http_proxy::forward_request
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 2
    functionsReached:
    - async_resolve
    - std::runtime_error
    - static_cast<unsigned short>
    - std::string::data
    - sim::http_proxy::write_server_send_buffer
    - is_open
    - atoi
    - make_address
    - std::string::substr
    - req::substr
    - std::string::front
    - std::printf
    - assert
    - std::string::append
    - std::snprintf
    - std::string::back
    - sim::http_proxy::open_forward_connection
    - std::string::size
    - req::compare
    - req::c_str
    - std::bind
    - std::string::c_str
    - memmove
    - req::find_first_of
    linkageType: ''
    returnType: void
    signature: void http_proxy::forward_request(http_request const& req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::tcp::resolver::results_type::empty
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:214,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:218,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:219,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:219,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:223,1
    - Dst: sim::http_proxy::error
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:225,1
    - Dst: sim::http_proxy::open_forward_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:228,1
    - Dst: asio::ip::tcp::resolver::results_type::front
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - ips
    argTypes:
    - boost::system::error_code
    - asio::ip::tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: sim::http_proxy::on_domain_lookup
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - sim::http_proxy::open_forward_connection
    - sim::http_proxy::error
    - message
    - asio::ip::tcp::resolver::results_type::front
    - asio::ip::tcp::resolver::results_type::empty
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void http_proxy::on_domain_lookup(boost::system::error_code const&
      ec\n\t\t, const asio::ip::tcp::resolver::results_type ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:233,1
    - Dst: protocol
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:233,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:235,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:236,1
    - Dst: port
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:236,1
    - Dst: async_connect
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:237,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: sim::http_proxy::open_forward_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 4
    functionsReached:
    - protocol
    - std::bind
    - open
    - async_connect
    - port
    - address
    - std::printf
    linkageType: ''
    returnType: void
    signature: void http_proxy::open_forward_connection(const asio::ip::tcp::endpoint&
      target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_response
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:243,1
    - Dst: memcpy
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:244,1
    - Dst: std::string::data
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:244,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:244,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:245,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:245,1
    - Dst: std::string::size
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:246,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - code
    - message
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: sim::http_proxy::error
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 3
    functionsReached:
    - std::bind
    - async_write
    - memcpy
    - both_sides_from_store_buffer
    - std::string::data
    - send_response
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void http_proxy::error(int code, char const* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:254,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:254,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:255,1
    - Dst: sim::http_proxy::error
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:256,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:260,1
    - Dst: sim::http_proxy::write_server_send_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:262,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:264,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:265,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: sim::http_proxy::on_connected
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - sim::http_proxy::error
    - message
    - async_read_some
    - both_sides_from_store_buffer
    - sim::http_proxy::write_server_send_buffer
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void http_proxy::on_connected(boost::system::error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_write_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:273,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:273,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: sim::http_proxy::write_server_send_buffer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 5
    functionsReached:
    - std::bind
    - both_sides_from_store_buffer
    - async_write_some
    linkageType: ''
    returnType: void
    signature: void http_proxy::write_server_send_buffer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:283,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:284,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:284,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:285,1
    - Dst: memmove
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:289,1
    - Dst: sim::http_proxy::write_server_send_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 295
    functionName: sim::http_proxy::on_server_write
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - message
    - sim::http_proxy::close_connection
    - memmove
    - value
    - sim::http_proxy::write_server_send_buffer
    - std::printf
    linkageType: ''
    returnType: void
    signature: void http_proxy::on_server_write(error_code const& ec, size_t bytes_transferred)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:303,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:304,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:304,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:305,1
    - Dst: async_write
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:309,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:309,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' ec'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: sim::http_proxy::on_server_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - async_write
    - message
    - sim::http_proxy::close_connection
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void http_proxy::on_server_receive(boost::system::error_code const&
      ec\n\t\t, std::size_t bytes_transferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:318,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:319,1
    - Dst: message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:319,1
    - Dst: sim::http_proxy::close_connection
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:320,1
    - Dst: async_read_some
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:324,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:325,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 327
    functionName: sim::http_proxy::on_server_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - message
    - sim::http_proxy::close_connection
    - async_read_some
    - both_sides_from_store_buffer
    - value
    - std::printf
    linkageType: ''
    returnType: void
    signature: "void http_proxy::on_server_forward(error_code const& ec\n\t\t, size_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: sim::http_proxy::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void http_proxy::stop()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:342,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:345,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:346,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:346,1
    - Dst: close
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:348,1
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:351,1
    - Dst: error_code::value
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:352,1
    - Dst: error_code::message
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:352,1
    - Dst: async_accept
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:358,1
    - Dst: std::bind
      Src: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 360
    functionName: sim::http_proxy::close_connection
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/http_proxy.cpp
    functionUses: 10
    functionsReached:
    - error_code::value
    - std::bind
    - async_accept
    - error_code::message
    - std::printf
    - close
    linkageType: ''
    returnType: void
    signature: void http_proxy::close_connection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::hops::pop_front
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:45,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:48,1
    - Dst: std::shared_ptr::incoming_packet
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: sim::forward_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - aux::packet::hops::pop_front
    - std::shared_ptr::incoming_packet
    - std::fprintf
    - std::move
    linkageType: ''
    returnType: void
    signature: void forward_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - asio::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: sim::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void endpoint(asio::io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: sim::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void incoming_packet(aux::packet p) override final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:68,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: sim::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - get_ips
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: sim::attributes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string attributes() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - asio::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: sim::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void endpoint(asio::io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: sim::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void incoming_packet(aux::packet p) override final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:68,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: sim::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - get_ips
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: sim::attributes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string attributes() const override final
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: sim::escape_label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string escape_label(std::string n)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: sim::escape_label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string escape_label(std::string n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_all_io_services
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:120,1
    - Dst: std::make_shared<endpoint>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:124,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:125,1
    - Dst: std::unordered_set<std::shared_ptr<sink>>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:125,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:126,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:128,1
    - Dst: get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:130,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:131,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:135,1
    - Dst: route::last
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:135,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:139,1
    - Dst: route::pop_front
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:141,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:142,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:143,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:146,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:149,1
    - Dst: route::pop_front
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:151,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:152,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:153,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:163,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:165,1
    - Dst: get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:168,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:171,1
    - Dst: route::pop_front
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:173,1
    - Dst: std::unordered_set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:174,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:175,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:178,1
    - Dst: fopen
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:187,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:187,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:189,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:194,1
    - Dst: sim::attributes
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:198,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:199,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:200,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:200,1
    - Dst: sim::escape_label
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:201,1
    - Dst: sim::label
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:201,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:202,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:203,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:206,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:211,1
    - Dst: sim::attributes
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:215,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:216,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:217,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:217,1
    - Dst: sim::escape_label
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:218,1
    - Dst: sim::label
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:218,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:219,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:220,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:223,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:226,1
    - Dst: std::set::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:228,1
    - Dst: std::set::begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:230,1
    - Dst: std::set::erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:231,1
    - Dst: std::set::begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:231,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:233,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:234,1
    - Dst: auto::first::get
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:234,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:235,1
    - Dst: auto::second::get
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:235,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:238,1
    - Dst: fclose
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - ' s'
    - ' filename'
    argTypes:
    - simulation
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 240
    functionName: sim::dump_network_graph
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - sim::label
    - get_ips
    - std::set::empty
    - config
    - route::pop_front
    - std::make_shared<endpoint>
    - sim::escape_label
    - std::unordered_set<std::shared_ptr<sink>>
    - auto::second::get
    - std::set::begin
    - get_all_io_services
    - get_incoming_route
    - std::vector::back
    - get_outgoing_route
    - route::empty
    - auto::first::get
    - static_cast<void*>
    - route::last
    - sim::attributes
    - fclose
    - std::unordered_set::insert
    - std::vector::push_back
    - c_str
    - std::string::empty
    - std::string::c_str
    - std::fprintf
    - std::set::erase
    - fopen
    - get
    - std::set::insert
    linkageType: ''
    returnType: void
    signature: void dump_network_graph(simulation const& s, const std::string& filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts:
    - condition: (false && "invalid socket")
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: sim::aux::channel::remote_idx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int channel::remote_idx(const asio::ip::tcp::endpoint& self) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts:
    - condition: (false && "invalid socket")
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: sim::aux::channel::self_idx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int channel::self_idx(const asio::ip::tcp::endpoint& self) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts:
    - condition: (false && "invalid socket")
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: sim::aux::channel::remote_idx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int channel::remote_idx(const asio::ip::tcp::endpoint& self) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts:
    - condition: (false && "invalid socket")
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: sim::aux::channel::self_idx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int channel::self_idx(const asio::ip::tcp::endpoint& self) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::hops::pop_front
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:45,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:48,1
    - Dst: std::shared_ptr::incoming_packet
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:51,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: sim::forward_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - aux::packet::hops::pop_front
    - std::shared_ptr::incoming_packet
    - std::fprintf
    - std::move
    linkageType: ''
    returnType: void
    signature: void forward_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - asio::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: sim::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void endpoint(asio::io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: sim::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void incoming_packet(aux::packet p) override final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:68,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: sim::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 1
    functionsReached:
    - get_ips
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: sim::attributes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string attributes() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - asio::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: sim::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void endpoint(asio::io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts:
    - condition: (false)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: sim::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void incoming_packet(aux::packet p) override final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:68,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: sim::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 1
    functionsReached:
    - get_ips
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: sim::attributes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string attributes() const override final
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: sim::escape_label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string escape_label(std::string n)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: sim::escape_label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string escape_label(std::string n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_all_io_services
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:120,1
    - Dst: std::make_shared<endpoint>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:124,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:125,1
    - Dst: std::unordered_set<std::shared_ptr<sink>>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:125,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:126,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:128,1
    - Dst: get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:130,1
    - Dst: get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:131,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:135,1
    - Dst: route::last
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:135,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:139,1
    - Dst: route::pop_front
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:141,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:142,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:143,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:146,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:149,1
    - Dst: route::pop_front
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:151,1
    - Dst: std::vector::back
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:152,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:153,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:163,1
    - Dst: config
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:165,1
    - Dst: get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:168,1
    - Dst: route::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:171,1
    - Dst: route::pop_front
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:173,1
    - Dst: std::unordered_set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:174,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:175,1
    - Dst: std::set::insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:178,1
    - Dst: fopen
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:187,1
    - Dst: c_str
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:187,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:189,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:194,1
    - Dst: sim::attributes
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:198,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:199,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:200,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:200,1
    - Dst: sim::escape_label
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:201,1
    - Dst: sim::label
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:201,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:202,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:203,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:206,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:211,1
    - Dst: sim::attributes
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:215,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:216,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:217,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:217,1
    - Dst: sim::escape_label
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:218,1
    - Dst: sim::label
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:218,1
    - Dst: std::string::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:219,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:220,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:223,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:226,1
    - Dst: std::set::empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:228,1
    - Dst: std::set::begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:230,1
    - Dst: std::set::erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:231,1
    - Dst: std::set::begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:231,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:233,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:234,1
    - Dst: auto::first::get
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:234,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:235,1
    - Dst: auto::second::get
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:235,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:238,1
    - Dst: fclose
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - ' s'
    - ' filename'
    argTypes:
    - simulation
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 240
    functionName: sim::dump_network_graph
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - sim::label
    - get_ips
    - std::set::empty
    - config
    - route::pop_front
    - std::make_shared<endpoint>
    - sim::escape_label
    - std::unordered_set<std::shared_ptr<sink>>
    - auto::second::get
    - std::set::begin
    - get_all_io_services
    - get_incoming_route
    - std::vector::back
    - get_outgoing_route
    - route::empty
    - auto::first::get
    - static_cast<void*>
    - route::last
    - sim::attributes
    - fclose
    - std::unordered_set::insert
    - std::vector::push_back
    - c_str
    - std::string::empty
    - std::string::c_str
    - std::fprintf
    - std::set::erase
    - fopen
    - get
    - std::set::insert
    linkageType: ''
    returnType: void
    signature: void dump_network_graph(simulation const& s, const std::string& filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts:
    - condition: (false && "invalid socket")
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: sim::aux::channel::remote_idx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int channel::remote_idx(const asio::ip::tcp::endpoint& self) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts:
    - condition: (false && "invalid socket")
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: sim::aux::channel::self_idx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int channel::self_idx(const asio::ip::tcp::endpoint& self) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts:
    - condition: (false && "invalid socket")
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: sim::aux::channel::remote_idx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int channel::remote_idx(const asio::ip::tcp::endpoint& self) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulator.cpp:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - asio::ip::tcp::endpoint
    assertStmts:
    - condition: (false && "invalid socket")
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: sim::aux::channel::self_idx
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulator.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int channel::self_idx(const asio::ip::tcp::endpoint& self) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::io_context::io_context
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:34,1
    - Dst: sim::chrono::reset_clock
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:37,1
    - Dst: build
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - configuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: sim::simulation::simulation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - build
    - sim::chrono::reset_clock
    - asio::io_context::io_context
    linkageType: ''
    returnType: void
    signature: void simulation::simulation(configuration& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:43,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:45,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_timer_queue.empty())
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: simulation::~simulation()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - clear
    linkageType: ''
    returnType: void
    signature: void simulation::~simulation()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::simulation::restart
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:54,1
    - Dst: poll
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:55,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:59,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:63,1
    - Dst: sim::chrono::high_resolution_clock::fast_forward
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:64,1
    - Dst: asio::high_resolution_timer*::expiry
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:64,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:66,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:68,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:69,1
    - Dst: expiry
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:69,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:71,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:72,1
    - Dst: asio::high_resolution_timer*::fire
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:73,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:73,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:93,1
    - Dst: second::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:97,1
    - Dst: second::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:101,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 104
    functionName: sim::simulation::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 38
    functionsReached:
    - asio::high_resolution_timer*::expiry
    - second::cancel
    - begin
    - erase
    - empty
    - asio::high_resolution_timer*::fire
    - expiry
    - libtorrent::socks_error::make_error_code
    - cancel
    - sim::chrono::high_resolution_clock::fast_forward
    - sim::simulation::restart
    - sim::chrono::high_resolution_clock::now
    - poll
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t simulation::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: sim::simulation::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simulation::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: sim::simulation::stopped
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simulation::stopped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: sim::simulation::restart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simulation::restart()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:112,1
    - Dst: asio::high_resolution_timer*::expiry
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:113,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:113,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:115,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:120,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:120,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:120,1
    - Dst: timer_compare
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:120,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - asio::high_resolution_timer*
    assertStmts:
    - condition: (!m_stopped)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: sim::simulation::add_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - asio::high_resolution_timer*::expiry
    - begin
    - std::upper_bound
    - insert
    - end
    - timer_compare
    - std::fprintf
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void simulation::add_timer(asio::high_resolution_timer* t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:127,1
    - Dst: std::tie
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: std::equal_range
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: timer_compare
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:132,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - t
    argTypes:
    - asio::high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: sim::simulation::remove_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::tie
    - erase
    - empty
    - end
    - std::find
    - timer_compare
    - std::equal_range
    linkageType: ''
    returnType: void
    signature: void simulation::remove_timer(asio::high_resolution_timer* t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:139,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - prev
    - s
    - ep
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::socket*
    - ip::tcp::endpoint
    assertStmts:
    - condition: (i != m_listen_sockets.end())
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: sim::simulation::rebind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void simulation::rebind_socket(ip::tcp::socket* prev, ip::tcp::socket*
      s, ip::tcp::endpoint ep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:148,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:148,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:148,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:150,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:150,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:154,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:157,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:162,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:165,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:166,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:168,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:168,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:169,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:172,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:174,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:178,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:179,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:182,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:185,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:185,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (ep.address() != boost::asio::ip::address())
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 188
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 188
    functionName: sim::simulation::bind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - ip::tcp::endpoint::address
    - assert
    - std::make_pair
    - init_rand_address
    - insert
    - end
    - ip::tcp::endpoint::port
    - local_endpoint
    - clear
    - lower_bound
    linkageType: ''
    returnType: ip::tcp::endpoint
    signature: "ip::tcp::endpoint simulation::bind_socket(ip::tcp::socket* socket\n\t\t,
      ip::tcp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:193,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:194,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: sim::simulation::unbind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: "void simulation::unbind_socket(ip::tcp::socket* socket\n\t\t, const
      ip::tcp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:200,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:201,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - socket
    - ep
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    assertStmts:
    - condition: (i != m_udp_sockets.end())
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: sim::simulation::rebind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void simulation::rebind_udp_socket(ip::udp::socket* socket, ip::udp::endpoint
      ep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:208,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:208,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:208,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:210,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:210,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:214,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:217,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:222,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:225,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:227,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:227,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:228,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:231,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:233,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:238,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:241,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:244,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:244,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:245,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (ep.address() != boost::asio::ip::address())
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 247
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 247
    functionName: sim::simulation::bind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::make_pair
    - init_rand_address
    - insert
    - end
    - ip::udp::endpoint::address
    - ip::udp::endpoint::port
    - local_endpoint
    - clear
    - lower_bound
    linkageType: ''
    returnType: ip::udp::endpoint
    signature: "ip::udp::endpoint simulation::bind_udp_socket(ip::udp::socket* socket\n\t\t,
      ip::udp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:252,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:253,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: sim::simulation::unbind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: "void simulation::unbind_udp_socket(ip::udp::socket* socket\n\t\t,
      const ip::udp::endpoint& ep)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:263,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:265,1
    - Dst: std::shared_ptr<aux::channel>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:266,1
    - Dst: ip::tcp::socket*::internal_is_listening
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:271,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:273,1
    - Dst: std::shared_ptr<aux::channel>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:274,1
    - Dst: std::make_shared<aux::channel>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:278,1
    - Dst: asio::ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:280,1
    - Dst: channel_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:282,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:282,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:283,1
    - Dst: ip::tcp::socket*::get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:284,1
    - Dst: asio::ip::tcp::socket*::get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:284,1
    - Dst: asio::ip::tcp::socket*::get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:285,1
    - Dst: ip::tcp::socket*::get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:285,1
    - Dst: asio::ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:287,1
    - Dst: ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:288,1
    - Dst: asio::ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:290,1
    - Dst: ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:291,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:296,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:296,1
    - Dst: asio::ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:296,1
    - Dst: std::shared_ptr<aux::channel>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:298,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:302,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - s
    - ' target'
    - ' ec'
    argTypes:
    - asio::ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 305
    functionName: sim::simulation::internal_connect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - asio::ip::tcp::endpoint::port
    - end
    - asio::ip::tcp::socket*::local_bound_to
    - ip::tcp::socket*::local_bound_to
    - channel_route
    - asio::ip::tcp::socket*::get_outgoing_route
    - address
    - std::make_shared<aux::channel>
    - ip::tcp::socket*::get_outgoing_route
    - std::shared_ptr<aux::channel>
    - ip::tcp::socket*::internal_is_listening
    - ip::tcp::socket*::get_incoming_route
    - asio::ip::tcp::endpoint::address
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - find
    - local_endpoint
    - asio::ip::tcp::socket*::get_incoming_route
    linkageType: ''
    returnType: std::shared_ptr<aux::channel>
    signature: "std::shared_ptr<aux::channel> simulation::internal_connect(\n\t\tasio::ip::tcp::socket*
      s\n\t\t, ip::tcp::endpoint const& target, boost::system::error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:311,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:312,1
    - Dst: local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:314,1
    - Dst: channel_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:315,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:315,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:315,1
    - Dst: route::append
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:318,1
    - Dst: udp_socket_iter_t::second::get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' socket'
    - ' ep'
    argTypes:
    - asio::ip::udp::socket
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: sim::simulation::find_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - udp_socket_iter_t::second::get_incoming_route
    - local_bound_to
    - end
    - find
    - ip::udp::endpoint::address
    - channel_route
    - route
    - address
    - route::append
    linkageType: ''
    returnType: route
    signature: "route simulation::find_udp_socket(asio::ip::udp::socket const& socket\n\t\t,
      ip::udp::endpoint const& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:325,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ios
    argTypes:
    - asio::io_context*
    assertStmts:
    - condition: (added)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: sim::simulation::add_io_service
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - insert
    linkageType: ''
    returnType: void
    signature: void simulation::add_io_service(asio::io_context* ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:332,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:333,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:333,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ios
    argTypes:
    - asio::io_context*
    assertStmts:
    - condition: (it != m_nodes.end())
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: sim::simulation::remove_io_service
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - erase
    - assert
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void simulation::remove_io_service(asio::io_context* ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:340,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:340,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:342,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:342,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:342,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: sim::simulation::get_all_io_services
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - begin
    - get_ips
    - end
    - std::vector::reserve
    - std::back_inserter
    - size
    - std::remove_copy_if
    linkageType: ''
    returnType: std::vector<io_context*>
    signature: std::vector<io_context*> simulation::get_all_io_services() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:349,1
    - Dst: std::unique_ptr<aux::pcap>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:350,1
    - Dst: aux::pcap::pcap
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: sim::simulation::log_pcap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<aux::pcap>
    - aux::pcap::pcap
    - std::printf
    linkageType: ''
    returnType: void
    signature: void simulation::log_pcap(char const* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::io_context::io_context
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:34,1
    - Dst: sim::chrono::reset_clock
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:37,1
    - Dst: build
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - configuration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: sim::simulation::simulation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - build
    - sim::chrono::reset_clock
    - asio::io_context::io_context
    linkageType: ''
    returnType: void
    signature: void simulation::simulation(configuration& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:43,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:45,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_timer_queue.empty())
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: simulation::~simulation()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - empty
    - assert
    - clear
    linkageType: ''
    returnType: void
    signature: void simulation::~simulation()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::simulation::restart
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:54,1
    - Dst: poll
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:55,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:59,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:63,1
    - Dst: sim::chrono::high_resolution_clock::fast_forward
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:64,1
    - Dst: asio::high_resolution_timer*::expiry
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:64,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:66,1
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:68,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:69,1
    - Dst: expiry
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:69,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:71,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:72,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:72,1
    - Dst: asio::high_resolution_timer*::fire
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:73,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:73,1
    - Dst: cancel
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:93,1
    - Dst: second::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:97,1
    - Dst: second::cancel
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:101,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 104
    functionName: sim::simulation::run
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 38
    functionsReached:
    - asio::high_resolution_timer*::expiry
    - second::cancel
    - begin
    - erase
    - empty
    - asio::high_resolution_timer*::fire
    - expiry
    - libtorrent::socks_error::make_error_code
    - cancel
    - sim::chrono::high_resolution_clock::fast_forward
    - sim::simulation::restart
    - sim::chrono::high_resolution_clock::now
    - poll
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t simulation::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: sim::simulation::stop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simulation::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: sim::simulation::stopped
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simulation::stopped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: sim::simulation::restart
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simulation::restart()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:112,1
    - Dst: asio::high_resolution_timer*::expiry
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:113,1
    - Dst: sim::chrono::high_resolution_clock::now
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:113,1
    - Dst: std::fprintf
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:115,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:120,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:120,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:120,1
    - Dst: timer_compare
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:120,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - asio::high_resolution_timer*
    assertStmts:
    - condition: (!m_stopped)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: sim::simulation::add_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - asio::high_resolution_timer*::expiry
    - begin
    - std::upper_bound
    - insert
    - end
    - timer_compare
    - std::fprintf
    - sim::chrono::high_resolution_clock::now
    linkageType: ''
    returnType: void
    signature: void simulation::add_timer(asio::high_resolution_timer* t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:127,1
    - Dst: std::tie
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: std::equal_range
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: timer_compare
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:130,1
    - Dst: std::find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:132,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - t
    argTypes:
    - asio::high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: sim::simulation::remove_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::tie
    - erase
    - empty
    - end
    - std::find
    - timer_compare
    - std::equal_range
    linkageType: ''
    returnType: void
    signature: void simulation::remove_timer(asio::high_resolution_timer* t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:139,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - prev
    - s
    - ep
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::socket*
    - ip::tcp::endpoint
    assertStmts:
    - condition: (i != m_listen_sockets.end())
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: sim::simulation::rebind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void simulation::rebind_socket(ip::tcp::socket* prev, ip::tcp::socket*
      s, ip::tcp::endpoint ep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:148,1
    - Dst: ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:148,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:148,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:150,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:150,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:154,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:157,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:162,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:165,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:166,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:168,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:168,1
    - Dst: ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:169,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:172,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:174,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:178,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:179,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:182,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:185,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:185,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (ep.address() != boost::asio::ip::address())
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 188
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 188
    functionName: sim::simulation::bind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - ip::tcp::endpoint::address
    - assert
    - std::make_pair
    - init_rand_address
    - insert
    - end
    - ip::tcp::endpoint::port
    - local_endpoint
    - clear
    - lower_bound
    linkageType: ''
    returnType: ip::tcp::endpoint
    signature: "ip::tcp::endpoint simulation::bind_socket(ip::tcp::socket* socket\n\t\t,
      ip::tcp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:193,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:194,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::tcp::socket*
    - ip::tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: sim::simulation::unbind_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: "void simulation::unbind_socket(ip::tcp::socket* socket\n\t\t, const
      ip::tcp::endpoint& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:200,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:201,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - socket
    - ep
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    assertStmts:
    - condition: (i != m_udp_sockets.end())
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: sim::simulation::rebind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void simulation::rebind_udp_socket(ip::udp::socket* socket, ip::udp::endpoint
      ep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:208,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:208,1
    - Dst: init_rand_address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:208,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:210,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:210,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:214,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:217,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:222,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:225,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:227,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:227,1
    - Dst: ip::udp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:228,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:231,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:233,1
    - Dst: lower_bound
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:238,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:241,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:244,1
    - Dst: std::make_pair
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:244,1
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:245,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - socket
    - ep
    - ' ec'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (ep.address() != boost::asio::ip::address())
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 247
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 247
    functionName: sim::simulation::bind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - std::make_pair
    - init_rand_address
    - insert
    - end
    - ip::udp::endpoint::address
    - ip::udp::endpoint::port
    - local_endpoint
    - clear
    - lower_bound
    linkageType: ''
    returnType: ip::udp::endpoint
    signature: "ip::udp::endpoint simulation::bind_udp_socket(ip::udp::socket* socket\n\t\t,
      ip::udp::endpoint ep, boost::system::error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:252,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:253,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - socket
    - ' ep'
    argTypes:
    - ip::udp::socket*
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: sim::simulation::unbind_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: "void simulation::unbind_udp_socket(ip::udp::socket* socket\n\t\t,
      const ip::udp::endpoint& ep)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:263,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:265,1
    - Dst: std::shared_ptr<aux::channel>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:266,1
    - Dst: ip::tcp::socket*::internal_is_listening
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:271,1
    - Dst: libtorrent::socks_error::make_error_code
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:273,1
    - Dst: std::shared_ptr<aux::channel>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:274,1
    - Dst: std::make_shared<aux::channel>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:278,1
    - Dst: asio::ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:280,1
    - Dst: channel_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:282,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:282,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:283,1
    - Dst: ip::tcp::socket*::get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:284,1
    - Dst: asio::ip::tcp::socket*::get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:284,1
    - Dst: asio::ip::tcp::socket*::get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:285,1
    - Dst: ip::tcp::socket*::get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:285,1
    - Dst: asio::ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:287,1
    - Dst: ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:288,1
    - Dst: asio::ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:290,1
    - Dst: ip::tcp::socket*::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:291,1
    - Dst: local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:296,1
    - Dst: asio::ip::tcp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:296,1
    - Dst: asio::ip::tcp::endpoint::port
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:296,1
    - Dst: std::shared_ptr<aux::channel>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:298,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:302,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - s
    - ' target'
    - ' ec'
    argTypes:
    - asio::ip::tcp::socket*
    - ip::tcp::endpoint
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 305
    functionName: sim::simulation::internal_connect
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - asio::ip::tcp::endpoint::port
    - end
    - asio::ip::tcp::socket*::local_bound_to
    - ip::tcp::socket*::local_bound_to
    - channel_route
    - asio::ip::tcp::socket*::get_outgoing_route
    - address
    - std::make_shared<aux::channel>
    - ip::tcp::socket*::get_outgoing_route
    - std::shared_ptr<aux::channel>
    - ip::tcp::socket*::internal_is_listening
    - ip::tcp::socket*::get_incoming_route
    - asio::ip::tcp::endpoint::address
    - forward_packet
    - libtorrent::socks_error::make_error_code
    - find
    - local_endpoint
    - asio::ip::tcp::socket*::get_incoming_route
    linkageType: ''
    returnType: std::shared_ptr<aux::channel>
    signature: "std::shared_ptr<aux::channel> simulation::internal_connect(\n\t\tasio::ip::tcp::socket*
      s\n\t\t, ip::tcp::endpoint const& target, boost::system::error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:311,1
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:312,1
    - Dst: local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:314,1
    - Dst: channel_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:315,1
    - Dst: ip::udp::endpoint::address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:315,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:315,1
    - Dst: route::append
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:318,1
    - Dst: udp_socket_iter_t::second::get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' socket'
    - ' ep'
    argTypes:
    - asio::ip::udp::socket
    - ip::udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: sim::simulation::find_udp_socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - udp_socket_iter_t::second::get_incoming_route
    - local_bound_to
    - end
    - find
    - ip::udp::endpoint::address
    - channel_route
    - route
    - address
    - route::append
    linkageType: ''
    returnType: route
    signature: "route simulation::find_udp_socket(asio::ip::udp::socket const& socket\n\t\t,
      ip::udp::endpoint const& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:325,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ios
    argTypes:
    - asio::io_context*
    assertStmts:
    - condition: (added)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: sim::simulation::add_io_service
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - assert
    - insert
    linkageType: ''
    returnType: void
    signature: void simulation::add_io_service(asio::io_context* ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:332,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:333,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:333,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ios
    argTypes:
    - asio::io_context*
    assertStmts:
    - condition: (it != m_nodes.end())
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: sim::simulation::remove_io_service
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - erase
    - assert
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void simulation::remove_io_service(asio::io_context* ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:340,1
    - Dst: size
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:340,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:342,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:342,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:342,1
    - Dst: get_ips
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: sim::simulation::get_all_io_services
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - begin
    - get_ips
    - end
    - std::vector::reserve
    - std::back_inserter
    - size
    - std::remove_copy_if
    linkageType: ''
    returnType: std::vector<io_context*>
    signature: std::vector<io_context*> simulation::get_all_io_services() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:349,1
    - Dst: std::unique_ptr<aux::pcap>
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:350,1
    - Dst: aux::pcap::pcap
      Src: /src/libtorrent/simulation/libsimulator/src/simulation.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: sim::simulation::log_pcap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/simulation.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<aux::pcap>
    - aux::pcap::pcap
    - std::printf
    linkageType: ''
    returnType: void
    signature: void simulation::log_pcap(char const* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - external_addr
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sim::nat::nat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/nat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nat::nat(asio::ip::address external_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::from::address
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:33,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:35,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:37,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: sim::nat::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/nat.cpp
    functionUses: 0
    functionsReached:
    - forward_packet
    - address
    - std::move
    - aux::packet::from::address
    linkageType: ''
    returnType: void
    signature: void nat::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:43,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: sim::nat::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/nat.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string nat::label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - external_addr
    argTypes:
    - asio::ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sim::nat::nat
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/nat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nat::nat(asio::ip::address external_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::packet::from::address
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:33,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:35,1
    - Dst: forward_packet
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:37,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: sim::nat::incoming_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/nat.cpp
    functionUses: 0
    functionsReached:
    - forward_packet
    - address
    - std::move
    - aux::packet::from::address
    linkageType: ''
    returnType: void
    signature: void nat::incoming_packet(aux::packet p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:43,1
    - Dst: to_string
      Src: /src/libtorrent/simulation/libsimulator/src/nat.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: sim::nat::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/nat.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string nat::label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: sim::chrono::high_resolution_clock::now
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: high_resolution_clock::time_point
    signature: high_resolution_clock::time_point high_resolution_clock::now()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - high_resolution_clock::duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sim::chrono::high_resolution_clock::fast_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void high_resolution_clock::fast_forward(high_resolution_clock::duration
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: sim::chrono::reset_clock
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: sim::chrono::high_resolution_clock::now
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: high_resolution_clock::time_point
    signature: high_resolution_clock::time_point high_resolution_clock::now()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - high_resolution_clock::duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sim::chrono::high_resolution_clock::fast_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void high_resolution_clock::fast_forward(high_resolution_clock::duration
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: sim::chrono::reset_clock
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: sim::chrono::high_resolution_clock::now
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: high_resolution_clock::time_point
    signature: high_resolution_clock::time_point high_resolution_clock::now()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - high_resolution_clock::duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sim::chrono::high_resolution_clock::fast_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void high_resolution_clock::fast_forward(high_resolution_clock::duration
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: sim::chrono::reset_clock
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: sim::chrono::high_resolution_clock::now
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: high_resolution_clock::time_point
    signature: high_resolution_clock::time_point high_resolution_clock::now()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - high_resolution_clock::duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sim::chrono::high_resolution_clock::fast_forward
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void high_resolution_clock::fast_forward(high_resolution_clock::duration
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: sim::chrono::reset_clock
    functionSourceFile: /src/libtorrent/simulation/libsimulator/src/high_resolution_clock.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet(packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: '& operator=(packet const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: packet
    signature: packet & operator=(packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet(packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& operator=(packet&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: packet
    signature: packet & operator=(packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: sim::aux::ok_to_drop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ok_to_drop() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet(packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: '& operator=(packet const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: packet
    signature: packet & operator=(packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet(packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& operator=(packet&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: packet
    signature: packet & operator=(packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: sim::aux::ok_to_drop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ok_to_drop() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet(packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: '& operator=(packet const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: packet
    signature: packet & operator=(packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet(packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& operator=(packet&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: packet
    signature: packet & operator=(packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: sim::aux::ok_to_drop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ok_to_drop() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet(packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: '& operator=(packet const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: packet
    signature: packet & operator=(packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sim::aux::packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet(packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& operator=(packet&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: packet
    signature: packet & operator=(packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: sim::aux::ok_to_drop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/packet.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ok_to_drop() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:33,1
    - Dst: std::forward<U>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' var'
    - ' new_val'
    argTypes:
    - T
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: sim::aux::exchange_
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<U>
    linkageType: ''
    returnType: T
    signature: T exchange_(T& var, U&& new_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: our_alloc::allocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:44,1
    - Dst: std::bad_alloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:45,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:47,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:47,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:50,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: sim::aux::allocate_handler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - std::move
    - std::bad_alloc
    - our_alloc::deallocate
    - our_alloc::allocate
    - T::T
    linkageType: ''
    returnType: T
    signature: T * allocate_handler(Fun h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: sim::aux::function_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void function_impl(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<function_impl<Handler, R, A...>*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:87,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:88,1
    - Dst: auto*::~function_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:90,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:95,1
    - Dst: handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:97,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: sim::aux::call_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - auto*::~function_impl
    - std::move
    - our_alloc::deallocate
    - static_cast<function_impl<Handler, R, A...>*>
    - std::forward<A>
    - handler
    linkageType: ''
    returnType: R
    signature: R call_impl(void* mem, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<function_impl<Handler, R, A...>*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:103,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:104,1
    - Dst: auto*::~function_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:106,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: sim::aux::dealloc_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - auto*::~function_impl
    - our_alloc::deallocate
    - std::move
    - static_cast<function_impl<Handler, R, A...>*>
    linkageType: ''
    returnType: void
    signature: void dealloc_impl(void* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: sim::aux::get_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::allocate_handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - sim::aux::allocate_handler
    linkageType: ''
    returnType: void
    signature: void function(C c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::exchange_
    linkageType: ''
    returnType: void
    signature: void function(function&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:135,1
    - Dst: sim::aux::exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: '& operator=(function&& other) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::exchange_
    - sim::aux::clear
    linkageType: ''
    returnType: function
    signature: function & operator=(function&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: ~function()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::clear
    linkageType: ''
    returnType: void
    signature: void ~function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "functions should not be copied")
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void function(function const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& operator=(function const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: function
    signature: function & operator=(function const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void function()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: '& operator=(std::nullptr_t)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: function
    signature: function & operator=(std::nullptr_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: sim::aux::clear
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 2
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:161,1
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    - Dst: sim::aux::exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_callable)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: operator()(Args&&... a)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::exchange_
    - assert
    - std::forward<A>
    - fun
    linkageType: ''
    returnType: R
    signature: R operator()(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:181,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - Callable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void move_binder(Callable c, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_binder(move_binder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& operator=(move_binder const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: move_binder
    signature: move_binder & operator=(move_binder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_binder(move_binder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: '& operator=(move_binder&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: move_binder
    signature: move_binder & operator=(move_binder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::call
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:196,1
    - Dst: type
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: operator()(Args...)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::call
    - type
    linkageType: ''
    returnType: R
    signature: R operator()(Args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_callable
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    - Dst: std::get<I>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: sim::aux::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 1
    functionsReached:
    - std::get<I>
    - m_callable
    - std::move
    linkageType: ''
    returnType: R
    signature: R call(seq<I...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::move_binder
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: sim::aux::move_bind
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<A>
    - sim::aux::move_binder
    linkageType: ''
    returnType: move_binder<C, R, A...>
    signature: move_binder<C, R, A...> move_bind(C c, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:33,1
    - Dst: std::forward<U>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' var'
    - ' new_val'
    argTypes:
    - T
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: sim::aux::exchange_
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 3
    functionsReached:
    - std::move
    - std::forward<U>
    linkageType: ''
    returnType: T
    signature: T exchange_(T& var, U&& new_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: our_alloc::allocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:44,1
    - Dst: std::bad_alloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:45,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:47,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:47,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:50,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: sim::aux::allocate_handler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<T*>
    - std::move
    - std::bad_alloc
    - our_alloc::deallocate
    - our_alloc::allocate
    - T::T
    linkageType: ''
    returnType: T
    signature: T * allocate_handler(Fun h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: sim::aux::function_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void function_impl(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<function_impl<Handler, R, A...>*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:87,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:88,1
    - Dst: auto*::~function_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:90,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:95,1
    - Dst: handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:97,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: sim::aux::call_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - auto*::~function_impl
    - std::move
    - our_alloc::deallocate
    - static_cast<function_impl<Handler, R, A...>*>
    - std::forward<A>
    - handler
    linkageType: ''
    returnType: R
    signature: R call_impl(void* mem, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<function_impl<Handler, R, A...>*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:103,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:104,1
    - Dst: auto*::~function_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:106,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: sim::aux::dealloc_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - auto*::~function_impl
    - our_alloc::deallocate
    - std::move
    - static_cast<function_impl<Handler, R, A...>*>
    linkageType: ''
    returnType: void
    signature: void dealloc_impl(void* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: sim::aux::get_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::allocate_handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - sim::aux::allocate_handler
    linkageType: ''
    returnType: void
    signature: void function(C c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::exchange_
    linkageType: ''
    returnType: void
    signature: void function(function&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:135,1
    - Dst: exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: '& operator=(function&& other) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - exchange_
    - clear
    linkageType: ''
    returnType: function
    signature: function & operator=(function&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: ~function()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "functions should not be copied")
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void function(function const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& operator=(function const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: function
    signature: function & operator=(function const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void function()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: '& operator=(std::nullptr_t)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: function
    signature: function & operator=(std::nullptr_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: sim::aux::clear
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 2
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:161,1
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    - Dst: exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_callable)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: operator()(Args&&... a)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - exchange_
    - assert
    - std::forward<A>
    - fun
    linkageType: ''
    returnType: R
    signature: R operator()(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:181,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - Callable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void move_binder(Callable c, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_binder(move_binder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& operator=(move_binder const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: move_binder
    signature: move_binder & operator=(move_binder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_binder(move_binder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: '& operator=(move_binder&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: move_binder
    signature: move_binder & operator=(move_binder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:196,1
    - Dst: type
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: operator()(Args...)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - call
    - type
    linkageType: ''
    returnType: R
    signature: R operator()(Args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_callable
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    - Dst: std::get<I>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: sim::aux::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 1
    functionsReached:
    - std::get<I>
    - m_callable
    - std::move
    linkageType: ''
    returnType: R
    signature: R call(seq<I...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::move_binder
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: sim::aux::move_bind
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<A>
    - sim::aux::move_binder
    linkageType: ''
    returnType: move_binder<C, R, A...>
    signature: move_binder<C, R, A...> move_bind(C c, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:33,1
    - Dst: std::forward<U>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' var'
    - ' new_val'
    argTypes:
    - T
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: sim::aux::exchange_
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 4
    functionsReached:
    - std::move
    - std::forward<U>
    linkageType: ''
    returnType: T
    signature: T exchange_(T& var, U&& new_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: our_alloc::allocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:44,1
    - Dst: std::bad_alloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:45,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:47,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:47,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:50,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: sim::aux::allocate_handler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 2
    functionsReached:
    - reinterpret_cast<T*>
    - std::move
    - std::bad_alloc
    - our_alloc::deallocate
    - our_alloc::allocate
    - T::T
    linkageType: ''
    returnType: T
    signature: T * allocate_handler(Fun h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: sim::aux::function_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void function_impl(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<function_impl<Handler, R, A...>*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:87,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:88,1
    - Dst: auto*::~function_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:90,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:95,1
    - Dst: handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:97,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: sim::aux::call_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - auto*::~function_impl
    - std::move
    - our_alloc::deallocate
    - static_cast<function_impl<Handler, R, A...>*>
    - std::forward<A>
    - handler
    linkageType: ''
    returnType: R
    signature: R call_impl(void* mem, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<function_impl<Handler, R, A...>*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:103,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:104,1
    - Dst: auto*::~function_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:106,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: sim::aux::dealloc_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - auto*::~function_impl
    - our_alloc::deallocate
    - std::move
    - static_cast<function_impl<Handler, R, A...>*>
    linkageType: ''
    returnType: void
    signature: void dealloc_impl(void* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: sim::aux::get_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::allocate_handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - sim::aux::allocate_handler
    linkageType: ''
    returnType: void
    signature: void function(C c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::exchange_
    linkageType: ''
    returnType: void
    signature: void function(function&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:135,1
    - Dst: exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: '& operator=(function&& other) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - exchange_
    - clear
    linkageType: ''
    returnType: function
    signature: function & operator=(function&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: ~function()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "functions should not be copied")
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void function(function const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& operator=(function const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: function
    signature: function & operator=(function const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void function()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: '& operator=(std::nullptr_t)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: function
    signature: function & operator=(std::nullptr_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: sim::aux::clear
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 2
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:161,1
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    - Dst: exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_callable)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: operator()(Args&&... a)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - exchange_
    - assert
    - std::forward<A>
    - fun
    linkageType: ''
    returnType: R
    signature: R operator()(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:181,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - Callable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void move_binder(Callable c, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_binder(move_binder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& operator=(move_binder const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: move_binder
    signature: move_binder & operator=(move_binder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_binder(move_binder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: '& operator=(move_binder&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: move_binder
    signature: move_binder & operator=(move_binder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:196,1
    - Dst: type
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: operator()(Args...)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - call
    - type
    linkageType: ''
    returnType: R
    signature: R operator()(Args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_callable
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    - Dst: std::get<I>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: sim::aux::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 1
    functionsReached:
    - std::get<I>
    - m_callable
    - std::move
    linkageType: ''
    returnType: R
    signature: R call(seq<I...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::move_binder
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: sim::aux::move_bind
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<A>
    - sim::aux::move_binder
    linkageType: ''
    returnType: move_binder<C, R, A...>
    signature: move_binder<C, R, A...> move_bind(C c, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:33,1
    - Dst: std::forward<U>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' var'
    - ' new_val'
    argTypes:
    - T
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: sim::aux::exchange_
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 5
    functionsReached:
    - std::move
    - std::forward<U>
    linkageType: ''
    returnType: T
    signature: T exchange_(T& var, U&& new_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: our_alloc::allocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:44,1
    - Dst: std::bad_alloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:45,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:47,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:47,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:50,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: sim::aux::allocate_handler
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 3
    functionsReached:
    - reinterpret_cast<T*>
    - std::move
    - std::bad_alloc
    - our_alloc::deallocate
    - our_alloc::allocate
    - T::T
    linkageType: ''
    returnType: T
    signature: T * allocate_handler(Fun h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: sim::aux::function_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void function_impl(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<function_impl<Handler, R, A...>*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:87,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:88,1
    - Dst: auto*::~function_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:90,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:95,1
    - Dst: handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:97,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: sim::aux::call_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - auto*::~function_impl
    - std::move
    - our_alloc::deallocate
    - static_cast<function_impl<Handler, R, A...>*>
    - std::forward<A>
    - handler
    linkageType: ''
    returnType: R
    signature: R call_impl(void* mem, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<function_impl<Handler, R, A...>*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:103,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:104,1
    - Dst: auto*::~function_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:106,1
    - Dst: our_alloc::deallocate
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: sim::aux::dealloc_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - auto*::~function_impl
    - our_alloc::deallocate
    - std::move
    - static_cast<function_impl<Handler, R, A...>*>
    linkageType: ''
    returnType: void
    signature: void dealloc_impl(void* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: sim::aux::get_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::allocate_handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - sim::aux::allocate_handler
    linkageType: ''
    returnType: void
    signature: void function(C c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::exchange_
    linkageType: ''
    returnType: void
    signature: void function(function&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:135,1
    - Dst: exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: '& operator=(function&& other) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - exchange_
    - clear
    linkageType: ''
    returnType: function
    signature: function & operator=(function&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: ~function()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "functions should not be copied")
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void function(function const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& operator=(function const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: function
    signature: function & operator=(function const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: sim::aux::function
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void function()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: '& operator=(std::nullptr_t)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: function
    signature: function & operator=(std::nullptr_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: sim::aux::clear
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 2
    functionsReached:
    - fun
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:161,1
    - Dst: fun
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    - Dst: exchange_
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_callable)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: operator()(Args&&... a)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - exchange_
    - assert
    - std::forward<A>
    - fun
    linkageType: ''
    returnType: R
    signature: R operator()(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:181,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - Callable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 3
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void move_binder(Callable c, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_binder(move_binder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& operator=(move_binder const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: move_binder
    signature: move_binder & operator=(move_binder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: sim::aux::move_binder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_binder(move_binder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: '& operator=(move_binder&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: move_binder
    signature: move_binder & operator=(move_binder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:196,1
    - Dst: type
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: operator()(Args...)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - call
    - type
    linkageType: ''
    returnType: R
    signature: R operator()(Args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_callable
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    - Dst: std::get<I>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: sim::aux::call
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 1
    functionsReached:
    - std::get<I>
    - m_callable
    - std::move
    linkageType: ''
    returnType: R
    signature: R call(seq<I...>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::move_binder
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: sim::aux::move_bind
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/function.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<A>
    - sim::aux::move_binder
    linkageType: ''
    returnType: move_binder<C, R, A...>
    signature: move_binder<C, R, A...> move_bind(C c, A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const&>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T const&>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::T::operator=(std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: '& operator=(noexcept_movable&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - sim::aux::T::operator=(std::forward<T>
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: '& operator=(noexcept_movable const& rhs)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const&>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T const&>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::T::operator=(std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: '& operator=(noexcept_movable&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - sim::T::operator=(std::forward<T>
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: '& operator=(noexcept_movable const& rhs)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const&>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T const&>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::T::operator=(std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: '& operator=(noexcept_movable&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - aux::T::operator=(std::forward<T>
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: '& operator=(noexcept_movable const& rhs)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T const&>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T const&>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sim::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::operator=(std::forward<T>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: '& operator=(noexcept_movable&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - T::operator=(std::forward<T>
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: '& operator=(noexcept_movable const& rhs)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 113
    functionName: sim::http_server
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/http_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL http_server
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 113
    functionName: sim::http_server
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/http_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL http_server
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 152
    functionName: std::enable_shared_from_this<socks_connection>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL std::enable_shared_from_this<socks_connection>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: sim::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: asio::ip::tcp::socket
    signature: asio::ip::tcp::socket & socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 193
    functionName: sim::socks_server
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL socks_server
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: sim::bind_start_port
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bind_start_port(int const port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: sim::cmd_counts
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::array<int, 3>
    signature: std::array<int, 3> cmd_counts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 152
    functionName: std::enable_shared_from_this<socks_connection>
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL std::enable_shared_from_this<socks_connection>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: sim::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: asio::ip::tcp::socket
    signature: asio::ip::tcp::socket & socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 193
    functionName: sim::socks_server
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL socks_server
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: sim::bind_start_port
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bind_start_port(int const port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: sim::cmd_counts
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/socks_server.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::array<int, 3>
    signature: std::array<int, 3> cmd_counts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/sink_forwarder.hpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: sim::aux::sink_forwarder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink_forwarder.hpp
    functionUses: 1
    functionsReached:
    - sim::aux::sink_forwarder
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL sink_forwarder
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/sink_forwarder.hpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: sim::aux::sink_forwarder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink_forwarder.hpp
    functionUses: 2
    functionsReached:
    - sim::aux::sink_forwarder
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL sink_forwarder
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/sink_forwarder.hpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: sim::aux::sink_forwarder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink_forwarder.hpp
    functionUses: 3
    functionsReached:
    - sim::aux::sink_forwarder
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL sink_forwarder
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::sink_forwarder
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/sink_forwarder.hpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: sim::aux::sink_forwarder
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink_forwarder.hpp
    functionUses: 4
    functionsReached:
    - sim::aux::sink_forwarder
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL sink_forwarder
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - chrono::high_resolution_clock::time_point
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sim::timed_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void timed_packet(chrono::high_resolution_clock::time_point t, aux::packet
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::timed_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timed_packet(timed_packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(timed_packet&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: timed_packet
    signature: timed_packet & operator=(timed_packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sim::timed_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timed_packet(timed_packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& operator=(timed_packet const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: timed_packet
    signature: timed_packet & operator=(timed_packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: sim::queue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL queue
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: sim::queue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue(queue const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: sim::queue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue(queue&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - chrono::high_resolution_clock::time_point
    - aux::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sim::timed_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void timed_packet(chrono::high_resolution_clock::time_point t, aux::packet
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::timed_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timed_packet(timed_packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(timed_packet&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: timed_packet
    signature: timed_packet & operator=(timed_packet&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sim::timed_packet
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timed_packet(timed_packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& operator=(timed_packet const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: timed_packet
    signature: timed_packet & operator=(timed_packet const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: sim::queue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL queue
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: sim::queue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue(queue const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: sim::queue
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/queue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue(queue&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: operator==(malloc_allocator, malloc_allocator)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(malloc_allocator, malloc_allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: operator!=(malloc_allocator, malloc_allocator)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(malloc_allocator, malloc_allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::aux::malloc_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void malloc_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sim::aux::malloc_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void malloc_allocator(malloc_allocator<U> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:43,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: sim::aux::allocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T*>
    - std::malloc
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* pointer, std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: sim::aux::malloc_wrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void malloc_wrapper(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:59,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: operator()(Args&&... a)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - m_handler
    linkageType: ''
    returnType: void
    signature: void operator()(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: sim::aux::get_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::malloc_wrapper
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:74,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: sim::aux::make_malloc
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 88
    functionsReached:
    - sim::aux::malloc_wrapper
    - std::move
    linkageType: ''
    returnType: malloc_wrapper<T>
    signature: malloc_wrapper<T> make_malloc(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: operator==(malloc_allocator, malloc_allocator)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(malloc_allocator, malloc_allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: operator!=(malloc_allocator, malloc_allocator)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(malloc_allocator, malloc_allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::aux::malloc_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void malloc_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sim::aux::malloc_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void malloc_allocator(malloc_allocator<U> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:43,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: sim::aux::allocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T*>
    - std::malloc
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* pointer, std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: sim::aux::malloc_wrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void malloc_wrapper(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:59,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: operator()(Args&&... a)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - m_handler
    linkageType: ''
    returnType: void
    signature: void operator()(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: sim::aux::get_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::malloc_wrapper
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:74,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: sim::aux::make_malloc
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 88
    functionsReached:
    - sim::aux::malloc_wrapper
    - std::move
    linkageType: ''
    returnType: malloc_wrapper<T>
    signature: malloc_wrapper<T> make_malloc(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: operator==(malloc_allocator, malloc_allocator)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(malloc_allocator, malloc_allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: operator!=(malloc_allocator, malloc_allocator)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(malloc_allocator, malloc_allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::aux::malloc_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void malloc_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sim::aux::malloc_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void malloc_allocator(malloc_allocator<U> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:43,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: sim::aux::allocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T*>
    - std::malloc
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* pointer, std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: sim::aux::malloc_wrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void malloc_wrapper(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:59,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: operator()(Args&&... a)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - m_handler
    linkageType: ''
    returnType: void
    signature: void operator()(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: sim::aux::get_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::malloc_wrapper
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:74,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: sim::aux::make_malloc
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 88
    functionsReached:
    - sim::aux::malloc_wrapper
    - std::move
    linkageType: ''
    returnType: malloc_wrapper<T>
    signature: malloc_wrapper<T> make_malloc(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: operator==(malloc_allocator, malloc_allocator)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(malloc_allocator, malloc_allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: operator!=(malloc_allocator, malloc_allocator)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(malloc_allocator, malloc_allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sim::aux::malloc_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void malloc_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sim::aux::malloc_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void malloc_allocator(malloc_allocator<U> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:43,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: sim::aux::allocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T*>
    - std::malloc
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* pointer, std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: sim::aux::malloc_wrapper
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 3
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void malloc_wrapper(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_handler
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:59,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: operator()(Args&&... a)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - m_handler
    linkageType: ''
    returnType: void
    signature: void operator()(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: sim::aux::get_allocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::aux::malloc_wrapper
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:74,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: sim::aux::make_malloc
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/handler_allocator.hpp
    functionUses: 88
    functionsReached:
    - sim::aux::malloc_wrapper
    - std::move
    linkageType: ''
    returnType: malloc_wrapper<T>
    signature: malloc_wrapper<T> make_malloc(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: sim::sink
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/nat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL sink
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~nat()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/nat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~nat()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: sim::sink
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/nat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL sink
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~nat()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/nat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~nat()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sim::aux::mallocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mallocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: sim::aux::mallocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mallocator(mallocator<U> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:54,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: sim::aux::allocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::malloc
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr, std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pointer::~T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: sim::aux::destroy
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - pointer::~T
    linkageType: ''
    returnType: void
    signature: void destroy(pointer p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:60,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - ' value'
    argTypes:
    - pointer
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: sim::aux::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(pointer p, T&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: operator==(mallocator const&) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(mallocator const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: operator!=(mallocator const&) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(mallocator const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sim::aux::mallocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mallocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: sim::aux::mallocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mallocator(mallocator<U> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:54,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: sim::aux::allocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::malloc
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr, std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pointer::~T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: sim::aux::destroy
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - pointer::~T
    linkageType: ''
    returnType: void
    signature: void destroy(pointer p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:60,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - ' value'
    argTypes:
    - pointer
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: sim::aux::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(pointer p, T&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: operator==(mallocator const&) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(mallocator const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: operator!=(mallocator const&) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(mallocator const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sim::aux::mallocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mallocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: sim::aux::mallocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mallocator(mallocator<U> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:54,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: sim::aux::allocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::malloc
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr, std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pointer::~T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: sim::aux::destroy
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - pointer::~T
    linkageType: ''
    returnType: void
    signature: void destroy(pointer p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:60,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - ' value'
    argTypes:
    - pointer
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: sim::aux::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(pointer p, T&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: operator==(mallocator const&) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(mallocator const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: operator!=(mallocator const&) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(mallocator const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sim::aux::mallocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mallocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: sim::aux::mallocator
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mallocator(mallocator<U> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:54,1
    - Dst: std::malloc
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: sim::aux::allocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::malloc
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: sim::aux::deallocate
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr, std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pointer::~T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: sim::aux::destroy
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - pointer::~T
    linkageType: ''
    returnType: void
    signature: void destroy(pointer p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:60,1
    - Dst: T::T
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - ' value'
    argTypes:
    - pointer
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: sim::aux::construct
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(pointer p, T&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: operator==(mallocator const&) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(mallocator const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: operator!=(mallocator const&) const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/mallocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(mallocator const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: sim::chrono::high_resolution_clock
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/chrono.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL high_resolution_clock
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: sim::chrono::high_resolution_clock
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/chrono.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL high_resolution_clock
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: sim::chrono::high_resolution_clock
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/chrono.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL high_resolution_clock
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: sim::chrono::high_resolution_clock
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/chrono.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL high_resolution_clock
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: sim::sink
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL sink
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: sim::attributes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string attributes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: ~sink()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~sink()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: sim::sink
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL sink
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: sim::attributes
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string attributes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: ~sink()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/sink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~sink()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: sim::append
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:83,1
    - Dst: sim::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:86,1
    - Dst: std::shared_ptr<sink>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:86,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:87,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:87,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:88,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:88,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:91,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:91,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: hops::begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: hops::end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: hops::begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: hops::end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:97,1
    - Dst: sim::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:98,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: sim::route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 5
    functionsReached:
    - sim::empty
    - push_back
    - sim::append
    - std::shared_ptr<sink>
    - std::move
    - begin
    - hops::begin
    - erase
    - insert
    - end
    - front
    - hops::end
    - back
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL route
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: route::append
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - route
    - route
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: operator+(route lhs, route rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - route::append
    - std::move
    linkageType: ''
    returnType: friend
    signature: friend operator+(route lhs, route rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: sim::next_hop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - front
    linkageType: ''
    returnType: std::shared_ptr<sink>
    signature: std::shared_ptr<sink> next_hop() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:86,1
    - Dst: std::shared_ptr<sink>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:86,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:87,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:87,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:88,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: sim::pop_front
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::empty
    - std::shared_ptr<sink>
    - std::move
    - begin
    - erase
    - front
    linkageType: ''
    returnType: std::shared_ptr<sink>
    signature: std::shared_ptr<sink> pop_front()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:91,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::shared_ptr<sink>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: sim::replace_last
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - back
    linkageType: ''
    returnType: void
    signature: void replace_last(std::shared_ptr<sink> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: hops::begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: hops::end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - route
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: sim::prepend
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - hops::begin
    - hops::end
    - insert
    - begin
    linkageType: ''
    returnType: void
    signature: void prepend(route const& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::shared_ptr<sink>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: sim::prepend
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - insert
    - std::move
    - begin
    linkageType: ''
    returnType: void
    signature: void prepend(std::shared_ptr<sink> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: hops::begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: hops::end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - route
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: sim::append
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - hops::end
    - insert
    - end
    - hops::begin
    linkageType: ''
    returnType: route
    signature: route & append(route const& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::shared_ptr<sink>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: sim::append
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - push_back
    - std::move
    linkageType: ''
    returnType: route
    signature: route & append(std::shared_ptr<sink> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: sim::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached:
    - sim::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: sim::last
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - back
    linkageType: ''
    returnType: std::shared_ptr<sink>
    signature: std::shared_ptr<sink> last() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: sim::asio::io_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_executor(io_context& ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& context() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: io_context
    signature: io_context & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: sim::asio::on_work_finished
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_work_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: sim::asio::on_work_started
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_work_started() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: sim::asio::running_in_this_thread
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool running_in_this_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - io_executor
    - io_executor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: operator==(io_executor const& lhs, io_executor const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(io_executor const& lhs, io_executor const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - io_executor
    - io_executor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: operator!=(io_executor const& lhs, io_executor const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(io_executor const& lhs, io_executor const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 194
    functionName: sim::asio::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL high_resolution_timer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: sim::asio::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer(high_resolution_timer&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: sim::asio::socket_base
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_base(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: sim::asio::socket_base
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_base(socket_base&& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:223,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:226,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:227,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:227,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:230,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:231,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:231,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:234,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:235,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - Option
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - name
    - rand_v4
    - reinterpret_cast<int const*>
    - data
    linkageType: ''
    returnType: void
    signature: void set_option(Option const& opt, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - receive_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: void
    signature: void set_option(receive_buffer_size const& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    - Dst: std::int64_t
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - send_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - value
    - libtorrent::total_microseconds
    linkageType: ''
    returnType: void
    signature: void set_option(send_buffer_size const& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_option(reuse_address const&, boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: sim::asio::local_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:271,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: sim::asio::local_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - sim::asio::local_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: sim::asio::local_bound_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_bound_to(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:290,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: sim::asio::local_bound_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - boost::system::system_error
    - sim::asio::local_bound_to
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_bound_to() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: sim::asio::get_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_option(Option&, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - receive_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: sim::asio::get_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_option(receive_buffer_size& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: sim::asio::io_control
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_control(IoControl const&, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: sim::asio::io_control
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_control(IoControl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: sim::asio::non_blocking
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: sim::asio::non_blocking
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: sim::asio::is_open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - ip::address
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint(ip::address const& addr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - ' host'
    - ' service'
    argTypes:
    - endpoint_type
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void basic_resolver_entry(\n\t\t\tendpoint_type const& ep\n\t\t\t,
      std::string const& host\n\t\t\t, std::string const& service)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: sim::asio::ip::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: sim::asio::ip::host_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: operator endpoint_type() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator endpoint_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: sim::asio::ip::service_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::basic_resolver
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:414,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 467
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - std::move
    - sim::asio::ip::basic_resolver
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL basic_resolver
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver(basic_resolver const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ct
    - e
    - ips_
    - h
    argTypes:
    - chrono::high_resolution_clock::time_point
    - boost::system::error_code
    - results_type
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void result_t(\n\t\t\t\tchrono::high_resolution_clock::time_point
      ct\n\t\t\t\t, boost::system::error_code e\n\t\t\t\t, results_type ips_\n\t\t\t\t,
      aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: '& operator=(result_t&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: '& operator=(result_t const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t const&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    - Dst: sim::asio::ip::socket
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:482,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 691
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 691
    functionName: sim::asio::ip::udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - sim::asio::ip::udp
    - assert
    - boost::system::system_error
    - std::move
    - std::vector::empty
    - address
    - abort_send_handlers
    - async_receive_from_impl
    - sim::asio::ip::socket
    - abort_recv_handlers
    - send_to_impl
    - receive_from_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL udp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: sim::asio::ip::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: sim::asio::ip::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: sim::asio::ip::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: sim::asio::ip::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' destination'
    - flags
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bufs'
    - ' destination'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: sim::asio::ip::async_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t\t\t,
      std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' sender'
    - flags
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - ' ec'
    argTypes:
    - BufferSequence
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort_recv_handlers
    - receive_from_impl
    - std::vector::empty
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: sim::asio::ip::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: sim::asio::ip::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: operator==(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator==(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: operator!=(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - ip::address
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint(ip::address const& addr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - ' host'
    - ' service'
    argTypes:
    - endpoint_type
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void basic_resolver_entry(\n\t\t\tendpoint_type const& ep\n\t\t\t,
      std::string const& host\n\t\t\t, std::string const& service)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: sim::asio::ip::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: sim::asio::ip::host_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: operator endpoint_type() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator endpoint_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: sim::asio::ip::service_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::basic_resolver
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:414,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 467
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached:
    - std::move
    - sim::asio::ip::basic_resolver
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL basic_resolver
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver(basic_resolver const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ct
    - e
    - ips_
    - h
    argTypes:
    - chrono::high_resolution_clock::time_point
    - boost::system::error_code
    - results_type
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void result_t(\n\t\t\t\tchrono::high_resolution_clock::time_point
      ct\n\t\t\t\t, boost::system::error_code e\n\t\t\t\t, results_type ips_\n\t\t\t\t,
      aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: '& operator=(result_t&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: '& operator=(result_t const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t const&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    - Dst: sim::asio::ip::socket
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:482,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 691
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 691
    functionName: sim::asio::ip::udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached:
    - sim::asio::ip::udp
    - assert
    - boost::system::system_error
    - std::move
    - std::vector::empty
    - address
    - abort_send_handlers
    - async_receive_from_impl
    - sim::asio::ip::socket
    - abort_recv_handlers
    - send_to_impl
    - receive_from_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL udp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: sim::asio::ip::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: sim::asio::ip::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: sim::asio::ip::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: sim::asio::ip::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' destination'
    - flags
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bufs'
    - ' destination'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: sim::asio::ip::async_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t\t\t,
      std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' sender'
    - flags
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - ' ec'
    argTypes:
    - BufferSequence
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort_recv_handlers
    - receive_from_impl
    - std::vector::empty
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: sim::asio::ip::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: sim::asio::ip::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: operator==(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator==(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: operator!=(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(udp const& lhs, udp const& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::family
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:716,1
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:718,1
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:719,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:760,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:769,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:770,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:774,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:783,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:785,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:792,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:794,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:803,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 921
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 921
    functionName: sim::asio::tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - sim::asio::tcp
    - assert
    - std::move
    - address
    - abort_send_handlers
    - write_some_impl
    - read_some_impl
    - sim::asio::family
    - abort_recv_handlers
    - async_wait_read_impl
    - async_read_some_impl
    - async_write_some_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL tcp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::ip::tcp::family
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - boost::asio::ip::tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    functionName: sim::asio::tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - boost::asio::ip::tcp::family
    linkageType: ''
    returnType: void
    signature: void tcp(boost::asio::ip::tcp p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 718
    functionName: sim::asio::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::tcp
    linkageType: ''
    returnType: tcp
    signature: tcp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: sim::asio::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::tcp
    linkageType: ''
    returnType: tcp
    signature: tcp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: sim::asio::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: sim::asio::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    functionName: sim::asio::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:760,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - ConstBufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 762
    functionName: sim::asio::async_write_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: "void async_write_some(ConstBufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:769,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:770,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:774,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 777
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 777
    functionName: sim::asio::async_wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - abort_send_handlers
    - abort_recv_handlers
    - async_wait_read_impl
    linkageType: ''
    returnType: void
    signature: "void async_wait(socket_base::wait_type_t const w\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:783,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - BufferSequence
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: sim::asio::read_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - read_some_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t read_some(BufferSequence const& bufs\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:792,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 795
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 795
    functionName: sim::asio::write_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - write_some_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t write_some(ConstBufferSequence const& bufs\n\t\t\t\t,
      boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:803,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: sim::asio::async_read_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_recv_handlers
    - std::move
    - async_read_some_impl
    linkageType: ''
    returnType: void
    signature: "void async_read_some(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 823
    functionName: sim::asio::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 1000
    functionName: sim::asio::acceptor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL acceptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 988
    functionName: sim::asio::internal_is_listening
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void internal_is_listening() override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - tcp
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 991
    functionName: operator!=(tcp const& lhs, tcp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(tcp const& lhs, tcp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: sim::asio::io_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_executor(io_context& ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& context() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: io_context
    signature: io_context & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: sim::asio::on_work_finished
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_work_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: sim::asio::on_work_started
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_work_started() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: sim::asio::running_in_this_thread
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool running_in_this_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - io_executor
    - io_executor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: operator==(io_executor const& lhs, io_executor const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(io_executor const& lhs, io_executor const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - io_executor
    - io_executor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: operator!=(io_executor const& lhs, io_executor const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(io_executor const& lhs, io_executor const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 194
    functionName: sim::asio::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL high_resolution_timer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: sim::asio::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer(high_resolution_timer&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: sim::asio::socket_base
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_base(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: sim::asio::socket_base
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_base(socket_base&& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:223,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:226,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:227,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:227,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:230,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:231,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:231,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:234,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:235,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - Option
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - name
    - rand_v4
    - reinterpret_cast<int const*>
    - data
    linkageType: ''
    returnType: void
    signature: void set_option(Option const& opt, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - receive_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: void
    signature: void set_option(receive_buffer_size const& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    - Dst: std::int64_t
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - send_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - value
    - libtorrent::total_microseconds
    linkageType: ''
    returnType: void
    signature: void set_option(send_buffer_size const& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_option(reuse_address const&, boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: sim::asio::local_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:271,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: sim::asio::local_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached:
    - sim::asio::local_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: sim::asio::local_bound_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_bound_to(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:290,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: sim::asio::local_bound_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached:
    - boost::system::system_error
    - sim::asio::local_bound_to
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_bound_to() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: sim::asio::get_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_option(Option&, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - receive_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: sim::asio::get_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_option(receive_buffer_size& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: sim::asio::io_control
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_control(IoControl const&, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: sim::asio::io_control
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_control(IoControl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: sim::asio::non_blocking
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: sim::asio::non_blocking
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: sim::asio::is_open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - ip::address
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint(ip::address const& addr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - ' host'
    - ' service'
    argTypes:
    - endpoint_type
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void basic_resolver_entry(\n\t\t\tendpoint_type const& ep\n\t\t\t,
      std::string const& host\n\t\t\t, std::string const& service)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: sim::asio::ip::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: sim::asio::ip::host_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: operator endpoint_type() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator endpoint_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: sim::asio::ip::service_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::basic_resolver
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:414,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 467
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached:
    - std::move
    - sim::asio::ip::basic_resolver
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL basic_resolver
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver(basic_resolver const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ct
    - e
    - ips_
    - h
    argTypes:
    - chrono::high_resolution_clock::time_point
    - boost::system::error_code
    - results_type
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void result_t(\n\t\t\t\tchrono::high_resolution_clock::time_point
      ct\n\t\t\t\t, boost::system::error_code e\n\t\t\t\t, results_type ips_\n\t\t\t\t,
      aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: '& operator=(result_t&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: '& operator=(result_t const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t const&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    - Dst: sim::asio::ip::socket
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:482,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 691
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 691
    functionName: sim::asio::ip::udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 7
    functionsReached:
    - sim::asio::ip::udp
    - assert
    - boost::system::system_error
    - std::move
    - std::vector::empty
    - address
    - abort_send_handlers
    - async_receive_from_impl
    - sim::asio::ip::socket
    - abort_recv_handlers
    - send_to_impl
    - receive_from_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL udp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: sim::asio::ip::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: sim::asio::ip::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: sim::asio::ip::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: sim::asio::ip::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' destination'
    - flags
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bufs'
    - ' destination'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: sim::asio::ip::async_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t\t\t,
      std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' sender'
    - flags
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - ' ec'
    argTypes:
    - BufferSequence
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort_recv_handlers
    - receive_from_impl
    - std::vector::empty
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: sim::asio::ip::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: sim::asio::ip::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: operator==(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator==(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: operator!=(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - ip::address
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint(ip::address const& addr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - ' host'
    - ' service'
    argTypes:
    - endpoint_type
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void basic_resolver_entry(\n\t\t\tendpoint_type const& ep\n\t\t\t,
      std::string const& host\n\t\t\t, std::string const& service)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: sim::asio::ip::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: sim::asio::ip::host_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: operator endpoint_type() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator endpoint_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: sim::asio::ip::service_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::basic_resolver
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:414,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 467
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached:
    - std::move
    - sim::asio::ip::basic_resolver
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL basic_resolver
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver(basic_resolver const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ct
    - e
    - ips_
    - h
    argTypes:
    - chrono::high_resolution_clock::time_point
    - boost::system::error_code
    - results_type
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void result_t(\n\t\t\t\tchrono::high_resolution_clock::time_point
      ct\n\t\t\t\t, boost::system::error_code e\n\t\t\t\t, results_type ips_\n\t\t\t\t,
      aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: '& operator=(result_t&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: '& operator=(result_t const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t const&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    - Dst: sim::asio::ip::socket
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:482,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 691
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 691
    functionName: sim::asio::ip::udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 10
    functionsReached:
    - sim::asio::ip::udp
    - assert
    - boost::system::system_error
    - std::move
    - std::vector::empty
    - address
    - abort_send_handlers
    - async_receive_from_impl
    - sim::asio::ip::socket
    - abort_recv_handlers
    - send_to_impl
    - receive_from_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL udp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: sim::asio::ip::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: sim::asio::ip::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: sim::asio::ip::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: sim::asio::ip::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' destination'
    - flags
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bufs'
    - ' destination'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: sim::asio::ip::async_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t\t\t,
      std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' sender'
    - flags
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - ' ec'
    argTypes:
    - BufferSequence
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort_recv_handlers
    - receive_from_impl
    - std::vector::empty
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: sim::asio::ip::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: sim::asio::ip::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: operator==(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator==(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: operator!=(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(udp const& lhs, udp const& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::family
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:716,1
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:718,1
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:719,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:760,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:769,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:770,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:774,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:783,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:785,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:792,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:794,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:803,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 921
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 921
    functionName: sim::asio::tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached:
    - sim::asio::tcp
    - assert
    - std::move
    - address
    - abort_send_handlers
    - write_some_impl
    - read_some_impl
    - sim::asio::family
    - abort_recv_handlers
    - async_wait_read_impl
    - async_read_some_impl
    - async_write_some_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL tcp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::ip::tcp::family
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - boost::asio::ip::tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    functionName: sim::asio::tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached:
    - boost::asio::ip::tcp::family
    linkageType: ''
    returnType: void
    signature: void tcp(boost::asio::ip::tcp p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 718
    functionName: sim::asio::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::tcp
    linkageType: ''
    returnType: tcp
    signature: tcp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: sim::asio::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::tcp
    linkageType: ''
    returnType: tcp
    signature: tcp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: sim::asio::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: sim::asio::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    functionName: sim::asio::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:760,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - ConstBufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 762
    functionName: sim::asio::async_write_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: "void async_write_some(ConstBufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:769,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:770,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:774,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 777
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 777
    functionName: sim::asio::async_wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - abort_send_handlers
    - abort_recv_handlers
    - async_wait_read_impl
    linkageType: ''
    returnType: void
    signature: "void async_wait(socket_base::wait_type_t const w\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:783,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - BufferSequence
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: sim::asio::read_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - read_some_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t read_some(BufferSequence const& bufs\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:792,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 795
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 795
    functionName: sim::asio::write_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - write_some_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t write_some(ConstBufferSequence const& bufs\n\t\t\t\t,
      boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:803,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: sim::asio::async_read_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_recv_handlers
    - std::move
    - async_read_some_impl
    linkageType: ''
    returnType: void
    signature: "void async_read_some(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 823
    functionName: sim::asio::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 1000
    functionName: sim::asio::acceptor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL acceptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 988
    functionName: sim::asio::internal_is_listening
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void internal_is_listening() override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - tcp
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 991
    functionName: operator!=(tcp const& lhs, tcp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(tcp const& lhs, tcp const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: sim::append
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:83,1
    - Dst: sim::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:86,1
    - Dst: std::shared_ptr<sink>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:86,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:87,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:87,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:88,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:88,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:91,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:91,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: hops::begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: hops::end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: hops::begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: hops::end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:97,1
    - Dst: sim::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:98,1
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: sim::route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 5
    functionsReached:
    - sim::empty
    - push_back
    - sim::append
    - std::shared_ptr<sink>
    - std::move
    - begin
    - hops::begin
    - erase
    - insert
    - end
    - front
    - hops::end
    - back
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL route
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: route::append
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - route
    - route
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: operator+(route lhs, route rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - route::append
    - std::move
    linkageType: ''
    returnType: friend
    signature: friend operator+(route lhs, route rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: sim::next_hop
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - front
    linkageType: ''
    returnType: std::shared_ptr<sink>
    signature: std::shared_ptr<sink> next_hop() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:86,1
    - Dst: std::shared_ptr<sink>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:86,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:87,1
    - Dst: front
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:87,1
    - Dst: erase
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:88,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: sim::pop_front
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::empty
    - std::shared_ptr<sink>
    - std::move
    - begin
    - erase
    - front
    linkageType: ''
    returnType: std::shared_ptr<sink>
    signature: std::shared_ptr<sink> pop_front()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:91,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::shared_ptr<sink>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: sim::replace_last
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - back
    linkageType: ''
    returnType: void
    signature: void replace_last(std::shared_ptr<sink> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: hops::begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    - Dst: hops::end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - route
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: sim::prepend
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - hops::begin
    - hops::end
    - insert
    - begin
    linkageType: ''
    returnType: void
    signature: void prepend(route const& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::shared_ptr<sink>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: sim::prepend
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - insert
    - std::move
    - begin
    linkageType: ''
    returnType: void
    signature: void prepend(std::shared_ptr<sink> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: hops::begin
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    - Dst: hops::end
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - route
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: sim::append
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached:
    - hops::end
    - insert
    - end
    - hops::begin
    linkageType: ''
    returnType: route
    signature: route & append(route const& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:97,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::shared_ptr<sink>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: sim::append
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached:
    - push_back
    - std::move
    linkageType: ''
    returnType: route
    signature: route & append(std::shared_ptr<sink> s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: sim::empty
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 6
    functionsReached:
    - sim::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: sim::last
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - back
    linkageType: ''
    returnType: std::shared_ptr<sink>
    signature: std::shared_ptr<sink> last() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: sim::asio::io_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_executor(io_context& ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& context() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: io_context
    signature: io_context & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: sim::asio::on_work_finished
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_work_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: sim::asio::on_work_started
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_work_started() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: sim::asio::running_in_this_thread
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool running_in_this_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - io_executor
    - io_executor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: operator==(io_executor const& lhs, io_executor const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(io_executor const& lhs, io_executor const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - io_executor
    - io_executor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: operator!=(io_executor const& lhs, io_executor const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(io_executor const& lhs, io_executor const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 194
    functionName: sim::asio::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL high_resolution_timer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: sim::asio::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer(high_resolution_timer&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: sim::asio::socket_base
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_base(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: sim::asio::socket_base
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_base(socket_base&& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:223,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:226,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:227,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:227,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:230,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:231,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:231,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:234,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:235,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - Option
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - name
    - rand_v4
    - reinterpret_cast<int const*>
    - data
    linkageType: ''
    returnType: void
    signature: void set_option(Option const& opt, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - receive_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: void
    signature: void set_option(receive_buffer_size const& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    - Dst: std::int64_t
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - send_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - value
    - libtorrent::total_microseconds
    linkageType: ''
    returnType: void
    signature: void set_option(send_buffer_size const& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_option(reuse_address const&, boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: sim::asio::local_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:271,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: sim::asio::local_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached:
    - sim::asio::local_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: sim::asio::local_bound_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_bound_to(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:290,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: sim::asio::local_bound_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached:
    - boost::system::system_error
    - sim::asio::local_bound_to
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_bound_to() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: sim::asio::get_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_option(Option&, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - receive_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: sim::asio::get_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_option(receive_buffer_size& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: sim::asio::io_control
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_control(IoControl const&, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: sim::asio::io_control
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_control(IoControl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: sim::asio::non_blocking
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: sim::asio::non_blocking
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: sim::asio::is_open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - ip::address
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint(ip::address const& addr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - ' host'
    - ' service'
    argTypes:
    - endpoint_type
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void basic_resolver_entry(\n\t\t\tendpoint_type const& ep\n\t\t\t,
      std::string const& host\n\t\t\t, std::string const& service)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: sim::asio::ip::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: sim::asio::ip::host_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: operator endpoint_type() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator endpoint_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: sim::asio::ip::service_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::basic_resolver
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:414,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 467
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 5
    functionsReached:
    - std::move
    - sim::asio::ip::basic_resolver
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL basic_resolver
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver(basic_resolver const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ct
    - e
    - ips_
    - h
    argTypes:
    - chrono::high_resolution_clock::time_point
    - boost::system::error_code
    - results_type
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void result_t(\n\t\t\t\tchrono::high_resolution_clock::time_point
      ct\n\t\t\t\t, boost::system::error_code e\n\t\t\t\t, results_type ips_\n\t\t\t\t,
      aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: '& operator=(result_t&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: '& operator=(result_t const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t const&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    - Dst: sim::asio::ip::socket
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:482,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 691
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 691
    functionName: sim::asio::ip::udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 13
    functionsReached:
    - sim::asio::ip::udp
    - assert
    - boost::system::system_error
    - std::move
    - std::vector::empty
    - address
    - abort_send_handlers
    - async_receive_from_impl
    - sim::asio::ip::socket
    - abort_recv_handlers
    - send_to_impl
    - receive_from_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL udp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: sim::asio::ip::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: sim::asio::ip::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: sim::asio::ip::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: sim::asio::ip::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' destination'
    - flags
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bufs'
    - ' destination'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: sim::asio::ip::async_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t\t\t,
      std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' sender'
    - flags
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - ' ec'
    argTypes:
    - BufferSequence
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort_recv_handlers
    - receive_from_impl
    - std::vector::empty
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: sim::asio::ip::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: sim::asio::ip::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: operator==(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator==(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: operator!=(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - ip::address
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint(ip::address const& addr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - ' host'
    - ' service'
    argTypes:
    - endpoint_type
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void basic_resolver_entry(\n\t\t\tendpoint_type const& ep\n\t\t\t,
      std::string const& host\n\t\t\t, std::string const& service)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: sim::asio::ip::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: sim::asio::ip::host_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: operator endpoint_type() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator endpoint_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: sim::asio::ip::service_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::basic_resolver
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:414,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 467
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 6
    functionsReached:
    - std::move
    - sim::asio::ip::basic_resolver
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL basic_resolver
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver(basic_resolver const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ct
    - e
    - ips_
    - h
    argTypes:
    - chrono::high_resolution_clock::time_point
    - boost::system::error_code
    - results_type
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void result_t(\n\t\t\t\tchrono::high_resolution_clock::time_point
      ct\n\t\t\t\t, boost::system::error_code e\n\t\t\t\t, results_type ips_\n\t\t\t\t,
      aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: '& operator=(result_t&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: '& operator=(result_t const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t const&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    - Dst: sim::asio::ip::socket
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:482,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 691
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 691
    functionName: sim::asio::ip::udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 16
    functionsReached:
    - sim::asio::ip::udp
    - assert
    - boost::system::system_error
    - std::move
    - std::vector::empty
    - address
    - abort_send_handlers
    - async_receive_from_impl
    - sim::asio::ip::socket
    - abort_recv_handlers
    - send_to_impl
    - receive_from_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL udp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: sim::asio::ip::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: sim::asio::ip::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: sim::asio::ip::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: sim::asio::ip::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' destination'
    - flags
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bufs'
    - ' destination'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: sim::asio::ip::async_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t\t\t,
      std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' sender'
    - flags
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - ' ec'
    argTypes:
    - BufferSequence
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort_recv_handlers
    - receive_from_impl
    - std::vector::empty
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: sim::asio::ip::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: sim::asio::ip::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: operator==(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator==(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: operator!=(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(udp const& lhs, udp const& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::family
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:716,1
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:718,1
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:719,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:760,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:769,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:770,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:774,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:783,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:785,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:792,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:794,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:803,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 921
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 921
    functionName: sim::asio::tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 7
    functionsReached:
    - sim::asio::tcp
    - assert
    - std::move
    - address
    - abort_send_handlers
    - write_some_impl
    - read_some_impl
    - sim::asio::family
    - abort_recv_handlers
    - async_wait_read_impl
    - async_read_some_impl
    - async_write_some_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL tcp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::ip::tcp::family
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - boost::asio::ip::tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    functionName: sim::asio::tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 7
    functionsReached:
    - boost::asio::ip::tcp::family
    linkageType: ''
    returnType: void
    signature: void tcp(boost::asio::ip::tcp p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 718
    functionName: sim::asio::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::tcp
    linkageType: ''
    returnType: tcp
    signature: tcp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: sim::asio::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::tcp
    linkageType: ''
    returnType: tcp
    signature: tcp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: sim::asio::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: sim::asio::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    functionName: sim::asio::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:760,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - ConstBufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 762
    functionName: sim::asio::async_write_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: "void async_write_some(ConstBufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:769,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:770,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:774,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 777
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 777
    functionName: sim::asio::async_wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - abort_send_handlers
    - abort_recv_handlers
    - async_wait_read_impl
    linkageType: ''
    returnType: void
    signature: "void async_wait(socket_base::wait_type_t const w\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:783,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - BufferSequence
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: sim::asio::read_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - read_some_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t read_some(BufferSequence const& bufs\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:792,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 795
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 795
    functionName: sim::asio::write_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - write_some_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t write_some(ConstBufferSequence const& bufs\n\t\t\t\t,
      boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:803,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: sim::asio::async_read_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_recv_handlers
    - std::move
    - async_read_some_impl
    linkageType: ''
    returnType: void
    signature: "void async_read_some(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 823
    functionName: sim::asio::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 1000
    functionName: sim::asio::acceptor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL acceptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 988
    functionName: sim::asio::internal_is_listening
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void internal_is_listening() override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - tcp
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 991
    functionName: operator!=(tcp const& lhs, tcp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(tcp const& lhs, tcp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: sim::asio::io_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_executor(io_context& ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& context() const'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: io_context
    signature: io_context & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: sim::asio::on_work_finished
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_work_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: sim::asio::on_work_started
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_work_started() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: sim::asio::running_in_this_thread
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool running_in_this_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - io_executor
    - io_executor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: operator==(io_executor const& lhs, io_executor const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(io_executor const& lhs, io_executor const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - io_executor
    - io_executor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: operator!=(io_executor const& lhs, io_executor const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(io_executor const& lhs, io_executor const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 194
    functionName: sim::asio::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL high_resolution_timer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: sim::asio::high_resolution_timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void high_resolution_timer(high_resolution_timer&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: sim::asio::socket_base
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_base(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: sim::asio::socket_base
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_base(socket_base&& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:223,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:226,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:227,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:227,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:230,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:231,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:231,1
    - Dst: name
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:234,1
    - Dst: reinterpret_cast<int const*>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:235,1
    - Dst: data
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - Option
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - name
    - rand_v4
    - reinterpret_cast<int const*>
    - data
    linkageType: ''
    returnType: void
    signature: void set_option(Option const& opt, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - receive_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: void
    signature: void set_option(receive_buffer_size const& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    - Dst: std::int64_t
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    - Dst: value
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - send_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - value
    - libtorrent::total_microseconds
    linkageType: ''
    returnType: void
    signature: void set_option(send_buffer_size const& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: sim::asio::set_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_option(reuse_address const&, boost::system::error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: sim::asio::local_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_endpoint(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::local_endpoint
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:271,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: sim::asio::local_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached:
    - sim::asio::local_endpoint
    - boost::system::system_error
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: sim::asio::local_bound_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_bound_to(boost::system::error_code&
      ec) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::local_bound_to
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:290,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: sim::asio::local_bound_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached:
    - boost::system::system_error
    - sim::asio::local_bound_to
    linkageType: ''
    returnType: typename Protocol::endpoint
    signature: typename Protocol::endpoint local_bound_to() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: sim::asio::get_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_option(Option&, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - receive_buffer_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: sim::asio::get_option
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_option(receive_buffer_size& op, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: sim::asio::io_control
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_control(IoControl const&, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: sim::asio::io_control
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_control(IoControl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: sim::asio::non_blocking
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b, boost::system::error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: sim::asio::non_blocking
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: sim::asio::is_open
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - ip::address
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint(ip::address const& addr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - ' host'
    - ' service'
    argTypes:
    - endpoint_type
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void basic_resolver_entry(\n\t\t\tendpoint_type const& ep\n\t\t\t,
      std::string const& host\n\t\t\t, std::string const& service)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: sim::asio::ip::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: sim::asio::ip::host_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: operator endpoint_type() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator endpoint_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: sim::asio::ip::service_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::basic_resolver
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:414,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 467
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 7
    functionsReached:
    - std::move
    - sim::asio::ip::basic_resolver
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL basic_resolver
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver(basic_resolver const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ct
    - e
    - ips_
    - h
    argTypes:
    - chrono::high_resolution_clock::time_point
    - boost::system::error_code
    - results_type
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void result_t(\n\t\t\t\tchrono::high_resolution_clock::time_point
      ct\n\t\t\t\t, boost::system::error_code e\n\t\t\t\t, results_type ips_\n\t\t\t\t,
      aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: '& operator=(result_t&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: '& operator=(result_t const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t const&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    - Dst: sim::asio::ip::socket
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:482,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 691
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 691
    functionName: sim::asio::ip::udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 19
    functionsReached:
    - sim::asio::ip::udp
    - assert
    - boost::system::system_error
    - std::move
    - std::vector::empty
    - address
    - abort_send_handlers
    - async_receive_from_impl
    - sim::asio::ip::socket
    - abort_recv_handlers
    - send_to_impl
    - receive_from_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL udp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: sim::asio::ip::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: sim::asio::ip::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: sim::asio::ip::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: sim::asio::ip::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' destination'
    - flags
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bufs'
    - ' destination'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: sim::asio::ip::async_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t\t\t,
      std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' sender'
    - flags
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - ' ec'
    argTypes:
    - BufferSequence
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort_recv_handlers
    - receive_from_impl
    - std::vector::empty
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: sim::asio::ip::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: sim::asio::ip::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: operator==(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator==(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: operator!=(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - ip::address
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint(ip::address const& addr, unsigned short port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: sim::asio::ip::basic_endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - ' host'
    - ' service'
    argTypes:
    - endpoint_type
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: sim::asio::ip::basic_resolver_entry
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void basic_resolver_entry(\n\t\t\tendpoint_type const& ep\n\t\t\t,
      std::string const& host\n\t\t\t, std::string const& service)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: sim::asio::ip::endpoint
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: sim::asio::ip::host_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: operator endpoint_type() const
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator endpoint_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: sim::asio::ip::service_name
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::basic_resolver
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:414,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 467
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 8
    functionsReached:
    - std::move
    - sim::asio::ip::basic_resolver
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL basic_resolver
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: sim::asio::ip::basic_resolver
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_resolver(basic_resolver const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:452,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ct
    - e
    - ips_
    - h
    argTypes:
    - chrono::high_resolution_clock::time_point
    - boost::system::error_code
    - results_type
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void result_t(\n\t\t\t\tchrono::high_resolution_clock::time_point
      ct\n\t\t\t\t, boost::system::error_code e\n\t\t\t\t, results_type ips_\n\t\t\t\t,
      aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, results_type)>
      h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: '& operator=(result_t&&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: sim::asio::ip::result_t
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void result_t(result_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: '& operator=(result_t const&)'
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_t
    signature: result_t & operator=(result_t const&)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    - Dst: sim::asio::ip::socket
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:482,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 691
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 691
    functionName: sim::asio::ip::udp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 22
    functionsReached:
    - sim::asio::ip::udp
    - assert
    - boost::system::system_error
    - std::move
    - std::vector::empty
    - address
    - abort_send_handlers
    - async_receive_from_impl
    - sim::asio::ip::socket
    - abort_recv_handlers
    - send_to_impl
    - receive_from_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL udp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: sim::asio::ip::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::ip::udp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: sim::asio::ip::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::ip::udp
    linkageType: ''
    returnType: udp
    signature: udp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: sim::asio::ip::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: sim::asio::ip::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:512,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' destination'
    - flags
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:521,1
    - Dst: send_to_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:523,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' bufs'
    - ' destination'
    argTypes:
    - ConstBufferSequence
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: sim::asio::ip::send_to
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - send_to_impl
    - boost::system::system_error
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t send_to(ConstBufferSequence const& bufs\n\t\t\t\t, udp::endpoint
      const& destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:537,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: sim::asio::ip::async_receive
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:549,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, aux::function<void(boost::system::error_code const&\n\t\t\t\t\t,
      std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:562,1
    - Dst: async_receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' bufs'
    - ' sender'
    - flags
    - handler
    argTypes:
    - BufferSequence
    - udp::endpoint
    - socket_base::message_flags
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: sim::asio::ip::async_receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - async_receive_from_impl
    - abort_recv_handlers
    - std::move
    linkageType: ''
    returnType: void
    signature: "void async_receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags flags\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:581,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:582,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:584,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:595,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:596,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:598,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' bufs'
    - ' sender'
    argTypes:
    - BufferSequence
    - udp::endpoint
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - boost::system::system_error
    - std::vector::empty
    - abort_recv_handlers
    - receive_from_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:610,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:611,1
    - Dst: receive_from_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' bufs'
    - ' sender'
    - ' ec'
    argTypes:
    - BufferSequence
    - udp::endpoint
    - boost::system::error_code
    assertStmts:
    - condition: (!b.empty())
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: sim::asio::ip::receive_from
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - abort_recv_handlers
    - receive_from_impl
    - std::vector::empty
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t receive_from(BufferSequence const& bufs\n\t\t\t\t, udp::endpoint&
      sender\n\t\t\t\t, socket_base::message_flags\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: sim::asio::ip::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: sim::asio::ip::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: operator==(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator==(udp const& lhs, udp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - udp
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: operator!=(udp const& lhs, udp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(udp const& lhs, udp const& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::family
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:716,1
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:718,1
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:719,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:760,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:769,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:770,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:774,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:783,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:785,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:792,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:794,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:803,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 921
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 921
    functionName: sim::asio::tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 10
    functionsReached:
    - sim::asio::tcp
    - assert
    - std::move
    - address
    - abort_send_handlers
    - write_some_impl
    - read_some_impl
    - sim::asio::family
    - abort_recv_handlers
    - async_wait_read_impl
    - async_read_some_impl
    - async_write_some_impl
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL tcp
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::ip::tcp::family
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - boost::asio::ip::tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    functionName: sim::asio::tcp
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 10
    functionsReached:
    - boost::asio::ip::tcp::family
    linkageType: ''
    returnType: void
    signature: void tcp(boost::asio::ip::tcp p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 718
    functionName: sim::asio::v4
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::tcp
    linkageType: ''
    returnType: tcp
    signature: tcp v4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim::asio::tcp
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: sim::asio::v6
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - sim::asio::tcp
    linkageType: ''
    returnType: tcp
    signature: tcp v6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: sim::asio::family
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: sim::asio::socket
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket(socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    functionName: sim::asio::lowest_layer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:760,1
    - Dst: async_write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - ConstBufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 762
    functionName: sim::asio::async_write_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_send_handlers
    - std::move
    - async_write_some_impl
    linkageType: ''
    returnType: void
    signature: "void async_write_some(ConstBufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort_send_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:769,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:770,1
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:774,1
    - Dst: async_wait_read_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - w
    - handler
    argTypes:
    - socket_base::wait_type_t
    - aux::function<void(boost::system::error_code const&)>
    assertStmts:
    - condition: (false && "not supported yet")
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 777
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 777
    functionName: sim::asio::async_wait
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - std::move
    - abort_send_handlers
    - abort_recv_handlers
    - async_wait_read_impl
    linkageType: ''
    returnType: void
    signature: "void async_wait(socket_base::wait_type_t const w\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:783,1
    - Dst: read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - BufferSequence
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: sim::asio::read_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - read_some_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t read_some(BufferSequence const& bufs\n\t\t\t\t, boost::system::error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:792,1
    - Dst: write_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - boost::system::error_code
    assertStmts:
    - condition: (m_non_blocking && "blocking operations not supported")
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 795
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 795
    functionName: sim::asio::write_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - assert
    - write_some_impl
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t write_some(ConstBufferSequence const& bufs\n\t\t\t\t,
      boost::system::error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_recv_handlers
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:803,1
    - Dst: async_read_some_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' bufs'
    - handler
    argTypes:
    - BufferSequence
    - "aux::function<void(boost::system::error_code const&\n\t\t\t\t\t, std::size_t)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: sim::asio::async_read_some
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - abort_recv_handlers
    - std::move
    - async_read_some_impl
    linkageType: ''
    returnType: void
    signature: "void async_read_some(BufferSequence const& bufs\n\t\t\t\t, aux::function<void(boost::system::error_code
      const&\n\t\t\t\t\t, std::size_t)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 823
    functionName: sim::asio::label
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string label() const override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 1000
    functionName: sim::asio::acceptor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL acceptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 988
    functionName: sim::asio::internal_is_listening
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void internal_is_listening() override final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - tcp
    - tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 991
    functionName: operator!=(tcp const& lhs, tcp const& rhs)
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator!=(tcp const& lhs, tcp const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simulation
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1014,1
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1066,1
    - Dst: expiry
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1074,1
    - Dst: expiry
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1110
    functionName: simulation
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - simulation
    - get
    - expiry
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL simulation
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1034
    functionName: get_internal_service
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & get_internal_service()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1037
    functionName: get_io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: asio::io_context
    signature: asio::io_context & get_io_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1060
    functionName: config
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: configuration
    signature: configuration & config() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1066
    functionName: get_pcap
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: aux::pcap
    signature: aux::pcap * get_pcap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::high_resolution_timer*::expiry
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1074,1
    - Dst: asio::high_resolution_timer*::expiry
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - asio::high_resolution_timer*
    - asio::high_resolution_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1074
    functionName: "operator()(asio::high_resolution_timer const* lhs\n\t\t\t\t, asio::high_resolution_timer
      const* rhs) const"
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - asio::high_resolution_timer*::expiry
    linkageType: ''
    returnType: bool
    signature: "bool operator()(asio::high_resolution_timer const* lhs\n\t\t\t\t,
      asio::high_resolution_timer const* rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_context
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1121,1
    - Dst: io_context
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1123,1
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1149,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1149,1
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1153,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1153,1
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1157,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1157,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1184,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1187,1
    - Dst: executor_type
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1208
    functionName: boost::asio::execution_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - io_context
    - std::move
    - find
    - executor_type
    - get_internal_service
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL boost::asio::execution_context
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1129
    functionName: asio::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context(io_context const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1130
    functionName: asio::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context(io_context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1149,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1149
    functionName: asio::dispatch_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - get_internal_service
    linkageType: ''
    returnType: void
    signature: void dispatch_impl(Handler handler, Allocator const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1153,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1153
    functionName: asio::post_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - get_internal_service
    linkageType: ''
    returnType: void
    signature: void post_impl(Handler handler, Allocator const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1157,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1157
    functionName: asio::defer_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - get_internal_service
    linkageType: ''
    returnType: void
    signature: void defer_impl(Handler handler, Allocator const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ip
    argTypes:
    - ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1184
    functionName: asio::get_outgoing_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: route
    signature: route & get_outgoing_route(ip::address ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ip
    argTypes:
    - ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1187
    functionName: asio::get_incoming_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: route
    signature: route & get_incoming_route(ip::address ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1190
    functionName: asio::get_ips
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<ip::address>
    signature: std::vector<ip::address> & get_ips() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1192
    functionName: asio::sim
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sim::simulation
    signature: sim::simulation & sim()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: executor_type
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1195
    functionName: asio::get_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - executor_type
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1212,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1212
    functionName: asio::io_executor::dispatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - dispatch_impl
    - std::move
    linkageType: ''
    returnType: void
    signature: void io_executor::dispatch(Handler handler, Allocator const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1216,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1216
    functionName: asio::io_executor::post
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - post_impl
    - std::move
    linkageType: ''
    returnType: void
    signature: void io_executor::post(Handler handler, Allocator const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defer_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1220,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1219
    functionDepth: 0
    functionLinenumber: 1219
    functionLinenumberEnd: 1220
    functionName: asio::io_executor::defer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - defer_impl
    linkageType: ''
    returnType: void
    signature: void io_executor::defer(Handler handler, Allocator const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_executor
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1225
    functionName: asio::socket_base<Protocol>::get_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - io_executor
    linkageType: ''
    returnType: io_executor
    signature: io_executor socket_base<Protocol>::get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::socket_base<Protocol>::get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1230,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1230,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1231,1
    - Dst: route::append
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1232,1
    - Dst: std::static_pointer_cast<sim::sink>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 1230
        line_start: 1230
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 1234
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1234
    functionName: asio::socket_base<Protocol>::get_incoming_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - assert
    - std::static_pointer_cast<sim::sink>
    - asio::socket_base<Protocol>::get_incoming_route
    - address
    - route::append
    linkageType: ''
    returnType: route
    signature: route socket_base<Protocol>::get_incoming_route()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1239,1
    - Dst: asio::socket_base<Protocol>::get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1239,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1240
    functionName: asio::socket_base<Protocol>::get_outgoing_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 1
    functionsReached:
    - route
    - address
    - asio::socket_base<Protocol>::get_outgoing_route
    linkageType: ''
    returnType: route
    signature: route socket_base<Protocol>::get_outgoing_route()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_context
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1121,1
    - Dst: io_context
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1123,1
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1149,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1149,1
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1153,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1153,1
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1157,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1157,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1184,1
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1187,1
    - Dst: executor_type
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1208
    functionName: boost::asio::execution_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - io_context
    - std::move
    - find
    - executor_type
    - get_internal_service
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL boost::asio::execution_context
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1129
    functionName: asio::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context(io_context const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1130
    functionName: asio::io_context
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void io_context(io_context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1149,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1149
    functionName: asio::dispatch_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - get_internal_service
    linkageType: ''
    returnType: void
    signature: void dispatch_impl(Handler handler, Allocator const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1153,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1153
    functionName: asio::post_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - get_internal_service
    linkageType: ''
    returnType: void
    signature: void post_impl(Handler handler, Allocator const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_internal_service
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1157,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1157
    functionName: asio::defer_impl
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - get_internal_service
    linkageType: ''
    returnType: void
    signature: void defer_impl(Handler handler, Allocator const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ip
    argTypes:
    - ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1184
    functionName: asio::get_outgoing_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: route
    signature: route & get_outgoing_route(ip::address ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ip
    argTypes:
    - ip::address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1187
    functionName: asio::get_incoming_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: route
    signature: route & get_incoming_route(ip::address ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1190
    functionName: asio::get_ips
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<ip::address>
    signature: std::vector<ip::address> & get_ips() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1192
    functionName: asio::sim
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sim::simulation
    signature: sim::simulation & sim()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: executor_type
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1195
    functionName: asio::get_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - executor_type
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1212,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1212
    functionName: asio::io_executor::dispatch
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - dispatch_impl
    - std::move
    linkageType: ''
    returnType: void
    signature: void io_executor::dispatch(Handler handler, Allocator const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1216,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1216
    functionName: asio::io_executor::post
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - post_impl
    - std::move
    linkageType: ''
    returnType: void
    signature: void io_executor::post(Handler handler, Allocator const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defer_impl
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1220,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ' a'
    argTypes:
    - Handler
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1219
    functionDepth: 0
    functionLinenumber: 1219
    functionLinenumberEnd: 1220
    functionName: asio::io_executor::defer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - defer_impl
    linkageType: ''
    returnType: void
    signature: void io_executor::defer(Handler handler, Allocator const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: io_executor
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1225
    functionName: asio::socket_base<Protocol>::get_executor
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached:
    - io_executor
    linkageType: ''
    returnType: io_executor
    signature: io_executor socket_base<Protocol>::get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::socket_base<Protocol>::get_incoming_route
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1230,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1230,1
    - Dst: assert
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1231,1
    - Dst: route::append
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1232,1
    - Dst: std::static_pointer_cast<sim::sink>
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (m_forwarder)
      pos:
        line_end: 1230
        line_start: 1230
        source_file: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    constantsTouched: []
    func_position:
      end: 1234
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1234
    functionName: asio::socket_base<Protocol>::get_incoming_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached:
    - assert
    - std::static_pointer_cast<sim::sink>
    - asio::socket_base<Protocol>::get_incoming_route
    - address
    - route::append
    linkageType: ''
    returnType: route
    signature: route socket_base<Protocol>::get_incoming_route()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: route
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1239,1
    - Dst: asio::socket_base<Protocol>::get_outgoing_route
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1239,1
    - Dst: address
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1240
    functionName: asio::socket_base<Protocol>::get_outgoing_route
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 2
    functionsReached:
    - route
    - address
    - asio::socket_base<Protocol>::get_outgoing_route
    linkageType: ''
    returnType: route
    signature: route socket_base<Protocol>::get_outgoing_route()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1283
    functionName: configuration
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL configuration
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1247
    functionName: ~configuration()
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~configuration()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1306
    functionName: default_config
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL default_config
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1287
    functionName: default_config
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void default_config()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1346
    functionName: aux::channel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL channel
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1327
    functionName: aux::channel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1346
    functionName: aux::channel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL channel
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1327
    functionName: aux::channel
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/simulator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::address_v4
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp:32,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp:35,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp:36,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' sim'
    - timeout
    - ' f'
    argTypes:
    - simulation
    - chrono::high_resolution_clock::duration
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: sim::timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp
    functionUses: 0
    functionsReached:
    - asio::ip::address_v4
    - async_wait
    - std::move
    - expires_after
    linkageType: ''
    returnType: void
    signature: "void timer(simulation& sim, chrono::high_resolution_clock::duration
      timeout\n\t\t, aux::function<void(boost::system::error_code const&)>&& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asio::ip::address_v4
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp:32,1
    - Dst: expires_after
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp:35,1
    - Dst: async_wait
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp:36,1
    - Dst: std::move
      Src: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' sim'
    - timeout
    - ' f'
    argTypes:
    - simulation
    - chrono::high_resolution_clock::duration
    - aux::function<void(boost::system::error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: sim::timer
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/utils.hpp
    functionUses: 0
    functionsReached:
    - asio::ip::address_v4
    - async_wait
    - std::move
    - expires_after
    linkageType: ''
    returnType: void
    signature: "void timer(simulation& sim, chrono::high_resolution_clock::duration
      timeout\n\t\t, aux::function<void(boost::system::error_code const&)>&& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 94
    functionName: sim::http_proxy
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/http_proxy.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL http_proxy
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 94
    functionName: sim::http_proxy
    functionSourceFile: /src/libtorrent/simulation/libsimulator/include/simulator/http_proxy.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct SIMULATOR_DECL
    signature: struct SIMULATOR_DECL http_proxy
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::strchr
      Src: /src/libtorrent/src/assert.cpp:76,1
    - Dst: strstr
      Src: /src/libtorrent/src/assert.cpp:84,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/assert.cpp:87,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/assert.cpp:94,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/assert.cpp:98,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/assert.cpp:99,1
    - Dst: ::abi::__cxa_demangle
      Src: /src/libtorrent/src/assert.cpp:103,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/assert.cpp:103,1
    - Dst: libtorrent::aux::free
      Src: /src/libtorrent/src/assert.cpp:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 108
    functionName: libtorrent::demangle
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached:
    - ::abi::__cxa_demangle
    - std::string::c_str
    - std::strchr
    - std::string::assign
    - strstr
    - libtorrent::aux::free
    linkageType: ''
    returnType: std::string
    signature: std::string demangle(char const* name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::strchr
      Src: /src/libtorrent/src/assert.cpp:76,1
    - Dst: strstr
      Src: /src/libtorrent/src/assert.cpp:84,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/assert.cpp:87,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/assert.cpp:94,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/assert.cpp:98,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/assert.cpp:99,1
    - Dst: ::abi::__cxa_demangle
      Src: /src/libtorrent/src/assert.cpp:103,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/assert.cpp:103,1
    - Dst: libtorrent::aux::free
      Src: /src/libtorrent/src/assert.cpp:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 108
    functionName: libtorrent::demangle
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached:
    - ::abi::__cxa_demangle
    - std::string::c_str
    - std::strchr
    - std::string::assign
    - strstr
    - libtorrent::aux::free
    linkageType: ''
    returnType: std::string
    signature: std::string demangle(char const* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnDecorateSymbolName
      Src: /src/libtorrent/src/assert.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: libtorrent::demangle
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached:
    - UnDecorateSymbolName
    linkageType: ''
    returnType: std::string
    signature: std::string demangle(char const* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnDecorateSymbolName
      Src: /src/libtorrent/src/assert.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: libtorrent::demangle
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached:
    - UnDecorateSymbolName
    linkageType: ''
    returnType: std::string
    signature: std::string demangle(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: libtorrent::demangle
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string demangle(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: libtorrent::demangle
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string demangle(char const* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::print_backtrace
      Src: /src/libtorrent/src/assert.cpp:144,1
    - Dst: ::backtrace_symbols
      Src: /src/libtorrent/src/assert.cpp:145,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:149,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/assert.cpp:149,1
    - Dst: libtorrent::demangle
      Src: /src/libtorrent/src/assert.cpp:149,1
    - Dst: libtorrent::aux::free
      Src: /src/libtorrent/src/assert.cpp:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - out
    - len
    - max_depth
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: libtorrent::print_backtrace
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 2
    functionsReached:
    - std::snprintf
    - ::backtrace_symbols
    - std::size_t
    - libtorrent::demangle
    - libtorrent::aux::free
    - libtorrent::print_backtrace
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT print_backtrace(char* out, int len, int max_depth, void*)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::print_backtrace
      Src: /src/libtorrent/src/assert.cpp:144,1
    - Dst: ::backtrace_symbols
      Src: /src/libtorrent/src/assert.cpp:145,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:149,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/assert.cpp:149,1
    - Dst: libtorrent::demangle
      Src: /src/libtorrent/src/assert.cpp:149,1
    - Dst: libtorrent::aux::free
      Src: /src/libtorrent/src/assert.cpp:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - out
    - len
    - max_depth
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: libtorrent::print_backtrace
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 3
    functionsReached:
    - std::snprintf
    - ::backtrace_symbols
    - std::size_t
    - libtorrent::demangle
    - libtorrent::aux::free
    - libtorrent::print_backtrace
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT print_backtrace(char* out, int len, int max_depth, void*)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CONTEXT*>
      Src: /src/libtorrent/src/assert.cpp:181,1
    - Dst: RtlCaptureContext
      Src: /src/libtorrent/src/assert.cpp:186,1
    - Dst: StackWalk64
      Src: /src/libtorrent/src/assert.cpp:212,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/assert.cpp:213,1
    - Dst: GetCurrentThread
      Src: /src/libtorrent/src/assert.cpp:214,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/assert.cpp:220,1
    - Dst: reinterpret_cast<void*>
      Src: /src/libtorrent/src/assert.cpp:222,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/assert.cpp:230,1
    - Dst: SymInitialize
      Src: /src/libtorrent/src/assert.cpp:235,1
    - Dst: SymRefreshModuleList
      Src: /src/libtorrent/src/assert.cpp:237,1
    - Dst: reinterpret_cast<DWORD_PTR>
      Src: /src/libtorrent/src/assert.cpp:240,1
    - Dst: SymFromAddr
      Src: /src/libtorrent/src/assert.cpp:246,1
    - Dst: SymGetLineFromAddr64
      Src: /src/libtorrent/src/assert.cpp:251,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/assert.cpp:251,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:254,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:259,1
    - Dst: libtorrent::demangle
      Src: /src/libtorrent/src/assert.cpp:260,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:266,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:272,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - out
    - len
    - max_depth
    - ctx
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 278
    functionName: libtorrent::print_backtrace
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 3
    functionsReached:
    - SymRefreshModuleList
    - static_cast<CONTEXT*>
    - std::array::size
    - SymFromAddr
    - reinterpret_cast<void*>
    - SymGetLineFromAddr64
    - RtlCaptureContext
    - GetCurrentProcess
    - std::snprintf
    - reinterpret_cast<DWORD_PTR>
    - GetCurrentThread
    - StackWalk64
    - libtorrent::demangle
    - SymInitialize
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT print_backtrace(char* out, int len, int max_depth\n\t,
      void* ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CONTEXT*>
      Src: /src/libtorrent/src/assert.cpp:181,1
    - Dst: RtlCaptureContext
      Src: /src/libtorrent/src/assert.cpp:186,1
    - Dst: StackWalk64
      Src: /src/libtorrent/src/assert.cpp:212,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/assert.cpp:213,1
    - Dst: GetCurrentThread
      Src: /src/libtorrent/src/assert.cpp:214,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/assert.cpp:220,1
    - Dst: reinterpret_cast<void*>
      Src: /src/libtorrent/src/assert.cpp:222,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/assert.cpp:230,1
    - Dst: SymInitialize
      Src: /src/libtorrent/src/assert.cpp:235,1
    - Dst: SymRefreshModuleList
      Src: /src/libtorrent/src/assert.cpp:237,1
    - Dst: reinterpret_cast<DWORD_PTR>
      Src: /src/libtorrent/src/assert.cpp:240,1
    - Dst: SymFromAddr
      Src: /src/libtorrent/src/assert.cpp:246,1
    - Dst: SymGetLineFromAddr64
      Src: /src/libtorrent/src/assert.cpp:251,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/assert.cpp:251,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:254,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:259,1
    - Dst: libtorrent::demangle
      Src: /src/libtorrent/src/assert.cpp:260,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:266,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/assert.cpp:272,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - out
    - len
    - max_depth
    - ctx
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 278
    functionName: libtorrent::print_backtrace
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 3
    functionsReached:
    - SymRefreshModuleList
    - static_cast<CONTEXT*>
    - std::array::size
    - SymFromAddr
    - reinterpret_cast<void*>
    - SymGetLineFromAddr64
    - RtlCaptureContext
    - GetCurrentProcess
    - std::snprintf
    - reinterpret_cast<DWORD_PTR>
    - GetCurrentThread
    - StackWalk64
    - libtorrent::demangle
    - SymInitialize
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT print_backtrace(char* out, int len, int max_depth\n\t,
      void* ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strncat
      Src: /src/libtorrent/src/assert.cpp:288,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/assert.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: libtorrent::print_backtrace
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 3
    functionsReached:
    - std::size_t
    - std::strncat
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT print_backtrace(char* out, int len, int /*max_depth*/,
      void* /* ctx */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strncat
      Src: /src/libtorrent/src/assert.cpp:288,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/assert.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: libtorrent::print_backtrace
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 3
    functionsReached:
    - std::size_t
    - std::strncat
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT print_backtrace(char* out, int len, int /*max_depth*/,
      void* /* ctx */)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/assert.cpp:316,1
    - Dst: va_start
      Src: /src/libtorrent/src/assert.cpp:322,1
    - Dst: std::vfprintf
      Src: /src/libtorrent/src/assert.cpp:323,1
    - Dst: va_end
      Src: /src/libtorrent/src/assert.cpp:324,1
    - Dst: fclose
      Src: /src/libtorrent/src/assert.cpp:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 329
    functionName: libtorrent::assert_print
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - fopen
    - std::vfprintf
    - fclose
    linkageType: ''
    returnType: void
    signature: void assert_print(char const* fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fetch_add
      Src: /src/libtorrent/src/assert.cpp:343,1
    - Dst: libtorrent::print_backtrace
      Src: /src/libtorrent/src/assert.cpp:348,1
    - Dst: libtorrent::assert_print
      Src: /src/libtorrent/src/assert.cpp:362,1
    - Dst: load
      Src: /src/libtorrent/src/assert.cpp:375,1
    - Dst: __debugbreak
      Src: /src/libtorrent/src/assert.cpp:385,1
    - Dst: std::raise
      Src: /src/libtorrent/src/assert.cpp:389,1
    - Dst: libtorrent::abort
      Src: /src/libtorrent/src/assert.cpp:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - expr
    - line
    - file
    - function
    - value
    - kind
    argTypes:
    - char*
    - int
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 393
    functionName: libtorrent::assert_fail
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached:
    - fetch_add
    - __debugbreak
    - libtorrent::assert_print
    - libtorrent::abort
    - std::raise
    - load
    - libtorrent::print_backtrace
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT assert_fail(char const* expr, int line\n\t, char const*
      file, char const* function, char const* value, int kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: libtorrent::assert_print
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assert_print(char const*, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: libtorrent::assert_fail
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT assert_fail(char const*, int, char const*\n\t, char
      const*, char const*, int)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/assert.cpp:316,1
    - Dst: va_start
      Src: /src/libtorrent/src/assert.cpp:322,1
    - Dst: std::vfprintf
      Src: /src/libtorrent/src/assert.cpp:323,1
    - Dst: va_end
      Src: /src/libtorrent/src/assert.cpp:324,1
    - Dst: fclose
      Src: /src/libtorrent/src/assert.cpp:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 329
    functionName: libtorrent::assert_print
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 1
    functionsReached:
    - va_start
    - va_end
    - fopen
    - std::vfprintf
    - fclose
    linkageType: ''
    returnType: void
    signature: void assert_print(char const* fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fetch_add
      Src: /src/libtorrent/src/assert.cpp:343,1
    - Dst: libtorrent::print_backtrace
      Src: /src/libtorrent/src/assert.cpp:348,1
    - Dst: libtorrent::assert_print
      Src: /src/libtorrent/src/assert.cpp:362,1
    - Dst: load
      Src: /src/libtorrent/src/assert.cpp:375,1
    - Dst: __debugbreak
      Src: /src/libtorrent/src/assert.cpp:385,1
    - Dst: std::raise
      Src: /src/libtorrent/src/assert.cpp:389,1
    - Dst: libtorrent::abort
      Src: /src/libtorrent/src/assert.cpp:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - expr
    - line
    - file
    - function
    - value
    - kind
    argTypes:
    - char*
    - int
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 393
    functionName: libtorrent::assert_fail
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached:
    - fetch_add
    - __debugbreak
    - libtorrent::assert_print
    - libtorrent::abort
    - std::raise
    - load
    - libtorrent::print_backtrace
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT assert_fail(char const* expr, int line\n\t, char const*
      file, char const* function, char const* value, int kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: libtorrent::assert_print
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assert_print(char const*, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: libtorrent::assert_fail
    functionSourceFile: /src/libtorrent/src/assert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT assert_fail(char const*, int, char const*\n\t, char
      const*, char const*, int)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:44,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:45,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:46,1
    - Dst: settings_pack::proxy_type_t
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:49,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:50,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:52,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' sett'
    argTypes:
    - proxy_settings
    - Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::init
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get_str
    - libtorrent::aux::get_bool
    - libtorrent::aux::get_int
    - settings_pack::proxy_type_t
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void init(proxy_settings& p, Settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:44,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:45,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:46,1
    - Dst: settings_pack::proxy_type_t
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:49,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:50,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:52,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' sett'
    argTypes:
    - proxy_settings
    - Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::init
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get_str
    - libtorrent::aux::get_bool
    - libtorrent::aux::get_int
    - settings_pack::proxy_type_t
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void init(proxy_settings& p, Settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/proxy_settings.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings(settings_pack const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/proxy_settings.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings(aux::session_settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:44,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:45,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:46,1
    - Dst: settings_pack::proxy_type_t
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:49,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:50,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:52,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' sett'
    argTypes:
    - proxy_settings
    - Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::init
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get_str
    - libtorrent::aux::get_bool
    - libtorrent::aux::get_int
    - settings_pack::proxy_type_t
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void init(proxy_settings& p, Settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:44,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:45,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:46,1
    - Dst: settings_pack::proxy_type_t
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:49,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:50,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:52,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' sett'
    argTypes:
    - proxy_settings
    - Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::init
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get_str
    - libtorrent::aux::get_bool
    - libtorrent::aux::get_int
    - settings_pack::proxy_type_t
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void init(proxy_settings& p, Settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/proxy_settings.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings(settings_pack const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/proxy_settings.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings(aux::session_settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:44,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:45,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:46,1
    - Dst: settings_pack::proxy_type_t
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:49,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:50,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:52,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' sett'
    argTypes:
    - proxy_settings
    - Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::init
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get_str
    - libtorrent::aux::get_bool
    - libtorrent::aux::get_int
    - settings_pack::proxy_type_t
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void init(proxy_settings& p, Settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:44,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:45,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:46,1
    - Dst: settings_pack::proxy_type_t
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:49,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:50,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:52,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' sett'
    argTypes:
    - proxy_settings
    - Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::init
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get_str
    - libtorrent::aux::get_bool
    - libtorrent::aux::get_int
    - settings_pack::proxy_type_t
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void init(proxy_settings& p, Settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/proxy_settings.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings(settings_pack const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/proxy_settings.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings(aux::session_settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:44,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:45,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:46,1
    - Dst: settings_pack::proxy_type_t
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:49,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:50,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:52,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' sett'
    argTypes:
    - proxy_settings
    - Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::init
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get_str
    - libtorrent::aux::get_bool
    - libtorrent::aux::get_int
    - settings_pack::proxy_type_t
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void init(proxy_settings& p, Settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:44,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:45,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/proxy_settings.cpp:46,1
    - Dst: settings_pack::proxy_type_t
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:47,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/src/proxy_settings.cpp:48,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:49,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:50,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:52,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/src/proxy_settings.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' sett'
    argTypes:
    - proxy_settings
    - Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::init
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get_str
    - libtorrent::aux::get_bool
    - libtorrent::aux::get_int
    - settings_pack::proxy_type_t
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void init(proxy_settings& p, Settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/proxy_settings.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings(settings_pack const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/proxy_settings.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: libtorrent::aux::proxy_settings::proxy_settings
    functionSourceFile: /src/libtorrent/src/proxy_settings.cpp
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: void
    signature: void proxy_settings::proxy_settings(aux::session_settings const& sett)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/truncate.cpp:50,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/truncate.cpp:52,1
    - Dst: file_path
      Src: /src/libtorrent/src/truncate.cpp:53,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/truncate.cpp:54,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/truncate.cpp:56,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/truncate.cpp:56,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/truncate.cpp:62,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/truncate.cpp:62,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/truncate.cpp:72,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:75,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:75,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:76,1
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/truncate.cpp:84,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:86,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/truncate.cpp:86,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:86,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:87,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:89,1
    - Dst: file_size
      Src: /src/libtorrent/src/truncate.cpp:93,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:95,1
    - Dst: file_size
      Src: /src/libtorrent/src/truncate.cpp:100,1
    - Dst: SetFilePointerEx
      Src: /src/libtorrent/src/truncate.cpp:101,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:103,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/truncate.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:103,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:104,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:106,1
    - Dst: ::SetEndOfFile
      Src: /src/libtorrent/src/truncate.cpp:110,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:112,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/truncate.cpp:112,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:112,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:113,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:115,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 120
    functionName: libtorrent::truncate_files
    functionSourceFile: /src/libtorrent/src/truncate.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - ::SetEndOfFile
    - CreateFile2
    - libtorrent::file
    - SetFilePointerEx
    - CreateFileW
    - GetFileSizeEx
    - file_path
    - file_size
    - pad_file_at
    - libtorrent::convert_to_native_path_string
    - ::CloseHandle
    - ::GetLastError
    - ec::assign
    - libtorrent::file_range
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void truncate_files(file_storage const& fs, std::string const& save_path,
      storage_error& ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/truncate.cpp:126,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/truncate.cpp:128,1
    - Dst: file_path
      Src: /src/libtorrent/src/truncate.cpp:129,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/truncate.cpp:130,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/truncate.cpp:136,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/truncate.cpp:136,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:143,1
    - Dst: generic_category
      Src: /src/libtorrent/src/truncate.cpp:143,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:144,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/truncate.cpp:152,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:154,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:154,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:155,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/truncate.cpp:157,1
    - Dst: file_size
      Src: /src/libtorrent/src/truncate.cpp:161,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/truncate.cpp:163,1
    - Dst: ::ftruncate
      Src: /src/libtorrent/src/truncate.cpp:167,1
    - Dst: static_cast<off_t>
      Src: /src/libtorrent/src/truncate.cpp:167,1
    - Dst: file_size
      Src: /src/libtorrent/src/truncate.cpp:167,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:169,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:169,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:170,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/truncate.cpp:172,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/truncate.cpp:176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 178
    functionName: libtorrent::truncate_files
    functionSourceFile: /src/libtorrent/src/truncate.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - peer_conn::close
    - libtorrent::file
    - file_path
    - generic_category
    - file_size
    - libtorrent::broadcast_socket::open
    - pad_file_at
    - libtorrent::convert_to_native_path_string
    - ::fstat
    - static_cast<off_t>
    - ec::assign
    - libtorrent::file_range
    - ::ftruncate
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void truncate_files(file_storage const& fs, std::string const& save_path,
      storage_error& ec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/truncate.cpp:50,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/truncate.cpp:52,1
    - Dst: file_path
      Src: /src/libtorrent/src/truncate.cpp:53,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/truncate.cpp:54,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/truncate.cpp:56,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/truncate.cpp:56,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/truncate.cpp:62,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/truncate.cpp:62,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/truncate.cpp:72,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:75,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:75,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:76,1
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/truncate.cpp:84,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:86,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/truncate.cpp:86,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:86,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:87,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:89,1
    - Dst: file_size
      Src: /src/libtorrent/src/truncate.cpp:93,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:95,1
    - Dst: file_size
      Src: /src/libtorrent/src/truncate.cpp:100,1
    - Dst: SetFilePointerEx
      Src: /src/libtorrent/src/truncate.cpp:101,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:103,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/truncate.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:103,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:104,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:106,1
    - Dst: ::SetEndOfFile
      Src: /src/libtorrent/src/truncate.cpp:110,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:112,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/truncate.cpp:112,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:112,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:113,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:115,1
    - Dst: ::CloseHandle
      Src: /src/libtorrent/src/truncate.cpp:118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 120
    functionName: libtorrent::truncate_files
    functionSourceFile: /src/libtorrent/src/truncate.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - ::SetEndOfFile
    - CreateFile2
    - libtorrent::file
    - SetFilePointerEx
    - CreateFileW
    - GetFileSizeEx
    - file_path
    - file_size
    - pad_file_at
    - libtorrent::convert_to_native_path_string
    - ::CloseHandle
    - ::GetLastError
    - ec::assign
    - libtorrent::file_range
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void truncate_files(file_storage const& fs, std::string const& save_path,
      storage_error& ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/truncate.cpp:126,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/truncate.cpp:128,1
    - Dst: file_path
      Src: /src/libtorrent/src/truncate.cpp:129,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/truncate.cpp:130,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/truncate.cpp:136,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/truncate.cpp:136,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:143,1
    - Dst: generic_category
      Src: /src/libtorrent/src/truncate.cpp:143,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:144,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/truncate.cpp:152,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:154,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:154,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:155,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/truncate.cpp:157,1
    - Dst: file_size
      Src: /src/libtorrent/src/truncate.cpp:161,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/truncate.cpp:163,1
    - Dst: ::ftruncate
      Src: /src/libtorrent/src/truncate.cpp:167,1
    - Dst: static_cast<off_t>
      Src: /src/libtorrent/src/truncate.cpp:167,1
    - Dst: file_size
      Src: /src/libtorrent/src/truncate.cpp:167,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/truncate.cpp:169,1
    - Dst: system_category
      Src: /src/libtorrent/src/truncate.cpp:169,1
    - Dst: libtorrent::file
      Src: /src/libtorrent/src/truncate.cpp:170,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/truncate.cpp:172,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/truncate.cpp:176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 178
    functionName: libtorrent::truncate_files
    functionSourceFile: /src/libtorrent/src/truncate.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - peer_conn::close
    - libtorrent::file
    - file_path
    - generic_category
    - file_size
    - libtorrent::broadcast_socket::open
    - pad_file_at
    - libtorrent::convert_to_native_path_string
    - ::fstat
    - static_cast<off_t>
    - ec::assign
    - libtorrent::file_range
    - ::ftruncate
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void truncate_files(file_storage const& fs, std::string const& save_path,
      storage_error& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socks_category
      Src: /src/libtorrent/src/socks5_stream.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - socks_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: libtorrent::socks_error::make_error_code
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 198
    functionsReached:
    - socks_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(socks_error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socks_category
      Src: /src/libtorrent/src/socks5_stream.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - socks_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: libtorrent::socks_error::make_error_code
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 198
    functionsReached:
    - socks_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(socks_error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: libtorrent::socks_category
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & socks_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socks_category
      Src: /src/libtorrent/src/socks5_stream.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - socks_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: libtorrent::socks_error::make_error_code
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 198
    functionsReached:
    - socks_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(socks_error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socks_category
      Src: /src/libtorrent/src/socks5_stream.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - socks_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: libtorrent::socks_error::make_error_code
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 198
    functionsReached:
    - socks_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(socks_error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: libtorrent::socks_category
    functionSourceFile: /src/libtorrent/src/socks5_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & socks_category()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: category
      Src: /src/libtorrent/src/close_reason.cpp:42,1
    - Dst: libtorrent::libtorrent_category
      Src: /src/libtorrent/src/close_reason.cpp:42,1
    - Dst: value
      Src: /src/libtorrent/src/close_reason.cpp:48,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:50,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:51,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:52,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:53,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:54,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:55,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:56,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:57,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:58,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:59,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:60,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:61,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:62,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:63,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:64,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:65,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:66,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:67,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:68,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:69,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:70,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:71,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:72,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:73,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:74,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:75,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:76,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:77,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:78,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:79,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:80,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:81,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:82,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:83,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:84,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:85,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:86,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:87,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:88,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:89,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:90,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:91,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:92,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:93,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:94,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:95,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:96,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:97,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:98,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:99,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:100,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:101,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:102,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:103,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:104,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:105,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:106,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:107,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:108,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:109,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:110,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:111,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:112,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:113,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:114,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:115,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:116,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:117,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:118,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:119,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:120,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:121,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:122,1
    - Dst: category
      Src: /src/libtorrent/src/close_reason.cpp:133,1
    - Dst: boost::asio::error::get_misc_category
      Src: /src/libtorrent/src/close_reason.cpp:133,1
    - Dst: value
      Src: /src/libtorrent/src/close_reason.cpp:135,1
    - Dst: category
      Src: /src/libtorrent/src/close_reason.cpp:141,1
    - Dst: generic_category
      Src: /src/libtorrent/src/close_reason.cpp:141,1
    - Dst: value
      Src: /src/libtorrent/src/close_reason.cpp:143,1
    - Dst: category
      Src: /src/libtorrent/src/close_reason.cpp:160,1
    - Dst: libtorrent::http_category
      Src: /src/libtorrent/src/close_reason.cpp:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 107
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 166
    functionName: libtorrent::error_to_close_reason
    functionSourceFile: /src/libtorrent/src/close_reason.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::error::get_misc_category
    - category
    - generic_category
    - libtorrent::http_category
    - value
    - libtorrent::libtorrent_category
    - TORRENT_MAP
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t error_to_close_reason(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - error
    - ','
    - close_reason
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: TORRENT_MAP
    functionSourceFile: /src/libtorrent/src/close_reason.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_MAP(error, close_reason)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: category
      Src: /src/libtorrent/src/close_reason.cpp:42,1
    - Dst: libtorrent::libtorrent_category
      Src: /src/libtorrent/src/close_reason.cpp:42,1
    - Dst: value
      Src: /src/libtorrent/src/close_reason.cpp:48,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:50,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:51,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:52,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:53,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:54,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:55,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:56,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:57,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:58,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:59,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:60,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:61,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:62,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:63,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:64,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:65,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:66,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:67,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:68,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:69,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:70,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:71,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:72,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:73,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:74,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:75,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:76,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:77,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:78,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:79,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:80,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:81,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:82,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:83,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:84,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:85,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:86,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:87,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:88,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:89,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:90,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:91,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:92,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:93,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:94,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:95,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:96,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:97,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:98,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:99,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:100,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:101,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:102,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:103,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:104,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:105,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:106,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:107,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:108,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:109,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:110,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:111,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:112,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:113,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:114,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:115,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:116,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:117,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:118,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:119,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:120,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:121,1
    - Dst: TORRENT_MAP
      Src: /src/libtorrent/src/close_reason.cpp:122,1
    - Dst: category
      Src: /src/libtorrent/src/close_reason.cpp:133,1
    - Dst: boost::asio::error::get_misc_category
      Src: /src/libtorrent/src/close_reason.cpp:133,1
    - Dst: value
      Src: /src/libtorrent/src/close_reason.cpp:135,1
    - Dst: category
      Src: /src/libtorrent/src/close_reason.cpp:141,1
    - Dst: generic_category
      Src: /src/libtorrent/src/close_reason.cpp:141,1
    - Dst: value
      Src: /src/libtorrent/src/close_reason.cpp:143,1
    - Dst: category
      Src: /src/libtorrent/src/close_reason.cpp:160,1
    - Dst: libtorrent::http_category
      Src: /src/libtorrent/src/close_reason.cpp:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 107
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 166
    functionName: libtorrent::error_to_close_reason
    functionSourceFile: /src/libtorrent/src/close_reason.cpp
    functionUses: 0
    functionsReached:
    - boost::asio::error::get_misc_category
    - category
    - generic_category
    - libtorrent::http_category
    - value
    - libtorrent::libtorrent_category
    - TORRENT_MAP
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t error_to_close_reason(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - error
    - ','
    - close_reason
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: TORRENT_MAP
    functionSourceFile: /src/libtorrent/src/close_reason.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_MAP(error, close_reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/torrent_handle.cpp:97,1
    - Dst: address
      Src: /src/libtorrent/src/torrent_handle.cpp:99,1
    - Dst: address
      Src: /src/libtorrent/src/torrent_handle.cpp:101,1
    - Dst: port
      Src: /src/libtorrent/src/torrent_handle.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: libtorrent::block_info::set_peer
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    - libtorrent::aux::is_v6
    linkageType: ''
    returnType: void
    signature: void block_info::set_peer(tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: address_v6
      Src: /src/libtorrent/src/torrent_handle.cpp:108,1
    - Dst: address_v4
      Src: /src/libtorrent/src/torrent_handle.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: libtorrent::block_info::peer
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint block_info::peer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system_error
      Src: /src/libtorrent/src/torrent_handle.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: libtorrent::throw_invalid_handle
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - system_error
    linkageType: ''
    returnType: void
    signature: void throw_invalid_handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:123,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_handle.cpp:124,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:125,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:125,1
    - Dst: dispatch
      Src: /src/libtorrent/src/torrent_handle.cpp:126,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent_handle.cpp:126,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent_handle.cpp:126,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/torrent_handle.cpp:131,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:131,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent_handle.cpp:134,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/torrent_handle.cpp:134,1
    - Dst: code
      Src: /src/libtorrent/src/torrent_handle.cpp:135,1
    - Dst: what
      Src: /src/libtorrent/src/torrent_handle.cpp:135,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent_handle.cpp:137,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/torrent_handle.cpp:137,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent_handle.cpp:138,1
    - Dst: what
      Src: /src/libtorrent/src/torrent_handle.cpp:138,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent_handle.cpp:140,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/torrent_handle.cpp:140,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent_handle.cpp:141,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: libtorrent::torrent_handle::async_call
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - dispatch
    - std::bind
    - aux::throw_ex<system_error>
    - get_context
    - error_code
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - torrent_handle
    - code
    - lock
    - std::forward<Args>
    - what
    - alerts
    - std::shared_ptr::get
    linkageType: ''
    returnType: void
    signature: void torrent_handle::async_call(Fun f, Args&&... a) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:150,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_handle.cpp:151,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:152,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:152,1
    - Dst: dispatch
      Src: /src/libtorrent/src/torrent_handle.cpp:158,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent_handle.cpp:158,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent_handle.cpp:158,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/torrent_handle.cpp:163,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:163,1
    - Dst: std::current_exception
      Src: /src/libtorrent/src/torrent_handle.cpp:166,1
    - Dst: cond::notify_all
      Src: /src/libtorrent/src/torrent_handle.cpp:171,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:172,1
    - Dst: libtorrent::aux::torrent_wait
      Src: /src/libtorrent/src/torrent_handle.cpp:174,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/src/torrent_handle.cpp:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 176
    functionName: libtorrent::torrent_handle::sync_call
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - dispatch
    - std::bind
    - aux::throw_ex<system_error>
    - get_context
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - cond::notify_all
    - libtorrent::aux::torrent_wait
    - lock
    - std::current_exception
    - std::rethrow_exception
    - std::forward<Args>
    - std::shared_ptr::get
    linkageType: ''
    returnType: void
    signature: void torrent_handle::sync_call(Fun f, Args&&... a) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:181,1
    - Dst: throw_invalid_handle
      Src: /src/libtorrent/src/torrent_handle.cpp:184,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:188,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:188,1
    - Dst: dispatch
      Src: /src/libtorrent/src/torrent_handle.cpp:194,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent_handle.cpp:194,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent_handle.cpp:194,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/torrent_handle.cpp:199,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:199,1
    - Dst: std::current_exception
      Src: /src/libtorrent/src/torrent_handle.cpp:202,1
    - Dst: cond::notify_all
      Src: /src/libtorrent/src/torrent_handle.cpp:207,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:208,1
    - Dst: libtorrent::aux::torrent_wait
      Src: /src/libtorrent/src/torrent_handle.cpp:210,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/src/torrent_handle.cpp:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - def
    - f
    argTypes:
    - Ret
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 214
    functionName: libtorrent::torrent_handle::sync_call_ret
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - dispatch
    - std::bind
    - get_context
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - cond::notify_all
    - libtorrent::aux::torrent_wait
    - throw_invalid_handle
    - lock
    - std::current_exception
    - std::rethrow_exception
    - std::forward<Args>
    - std::shared_ptr::get
    linkageType: ''
    returnType: Ret
    signature: Ret torrent_handle::sync_call_ret(Ret def, Fun f, Args&&... a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:218,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/torrent_handle.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: libtorrent::torrent_handle::info_hash
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::info_hash
    - lock
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash torrent_handle::info_hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:224,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/torrent_handle.cpp:225,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/torrent_handle.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: libtorrent::torrent_handle::info_hashes
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::info_hash
    - lock
    - info_hash_t
    linkageType: ''
    returnType: info_hash_t
    signature: info_hash_t torrent_handle::info_hashes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: libtorrent::torrent_handle::max_uploads
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int torrent_handle::max_uploads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:235,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - max_uploads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: libtorrent::torrent_handle::set_max_uploads
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_max_uploads(int max_uploads) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: libtorrent::torrent_handle::max_connections
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int torrent_handle::max_connections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:246,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - max_connections
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: libtorrent::torrent_handle::set_max_connections
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_max_connections(int max_connections) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:252,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: libtorrent::torrent_handle::set_upload_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_upload_limit(int limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: libtorrent::torrent_handle::upload_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int torrent_handle::upload_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:263,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: libtorrent::torrent_handle::set_download_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_download_limit(int limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: libtorrent::torrent_handle::download_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int torrent_handle::download_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' save_path'
    - flags
    argTypes:
    - std::string
    - move_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: libtorrent::torrent_handle::move_storage
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::move_storage(std::string const& save_path, move_flags_t
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:281,1
    - Dst: static_cast<move_flags_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' save_path'
    - flags
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: libtorrent::torrent_handle::move_storage
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<move_flags_t>
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::move_storage(\n\t\tstd::string const& save_path,
      int const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' new_name'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: libtorrent::torrent_handle::rename_file
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::rename_file(file_index_t index, std::string const&
      new_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:295,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:297,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' ext'
    - userdata
    argTypes:
    - std::function<std::shared_ptr<torrent_plugin>(torrent_handle const&, client_data_t)>
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: libtorrent::torrent_handle::add_extension
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::add_extension(\n\t\tstd::function<std::shared_ptr<torrent_plugin>(torrent_handle
      const&, client_data_t)> const& ext\n\t\t, client_data_t userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: libtorrent::torrent_handle::set_metadata
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::set_metadata(span<char const> metadata) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - pause_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: libtorrent::torrent_handle::pause
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::pause(pause_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: libtorrent::torrent_handle::flags
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: torrent_flags_t
    signature: torrent_flags_t torrent_handle::flags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - flags
    - mask
    argTypes:
    - torrent_flags_t
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: libtorrent::torrent_handle::set_flags
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_flags(torrent_flags_t const flags\n\t\t,
      torrent_flags_t const mask) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: libtorrent::torrent_handle::set_flags
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_flags(torrent_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: libtorrent::torrent_handle::unset_flags
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::unset_flags(torrent_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: libtorrent::torrent_handle::stop_when_ready
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::stop_when_ready(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: libtorrent::torrent_handle::set_upload_mode
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_upload_mode(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:342,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: libtorrent::torrent_handle::set_share_mode
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_share_mode(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: libtorrent::torrent_handle::apply_ip_filter
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::apply_ip_filter(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: libtorrent::torrent_handle::auto_managed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::auto_managed(bool m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    functionName: libtorrent::torrent_handle::set_pinned
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_pinned(bool) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sd
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: libtorrent::torrent_handle::set_sequential_download
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_sequential_download(bool sd) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: libtorrent::torrent_handle::flush_cache
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::flush_cache() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:372,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:374,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:375,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:376,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' certificate'
    - ' private_key'
    - ' dh_params'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 379
    functionName: libtorrent::torrent_handle::set_ssl_certificate
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_ssl_certificate(\n\t\tstd::string const&
      certificate\n\t\t, std::string const& private_key\n\t\t, std::string const&
      dh_params\n\t\t, std::string const& passphrase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:387,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:389,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:390,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' certificate'
    - ' private_key'
    - ' dh_params'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 393
    functionName: libtorrent::torrent_handle::set_ssl_certificate_buffer
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_ssl_certificate_buffer(\n\t\tstd::string
      const& certificate\n\t\t, std::string const& private_key\n\t\t, std::string
      const& dh_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: libtorrent::torrent_handle::save_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::save_resume_data(resume_data_flags_t f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: libtorrent::torrent_handle::need_save_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::need_save_resume_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: libtorrent::torrent_handle::need_save_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::need_save_resume_data(resume_data_flags_t const
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: libtorrent::torrent_handle::get_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params torrent_handle::get_resume_data(resume_data_flags_t
      const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: libtorrent::torrent_handle::force_recheck
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::force_recheck() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: libtorrent::torrent_handle::resume
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::resume() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: libtorrent::torrent_handle::queue_position
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: queue_position_t
    signature: queue_position_t torrent_handle::queue_position() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: libtorrent::torrent_handle::queue_position_up
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_up() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 446
    functionName: libtorrent::torrent_handle::queue_position_down
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_down() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:450,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - queue_position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: libtorrent::torrent_handle::queue_position_set
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_set(queue_position_t const p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: libtorrent::torrent_handle::queue_position_top
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_top() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: libtorrent::torrent_handle::queue_position_bottom
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_bottom() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: libtorrent::torrent_handle::clear_error
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::clear_error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: libtorrent::torrent_handle::set_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_priority(int const p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' password'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: libtorrent::torrent_handle::set_tracker_login
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_tracker_login(std::string const& name\n\t\t,
      std::string const& password) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<aux::vector<std::int64_t, file_index_t>&>
      Src: /src/libtorrent/src/torrent_handle.cpp:485,1
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:486,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' progress'
    - flags
    argTypes:
    - std::vector<std::int64_t>
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: libtorrent::torrent_handle::file_progress
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::ref
    - static_cast<aux::vector<std::int64_t, file_index_t>&>
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::file_progress(std::vector<std::int64_t>& progress,
      file_progress_flags_t flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:492,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:492,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/torrent_handle.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: libtorrent::torrent_handle::file_progress
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_RVO
    - std::ref
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: std::vector<std::int64_t>
    signature: std::vector<std::int64_t> torrent_handle::file_progress(file_progress_flags_t
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: libtorrent::torrent_handle::post_file_progress
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_file_progress(file_progress_flags_t const
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: libtorrent::torrent_handle::status
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: torrent_status
    signature: torrent_status torrent_handle::status(status_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: libtorrent::torrent_handle::post_status
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_status(status_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: libtorrent::torrent_handle::post_piece_availability
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_piece_availability() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<aux::vector<int, piece_index_t>&>
      Src: /src/libtorrent/src/torrent_handle.cpp:520,1
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:521,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avail'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: libtorrent::torrent_handle::piece_availability
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::ref
    - static_cast<aux::vector<int, piece_index_t>&>
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::piece_availability(std::vector<int>& avail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - priority
    argTypes:
    - piece_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: libtorrent::torrent_handle::piece_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::piece_priority(piece_index_t index, download_priority_t
      priority) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: libtorrent::torrent_handle::piece_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t torrent_handle::piece_priority(piece_index_t index)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:536,1
    - Dst: static_cast<aux::vector<download_priority_t, piece_index_t> const&>
      Src: /src/libtorrent/src/torrent_handle.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<download_priority_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: libtorrent::torrent_handle::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<aux::vector<download_priority_t, piece_index_t> const&>
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_pieces(std::vector<download_priority_t>
      const& pieces) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - "std::vector<std::pair<piece_index_t\n\t\t, download_priority_t>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: libtorrent::torrent_handle::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::prioritize_pieces(std::vector<std::pair<piece_index_t\n\t\t,
      download_priority_t>> const& pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:550,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/torrent_handle.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 552
    functionName: libtorrent::torrent_handle::get_piece_priorities
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_RVO
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: std::vector<download_priority_t>
    signature: std::vector<download_priority_t> torrent_handle::get_piece_priorities()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:558,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_handle.cpp:558,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/torrent_handle.cpp:560,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/torrent_handle.cpp:560,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:560,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 563
    functionName: libtorrent::torrent_handle::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - download_priority_t
    - aux::vector::push_back
    - aux::vector::reserve
    - static_cast<std::uint8_t>
    - size
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_pieces(std::vector<int> const& pieces)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:568,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_handle.cpp:568,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:569,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_handle.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<std::pair<piece_index_t, int>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: libtorrent::torrent_handle::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::vector::reserve
    - std::move
    - size
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_pieces(std::vector<std::pair<piece_index_t,
      int>> const& pieces) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:576,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:578,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/torrent_handle.cpp:578,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent_handle.cpp:580,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 582
    functionName: libtorrent::torrent_handle::piece_priorities
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - libtorrent::torrent_handle::sync_call
    - std::vector::reserve
    - static_cast<std::uint8_t>
    - aux::vector::size
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> torrent_handle::piece_priorities() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - priority
    argTypes:
    - file_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: libtorrent::torrent_handle::file_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::file_priority(file_index_t index, download_priority_t
      priority) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: libtorrent::torrent_handle::file_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t torrent_handle::file_priority(file_index_t index)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:598,1
    - Dst: static_cast<aux::vector<download_priority_t, file_index_t> const&>
      Src: /src/libtorrent/src/torrent_handle.cpp:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' files'
    argTypes:
    - std::vector<download_priority_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 600
    functionName: libtorrent::torrent_handle::prioritize_files
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<aux::vector<download_priority_t, file_index_t> const&>
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_files(std::vector<download_priority_t>
      const& files) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:606,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/torrent_handle.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: libtorrent::torrent_handle::get_file_priorities
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_RVO
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: std::vector<download_priority_t>
    signature: std::vector<download_priority_t> torrent_handle::get_file_priorities()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:617,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_handle.cpp:617,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/torrent_handle.cpp:619,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/torrent_handle.cpp:619,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:619,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' files'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 622
    functionName: libtorrent::torrent_handle::prioritize_files
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - download_priority_t
    - aux::vector::push_back
    - aux::vector::reserve
    - static_cast<std::uint8_t>
    - size
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_files(std::vector<int> const& files)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:628,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:630,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/torrent_handle.cpp:630,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent_handle.cpp:632,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 634
    functionName: libtorrent::torrent_handle::file_priorities
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - libtorrent::torrent_handle::sync_call
    - std::vector::reserve
    - static_cast<std::uint8_t>
    - aux::vector::size
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> torrent_handle::file_priorities() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 637
    functionName: libtorrent::torrent_handle::get_peer_upload_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int torrent_handle::get_peer_upload_limit(tcp::endpoint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: libtorrent::torrent_handle::get_peer_download_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int torrent_handle::get_peer_download_limit(tcp::endpoint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: libtorrent::torrent_handle::set_peer_upload_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_peer_upload_limit(tcp::endpoint, int /* limit
      */) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 640
    functionName: libtorrent::torrent_handle::set_peer_download_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_peer_download_limit(tcp::endpoint, int /*
      limit */) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: libtorrent::torrent_handle::set_ratio
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_ratio(float) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:644,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_handle.cpp:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - net_interface
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: libtorrent::torrent_handle::use_interface
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::use_interface(const char* net_interface) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<aux::vector<float, file_index_t>&>
      Src: /src/libtorrent/src/torrent_handle.cpp:650,1
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:651,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' progress'
    argTypes:
    - std::vector<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: libtorrent::torrent_handle::file_progress
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<aux::vector<float, file_index_t>&>
    - std::ref
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::file_progress(std::vector<float>& progress) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 656
    functionName: libtorrent::torrent_handle::is_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 659
    functionName: libtorrent::torrent_handle::is_finished
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 662
    functionName: libtorrent::torrent_handle::is_paused
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_paused() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 665
    functionName: libtorrent::torrent_handle::is_sequential_download
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_sequential_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: libtorrent::torrent_handle::is_auto_managed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_auto_managed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 671
    functionName: libtorrent::torrent_handle::has_metadata
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 680
    functionName: libtorrent::torrent_handle::super_seeding
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::super_seeding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 689
    functionName: libtorrent::torrent_handle::trackers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::vector<announce_entry>
    signature: std::vector<announce_entry> torrent_handle::trackers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: libtorrent::torrent_handle::post_trackers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_trackers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:698,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_handle.cpp:699,1
    - Dst: web_seed_entry::headers_t
      Src: /src/libtorrent/src/torrent_handle.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 700
    functionName: libtorrent::torrent_handle::add_url_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - web_seed_entry::headers_t
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::add_url_seed(std::string const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: libtorrent::torrent_handle::remove_url_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::remove_url_seed(std::string const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 711
    functionName: libtorrent::torrent_handle::url_seeds
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> torrent_handle::url_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:715,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_handle.cpp:716,1
    - Dst: web_seed_entry::headers_t
      Src: /src/libtorrent/src/torrent_handle.cpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 717
    functionName: libtorrent::torrent_handle::add_http_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - web_seed_entry::headers_t
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::add_http_seed(std::string const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: libtorrent::torrent_handle::remove_http_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::remove_http_seed(std::string const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: libtorrent::torrent_handle::http_seeds
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> torrent_handle::http_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' urls'
    argTypes:
    - std::vector<announce_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: libtorrent::torrent_handle::replace_trackers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::replace_trackers(\n\t\tstd::vector<announce_entry>
      const& urls) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 739
    functionName: libtorrent::torrent_handle::add_tracker
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::add_tracker(announce_entry const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - piece
    - data
    - flags
    argTypes:
    - piece_index_t
    - char*
    - add_piece_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 744
    functionName: libtorrent::torrent_handle::add_piece
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::add_piece(piece_index_t piece, char const* data,
      add_piece_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:749,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_handle.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - piece
    - data
    - flags
    argTypes:
    - piece_index_t
    - std::vector<char>
    - add_piece_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 750
    functionName: libtorrent::torrent_handle::add_piece
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::add_piece(piece_index_t piece, std::vector<char>
      data\n\t\t, add_piece_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: libtorrent::torrent_handle::read_piece
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::read_piece(piece_index_t piece) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: libtorrent::torrent_handle::have_piece
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::have_piece(piece_index_t piece) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/libtorrent/src/torrent_handle.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 765
    functionName: libtorrent::torrent_handle::is_valid
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - expired
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:769,1
    - Dst: std::shared_ptr<const torrent_info>
      Src: /src/libtorrent/src/torrent_handle.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: libtorrent::torrent_handle::torrent_file
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    - std::shared_ptr<const torrent_info>
    linkageType: ''
    returnType: std::shared_ptr<const torrent_info>
    signature: std::shared_ptr<const torrent_info> torrent_handle::torrent_file()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:775,1
    - Dst: std::shared_ptr<torrent_info>
      Src: /src/libtorrent/src/torrent_handle.cpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: libtorrent::torrent_handle::torrent_file_with_hashes
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<torrent_info>
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> torrent_handle::torrent_file_with_hashes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 783
    functionName: libtorrent::torrent_handle::piece_layers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::vector<std::vector<sha256_hash>>
    signature: std::vector<std::vector<sha256_hash>> torrent_handle::piece_layers()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent_handle.cpp:795,1
    - Dst: aux::array::end_index
      Src: /src/libtorrent/src/torrent_handle.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 801
    functionName: '& torrent_handle::get_torrent_info() const'
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - aux::array::end_index
    - torrent_file
    linkageType: ''
    returnType: torrent_info
    signature: torrent_info & torrent_handle::get_torrent_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:806,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:806,1
    - Dst: libtorrent::write_resume_data
      Src: /src/libtorrent/src/torrent_handle.cpp:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 3
    functionLinenumber: 803
    functionLinenumberEnd: 808
    functionName: libtorrent::torrent_handle::write_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::write_resume_data
    - std::ref
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: entry
    signature: entry torrent_handle::write_resume_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: libtorrent::torrent_handle::save_path
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_handle::save_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 818
    functionName: libtorrent::torrent_handle::name
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_handle::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' adr'
    - source
    - flags
    argTypes:
    - tcp::endpoint
    - peer_source_flags_t
    - pex_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: libtorrent::torrent_handle::connect_peer
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::connect_peer(tcp::endpoint const& adr\n\t\t,
      peer_source_flags_t const source, pex_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 831
    functionName: libtorrent::torrent_handle::clear_peers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::clear_peers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:837,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent_handle.cpp:837,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent_handle.cpp:838,1
    - Dst: boost::posix_time::time_duration::total_seconds
      Src: /src/libtorrent/src/torrent_handle.cpp:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duration
    argTypes:
    - boost::posix_time::time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 839
    functionName: libtorrent::torrent_handle::force_reannounce
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - boost::posix_time::time_duration::total_seconds
    - seconds
    - libtorrent::aux::time_now
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::force_reannounce(\n\t\tboost::posix_time::time_duration
      duration) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/torrent_handle.cpp:843,1
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:845,1
    - Dst: std::shared_ptr::has_storage
      Src: /src/libtorrent/src/torrent_handle.cpp:846,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:847,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:847,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent_handle.cpp:848,1
    - Dst: std::shared_ptr::storage
      Src: /src/libtorrent/src/torrent_handle.cpp:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' status'
    argTypes:
    - std::vector<open_file_state>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 849
    functionName: libtorrent::torrent_handle::file_status
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::has_storage
    - disk_thread
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - std::shared_ptr::storage
    - lock
    - clear
    linkageType: ''
    returnType: void
    signature: void torrent_handle::file_status(std::vector<open_file_state>& status)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 857
    functionName: libtorrent::torrent_handle::force_dht_announce
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::force_dht_announce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 862
    functionName: libtorrent::torrent_handle::force_lsd_announce
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::force_lsd_announce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:866,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent_handle.cpp:866,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent_handle.cpp:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - flags
    argTypes:
    - int
    - int
    - reannounce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 867
    functionName: libtorrent::torrent_handle::force_reannounce
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - seconds
    - libtorrent::aux::time_now
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::force_reannounce(int s, int idx, reannounce_flags_t
      const flags) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:871,1
    - Dst: std::shared_ptr::has_storage
      Src: /src/libtorrent/src/torrent_handle.cpp:872,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:873,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:873,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent_handle.cpp:874,1
    - Dst: std::shared_ptr::storage
      Src: /src/libtorrent/src/torrent_handle.cpp:874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 875
    functionName: libtorrent::torrent_handle::file_status
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::has_storage
    - disk_thread
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - std::shared_ptr::storage
    - lock
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> torrent_handle::file_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 880
    functionName: libtorrent::torrent_handle::scrape_tracker
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::scrape_tracker(int idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:885,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - 'on'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 889
    functionName: libtorrent::torrent_handle::super_seeding
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void torrent_handle::super_seeding(bool on) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<peer_list_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: libtorrent::torrent_handle::get_full_peer_list
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::get_full_peer_list(std::vector<peer_list_entry>&
      v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<peer_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 898
    functionDepth: 3
    functionLinenumber: 898
    functionLinenumberEnd: 902
    functionName: libtorrent::torrent_handle::get_peer_info
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::get_peer_info(std::vector<peer_info>& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 907
    functionName: libtorrent::torrent_handle::post_peer_info
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_peer_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' queue'
    argTypes:
    - std::vector<partial_piece_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: libtorrent::torrent_handle::get_download_queue
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::get_download_queue(std::vector<partial_piece_info>&
      queue) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 920
    functionName: libtorrent::torrent_handle::get_download_queue
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: std::vector<partial_piece_info>
    signature: std::vector<partial_piece_info> torrent_handle::get_download_queue()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 925
    functionName: libtorrent::torrent_handle::post_download_queue
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_download_queue() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:931,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:933,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - index
    - deadline
    - flags
    argTypes:
    - piece_index_t
    - int
    - deadline_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 937
    functionName: libtorrent::torrent_handle::set_piece_deadline
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_piece_deadline(piece_index_t index, int deadline\n\t\t,
      deadline_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:942,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 946
    functionName: libtorrent::torrent_handle::reset_piece_deadline
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::reset_piece_deadline(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 953
    functionName: libtorrent::torrent_handle::clear_piece_deadlines
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::clear_piece_deadlines() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: libtorrent::torrent_handle::native_handle
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: std::shared_ptr<torrent>
    signature: std::shared_ptr<torrent> torrent_handle::native_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_handle.cpp:964,1
    - Dst: reinterpret_cast<void* const*>
      Src: /src/libtorrent/src/torrent_handle.cpp:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 965
    functionName: libtorrent::hash_value
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - reinterpret_cast<void* const*>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t hash_value(torrent_handle const& th)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:969,1
    - Dst: std::shared_ptr::get_userdata
      Src: /src/libtorrent/src/torrent_handle.cpp:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: libtorrent::torrent_handle::userdata
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::get_userdata
    - lock
    linkageType: ''
    returnType: client_data_t
    signature: client_data_t torrent_handle::userdata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 974
    functionName: libtorrent::torrent_handle::in_session
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::in_session() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/torrent_handle.cpp:97,1
    - Dst: address
      Src: /src/libtorrent/src/torrent_handle.cpp:99,1
    - Dst: address
      Src: /src/libtorrent/src/torrent_handle.cpp:101,1
    - Dst: port
      Src: /src/libtorrent/src/torrent_handle.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: libtorrent::block_info::set_peer
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    - libtorrent::aux::is_v6
    linkageType: ''
    returnType: void
    signature: void block_info::set_peer(tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: address_v6
      Src: /src/libtorrent/src/torrent_handle.cpp:108,1
    - Dst: address_v4
      Src: /src/libtorrent/src/torrent_handle.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: libtorrent::block_info::peer
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint block_info::peer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system_error
      Src: /src/libtorrent/src/torrent_handle.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: libtorrent::throw_invalid_handle
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - system_error
    linkageType: ''
    returnType: void
    signature: void throw_invalid_handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:123,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_handle.cpp:124,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:125,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:125,1
    - Dst: dispatch
      Src: /src/libtorrent/src/torrent_handle.cpp:126,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent_handle.cpp:126,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent_handle.cpp:126,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/torrent_handle.cpp:131,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:131,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent_handle.cpp:134,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/torrent_handle.cpp:134,1
    - Dst: code
      Src: /src/libtorrent/src/torrent_handle.cpp:135,1
    - Dst: what
      Src: /src/libtorrent/src/torrent_handle.cpp:135,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent_handle.cpp:137,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/torrent_handle.cpp:137,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent_handle.cpp:138,1
    - Dst: what
      Src: /src/libtorrent/src/torrent_handle.cpp:138,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent_handle.cpp:140,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/torrent_handle.cpp:140,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent_handle.cpp:141,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: libtorrent::torrent_handle::async_call
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 66
    functionsReached:
    - dispatch
    - std::bind
    - aux::throw_ex<system_error>
    - get_context
    - error_code
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - torrent_handle
    - code
    - lock
    - std::forward<Args>
    - what
    - alerts
    - std::shared_ptr::get
    linkageType: ''
    returnType: void
    signature: void torrent_handle::async_call(Fun f, Args&&... a) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:150,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_handle.cpp:151,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:152,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:152,1
    - Dst: dispatch
      Src: /src/libtorrent/src/torrent_handle.cpp:158,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent_handle.cpp:158,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent_handle.cpp:158,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/torrent_handle.cpp:163,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:163,1
    - Dst: std::current_exception
      Src: /src/libtorrent/src/torrent_handle.cpp:166,1
    - Dst: cond::notify_all
      Src: /src/libtorrent/src/torrent_handle.cpp:171,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:172,1
    - Dst: libtorrent::aux::torrent_wait
      Src: /src/libtorrent/src/torrent_handle.cpp:174,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/src/torrent_handle.cpp:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 176
    functionName: libtorrent::torrent_handle::sync_call
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 15
    functionsReached:
    - dispatch
    - std::bind
    - aux::throw_ex<system_error>
    - get_context
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - cond::notify_all
    - libtorrent::aux::torrent_wait
    - lock
    - std::current_exception
    - std::rethrow_exception
    - std::forward<Args>
    - std::shared_ptr::get
    linkageType: ''
    returnType: void
    signature: void torrent_handle::sync_call(Fun f, Args&&... a) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:181,1
    - Dst: throw_invalid_handle
      Src: /src/libtorrent/src/torrent_handle.cpp:184,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:188,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:188,1
    - Dst: dispatch
      Src: /src/libtorrent/src/torrent_handle.cpp:194,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent_handle.cpp:194,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent_handle.cpp:194,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/torrent_handle.cpp:199,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:199,1
    - Dst: std::current_exception
      Src: /src/libtorrent/src/torrent_handle.cpp:202,1
    - Dst: cond::notify_all
      Src: /src/libtorrent/src/torrent_handle.cpp:207,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/torrent_handle.cpp:208,1
    - Dst: libtorrent::aux::torrent_wait
      Src: /src/libtorrent/src/torrent_handle.cpp:210,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/src/torrent_handle.cpp:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - def
    - f
    argTypes:
    - Ret
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 214
    functionName: libtorrent::torrent_handle::sync_call_ret
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 29
    functionsReached:
    - dispatch
    - std::bind
    - get_context
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - cond::notify_all
    - libtorrent::aux::torrent_wait
    - throw_invalid_handle
    - lock
    - std::current_exception
    - std::rethrow_exception
    - std::forward<Args>
    - std::shared_ptr::get
    linkageType: ''
    returnType: Ret
    signature: Ret torrent_handle::sync_call_ret(Ret def, Fun f, Args&&... a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:218,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/torrent_handle.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: libtorrent::torrent_handle::info_hash
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::info_hash
    - lock
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash torrent_handle::info_hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:224,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/torrent_handle.cpp:225,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/torrent_handle.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: libtorrent::torrent_handle::info_hashes
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::info_hash
    - lock
    - info_hash_t
    linkageType: ''
    returnType: info_hash_t
    signature: info_hash_t torrent_handle::info_hashes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: libtorrent::torrent_handle::max_uploads
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int torrent_handle::max_uploads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:235,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - max_uploads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: libtorrent::torrent_handle::set_max_uploads
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_max_uploads(int max_uploads) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: libtorrent::torrent_handle::max_connections
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int torrent_handle::max_connections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:246,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - max_connections
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: libtorrent::torrent_handle::set_max_connections
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_max_connections(int max_connections) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:252,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: libtorrent::torrent_handle::set_upload_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_upload_limit(int limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: libtorrent::torrent_handle::upload_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int torrent_handle::upload_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:263,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: libtorrent::torrent_handle::set_download_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_download_limit(int limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: libtorrent::torrent_handle::download_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int torrent_handle::download_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' save_path'
    - flags
    argTypes:
    - std::string
    - move_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: libtorrent::torrent_handle::move_storage
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::move_storage(std::string const& save_path, move_flags_t
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:281,1
    - Dst: static_cast<move_flags_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' save_path'
    - flags
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: libtorrent::torrent_handle::move_storage
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<move_flags_t>
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::move_storage(\n\t\tstd::string const& save_path,
      int const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' new_name'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: libtorrent::torrent_handle::rename_file
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::rename_file(file_index_t index, std::string const&
      new_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:295,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:297,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' ext'
    - userdata
    argTypes:
    - std::function<std::shared_ptr<torrent_plugin>(torrent_handle const&, client_data_t)>
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: libtorrent::torrent_handle::add_extension
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::add_extension(\n\t\tstd::function<std::shared_ptr<torrent_plugin>(torrent_handle
      const&, client_data_t)> const& ext\n\t\t, client_data_t userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: libtorrent::torrent_handle::set_metadata
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::set_metadata(span<char const> metadata) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - pause_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: libtorrent::torrent_handle::pause
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::pause(pause_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: libtorrent::torrent_handle::flags
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: torrent_flags_t
    signature: torrent_flags_t torrent_handle::flags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - flags
    - mask
    argTypes:
    - torrent_flags_t
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: libtorrent::torrent_handle::set_flags
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_flags(torrent_flags_t const flags\n\t\t,
      torrent_flags_t const mask) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: libtorrent::torrent_handle::set_flags
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_flags(torrent_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: libtorrent::torrent_handle::unset_flags
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::unset_flags(torrent_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: libtorrent::torrent_handle::stop_when_ready
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::stop_when_ready(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: libtorrent::torrent_handle::set_upload_mode
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_upload_mode(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:342,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: libtorrent::torrent_handle::set_share_mode
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_share_mode(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: libtorrent::torrent_handle::apply_ip_filter
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::apply_ip_filter(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: libtorrent::torrent_handle::auto_managed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::auto_managed(bool m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    functionName: libtorrent::torrent_handle::set_pinned
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_pinned(bool) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sd
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: libtorrent::torrent_handle::set_sequential_download
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_sequential_download(bool sd) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: libtorrent::torrent_handle::flush_cache
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::flush_cache() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:372,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:374,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:375,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:376,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' certificate'
    - ' private_key'
    - ' dh_params'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 379
    functionName: libtorrent::torrent_handle::set_ssl_certificate
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_ssl_certificate(\n\t\tstd::string const&
      certificate\n\t\t, std::string const& private_key\n\t\t, std::string const&
      dh_params\n\t\t, std::string const& passphrase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:387,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:389,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:390,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' certificate'
    - ' private_key'
    - ' dh_params'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 393
    functionName: libtorrent::torrent_handle::set_ssl_certificate_buffer
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_ssl_certificate_buffer(\n\t\tstd::string
      const& certificate\n\t\t, std::string const& private_key\n\t\t, std::string
      const& dh_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: libtorrent::torrent_handle::save_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::save_resume_data(resume_data_flags_t f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: libtorrent::torrent_handle::need_save_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::need_save_resume_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: libtorrent::torrent_handle::need_save_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::need_save_resume_data(resume_data_flags_t const
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: libtorrent::torrent_handle::get_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params torrent_handle::get_resume_data(resume_data_flags_t
      const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: libtorrent::torrent_handle::force_recheck
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::force_recheck() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: libtorrent::torrent_handle::resume
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::resume() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: libtorrent::torrent_handle::queue_position
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: queue_position_t
    signature: queue_position_t torrent_handle::queue_position() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: libtorrent::torrent_handle::queue_position_up
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_up() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 446
    functionName: libtorrent::torrent_handle::queue_position_down
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_down() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_handle.cpp:450,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - queue_position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: libtorrent::torrent_handle::queue_position_set
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_set(queue_position_t const p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: libtorrent::torrent_handle::queue_position_top
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_top() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: libtorrent::torrent_handle::queue_position_bottom
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::queue_position_bottom() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: libtorrent::torrent_handle::clear_error
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::clear_error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: libtorrent::torrent_handle::set_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_priority(int const p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' password'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: libtorrent::torrent_handle::set_tracker_login
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_tracker_login(std::string const& name\n\t\t,
      std::string const& password) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<aux::vector<std::int64_t, file_index_t>&>
      Src: /src/libtorrent/src/torrent_handle.cpp:485,1
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:486,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' progress'
    - flags
    argTypes:
    - std::vector<std::int64_t>
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: libtorrent::torrent_handle::file_progress
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::ref
    - static_cast<aux::vector<std::int64_t, file_index_t>&>
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::file_progress(std::vector<std::int64_t>& progress,
      file_progress_flags_t flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:492,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:492,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/torrent_handle.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: libtorrent::torrent_handle::file_progress
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_RVO
    - std::ref
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: std::vector<std::int64_t>
    signature: std::vector<std::int64_t> torrent_handle::file_progress(file_progress_flags_t
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: libtorrent::torrent_handle::post_file_progress
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_file_progress(file_progress_flags_t const
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: libtorrent::torrent_handle::status
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: torrent_status
    signature: torrent_status torrent_handle::status(status_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: libtorrent::torrent_handle::post_status
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_status(status_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: libtorrent::torrent_handle::post_piece_availability
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_piece_availability() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<aux::vector<int, piece_index_t>&>
      Src: /src/libtorrent/src/torrent_handle.cpp:520,1
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:521,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avail'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: libtorrent::torrent_handle::piece_availability
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::ref
    - static_cast<aux::vector<int, piece_index_t>&>
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::piece_availability(std::vector<int>& avail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - priority
    argTypes:
    - piece_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: libtorrent::torrent_handle::piece_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::piece_priority(piece_index_t index, download_priority_t
      priority) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: libtorrent::torrent_handle::piece_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t torrent_handle::piece_priority(piece_index_t index)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:536,1
    - Dst: static_cast<aux::vector<download_priority_t, piece_index_t> const&>
      Src: /src/libtorrent/src/torrent_handle.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<download_priority_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: libtorrent::torrent_handle::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<aux::vector<download_priority_t, piece_index_t> const&>
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_pieces(std::vector<download_priority_t>
      const& pieces) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - "std::vector<std::pair<piece_index_t\n\t\t, download_priority_t>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: libtorrent::torrent_handle::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::prioritize_pieces(std::vector<std::pair<piece_index_t\n\t\t,
      download_priority_t>> const& pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:550,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/torrent_handle.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 552
    functionName: libtorrent::torrent_handle::get_piece_priorities
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_RVO
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: std::vector<download_priority_t>
    signature: std::vector<download_priority_t> torrent_handle::get_piece_priorities()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:558,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_handle.cpp:558,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/torrent_handle.cpp:560,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/torrent_handle.cpp:560,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:560,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 563
    functionName: libtorrent::torrent_handle::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - download_priority_t
    - aux::vector::push_back
    - aux::vector::reserve
    - static_cast<std::uint8_t>
    - size
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_pieces(std::vector<int> const& pieces)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:568,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_handle.cpp:568,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:569,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_handle.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<std::pair<piece_index_t, int>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: libtorrent::torrent_handle::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::vector::reserve
    - std::move
    - size
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_pieces(std::vector<std::pair<piece_index_t,
      int>> const& pieces) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:576,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:578,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/torrent_handle.cpp:578,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent_handle.cpp:580,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 582
    functionName: libtorrent::torrent_handle::piece_priorities
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - libtorrent::torrent_handle::sync_call
    - std::vector::reserve
    - static_cast<std::uint8_t>
    - aux::vector::size
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> torrent_handle::piece_priorities() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - priority
    argTypes:
    - file_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: libtorrent::torrent_handle::file_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::file_priority(file_index_t index, download_priority_t
      priority) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: libtorrent::torrent_handle::file_priority
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t torrent_handle::file_priority(file_index_t index)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:598,1
    - Dst: static_cast<aux::vector<download_priority_t, file_index_t> const&>
      Src: /src/libtorrent/src/torrent_handle.cpp:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' files'
    argTypes:
    - std::vector<download_priority_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 600
    functionName: libtorrent::torrent_handle::prioritize_files
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<aux::vector<download_priority_t, file_index_t> const&>
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_files(std::vector<download_priority_t>
      const& files) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:606,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/torrent_handle.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: libtorrent::torrent_handle::get_file_priorities
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_RVO
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: std::vector<download_priority_t>
    signature: std::vector<download_priority_t> torrent_handle::get_file_priorities()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:617,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_handle.cpp:617,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/torrent_handle.cpp:619,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/torrent_handle.cpp:619,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:619,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' files'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 622
    functionName: libtorrent::torrent_handle::prioritize_files
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - download_priority_t
    - aux::vector::push_back
    - aux::vector::reserve
    - static_cast<std::uint8_t>
    - size
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::prioritize_files(std::vector<int> const& files)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:628,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_handle.cpp:630,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/torrent_handle.cpp:630,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent_handle.cpp:632,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_handle.cpp:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 634
    functionName: libtorrent::torrent_handle::file_priorities
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - libtorrent::torrent_handle::sync_call
    - std::vector::reserve
    - static_cast<std::uint8_t>
    - aux::vector::size
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> torrent_handle::file_priorities() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 637
    functionName: libtorrent::torrent_handle::get_peer_upload_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int torrent_handle::get_peer_upload_limit(tcp::endpoint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: libtorrent::torrent_handle::get_peer_download_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int torrent_handle::get_peer_download_limit(tcp::endpoint) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: libtorrent::torrent_handle::set_peer_upload_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_peer_upload_limit(tcp::endpoint, int /* limit
      */) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 640
    functionName: libtorrent::torrent_handle::set_peer_download_limit
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_peer_download_limit(tcp::endpoint, int /*
      limit */) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: libtorrent::torrent_handle::set_ratio
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle::set_ratio(float) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:644,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_handle.cpp:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - net_interface
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: libtorrent::torrent_handle::use_interface
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::use_interface(const char* net_interface) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<aux::vector<float, file_index_t>&>
      Src: /src/libtorrent/src/torrent_handle.cpp:650,1
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:651,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' progress'
    argTypes:
    - std::vector<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: libtorrent::torrent_handle::file_progress
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - static_cast<aux::vector<float, file_index_t>&>
    - std::ref
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::file_progress(std::vector<float>& progress) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 656
    functionName: libtorrent::torrent_handle::is_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 659
    functionName: libtorrent::torrent_handle::is_finished
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 662
    functionName: libtorrent::torrent_handle::is_paused
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_paused() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 665
    functionName: libtorrent::torrent_handle::is_sequential_download
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_sequential_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: libtorrent::torrent_handle::is_auto_managed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_auto_managed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 671
    functionName: libtorrent::torrent_handle::has_metadata
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 680
    functionName: libtorrent::torrent_handle::super_seeding
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::super_seeding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 689
    functionName: libtorrent::torrent_handle::trackers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::vector<announce_entry>
    signature: std::vector<announce_entry> torrent_handle::trackers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: libtorrent::torrent_handle::post_trackers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_trackers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:698,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_handle.cpp:699,1
    - Dst: web_seed_entry::headers_t
      Src: /src/libtorrent/src/torrent_handle.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 700
    functionName: libtorrent::torrent_handle::add_url_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - web_seed_entry::headers_t
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::add_url_seed(std::string const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: libtorrent::torrent_handle::remove_url_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::remove_url_seed(std::string const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 711
    functionName: libtorrent::torrent_handle::url_seeds
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> torrent_handle::url_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:715,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_handle.cpp:716,1
    - Dst: web_seed_entry::headers_t
      Src: /src/libtorrent/src/torrent_handle.cpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 717
    functionName: libtorrent::torrent_handle::add_http_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - web_seed_entry::headers_t
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::add_http_seed(std::string const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: libtorrent::torrent_handle::remove_http_seed
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::remove_http_seed(std::string const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: libtorrent::torrent_handle::http_seeds
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> torrent_handle::http_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' urls'
    argTypes:
    - std::vector<announce_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: libtorrent::torrent_handle::replace_trackers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::replace_trackers(\n\t\tstd::vector<announce_entry>
      const& urls) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 739
    functionName: libtorrent::torrent_handle::add_tracker
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::add_tracker(announce_entry const& url) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - piece
    - data
    - flags
    argTypes:
    - piece_index_t
    - char*
    - add_piece_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 744
    functionName: libtorrent::torrent_handle::add_piece
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::add_piece(piece_index_t piece, char const* data,
      add_piece_flags_t const flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:749,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_handle.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - piece
    - data
    - flags
    argTypes:
    - piece_index_t
    - std::vector<char>
    - add_piece_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 750
    functionName: libtorrent::torrent_handle::add_piece
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::add_piece(piece_index_t piece, std::vector<char>
      data\n\t\t, add_piece_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: libtorrent::torrent_handle::read_piece
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::read_piece(piece_index_t piece) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: libtorrent::torrent_handle::have_piece
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::have_piece(piece_index_t piece) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/libtorrent/src/torrent_handle.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 765
    functionName: libtorrent::torrent_handle::is_valid
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - expired
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:769,1
    - Dst: std::shared_ptr<const torrent_info>
      Src: /src/libtorrent/src/torrent_handle.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: libtorrent::torrent_handle::torrent_file
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    - std::shared_ptr<const torrent_info>
    linkageType: ''
    returnType: std::shared_ptr<const torrent_info>
    signature: std::shared_ptr<const torrent_info> torrent_handle::torrent_file()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:775,1
    - Dst: std::shared_ptr<torrent_info>
      Src: /src/libtorrent/src/torrent_handle.cpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: libtorrent::torrent_handle::torrent_file_with_hashes
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<torrent_info>
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> torrent_handle::torrent_file_with_hashes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 783
    functionName: libtorrent::torrent_handle::piece_layers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::vector<std::vector<sha256_hash>>
    signature: std::vector<std::vector<sha256_hash>> torrent_handle::piece_layers()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent_handle.cpp:795,1
    - Dst: aux::array::end_index
      Src: /src/libtorrent/src/torrent_handle.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 801
    functionName: '& torrent_handle::get_torrent_info() const'
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - aux::array::end_index
    - torrent_file
    linkageType: ''
    returnType: torrent_info
    signature: torrent_info & torrent_handle::get_torrent_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:806,1
    - Dst: std::ref
      Src: /src/libtorrent/src/torrent_handle.cpp:806,1
    - Dst: libtorrent::write_resume_data
      Src: /src/libtorrent/src/torrent_handle.cpp:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 3
    functionLinenumber: 803
    functionLinenumberEnd: 808
    functionName: libtorrent::torrent_handle::write_resume_data
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::write_resume_data
    - std::ref
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: entry
    signature: entry torrent_handle::write_resume_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: libtorrent::torrent_handle::save_path
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_handle::save_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 818
    functionName: libtorrent::torrent_handle::name
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_handle::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' adr'
    - source
    - flags
    argTypes:
    - tcp::endpoint
    - peer_source_flags_t
    - pex_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: libtorrent::torrent_handle::connect_peer
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::connect_peer(tcp::endpoint const& adr\n\t\t,
      peer_source_flags_t const source, pex_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 831
    functionName: libtorrent::torrent_handle::clear_peers
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::clear_peers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:837,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent_handle.cpp:837,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent_handle.cpp:838,1
    - Dst: boost::posix_time::time_duration::total_seconds
      Src: /src/libtorrent/src/torrent_handle.cpp:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duration
    argTypes:
    - boost::posix_time::time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 839
    functionName: libtorrent::torrent_handle::force_reannounce
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - boost::posix_time::time_duration::total_seconds
    - seconds
    - libtorrent::aux::time_now
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::force_reannounce(\n\t\tboost::posix_time::time_duration
      duration) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/torrent_handle.cpp:843,1
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:845,1
    - Dst: std::shared_ptr::has_storage
      Src: /src/libtorrent/src/torrent_handle.cpp:846,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:847,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:847,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent_handle.cpp:848,1
    - Dst: std::shared_ptr::storage
      Src: /src/libtorrent/src/torrent_handle.cpp:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' status'
    argTypes:
    - std::vector<open_file_state>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 849
    functionName: libtorrent::torrent_handle::file_status
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::has_storage
    - disk_thread
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - std::shared_ptr::storage
    - lock
    - clear
    linkageType: ''
    returnType: void
    signature: void torrent_handle::file_status(std::vector<open_file_state>& status)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 857
    functionName: libtorrent::torrent_handle::force_dht_announce
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::force_dht_announce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 862
    functionName: libtorrent::torrent_handle::force_lsd_announce
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::force_lsd_announce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:866,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent_handle.cpp:866,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent_handle.cpp:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - flags
    argTypes:
    - int
    - int
    - reannounce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 867
    functionName: libtorrent::torrent_handle::force_reannounce
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - seconds
    - libtorrent::aux::time_now
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::force_reannounce(int s, int idx, reannounce_flags_t
      const flags) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:871,1
    - Dst: std::shared_ptr::has_storage
      Src: /src/libtorrent/src/torrent_handle.cpp:872,1
    - Dst: static_cast<session_impl&>
      Src: /src/libtorrent/src/torrent_handle.cpp:873,1
    - Dst: std::shared_ptr::session
      Src: /src/libtorrent/src/torrent_handle.cpp:873,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent_handle.cpp:874,1
    - Dst: std::shared_ptr::storage
      Src: /src/libtorrent/src/torrent_handle.cpp:874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 875
    functionName: libtorrent::torrent_handle::file_status
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::has_storage
    - disk_thread
    - static_cast<session_impl&>
    - std::shared_ptr::session
    - std::shared_ptr::storage
    - lock
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> torrent_handle::file_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 880
    functionName: libtorrent::torrent_handle::scrape_tracker
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::scrape_tracker(int idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:885,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - 'on'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 889
    functionName: libtorrent::torrent_handle::super_seeding
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void torrent_handle::super_seeding(bool on) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<peer_list_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: libtorrent::torrent_handle::get_full_peer_list
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::get_full_peer_list(std::vector<peer_list_entry>&
      v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<peer_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 898
    functionDepth: 3
    functionLinenumber: 898
    functionLinenumberEnd: 902
    functionName: libtorrent::torrent_handle::get_peer_info
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::get_peer_info(std::vector<peer_info>& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 907
    functionName: libtorrent::torrent_handle::post_peer_info
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_peer_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' queue'
    argTypes:
    - std::vector<partial_piece_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: libtorrent::torrent_handle::get_download_queue
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::get_download_queue(std::vector<partial_piece_info>&
      queue) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call
      Src: /src/libtorrent/src/torrent_handle.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 920
    functionName: libtorrent::torrent_handle::get_download_queue
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call
    linkageType: ''
    returnType: std::vector<partial_piece_info>
    signature: std::vector<partial_piece_info> torrent_handle::get_download_queue()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 925
    functionName: libtorrent::torrent_handle::post_download_queue
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::post_download_queue() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:931,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:933,1
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - index
    - deadline
    - flags
    argTypes:
    - piece_index_t
    - int
    - deadline_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 937
    functionName: libtorrent::torrent_handle::set_piece_deadline
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: "void torrent_handle::set_piece_deadline(piece_index_t index, int deadline\n\t\t,
      deadline_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:942,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent_handle.cpp:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 946
    functionName: libtorrent::torrent_handle::reset_piece_deadline
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::reset_piece_deadline(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::async_call
      Src: /src/libtorrent/src/torrent_handle.cpp:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 953
    functionName: libtorrent::torrent_handle::clear_piece_deadlines
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::async_call
    linkageType: ''
    returnType: void
    signature: void torrent_handle::clear_piece_deadlines() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: libtorrent::torrent_handle::native_handle
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: std::shared_ptr<torrent>
    signature: std::shared_ptr<torrent> torrent_handle::native_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_handle.cpp:964,1
    - Dst: reinterpret_cast<void* const*>
      Src: /src/libtorrent/src/torrent_handle.cpp:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 965
    functionName: libtorrent::hash_value
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - reinterpret_cast<void* const*>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t hash_value(torrent_handle const& th)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/torrent_handle.cpp:969,1
    - Dst: std::shared_ptr::get_userdata
      Src: /src/libtorrent/src/torrent_handle.cpp:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: libtorrent::torrent_handle::userdata
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::get_userdata
    - lock
    linkageType: ''
    returnType: client_data_t
    signature: client_data_t torrent_handle::userdata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_handle::sync_call_ret
      Src: /src/libtorrent/src/torrent_handle.cpp:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 974
    functionName: libtorrent::torrent_handle::in_session
    functionSourceFile: /src/libtorrent/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool torrent_handle::in_session() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:41,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:42,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:42,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:44,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:44,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::length
      Src: /src/libtorrent/src/stack_allocator.cpp:46,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: libtorrent::aux::stack_allocator::copy_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - std::memcpy
    - string_view::data
    - libtorrent::aux::max
    - string_view::size
    - resize
    - size
    - string_view::length
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_string(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:52,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/stack_allocator.cpp:53,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:54,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:56,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:57,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::stack_allocator::copy_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - std::memcpy
    - std::strlen
    - libtorrent::aux::max
    - resize
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_string(char const* str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:64,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:69,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:72,1
    - Dst: va_copy
      Src: /src/libtorrent/src/stack_allocator.cpp:75,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/stack_allocator.cpp:81,1
    - Dst: data
      Src: /src/libtorrent/src/stack_allocator.cpp:81,1
    - Dst: va_end
      Src: /src/libtorrent/src/stack_allocator.cpp:86,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:90,1
    - Dst: libtorrent::aux::stack_allocator::copy_string
      Src: /src/libtorrent/src/stack_allocator.cpp:91,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:93,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:96,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:103,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - fmt
    - v
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::stack_allocator::format_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - libtorrent::aux::stack_allocator::copy_string
    - numeric_cast<std::size_t>
    - va_copy
    - static_cast<std::size_t>
    - libtorrent::aux::max
    - resize
    - va_end
    - std::vsnprintf
    - size
    - data
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::format_string(char const* fmt, va_list
      v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:109,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:110,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/stack_allocator.cpp:110,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:113,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:115,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::stack_allocator::copy_buffer
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - std::memcpy
    - numeric_cast<std::size_t>
    - span<char const>::data
    - libtorrent::aux::max
    - resize
    - span<char const>::size
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_buffer(span<char const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:123,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:124,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:124,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:126,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:126,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: libtorrent::aux::stack_allocator::allocate
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - numeric_cast<std::size_t>
    - static_cast<std::size_t>
    - libtorrent::aux::max
    - resize
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::allocate(int const bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/src/stack_allocator.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: libtorrent::aux::stack_allocator::ptr
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - allocation_slot::is_valid
    - allocation_slot::val
    - size
    linkageType: ''
    returnType: char
    signature: char * stack_allocator::ptr(allocation_slot const idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/src/stack_allocator.cpp:140,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::stack_allocator::ptr
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - allocation_slot::is_valid
    - allocation_slot::val
    - size
    linkageType: ''
    returnType: char
    signature: char * stack_allocator::ptr(allocation_slot const idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::stack_allocator::swap
      Src: /src/libtorrent/src/stack_allocator.cpp:147,1
    - Dst: std::swap
      Src: /src/libtorrent/src/stack_allocator.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - stack_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::stack_allocator::swap
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 1
    functionsReached:
    - std::swap
    - libtorrent::aux::stack_allocator::swap
    linkageType: ''
    returnType: void
    signature: void stack_allocator::swap(stack_allocator& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/stack_allocator.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - generation
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::stack_allocator::reset
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void stack_allocator::reset(std::uint32_t const generation)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:41,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:42,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:42,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:44,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:44,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::length
      Src: /src/libtorrent/src/stack_allocator.cpp:46,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: libtorrent::aux::stack_allocator::copy_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 1
    functionsReached:
    - allocation_slot
    - std::memcpy
    - string_view::data
    - libtorrent::aux::max
    - string_view::size
    - resize
    - size
    - string_view::length
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_string(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:52,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/stack_allocator.cpp:53,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:54,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:56,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:57,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::stack_allocator::copy_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 1
    functionsReached:
    - allocation_slot
    - std::memcpy
    - std::strlen
    - libtorrent::aux::max
    - resize
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_string(char const* str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:64,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:69,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:72,1
    - Dst: va_copy
      Src: /src/libtorrent/src/stack_allocator.cpp:75,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/stack_allocator.cpp:81,1
    - Dst: data
      Src: /src/libtorrent/src/stack_allocator.cpp:81,1
    - Dst: va_end
      Src: /src/libtorrent/src/stack_allocator.cpp:86,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:90,1
    - Dst: libtorrent::aux::stack_allocator::copy_string
      Src: /src/libtorrent/src/stack_allocator.cpp:91,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:93,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:96,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:103,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - fmt
    - v
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::stack_allocator::format_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - libtorrent::aux::stack_allocator::copy_string
    - numeric_cast<std::size_t>
    - va_copy
    - static_cast<std::size_t>
    - libtorrent::aux::max
    - resize
    - va_end
    - std::vsnprintf
    - size
    - data
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::format_string(char const* fmt, va_list
      v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:109,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:110,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/stack_allocator.cpp:110,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:113,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:115,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::stack_allocator::copy_buffer
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - std::memcpy
    - numeric_cast<std::size_t>
    - span<char const>::data
    - libtorrent::aux::max
    - resize
    - span<char const>::size
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_buffer(span<char const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:123,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:124,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:124,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:126,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:126,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: libtorrent::aux::stack_allocator::allocate
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - numeric_cast<std::size_t>
    - static_cast<std::size_t>
    - libtorrent::aux::max
    - resize
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::allocate(int const bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/src/stack_allocator.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: libtorrent::aux::stack_allocator::ptr
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - allocation_slot::is_valid
    - allocation_slot::val
    - size
    linkageType: ''
    returnType: char
    signature: char * stack_allocator::ptr(allocation_slot const idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/src/stack_allocator.cpp:140,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::stack_allocator::ptr
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - allocation_slot::is_valid
    - allocation_slot::val
    - size
    linkageType: ''
    returnType: char
    signature: char * stack_allocator::ptr(allocation_slot const idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::stack_allocator::swap
      Src: /src/libtorrent/src/stack_allocator.cpp:147,1
    - Dst: std::swap
      Src: /src/libtorrent/src/stack_allocator.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - stack_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::stack_allocator::swap
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 2
    functionsReached:
    - std::swap
    - libtorrent::aux::stack_allocator::swap
    linkageType: ''
    returnType: void
    signature: void stack_allocator::swap(stack_allocator& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/stack_allocator.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - generation
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::stack_allocator::reset
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void stack_allocator::reset(std::uint32_t const generation)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:41,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:42,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:42,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:44,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:44,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::length
      Src: /src/libtorrent/src/stack_allocator.cpp:46,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: libtorrent::aux::stack_allocator::copy_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 2
    functionsReached:
    - allocation_slot
    - std::memcpy
    - string_view::data
    - libtorrent::aux::max
    - string_view::size
    - resize
    - size
    - string_view::length
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_string(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:52,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/stack_allocator.cpp:53,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:54,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:56,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:57,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::stack_allocator::copy_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 2
    functionsReached:
    - allocation_slot
    - std::memcpy
    - std::strlen
    - libtorrent::aux::max
    - resize
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_string(char const* str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:64,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:69,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:72,1
    - Dst: va_copy
      Src: /src/libtorrent/src/stack_allocator.cpp:75,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/stack_allocator.cpp:81,1
    - Dst: data
      Src: /src/libtorrent/src/stack_allocator.cpp:81,1
    - Dst: va_end
      Src: /src/libtorrent/src/stack_allocator.cpp:86,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:90,1
    - Dst: libtorrent::aux::stack_allocator::copy_string
      Src: /src/libtorrent/src/stack_allocator.cpp:91,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:93,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:96,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:103,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - fmt
    - v
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::stack_allocator::format_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - libtorrent::aux::stack_allocator::copy_string
    - numeric_cast<std::size_t>
    - va_copy
    - static_cast<std::size_t>
    - libtorrent::aux::max
    - resize
    - va_end
    - std::vsnprintf
    - size
    - data
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::format_string(char const* fmt, va_list
      v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:109,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:110,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/stack_allocator.cpp:110,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:113,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:115,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::stack_allocator::copy_buffer
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - std::memcpy
    - numeric_cast<std::size_t>
    - span<char const>::data
    - libtorrent::aux::max
    - resize
    - span<char const>::size
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_buffer(span<char const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:123,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:124,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:124,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:126,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:126,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: libtorrent::aux::stack_allocator::allocate
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - numeric_cast<std::size_t>
    - static_cast<std::size_t>
    - libtorrent::aux::max
    - resize
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::allocate(int const bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/src/stack_allocator.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: libtorrent::aux::stack_allocator::ptr
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - allocation_slot::is_valid
    - allocation_slot::val
    - size
    linkageType: ''
    returnType: char
    signature: char * stack_allocator::ptr(allocation_slot const idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/src/stack_allocator.cpp:140,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::stack_allocator::ptr
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - allocation_slot::is_valid
    - allocation_slot::val
    - size
    linkageType: ''
    returnType: char
    signature: char * stack_allocator::ptr(allocation_slot const idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::stack_allocator::swap
      Src: /src/libtorrent/src/stack_allocator.cpp:147,1
    - Dst: std::swap
      Src: /src/libtorrent/src/stack_allocator.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - stack_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::stack_allocator::swap
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 3
    functionsReached:
    - std::swap
    - libtorrent::aux::stack_allocator::swap
    linkageType: ''
    returnType: void
    signature: void stack_allocator::swap(stack_allocator& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/stack_allocator.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - generation
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::stack_allocator::reset
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void stack_allocator::reset(std::uint32_t const generation)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:41,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:42,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:42,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:44,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:44,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/stack_allocator.cpp:45,1
    - Dst: string_view::length
      Src: /src/libtorrent/src/stack_allocator.cpp:46,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: libtorrent::aux::stack_allocator::copy_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 3
    functionsReached:
    - allocation_slot
    - std::memcpy
    - string_view::data
    - libtorrent::aux::max
    - string_view::size
    - resize
    - size
    - string_view::length
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_string(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:52,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/stack_allocator.cpp:53,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:54,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:56,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:57,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::stack_allocator::copy_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 3
    functionsReached:
    - allocation_slot
    - std::memcpy
    - std::strlen
    - libtorrent::aux::max
    - resize
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_string(char const* str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:64,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:69,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:72,1
    - Dst: va_copy
      Src: /src/libtorrent/src/stack_allocator.cpp:75,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/stack_allocator.cpp:81,1
    - Dst: data
      Src: /src/libtorrent/src/stack_allocator.cpp:81,1
    - Dst: va_end
      Src: /src/libtorrent/src/stack_allocator.cpp:86,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:90,1
    - Dst: libtorrent::aux::stack_allocator::copy_string
      Src: /src/libtorrent/src/stack_allocator.cpp:91,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:93,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:96,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:103,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - fmt
    - v
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::stack_allocator::format_string
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - libtorrent::aux::stack_allocator::copy_string
    - numeric_cast<std::size_t>
    - va_copy
    - static_cast<std::size_t>
    - libtorrent::aux::max
    - resize
    - va_end
    - std::vsnprintf
    - size
    - data
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::format_string(char const* fmt, va_list
      v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:109,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:110,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/stack_allocator.cpp:110,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:113,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:115,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:116,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::stack_allocator::copy_buffer
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - std::memcpy
    - numeric_cast<std::size_t>
    - span<char const>::data
    - libtorrent::aux::max
    - resize
    - span<char const>::size
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::copy_buffer(span<char const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:123,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/stack_allocator.cpp:124,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:124,1
    - Dst: resize
      Src: /src/libtorrent/src/stack_allocator.cpp:126,1
    - Dst: numeric_cast<std::size_t>
      Src: /src/libtorrent/src/stack_allocator.cpp:126,1
    - Dst: allocation_slot
      Src: /src/libtorrent/src/stack_allocator.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: libtorrent::aux::stack_allocator::allocate
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - allocation_slot
    - numeric_cast<std::size_t>
    - static_cast<std::size_t>
    - libtorrent::aux::max
    - resize
    - size
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot stack_allocator::allocate(int const bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/src/stack_allocator.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:134,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: libtorrent::aux::stack_allocator::ptr
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - allocation_slot::is_valid
    - allocation_slot::val
    - size
    linkageType: ''
    returnType: char
    signature: char * stack_allocator::ptr(allocation_slot const idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocation_slot::is_valid
      Src: /src/libtorrent/src/stack_allocator.cpp:140,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: size
      Src: /src/libtorrent/src/stack_allocator.cpp:141,1
    - Dst: allocation_slot::val
      Src: /src/libtorrent/src/stack_allocator.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::stack_allocator::ptr
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - allocation_slot::is_valid
    - allocation_slot::val
    - size
    linkageType: ''
    returnType: char
    signature: char * stack_allocator::ptr(allocation_slot const idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::stack_allocator::swap
      Src: /src/libtorrent/src/stack_allocator.cpp:147,1
    - Dst: std::swap
      Src: /src/libtorrent/src/stack_allocator.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - stack_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::stack_allocator::swap
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 4
    functionsReached:
    - std::swap
    - libtorrent::aux::stack_allocator::swap
    linkageType: ''
    returnType: void
    signature: void stack_allocator::swap(stack_allocator& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/stack_allocator.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - generation
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::stack_allocator::reset
    functionSourceFile: /src/libtorrent/src/stack_allocator.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void stack_allocator::reset(std::uint32_t const generation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::receive_buffer::max_receive
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int receive_buffer::max_receive() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:52,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:53,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:56,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:58,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:60,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:62,1
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::receive_buffer::reserve
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - std::move
    - TORRENT_ASSERT
    - std::max
    - size
    - data
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::reserve(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:75,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:76,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/receive_buffer.cpp:76,1
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:80,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: libtorrent::aux::receive_buffer::grow
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void receive_buffer::grow(int const limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::receive_buffer::advance_pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::min
    linkageType: ''
    returnType: int
    signature: int receive_buffer::advance_pos(int const bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:107,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:108,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:110,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:111,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:117,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/receive_buffer.cpp:121,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/receive_buffer.cpp:123,1
    - Dst: std::fill
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: begin
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: end
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - size
    - packet_size
    - offset
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::receive_buffer::cut
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - begin
    - std::fill
    - std::memmove
    - end
    - TORRENT_ASSERT
    - size
    linkageType: ''
    returnType: void
    signature: void receive_buffer::cut(int const size, int const packet_size, int
      const offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/receive_buffer.cpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:151,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:151,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/receive_buffer.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: libtorrent::aux::receive_buffer::get
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - span<char const>
    - empty
    - size
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> receive_buffer::get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: libtorrent::aux::receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::mutable_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: libtorrent::aux::receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::mutable_buffer(int const bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:179,1
    - Dst: add_sample
      Src: /src/libtorrent/src/receive_buffer.cpp:181,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:181,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:186,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:188,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:193,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:193,1
    - Dst: span::size
      Src: /src/libtorrent/src/receive_buffer.cpp:194,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:196,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:200,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:201,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: span::data
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/receive_buffer.cpp:207,1
    - Dst: span::size
      Src: /src/libtorrent/src/receive_buffer.cpp:207,1
    - Dst: std::fill
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    - Dst: begin
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    - Dst: end
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - force_shrink
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 216
    functionName: libtorrent::aux::receive_buffer::normalize
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - add_sample
    - std::move
    - std::fill
    - std::memmove
    - begin
    - end
    - span::data
    - TORRENT_ASSERT
    - std::int64_t
    - std::max
    - std::size_t
    - mean
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void receive_buffer::normalize(int const force_shrink)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:221,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:222,1
    - Dst: libtorrent::aux::receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: libtorrent::aux::receive_buffer::reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - size
    - libtorrent::aux::receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void receive_buffer::reset(int const packet_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: libtorrent::aux::crypto_receive_buffer::packet_finished
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_finished
    linkageType: ''
    returnType: bool
    signature: bool crypto_receive_buffer::packet_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: libtorrent::aux::crypto_receive_buffer::packet_size
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_size
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::packet_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::crypto_receive_buffer::pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::pos
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::pos() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:264,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:266,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - size
    - packet_size
    - offset
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: libtorrent::aux::crypto_receive_buffer::cut
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_receive_buffer::cut
    - libtorrent::aux::crypto_receive_buffer::packet_size
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::cut(int size, int packet_size, int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:278,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:282,1
    - Dst: libtorrent::aux::crypto_receive_buffer::reset
      Src: /src/libtorrent/src/receive_buffer.cpp:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: libtorrent::aux::crypto_receive_buffer::reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::reset
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::reset(int packet_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:290,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:291,1
    - Dst: crypto_packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:291,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:292,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:293,1
    - Dst: pos_at_end
      Src: /src/libtorrent/src/receive_buffer.cpp:293,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:298,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:304,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:306,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: libtorrent::aux::crypto_receive_buffer::crypto_reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - pos_at_end
    - libtorrent::aux::crypto_receive_buffer::pos
    - crypto_packet_finished
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::packet_finished
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::crypto_reset(int packet_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:316,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:318,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::crypto_receive_buffer::advance_pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::advance_pos(int bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::get
      Src: /src/libtorrent/src/receive_buffer.cpp:324,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:325,1
    - Dst: span::first
      Src: /src/libtorrent/src/receive_buffer.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: libtorrent::aux::crypto_receive_buffer::get
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::get
    - span::first
    - libtorrent::aux::crypto_receive_buffer::pos
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> crypto_receive_buffer::get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:334,1
    - Dst: libtorrent::aux::crypto_receive_buffer::mutable_buffer
      Src: /src/libtorrent/src/receive_buffer.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: libtorrent::aux::crypto_receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::mutable_buffer
    linkageType: ''
    returnType: span<char>
    signature: "span<char> crypto_receive_buffer::mutable_buffer(\n\tint const bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::receive_buffer::max_receive
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int receive_buffer::max_receive() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:52,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:53,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:56,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:58,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:60,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:62,1
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::receive_buffer::reserve
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - std::move
    - TORRENT_ASSERT
    - std::max
    - size
    - data
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::reserve(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:75,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:76,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/receive_buffer.cpp:76,1
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:80,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: libtorrent::aux::receive_buffer::grow
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void receive_buffer::grow(int const limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::receive_buffer::advance_pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::min
    linkageType: ''
    returnType: int
    signature: int receive_buffer::advance_pos(int const bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:107,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:108,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:110,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:111,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:117,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/receive_buffer.cpp:121,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/receive_buffer.cpp:123,1
    - Dst: std::fill
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: begin
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: end
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - size
    - packet_size
    - offset
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::receive_buffer::cut
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 1
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - begin
    - std::fill
    - std::memmove
    - end
    - TORRENT_ASSERT
    - size
    linkageType: ''
    returnType: void
    signature: void receive_buffer::cut(int const size, int const packet_size, int
      const offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/receive_buffer.cpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:151,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:151,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/receive_buffer.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: libtorrent::aux::receive_buffer::get
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - span<char const>
    - empty
    - size
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> receive_buffer::get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: libtorrent::aux::receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::mutable_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: libtorrent::aux::receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::mutable_buffer(int const bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:179,1
    - Dst: add_sample
      Src: /src/libtorrent/src/receive_buffer.cpp:181,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:181,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:186,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:188,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:193,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:193,1
    - Dst: span::size
      Src: /src/libtorrent/src/receive_buffer.cpp:194,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:196,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:200,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:201,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: span::data
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/receive_buffer.cpp:207,1
    - Dst: span::size
      Src: /src/libtorrent/src/receive_buffer.cpp:207,1
    - Dst: std::fill
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    - Dst: begin
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    - Dst: end
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - force_shrink
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 216
    functionName: libtorrent::aux::receive_buffer::normalize
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - add_sample
    - std::move
    - std::fill
    - std::memmove
    - begin
    - end
    - span::data
    - TORRENT_ASSERT
    - std::int64_t
    - std::max
    - std::size_t
    - mean
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void receive_buffer::normalize(int const force_shrink)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:221,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:222,1
    - Dst: libtorrent::aux::receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: libtorrent::aux::receive_buffer::reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - size
    - libtorrent::aux::receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void receive_buffer::reset(int const packet_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: libtorrent::aux::crypto_receive_buffer::packet_finished
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_finished
    linkageType: ''
    returnType: bool
    signature: bool crypto_receive_buffer::packet_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: libtorrent::aux::crypto_receive_buffer::packet_size
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_size
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::packet_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::crypto_receive_buffer::pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::pos
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::pos() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:264,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:266,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - size
    - packet_size
    - offset
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: libtorrent::aux::crypto_receive_buffer::cut
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_receive_buffer::cut
    - libtorrent::aux::crypto_receive_buffer::packet_size
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::cut(int size, int packet_size, int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:278,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:282,1
    - Dst: libtorrent::aux::crypto_receive_buffer::reset
      Src: /src/libtorrent/src/receive_buffer.cpp:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: libtorrent::aux::crypto_receive_buffer::reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::reset
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::reset(int packet_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:290,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:291,1
    - Dst: crypto_packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:291,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:292,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:293,1
    - Dst: pos_at_end
      Src: /src/libtorrent/src/receive_buffer.cpp:293,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:298,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:304,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:306,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: libtorrent::aux::crypto_receive_buffer::crypto_reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - pos_at_end
    - libtorrent::aux::crypto_receive_buffer::pos
    - crypto_packet_finished
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::packet_finished
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::crypto_reset(int packet_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:316,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:318,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::crypto_receive_buffer::advance_pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::advance_pos(int bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::get
      Src: /src/libtorrent/src/receive_buffer.cpp:324,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:325,1
    - Dst: span::first
      Src: /src/libtorrent/src/receive_buffer.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: libtorrent::aux::crypto_receive_buffer::get
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::get
    - span::first
    - libtorrent::aux::crypto_receive_buffer::pos
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> crypto_receive_buffer::get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:334,1
    - Dst: libtorrent::aux::crypto_receive_buffer::mutable_buffer
      Src: /src/libtorrent/src/receive_buffer.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: libtorrent::aux::crypto_receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::mutable_buffer
    linkageType: ''
    returnType: span<char>
    signature: "span<char> crypto_receive_buffer::mutable_buffer(\n\tint const bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::receive_buffer::max_receive
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int receive_buffer::max_receive() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:52,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:53,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:56,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:58,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:60,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:62,1
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::receive_buffer::reserve
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - std::move
    - TORRENT_ASSERT
    - std::max
    - size
    - data
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::reserve(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:75,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:76,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/receive_buffer.cpp:76,1
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:80,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: libtorrent::aux::receive_buffer::grow
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void receive_buffer::grow(int const limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::receive_buffer::advance_pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::min
    linkageType: ''
    returnType: int
    signature: int receive_buffer::advance_pos(int const bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:107,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:108,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:110,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:111,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:117,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/receive_buffer.cpp:121,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/receive_buffer.cpp:123,1
    - Dst: std::fill
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: begin
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: end
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - size
    - packet_size
    - offset
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::receive_buffer::cut
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 2
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - begin
    - std::fill
    - std::memmove
    - end
    - TORRENT_ASSERT
    - size
    linkageType: ''
    returnType: void
    signature: void receive_buffer::cut(int const size, int const packet_size, int
      const offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/receive_buffer.cpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:151,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:151,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/receive_buffer.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: libtorrent::aux::receive_buffer::get
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - span<char const>
    - empty
    - size
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> receive_buffer::get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: libtorrent::aux::receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::mutable_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: libtorrent::aux::receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::mutable_buffer(int const bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:179,1
    - Dst: add_sample
      Src: /src/libtorrent/src/receive_buffer.cpp:181,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:181,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:186,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:188,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:193,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:193,1
    - Dst: span::size
      Src: /src/libtorrent/src/receive_buffer.cpp:194,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:196,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:200,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:201,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: span::data
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/receive_buffer.cpp:207,1
    - Dst: span::size
      Src: /src/libtorrent/src/receive_buffer.cpp:207,1
    - Dst: std::fill
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    - Dst: begin
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    - Dst: end
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - force_shrink
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 216
    functionName: libtorrent::aux::receive_buffer::normalize
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - add_sample
    - std::move
    - std::fill
    - std::memmove
    - begin
    - end
    - span::data
    - TORRENT_ASSERT
    - std::int64_t
    - std::max
    - std::size_t
    - mean
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void receive_buffer::normalize(int const force_shrink)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:221,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:222,1
    - Dst: libtorrent::aux::receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: libtorrent::aux::receive_buffer::reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - size
    - libtorrent::aux::receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void receive_buffer::reset(int const packet_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: libtorrent::aux::crypto_receive_buffer::packet_finished
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_finished
    linkageType: ''
    returnType: bool
    signature: bool crypto_receive_buffer::packet_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: libtorrent::aux::crypto_receive_buffer::packet_size
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_size
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::packet_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::crypto_receive_buffer::pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::pos
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::pos() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:264,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:266,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - size
    - packet_size
    - offset
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: libtorrent::aux::crypto_receive_buffer::cut
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 9
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_receive_buffer::cut
    - libtorrent::aux::crypto_receive_buffer::packet_size
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::cut(int size, int packet_size, int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:278,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:282,1
    - Dst: libtorrent::aux::crypto_receive_buffer::reset
      Src: /src/libtorrent/src/receive_buffer.cpp:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: libtorrent::aux::crypto_receive_buffer::reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::reset
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::reset(int packet_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:290,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:291,1
    - Dst: crypto_packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:291,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:292,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:293,1
    - Dst: pos_at_end
      Src: /src/libtorrent/src/receive_buffer.cpp:293,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:298,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:304,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:306,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: libtorrent::aux::crypto_receive_buffer::crypto_reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - pos_at_end
    - libtorrent::aux::crypto_receive_buffer::pos
    - crypto_packet_finished
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::packet_finished
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::crypto_reset(int packet_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:316,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:318,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::crypto_receive_buffer::advance_pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::advance_pos(int bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::get
      Src: /src/libtorrent/src/receive_buffer.cpp:324,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:325,1
    - Dst: span::first
      Src: /src/libtorrent/src/receive_buffer.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: libtorrent::aux::crypto_receive_buffer::get
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::get
    - span::first
    - libtorrent::aux::crypto_receive_buffer::pos
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> crypto_receive_buffer::get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:334,1
    - Dst: libtorrent::aux::crypto_receive_buffer::mutable_buffer
      Src: /src/libtorrent/src/receive_buffer.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: libtorrent::aux::crypto_receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::mutable_buffer
    linkageType: ''
    returnType: span<char>
    signature: "span<char> crypto_receive_buffer::mutable_buffer(\n\tint const bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::receive_buffer::max_receive
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int receive_buffer::max_receive() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:52,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:53,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:56,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:58,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:60,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:62,1
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::receive_buffer::reserve
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - std::move
    - TORRENT_ASSERT
    - std::max
    - size
    - data
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::reserve(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:75,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:76,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/receive_buffer.cpp:76,1
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:80,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: libtorrent::aux::receive_buffer::grow
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void receive_buffer::grow(int const limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::receive_buffer::advance_pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::min
    linkageType: ''
    returnType: int
    signature: int receive_buffer::advance_pos(int const bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:107,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:108,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:110,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:111,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:117,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/receive_buffer.cpp:121,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/receive_buffer.cpp:123,1
    - Dst: std::fill
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: begin
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: end
      Src: /src/libtorrent/src/receive_buffer.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - size
    - packet_size
    - offset
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::receive_buffer::cut
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 3
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - begin
    - std::fill
    - std::memmove
    - end
    - TORRENT_ASSERT
    - size
    linkageType: ''
    returnType: void
    signature: void receive_buffer::cut(int const size, int const packet_size, int
      const offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/receive_buffer.cpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:151,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:151,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/receive_buffer.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: libtorrent::aux::receive_buffer::get
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - span<char const>
    - empty
    - size
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> receive_buffer::get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: libtorrent::aux::receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::mutable_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char>
      Src: /src/libtorrent/src/receive_buffer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: libtorrent::aux::receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    linkageType: ''
    returnType: span<char>
    signature: span<char> receive_buffer::mutable_buffer(int const bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:179,1
    - Dst: add_sample
      Src: /src/libtorrent/src/receive_buffer.cpp:181,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:181,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:185,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:186,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:188,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:193,1
    - Dst: std::max
      Src: /src/libtorrent/src/receive_buffer.cpp:193,1
    - Dst: span::size
      Src: /src/libtorrent/src/receive_buffer.cpp:194,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:196,1
    - Dst: mean
      Src: /src/libtorrent/src/receive_buffer.cpp:200,1
    - Dst: std::move
      Src: /src/libtorrent/src/receive_buffer.cpp:201,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: data
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: span::data
      Src: /src/libtorrent/src/receive_buffer.cpp:206,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/receive_buffer.cpp:207,1
    - Dst: span::size
      Src: /src/libtorrent/src/receive_buffer.cpp:207,1
    - Dst: std::fill
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    - Dst: begin
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    - Dst: end
      Src: /src/libtorrent/src/receive_buffer.cpp:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - force_shrink
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 216
    functionName: libtorrent::aux::receive_buffer::normalize
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - add_sample
    - std::move
    - std::fill
    - std::memmove
    - begin
    - end
    - span::data
    - TORRENT_ASSERT
    - std::int64_t
    - std::max
    - std::size_t
    - mean
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void receive_buffer::normalize(int const force_shrink)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:221,1
    - Dst: size
      Src: /src/libtorrent/src/receive_buffer.cpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:222,1
    - Dst: libtorrent::aux::receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: libtorrent::aux::receive_buffer::reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - size
    - libtorrent::aux::receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void receive_buffer::reset(int const packet_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: libtorrent::aux::crypto_receive_buffer::packet_finished
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_finished
    linkageType: ''
    returnType: bool
    signature: bool crypto_receive_buffer::packet_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: libtorrent::aux::crypto_receive_buffer::packet_size
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 19
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_size
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::packet_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::crypto_receive_buffer::pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::pos
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::pos() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:264,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:266,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - size
    - packet_size
    - offset
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: libtorrent::aux::crypto_receive_buffer::cut
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 13
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_receive_buffer::cut
    - libtorrent::aux::crypto_receive_buffer::packet_size
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::cut(int size, int packet_size, int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:278,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:282,1
    - Dst: libtorrent::aux::crypto_receive_buffer::reset
      Src: /src/libtorrent/src/receive_buffer.cpp:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: libtorrent::aux::crypto_receive_buffer::reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::reset
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::reset(int packet_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:290,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:291,1
    - Dst: crypto_packet_finished
      Src: /src/libtorrent/src/receive_buffer.cpp:291,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:292,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:293,1
    - Dst: pos_at_end
      Src: /src/libtorrent/src/receive_buffer.cpp:293,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:298,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:304,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/receive_buffer.cpp:306,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - packet_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: libtorrent::aux::crypto_receive_buffer::crypto_reset
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - pos_at_end
    - libtorrent::aux::crypto_receive_buffer::pos
    - crypto_packet_finished
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::packet_finished
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: void
    signature: void crypto_receive_buffer::crypto_reset(int packet_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/receive_buffer.cpp:316,1
    - Dst: libtorrent::aux::crypto_receive_buffer::cut
      Src: /src/libtorrent/src/receive_buffer.cpp:318,1
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::crypto_receive_buffer::advance_pos
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::cut
    linkageType: ''
    returnType: int
    signature: int crypto_receive_buffer::advance_pos(int bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::get
      Src: /src/libtorrent/src/receive_buffer.cpp:324,1
    - Dst: libtorrent::aux::crypto_receive_buffer::pos
      Src: /src/libtorrent/src/receive_buffer.cpp:325,1
    - Dst: span::first
      Src: /src/libtorrent/src/receive_buffer.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: libtorrent::aux::crypto_receive_buffer::get
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::get
    - span::first
    - libtorrent::aux::crypto_receive_buffer::pos
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> crypto_receive_buffer::get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_receive_buffer::packet_size
      Src: /src/libtorrent/src/receive_buffer.cpp:334,1
    - Dst: libtorrent::aux::crypto_receive_buffer::mutable_buffer
      Src: /src/libtorrent/src/receive_buffer.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: libtorrent::aux::crypto_receive_buffer::mutable_buffer
    functionSourceFile: /src/libtorrent/src/receive_buffer.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::crypto_receive_buffer::packet_size
    - libtorrent::aux::crypto_receive_buffer::mutable_buffer
    linkageType: ''
    returnType: span<char>
    signature: "span<char> crypto_receive_buffer::mutable_buffer(\n\tint const bytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: export_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:101,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:103,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:103,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:104,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:105,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:106,1
    - Dst: hasher::reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:108,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:114,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:114,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:115,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:116,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:117,1
    - Dst: std::make_shared<rc4_handler>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:119,1
    - Dst: auto::set_incoming_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:121,1
    - Dst: auto::set_outgoing_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - ' secret'
    - ' stream_key'
    - outgoing
    argTypes:
    - key_t
    - sha1_hash
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 125
    functionName: init_pe_rc4_handler
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - export_key
    - hasher::final
    - hasher::reset
    - auto::set_incoming_key
    - hasher::update
    - auto::set_outgoing_key
    - std::make_shared<rc4_handler>
    linkageType: ''
    returnType: std::shared_ptr<rc4_handler>
    signature: "std::shared_ptr<rc4_handler> init_pe_rc4_handler(key_t const& secret\n\t\t,
      sha1_hash const& stream_key, bool const outgoing)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: export_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:101,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:103,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:103,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:104,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:105,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:106,1
    - Dst: hasher::reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:108,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:114,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:114,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:115,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:116,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:117,1
    - Dst: std::make_shared<rc4_handler>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:119,1
    - Dst: auto::set_incoming_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:121,1
    - Dst: auto::set_outgoing_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - ' secret'
    - ' stream_key'
    - outgoing
    argTypes:
    - key_t
    - sha1_hash
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 125
    functionName: init_pe_rc4_handler
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - export_key
    - hasher::final
    - hasher::reset
    - auto::set_incoming_key
    - hasher::update
    - auto::set_outgoing_key
    - std::make_shared<rc4_handler>
    linkageType: ''
    returnType: std::shared_ptr<rc4_handler>
    signature: "std::shared_ptr<rc4_handler> init_pe_rc4_handler(key_t const& secret\n\t\t,
      sha1_hash const& stream_key, bool const outgoing)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/bt_peer_connection.cpp:133,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:135,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:135,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/bt_peer_connection.cpp:136,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:136,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:136,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:137,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:141,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:141,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/bt_peer_connection.cpp:142,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:142,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:142,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ep
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: ut_pex_peer_store::was_introduced_by
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::aux::is_v4
    - tcp::endpoint::address
    - end
    - std::lower_bound
    - tcp::endpoint::port
    linkageType: ''
    returnType: bool
    signature: bool ut_pex_peer_store::was_introduced_by(tcp::endpoint const &ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:164,1
    - Dst: fill
      Src: /src/libtorrent/src/bt_peer_connection.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - peer_connection_args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 168
    functionName: bt_peer_connection::bt_peer_connection
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - fill
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::bt_peer_connection(peer_connection_args& pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::start
      Src: /src/libtorrent/src/bt_peer_connection.cpp:172,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:176,1
    - Dst: setup_receive
      Src: /src/libtorrent/src/bt_peer_connection.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: bt_peer_connection::start
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::start
    - reset
    - setup_receive
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: bt_peer_connection::~bt_peer_connection()
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::~bt_peer_connection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:185,1
    - Dst: std::move
      Src: /src/libtorrent/src/bt_peer_connection.cpp:185,1
    - Dst: send_buffer_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:185,1
    - Dst: get_send_barrier
      Src: /src/libtorrent/src/bt_peer_connection.cpp:185,1
    - Dst: set_send_barrier
      Src: /src/libtorrent/src/bt_peer_connection.cpp:186,1
    - Dst: send_buffer_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - std::shared_ptr<crypto_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: bt_peer_connection::switch_send_crypto
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - get_send_barrier
    - set_send_barrier
    - send_buffer_size
    - bt_peer_connection::switch_send_crypto
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::switch_send_crypto(std::shared_ptr<crypto_plugin>
      crypto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bt_peer_connection::switch_recv_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:191,1
    - Dst: std::move
      Src: /src/libtorrent/src/bt_peer_connection.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - std::shared_ptr<crypto_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: bt_peer_connection::switch_recv_crypto
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - bt_peer_connection::switch_recv_crypto
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::switch_recv_crypto(std::shared_ptr<crypto_plugin>
      crypto)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:197,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:200,1
    - Dst: std::shared_ptr::graceful_pause
      Src: /src/libtorrent/src/bt_peer_connection.cpp:202,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:205,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:207,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:217,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:217,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:221,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:221,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:227,1
    - Dst: bt_peer_connection::write_pe1_2_dhkey
      Src: /src/libtorrent/src/bt_peer_connection.cpp:233,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:234,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:237,1
    - Dst: setup_receive
      Src: /src/libtorrent/src/bt_peer_connection.cpp:238,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:242,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:242,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:244,1
    - Dst: fast_reconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:254,1
    - Dst: bt_peer_connection::write_pe1_2_dhkey
      Src: /src/libtorrent/src/bt_peer_connection.cpp:256,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:257,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:259,1
    - Dst: setup_receive
      Src: /src/libtorrent/src/bt_peer_connection.cpp:260,1
    - Dst: bt_peer_connection::write_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:268,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:269,1
    - Dst: setup_receive
      Src: /src/libtorrent/src/bt_peer_connection.cpp:270,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:277,1
    - Dst: bt_peer_connection::write_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:279,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:281,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:284,1
    - Dst: setup_receive
      Src: /src/libtorrent/src/bt_peer_connection.cpp:285,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 287
    functionName: bt_peer_connection::on_connected
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::graceful_pause
    - reset
    - is_ssl
    - bt_peer_connection::write_pe1_2_dhkey
    - associated_torrent
    - is_disconnecting
    - TORRENT_ASSERT
    - get_int
    - peer_info_struct
    - fast_reconnect
    - disconnect
    - static_cast<std::uint8_t>
    - setup_receive
    - bt_peer_connection::write_handshake
    - get_socket
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_connected()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_dht
      Src: /src/libtorrent/src/bt_peer_connection.cpp:336,1
    - Dst: external_udp_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:338,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/bt_peer_connection.cpp:338,1
    - Dst: bt_peer_connection::write_dht_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: bt_peer_connection::write_dht_port
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - external_udp_port
    - has_dht
    - bt_peer_connection::write_dht_port
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_dht_port()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:348,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:349,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:352,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/bt_peer_connection.cpp:356,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:357,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - listen_port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 360
    functionName: bt_peer_connection::write_dht_port
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - send_buffer
    - stats_counters
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint16
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_dht_port(int const listen_port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 371
    functionName: bt_peer_connection::extension_notify
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::extension_notify(F message, Args... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:379,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:381,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 386
    functionName: bt_peer_connection::write_have_all
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_log
    - bt_peer_connection::extension_notify
    - send_message
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_have_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:393,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:395,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: bt_peer_connection::write_have_none
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_log
    - bt_peer_connection::extension_notify
    - send_message
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_have_none()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:406,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:411,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:412,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:416,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:417,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 422
    functionName: bt_peer_connection::write_reject_request
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - send_message
    - stats_counters
    - peer_log
    - bt_peer_connection::extension_notify
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_reject_request(peer_request const& r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:431,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:432,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:435,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:435,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:437,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:438,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 443
    functionName: bt_peer_connection::write_allow_fast
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - send_message
    - associated_torrent
    - TORRENT_ASSERT
    - peer_log
    - bt_peer_connection::extension_notify
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_allow_fast(piece_index_t const piece)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:452,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:453,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:454,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/bt_peer_connection.cpp:454,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:458,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:461,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:463,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:464,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/bt_peer_connection.cpp:465,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/bt_peer_connection.cpp:465,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:469,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:470,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 475
    functionName: bt_peer_connection::write_suggest
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::shared_ptr::has_picker
    - send_message
    - associated_torrent
    - std::shared_ptr::picker
    - TORRENT_ASSERT
    - std::shared_ptr::valid_metadata
    - should_log
    - peer_log
    - bt_peer_connection::extension_notify
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_suggest(piece_index_t const piece)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:479,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:479,1
    - Dst: is_interesting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:481,1
    - Dst: is_choked
      Src: /src/libtorrent/src/bt_peer_connection.cpp:482,1
    - Dst: is_peer_interested
      Src: /src/libtorrent/src/bt_peer_connection.cpp:483,1
    - Dst: has_peer_choked
      Src: /src/libtorrent/src/bt_peer_connection.cpp:484,1
    - Dst: support_extensions
      Src: /src/libtorrent/src/bt_peer_connection.cpp:485,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:486,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/bt_peer_connection.cpp:488,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:488,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:491,1
    - Dst: hasher256
      Src: /src/libtorrent/src/bt_peer_connection.cpp:496,1
    - Dst: base64decode_i2p
      Src: /src/libtorrent/src/bt_peer_connection.cpp:496,1
    - Dst: auto*::dest
      Src: /src/libtorrent/src/bt_peer_connection.cpp:496,1
    - Dst: set_i2p_destination
      Src: /src/libtorrent/src/bt_peer_connection.cpp:497,1
    - Dst: set_i2p_destination
      Src: /src/libtorrent/src/bt_peer_connection.cpp:501,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:501,1
    - Dst: set_i2p_destination
      Src: /src/libtorrent/src/bt_peer_connection.cpp:506,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:506,1
    - Dst: is_utp
      Src: /src/libtorrent/src/bt_peer_connection.cpp:510,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:510,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:511,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:511,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:522,1
    - Dst: bt_peer_connection::in_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:522,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:524,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 528
    functionName: bt_peer_connection::get_specific_peer_info
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash
    - associated_torrent
    - support_extensions
    - is_interesting
    - is_ssl
    - auto*::dest
    - hasher256
    - bt_peer_connection::in_handshake
    - get_socket
    - is_peer_interested
    - TORRENT_ASSERT
    - is_outgoing
    - is_i2p
    - is_utp
    - is_choked
    - has_peer_choked
    - base64decode_i2p
    - set_i2p_destination
    - is_connecting
    - peer_info_struct
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::get_specific_peer_info(peer_info& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: bt_peer_connection::in_handshake
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bt_peer_connection::in_handshake() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:543,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:544,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:545,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:545,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:546,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:549,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:550,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:553,1
    - Dst: dh_key_exchange::dh_key_exchange
      Src: /src/libtorrent/src/bt_peer_connection.cpp:553,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:556,1
    - Dst: random
      Src: /src/libtorrent/src/bt_peer_connection.cpp:560,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:563,1
    - Dst: export_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:570,1
    - Dst: get_local_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:570,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:571,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:571,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:574,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:575,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 580
    functionName: bt_peer_connection::write_pe1_2_dhkey
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - export_key
    - reset
    - std::memcpy
    - std::array::data
    - send_buffer
    - dh_key_exchange::dh_key_exchange
    - TORRENT_ASSERT
    - is_outgoing
    - disconnect
    - get_local_key
    - libtorrent::aux::random_bytes
    - get
    - peer_log
    - random
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_pe1_2_dhkey()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:586,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:587,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:588,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:588,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:589,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:592,1
    - Dst: get_secret
      Src: /src/libtorrent/src/bt_peer_connection.cpp:593,1
    - Dst: export_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:594,1
    - Dst: random
      Src: /src/libtorrent/src/bt_peer_connection.cpp:596,1
    - Dst: hasher::reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:604,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:605,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:606,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:607,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:609,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:609,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:612,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:614,1
    - Dst: hasher::reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:621,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:622,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:623,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:624,1
    - Dst: hasher::reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:627,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:628,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:629,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:630,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:632,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:632,1
    - Dst: init_pe_rc4_handler
      Src: /src/libtorrent/src/bt_peer_connection.cpp:636,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:636,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:638,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:640,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:646,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:648,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:649,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:653,1
    - Dst: bt_peer_connection::write_pe_vc_cryptofield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:657,1
    - Dst: encrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:659,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 661
    functionName: bt_peer_connection::write_pe3_sync
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - associated_info_hash
    - export_key
    - hasher::final
    - reset
    - std::uint8_t
    - get_int
    - send_buffer
    - hasher::reset
    - encrypt
    - TORRENT_ASSERT
    - is_outgoing
    - sha1_hash::data
    - random
    - bt_peer_connection::write_pe_vc_cryptofield
    - std::memcpy
    - init_pe_rc4_handler
    - get_secret
    - hasher::update
    - should_log
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_pe3_sync()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:667,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:668,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:669,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:670,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:671,1
    - Dst: random
      Src: /src/libtorrent/src/bt_peer_connection.cpp:673,1
    - Dst: bt_peer_connection::write_pe_vc_cryptofield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:677,1
    - Dst: encrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:680,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:681,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - crypto_select
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 693
    functionName: bt_peer_connection::write_pe4_sync
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - bt_peer_connection::write_pe_vc_cryptofield
    - send_buffer
    - encrypt
    - TORRENT_ASSERT
    - is_outgoing
    - peer_log
    - random
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_pe4_sync(int const crypto_select)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:702,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:704,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:704,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:705,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:706,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:706,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:707,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:713,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:713,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:714,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:716,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/bt_peer_connection.cpp:717,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:719,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/bt_peer_connection.cpp:719,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:720,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:723,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/bt_peer_connection.cpp:724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - write_buf
    - crypto_field
    - pad_size
    argTypes:
    - span<char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 725
    functionName: bt_peer_connection::write_pe_vc_cryptofield
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 2
    functionsReached:
    - span<char>::first
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - is_outgoing
    - std::memset
    - libtorrent::aux::write_uint16
    - span<char>::subspan
    - libtorrent::aux::random_bytes
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: void
    signature: "void bt_peer_connection::write_pe_vc_cryptofield(\n\t\tspan<char>
      write_buf\n\t\t, int const crypto_field\n\t\t, int const pad_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 730
    functionName: bt_peer_connection::rc4_decrypt
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - decrypt
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::rc4_decrypt(span<char> buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:738,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:741,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:742,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:751,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:753,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:756,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:771,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:771,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:777,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:788,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/bt_peer_connection.cpp:789,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:795,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:796,1
    - Dst: data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:796,1
    - Dst: size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:796,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:799,1
    - Dst: data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:799,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:801,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/bt_peer_connection.cpp:801,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:804,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:806,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/bt_peer_connection.cpp:808,1
    - Dst: identify_client
      Src: /src/libtorrent/src/bt_peer_connection.cpp:808,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:810,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:812,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/bt_peer_connection.cpp:813,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:816,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 817
    functionName: bt_peer_connection::write_handshake
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - std::memcpy
    - is_all_zeros
    - libtorrent::aux::to_hex
    - associated_info_hash
    - associated_torrent
    - send_buffer
    - std::shared_ptr::info_hash
    - std::string::c_str
    - TORRENT_ASSERT
    - size
    - libtorrent::aux::write_uint8
    - peer_info_struct
    - identify_client
    - std::memset
    - should_log
    - peer_log
    - data
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_handshake()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:821,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:822,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:824,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:827,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:831,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:833,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:833,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:834,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:835,1
    - Dst: validate_piece_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:838,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:843,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 848
    functionName: bt_peer_connection::downloading_piece_progress
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_int32
    - packet_size
    - span::size
    - associated_torrent
    - validate_piece_request
    - span::data
    - TORRENT_ASSERT
    - std::shared_ptr::block_size
    - get
    - piece_index_t
    linkageType: ''
    returnType: piece_block_progress
    signature: piece_block_progress bt_peer_connection::downloading_piece_progress()
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:860,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:861,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:862,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:864,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:867,1
    - Dst: incoming_choke
      Src: /src/libtorrent/src/bt_peer_connection.cpp:869,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:870,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:878,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:879,1
    - Dst: download_queue
      Src: /src/libtorrent/src/bt_peer_connection.cpp:880,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:885,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:886,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:892,1
    - Dst: std::min
      Src: /src/libtorrent/src/bt_peer_connection.cpp:894,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:894,1
    - Dst: incoming_reject_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 900
    functionName: bt_peer_connection::on_choke
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - incoming_reject_request
    - packet_finished
    - packet_size
    - received_bytes
    - associated_torrent
    - download_queue
    - incoming_choke
    - is_disconnecting
    - TORRENT_ASSERT
    - std::min
    - std::shared_ptr::block_size
    - disconnect
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_choke(int received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:910,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:911,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:912,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:914,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:917,1
    - Dst: incoming_unchoke
      Src: /src/libtorrent/src/bt_peer_connection.cpp:919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 920
    functionName: bt_peer_connection::on_unchoke
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - packet_finished
    - packet_size
    - received_bytes
    - TORRENT_ASSERT
    - incoming_unchoke
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_unchoke(int received)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:930,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:931,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:932,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:934,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:937,1
    - Dst: send_allowed_set
      Src: /src/libtorrent/src/bt_peer_connection.cpp:945,1
    - Dst: incoming_interested
      Src: /src/libtorrent/src/bt_peer_connection.cpp:948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 949
    functionName: bt_peer_connection::on_interested
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - incoming_interested
    - packet_finished
    - packet_size
    - received_bytes
    - TORRENT_ASSERT
    - send_allowed_set
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_interested(int received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:959,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:960,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:961,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:963,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:966,1
    - Dst: incoming_not_interested
      Src: /src/libtorrent/src/bt_peer_connection.cpp:968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 969
    functionName: bt_peer_connection::on_not_interested
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - packet_finished
    - packet_size
    - received_bytes
    - TORRENT_ASSERT
    - incoming_not_interested
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_not_interested(int received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:979,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:980,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:981,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:983,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:986,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:988,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:990,1
    - Dst: incoming_have
      Src: /src/libtorrent/src/bt_peer_connection.cpp:993,1
    - Dst: bt_peer_connection::maybe_send_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 995
    functionName: bt_peer_connection::on_have
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - packet_finished
    - packet_size
    - received_bytes
    - span::data
    - TORRENT_ASSERT
    - incoming_have
    - bt_peer_connection::maybe_send_hash_request
    - get
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_have(int received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1005,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1007,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1008,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1010,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1013,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1014,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1014,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1016,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1020,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1022,1
    - Dst: typed_bitfield::assign
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1025,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1025,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1026,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1026,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1026,1
    - Dst: incoming_bitfield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1029
    functionName: bt_peer_connection::on_bitfield
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - packet_finished
    - packet_size
    - received_bytes
    - typed_bitfield::assign
    - associated_torrent
    - incoming_bitfield
    - span::data
    - TORRENT_ASSERT
    - get_bitfield
    - std::shared_ptr::valid_metadata
    - get
    - disconnect
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_bitfield(int received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1039,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1040,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1041,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1043,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1046,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1048,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1051,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1052,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1052,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1053,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1054,1
    - Dst: incoming_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1057
    functionName: bt_peer_connection::on_request
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_int32
    - packet_finished
    - packet_size
    - received_bytes
    - span::data
    - incoming_request
    - TORRENT_ASSERT
    - get
    - piece_index_t
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_request(int received)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1067,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1069,1
    - Dst: pos
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1070,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1072,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1073,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1076,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1076,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1078,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1079,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1093,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1094,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1094,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1095,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1096,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1100,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1108,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1121,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1122,1
    - Dst: start_receive_piece
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1139,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1140,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1143,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1144,1
    - Dst: incoming_piece
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1146,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1146,1
    - Dst: bt_peer_connection::maybe_send_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1148
    functionName: bt_peer_connection::on_piece
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - incoming_piece
    - libtorrent::aux::read_int32
    - packet_finished
    - packet_size
    - received_bytes
    - start_receive_piece
    - associated_torrent
    - incoming_piece_fragment
    - span::data
    - is_disconnecting
    - TORRENT_ASSERT
    - pos
    - bt_peer_connection::maybe_send_hash_request
    - std::shared_ptr::block_size
    - get
    - piece_index_t
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_piece(int const received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1158,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1159,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1160,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1162,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1165,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1167,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1170,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1171,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1171,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1172,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1173,1
    - Dst: incoming_cancel
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1176
    functionName: bt_peer_connection::on_cancel
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_int32
    - packet_finished
    - packet_size
    - received_bytes
    - span::data
    - TORRENT_ASSERT
    - get
    - piece_index_t
    - disconnect
    - incoming_cancel
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_cancel(int received)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1182,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1183,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1185,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1187,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1191,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1193,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1196,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1199,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1201,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1203,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1204,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1206,1
    - Dst: file_index_for_root
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1207,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1208,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1209,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1210,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1211,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1212,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1216,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1218,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1220,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1224,1
    - Dst: bt_peer_connection::write_hash_reject
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1226,1
    - Dst: std::shared_ptr::get_hashes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1230,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1232,1
    - Dst: bt_peer_connection::write_hash_reject
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1234,1
    - Dst: bt_peer_connection::write_hashes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1178
    functionDepth: 2
    functionLinenumber: 1178
    functionLinenumberEnd: 1239
    functionName: bt_peer_connection::on_hash_request
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::shared_ptr::get_hashes
    - packet_finished
    - packet_size
    - sha256_hash
    - associated_torrent
    - test_piece_size
    - received_bytes
    - span::begin
    - libtorrent::aux::read_int32
    - bt_peer_connection::write_hash_reject
    - TORRENT_ASSERT
    - validate_hash_request
    - disconnect
    - std::shared_ptr::torrent_file
    - bt_peer_connection::write_hashes
    - std::vector::empty
    - peer_info_struct
    - should_log
    - get
    - peer_log
    - file_index_for_root
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_hash_request(int received)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1245,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1246,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1248,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1250,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1254,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1255,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1257,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1259,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1263,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1268,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1270,1
    - Dst: file_range
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1272,1
    - Dst: root
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1274,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1280,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1281,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1282,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1283,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1284,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1288,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1288,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1290,1
    - Dst: std::max
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1295,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1296,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1296,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1298,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1299,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1301,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1305,1
    - Dst: std::remove
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1307,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1307,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1307,1
    - Dst: erase
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1308,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1308,1
    - Dst: span::end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1311,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1313,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1314,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1318,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1320,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1322,1
    - Dst: std::shared_ptr::add_hashes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1326,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1328,1
    - Dst: bt_peer_connection::maybe_send_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1332,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1241
    functionDepth: 2
    functionLinenumber: 1241
    functionLinenumberEnd: 1333
    functionName: bt_peer_connection::on_hashes
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - packet_finished
    - packet_size
    - span::size
    - sha256_hash
    - begin
    - associated_torrent
    - test_piece_size
    - std::vector::emplace_back
    - peer_log
    - bt_peer_connection::maybe_send_hash_request
    - std::max
    - received_bytes
    - end
    - file_range
    - span::begin
    - span::end
    - libtorrent::aux::read_int32
    - erase
    - merkle_num_leafs
    - TORRENT_ASSERT
    - validate_hash_request
    - std::shared_ptr::torrent_file
    - root
    - peer_info_struct
    - std::remove
    - should_log
    - get
    - disconnect
    - merkle_num_layers
    - std::shared_ptr::add_hashes
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_hashes(int received)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1339,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1340,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1342,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1344,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1348,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1350,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1353,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1355,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1356,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1358,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1359,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1361,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1362,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1363,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1364,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1365,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1366,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1367,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1371,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1373,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1375,1
    - Dst: std::remove
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1379,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1379,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1379,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1380,1
    - Dst: erase
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1381,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1381,1
    - Dst: std::shared_ptr::hashes_rejected
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1383,1
    - Dst: bt_peer_connection::maybe_send_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1335
    functionDepth: 2
    functionLinenumber: 1335
    functionLinenumberEnd: 1386
    functionName: bt_peer_connection::on_hash_reject
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - packet_finished
    - packet_size
    - sha256_hash
    - begin
    - associated_torrent
    - test_piece_size
    - bt_peer_connection::maybe_send_hash_request
    - received_bytes
    - end
    - span::begin
    - libtorrent::aux::read_int32
    - erase
    - TORRENT_ASSERT
    - disconnect
    - std::shared_ptr::torrent_file
    - std::shared_ptr::hashes_rejected
    - peer_info_struct
    - std::remove
    - should_log
    - get
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_hash_reject(int received)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1396,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1397,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1398,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1400,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1403,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1405,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1407,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1408,1
    - Dst: incoming_dht_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1410,1
    - Dst: bt_peer_connection::write_dht_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1418,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1392
    functionDepth: 2
    functionLinenumber: 1392
    functionLinenumberEnd: 1420
    functionName: bt_peer_connection::on_dht_port
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - packet_finished
    - packet_size
    - received_bytes
    - incoming_dht_port
    - span::data
    - libtorrent::aux::read_uint16
    - TORRENT_ASSERT
    - bt_peer_connection::write_dht_port
    - get
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_dht_port(int received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1426,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1427,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1429,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1433,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1435,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1437,1
    - Dst: incoming_suggest
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1440
    functionName: bt_peer_connection::on_suggest_piece
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - packet_finished
    - packet_size
    - received_bytes
    - span::data
    - get
    - disconnect
    - incoming_suggest
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_suggest_piece(int received)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1446,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1447,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1449,1
    - Dst: incoming_have_all
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1452,1
    - Dst: bt_peer_connection::maybe_send_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1454
    functionName: bt_peer_connection::on_have_all
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - incoming_have_all
    - packet_size
    - received_bytes
    - bt_peer_connection::maybe_send_hash_request
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_have_all(int received)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1460,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1461,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1463,1
    - Dst: incoming_have_none
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1467
    functionName: bt_peer_connection::on_have_none
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - incoming_have_none
    - packet_size
    - disconnect
    - received_bytes
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_have_none(int received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1473,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1474,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1476,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1480,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1482,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1485,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1486,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1486,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1487,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1488,1
    - Dst: incoming_reject_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1491
    functionName: bt_peer_connection::on_reject_request
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_int32
    - packet_finished
    - packet_size
    - incoming_reject_request
    - received_bytes
    - span::data
    - get
    - piece_index_t
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_reject_request(int received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1497,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1498,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1500,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1504,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1505,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1506,1
    - Dst: incoming_allowed_fast
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1510
    functionName: bt_peer_connection::on_allowed_fast
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - packet_finished
    - packet_size
    - received_bytes
    - span::data
    - incoming_allowed_fast
    - get
    - disconnect
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_allowed_fast(int received)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1520,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1527,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1528,1
    - Dst: span::front
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1528,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1529,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1530,1
    - Dst: span::front
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1530,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1531,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1533,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1534,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1534,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1537,1
    - Dst: static_cast<hp_message>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1539,1
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1539,1
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1540,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1546,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1548,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1553,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1554,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1559,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1562,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1564,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1565,1
    - Dst: print_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1567,1
    - Dst: remote
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1567,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1577,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1579,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1581,1
    - Dst: print_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1582,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1582,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1588,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1596,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1598,1
    - Dst: print_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1599,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1599,1
    - Dst: std::shared_ptr::find_peer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1605,1
    - Dst: bt_peer_connection::write_holepunch_msg
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1609,1
    - Dst: bt_peer_connection*::supports_holepunch
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1612,1
    - Dst: bt_peer_connection::write_holepunch_msg
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1614,1
    - Dst: bt_peer_connection::write_holepunch_msg
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1619,1
    - Dst: bt_peer_connection::write_holepunch_msg
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1623,1
    - Dst: bt_peer_connection*::write_holepunch_msg
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1624,1
    - Dst: remote
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1624,1
    - Dst: std::shared_ptr::add_peer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1629,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1633,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1635,1
    - Dst: print_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1637,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1637,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1647,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1649,1
    - Dst: print_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1650,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1650,1
    - Dst: std::shared_ptr::connect_to_peer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1660,1
    - Dst: std::shared_ptr::update_want_peers
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1664,1
    - Dst: torrent_peer*::connection::set_holepunch_mode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1666,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1668,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1670,1
    - Dst: print_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1672,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1672,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1679,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1681,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1684,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1516
    functionDepth: 2
    functionLinenumber: 1516
    functionLinenumberEnd: 1693
    functionName: bt_peer_connection::on_holepunch
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - torrent_peer*::connection::set_holepunch_mode
    - packet_finished
    - span::size
    - libtorrent::aux::read_uint32
    - tcp::endpoint::address
    - associated_torrent
    - remote
    - bt_peer_connection*::write_holepunch_msg
    - std::shared_ptr::find_peer
    - aux::read_v6_endpoint<tcp::endpoint>
    - aux::read_v4_endpoint<tcp::endpoint>
    - span::front
    - bt_peer_connection::write_holepunch_msg
    - std::shared_ptr::connect_to_peer
    - static_cast<hp_message>
    - bt_peer_connection*::supports_holepunch
    - print_address
    - span::data
    - TORRENT_ASSERT
    - span::subspan
    - std::shared_ptr::add_peer
    - libtorrent::aux::read_uint8
    - std::shared_ptr::update_want_peers
    - should_log
    - get
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_holepunch()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1700,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1701,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1701,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1702,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1703,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1706,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1710,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1712,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1713,1
    - Dst: print_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1715,1
    - Dst: address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1715,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1716,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1721,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1721,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1726,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1727,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1728,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1730,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1732,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - type
    - ' ep'
    - error
    argTypes:
    - hp_message
    - tcp::endpoint
    - hp_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1695
    functionDepth: 1
    functionLinenumber: 1695
    functionLinenumberEnd: 1735
    functionName: bt_peer_connection::write_holepunch_msg
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_endpoint
    - static_cast<int>
    - print_address
    - send_buffer
    - stats_counters
    - libtorrent::aux::is_v4
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - static_cast<std::uint8_t>
    - should_log
    - address
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void bt_peer_connection::write_holepunch_msg(hp_message const type\n\t\t,
      tcp::endpoint const& ep, hp_error const error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1741,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1743,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1744,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1746,1
    - Dst: auto::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1748,1
    - Dst: files
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1749,1
    - Dst: root
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1750,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1752,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1752,1
    - Dst: auto::end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1752,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1754,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1754,1
    - Dst: auto::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1754,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1756,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1757,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1758,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1759,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1761,1
    - Dst: push_back
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1763,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1766,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1768,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ' req'
    argTypes:
    - hash_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1737
    functionDepth: 2
    functionLinenumber: 1737
    functionLinenumberEnd: 1775
    functionName: bt_peer_connection::write_hash_request
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - root
    - send_buffer
    - stats_counters
    - test_piece_size
    - associated_torrent
    - files
    - auto::torrent_file
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - std::copy
    - libtorrent::aux::write_uint8
    - auto::end
    - validate_hash_request
    - auto::begin
    - should_log
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_hash_request(hash_request const& req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1781,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1783,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1783,1
    - Dst: data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1785,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1786,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1787,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1789,1
    - Dst: auto::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1791,1
    - Dst: files
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1792,1
    - Dst: root
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1793,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1795,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1795,1
    - Dst: auto::end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1795,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1797,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1798,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1799,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1800,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1803,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1803,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1803,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1805,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1808,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1810,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1812,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' req'
    - hashes
    argTypes:
    - hash_request
    - span<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1777
    functionDepth: 2
    functionLinenumber: 1777
    functionLinenumberEnd: 1817
    functionName: bt_peer_connection::write_hashes
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - begin
    - test_piece_size
    - associated_torrent
    - stats_counters
    - auto::begin
    - data
    - end
    - std::copy
    - send_buffer
    - files
    - auto::torrent_file
    - libtorrent::aux::write_uint8
    - root
    - span<sha256_hash>::size
    - libtorrent::aux::write_uint32
    - auto::end
    - should_log
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_hashes(hash_request const& req, span<sha256_hash>
      hashes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_piece_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1823,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1825,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1826,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1828,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1830,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1830,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1830,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1832,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1833,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1834,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1835,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1837,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1840,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1842,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ' req'
    - ' root'
    argTypes:
    - hash_request
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1819
    functionDepth: 2
    functionLinenumber: 1819
    functionLinenumberEnd: 1849
    functionName: bt_peer_connection::write_hash_reject
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - send_buffer
    - begin
    - test_piece_size
    - associated_torrent
    - stats_counters
    - end
    - libtorrent::aux::write_uint32
    - std::copy
    - libtorrent::aux::write_uint8
    - should_log
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_hash_reject(hash_request const& req,
      sha256_hash const& root)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1853,1
    - Dst: size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1853,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1854,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1856,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1857,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1859,1
    - Dst: std::shared_ptr::pick_hashes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1861,1
    - Dst: bt_peer_connection::write_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1851
    functionDepth: 3
    functionLinenumber: 1851
    functionLinenumberEnd: 1863
    functionName: bt_peer_connection::maybe_send_hash_request
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 5
    functionsReached:
    - std::shared_ptr::pick_hashes
    - associated_torrent
    - is_disconnecting
    - TORRENT_ASSERT
    - peer_info_struct
    - bt_peer_connection::write_hash_request
    - std::shared_ptr::valid_metadata
    - size
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::maybe_send_hash_request()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1873,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1874,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1875,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1877,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1881,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1883,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1887,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1888,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1890,1
    - Dst: span::front
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1890,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1891,1
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1893,1
    - Dst: bt_peer_connection::on_extended_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1897,1
    - Dst: disconnect_if_redundant
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1898,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1904,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1905,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1908,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1909,1
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1913,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1915,1
    - Dst: set_upload_only
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1918,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1925,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1926,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1929,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1930,1
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1934,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1936,1
    - Dst: set_share_mode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1939,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1946,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1948,1
    - Dst: bt_peer_connection::on_holepunch
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1950,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1956,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1957,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1960,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1961,1
    - Dst: incoming_dont_have
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1966,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1971,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1972,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1973,1
    - Dst: bt_peer_connection::on_extended
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1979,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1979,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1985,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1869
    functionDepth: 3
    functionLinenumber: 1869
    functionLinenumberEnd: 1986
    functionName: bt_peer_connection::on_extended
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - packet_finished
    - packet_size
    - span::size
    - associated_torrent
    - disconnect_if_redundant
    - set_share_mode
    - incoming_dont_have
    - received_bytes
    - span::front
    - bt_peer_connection::on_extended_handshake
    - bt_peer_connection::on_extended
    - TORRENT_ASSERT
    - disconnect
    - set_upload_only
    - span::subspan
    - bt_peer_connection::on_holepunch
    - libtorrent::aux::read_uint8
    - get
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_extended(int received)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1990,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1992,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1993,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1995,1
    - Dst: bdecode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1999,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:1999,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2000,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2003,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2005,1
    - Dst: print_error
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2007,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2014,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2016,1
    - Dst: print_entry
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2017,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2022,1
    - Dst: empty
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2023,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2023,1
    - Dst: on_extension_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2027,1
    - Dst: erase
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2028,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2032,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2036,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2038,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2038,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2039,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2039,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2040,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2040,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2044,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2045,1
    - Dst: std::shared_ptr::update_peer_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2047,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2047,1
    - Dst: received_listen_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2048,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2049,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2055,1
    - Dst: set_last_seen_complete
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2056,1
    - Dst: bdecode_node::dict_find_string_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2058,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2059,1
    - Dst: auto::to_string
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2061,1
    - Dst: libtorrent::aux::verify_encoding
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2063,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2066,1
    - Dst: max_out_request_queue
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2067,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2069,1
    - Dst: set_upload_only
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2070,1
    - Dst: get_bool
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2073,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2074,1
    - Dst: set_share_mode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2075,1
    - Dst: bdecode_node::dict_find_string_value
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2078,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2079,1
    - Dst: auto::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2081,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2084,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2084,1
    - Dst: auto::end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2084,1
    - Dst: address_v4::bytes_type::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2084,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2085,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2085,1
    - Dst: address_v4
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2086,1
    - Dst: remote
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2087,1
    - Dst: auto::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2089,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2092,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2092,1
    - Dst: auto::end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2092,1
    - Dst: address_v6::bytes_type::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2092,1
    - Dst: address_v6::is_v4_mapped
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2094,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2095,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2095,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2096,1
    - Dst: remote
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2097,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2099,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2099,1
    - Dst: remote
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2101,1
    - Dst: std::shared_ptr::is_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2107,1
    - Dst: upload_only
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2107,1
    - Dst: get_bool
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2108,1
    - Dst: std::shared_ptr::share_mode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2110,1
    - Dst: can_disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2112,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2113,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2115,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 1988
    functionDepth: 2
    functionLinenumber: 1988
    functionLinenumberEnd: 2116
    functionName: bt_peer_connection::on_extended_handshake
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - print_entry
    - packet_finished
    - make_address_v4
    - begin
    - associated_torrent
    - set_share_mode
    - stats_counters
    - empty
    - address_v6::bytes_type::begin
    - remote
    - set_last_seen_complete
    - get_bool
    - auto::begin
    - bdecode
    - libtorrent::aux::verify_encoding
    - auto::empty
    - bdecode_node::type
    - std::shared_ptr::share_mode
    - std::uint8_t
    - address_v4::bytes_type::begin
    - end
    - set_external_address
    - std::copy
    - bdecode_node::dict_find_dict
    - received_listen_port
    - upload_only
    - std::shared_ptr::is_finished
    - auto::to_string
    - on_extension_handshake
    - erase
    - is_disconnecting
    - address_v6::is_v4_mapped
    - TORRENT_ASSERT
    - auto::size
    - disconnect
    - set_upload_only
    - print_error
    - bdecode_node::dict_find_string_value
    - address_v4
    - span::subspan
    - std::shared_ptr::update_peer_port
    - max_out_request_queue
    - can_disconnect
    - peer_info_struct
    - bdecode_node::dict_find_int_value
    - auto::end
    - local_endpoint
    - should_log
    - get
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_extended_handshake()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2122,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2125,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2127,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2133,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2133,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2134,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2137,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2138,1
    - Dst: bt_peer_connection::on_choke
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2145,1
    - Dst: bt_peer_connection::on_unchoke
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2146,1
    - Dst: bt_peer_connection::on_interested
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2147,1
    - Dst: bt_peer_connection::on_not_interested
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2148,1
    - Dst: bt_peer_connection::on_have
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2149,1
    - Dst: bt_peer_connection::on_bitfield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2150,1
    - Dst: bt_peer_connection::on_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2151,1
    - Dst: bt_peer_connection::on_piece
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2152,1
    - Dst: bt_peer_connection::on_cancel
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2153,1
    - Dst: bt_peer_connection::on_dht_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2156,1
    - Dst: bt_peer_connection::on_suggest_piece
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2159,1
    - Dst: bt_peer_connection::on_have_all
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2160,1
    - Dst: bt_peer_connection::on_have_none
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2161,1
    - Dst: bt_peer_connection::on_reject_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2162,1
    - Dst: bt_peer_connection::on_allowed_fast
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2163,1
    - Dst: bt_peer_connection::on_extended
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2164,1
    - Dst: bt_peer_connection::on_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2165,1
    - Dst: bt_peer_connection::on_hashes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2166,1
    - Dst: bt_peer_connection::on_hash_reject
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2167,1
    - Dst: on_unknown_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2173,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2173,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2174,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2175,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2178,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2179,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2180,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2185,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2186,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2186,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2187,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2190,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2193,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2204,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 82
    argCount: 1
    argNames:
    - received
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2118
    functionDepth: 4
    functionLinenumber: 2118
    functionLinenumberEnd: 2208
    functionName: bt_peer_connection::dispatch_message
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - on_unknown_message
    - packet_finished
    - packet_size
    - span::size
    - stats_counters
    - associated_torrent
    - bt_peer_connection::on_dht_port
    - bt_peer_connection::on_have_none
    - bt_peer_connection::on_allowed_fast
    - bt_peer_connection::on_interested
    - bt_peer_connection::on_suggest_piece
    - received_bytes
    - statistics
    - bt_peer_connection::on_have
    - bt_peer_connection::on_choke
    - bt_peer_connection::on_bitfield
    - bt_peer_connection::on_piece
    - bt_peer_connection::on_request
    - bt_peer_connection::on_hash_request
    - bt_peer_connection::on_cancel
    - bt_peer_connection::on_hash_reject
    - bt_peer_connection::on_reject_request
    - bt_peer_connection::on_extended
    - TORRENT_ASSERT
    - static_cast<std::uint8_t>
    - span::subspan
    - bt_peer_connection::on_unchoke
    - bt_peer_connection::on_hashes
    - bt_peer_connection::on_not_interested
    - get
    - disconnect
    - bt_peer_connection::on_have_all
    linkageType: ''
    returnType: bool
    signature: bool bt_peer_connection::dispatch_message(int const received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2215,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2216,1
    - Dst: std::shared_ptr::share_mode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2216,1
    - Dst: get_bool
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2224,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2228,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2229,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2230,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2233
    functionName: bt_peer_connection::write_upload_only
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::share_mode
    - send_buffer
    - stats_counters
    - associated_torrent
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint8
    - get_bool
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_upload_only(bool const enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2240,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2245,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2246,1
    - Dst: std::shared_ptr::share_mode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2246,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2247,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2236
    functionDepth: 0
    functionLinenumber: 2236
    functionLinenumberEnd: 2250
    functionName: bt_peer_connection::write_share_mode
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::share_mode
    - send_buffer
    - stats_counters
    - associated_torrent
    - libtorrent::aux::write_uint8
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_share_mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2263,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2253
    functionDepth: 1
    functionLinenumber: 2253
    functionLinenumberEnd: 2267
    functionName: bt_peer_connection::write_keepalive
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - send_buffer
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_keepalive()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2273,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2274,1
    - Dst: incoming_reject_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2276,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2269
    functionDepth: 1
    functionLinenumber: 2269
    functionLinenumberEnd: 2281
    functionName: bt_peer_connection::write_cancel
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - incoming_reject_request
    - bt_peer_connection::extension_notify
    - send_message
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_cancel(peer_request const& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2287,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2288,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2283
    functionDepth: 1
    functionLinenumber: 2283
    functionLinenumberEnd: 2293
    functionName: bt_peer_connection::write_request
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - bt_peer_connection::extension_notify
    - send_message
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_request(peer_request const& r)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2301,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2303,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2304,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2306,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2306,1
    - Dst: std::shared_ptr::super_seeding
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2309,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2312,1
    - Dst: bt_peer_connection::write_have_none
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2314,1
    - Dst: std::shared_ptr::get_piece_to_super_seed
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2321,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2321,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2322,1
    - Dst: superseed_piece
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2322,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2322,1
    - Dst: std::shared_ptr::get_piece_to_super_seed
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2323,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2323,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2324,1
    - Dst: superseed_piece
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2324,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2324,1
    - Dst: std::shared_ptr::is_seed
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2329,1
    - Dst: bt_peer_connection::write_have_all
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2331,1
    - Dst: std::shared_ptr::num_have
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2334,1
    - Dst: bt_peer_connection::write_have_none
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2336,1
    - Dst: std::shared_ptr::num_have
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2339,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2343,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2350,1
    - Dst: data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2358,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2359,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2361,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2362,1
    - Dst: std::shared_ptr::is_seed
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2364,1
    - Dst: std::fill_n
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2366,1
    - Dst: back
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2369,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2369,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2373,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2373,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2374,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2376,1
    - Dst: have_piece
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2378,1
    - Dst: std::shared_ptr::predictive_pieces
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2391,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2392,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2392,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2396,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2399,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2400,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2406,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2407,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2412,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2414,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2295
    functionDepth: 2
    functionLinenumber: 2295
    functionLinenumberEnd: 2415
    functionName: bt_peer_connection::write_bitfield
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - associated_torrent
    - std::shared_ptr::get_piece_to_super_seed
    - stats_counters
    - static_cast<char>
    - std::memset
    - get_bitfield
    - data
    - std::shared_ptr::is_seed
    - std::shared_ptr::predictive_pieces
    - aux::numeric_cast<std::size_t>
    - std::fill_n
    - superseed_piece
    - back
    - std::shared_ptr::super_seeding
    - bt_peer_connection::write_have_all
    - send_buffer
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint8
    - std::string::resize
    - have_piece
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - std::shared_ptr::torrent_file
    - bt_peer_connection::write_have_none
    - std::shared_ptr::picker
    - std::string::c_str
    - should_log
    - std::shared_ptr::num_have
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_bitfield()
  - BBCount: 129
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2421,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2422,1
    - Dst: dict
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2425,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2427,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2428,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2432,1
    - Dst: listen_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2434,1
    - Dst: std::shared_ptr::is_ssl_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2435,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2436,1
    - Dst: get_bool
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2443,1
    - Dst: get_str
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2445,1
    - Dst: get_str
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2446,1
    - Dst: get_str
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2447,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2452,1
    - Dst: remote
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2452,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2454,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2454,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2457,1
    - Dst: get_bool
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2462,1
    - Dst: std::shared_ptr::last_seen_complete
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2468,1
    - Dst: std::shared_ptr::time_since_complete
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2468,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2480,1
    - Dst: std::shared_ptr::share_mode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2482,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2484,1
    - Dst: std::shared_ptr::super_seeding
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2486,1
    - Dst: get_bool
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2494,1
    - Dst: std::shared_ptr::share_mode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2495,1
    - Dst: add_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2504,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2511,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2512,1
    - Dst: entry::dictionary_type::const_iterator::second::type
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2514,1
    - Dst: entry::dictionary_type::const_iterator::second::integer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2515,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2516,1
    - Dst: std::set::find
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2516,1
    - Dst: std::set::end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2516,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2517,1
    - Dst: bencode
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2522,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2522,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2528,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2528,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2529,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2531,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2532,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2533,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2535,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2538,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2540,1
    - Dst: entry::to_string
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2541,1
    - Dst: is_choked
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2550,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2551,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2554,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2562,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2565,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2573,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2576,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2584,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2587,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2594,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2594,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2595,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2595,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2596,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2596,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2602,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2603,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2606,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2613,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2613,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2614,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2614,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2615,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2615,1
    - Dst: bt_peer_connection::in_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2617,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2619,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2620,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2626,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2626,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2627,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2629,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2636,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2637,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2638,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2640,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2641,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2652,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2653,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2654,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2655,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2655,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2656,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2658,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2660,1
    - Dst: append_send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2662,1
    - Dst: std::move
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2662,1
    - Dst: append_const_send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2666,1
    - Dst: std::move
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2666,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2669,1
    - Dst: send_buffer_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2669,1
    - Dst: setup_send
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2670,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2672,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2674,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2676,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2676,1
    - Dst: remote
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2677,1
    - Dst: pid
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2677,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2677,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2681,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2696,1
    - Dst: is_recv_plaintext
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2705,1
    - Dst: decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2707,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2710,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2715,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2718,1
    - Dst: crypto_packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2721,1
    - Dst: crypto_packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2722,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2724,1
    - Dst: advance_pos
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2730,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2733,1
    - Dst: last_protocol_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2736,1
    - Dst: bt_peer_connection::on_receive_impl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2737,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2737,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2738,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2741,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2741,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2742,1
    - Dst: last_protocol_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2742,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2743,1
    - Dst: last_protocol_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2744,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2745,1
    - Dst: bt_peer_connection::on_receive_impl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2753,1
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2762,1
    - Dst: bt_peer_connection::switch_recv_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2763,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2769,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2770,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2771,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2774,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2775,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2778,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2782,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2783,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2786,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2787,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2796,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2798,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2806,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2808,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2809,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2810,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2810,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2811,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2811,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2811,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2812,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2812,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2812,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2814,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2818,1
    - Dst: bt_peer_connection::write_pe1_2_dhkey
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2818,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2819,1
    - Dst: compute_secret
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2822,1
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2823,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2823,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2826,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2836,1
    - Dst: bt_peer_connection::write_pe3_sync
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2839,1
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2844,1
    - Dst: bt_peer_connection::write_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2845,1
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2846,1
    - Dst: std::shared_ptr<crypto_plugin>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2846,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2850,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2857,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2859,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2859,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2866,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2867,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2868,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2868,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2869,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2869,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2869,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2870,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2870,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2870,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2872,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2874,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2876,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2877,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2883,1
    - Dst: export_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2887,1
    - Dst: get_secret
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2887,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2889,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2890,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2890,1
    - Dst: sha1_hash::sha1_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2890,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2893,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2895,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2897,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2898,1
    - Dst: search
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2903,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2908,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2910,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2914,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2918,1
    - Dst: std::min
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2918,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2918,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2921,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2921,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2929,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2935,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2937,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2937,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2938,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2939,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2940,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2941,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2942,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2943,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2949,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2952,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2953,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2954,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2954,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2955,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2955,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2957,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2958,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2959,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2959,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2963,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2963,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2965,1
    - Dst: find_encrypted_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2966,1
    - Dst: get_hash_xor_mask
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2966,1
    - Dst: attach_to_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2972,1
    - Dst: torrent*::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2972,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2973,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2974,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2974,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2976,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2977,1
    - Dst: get_hash_xor_mask
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2984,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2986,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2990,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2991,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2992,1
    - Dst: init_pe_rc4_handler
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2995,1
    - Dst: get_secret
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2995,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2996,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2996,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2998,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2999,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3005,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3010,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3010,1
    - Dst: equal
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3013,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3013,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3015,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3020,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3023,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3029,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3029,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3030,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3031,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3032,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3032,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3032,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3033,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3033,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3033,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3035,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3037,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3038,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3039,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3046,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3048,1
    - Dst: char::char
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3048,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3051,1
    - Dst: std::fill
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3054,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3054,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3054,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3055,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3055,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3058,1
    - Dst: search
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3059,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3059,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3064,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3066,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3070,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3074,1
    - Dst: std::min
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3074,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3074,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3077,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3077,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3084,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3089,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3089,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3090,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3091,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3092,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3093,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3094,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3096,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3099,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3109,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3109,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3110,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3113,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3115,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3115,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3116,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3118,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3120,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3123,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3124,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3129,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3132,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3133,1
    - Dst: get_bool
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3137,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3139,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3148,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3158,1
    - Dst: bt_peer_connection::write_pe4_sync
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3163,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3163,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3168,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3170,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3174,1
    - Dst: libtorrent::aux::read_int16
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3184,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3187,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3192,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3202,1
    - Dst: bt_peer_connection::init_bt_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3203,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3211,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3212,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3214,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3216,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3216,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3216,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3218,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3218,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3218,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3220,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3222,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3224,1
    - Dst: libtorrent::aux::read_int16
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3225,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3228,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3232,1
    - Dst: bt_peer_connection::init_bt_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3239,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3241,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3252,1
    - Dst: bt_peer_connection::init_bt_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3258,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3266,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3267,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3269,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3272,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3272,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3272,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3275,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3276,1
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3283,1
    - Dst: bt_peer_connection::switch_recv_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3284,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3286,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3293,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3300,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3302,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3304,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3304,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3306,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3307,1
    - Dst: span::first
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3313,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3317,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3322,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3322,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3325,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3328,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3333,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3334,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3337,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3345,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3347,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3352,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3359,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3360,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3360,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3363,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3370,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3372,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3373,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3376,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3376,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3378,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3388,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3390,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3396,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3398,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3398,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3400,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3401,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3405,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3410,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3412,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3413,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3421,1
    - Dst: data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3421,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3421,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3431,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3440,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3440,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3440,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3441,1
    - Dst: attach_to_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3443,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3443,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3444,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3446,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3447,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3453,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3453,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3456,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3459,1
    - Dst: equal
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3468,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3468,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3468,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3469,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3470,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3472,1
    - Dst: equal
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3474,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3474,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3474,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3475,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3476,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3479,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3481,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3486,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3492,1
    - Dst: bt_peer_connection::write_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3492,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3493,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3495,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3498,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3504,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3505,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3507,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3510,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3513,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3513,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3515,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3516,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3519,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3522,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3522,1
    - Dst: is_print
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3527,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3529,1
    - Dst: identify_client
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3530,1
    - Dst: peer_id
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3530,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3530,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3534,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3534,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3534,1
    - Dst: peer_id::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3534,1
    - Dst: std::shared_ptr::find_peer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3537,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3540,1
    - Dst: peer_connection*::pid
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3540,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3548,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3550,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3554,1
    - Dst: set_pid
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3559,1
    - Dst: identify_client
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3560,1
    - Dst: max_out_request_queue
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3564,1
    - Dst: max_out_request_queue
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3564,1
    - Dst: std::shared_ptr::is_self_connection
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3567,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3569,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3574,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3575,1
    - Dst: on_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3577,1
    - Dst: erase
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3579,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3586,1
    - Dst: bt_peer_connection::write_extensions
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3589,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3592,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3595,1
    - Dst: std::shared_ptr::clear_failcount
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3596,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3596,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3601,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3602,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3605,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3606,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3615,1
    - Dst: bt_peer_connection::write_bitfield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3617,1
    - Dst: bt_peer_connection::write_dht_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3618,1
    - Dst: bt_peer_connection::maybe_send_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3619,1
    - Dst: std::shared_ptr::num_have
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3623,1
    - Dst: maybe_unchoke_this_peer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3628,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3633,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3635,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3635,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3643,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3643,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3643,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3644,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3644,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3644,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3645,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3645,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3652,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3653,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3654,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3655,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3656,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3658,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3660,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3661,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3667,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3668,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3674,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3675,1
    - Dst: incoming_keepalive
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3676,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3677,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3680,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3683,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3686,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3687,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3688,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3688,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3694,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3694,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3694,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3695,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3695,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3695,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3698,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3699,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3703,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3704,1
    - Dst: bt_peer_connection::dispatch_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3706,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3709,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3713,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3713,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3714,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3714,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3715,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3716,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3717,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3717,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3718,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3718,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3723,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3723,1
    - Dst: std::tie
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3733,1
    - Dst: encrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3733,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3736,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3739,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3754,1
    - Dst: empty
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3760,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3765,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3767,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3767,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3775,1
    - Dst: erase
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3788,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3788,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3791,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3792,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3797,1
    - Dst: std::shared_ptr::update_last_upload
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3798,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3808,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3808,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3809,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3811,1
    - Dst: is_send_plaintext
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3812,1
    - Dst: bt_peer_connection::in_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3814,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3816,1
    - Dst: empty
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3819,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3821,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3822,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3824,1
    CyclomaticComplexity: 173
    EdgeCount: 173
    ICount: 685
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3830
      start: 2417
    functionDepth: 5
    functionLinenumber: 2417
    functionLinenumberEnd: 3830
    functionName: bt_peer_connection::write_extensions
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - packet_finished
    - std::move
    - bt_peer_connection::switch_recv_crypto
    - span::size
    - associated_info_hash
    - libtorrent::aux::read_uint32
    - remote
    - sha1_hash::sha1_hash
    - torrent*::info_hash
    - is_recv_plaintext
    - get_bool
    - std::shared_ptr::find_peer
    - bt_peer_connection::write_dht_port
    - export_key
    - hasher::final
    - is_ssl
    - aux::numeric_cast<std::size_t>
    - get_hash_xor_mask
    - libtorrent::aux::read_int16
    - std::shared_ptr<crypto_plugin>
    - std::set::find
    - crypto_packet_size
    - entry::to_string
    - span::data
    - std::shared_ptr::is_upload_only
    - is_disconnecting
    - TORRENT_ASSERT
    - bt_peer_connection::write_pe4_sync
    - libtorrent::aux::write_uint8
    - piece_index_t
    - bencode
    - span::subspan
    - std::memcpy
    - set_pid
    - init_pe_rc4_handler
    - append_const_send_buffer
    - bt_peer_connection::write_bitfield
    - append_send_buffer
    - peer_info_struct
    - sent_bytes
    - std::back_inserter
    - last_protocol_downloaded
    - std::shared_ptr::is_self_connection
    - std::make_tuple
    - cut
    - get
    - std::set::insert
    - disconnect
    - std::vector::size
    - std::shared_ptr::ready_for_connections
    - stats_counters
    - associated_torrent
    - std::uint32_t
    - bt_peer_connection::on_receive_impl
    - on_handshake
    - data
    - std::shared_ptr::share_mode
    - send_message
    - peer_id::data
    - end
    - find_encrypted_torrent
    - get_socket
    - advance_pos
    - span::begin
    - libtorrent::aux::read_int32
    - mutable_buffer
    - send_buffer
    - bt_peer_connection::write_pe1_2_dhkey
    - libtorrent::aux::to_hex
    - info_hash_t
    - encrypt
    - libtorrent::aux::write_int32
    - incoming_keepalive
    - std::shared_ptr::block_size
    - std::shared_ptr::valid_metadata
    - sha1_hash::data
    - maybe_unchoke_this_peer
    - peer_connection*::disconnect
    - std::shared_ptr::time_since_complete
    - std::tie
    - std::fill
    - std::int64_t
    - local_endpoint
    - add_handshake
    - compute_secret
    - std::shared_ptr::num_have
    - peer_log
    - static_cast<int>
    - empty
    - is_mutable
    - std::min
    - emplace_back
    - std::shared_ptr::is_ssl_torrent
    - std::shared_ptr::update_last_upload
    - is_send_plaintext
    - bt_peer_connection::rc4_decrypt
    - reset
    - statistics
    - span::first
    - reinterpret_cast<std::uint8_t const*>
    - std::copy
    - bt_peer_connection::in_handshake
    - char::char
    - std::shared_ptr::super_seeding
    - erase
    - is_outgoing
    - is_i2p
    - last_payload_downloaded
    - max_out_request_queue
    - decrypt
    - std::shared_ptr::info_hash
    - std::string::c_str
    - dict
    - bt_peer_connection::dispatch_message
    - setup_send
    - equal
    - hasher::update
    - send_buffer_size
    - entry::dictionary_type::const_iterator::second::integer
    - search
    - std::string::reserve
    - bt_peer_connection::init_bt_handshake
    - packet_size
    - begin
    - aux::numeric_cast<int>
    - std::shared_ptr::last_seen_complete
    - entry::dictionary_type::const_iterator::second::type
    - std::shared_ptr::clear_failcount
    - bt_peer_connection::maybe_send_hash_request
    - std::shared_ptr::get_handle
    - pid
    - received_bytes
    - crypto_packet_finished
    - listen_port
    - get_int
    - std::size_t
    - bt_peer_connection::write_pe3_sync
    - bt_peer_connection::switch_send_crypto
    - get_str
    - bt_peer_connection::write_extensions
    - attach_to_torrent
    - libtorrent::aux::max
    - bt_peer_connection::write_handshake
    - is_choked
    - bt_peer_connection::extension_notify
    - is_print
    - std::shared_ptr::alerts
    - get_secret
    - peer_id
    - libtorrent::aux::write_address
    - std::set::end
    - identify_client
    - peer_connection*::pid
    - should_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_extensions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_choked
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2550,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2551,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2546
    functionDepth: 1
    functionLinenumber: 2546
    functionLinenumberEnd: 2556
    functionName: bt_peer_connection::write_choke
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - send_message
    - bt_peer_connection::extension_notify
    - is_choked
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_choke()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2562,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2558
    functionDepth: 1
    functionLinenumber: 2558
    functionLinenumberEnd: 2567
    functionName: bt_peer_connection::write_unchoke
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - bt_peer_connection::extension_notify
    - send_message
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_unchoke()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2573,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2578
    functionName: bt_peer_connection::write_interested
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - bt_peer_connection::extension_notify
    - send_message
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2584,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2580
    functionDepth: 1
    functionLinenumber: 2580
    functionLinenumberEnd: 2589
    functionName: bt_peer_connection::write_not_interested
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - bt_peer_connection::extension_notify
    - send_message
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_not_interested()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2594,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2594,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2595,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2595,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2596,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2596,1
    - Dst: send_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2602,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2603,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2591
    functionDepth: 1
    functionLinenumber: 2591
    functionLinenumberEnd: 2608
    functionName: bt_peer_connection::write_have
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - send_message
    - associated_torrent
    - TORRENT_ASSERT
    - piece_index_t
    - bt_peer_connection::extension_notify
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_have(piece_index_t const index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2613,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2613,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2614,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2614,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2615,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2615,1
    - Dst: bt_peer_connection::in_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2617,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2619,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2620,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2626,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2626,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2627,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2610
    functionDepth: 1
    functionLinenumber: 2610
    functionLinenumberEnd: 2630
    functionName: bt_peer_connection::write_dont_have
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - send_buffer
    - stats_counters
    - associated_torrent
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - bt_peer_connection::in_handshake
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_dont_have(piece_index_t const index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2636,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2637,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2638,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2640,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2641,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2652,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2653,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2654,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2655,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2655,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2656,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2658,1
    - Dst: disk_buffer_holder::is_mutable
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2660,1
    - Dst: append_send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2662,1
    - Dst: std::move
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2662,1
    - Dst: append_const_send_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2666,1
    - Dst: std::move
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2666,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2669,1
    - Dst: send_buffer_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2669,1
    - Dst: setup_send
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2670,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2672,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2674,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2676,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2676,1
    - Dst: remote
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2677,1
    - Dst: pid
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2677,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2677,1
    - Dst: bt_peer_connection::extension_notify
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - ' r'
    - buffer
    argTypes:
    - peer_request
    - disk_buffer_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2632
    functionDepth: 1
    functionLinenumber: 2632
    functionLinenumberEnd: 2683
    functionName: bt_peer_connection::write_piece
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::move
    - stats_counters
    - associated_torrent
    - remote
    - emplace_back
    - std::shared_ptr::get_handle
    - pid
    - send_buffer
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint8
    - std::shared_ptr::block_size
    - bt_peer_connection::extension_notify
    - disk_buffer_holder::is_mutable
    - append_const_send_buffer
    - std::shared_ptr::alerts
    - setup_send
    - append_send_buffer
    - send_buffer_size
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::write_piece(peer_request const& r, disk_buffer_holder
      buffer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2696,1
    - Dst: is_recv_plaintext
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2705,1
    - Dst: decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2707,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2710,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2715,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2718,1
    - Dst: crypto_packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2721,1
    - Dst: crypto_packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2722,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2724,1
    - Dst: advance_pos
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2730,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2733,1
    - Dst: last_protocol_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2736,1
    - Dst: bt_peer_connection::on_receive_impl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2737,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2737,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2738,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2741,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2741,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2742,1
    - Dst: last_protocol_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2742,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2743,1
    - Dst: last_protocol_downloaded
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2744,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2745,1
    - Dst: bt_peer_connection::on_receive_impl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2753,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2754
    functionName: bt_peer_connection::on_receive
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - received_bytes
    - crypto_packet_finished
    - crypto_packet_size
    - decrypt
    - bt_peer_connection::on_receive_impl
    - TORRENT_ASSERT
    - is_recv_plaintext
    - std::size_t
    - last_protocol_downloaded
    - peer_log
    - advance_pos
    - last_payload_downloaded
    - disconnect
    linkageType: ''
    returnType: void
    signature: "void bt_peer_connection::on_receive(error_code const& error\n\t\t,
      std::size_t bytes_transferred)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2762,1
    - Dst: bt_peer_connection::switch_recv_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2763,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2769,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2770,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2771,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2774,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2775,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2778,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2782,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2783,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2786,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2757
    functionDepth: 2
    functionLinenumber: 2757
    functionLinenumberEnd: 2791
    functionName: bt_peer_connection::init_bt_handshake
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - bt_peer_connection::rc4_decrypt
    - reset
    - packet_size
    - mutable_buffer
    - bt_peer_connection::switch_recv_crypto
    - span::size
    - TORRENT_ASSERT
    - get_int
    - peer_info_struct
    - is_outgoing
    - bt_peer_connection::switch_send_crypto
    - peer_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::init_bt_handshake()
  - BBCount: 95
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2796,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2798,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2806,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2808,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2809,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2810,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2810,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2811,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2811,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2811,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2812,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2812,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2812,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2814,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2818,1
    - Dst: bt_peer_connection::write_pe1_2_dhkey
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2818,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2819,1
    - Dst: compute_secret
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2822,1
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2823,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2823,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2826,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2836,1
    - Dst: bt_peer_connection::write_pe3_sync
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2839,1
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2844,1
    - Dst: bt_peer_connection::write_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2845,1
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2846,1
    - Dst: std::shared_ptr<crypto_plugin>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2846,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2850,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2857,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2859,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2859,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2866,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2867,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2868,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2868,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2869,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2869,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2869,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2870,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2870,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2870,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2872,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2874,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2876,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2877,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2883,1
    - Dst: export_key
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2887,1
    - Dst: get_secret
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2887,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2889,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2890,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2890,1
    - Dst: sha1_hash::sha1_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2890,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2893,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2895,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2897,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2898,1
    - Dst: search
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2903,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2908,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2910,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2914,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2918,1
    - Dst: std::min
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2918,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2918,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2921,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2921,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2929,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2935,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2937,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2937,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2938,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2939,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2940,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2941,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2942,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2943,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2949,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2952,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2953,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2954,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2954,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2955,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2955,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2957,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2958,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2959,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2959,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2963,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2963,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2965,1
    - Dst: find_encrypted_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2966,1
    - Dst: get_hash_xor_mask
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2966,1
    - Dst: attach_to_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2972,1
    - Dst: torrent*::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2972,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2973,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2974,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2974,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2976,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2977,1
    - Dst: get_hash_xor_mask
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2984,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2986,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2990,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2991,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2992,1
    - Dst: init_pe_rc4_handler
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2995,1
    - Dst: get_secret
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2995,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2996,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2996,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2998,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:2999,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3005,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3010,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3010,1
    - Dst: equal
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3013,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3013,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3015,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3020,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3023,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3029,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3029,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3030,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3031,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3032,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3032,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3032,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3033,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3033,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3033,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3035,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3037,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3038,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3039,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3046,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3048,1
    - Dst: char::char
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3048,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3051,1
    - Dst: std::fill
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3054,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3054,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3054,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3055,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3055,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3058,1
    - Dst: search
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3059,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3059,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3064,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3066,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3070,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3074,1
    - Dst: std::min
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3074,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3074,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3077,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3077,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3084,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3089,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3089,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3090,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3091,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3092,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3093,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3094,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3096,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3099,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3109,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3109,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3110,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3113,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3115,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3115,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3116,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3118,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3120,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3123,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3124,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3129,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3132,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3133,1
    - Dst: get_bool
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3137,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3139,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3148,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3158,1
    - Dst: bt_peer_connection::write_pe4_sync
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3163,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3163,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3168,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3170,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3174,1
    - Dst: libtorrent::aux::read_int16
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3184,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3187,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3192,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3202,1
    - Dst: bt_peer_connection::init_bt_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3203,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3211,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3212,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3214,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3216,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3216,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3216,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3218,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3218,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3218,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3220,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3222,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3224,1
    - Dst: libtorrent::aux::read_int16
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3225,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3228,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3232,1
    - Dst: bt_peer_connection::init_bt_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3239,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3241,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3252,1
    - Dst: bt_peer_connection::init_bt_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3258,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3266,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3267,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3269,1
    - Dst: bt_peer_connection::rc4_decrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3272,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3272,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3272,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3275,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3276,1
    - Dst: bt_peer_connection::switch_send_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3283,1
    - Dst: bt_peer_connection::switch_recv_crypto
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3284,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3286,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3293,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3300,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3302,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3304,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3304,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3306,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3307,1
    - Dst: span::first
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3313,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3317,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3322,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3322,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3325,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3328,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3333,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3334,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3337,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3345,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3347,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3352,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3359,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3360,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3360,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3363,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3370,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3372,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3373,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3376,1
    - Dst: get_socket
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3376,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3378,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3388,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3390,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3396,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3398,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3398,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3400,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3401,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3405,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3410,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3412,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3413,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3421,1
    - Dst: data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3421,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3421,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3431,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3440,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3440,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3440,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3441,1
    - Dst: attach_to_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3443,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3443,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3444,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3446,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3447,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3453,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3453,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3456,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3459,1
    - Dst: equal
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3468,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3468,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3468,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3469,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3470,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3472,1
    - Dst: equal
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3474,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3474,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3474,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3475,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3476,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3479,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3481,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3486,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3492,1
    - Dst: bt_peer_connection::write_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3492,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3493,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3495,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3498,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3504,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3505,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3507,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3510,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3513,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3513,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3515,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3516,1
    - Dst: should_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3519,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3522,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3522,1
    - Dst: is_print
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3527,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3529,1
    - Dst: identify_client
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3530,1
    - Dst: peer_id
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3530,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3530,1
    - Dst: std::copy
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3534,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3534,1
    - Dst: span::begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3534,1
    - Dst: peer_id::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3534,1
    - Dst: std::shared_ptr::find_peer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3537,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3540,1
    - Dst: peer_connection*::pid
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3540,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3548,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3550,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3554,1
    - Dst: set_pid
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3559,1
    - Dst: identify_client
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3560,1
    - Dst: max_out_request_queue
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3564,1
    - Dst: max_out_request_queue
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3564,1
    - Dst: std::shared_ptr::is_self_connection
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3567,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3569,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3574,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3575,1
    - Dst: on_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3577,1
    - Dst: erase
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3579,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3586,1
    - Dst: bt_peer_connection::write_extensions
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3589,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3592,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3595,1
    - Dst: std::shared_ptr::clear_failcount
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3596,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3596,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3601,1
    - Dst: get_int
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3602,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3605,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3606,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3615,1
    - Dst: bt_peer_connection::write_bitfield
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3617,1
    - Dst: bt_peer_connection::write_dht_port
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3618,1
    - Dst: bt_peer_connection::maybe_send_hash_request
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3619,1
    - Dst: std::shared_ptr::num_have
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3623,1
    - Dst: maybe_unchoke_this_peer
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3628,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3633,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3635,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3635,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3643,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3643,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3643,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3644,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3644,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3644,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3645,1
    - Dst: packet_size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3645,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3652,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3653,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3654,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3655,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3656,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3658,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3660,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3661,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3667,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3668,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3674,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3675,1
    - Dst: incoming_keepalive
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3676,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3677,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3680,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3683,1
    - Dst: cut
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3686,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3687,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3688,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3688,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3694,1
    - Dst: span::data
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3694,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3694,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3695,1
    - Dst: span::size
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3695,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3695,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3698,1
    - Dst: disconnect
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3699,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3703,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3704,1
    - Dst: bt_peer_connection::dispatch_message
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3706,1
    - Dst: reset
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3709,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3713,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3713,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3714,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3714,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3715,1
    - Dst: statistics
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3716,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3717,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3717,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3718,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3718,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3723,1
    - Dst: packet_finished
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3723,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 482
    argCount: 1
    argNames:
    - bytes_transferred
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 2794
    functionDepth: 6
    functionLinenumber: 2794
    functionLinenumberEnd: 3724
    functionName: bt_peer_connection::on_receive_impl
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 2
    functionsReached:
    - packet_finished
    - span::size
    - libtorrent::aux::read_uint32
    - associated_info_hash
    - bt_peer_connection::switch_recv_crypto
    - sha1_hash::sha1_hash
    - torrent*::info_hash
    - get_bool
    - std::shared_ptr::find_peer
    - bt_peer_connection::write_dht_port
    - export_key
    - hasher::final
    - is_ssl
    - aux::numeric_cast<std::size_t>
    - get_hash_xor_mask
    - libtorrent::aux::read_int16
    - std::shared_ptr<crypto_plugin>
    - span::data
    - is_disconnecting
    - bt_peer_connection::write_pe4_sync
    - TORRENT_ASSERT
    - span::subspan
    - std::memcpy
    - set_pid
    - init_pe_rc4_handler
    - bt_peer_connection::write_bitfield
    - peer_info_struct
    - std::shared_ptr::is_self_connection
    - cut
    - get
    - disconnect
    - std::shared_ptr::ready_for_connections
    - associated_torrent
    - std::uint32_t
    - on_handshake
    - data
    - peer_id::data
    - end
    - find_encrypted_torrent
    - get_socket
    - span::begin
    - libtorrent::aux::read_int32
    - mutable_buffer
    - libtorrent::aux::to_hex
    - bt_peer_connection::write_pe1_2_dhkey
    - info_hash_t
    - incoming_keepalive
    - std::shared_ptr::valid_metadata
    - sha1_hash::data
    - maybe_unchoke_this_peer
    - peer_connection*::disconnect
    - std::fill
    - std::int64_t
    - compute_secret
    - std::shared_ptr::num_have
    - peer_log
    - std::min
    - bt_peer_connection::rc4_decrypt
    - reset
    - statistics
    - span::first
    - reinterpret_cast<std::uint8_t const*>
    - std::copy
    - char::char
    - erase
    - is_outgoing
    - max_out_request_queue
    - std::shared_ptr::info_hash
    - std::string::c_str
    - bt_peer_connection::dispatch_message
    - equal
    - hasher::update
    - search
    - std::string::reserve
    - bt_peer_connection::init_bt_handshake
    - packet_size
    - begin
    - aux::numeric_cast<int>
    - bt_peer_connection::maybe_send_hash_request
    - std::shared_ptr::clear_failcount
    - received_bytes
    - get_int
    - bt_peer_connection::write_pe3_sync
    - std::size_t
    - bt_peer_connection::switch_send_crypto
    - bt_peer_connection::write_extensions
    - attach_to_torrent
    - libtorrent::aux::max
    - bt_peer_connection::write_handshake
    - is_print
    - get_secret
    - peer_id
    - identify_client
    - peer_connection*::pid
    - should_log
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::on_receive_impl(std::size_t bytes_transferred)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3733,1
    - Dst: encrypt
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3733,1
    - Dst: peer_log
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3736,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - iovec
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3727
    functionDepth: 1
    functionLinenumber: 3727
    functionLinenumberEnd: 3740
    functionName: bt_peer_connection::hit_send_barrier
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - peer_log
    - encrypt
    - std::tie
    linkageType: ''
    returnType: std::tuple<int, span<span<char const>>>
    signature: "std::tuple<int, span<span<char const>>> bt_peer_connection::hit_send_barrier(\n\t\tspan<span<char>>
      iovec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sent_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3754,1
    - Dst: empty
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3760,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3765,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3767,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3767,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3775,1
    - Dst: erase
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3788,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3788,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3791,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3792,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3797,1
    - Dst: std::shared_ptr::update_last_upload
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3800
      start: 3747
    functionDepth: 1
    functionLinenumber: 3747
    functionLinenumberEnd: 3800
    functionName: bt_peer_connection::on_sent
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - begin
    - associated_torrent
    - erase
    - empty
    - end
    - TORRENT_ASSERT
    - sent_bytes
    - std::shared_ptr::update_last_upload
    linkageType: ''
    returnType: void
    signature: "void bt_peer_connection::on_sent(error_code const& error\n\t\t, std::size_t
      const bytes_transferred)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3808,1
    - Dst: get
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3808,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3809,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3811,1
    - Dst: is_send_plaintext
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3812,1
    - Dst: bt_peer_connection::in_handshake
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3814,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3816,1
    - Dst: empty
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3819,1
    - Dst: begin
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3821,1
    - Dst: end
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3822,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bt_peer_connection.cpp:3824,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3827
      start: 3803
    functionDepth: 1
    functionLinenumber: 3803
    functionLinenumberEnd: 3827
    functionName: bt_peer_connection::check_invariant
    functionSourceFile: /src/libtorrent/src/bt_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - begin
    - associated_torrent
    - empty
    - end
    - TORRENT_ASSERT
    - is_outgoing
    - bt_peer_connection::in_handshake
    - get
    - is_send_plaintext
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection::check_invariant() const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: string_view::begin
      Src: /src/libtorrent/src/escape_string.cpp:71,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:71,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:84,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:101,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - s
    - ' ec'
    argTypes:
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 121
    functionName: libtorrent::unescape_string
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::begin
    - string_view::end
    linkageType: ''
    returnType: std::string
    signature: std::string unescape_string(string_view s, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:144,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:146,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/escape_string.cpp:151,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/escape_string.cpp:158,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/escape_string.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - str
    - len
    - offset
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: libtorrent::escape_string_impl
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::strchr
    - std::uint8_t
    linkageType: ''
    returnType: std::string
    signature: std::string escape_string_impl(const char* str, int const len, int
      const offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:144,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:146,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/escape_string.cpp:151,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/escape_string.cpp:158,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/escape_string.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - str
    - len
    - offset
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: libtorrent::escape_string_impl
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::strchr
    - std::uint8_t
    linkageType: ''
    returnType: std::string
    signature: std::string escape_string_impl(const char* str, int const len, int
      const offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::escape_string_impl
      Src: /src/libtorrent/src/escape_string.cpp:170,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/escape_string.cpp:170,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: libtorrent::escape_string
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::size
    - libtorrent::escape_string_impl
    - string_view::data
    linkageType: ''
    returnType: std::string
    signature: std::string escape_string(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::escape_string_impl
      Src: /src/libtorrent/src/escape_string.cpp:175,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/escape_string.cpp:175,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: libtorrent::escape_path
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::size
    - libtorrent::escape_string_impl
    - string_view::data
    linkageType: ''
    returnType: std::string
    signature: std::string escape_path(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strchr
      Src: /src/libtorrent/src/escape_string.cpp:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: libtorrent::need_encoding
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - std::strchr
    linkageType: ''
    returnType: bool
    signature: bool need_encoding(char const* str, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::replace
      Src: /src/libtorrent/src/escape_string.cpp:191,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/escape_string.cpp:191,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/escape_string.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: libtorrent::convert_path_to_posix
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - std::replace
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: void
    signature: void convert_path_to_posix(std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' str'
    - delim
    - end
    argTypes:
    - char*
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: libtorrent::read_until
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: std::string
    signature: std::string read_until(char const*& str, char const delim, char const*
      end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/escape_string.cpp:215,1
    - Dst: libtorrent::parse_url_components
      Src: /src/libtorrent/src/escape_string.cpp:215,1
    - Dst: libtorrent::need_encoding
      Src: /src/libtorrent/src/escape_string.cpp:219,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:219,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:219,1
    - Dst: libtorrent::escape_path
      Src: /src/libtorrent/src/escape_string.cpp:223,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/escape_string.cpp:226,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:226,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:227,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:228,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:230,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:231,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:232,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/escape_string.cpp:233,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:235,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:236,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:238,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:241,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:242,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/escape_string.cpp:242,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 247
    functionName: libtorrent::maybe_url_encode
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - std::string::append
    - libtorrent::size
    - c_str
    - std::tie
    - std::string::size
    - libtorrent::parse_url_components
    - libtorrent::to_string
    - libtorrent::empty
    - libtorrent::escape_path
    - libtorrent::need_encoding
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string maybe_url_encode(std::string const& url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbegin
      Src: /src/libtorrent/src/escape_string.cpp:267,1
    - Dst: cend
      Src: /src/libtorrent/src/escape_string.cpp:267,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/escape_string.cpp:271,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/escape_string.cpp:271,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/escape_string.cpp:271,1
    - Dst: aux::array::fill
      Src: /src/libtorrent/src/escape_string.cpp:274,1
    - Dst: std::copy
      Src: /src/libtorrent/src/escape_string.cpp:277,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/escape_string.cpp:277,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/escape_string.cpp:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 299
    functionName: libtorrent::base64encode
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - cbegin
    - aux::array::fill
    - aux::array::begin
    - cend
    - std::copy
    - libtorrent::end
    - aux::array::size
    linkageType: ''
    returnType: std::string
    signature: std::string base64encode(const std::string& s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:307,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:309,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:311,1
    - Dst: system_error
      Src: /src/libtorrent/src/escape_string.cpp:314,1
    - Dst: error_code
      Src: /src/libtorrent/src/escape_string.cpp:314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: libtorrent::map_base64_char
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - error_code
    - std::uint32_t
    - system_error
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t map_base64_char(char const c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:307,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:309,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:311,1
    - Dst: system_error
      Src: /src/libtorrent/src/escape_string.cpp:314,1
    - Dst: error_code
      Src: /src/libtorrent/src/escape_string.cpp:314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: libtorrent::map_base64_char
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - error_code
    - std::uint32_t
    - system_error
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t map_base64_char(char const c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::map_base64_char
      Src: /src/libtorrent/src/escape_string.cpp:328,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/escape_string.cpp:331,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/escape_string.cpp:333,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/escape_string.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:334,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:336,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/escape_string.cpp:347,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/escape_string.cpp:349,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/escape_string.cpp:349,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:350,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 355
    functionName: libtorrent::base64decode_i2p
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - aux::array::data
    - std::memcpy
    - std::vector::push_back
    - libtorrent::aux::host_to_network
    - libtorrent::map_base64_char
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> base64decode_i2p(string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/escape_string.cpp:373,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/escape_string.cpp:373,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/escape_string.cpp:375,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/escape_string.cpp:375,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/escape_string.cpp:375,1
    - Dst: aux::array::fill
      Src: /src/libtorrent/src/escape_string.cpp:378,1
    - Dst: std::copy
      Src: /src/libtorrent/src/escape_string.cpp:381,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/escape_string.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 401
    functionName: libtorrent::base32encode_i2p
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - aux::array::fill
    - aux::array::begin
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - aux::array::size
    linkageType: ''
    returnType: std::string
    signature: std::string base32encode_i2p(span<char const> s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: string_view::begin
      Src: /src/libtorrent/src/escape_string.cpp:410,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:410,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/escape_string.cpp:412,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/escape_string.cpp:412,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:412,1
    - Dst: aux::array::fill
      Src: /src/libtorrent/src/escape_string.cpp:418,1
    - Dst: std::toupper
      Src: /src/libtorrent/src/escape_string.cpp:421,1
    - Dst: std::string
      Src: /src/libtorrent/src/escape_string.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:435,1
    - Dst: std::copy
      Src: /src/libtorrent/src/escape_string.cpp:456,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/escape_string.cpp:456,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/escape_string.cpp:456,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/escape_string.cpp:456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 459
    functionName: libtorrent::base32decode
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - string_view::end
    - aux::array::fill
    - aux::array::begin
    - std::string
    - TORRENT_ASSERT
    - std::copy
    - aux::array::size
    - std::back_inserter
    - std::toupper
    - string_view::begin
    linkageType: ''
    returnType: std::string
    signature: std::string base32decode(string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find_first_not_of
      Src: /src/libtorrent/src/escape_string.cpp:463,1
    - Dst: string_view::find_last_not_of
      Src: /src/libtorrent/src/escape_string.cpp:464,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:465,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: libtorrent::trim
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::find_first_not_of
    - string_view::substr
    - string_view::find_last_not_of
    - string_view::size
    linkageType: ''
    returnType: string_view
    signature: string_view trim(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - haystack
    - needle
    - pos
    argTypes:
    - string_view
    - string_view
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: libtorrent::find
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    linkageType: ''
    returnType: string_view::size_type
    signature: string_view::size_type find(string_view haystack, string_view needle,
      string_view::size_type pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:479,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:479,1
    - Dst: MultiByteToWideChar
      Src: /src/libtorrent/src/escape_string.cpp:480,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:480,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:480,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 485
    functionName: libtorrent::convert_to_wstring
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - std::wstring::resize
    - libtorrent::size
    - c_str
    - std::wstring::size
    - MultiByteToWideChar
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring convert_to_wstring(std::string const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:490,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:490,1
    - Dst: WideCharToMultiByte
      Src: /src/libtorrent/src/escape_string.cpp:491,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:491,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:492,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: libtorrent::convert_from_wstring
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - c_str
    - std::string::resize
    - WideCharToMultiByte
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_wstring(std::wstring const& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetACP
      Src: /src/libtorrent/src/escape_string.cpp:509,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:513,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:513,1
    - Dst: MultiByteToWideChar
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:516,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:519,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:519,1
    - Dst: WideCharToMultiByte
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::wstring::c_str
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ' s'
    - from
    - to
    argTypes:
    - std::string
    - UINT
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: libtorrent::convert_impl
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - std::wstring::resize
    - libtorrent::size
    - c_str
    - std::wstring::size
    - std::string::resize
    - GetACP
    - WideCharToMultiByte
    - std::wstring::c_str
    - MultiByteToWideChar
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string convert_impl(std::string const& s, UINT from, UINT to)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetACP
      Src: /src/libtorrent/src/escape_string.cpp:509,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:513,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:513,1
    - Dst: MultiByteToWideChar
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:516,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:519,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:519,1
    - Dst: WideCharToMultiByte
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::wstring::c_str
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ' s'
    - from
    - to
    argTypes:
    - std::string
    - UINT
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: libtorrent::convert_impl
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - std::wstring::resize
    - libtorrent::size
    - c_str
    - std::wstring::size
    - std::string::resize
    - GetACP
    - WideCharToMultiByte
    - std::wstring::c_str
    - MultiByteToWideChar
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string convert_impl(std::string const& s, UINT from, UINT to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_impl
      Src: /src/libtorrent/src/escape_string.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: libtorrent::convert_to_native
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_impl
    linkageType: ''
    returnType: std::string
    signature: std::string convert_to_native(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_impl
      Src: /src/libtorrent/src/escape_string.cpp:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: libtorrent::convert_from_native
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_impl
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_native(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:543,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:543,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - suffix
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 545
    functionName: libtorrent::ends_with
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - string_view::size
    linkageType: ''
    returnType: bool
    signature: bool ends_with(string_view s, string_view suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/libtorrent/src/escape_string.cpp:549,1
    - Dst: libtorrent::ends_with
      Src: /src/libtorrent/src/escape_string.cpp:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: libtorrent::has_utf8_locale
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - std::getenv
    - libtorrent::ends_with
    linkageType: ''
    returnType: bool
    signature: bool has_utf8_locale()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_utf8_locale
      Src: /src/libtorrent/src/escape_string.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: libtorrent::need_conversion
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::has_utf8_locale
    linkageType: ''
    returnType: bool
    signature: bool need_conversion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:543,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:543,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - suffix
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 545
    functionName: libtorrent::ends_with
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - string_view::substr
    - string_view::size
    linkageType: ''
    returnType: bool
    signature: bool ends_with(string_view s, string_view suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/libtorrent/src/escape_string.cpp:549,1
    - Dst: libtorrent::ends_with
      Src: /src/libtorrent/src/escape_string.cpp:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: libtorrent::has_utf8_locale
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - std::getenv
    - libtorrent::ends_with
    linkageType: ''
    returnType: bool
    signature: bool has_utf8_locale()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_utf8_locale
      Src: /src/libtorrent/src/escape_string.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: libtorrent::need_conversion
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::has_utf8_locale
    linkageType: ''
    returnType: bool
    signature: bool need_conversion()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::need_conversion
      Src: /src/libtorrent/src/escape_string.cpp:563,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/escape_string.cpp:568,1
    - Dst: std::tie
      Src: /src/libtorrent/src/escape_string.cpp:574,1
    - Dst: libtorrent::parse_utf8_codepoint
      Src: /src/libtorrent/src/escape_string.cpp:574,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:579,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/escape_string.cpp:579,1
    - Dst: std::wcrtomb
      Src: /src/libtorrent/src/escape_string.cpp:582,1
    - Dst: static_cast<wchar_t>
      Src: /src/libtorrent/src/escape_string.cpp:582,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/escape_string.cpp:583,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 593
    functionName: libtorrent::convert_to_native
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::need_conversion
    - string_view::substr
    - static_cast<wchar_t>
    - std::tie
    - libtorrent::parse_utf8_codepoint
    - std::wcrtomb
    - static_cast<std::size_t>
    - string_view::empty
    - std::size_t
    linkageType: ''
    returnType: std::string
    signature: std::string convert_to_native(std::string const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::need_conversion
      Src: /src/libtorrent/src/escape_string.cpp:597,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/escape_string.cpp:602,1
    - Dst: std::mbrtowc
      Src: /src/libtorrent/src/escape_string.cpp:605,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/escape_string.cpp:605,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:605,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/escape_string.cpp:606,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/src/escape_string.cpp:608,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:610,1
    - Dst: libtorrent::append_utf8_codepoint
      Src: /src/libtorrent/src/escape_string.cpp:614,1
    - Dst: static_cast<std::int32_t>
      Src: /src/libtorrent/src/escape_string.cpp:614,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 620
    functionName: libtorrent::convert_from_native
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::need_conversion
    - std::mbrtowc
    - string_view::substr
    - libtorrent::append_utf8_codepoint
    - string_view::data
    - static_cast<std::size_t>
    - string_view::empty
    - string_view::size
    - std::string::push_back
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_native(std::string const& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: string_view::begin
      Src: /src/libtorrent/src/escape_string.cpp:71,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:71,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:84,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:101,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - s
    - ' ec'
    argTypes:
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 121
    functionName: libtorrent::unescape_string
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::begin
    - string_view::end
    linkageType: ''
    returnType: std::string
    signature: std::string unescape_string(string_view s, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:144,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:146,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/escape_string.cpp:151,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/escape_string.cpp:158,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/escape_string.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - str
    - len
    - offset
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: libtorrent::escape_string_impl
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - std::strchr
    - std::uint8_t
    linkageType: ''
    returnType: std::string
    signature: std::string escape_string_impl(const char* str, int const len, int
      const offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:144,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:146,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/escape_string.cpp:151,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/escape_string.cpp:158,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/escape_string.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - str
    - len
    - offset
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: libtorrent::escape_string_impl
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - std::strchr
    - std::uint8_t
    linkageType: ''
    returnType: std::string
    signature: std::string escape_string_impl(const char* str, int const len, int
      const offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::escape_string_impl
      Src: /src/libtorrent/src/escape_string.cpp:170,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/escape_string.cpp:170,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: libtorrent::escape_string
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::size
    - libtorrent::escape_string_impl
    - string_view::data
    linkageType: ''
    returnType: std::string
    signature: std::string escape_string(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::escape_string_impl
      Src: /src/libtorrent/src/escape_string.cpp:175,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/escape_string.cpp:175,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: libtorrent::escape_path
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - string_view::size
    - libtorrent::escape_string_impl
    - string_view::data
    linkageType: ''
    returnType: std::string
    signature: std::string escape_path(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strchr
      Src: /src/libtorrent/src/escape_string.cpp:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: libtorrent::need_encoding
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - std::strchr
    linkageType: ''
    returnType: bool
    signature: bool need_encoding(char const* str, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::replace
      Src: /src/libtorrent/src/escape_string.cpp:191,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/escape_string.cpp:191,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/escape_string.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: libtorrent::convert_path_to_posix
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - std::replace
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: void
    signature: void convert_path_to_posix(std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' str'
    - delim
    - end
    argTypes:
    - char*
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: libtorrent::read_until
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: std::string
    signature: std::string read_until(char const*& str, char const delim, char const*
      end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/escape_string.cpp:215,1
    - Dst: libtorrent::parse_url_components
      Src: /src/libtorrent/src/escape_string.cpp:215,1
    - Dst: libtorrent::need_encoding
      Src: /src/libtorrent/src/escape_string.cpp:219,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:219,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:219,1
    - Dst: libtorrent::escape_path
      Src: /src/libtorrent/src/escape_string.cpp:223,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/escape_string.cpp:226,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:226,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:227,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:228,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:230,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:231,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:232,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/escape_string.cpp:233,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:235,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:236,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:238,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:241,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:242,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/escape_string.cpp:242,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/escape_string.cpp:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 247
    functionName: libtorrent::maybe_url_encode
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - std::string::append
    - libtorrent::size
    - c_str
    - std::tie
    - std::string::size
    - libtorrent::parse_url_components
    - libtorrent::to_string
    - libtorrent::empty
    - libtorrent::escape_path
    - libtorrent::need_encoding
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string maybe_url_encode(std::string const& url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbegin
      Src: /src/libtorrent/src/escape_string.cpp:267,1
    - Dst: cend
      Src: /src/libtorrent/src/escape_string.cpp:267,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/escape_string.cpp:271,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/escape_string.cpp:271,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/escape_string.cpp:271,1
    - Dst: aux::array::fill
      Src: /src/libtorrent/src/escape_string.cpp:274,1
    - Dst: std::copy
      Src: /src/libtorrent/src/escape_string.cpp:277,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/escape_string.cpp:277,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/escape_string.cpp:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 299
    functionName: libtorrent::base64encode
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - cbegin
    - aux::array::fill
    - aux::array::begin
    - cend
    - std::copy
    - libtorrent::end
    - aux::array::size
    linkageType: ''
    returnType: std::string
    signature: std::string base64encode(const std::string& s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:307,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:309,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:311,1
    - Dst: system_error
      Src: /src/libtorrent/src/escape_string.cpp:314,1
    - Dst: error_code
      Src: /src/libtorrent/src/escape_string.cpp:314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: libtorrent::map_base64_char
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - error_code
    - std::uint32_t
    - system_error
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t map_base64_char(char const c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:307,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:309,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/escape_string.cpp:311,1
    - Dst: system_error
      Src: /src/libtorrent/src/escape_string.cpp:314,1
    - Dst: error_code
      Src: /src/libtorrent/src/escape_string.cpp:314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: libtorrent::map_base64_char
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - error_code
    - std::uint32_t
    - system_error
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t map_base64_char(char const c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::map_base64_char
      Src: /src/libtorrent/src/escape_string.cpp:328,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/escape_string.cpp:331,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/escape_string.cpp:333,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/escape_string.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:334,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:336,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/escape_string.cpp:347,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/escape_string.cpp:349,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/escape_string.cpp:349,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:350,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/escape_string.cpp:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 355
    functionName: libtorrent::base64decode_i2p
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - aux::array::data
    - std::memcpy
    - std::vector::push_back
    - libtorrent::aux::host_to_network
    - libtorrent::map_base64_char
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> base64decode_i2p(string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/escape_string.cpp:373,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/escape_string.cpp:373,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/escape_string.cpp:375,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/escape_string.cpp:375,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/escape_string.cpp:375,1
    - Dst: aux::array::fill
      Src: /src/libtorrent/src/escape_string.cpp:378,1
    - Dst: std::copy
      Src: /src/libtorrent/src/escape_string.cpp:381,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/escape_string.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 401
    functionName: libtorrent::base32encode_i2p
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - aux::array::fill
    - aux::array::begin
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - aux::array::size
    linkageType: ''
    returnType: std::string
    signature: std::string base32encode_i2p(span<char const> s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: string_view::begin
      Src: /src/libtorrent/src/escape_string.cpp:410,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:410,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/escape_string.cpp:412,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/escape_string.cpp:412,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/escape_string.cpp:412,1
    - Dst: aux::array::fill
      Src: /src/libtorrent/src/escape_string.cpp:418,1
    - Dst: std::toupper
      Src: /src/libtorrent/src/escape_string.cpp:421,1
    - Dst: std::string
      Src: /src/libtorrent/src/escape_string.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/escape_string.cpp:435,1
    - Dst: std::copy
      Src: /src/libtorrent/src/escape_string.cpp:456,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/escape_string.cpp:456,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/escape_string.cpp:456,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/escape_string.cpp:456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 459
    functionName: libtorrent::base32decode
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - string_view::end
    - aux::array::fill
    - aux::array::begin
    - std::string
    - TORRENT_ASSERT
    - std::copy
    - aux::array::size
    - std::back_inserter
    - std::toupper
    - string_view::begin
    linkageType: ''
    returnType: std::string
    signature: std::string base32decode(string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find_first_not_of
      Src: /src/libtorrent/src/escape_string.cpp:463,1
    - Dst: string_view::find_last_not_of
      Src: /src/libtorrent/src/escape_string.cpp:464,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:465,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: libtorrent::trim
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::find_first_not_of
    - string_view::substr
    - string_view::find_last_not_of
    - string_view::size
    linkageType: ''
    returnType: string_view
    signature: string_view trim(string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - haystack
    - needle
    - pos
    argTypes:
    - string_view
    - string_view
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: libtorrent::find
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    linkageType: ''
    returnType: string_view::size_type
    signature: string_view::size_type find(string_view haystack, string_view needle,
      string_view::size_type pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:479,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:479,1
    - Dst: MultiByteToWideChar
      Src: /src/libtorrent/src/escape_string.cpp:480,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:480,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:480,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 485
    functionName: libtorrent::convert_to_wstring
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - std::wstring::resize
    - libtorrent::size
    - c_str
    - std::wstring::size
    - MultiByteToWideChar
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring convert_to_wstring(std::string const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:490,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:490,1
    - Dst: WideCharToMultiByte
      Src: /src/libtorrent/src/escape_string.cpp:491,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:491,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:492,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: libtorrent::convert_from_wstring
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - c_str
    - std::string::resize
    - WideCharToMultiByte
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_wstring(std::wstring const& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetACP
      Src: /src/libtorrent/src/escape_string.cpp:509,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:513,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:513,1
    - Dst: MultiByteToWideChar
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:516,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:519,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:519,1
    - Dst: WideCharToMultiByte
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::wstring::c_str
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ' s'
    - from
    - to
    argTypes:
    - std::string
    - UINT
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: libtorrent::convert_impl
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - std::wstring::resize
    - libtorrent::size
    - c_str
    - std::wstring::size
    - std::string::resize
    - GetACP
    - WideCharToMultiByte
    - std::wstring::c_str
    - MultiByteToWideChar
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string convert_impl(std::string const& s, UINT from, UINT to)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetACP
      Src: /src/libtorrent/src/escape_string.cpp:509,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:513,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/escape_string.cpp:513,1
    - Dst: MultiByteToWideChar
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: c_str
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:514,1
    - Dst: std::wstring::resize
      Src: /src/libtorrent/src/escape_string.cpp:516,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:519,1
    - Dst: std::wstring::size
      Src: /src/libtorrent/src/escape_string.cpp:519,1
    - Dst: WideCharToMultiByte
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::wstring::c_str
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/escape_string.cpp:520,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/escape_string.cpp:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ' s'
    - from
    - to
    argTypes:
    - std::string
    - UINT
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: libtorrent::convert_impl
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - std::wstring::resize
    - libtorrent::size
    - c_str
    - std::wstring::size
    - std::string::resize
    - GetACP
    - WideCharToMultiByte
    - std::wstring::c_str
    - MultiByteToWideChar
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string convert_impl(std::string const& s, UINT from, UINT to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_impl
      Src: /src/libtorrent/src/escape_string.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: libtorrent::convert_to_native
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_impl
    linkageType: ''
    returnType: std::string
    signature: std::string convert_to_native(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_impl
      Src: /src/libtorrent/src/escape_string.cpp:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: libtorrent::convert_from_native
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_impl
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_native(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:543,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:543,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - suffix
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 545
    functionName: libtorrent::ends_with
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - string_view::substr
    - string_view::size
    linkageType: ''
    returnType: bool
    signature: bool ends_with(string_view s, string_view suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/libtorrent/src/escape_string.cpp:549,1
    - Dst: libtorrent::ends_with
      Src: /src/libtorrent/src/escape_string.cpp:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: libtorrent::has_utf8_locale
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - std::getenv
    - libtorrent::ends_with
    linkageType: ''
    returnType: bool
    signature: bool has_utf8_locale()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_utf8_locale
      Src: /src/libtorrent/src/escape_string.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: libtorrent::need_conversion
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::has_utf8_locale
    linkageType: ''
    returnType: bool
    signature: bool need_conversion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:543,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:543,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - suffix
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 545
    functionName: libtorrent::ends_with
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 3
    functionsReached:
    - string_view::substr
    - string_view::size
    linkageType: ''
    returnType: bool
    signature: bool ends_with(string_view s, string_view suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/libtorrent/src/escape_string.cpp:549,1
    - Dst: libtorrent::ends_with
      Src: /src/libtorrent/src/escape_string.cpp:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: libtorrent::has_utf8_locale
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 3
    functionsReached:
    - std::getenv
    - libtorrent::ends_with
    linkageType: ''
    returnType: bool
    signature: bool has_utf8_locale()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_utf8_locale
      Src: /src/libtorrent/src/escape_string.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: libtorrent::need_conversion
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::has_utf8_locale
    linkageType: ''
    returnType: bool
    signature: bool need_conversion()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::need_conversion
      Src: /src/libtorrent/src/escape_string.cpp:563,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/escape_string.cpp:568,1
    - Dst: std::tie
      Src: /src/libtorrent/src/escape_string.cpp:574,1
    - Dst: libtorrent::parse_utf8_codepoint
      Src: /src/libtorrent/src/escape_string.cpp:574,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:579,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/escape_string.cpp:579,1
    - Dst: std::wcrtomb
      Src: /src/libtorrent/src/escape_string.cpp:582,1
    - Dst: static_cast<wchar_t>
      Src: /src/libtorrent/src/escape_string.cpp:582,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/escape_string.cpp:583,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 593
    functionName: libtorrent::convert_to_native
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::need_conversion
    - string_view::substr
    - static_cast<wchar_t>
    - std::tie
    - libtorrent::parse_utf8_codepoint
    - std::wcrtomb
    - static_cast<std::size_t>
    - string_view::empty
    - std::size_t
    linkageType: ''
    returnType: std::string
    signature: std::string convert_to_native(std::string const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::need_conversion
      Src: /src/libtorrent/src/escape_string.cpp:597,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/escape_string.cpp:602,1
    - Dst: std::mbrtowc
      Src: /src/libtorrent/src/escape_string.cpp:605,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/escape_string.cpp:605,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/escape_string.cpp:605,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/escape_string.cpp:606,1
    - Dst: std::string::push_back
      Src: /src/libtorrent/src/escape_string.cpp:608,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:610,1
    - Dst: libtorrent::append_utf8_codepoint
      Src: /src/libtorrent/src/escape_string.cpp:614,1
    - Dst: static_cast<std::int32_t>
      Src: /src/libtorrent/src/escape_string.cpp:614,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/escape_string.cpp:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 620
    functionName: libtorrent::convert_from_native
    functionSourceFile: /src/libtorrent/src/escape_string.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::need_conversion
    - std::mbrtowc
    - string_view::substr
    - libtorrent::append_utf8_codepoint
    - string_view::data
    - static_cast<std::size_t>
    - string_view::empty
    - string_view::size
    - std::string::push_back
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_native(std::string const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/fingerprint.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: libtorrent::version_to_char
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: char
    signature: char version_to_char(int const v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/fingerprint.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: libtorrent::version_to_char
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: char
    signature: char version_to_char(int const v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:57,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:58,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:59,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:60,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:61,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/fingerprint.cpp:61,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/fingerprint.cpp:62,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/fingerprint.cpp:65,1
    - Dst: libtorrent::version_to_char
      Src: /src/libtorrent/src/fingerprint.cpp:69,1
    - Dst: libtorrent::version_to_char
      Src: /src/libtorrent/src/fingerprint.cpp:70,1
    - Dst: libtorrent::version_to_char
      Src: /src/libtorrent/src/fingerprint.cpp:71,1
    - Dst: libtorrent::version_to_char
      Src: /src/libtorrent/src/fingerprint.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 5
    argNames:
    - name
    - major
    - minor
    - revision
    - tag
    argTypes:
    - std::string
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 75
    functionName: libtorrent::generate_fingerprint
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::version_to_char
    - std::string::resize
    - TORRENT_ASSERT_PRECOND
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: "std::string generate_fingerprint(std::string name, int const major\n\t\t,
      int const minor\n\t\t, int const revision\n\t\t, int const tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:84,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:87,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:89,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/fingerprint.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - id_string
    - major
    - minor
    - revision
    - tag
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: libtorrent::fingerprint::fingerprint
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::strlen
    linkageType: ''
    returnType: void
    signature: "void fingerprint::fingerprint(const char* id_string, int major, int
      minor\n\t\t, int revision, int tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_fingerprint
      Src: /src/libtorrent/src/fingerprint.cpp:97,1
    - Dst: std::string
      Src: /src/libtorrent/src/fingerprint.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: libtorrent::fingerprint::to_string
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - generate_fingerprint
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint::to_string() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/fingerprint.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: libtorrent::version_to_char
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: char
    signature: char version_to_char(int const v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/fingerprint.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: libtorrent::version_to_char
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: char
    signature: char version_to_char(int const v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:57,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:58,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:59,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:60,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/fingerprint.cpp:61,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/fingerprint.cpp:61,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/fingerprint.cpp:62,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/fingerprint.cpp:65,1
    - Dst: libtorrent::version_to_char
      Src: /src/libtorrent/src/fingerprint.cpp:69,1
    - Dst: libtorrent::version_to_char
      Src: /src/libtorrent/src/fingerprint.cpp:70,1
    - Dst: libtorrent::version_to_char
      Src: /src/libtorrent/src/fingerprint.cpp:71,1
    - Dst: libtorrent::version_to_char
      Src: /src/libtorrent/src/fingerprint.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 5
    argNames:
    - name
    - major
    - minor
    - revision
    - tag
    argTypes:
    - std::string
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 75
    functionName: libtorrent::generate_fingerprint
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::version_to_char
    - std::string::resize
    - TORRENT_ASSERT_PRECOND
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: "std::string generate_fingerprint(std::string name, int const major\n\t\t,
      int const minor\n\t\t, int const revision\n\t\t, int const tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:84,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:87,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/fingerprint.cpp:89,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/fingerprint.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - id_string
    - major
    - minor
    - revision
    - tag
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: libtorrent::fingerprint::fingerprint
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::strlen
    linkageType: ''
    returnType: void
    signature: "void fingerprint::fingerprint(const char* id_string, int major, int
      minor\n\t\t, int revision, int tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_fingerprint
      Src: /src/libtorrent/src/fingerprint.cpp:97,1
    - Dst: std::string
      Src: /src/libtorrent/src/fingerprint.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: libtorrent::fingerprint::to_string
    functionSourceFile: /src/libtorrent/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - generate_fingerprint
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/sha1_hash.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: libtorrent::digest32<N>::stream_out
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void digest32<N>::stream_out(std::ostream& os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/sha1_hash.cpp:59,1
    - Dst: read
      Src: /src/libtorrent/src/sha1_hash.cpp:60,1
    - Dst: size
      Src: /src/libtorrent/src/sha1_hash.cpp:60,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/sha1_hash.cpp:61,1
    - Dst: data
      Src: /src/libtorrent/src/sha1_hash.cpp:61,1
    - Dst: setstate
      Src: /src/libtorrent/src/sha1_hash.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' is'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: libtorrent::digest32<N>::stream_in
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::from_hex
    - setstate
    - read
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void digest32<N>::stream_in(std::istream& is)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/sha1_hash.cpp:78,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:80,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:90,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:91,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:91,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:92,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:101,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:105,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:107,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - number
    - n
    argTypes:
    - span<std::uint32_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: libtorrent::bits_shift_left
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - std::memmove
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::size_t
    - std::memset
    - span<std::uint32_t>::size
    - span<std::uint32_t>::data
    linkageType: ''
    returnType: void
    signature: void bits_shift_left(span<std::uint32_t> const number, int n) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/sha1_hash.cpp:116,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:118,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/sha1_hash.cpp:126,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:126,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:127,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:127,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:137,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:142,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:144,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - number
    - n
    argTypes:
    - span<std::uint32_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 149
    functionName: libtorrent::bits_shift_right
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - std::memmove
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::size_t
    - std::memset
    - span<std::uint32_t>::size
    - span<std::uint32_t>::data
    linkageType: ''
    returnType: void
    signature: void bits_shift_right(span<std::uint32_t> const number, int n) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/sha1_hash.cpp:78,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:80,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:90,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:91,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:91,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:92,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:101,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:105,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:107,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - number
    - n
    argTypes:
    - span<std::uint32_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: libtorrent::bits_shift_left
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - std::memmove
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::size_t
    - std::memset
    - span<std::uint32_t>::size
    - span<std::uint32_t>::data
    linkageType: ''
    returnType: void
    signature: void bits_shift_left(span<std::uint32_t> const number, int n) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/sha1_hash.cpp:116,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:118,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/sha1_hash.cpp:126,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:126,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:127,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:127,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:137,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:142,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:144,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - number
    - n
    argTypes:
    - span<std::uint32_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 149
    functionName: libtorrent::bits_shift_right
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - std::memmove
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::size_t
    - std::memset
    - span<std::uint32_t>::size
    - span<std::uint32_t>::data
    linkageType: ''
    returnType: void
    signature: void bits_shift_right(span<std::uint32_t> const number, int n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits_shift_left
      Src: /src/libtorrent/src/sha1_hash.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: '& digest32<N>::operator<<=(int const n) & noexcept'
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - bits_shift_left
    linkageType: ''
    returnType: digest32<N>
    signature: digest32<N> & digest32<N>::operator<<=(int const n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits_shift_right
      Src: /src/libtorrent/src/sha1_hash.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: '& digest32<N>::operator>>=(int const n) & noexcept'
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - bits_shift_right
    linkageType: ''
    returnType: digest32<N>
    signature: digest32<N> & digest32<N>::operator>>=(int const n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/sha1_hash.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: libtorrent::digest32<N>::stream_out
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void digest32<N>::stream_out(std::ostream& os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/sha1_hash.cpp:59,1
    - Dst: read
      Src: /src/libtorrent/src/sha1_hash.cpp:60,1
    - Dst: size
      Src: /src/libtorrent/src/sha1_hash.cpp:60,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/sha1_hash.cpp:61,1
    - Dst: data
      Src: /src/libtorrent/src/sha1_hash.cpp:61,1
    - Dst: setstate
      Src: /src/libtorrent/src/sha1_hash.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' is'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: libtorrent::digest32<N>::stream_in
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::from_hex
    - setstate
    - read
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void digest32<N>::stream_in(std::istream& is)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/sha1_hash.cpp:78,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:80,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:90,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:91,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:91,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:92,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:101,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:105,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:107,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - number
    - n
    argTypes:
    - span<std::uint32_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: libtorrent::bits_shift_left
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - std::memmove
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::size_t
    - std::memset
    - span<std::uint32_t>::size
    - span<std::uint32_t>::data
    linkageType: ''
    returnType: void
    signature: void bits_shift_left(span<std::uint32_t> const number, int n) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/sha1_hash.cpp:116,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:118,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/sha1_hash.cpp:126,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:126,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:127,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:127,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:137,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:142,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:144,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - number
    - n
    argTypes:
    - span<std::uint32_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 149
    functionName: libtorrent::bits_shift_right
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - std::memmove
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::size_t
    - std::memset
    - span<std::uint32_t>::size
    - span<std::uint32_t>::data
    linkageType: ''
    returnType: void
    signature: void bits_shift_right(span<std::uint32_t> const number, int n) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/sha1_hash.cpp:78,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:80,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:83,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:89,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:90,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:91,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:91,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:92,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:101,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:105,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:107,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - number
    - n
    argTypes:
    - span<std::uint32_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: libtorrent::bits_shift_left
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - std::memmove
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::size_t
    - std::memset
    - span<std::uint32_t>::size
    - span<std::uint32_t>::data
    linkageType: ''
    returnType: void
    signature: void bits_shift_left(span<std::uint32_t> const number, int n) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/sha1_hash.cpp:116,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:118,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: span<std::uint32_t>::size
      Src: /src/libtorrent/src/sha1_hash.cpp:121,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/sha1_hash.cpp:126,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:126,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:127,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:127,1
    - Dst: std::memset
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: span<std::uint32_t>::data
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/sha1_hash.cpp:128,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:137,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/sha1_hash.cpp:142,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:144,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/sha1_hash.cpp:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - number
    - n
    argTypes:
    - span<std::uint32_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 149
    functionName: libtorrent::bits_shift_right
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - std::memmove
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::size_t
    - std::memset
    - span<std::uint32_t>::size
    - span<std::uint32_t>::data
    linkageType: ''
    returnType: void
    signature: void bits_shift_right(span<std::uint32_t> const number, int n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits_shift_left
      Src: /src/libtorrent/src/sha1_hash.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: '& digest32<N>::operator<<=(int const n) & noexcept'
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - bits_shift_left
    linkageType: ''
    returnType: digest32<N>
    signature: digest32<N> & digest32<N>::operator<<=(int const n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits_shift_right
      Src: /src/libtorrent/src/sha1_hash.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: '& digest32<N>::operator>>=(int const n) & noexcept'
    functionSourceFile: /src/libtorrent/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - bits_shift_right
    linkageType: ''
    returnType: digest32<N>
    signature: digest32<N> & digest32<N>::operator>>=(int const n) & noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:52,1
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:53,1
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:54,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_params.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: libtorrent::default_plugins
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<wrapper>
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::vector<std::shared_ptr<plugin>>
    signature: "std::vector<std::shared_ptr<plugin>> default_plugins(\n\tbool empty
      = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:52,1
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:53,1
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:54,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_params.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: libtorrent::default_plugins
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<wrapper>
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::vector<std::shared_ptr<plugin>>
    signature: "std::vector<std::shared_ptr<plugin>> default_plugins(\n\tbool empty
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: libtorrent::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 session_params(std::move(sp), default_plugins())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: default_plugins
      Src: /src/libtorrent/src/session_params.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sp'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - default_plugins
    linkageType: ''
    returnType: void
    signature: void session_params::session_params(settings_pack const& sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: default_plugins
      Src: /src/libtorrent/src/session_params.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - default_plugins
    linkageType: ''
    returnType: void
    signature: void session_params::session_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session_params.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_params.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' sp'
    - exts
    argTypes:
    - settings_pack
    - std::vector<std::shared_ptr<plugin>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void session_params::session_params(settings_pack&& sp\n\t, std::vector<std::shared_ptr<plugin>>
      exts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session_params.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sp'
    - exts
    argTypes:
    - settings_pack
    - std::vector<std::shared_ptr<plugin>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void session_params::session_params(settings_pack const& sp // NOLINT\n\t,
      std::vector<std::shared_ptr<plugin>> exts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_params::session_params(session_params const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_params::session_params(session_params&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: session_params::~session_params()
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_params::~session_params()
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/session_params.cpp:112,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/session_params.cpp:121,1
    - Dst: apply_deprecated_dht_settings
      Src: /src/libtorrent/src/session_params.cpp:124,1
    - Dst: libtorrent::dht::read_dht_settings
      Src: /src/libtorrent/src/session_params.cpp:126,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/session_params.cpp:134,1
    - Dst: load_pack_from_dict
      Src: /src/libtorrent/src/session_params.cpp:135,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/session_params.cpp:141,1
    - Dst: libtorrent::dht::read_dht_state
      Src: /src/libtorrent/src/session_params.cpp:144,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/session_params.cpp:152,1
    - Dst: auto::dict_size
      Src: /src/libtorrent/src/session_params.cpp:155,1
    - Dst: std::tie
      Src: /src/libtorrent/src/session_params.cpp:159,1
    - Dst: auto::dict_at
      Src: /src/libtorrent/src/session_params.cpp:159,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/session_params.cpp:160,1
    - Dst: std::string
      Src: /src/libtorrent/src/session_params.cpp:161,1
    - Dst: std::string
      Src: /src/libtorrent/src/session_params.cpp:161,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/session_params.cpp:161,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/session_params.cpp:169,1
    - Dst: auto::list_size
      Src: /src/libtorrent/src/session_params.cpp:173,1
    - Dst: auto::list_string_value_at
      Src: /src/libtorrent/src/session_params.cpp:176,1
    - Dst: auto::size
      Src: /src/libtorrent/src/session_params.cpp:177,1
    - Dst: auto::data
      Src: /src/libtorrent/src/session_params.cpp:178,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/session_params.cpp:179,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/session_params.cpp:180,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/session_params.cpp:181,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/src/session_params.cpp:184,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/session_params.cpp:188,1
    - Dst: auto::list_size
      Src: /src/libtorrent/src/session_params.cpp:191,1
    - Dst: auto::list_string_value_at
      Src: /src/libtorrent/src/session_params.cpp:194,1
    - Dst: auto::size
      Src: /src/libtorrent/src/session_params.cpp:195,1
    - Dst: auto::data
      Src: /src/libtorrent/src/session_params.cpp:196,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/session_params.cpp:197,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/session_params.cpp:198,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/session_params.cpp:199,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/src/session_params.cpp:202,1
    - Dst: ip_filter::empty
      Src: /src/libtorrent/src/session_params.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_params.cpp:208,1
    - Dst: libtorrent::session_params::read_session_params
      Src: /src/libtorrent/src/session_params.cpp:218,1
    - Dst: bdecode
      Src: /src/libtorrent/src/session_params.cpp:218,1
    - Dst: libtorrent::dht::save_dht_settings
      Src: /src/libtorrent/src/session_params.cpp:229,1
    - Dst: libtorrent::dht::save_dht_state
      Src: /src/libtorrent/src/session_params.cpp:235,1
    - Dst: save_settings_to_dict
      Src: /src/libtorrent/src/session_params.cpp:241,1
    - Dst: dict
      Src: /src/libtorrent/src/session_params.cpp:241,1
    - Dst: dict
      Src: /src/libtorrent/src/session_params.cpp:247,1
    - Dst: std::tie
      Src: /src/libtorrent/src/session_params.cpp:256,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/src/session_params.cpp:256,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_params.cpp:257,1
    - Dst: list
      Src: /src/libtorrent/src/session_params.cpp:259,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_params.cpp:262,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:263,1
    - Dst: back
      Src: /src/libtorrent/src/session_params.cpp:263,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:264,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:265,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/session_params.cpp:266,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_params.cpp:269,1
    - Dst: list
      Src: /src/libtorrent/src/session_params.cpp:271,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_params.cpp:274,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:275,1
    - Dst: back
      Src: /src/libtorrent/src/session_params.cpp:275,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:276,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:277,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/session_params.cpp:278,1
    - Dst: write_session_params
      Src: /src/libtorrent/src/session_params.cpp:288,1
    - Dst: bencode
      Src: /src/libtorrent/src/session_params.cpp:290,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:290,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 89
    argCount: 2
    argNames:
    - ' e'
    - flags
    argTypes:
    - bdecode_node
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 294
    functionName: libtorrent::session_params::read_session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::read_dht_settings
    - auto::dict_size
    - libtorrent::aux::read_v6_address
    - libtorrent::aux::read_uint32
    - std::move
    - libtorrent::dht::save_dht_settings
    - libtorrent::dht::save_dht_state
    - auto::dict_at
    - emplace_back
    - bdecode
    - save_settings_to_dict
    - bdecode_node::type
    - list
    - auto::list_size
    - ip_filter::add_rule
    - write_session_params
    - ip_filter::export_filter
    - back
    - type
    - libtorrent::aux::read_v4_address
    - libtorrent::dht::read_dht_state
    - bdecode_node::string_value
    - std::string
    - load_pack_from_dict
    - auto::size
    - apply_deprecated_dht_settings
    - bencode
    - auto::data
    - std::vector::empty
    - std::tie
    - dict
    - auto::list_string_value_at
    - libtorrent::aux::write_address
    - dict_find_dict
    - dict_find_list
    - libtorrent::aux::write_uint32
    - ip_filter::empty
    - std::back_inserter
    - libtorrent::session_params::read_session_params
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3_END
    signature: TORRENT_VERSION_NAMESPACE_3_END session_params read_session_params(bdecode_node
      const& e, save_state_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_session_params
      Src: /src/libtorrent/src/session_params.cpp:218,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/session_params.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - flags
    argTypes:
    - span<char const>
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: libtorrent::read_session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::read_session_params
    - libtorrent::bdecode
    linkageType: ''
    returnType: session_params
    signature: "session_params read_session_params(span<char const> buf\n\t, save_state_flags_t
      const flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::save_dht_settings
      Src: /src/libtorrent/src/session_params.cpp:229,1
    - Dst: libtorrent::dht::save_dht_state
      Src: /src/libtorrent/src/session_params.cpp:235,1
    - Dst: libtorrent::save_settings_to_dict
      Src: /src/libtorrent/src/session_params.cpp:241,1
    - Dst: dict
      Src: /src/libtorrent/src/session_params.cpp:241,1
    - Dst: dict
      Src: /src/libtorrent/src/session_params.cpp:247,1
    - Dst: std::tie
      Src: /src/libtorrent/src/session_params.cpp:256,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/src/session_params.cpp:256,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_params.cpp:257,1
    - Dst: list
      Src: /src/libtorrent/src/session_params.cpp:259,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/session_params.cpp:262,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:263,1
    - Dst: back
      Src: /src/libtorrent/src/session_params.cpp:263,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:264,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:265,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/session_params.cpp:266,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_params.cpp:269,1
    - Dst: list
      Src: /src/libtorrent/src/session_params.cpp:271,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/session_params.cpp:274,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:275,1
    - Dst: back
      Src: /src/libtorrent/src/session_params.cpp:275,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:276,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:277,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/session_params.cpp:278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - ' sp'
    - flags
    argTypes:
    - session_params
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 284
    functionName: libtorrent::write_session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::save_dht_settings
    - libtorrent::dht::save_dht_state
    - std::vector::empty
    - std::tie
    - list
    - libtorrent::emplace_back
    - dict
    - libtorrent::aux::write_address
    - libtorrent::aux::write_uint32
    - ip_filter::export_filter
    - std::back_inserter
    - back
    - libtorrent::save_settings_to_dict
    linkageType: ''
    returnType: entry
    signature: entry write_session_params(session_params const& sp, save_state_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_session_params
      Src: /src/libtorrent/src/session_params.cpp:288,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/session_params.cpp:290,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' sp'
    - flags
    argTypes:
    - session_params
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: libtorrent::write_session_params_buf
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - libtorrent::write_session_params
    - libtorrent::bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> write_session_params_buf(session_params const& sp,
      save_state_flags_t const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:52,1
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:53,1
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:54,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_params.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: libtorrent::default_plugins
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<wrapper>
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::vector<std::shared_ptr<plugin>>
    signature: "std::vector<std::shared_ptr<plugin>> default_plugins(\n\tbool empty
      = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:52,1
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:53,1
    - Dst: std::make_shared<wrapper>
      Src: /src/libtorrent/src/session_params.cpp:54,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_params.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: libtorrent::default_plugins
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<wrapper>
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::vector<std::shared_ptr<plugin>>
    signature: "std::vector<std::shared_ptr<plugin>> default_plugins(\n\tbool empty
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: libtorrent::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 session_params(std::move(sp), default_plugins())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: default_plugins
      Src: /src/libtorrent/src/session_params.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sp'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - default_plugins
    linkageType: ''
    returnType: void
    signature: void session_params::session_params(settings_pack const& sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: default_plugins
      Src: /src/libtorrent/src/session_params.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - default_plugins
    linkageType: ''
    returnType: void
    signature: void session_params::session_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session_params.cpp:83,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_params.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' sp'
    - exts
    argTypes:
    - settings_pack
    - std::vector<std::shared_ptr<plugin>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void session_params::session_params(settings_pack&& sp\n\t, std::vector<std::shared_ptr<plugin>>
      exts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session_params.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sp'
    - exts
    argTypes:
    - settings_pack
    - std::vector<std::shared_ptr<plugin>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void session_params::session_params(settings_pack const& sp // NOLINT\n\t,
      std::vector<std::shared_ptr<plugin>> exts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_params::session_params(session_params const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::session_params::session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_params::session_params(session_params&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: session_params::~session_params()
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_params::~session_params()
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/session_params.cpp:112,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/session_params.cpp:121,1
    - Dst: apply_deprecated_dht_settings
      Src: /src/libtorrent/src/session_params.cpp:124,1
    - Dst: libtorrent::dht::read_dht_settings
      Src: /src/libtorrent/src/session_params.cpp:126,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/session_params.cpp:134,1
    - Dst: load_pack_from_dict
      Src: /src/libtorrent/src/session_params.cpp:135,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/session_params.cpp:141,1
    - Dst: libtorrent::dht::read_dht_state
      Src: /src/libtorrent/src/session_params.cpp:144,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/session_params.cpp:152,1
    - Dst: auto::dict_size
      Src: /src/libtorrent/src/session_params.cpp:155,1
    - Dst: std::tie
      Src: /src/libtorrent/src/session_params.cpp:159,1
    - Dst: auto::dict_at
      Src: /src/libtorrent/src/session_params.cpp:159,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/session_params.cpp:160,1
    - Dst: std::string
      Src: /src/libtorrent/src/session_params.cpp:161,1
    - Dst: std::string
      Src: /src/libtorrent/src/session_params.cpp:161,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/session_params.cpp:161,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/session_params.cpp:169,1
    - Dst: auto::list_size
      Src: /src/libtorrent/src/session_params.cpp:173,1
    - Dst: auto::list_string_value_at
      Src: /src/libtorrent/src/session_params.cpp:176,1
    - Dst: auto::size
      Src: /src/libtorrent/src/session_params.cpp:177,1
    - Dst: auto::data
      Src: /src/libtorrent/src/session_params.cpp:178,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/session_params.cpp:179,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/session_params.cpp:180,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/session_params.cpp:181,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/src/session_params.cpp:184,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/session_params.cpp:188,1
    - Dst: auto::list_size
      Src: /src/libtorrent/src/session_params.cpp:191,1
    - Dst: auto::list_string_value_at
      Src: /src/libtorrent/src/session_params.cpp:194,1
    - Dst: auto::size
      Src: /src/libtorrent/src/session_params.cpp:195,1
    - Dst: auto::data
      Src: /src/libtorrent/src/session_params.cpp:196,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/session_params.cpp:197,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/session_params.cpp:198,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/session_params.cpp:199,1
    - Dst: ip_filter::add_rule
      Src: /src/libtorrent/src/session_params.cpp:202,1
    - Dst: ip_filter::empty
      Src: /src/libtorrent/src/session_params.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_params.cpp:208,1
    - Dst: libtorrent::session_params::read_session_params
      Src: /src/libtorrent/src/session_params.cpp:218,1
    - Dst: bdecode
      Src: /src/libtorrent/src/session_params.cpp:218,1
    - Dst: libtorrent::dht::save_dht_settings
      Src: /src/libtorrent/src/session_params.cpp:229,1
    - Dst: libtorrent::dht::save_dht_state
      Src: /src/libtorrent/src/session_params.cpp:235,1
    - Dst: save_settings_to_dict
      Src: /src/libtorrent/src/session_params.cpp:241,1
    - Dst: dict
      Src: /src/libtorrent/src/session_params.cpp:241,1
    - Dst: dict
      Src: /src/libtorrent/src/session_params.cpp:247,1
    - Dst: std::tie
      Src: /src/libtorrent/src/session_params.cpp:256,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/src/session_params.cpp:256,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_params.cpp:257,1
    - Dst: list
      Src: /src/libtorrent/src/session_params.cpp:259,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_params.cpp:262,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:263,1
    - Dst: back
      Src: /src/libtorrent/src/session_params.cpp:263,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:264,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:265,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/session_params.cpp:266,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_params.cpp:269,1
    - Dst: list
      Src: /src/libtorrent/src/session_params.cpp:271,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_params.cpp:274,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:275,1
    - Dst: back
      Src: /src/libtorrent/src/session_params.cpp:275,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:276,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:277,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/session_params.cpp:278,1
    - Dst: write_session_params
      Src: /src/libtorrent/src/session_params.cpp:288,1
    - Dst: bencode
      Src: /src/libtorrent/src/session_params.cpp:290,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:290,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 89
    argCount: 2
    argNames:
    - ' e'
    - flags
    argTypes:
    - bdecode_node
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 294
    functionName: libtorrent::session_params::read_session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::read_dht_settings
    - auto::dict_size
    - libtorrent::aux::read_v6_address
    - libtorrent::aux::read_uint32
    - std::move
    - libtorrent::dht::save_dht_settings
    - libtorrent::dht::save_dht_state
    - auto::dict_at
    - emplace_back
    - bdecode
    - save_settings_to_dict
    - bdecode_node::type
    - list
    - auto::list_size
    - ip_filter::add_rule
    - write_session_params
    - ip_filter::export_filter
    - back
    - type
    - libtorrent::aux::read_v4_address
    - libtorrent::dht::read_dht_state
    - bdecode_node::string_value
    - std::string
    - load_pack_from_dict
    - auto::size
    - apply_deprecated_dht_settings
    - bencode
    - auto::data
    - std::vector::empty
    - std::tie
    - dict
    - auto::list_string_value_at
    - libtorrent::aux::write_address
    - dict_find_dict
    - dict_find_list
    - libtorrent::aux::write_uint32
    - ip_filter::empty
    - std::back_inserter
    - libtorrent::session_params::read_session_params
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3_END
    signature: TORRENT_VERSION_NAMESPACE_3_END session_params read_session_params(bdecode_node
      const& e, save_state_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_session_params
      Src: /src/libtorrent/src/session_params.cpp:218,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/session_params.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - flags
    argTypes:
    - span<char const>
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: libtorrent::read_session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::read_session_params
    - libtorrent::bdecode
    linkageType: ''
    returnType: session_params
    signature: "session_params read_session_params(span<char const> buf\n\t, save_state_flags_t
      const flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::save_dht_settings
      Src: /src/libtorrent/src/session_params.cpp:229,1
    - Dst: libtorrent::dht::save_dht_state
      Src: /src/libtorrent/src/session_params.cpp:235,1
    - Dst: libtorrent::save_settings_to_dict
      Src: /src/libtorrent/src/session_params.cpp:241,1
    - Dst: dict
      Src: /src/libtorrent/src/session_params.cpp:241,1
    - Dst: dict
      Src: /src/libtorrent/src/session_params.cpp:247,1
    - Dst: std::tie
      Src: /src/libtorrent/src/session_params.cpp:256,1
    - Dst: ip_filter::export_filter
      Src: /src/libtorrent/src/session_params.cpp:256,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_params.cpp:257,1
    - Dst: list
      Src: /src/libtorrent/src/session_params.cpp:259,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/session_params.cpp:262,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:263,1
    - Dst: back
      Src: /src/libtorrent/src/session_params.cpp:263,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:264,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:265,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/session_params.cpp:266,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_params.cpp:269,1
    - Dst: list
      Src: /src/libtorrent/src/session_params.cpp:271,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/session_params.cpp:274,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:275,1
    - Dst: back
      Src: /src/libtorrent/src/session_params.cpp:275,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:276,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/session_params.cpp:277,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/session_params.cpp:278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - ' sp'
    - flags
    argTypes:
    - session_params
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 284
    functionName: libtorrent::write_session_params
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::save_dht_settings
    - libtorrent::dht::save_dht_state
    - std::vector::empty
    - std::tie
    - list
    - libtorrent::emplace_back
    - dict
    - libtorrent::aux::write_address
    - libtorrent::aux::write_uint32
    - ip_filter::export_filter
    - std::back_inserter
    - back
    - libtorrent::save_settings_to_dict
    linkageType: ''
    returnType: entry
    signature: entry write_session_params(session_params const& sp, save_state_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_session_params
      Src: /src/libtorrent/src/session_params.cpp:288,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/session_params.cpp:290,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_params.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' sp'
    - flags
    argTypes:
    - session_params
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: libtorrent::write_session_params_buf
    functionSourceFile: /src/libtorrent/src/session_params.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - libtorrent::write_session_params
    - libtorrent::bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> write_session_params_buf(session_params const& sp,
      save_state_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: libtorrent::peer_info::peer_info
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_info::peer_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: peer_info::~peer_info()
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_info::~peer_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: libtorrent::peer_info::peer_info
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_info::peer_info(peer_info const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::peer_info::peer_info
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_info::peer_info(peer_info&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/peer_info.cpp:96,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/peer_info.cpp:99,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/peer_info.cpp:99,1
    - Dst: sha256_hash::size
      Src: /src/libtorrent/src/peer_info.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: libtorrent::peer_info::i2p_destination
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::size
    - sha256_hash::data
    - std::memcpy
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash peer_info::i2p_destination() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/peer_info.cpp:106,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/peer_info.cpp:109,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/peer_info.cpp:109,1
    - Dst: sha256_hash::size
      Src: /src/libtorrent/src/peer_info.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dest
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: libtorrent::peer_info::set_i2p_destination
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::size
    - sha256_hash::data
    - reinterpret_cast<char*>
    - std::memcpy
    linkageType: ''
    returnType: void
    signature: void peer_info::set_i2p_destination(sha256_hash dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: libtorrent::peer_info::peer_info
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_info::peer_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: peer_info::~peer_info()
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_info::~peer_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: libtorrent::peer_info::peer_info
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_info::peer_info(peer_info const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::peer_info::peer_info
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_info::peer_info(peer_info&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/peer_info.cpp:96,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/peer_info.cpp:99,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/peer_info.cpp:99,1
    - Dst: sha256_hash::size
      Src: /src/libtorrent/src/peer_info.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: libtorrent::peer_info::i2p_destination
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::size
    - sha256_hash::data
    - std::memcpy
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash peer_info::i2p_destination() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/peer_info.cpp:106,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/peer_info.cpp:109,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/peer_info.cpp:109,1
    - Dst: sha256_hash::size
      Src: /src/libtorrent/src/peer_info.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dest
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: libtorrent::peer_info::set_i2p_destination
    functionSourceFile: /src/libtorrent/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash::size
    - sha256_hash::data
    - reinterpret_cast<char*>
    - std::memcpy
    linkageType: ''
    returnType: void
    signature: void peer_info::set_i2p_destination(sha256_hash dest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:45,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_progress.cpp:47,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_progress.cpp:50,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:51,1
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:52,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:53,1
    - Dst: reserve
      Src: /src/libtorrent/src/file_progress.cpp:54,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:55,1
    - Dst: reserve
      Src: /src/libtorrent/src/file_progress.cpp:56,1
    - Dst: file_range
      Src: /src/libtorrent/src/file_progress.cpp:57,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_progress.cpp:59,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:59,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_progress.cpp:60,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:60,1
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:64,1
    - Dst: std::fill
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: end
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_progress.cpp:69,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_progress.cpp:71,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_progress.cpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:75,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:75,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:76,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:77,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:81,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:81,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:85,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:85,1
    - Dst: have_piece
      Src: /src/libtorrent/src/file_progress.cpp:87,1
    - Dst: set_bit
      Src: /src/libtorrent/src/file_progress.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:93,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:94,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_progress.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:95,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:99,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:99,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:100,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:107,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:115,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 2
    argNames:
    - ' picker'
    - ' fs'
    argTypes:
    - piece_picker
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::file_progress::init
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_progress::clear
    - begin
    - empty
    - std::min
    - file_size
    - pad_file_at
    - file_offset
    - push_back
    - end
    - end_file
    - num_pieces
    - file_range
    - total_size
    - set_bit
    - num_files
    - TORRENT_ASSERT
    - reserve
    - have_piece
    - std::fill
    - std::int64_t
    - piece_length
    - resize
    - end_piece
    linkageType: ''
    returnType: void
    signature: void file_progress::init(piece_picker const& picker, file_storage const&
      fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:125,1
    - Dst: size
      Src: /src/libtorrent/src/file_progress.cpp:125,1
    - Dst: std::copy
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: end
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' fp'
    argTypes:
    - vector<std::int64_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: libtorrent::aux::file_progress::export_progress
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::copy
    - resize
    - size
    linkageType: ''
    returnType: void
    signature: void file_progress::export_progress(vector<std::int64_t, file_index_t>&
      fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:133,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/file_progress.cpp:134,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::file_progress::clear
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 2
    functionsReached:
    - shrink_to_fit
    - libtorrent::aux::file_progress::clear
    linkageType: ''
    returnType: void
    signature: void file_progress::clear()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:146,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:152,1
    - Dst: get_bit
      Src: /src/libtorrent/src/file_progress.cpp:152,1
    - Dst: set_bit
      Src: /src/libtorrent/src/file_progress.cpp:153,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_progress.cpp:156,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_progress.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_progress.cpp:157,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/file_progress.cpp:158,1
    - Dst: piece_size
      Src: /src/libtorrent/src/file_progress.cpp:159,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:163,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:164,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:164,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:165,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:165,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:168,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:174,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:175,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:177,1
    - Dst: completed_cb
      Src: /src/libtorrent/src/file_progress.cpp:180,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ' fs'
    - index
    - ' completed_cb'
    argTypes:
    - file_storage
    - piece_index_t
    - std::function<void(file_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 186
    functionName: libtorrent::aux::file_progress::update
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - set_bit
    - get_bit
    - empty
    - file_index_at_offset
    - TORRENT_ASSERT
    - piece_length
    - std::int64_t
    - end_file
    - file_size
    - std::min
    - pad_file_at
    - completed_cb
    - piece_size
    - file_offset
    linkageType: ''
    returnType: void
    signature: "void file_progress::update(file_storage const& fs, piece_index_t const
      index\n\t\t, std::function<void(file_index_t)> const& completed_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:191,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:193,1
    - Dst: size
      Src: /src/libtorrent/src/file_progress.cpp:201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::file_progress::check_invariant
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - empty
    - size
    linkageType: ''
    returnType: void
    signature: void file_progress::check_invariant() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:45,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_progress.cpp:47,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_progress.cpp:50,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:51,1
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:52,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:53,1
    - Dst: reserve
      Src: /src/libtorrent/src/file_progress.cpp:54,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:55,1
    - Dst: reserve
      Src: /src/libtorrent/src/file_progress.cpp:56,1
    - Dst: file_range
      Src: /src/libtorrent/src/file_progress.cpp:57,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_progress.cpp:59,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:59,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_progress.cpp:60,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:60,1
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:64,1
    - Dst: std::fill
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: end
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_progress.cpp:69,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_progress.cpp:71,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_progress.cpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:75,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:75,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:76,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:77,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:81,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:81,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:85,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:85,1
    - Dst: have_piece
      Src: /src/libtorrent/src/file_progress.cpp:87,1
    - Dst: set_bit
      Src: /src/libtorrent/src/file_progress.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:93,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:94,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_progress.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:95,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:99,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:99,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:100,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:107,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:115,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 2
    argNames:
    - ' picker'
    - ' fs'
    argTypes:
    - piece_picker
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::file_progress::init
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_progress::clear
    - begin
    - empty
    - std::min
    - file_size
    - pad_file_at
    - file_offset
    - push_back
    - end
    - end_file
    - num_pieces
    - file_range
    - total_size
    - set_bit
    - num_files
    - TORRENT_ASSERT
    - reserve
    - have_piece
    - std::fill
    - std::int64_t
    - piece_length
    - resize
    - end_piece
    linkageType: ''
    returnType: void
    signature: void file_progress::init(piece_picker const& picker, file_storage const&
      fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:125,1
    - Dst: size
      Src: /src/libtorrent/src/file_progress.cpp:125,1
    - Dst: std::copy
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: end
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' fp'
    argTypes:
    - vector<std::int64_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: libtorrent::aux::file_progress::export_progress
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::copy
    - resize
    - size
    linkageType: ''
    returnType: void
    signature: void file_progress::export_progress(vector<std::int64_t, file_index_t>&
      fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:133,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/file_progress.cpp:134,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::file_progress::clear
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 4
    functionsReached:
    - shrink_to_fit
    - libtorrent::aux::file_progress::clear
    linkageType: ''
    returnType: void
    signature: void file_progress::clear()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:146,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:152,1
    - Dst: get_bit
      Src: /src/libtorrent/src/file_progress.cpp:152,1
    - Dst: set_bit
      Src: /src/libtorrent/src/file_progress.cpp:153,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_progress.cpp:156,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_progress.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_progress.cpp:157,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/file_progress.cpp:158,1
    - Dst: piece_size
      Src: /src/libtorrent/src/file_progress.cpp:159,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:163,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:164,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:164,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:165,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:165,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:168,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:174,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:175,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:177,1
    - Dst: completed_cb
      Src: /src/libtorrent/src/file_progress.cpp:180,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ' fs'
    - index
    - ' completed_cb'
    argTypes:
    - file_storage
    - piece_index_t
    - std::function<void(file_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 186
    functionName: libtorrent::aux::file_progress::update
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - set_bit
    - get_bit
    - empty
    - file_index_at_offset
    - TORRENT_ASSERT
    - piece_length
    - std::int64_t
    - end_file
    - file_size
    - std::min
    - pad_file_at
    - completed_cb
    - piece_size
    - file_offset
    linkageType: ''
    returnType: void
    signature: "void file_progress::update(file_storage const& fs, piece_index_t const
      index\n\t\t, std::function<void(file_index_t)> const& completed_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:191,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:193,1
    - Dst: size
      Src: /src/libtorrent/src/file_progress.cpp:201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::file_progress::check_invariant
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - empty
    - size
    linkageType: ''
    returnType: void
    signature: void file_progress::check_invariant() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:45,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_progress.cpp:47,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_progress.cpp:50,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:51,1
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:52,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:53,1
    - Dst: reserve
      Src: /src/libtorrent/src/file_progress.cpp:54,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:55,1
    - Dst: reserve
      Src: /src/libtorrent/src/file_progress.cpp:56,1
    - Dst: file_range
      Src: /src/libtorrent/src/file_progress.cpp:57,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_progress.cpp:59,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:59,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_progress.cpp:60,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:60,1
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:64,1
    - Dst: std::fill
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: end
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_progress.cpp:69,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_progress.cpp:71,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_progress.cpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:75,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:75,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:76,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:77,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:81,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:81,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:85,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:85,1
    - Dst: have_piece
      Src: /src/libtorrent/src/file_progress.cpp:87,1
    - Dst: set_bit
      Src: /src/libtorrent/src/file_progress.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:93,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:94,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_progress.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:95,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:99,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:99,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:100,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:107,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:115,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 2
    argNames:
    - ' picker'
    - ' fs'
    argTypes:
    - piece_picker
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::file_progress::init
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_progress::clear
    - begin
    - empty
    - std::min
    - file_size
    - pad_file_at
    - file_offset
    - push_back
    - end
    - end_file
    - num_pieces
    - file_range
    - total_size
    - set_bit
    - num_files
    - TORRENT_ASSERT
    - reserve
    - have_piece
    - std::fill
    - std::int64_t
    - piece_length
    - resize
    - end_piece
    linkageType: ''
    returnType: void
    signature: void file_progress::init(piece_picker const& picker, file_storage const&
      fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:125,1
    - Dst: size
      Src: /src/libtorrent/src/file_progress.cpp:125,1
    - Dst: std::copy
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: end
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' fp'
    argTypes:
    - vector<std::int64_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: libtorrent::aux::file_progress::export_progress
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::copy
    - resize
    - size
    linkageType: ''
    returnType: void
    signature: void file_progress::export_progress(vector<std::int64_t, file_index_t>&
      fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:133,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/file_progress.cpp:134,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::file_progress::clear
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 6
    functionsReached:
    - shrink_to_fit
    - libtorrent::aux::file_progress::clear
    linkageType: ''
    returnType: void
    signature: void file_progress::clear()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:146,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:152,1
    - Dst: get_bit
      Src: /src/libtorrent/src/file_progress.cpp:152,1
    - Dst: set_bit
      Src: /src/libtorrent/src/file_progress.cpp:153,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_progress.cpp:156,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_progress.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_progress.cpp:157,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/file_progress.cpp:158,1
    - Dst: piece_size
      Src: /src/libtorrent/src/file_progress.cpp:159,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:163,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:164,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:164,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:165,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:165,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:168,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:174,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:175,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:177,1
    - Dst: completed_cb
      Src: /src/libtorrent/src/file_progress.cpp:180,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ' fs'
    - index
    - ' completed_cb'
    argTypes:
    - file_storage
    - piece_index_t
    - std::function<void(file_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 186
    functionName: libtorrent::aux::file_progress::update
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - set_bit
    - get_bit
    - empty
    - file_index_at_offset
    - TORRENT_ASSERT
    - piece_length
    - std::int64_t
    - end_file
    - file_size
    - std::min
    - pad_file_at
    - completed_cb
    - piece_size
    - file_offset
    linkageType: ''
    returnType: void
    signature: "void file_progress::update(file_storage const& fs, piece_index_t const
      index\n\t\t, std::function<void(file_index_t)> const& completed_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:191,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:193,1
    - Dst: size
      Src: /src/libtorrent/src/file_progress.cpp:201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::file_progress::check_invariant
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - empty
    - size
    linkageType: ''
    returnType: void
    signature: void file_progress::check_invariant() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:45,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_progress.cpp:47,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_progress.cpp:50,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:51,1
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:52,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:53,1
    - Dst: reserve
      Src: /src/libtorrent/src/file_progress.cpp:54,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:55,1
    - Dst: reserve
      Src: /src/libtorrent/src/file_progress.cpp:56,1
    - Dst: file_range
      Src: /src/libtorrent/src/file_progress.cpp:57,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_progress.cpp:59,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:59,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_progress.cpp:60,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:60,1
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:64,1
    - Dst: std::fill
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: end
      Src: /src/libtorrent/src/file_progress.cpp:65,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_progress.cpp:69,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_progress.cpp:71,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_progress.cpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:75,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:75,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:76,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:77,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:81,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:81,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:85,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:85,1
    - Dst: have_piece
      Src: /src/libtorrent/src/file_progress.cpp:87,1
    - Dst: set_bit
      Src: /src/libtorrent/src/file_progress.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:93,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:94,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_progress.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:95,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:99,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:99,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:100,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:107,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:115,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 2
    argNames:
    - ' picker'
    - ' fs'
    argTypes:
    - piece_picker
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::file_progress::init
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_progress::clear
    - begin
    - empty
    - std::min
    - file_size
    - pad_file_at
    - file_offset
    - push_back
    - end
    - end_file
    - num_pieces
    - file_range
    - total_size
    - set_bit
    - num_files
    - TORRENT_ASSERT
    - reserve
    - have_piece
    - std::fill
    - std::int64_t
    - piece_length
    - resize
    - end_piece
    linkageType: ''
    returnType: void
    signature: void file_progress::init(piece_picker const& picker, file_storage const&
      fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/file_progress.cpp:125,1
    - Dst: size
      Src: /src/libtorrent/src/file_progress.cpp:125,1
    - Dst: std::copy
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: end
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    - Dst: begin
      Src: /src/libtorrent/src/file_progress.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' fp'
    argTypes:
    - vector<std::int64_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: libtorrent::aux::file_progress::export_progress
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::copy
    - resize
    - size
    linkageType: ''
    returnType: void
    signature: void file_progress::export_progress(vector<std::int64_t, file_index_t>&
      fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:133,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/file_progress.cpp:134,1
    - Dst: libtorrent::aux::file_progress::clear
      Src: /src/libtorrent/src/file_progress.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::file_progress::clear
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 8
    functionsReached:
    - shrink_to_fit
    - libtorrent::aux::file_progress::clear
    linkageType: ''
    returnType: void
    signature: void file_progress::clear()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:146,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:152,1
    - Dst: get_bit
      Src: /src/libtorrent/src/file_progress.cpp:152,1
    - Dst: set_bit
      Src: /src/libtorrent/src/file_progress.cpp:153,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_progress.cpp:156,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_progress.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_progress.cpp:157,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/file_progress.cpp:158,1
    - Dst: piece_size
      Src: /src/libtorrent/src/file_progress.cpp:159,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_progress.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:163,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_progress.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:164,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:164,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_progress.cpp:165,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:165,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_progress.cpp:168,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:174,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:175,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_progress.cpp:177,1
    - Dst: completed_cb
      Src: /src/libtorrent/src/file_progress.cpp:180,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ' fs'
    - index
    - ' completed_cb'
    argTypes:
    - file_storage
    - piece_index_t
    - std::function<void(file_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 186
    functionName: libtorrent::aux::file_progress::update
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - set_bit
    - get_bit
    - empty
    - file_index_at_offset
    - TORRENT_ASSERT
    - piece_length
    - std::int64_t
    - end_file
    - file_size
    - std::min
    - pad_file_at
    - completed_cb
    - piece_size
    - file_offset
    linkageType: ''
    returnType: void
    signature: "void file_progress::update(file_storage const& fs, piece_index_t const
      index\n\t\t, std::function<void(file_index_t)> const& completed_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_progress.cpp:191,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:193,1
    - Dst: size
      Src: /src/libtorrent/src/file_progress.cpp:201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_progress.cpp:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::file_progress::check_invariant
    functionSourceFile: /src/libtorrent/src/file_progress.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - empty
    - size
    linkageType: ''
    returnType: void
    signature: void file_progress::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: libtorrent::pcp_category
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & pcp_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcp_category
      Src: /src/libtorrent/src/natpmp.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - pcp_errors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: libtorrent::errors::make_error_code
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - pcp_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(pcp_errors e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcp_category
      Src: /src/libtorrent/src/natpmp.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - pcp_errors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: libtorrent::errors::make_error_code
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - pcp_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(pcp_errors e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: errors::pcp_errors
      Src: /src/libtorrent/src/natpmp.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - version
    - result
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: libtorrent::natpmp::from_result_code
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - errors::pcp_errors
    linkageType: ''
    returnType: error_code
    signature: error_code natpmp::from_result_code(int const version, int result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::natpmp::version_to_string
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * natpmp::version_to_string(protocol_version version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/natpmp.cpp:147,1
    - Dst: reserve
      Src: /src/libtorrent/src/natpmp.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' cb'
    - ls
    argTypes:
    - io_context
    - aux::portmap_callback
    - listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 153
    functionName: libtorrent::natpmp::natpmp
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - std::move
    linkageType: ''
    returnType: void
    signature: "void natpmp::natpmp(io_context& ios\n\t, aux::portmap_callback& cb\n\t,
      listen_socket_handle ls)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:157,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:157,1
    - Dst: enum_routes
      Src: /src/libtorrent/src/natpmp.cpp:166,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:170,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:172,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/natpmp.cpp:173,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/natpmp.cpp:173,1
    - Dst: libtorrent::natpmp::disable
      Src: /src/libtorrent/src/natpmp.cpp:176,1
    - Dst: get_gateway
      Src: /src/libtorrent/src/natpmp.cpp:179,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:184,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:186,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:187,1
    - Dst: libtorrent::natpmp::disable
      Src: /src/libtorrent/src/natpmp.cpp:190,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:201,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:203,1
    - Dst: print_address
      Src: /src/libtorrent/src/natpmp.cpp:204,1
    - Dst: address
      Src: /src/libtorrent/src/natpmp.cpp:204,1
    - Dst: open
      Src: /src/libtorrent/src/natpmp.cpp:208,1
    - Dst: is_v4
      Src: /src/libtorrent/src/natpmp.cpp:208,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/natpmp.cpp:208,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/natpmp.cpp:208,1
    - Dst: libtorrent::natpmp::disable
      Src: /src/libtorrent/src/natpmp.cpp:211,1
    - Dst: bind
      Src: /src/libtorrent/src/natpmp.cpp:214,1
    - Dst: libtorrent::natpmp::disable
      Src: /src/libtorrent/src/natpmp.cpp:217,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:221,1
    - Dst: async_receive_from
      Src: /src/libtorrent/src/natpmp.cpp:222,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/natpmp.cpp:222,1
    - Dst: std::bind
      Src: /src/libtorrent/src/natpmp.cpp:224,1
    - Dst: self
      Src: /src/libtorrent/src/natpmp.cpp:224,1
    - Dst: libtorrent::natpmp::send_get_ip_address_request
      Src: /src/libtorrent/src/natpmp.cpp:226,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:228,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:234,1
    - Dst: port_mapping_t
      Src: /src/libtorrent/src/natpmp.cpp:234,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:234,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - ip_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 236
    functionName: libtorrent::natpmp::start
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - begin
    - enum_routes
    - self
    - bind
    - ADD_OUTSTANDING_ASYNC
    - rand_v6
    - async_receive_from
    - is_single_thread
    - libtorrent::natpmp::send_get_ip_address_request
    - end
    - libtorrent::natpmp::update_mapping
    - port_mapping_t
    - error_code::message
    - address
    - print_address
    - open
    - TORRENT_ASSERT
    - libtorrent::natpmp::disable
    - convert_from_native
    - std::bind
    - libtorrent::natpmp::should_log
    - rand_v4
    - get_gateway
    - libtorrent::natpmp::log
    - both_sides_from_store_buffer
    - is_v4
    linkageType: ''
    returnType: void
    signature: void natpmp::start(ip_interface const& ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:240,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:240,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:245,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:251,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:252,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:254,1
    - Dst: send_to
      Src: /src/libtorrent/src/natpmp.cpp:258,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/natpmp.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 259
    functionName: libtorrent::natpmp::send_get_ip_address_request
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 1
    functionsReached:
    - is_single_thread
    - TORRENT_ASSERT
    - libtorrent::natpmp::log
    - both_sides_from_store_buffer
    - write_uint8
    - send_to
    linkageType: ''
    returnType: void
    signature: void natpmp::send_get_ip_address_request()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:264,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:266,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:266,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - index
    - ' local_port'
    - ' external_port'
    - ' protocol'
    argTypes:
    - port_mapping_t
    - int
    - int
    - portmap_protocol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: libtorrent::natpmp::get_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - end_index
    linkageType: ''
    returnType: bool
    signature: "bool natpmp::get_mapping(port_mapping_t const index, int& local_port\n\t,
      int& external_port, portmap_protocol& protocol) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_log_portmap
      Src: /src/libtorrent/src/natpmp.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: libtorrent::natpmp::should_log
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 1
    functionsReached:
    - should_log_portmap
    linkageType: ''
    returnType: bool
    signature: bool natpmp::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:284,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:286,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:289,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:292,1
    - Dst: expires::time_since_epoch
      Src: /src/libtorrent/src/natpmp.cpp:293,1
    - Dst: seconds
      Src: /src/libtorrent/src/natpmp.cpp:293,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/natpmp.cpp:294,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:294,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/natpmp.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - ' m'
    argTypes:
    - char*
    - mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 297
    functionName: libtorrent::natpmp::mapping_log
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - libtorrent::natpmp::should_log
    - expires::time_since_epoch
    - total_seconds
    - seconds
    - libtorrent::natpmp::log
    - std::int64_t
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void natpmp::mapping_log(char const* op, mapping_t const& m) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:302,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:302,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:303,1
    - Dst: va_start
      Src: /src/libtorrent/src/natpmp.cpp:306,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/natpmp.cpp:307,1
    - Dst: va_end
      Src: /src/libtorrent/src/natpmp.cpp:308,1
    - Dst: log_portmap
      Src: /src/libtorrent/src/natpmp.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 310
    functionName: libtorrent::natpmp::log
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::natpmp::should_log
    - va_start
    - is_single_thread
    - TORRENT_ASSERT
    - va_end
    - log_portmap
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void natpmp::log(char const* fmt, ...) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:315,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:315,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:318,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:318,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:323,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:323,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/natpmp.cpp:324,1
    - Dst: address
      Src: /src/libtorrent/src/natpmp.cpp:324,1
    - Dst: libtorrent::natpmp::close_impl
      Src: /src/libtorrent/src/natpmp.cpp:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 328
    functionName: libtorrent::natpmp::disable
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - begin
    - is_single_thread
    - end
    - libtorrent::natpmp::close_impl
    - TORRENT_ASSERT
    - on_port_mapping
    - address
    linkageType: ''
    returnType: void
    signature: void natpmp::disable(error_code const& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:332,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:334,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:334,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:335,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 348
    functionName: libtorrent::natpmp::delete_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - end_index
    linkageType: ''
    returnType: void
    signature: void natpmp::delete_mapping(port_mapping_t const index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:353,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:353,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/natpmp.cpp:357,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:357,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:358,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:359,1
    - Dst: push_back
      Src: /src/libtorrent/src/natpmp.cpp:361,1
    - Dst: mapping_t
      Src: /src/libtorrent/src/natpmp.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:362,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/natpmp.cpp:364,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/natpmp.cpp:367,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:370,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:370,1
    - Dst: libtorrent::natpmp::mapping_log
      Src: /src/libtorrent/src/natpmp.cpp:372,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - p
    - external_port
    - local_ep
    argTypes:
    - portmap_protocol
    - int
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 377
    functionName: libtorrent::natpmp::add_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - begin
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - end
    - libtorrent::natpmp::mapping_log
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_random_bytes
    - mapping_t
    - tcp::endpoint::port
    - std::find_if
    linkageType: ''
    returnType: port_mapping_t
    signature: "port_mapping_t natpmp::add_mapping(portmap_protocol const p, int const
      external_port\n\t, tcp::endpoint const local_ep, std::string const&)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:381,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:381,1
    - Dst: prev
      Src: /src/libtorrent/src/natpmp.cpp:382,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:382,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:384,1
    - Dst: next
      Src: /src/libtorrent/src/natpmp.cpp:384,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/natpmp.cpp:388,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:389,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:389,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:393,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:397,1
    - Dst: libtorrent::natpmp::close
      Src: /src/libtorrent/src/natpmp.cpp:399,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:404,1
    - Dst: port_mapping_t
      Src: /src/libtorrent/src/natpmp.cpp:404,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:404,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - i
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 405
    functionName: libtorrent::natpmp::try_next_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - prev
    - begin
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - libtorrent::natpmp::close
    - end
    - port_mapping_t
    - cancel
    - TORRENT_ASSERT
    - next
    - end_index
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void natpmp::try_next_mapping(port_mapping_t const i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:409,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:409,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:410,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:414,1
    - Dst: libtorrent::natpmp::close
      Src: /src/libtorrent/src/natpmp.cpp:416,1
    - Dst: libtorrent::natpmp::mapping_log
      Src: /src/libtorrent/src/natpmp.cpp:424,1
    - Dst: libtorrent::natpmp::try_next_mapping
      Src: /src/libtorrent/src/natpmp.cpp:430,1
    - Dst: libtorrent::natpmp::send_map_request
      Src: /src/libtorrent/src/natpmp.cpp:439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - i
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 441
    functionName: libtorrent::natpmp::update_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 4
    functionsReached:
    - is_single_thread
    - libtorrent::natpmp::close
    - cancel
    - libtorrent::natpmp::mapping_log
    - TORRENT_ASSERT
    - libtorrent::natpmp::send_map_request
    - end_index
    - libtorrent::natpmp::try_next_mapping
    linkageType: ''
    returnType: void
    signature: void natpmp::update_mapping(port_mapping_t const i)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:445,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:452,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:458,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:459,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:460,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:461,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:462,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/natpmp.cpp:463,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:468,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:469,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:470,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/natpmp.cpp:471,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/natpmp.cpp:473,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:477,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:479,1
    - Dst: error_code::category
      Src: /src/libtorrent/src/natpmp.cpp:480,1
    - Dst: error_code::value
      Src: /src/libtorrent/src/natpmp.cpp:481,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/natpmp.cpp:482,1
    - Dst: address::is_v4
      Src: /src/libtorrent/src/natpmp.cpp:489,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/natpmp.cpp:490,1
    - Dst: address::to_v4
      Src: /src/libtorrent/src/natpmp.cpp:490,1
    - Dst: address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:491,1
    - Dst: std::copy
      Src: /src/libtorrent/src/natpmp.cpp:492,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/natpmp.cpp:492,1
    - Dst: auto::end
      Src: /src/libtorrent/src/natpmp.cpp:492,1
    - Dst: std::copy
      Src: /src/libtorrent/src/natpmp.cpp:493,1
    - Dst: nonce::begin
      Src: /src/libtorrent/src/natpmp.cpp:493,1
    - Dst: nonce::end
      Src: /src/libtorrent/src/natpmp.cpp:493,1
    - Dst: write_int8
      Src: /src/libtorrent/src/natpmp.cpp:499,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:500,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:501,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:502,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:503,1
    - Dst: external_address::is_unspecified
      Src: /src/libtorrent/src/natpmp.cpp:505,1
    - Dst: external_address::is_v4
      Src: /src/libtorrent/src/natpmp.cpp:507,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/natpmp.cpp:508,1
    - Dst: external_address::to_v4
      Src: /src/libtorrent/src/natpmp.cpp:508,1
    - Dst: external_address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:509,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/natpmp.cpp:511,1
    - Dst: address::is_v4
      Src: /src/libtorrent/src/natpmp.cpp:513,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/natpmp.cpp:514,1
    - Dst: address_v4
      Src: /src/libtorrent/src/natpmp.cpp:514,1
    - Dst: address_v6
      Src: /src/libtorrent/src/natpmp.cpp:515,1
    - Dst: address::is_v4
      Src: /src/libtorrent/src/natpmp.cpp:517,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/natpmp.cpp:519,1
    - Dst: address::to_v4
      Src: /src/libtorrent/src/natpmp.cpp:519,1
    - Dst: address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:523,1
    - Dst: write_address
      Src: /src/libtorrent/src/natpmp.cpp:525,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/natpmp.cpp:529,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:533,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:535,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:537,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:537,1
    - Dst: libtorrent::natpmp::version_to_string
      Src: /src/libtorrent/src/natpmp.cpp:538,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:539,1
    - Dst: send_to
      Src: /src/libtorrent/src/natpmp.cpp:545,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/natpmp.cpp:545,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/natpmp.cpp:545,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:547,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:549,1
    - Dst: error_code::category
      Src: /src/libtorrent/src/natpmp.cpp:550,1
    - Dst: error_code::value
      Src: /src/libtorrent/src/natpmp.cpp:551,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/natpmp.cpp:552,1
    - Dst: libtorrent::natpmp::try_next_mapping
      Src: /src/libtorrent/src/natpmp.cpp:565,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:569,1
    - Dst: expires_after
      Src: /src/libtorrent/src/natpmp.cpp:572,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/natpmp.cpp:572,1
    - Dst: async_wait
      Src: /src/libtorrent/src/natpmp.cpp:573,1
    - Dst: std::bind
      Src: /src/libtorrent/src/natpmp.cpp:573,1
    - Dst: self
      Src: /src/libtorrent/src/natpmp.cpp:573,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 1
    argNames:
    - i
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 575
    functionName: libtorrent::natpmp::send_map_request
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - to_string
    - external_address::to_v6
    - write_uint16
    - external_address::is_unspecified
    - TORRENT_ASSERT_FAIL
    - write_int8
    - self
    - auto::begin
    - libtorrent::aux::is_local
    - libtorrent::natpmp::try_next_mapping
    - error_code::value
    - ADD_OUTSTANDING_ASYNC
    - external_address::is_v4
    - is_single_thread
    - expires_after
    - std::copy
    - address::to_v6
    - error_code::category
    - error_code::message
    - std::size_t
    - make_address_v6
    - async_wait
    - write_address
    - external_address::to_v4
    - address::is_v4
    - TORRENT_ASSERT
    - write_uint32
    - milliseconds
    - write_uint8
    - libtorrent::natpmp::version_to_string
    - address_v4
    - nonce::begin
    - address::to_v4
    - std::bind
    - libtorrent::natpmp::should_log
    - address_v6
    - nonce::end
    - libtorrent::natpmp::log
    - both_sides_from_store_buffer
    - auto::end
    - local_endpoint
    - send_to
    linkageType: ''
    returnType: void
    signature: void natpmp::send_map_request(port_mapping_t const i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:579,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:579,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:580,1
    - Dst: libtorrent::natpmp::resend_request
      Src: /src/libtorrent/src/natpmp.cpp:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - i
    - ' e'
    argTypes:
    - port_mapping_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: libtorrent::natpmp::on_resend_request
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - COMPLETE_ASYNC
    - libtorrent::natpmp::resend_request
    linkageType: ''
    returnType: void
    signature: void natpmp::on_resend_request(port_mapping_t const i, error_code const&
      e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:596,1
    - Dst: hours
      Src: /src/libtorrent/src/natpmp.cpp:596,1
    - Dst: libtorrent::natpmp::try_next_mapping
      Src: /src/libtorrent/src/natpmp.cpp:597,1
    - Dst: libtorrent::natpmp::send_map_request
      Src: /src/libtorrent/src/natpmp.cpp:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - i
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 601
    functionName: libtorrent::natpmp::resend_request
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::natpmp::send_map_request
    - libtorrent::aux::time_now
    - libtorrent::natpmp::try_next_mapping
    - hours
    linkageType: ''
    returnType: void
    signature: void natpmp::resend_request(port_mapping_t const i)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:606,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:606,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:608,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:614,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:616,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/natpmp.cpp:617,1
    - Dst: message
      Src: /src/libtorrent/src/natpmp.cpp:617,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:625,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/natpmp.cpp:629,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/natpmp.cpp:629,1
    - Dst: async_receive_from
      Src: /src/libtorrent/src/natpmp.cpp:631,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/natpmp.cpp:631,1
    - Dst: std::bind
      Src: /src/libtorrent/src/natpmp.cpp:633,1
    - Dst: self
      Src: /src/libtorrent/src/natpmp.cpp:633,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:638,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:640,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/natpmp.cpp:641,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:647,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:652,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/natpmp.cpp:657,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/natpmp.cpp:658,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:663,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/natpmp.cpp:668,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/natpmp.cpp:677,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/natpmp.cpp:681,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:687,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/natpmp.cpp:691,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/natpmp.cpp:691,1
    - Dst: libtorrent::natpmp::resend_request
      Src: /src/libtorrent/src/natpmp.cpp:694,1
    - Dst: libtorrent::natpmp::send_get_ip_address_request
      Src: /src/libtorrent/src/natpmp.cpp:695,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:704,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:712,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/natpmp.cpp:712,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:714,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/natpmp.cpp:714,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/natpmp.cpp:716,1
    - Dst: read_v4_address
      Src: /src/libtorrent/src/natpmp.cpp:721,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:724,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:726,1
    - Dst: print_address
      Src: /src/libtorrent/src/natpmp.cpp:726,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:737,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/natpmp.cpp:746,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/natpmp.cpp:746,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/natpmp.cpp:746,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/natpmp.cpp:747,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/natpmp.cpp:748,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/natpmp.cpp:753,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/natpmp.cpp:754,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:756,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/natpmp.cpp:756,1
    - Dst: read_v6_address
      Src: /src/libtorrent/src/natpmp.cpp:760,1
    - Dst: address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:761,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/natpmp.cpp:762,1
    - Dst: address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:762,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/natpmp.cpp:774,1
    - Dst: libtorrent::natpmp::version_to_string
      Src: /src/libtorrent/src/natpmp.cpp:776,1
    - Dst: protocol_version
      Src: /src/libtorrent/src/natpmp.cpp:776,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:783,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:783,1
    - Dst: port_mapping_t
      Src: /src/libtorrent/src/natpmp.cpp:791,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:791,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:791,1
    - Dst: snprintf
      Src: /src/libtorrent/src/natpmp.cpp:798,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/natpmp.cpp:798,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:799,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:806,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:817,1
    - Dst: seconds
      Src: /src/libtorrent/src/natpmp.cpp:817,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/natpmp.cpp:819,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:825,1
    - Dst: hours
      Src: /src/libtorrent/src/natpmp.cpp:825,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/natpmp.cpp:827,1
    - Dst: address
      Src: /src/libtorrent/src/natpmp.cpp:827,1
    - Dst: libtorrent::natpmp::from_result_code
      Src: /src/libtorrent/src/natpmp.cpp:828,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/natpmp.cpp:834,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:840,1
    - Dst: libtorrent::natpmp::update_expiration_timer
      Src: /src/libtorrent/src/natpmp.cpp:841,1
    - Dst: libtorrent::natpmp::try_next_mapping
      Src: /src/libtorrent/src/natpmp.cpp:842,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 126
    argCount: 2
    argNames:
    - ' e'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 603
    functionDepth: 4
    functionLinenumber: 603
    functionLinenumberEnd: 843
    functionName: libtorrent::natpmp::on_reply
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - snprintf
    - make_address_v4
    - libtorrent::aux::is_v6
    - begin
    - seconds
    - cancel
    - aux::numeric_cast<int>
    - self
    - libtorrent::aux::time_now
    - libtorrent::natpmp::try_next_mapping
    - ADD_OUTSTANDING_ASYNC
    - aux::numeric_cast<std::size_t>
    - async_receive_from
    - read_uint16
    - is_single_thread
    - message
    - libtorrent::natpmp::send_get_ip_address_request
    - protocol_version
    - end
    - print_endpoint
    - port_mapping_t
    - address::is_unspecified
    - address::to_v6
    - COMPLETE_ASYNC
    - address
    - libtorrent::natpmp::from_result_code
    - print_address
    - std::array::data
    - read_v4_address
    - read_uint32
    - std::snprintf
    - TORRENT_ASSERT
    - libtorrent::natpmp::update_expiration_timer
    - convert_from_native
    - libtorrent::natpmp::version_to_string
    - TORRENT_UNUSED
    - hours
    - std::bind
    - libtorrent::natpmp::should_log
    - std::array::size
    - std::memcpy
    - read_v6_address
    - libtorrent::natpmp::log
    - both_sides_from_store_buffer
    - local_endpoint
    - read_uint8
    - on_port_mapping
    - libtorrent::natpmp::resend_request
    linkageType: ''
    returnType: void
    signature: "void natpmp::on_reply(error_code const& e\n\t, std::size_t const bytes_transferred)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:847,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:847,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:850,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/natpmp.cpp:850,1
    - Dst: seconds
      Src: /src/libtorrent/src/natpmp.cpp:851,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:853,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:853,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:857,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:857,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:861,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:861,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:865,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:880,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:881,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/natpmp.cpp:881,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:881,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:883,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:885,1
    - Dst: expires_after
      Src: /src/libtorrent/src/natpmp.cpp:886,1
    - Dst: async_wait
      Src: /src/libtorrent/src/natpmp.cpp:887,1
    - Dst: std::bind
      Src: /src/libtorrent/src/natpmp.cpp:887,1
    - Dst: self
      Src: /src/libtorrent/src/natpmp.cpp:887,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 845
    functionDepth: 3
    functionLinenumber: 845
    functionLinenumberEnd: 890
    functionName: libtorrent::natpmp::update_expiration_timer
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - begin
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - seconds
    - end
    - total_seconds
    - cancel
    - expires_after
    - TORRENT_ASSERT
    - libtorrent::natpmp::log
    - milliseconds
    - self
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void natpmp::update_expiration_timer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:894,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:894,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:895,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:898,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:898,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:902,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' e'
    - i
    argTypes:
    - error_code
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 892
    functionDepth: 3
    functionLinenumber: 892
    functionLinenumberEnd: 903
    functionName: libtorrent::natpmp::mapping_expired
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - TORRENT_ASSERT
    - libtorrent::natpmp::log
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void natpmp::mapping_expired(error_code const& e, port_mapping_t const
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:907,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:907,1
    - Dst: libtorrent::natpmp::close_impl
      Src: /src/libtorrent/src/natpmp.cpp:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 909
    functionName: libtorrent::natpmp::close
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::natpmp::close_impl
    linkageType: ''
    returnType: void
    signature: void natpmp::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:913,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:913,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:916,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:924,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 911
    functionDepth: 3
    functionLinenumber: 911
    functionLinenumberEnd: 927
    functionName: libtorrent::natpmp::close_impl
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - cancel
    - TORRENT_ASSERT
    - libtorrent::natpmp::log
    linkageType: ''
    returnType: void
    signature: void natpmp::close_impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: libtorrent::pcp_category
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & pcp_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcp_category
      Src: /src/libtorrent/src/natpmp.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - pcp_errors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: libtorrent::errors::make_error_code
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - pcp_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(pcp_errors e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcp_category
      Src: /src/libtorrent/src/natpmp.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - pcp_errors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: libtorrent::errors::make_error_code
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - pcp_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(pcp_errors e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: errors::pcp_errors
      Src: /src/libtorrent/src/natpmp.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - version
    - result
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: libtorrent::natpmp::from_result_code
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 1
    functionsReached:
    - errors::pcp_errors
    linkageType: ''
    returnType: error_code
    signature: error_code natpmp::from_result_code(int const version, int result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::natpmp::version_to_string
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * natpmp::version_to_string(protocol_version version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/natpmp.cpp:147,1
    - Dst: reserve
      Src: /src/libtorrent/src/natpmp.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' cb'
    - ls
    argTypes:
    - io_context
    - aux::portmap_callback
    - listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 153
    functionName: libtorrent::natpmp::natpmp
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - std::move
    linkageType: ''
    returnType: void
    signature: "void natpmp::natpmp(io_context& ios\n\t, aux::portmap_callback& cb\n\t,
      listen_socket_handle ls)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:157,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:157,1
    - Dst: enum_routes
      Src: /src/libtorrent/src/natpmp.cpp:166,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:170,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:172,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/natpmp.cpp:173,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/natpmp.cpp:173,1
    - Dst: libtorrent::natpmp::disable
      Src: /src/libtorrent/src/natpmp.cpp:176,1
    - Dst: get_gateway
      Src: /src/libtorrent/src/natpmp.cpp:179,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:184,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:186,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:187,1
    - Dst: libtorrent::natpmp::disable
      Src: /src/libtorrent/src/natpmp.cpp:190,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:201,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:203,1
    - Dst: print_address
      Src: /src/libtorrent/src/natpmp.cpp:204,1
    - Dst: address
      Src: /src/libtorrent/src/natpmp.cpp:204,1
    - Dst: open
      Src: /src/libtorrent/src/natpmp.cpp:208,1
    - Dst: is_v4
      Src: /src/libtorrent/src/natpmp.cpp:208,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/natpmp.cpp:208,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/natpmp.cpp:208,1
    - Dst: libtorrent::natpmp::disable
      Src: /src/libtorrent/src/natpmp.cpp:211,1
    - Dst: bind
      Src: /src/libtorrent/src/natpmp.cpp:214,1
    - Dst: libtorrent::natpmp::disable
      Src: /src/libtorrent/src/natpmp.cpp:217,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:221,1
    - Dst: async_receive_from
      Src: /src/libtorrent/src/natpmp.cpp:222,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/natpmp.cpp:222,1
    - Dst: std::bind
      Src: /src/libtorrent/src/natpmp.cpp:224,1
    - Dst: self
      Src: /src/libtorrent/src/natpmp.cpp:224,1
    - Dst: libtorrent::natpmp::send_get_ip_address_request
      Src: /src/libtorrent/src/natpmp.cpp:226,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:228,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:234,1
    - Dst: port_mapping_t
      Src: /src/libtorrent/src/natpmp.cpp:234,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:234,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - ip_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 236
    functionName: libtorrent::natpmp::start
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - begin
    - enum_routes
    - self
    - bind
    - ADD_OUTSTANDING_ASYNC
    - rand_v6
    - async_receive_from
    - is_single_thread
    - libtorrent::natpmp::send_get_ip_address_request
    - end
    - libtorrent::natpmp::update_mapping
    - port_mapping_t
    - error_code::message
    - address
    - print_address
    - open
    - TORRENT_ASSERT
    - libtorrent::natpmp::disable
    - convert_from_native
    - std::bind
    - libtorrent::natpmp::should_log
    - rand_v4
    - get_gateway
    - libtorrent::natpmp::log
    - both_sides_from_store_buffer
    - is_v4
    linkageType: ''
    returnType: void
    signature: void natpmp::start(ip_interface const& ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:240,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:240,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:245,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:251,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:252,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:254,1
    - Dst: send_to
      Src: /src/libtorrent/src/natpmp.cpp:258,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/natpmp.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 259
    functionName: libtorrent::natpmp::send_get_ip_address_request
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 3
    functionsReached:
    - is_single_thread
    - TORRENT_ASSERT
    - libtorrent::natpmp::log
    - both_sides_from_store_buffer
    - write_uint8
    - send_to
    linkageType: ''
    returnType: void
    signature: void natpmp::send_get_ip_address_request()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:264,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:266,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:266,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - index
    - ' local_port'
    - ' external_port'
    - ' protocol'
    argTypes:
    - port_mapping_t
    - int
    - int
    - portmap_protocol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: libtorrent::natpmp::get_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - end_index
    linkageType: ''
    returnType: bool
    signature: "bool natpmp::get_mapping(port_mapping_t const index, int& local_port\n\t,
      int& external_port, portmap_protocol& protocol) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_log_portmap
      Src: /src/libtorrent/src/natpmp.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: libtorrent::natpmp::should_log
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 6
    functionsReached:
    - should_log_portmap
    linkageType: ''
    returnType: bool
    signature: bool natpmp::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:284,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:286,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:289,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:292,1
    - Dst: expires::time_since_epoch
      Src: /src/libtorrent/src/natpmp.cpp:293,1
    - Dst: seconds
      Src: /src/libtorrent/src/natpmp.cpp:293,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/natpmp.cpp:294,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:294,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/natpmp.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - ' m'
    argTypes:
    - char*
    - mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 297
    functionName: libtorrent::natpmp::mapping_log
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 2
    functionsReached:
    - to_string
    - libtorrent::natpmp::should_log
    - expires::time_since_epoch
    - total_seconds
    - seconds
    - libtorrent::natpmp::log
    - std::int64_t
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void natpmp::mapping_log(char const* op, mapping_t const& m) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:302,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:302,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:303,1
    - Dst: va_start
      Src: /src/libtorrent/src/natpmp.cpp:306,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/natpmp.cpp:307,1
    - Dst: va_end
      Src: /src/libtorrent/src/natpmp.cpp:308,1
    - Dst: log_portmap
      Src: /src/libtorrent/src/natpmp.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 310
    functionName: libtorrent::natpmp::log
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 11
    functionsReached:
    - libtorrent::natpmp::should_log
    - va_start
    - is_single_thread
    - TORRENT_ASSERT
    - va_end
    - log_portmap
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void natpmp::log(char const* fmt, ...) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:315,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:315,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:318,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:318,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:323,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:323,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/natpmp.cpp:324,1
    - Dst: address
      Src: /src/libtorrent/src/natpmp.cpp:324,1
    - Dst: libtorrent::natpmp::close_impl
      Src: /src/libtorrent/src/natpmp.cpp:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 328
    functionName: libtorrent::natpmp::disable
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - begin
    - is_single_thread
    - end
    - libtorrent::natpmp::close_impl
    - TORRENT_ASSERT
    - on_port_mapping
    - address
    linkageType: ''
    returnType: void
    signature: void natpmp::disable(error_code const& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:332,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:334,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:334,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:335,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 348
    functionName: libtorrent::natpmp::delete_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - end_index
    linkageType: ''
    returnType: void
    signature: void natpmp::delete_mapping(port_mapping_t const index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:353,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:353,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/natpmp.cpp:357,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:357,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:358,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:359,1
    - Dst: push_back
      Src: /src/libtorrent/src/natpmp.cpp:361,1
    - Dst: mapping_t
      Src: /src/libtorrent/src/natpmp.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:362,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/natpmp.cpp:364,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/natpmp.cpp:367,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:370,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:370,1
    - Dst: libtorrent::natpmp::mapping_log
      Src: /src/libtorrent/src/natpmp.cpp:372,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - p
    - external_port
    - local_ep
    argTypes:
    - portmap_protocol
    - int
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 377
    functionName: libtorrent::natpmp::add_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - begin
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - end
    - libtorrent::natpmp::mapping_log
    - TORRENT_ASSERT
    - libtorrent::aux::crypto_random_bytes
    - mapping_t
    - tcp::endpoint::port
    - std::find_if
    linkageType: ''
    returnType: port_mapping_t
    signature: "port_mapping_t natpmp::add_mapping(portmap_protocol const p, int const
      external_port\n\t, tcp::endpoint const local_ep, std::string const&)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:381,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:381,1
    - Dst: prev
      Src: /src/libtorrent/src/natpmp.cpp:382,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:382,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:384,1
    - Dst: next
      Src: /src/libtorrent/src/natpmp.cpp:384,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/natpmp.cpp:388,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:389,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:389,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:393,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:397,1
    - Dst: libtorrent::natpmp::close
      Src: /src/libtorrent/src/natpmp.cpp:399,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:404,1
    - Dst: port_mapping_t
      Src: /src/libtorrent/src/natpmp.cpp:404,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:404,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - i
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 405
    functionName: libtorrent::natpmp::try_next_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - prev
    - begin
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - libtorrent::natpmp::close
    - end
    - port_mapping_t
    - cancel
    - TORRENT_ASSERT
    - next
    - end_index
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void natpmp::try_next_mapping(port_mapping_t const i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:409,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:409,1
    - Dst: end_index
      Src: /src/libtorrent/src/natpmp.cpp:410,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:414,1
    - Dst: libtorrent::natpmp::close
      Src: /src/libtorrent/src/natpmp.cpp:416,1
    - Dst: libtorrent::natpmp::mapping_log
      Src: /src/libtorrent/src/natpmp.cpp:424,1
    - Dst: libtorrent::natpmp::try_next_mapping
      Src: /src/libtorrent/src/natpmp.cpp:430,1
    - Dst: libtorrent::natpmp::send_map_request
      Src: /src/libtorrent/src/natpmp.cpp:439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - i
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 441
    functionName: libtorrent::natpmp::update_mapping
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 11
    functionsReached:
    - is_single_thread
    - libtorrent::natpmp::close
    - cancel
    - libtorrent::natpmp::mapping_log
    - TORRENT_ASSERT
    - libtorrent::natpmp::send_map_request
    - end_index
    - libtorrent::natpmp::try_next_mapping
    linkageType: ''
    returnType: void
    signature: void natpmp::update_mapping(port_mapping_t const i)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:445,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:452,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:458,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:459,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:460,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:461,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:462,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/natpmp.cpp:463,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:468,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:469,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:470,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/natpmp.cpp:471,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/natpmp.cpp:473,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:477,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:479,1
    - Dst: error_code::category
      Src: /src/libtorrent/src/natpmp.cpp:480,1
    - Dst: error_code::value
      Src: /src/libtorrent/src/natpmp.cpp:481,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/natpmp.cpp:482,1
    - Dst: address::is_v4
      Src: /src/libtorrent/src/natpmp.cpp:489,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/natpmp.cpp:490,1
    - Dst: address::to_v4
      Src: /src/libtorrent/src/natpmp.cpp:490,1
    - Dst: address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:491,1
    - Dst: std::copy
      Src: /src/libtorrent/src/natpmp.cpp:492,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/natpmp.cpp:492,1
    - Dst: auto::end
      Src: /src/libtorrent/src/natpmp.cpp:492,1
    - Dst: std::copy
      Src: /src/libtorrent/src/natpmp.cpp:493,1
    - Dst: nonce::begin
      Src: /src/libtorrent/src/natpmp.cpp:493,1
    - Dst: nonce::end
      Src: /src/libtorrent/src/natpmp.cpp:493,1
    - Dst: write_int8
      Src: /src/libtorrent/src/natpmp.cpp:499,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/natpmp.cpp:500,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:501,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:502,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/natpmp.cpp:503,1
    - Dst: external_address::is_unspecified
      Src: /src/libtorrent/src/natpmp.cpp:505,1
    - Dst: external_address::is_v4
      Src: /src/libtorrent/src/natpmp.cpp:507,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/natpmp.cpp:508,1
    - Dst: external_address::to_v4
      Src: /src/libtorrent/src/natpmp.cpp:508,1
    - Dst: external_address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:509,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/natpmp.cpp:511,1
    - Dst: address::is_v4
      Src: /src/libtorrent/src/natpmp.cpp:513,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/natpmp.cpp:514,1
    - Dst: address_v4
      Src: /src/libtorrent/src/natpmp.cpp:514,1
    - Dst: address_v6
      Src: /src/libtorrent/src/natpmp.cpp:515,1
    - Dst: address::is_v4
      Src: /src/libtorrent/src/natpmp.cpp:517,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/natpmp.cpp:519,1
    - Dst: address::to_v4
      Src: /src/libtorrent/src/natpmp.cpp:519,1
    - Dst: address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:523,1
    - Dst: write_address
      Src: /src/libtorrent/src/natpmp.cpp:525,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/natpmp.cpp:529,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:533,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:535,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:537,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:537,1
    - Dst: libtorrent::natpmp::version_to_string
      Src: /src/libtorrent/src/natpmp.cpp:538,1
    - Dst: to_string
      Src: /src/libtorrent/src/natpmp.cpp:539,1
    - Dst: send_to
      Src: /src/libtorrent/src/natpmp.cpp:545,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/natpmp.cpp:545,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/natpmp.cpp:545,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:547,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:549,1
    - Dst: error_code::category
      Src: /src/libtorrent/src/natpmp.cpp:550,1
    - Dst: error_code::value
      Src: /src/libtorrent/src/natpmp.cpp:551,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/natpmp.cpp:552,1
    - Dst: libtorrent::natpmp::try_next_mapping
      Src: /src/libtorrent/src/natpmp.cpp:565,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:569,1
    - Dst: expires_after
      Src: /src/libtorrent/src/natpmp.cpp:572,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/natpmp.cpp:572,1
    - Dst: async_wait
      Src: /src/libtorrent/src/natpmp.cpp:573,1
    - Dst: std::bind
      Src: /src/libtorrent/src/natpmp.cpp:573,1
    - Dst: self
      Src: /src/libtorrent/src/natpmp.cpp:573,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 1
    argNames:
    - i
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 575
    functionName: libtorrent::natpmp::send_map_request
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - to_string
    - external_address::to_v6
    - write_uint16
    - external_address::is_unspecified
    - TORRENT_ASSERT_FAIL
    - write_int8
    - self
    - auto::begin
    - libtorrent::aux::is_local
    - libtorrent::natpmp::try_next_mapping
    - error_code::value
    - ADD_OUTSTANDING_ASYNC
    - external_address::is_v4
    - is_single_thread
    - expires_after
    - std::copy
    - address::to_v6
    - error_code::category
    - error_code::message
    - std::size_t
    - make_address_v6
    - async_wait
    - write_address
    - external_address::to_v4
    - address::is_v4
    - TORRENT_ASSERT
    - write_uint32
    - milliseconds
    - write_uint8
    - libtorrent::natpmp::version_to_string
    - address_v4
    - nonce::begin
    - address::to_v4
    - std::bind
    - libtorrent::natpmp::should_log
    - address_v6
    - nonce::end
    - libtorrent::natpmp::log
    - both_sides_from_store_buffer
    - auto::end
    - local_endpoint
    - send_to
    linkageType: ''
    returnType: void
    signature: void natpmp::send_map_request(port_mapping_t const i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:579,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:579,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:580,1
    - Dst: libtorrent::natpmp::resend_request
      Src: /src/libtorrent/src/natpmp.cpp:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - i
    - ' e'
    argTypes:
    - port_mapping_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 4
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: libtorrent::natpmp::on_resend_request
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - COMPLETE_ASYNC
    - libtorrent::natpmp::resend_request
    linkageType: ''
    returnType: void
    signature: void natpmp::on_resend_request(port_mapping_t const i, error_code const&
      e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:596,1
    - Dst: hours
      Src: /src/libtorrent/src/natpmp.cpp:596,1
    - Dst: libtorrent::natpmp::try_next_mapping
      Src: /src/libtorrent/src/natpmp.cpp:597,1
    - Dst: libtorrent::natpmp::send_map_request
      Src: /src/libtorrent/src/natpmp.cpp:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - i
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 601
    functionName: libtorrent::natpmp::resend_request
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::natpmp::send_map_request
    - libtorrent::aux::time_now
    - libtorrent::natpmp::try_next_mapping
    - hours
    linkageType: ''
    returnType: void
    signature: void natpmp::resend_request(port_mapping_t const i)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:606,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:606,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:608,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:614,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:616,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/natpmp.cpp:617,1
    - Dst: message
      Src: /src/libtorrent/src/natpmp.cpp:617,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:625,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/natpmp.cpp:629,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/natpmp.cpp:629,1
    - Dst: async_receive_from
      Src: /src/libtorrent/src/natpmp.cpp:631,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/natpmp.cpp:631,1
    - Dst: std::bind
      Src: /src/libtorrent/src/natpmp.cpp:633,1
    - Dst: self
      Src: /src/libtorrent/src/natpmp.cpp:633,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:638,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:640,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/natpmp.cpp:641,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:647,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:652,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/natpmp.cpp:657,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/natpmp.cpp:658,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:663,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/natpmp.cpp:668,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/natpmp.cpp:677,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/natpmp.cpp:681,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:687,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/natpmp.cpp:691,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/natpmp.cpp:691,1
    - Dst: libtorrent::natpmp::resend_request
      Src: /src/libtorrent/src/natpmp.cpp:694,1
    - Dst: libtorrent::natpmp::send_get_ip_address_request
      Src: /src/libtorrent/src/natpmp.cpp:695,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:704,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:712,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/natpmp.cpp:712,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:714,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/natpmp.cpp:714,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/natpmp.cpp:716,1
    - Dst: read_v4_address
      Src: /src/libtorrent/src/natpmp.cpp:721,1
    - Dst: libtorrent::natpmp::should_log
      Src: /src/libtorrent/src/natpmp.cpp:724,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:726,1
    - Dst: print_address
      Src: /src/libtorrent/src/natpmp.cpp:726,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:737,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/natpmp.cpp:746,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/natpmp.cpp:746,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/natpmp.cpp:746,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/natpmp.cpp:747,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/natpmp.cpp:748,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/natpmp.cpp:753,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/natpmp.cpp:754,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:756,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/natpmp.cpp:756,1
    - Dst: read_v6_address
      Src: /src/libtorrent/src/natpmp.cpp:760,1
    - Dst: address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:761,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/natpmp.cpp:762,1
    - Dst: address::to_v6
      Src: /src/libtorrent/src/natpmp.cpp:762,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/natpmp.cpp:774,1
    - Dst: libtorrent::natpmp::version_to_string
      Src: /src/libtorrent/src/natpmp.cpp:776,1
    - Dst: protocol_version
      Src: /src/libtorrent/src/natpmp.cpp:776,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:783,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:783,1
    - Dst: port_mapping_t
      Src: /src/libtorrent/src/natpmp.cpp:791,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:791,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:791,1
    - Dst: snprintf
      Src: /src/libtorrent/src/natpmp.cpp:798,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/natpmp.cpp:798,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:799,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:806,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:817,1
    - Dst: seconds
      Src: /src/libtorrent/src/natpmp.cpp:817,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/natpmp.cpp:819,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:825,1
    - Dst: hours
      Src: /src/libtorrent/src/natpmp.cpp:825,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/natpmp.cpp:827,1
    - Dst: address
      Src: /src/libtorrent/src/natpmp.cpp:827,1
    - Dst: libtorrent::natpmp::from_result_code
      Src: /src/libtorrent/src/natpmp.cpp:828,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/natpmp.cpp:834,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:840,1
    - Dst: libtorrent::natpmp::update_expiration_timer
      Src: /src/libtorrent/src/natpmp.cpp:841,1
    - Dst: libtorrent::natpmp::try_next_mapping
      Src: /src/libtorrent/src/natpmp.cpp:842,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 126
    argCount: 2
    argNames:
    - ' e'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 603
    functionDepth: 4
    functionLinenumber: 603
    functionLinenumberEnd: 843
    functionName: libtorrent::natpmp::on_reply
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - snprintf
    - make_address_v4
    - libtorrent::aux::is_v6
    - begin
    - seconds
    - cancel
    - aux::numeric_cast<int>
    - self
    - libtorrent::aux::time_now
    - libtorrent::natpmp::try_next_mapping
    - ADD_OUTSTANDING_ASYNC
    - aux::numeric_cast<std::size_t>
    - async_receive_from
    - read_uint16
    - is_single_thread
    - message
    - libtorrent::natpmp::send_get_ip_address_request
    - protocol_version
    - end
    - print_endpoint
    - port_mapping_t
    - address::is_unspecified
    - address::to_v6
    - COMPLETE_ASYNC
    - address
    - libtorrent::natpmp::from_result_code
    - print_address
    - std::array::data
    - read_v4_address
    - read_uint32
    - std::snprintf
    - TORRENT_ASSERT
    - libtorrent::natpmp::update_expiration_timer
    - convert_from_native
    - libtorrent::natpmp::version_to_string
    - TORRENT_UNUSED
    - hours
    - std::bind
    - libtorrent::natpmp::should_log
    - std::array::size
    - std::memcpy
    - read_v6_address
    - libtorrent::natpmp::log
    - both_sides_from_store_buffer
    - local_endpoint
    - read_uint8
    - on_port_mapping
    - libtorrent::natpmp::resend_request
    linkageType: ''
    returnType: void
    signature: "void natpmp::on_reply(error_code const& e\n\t, std::size_t const bytes_transferred)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:847,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:847,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:850,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/natpmp.cpp:850,1
    - Dst: seconds
      Src: /src/libtorrent/src/natpmp.cpp:851,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:853,1
    - Dst: end
      Src: /src/libtorrent/src/natpmp.cpp:853,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:857,1
    - Dst: begin
      Src: /src/libtorrent/src/natpmp.cpp:857,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:861,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:861,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:865,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:880,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:881,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/natpmp.cpp:881,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/natpmp.cpp:881,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:883,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:885,1
    - Dst: expires_after
      Src: /src/libtorrent/src/natpmp.cpp:886,1
    - Dst: async_wait
      Src: /src/libtorrent/src/natpmp.cpp:887,1
    - Dst: std::bind
      Src: /src/libtorrent/src/natpmp.cpp:887,1
    - Dst: self
      Src: /src/libtorrent/src/natpmp.cpp:887,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 845
    functionDepth: 3
    functionLinenumber: 845
    functionLinenumberEnd: 890
    functionName: libtorrent::natpmp::update_expiration_timer
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - begin
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - seconds
    - end
    - total_seconds
    - cancel
    - expires_after
    - TORRENT_ASSERT
    - libtorrent::natpmp::log
    - milliseconds
    - self
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void natpmp::update_expiration_timer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:894,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:894,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/natpmp.cpp:895,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:898,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/natpmp.cpp:898,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:902,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' e'
    - i
    argTypes:
    - error_code
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 892
    functionDepth: 3
    functionLinenumber: 892
    functionLinenumberEnd: 903
    functionName: libtorrent::natpmp::mapping_expired
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - TORRENT_ASSERT
    - libtorrent::natpmp::log
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void natpmp::mapping_expired(error_code const& e, port_mapping_t const
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:907,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:907,1
    - Dst: libtorrent::natpmp::close_impl
      Src: /src/libtorrent/src/natpmp.cpp:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 905
    functionDepth: 4
    functionLinenumber: 905
    functionLinenumberEnd: 909
    functionName: libtorrent::natpmp::close
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::natpmp::close_impl
    linkageType: ''
    returnType: void
    signature: void natpmp::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/natpmp.cpp:913,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/natpmp.cpp:913,1
    - Dst: libtorrent::natpmp::log
      Src: /src/libtorrent/src/natpmp.cpp:916,1
    - Dst: cancel
      Src: /src/libtorrent/src/natpmp.cpp:924,1
    - Dst: libtorrent::natpmp::update_mapping
      Src: /src/libtorrent/src/natpmp.cpp:926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 911
    functionDepth: 3
    functionLinenumber: 911
    functionLinenumberEnd: 927
    functionName: libtorrent::natpmp::close_impl
    functionSourceFile: /src/libtorrent/src/natpmp.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::natpmp::update_mapping
    - is_single_thread
    - cancel
    - TORRENT_ASSERT
    - libtorrent::natpmp::log
    linkageType: ''
    returnType: void
    signature: void natpmp::close_impl()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utf8.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: libtorrent::utf8_sequence_length
    functionSourceFile: /src/libtorrent/src/utf8.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: int
    signature: int utf8_sequence_length(char const c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utf8.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: libtorrent::utf8_sequence_length
    functionSourceFile: /src/libtorrent/src/utf8.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: int
    signature: int utf8_sequence_length(char const c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:88,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:88,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:91,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:91,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:94,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:94,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:97,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:97,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:102,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - ' ret'
    - codepoint
    argTypes:
    - std::string
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 103
    functionName: libtorrent::append_utf8_codepoint
    functionSourceFile: /src/libtorrent/src/utf8.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::push_back
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void append_utf8_codepoint(std::string& ret, std::int32_t codepoint)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utf8.cpp:109,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/utf8.cpp:109,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/utf8.cpp:110,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:110,1
    - Dst: libtorrent::utf8_sequence_length
      Src: /src/libtorrent/src/utf8.cpp:112,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:115,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utf8.cpp:115,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:119,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:122,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/utf8.cpp:124,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:125,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utf8.cpp:125,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/utf8.cpp:125,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utf8.cpp:146,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/utf8.cpp:146,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:149,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:159,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:162,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:165,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:170,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:174,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:176,1
    - Dst: static_cast<std::int32_t>
      Src: /src/libtorrent/src/utf8.cpp:176,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 177
    functionName: libtorrent::parse_utf8_codepoint
    functionSourceFile: /src/libtorrent/src/utf8.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::int32_t
    - std::make_pair
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - string_view::empty
    - string_view::size
    - libtorrent::utf8_sequence_length
    - static_cast<std::uint8_t>
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: std::pair<std::int32_t, int>
    signature: std::pair<std::int32_t, int> parse_utf8_codepoint(string_view str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utf8.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: libtorrent::utf8_sequence_length
    functionSourceFile: /src/libtorrent/src/utf8.cpp
    functionUses: 1
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: int
    signature: int utf8_sequence_length(char const c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utf8.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: libtorrent::utf8_sequence_length
    functionSourceFile: /src/libtorrent/src/utf8.cpp
    functionUses: 1
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: int
    signature: int utf8_sequence_length(char const c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:88,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:88,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:91,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:91,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:94,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:94,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:97,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:97,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/utf8.cpp:102,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/utf8.cpp:102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - ' ret'
    - codepoint
    argTypes:
    - std::string
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 103
    functionName: libtorrent::append_utf8_codepoint
    functionSourceFile: /src/libtorrent/src/utf8.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::push_back
    - static_cast<char>
    linkageType: ''
    returnType: void
    signature: void append_utf8_codepoint(std::string& ret, std::int32_t codepoint)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utf8.cpp:109,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/utf8.cpp:109,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/utf8.cpp:110,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:110,1
    - Dst: libtorrent::utf8_sequence_length
      Src: /src/libtorrent/src/utf8.cpp:112,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:115,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utf8.cpp:115,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:119,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:122,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/utf8.cpp:124,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:125,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utf8.cpp:125,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/utf8.cpp:125,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utf8.cpp:146,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/utf8.cpp:146,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:149,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:159,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:162,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:165,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:170,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:174,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/utf8.cpp:176,1
    - Dst: static_cast<std::int32_t>
      Src: /src/libtorrent/src/utf8.cpp:176,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 177
    functionName: libtorrent::parse_utf8_codepoint
    functionSourceFile: /src/libtorrent/src/utf8.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::int32_t
    - std::make_pair
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - string_view::empty
    - string_view::size
    - libtorrent::utf8_sequence_length
    - static_cast<std::uint8_t>
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: std::pair<std::int32_t, int>
    signature: std::pair<std::int32_t, int> parse_utf8_codepoint(string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: directory
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(DIR* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::closedir
      Src: /src/libtorrent/src/drive_info.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~directory()
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - ::closedir
    linkageType: ''
    returnType: void
    signature: void ~directory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: directory
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(directory const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - directory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: directory
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(directory&& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& operator=(directory const&)'
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: directory
    signature: directory & operator=(directory const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - directory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& operator=(directory&& f)'
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: directory
    signature: directory & operator=(directory&& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: dir
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DIR
    signature: DIR * dir() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/drive_info.cpp:71,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/drive_info.cpp:73,1
    - Dst: lt::aux::file_descriptor::fd
      Src: /src/libtorrent/src/drive_info.cpp:74,1
    - Dst: sim::http_server::read
      Src: /src/libtorrent/src/drive_info.cpp:78,1
    - Dst: lt::aux::file_descriptor::fd
      Src: /src/libtorrent/src/drive_info.cpp:78,1
    - Dst: static_cast<decltype(size)>
      Src: /src/libtorrent/src/drive_info.cpp:79,1
    - Dst: std::string
      Src: /src/libtorrent/src/drive_info.cpp:82,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/drive_info.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - dev_name
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: read_file
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - lt::aux::file_descriptor::fd
    - std::snprintf
    - std::string
    - libtorrent::broadcast_socket::open
    - static_cast<decltype(size)>
    - std::size_t
    - sim::http_server::read
    linkageType: ''
    returnType: boost::optional<std::string>
    signature: boost::optional<std::string> read_file(char const* dev_name, char const*
      path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: directory
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(DIR* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::closedir
      Src: /src/libtorrent/src/drive_info.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~directory()
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - ::closedir
    linkageType: ''
    returnType: void
    signature: void ~directory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: directory
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(directory const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - directory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: directory
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(directory&& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& operator=(directory const&)'
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: directory
    signature: directory & operator=(directory const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - directory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& operator=(directory&& f)'
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: directory
    signature: directory & operator=(directory&& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: dir
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: DIR
    signature: DIR * dir() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/drive_info.cpp:71,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/drive_info.cpp:73,1
    - Dst: lt::aux::file_descriptor::fd
      Src: /src/libtorrent/src/drive_info.cpp:74,1
    - Dst: sim::http_server::read
      Src: /src/libtorrent/src/drive_info.cpp:78,1
    - Dst: lt::aux::file_descriptor::fd
      Src: /src/libtorrent/src/drive_info.cpp:78,1
    - Dst: static_cast<decltype(size)>
      Src: /src/libtorrent/src/drive_info.cpp:79,1
    - Dst: std::string
      Src: /src/libtorrent/src/drive_info.cpp:82,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/drive_info.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - dev_name
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: read_file
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - lt::aux::file_descriptor::fd
    - std::snprintf
    - std::string
    - libtorrent::broadcast_socket::open
    - static_cast<decltype(size)>
    - std::size_t
    - sim::http_server::read
    linkageType: ''
    returnType: boost::optional<std::string>
    signature: boost::optional<std::string> read_file(char const* dev_name, char const*
      path)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/libtorrent/src/drive_info.cpp:106,1
    - Dst: c_str
      Src: /src/libtorrent/src/drive_info.cpp:106,1
    - Dst: stat
      Src: /src/libtorrent/src/drive_info.cpp:125,1
    - Dst: c_str
      Src: /src/libtorrent/src/drive_info.cpp:125,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: major
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: minor
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: opendir
      Src: /src/libtorrent/src/drive_info.cpp:131,1
    - Dst: directory::dir
      Src: /src/libtorrent/src/drive_info.cpp:132,1
    - Dst: readdir
      Src: /src/libtorrent/src/drive_info.cpp:136,1
    - Dst: directory::dir
      Src: /src/libtorrent/src/drive_info.cpp:136,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:141,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:148,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:158,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 166
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - stat
    - minor
    - c_str
    - readdir
    - std::snprintf
    - directory::dir
    - read_file
    - opendir
    - major
    - statfs
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const& path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/drive_info.cpp:175,1
    - Dst: GetVolumePathNameW
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: DWORD
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: GetDriveTypeW
      Src: /src/libtorrent/src/drive_info.cpp:181,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:181,1
    - Dst: GetVolumeInformationW
      Src: /src/libtorrent/src/drive_info.cpp:189,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:189,1
    - Dst: GetVolumeNameForVolumeMountPointW
      Src: /src/libtorrent/src/drive_info.cpp:202,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:202,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: DWORD
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: ::wcslen
      Src: /src/libtorrent/src/drive_info.cpp:207,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:207,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/drive_info.cpp:211,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:211,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:214,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/drive_info.cpp:224,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:224,1
    - Dst: ::_snwprintf
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/drive_info.cpp:240,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:240,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:243,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/drive_info.cpp:254,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:254,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 271
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - std::array::size
    - std::array::data
    - aux::win_file_handle::handle
    - ::wcslen
    - CreateFileW
    - convert_to_native_path_string
    - GetVolumePathNameW
    - DWORD
    - GetDriveTypeW
    - GetVolumeNameForVolumeMountPointW
    - ::_snwprintf
    - DeviceIoControl
    - GetVolumeInformationW
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const&)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/libtorrent/src/drive_info.cpp:106,1
    - Dst: c_str
      Src: /src/libtorrent/src/drive_info.cpp:106,1
    - Dst: stat
      Src: /src/libtorrent/src/drive_info.cpp:125,1
    - Dst: c_str
      Src: /src/libtorrent/src/drive_info.cpp:125,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: major
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: minor
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: opendir
      Src: /src/libtorrent/src/drive_info.cpp:131,1
    - Dst: directory::dir
      Src: /src/libtorrent/src/drive_info.cpp:132,1
    - Dst: readdir
      Src: /src/libtorrent/src/drive_info.cpp:136,1
    - Dst: directory::dir
      Src: /src/libtorrent/src/drive_info.cpp:136,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:141,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:148,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:158,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 166
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - stat
    - minor
    - c_str
    - readdir
    - std::snprintf
    - directory::dir
    - read_file
    - opendir
    - major
    - statfs
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const& path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/drive_info.cpp:175,1
    - Dst: GetVolumePathNameW
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: DWORD
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: GetDriveTypeW
      Src: /src/libtorrent/src/drive_info.cpp:181,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:181,1
    - Dst: GetVolumeInformationW
      Src: /src/libtorrent/src/drive_info.cpp:189,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:189,1
    - Dst: GetVolumeNameForVolumeMountPointW
      Src: /src/libtorrent/src/drive_info.cpp:202,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:202,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: DWORD
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: ::wcslen
      Src: /src/libtorrent/src/drive_info.cpp:207,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:207,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/drive_info.cpp:211,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:211,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:214,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/drive_info.cpp:224,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:224,1
    - Dst: ::_snwprintf
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/drive_info.cpp:240,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:240,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:243,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/drive_info.cpp:254,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:254,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 271
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - std::array::size
    - std::array::data
    - aux::win_file_handle::handle
    - ::wcslen
    - CreateFileW
    - convert_to_native_path_string
    - GetVolumePathNameW
    - DWORD
    - GetDriveTypeW
    - GetVolumeNameForVolumeMountPointW
    - ::_snwprintf
    - DeviceIoControl
    - GetVolumeInformationW
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const&)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/libtorrent/src/drive_info.cpp:106,1
    - Dst: c_str
      Src: /src/libtorrent/src/drive_info.cpp:106,1
    - Dst: stat
      Src: /src/libtorrent/src/drive_info.cpp:125,1
    - Dst: c_str
      Src: /src/libtorrent/src/drive_info.cpp:125,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: major
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: minor
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: opendir
      Src: /src/libtorrent/src/drive_info.cpp:131,1
    - Dst: directory::dir
      Src: /src/libtorrent/src/drive_info.cpp:132,1
    - Dst: readdir
      Src: /src/libtorrent/src/drive_info.cpp:136,1
    - Dst: directory::dir
      Src: /src/libtorrent/src/drive_info.cpp:136,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:141,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:148,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:158,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 166
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - stat
    - minor
    - c_str
    - readdir
    - std::snprintf
    - directory::dir
    - read_file
    - opendir
    - major
    - statfs
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const& path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/drive_info.cpp:175,1
    - Dst: GetVolumePathNameW
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: DWORD
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: GetDriveTypeW
      Src: /src/libtorrent/src/drive_info.cpp:181,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:181,1
    - Dst: GetVolumeInformationW
      Src: /src/libtorrent/src/drive_info.cpp:189,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:189,1
    - Dst: GetVolumeNameForVolumeMountPointW
      Src: /src/libtorrent/src/drive_info.cpp:202,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:202,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: DWORD
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: ::wcslen
      Src: /src/libtorrent/src/drive_info.cpp:207,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:207,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/drive_info.cpp:211,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:211,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:214,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/drive_info.cpp:224,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:224,1
    - Dst: ::_snwprintf
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/drive_info.cpp:240,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:240,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:243,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/drive_info.cpp:254,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:254,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 271
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - std::array::size
    - std::array::data
    - aux::win_file_handle::handle
    - ::wcslen
    - CreateFileW
    - convert_to_native_path_string
    - GetVolumePathNameW
    - DWORD
    - GetDriveTypeW
    - GetVolumeNameForVolumeMountPointW
    - ::_snwprintf
    - DeviceIoControl
    - GetVolumeInformationW
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const&)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/libtorrent/src/drive_info.cpp:106,1
    - Dst: c_str
      Src: /src/libtorrent/src/drive_info.cpp:106,1
    - Dst: stat
      Src: /src/libtorrent/src/drive_info.cpp:125,1
    - Dst: c_str
      Src: /src/libtorrent/src/drive_info.cpp:125,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: major
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: minor
      Src: /src/libtorrent/src/drive_info.cpp:129,1
    - Dst: opendir
      Src: /src/libtorrent/src/drive_info.cpp:131,1
    - Dst: directory::dir
      Src: /src/libtorrent/src/drive_info.cpp:132,1
    - Dst: readdir
      Src: /src/libtorrent/src/drive_info.cpp:136,1
    - Dst: directory::dir
      Src: /src/libtorrent/src/drive_info.cpp:136,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:141,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:148,1
    - Dst: read_file
      Src: /src/libtorrent/src/drive_info.cpp:158,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 166
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - stat
    - minor
    - c_str
    - readdir
    - std::snprintf
    - directory::dir
    - read_file
    - opendir
    - major
    - statfs
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const& path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/drive_info.cpp:175,1
    - Dst: GetVolumePathNameW
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: DWORD
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:178,1
    - Dst: GetDriveTypeW
      Src: /src/libtorrent/src/drive_info.cpp:181,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:181,1
    - Dst: GetVolumeInformationW
      Src: /src/libtorrent/src/drive_info.cpp:189,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:189,1
    - Dst: GetVolumeNameForVolumeMountPointW
      Src: /src/libtorrent/src/drive_info.cpp:202,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:202,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: DWORD
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:203,1
    - Dst: ::wcslen
      Src: /src/libtorrent/src/drive_info.cpp:207,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:207,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/drive_info.cpp:211,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:211,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:214,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/drive_info.cpp:224,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:224,1
    - Dst: ::_snwprintf
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/drive_info.cpp:237,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/drive_info.cpp:240,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/drive_info.cpp:240,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:243,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/drive_info.cpp:254,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/drive_info.cpp:254,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 271
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - std::array::size
    - std::array::data
    - aux::win_file_handle::handle
    - ::wcslen
    - CreateFileW
    - convert_to_native_path_string
    - GetVolumePathNameW
    - DWORD
    - GetDriveTypeW
    - GetVolumeNameForVolumeMountPointW
    - ::_snwprintf
    - DeviceIoControl
    - GetVolumeInformationW
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: libtorrent::aux::get_drive_info
    functionSourceFile: /src/libtorrent/src/drive_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: drive_info
    signature: drive_info get_drive_info(std::string const&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:60,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:63,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/src/web_connection_base.cpp:63,1
    - Dst: endpoints::front
      Src: /src/libtorrent/src/web_connection_base.cpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:67,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/web_connection_base.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:69,1
    - Dst: lock
      Src: /src/libtorrent/src/web_connection_base.cpp:69,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_connection_base.cpp:76,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/web_connection_base.cpp:77,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:78,1
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:91,1
    - Dst: base64encode
      Src: /src/libtorrent/src/web_connection_base.cpp:92,1
    - Dst: libtorrent::aux::verify_encoding
      Src: /src/libtorrent/src/web_connection_base.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - ' pack'
    - ' web'
    argTypes:
    - peer_connection_args
    - web_seed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 96
    functionName: libtorrent::web_connection_base::web_connection_base
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - parse_url_components
    - libtorrent::aux::verify_encoding
    - std::tie
    - endpoints::front
    - empty
    - endpoints::empty
    - TORRENT_ASSERT
    - base64encode
    - lock
    - is_outgoing
    linkageType: ''
    returnType: void
    signature: "void web_connection_base::web_connection_base(\n\t\tpeer_connection_args&
      pack\n\t\t, web_seed_t const& web)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/web_connection_base.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: libtorrent::web_connection_base::timeout
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int web_connection_base::timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::start
      Src: /src/libtorrent/src/web_connection_base.cpp:111,1
    - Dst: disconnect_if_redundant
      Src: /src/libtorrent/src/web_connection_base.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: libtorrent::web_connection_base::start
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::start
    - disconnect_if_redundant
    linkageType: ''
    returnType: void
    signature: void web_connection_base::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: web_connection_base::~web_connection_base()
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void web_connection_base::~web_connection_base()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_connection_base.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:122,1
    - Dst: incoming_unchoke
      Src: /src/libtorrent/src/web_connection_base.cpp:125,1
    - Dst: reset
      Src: /src/libtorrent/src/web_connection_base.cpp:127,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_connection_base.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: libtorrent::web_connection_base::on_connected
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - reset
    - associated_torrent
    - TORRENT_ASSERT
    - incoming_unchoke
    - std::shared_ptr::block_size
    linkageType: ''
    returnType: void
    signature: void web_connection_base::on_connected()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/web_connection_base.cpp:135,1
    - Dst: get_bool
      Src: /src/libtorrent/src/web_connection_base.cpp:136,1
    - Dst: get_str
      Src: /src/libtorrent/src/web_connection_base.cpp:139,1
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:141,1
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:146,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_connection_base.cpp:151,1
    - Dst: base64encode
      Src: /src/libtorrent/src/web_connection_base.cpp:154,1
    - Dst: get_str
      Src: /src/libtorrent/src/web_connection_base.cpp:154,1
    - Dst: get_str
      Src: /src/libtorrent/src/web_connection_base.cpp:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - ' request'
    - ' sett'
    - using_proxy
    argTypes:
    - std::string
    - aux::session_settings
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 170
    functionName: libtorrent::web_connection_base::add_headers
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - empty
    - get_int
    - base64encode
    - get_bool
    linkageType: ''
    returnType: void
    signature: "void web_connection_base::add_headers(std::string& request\n\t\t,
      aux::session_settings const& sett, bool const using_proxy) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_interesting
      Src: /src/libtorrent/src/web_connection_base.cpp:178,1
    - Dst: is_choked
      Src: /src/libtorrent/src/web_connection_base.cpp:179,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/web_connection_base.cpp:180,1
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:180,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/web_connection_base.cpp:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: libtorrent::web_connection_base::get_specific_peer_info
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - is_interesting
    - is_connecting
    - empty
    - is_choked
    linkageType: ''
    returnType: void
    signature: void web_connection_base::get_specific_peer_info(peer_info& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: libtorrent::web_connection_base::in_handshake
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool web_connection_base::in_handshake() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sent_bytes
      Src: /src/libtorrent/src/web_connection_base.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: libtorrent::web_connection_base::on_sent
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - sent_bytes
    linkageType: ''
    returnType: void
    signature: "void web_connection_base::on_sent(error_code const& error\n\t\t, std::size_t
      bytes_transferred)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: libtorrent::web_connection_base::check_invariant
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void web_connection_base::check_invariant() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:60,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:63,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/src/web_connection_base.cpp:63,1
    - Dst: endpoints::front
      Src: /src/libtorrent/src/web_connection_base.cpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:67,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/web_connection_base.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:69,1
    - Dst: lock
      Src: /src/libtorrent/src/web_connection_base.cpp:69,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_connection_base.cpp:76,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/web_connection_base.cpp:77,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:78,1
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:91,1
    - Dst: base64encode
      Src: /src/libtorrent/src/web_connection_base.cpp:92,1
    - Dst: libtorrent::aux::verify_encoding
      Src: /src/libtorrent/src/web_connection_base.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - ' pack'
    - ' web'
    argTypes:
    - peer_connection_args
    - web_seed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 96
    functionName: libtorrent::web_connection_base::web_connection_base
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - parse_url_components
    - libtorrent::aux::verify_encoding
    - std::tie
    - endpoints::front
    - empty
    - endpoints::empty
    - TORRENT_ASSERT
    - base64encode
    - lock
    - is_outgoing
    linkageType: ''
    returnType: void
    signature: "void web_connection_base::web_connection_base(\n\t\tpeer_connection_args&
      pack\n\t\t, web_seed_t const& web)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/web_connection_base.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: libtorrent::web_connection_base::timeout
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int web_connection_base::timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::start
      Src: /src/libtorrent/src/web_connection_base.cpp:111,1
    - Dst: disconnect_if_redundant
      Src: /src/libtorrent/src/web_connection_base.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: libtorrent::web_connection_base::start
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::start
    - disconnect_if_redundant
    linkageType: ''
    returnType: void
    signature: void web_connection_base::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: web_connection_base::~web_connection_base()
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void web_connection_base::~web_connection_base()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_connection_base.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_connection_base.cpp:122,1
    - Dst: incoming_unchoke
      Src: /src/libtorrent/src/web_connection_base.cpp:125,1
    - Dst: reset
      Src: /src/libtorrent/src/web_connection_base.cpp:127,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_connection_base.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: libtorrent::web_connection_base::on_connected
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - reset
    - associated_torrent
    - TORRENT_ASSERT
    - incoming_unchoke
    - std::shared_ptr::block_size
    linkageType: ''
    returnType: void
    signature: void web_connection_base::on_connected()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/web_connection_base.cpp:135,1
    - Dst: get_bool
      Src: /src/libtorrent/src/web_connection_base.cpp:136,1
    - Dst: get_str
      Src: /src/libtorrent/src/web_connection_base.cpp:139,1
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:141,1
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:146,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_connection_base.cpp:151,1
    - Dst: base64encode
      Src: /src/libtorrent/src/web_connection_base.cpp:154,1
    - Dst: get_str
      Src: /src/libtorrent/src/web_connection_base.cpp:154,1
    - Dst: get_str
      Src: /src/libtorrent/src/web_connection_base.cpp:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - ' request'
    - ' sett'
    - using_proxy
    argTypes:
    - std::string
    - aux::session_settings
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 170
    functionName: libtorrent::web_connection_base::add_headers
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - empty
    - get_int
    - base64encode
    - get_bool
    linkageType: ''
    returnType: void
    signature: "void web_connection_base::add_headers(std::string& request\n\t\t,
      aux::session_settings const& sett, bool const using_proxy) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_interesting
      Src: /src/libtorrent/src/web_connection_base.cpp:178,1
    - Dst: is_choked
      Src: /src/libtorrent/src/web_connection_base.cpp:179,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/web_connection_base.cpp:180,1
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:180,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/web_connection_base.cpp:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: libtorrent::web_connection_base::get_specific_peer_info
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - is_interesting
    - is_connecting
    - empty
    - is_choked
    linkageType: ''
    returnType: void
    signature: void web_connection_base::get_specific_peer_info(peer_info& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/web_connection_base.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: libtorrent::web_connection_base::in_handshake
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool web_connection_base::in_handshake() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sent_bytes
      Src: /src/libtorrent/src/web_connection_base.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: libtorrent::web_connection_base::on_sent
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached:
    - sent_bytes
    linkageType: ''
    returnType: void
    signature: "void web_connection_base::on_sent(error_code const& error\n\t\t, std::size_t
      bytes_transferred)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: libtorrent::web_connection_base::check_invariant
    functionSourceFile: /src/libtorrent/src/web_connection_base.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void web_connection_base::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: round_up
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int round_up(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: round_up
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int round_up(int n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/part_file.cpp:88,1
    - Dst: std::move
      Src: /src/libtorrent/src/part_file.cpp:89,1
    - Dst: round_up
      Src: /src/libtorrent/src/part_file.cpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:95,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:98,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/part_file.cpp:103,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:103,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/part_file.cpp:110,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/part_file.cpp:112,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/part_file.cpp:113,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/part_file.cpp:122,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/part_file.cpp:124,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/part_file.cpp:124,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/part_file.cpp:127,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:130,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/part_file.cpp:130,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/part_file.cpp:131,1
    - Dst: next
      Src: /src/libtorrent/src/part_file.cpp:134,1
    - Dst: push_back
      Src: /src/libtorrent/src/part_file.cpp:143,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - path
    - name
    - num_pieces
    - piece_size
    argTypes:
    - std::string
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 145
    functionName: libtorrent::part_file::part_file
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::pread_all
    - round_up
    - static_cast<int>
    - std::vector::data
    - push_back
    - std::move
    - read_uint32
    - TORRENT_ASSERT
    - slot_index_t
    - aux::vector::resize
    - next
    - auto::fd
    - piece_index_t
    - libtorrent::part_file::open_file
    linkageType: ''
    returnType: void
    signature: "void part_file::part_file(std::string path, std::string name\n\t\t,
      int const num_pieces, int const piece_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata_impl
      Src: /src/libtorrent/src/part_file.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: part_file::~part_file()
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void part_file::~part_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:157,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:157,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:157,1
    - Dst: empty
      Src: /src/libtorrent/src/part_file.cpp:159,1
    - Dst: front
      Src: /src/libtorrent/src/part_file.cpp:161,1
    - Dst: erase
      Src: /src/libtorrent/src/part_file.cpp:162,1
    - Dst: begin
      Src: /src/libtorrent/src/part_file.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 173
    functionName: libtorrent::part_file::allocate_slot
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - empty
    - end
    - find
    - front
    - TORRENT_ASSERT
    linkageType: ''
    returnType: slot_index_t
    signature: slot_index_t part_file::allocate_slot(piece_index_t const piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:178,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:179,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/part_file.cpp:179,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:182,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:185,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:186,1
    - Dst: libtorrent::part_file::allocate_slot
      Src: /src/libtorrent/src/part_file.cpp:187,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/part_file.cpp:189,1
    - Dst: libtorrent::aux::pwrite_all
      Src: /src/libtorrent/src/part_file.cpp:191,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:191,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/part_file.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: libtorrent::part_file::write
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - libtorrent::aux::pwrite_all
    - end
    - find
    - TORRENT_ASSERT
    - libtorrent::part_file::allocate_slot
    - auto::fd
    - std::unique_lock::unlock
    - span<char>::size
    - libtorrent::part_file::open_file
    linkageType: ''
    returnType: int
    signature: "int part_file::write(span<char> buf, piece_index_t const piece\n\t\t,
      int const offset, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:199,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/part_file.cpp:199,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:202,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:203,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/part_file.cpp:205,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/part_file.cpp:210,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:212,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/part_file.cpp:215,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:215,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/part_file.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 216
    functionName: libtorrent::part_file::read
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::pread_all
    - slot_offset
    - end
    - find
    - TORRENT_ASSERT
    - make_error_code
    - auto::fd
    - std::unique_lock::unlock
    - span<char>::size
    - libtorrent::part_file::open_file
    linkageType: ''
    returnType: int
    signature: "int part_file::read(span<char> buf\n\t\t, piece_index_t const piece\n\t\t,
      int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::part_file::do_hash
      Src: /src/libtorrent/src/part_file.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: libtorrent::part_file::hash
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int part_file::hash(hasher& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::part_file::do_hash
      Src: /src/libtorrent/src/part_file.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher256
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: libtorrent::part_file::hash2
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int part_file::hash2(hasher256& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:240,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:242,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:245,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:246,1
    - Dst: error_code
      Src: /src/libtorrent/src/part_file.cpp:248,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/src/part_file.cpp:249,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:254,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/part_file.cpp:257,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/part_file.cpp:260,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/part_file.cpp:260,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/part_file.cpp:260,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/part_file.cpp:261,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:261,1
    - Dst: update
      Src: /src/libtorrent/src/part_file.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - Hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 264
    functionName: libtorrent::part_file::do_hash
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - libtorrent::aux::pread_all
    - update
    - error_code
    - end
    - find
    - libtorrent::part_file::open_file
    - TORRENT_ASSERT
    - std::int64_t
    - auto::fd
    - std::unique_lock::unlock
    - boost::system::generic_category
    linkageType: ''
    returnType: int
    signature: "int part_file::do_hash(Hasher& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/src/part_file.cpp:268,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/src/part_file.cpp:270,1
    - Dst: clear
      Src: /src/libtorrent/src/part_file.cpp:279,1
    - Dst: create_directories
      Src: /src/libtorrent/src/part_file.cpp:280,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/src/part_file.cpp:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mode
    - ' ec'
    argTypes:
    - aux::open_mode_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 291
    functionName: libtorrent::part_file::open_file
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::file_handle
    - create_directories
    - clear
    - combine_path
    linkageType: ''
    returnType: aux::file_handle
    signature: aux::file_handle part_file::open_file(aux::open_mode_t const mode,
      error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:297,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:298,1
    - Dst: push_back
      Src: /src/libtorrent/src/part_file.cpp:305,1
    - Dst: erase
      Src: /src/libtorrent/src/part_file.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: libtorrent::part_file::free_piece
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void part_file::free_piece(piece_index_t const piece)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::part_file::flush_metadata_impl
      Src: /src/libtorrent/src/part_file.cpp:314,1
    - Dst: empty
      Src: /src/libtorrent/src/part_file.cpp:317,1
    - Dst: combine_path
      Src: /src/libtorrent/src/part_file.cpp:319,1
    - Dst: combine_path
      Src: /src/libtorrent/src/part_file.cpp:320,1
    - Dst: rename
      Src: /src/libtorrent/src/part_file.cpp:322,1
    - Dst: clear
      Src: /src/libtorrent/src/part_file.cpp:324,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/part_file.cpp:329,1
    - Dst: remove
      Src: /src/libtorrent/src/part_file.cpp:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 336
    functionName: libtorrent::part_file::move_partfile
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - rename
    - combine_path
    - libtorrent::part_file::flush_metadata_impl
    - empty
    - remove
    - clear
    - libtorrent::aux::copy_file
    linkageType: ''
    returnType: void
    signature: void part_file::move_partfile(std::string const& path, error_code&
      ec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/part_file.cpp:344,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/part_file.cpp:347,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/part_file.cpp:351,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/part_file.cpp:351,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:354,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:359,1
    - Dst: std::min
      Src: /src/libtorrent/src/part_file.cpp:360,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:361,1
    - Dst: std::unique_ptr::reset
      Src: /src/libtorrent/src/part_file.cpp:365,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/part_file.cpp:365,1
    - Dst: char::char
      Src: /src/libtorrent/src/part_file.cpp:365,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/part_file.cpp:368,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/part_file.cpp:370,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/part_file.cpp:371,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:371,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/part_file.cpp:371,1
    - Dst: span::first
      Src: /src/libtorrent/src/part_file.cpp:372,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/part_file.cpp:372,1
    - Dst: span::empty
      Src: /src/libtorrent/src/part_file.cpp:373,1
    - Dst: f
      Src: /src/libtorrent/src/part_file.cpp:375,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/part_file.cpp:375,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/part_file.cpp:379,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:387,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:391,1
    - Dst: push_back
      Src: /src/libtorrent/src/part_file.cpp:392,1
    - Dst: erase
      Src: /src/libtorrent/src/part_file.cpp:393,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - f
    - offset
    - size
    - ' ec'
    argTypes:
    - std::function<void(std::int64_t, span<char>)>
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 402
    functionName: libtorrent::part_file::export_file
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - slot_offset
    - std::unique_lock::lock
    - static_cast<std::ptrdiff_t>
    - empty
    - std::min
    - libtorrent::part_file::open_file
    - std::unique_ptr::reset
    - push_back
    - span::first
    - end
    - f
    - std::size_t
    - char::char
    - libtorrent::aux::pread_all
    - erase
    - span::empty
    - TORRENT_ASSERT
    - std::unique_ptr::get
    - auto::fd
    - piece_index_t
    - find
    - std::int64_t
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: "void part_file::export_file(std::function<void(std::int64_t, span<char>)>
      f\n\t\t, std::int64_t const offset, std::int64_t size, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::part_file::flush_metadata_impl
      Src: /src/libtorrent/src/part_file.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: libtorrent::part_file::flush_metadata
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void part_file::flush_metadata(error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/part_file.cpp:418,1
    - Dst: combine_path
      Src: /src/libtorrent/src/part_file.cpp:422,1
    - Dst: remove
      Src: /src/libtorrent/src/part_file.cpp:423,1
    - Dst: clear
      Src: /src/libtorrent/src/part_file.cpp:426,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:430,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/part_file.cpp:437,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/part_file.cpp:438,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/part_file.cpp:439,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/part_file.cpp:441,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:443,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:444,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/part_file.cpp:445,1
    - Dst: write_int32
      Src: /src/libtorrent/src/part_file.cpp:446,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/part_file.cpp:446,1
    - Dst: std::memset
      Src: /src/libtorrent/src/part_file.cpp:448,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/part_file.cpp:448,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/part_file.cpp:448,1
    - Dst: libtorrent::aux::pwrite_all
      Src: /src/libtorrent/src/part_file.cpp:449,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 452
    functionName: libtorrent::part_file::flush_metadata_impl
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - write_int32
    - std::vector::data
    - combine_path
    - libtorrent::aux::pwrite_all
    - empty
    - end
    - find
    - auto::fd
    - write_uint32
    - slot_index_t
    - remove
    - clear
    - std::memset
    - std::size_t
    - piece_index_t
    - libtorrent::part_file::open_file
    linkageType: ''
    returnType: void
    signature: void part_file::flush_metadata_impl(error_code& ec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/part_file.cpp:88,1
    - Dst: std::move
      Src: /src/libtorrent/src/part_file.cpp:89,1
    - Dst: round_up
      Src: /src/libtorrent/src/part_file.cpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:95,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:98,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/part_file.cpp:103,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:103,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/part_file.cpp:110,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/part_file.cpp:112,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/part_file.cpp:113,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/part_file.cpp:122,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/part_file.cpp:124,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/part_file.cpp:124,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/part_file.cpp:127,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:130,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/part_file.cpp:130,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/part_file.cpp:131,1
    - Dst: next
      Src: /src/libtorrent/src/part_file.cpp:134,1
    - Dst: push_back
      Src: /src/libtorrent/src/part_file.cpp:143,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - path
    - name
    - num_pieces
    - piece_size
    argTypes:
    - std::string
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 145
    functionName: libtorrent::part_file::part_file
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::pread_all
    - round_up
    - static_cast<int>
    - std::vector::data
    - push_back
    - std::move
    - read_uint32
    - TORRENT_ASSERT
    - slot_index_t
    - aux::vector::resize
    - next
    - auto::fd
    - piece_index_t
    - libtorrent::part_file::open_file
    linkageType: ''
    returnType: void
    signature: "void part_file::part_file(std::string path, std::string name\n\t\t,
      int const num_pieces, int const piece_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata_impl
      Src: /src/libtorrent/src/part_file.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: part_file::~part_file()
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void part_file::~part_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:157,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:157,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:157,1
    - Dst: empty
      Src: /src/libtorrent/src/part_file.cpp:159,1
    - Dst: front
      Src: /src/libtorrent/src/part_file.cpp:161,1
    - Dst: erase
      Src: /src/libtorrent/src/part_file.cpp:162,1
    - Dst: begin
      Src: /src/libtorrent/src/part_file.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 173
    functionName: libtorrent::part_file::allocate_slot
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 1
    functionsReached:
    - begin
    - erase
    - empty
    - end
    - find
    - front
    - TORRENT_ASSERT
    linkageType: ''
    returnType: slot_index_t
    signature: slot_index_t part_file::allocate_slot(piece_index_t const piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:178,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:179,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/part_file.cpp:179,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:182,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:185,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:186,1
    - Dst: libtorrent::part_file::allocate_slot
      Src: /src/libtorrent/src/part_file.cpp:187,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/part_file.cpp:189,1
    - Dst: libtorrent::aux::pwrite_all
      Src: /src/libtorrent/src/part_file.cpp:191,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:191,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/part_file.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: libtorrent::part_file::write
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - libtorrent::aux::pwrite_all
    - end
    - find
    - TORRENT_ASSERT
    - libtorrent::part_file::allocate_slot
    - auto::fd
    - std::unique_lock::unlock
    - span<char>::size
    - libtorrent::part_file::open_file
    linkageType: ''
    returnType: int
    signature: "int part_file::write(span<char> buf, piece_index_t const piece\n\t\t,
      int const offset, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:199,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/part_file.cpp:199,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:202,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:203,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/part_file.cpp:205,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/part_file.cpp:210,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:212,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/part_file.cpp:215,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:215,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/part_file.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 216
    functionName: libtorrent::part_file::read
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::pread_all
    - slot_offset
    - end
    - find
    - TORRENT_ASSERT
    - make_error_code
    - auto::fd
    - std::unique_lock::unlock
    - span<char>::size
    - libtorrent::part_file::open_file
    linkageType: ''
    returnType: int
    signature: "int part_file::read(span<char> buf\n\t\t, piece_index_t const piece\n\t\t,
      int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::part_file::do_hash
      Src: /src/libtorrent/src/part_file.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: libtorrent::part_file::hash
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int part_file::hash(hasher& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::part_file::do_hash
      Src: /src/libtorrent/src/part_file.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher256
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: libtorrent::part_file::hash2
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int part_file::hash2(hasher256& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:240,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:242,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:245,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:246,1
    - Dst: error_code
      Src: /src/libtorrent/src/part_file.cpp:248,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/src/part_file.cpp:249,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:254,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/part_file.cpp:257,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/part_file.cpp:260,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/part_file.cpp:260,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/part_file.cpp:260,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/part_file.cpp:261,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:261,1
    - Dst: update
      Src: /src/libtorrent/src/part_file.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - Hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 264
    functionName: libtorrent::part_file::do_hash
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - libtorrent::aux::pread_all
    - update
    - error_code
    - end
    - find
    - libtorrent::part_file::open_file
    - TORRENT_ASSERT
    - std::int64_t
    - auto::fd
    - std::unique_lock::unlock
    - boost::system::generic_category
    linkageType: ''
    returnType: int
    signature: "int part_file::do_hash(Hasher& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/src/part_file.cpp:268,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/src/part_file.cpp:270,1
    - Dst: clear
      Src: /src/libtorrent/src/part_file.cpp:279,1
    - Dst: create_directories
      Src: /src/libtorrent/src/part_file.cpp:280,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/src/part_file.cpp:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mode
    - ' ec'
    argTypes:
    - aux::open_mode_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 291
    functionName: libtorrent::part_file::open_file
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::file_handle
    - create_directories
    - clear
    - combine_path
    linkageType: ''
    returnType: aux::file_handle
    signature: aux::file_handle part_file::open_file(aux::open_mode_t const mode,
      error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:297,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:298,1
    - Dst: push_back
      Src: /src/libtorrent/src/part_file.cpp:305,1
    - Dst: erase
      Src: /src/libtorrent/src/part_file.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: libtorrent::part_file::free_piece
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void part_file::free_piece(piece_index_t const piece)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::part_file::flush_metadata_impl
      Src: /src/libtorrent/src/part_file.cpp:314,1
    - Dst: empty
      Src: /src/libtorrent/src/part_file.cpp:317,1
    - Dst: combine_path
      Src: /src/libtorrent/src/part_file.cpp:319,1
    - Dst: combine_path
      Src: /src/libtorrent/src/part_file.cpp:320,1
    - Dst: rename
      Src: /src/libtorrent/src/part_file.cpp:322,1
    - Dst: clear
      Src: /src/libtorrent/src/part_file.cpp:324,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/part_file.cpp:329,1
    - Dst: remove
      Src: /src/libtorrent/src/part_file.cpp:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 336
    functionName: libtorrent::part_file::move_partfile
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - rename
    - combine_path
    - libtorrent::part_file::flush_metadata_impl
    - empty
    - remove
    - clear
    - libtorrent::aux::copy_file
    linkageType: ''
    returnType: void
    signature: void part_file::move_partfile(std::string const& path, error_code&
      ec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/part_file.cpp:344,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/part_file.cpp:347,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/part_file.cpp:351,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/part_file.cpp:351,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:354,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:359,1
    - Dst: std::min
      Src: /src/libtorrent/src/part_file.cpp:360,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:361,1
    - Dst: std::unique_ptr::reset
      Src: /src/libtorrent/src/part_file.cpp:365,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/part_file.cpp:365,1
    - Dst: char::char
      Src: /src/libtorrent/src/part_file.cpp:365,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/part_file.cpp:368,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/part_file.cpp:370,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/part_file.cpp:371,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:371,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/part_file.cpp:371,1
    - Dst: span::first
      Src: /src/libtorrent/src/part_file.cpp:372,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/part_file.cpp:372,1
    - Dst: span::empty
      Src: /src/libtorrent/src/part_file.cpp:373,1
    - Dst: f
      Src: /src/libtorrent/src/part_file.cpp:375,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/part_file.cpp:375,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/part_file.cpp:379,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:387,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/part_file.cpp:391,1
    - Dst: push_back
      Src: /src/libtorrent/src/part_file.cpp:392,1
    - Dst: erase
      Src: /src/libtorrent/src/part_file.cpp:393,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - f
    - offset
    - size
    - ' ec'
    argTypes:
    - std::function<void(std::int64_t, span<char>)>
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 402
    functionName: libtorrent::part_file::export_file
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - slot_offset
    - std::unique_lock::lock
    - static_cast<std::ptrdiff_t>
    - empty
    - std::min
    - libtorrent::part_file::open_file
    - std::unique_ptr::reset
    - push_back
    - span::first
    - end
    - f
    - std::size_t
    - char::char
    - libtorrent::aux::pread_all
    - erase
    - span::empty
    - TORRENT_ASSERT
    - std::unique_ptr::get
    - auto::fd
    - piece_index_t
    - find
    - std::int64_t
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: "void part_file::export_file(std::function<void(std::int64_t, span<char>)>
      f\n\t\t, std::int64_t const offset, std::int64_t size, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::part_file::flush_metadata_impl
      Src: /src/libtorrent/src/part_file.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: libtorrent::part_file::flush_metadata
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void part_file::flush_metadata(error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/part_file.cpp:418,1
    - Dst: combine_path
      Src: /src/libtorrent/src/part_file.cpp:422,1
    - Dst: remove
      Src: /src/libtorrent/src/part_file.cpp:423,1
    - Dst: clear
      Src: /src/libtorrent/src/part_file.cpp:426,1
    - Dst: libtorrent::part_file::open_file
      Src: /src/libtorrent/src/part_file.cpp:430,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/part_file.cpp:437,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/part_file.cpp:438,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/part_file.cpp:439,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/part_file.cpp:441,1
    - Dst: find
      Src: /src/libtorrent/src/part_file.cpp:443,1
    - Dst: end
      Src: /src/libtorrent/src/part_file.cpp:444,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/part_file.cpp:445,1
    - Dst: write_int32
      Src: /src/libtorrent/src/part_file.cpp:446,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/part_file.cpp:446,1
    - Dst: std::memset
      Src: /src/libtorrent/src/part_file.cpp:448,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/part_file.cpp:448,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/part_file.cpp:448,1
    - Dst: libtorrent::aux::pwrite_all
      Src: /src/libtorrent/src/part_file.cpp:449,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/part_file.cpp:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 452
    functionName: libtorrent::part_file::flush_metadata_impl
    functionSourceFile: /src/libtorrent/src/part_file.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - write_int32
    - std::vector::data
    - combine_path
    - libtorrent::aux::pwrite_all
    - empty
    - end
    - find
    - auto::fd
    - write_uint32
    - slot_index_t
    - remove
    - clear
    - std::memset
    - std::size_t
    - piece_index_t
    - libtorrent::part_file::open_file
    linkageType: ''
    returnType: void
    signature: void part_file::flush_metadata_impl(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: libtorrent::aux::time_now
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point
    signature: time_point time_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_point_cast<seconds32>
      Src: /src/libtorrent/src/time.cpp:40,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::aux::time_now32
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 2
    functionsReached:
    - time_point_cast<seconds32>
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point32
    signature: time_point32 time_now32()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_point32
      Src: /src/libtorrent/src/time.cpp:50,1
    - Dst: seconds32
      Src: /src/libtorrent/src/time.cpp:50,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:52,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:53,1
    - Dst: std::chrono::duration_cast<system_clock::duration>
      Src: /src/libtorrent/src/time.cpp:55,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/time.cpp:55,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/src/time.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tp
    argTypes:
    - time_point32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::to_time_t
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 5
    functionsReached:
    - std::chrono::duration_cast<system_clock::duration>
    - seconds32
    - libtorrent::total_milliseconds
    - time_point32
    - libtorrent::aux::to_time_t
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_t
    signature: time_t to_time_t(const time_point32 tp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_point32
      Src: /src/libtorrent/src/time.cpp:63,1
    - Dst: seconds32
      Src: /src/libtorrent/src/time.cpp:63,1
    - Dst: libtorrent::aux::from_time_t
      Src: /src/libtorrent/src/time.cpp:65,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:66,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:67,1
    - Dst: std::chrono::duration_cast<clock_type::duration>
      Src: /src/libtorrent/src/time.cpp:69,1
    - Dst: std::chrono::time_point_cast<seconds32>
      Src: /src/libtorrent/src/time.cpp:71,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/time.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::from_time_t
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 3
    functionsReached:
    - seconds32
    - std::chrono::duration_cast<clock_type::duration>
    - libtorrent::aux::from_time_t
    - std::chrono::time_point_cast<seconds32>
    - time_point32
    - milliseconds
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point32
    signature: time_point32 from_time_t(const std::time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:77,1
    - Dst: print_time
      Src: /src/libtorrent/src/time.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::posix_time
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 0
    functionsReached:
    - print_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_t
    signature: time_t posix_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: libtorrent::aux::time_now
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point
    signature: time_point time_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_point_cast<seconds32>
      Src: /src/libtorrent/src/time.cpp:40,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::aux::time_now32
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 2
    functionsReached:
    - time_point_cast<seconds32>
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point32
    signature: time_point32 time_now32()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_point32
      Src: /src/libtorrent/src/time.cpp:50,1
    - Dst: seconds32
      Src: /src/libtorrent/src/time.cpp:50,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:52,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:53,1
    - Dst: std::chrono::duration_cast<system_clock::duration>
      Src: /src/libtorrent/src/time.cpp:55,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/time.cpp:55,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/src/time.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tp
    argTypes:
    - time_point32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::to_time_t
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 6
    functionsReached:
    - std::chrono::duration_cast<system_clock::duration>
    - seconds32
    - libtorrent::total_milliseconds
    - time_point32
    - libtorrent::aux::to_time_t
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_t
    signature: time_t to_time_t(const time_point32 tp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_point32
      Src: /src/libtorrent/src/time.cpp:63,1
    - Dst: seconds32
      Src: /src/libtorrent/src/time.cpp:63,1
    - Dst: libtorrent::aux::from_time_t
      Src: /src/libtorrent/src/time.cpp:65,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:66,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:67,1
    - Dst: std::chrono::duration_cast<clock_type::duration>
      Src: /src/libtorrent/src/time.cpp:69,1
    - Dst: std::chrono::time_point_cast<seconds32>
      Src: /src/libtorrent/src/time.cpp:71,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/time.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::from_time_t
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 4
    functionsReached:
    - seconds32
    - std::chrono::duration_cast<clock_type::duration>
    - libtorrent::aux::from_time_t
    - std::chrono::time_point_cast<seconds32>
    - time_point32
    - milliseconds
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point32
    signature: time_point32 from_time_t(const std::time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:77,1
    - Dst: print_time
      Src: /src/libtorrent/src/time.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::posix_time
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 0
    functionsReached:
    - print_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_t
    signature: time_t posix_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: libtorrent::aux::time_now
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 25
    functionsReached:
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point
    signature: time_point time_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_point_cast<seconds32>
      Src: /src/libtorrent/src/time.cpp:40,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::aux::time_now32
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 2
    functionsReached:
    - time_point_cast<seconds32>
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point32
    signature: time_point32 time_now32()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_point32
      Src: /src/libtorrent/src/time.cpp:50,1
    - Dst: seconds32
      Src: /src/libtorrent/src/time.cpp:50,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:52,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:53,1
    - Dst: std::chrono::duration_cast<system_clock::duration>
      Src: /src/libtorrent/src/time.cpp:55,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/time.cpp:55,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/src/time.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tp
    argTypes:
    - time_point32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::to_time_t
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 7
    functionsReached:
    - std::chrono::duration_cast<system_clock::duration>
    - seconds32
    - libtorrent::total_milliseconds
    - time_point32
    - libtorrent::aux::to_time_t
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_t
    signature: time_t to_time_t(const time_point32 tp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_point32
      Src: /src/libtorrent/src/time.cpp:63,1
    - Dst: seconds32
      Src: /src/libtorrent/src/time.cpp:63,1
    - Dst: libtorrent::aux::from_time_t
      Src: /src/libtorrent/src/time.cpp:65,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:66,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:67,1
    - Dst: std::chrono::duration_cast<clock_type::duration>
      Src: /src/libtorrent/src/time.cpp:69,1
    - Dst: std::chrono::time_point_cast<seconds32>
      Src: /src/libtorrent/src/time.cpp:71,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/time.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::from_time_t
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 5
    functionsReached:
    - seconds32
    - std::chrono::duration_cast<clock_type::duration>
    - libtorrent::aux::from_time_t
    - std::chrono::time_point_cast<seconds32>
    - time_point32
    - milliseconds
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point32
    signature: time_point32 from_time_t(const std::time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:77,1
    - Dst: print_time
      Src: /src/libtorrent/src/time.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::posix_time
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 0
    functionsReached:
    - print_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_t
    signature: time_t posix_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: libtorrent::aux::time_now
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 30
    functionsReached:
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point
    signature: time_point time_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_point_cast<seconds32>
      Src: /src/libtorrent/src/time.cpp:40,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::aux::time_now32
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 2
    functionsReached:
    - time_point_cast<seconds32>
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point32
    signature: time_point32 time_now32()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_point32
      Src: /src/libtorrent/src/time.cpp:50,1
    - Dst: seconds32
      Src: /src/libtorrent/src/time.cpp:50,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:52,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:53,1
    - Dst: std::chrono::duration_cast<system_clock::duration>
      Src: /src/libtorrent/src/time.cpp:55,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/time.cpp:55,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/src/time.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tp
    argTypes:
    - time_point32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::to_time_t
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 8
    functionsReached:
    - std::chrono::duration_cast<system_clock::duration>
    - seconds32
    - libtorrent::total_milliseconds
    - time_point32
    - libtorrent::aux::to_time_t
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_t
    signature: time_t to_time_t(const time_point32 tp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_point32
      Src: /src/libtorrent/src/time.cpp:63,1
    - Dst: seconds32
      Src: /src/libtorrent/src/time.cpp:63,1
    - Dst: libtorrent::aux::from_time_t
      Src: /src/libtorrent/src/time.cpp:65,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:66,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:67,1
    - Dst: std::chrono::duration_cast<clock_type::duration>
      Src: /src/libtorrent/src/time.cpp:69,1
    - Dst: std::chrono::time_point_cast<seconds32>
      Src: /src/libtorrent/src/time.cpp:71,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/time.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::from_time_t
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 6
    functionsReached:
    - seconds32
    - std::chrono::duration_cast<clock_type::duration>
    - libtorrent::aux::from_time_t
    - std::chrono::time_point_cast<seconds32>
    - time_point32
    - milliseconds
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_point32
    signature: time_point32 from_time_t(const std::time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/time.cpp:77,1
    - Dst: print_time
      Src: /src/libtorrent/src/time.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::posix_time
    functionSourceFile: /src/libtorrent/src/time.cpp
    functionUses: 0
    functionsReached:
    - print_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_t
    signature: time_t posix_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: libtorrent::add_torrent_params::add_torrent_params
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_torrent_params::add_torrent_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: add_torrent_params::~add_torrent_params()
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_torrent_params::~add_torrent_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::add_torrent_params::add_torrent_params
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_torrent_params::add_torrent_params(add_torrent_params&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: libtorrent::add_torrent_params::add_torrent_params
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_torrent_params::add_torrent_params(add_torrent_params const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: DECL_FLAG
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_FLAG(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: have_pieces::empty
      Src: /src/libtorrent/src/add_torrent_params.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: libtorrent::aux::contains_resume_data
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 1
    functionsReached:
    - have_pieces::empty
    linkageType: ''
    returnType: bool
    signature: bool contains_resume_data(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: have_pieces::empty
      Src: /src/libtorrent/src/add_torrent_params.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: libtorrent::aux::contains_resume_data
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 1
    functionsReached:
    - have_pieces::empty
    linkageType: ''
    returnType: bool
    signature: bool contains_resume_data(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: libtorrent::add_torrent_params::add_torrent_params
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_torrent_params::add_torrent_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: add_torrent_params::~add_torrent_params()
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_torrent_params::~add_torrent_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::add_torrent_params::add_torrent_params
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_torrent_params::add_torrent_params(add_torrent_params&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: libtorrent::add_torrent_params::add_torrent_params
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_torrent_params::add_torrent_params(add_torrent_params const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: DECL_FLAG
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_FLAG(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: have_pieces::empty
      Src: /src/libtorrent/src/add_torrent_params.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: libtorrent::aux::contains_resume_data
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 1
    functionsReached:
    - have_pieces::empty
    linkageType: ''
    returnType: bool
    signature: bool contains_resume_data(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: have_pieces::empty
      Src: /src/libtorrent/src/add_torrent_params.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: libtorrent::aux::contains_resume_data
    functionSourceFile: /src/libtorrent/src/add_torrent_params.cpp
    functionUses: 1
    functionsReached:
    - have_pieces::empty
    linkageType: ''
    returnType: bool
    signature: bool contains_resume_data(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - category
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: METRIC
    functionSourceFile: /src/libtorrent/src/session_stats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METRIC(category, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - category
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: METRIC
    functionSourceFile: /src/libtorrent/src/session_stats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METRIC(category, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/session_stats.cpp:579,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/session_stats.cpp:579,1
    - Dst: end_index
      Src: /src/libtorrent/src/session_stats.cpp:580,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/session_stats.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 588
    functionName: libtorrent::session_stats_metrics
    functionSourceFile: /src/libtorrent/src/session_stats.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_RVO
    - end_index
    - aux::vector::resize
    - libtorrent::size
    linkageType: ''
    returnType: std::vector<stats_metric>
    signature: std::vector<stats_metric> session_stats_metrics()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_stats.cpp:592,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/session_stats.cpp:592,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/session_stats.cpp:592,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/session_stats.cpp:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 598
    functionName: libtorrent::find_metric_idx
    functionSourceFile: /src/libtorrent/src/session_stats.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::end
    - libtorrent::begin
    - std::find_if
    linkageType: ''
    returnType: int
    signature: int find_metric_idx(string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - category
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: METRIC
    functionSourceFile: /src/libtorrent/src/session_stats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METRIC(category, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - category
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: METRIC
    functionSourceFile: /src/libtorrent/src/session_stats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METRIC(category, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/session_stats.cpp:579,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/session_stats.cpp:579,1
    - Dst: end_index
      Src: /src/libtorrent/src/session_stats.cpp:580,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/session_stats.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 588
    functionName: libtorrent::session_stats_metrics
    functionSourceFile: /src/libtorrent/src/session_stats.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_RVO
    - end_index
    - aux::vector::resize
    - libtorrent::size
    linkageType: ''
    returnType: std::vector<stats_metric>
    signature: std::vector<stats_metric> session_stats_metrics()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_stats.cpp:592,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/session_stats.cpp:592,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/session_stats.cpp:592,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/session_stats.cpp:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 598
    functionName: libtorrent::find_metric_idx
    functionSourceFile: /src/libtorrent/src/session_stats.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::end
    - libtorrent::begin
    - std::find_if
    linkageType: ''
    returnType: int
    signature: int find_metric_idx(string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/socket_io.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: libtorrent::print_address
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string print_address(address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/socket_io.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: libtorrent::address_to_bytes
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_address
    linkageType: ''
    returnType: std::string
    signature: std::string address_to_bytes(address const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/socket_io.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: libtorrent::endpoint_to_bytes
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string endpoint_to_bytes(udp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/socket_io.cpp:70,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/socket_io.cpp:71,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/socket_io.cpp:71,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/socket_io.cpp:73,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/socket_io.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - address
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: libtorrent::print_endpoint
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 4
    functionsReached:
    - is_v6
    - std::snprintf
    - libtorrent::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string print_endpoint(address const& addr, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/socket_io.cpp:79,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/socket_io.cpp:79,1
    - Dst: port
      Src: /src/libtorrent/src/socket_io.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: libtorrent::print_endpoint
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 5
    functionsReached:
    - port
    - libtorrent::print_endpoint
    - libtorrent::address
    linkageType: ''
    returnType: std::string
    signature: std::string print_endpoint(tcp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/socket_io.cpp:84,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/socket_io.cpp:84,1
    - Dst: port
      Src: /src/libtorrent/src/socket_io.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::print_endpoint
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 6
    functionsReached:
    - port
    - libtorrent::print_endpoint
    - libtorrent::address
    linkageType: ''
    returnType: std::string
    signature: std::string print_endpoint(udp::endpoint const& ep)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::trim
      Src: /src/libtorrent/src/socket_io.cpp:91,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/socket_io.cpp:96,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/socket_io.cpp:103,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/socket_io.cpp:105,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:111,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:112,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/socket_io.cpp:113,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/socket_io.cpp:113,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:119,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/socket_io.cpp:120,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/socket_io.cpp:120,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/socket_io.cpp:120,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/socket_io.cpp:125,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:131,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:132,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/socket_io.cpp:133,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/socket_io.cpp:133,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/socket_io.cpp:133,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/socket_io.cpp:137,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/socket_io.cpp:143,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/socket_io.cpp:143,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/socket_io.cpp:144,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/socket_io.cpp:149,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/src/socket_io.cpp:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - str
    - ' ec'
    argTypes:
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 151
    functionName: libtorrent::parse_endpoint
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - make_address_v4
    - static_cast<std::uint16_t>
    - tcp::endpoint::address
    - string_view::find_first_of
    - libtorrent::aux::max
    - string_view::empty
    - make_address_v6
    - string_view::to_string
    - std::atoi
    - libtorrent::trim
    - string_view::front
    - tcp::endpoint::port
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint parse_endpoint(string_view str, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/socket_io.cpp:155,1
    - Dst: to_v6
      Src: /src/libtorrent/src/socket_io.cpp:157,1
    - Dst: hasher
      Src: /src/libtorrent/src/socket_io.cpp:158,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/socket_io.cpp:158,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/socket_io.cpp:158,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/src/socket_io.cpp:158,1
    - Dst: to_v4
      Src: /src/libtorrent/src/socket_io.cpp:162,1
    - Dst: hasher
      Src: /src/libtorrent/src/socket_io.cpp:163,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/socket_io.cpp:163,1
    - Dst: address_v4::bytes_type::data
      Src: /src/libtorrent/src/socket_io.cpp:163,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/src/socket_io.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: libtorrent::hash_address
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - address_v4::bytes_type::data
    - address_v6::bytes_type::data
    - hasher
    - to_v4
    - reinterpret_cast<char const*>
    - address_v6::bytes_type::size
    - address_v4::bytes_type::size
    - to_v6
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash hash_address(address const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/socket_io.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: libtorrent::print_address
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string print_address(address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/socket_io.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: libtorrent::address_to_bytes
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_address
    linkageType: ''
    returnType: std::string
    signature: std::string address_to_bytes(address const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/socket_io.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: libtorrent::endpoint_to_bytes
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string endpoint_to_bytes(udp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/socket_io.cpp:70,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/socket_io.cpp:71,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/socket_io.cpp:71,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/socket_io.cpp:73,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/socket_io.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - address
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: libtorrent::print_endpoint
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 6
    functionsReached:
    - is_v6
    - std::snprintf
    - libtorrent::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string print_endpoint(address const& addr, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/socket_io.cpp:79,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/socket_io.cpp:79,1
    - Dst: port
      Src: /src/libtorrent/src/socket_io.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: libtorrent::print_endpoint
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 7
    functionsReached:
    - port
    - libtorrent::print_endpoint
    - libtorrent::address
    linkageType: ''
    returnType: std::string
    signature: std::string print_endpoint(tcp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/socket_io.cpp:84,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/socket_io.cpp:84,1
    - Dst: port
      Src: /src/libtorrent/src/socket_io.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::print_endpoint
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 8
    functionsReached:
    - port
    - libtorrent::print_endpoint
    - libtorrent::address
    linkageType: ''
    returnType: std::string
    signature: std::string print_endpoint(udp::endpoint const& ep)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::trim
      Src: /src/libtorrent/src/socket_io.cpp:91,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/socket_io.cpp:96,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/socket_io.cpp:103,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/socket_io.cpp:105,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:111,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:112,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/socket_io.cpp:113,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/socket_io.cpp:113,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:119,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/socket_io.cpp:120,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/socket_io.cpp:120,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/socket_io.cpp:120,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/socket_io.cpp:125,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:131,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/socket_io.cpp:132,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/socket_io.cpp:133,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/socket_io.cpp:133,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/socket_io.cpp:133,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/socket_io.cpp:137,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/socket_io.cpp:143,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/socket_io.cpp:143,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/socket_io.cpp:144,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/socket_io.cpp:149,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/src/socket_io.cpp:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - str
    - ' ec'
    argTypes:
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 151
    functionName: libtorrent::parse_endpoint
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - make_address_v4
    - static_cast<std::uint16_t>
    - tcp::endpoint::address
    - string_view::find_first_of
    - libtorrent::aux::max
    - string_view::empty
    - make_address_v6
    - string_view::to_string
    - std::atoi
    - libtorrent::trim
    - string_view::front
    - tcp::endpoint::port
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint parse_endpoint(string_view str, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/socket_io.cpp:155,1
    - Dst: to_v6
      Src: /src/libtorrent/src/socket_io.cpp:157,1
    - Dst: hasher
      Src: /src/libtorrent/src/socket_io.cpp:158,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/socket_io.cpp:158,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/socket_io.cpp:158,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/src/socket_io.cpp:158,1
    - Dst: to_v4
      Src: /src/libtorrent/src/socket_io.cpp:162,1
    - Dst: hasher
      Src: /src/libtorrent/src/socket_io.cpp:163,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/socket_io.cpp:163,1
    - Dst: address_v4::bytes_type::data
      Src: /src/libtorrent/src/socket_io.cpp:163,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/src/socket_io.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: libtorrent::hash_address
    functionSourceFile: /src/libtorrent/src/socket_io.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - address_v4::bytes_type::data
    - address_v6::bytes_type::data
    - hasher
    - to_v4
    - reinterpret_cast<char const*>
    - address_v6::bytes_type::size
    - address_v4::bytes_type::size
    - to_v6
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash hash_address(address const& ip)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/web_peer_connection.cpp:81,1
    - Dst: ignore_stats
      Src: /src/libtorrent/src/web_peer_connection.cpp:82,1
    - Dst: tor::lock
      Src: /src/libtorrent/src/web_peer_connection.cpp:84,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:85,1
    - Dst: std::max
      Src: /src/libtorrent/src/web_peer_connection.cpp:89,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:90,1
    - Dst: std::max
      Src: /src/libtorrent/src/web_peer_connection.cpp:94,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_peer_connection.cpp:94,1
    - Dst: prefer_contiguous_blocks
      Src: /src/libtorrent/src/web_peer_connection.cpp:96,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:96,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:98,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:99,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/web_peer_connection.cpp:105,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/web_peer_connection.cpp:106,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:111,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:112,1
    - Dst: escape_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:114,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:114,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:117,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:117,1
    - Dst: escape_file_path
      Src: /src/libtorrent/src/web_peer_connection.cpp:119,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:119,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:119,1
    - Dst: request_large_blocks
      Src: /src/libtorrent/src/web_peer_connection.cpp:127,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:130,1
    - Dst: c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ' pack'
    - ' web'
    argTypes:
    - peer_connection_args
    - web_seed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 132
    functionName: libtorrent::web_peer_connection::web_peer_connection
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - associated_torrent
    - empty
    - escape_string
    - ignore_stats
    - std::max
    - get_bool
    - request_large_blocks
    - tor::lock
    - get_int
    - file_index_t
    - escape_file_path
    - TORRENT_ASSERT
    - prefer_contiguous_blocks
    - std::shared_ptr::block_size
    - size
    - ensure_trailing_slash
    - std::shared_ptr::torrent_file
    - c_str
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void web_peer_connection::web_peer_connection(peer_connection_args&
      pack\n\t, web_seed_t& web)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_path
      Src: /src/libtorrent/src/web_peer_connection.cpp:136,1
    - Dst: libtorrent::convert_path_to_posix
      Src: /src/libtorrent/src/web_peer_connection.cpp:138,1
    - Dst: libtorrent::escape_path
      Src: /src/libtorrent/src/web_peer_connection.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' storage'
    - index
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: libtorrent::escape_file_path
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - file_path
    - libtorrent::escape_path
    - libtorrent::convert_path_to_posix
    linkageType: ''
    returnType: std::string
    signature: std::string escape_file_path(file_storage const& storage, file_index_t
      index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:146,1
    - Dst: set_pid
      Src: /src/libtorrent/src/web_peer_connection.cpp:147,1
    - Dst: have_files::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:149,1
    - Dst: incoming_have_all
      Src: /src/libtorrent/src/web_peer_connection.cpp:151,1
    - Dst: have_files::none_set
      Src: /src/libtorrent/src/web_peer_connection.cpp:153,1
    - Dst: incoming_have_none
      Src: /src/libtorrent/src/web_peer_connection.cpp:155,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:158,1
    - Dst: c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:158,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:163,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:173,1
    - Dst: typed_bitfield::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:174,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/web_peer_connection.cpp:174,1
    - Dst: file_range
      Src: /src/libtorrent/src/web_peer_connection.cpp:175,1
    - Dst: have_files::get_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:178,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/web_peer_connection.cpp:178,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/src/web_peer_connection.cpp:180,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/web_peer_connection.cpp:181,1
    - Dst: k < std::get<1>
      Src: /src/libtorrent/src/web_peer_connection.cpp:181,1
    - Dst: typed_bitfield::clear_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:182,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/web_peer_connection.cpp:184,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/web_peer_connection.cpp:184,1
    - Dst: typed_bitfield::none_set
      Src: /src/libtorrent/src/web_peer_connection.cpp:185,1
    - Dst: incoming_have_none
      Src: /src/libtorrent/src/web_peer_connection.cpp:187,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:190,1
    - Dst: c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:190,1
    - Dst: incoming_bitfield
      Src: /src/libtorrent/src/web_peer_connection.cpp:195,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:201,1
    - Dst: incoming_suggest
      Src: /src/libtorrent/src/web_peer_connection.cpp:205,1
    - Dst: libtorrent::web_connection_base::on_connected
      Src: /src/libtorrent/src/web_peer_connection.cpp:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 208
    functionName: libtorrent::web_peer_connection::on_connected
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - incoming_have_all
    - associated_torrent
    - incoming_bitfield
    - libtorrent::aux::file_piece_range_inclusive
    - std::get<0>
    - pad_file_at
    - have_files::empty
    - incoming_suggest
    - typed_bitfield::resize
    - have_files::none_set
    - num_pieces
    - libtorrent::aux::random_bytes
    - incoming_have_none
    - file_range
    - typed_bitfield::none_set
    - piece_index_t
    - std::shared_ptr::torrent_file
    - have_files::get_bit
    - typed_bitfield::clear_bit
    - set_pid
    - c_str
    - k < std::get<1>
    - std::shared_ptr::set_seed
    - peer_info_struct
    - libtorrent::web_connection_base::on_connected
    - peer_log
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::on_connected()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/web_peer_connection.cpp:213,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:224,1
    - Dst: clear
      Src: /src/libtorrent/src/web_peer_connection.cpp:228,1
    - Dst: incoming_choke
      Src: /src/libtorrent/src/web_peer_connection.cpp:234,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:238,1
    - Dst: endpoints::erase
      Src: /src/libtorrent/src/web_peer_connection.cpp:242,1
    - Dst: endpoints::begin
      Src: /src/libtorrent/src/web_peer_connection.cpp:242,1
    - Dst: std::max
      Src: /src/libtorrent/src/web_peer_connection.cpp:256,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/web_peer_connection.cpp:256,1
    - Dst: seconds32
      Src: /src/libtorrent/src/web_peer_connection.cpp:257,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_peer_connection.cpp:257,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:258,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/web_peer_connection.cpp:258,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:261,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:263,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:263,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:264,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:267,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:269,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:271,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:271,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:272,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:275,1
    - Dst: restart_piece::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:276,1
    - Dst: std::shared_ptr::add_redundant_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:280,1
    - Dst: restart_piece::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:280,1
    - Dst: std::move
      Src: /src/libtorrent/src/web_peer_connection.cpp:283,1
    - Dst: clear
      Src: /src/libtorrent/src/web_peer_connection.cpp:288,1
    - Dst: post
      Src: /src/libtorrent/src/web_peer_connection.cpp:295,1
    - Dst: get_context
      Src: /src/libtorrent/src/web_peer_connection.cpp:295,1
    - Dst: std::bind
      Src: /src/libtorrent/src/web_peer_connection.cpp:296,1
    - Dst: std::max
      Src: /src/libtorrent/src/web_peer_connection.cpp:301,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/web_peer_connection.cpp:301,1
    - Dst: seconds32
      Src: /src/libtorrent/src/web_peer_connection.cpp:302,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_peer_connection.cpp:302,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:306,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 3
    argNames:
    - ' ec'
    - op
    - error
    argTypes:
    - error_code
    - operation_t
    - disconnect_severity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 308
    functionName: libtorrent::web_peer_connection::disconnect
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - associated_torrent
    - empty
    - std::max
    - peer_connection::disconnect
    - restart_piece::size
    - get_context
    - endpoints::begin
    - front
    - get_int
    - clear
    - seconds32
    - is_disconnecting
    - std::shared_ptr::add_redundant_bytes
    - TORRENT_ASSERT
    - size
    - std::bind
    - restart_piece::empty
    - post
    - incoming_choke
    - endpoints::erase
    - endpoints::empty
    - libtorrent::aux::time_now32
    - should_log
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void web_peer_connection::disconnect(error_code const& ec\n\t, operation_t
      op, disconnect_severity_t const error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:312,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:314,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:315,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:319,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:320,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:324,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:325,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:325,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:327,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:329,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:330,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:332,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:332,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:334,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 337
    functionName: libtorrent::web_peer_connection::downloading_piece_progress
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - associated_torrent
    - empty
    - front
    - TORRENT_ASSERT
    - std::shared_ptr::block_size
    - size
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: piece_block_progress
    signature: piece_block_progress web_peer_connection::downloading_piece_progress()
      const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:343,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:344,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:346,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/web_peer_connection.cpp:346,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:348,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/web_peer_connection.cpp:352,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:355,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:356,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:363,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:363,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:364,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:365,1
    - Dst: validate_piece_request
      Src: /src/libtorrent/src/web_peer_connection.cpp:365,1
    - Dst: push_back
      Src: /src/libtorrent/src/web_peer_connection.cpp:366,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:370,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:371,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:371,1
    - Dst: std::move
      Src: /src/libtorrent/src/web_peer_connection.cpp:372,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:373,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:374,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:374,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:377,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:379,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:379,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/web_peer_connection.cpp:382,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:385,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:386,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/web_peer_connection.cpp:390,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:390,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:393,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:393,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:403,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:404,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:405,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:408,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_peer_connection.cpp:409,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:424,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:425,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:425,1
    - Dst: piece_length
      Src: /src/libtorrent/src/web_peer_connection.cpp:425,1
    - Dst: add_headers
      Src: /src/libtorrent/src/web_peer_connection.cpp:434,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:436,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:438,1
    - Dst: push_back
      Src: /src/libtorrent/src/web_peer_connection.cpp:442,1
    - Dst: orig_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:446,1
    - Dst: orig_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:456,1
    - Dst: push_back
      Src: /src/libtorrent/src/web_peer_connection.cpp:458,1
    - Dst: redirects::find
      Src: /src/libtorrent/src/web_peer_connection.cpp:471,1
    - Dst: redirects::end
      Src: /src/libtorrent/src/web_peer_connection.cpp:472,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:476,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/web_peer_connection.cpp:477,1
    - Dst: escape_file_path
      Src: /src/libtorrent/src/web_peer_connection.cpp:488,1
    - Dst: orig_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:488,1
    - Dst: add_headers
      Src: /src/libtorrent/src/web_peer_connection.cpp:491,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:493,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:495,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:505,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:505,1
    - Dst: push_back
      Src: /src/libtorrent/src/web_peer_connection.cpp:507,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:511,1
    - Dst: post
      Src: /src/libtorrent/src/web_peer_connection.cpp:513,1
    - Dst: get_context
      Src: /src/libtorrent/src/web_peer_connection.cpp:513,1
    - Dst: std::bind
      Src: /src/libtorrent/src/web_peer_connection.cpp:513,1
    - Dst: std::static_pointer_cast<web_peer_connection>
      Src: /src/libtorrent/src/web_peer_connection.cpp:515,1
    - Dst: self
      Src: /src/libtorrent/src/web_peer_connection.cpp:515,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:520,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:520,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/web_peer_connection.cpp:523,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 83
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 524
    functionName: libtorrent::web_peer_connection::write_request
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - redirects::end
    - std::move
    - associated_torrent
    - redirects::find
    - empty
    - std::min
    - self
    - push_back
    - get_context
    - front
    - std::static_pointer_cast<web_peer_connection>
    - get_int
    - orig_files
    - file_index_t
    - escape_file_path
    - std::string::append
    - send_buffer
    - validate_piece_request
    - TORRENT_ASSERT
    - add_headers
    - std::shared_ptr::block_size
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - size
    - TORRENT_UNUSED
    - std::shared_ptr::torrent_file
    - std::bind
    - post
    - incoming_piece_fragment
    - std::string::c_str
    - std::int64_t
    - piece_length
    - peer_log
    - std::string::reserve
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::write_request(peer_request const& r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: header
      Src: /src/libtorrent/src/web_peer_connection.cpp:530,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' host'
    argTypes:
    - http_parser
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: libtorrent::get_peer_name
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - header
    linkageType: ''
    returnType: std::string
    signature: std::string get_peer_name(http_parser const& p, std::string const&
      host)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:541,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:543,1
    - Dst: libtorrent::content_range
      Src: /src/libtorrent/src/web_peer_connection.cpp:543,1
    - Dst: libtorrent::content_length
      Src: /src/libtorrent/src/web_peer_connection.cpp:559,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/web_peer_connection.cpp:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' parser'
    - ' ec'
    argTypes:
    - http_parser
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 567
    functionName: libtorrent::get_range
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::content_length
    - std::tie
    - libtorrent::status_code
    - std::make_tuple
    - libtorrent::content_range
    linkageType: ''
    returnType: std::tuple<std::int64_t, std::int64_t>
    signature: "std::tuple<std::int64_t, std::int64_t> get_range(\n\t\thttp_parser
      const& parser, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: header
      Src: /src/libtorrent/src/web_peer_connection.cpp:530,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' host'
    argTypes:
    - http_parser
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: libtorrent::get_peer_name
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - header
    linkageType: ''
    returnType: std::string
    signature: std::string get_peer_name(http_parser const& p, std::string const&
      host)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:541,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:543,1
    - Dst: libtorrent::content_range
      Src: /src/libtorrent/src/web_peer_connection.cpp:543,1
    - Dst: libtorrent::content_length
      Src: /src/libtorrent/src/web_peer_connection.cpp:559,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/web_peer_connection.cpp:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' parser'
    - ' ec'
    argTypes:
    - http_parser
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 567
    functionName: libtorrent::get_range
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::content_length
    - std::tie
    - libtorrent::status_code
    - std::make_tuple
    - libtorrent::content_range
    linkageType: ''
    returnType: std::tuple<std::int64_t, std::int64_t>
    signature: "std::tuple<std::int64_t, std::int64_t> get_range(\n\t\thttp_parser
      const& parser, error_code& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::received_invalid_data
      Src: /src/libtorrent/src/web_peer_connection.cpp:576,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:586,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:587,1
    - Dst: num_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:590,1
    - Dst: peer_connection::received_invalid_data
      Src: /src/libtorrent/src/web_peer_connection.cpp:590,1
    - Dst: map_block
      Src: /src/libtorrent/src/web_peer_connection.cpp:592,1
    - Dst: piece_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:592,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:594,1
    - Dst: file_piece_range_inclusive
      Src: /src/libtorrent/src/web_peer_connection.cpp:598,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/web_peer_connection.cpp:599,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/web_peer_connection.cpp:599,1
    - Dst: incoming_dont_have
      Src: /src/libtorrent/src/web_peer_connection.cpp:600,1
    - Dst: incoming_dont_have
      Src: /src/libtorrent/src/web_peer_connection.cpp:604,1
    - Dst: peer_connection::received_invalid_data
      Src: /src/libtorrent/src/web_peer_connection.cpp:607,1
    - Dst: num_have_pieces
      Src: /src/libtorrent/src/web_peer_connection.cpp:610,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - index
    - single_peer
    argTypes:
    - piece_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 614
    functionName: libtorrent::web_peer_connection::received_invalid_data
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::vector::size
    - num_have_pieces
    - peer_connection::received_invalid_data
    - associated_torrent
    - num_files
    - file_piece_range_inclusive
    - incoming_dont_have
    - std::get<0>
    - piece_size
    - map_block
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: bool
    signature: bool web_peer_connection::received_invalid_data(piece_index_t const
      index, bool single_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_peer_connection::handle_padfile
      Src: /src/libtorrent/src/web_peer_connection.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: libtorrent::web_peer_connection::on_receive_padfile
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::web_peer_connection::handle_padfile
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::on_receive_padfile()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:623,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:624,1
    - Dst: std::shared_ptr::retry_web_seed
      Src: /src/libtorrent/src/web_peer_connection.cpp:632,1
    - Dst: header_duration
      Src: /src/libtorrent/src/web_peer_connection.cpp:632,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/web_peer_connection.cpp:633,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:635,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:635,1
    - Dst: message
      Src: /src/libtorrent/src/web_peer_connection.cpp:636,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/web_peer_connection.cpp:637,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/web_peer_connection.cpp:637,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:640,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:641,1
    - Dst: error_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:641,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:641,1
    - Dst: http_category
      Src: /src/libtorrent/src/web_peer_connection.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bytes_left
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 642
    functionName: libtorrent::web_peer_connection::handle_error
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - http_category
    - received_bytes
    - associated_torrent
    - std::shared_ptr::retry_web_seed
    - error_code
    - message
    - std::shared_ptr::alerts
    - TORRENT_ASSERT
    - status_code
    - header_duration
    - libtorrent::web_peer_connection::disconnect
    - std::shared_ptr::get_handle
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::handle_error(int const bytes_left)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:648,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:651,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:652,1
    - Dst: std::shared_ptr::remove_web_seed_conn
      Src: /src/libtorrent/src/web_peer_connection.cpp:653,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:656,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/web_peer_connection.cpp:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 657
    functionName: libtorrent::web_peer_connection::disable
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - associated_torrent
    - std::shared_ptr::remove_web_seed_conn
    - is_disconnecting
    - TORRENT_ASSERT
    - libtorrent::web_peer_connection::disconnect
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::disable(error_code const& ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: header
      Src: /src/libtorrent/src/web_peer_connection.cpp:663,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:664,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:667,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:669,1
    - Dst: libtorrent::web_peer_connection::disable
      Src: /src/libtorrent/src/web_peer_connection.cpp:671,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:675,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:676,1
    - Dst: get_bool
      Src: /src/libtorrent/src/web_peer_connection.cpp:682,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/web_peer_connection.cpp:682,1
    - Dst: remote
      Src: /src/libtorrent/src/web_peer_connection.cpp:682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:688,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:688,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:689,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/src/web_peer_connection.cpp:691,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:693,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:693,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:701,1
    - Dst: split_url
      Src: /src/libtorrent/src/web_peer_connection.cpp:701,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:706,1
    - Dst: std::shared_ptr::add_web_seed
      Src: /src/libtorrent/src/web_peer_connection.cpp:720,1
    - Dst: web_seed_t*::have_files::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:722,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:722,1
    - Dst: web_seed_t*::have_files::get_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:727,1
    - Dst: web_seed_t*::have_files::set_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:729,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/web_peer_connection.cpp:733,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:738,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/src/web_peer_connection.cpp:739,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/web_peer_connection.cpp:740,1
    - Dst: i < std::get<1>
      Src: /src/libtorrent/src/web_peer_connection.cpp:740,1
    - Dst: auto*::incoming_have
      Src: /src/libtorrent/src/web_peer_connection.cpp:741,1
    - Dst: have_files::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:749,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:749,1
    - Dst: have_files::clear_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:752,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:754,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:755,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:758,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/src/web_peer_connection.cpp:762,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:764,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:764,1
    - Dst: std::shared_ptr::add_web_seed
      Src: /src/libtorrent/src/web_peer_connection.cpp:766,1
    - Dst: have_files::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:771,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:771,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:772,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:774,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/web_peer_connection.cpp:774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - bytes_left
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 776
    functionName: libtorrent::web_peer_connection::handle_redirect
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - associated_torrent
    - i < std::get<1>
    - empty
    - remote
    - libtorrent::aux::file_piece_range_inclusive
    - std::get<0>
    - std::shared_ptr::add_web_seed
    - split_url
    - get_bool
    - web_seed_t*::have_files::get_bit
    - have_files::clear_bit
    - received_bytes
    - front
    - header
    - resolve_redirect_location
    - static_cast<peer_connection*>
    - is_disconnecting
    - TORRENT_ASSERT
    - web_seed_t*::have_files::resize
    - web_seed_t*::have_files::set_bit
    - libtorrent::web_peer_connection::disconnect
    - size
    - std::shared_ptr::torrent_file
    - libtorrent::web_peer_connection::disable
    - have_files::resize
    - libtorrent::aux::is_global
    - std::tie
    - std::string::empty
    - std::string::c_str
    - auto*::incoming_have
    - peer_log
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::handle_redirect(int const bytes_left)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:785,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:787,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:789,1
    - Dst: message
      Src: /src/libtorrent/src/web_peer_connection.cpp:790,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:797,1
    - Dst: get
      Src: /src/libtorrent/src/web_peer_connection.cpp:801,1
    - Dst: libtorrent::web_peer_connection::handle_padfile
      Src: /src/libtorrent/src/web_peer_connection.cpp:802,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:803,1
    - Dst: header_finished
      Src: /src/libtorrent/src/web_peer_connection.cpp:809,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:813,1
    - Dst: incoming
      Src: /src/libtorrent/src/web_peer_connection.cpp:813,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:814,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:815,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:815,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:819,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:819,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:821,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:823,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:824,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:824,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:827,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:831,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:831,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:832,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:832,1
    - Dst: packet_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:832,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:835,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:837,1
    - Dst: header_finished
      Src: /src/libtorrent/src/web_peer_connection.cpp:841,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:843,1
    - Dst: body_start
      Src: /src/libtorrent/src/web_peer_connection.cpp:847,1
    - Dst: connection_close
      Src: /src/libtorrent/src/web_peer_connection.cpp:856,1
    - Dst: incoming_choke
      Src: /src/libtorrent/src/web_peer_connection.cpp:858,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:864,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:866,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:867,1
    - Dst: message
      Src: /src/libtorrent/src/web_peer_connection.cpp:867,1
    - Dst: headers
      Src: /src/libtorrent/src/web_peer_connection.cpp:868,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:870,1
    - Dst: first::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:870,1
    - Dst: second::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:870,1
    - Dst: is_ok_status
      Src: /src/libtorrent/src/web_peer_connection.cpp:875,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:875,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:877,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:879,1
    - Dst: have_files::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:880,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:880,1
    - Dst: have_files::clear_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:881,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:884,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:885,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:885,1
    - Dst: libtorrent::web_peer_connection::handle_error
      Src: /src/libtorrent/src/web_peer_connection.cpp:888,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:888,1
    - Dst: is_redirect
      Src: /src/libtorrent/src/web_peer_connection.cpp:892,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:892,1
    - Dst: libtorrent::web_peer_connection::handle_redirect
      Src: /src/libtorrent/src/web_peer_connection.cpp:894,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:894,1
    - Dst: get_peer_name
      Src: /src/libtorrent/src/web_peer_connection.cpp:898,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:900,1
    - Dst: body_start
      Src: /src/libtorrent/src/web_peer_connection.cpp:902,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:907,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:919,1
    - Dst: get_range
      Src: /src/libtorrent/src/web_peer_connection.cpp:919,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:922,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:922,1
    - Dst: libtorrent::web_peer_connection::disable
      Src: /src/libtorrent/src/web_peer_connection.cpp:923,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:927,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:927,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:928,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:933,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:933,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:936,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:938,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:940,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:941,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:944,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/web_peer_connection.cpp:948,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:955,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:961,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:962,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:967,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:967,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:970,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:974,1
    - Dst: libtorrent::web_peer_connection::incoming_payload
      Src: /src/libtorrent/src/web_peer_connection.cpp:977,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:977,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:979,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:982,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:985,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:989,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:990,1
    - Dst: libtorrent::aux::is_hex
      Src: /src/libtorrent/src/web_peer_connection.cpp:991,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:991,1
    - Dst: parse_chunk_header
      Src: /src/libtorrent/src/web_peer_connection.cpp:992,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:995,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:995,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:996,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1000,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:1004,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1006,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1007,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1008,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:1010,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/web_peer_connection.cpp:1017,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:1020,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1021,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1021,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1025,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:1029,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1029,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1032,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:1036,1
    - Dst: pop_front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1040,1
    - Dst: reset
      Src: /src/libtorrent/src/web_peer_connection.cpp:1041,1
    - Dst: libtorrent::web_peer_connection::handle_padfile
      Src: /src/libtorrent/src/web_peer_connection.cpp:1049,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1055,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1061,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:1062,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1063,1
    - Dst: libtorrent::web_peer_connection::incoming_payload
      Src: /src/libtorrent/src/web_peer_connection.cpp:1064,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:1064,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:1065,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1067,1
    - Dst: pop_front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1071,1
    - Dst: reset
      Src: /src/libtorrent/src/web_peer_connection.cpp:1072,1
    - Dst: libtorrent::web_peer_connection::handle_padfile
      Src: /src/libtorrent/src/web_peer_connection.cpp:1080,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1084,1
    - Dst: cut
      Src: /src/libtorrent/src/web_peer_connection.cpp:1089,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:1089,1
    - Dst: get
      Src: /src/libtorrent/src/web_peer_connection.cpp:1089,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1090,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 162
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 1091
    functionName: libtorrent::web_peer_connection::on_receive
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - parse_chunk_header
    - packet_size
    - span::size
    - body_start
    - chunked_encoding
    - associated_torrent
    - empty
    - std::min
    - header_finished
    - first::c_str
    - cut
    - get_range
    - reset
    - have_files::clear_bit
    - received_bytes
    - message
    - front
    - libtorrent::web_peer_connection::handle_padfile
    - pop_front
    - second::c_str
    - TORRENT_ASSERT_VAL
    - span::data
    - headers
    - TORRENT_ASSERT
    - span::empty
    - libtorrent::web_peer_connection::incoming_payload
    - get_peer_name
    - std::shared_ptr::block_size
    - libtorrent::web_peer_connection::disconnect
    - is_redirect
    - libtorrent::web_peer_connection::handle_error
    - have_files::resize
    - connection_close
    - std::shared_ptr::torrent_file
    - span::subspan
    - libtorrent::web_peer_connection::disable
    - libtorrent::aux::is_hex
    - std::tie
    - incoming_choke
    - libtorrent::web_peer_connection::handle_redirect
    - incoming
    - status_code
    - is_ok_status
    - should_log
    - get
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void web_peer_connection::on_receive(error_code const& error\n\t,
      std::size_t bytes_transferred)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:1095,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/web_peer_connection.cpp:1098,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1101,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1109,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1113,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1113,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1114,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1115,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:1116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1120,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1120,1
    - Dst: resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:1125,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/web_peer_connection.cpp:1126,1
    - Dst: data
      Src: /src/libtorrent/src/web_peer_connection.cpp:1126,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/web_peer_connection.cpp:1126,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/web_peer_connection.cpp:1131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1133,1
    - Dst: libtorrent::web_peer_connection::maybe_harvest_piece
      Src: /src/libtorrent/src/web_peer_connection.cpp:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1136
    functionName: libtorrent::web_peer_connection::incoming_payload
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - std::memcpy
    - received_bytes
    - aux::numeric_cast<std::size_t>
    - incoming_piece_fragment
    - empty
    - is_disconnecting
    - front
    - TORRENT_ASSERT
    - size
    - std::min
    - resize
    - libtorrent::web_peer_connection::maybe_harvest_piece
    - peer_log
    - data
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::incoming_payload(char const* buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1141,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1147,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1147,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1148,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1149,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:1150,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1153,1
    - Dst: resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:1158,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/web_peer_connection.cpp:1162,1
    - Dst: libtorrent::web_peer_connection::maybe_harvest_piece
      Src: /src/libtorrent/src/web_peer_connection.cpp:1164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1166
    functionName: libtorrent::web_peer_connection::incoming_zeroes
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - incoming_piece_fragment
    - empty
    - front
    - TORRENT_ASSERT
    - size
    - std::min
    - resize
    - libtorrent::web_peer_connection::maybe_harvest_piece
    - peer_log
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::incoming_zeroes(int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1170,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1170,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1172,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1173,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1173,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1174,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:1176,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1177,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1180,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:1182,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1185,1
    - Dst: pop_front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1186,1
    - Dst: incoming_piece
      Src: /src/libtorrent/src/web_peer_connection.cpp:1188,1
    - Dst: data
      Src: /src/libtorrent/src/web_peer_connection.cpp:1188,1
    - Dst: clear
      Src: /src/libtorrent/src/web_peer_connection.cpp:1189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1190
    functionName: libtorrent::web_peer_connection::maybe_harvest_piece
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - incoming_piece
    - associated_torrent
    - empty
    - front
    - TORRENT_ASSERT
    - clear
    - pop_front
    - peer_log
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::maybe_harvest_piece()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_connection_base::get_specific_peer_info
      Src: /src/libtorrent/src/web_peer_connection.cpp:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1197
    functionName: libtorrent::web_peer_connection::get_specific_peer_info
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::web_connection_base::get_specific_peer_info
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::get_specific_peer_info(peer_info& p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1201,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1202,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:1204,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1205,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:1206,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1208,1
    - Dst: orig_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:1209,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1209,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1215,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1220,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1221,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1221,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:1223,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:1224,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1224,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1225,1
    - Dst: libtorrent::web_peer_connection::incoming_zeroes
      Src: /src/libtorrent/src/web_peer_connection.cpp:1228,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1231,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1233,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:1235,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1235,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1236,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1237,1
    - Dst: pop_front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1244
    functionName: libtorrent::web_peer_connection::handle_padfile
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::web_peer_connection::incoming_zeroes
    - static_cast<int>
    - associated_torrent
    - empty
    - front
    - TORRENT_ASSERT
    - std::min
    - std::int64_t
    - orig_files
    - pop_front
    - peer_log
    - should_log
    - size
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::handle_padfile()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/web_peer_connection.cpp:81,1
    - Dst: ignore_stats
      Src: /src/libtorrent/src/web_peer_connection.cpp:82,1
    - Dst: tor::lock
      Src: /src/libtorrent/src/web_peer_connection.cpp:84,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:85,1
    - Dst: std::max
      Src: /src/libtorrent/src/web_peer_connection.cpp:89,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:90,1
    - Dst: std::max
      Src: /src/libtorrent/src/web_peer_connection.cpp:94,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_peer_connection.cpp:94,1
    - Dst: prefer_contiguous_blocks
      Src: /src/libtorrent/src/web_peer_connection.cpp:96,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:96,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:98,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:99,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/web_peer_connection.cpp:105,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/web_peer_connection.cpp:106,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:111,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:112,1
    - Dst: escape_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:114,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:114,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:117,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:117,1
    - Dst: escape_file_path
      Src: /src/libtorrent/src/web_peer_connection.cpp:119,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:119,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:119,1
    - Dst: request_large_blocks
      Src: /src/libtorrent/src/web_peer_connection.cpp:127,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:130,1
    - Dst: c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ' pack'
    - ' web'
    argTypes:
    - peer_connection_args
    - web_seed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 132
    functionName: libtorrent::web_peer_connection::web_peer_connection
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - associated_torrent
    - empty
    - escape_string
    - ignore_stats
    - std::max
    - get_bool
    - request_large_blocks
    - tor::lock
    - get_int
    - file_index_t
    - escape_file_path
    - TORRENT_ASSERT
    - prefer_contiguous_blocks
    - std::shared_ptr::block_size
    - size
    - ensure_trailing_slash
    - std::shared_ptr::torrent_file
    - c_str
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void web_peer_connection::web_peer_connection(peer_connection_args&
      pack\n\t, web_seed_t& web)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_path
      Src: /src/libtorrent/src/web_peer_connection.cpp:136,1
    - Dst: libtorrent::convert_path_to_posix
      Src: /src/libtorrent/src/web_peer_connection.cpp:138,1
    - Dst: libtorrent::escape_path
      Src: /src/libtorrent/src/web_peer_connection.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' storage'
    - index
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: libtorrent::escape_file_path
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - file_path
    - libtorrent::escape_path
    - libtorrent::convert_path_to_posix
    linkageType: ''
    returnType: std::string
    signature: std::string escape_file_path(file_storage const& storage, file_index_t
      index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:146,1
    - Dst: set_pid
      Src: /src/libtorrent/src/web_peer_connection.cpp:147,1
    - Dst: have_files::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:149,1
    - Dst: incoming_have_all
      Src: /src/libtorrent/src/web_peer_connection.cpp:151,1
    - Dst: have_files::none_set
      Src: /src/libtorrent/src/web_peer_connection.cpp:153,1
    - Dst: incoming_have_none
      Src: /src/libtorrent/src/web_peer_connection.cpp:155,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:158,1
    - Dst: c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:158,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:163,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:173,1
    - Dst: typed_bitfield::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:174,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/web_peer_connection.cpp:174,1
    - Dst: file_range
      Src: /src/libtorrent/src/web_peer_connection.cpp:175,1
    - Dst: have_files::get_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:178,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/web_peer_connection.cpp:178,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/src/web_peer_connection.cpp:180,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/web_peer_connection.cpp:181,1
    - Dst: k < std::get<1>
      Src: /src/libtorrent/src/web_peer_connection.cpp:181,1
    - Dst: typed_bitfield::clear_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:182,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/web_peer_connection.cpp:184,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/web_peer_connection.cpp:184,1
    - Dst: typed_bitfield::none_set
      Src: /src/libtorrent/src/web_peer_connection.cpp:185,1
    - Dst: incoming_have_none
      Src: /src/libtorrent/src/web_peer_connection.cpp:187,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:190,1
    - Dst: c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:190,1
    - Dst: incoming_bitfield
      Src: /src/libtorrent/src/web_peer_connection.cpp:195,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:201,1
    - Dst: incoming_suggest
      Src: /src/libtorrent/src/web_peer_connection.cpp:205,1
    - Dst: libtorrent::web_connection_base::on_connected
      Src: /src/libtorrent/src/web_peer_connection.cpp:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 208
    functionName: libtorrent::web_peer_connection::on_connected
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - incoming_have_all
    - associated_torrent
    - incoming_bitfield
    - libtorrent::aux::file_piece_range_inclusive
    - std::get<0>
    - pad_file_at
    - have_files::empty
    - incoming_suggest
    - typed_bitfield::resize
    - have_files::none_set
    - num_pieces
    - libtorrent::aux::random_bytes
    - incoming_have_none
    - file_range
    - typed_bitfield::none_set
    - piece_index_t
    - std::shared_ptr::torrent_file
    - have_files::get_bit
    - typed_bitfield::clear_bit
    - set_pid
    - c_str
    - k < std::get<1>
    - std::shared_ptr::set_seed
    - peer_info_struct
    - libtorrent::web_connection_base::on_connected
    - peer_log
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::on_connected()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/web_peer_connection.cpp:213,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:224,1
    - Dst: clear
      Src: /src/libtorrent/src/web_peer_connection.cpp:228,1
    - Dst: incoming_choke
      Src: /src/libtorrent/src/web_peer_connection.cpp:234,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:238,1
    - Dst: endpoints::erase
      Src: /src/libtorrent/src/web_peer_connection.cpp:242,1
    - Dst: endpoints::begin
      Src: /src/libtorrent/src/web_peer_connection.cpp:242,1
    - Dst: std::max
      Src: /src/libtorrent/src/web_peer_connection.cpp:256,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/web_peer_connection.cpp:256,1
    - Dst: seconds32
      Src: /src/libtorrent/src/web_peer_connection.cpp:257,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_peer_connection.cpp:257,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:258,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/web_peer_connection.cpp:258,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:261,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:263,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:263,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:264,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:267,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:269,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:271,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:271,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:272,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:275,1
    - Dst: restart_piece::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:276,1
    - Dst: std::shared_ptr::add_redundant_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:280,1
    - Dst: restart_piece::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:280,1
    - Dst: std::move
      Src: /src/libtorrent/src/web_peer_connection.cpp:283,1
    - Dst: clear
      Src: /src/libtorrent/src/web_peer_connection.cpp:288,1
    - Dst: post
      Src: /src/libtorrent/src/web_peer_connection.cpp:295,1
    - Dst: get_context
      Src: /src/libtorrent/src/web_peer_connection.cpp:295,1
    - Dst: std::bind
      Src: /src/libtorrent/src/web_peer_connection.cpp:296,1
    - Dst: std::max
      Src: /src/libtorrent/src/web_peer_connection.cpp:301,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/web_peer_connection.cpp:301,1
    - Dst: seconds32
      Src: /src/libtorrent/src/web_peer_connection.cpp:302,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_peer_connection.cpp:302,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:306,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 3
    argNames:
    - ' ec'
    - op
    - error
    argTypes:
    - error_code
    - operation_t
    - disconnect_severity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 308
    functionName: libtorrent::web_peer_connection::disconnect
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - associated_torrent
    - empty
    - std::max
    - peer_connection::disconnect
    - restart_piece::size
    - get_context
    - endpoints::begin
    - front
    - get_int
    - clear
    - seconds32
    - is_disconnecting
    - std::shared_ptr::add_redundant_bytes
    - TORRENT_ASSERT
    - size
    - std::bind
    - restart_piece::empty
    - post
    - incoming_choke
    - endpoints::erase
    - endpoints::empty
    - libtorrent::aux::time_now32
    - should_log
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void web_peer_connection::disconnect(error_code const& ec\n\t, operation_t
      op, disconnect_severity_t const error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:312,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:314,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:315,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:319,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:320,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:324,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:325,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:325,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:327,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:329,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:330,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:332,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:332,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:334,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 337
    functionName: libtorrent::web_peer_connection::downloading_piece_progress
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - associated_torrent
    - empty
    - front
    - TORRENT_ASSERT
    - std::shared_ptr::block_size
    - size
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: piece_block_progress
    signature: piece_block_progress web_peer_connection::downloading_piece_progress()
      const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:343,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:344,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:346,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/web_peer_connection.cpp:346,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:348,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/web_peer_connection.cpp:352,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:355,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:356,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:363,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:363,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:364,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:364,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:365,1
    - Dst: validate_piece_request
      Src: /src/libtorrent/src/web_peer_connection.cpp:365,1
    - Dst: push_back
      Src: /src/libtorrent/src/web_peer_connection.cpp:366,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:370,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:371,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:371,1
    - Dst: std::move
      Src: /src/libtorrent/src/web_peer_connection.cpp:372,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:373,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:374,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:374,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:377,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:379,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:379,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/web_peer_connection.cpp:382,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:385,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:386,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/web_peer_connection.cpp:390,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:390,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:393,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:393,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:403,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:404,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:405,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:408,1
    - Dst: get_int
      Src: /src/libtorrent/src/web_peer_connection.cpp:409,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:424,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:425,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:425,1
    - Dst: piece_length
      Src: /src/libtorrent/src/web_peer_connection.cpp:425,1
    - Dst: add_headers
      Src: /src/libtorrent/src/web_peer_connection.cpp:434,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:436,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:438,1
    - Dst: push_back
      Src: /src/libtorrent/src/web_peer_connection.cpp:442,1
    - Dst: orig_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:446,1
    - Dst: orig_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:456,1
    - Dst: push_back
      Src: /src/libtorrent/src/web_peer_connection.cpp:458,1
    - Dst: redirects::find
      Src: /src/libtorrent/src/web_peer_connection.cpp:471,1
    - Dst: redirects::end
      Src: /src/libtorrent/src/web_peer_connection.cpp:472,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:476,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/web_peer_connection.cpp:477,1
    - Dst: escape_file_path
      Src: /src/libtorrent/src/web_peer_connection.cpp:488,1
    - Dst: orig_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:488,1
    - Dst: add_headers
      Src: /src/libtorrent/src/web_peer_connection.cpp:491,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:493,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:495,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:505,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:505,1
    - Dst: push_back
      Src: /src/libtorrent/src/web_peer_connection.cpp:507,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:511,1
    - Dst: post
      Src: /src/libtorrent/src/web_peer_connection.cpp:513,1
    - Dst: get_context
      Src: /src/libtorrent/src/web_peer_connection.cpp:513,1
    - Dst: std::bind
      Src: /src/libtorrent/src/web_peer_connection.cpp:513,1
    - Dst: std::static_pointer_cast<web_peer_connection>
      Src: /src/libtorrent/src/web_peer_connection.cpp:515,1
    - Dst: self
      Src: /src/libtorrent/src/web_peer_connection.cpp:515,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:520,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:520,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/web_peer_connection.cpp:523,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 83
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 524
    functionName: libtorrent::web_peer_connection::write_request
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - redirects::end
    - std::move
    - associated_torrent
    - redirects::find
    - empty
    - std::min
    - self
    - push_back
    - get_context
    - front
    - std::static_pointer_cast<web_peer_connection>
    - get_int
    - orig_files
    - file_index_t
    - escape_file_path
    - std::string::append
    - send_buffer
    - validate_piece_request
    - TORRENT_ASSERT
    - add_headers
    - std::shared_ptr::block_size
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - size
    - TORRENT_UNUSED
    - std::shared_ptr::torrent_file
    - std::bind
    - post
    - incoming_piece_fragment
    - std::string::c_str
    - std::int64_t
    - piece_length
    - peer_log
    - std::string::reserve
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::write_request(peer_request const& r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: header
      Src: /src/libtorrent/src/web_peer_connection.cpp:530,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' host'
    argTypes:
    - http_parser
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: libtorrent::get_peer_name
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - header
    linkageType: ''
    returnType: std::string
    signature: std::string get_peer_name(http_parser const& p, std::string const&
      host)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:541,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:543,1
    - Dst: libtorrent::content_range
      Src: /src/libtorrent/src/web_peer_connection.cpp:543,1
    - Dst: libtorrent::content_length
      Src: /src/libtorrent/src/web_peer_connection.cpp:559,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/web_peer_connection.cpp:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' parser'
    - ' ec'
    argTypes:
    - http_parser
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 567
    functionName: libtorrent::get_range
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::content_length
    - std::tie
    - libtorrent::status_code
    - std::make_tuple
    - libtorrent::content_range
    linkageType: ''
    returnType: std::tuple<std::int64_t, std::int64_t>
    signature: "std::tuple<std::int64_t, std::int64_t> get_range(\n\t\thttp_parser
      const& parser, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: header
      Src: /src/libtorrent/src/web_peer_connection.cpp:530,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' host'
    argTypes:
    - http_parser
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: libtorrent::get_peer_name
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - header
    linkageType: ''
    returnType: std::string
    signature: std::string get_peer_name(http_parser const& p, std::string const&
      host)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:541,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:543,1
    - Dst: libtorrent::content_range
      Src: /src/libtorrent/src/web_peer_connection.cpp:543,1
    - Dst: libtorrent::content_length
      Src: /src/libtorrent/src/web_peer_connection.cpp:559,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/web_peer_connection.cpp:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' parser'
    - ' ec'
    argTypes:
    - http_parser
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 567
    functionName: libtorrent::get_range
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::content_length
    - std::tie
    - libtorrent::status_code
    - std::make_tuple
    - libtorrent::content_range
    linkageType: ''
    returnType: std::tuple<std::int64_t, std::int64_t>
    signature: "std::tuple<std::int64_t, std::int64_t> get_range(\n\t\thttp_parser
      const& parser, error_code& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::received_invalid_data
      Src: /src/libtorrent/src/web_peer_connection.cpp:576,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:586,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:587,1
    - Dst: num_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:590,1
    - Dst: peer_connection::received_invalid_data
      Src: /src/libtorrent/src/web_peer_connection.cpp:590,1
    - Dst: map_block
      Src: /src/libtorrent/src/web_peer_connection.cpp:592,1
    - Dst: piece_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:592,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:594,1
    - Dst: file_piece_range_inclusive
      Src: /src/libtorrent/src/web_peer_connection.cpp:598,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/web_peer_connection.cpp:599,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/web_peer_connection.cpp:599,1
    - Dst: incoming_dont_have
      Src: /src/libtorrent/src/web_peer_connection.cpp:600,1
    - Dst: incoming_dont_have
      Src: /src/libtorrent/src/web_peer_connection.cpp:604,1
    - Dst: peer_connection::received_invalid_data
      Src: /src/libtorrent/src/web_peer_connection.cpp:607,1
    - Dst: num_have_pieces
      Src: /src/libtorrent/src/web_peer_connection.cpp:610,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - index
    - single_peer
    argTypes:
    - piece_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 614
    functionName: libtorrent::web_peer_connection::received_invalid_data
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::vector::size
    - num_have_pieces
    - peer_connection::received_invalid_data
    - associated_torrent
    - num_files
    - file_piece_range_inclusive
    - incoming_dont_have
    - std::get<0>
    - piece_size
    - map_block
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: bool
    signature: bool web_peer_connection::received_invalid_data(piece_index_t const
      index, bool single_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_peer_connection::handle_padfile
      Src: /src/libtorrent/src/web_peer_connection.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: libtorrent::web_peer_connection::on_receive_padfile
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::web_peer_connection::handle_padfile
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::on_receive_padfile()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:623,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:624,1
    - Dst: std::shared_ptr::retry_web_seed
      Src: /src/libtorrent/src/web_peer_connection.cpp:632,1
    - Dst: header_duration
      Src: /src/libtorrent/src/web_peer_connection.cpp:632,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/web_peer_connection.cpp:633,1
    - Dst: to_string
      Src: /src/libtorrent/src/web_peer_connection.cpp:635,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:635,1
    - Dst: message
      Src: /src/libtorrent/src/web_peer_connection.cpp:636,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/web_peer_connection.cpp:637,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/web_peer_connection.cpp:637,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:640,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:641,1
    - Dst: error_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:641,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:641,1
    - Dst: http_category
      Src: /src/libtorrent/src/web_peer_connection.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bytes_left
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 642
    functionName: libtorrent::web_peer_connection::handle_error
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - http_category
    - received_bytes
    - associated_torrent
    - std::shared_ptr::retry_web_seed
    - error_code
    - message
    - std::shared_ptr::alerts
    - TORRENT_ASSERT
    - status_code
    - header_duration
    - libtorrent::web_peer_connection::disconnect
    - std::shared_ptr::get_handle
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::handle_error(int const bytes_left)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:648,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:651,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:652,1
    - Dst: std::shared_ptr::remove_web_seed_conn
      Src: /src/libtorrent/src/web_peer_connection.cpp:653,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:656,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/web_peer_connection.cpp:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 657
    functionName: libtorrent::web_peer_connection::disable
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 2
    functionsReached:
    - associated_torrent
    - std::shared_ptr::remove_web_seed_conn
    - is_disconnecting
    - TORRENT_ASSERT
    - libtorrent::web_peer_connection::disconnect
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::disable(error_code const& ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: header
      Src: /src/libtorrent/src/web_peer_connection.cpp:663,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:664,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:667,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:669,1
    - Dst: libtorrent::web_peer_connection::disable
      Src: /src/libtorrent/src/web_peer_connection.cpp:671,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:675,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:676,1
    - Dst: get_bool
      Src: /src/libtorrent/src/web_peer_connection.cpp:682,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/web_peer_connection.cpp:682,1
    - Dst: remote
      Src: /src/libtorrent/src/web_peer_connection.cpp:682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:688,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:688,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:689,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/src/web_peer_connection.cpp:691,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:693,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:693,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:701,1
    - Dst: split_url
      Src: /src/libtorrent/src/web_peer_connection.cpp:701,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:706,1
    - Dst: std::shared_ptr::add_web_seed
      Src: /src/libtorrent/src/web_peer_connection.cpp:720,1
    - Dst: web_seed_t*::have_files::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:722,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:722,1
    - Dst: web_seed_t*::have_files::get_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:727,1
    - Dst: web_seed_t*::have_files::set_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:729,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/web_peer_connection.cpp:733,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:738,1
    - Dst: libtorrent::aux::file_piece_range_inclusive
      Src: /src/libtorrent/src/web_peer_connection.cpp:739,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/web_peer_connection.cpp:740,1
    - Dst: i < std::get<1>
      Src: /src/libtorrent/src/web_peer_connection.cpp:740,1
    - Dst: auto*::incoming_have
      Src: /src/libtorrent/src/web_peer_connection.cpp:741,1
    - Dst: have_files::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:749,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:749,1
    - Dst: have_files::clear_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:752,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:754,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:755,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:758,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/src/web_peer_connection.cpp:762,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:764,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:764,1
    - Dst: std::shared_ptr::add_web_seed
      Src: /src/libtorrent/src/web_peer_connection.cpp:766,1
    - Dst: have_files::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:771,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:771,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:772,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:774,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/web_peer_connection.cpp:774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - bytes_left
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 776
    functionName: libtorrent::web_peer_connection::handle_redirect
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - associated_torrent
    - i < std::get<1>
    - empty
    - remote
    - libtorrent::aux::file_piece_range_inclusive
    - std::get<0>
    - std::shared_ptr::add_web_seed
    - split_url
    - get_bool
    - web_seed_t*::have_files::get_bit
    - have_files::clear_bit
    - received_bytes
    - front
    - header
    - resolve_redirect_location
    - static_cast<peer_connection*>
    - is_disconnecting
    - TORRENT_ASSERT
    - web_seed_t*::have_files::resize
    - web_seed_t*::have_files::set_bit
    - libtorrent::web_peer_connection::disconnect
    - size
    - std::shared_ptr::torrent_file
    - libtorrent::web_peer_connection::disable
    - have_files::resize
    - libtorrent::aux::is_global
    - std::tie
    - std::string::empty
    - std::string::c_str
    - auto*::incoming_have
    - peer_log
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::handle_redirect(int const bytes_left)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:785,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:787,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:789,1
    - Dst: message
      Src: /src/libtorrent/src/web_peer_connection.cpp:790,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:797,1
    - Dst: get
      Src: /src/libtorrent/src/web_peer_connection.cpp:801,1
    - Dst: libtorrent::web_peer_connection::handle_padfile
      Src: /src/libtorrent/src/web_peer_connection.cpp:802,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:803,1
    - Dst: header_finished
      Src: /src/libtorrent/src/web_peer_connection.cpp:809,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:813,1
    - Dst: incoming
      Src: /src/libtorrent/src/web_peer_connection.cpp:813,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:814,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:815,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:815,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:819,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:819,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:821,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:823,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:824,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:824,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:827,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:831,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:831,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:832,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:832,1
    - Dst: packet_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:832,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:835,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:837,1
    - Dst: header_finished
      Src: /src/libtorrent/src/web_peer_connection.cpp:841,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:843,1
    - Dst: body_start
      Src: /src/libtorrent/src/web_peer_connection.cpp:847,1
    - Dst: connection_close
      Src: /src/libtorrent/src/web_peer_connection.cpp:856,1
    - Dst: incoming_choke
      Src: /src/libtorrent/src/web_peer_connection.cpp:858,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:864,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:866,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:867,1
    - Dst: message
      Src: /src/libtorrent/src/web_peer_connection.cpp:867,1
    - Dst: headers
      Src: /src/libtorrent/src/web_peer_connection.cpp:868,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:870,1
    - Dst: first::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:870,1
    - Dst: second::c_str
      Src: /src/libtorrent/src/web_peer_connection.cpp:870,1
    - Dst: is_ok_status
      Src: /src/libtorrent/src/web_peer_connection.cpp:875,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:875,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:877,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:879,1
    - Dst: have_files::resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:880,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:880,1
    - Dst: have_files::clear_bit
      Src: /src/libtorrent/src/web_peer_connection.cpp:881,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:884,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:885,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:885,1
    - Dst: libtorrent::web_peer_connection::handle_error
      Src: /src/libtorrent/src/web_peer_connection.cpp:888,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:888,1
    - Dst: is_redirect
      Src: /src/libtorrent/src/web_peer_connection.cpp:892,1
    - Dst: status_code
      Src: /src/libtorrent/src/web_peer_connection.cpp:892,1
    - Dst: libtorrent::web_peer_connection::handle_redirect
      Src: /src/libtorrent/src/web_peer_connection.cpp:894,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:894,1
    - Dst: get_peer_name
      Src: /src/libtorrent/src/web_peer_connection.cpp:898,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:900,1
    - Dst: body_start
      Src: /src/libtorrent/src/web_peer_connection.cpp:902,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:907,1
    - Dst: std::tie
      Src: /src/libtorrent/src/web_peer_connection.cpp:919,1
    - Dst: get_range
      Src: /src/libtorrent/src/web_peer_connection.cpp:919,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:922,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:922,1
    - Dst: libtorrent::web_peer_connection::disable
      Src: /src/libtorrent/src/web_peer_connection.cpp:923,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:927,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:927,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:928,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:933,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:933,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:936,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:938,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:940,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:941,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:944,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/web_peer_connection.cpp:948,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:955,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:961,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:962,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:967,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:967,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:970,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:974,1
    - Dst: libtorrent::web_peer_connection::incoming_payload
      Src: /src/libtorrent/src/web_peer_connection.cpp:977,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:977,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:979,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:982,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:985,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:989,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:990,1
    - Dst: libtorrent::aux::is_hex
      Src: /src/libtorrent/src/web_peer_connection.cpp:991,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:991,1
    - Dst: parse_chunk_header
      Src: /src/libtorrent/src/web_peer_connection.cpp:992,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:995,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:995,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:996,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1000,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:1004,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1006,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1007,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1008,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:1010,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/web_peer_connection.cpp:1017,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:1020,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1021,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1021,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1025,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:1029,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1029,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1032,1
    - Dst: libtorrent::web_peer_connection::disconnect
      Src: /src/libtorrent/src/web_peer_connection.cpp:1036,1
    - Dst: pop_front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1040,1
    - Dst: reset
      Src: /src/libtorrent/src/web_peer_connection.cpp:1041,1
    - Dst: libtorrent::web_peer_connection::handle_padfile
      Src: /src/libtorrent/src/web_peer_connection.cpp:1049,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1055,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1061,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:1062,1
    - Dst: span::size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1063,1
    - Dst: libtorrent::web_peer_connection::incoming_payload
      Src: /src/libtorrent/src/web_peer_connection.cpp:1064,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:1064,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/web_peer_connection.cpp:1065,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1067,1
    - Dst: pop_front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1071,1
    - Dst: reset
      Src: /src/libtorrent/src/web_peer_connection.cpp:1072,1
    - Dst: libtorrent::web_peer_connection::handle_padfile
      Src: /src/libtorrent/src/web_peer_connection.cpp:1080,1
    - Dst: span::empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1084,1
    - Dst: cut
      Src: /src/libtorrent/src/web_peer_connection.cpp:1089,1
    - Dst: span::data
      Src: /src/libtorrent/src/web_peer_connection.cpp:1089,1
    - Dst: get
      Src: /src/libtorrent/src/web_peer_connection.cpp:1089,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1090,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 162
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 1091
    functionName: libtorrent::web_peer_connection::on_receive
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - parse_chunk_header
    - packet_size
    - span::size
    - body_start
    - chunked_encoding
    - associated_torrent
    - empty
    - std::min
    - header_finished
    - first::c_str
    - cut
    - get_range
    - reset
    - have_files::clear_bit
    - received_bytes
    - message
    - front
    - libtorrent::web_peer_connection::handle_padfile
    - pop_front
    - second::c_str
    - TORRENT_ASSERT_VAL
    - span::data
    - headers
    - TORRENT_ASSERT
    - span::empty
    - libtorrent::web_peer_connection::incoming_payload
    - get_peer_name
    - std::shared_ptr::block_size
    - libtorrent::web_peer_connection::disconnect
    - is_redirect
    - libtorrent::web_peer_connection::handle_error
    - have_files::resize
    - connection_close
    - std::shared_ptr::torrent_file
    - span::subspan
    - libtorrent::web_peer_connection::disable
    - libtorrent::aux::is_hex
    - std::tie
    - incoming_choke
    - libtorrent::web_peer_connection::handle_redirect
    - incoming
    - status_code
    - is_ok_status
    - should_log
    - get
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void web_peer_connection::on_receive(error_code const& error\n\t,
      std::size_t bytes_transferred)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/web_peer_connection.cpp:1095,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/web_peer_connection.cpp:1098,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1101,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1109,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1113,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1113,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1114,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1115,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:1116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1120,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1120,1
    - Dst: resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:1125,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/web_peer_connection.cpp:1126,1
    - Dst: data
      Src: /src/libtorrent/src/web_peer_connection.cpp:1126,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/web_peer_connection.cpp:1126,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/web_peer_connection.cpp:1131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1133,1
    - Dst: libtorrent::web_peer_connection::maybe_harvest_piece
      Src: /src/libtorrent/src/web_peer_connection.cpp:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1136
    functionName: libtorrent::web_peer_connection::incoming_payload
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    - received_bytes
    - aux::numeric_cast<std::size_t>
    - incoming_piece_fragment
    - empty
    - is_disconnecting
    - front
    - TORRENT_ASSERT
    - size
    - std::min
    - resize
    - libtorrent::web_peer_connection::maybe_harvest_piece
    - peer_log
    - data
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::incoming_payload(char const* buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1141,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1147,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1147,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1148,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1149,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:1150,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1153,1
    - Dst: resize
      Src: /src/libtorrent/src/web_peer_connection.cpp:1158,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/web_peer_connection.cpp:1162,1
    - Dst: libtorrent::web_peer_connection::maybe_harvest_piece
      Src: /src/libtorrent/src/web_peer_connection.cpp:1164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1166
    functionName: libtorrent::web_peer_connection::incoming_zeroes
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 1
    functionsReached:
    - incoming_piece_fragment
    - empty
    - front
    - TORRENT_ASSERT
    - size
    - std::min
    - resize
    - libtorrent::web_peer_connection::maybe_harvest_piece
    - peer_log
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::incoming_zeroes(int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1170,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1170,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1172,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1173,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1173,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1174,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:1176,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1177,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1180,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:1182,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1185,1
    - Dst: pop_front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1186,1
    - Dst: incoming_piece
      Src: /src/libtorrent/src/web_peer_connection.cpp:1188,1
    - Dst: data
      Src: /src/libtorrent/src/web_peer_connection.cpp:1188,1
    - Dst: clear
      Src: /src/libtorrent/src/web_peer_connection.cpp:1189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1190
    functionName: libtorrent::web_peer_connection::maybe_harvest_piece
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - incoming_piece
    - associated_torrent
    - empty
    - front
    - TORRENT_ASSERT
    - clear
    - pop_front
    - peer_log
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::maybe_harvest_piece()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_connection_base::get_specific_peer_info
      Src: /src/libtorrent/src/web_peer_connection.cpp:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1197
    functionName: libtorrent::web_peer_connection::get_specific_peer_info
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::web_connection_base::get_specific_peer_info
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::get_specific_peer_info(peer_info& p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1201,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1202,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/web_peer_connection.cpp:1204,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1205,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/web_peer_connection.cpp:1206,1
    - Dst: empty
      Src: /src/libtorrent/src/web_peer_connection.cpp:1208,1
    - Dst: orig_files
      Src: /src/libtorrent/src/web_peer_connection.cpp:1209,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1209,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1215,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1220,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1221,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1221,1
    - Dst: std::min
      Src: /src/libtorrent/src/web_peer_connection.cpp:1223,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/web_peer_connection.cpp:1224,1
    - Dst: size
      Src: /src/libtorrent/src/web_peer_connection.cpp:1224,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/web_peer_connection.cpp:1225,1
    - Dst: libtorrent::web_peer_connection::incoming_zeroes
      Src: /src/libtorrent/src/web_peer_connection.cpp:1228,1
    - Dst: should_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1231,1
    - Dst: peer_log
      Src: /src/libtorrent/src/web_peer_connection.cpp:1233,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/web_peer_connection.cpp:1235,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1235,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1236,1
    - Dst: front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1237,1
    - Dst: pop_front
      Src: /src/libtorrent/src/web_peer_connection.cpp:1242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1244
    functionName: libtorrent::web_peer_connection::handle_padfile
    functionSourceFile: /src/libtorrent/src/web_peer_connection.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::web_peer_connection::incoming_zeroes
    - static_cast<int>
    - associated_torrent
    - empty
    - front
    - TORRENT_ASSERT
    - std::min
    - std::int64_t
    - orig_files
    - pop_front
    - peer_log
    - should_log
    - size
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: void
    signature: void web_peer_connection::handle_padfile()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end_file
      Src: /src/libtorrent/src/hash_picker.cpp:69,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:77,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/hash_picker.cpp:77,1
    - Dst: libtorrent::merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:78,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 2
    argNames:
    - ' hr'
    - ' fs'
    argTypes:
    - hash_request
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 93
    functionName: libtorrent::validate_hash_request
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::merkle_num_layers
    - libtorrent::end_file
    - file_num_blocks
    - libtorrent::merkle_num_leafs
    linkageType: ''
    returnType: bool
    signature: bool validate_hash_request(hash_request const& hr, file_storage const&
      fs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:99,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:99,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:100,1
    - Dst: resize
      Src: /src/libtorrent/src/hash_picker.cpp:102,1
    - Dst: size
      Src: /src/libtorrent/src/hash_picker.cpp:102,1
    - Dst: end_file
      Src: /src/libtorrent/src/hash_picker.cpp:103,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/hash_picker.cpp:105,1
    - Dst: verified_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:108,1
    - Dst: file_size
      Src: /src/libtorrent/src/hash_picker.cpp:110,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:110,1
    - Dst: resize
      Src: /src/libtorrent/src/hash_picker.cpp:113,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:113,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:115,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:116,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/hash_picker.cpp:116,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/src/hash_picker.cpp:117,1
    - Dst: size
      Src: /src/libtorrent/src/hash_picker.cpp:121,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:125,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:130,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/hash_picker.cpp:130,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:131,1
    - Dst: has_node
      Src: /src/libtorrent/src/hash_picker.cpp:132,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - ' files'
    - ' trees'
    argTypes:
    - file_storage
    - aux::vector<aux::merkle_tree, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 137
    functionName: libtorrent::hash_picker::hash_picker
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - file_num_pieces
    - merkle_num_leafs
    - end_file
    - piece_length
    - resize
    - file_size
    - pad_file_at
    - file_num_blocks
    - merkle_layer_start
    - std::size_t
    - verified_leafs
    - has_node
    - size
    - merkle_num_layers
    linkageType: ''
    returnType: void
    signature: "void hash_picker::hash_picker(file_storage const& files\n\t\t, aux::vector<aux::merkle_tree,
      file_index_t>& trees)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/hash_picker.cpp:141,1
    - Dst: empty
      Src: /src/libtorrent/src/hash_picker.cpp:145,1
    - Dst: front
      Src: /src/libtorrent/src/hash_picker.cpp:147,1
    - Dst: file_first_block_node
      Src: /src/libtorrent/src/hash_picker.cpp:148,1
    - Dst: libtorrent::hash_picker::layers_to_verify
      Src: /src/libtorrent/src/hash_picker.cpp:153,1
    - Dst: std::sort
      Src: /src/libtorrent/src/hash_picker.cpp:155,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:155,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:155,1
    - Dst: empty
      Src: /src/libtorrent/src/hash_picker.cpp:160,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/hash_picker.cpp:162,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:162,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:162,1
    - Dst: min_time
      Src: /src/libtorrent/src/hash_picker.cpp:164,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:165,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:167,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:170,1
    - Dst: file_first_block_node
      Src: /src/libtorrent/src/hash_picker.cpp:171,1
    - Dst: libtorrent::hash_picker::layers_to_verify
      Src: /src/libtorrent/src/hash_picker.cpp:176,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:176,1
    - Dst: std::sort
      Src: /src/libtorrent/src/hash_picker.cpp:179,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:179,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:179,1
    - Dst: range
      Src: /src/libtorrent/src/hash_picker.cpp:184,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/hash_picker.cpp:186,1
    - Dst: file_size
      Src: /src/libtorrent/src/hash_picker.cpp:186,1
    - Dst: file_offset
      Src: /src/libtorrent/src/hash_picker.cpp:188,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:188,1
    - Dst: libtorrent::hash_picker::file_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:189,1
    - Dst: std::max
      Src: /src/libtorrent/src/hash_picker.cpp:190,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/src/hash_picker.cpp:191,1
    - Dst: min_time
      Src: /src/libtorrent/src/hash_picker.cpp:198,1
    - Dst: std::min<int>
      Src: /src/libtorrent/src/hash_picker.cpp:205,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:205,1
    - Dst: hash_request
      Src: /src/libtorrent/src/hash_picker.cpp:224,1
    - Dst: std::min
      Src: /src/libtorrent/src/hash_picker.cpp:227,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:227,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:227,1
    - Dst: libtorrent::hash_picker::layers_to_verify
      Src: /src/libtorrent/src/hash_picker.cpp:228,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 233
    functionName: libtorrent::hash_picker::pick_hashes
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - empty
    - file_first_block_node
    - hash_request
    - std::min
    - file_size
    - std::max
    - pad_file_at
    - min_time
    - file_offset
    - libtorrent::aux::time_now
    - end
    - front
    - libtorrent::hash_picker::layers_to_verify
    - merkle_layer_start
    - merkle_num_leafs
    - std::min<int>
    - range
    - std::find_if
    - file_num_pieces
    - libtorrent::hash_picker::file_num_layers
    - piece_length
    - std::sort
    - merkle_num_layers
    linkageType: ''
    returnType: hash_request
    signature: hash_request hash_picker::pick_hashes(typed_bitfield<piece_index_t>
      const& pieces)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hash_picker.cpp:237,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/src/hash_picker.cpp:237,1
    - Dst: std::min
      Src: /src/libtorrent/src/hash_picker.cpp:239,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:239,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:240,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:241,1
    - Dst: std::max
      Src: /src/libtorrent/src/hash_picker.cpp:242,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/hash_picker.cpp:244,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:245,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:250,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:251,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:255,1
    - Dst: span<sha256_hash const>::subspan
      Src: /src/libtorrent/src/hash_picker.cpp:262,1
    - Dst: span<sha256_hash const>::first
      Src: /src/libtorrent/src/hash_picker.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hash_picker.cpp:265,1
    - Dst: auto::size
      Src: /src/libtorrent/src/hash_picker.cpp:265,1
    - Dst: libtorrent::hash_picker::file_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:267,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:270,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/src/hash_picker.cpp:275,1
    - Dst: piece_index_at_file
      Src: /src/libtorrent/src/hash_picker.cpp:276,1
    - Dst: libtorrent::hash_picker::add_hashes
      Src: /src/libtorrent/src/hash_picker.cpp:277,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:280,1
    - Dst: std::move
      Src: /src/libtorrent/src/hash_picker.cpp:282,1
    - Dst: std::move
      Src: /src/libtorrent/src/hash_picker.cpp:283,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ' req'
    - hashes
    argTypes:
    - hash_request
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 286
    functionName: libtorrent::hash_picker::add_hashes
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 1
    functionsReached:
    - file_num_pieces
    - span<sha256_hash const>::size
    - std::move
    - span<sha256_hash const>::first
    - libtorrent::hash_picker::file_num_layers
    - merkle_num_leafs
    - span<sha256_hash const>::subspan
    - piece_index_at_file
    - TORRENT_ASSERT
    - std::min
    - validate_hash_request
    - auto::size
    - std::max
    - merkle_to_flat_index
    - libtorrent::hash_picker::add_hashes
    - add_hashes_result
    - merkle_num_layers
    linkageType: ''
    returnType: add_hashes_result
    signature: add_hashes_result hash_picker::add_hashes(hash_request const& req,
      span<sha256_hash const> hashes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hash_picker.cpp:291,1
    - Dst: file_index_at_piece
      Src: /src/libtorrent/src/hash_picker.cpp:292,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/hash_picker.cpp:294,1
    - Dst: piece_index_at_file
      Src: /src/libtorrent/src/hash_picker.cpp:298,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:299,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/hash_picker.cpp:299,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:299,1
    - Dst: file_offset
      Src: /src/libtorrent/src/hash_picker.cpp:300,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:301,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/hash_picker.cpp:303,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/hash_picker.cpp:305,1
    - Dst: libtorrent::block_hash_failed
      Src: /src/libtorrent/src/hash_picker.cpp:306,1
    - Dst: std::tie
      Src: /src/libtorrent/src/hash_picker.cpp:313,1
    - Dst: set_block
      Src: /src/libtorrent/src/hash_picker.cpp:313,1
    - Dst: libtorrent::unknown
      Src: /src/libtorrent/src/hash_picker.cpp:316,1
    - Dst: libtorrent::block_hash_failed
      Src: /src/libtorrent/src/hash_picker.cpp:318,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:324,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:327,1
    - Dst: std::min
      Src: /src/libtorrent/src/hash_picker.cpp:328,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - piece
    - offset
    - ' h'
    argTypes:
    - piece_index_t
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 329
    functionName: libtorrent::hash_picker::set_block_hash
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - set_block
    - file_num_pieces
    - is_all_zeros
    - libtorrent::block_hash_failed
    - libtorrent::unknown
    - std::tie
    - piece_index_at_file
    - TORRENT_ASSERT
    - std::int64_t
    - piece_length
    - aux::numeric_cast<int>
    - TORRENT_ASSERT_FAIL
    - pad_file_at
    - std::min
    - file_index_at_piece
    - file_offset
    linkageType: ''
    returnType: set_block_hash_result
    signature: "set_block_hash_result hash_picker::set_block_hash(piece_index_t const
      piece\n\t\t, int const offset, sha256_hash const& h)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hash_picker.cpp:333,1
    - Dst: min_time
      Src: /src/libtorrent/src/hash_picker.cpp:337,1
    - Dst: std::find
      Src: /src/libtorrent/src/hash_picker.cpp:346,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:347,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:348,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:351,1
    - Dst: insert
      Src: /src/libtorrent/src/hash_picker.cpp:353,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:353,1
    - Dst: priority_block_request
      Src: /src/libtorrent/src/hash_picker.cpp:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' req'
    argTypes:
    - hash_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 358
    functionName: libtorrent::hash_picker::hashes_rejected
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - begin
    - insert
    - end
    - std::find
    - TORRENT_ASSERT
    - min_time
    - priority_block_request
    linkageType: ''
    returnType: void
    signature: void hash_picker::hashes_rejected(hash_request const& req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_index_at_piece
      Src: /src/libtorrent/src/hash_picker.cpp:362,1
    - Dst: piece_index_at_file
      Src: /src/libtorrent/src/hash_picker.cpp:363,1
    - Dst: std::find
      Src: /src/libtorrent/src/hash_picker.cpp:366,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:366,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:366,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:367,1
    - Dst: insert
      Src: /src/libtorrent/src/hash_picker.cpp:370,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 371
    functionName: libtorrent::hash_picker::verify_block_hashes
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - begin
    - insert
    - end
    - piece_index_at_file
    - std::find
    - file_index_at_piece
    linkageType: ''
    returnType: void
    signature: void hash_picker::verify_block_hashes(piece_index_t const index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_index_at_piece
      Src: /src/libtorrent/src/hash_picker.cpp:375,1
    - Dst: file_size
      Src: /src/libtorrent/src/hash_picker.cpp:376,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:376,1
    - Dst: file_offset
      Src: /src/libtorrent/src/hash_picker.cpp:377,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:377,1
    - Dst: has_node
      Src: /src/libtorrent/src/hash_picker.cpp:378,1
    - Dst: file_first_piece_node
      Src: /src/libtorrent/src/hash_picker.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: libtorrent::hash_picker::have_hash
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - file_first_piece_node
    - piece_length
    - file_size
    - file_index_at_piece
    - has_node
    - file_offset
    linkageType: ''
    returnType: bool
    signature: bool hash_picker::have_hash(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_complete
      Src: /src/libtorrent/src/hash_picker.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: libtorrent::hash_picker::have_all
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - is_complete
    linkageType: ''
    returnType: bool
    signature: bool hash_picker::have_all(file_index_t const file) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/hash_picker.cpp:388,1
    - Dst: libtorrent::hash_picker::have_all
      Src: /src/libtorrent/src/hash_picker.cpp:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: libtorrent::hash_picker::have_all
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::hash_picker::have_all
    - file_range
    linkageType: ''
    returnType: bool
    signature: bool hash_picker::have_all() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_index_at_piece
      Src: /src/libtorrent/src/hash_picker.cpp:395,1
    - Dst: file_offset
      Src: /src/libtorrent/src/hash_picker.cpp:396,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:396,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:397,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:397,1
    - Dst: blocks_in_piece2
      Src: /src/libtorrent/src/hash_picker.cpp:398,1
    - Dst: blocks_verified
      Src: /src/libtorrent/src/hash_picker.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 400
    functionName: libtorrent::hash_picker::piece_verified
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - blocks_in_piece2
    - piece_length
    - blocks_verified
    - file_index_at_piece
    - file_offset
    linkageType: ''
    returnType: bool
    signature: bool hash_picker::piece_verified(piece_index_t const piece) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:411,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:411,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:411,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/hash_picker.cpp:416,1
    - Dst: has_node
      Src: /src/libtorrent/src/hash_picker.cpp:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - idx
    argTypes:
    - node_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 423
    functionName: libtorrent::hash_picker::layers_to_verify
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 1
    functionsReached:
    - file_num_pieces
    - merkle_num_leafs
    - has_node
    - merkle_get_parent
    - merkle_num_layers
    linkageType: ''
    returnType: int
    signature: int hash_picker::layers_to_verify(node_index idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:427,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:427,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/hash_picker.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: libtorrent::hash_picker::file_num_layers
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 2
    functionsReached:
    - merkle_num_leafs
    - file_num_blocks
    - merkle_num_layers
    linkageType: ''
    returnType: int
    signature: int hash_picker::file_num_layers(file_index_t const idx) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end_file
      Src: /src/libtorrent/src/hash_picker.cpp:69,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:77,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/hash_picker.cpp:77,1
    - Dst: libtorrent::merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:78,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 2
    argNames:
    - ' hr'
    - ' fs'
    argTypes:
    - hash_request
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 93
    functionName: libtorrent::validate_hash_request
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::merkle_num_layers
    - libtorrent::end_file
    - file_num_blocks
    - libtorrent::merkle_num_leafs
    linkageType: ''
    returnType: bool
    signature: bool validate_hash_request(hash_request const& hr, file_storage const&
      fs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:99,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:99,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:100,1
    - Dst: resize
      Src: /src/libtorrent/src/hash_picker.cpp:102,1
    - Dst: size
      Src: /src/libtorrent/src/hash_picker.cpp:102,1
    - Dst: end_file
      Src: /src/libtorrent/src/hash_picker.cpp:103,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/hash_picker.cpp:105,1
    - Dst: verified_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:108,1
    - Dst: file_size
      Src: /src/libtorrent/src/hash_picker.cpp:110,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:110,1
    - Dst: resize
      Src: /src/libtorrent/src/hash_picker.cpp:113,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:113,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:115,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:116,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/hash_picker.cpp:116,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/src/hash_picker.cpp:117,1
    - Dst: size
      Src: /src/libtorrent/src/hash_picker.cpp:121,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:125,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:130,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/hash_picker.cpp:130,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:131,1
    - Dst: has_node
      Src: /src/libtorrent/src/hash_picker.cpp:132,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - ' files'
    - ' trees'
    argTypes:
    - file_storage
    - aux::vector<aux::merkle_tree, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 137
    functionName: libtorrent::hash_picker::hash_picker
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - file_num_pieces
    - merkle_num_leafs
    - end_file
    - piece_length
    - resize
    - file_size
    - pad_file_at
    - file_num_blocks
    - merkle_layer_start
    - std::size_t
    - verified_leafs
    - has_node
    - size
    - merkle_num_layers
    linkageType: ''
    returnType: void
    signature: "void hash_picker::hash_picker(file_storage const& files\n\t\t, aux::vector<aux::merkle_tree,
      file_index_t>& trees)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/hash_picker.cpp:141,1
    - Dst: empty
      Src: /src/libtorrent/src/hash_picker.cpp:145,1
    - Dst: front
      Src: /src/libtorrent/src/hash_picker.cpp:147,1
    - Dst: file_first_block_node
      Src: /src/libtorrent/src/hash_picker.cpp:148,1
    - Dst: libtorrent::hash_picker::layers_to_verify
      Src: /src/libtorrent/src/hash_picker.cpp:153,1
    - Dst: std::sort
      Src: /src/libtorrent/src/hash_picker.cpp:155,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:155,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:155,1
    - Dst: empty
      Src: /src/libtorrent/src/hash_picker.cpp:160,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/hash_picker.cpp:162,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:162,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:162,1
    - Dst: min_time
      Src: /src/libtorrent/src/hash_picker.cpp:164,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:165,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:167,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:170,1
    - Dst: file_first_block_node
      Src: /src/libtorrent/src/hash_picker.cpp:171,1
    - Dst: libtorrent::hash_picker::layers_to_verify
      Src: /src/libtorrent/src/hash_picker.cpp:176,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:176,1
    - Dst: std::sort
      Src: /src/libtorrent/src/hash_picker.cpp:179,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:179,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:179,1
    - Dst: range
      Src: /src/libtorrent/src/hash_picker.cpp:184,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/hash_picker.cpp:186,1
    - Dst: file_size
      Src: /src/libtorrent/src/hash_picker.cpp:186,1
    - Dst: file_offset
      Src: /src/libtorrent/src/hash_picker.cpp:188,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:188,1
    - Dst: libtorrent::hash_picker::file_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:189,1
    - Dst: std::max
      Src: /src/libtorrent/src/hash_picker.cpp:190,1
    - Dst: merkle_layer_start
      Src: /src/libtorrent/src/hash_picker.cpp:191,1
    - Dst: min_time
      Src: /src/libtorrent/src/hash_picker.cpp:198,1
    - Dst: std::min<int>
      Src: /src/libtorrent/src/hash_picker.cpp:205,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:205,1
    - Dst: hash_request
      Src: /src/libtorrent/src/hash_picker.cpp:224,1
    - Dst: std::min
      Src: /src/libtorrent/src/hash_picker.cpp:227,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:227,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:227,1
    - Dst: libtorrent::hash_picker::layers_to_verify
      Src: /src/libtorrent/src/hash_picker.cpp:228,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 233
    functionName: libtorrent::hash_picker::pick_hashes
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - empty
    - file_first_block_node
    - hash_request
    - std::min
    - file_size
    - std::max
    - pad_file_at
    - min_time
    - file_offset
    - libtorrent::aux::time_now
    - end
    - front
    - libtorrent::hash_picker::layers_to_verify
    - merkle_layer_start
    - merkle_num_leafs
    - std::min<int>
    - range
    - std::find_if
    - file_num_pieces
    - libtorrent::hash_picker::file_num_layers
    - piece_length
    - std::sort
    - merkle_num_layers
    linkageType: ''
    returnType: hash_request
    signature: hash_request hash_picker::pick_hashes(typed_bitfield<piece_index_t>
      const& pieces)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hash_picker.cpp:237,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/src/hash_picker.cpp:237,1
    - Dst: std::min
      Src: /src/libtorrent/src/hash_picker.cpp:239,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:239,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:240,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:241,1
    - Dst: std::max
      Src: /src/libtorrent/src/hash_picker.cpp:242,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/hash_picker.cpp:244,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:245,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:250,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:251,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:255,1
    - Dst: span<sha256_hash const>::subspan
      Src: /src/libtorrent/src/hash_picker.cpp:262,1
    - Dst: span<sha256_hash const>::first
      Src: /src/libtorrent/src/hash_picker.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hash_picker.cpp:265,1
    - Dst: auto::size
      Src: /src/libtorrent/src/hash_picker.cpp:265,1
    - Dst: libtorrent::hash_picker::file_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:267,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:270,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/src/hash_picker.cpp:275,1
    - Dst: piece_index_at_file
      Src: /src/libtorrent/src/hash_picker.cpp:276,1
    - Dst: libtorrent::hash_picker::add_hashes
      Src: /src/libtorrent/src/hash_picker.cpp:277,1
    - Dst: add_hashes_result
      Src: /src/libtorrent/src/hash_picker.cpp:280,1
    - Dst: std::move
      Src: /src/libtorrent/src/hash_picker.cpp:282,1
    - Dst: std::move
      Src: /src/libtorrent/src/hash_picker.cpp:283,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ' req'
    - hashes
    argTypes:
    - hash_request
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 286
    functionName: libtorrent::hash_picker::add_hashes
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 2
    functionsReached:
    - file_num_pieces
    - span<sha256_hash const>::size
    - std::move
    - span<sha256_hash const>::first
    - libtorrent::hash_picker::file_num_layers
    - merkle_num_leafs
    - span<sha256_hash const>::subspan
    - piece_index_at_file
    - TORRENT_ASSERT
    - std::min
    - validate_hash_request
    - auto::size
    - std::max
    - merkle_to_flat_index
    - libtorrent::hash_picker::add_hashes
    - add_hashes_result
    - merkle_num_layers
    linkageType: ''
    returnType: add_hashes_result
    signature: add_hashes_result hash_picker::add_hashes(hash_request const& req,
      span<sha256_hash const> hashes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hash_picker.cpp:291,1
    - Dst: file_index_at_piece
      Src: /src/libtorrent/src/hash_picker.cpp:292,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/hash_picker.cpp:294,1
    - Dst: piece_index_at_file
      Src: /src/libtorrent/src/hash_picker.cpp:298,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:299,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/hash_picker.cpp:299,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:299,1
    - Dst: file_offset
      Src: /src/libtorrent/src/hash_picker.cpp:300,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:301,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/hash_picker.cpp:303,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/hash_picker.cpp:305,1
    - Dst: libtorrent::block_hash_failed
      Src: /src/libtorrent/src/hash_picker.cpp:306,1
    - Dst: std::tie
      Src: /src/libtorrent/src/hash_picker.cpp:313,1
    - Dst: set_block
      Src: /src/libtorrent/src/hash_picker.cpp:313,1
    - Dst: libtorrent::unknown
      Src: /src/libtorrent/src/hash_picker.cpp:316,1
    - Dst: libtorrent::block_hash_failed
      Src: /src/libtorrent/src/hash_picker.cpp:318,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:324,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:327,1
    - Dst: std::min
      Src: /src/libtorrent/src/hash_picker.cpp:328,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - piece
    - offset
    - ' h'
    argTypes:
    - piece_index_t
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 329
    functionName: libtorrent::hash_picker::set_block_hash
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - set_block
    - file_num_pieces
    - is_all_zeros
    - libtorrent::block_hash_failed
    - libtorrent::unknown
    - std::tie
    - piece_index_at_file
    - TORRENT_ASSERT
    - std::int64_t
    - piece_length
    - aux::numeric_cast<int>
    - TORRENT_ASSERT_FAIL
    - pad_file_at
    - std::min
    - file_index_at_piece
    - file_offset
    linkageType: ''
    returnType: set_block_hash_result
    signature: "set_block_hash_result hash_picker::set_block_hash(piece_index_t const
      piece\n\t\t, int const offset, sha256_hash const& h)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hash_picker.cpp:333,1
    - Dst: min_time
      Src: /src/libtorrent/src/hash_picker.cpp:337,1
    - Dst: std::find
      Src: /src/libtorrent/src/hash_picker.cpp:346,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:347,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:348,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:351,1
    - Dst: insert
      Src: /src/libtorrent/src/hash_picker.cpp:353,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:353,1
    - Dst: priority_block_request
      Src: /src/libtorrent/src/hash_picker.cpp:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' req'
    argTypes:
    - hash_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 358
    functionName: libtorrent::hash_picker::hashes_rejected
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - begin
    - insert
    - end
    - std::find
    - TORRENT_ASSERT
    - min_time
    - priority_block_request
    linkageType: ''
    returnType: void
    signature: void hash_picker::hashes_rejected(hash_request const& req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_index_at_piece
      Src: /src/libtorrent/src/hash_picker.cpp:362,1
    - Dst: piece_index_at_file
      Src: /src/libtorrent/src/hash_picker.cpp:363,1
    - Dst: std::find
      Src: /src/libtorrent/src/hash_picker.cpp:366,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:366,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:366,1
    - Dst: end
      Src: /src/libtorrent/src/hash_picker.cpp:367,1
    - Dst: insert
      Src: /src/libtorrent/src/hash_picker.cpp:370,1
    - Dst: begin
      Src: /src/libtorrent/src/hash_picker.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 371
    functionName: libtorrent::hash_picker::verify_block_hashes
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - begin
    - insert
    - end
    - piece_index_at_file
    - std::find
    - file_index_at_piece
    linkageType: ''
    returnType: void
    signature: void hash_picker::verify_block_hashes(piece_index_t const index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_index_at_piece
      Src: /src/libtorrent/src/hash_picker.cpp:375,1
    - Dst: file_size
      Src: /src/libtorrent/src/hash_picker.cpp:376,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:376,1
    - Dst: file_offset
      Src: /src/libtorrent/src/hash_picker.cpp:377,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:377,1
    - Dst: has_node
      Src: /src/libtorrent/src/hash_picker.cpp:378,1
    - Dst: file_first_piece_node
      Src: /src/libtorrent/src/hash_picker.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: libtorrent::hash_picker::have_hash
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - file_first_piece_node
    - piece_length
    - file_size
    - file_index_at_piece
    - has_node
    - file_offset
    linkageType: ''
    returnType: bool
    signature: bool hash_picker::have_hash(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_complete
      Src: /src/libtorrent/src/hash_picker.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: libtorrent::hash_picker::have_all
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 1
    functionsReached:
    - is_complete
    linkageType: ''
    returnType: bool
    signature: bool hash_picker::have_all(file_index_t const file) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/hash_picker.cpp:388,1
    - Dst: libtorrent::hash_picker::have_all
      Src: /src/libtorrent/src/hash_picker.cpp:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: libtorrent::hash_picker::have_all
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::hash_picker::have_all
    - file_range
    linkageType: ''
    returnType: bool
    signature: bool hash_picker::have_all() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_index_at_piece
      Src: /src/libtorrent/src/hash_picker.cpp:395,1
    - Dst: file_offset
      Src: /src/libtorrent/src/hash_picker.cpp:396,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:396,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/hash_picker.cpp:397,1
    - Dst: piece_length
      Src: /src/libtorrent/src/hash_picker.cpp:397,1
    - Dst: blocks_in_piece2
      Src: /src/libtorrent/src/hash_picker.cpp:398,1
    - Dst: blocks_verified
      Src: /src/libtorrent/src/hash_picker.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 400
    functionName: libtorrent::hash_picker::piece_verified
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - blocks_in_piece2
    - piece_length
    - blocks_verified
    - file_index_at_piece
    - file_offset
    linkageType: ''
    returnType: bool
    signature: bool hash_picker::piece_verified(piece_index_t const piece) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:411,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:411,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/hash_picker.cpp:411,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/hash_picker.cpp:416,1
    - Dst: has_node
      Src: /src/libtorrent/src/hash_picker.cpp:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - idx
    argTypes:
    - node_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 423
    functionName: libtorrent::hash_picker::layers_to_verify
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 2
    functionsReached:
    - file_num_pieces
    - merkle_num_leafs
    - has_node
    - merkle_get_parent
    - merkle_num_layers
    linkageType: ''
    returnType: int
    signature: int hash_picker::layers_to_verify(node_index idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/hash_picker.cpp:427,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/hash_picker.cpp:427,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/hash_picker.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: libtorrent::hash_picker::file_num_layers
    functionSourceFile: /src/libtorrent/src/hash_picker.cpp
    functionUses: 4
    functionsReached:
    - merkle_num_leafs
    - file_num_blocks
    - merkle_num_layers
    linkageType: ''
    returnType: int
    signature: int hash_picker::file_num_layers(file_index_t const idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/http_tracker_connection.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/src/http_tracker_connection.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ios'
    - ' man'
    - req
    - c
    argTypes:
    - io_context
    - tracker_manager
    - tracker_request
    - std::weak_ptr<request_callback>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: libtorrent::http_tracker_connection::http_tracker_connection
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void http_tracker_connection::http_tracker_connection(\n\t\tio_context&
      ios\n\t\t, tracker_manager& man\n\t\t, tracker_request req\n\t\t, std::weak_ptr<request_callback>
      c)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:78,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:80,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_tracker_connection.cpp:85,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:88,1
    - Dst: std::string::replace
      Src: /src/libtorrent/src/http_tracker_connection.cpp:91,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/http_tracker_connection.cpp:95,1
    - Dst: settings
      Src: /src/libtorrent/src/http_tracker_connection.cpp:100,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_tracker_connection.cpp:105,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:110,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:111,1
    - Dst: string_view
      Src: /src/libtorrent/src/http_tracker_connection.cpp:111,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:113,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:124,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:124,1
    - Dst: data
      Src: /src/libtorrent/src/http_tracker_connection.cpp:124,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:126,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/http_tracker_connection.cpp:131,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:143,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:143,1
    - Dst: data
      Src: /src/libtorrent/src/http_tracker_connection.cpp:143,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:146,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:147,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:148,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:149,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:150,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:151,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:152,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:153,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/http_tracker_connection.cpp:153,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:153,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:154,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:157,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:158,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:161,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:164,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:164,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:166,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:166,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:169,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:169,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:173,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:175,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/http_tracker_connection.cpp:175,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:177,1
    - Dst: seconds32
      Src: /src/libtorrent/src/http_tracker_connection.cpp:178,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:183,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/http_tracker_connection.cpp:183,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:188,1
    - Dst: get_str
      Src: /src/libtorrent/src/http_tracker_connection.cpp:190,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:191,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:193,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:198,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:198,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:200,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:202,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:204,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:207,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:207,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:209,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:211,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:213,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:219,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:221,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/http_tracker_connection.cpp:227,1
    - Dst: host_resolver
      Src: /src/libtorrent/src/http_tracker_connection.cpp:227,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_tracker_connection.cpp:228,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_tracker_connection.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:229,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_tracker_connection.cpp:230,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_tracker_connection.cpp:230,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_tracker_connection.cpp:231,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_tracker_connection.cpp:231,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_tracker_connection.cpp:232,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_tracker_connection.cpp:232,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:234,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:238,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:239,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:240,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:245,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:246,1
    - Dst: get_str
      Src: /src/libtorrent/src/http_tracker_connection.cpp:249,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/http_tracker_connection.cpp:251,1
    - Dst: auto::get
      Src: /src/libtorrent/src/http_tracker_connection.cpp:253,1
    - Dst: auto::device
      Src: /src/libtorrent/src/http_tracker_connection.cpp:256,1
    - Dst: auto::get_local_endpoint
      Src: /src/libtorrent/src/http_tracker_connection.cpp:256,1
    - Dst: get
      Src: /src/libtorrent/src/http_tracker_connection.cpp:264,1
    - Dst: seconds
      Src: /src/libtorrent/src/http_tracker_connection.cpp:264,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:267,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:271,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:276,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/http_tracker_connection.cpp:281,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/http_tracker_connection.cpp:281,1
    - Dst: requester
      Src: /src/libtorrent/src/http_tracker_connection.cpp:285,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/http_tracker_connection.cpp:288,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_tracker_connection.cpp:288,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 291
    functionName: libtorrent::http_tracker_connection::start
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - auto::get_local_endpoint
    - auto::get
    - empty
    - seconds
    - std::shared_ptr::debug_log
    - escape_string
    - tracker_req
    - get_bool
    - data
    - std::string::replace
    - auto::device
    - std::make_shared<http_connection>
    - fail
    - get_int
    - get_str
    - shared_from_this
    - seconds32
    - requester
    - std::snprintf
    - has_tracker_query_string
    - is_i2p_url
    - std::string::size
    - std::bind
    - host_resolver
    - std::string::c_str
    - sent_bytes
    - string_view
    - std::string::find
    - settings
    - local_endpoint
    - bind_socket
    - get
    linkageType: ''
    returnType: void
    signature: void http_tracker_connection::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_tracker_connection::close
      Src: /src/libtorrent/src/http_tracker_connection.cpp:297,1
    - Dst: reset
      Src: /src/libtorrent/src/http_tracker_connection.cpp:298,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_tracker_connection.cpp:300,1
    - Dst: remove_request
      Src: /src/libtorrent/src/http_tracker_connection.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: libtorrent::http_tracker_connection::close
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 1
    functionsReached:
    - remove_request
    - reset
    - libtorrent::http_tracker_connection::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void http_tracker_connection::close()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bind_socket
      Src: /src/libtorrent/src/http_tracker_connection.cpp:311,1
    - Dst: auto::get
      Src: /src/libtorrent/src/http_tracker_connection.cpp:312,1
    - Dst: erase
      Src: /src/libtorrent/src/http_tracker_connection.cpp:314,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/http_tracker_connection.cpp:314,1
    - Dst: begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:314,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:314,1
    - Dst: auto::can_route
      Src: /src/libtorrent/src/http_tracker_connection.cpp:315,1
    - Dst: address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:315,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:316,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:319,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:321,1
    - Dst: settings
      Src: /src/libtorrent/src/http_tracker_connection.cpp:325,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:326,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/http_tracker_connection.cpp:327,1
    - Dst: begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:327,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:327,1
    - Dst: address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:328,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:328,1
    - Dst: std::tie
      Src: /src/libtorrent/src/http_tracker_connection.cpp:336,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/http_tracker_connection.cpp:337,1
    - Dst: url
      Src: /src/libtorrent/src/http_tracker_connection.cpp:337,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:340,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:347,1
    - Dst: begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:349,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:349,1
    - Dst: auto::address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:351,1
    - Dst: erase
      Src: /src/libtorrent/src/http_tracker_connection.cpp:352,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:358,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:360,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/http_tracker_connection.cpp:365,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:366,1
    - Dst: begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:369,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:369,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:371,1
    - Dst: access
      Src: /src/libtorrent/src/http_tracker_connection.cpp:371,1
    - Dst: auto::address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:371,1
    - Dst: erase
      Src: /src/libtorrent/src/http_tracker_connection.cpp:372,1
    - Dst: requester
      Src: /src/libtorrent/src/http_tracker_connection.cpp:378,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/http_tracker_connection.cpp:381,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:384,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:385,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - ' c'
    - ' endpoints'
    argTypes:
    - http_connection
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 386
    functionName: libtorrent::http_tracker_connection::on_filter
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - begin
    - auto::get
    - empty
    - std::shared_ptr::debug_log
    - get_bool
    - tracker_req
    - parse_url_components
    - fail
    - auto::can_route
    - end
    - auto::address
    - url
    - std::string::substr
    - address
    - requester
    - access
    - erase
    - std::remove_if
    - TORRENT_UNUSED
    - std::find_if
    - std::tie
    - settings
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void http_tracker_connection::on_filter(http_connection& c\n\t\t,
      std::vector<tcp::endpoint>& endpoints)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/src/http_tracker_connection.cpp:392,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:393,1
    - Dst: is_idna
      Src: /src/libtorrent/src/http_tracker_connection.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: libtorrent::http_tracker_connection::on_filter_hostname
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - is_idna
    - settings
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool http_tracker_connection::on_filter_hostname(http_connection&\n\t\t,
      string_view hostname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libtorrent/src/http_tracker_connection.cpp:400,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: libtorrent::http_tracker_connection::on_connect
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - socket
    linkageType: ''
    returnType: void
    signature: void http_tracker_connection::on_connect(http_connection& c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:412,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_tracker_connection.cpp:416,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:418,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_tracker_connection.cpp:422,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:424,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_tracker_connection.cpp:424,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_tracker_connection.cpp:424,1
    - Dst: http_category
      Src: /src/libtorrent/src/http_tracker_connection.cpp:424,1
    - Dst: message
      Src: /src/libtorrent/src/http_tracker_connection.cpp:426,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_tracker_connection.cpp:430,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/http_tracker_connection.cpp:430,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/http_tracker_connection.cpp:430,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_tracker_connection.cpp:430,1
    - Dst: requester
      Src: /src/libtorrent/src/http_tracker_connection.cpp:435,1
    - Dst: libtorrent::http_tracker_connection::close
      Src: /src/libtorrent/src/http_tracker_connection.cpp:438,1
    - Dst: parse_tracker_response
      Src: /src/libtorrent/src/http_tracker_connection.cpp:442,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:443,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:443,1
    - Dst: tracker_response::warning_message::empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:445,1
    - Dst: std::shared_ptr::tracker_warning
      Src: /src/libtorrent/src/http_tracker_connection.cpp:446,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:446,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:450,1
    - Dst: tracker_response::failure_reason::c_str
      Src: /src/libtorrent/src/http_tracker_connection.cpp:451,1
    - Dst: libtorrent::http_tracker_connection::close
      Src: /src/libtorrent/src/http_tracker_connection.cpp:453,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:458,1
    - Dst: std::shared_ptr::tracker_scrape_response
      Src: /src/libtorrent/src/http_tracker_connection.cpp:460,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:460,1
    - Dst: endpoints
      Src: /src/libtorrent/src/http_tracker_connection.cpp:468,1
    - Dst: std::list::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:470,1
    - Dst: address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:470,1
    - Dst: std::shared_ptr::tracker_response
      Src: /src/libtorrent/src/http_tracker_connection.cpp:474,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:474,1
    - Dst: libtorrent::http_tracker_connection::close
      Src: /src/libtorrent/src/http_tracker_connection.cpp:476,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - ' ec'
    - ' parser'
    - data
    argTypes:
    - error_code
    - http_parser
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 477
    functionName: libtorrent::http_tracker_connection::on_response
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - body_start
    - http_category
    - parse_tracker_response
    - tracker_response::warning_message::empty
    - endpoints
    - std::shared_ptr::tracker_scrape_response
    - header_finished
    - span<char const>::size
    - tracker_req
    - received_bytes
    - fail
    - message
    - tracker_response::failure_reason::c_str
    - address
    - std::list::push_back
    - requester
    - libtorrent::http_tracker_connection::close
    - std::shared_ptr::tracker_response
    - std::shared_ptr::tracker_warning
    - error_code
    - status_code
    linkageType: ''
    returnType: void
    signature: "void http_tracker_connection::on_response(error_code const& ec\n\t\t,
      http_parser const& parser, span<char const> data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/http_tracker_connection.cpp:484,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:489,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:490,1
    - Dst: std::copy
      Src: /src/libtorrent/src/http_tracker_connection.cpp:492,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:492,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:492,1
    - Dst: pid::begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:492,1
    - Dst: pid::clear
      Src: /src/libtorrent/src/http_tracker_connection.cpp:497,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:501,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:507,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:510,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/http_tracker_connection.cpp:516,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ' info'
    - ' ret'
    - ' ec'
    argTypes:
    - bdecode_node
    - peer_entry
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 519
    functionName: libtorrent::extract_peer_info
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - bdecode_node::string_value
    - dict_find_int
    - std::uint16_t
    - bdecode_node::int_value
    - bdecode_node::string_length
    - std::copy
    - pid::begin
    - dict_find_string
    - pid::clear
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: bool
    signature: bool extract_peer_info(bdecode_node const& info, peer_entry& ret, error_code&
      ec)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/http_tracker_connection.cpp:527,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:527,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:527,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/http_tracker_connection.cpp:531,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:538,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:539,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:541,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:543,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:546,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:549,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:554,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:556,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/src/http_tracker_connection.cpp:560,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/src/http_tracker_connection.cpp:567,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:568,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:576,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:577,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:578,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:579,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:585,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:586,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:587,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/http_tracker_connection.cpp:589,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/http_tracker_connection.cpp:590,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:592,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:593,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/http_tracker_connection.cpp:601,1
    - Dst: i2p_peer_entry::destination::data
      Src: /src/libtorrent/src/http_tracker_connection.cpp:601,1
    - Dst: tracker_response::i2p_peers::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:602,1
    - Dst: tracker_response::peers4::reserve
      Src: /src/libtorrent/src/http_tracker_connection.cpp:608,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_tracker_connection.cpp:608,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:614,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/http_tracker_connection.cpp:615,1
    - Dst: tracker_response::peers4::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:616,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/http_tracker_connection.cpp:620,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/http_tracker_connection.cpp:622,1
    - Dst: tracker_response::peers::reserve
      Src: /src/libtorrent/src/http_tracker_connection.cpp:623,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_tracker_connection.cpp:623,1
    - Dst: libtorrent::extract_peer_info
      Src: /src/libtorrent/src/http_tracker_connection.cpp:628,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/http_tracker_connection.cpp:628,1
    - Dst: tracker_response::peers::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:630,1
    - Dst: tracker_response::peers::empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:634,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/src/http_tracker_connection.cpp:642,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:645,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:648,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:649,1
    - Dst: tracker_response::peers6::reserve
      Src: /src/libtorrent/src/http_tracker_connection.cpp:650,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_tracker_connection.cpp:650,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:656,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/http_tracker_connection.cpp:657,1
    - Dst: tracker_response::peers6::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:658,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/src/http_tracker_connection.cpp:663,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:674,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:677,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:678,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:679,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:680,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:681,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 88
    argCount: 4
    argNames:
    - data
    - ' ec'
    - flags
    - ' scrape_ih'
    argTypes:
    - span<char const>
    - error_code
    - tracker_request_flags_t
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 685
    functionName: libtorrent::parse_tracker_response
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_v6_address
    - bdecode_node::string_length
    - libtorrent::aux::read_uint16
    - tracker_response::peers6::reserve
    - bdecode_node::string_ptr
    - bdecode_node::clear
    - bdecode_node::type
    - bdecode_node::list_size
    - libtorrent::to_string
    - tracker_response::peers4::push_back
    - std::size_t
    - tracker_response::peers::push_back
    - bdecode_node::dict_find_dict
    - libtorrent::aux::read_v4_address
    - tracker_response::peers6::push_back
    - bdecode_node::dict_find
    - bdecode_node::string_value
    - bdecode_node::list_at
    - i2p_peer_entry::destination::data
    - span<char const>::end
    - tracker_response::i2p_peers::push_back
    - bdecode_node::dict_find_string
    - tracker_response::peers4::reserve
    - std::memcpy
    - libtorrent::bdecode
    - tracker_response::peers::empty
    - span<char const>::begin
    - bdecode_node::dict_find_int_value
    - tracker_response::peers::reserve
    - libtorrent::extract_peer_info
    linkageType: ''
    returnType: tracker_response
    signature: "tracker_response parse_tracker_response(span<char const> const data,
      error_code& ec\n\t\t, tracker_request_flags_t const flags, sha1_hash const&
      scrape_ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/http_tracker_connection.cpp:72,1
    - Dst: std::move
      Src: /src/libtorrent/src/http_tracker_connection.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ios'
    - ' man'
    - req
    - c
    argTypes:
    - io_context
    - tracker_manager
    - tracker_request
    - std::weak_ptr<request_callback>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: libtorrent::http_tracker_connection::http_tracker_connection
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void http_tracker_connection::http_tracker_connection(\n\t\tio_context&
      ios\n\t\t, tracker_manager& man\n\t\t, tracker_request req\n\t\t, std::weak_ptr<request_callback>
      c)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:78,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:80,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_tracker_connection.cpp:85,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:88,1
    - Dst: std::string::replace
      Src: /src/libtorrent/src/http_tracker_connection.cpp:91,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/http_tracker_connection.cpp:95,1
    - Dst: settings
      Src: /src/libtorrent/src/http_tracker_connection.cpp:100,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_tracker_connection.cpp:105,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:110,1
    - Dst: has_tracker_query_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:111,1
    - Dst: string_view
      Src: /src/libtorrent/src/http_tracker_connection.cpp:111,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:113,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:124,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:124,1
    - Dst: data
      Src: /src/libtorrent/src/http_tracker_connection.cpp:124,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:126,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/http_tracker_connection.cpp:131,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:143,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:143,1
    - Dst: data
      Src: /src/libtorrent/src/http_tracker_connection.cpp:143,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:146,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:147,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:148,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:149,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:150,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:151,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:152,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:153,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/http_tracker_connection.cpp:153,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:153,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:154,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:157,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:158,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:161,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:164,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:164,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:166,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:166,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:169,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:169,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:173,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:175,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/http_tracker_connection.cpp:175,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:177,1
    - Dst: seconds32
      Src: /src/libtorrent/src/http_tracker_connection.cpp:178,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:183,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/http_tracker_connection.cpp:183,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:188,1
    - Dst: get_str
      Src: /src/libtorrent/src/http_tracker_connection.cpp:190,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:191,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:193,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:198,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:198,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:200,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:202,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:204,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:207,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:207,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:209,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:211,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:213,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:219,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:221,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/http_tracker_connection.cpp:227,1
    - Dst: host_resolver
      Src: /src/libtorrent/src/http_tracker_connection.cpp:227,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_tracker_connection.cpp:228,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_tracker_connection.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:229,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_tracker_connection.cpp:230,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_tracker_connection.cpp:230,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_tracker_connection.cpp:231,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_tracker_connection.cpp:231,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_tracker_connection.cpp:232,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_tracker_connection.cpp:232,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:234,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:238,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:239,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:240,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:245,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:246,1
    - Dst: get_str
      Src: /src/libtorrent/src/http_tracker_connection.cpp:249,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/http_tracker_connection.cpp:251,1
    - Dst: auto::get
      Src: /src/libtorrent/src/http_tracker_connection.cpp:253,1
    - Dst: auto::device
      Src: /src/libtorrent/src/http_tracker_connection.cpp:256,1
    - Dst: auto::get_local_endpoint
      Src: /src/libtorrent/src/http_tracker_connection.cpp:256,1
    - Dst: get
      Src: /src/libtorrent/src/http_tracker_connection.cpp:264,1
    - Dst: seconds
      Src: /src/libtorrent/src/http_tracker_connection.cpp:264,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:267,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:271,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:276,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/http_tracker_connection.cpp:281,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/http_tracker_connection.cpp:281,1
    - Dst: requester
      Src: /src/libtorrent/src/http_tracker_connection.cpp:285,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/http_tracker_connection.cpp:288,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_tracker_connection.cpp:288,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 291
    functionName: libtorrent::http_tracker_connection::start
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - auto::get_local_endpoint
    - auto::get
    - empty
    - seconds
    - std::shared_ptr::debug_log
    - escape_string
    - tracker_req
    - get_bool
    - data
    - std::string::replace
    - auto::device
    - std::make_shared<http_connection>
    - fail
    - get_int
    - get_str
    - shared_from_this
    - seconds32
    - requester
    - std::snprintf
    - has_tracker_query_string
    - is_i2p_url
    - std::string::size
    - std::bind
    - host_resolver
    - std::string::c_str
    - sent_bytes
    - string_view
    - std::string::find
    - settings
    - local_endpoint
    - bind_socket
    - get
    linkageType: ''
    returnType: void
    signature: void http_tracker_connection::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_tracker_connection::close
      Src: /src/libtorrent/src/http_tracker_connection.cpp:297,1
    - Dst: reset
      Src: /src/libtorrent/src/http_tracker_connection.cpp:298,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_tracker_connection.cpp:300,1
    - Dst: remove_request
      Src: /src/libtorrent/src/http_tracker_connection.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: libtorrent::http_tracker_connection::close
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 3
    functionsReached:
    - remove_request
    - reset
    - libtorrent::http_tracker_connection::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void http_tracker_connection::close()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bind_socket
      Src: /src/libtorrent/src/http_tracker_connection.cpp:311,1
    - Dst: auto::get
      Src: /src/libtorrent/src/http_tracker_connection.cpp:312,1
    - Dst: erase
      Src: /src/libtorrent/src/http_tracker_connection.cpp:314,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/http_tracker_connection.cpp:314,1
    - Dst: begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:314,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:314,1
    - Dst: auto::can_route
      Src: /src/libtorrent/src/http_tracker_connection.cpp:315,1
    - Dst: address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:315,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:316,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:319,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:321,1
    - Dst: settings
      Src: /src/libtorrent/src/http_tracker_connection.cpp:325,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:326,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/http_tracker_connection.cpp:327,1
    - Dst: begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:327,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:327,1
    - Dst: address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:328,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:328,1
    - Dst: std::tie
      Src: /src/libtorrent/src/http_tracker_connection.cpp:336,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/http_tracker_connection.cpp:337,1
    - Dst: url
      Src: /src/libtorrent/src/http_tracker_connection.cpp:337,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:340,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:347,1
    - Dst: begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:349,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:349,1
    - Dst: auto::address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:351,1
    - Dst: erase
      Src: /src/libtorrent/src/http_tracker_connection.cpp:352,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:358,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:360,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/http_tracker_connection.cpp:365,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:366,1
    - Dst: begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:369,1
    - Dst: end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:369,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:371,1
    - Dst: access
      Src: /src/libtorrent/src/http_tracker_connection.cpp:371,1
    - Dst: auto::address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:371,1
    - Dst: erase
      Src: /src/libtorrent/src/http_tracker_connection.cpp:372,1
    - Dst: requester
      Src: /src/libtorrent/src/http_tracker_connection.cpp:378,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/http_tracker_connection.cpp:381,1
    - Dst: empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:384,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:385,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - ' c'
    - ' endpoints'
    argTypes:
    - http_connection
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 386
    functionName: libtorrent::http_tracker_connection::on_filter
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - begin
    - auto::get
    - empty
    - std::shared_ptr::debug_log
    - get_bool
    - tracker_req
    - parse_url_components
    - fail
    - auto::can_route
    - end
    - auto::address
    - url
    - std::string::substr
    - address
    - requester
    - access
    - erase
    - std::remove_if
    - TORRENT_UNUSED
    - std::find_if
    - std::tie
    - settings
    - bind_socket
    linkageType: ''
    returnType: void
    signature: "void http_tracker_connection::on_filter(http_connection& c\n\t\t,
      std::vector<tcp::endpoint>& endpoints)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/src/http_tracker_connection.cpp:392,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_tracker_connection.cpp:393,1
    - Dst: is_idna
      Src: /src/libtorrent/src/http_tracker_connection.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: libtorrent::http_tracker_connection::on_filter_hostname
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - is_idna
    - settings
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool http_tracker_connection::on_filter_hostname(http_connection&\n\t\t,
      string_view hostname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libtorrent/src/http_tracker_connection.cpp:400,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: libtorrent::http_tracker_connection::on_connect
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - socket
    linkageType: ''
    returnType: void
    signature: void http_tracker_connection::on_connect(http_connection& c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:412,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_tracker_connection.cpp:416,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:418,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_tracker_connection.cpp:422,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:424,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_tracker_connection.cpp:424,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_tracker_connection.cpp:424,1
    - Dst: http_category
      Src: /src/libtorrent/src/http_tracker_connection.cpp:424,1
    - Dst: message
      Src: /src/libtorrent/src/http_tracker_connection.cpp:426,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_tracker_connection.cpp:430,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/http_tracker_connection.cpp:430,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/http_tracker_connection.cpp:430,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_tracker_connection.cpp:430,1
    - Dst: requester
      Src: /src/libtorrent/src/http_tracker_connection.cpp:435,1
    - Dst: libtorrent::http_tracker_connection::close
      Src: /src/libtorrent/src/http_tracker_connection.cpp:438,1
    - Dst: parse_tracker_response
      Src: /src/libtorrent/src/http_tracker_connection.cpp:442,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:443,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:443,1
    - Dst: tracker_response::warning_message::empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:445,1
    - Dst: std::shared_ptr::tracker_warning
      Src: /src/libtorrent/src/http_tracker_connection.cpp:446,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:446,1
    - Dst: fail
      Src: /src/libtorrent/src/http_tracker_connection.cpp:450,1
    - Dst: tracker_response::failure_reason::c_str
      Src: /src/libtorrent/src/http_tracker_connection.cpp:451,1
    - Dst: libtorrent::http_tracker_connection::close
      Src: /src/libtorrent/src/http_tracker_connection.cpp:453,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:458,1
    - Dst: std::shared_ptr::tracker_scrape_response
      Src: /src/libtorrent/src/http_tracker_connection.cpp:460,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:460,1
    - Dst: endpoints
      Src: /src/libtorrent/src/http_tracker_connection.cpp:468,1
    - Dst: std::list::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:470,1
    - Dst: address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:470,1
    - Dst: std::shared_ptr::tracker_response
      Src: /src/libtorrent/src/http_tracker_connection.cpp:474,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/http_tracker_connection.cpp:474,1
    - Dst: libtorrent::http_tracker_connection::close
      Src: /src/libtorrent/src/http_tracker_connection.cpp:476,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - ' ec'
    - ' parser'
    - data
    argTypes:
    - error_code
    - http_parser
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 477
    functionName: libtorrent::http_tracker_connection::on_response
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - body_start
    - http_category
    - parse_tracker_response
    - tracker_response::warning_message::empty
    - endpoints
    - std::shared_ptr::tracker_scrape_response
    - header_finished
    - span<char const>::size
    - tracker_req
    - received_bytes
    - fail
    - message
    - tracker_response::failure_reason::c_str
    - address
    - std::list::push_back
    - requester
    - libtorrent::http_tracker_connection::close
    - std::shared_ptr::tracker_response
    - std::shared_ptr::tracker_warning
    - error_code
    - status_code
    linkageType: ''
    returnType: void
    signature: "void http_tracker_connection::on_response(error_code const& ec\n\t\t,
      http_parser const& parser, span<char const> data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/http_tracker_connection.cpp:484,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:489,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:490,1
    - Dst: std::copy
      Src: /src/libtorrent/src/http_tracker_connection.cpp:492,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:492,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:492,1
    - Dst: pid::begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:492,1
    - Dst: pid::clear
      Src: /src/libtorrent/src/http_tracker_connection.cpp:497,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:501,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:507,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/http_tracker_connection.cpp:510,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/http_tracker_connection.cpp:516,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ' info'
    - ' ret'
    - ' ec'
    argTypes:
    - bdecode_node
    - peer_entry
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 519
    functionName: libtorrent::extract_peer_info
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::type
    - bdecode_node::string_value
    - dict_find_int
    - std::uint16_t
    - bdecode_node::int_value
    - bdecode_node::string_length
    - std::copy
    - pid::begin
    - dict_find_string
    - pid::clear
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: bool
    signature: bool extract_peer_info(bdecode_node const& info, peer_entry& ret, error_code&
      ec)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/http_tracker_connection.cpp:527,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/http_tracker_connection.cpp:527,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_tracker_connection.cpp:527,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/http_tracker_connection.cpp:531,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:538,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:539,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:541,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:543,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:546,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:549,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:554,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:556,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/src/http_tracker_connection.cpp:560,1
    - Dst: bdecode_node::dict_find_dict
      Src: /src/libtorrent/src/http_tracker_connection.cpp:567,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:568,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:576,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:577,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:578,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:579,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:585,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:586,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/http_tracker_connection.cpp:587,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/http_tracker_connection.cpp:589,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/http_tracker_connection.cpp:590,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:592,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:593,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/http_tracker_connection.cpp:601,1
    - Dst: i2p_peer_entry::destination::data
      Src: /src/libtorrent/src/http_tracker_connection.cpp:601,1
    - Dst: tracker_response::i2p_peers::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:602,1
    - Dst: tracker_response::peers4::reserve
      Src: /src/libtorrent/src/http_tracker_connection.cpp:608,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_tracker_connection.cpp:608,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:614,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/http_tracker_connection.cpp:615,1
    - Dst: tracker_response::peers4::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:616,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/http_tracker_connection.cpp:620,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/http_tracker_connection.cpp:622,1
    - Dst: tracker_response::peers::reserve
      Src: /src/libtorrent/src/http_tracker_connection.cpp:623,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_tracker_connection.cpp:623,1
    - Dst: libtorrent::extract_peer_info
      Src: /src/libtorrent/src/http_tracker_connection.cpp:628,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/http_tracker_connection.cpp:628,1
    - Dst: tracker_response::peers::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:630,1
    - Dst: tracker_response::peers::empty
      Src: /src/libtorrent/src/http_tracker_connection.cpp:634,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/src/http_tracker_connection.cpp:642,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:645,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:648,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:649,1
    - Dst: tracker_response::peers6::reserve
      Src: /src/libtorrent/src/http_tracker_connection.cpp:650,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_tracker_connection.cpp:650,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:656,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/http_tracker_connection.cpp:657,1
    - Dst: tracker_response::peers6::push_back
      Src: /src/libtorrent/src/http_tracker_connection.cpp:658,1
    - Dst: bdecode_node::clear
      Src: /src/libtorrent/src/http_tracker_connection.cpp:663,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/http_tracker_connection.cpp:674,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/http_tracker_connection.cpp:677,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:678,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:679,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/http_tracker_connection.cpp:680,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/http_tracker_connection.cpp:681,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 88
    argCount: 4
    argNames:
    - data
    - ' ec'
    - flags
    - ' scrape_ih'
    argTypes:
    - span<char const>
    - error_code
    - tracker_request_flags_t
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 685
    functionName: libtorrent::parse_tracker_response
    functionSourceFile: /src/libtorrent/src/http_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_v6_address
    - bdecode_node::string_length
    - libtorrent::aux::read_uint16
    - tracker_response::peers6::reserve
    - bdecode_node::string_ptr
    - bdecode_node::clear
    - bdecode_node::type
    - bdecode_node::list_size
    - libtorrent::to_string
    - tracker_response::peers4::push_back
    - std::size_t
    - tracker_response::peers::push_back
    - bdecode_node::dict_find_dict
    - libtorrent::aux::read_v4_address
    - tracker_response::peers6::push_back
    - bdecode_node::dict_find
    - bdecode_node::string_value
    - bdecode_node::list_at
    - i2p_peer_entry::destination::data
    - span<char const>::end
    - tracker_response::i2p_peers::push_back
    - bdecode_node::dict_find_string
    - tracker_response::peers4::reserve
    - std::memcpy
    - libtorrent::bdecode
    - tracker_response::peers::empty
    - span<char const>::begin
    - bdecode_node::dict_find_int_value
    - tracker_response::peers::reserve
    - libtorrent::extract_peer_info
    linkageType: ''
    returnType: tracker_response
    signature: "tracker_response parse_tracker_response(span<char const> const data,
      error_code& ec\n\t\t, tracker_request_flags_t const flags, sha1_hash const&
      scrape_ih)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:47,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:49,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:54,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/bitfield.cpp:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: libtorrent::bitfield::all_set
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::host_to_network
    - size
    linkageType: ''
    returnType: bool
    signature: bool bitfield::all_set() const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:68,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:68,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:71,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:72,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/bitfield.cpp:74,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bitfield.cpp:74,1
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lt::bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: bitfield::operator==(lt::bitfield const& rhs) const
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - buf
    - std::memcmp
    - num_words
    - std::size_t
    - size
    linkageType: ''
    returnType: bool
    signature: bool bitfield::operator==(lt::bitfield const& rhs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:80,1
    - Dst: _mm_popcnt_u32
      Src: /src/libtorrent/src/bitfield.cpp:93,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:97,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:120,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:121,1
    - Dst: __builtin_popcountl
      Src: /src/libtorrent/src/bitfield.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:143,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:147,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 150
    functionName: libtorrent::bitfield::count
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - num_words
    - TORRENT_ASSERT
    - __builtin_popcountl
    - size
    - _mm_popcnt_u32
    linkageType: ''
    returnType: int
    signature: int bitfield::count() const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:154,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:156,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:157,1
    - Dst: libtorrent::bitfield::resize
      Src: /src/libtorrent/src/bitfield.cpp:158,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:159,1
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:161,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:164,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/bitfield.cpp:164,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bitfield.cpp:166,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:166,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/bitfield.cpp:167,1
    - Dst: clear_trailing_bits
      Src: /src/libtorrent/src/bitfield.cpp:168,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bitfield.cpp:173,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:173,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/bitfield.cpp:174,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:176,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - bits
    - val
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 177
    functionName: libtorrent::bitfield::resize
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 1
    functionsReached:
    - buf
    - libtorrent::bitfield::resize
    - num_words
    - static_cast<std::size_t>
    - clear_trailing_bits
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::memset
    - size
    linkageType: ''
    returnType: void
    signature: void bitfield::resize(int const bits, bool const val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:181,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:183,1
    - Dst: reset
      Src: /src/libtorrent/src/bitfield.cpp:186,1
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:190,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bitfield.cpp:193,1
    - Dst: std::uint32_t::uint32_t
      Src: /src/libtorrent/src/bitfield.cpp:193,1
    - Dst: std::terminate
      Src: /src/libtorrent/src/bitfield.cpp:195,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bitfield.cpp:197,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bitfield.cpp:198,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:198,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bitfield.cpp:199,1
    - Dst: std::min
      Src: /src/libtorrent/src/bitfield.cpp:199,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bitfield.cpp:202,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bitfield.cpp:203,1
    - Dst: std::move
      Src: /src/libtorrent/src/bitfield.cpp:205,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bitfield.cpp:209,1
    - Dst: clear_trailing_bits
      Src: /src/libtorrent/src/bitfield.cpp:212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:213,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 214
    functionName: libtorrent::bitfield::resize
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 1
    functionsReached:
    - reset
    - std::memcpy
    - buf
    - aux::numeric_cast<std::size_t>
    - std::move
    - aux::numeric_cast<std::uint32_t>
    - num_words
    - std::uint32_t::uint32_t
    - clear_trailing_bits
    - TORRENT_ASSERT
    - std::min
    - std::size_t
    - std::memset
    - std::terminate
    - size
    linkageType: ''
    returnType: void
    signature: void bitfield::resize(int const bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:218,1
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/src/bitfield.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: libtorrent::bitfield::find_first_set
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - num_words
    - libtorrent::aux::count_leading_zeros
    linkageType: ''
    returnType: int
    signature: int bitfield::find_first_set() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:226,1
    - Dst: libtorrent::bitfield::size
      Src: /src/libtorrent/src/bitfield.cpp:228,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/bitfield.cpp:230,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/src/bitfield.cpp:231,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/src/bitfield.cpp:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: libtorrent::bitfield::find_last_clear
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::host_to_network
    - libtorrent::bitfield::size
    - num_words
    - libtorrent::aux::count_trailing_ones
    linkageType: ''
    returnType: int
    signature: int bitfield::find_last_clear() const noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:47,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:49,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:54,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/bitfield.cpp:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: libtorrent::bitfield::all_set
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::host_to_network
    - size
    linkageType: ''
    returnType: bool
    signature: bool bitfield::all_set() const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:68,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:68,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:71,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:72,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/bitfield.cpp:74,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bitfield.cpp:74,1
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - lt::bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: bitfield::operator==(lt::bitfield const& rhs) const
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - buf
    - std::memcmp
    - num_words
    - std::size_t
    - size
    linkageType: ''
    returnType: bool
    signature: bool bitfield::operator==(lt::bitfield const& rhs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:80,1
    - Dst: _mm_popcnt_u32
      Src: /src/libtorrent/src/bitfield.cpp:93,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:97,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:120,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:121,1
    - Dst: __builtin_popcountl
      Src: /src/libtorrent/src/bitfield.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:143,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:147,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 150
    functionName: libtorrent::bitfield::count
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - num_words
    - TORRENT_ASSERT
    - __builtin_popcountl
    - size
    - _mm_popcnt_u32
    linkageType: ''
    returnType: int
    signature: int bitfield::count() const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:154,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:156,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:157,1
    - Dst: libtorrent::bitfield::resize
      Src: /src/libtorrent/src/bitfield.cpp:158,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:159,1
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:161,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:164,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/bitfield.cpp:164,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bitfield.cpp:166,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:166,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/bitfield.cpp:167,1
    - Dst: clear_trailing_bits
      Src: /src/libtorrent/src/bitfield.cpp:168,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bitfield.cpp:173,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:173,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/bitfield.cpp:174,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:176,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - bits
    - val
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 177
    functionName: libtorrent::bitfield::resize
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 2
    functionsReached:
    - buf
    - libtorrent::bitfield::resize
    - num_words
    - static_cast<std::size_t>
    - clear_trailing_bits
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - std::memset
    - size
    linkageType: ''
    returnType: void
    signature: void bitfield::resize(int const bits, bool const val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:181,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:183,1
    - Dst: reset
      Src: /src/libtorrent/src/bitfield.cpp:186,1
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:190,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bitfield.cpp:193,1
    - Dst: std::uint32_t::uint32_t
      Src: /src/libtorrent/src/bitfield.cpp:193,1
    - Dst: std::terminate
      Src: /src/libtorrent/src/bitfield.cpp:195,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bitfield.cpp:197,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/bitfield.cpp:198,1
    - Dst: buf
      Src: /src/libtorrent/src/bitfield.cpp:198,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bitfield.cpp:199,1
    - Dst: std::min
      Src: /src/libtorrent/src/bitfield.cpp:199,1
    - Dst: std::memset
      Src: /src/libtorrent/src/bitfield.cpp:202,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bitfield.cpp:203,1
    - Dst: std::move
      Src: /src/libtorrent/src/bitfield.cpp:205,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bitfield.cpp:209,1
    - Dst: clear_trailing_bits
      Src: /src/libtorrent/src/bitfield.cpp:212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bitfield.cpp:213,1
    - Dst: size
      Src: /src/libtorrent/src/bitfield.cpp:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 214
    functionName: libtorrent::bitfield::resize
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 2
    functionsReached:
    - reset
    - std::memcpy
    - buf
    - aux::numeric_cast<std::size_t>
    - std::move
    - aux::numeric_cast<std::uint32_t>
    - num_words
    - std::uint32_t::uint32_t
    - clear_trailing_bits
    - TORRENT_ASSERT
    - std::min
    - std::size_t
    - std::memset
    - std::terminate
    - size
    linkageType: ''
    returnType: void
    signature: void bitfield::resize(int const bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:218,1
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/src/bitfield.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: libtorrent::bitfield::find_first_set
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - num_words
    - libtorrent::aux::count_leading_zeros
    linkageType: ''
    returnType: int
    signature: int bitfield::find_first_set() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_words
      Src: /src/libtorrent/src/bitfield.cpp:226,1
    - Dst: libtorrent::bitfield::size
      Src: /src/libtorrent/src/bitfield.cpp:228,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/src/bitfield.cpp:230,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/src/bitfield.cpp:231,1
    - Dst: libtorrent::aux::count_trailing_ones
      Src: /src/libtorrent/src/bitfield.cpp:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: libtorrent::bitfield::find_last_clear
    functionSourceFile: /src/libtorrent/src/bitfield.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::host_to_network
    - libtorrent::bitfield::size
    - num_words
    - libtorrent::aux::count_trailing_ones
    linkageType: ''
    returnType: int
    signature: int bitfield::find_last_clear() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:92,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/copy_file.cpp:93,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - file
    - offset
    - file_size
    - ' ec'
    argTypes:
    - HANDLE
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::next_allocated_region
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - static_cast<void*>
    - assign
    - ::GetLastError
    - DeviceIoControl
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: "std::pair<std::int64_t, std::int64_t> next_allocated_region(HANDLE
      file\n\t, std::int64_t const offset\n\t, std::int64_t file_size\n\t, error_code&
      ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:128,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: WriteFile
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - in_handle
    - out_handle
    - in_offset
    - len
    - ' se'
    argTypes:
    - HANDLE
    - HANDLE
    - std::int64_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ReadFile
    - std::min
    - std::int64_t
    - DWORD
    - ::GetLastError
    - ec::assign
    - WriteFile
    linkageType: ''
    returnType: void
    signature: "void copy_range(HANDLE const in_handle, HANDLE const out_handle\n\t,
      std::int64_t in_offset, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:92,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/copy_file.cpp:93,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - file
    - offset
    - file_size
    - ' ec'
    argTypes:
    - HANDLE
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::next_allocated_region
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - static_cast<void*>
    - assign
    - ::GetLastError
    - DeviceIoControl
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: "std::pair<std::int64_t, std::int64_t> next_allocated_region(HANDLE
      file\n\t, std::int64_t const offset\n\t, std::int64_t file_size\n\t, error_code&
      ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:128,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: WriteFile
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - in_handle
    - out_handle
    - in_offset
    - len
    - ' se'
    argTypes:
    - HANDLE
    - HANDLE
    - std::int64_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ReadFile
    - std::min
    - std::int64_t
    - DWORD
    - ::GetLastError
    - ec::assign
    - WriteFile
    linkageType: ''
    returnType: void
    signature: "void copy_range(HANDLE const in_handle, HANDLE const out_handle\n\t,
      std::int64_t in_offset, std::int64_t len, storage_error& se)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/copy_file.cpp:163,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:164,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:165,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/copy_file.cpp:168,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:168,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: CopyFileW
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:186,1
    - Dst: ::CreateFile2
      Src: /src/libtorrent/src/copy_file.cpp:190,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:190,1
    - Dst: ::CreateFileW
      Src: /src/libtorrent/src/copy_file.cpp:196,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:196,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:204,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: ::CreateFile2
      Src: /src/libtorrent/src/copy_file.cpp:212,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:212,1
    - Dst: ::CreateFileW
      Src: /src/libtorrent/src/copy_file.cpp:218,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:218,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:226,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:234,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:234,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: libtorrent::aux::next_allocated_region
      Src: /src/libtorrent/src/copy_file.cpp:245,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:245,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 259
    functionName: libtorrent::aux::copy_file
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - ::CreateFileW
    - libtorrent::aux::next_allocated_region
    - GetFileAttributesExW
    - CopyFileW
    - ::CreateFile2
    - aux::win_file_handle::handle
    - ::DeviceIoControl
    - libtorrent::aux::copy_range
    - std::int64_t
    - ec::clear
    - convert_to_native_path_string
    - GetLastError
    - ec::assign
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void copy_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/copy_file.cpp:278,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: ::pwrite
      Src: /src/libtorrent/src/copy_file.cpp:291,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:292,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: libtorrent::aux::copy_range_fallback
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ::pread
    - ::pwrite
    - std::min
    - std::int64_t
    - std::size_t
    - ec::assign
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range_fallback(int const fd_in, int const fd_out, off_t
      in_offset\n\t, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:313,1
    - Dst: ::copy_file_range
      Src: /src/libtorrent/src/copy_file.cpp:320,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:321,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:328,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/copy_file.cpp:340,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - m
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - copy_range_mode*
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 1
    functionsReached:
    - system_category
    - libtorrent::aux::copy_range_fallback
    - std::size_t
    - ::copy_file_range
    - ec::assign
    - TORRENT_UNUSED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range(int const fd_in, int const fd_out, off_t in_offset\n\t,
      std::int64_t len, copy_range_mode* const m, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/copy_file.cpp:278,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: ::pwrite
      Src: /src/libtorrent/src/copy_file.cpp:291,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:292,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: libtorrent::aux::copy_range_fallback
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 1
    functionsReached:
    - system_category
    - ::pread
    - ::pwrite
    - std::min
    - std::int64_t
    - std::size_t
    - ec::assign
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range_fallback(int const fd_in, int const fd_out, off_t
      in_offset\n\t, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:313,1
    - Dst: ::copy_file_range
      Src: /src/libtorrent/src/copy_file.cpp:320,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:321,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:328,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/copy_file.cpp:340,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - m
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - copy_range_mode*
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 1
    functionsReached:
    - system_category
    - libtorrent::aux::copy_range_fallback
    - std::size_t
    - ::copy_file_range
    - ec::assign
    - TORRENT_UNUSED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range(int const fd_in, int const fd_out, off_t in_offset\n\t,
      std::int64_t len, copy_range_mode* const m, storage_error& se)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/copy_file.cpp:349,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:350,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:351,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/copy_file.cpp:357,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:357,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:358,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:361,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:361,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/copy_file.cpp:366,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:366,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:369,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:369,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:373,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/copy_file.cpp:382,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:382,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:383,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:386,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:386,1
    - Dst: copyfile_state_alloc
      Src: /src/libtorrent/src/copy_file.cpp:396,1
    - Dst: fcopyfile
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:400,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:400,1
    - Dst: copyfile_state_free
      Src: /src/libtorrent/src/copy_file.cpp:402,1
    - Dst: ::ftruncate
      Src: /src/libtorrent/src/copy_file.cpp:407,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:407,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:410,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:410,1
    - Dst: ::lseek
      Src: /src/libtorrent/src/copy_file.cpp:423,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:423,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:424,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:435,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:435,1
    - Dst: ::lseek
      Src: /src/libtorrent/src/copy_file.cpp:439,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:439,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:440,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:445,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:445,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::copy_file
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - off_t
    - fcopyfile
    - copyfile_state_free
    - ::lseek
    - libtorrent::aux::copy_range
    - ec::clear
    - libtorrent::broadcast_socket::open
    - convert_to_native_path_string
    - aux::file_descriptor::fd
    - ::fstat
    - copyfile_state_alloc
    - ec::assign
    - ::ftruncate
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void copy_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:92,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/copy_file.cpp:93,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - file
    - offset
    - file_size
    - ' ec'
    argTypes:
    - HANDLE
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::next_allocated_region
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 1
    functionsReached:
    - system_category
    - static_cast<void*>
    - assign
    - ::GetLastError
    - DeviceIoControl
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: "std::pair<std::int64_t, std::int64_t> next_allocated_region(HANDLE
      file\n\t, std::int64_t const offset\n\t, std::int64_t file_size\n\t, error_code&
      ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:128,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: WriteFile
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - in_handle
    - out_handle
    - in_offset
    - len
    - ' se'
    argTypes:
    - HANDLE
    - HANDLE
    - std::int64_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - ReadFile
    - std::min
    - std::int64_t
    - DWORD
    - ::GetLastError
    - ec::assign
    - WriteFile
    linkageType: ''
    returnType: void
    signature: "void copy_range(HANDLE const in_handle, HANDLE const out_handle\n\t,
      std::int64_t in_offset, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:92,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/copy_file.cpp:93,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - file
    - offset
    - file_size
    - ' ec'
    argTypes:
    - HANDLE
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::next_allocated_region
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 1
    functionsReached:
    - system_category
    - static_cast<void*>
    - assign
    - ::GetLastError
    - DeviceIoControl
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: "std::pair<std::int64_t, std::int64_t> next_allocated_region(HANDLE
      file\n\t, std::int64_t const offset\n\t, std::int64_t file_size\n\t, error_code&
      ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:128,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: WriteFile
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - in_handle
    - out_handle
    - in_offset
    - len
    - ' se'
    argTypes:
    - HANDLE
    - HANDLE
    - std::int64_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - ReadFile
    - std::min
    - std::int64_t
    - DWORD
    - ::GetLastError
    - ec::assign
    - WriteFile
    linkageType: ''
    returnType: void
    signature: "void copy_range(HANDLE const in_handle, HANDLE const out_handle\n\t,
      std::int64_t in_offset, std::int64_t len, storage_error& se)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/copy_file.cpp:163,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:164,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:165,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/copy_file.cpp:168,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:168,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: CopyFileW
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:186,1
    - Dst: ::CreateFile2
      Src: /src/libtorrent/src/copy_file.cpp:190,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:190,1
    - Dst: ::CreateFileW
      Src: /src/libtorrent/src/copy_file.cpp:196,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:196,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:204,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: ::CreateFile2
      Src: /src/libtorrent/src/copy_file.cpp:212,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:212,1
    - Dst: ::CreateFileW
      Src: /src/libtorrent/src/copy_file.cpp:218,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:218,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:226,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:234,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:234,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: libtorrent::aux::next_allocated_region
      Src: /src/libtorrent/src/copy_file.cpp:245,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:245,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 259
    functionName: libtorrent::aux::copy_file
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - ::CreateFileW
    - libtorrent::aux::next_allocated_region
    - GetFileAttributesExW
    - CopyFileW
    - ::CreateFile2
    - aux::win_file_handle::handle
    - ::DeviceIoControl
    - libtorrent::aux::copy_range
    - std::int64_t
    - ec::clear
    - convert_to_native_path_string
    - GetLastError
    - ec::assign
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void copy_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/copy_file.cpp:278,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: ::pwrite
      Src: /src/libtorrent/src/copy_file.cpp:291,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:292,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: libtorrent::aux::copy_range_fallback
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - ::pread
    - ::pwrite
    - std::min
    - std::int64_t
    - std::size_t
    - ec::assign
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range_fallback(int const fd_in, int const fd_out, off_t
      in_offset\n\t, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:313,1
    - Dst: ::copy_file_range
      Src: /src/libtorrent/src/copy_file.cpp:320,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:321,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:328,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/copy_file.cpp:340,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - m
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - copy_range_mode*
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 3
    functionsReached:
    - system_category
    - libtorrent::aux::copy_range_fallback
    - std::size_t
    - ::copy_file_range
    - ec::assign
    - TORRENT_UNUSED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range(int const fd_in, int const fd_out, off_t in_offset\n\t,
      std::int64_t len, copy_range_mode* const m, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/copy_file.cpp:278,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: ::pwrite
      Src: /src/libtorrent/src/copy_file.cpp:291,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:292,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: libtorrent::aux::copy_range_fallback
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 3
    functionsReached:
    - system_category
    - ::pread
    - ::pwrite
    - std::min
    - std::int64_t
    - std::size_t
    - ec::assign
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range_fallback(int const fd_in, int const fd_out, off_t
      in_offset\n\t, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:313,1
    - Dst: ::copy_file_range
      Src: /src/libtorrent/src/copy_file.cpp:320,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:321,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:328,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/copy_file.cpp:340,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - m
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - copy_range_mode*
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 3
    functionsReached:
    - system_category
    - libtorrent::aux::copy_range_fallback
    - std::size_t
    - ::copy_file_range
    - ec::assign
    - TORRENT_UNUSED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range(int const fd_in, int const fd_out, off_t in_offset\n\t,
      std::int64_t len, copy_range_mode* const m, storage_error& se)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/copy_file.cpp:349,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:350,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:351,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/copy_file.cpp:357,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:357,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:358,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:361,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:361,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/copy_file.cpp:366,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:366,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:369,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:369,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:373,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/copy_file.cpp:382,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:382,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:383,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:386,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:386,1
    - Dst: copyfile_state_alloc
      Src: /src/libtorrent/src/copy_file.cpp:396,1
    - Dst: fcopyfile
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:400,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:400,1
    - Dst: copyfile_state_free
      Src: /src/libtorrent/src/copy_file.cpp:402,1
    - Dst: ::ftruncate
      Src: /src/libtorrent/src/copy_file.cpp:407,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:407,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:410,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:410,1
    - Dst: ::lseek
      Src: /src/libtorrent/src/copy_file.cpp:423,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:423,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:424,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:435,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:435,1
    - Dst: ::lseek
      Src: /src/libtorrent/src/copy_file.cpp:439,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:439,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:440,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:445,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:445,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::copy_file
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - off_t
    - fcopyfile
    - copyfile_state_free
    - ::lseek
    - libtorrent::aux::copy_range
    - ec::clear
    - libtorrent::broadcast_socket::open
    - convert_to_native_path_string
    - aux::file_descriptor::fd
    - ::fstat
    - copyfile_state_alloc
    - ec::assign
    - ::ftruncate
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void copy_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:92,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/copy_file.cpp:93,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - file
    - offset
    - file_size
    - ' ec'
    argTypes:
    - HANDLE
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::next_allocated_region
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - static_cast<void*>
    - assign
    - ::GetLastError
    - DeviceIoControl
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: "std::pair<std::int64_t, std::int64_t> next_allocated_region(HANDLE
      file\n\t, std::int64_t const offset\n\t, std::int64_t file_size\n\t, error_code&
      ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:128,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: WriteFile
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - in_handle
    - out_handle
    - in_offset
    - len
    - ' se'
    argTypes:
    - HANDLE
    - HANDLE
    - std::int64_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - ReadFile
    - std::min
    - std::int64_t
    - DWORD
    - ::GetLastError
    - ec::assign
    - WriteFile
    linkageType: ''
    returnType: void
    signature: "void copy_range(HANDLE const in_handle, HANDLE const out_handle\n\t,
      std::int64_t in_offset, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:92,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/copy_file.cpp:93,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - file
    - offset
    - file_size
    - ' ec'
    argTypes:
    - HANDLE
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::next_allocated_region
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - static_cast<void*>
    - assign
    - ::GetLastError
    - DeviceIoControl
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: "std::pair<std::int64_t, std::int64_t> next_allocated_region(HANDLE
      file\n\t, std::int64_t const offset\n\t, std::int64_t file_size\n\t, error_code&
      ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:128,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: WriteFile
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - in_handle
    - out_handle
    - in_offset
    - len
    - ' se'
    argTypes:
    - HANDLE
    - HANDLE
    - std::int64_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - ReadFile
    - std::min
    - std::int64_t
    - DWORD
    - ::GetLastError
    - ec::assign
    - WriteFile
    linkageType: ''
    returnType: void
    signature: "void copy_range(HANDLE const in_handle, HANDLE const out_handle\n\t,
      std::int64_t in_offset, std::int64_t len, storage_error& se)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/copy_file.cpp:163,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:164,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:165,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/copy_file.cpp:168,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:168,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: CopyFileW
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:186,1
    - Dst: ::CreateFile2
      Src: /src/libtorrent/src/copy_file.cpp:190,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:190,1
    - Dst: ::CreateFileW
      Src: /src/libtorrent/src/copy_file.cpp:196,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:196,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:204,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: ::CreateFile2
      Src: /src/libtorrent/src/copy_file.cpp:212,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:212,1
    - Dst: ::CreateFileW
      Src: /src/libtorrent/src/copy_file.cpp:218,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:218,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:226,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:234,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:234,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: libtorrent::aux::next_allocated_region
      Src: /src/libtorrent/src/copy_file.cpp:245,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:245,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 259
    functionName: libtorrent::aux::copy_file
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - ::CreateFileW
    - libtorrent::aux::next_allocated_region
    - GetFileAttributesExW
    - CopyFileW
    - ::CreateFile2
    - aux::win_file_handle::handle
    - ::DeviceIoControl
    - libtorrent::aux::copy_range
    - std::int64_t
    - ec::clear
    - convert_to_native_path_string
    - GetLastError
    - ec::assign
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void copy_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/copy_file.cpp:278,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: ::pwrite
      Src: /src/libtorrent/src/copy_file.cpp:291,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:292,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: libtorrent::aux::copy_range_fallback
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - ::pread
    - ::pwrite
    - std::min
    - std::int64_t
    - std::size_t
    - ec::assign
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range_fallback(int const fd_in, int const fd_out, off_t
      in_offset\n\t, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:313,1
    - Dst: ::copy_file_range
      Src: /src/libtorrent/src/copy_file.cpp:320,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:321,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:328,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/copy_file.cpp:340,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - m
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - copy_range_mode*
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - libtorrent::aux::copy_range_fallback
    - std::size_t
    - ::copy_file_range
    - ec::assign
    - TORRENT_UNUSED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range(int const fd_in, int const fd_out, off_t in_offset\n\t,
      std::int64_t len, copy_range_mode* const m, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/copy_file.cpp:278,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: ::pwrite
      Src: /src/libtorrent/src/copy_file.cpp:291,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:292,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: libtorrent::aux::copy_range_fallback
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - ::pread
    - ::pwrite
    - std::min
    - std::int64_t
    - std::size_t
    - ec::assign
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range_fallback(int const fd_in, int const fd_out, off_t
      in_offset\n\t, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:313,1
    - Dst: ::copy_file_range
      Src: /src/libtorrent/src/copy_file.cpp:320,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:321,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:328,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/copy_file.cpp:340,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - m
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - copy_range_mode*
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - libtorrent::aux::copy_range_fallback
    - std::size_t
    - ::copy_file_range
    - ec::assign
    - TORRENT_UNUSED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range(int const fd_in, int const fd_out, off_t in_offset\n\t,
      std::int64_t len, copy_range_mode* const m, storage_error& se)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/copy_file.cpp:349,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:350,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:351,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/copy_file.cpp:357,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:357,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:358,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:361,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:361,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/copy_file.cpp:366,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:366,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:369,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:369,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:373,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/copy_file.cpp:382,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:382,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:383,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:386,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:386,1
    - Dst: copyfile_state_alloc
      Src: /src/libtorrent/src/copy_file.cpp:396,1
    - Dst: fcopyfile
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:400,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:400,1
    - Dst: copyfile_state_free
      Src: /src/libtorrent/src/copy_file.cpp:402,1
    - Dst: ::ftruncate
      Src: /src/libtorrent/src/copy_file.cpp:407,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:407,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:410,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:410,1
    - Dst: ::lseek
      Src: /src/libtorrent/src/copy_file.cpp:423,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:423,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:424,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:435,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:435,1
    - Dst: ::lseek
      Src: /src/libtorrent/src/copy_file.cpp:439,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:439,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:440,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:445,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:445,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::copy_file
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - off_t
    - fcopyfile
    - copyfile_state_free
    - ::lseek
    - libtorrent::aux::copy_range
    - ec::clear
    - libtorrent::broadcast_socket::open
    - convert_to_native_path_string
    - aux::file_descriptor::fd
    - ::fstat
    - copyfile_state_alloc
    - ec::assign
    - ::ftruncate
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void copy_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:92,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/copy_file.cpp:93,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - file
    - offset
    - file_size
    - ' ec'
    argTypes:
    - HANDLE
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::next_allocated_region
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 3
    functionsReached:
    - system_category
    - static_cast<void*>
    - assign
    - ::GetLastError
    - DeviceIoControl
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: "std::pair<std::int64_t, std::int64_t> next_allocated_region(HANDLE
      file\n\t, std::int64_t const offset\n\t, std::int64_t file_size\n\t, error_code&
      ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:128,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: WriteFile
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - in_handle
    - out_handle
    - in_offset
    - len
    - ' se'
    argTypes:
    - HANDLE
    - HANDLE
    - std::int64_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 6
    functionsReached:
    - system_category
    - ReadFile
    - std::min
    - std::int64_t
    - DWORD
    - ::GetLastError
    - ec::assign
    - WriteFile
    linkageType: ''
    returnType: void
    signature: "void copy_range(HANDLE const in_handle, HANDLE const out_handle\n\t,
      std::int64_t in_offset, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:92,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/copy_file.cpp:93,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - file
    - offset
    - file_size
    - ' ec'
    argTypes:
    - HANDLE
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::next_allocated_region
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 3
    functionsReached:
    - system_category
    - static_cast<void*>
    - assign
    - ::GetLastError
    - DeviceIoControl
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: "std::pair<std::int64_t, std::int64_t> next_allocated_region(HANDLE
      file\n\t, std::int64_t const offset\n\t, std::int64_t file_size\n\t, error_code&
      ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:125,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:128,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:132,1
    - Dst: WriteFile
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: DWORD
      Src: /src/libtorrent/src/copy_file.cpp:144,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - in_handle
    - out_handle
    - in_offset
    - len
    - ' se'
    argTypes:
    - HANDLE
    - HANDLE
    - std::int64_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 6
    functionsReached:
    - system_category
    - ReadFile
    - std::min
    - std::int64_t
    - DWORD
    - ::GetLastError
    - ec::assign
    - WriteFile
    linkageType: ''
    returnType: void
    signature: "void copy_range(HANDLE const in_handle, HANDLE const out_handle\n\t,
      std::int64_t in_offset, std::int64_t len, storage_error& se)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/copy_file.cpp:163,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:164,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:165,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/copy_file.cpp:168,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:168,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:170,1
    - Dst: CopyFileW
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:178,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:181,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:186,1
    - Dst: ::CreateFile2
      Src: /src/libtorrent/src/copy_file.cpp:190,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:190,1
    - Dst: ::CreateFileW
      Src: /src/libtorrent/src/copy_file.cpp:196,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:196,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:204,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:207,1
    - Dst: ::CreateFile2
      Src: /src/libtorrent/src/copy_file.cpp:212,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:212,1
    - Dst: ::CreateFileW
      Src: /src/libtorrent/src/copy_file.cpp:218,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:218,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:226,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:229,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/copy_file.cpp:234,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:234,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:238,1
    - Dst: libtorrent::aux::next_allocated_region
      Src: /src/libtorrent/src/copy_file.cpp:245,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:245,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    - Dst: aux::win_file_handle::handle
      Src: /src/libtorrent/src/copy_file.cpp:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 259
    functionName: libtorrent::aux::copy_file
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - ::CreateFileW
    - libtorrent::aux::next_allocated_region
    - GetFileAttributesExW
    - CopyFileW
    - ::CreateFile2
    - aux::win_file_handle::handle
    - ::DeviceIoControl
    - libtorrent::aux::copy_range
    - std::int64_t
    - ec::clear
    - convert_to_native_path_string
    - GetLastError
    - ec::assign
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void copy_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/copy_file.cpp:278,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: ::pwrite
      Src: /src/libtorrent/src/copy_file.cpp:291,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:292,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: libtorrent::aux::copy_range_fallback
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 6
    functionsReached:
    - system_category
    - ::pread
    - ::pwrite
    - std::min
    - std::int64_t
    - std::size_t
    - ec::assign
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range_fallback(int const fd_in, int const fd_out, off_t
      in_offset\n\t, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:313,1
    - Dst: ::copy_file_range
      Src: /src/libtorrent/src/copy_file.cpp:320,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:321,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:328,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/copy_file.cpp:340,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - m
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - copy_range_mode*
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 7
    functionsReached:
    - system_category
    - libtorrent::aux::copy_range_fallback
    - std::size_t
    - ::copy_file_range
    - ec::assign
    - TORRENT_UNUSED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range(int const fd_in, int const fd_out, off_t in_offset\n\t,
      std::int64_t len, copy_range_mode* const m, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/copy_file.cpp:278,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::min
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/copy_file.cpp:279,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:284,1
    - Dst: ::pwrite
      Src: /src/libtorrent/src/copy_file.cpp:291,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:292,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: libtorrent::aux::copy_range_fallback
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 7
    functionsReached:
    - system_category
    - ::pread
    - ::pwrite
    - std::min
    - std::int64_t
    - std::size_t
    - ec::assign
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range_fallback(int const fd_in, int const fd_out, off_t
      in_offset\n\t, std::int64_t len, storage_error& se)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:313,1
    - Dst: ::copy_file_range
      Src: /src/libtorrent/src/copy_file.cpp:320,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/copy_file.cpp:321,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:328,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:331,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/copy_file.cpp:340,1
    - Dst: libtorrent::aux::copy_range_fallback
      Src: /src/libtorrent/src/copy_file.cpp:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - fd_in
    - fd_out
    - in_offset
    - len
    - m
    - ' se'
    argTypes:
    - int
    - int
    - off_t
    - std::int64_t
    - copy_range_mode*
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: libtorrent::aux::copy_range
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 7
    functionsReached:
    - system_category
    - libtorrent::aux::copy_range_fallback
    - std::size_t
    - ::copy_file_range
    - ec::assign
    - TORRENT_UNUSED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t copy_range(int const fd_in, int const fd_out, off_t in_offset\n\t,
      std::int64_t len, copy_range_mode* const m, storage_error& se)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/copy_file.cpp:349,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:350,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/copy_file.cpp:351,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/copy_file.cpp:357,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:357,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:358,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:361,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:361,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/copy_file.cpp:366,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:366,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:369,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:369,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:373,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/copy_file.cpp:382,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/copy_file.cpp:382,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:383,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:386,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:386,1
    - Dst: copyfile_state_alloc
      Src: /src/libtorrent/src/copy_file.cpp:396,1
    - Dst: fcopyfile
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:397,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:400,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:400,1
    - Dst: copyfile_state_free
      Src: /src/libtorrent/src/copy_file.cpp:402,1
    - Dst: ::ftruncate
      Src: /src/libtorrent/src/copy_file.cpp:407,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:407,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:410,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:410,1
    - Dst: ::lseek
      Src: /src/libtorrent/src/copy_file.cpp:423,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:423,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:424,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:435,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:435,1
    - Dst: ::lseek
      Src: /src/libtorrent/src/copy_file.cpp:439,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:439,1
    - Dst: off_t
      Src: /src/libtorrent/src/copy_file.cpp:440,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/copy_file.cpp:445,1
    - Dst: system_category
      Src: /src/libtorrent/src/copy_file.cpp:445,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:449,1
    - Dst: libtorrent::aux::copy_range
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    - Dst: aux::file_descriptor::fd
      Src: /src/libtorrent/src/copy_file.cpp:457,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::copy_file
    functionSourceFile: /src/libtorrent/src/copy_file.cpp
    functionUses: 5
    functionsReached:
    - system_category
    - off_t
    - fcopyfile
    - copyfile_state_free
    - ::lseek
    - libtorrent::aux::copy_range
    - ec::clear
    - libtorrent::broadcast_socket::open
    - convert_to_native_path_string
    - aux::file_descriptor::fd
    - ::fstat
    - copyfile_state_alloc
    - ec::assign
    - ::ftruncate
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void copy_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/packet_buffer.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::packet_buffer::check_invariant
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void packet_buffer::check_invariant() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:60,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/packet_buffer.cpp:62,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/src/packet_buffer.cpp:64,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:68,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:84,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:90,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:97,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:100,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:109,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:112,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:119,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - idx
    - value
    argTypes:
    - index_type
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::packet_buffer::insert
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_ASSERT_VAL
    - libtorrent::aux::packet_buffer::remove
    - compare_less_wrap
    - TORRENT_ASSERT
    - libtorrent::aux::packet_buffer::reserve
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr packet_buffer::insert(index_type idx, packet_ptr value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:129,1
    - Dst: get
      Src: /src/libtorrent/src/packet_buffer.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::packet_buffer::at
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - compare_less_wrap
    - get
    linkageType: ''
    returnType: packet
    signature: packet * packet_buffer::at(index_type idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:139,1
    - Dst: packet_ptr::packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:145,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:148,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: libtorrent::aux::packet_buffer::reserve
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT_VAL
    - packet_ptr::packet_ptr
    - std::move
    linkageType: ''
    returnType: void
    signature: void packet_buffer::reserve(std::uint32_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:159,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:161,1
    - Dst: packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:162,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:165,1
    - Dst: reset
      Src: /src/libtorrent/src/packet_buffer.cpp:166,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:191,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 193
    functionName: libtorrent::aux::packet_buffer::remove
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 4
    functionsReached:
    - reset
    - packet_ptr
    - std::move
    - TORRENT_ASSERT_VAL
    - compare_less_wrap
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr packet_buffer::remove(index_type idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/packet_buffer.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::packet_buffer::check_invariant
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void packet_buffer::check_invariant() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:60,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/packet_buffer.cpp:62,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/src/packet_buffer.cpp:64,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:68,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:84,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:90,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:97,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:100,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:109,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:112,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:119,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - idx
    - value
    argTypes:
    - index_type
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::packet_buffer::insert
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_ASSERT_VAL
    - libtorrent::aux::packet_buffer::remove
    - compare_less_wrap
    - TORRENT_ASSERT
    - libtorrent::aux::packet_buffer::reserve
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr packet_buffer::insert(index_type idx, packet_ptr value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:129,1
    - Dst: get
      Src: /src/libtorrent/src/packet_buffer.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::packet_buffer::at
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - compare_less_wrap
    - get
    linkageType: ''
    returnType: packet
    signature: packet * packet_buffer::at(index_type idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:139,1
    - Dst: packet_ptr::packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:145,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:148,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: libtorrent::aux::packet_buffer::reserve
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT_VAL
    - packet_ptr::packet_ptr
    - std::move
    linkageType: ''
    returnType: void
    signature: void packet_buffer::reserve(std::uint32_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:159,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:161,1
    - Dst: packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:162,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:165,1
    - Dst: reset
      Src: /src/libtorrent/src/packet_buffer.cpp:166,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:191,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 193
    functionName: libtorrent::aux::packet_buffer::remove
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 5
    functionsReached:
    - reset
    - packet_ptr
    - std::move
    - TORRENT_ASSERT_VAL
    - compare_less_wrap
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr packet_buffer::remove(index_type idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/packet_buffer.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::packet_buffer::check_invariant
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void packet_buffer::check_invariant() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:60,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/packet_buffer.cpp:62,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/src/packet_buffer.cpp:64,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:68,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:84,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:90,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:97,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:100,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:109,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:112,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:119,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - idx
    - value
    argTypes:
    - index_type
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::packet_buffer::insert
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_ASSERT_VAL
    - libtorrent::aux::packet_buffer::remove
    - compare_less_wrap
    - TORRENT_ASSERT
    - libtorrent::aux::packet_buffer::reserve
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr packet_buffer::insert(index_type idx, packet_ptr value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:129,1
    - Dst: get
      Src: /src/libtorrent/src/packet_buffer.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::packet_buffer::at
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - compare_less_wrap
    - get
    linkageType: ''
    returnType: packet
    signature: packet * packet_buffer::at(index_type idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:139,1
    - Dst: packet_ptr::packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:145,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:148,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: libtorrent::aux::packet_buffer::reserve
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT_VAL
    - packet_ptr::packet_ptr
    - std::move
    linkageType: ''
    returnType: void
    signature: void packet_buffer::reserve(std::uint32_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:159,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:161,1
    - Dst: packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:162,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:165,1
    - Dst: reset
      Src: /src/libtorrent/src/packet_buffer.cpp:166,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:191,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 193
    functionName: libtorrent::aux::packet_buffer::remove
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 6
    functionsReached:
    - reset
    - packet_ptr
    - std::move
    - TORRENT_ASSERT_VAL
    - compare_less_wrap
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr packet_buffer::remove(index_type idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/packet_buffer.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::packet_buffer::check_invariant
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void packet_buffer::check_invariant() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:60,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/packet_buffer.cpp:62,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/src/packet_buffer.cpp:64,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:68,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:84,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:90,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:97,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:100,1
    - Dst: libtorrent::aux::packet_buffer::reserve
      Src: /src/libtorrent/src/packet_buffer.cpp:109,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:112,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:119,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - idx
    - value
    argTypes:
    - index_type
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::packet_buffer::insert
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_ASSERT_VAL
    - libtorrent::aux::packet_buffer::remove
    - compare_less_wrap
    - TORRENT_ASSERT
    - libtorrent::aux::packet_buffer::reserve
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr packet_buffer::insert(index_type idx, packet_ptr value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:129,1
    - Dst: get
      Src: /src/libtorrent/src/packet_buffer.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::packet_buffer::at
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 0
    functionsReached:
    - compare_less_wrap
    - get
    linkageType: ''
    returnType: packet
    signature: packet * packet_buffer::at(index_type idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:139,1
    - Dst: packet_ptr::packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:145,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:148,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: libtorrent::aux::packet_buffer::reserve
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT_VAL
    - packet_ptr::packet_ptr
    - std::move
    linkageType: ''
    returnType: void
    signature: void packet_buffer::reserve(std::uint32_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:159,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/packet_buffer.cpp:161,1
    - Dst: packet_ptr
      Src: /src/libtorrent/src/packet_buffer.cpp:162,1
    - Dst: std::move
      Src: /src/libtorrent/src/packet_buffer.cpp:165,1
    - Dst: reset
      Src: /src/libtorrent/src/packet_buffer.cpp:166,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/packet_buffer.cpp:191,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 193
    functionName: libtorrent::aux::packet_buffer::remove
    functionSourceFile: /src/libtorrent/src/packet_buffer.cpp
    functionUses: 7
    functionsReached:
    - reset
    - packet_ptr
    - std::move
    - TORRENT_ASSERT_VAL
    - compare_less_wrap
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr packet_buffer::remove(index_type idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_crc32_u32
      Src: /src/libtorrent/src/crc32c.cpp:69,1
    - Dst: __crc32cw
      Src: /src/libtorrent/src/crc32c.cpp:78,1
    - Dst: boost::crc_optimal::process_bytes
      Src: /src/libtorrent/src/crc32c.cpp:83,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/src/crc32c.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 85
    functionName: libtorrent::crc32c_32
    functionSourceFile: /src/libtorrent/src/crc32c.cpp
    functionUses: 0
    functionsReached:
    - _mm_crc32_u32
    - __crc32cw
    - boost::crc_optimal::checksum
    - boost::crc_optimal::process_bytes
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t crc32c_32(std::uint32_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_crc32_u64
      Src: /src/libtorrent/src/crc32c.cpp:105,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/crc32c.cpp:108,1
    - Dst: reinterpret_cast<std::uint32_t const*>
      Src: /src/libtorrent/src/crc32c.cpp:111,1
    - Dst: _mm_crc32_u32
      Src: /src/libtorrent/src/crc32c.cpp:126,1
    - Dst: _mm_crc32_u32
      Src: /src/libtorrent/src/crc32c.cpp:127,1
    - Dst: __crc32cd
      Src: /src/libtorrent/src/crc32c.cpp:141,1
    - Dst: boost::crc_optimal::process_bytes
      Src: /src/libtorrent/src/crc32c.cpp:148,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/crc32c.cpp:148,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/src/crc32c.cpp:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - num_words
    argTypes:
    - std::uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 150
    functionName: libtorrent::crc32c
    functionSourceFile: /src/libtorrent/src/crc32c.cpp
    functionUses: 0
    functionsReached:
    - __crc32cd
    - std::uint32_t
    - boost::crc_optimal::checksum
    - boost::crc_optimal::process_bytes
    - std::size_t
    - _mm_crc32_u64
    - _mm_crc32_u32
    - reinterpret_cast<std::uint32_t const*>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t crc32c(std::uint64_t const* buf, int num_words)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_crc32_u32
      Src: /src/libtorrent/src/crc32c.cpp:69,1
    - Dst: __crc32cw
      Src: /src/libtorrent/src/crc32c.cpp:78,1
    - Dst: boost::crc_optimal::process_bytes
      Src: /src/libtorrent/src/crc32c.cpp:83,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/src/crc32c.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 85
    functionName: libtorrent::crc32c_32
    functionSourceFile: /src/libtorrent/src/crc32c.cpp
    functionUses: 0
    functionsReached:
    - _mm_crc32_u32
    - __crc32cw
    - boost::crc_optimal::checksum
    - boost::crc_optimal::process_bytes
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t crc32c_32(std::uint32_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_crc32_u64
      Src: /src/libtorrent/src/crc32c.cpp:105,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/crc32c.cpp:108,1
    - Dst: reinterpret_cast<std::uint32_t const*>
      Src: /src/libtorrent/src/crc32c.cpp:111,1
    - Dst: _mm_crc32_u32
      Src: /src/libtorrent/src/crc32c.cpp:126,1
    - Dst: _mm_crc32_u32
      Src: /src/libtorrent/src/crc32c.cpp:127,1
    - Dst: __crc32cd
      Src: /src/libtorrent/src/crc32c.cpp:141,1
    - Dst: boost::crc_optimal::process_bytes
      Src: /src/libtorrent/src/crc32c.cpp:148,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/crc32c.cpp:148,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/src/crc32c.cpp:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - num_words
    argTypes:
    - std::uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 150
    functionName: libtorrent::crc32c
    functionSourceFile: /src/libtorrent/src/crc32c.cpp
    functionUses: 0
    functionsReached:
    - __crc32cd
    - std::uint32_t
    - boost::crc_optimal::checksum
    - boost::crc_optimal::process_bytes
    - std::size_t
    - _mm_crc32_u64
    - _mm_crc32_u32
    - reinterpret_cast<std::uint32_t const*>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t crc32c(std::uint64_t const* buf, int num_words)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: libtorrent::version
    functionSourceFile: /src/libtorrent/src/version.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * version()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: libtorrent::version
    functionSourceFile: /src/libtorrent/src/version.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * version()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: libtorrent::proxy_base::proxy_base
    functionSourceFile: /src/libtorrent/src/proxy_base.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_base::proxy_base(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/proxy_base.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: proxy_base::~proxy_base()
    functionSourceFile: /src/libtorrent/src/proxy_base.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void proxy_base::~proxy_base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: proxy_base::~proxy_base()
    functionSourceFile: /src/libtorrent/src/proxy_base.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_base::~proxy_base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: libtorrent::proxy_base::proxy_base
    functionSourceFile: /src/libtorrent/src/proxy_base.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_base::proxy_base(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/proxy_base.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: proxy_base::~proxy_base()
    functionSourceFile: /src/libtorrent/src/proxy_base.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void proxy_base::~proxy_base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: proxy_base::~proxy_base()
    functionSourceFile: /src/libtorrent/src/proxy_base.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_base::~proxy_base()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: DWORD
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:134,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/file.cpp:134,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::pread_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - error_code
    - ReadFile
    - DWORD
    - ::GetLastError
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int pread_all(handle_type const fd\n\t\t, span<char> const buf\n\t\t,
      std::int64_t const offset\n\t\t, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: DWORD
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:152,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/file.cpp:152,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char const>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::pwrite_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - span<char const>::size
    - DWORD
    - ::GetLastError
    - WriteFile
    linkageType: ''
    returnType: int
    signature: "int pwrite_all(handle_type const fd\n\t\t, span<char const> const
      buf\n\t\t, std::int64_t const offset\n\t\t, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:175,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:175,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/file.cpp:180,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - buf
    - file_offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: libtorrent::aux::pread_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - ::pread
    - error_code
    - std::size_t
    - span<char>::subspan
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int pread_all(handle_type const handle\n\t\t, span<char> buf\n\t\t,
      std::int64_t file_offset\n\t\t, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::pwrite
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:200,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:200,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/file.cpp:205,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - buf
    - file_offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char const>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: libtorrent::aux::pwrite_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - ::pwrite
    - std::size_t
    - span<char const>::size
    - span<char const>::subspan
    linkageType: ''
    returnType: int
    signature: "int pwrite_all(handle_type const handle\n\t\t, span<char const> buf\n\t\t,
      std::int64_t file_offset\n\t\t, error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:218,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:235,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/file.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::is_sparse
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - GetFileSizeEx
    - DeviceIoControl
    linkageType: ''
    returnType: bool
    signature: bool is_sparse(HANDLE file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: libtorrent::aux::file_access
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_access(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::aux::file_create
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_create(open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
      Src: /src/libtorrent/src/file.cpp:277,1
    - Dst: aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
      Src: /src/libtorrent/src/file.cpp:279,1
    - Dst: aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
      Src: /src/libtorrent/src/file.cpp:281,1
    - Dst: OpenProcessToken
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/file.cpp:295,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:296,1
    - Dst: LookupPrivilegeValue
      Src: /src/libtorrent/src/file.cpp:300,1
    - Dst: AdjustTokenPrivileges
      Src: /src/libtorrent/src/file.cpp:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::acquire_manage_volume_privs
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
    - libtorrent::aux::scope_end
    - LookupPrivilegeValue
    - GetCurrentProcess
    - OpenProcessToken
    - aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
    - AdjustTokenPrivileges
    - aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
    linkageType: ''
    returnType: void
    signature: void acquire_manage_volume_privs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::file_attributes
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_attributes(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_attributes
      Src: /src/libtorrent/src/file.cpp:332,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:333,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:337,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CreateFile2
    - c_str
    - libtorrent::aux::file_attributes
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/libtorrent/src/file.cpp:367,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:371,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:374,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CreateFileW
    - std::call_once
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::file_perms
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t file_perms(open_mode_t const mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: libtorrent::aux::open_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - std::string::c_str
    - libtorrent::aux::file_perms
    - libtorrent::broadcast_socket::open
    - libtorrent::aux::file_flags
    - libtorrent::aux::throw_ex
    linkageType: ''
    returnType: int
    signature: int open_file(std::string const filename, open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:218,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:235,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/file.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::is_sparse
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - GetFileSizeEx
    - DeviceIoControl
    linkageType: ''
    returnType: bool
    signature: bool is_sparse(HANDLE file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: libtorrent::aux::file_access
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_access(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::aux::file_create
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_create(open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
      Src: /src/libtorrent/src/file.cpp:277,1
    - Dst: aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
      Src: /src/libtorrent/src/file.cpp:279,1
    - Dst: aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
      Src: /src/libtorrent/src/file.cpp:281,1
    - Dst: OpenProcessToken
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/file.cpp:295,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:296,1
    - Dst: LookupPrivilegeValue
      Src: /src/libtorrent/src/file.cpp:300,1
    - Dst: AdjustTokenPrivileges
      Src: /src/libtorrent/src/file.cpp:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::acquire_manage_volume_privs
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
    - libtorrent::aux::scope_end
    - LookupPrivilegeValue
    - GetCurrentProcess
    - OpenProcessToken
    - aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
    - AdjustTokenPrivileges
    - aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
    linkageType: ''
    returnType: void
    signature: void acquire_manage_volume_privs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::file_attributes
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_attributes(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_attributes
      Src: /src/libtorrent/src/file.cpp:332,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:333,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:337,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CreateFile2
    - c_str
    - libtorrent::aux::file_attributes
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/libtorrent/src/file.cpp:367,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:371,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:374,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CreateFileW
    - std::call_once
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::file_perms
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t file_perms(open_mode_t const mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: libtorrent::aux::open_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - std::string::c_str
    - libtorrent::aux::file_perms
    - libtorrent::broadcast_socket::open
    - libtorrent::aux::file_flags
    - libtorrent::aux::throw_ex
    linkageType: ''
    returnType: int
    signature: int open_file(std::string const filename, open_mode_t const mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_file
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:450,1
    - Dst: SetFilePointerEx
      Src: /src/libtorrent/src/file.cpp:459,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: ::SetEndOfFile
      Src: /src/libtorrent/src/file.cpp:462,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: SetFileValidData
      Src: /src/libtorrent/src/file.cpp:469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - name
    - size
    - mode
    argTypes:
    - string_view
    - std::int64_t
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 472
    functionName: libtorrent::aux::file_handle::file_handle
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - create_file
    - ::DeviceIoControl
    - error_code
    - SetFilePointerEx
    - throw_ex<storage_error>
    - SetFileValidData
    - string_view::to_string
    - convert_to_native_path_string
    - ::SetEndOfFile
    - GetLastError
    linkageType: ''
    returnType: void
    signature: "void file_handle::file_handle(string_view name, std::int64_t const
      size\n\t, open_mode_t const mode)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: open_file
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: directio
      Src: /src/libtorrent/src/file.cpp:483,1
    - Dst: ftruncate
      Src: /src/libtorrent/src/file.cpp:489,1
    - Dst: static_cast<off_t>
      Src: /src/libtorrent/src/file.cpp:489,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:492,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: ::posix_fallocate
      Src: /src/libtorrent/src/file.cpp:501,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:506,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:514,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:519,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:525,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:535,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:541,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:544,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: ::fcntl
      Src: /src/libtorrent/src/file.cpp:559,1
    - Dst: ::fcntl
      Src: /src/libtorrent/src/file.cpp:563,1
    - Dst: ::posix_fadvise
      Src: /src/libtorrent/src/file.cpp:572,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - name
    - size
    - mode
    argTypes:
    - string_view
    - std::int64_t
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 575
    functionName: libtorrent::aux::file_handle::file_handle
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - system_category
    - ::fcntl
    - ::posix_fadvise
    - open_file
    - error_code
    - fcntl
    - ftruncate
    - throw_ex<storage_error>
    - string_view::to_string
    - convert_to_native_path_string
    - directio
    - static_cast<off_t>
    - ::posix_fallocate
    linkageType: ''
    returnType: void
    signature: "void file_handle::file_handle(string_view name, std::int64_t const
      size\n\t, open_mode_t const mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_sparse
      Src: /src/libtorrent/src/file.cpp:589,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:601,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:607,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 612
    functionName: libtorrent::aux::file_handle::close
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - ::DeviceIoControl
    - is_sparse
    - peer_conn::close
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void file_handle::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/file.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 614
    functionName: file_handle::~file_handle()
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_handle::~file_handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/file.cpp:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: '& file_handle::operator=(file_handle&& rhs) &'
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: file_handle
    signature: file_handle & file_handle::operator=(file_handle&& rhs) &
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:629,1
    - Dst: fd
      Src: /src/libtorrent/src/file.cpp:629,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/file.cpp:634,1
    - Dst: fd
      Src: /src/libtorrent/src/file.cpp:634,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:635,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:635,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 638
    functionName: libtorrent::aux::file_handle::get_size
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - fd
    - error_code
    - GetFileSizeEx
    - throw_ex<storage_error>
    - ::fstat
    - GetLastError
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_handle::get_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: DWORD
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:134,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/file.cpp:134,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::pread_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - error_code
    - ReadFile
    - DWORD
    - ::GetLastError
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int pread_all(handle_type const fd\n\t\t, span<char> const buf\n\t\t,
      std::int64_t const offset\n\t\t, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: DWORD
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:152,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/file.cpp:152,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char const>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::pwrite_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - span<char const>::size
    - DWORD
    - ::GetLastError
    - WriteFile
    linkageType: ''
    returnType: int
    signature: "int pwrite_all(handle_type const fd\n\t\t, span<char const> const
      buf\n\t\t, std::int64_t const offset\n\t\t, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:175,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:175,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/file.cpp:180,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - buf
    - file_offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: libtorrent::aux::pread_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - ::pread
    - error_code
    - std::size_t
    - span<char>::subspan
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int pread_all(handle_type const handle\n\t\t, span<char> buf\n\t\t,
      std::int64_t file_offset\n\t\t, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::pwrite
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:200,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:200,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/file.cpp:205,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - buf
    - file_offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char const>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: libtorrent::aux::pwrite_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - ::pwrite
    - std::size_t
    - span<char const>::size
    - span<char const>::subspan
    linkageType: ''
    returnType: int
    signature: "int pwrite_all(handle_type const handle\n\t\t, span<char const> buf\n\t\t,
      std::int64_t file_offset\n\t\t, error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:218,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:235,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/file.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::is_sparse
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - GetFileSizeEx
    - DeviceIoControl
    linkageType: ''
    returnType: bool
    signature: bool is_sparse(HANDLE file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: libtorrent::aux::file_access
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_access(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::aux::file_create
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_create(open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
      Src: /src/libtorrent/src/file.cpp:277,1
    - Dst: aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
      Src: /src/libtorrent/src/file.cpp:279,1
    - Dst: aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
      Src: /src/libtorrent/src/file.cpp:281,1
    - Dst: OpenProcessToken
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/file.cpp:295,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:296,1
    - Dst: LookupPrivilegeValue
      Src: /src/libtorrent/src/file.cpp:300,1
    - Dst: AdjustTokenPrivileges
      Src: /src/libtorrent/src/file.cpp:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::acquire_manage_volume_privs
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
    - libtorrent::aux::scope_end
    - LookupPrivilegeValue
    - GetCurrentProcess
    - OpenProcessToken
    - aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
    - AdjustTokenPrivileges
    - aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
    linkageType: ''
    returnType: void
    signature: void acquire_manage_volume_privs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::file_attributes
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_attributes(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_attributes
      Src: /src/libtorrent/src/file.cpp:332,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:333,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:337,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CreateFile2
    - c_str
    - libtorrent::aux::file_attributes
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/libtorrent/src/file.cpp:367,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:371,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:374,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CreateFileW
    - std::call_once
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::file_perms
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t file_perms(open_mode_t const mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: libtorrent::aux::open_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - std::string::c_str
    - libtorrent::aux::file_perms
    - libtorrent::broadcast_socket::open
    - libtorrent::aux::file_flags
    - libtorrent::aux::throw_ex
    linkageType: ''
    returnType: int
    signature: int open_file(std::string const filename, open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:218,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:235,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/file.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::is_sparse
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - GetFileSizeEx
    - DeviceIoControl
    linkageType: ''
    returnType: bool
    signature: bool is_sparse(HANDLE file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: libtorrent::aux::file_access
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_access(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::aux::file_create
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_create(open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
      Src: /src/libtorrent/src/file.cpp:277,1
    - Dst: aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
      Src: /src/libtorrent/src/file.cpp:279,1
    - Dst: aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
      Src: /src/libtorrent/src/file.cpp:281,1
    - Dst: OpenProcessToken
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/file.cpp:295,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:296,1
    - Dst: LookupPrivilegeValue
      Src: /src/libtorrent/src/file.cpp:300,1
    - Dst: AdjustTokenPrivileges
      Src: /src/libtorrent/src/file.cpp:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::acquire_manage_volume_privs
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
    - libtorrent::aux::scope_end
    - LookupPrivilegeValue
    - GetCurrentProcess
    - OpenProcessToken
    - aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
    - AdjustTokenPrivileges
    - aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
    linkageType: ''
    returnType: void
    signature: void acquire_manage_volume_privs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::file_attributes
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_attributes(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_attributes
      Src: /src/libtorrent/src/file.cpp:332,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:333,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:337,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CreateFile2
    - c_str
    - libtorrent::aux::file_attributes
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/libtorrent/src/file.cpp:367,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:371,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:374,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CreateFileW
    - std::call_once
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::file_perms
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t file_perms(open_mode_t const mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: libtorrent::aux::open_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - std::string::c_str
    - libtorrent::aux::file_perms
    - libtorrent::broadcast_socket::open
    - libtorrent::aux::file_flags
    - libtorrent::aux::throw_ex
    linkageType: ''
    returnType: int
    signature: int open_file(std::string const filename, open_mode_t const mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_file
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:450,1
    - Dst: SetFilePointerEx
      Src: /src/libtorrent/src/file.cpp:459,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: ::SetEndOfFile
      Src: /src/libtorrent/src/file.cpp:462,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: SetFileValidData
      Src: /src/libtorrent/src/file.cpp:469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - name
    - size
    - mode
    argTypes:
    - string_view
    - std::int64_t
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 472
    functionName: libtorrent::aux::file_handle::file_handle
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - create_file
    - ::DeviceIoControl
    - error_code
    - SetFilePointerEx
    - throw_ex<storage_error>
    - SetFileValidData
    - string_view::to_string
    - convert_to_native_path_string
    - ::SetEndOfFile
    - GetLastError
    linkageType: ''
    returnType: void
    signature: "void file_handle::file_handle(string_view name, std::int64_t const
      size\n\t, open_mode_t const mode)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: open_file
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: directio
      Src: /src/libtorrent/src/file.cpp:483,1
    - Dst: ftruncate
      Src: /src/libtorrent/src/file.cpp:489,1
    - Dst: static_cast<off_t>
      Src: /src/libtorrent/src/file.cpp:489,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:492,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: ::posix_fallocate
      Src: /src/libtorrent/src/file.cpp:501,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:506,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:514,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:519,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:525,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:535,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:541,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:544,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: ::fcntl
      Src: /src/libtorrent/src/file.cpp:559,1
    - Dst: ::fcntl
      Src: /src/libtorrent/src/file.cpp:563,1
    - Dst: ::posix_fadvise
      Src: /src/libtorrent/src/file.cpp:572,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - name
    - size
    - mode
    argTypes:
    - string_view
    - std::int64_t
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 575
    functionName: libtorrent::aux::file_handle::file_handle
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - system_category
    - ::fcntl
    - ::posix_fadvise
    - open_file
    - error_code
    - fcntl
    - ftruncate
    - throw_ex<storage_error>
    - string_view::to_string
    - convert_to_native_path_string
    - directio
    - static_cast<off_t>
    - ::posix_fallocate
    linkageType: ''
    returnType: void
    signature: "void file_handle::file_handle(string_view name, std::int64_t const
      size\n\t, open_mode_t const mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_sparse
      Src: /src/libtorrent/src/file.cpp:589,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:601,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:607,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 612
    functionName: libtorrent::aux::file_handle::close
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - ::DeviceIoControl
    - is_sparse
    - peer_conn::close
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void file_handle::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/file.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 614
    functionName: file_handle::~file_handle()
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_handle::~file_handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/file.cpp:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: '& file_handle::operator=(file_handle&& rhs) &'
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: file_handle
    signature: file_handle & file_handle::operator=(file_handle&& rhs) &
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:629,1
    - Dst: fd
      Src: /src/libtorrent/src/file.cpp:629,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/file.cpp:634,1
    - Dst: fd
      Src: /src/libtorrent/src/file.cpp:634,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:635,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:635,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 638
    functionName: libtorrent::aux::file_handle::get_size
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - fd
    - error_code
    - GetFileSizeEx
    - throw_ex<storage_error>
    - ::fstat
    - GetLastError
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_handle::get_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: DWORD
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:134,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/file.cpp:134,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::pread_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - error_code
    - ReadFile
    - DWORD
    - ::GetLastError
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int pread_all(handle_type const fd\n\t\t, span<char> const buf\n\t\t,
      std::int64_t const offset\n\t\t, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: DWORD
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:152,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/file.cpp:152,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char const>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::pwrite_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - span<char const>::size
    - DWORD
    - ::GetLastError
    - WriteFile
    linkageType: ''
    returnType: int
    signature: "int pwrite_all(handle_type const fd\n\t\t, span<char const> const
      buf\n\t\t, std::int64_t const offset\n\t\t, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:175,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:175,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/file.cpp:180,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - buf
    - file_offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: libtorrent::aux::pread_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - ::pread
    - error_code
    - std::size_t
    - span<char>::subspan
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int pread_all(handle_type const handle\n\t\t, span<char> buf\n\t\t,
      std::int64_t file_offset\n\t\t, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::pwrite
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:200,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:200,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/file.cpp:205,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - buf
    - file_offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char const>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: libtorrent::aux::pwrite_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - ::pwrite
    - std::size_t
    - span<char const>::size
    - span<char const>::subspan
    linkageType: ''
    returnType: int
    signature: "int pwrite_all(handle_type const handle\n\t\t, span<char const> buf\n\t\t,
      std::int64_t file_offset\n\t\t, error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:218,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:235,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/file.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::is_sparse
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - GetFileSizeEx
    - DeviceIoControl
    linkageType: ''
    returnType: bool
    signature: bool is_sparse(HANDLE file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: libtorrent::aux::file_access
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_access(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::aux::file_create
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_create(open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
      Src: /src/libtorrent/src/file.cpp:277,1
    - Dst: aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
      Src: /src/libtorrent/src/file.cpp:279,1
    - Dst: aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
      Src: /src/libtorrent/src/file.cpp:281,1
    - Dst: OpenProcessToken
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/file.cpp:295,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:296,1
    - Dst: LookupPrivilegeValue
      Src: /src/libtorrent/src/file.cpp:300,1
    - Dst: AdjustTokenPrivileges
      Src: /src/libtorrent/src/file.cpp:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::acquire_manage_volume_privs
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
    - libtorrent::aux::scope_end
    - LookupPrivilegeValue
    - GetCurrentProcess
    - OpenProcessToken
    - aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
    - AdjustTokenPrivileges
    - aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
    linkageType: ''
    returnType: void
    signature: void acquire_manage_volume_privs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::file_attributes
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_attributes(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_attributes
      Src: /src/libtorrent/src/file.cpp:332,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:333,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:337,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CreateFile2
    - c_str
    - libtorrent::aux::file_attributes
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/libtorrent/src/file.cpp:367,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:371,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:374,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CreateFileW
    - std::call_once
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::file_perms
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t file_perms(open_mode_t const mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: libtorrent::aux::open_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - std::string::c_str
    - libtorrent::aux::file_perms
    - libtorrent::broadcast_socket::open
    - libtorrent::aux::file_flags
    - libtorrent::aux::throw_ex
    linkageType: ''
    returnType: int
    signature: int open_file(std::string const filename, open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:218,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:235,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/file.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::is_sparse
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - GetFileSizeEx
    - DeviceIoControl
    linkageType: ''
    returnType: bool
    signature: bool is_sparse(HANDLE file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: libtorrent::aux::file_access
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_access(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::aux::file_create
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_create(open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
      Src: /src/libtorrent/src/file.cpp:277,1
    - Dst: aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
      Src: /src/libtorrent/src/file.cpp:279,1
    - Dst: aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
      Src: /src/libtorrent/src/file.cpp:281,1
    - Dst: OpenProcessToken
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/file.cpp:295,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:296,1
    - Dst: LookupPrivilegeValue
      Src: /src/libtorrent/src/file.cpp:300,1
    - Dst: AdjustTokenPrivileges
      Src: /src/libtorrent/src/file.cpp:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::acquire_manage_volume_privs
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
    - libtorrent::aux::scope_end
    - LookupPrivilegeValue
    - GetCurrentProcess
    - OpenProcessToken
    - aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
    - AdjustTokenPrivileges
    - aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
    linkageType: ''
    returnType: void
    signature: void acquire_manage_volume_privs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::file_attributes
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_attributes(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_attributes
      Src: /src/libtorrent/src/file.cpp:332,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:333,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:337,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CreateFile2
    - c_str
    - libtorrent::aux::file_attributes
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/libtorrent/src/file.cpp:367,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:371,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:374,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CreateFileW
    - std::call_once
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::file_perms
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t file_perms(open_mode_t const mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: libtorrent::aux::open_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - std::string::c_str
    - libtorrent::aux::file_perms
    - libtorrent::broadcast_socket::open
    - libtorrent::aux::file_flags
    - libtorrent::aux::throw_ex
    linkageType: ''
    returnType: int
    signature: int open_file(std::string const filename, open_mode_t const mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_file
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:450,1
    - Dst: SetFilePointerEx
      Src: /src/libtorrent/src/file.cpp:459,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: ::SetEndOfFile
      Src: /src/libtorrent/src/file.cpp:462,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: SetFileValidData
      Src: /src/libtorrent/src/file.cpp:469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - name
    - size
    - mode
    argTypes:
    - string_view
    - std::int64_t
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 472
    functionName: libtorrent::aux::file_handle::file_handle
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - create_file
    - ::DeviceIoControl
    - error_code
    - SetFilePointerEx
    - throw_ex<storage_error>
    - SetFileValidData
    - string_view::to_string
    - convert_to_native_path_string
    - ::SetEndOfFile
    - GetLastError
    linkageType: ''
    returnType: void
    signature: "void file_handle::file_handle(string_view name, std::int64_t const
      size\n\t, open_mode_t const mode)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: open_file
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: directio
      Src: /src/libtorrent/src/file.cpp:483,1
    - Dst: ftruncate
      Src: /src/libtorrent/src/file.cpp:489,1
    - Dst: static_cast<off_t>
      Src: /src/libtorrent/src/file.cpp:489,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:492,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: ::posix_fallocate
      Src: /src/libtorrent/src/file.cpp:501,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:506,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:514,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:519,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:525,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:535,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:541,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:544,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: ::fcntl
      Src: /src/libtorrent/src/file.cpp:559,1
    - Dst: ::fcntl
      Src: /src/libtorrent/src/file.cpp:563,1
    - Dst: ::posix_fadvise
      Src: /src/libtorrent/src/file.cpp:572,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - name
    - size
    - mode
    argTypes:
    - string_view
    - std::int64_t
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 575
    functionName: libtorrent::aux::file_handle::file_handle
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - system_category
    - ::fcntl
    - ::posix_fadvise
    - open_file
    - error_code
    - fcntl
    - ftruncate
    - throw_ex<storage_error>
    - string_view::to_string
    - convert_to_native_path_string
    - directio
    - static_cast<off_t>
    - ::posix_fallocate
    linkageType: ''
    returnType: void
    signature: "void file_handle::file_handle(string_view name, std::int64_t const
      size\n\t, open_mode_t const mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_sparse
      Src: /src/libtorrent/src/file.cpp:589,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:601,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:607,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 612
    functionName: libtorrent::aux::file_handle::close
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - ::DeviceIoControl
    - is_sparse
    - peer_conn::close
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void file_handle::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/file.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 614
    functionName: file_handle::~file_handle()
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_handle::~file_handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/file.cpp:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: '& file_handle::operator=(file_handle&& rhs) &'
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: file_handle
    signature: file_handle & file_handle::operator=(file_handle&& rhs) &
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:629,1
    - Dst: fd
      Src: /src/libtorrent/src/file.cpp:629,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/file.cpp:634,1
    - Dst: fd
      Src: /src/libtorrent/src/file.cpp:634,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:635,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:635,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 638
    functionName: libtorrent::aux::file_handle::get_size
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - fd
    - error_code
    - GetFileSizeEx
    - throw_ex<storage_error>
    - ::fstat
    - GetLastError
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_handle::get_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: DWORD
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:132,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:134,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/file.cpp:134,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::pread_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - error_code
    - ReadFile
    - DWORD
    - ::GetLastError
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int pread_all(handle_type const fd\n\t\t, span<char> const buf\n\t\t,
      std::int64_t const offset\n\t\t, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: DWORD
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:150,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:152,1
    - Dst: ::GetLastError
      Src: /src/libtorrent/src/file.cpp:152,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char const>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: libtorrent::aux::pwrite_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - span<char const>::size
    - DWORD
    - ::GetLastError
    - WriteFile
    linkageType: ''
    returnType: int
    signature: "int pwrite_all(handle_type const fd\n\t\t, span<char const> const
      buf\n\t\t, std::int64_t const offset\n\t\t, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::pread
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:167,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:175,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:175,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/file.cpp:180,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/file.cpp:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - buf
    - file_offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: libtorrent::aux::pread_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - ::pread
    - error_code
    - std::size_t
    - span<char>::subspan
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int pread_all(handle_type const handle\n\t\t, span<char> buf\n\t\t,
      std::int64_t file_offset\n\t\t, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::pwrite
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:192,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:200,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:200,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/file.cpp:205,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/file.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - buf
    - file_offset
    - ' ec'
    argTypes:
    - handle_type
    - span<char const>
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: libtorrent::aux::pwrite_all
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - ::pwrite
    - std::size_t
    - span<char const>::size
    - span<char const>::subspan
    linkageType: ''
    returnType: int
    signature: "int pwrite_all(handle_type const handle\n\t\t, span<char const> buf\n\t\t,
      std::int64_t file_offset\n\t\t, error_code& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:218,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:235,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/file.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::is_sparse
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - GetFileSizeEx
    - DeviceIoControl
    linkageType: ''
    returnType: bool
    signature: bool is_sparse(HANDLE file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: libtorrent::aux::file_access
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_access(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::aux::file_create
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_create(open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
      Src: /src/libtorrent/src/file.cpp:277,1
    - Dst: aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
      Src: /src/libtorrent/src/file.cpp:279,1
    - Dst: aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
      Src: /src/libtorrent/src/file.cpp:281,1
    - Dst: OpenProcessToken
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/file.cpp:295,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:296,1
    - Dst: LookupPrivilegeValue
      Src: /src/libtorrent/src/file.cpp:300,1
    - Dst: AdjustTokenPrivileges
      Src: /src/libtorrent/src/file.cpp:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::acquire_manage_volume_privs
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
    - libtorrent::aux::scope_end
    - LookupPrivilegeValue
    - GetCurrentProcess
    - OpenProcessToken
    - aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
    - AdjustTokenPrivileges
    - aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
    linkageType: ''
    returnType: void
    signature: void acquire_manage_volume_privs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::file_attributes
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_attributes(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_attributes
      Src: /src/libtorrent/src/file.cpp:332,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:333,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:337,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CreateFile2
    - c_str
    - libtorrent::aux::file_attributes
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/libtorrent/src/file.cpp:367,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:371,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:374,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CreateFileW
    - std::call_once
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::file_perms
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t file_perms(open_mode_t const mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: libtorrent::aux::open_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - std::string::c_str
    - libtorrent::aux::file_perms
    - libtorrent::broadcast_socket::open
    - libtorrent::aux::file_flags
    - libtorrent::aux::throw_ex
    linkageType: ''
    returnType: int
    signature: int open_file(std::string const filename, open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:218,1
    - Dst: DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:235,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/file.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::is_sparse
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - GetFileSizeEx
    - DeviceIoControl
    linkageType: ''
    returnType: bool
    signature: bool is_sparse(HANDLE file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: libtorrent::aux::file_access
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_access(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::aux::file_create
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_create(open_mode_t const mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
      Src: /src/libtorrent/src/file.cpp:277,1
    - Dst: aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
      Src: /src/libtorrent/src/file.cpp:279,1
    - Dst: aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
      Src: /src/libtorrent/src/file.cpp:281,1
    - Dst: OpenProcessToken
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: GetCurrentProcess
      Src: /src/libtorrent/src/file.cpp:291,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/file.cpp:295,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:296,1
    - Dst: LookupPrivilegeValue
      Src: /src/libtorrent/src/file.cpp:300,1
    - Dst: AdjustTokenPrivileges
      Src: /src/libtorrent/src/file.cpp:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::acquire_manage_volume_privs
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - aux::get_library_procedure<aux::advapi32, OpenProcessToken_t>
    - libtorrent::aux::scope_end
    - LookupPrivilegeValue
    - GetCurrentProcess
    - OpenProcessToken
    - aux::get_library_procedure<aux::advapi32, LookupPrivilegeValue_t>
    - AdjustTokenPrivileges
    - aux::get_library_procedure<aux::advapi32, AdjustTokenPrivileges_t>
    linkageType: ''
    returnType: void
    signature: void acquire_manage_volume_privs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::file_attributes
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_attributes(open_mode_t const mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_attributes
      Src: /src/libtorrent/src/file.cpp:332,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:333,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:336,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:337,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - CreateFile2
    - c_str
    - libtorrent::aux::file_attributes
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/libtorrent/src/file.cpp:367,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: c_str
      Src: /src/libtorrent/src/file.cpp:370,1
    - Dst: libtorrent::aux::file_access
      Src: /src/libtorrent/src/file.cpp:371,1
    - Dst: libtorrent::aux::file_create
      Src: /src/libtorrent/src/file.cpp:374,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - mode
    argTypes:
    - native_path_string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: libtorrent::aux::create_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - CreateFileW
    - std::call_once
    - libtorrent::aux::file_flags
    - libtorrent::aux::file_access
    - libtorrent::aux::file_create
    linkageType: ''
    returnType: auto
    signature: auto create_file(const native_path_string & name, open_mode_t const
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: libtorrent::aux::file_flags
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_flags(open_mode_t const mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::file_perms
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t file_perms(open_mode_t const mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:415,1
    - Dst: libtorrent::broadcast_socket::open
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/file.cpp:422,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::file_perms
      Src: /src/libtorrent/src/file.cpp:423,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:426,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - std::string
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: libtorrent::aux::open_file
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - std::string::c_str
    - libtorrent::aux::file_perms
    - libtorrent::broadcast_socket::open
    - libtorrent::aux::file_flags
    - libtorrent::aux::throw_ex
    linkageType: ''
    returnType: int
    signature: int open_file(std::string const filename, open_mode_t const mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_file
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file.cpp:436,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:441,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:450,1
    - Dst: SetFilePointerEx
      Src: /src/libtorrent/src/file.cpp:459,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:460,1
    - Dst: ::SetEndOfFile
      Src: /src/libtorrent/src/file.cpp:462,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:463,1
    - Dst: SetFileValidData
      Src: /src/libtorrent/src/file.cpp:469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - name
    - size
    - mode
    argTypes:
    - string_view
    - std::int64_t
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 472
    functionName: libtorrent::aux::file_handle::file_handle
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - create_file
    - ::DeviceIoControl
    - error_code
    - SetFilePointerEx
    - throw_ex<storage_error>
    - SetFileValidData
    - string_view::to_string
    - convert_to_native_path_string
    - ::SetEndOfFile
    - GetLastError
    linkageType: ''
    returnType: void
    signature: "void file_handle::file_handle(string_view name, std::int64_t const
      size\n\t, open_mode_t const mode)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: open_file
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file.cpp:478,1
    - Dst: directio
      Src: /src/libtorrent/src/file.cpp:483,1
    - Dst: ftruncate
      Src: /src/libtorrent/src/file.cpp:489,1
    - Dst: static_cast<off_t>
      Src: /src/libtorrent/src/file.cpp:489,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:492,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:493,1
    - Dst: ::posix_fallocate
      Src: /src/libtorrent/src/file.cpp:501,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:506,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:507,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:514,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:519,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:520,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:525,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:535,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:536,1
    - Dst: fcntl
      Src: /src/libtorrent/src/file.cpp:541,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:544,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:545,1
    - Dst: ::fcntl
      Src: /src/libtorrent/src/file.cpp:559,1
    - Dst: ::fcntl
      Src: /src/libtorrent/src/file.cpp:563,1
    - Dst: ::posix_fadvise
      Src: /src/libtorrent/src/file.cpp:572,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - name
    - size
    - mode
    argTypes:
    - string_view
    - std::int64_t
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 575
    functionName: libtorrent::aux::file_handle::file_handle
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - system_category
    - ::fcntl
    - ::posix_fadvise
    - open_file
    - error_code
    - fcntl
    - ftruncate
    - throw_ex<storage_error>
    - string_view::to_string
    - convert_to_native_path_string
    - directio
    - static_cast<off_t>
    - ::posix_fallocate
    linkageType: ''
    returnType: void
    signature: "void file_handle::file_handle(string_view name, std::int64_t const
      size\n\t, open_mode_t const mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_sparse
      Src: /src/libtorrent/src/file.cpp:589,1
    - Dst: ::DeviceIoControl
      Src: /src/libtorrent/src/file.cpp:601,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/file.cpp:607,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/file.cpp:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 612
    functionName: libtorrent::aux::file_handle::close
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - ::DeviceIoControl
    - is_sparse
    - peer_conn::close
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void file_handle::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/file.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 614
    functionName: file_handle::~file_handle()
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_handle::~file_handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/file.cpp:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: '& file_handle::operator=(file_handle&& rhs) &'
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: file_handle
    signature: file_handle & file_handle::operator=(file_handle&& rhs) &
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileSizeEx
      Src: /src/libtorrent/src/file.cpp:629,1
    - Dst: fd
      Src: /src/libtorrent/src/file.cpp:629,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:630,1
    - Dst: ::fstat
      Src: /src/libtorrent/src/file.cpp:634,1
    - Dst: fd
      Src: /src/libtorrent/src/file.cpp:634,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file.cpp:635,1
    - Dst: error_code
      Src: /src/libtorrent/src/file.cpp:635,1
    - Dst: system_category
      Src: /src/libtorrent/src/file.cpp:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 638
    functionName: libtorrent::aux::file_handle::get_size
    functionSourceFile: /src/libtorrent/src/file.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - fd
    - error_code
    - GetFileSizeEx
    - throw_ex<storage_error>
    - ::fstat
    - GetLastError
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_handle::get_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - mmap_disk_job
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::caller_visitor
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caller_visitor(mmap_disk_job& j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::read_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: operator()(mmap_disk_job::read_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<disk_buffer_holder>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::read_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::write_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: operator()(mmap_disk_job::write_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::write_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: operator()(mmap_disk_job::hash_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash2_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator()(mmap_disk_job::hash2_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash2_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::move_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: operator()(mmap_disk_job::move_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::move_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::release_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: operator()(mmap_disk_job::release_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::release_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::check_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator()(mmap_disk_job::check_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::check_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::rename_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()(mmap_disk_job::rename_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::rename_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::clear_piece_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator()(mmap_disk_job::clear_piece_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::clear_piece_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::set_file_prio_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: operator()(mmap_disk_job::set_file_prio_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::set_file_prio_handler& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - mmap_disk_job
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::caller_visitor
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caller_visitor(mmap_disk_job& j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::read_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: operator()(mmap_disk_job::read_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<disk_buffer_holder>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::read_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::write_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: operator()(mmap_disk_job::write_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::write_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: operator()(mmap_disk_job::hash_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash2_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator()(mmap_disk_job::hash2_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash2_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::move_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: operator()(mmap_disk_job::move_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::move_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::release_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: operator()(mmap_disk_job::release_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::release_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::check_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator()(mmap_disk_job::check_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::check_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::rename_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()(mmap_disk_job::rename_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::rename_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::clear_piece_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator()(mmap_disk_job::clear_piece_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::clear_piece_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::set_file_prio_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: operator()(mmap_disk_job::set_file_prio_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::set_file_prio_handler& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::mmap_disk_job::mmap_disk_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mmap_disk_job::mmap_disk_job()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/mmap_disk_job.cpp:133,1
    - Dst: caller_visitor
      Src: /src/libtorrent/src/mmap_disk_job.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::mmap_disk_job::call_callback
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    - caller_visitor
    linkageType: ''
    returnType: void
    signature: void mmap_disk_job::call_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - mmap_disk_job
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::caller_visitor
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caller_visitor(mmap_disk_job& j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::read_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: operator()(mmap_disk_job::read_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<disk_buffer_holder>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::read_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::write_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: operator()(mmap_disk_job::write_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::write_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: operator()(mmap_disk_job::hash_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash2_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator()(mmap_disk_job::hash2_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash2_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::move_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: operator()(mmap_disk_job::move_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::move_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::release_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: operator()(mmap_disk_job::release_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::release_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::check_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator()(mmap_disk_job::check_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::check_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::rename_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()(mmap_disk_job::rename_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::rename_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::clear_piece_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator()(mmap_disk_job::clear_piece_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::clear_piece_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::set_file_prio_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: operator()(mmap_disk_job::set_file_prio_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::set_file_prio_handler& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - mmap_disk_job
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::caller_visitor
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caller_visitor(mmap_disk_job& j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::read_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: operator()(mmap_disk_job::read_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<disk_buffer_holder>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::read_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::write_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: operator()(mmap_disk_job::write_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::write_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: operator()(mmap_disk_job::hash_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash2_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator()(mmap_disk_job::hash2_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash2_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::move_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: operator()(mmap_disk_job::move_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::move_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::release_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: operator()(mmap_disk_job::release_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::release_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::check_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator()(mmap_disk_job::check_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::check_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::rename_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()(mmap_disk_job::rename_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::rename_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::clear_piece_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator()(mmap_disk_job::clear_piece_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::clear_piece_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::set_file_prio_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: operator()(mmap_disk_job::set_file_prio_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::set_file_prio_handler& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::mmap_disk_job::mmap_disk_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mmap_disk_job::mmap_disk_job()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/mmap_disk_job.cpp:133,1
    - Dst: caller_visitor
      Src: /src/libtorrent/src/mmap_disk_job.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::mmap_disk_job::call_callback
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    - caller_visitor
    linkageType: ''
    returnType: void
    signature: void mmap_disk_job::call_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - mmap_disk_job
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::caller_visitor
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caller_visitor(mmap_disk_job& j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::read_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: operator()(mmap_disk_job::read_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<disk_buffer_holder>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::read_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::write_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: operator()(mmap_disk_job::write_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::write_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: operator()(mmap_disk_job::hash_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash2_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator()(mmap_disk_job::hash2_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash2_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::move_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: operator()(mmap_disk_job::move_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::move_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::release_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: operator()(mmap_disk_job::release_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::release_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::check_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator()(mmap_disk_job::check_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::check_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::rename_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()(mmap_disk_job::rename_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::rename_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::clear_piece_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator()(mmap_disk_job::clear_piece_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::clear_piece_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::set_file_prio_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: operator()(mmap_disk_job::set_file_prio_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::set_file_prio_handler& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - mmap_disk_job
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::caller_visitor
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caller_visitor(mmap_disk_job& j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::read_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: operator()(mmap_disk_job::read_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<disk_buffer_holder>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::read_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::write_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: operator()(mmap_disk_job::write_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::write_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: operator()(mmap_disk_job::hash_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash2_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator()(mmap_disk_job::hash2_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash2_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::move_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: operator()(mmap_disk_job::move_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::move_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::release_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: operator()(mmap_disk_job::release_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::release_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::check_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator()(mmap_disk_job::check_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::check_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::rename_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()(mmap_disk_job::rename_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::rename_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::clear_piece_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator()(mmap_disk_job::clear_piece_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::clear_piece_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::set_file_prio_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: operator()(mmap_disk_job::set_file_prio_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::set_file_prio_handler& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::mmap_disk_job::mmap_disk_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mmap_disk_job::mmap_disk_job()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/mmap_disk_job.cpp:133,1
    - Dst: caller_visitor
      Src: /src/libtorrent/src/mmap_disk_job.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::mmap_disk_job::call_callback
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    - caller_visitor
    linkageType: ''
    returnType: void
    signature: void mmap_disk_job::call_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - mmap_disk_job
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::caller_visitor
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caller_visitor(mmap_disk_job& j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::read_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: operator()(mmap_disk_job::read_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<disk_buffer_holder>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::read_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::write_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: operator()(mmap_disk_job::write_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::write_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: operator()(mmap_disk_job::hash_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash2_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator()(mmap_disk_job::hash2_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash2_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::move_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: operator()(mmap_disk_job::move_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::move_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::release_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: operator()(mmap_disk_job::release_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::release_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::check_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator()(mmap_disk_job::check_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::check_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::rename_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()(mmap_disk_job::rename_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::rename_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::clear_piece_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator()(mmap_disk_job::clear_piece_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::clear_piece_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::set_file_prio_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: operator()(mmap_disk_job::set_file_prio_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::set_file_prio_handler& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - mmap_disk_job
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::caller_visitor
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caller_visitor(mmap_disk_job& j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::read_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: operator()(mmap_disk_job::read_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<disk_buffer_holder>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::read_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::write_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: operator()(mmap_disk_job::write_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::write_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: operator()(mmap_disk_job::hash_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::hash2_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator()(mmap_disk_job::hash2_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::hash2_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::move_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: operator()(mmap_disk_job::move_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::move_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::release_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: operator()(mmap_disk_job::release_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::release_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::check_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator()(mmap_disk_job::check_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::check_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::rename_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()(mmap_disk_job::rename_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<std::string>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::rename_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::clear_piece_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: operator()(mmap_disk_job::clear_piece_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::clear_piece_handler& h) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_job.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - mmap_disk_job::set_file_prio_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: operator()(mmap_disk_job::set_file_prio_handler& h) const
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - h
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    - std::move
    linkageType: ''
    returnType: void
    signature: void operator()(mmap_disk_job::set_file_prio_handler& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::mmap_disk_job::mmap_disk_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mmap_disk_job::mmap_disk_job()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/mmap_disk_job.cpp:133,1
    - Dst: caller_visitor
      Src: /src/libtorrent/src/mmap_disk_job.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::mmap_disk_job::call_callback
    functionSourceFile: /src/libtorrent/src/mmap_disk_job.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    - caller_visitor
    linkageType: ''
    returnType: void
    signature: void mmap_disk_job::call_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:70,1
    - Dst: libtorrent::udp_tracker_connection::update_transaction_id
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ios'
    - ' man'
    - ' req'
    - c
    argTypes:
    - io_context
    - tracker_manager
    - tracker_request
    - std::weak_ptr<request_callback>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: libtorrent::udp_tracker_connection::udp_tracker_connection
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::udp_tracker_connection::update_transaction_id
    linkageType: ''
    returnType: void
    signature: "void udp_tracker_connection::udp_tracker_connection(\n\t\tio_context&
      ios\n\t\t, tracker_manager& man\n\t\t, tracker_request const& req\n\t\t, std::weak_ptr<request_callback>
      c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:87,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:88,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:88,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:93,1
    - Dst: settings
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:97,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:99,1
    - Dst: get_bool
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:101,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:106,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:106,1
    - Dst: libtorrent::udp_tracker_connection::start_announce
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:107,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:112,1
    - Dst: host_resolver
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:115,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:116,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:119,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:120,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:123,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:124,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:125,1
    - Dst: set_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:129,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:129,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:130,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:131,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 133
    functionName: libtorrent::udp_tracker_connection::start
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - parse_url_components
    - host_resolver
    - std::bind
    - shared_from_this
    - requester
    - set_timeout
    - std::tie
    - std::uint16_t
    - std::string::c_str
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - get_int
    - settings
    - tracker_req
    - get_bool
    - libtorrent::udp_tracker_connection::start_announce
    - port
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::start()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:139,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:140,1
    - Dst: make_tcp
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:142,1
    - Dst: erase
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:142,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:146,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:146,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:148,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:153,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:154,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:156,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:157,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:157,1
    - Dst: message
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:157,1
    - Dst: make_udp
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:162,1
    - Dst: front
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:162,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:165,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:167,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:168,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:168,1
    - Dst: post
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:171,1
    - Dst: get_executor
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:171,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:171,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:172,1
    - Dst: settings
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:174,1
    - Dst: set_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:175,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:175,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:176,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:177,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - ' ec'
    - op
    - msg
    - interval
    - min_interval
    argTypes:
    - error_code
    - operation_t
    - char*
    - seconds32
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 179
    functionName: libtorrent::udp_tracker_connection::fail
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - begin
    - empty
    - get_executor
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - tracker_req
    - make_tcp
    - message
    - end
    - std::find
    - print_endpoint
    - front
    - get_int
    - shared_from_this
    - requester
    - std::shared_ptr::should_log
    - make_udp
    - erase
    - std::bind
    - set_timeout
    - c_str
    - post
    - settings
    linkageType: ''
    returnType: void
    signature: "void udp_tracker_connection::fail(error_code const& ec, operation_t
      const op\n\t\t, char const* msg, seconds32 const interval, seconds32 const min_interval)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:184,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:187,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:189,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:193,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:195,1
    - Dst: cancelled
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:197,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:199,1
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:203,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:205,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:207,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:207,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:211,1
    - Dst: auto::can_route
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:218,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:219,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:219,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:222,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:224,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:228,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:231,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:231,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:233,1
    - Dst: access
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:233,1
    - Dst: auto::address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:233,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:236,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:238,1
    - Dst: print_address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:239,1
    - Dst: auto::address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:239,1
    - Dst: erase
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:242,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:250,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:252,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:252,1
    - Dst: make_udp
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:256,1
    - Dst: front
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:256,1
    - Dst: libtorrent::udp_tracker_connection::start_announce
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:258,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - ' error'
    - ' addresses'
    - port
    argTypes:
    - error_code
    - std::vector<address>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 259
    functionName: libtorrent::udp_tracker_connection::name_lookup
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - tracker_req
    - emplace_back
    - std::uint16_t
    - auto::can_route
    - end
    - auto::address
    - front
    - COMPLETE_ASYNC
    - requester
    - cancelled
    - access
    - print_address
    - std::shared_ptr::should_log
    - make_udp
    - erase
    - error_code
    - restart_read_timeout
    - bind_socket
    - libtorrent::udp_tracker_connection::start_announce
    linkageType: ''
    returnType: void
    signature: "void udp_tracker_connection::name_lookup(error_code const& error\n\t\t,
      std::vector<address> const& addresses, int port)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:264,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:264,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:265,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:269,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:271,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_scrape
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:272,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_announce
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:274,1
    - Dst: erase
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:278,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:280,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_connect
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: libtorrent::udp_tracker_connection::start_announce
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::udp_tracker_connection::send_udp_announce
    - erase
    - libtorrent::udp_tracker_connection::send_udp_scrape
    - end
    - find
    - libtorrent::udp_tracker_connection::send_udp_connect
    - tracker_req
    - std::unique_lock::unlock
    - address
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::start_announce()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:289,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:294,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:295,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:295,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:295,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:297,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 298
    functionName: libtorrent::udp_tracker_connection::on_timeout
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - requester
    - c_str
    - error_code
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - tracker_req
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::on_timeout(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:302,1
    - Dst: remove_request
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: libtorrent::udp_tracker_connection::close
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - remove_request
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:309,1
    - Dst: libtorrent::udp_tracker_connection::on_receive
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hostname
    - buf
    argTypes:
    - string_view
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: libtorrent::udp_tracker_connection::on_receive_hostname
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::udp_tracker_connection::on_receive
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: "bool udp_tracker_connection::on_receive_hostname(string_view const
      hostname\n\t\t, span<char const> buf)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:321,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:328,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:336,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:345,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:348,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:350,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:352,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:353,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:360,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:361,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:365,1
    - Dst: static_cast<action_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:368,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:368,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:369,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:372,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:373,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:380,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:387,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:387,1
    - Dst: std::string
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:388,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:388,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:388,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:388,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:396,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:397,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:397,1
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:402,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:406,1
    - Dst: libtorrent::udp_tracker_connection::on_connect_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:412,1
    - Dst: libtorrent::udp_tracker_connection::on_announce_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:414,1
    - Dst: libtorrent::udp_tracker_connection::on_scrape_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:416,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - ' ep'
    - buf
    argTypes:
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 421
    functionName: libtorrent::udp_tracker_connection::on_receive
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::aux::read_uint32
    - static_cast<std::size_t>
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - span<char const>::size
    - libtorrent::udp_tracker_connection::on_announce_response
    - libtorrent::udp_tracker_connection::on_scrape_response
    - print_endpoint
    - address
    - libtorrent::udp_tracker_connection::on_connect_response
    - requester
    - libtorrent::aux::read_int32
    - std::shared_ptr::should_log
    - std::string
    - static_cast<action_t>
    - error_code
    - span<char const>::data
    - restart_read_timeout
    linkageType: ''
    returnType: bool
    signature: "bool udp_tracker_connection::on_receive(udp::endpoint const& ep\n\t\t,
      span<char const> const buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:426,1
    - Dst: libtorrent::udp_tracker_connection::update_transaction_id
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:429,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 431
    functionName: libtorrent::udp_tracker_connection::update_transaction_id
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - shared_from_this
    - libtorrent::udp_tracker_connection::update_transaction_id
    - random
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::update_transaction_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:436,1
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:438,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:441,1
    - Dst: libtorrent::udp_tracker_connection::update_transaction_id
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:444,1
    - Dst: libtorrent::aux::read_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:445,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:448,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:450,1
    - Dst: seconds
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:450,1
    - Dst: settings
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:450,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:452,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_announce
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:453,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:454,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_scrape
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 457
    functionName: libtorrent::udp_tracker_connection::on_connect_response
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::udp_tracker_connection::send_udp_announce
    - restart_read_timeout
    - seconds
    - libtorrent::udp_tracker_connection::send_udp_scrape
    - libtorrent::aux::read_int64
    - span<char const>::subspan
    - span<char const>::size
    - libtorrent::udp_tracker_connection::update_transaction_id
    - settings
    - tracker_req
    - address
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: bool
    signature: bool udp_tracker_connection::on_connect_response(span<char const> buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:462,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:468,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:477,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:479,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:480,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:481,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:483,1
    - Dst: span::empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:483,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:486,1
    - Dst: send_hostname
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:488,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:488,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:488,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:489,1
    - Dst: send
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:494,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:494,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:502,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:504,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:505,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:508,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:513,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:515,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:516,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:517,1
    - Dst: to_string
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:518,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:518,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:518,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:519,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:519,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:524,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 525
    functionName: libtorrent::udp_tracker_connection::send_udp_connect
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - empty
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - tracker_req
    - print_endpoint
    - error_code::message
    - requester
    - std::shared_ptr::should_log
    - libtorrent::aux::to_hex
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - span::empty
    - send_hostname
    - port
    - c_str
    - send
    - libtorrent::aux::write_uint32
    - sent_bytes
    - bind_socket
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::send_udp_connect()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:531,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:531,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:533,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:533,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:534,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:539,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:540,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:541,1
    - Dst: std::copy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: span::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:544,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:546,1
    - Dst: span::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:546,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:550,1
    - Dst: send_hostname
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:552,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:552,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:552,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:552,1
    - Dst: send
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:557,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:557,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:561,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 568
    functionName: libtorrent::udp_tracker_connection::send_udp_scrape
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - span::size
    - begin
    - empty
    - libtorrent::udp_tracker_connection::fail
    - tracker_req
    - end
    - std::copy
    - address
    - span::data
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - send_hostname
    - port
    - libtorrent::aux::write_int64
    - c_str
    - find
    - send
    - sent_bytes
    - bind_socket
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::send_udp_scrape()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:572,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:574,1
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:575,1
    - Dst: seconds32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:579,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:579,1
    - Dst: seconds32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:580,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:581,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:582,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:584,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:585,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:586,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:588,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:588,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:592,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:596,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:596,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:596,1
    - Dst: libtorrent::udp_tracker_connection::close
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:602,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:606,1
    - Dst: tracker_response::peers6::reserve
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:608,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:608,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:612,1
    - Dst: ipv6_peer_entry::ip::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:612,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:612,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:613,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:614,1
    - Dst: tracker_response::peers6::push_back
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:615,1
    - Dst: tracker_response::peers4::reserve
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:620,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:620,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:624,1
    - Dst: ipv4_peer_entry::ip::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:624,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:624,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:625,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:626,1
    - Dst: tracker_response::peers4::push_back
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:627,1
    - Dst: std::transform
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:633,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:633,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:633,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:633,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:634,1
    - Dst: std::shared_ptr::tracker_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:636,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:636,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:636,1
    - Dst: libtorrent::udp_tracker_connection::close
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:638,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 640
    functionName: libtorrent::udp_tracker_connection::on_announce_response
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::udp_tracker_connection::close
    - libtorrent::aux::is_v6
    - begin
    - static_cast<std::size_t>
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - libtorrent::aux::read_uint16
    - tracker_response::peers6::reserve
    - span<char const>::size
    - tracker_req
    - end
    - tracker_response::peers4::push_back
    - ipv6_peer_entry::ip::data
    - span<char const>::subspan
    - address
    - tracker_response::peers6::push_back
    - libtorrent::aux::read_int32
    - seconds32
    - requester
    - ipv4_peer_entry::ip::data
    - std::shared_ptr::tracker_response
    - tracker_response::peers4::reserve
    - std::transform
    - std::memcpy
    - c_str
    - error_code
    - restart_read_timeout
    - span<char const>::data
    - std::back_inserter
    linkageType: ''
    returnType: bool
    signature: bool udp_tracker_connection::on_announce_response(span<char const>
      buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:644,1
    - Dst: static_cast<action_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:645,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:645,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:646,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:650,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:650,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:656,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:656,1
    - Dst: std::string
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:657,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:657,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:657,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:657,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:663,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:663,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:667,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:669,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:669,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:673,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:674,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:675,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:677,1
    - Dst: libtorrent::udp_tracker_connection::close
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:680,1
    - Dst: std::shared_ptr::tracker_scrape_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:684,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:684,1
    - Dst: libtorrent::udp_tracker_connection::close
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 689
    functionName: libtorrent::udp_tracker_connection::on_scrape_response
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::read_int32
    - requester
    - libtorrent::udp_tracker_connection::close
    - libtorrent::aux::read_uint32
    - static_cast<action_t>
    - restart_read_timeout
    - error_code
    - std::string
    - span<char const>::data
    - libtorrent::udp_tracker_connection::fail
    - static_cast<std::size_t>
    - std::shared_ptr::tracker_scrape_response
    - span<char const>::size
    - tracker_req
    linkageType: ''
    returnType: bool
    signature: bool udp_tracker_connection::on_scrape_response(span<char const> buf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:698,1
    - Dst: settings
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:699,1
    - Dst: find
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:701,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:701,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:703,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:703,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:704,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:706,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:707,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:708,1
    - Dst: std::copy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:709,1
    - Dst: info_hash::begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:709,1
    - Dst: info_hash::end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:709,1
    - Dst: span::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:709,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:710,1
    - Dst: std::copy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:711,1
    - Dst: pid::begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:711,1
    - Dst: pid::end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:711,1
    - Dst: span::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:711,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:712,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:713,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:714,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:715,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:716,1
    - Dst: get_bool
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:720,1
    - Dst: get_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:721,1
    - Dst: make_address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:724,1
    - Dst: get_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:724,1
    - Dst: address::is_v4
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:725,1
    - Dst: address::to_v4
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:725,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:727,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:727,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:728,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:729,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:730,1
    - Dst: std::tie
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:735,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:736,1
    - Dst: std::string::clear
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:737,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:739,1
    - Dst: std::min
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:741,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:741,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:741,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:742,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:744,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:745,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:746,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:750,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:751,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:753,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:753,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:757,1
    - Dst: send_hostname
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:759,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:759,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:759,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:760,1
    - Dst: span::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:760,1
    - Dst: send
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:765,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:765,1
    - Dst: span::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:765,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:769,1
    - Dst: span::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:769,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:773,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 776
    functionName: libtorrent::udp_tracker_connection::send_udp_announce
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - span::size
    - empty
    - std::string::clear
    - std::shared_ptr::debug_log
    - std::min
    - libtorrent::udp_tracker_connection::fail
    - tracker_req
    - get_bool
    - libtorrent::aux::write_uint16
    - parse_url_components
    - end
    - std::copy
    - std::size_t
    - make_address
    - info_hash::begin
    - address
    - get_str
    - requester
    - std::shared_ptr::should_log
    - libtorrent::aux::to_hex
    - info_hash::end
    - address::is_v4
    - span::data
    - pid::end
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - send_hostname
    - libtorrent::aux::write_uint8
    - pid::begin
    - std::string::resize
    - port
    - span::subspan
    - address::to_v4
    - libtorrent::aux::write_int64
    - std::string::size
    - std::tie
    - c_str
    - std::string::empty
    - find
    - address_v4::to_uint
    - send
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_string
    - sent_bytes
    - settings
    - bind_socket
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::send_udp_announce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:70,1
    - Dst: libtorrent::udp_tracker_connection::update_transaction_id
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ios'
    - ' man'
    - ' req'
    - c
    argTypes:
    - io_context
    - tracker_manager
    - tracker_request
    - std::weak_ptr<request_callback>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: libtorrent::udp_tracker_connection::udp_tracker_connection
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::udp_tracker_connection::update_transaction_id
    linkageType: ''
    returnType: void
    signature: "void udp_tracker_connection::udp_tracker_connection(\n\t\tio_context&
      ios\n\t\t, tracker_manager& man\n\t\t, tracker_request const& req\n\t\t, std::weak_ptr<request_callback>
      c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:87,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:88,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:88,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:93,1
    - Dst: settings
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:97,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:99,1
    - Dst: get_bool
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:101,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:106,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:106,1
    - Dst: libtorrent::udp_tracker_connection::start_announce
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:107,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:112,1
    - Dst: host_resolver
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:115,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:116,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:119,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:120,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:123,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:124,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:125,1
    - Dst: set_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:129,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:129,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:130,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:131,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 133
    functionName: libtorrent::udp_tracker_connection::start
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - parse_url_components
    - host_resolver
    - std::bind
    - shared_from_this
    - requester
    - set_timeout
    - std::tie
    - std::uint16_t
    - std::string::c_str
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - get_int
    - settings
    - tracker_req
    - get_bool
    - libtorrent::udp_tracker_connection::start_announce
    - port
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::start()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:139,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:140,1
    - Dst: make_tcp
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:142,1
    - Dst: erase
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:142,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:146,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:146,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:148,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:153,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:154,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:156,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:157,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:157,1
    - Dst: message
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:157,1
    - Dst: make_udp
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:162,1
    - Dst: front
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:162,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:165,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:167,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:168,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:168,1
    - Dst: post
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:171,1
    - Dst: get_executor
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:171,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:171,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:172,1
    - Dst: settings
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:174,1
    - Dst: set_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:175,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:175,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:176,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:177,1
    - Dst: get_int
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - ' ec'
    - op
    - msg
    - interval
    - min_interval
    argTypes:
    - error_code
    - operation_t
    - char*
    - seconds32
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 179
    functionName: libtorrent::udp_tracker_connection::fail
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 12
    functionsReached:
    - begin
    - empty
    - get_executor
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - tracker_req
    - make_tcp
    - message
    - end
    - std::find
    - print_endpoint
    - front
    - get_int
    - shared_from_this
    - requester
    - std::shared_ptr::should_log
    - make_udp
    - erase
    - std::bind
    - set_timeout
    - c_str
    - post
    - settings
    linkageType: ''
    returnType: void
    signature: "void udp_tracker_connection::fail(error_code const& ec, operation_t
      const op\n\t\t, char const* msg, seconds32 const interval, seconds32 const min_interval)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:184,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:187,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:189,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:193,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:195,1
    - Dst: cancelled
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:197,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:199,1
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:203,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:205,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:207,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:207,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:211,1
    - Dst: auto::can_route
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:218,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:219,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:219,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:222,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:224,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:228,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:231,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:231,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:233,1
    - Dst: access
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:233,1
    - Dst: auto::address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:233,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:236,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:238,1
    - Dst: print_address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:239,1
    - Dst: auto::address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:239,1
    - Dst: erase
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:242,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:250,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:252,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:252,1
    - Dst: make_udp
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:256,1
    - Dst: front
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:256,1
    - Dst: libtorrent::udp_tracker_connection::start_announce
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:258,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - ' error'
    - ' addresses'
    - port
    argTypes:
    - error_code
    - std::vector<address>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 259
    functionName: libtorrent::udp_tracker_connection::name_lookup
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - tracker_req
    - emplace_back
    - std::uint16_t
    - auto::can_route
    - end
    - auto::address
    - front
    - COMPLETE_ASYNC
    - requester
    - cancelled
    - access
    - print_address
    - std::shared_ptr::should_log
    - make_udp
    - erase
    - error_code
    - restart_read_timeout
    - bind_socket
    - libtorrent::udp_tracker_connection::start_announce
    linkageType: ''
    returnType: void
    signature: "void udp_tracker_connection::name_lookup(error_code const& error\n\t\t,
      std::vector<address> const& addresses, int port)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:264,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:264,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:265,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:269,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:271,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_scrape
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:272,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_announce
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:274,1
    - Dst: erase
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:278,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:280,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_connect
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: libtorrent::udp_tracker_connection::start_announce
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::udp_tracker_connection::send_udp_announce
    - erase
    - libtorrent::udp_tracker_connection::send_udp_scrape
    - end
    - find
    - libtorrent::udp_tracker_connection::send_udp_connect
    - tracker_req
    - std::unique_lock::unlock
    - address
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::start_announce()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:289,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:294,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:295,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:295,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:295,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:297,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 298
    functionName: libtorrent::udp_tracker_connection::on_timeout
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - requester
    - c_str
    - error_code
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - tracker_req
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::on_timeout(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:302,1
    - Dst: remove_request
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: libtorrent::udp_tracker_connection::close
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - remove_request
    - cancel
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:309,1
    - Dst: libtorrent::udp_tracker_connection::on_receive
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hostname
    - buf
    argTypes:
    - string_view
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: libtorrent::udp_tracker_connection::on_receive_hostname
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::udp_tracker_connection::on_receive
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: "bool udp_tracker_connection::on_receive_hostname(string_view const
      hostname\n\t\t, span<char const> buf)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:321,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:328,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:336,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:345,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:348,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:350,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:352,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:353,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:360,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:361,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:365,1
    - Dst: static_cast<action_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:368,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:368,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:369,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:372,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:373,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:380,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:387,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:387,1
    - Dst: std::string
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:388,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:388,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:388,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:388,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:396,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:397,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:397,1
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:402,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:406,1
    - Dst: libtorrent::udp_tracker_connection::on_connect_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:412,1
    - Dst: libtorrent::udp_tracker_connection::on_announce_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:414,1
    - Dst: libtorrent::udp_tracker_connection::on_scrape_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:416,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - ' ep'
    - buf
    argTypes:
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 421
    functionName: libtorrent::udp_tracker_connection::on_receive
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - libtorrent::aux::read_uint32
    - static_cast<std::size_t>
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - span<char const>::size
    - libtorrent::udp_tracker_connection::on_announce_response
    - libtorrent::udp_tracker_connection::on_scrape_response
    - print_endpoint
    - address
    - libtorrent::udp_tracker_connection::on_connect_response
    - requester
    - libtorrent::aux::read_int32
    - std::shared_ptr::should_log
    - std::string
    - static_cast<action_t>
    - error_code
    - span<char const>::data
    - restart_read_timeout
    linkageType: ''
    returnType: bool
    signature: "bool udp_tracker_connection::on_receive(udp::endpoint const& ep\n\t\t,
      span<char const> const buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:426,1
    - Dst: libtorrent::udp_tracker_connection::update_transaction_id
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:429,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 431
    functionName: libtorrent::udp_tracker_connection::update_transaction_id
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 5
    functionsReached:
    - shared_from_this
    - libtorrent::udp_tracker_connection::update_transaction_id
    - random
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::update_transaction_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:436,1
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:438,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:441,1
    - Dst: libtorrent::udp_tracker_connection::update_transaction_id
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:444,1
    - Dst: libtorrent::aux::read_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:445,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:448,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:450,1
    - Dst: seconds
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:450,1
    - Dst: settings
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:450,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:452,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_announce
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:453,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:454,1
    - Dst: libtorrent::udp_tracker_connection::send_udp_scrape
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 457
    functionName: libtorrent::udp_tracker_connection::on_connect_response
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::udp_tracker_connection::send_udp_announce
    - restart_read_timeout
    - seconds
    - libtorrent::udp_tracker_connection::send_udp_scrape
    - libtorrent::aux::read_int64
    - span<char const>::subspan
    - span<char const>::size
    - libtorrent::udp_tracker_connection::update_transaction_id
    - settings
    - tracker_req
    - address
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: bool
    signature: bool udp_tracker_connection::on_connect_response(span<char const> buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:462,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:468,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:477,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:479,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:480,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:481,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:483,1
    - Dst: span::empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:483,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:486,1
    - Dst: send_hostname
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:488,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:488,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:488,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:489,1
    - Dst: send
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:494,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:494,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:502,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:504,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:505,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:508,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:513,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:515,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:516,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:517,1
    - Dst: to_string
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:518,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:518,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:518,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:519,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:519,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:524,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 525
    functionName: libtorrent::udp_tracker_connection::send_udp_connect
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - to_string
    - empty
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - tracker_req
    - print_endpoint
    - error_code::message
    - requester
    - std::shared_ptr::should_log
    - libtorrent::aux::to_hex
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - span::empty
    - send_hostname
    - port
    - c_str
    - send
    - libtorrent::aux::write_uint32
    - sent_bytes
    - bind_socket
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::send_udp_connect()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:531,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:531,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:533,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:533,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:534,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:539,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:540,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:541,1
    - Dst: std::copy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:543,1
    - Dst: span::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:544,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:546,1
    - Dst: span::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:546,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:550,1
    - Dst: send_hostname
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:552,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:552,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:552,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:552,1
    - Dst: send
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:557,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:557,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:561,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 568
    functionName: libtorrent::udp_tracker_connection::send_udp_scrape
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 4
    functionsReached:
    - span::size
    - begin
    - empty
    - libtorrent::udp_tracker_connection::fail
    - tracker_req
    - end
    - std::copy
    - address
    - span::data
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - send_hostname
    - port
    - libtorrent::aux::write_int64
    - c_str
    - find
    - send
    - sent_bytes
    - bind_socket
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::send_udp_scrape()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:572,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:574,1
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:575,1
    - Dst: seconds32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:579,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:579,1
    - Dst: seconds32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:580,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:581,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:582,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:584,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:585,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:586,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:588,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:588,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:592,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:596,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:596,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:596,1
    - Dst: libtorrent::udp_tracker_connection::close
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:602,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:606,1
    - Dst: tracker_response::peers6::reserve
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:608,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:608,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:612,1
    - Dst: ipv6_peer_entry::ip::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:612,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:612,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:613,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:614,1
    - Dst: tracker_response::peers6::push_back
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:615,1
    - Dst: tracker_response::peers4::reserve
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:620,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:620,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:624,1
    - Dst: ipv4_peer_entry::ip::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:624,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:624,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:625,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:626,1
    - Dst: tracker_response::peers4::push_back
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:627,1
    - Dst: std::transform
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:633,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:633,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:633,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:633,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:634,1
    - Dst: std::shared_ptr::tracker_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:636,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:636,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:636,1
    - Dst: libtorrent::udp_tracker_connection::close
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:638,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 640
    functionName: libtorrent::udp_tracker_connection::on_announce_response
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::udp_tracker_connection::close
    - libtorrent::aux::is_v6
    - begin
    - static_cast<std::size_t>
    - libtorrent::udp_tracker_connection::fail
    - std::shared_ptr::debug_log
    - libtorrent::aux::read_uint16
    - tracker_response::peers6::reserve
    - span<char const>::size
    - tracker_req
    - end
    - tracker_response::peers4::push_back
    - ipv6_peer_entry::ip::data
    - span<char const>::subspan
    - address
    - tracker_response::peers6::push_back
    - libtorrent::aux::read_int32
    - seconds32
    - requester
    - ipv4_peer_entry::ip::data
    - std::shared_ptr::tracker_response
    - tracker_response::peers4::reserve
    - std::transform
    - std::memcpy
    - c_str
    - error_code
    - restart_read_timeout
    - span<char const>::data
    - std::back_inserter
    linkageType: ''
    returnType: bool
    signature: bool udp_tracker_connection::on_announce_response(span<char const>
      buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: restart_read_timeout
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:644,1
    - Dst: static_cast<action_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:645,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:645,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:646,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:650,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:650,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:656,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:656,1
    - Dst: std::string
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:657,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:657,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:657,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:657,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:663,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:663,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:667,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:669,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:669,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:673,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:674,1
    - Dst: libtorrent::aux::read_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:675,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:677,1
    - Dst: libtorrent::udp_tracker_connection::close
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:680,1
    - Dst: std::shared_ptr::tracker_scrape_response
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:684,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:684,1
    - Dst: libtorrent::udp_tracker_connection::close
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 689
    functionName: libtorrent::udp_tracker_connection::on_scrape_response
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_int32
    - requester
    - libtorrent::udp_tracker_connection::close
    - libtorrent::aux::read_uint32
    - static_cast<action_t>
    - restart_read_timeout
    - error_code
    - std::string
    - span<char const>::data
    - libtorrent::udp_tracker_connection::fail
    - static_cast<std::size_t>
    - std::shared_ptr::tracker_scrape_response
    - span<char const>::size
    - tracker_req
    linkageType: ''
    returnType: bool
    signature: bool udp_tracker_connection::on_scrape_response(span<char const> buf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tracker_req
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:698,1
    - Dst: settings
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:699,1
    - Dst: find
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:701,1
    - Dst: address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:701,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:703,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:703,1
    - Dst: end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:704,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:706,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:707,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:708,1
    - Dst: std::copy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:709,1
    - Dst: info_hash::begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:709,1
    - Dst: info_hash::end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:709,1
    - Dst: span::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:709,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:710,1
    - Dst: std::copy
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:711,1
    - Dst: pid::begin
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:711,1
    - Dst: pid::end
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:711,1
    - Dst: span::data
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:711,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:712,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:713,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:714,1
    - Dst: libtorrent::aux::write_int64
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:715,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:716,1
    - Dst: get_bool
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:720,1
    - Dst: get_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:721,1
    - Dst: make_address
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:724,1
    - Dst: get_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:724,1
    - Dst: address::is_v4
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:725,1
    - Dst: address::to_v4
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:725,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:727,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:727,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:728,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:729,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:730,1
    - Dst: std::tie
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:735,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:736,1
    - Dst: std::string::clear
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:737,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:739,1
    - Dst: std::min
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:741,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:741,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:741,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:742,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:744,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:745,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:746,1
    - Dst: requester
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:750,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:751,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:753,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:753,1
    - Dst: empty
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:757,1
    - Dst: send_hostname
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:759,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:759,1
    - Dst: c_str
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:759,1
    - Dst: port
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:760,1
    - Dst: span::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:760,1
    - Dst: send
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:765,1
    - Dst: bind_socket
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:765,1
    - Dst: span::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:765,1
    - Dst: sent_bytes
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:769,1
    - Dst: span::size
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:769,1
    - Dst: libtorrent::udp_tracker_connection::fail
      Src: /src/libtorrent/src/udp_tracker_connection.cpp:773,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 776
    functionName: libtorrent::udp_tracker_connection::send_udp_announce
    functionSourceFile: /src/libtorrent/src/udp_tracker_connection.cpp
    functionUses: 4
    functionsReached:
    - span::size
    - empty
    - std::string::clear
    - std::shared_ptr::debug_log
    - std::min
    - libtorrent::udp_tracker_connection::fail
    - tracker_req
    - get_bool
    - libtorrent::aux::write_uint16
    - parse_url_components
    - end
    - std::copy
    - std::size_t
    - make_address
    - info_hash::begin
    - address
    - get_str
    - requester
    - std::shared_ptr::should_log
    - libtorrent::aux::to_hex
    - info_hash::end
    - address::is_v4
    - span::data
    - pid::end
    - libtorrent::aux::write_int32
    - TORRENT_ASSERT
    - send_hostname
    - libtorrent::aux::write_uint8
    - pid::begin
    - std::string::resize
    - port
    - span::subspan
    - address::to_v4
    - libtorrent::aux::write_int64
    - std::string::size
    - std::tie
    - c_str
    - std::string::empty
    - find
    - address_v4::to_uint
    - send
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_string
    - sent_bytes
    - settings
    - bind_socket
    linkageType: ''
    returnType: void
    signature: void udp_tracker_connection::send_udp_announce()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:43,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:48,1
    - Dst: malloc
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:48,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:50,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:57,1
    - Dst: malloc
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:57,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:59,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:67,1
    - Dst: malloc
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:67,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 78
    functionName: libtorrent::torrent_peer_allocator::allocate_peer_entry
    functionSourceFile: /src/libtorrent/src/torrent_peer_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - set_next_size
    - malloc
    - static_cast<torrent_peer*>
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * torrent_peer_allocator::allocate_peer_entry(int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:86,1
    - Dst: is_from
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:86,1
    - Dst: static_cast<libtorrent::ipv6_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:86,1
    - Dst: static_cast<libtorrent::ipv6_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:87,1
    - Dst: free
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:89,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:98,1
    - Dst: is_from
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:98,1
    - Dst: static_cast<libtorrent::i2p_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:98,1
    - Dst: static_cast<libtorrent::i2p_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:99,1
    - Dst: free
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:101,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:108,1
    - Dst: is_from
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:108,1
    - Dst: static_cast<libtorrent::ipv4_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:108,1
    - Dst: static_cast<libtorrent::ipv4_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:109,1
    - Dst: free
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:110,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 115
    functionName: libtorrent::torrent_peer_allocator::free_peer_entry
    functionSourceFile: /src/libtorrent/src/torrent_peer_allocator.cpp
    functionUses: 0
    functionsReached:
    - free
    - static_cast<libtorrent::i2p_peer*>
    - static_cast<libtorrent::ipv4_peer*>
    - TORRENT_ASSERT
    - static_cast<libtorrent::ipv6_peer*>
    - is_from
    linkageType: ''
    returnType: void
    signature: void torrent_peer_allocator::free_peer_entry(torrent_peer* p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:43,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:48,1
    - Dst: malloc
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:48,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:50,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:57,1
    - Dst: malloc
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:57,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:59,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:67,1
    - Dst: malloc
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:67,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 78
    functionName: libtorrent::torrent_peer_allocator::allocate_peer_entry
    functionSourceFile: /src/libtorrent/src/torrent_peer_allocator.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - set_next_size
    - malloc
    - static_cast<torrent_peer*>
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * torrent_peer_allocator::allocate_peer_entry(int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:86,1
    - Dst: is_from
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:86,1
    - Dst: static_cast<libtorrent::ipv6_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:86,1
    - Dst: static_cast<libtorrent::ipv6_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:87,1
    - Dst: free
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:89,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:98,1
    - Dst: is_from
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:98,1
    - Dst: static_cast<libtorrent::i2p_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:98,1
    - Dst: static_cast<libtorrent::i2p_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:99,1
    - Dst: free
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:101,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:108,1
    - Dst: is_from
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:108,1
    - Dst: static_cast<libtorrent::ipv4_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:108,1
    - Dst: static_cast<libtorrent::ipv4_peer*>
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:109,1
    - Dst: free
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:110,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer_allocator.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 115
    functionName: libtorrent::torrent_peer_allocator::free_peer_entry
    functionSourceFile: /src/libtorrent/src/torrent_peer_allocator.cpp
    functionUses: 0
    functionsReached:
    - free
    - static_cast<libtorrent::i2p_peer*>
    - static_cast<libtorrent::ipv4_peer*>
    - TORRENT_ASSERT
    - static_cast<libtorrent::ipv6_peer*>
    - is_from
    linkageType: ''
    returnType: void
    signature: void torrent_peer_allocator::free_peer_entry(torrent_peer* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::file_storage::file_storage
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_storage::file_storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: file_storage::~file_storage()
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_storage::~file_storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::file_storage::file_storage
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_storage::file_storage(file_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::file_storage::file_storage
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_storage::file_storage(file_storage&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::reserve
      Src: /src/libtorrent/src/file_storage.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_files
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::file_storage::reserve
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::file_storage::reserve
    linkageType: ''
    returnType: void
    signature: void file_storage::reserve(int num_files)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:99,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:99,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:99,1
    - Dst: last_piece
      Src: /src/libtorrent/src/file_storage.cpp:100,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:103,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:103,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:103,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:106,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:106,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: libtorrent::file_storage::piece_size
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - total_size
    - TORRENT_ASSERT_PRECOND
    - last_piece
    - std::int64_t
    - num_pieces
    - piece_length
    - TORRENT_ASSERT
    - piece_index_t
    - end_piece
    linkageType: ''
    returnType: int
    signature: int file_storage::piece_size(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - aux::file_entry
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::compare_file_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_file_offset(aux::file_entry const& lhs\n\t\t, aux::file_entry
      const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - aux::file_entry
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::compare_file_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_file_offset(aux::file_entry const& lhs\n\t\t, aux::file_entry
      const& rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:128,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:129,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:129,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:132,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:132,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:132,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:133,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:133,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:133,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:134,1
    - Dst: compare_file_offset
      Src: /src/libtorrent/src/file_storage.cpp:134,1
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:134,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/file_storage.cpp:136,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:137,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:137,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:139,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:140,1
    - Dst: libtorrent::file_storage::piece_size
      Src: /src/libtorrent/src/file_storage.cpp:140,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:144,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_storage.cpp:145,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:145,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: libtorrent::file_storage::piece_size2
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::uint64_t>
    - compare_file_offset
    - begin
    - aux::numeric_cast<std::uint64_t>
    - std::upper_bound
    - TORRENT_ASSERT_PRECOND
    - end
    - front
    - TORRENT_ASSERT
    - piece_length
    - std::int64_t
    - std::min
    - libtorrent::file_storage::piece_size
    - end_piece
    linkageType: ''
    returnType: int
    signature: int file_storage::piece_size2(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::piece_size2
      Src: /src/libtorrent/src/file_storage.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: libtorrent::file_storage::blocks_in_piece2
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::piece_size2
    linkageType: ''
    returnType: int
    signature: int file_storage::blocks_in_piece2(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: libtorrent::file_storage::blocks_per_piece
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_storage::blocks_per_piece() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_complete
      Src: /src/libtorrent/src/file_storage.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:166,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:172,1
    - Dst: std::tie
      Src: /src/libtorrent/src/file_storage.cpp:178,1
    - Dst: rsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:178,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:180,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:182,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:189,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:191,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:193,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/file_storage.cpp:193,1
    - Dst: defined
      Src: /src/libtorrent/src/file_storage.cpp:194,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/file_storage.cpp:195,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/file_storage.cpp:198,1
    - Dst: libtorrent::file_storage::get_or_add_path
      Src: /src/libtorrent/src/file_storage.cpp:206,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - ' e'
    - ' path'
    - set_name
    argTypes:
    - aux::file_entry
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: libtorrent::file_storage::update_path_index
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - lsplit_path
    - std::tie
    - rsplit_path
    - libtorrent::file_storage::get_or_add_path
    - set_name
    - TORRENT_ASSERT
    - string_view::empty
    - is_complete
    - defined
    - string_view::front
    - string_view::remove_prefix
    linkageType: ''
    returnType: void
    signature: "void file_storage::update_path_index(aux::file_entry& e\n\t\t, std::string
      const& path, bool const set_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/file_storage.cpp:213,1
    - Dst: rbegin
      Src: /src/libtorrent/src/file_storage.cpp:213,1
    - Dst: rend
      Src: /src/libtorrent/src/file_storage.cpp:213,1
    - Dst: rend
      Src: /src/libtorrent/src/file_storage.cpp:215,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:218,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:219,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:219,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:220,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/file_storage.cpp:220,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:220,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/file_storage.cpp:226,1
    - Dst: auto::base
      Src: /src/libtorrent/src/file_storage.cpp:227,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: libtorrent::file_storage::get_or_add_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - string_view::data
    - begin
    - aux::numeric_cast<std::uint32_t>
    - rbegin
    - std::find
    - auto::base
    - TORRENT_ASSERT
    - rend
    - string_view::size
    - emplace_back
    - end_index
    linkageType: ''
    returnType: aux::path_index_t
    signature: aux::path_index_t file_storage::get_or_add_path(string_view const path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: libtorrent::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: file_entry::~file_entry()
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::~file_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: file_entry::~file_entry()
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::~file_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_entry::set_name
      Src: /src/libtorrent/src/file_storage.cpp:274,1
    - Dst: libtorrent::aux::file_entry::filename
      Src: /src/libtorrent/src/file_storage.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_entry::filename
    - libtorrent::aux::file_entry::set_name
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry(file_entry const& fe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:294,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 297
    functionName: '& file_entry::operator=(file_entry const& fe) &'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - filename
    - set_name
    linkageType: ''
    returnType: file_entry
    signature: file_entry & file_entry::operator=(file_entry const& fe) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry(file_entry&& fe) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: '& file_entry::operator=(file_entry&& fe) & noexcept'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_entry
    signature: file_entry & file_entry::operator=(file_entry&& fe) & noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:351,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:358,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/file_storage.cpp:358,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/file_storage.cpp:360,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:361,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:361,1
    - Dst: allocate_string_copy
      Src: /src/libtorrent/src/file_storage.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - n
    - borrow_string
    argTypes:
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 368
    functionName: libtorrent::aux::file_entry::set_name
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - string_view::substr
    - string_view::data
    - aux::numeric_cast<std::uint64_t>
    - TORRENT_ASSERT
    - string_view::empty
    - string_view::size
    - allocate_string_copy
    linkageType: ''
    returnType: void
    signature: void file_entry::set_name(string_view n, bool const borrow_string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/src/file_storage.cpp:372,1
    - Dst: string_view
      Src: /src/libtorrent/src/file_storage.cpp:373,1
    - Dst: string_view
      Src: /src/libtorrent/src/file_storage.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: libtorrent::aux::file_entry::filename
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - string_view
    - std::size_t
    linkageType: ''
    returnType: string_view
    signature: string_view file_entry::filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: file_entry::~file_entry()
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::~file_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_entry::set_name
      Src: /src/libtorrent/src/file_storage.cpp:274,1
    - Dst: libtorrent::aux::file_entry::filename
      Src: /src/libtorrent/src/file_storage.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_entry::filename
    - libtorrent::aux::file_entry::set_name
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry(file_entry const& fe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:294,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 297
    functionName: '& file_entry::operator=(file_entry const& fe) &'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - filename
    - set_name
    linkageType: ''
    returnType: file_entry
    signature: file_entry & file_entry::operator=(file_entry const& fe) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry(file_entry&& fe) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: '& file_entry::operator=(file_entry&& fe) & noexcept'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_entry
    signature: file_entry & file_entry::operator=(file_entry&& fe) & noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:351,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:358,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/file_storage.cpp:358,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/file_storage.cpp:360,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:361,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:361,1
    - Dst: allocate_string_copy
      Src: /src/libtorrent/src/file_storage.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - n
    - borrow_string
    argTypes:
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 368
    functionName: libtorrent::aux::file_entry::set_name
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - string_view::substr
    - string_view::data
    - aux::numeric_cast<std::uint64_t>
    - TORRENT_ASSERT
    - string_view::empty
    - string_view::size
    - allocate_string_copy
    linkageType: ''
    returnType: void
    signature: void file_entry::set_name(string_view n, bool const borrow_string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/src/file_storage.cpp:372,1
    - Dst: string_view
      Src: /src/libtorrent/src/file_storage.cpp:373,1
    - Dst: string_view
      Src: /src/libtorrent/src/file_storage.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: libtorrent::aux::file_entry::filename
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - string_view
    - std::size_t
    linkageType: ''
    returnType: string_view
    signature: string_view file_entry::filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:384,1
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:385,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file_storage.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - filename
    - filename_len
    - ' path'
    - file_size
    - file_flags
    - filehash
    - mtime
    - symlink_path
    argTypes:
    - char*
    - int
    - std::string
    - std::int64_t
    - file_flags_t
    - char*
    - std::int64_t
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: libtorrent::file_storage::add_file_borrow
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::file_storage::add_file_borrow
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file_borrow(char const* filename, int filename_len\n\t\t,
      std::string const& path, std::int64_t file_size, file_flags_t file_flags\n\t\t,
      char const* filehash, std::int64_t mtime, string_view symlink_path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' fe'
    - filehash
    argTypes:
    - file_entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: libtorrent::file_storage::add_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::add_file_borrow
    linkageType: ''
    returnType: void
    signature: void file_storage::add_file(file_entry const& fe, char const* filehash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:405,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:405,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:405,1
    - Dst: libtorrent::file_storage::update_path_index
      Src: /src/libtorrent/src/file_storage.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' new_filename'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: libtorrent::file_storage::rename_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::update_path_index
    linkageType: ''
    returnType: void
    signature: "void file_storage::rename_file(file_index_t const index\n\t\t, std::string
      const& new_filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:414,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:415,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:416,1
    - Dst: compare_file_offset
      Src: /src/libtorrent/src/file_storage.cpp:416,1
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:416,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/file_storage.cpp:418,1
    - Dst: begin_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:419,1
    - Dst: end_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:419,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:421,1
    - Dst: begin_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - offset
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 424
    functionName: libtorrent::file_storage::file_at_offset_deprecated
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - compare_file_offset
    - aux::numeric_cast<std::uint64_t>
    - std::upper_bound
    - front
    - TORRENT_ASSERT
    - begin_deprecated
    - end_deprecated
    linkageType: ''
    returnType: file_storage::iterator
    signature: file_storage::iterator file_storage::file_at_offset_deprecated(std::int64_t
      offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_at_offset_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: libtorrent::file_storage::file_at_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::file_at_offset_deprecated
    linkageType: ''
    returnType: file_storage::iterator
    signature: file_storage::iterator file_storage::file_at_offset(std::int64_t offset)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:434,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:435,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:436,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:439,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:440,1
    - Dst: compare_file_offset
      Src: /src/libtorrent/src/file_storage.cpp:440,1
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:440,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/file_storage.cpp:442,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:443,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:445,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:445,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - offset
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 448
    functionName: libtorrent::file_storage::file_index_at_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - compare_file_offset
    - begin
    - aux::numeric_cast<std::uint64_t>
    - std::upper_bound
    - TORRENT_ASSERT_PRECOND
    - end
    - front
    - TORRENT_ASSERT
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::file_index_at_offset(std::int64_t const
      offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_index_at_offset
      Src: /src/libtorrent/src/file_storage.cpp:452,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:452,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:452,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: libtorrent::file_storage::file_index_at_piece
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - piece_length
    - std::int64_t
    - libtorrent::file_storage::file_index_at_offset
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::file_index_at_piece(piece_index_t const
      piece) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_range
      Src: /src/libtorrent/src/file_storage.cpp:458,1
    - Dst: libtorrent::file_storage::root
      Src: /src/libtorrent/src/file_storage.cpp:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' root_hash'
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: libtorrent::file_storage::file_index_for_root
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::file_range
    - libtorrent::file_storage::root
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::file_index_for_root(sha256_hash const& root_hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:467,1
    - Dst: libtorrent::file_storage::file_offset
      Src: /src/libtorrent/src/file_storage.cpp:467,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: libtorrent::file_storage::piece_index_at_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - piece_length
    - aux::numeric_cast<int>
    - libtorrent::file_storage::file_offset
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t file_storage::piece_index_at_file(file_index_t f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: libtorrent::file_storage::file_name_ptr
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * file_storage::file_name_ptr(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: libtorrent::file_storage::file_name_len
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_storage::file_name_len(file_index_t const index) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:487,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:488,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:488,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:489,1
    - Dst: libtorrent::file_storage::num_files
      Src: /src/libtorrent/src/file_storage.cpp:489,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:490,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:493,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:497,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:497,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:498,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:498,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:498,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:499,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:499,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:500,1
    - Dst: compare_file_offset
      Src: /src/libtorrent/src/file_storage.cpp:500,1
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:500,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:503,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:504,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/file_storage.cpp:506,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:507,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:507,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:509,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:509,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:515,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:515,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:516,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:519,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_storage.cpp:521,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:521,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:521,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:522,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:525,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - piece
    - offset
    - size
    argTypes:
    - piece_index_t
    - std::int64_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 531
    functionName: libtorrent::file_storage::map_block
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::vector::push_back
    - compare_file_offset
    - begin
    - aux::numeric_cast<std::uint64_t>
    - std::upper_bound
    - empty
    - TORRENT_ASSERT_PRECOND
    - end
    - front
    - TORRENT_ASSERT
    - std::int64_t
    - std::min
    - libtorrent::file_storage::num_files
    - file_index_t
    - end_piece
    linkageType: ''
    returnType: std::vector<file_slice>
    signature: "std::vector<file_slice> file_storage::map_block(piece_index_t const
      piece\n\t\t, std::int64_t const offset, std::int64_t size) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::at_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: libtorrent::file_storage::at
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::at_deprecated
    linkageType: ''
    returnType: file_entry
    signature: file_entry file_storage::at(int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:541,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:542,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:542,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: '& file_storage::internal_at(int const index) const'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - file_index_t
    - size
    linkageType: ''
    returnType: aux::file_entry
    signature: aux::file_entry & file_storage::internal_at(int const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:548,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:548,1
    - Dst: libtorrent::file_storage::file_path
      Src: /src/libtorrent/src/file_storage.cpp:551,1
    - Dst: libtorrent::file_storage::mtime
      Src: /src/libtorrent/src/file_storage.cpp:554,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/src/file_storage.cpp:560,1
    - Dst: libtorrent::file_storage::hash
      Src: /src/libtorrent/src/file_storage.cpp:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 563
    functionName: libtorrent::file_storage::at_deprecated
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::file_storage::mtime
    - libtorrent::file_storage::hash
    - libtorrent::file_storage::file_path
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::symlink
    - size
    linkageType: ''
    returnType: file_entry
    signature: file_entry file_storage::at_deprecated(int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 567
    functionName: libtorrent::file_storage::num_files
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int file_storage::num_files() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: libtorrent::file_storage::end_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - end_index
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::end_file() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 574
    functionName: libtorrent::file_storage::last_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::last_file() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/libtorrent/src/file_storage.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 577
    functionName: libtorrent::file_storage::file_range
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - range
    linkageType: ''
    returnType: index_range<file_index_t>
    signature: index_range<file_index_t> file_storage::file_range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 580
    functionName: libtorrent::file_storage::piece_range
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - end_piece
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: index_range<piece_index_t> file_storage::piece_range() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:585,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:586,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:589,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:591,1
    - Dst: libtorrent::file_storage::file_offset
      Src: /src/libtorrent/src/file_storage.cpp:597,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:599,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:601,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:607,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:607,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:608,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:610,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - file_index
    - file_offset
    - size
    argTypes:
    - file_index_t
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 614
    functionName: libtorrent::file_storage::map_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - total_size
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::file_offset
    - TORRENT_ASSERT
    - piece_length
    - libtorrent::file_storage::end_file
    - piece_index_t
    - end_piece
    linkageType: ''
    returnType: peer_request
    signature: "peer_request file_storage::map_file(file_index_t const file_index\n\t\t,
      std::int64_t const file_offset, int const size) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:622,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/file_storage.cpp:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - ' path'
    - file_size
    - file_flags
    - mtime
    - symlink_path
    - root_hash
    argTypes:
    - std::string
    - std::int64_t
    - file_flags_t
    - std::time_t
    - string_view
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: libtorrent::file_storage::add_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::add_file_borrow
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file(std::string const& path, std::int64_t
      const file_size\n\t\t, file_flags_t const file_flags, std::time_t const mtime,
      string_view const symlink_path\n\t\t, char const* root_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:634,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/file_storage.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - filename
    - ' path'
    - file_size
    - file_flags
    - filehash
    - mtime
    - symlink_path
    - root_hash
    argTypes:
    - string_view
    - std::string
    - std::int64_t
    - file_flags_t
    - char*
    - std::int64_t
    - string_view
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 637
    functionName: libtorrent::file_storage::add_file_borrow
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::file_storage::add_file_borrow
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file_borrow(string_view filename\n\t\t, std::string
      const& path, std::int64_t const file_size\n\t\t, file_flags_t const file_flags,
      char const* filehash\n\t\t, std::int64_t const mtime, string_view const symlink_path\n\t\t,
      char const* root_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' ec'
    - ' path'
    - file_size
    - file_flags
    - mtime
    - symlink_path
    - root_hash
    argTypes:
    - error_code
    - std::string
    - std::int64_t
    - file_flags_t
    - std::time_t
    - string_view
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 646
    functionName: libtorrent::file_storage::add_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::add_file_borrow
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file(error_code& ec, std::string const& path\n\t\t,
      std::int64_t const file_size, file_flags_t const file_flags, std::time_t const
      mtime\n\t\t, string_view symlink_path, char const* root_hash)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:654,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:655,1
    - Dst: is_complete
      Src: /src/libtorrent/src/file_storage.cpp:655,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:659,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:665,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:669,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:671,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:673,1
    - Dst: libtorrent::aux::file_entry::filename
      Src: /src/libtorrent/src/file_storage.cpp:677,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:679,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/file_storage.cpp:683,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:689,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:689,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:694,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:695,1
    - Dst: to_string
      Src: /src/libtorrent/src/file_storage.cpp:695,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:700,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:707,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:707,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:715,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:716,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:721,1
    - Dst: back
      Src: /src/libtorrent/src/file_storage.cpp:722,1
    - Dst: libtorrent::file_storage::update_path_index
      Src: /src/libtorrent/src/file_storage.cpp:729,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:729,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:732,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:733,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:735,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:736,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:745,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:745,1
    - Dst: resize
      Src: /src/libtorrent/src/file_storage.cpp:745,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:745,1
    - Dst: libtorrent::file_storage::last_file
      Src: /src/libtorrent/src/file_storage.cpp:746,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:748,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:749,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:751,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:752,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file_storage.cpp:752,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:760,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:760,1
    - Dst: resize
      Src: /src/libtorrent/src/file_storage.cpp:760,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:760,1
    - Dst: libtorrent::file_storage::last_file
      Src: /src/libtorrent/src/file_storage.cpp:761,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/file_storage.cpp:761,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:770,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:772,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:772,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:773,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:773,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:774,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:777,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:781,1
    - Dst: back
      Src: /src/libtorrent/src/file_storage.cpp:783,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:784,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:785,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:786,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:787,1
    - Dst: libtorrent::file_storage::get_or_add_path
      Src: /src/libtorrent/src/file_storage.cpp:788,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/file_storage.cpp:790,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:792,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 9
    argNames:
    - ' ec'
    - filename
    - ' path'
    - file_size
    - file_flags
    - filehash
    - mtime
    - symlink_path
    - root_hash
    argTypes:
    - error_code
    - string_view
    - std::string
    - std::int64_t
    - file_flags_t
    - char*
    - std::int64_t
    - string_view
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 796
    functionName: libtorrent::file_storage::add_file_borrow
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 5
    functionsReached:
    - to_string
    - libtorrent::file_storage::update_path_index
    - static_cast<std::uint64_t>
    - libtorrent::file_storage::get_or_add_path
    - empty
    - make_error_code
    - emplace_back
    - aux::numeric_cast<std::uint64_t>
    - string_view::empty
    - has_parent_path
    - back
    - string_view::to_string
    - lsplit_path
    - std::time_t
    - std::snprintf
    - TORRENT_ASSERT
    - size
    - libtorrent::file_storage::last_file
    - libtorrent::aux::file_entry::filename
    - TORRENT_ASSERT_PRECOND
    - set_name
    - piece_length
    - string_view::size
    - resize
    - is_complete
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file_borrow(error_code& ec, string_view filename\n\t\t,
      std::string const& path, std::int64_t const file_size\n\t\t, file_flags_t const
      file_flags, char const* filehash\n\t\t, std::int64_t const mtime, string_view
      const symlink_path\n\t\t, char const* root_hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:802,1
    - Dst: libtorrent::file_storage::file_size
      Src: /src/libtorrent/src/file_storage.cpp:807,1
    - Dst: libtorrent::file_storage::pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:808,1
    - Dst: libtorrent::file_storage::file_size
      Src: /src/libtorrent/src/file_storage.cpp:810,1
    - Dst: erase
      Src: /src/libtorrent/src/file_storage.cpp:811,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:811,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:812,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:814,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 823
    functionName: libtorrent::file_storage::remove_tail_padding
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint64_t>
    - begin
    - erase
    - libtorrent::file_storage::pad_file_at
    - TORRENT_ASSERT
    - libtorrent::file_storage::end_file
    - libtorrent::file_storage::file_size
    linkageType: ''
    returnType: void
    signature: void file_storage::remove_tail_padding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:827,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:827,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:828,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/file_storage.cpp:828,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/file_storage.cpp:829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: libtorrent::file_storage::hash
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - sha1_hash
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - end_index
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash file_storage::hash(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:834,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:834,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/file_storage.cpp:835,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/file_storage.cpp:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: libtorrent::file_storage::root
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - sha256_hash
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash file_storage::root(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:841,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 843
    functionName: libtorrent::file_storage::root_ptr
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: char
    signature: char * file_storage::root_ptr(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:847,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:847,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:852,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:852,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:857,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:857,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:857,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/file_storage.cpp:858,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 861
    functionName: libtorrent::file_storage::symlink
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - append_path
    - TORRENT_ASSERT_PRECOND
    - TORRENT_ASSERT
    - libtorrent::file_storage::end_file
    - std::string::assign
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::symlink(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:865,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_storage.cpp:865,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:867,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 870
    functionName: '& file_storage::internal_symlink(file_index_t const index) const'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - end_file
    - TORRENT_ASSERT
    - TORRENT_ASSERT_PRECOND
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string & file_storage::internal_symlink(file_index_t const index)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:874,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:874,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 877
    functionName: libtorrent::file_storage::mtime
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - end_index
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t file_storage::mtime(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_byte
      Src: /src/libtorrent/src/file_storage.cpp:885,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/file_storage.cpp:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' crc'
    - str
    argTypes:
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: libtorrent::process_string_lowercase
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_lower
    - process_byte
    linkageType: ''
    returnType: void
    signature: void process_string_lowercase(CRC& crc, string_view str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:893,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/file_storage.cpp:897,1
    - Dst: CRC::checksum
      Src: /src/libtorrent/src/file_storage.cpp:897,1
    - Dst: CRC::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:898,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/file_storage.cpp:898,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/file_storage.cpp:900,1
    - Dst: CRC::checksum
      Src: /src/libtorrent/src/file_storage.cpp:900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ' table'
    - crc
    - str
    argTypes:
    - std::unordered_set<std::uint32_t>
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: libtorrent::process_path_lowercase
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::insert
    - CRC::checksum
    - string_view::empty
    - CRC::process_byte
    - libtorrent::to_lower
    linkageType: ''
    returnType: void
    signature: "void process_path_lowercase(\n\t\t\tstd::unordered_set<std::uint32_t>&
      table\n\t\t\t, CRC crc, string_view str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_byte
      Src: /src/libtorrent/src/file_storage.cpp:885,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/file_storage.cpp:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' crc'
    - str
    argTypes:
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: libtorrent::process_string_lowercase
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_lower
    - process_byte
    linkageType: ''
    returnType: void
    signature: void process_string_lowercase(CRC& crc, string_view str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:893,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/file_storage.cpp:897,1
    - Dst: CRC::checksum
      Src: /src/libtorrent/src/file_storage.cpp:897,1
    - Dst: CRC::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:898,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/file_storage.cpp:898,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/file_storage.cpp:900,1
    - Dst: CRC::checksum
      Src: /src/libtorrent/src/file_storage.cpp:900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ' table'
    - crc
    - str
    argTypes:
    - std::unordered_set<std::uint32_t>
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: libtorrent::process_path_lowercase
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::insert
    - CRC::checksum
    - string_view::empty
    - CRC::process_byte
    - libtorrent::to_lower
    linkageType: ''
    returnType: void
    signature: "void process_path_lowercase(\n\t\t\tstd::unordered_set<std::uint32_t>&
      table\n\t\t\t, CRC crc, string_view str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:909,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:911,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:912,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:912,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:913,1
    - Dst: process_path_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' table'
    argTypes:
    - std::unordered_set<std::uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 918
    functionName: libtorrent::file_storage::all_path_hashes
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - boost::crc_optimal::process_byte
    - process_path_lowercase
    - empty
    - TORRENT_ASSERT
    - process_string_lowercase
    - size
    linkageType: ''
    returnType: void
    signature: "void file_storage::all_path_hashes(\n\t\tstd::unordered_set<std::uint32_t>&
      table) const"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:923,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:923,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:923,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:930,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:930,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:934,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:936,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:937,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:937,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:938,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:940,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:940,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:944,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:946,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:947,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:947,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:948,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:951,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:953,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:954,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:954,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:955,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:957,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:957,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:961,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:963,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:964,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:964,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:965,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:967,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:968,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:968,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:969,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:969,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:970,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:973,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:975,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:976,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:976,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:977,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:977,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:978,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:980,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:980,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/src/file_storage.cpp:983,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - index
    - ' save_path'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 984
    functionName: libtorrent::file_storage::file_path_hash
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - boost::crc_optimal::process_byte
    - filename
    - TORRENT_ASSERT_PRECOND
    - empty
    - boost::crc_optimal::checksum
    - TORRENT_ASSERT
    - process_string_lowercase
    - libtorrent::file_storage::end_file
    - file_index_t
    - size
    linkageType: ''
    returnType: std::uint32_t
    signature: "std::uint32_t file_storage::file_path_hash(file_index_t const index\n\t\t,
      std::string const& save_path) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:988,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:988,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:988,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:995,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:999,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:999,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:999,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/file_storage.cpp:1000,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1001,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1001,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1007,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1007,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1007,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1007,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/file_storage.cpp:1008,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1009,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1010,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1010,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/file_storage.cpp:1017,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1018,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1019,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1020,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - index
    - ' save_path'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1025
    functionName: libtorrent::file_storage::file_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - append_path
    - filename
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::end_file
    - std::string::assign
    - file_index_t
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::file_path(file_index_t const index, std::string
      const& save_path) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1029,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1029,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1029,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1037,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1037,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1037,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1038,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1039,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1039,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1046
    functionName: libtorrent::file_storage::internal_file_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - append_path
    - filename
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::end_file
    - file_index_t
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::internal_file_path(file_index_t const index)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1050,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1050,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1050,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1053
    functionName: libtorrent::file_storage::file_name
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - filename
    linkageType: ''
    returnType: string_view
    signature: string_view file_storage::file_name(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1057,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1057,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1059
    functionName: libtorrent::file_storage::file_size
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_storage::file_size(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1063,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1063,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1065
    functionName: libtorrent::file_storage::pad_file_at
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: bool
    signature: bool file_storage::pad_file_at(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1069,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1069,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1071
    functionName: libtorrent::file_storage::file_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_storage::file_offset(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1075,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1075,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1075,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1076,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1083,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1084,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1084,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1085,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1073
    functionDepth: 2
    functionLinenumber: 1073
    functionLinenumberEnd: 1087
    functionName: libtorrent::file_storage::file_num_pieces
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - TORRENT_ASSERT
    - static_cast<std::int64_t>
    - aux::numeric_cast<int>
    - libtorrent::file_storage::end_file
    - file_index_t
    linkageType: ''
    returnType: int
    signature: int file_storage::file_num_pieces(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1089
    functionDepth: 3
    functionLinenumber: 1089
    functionLinenumberEnd: 1092
    functionName: libtorrent::file_storage::file_piece_range
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::file_num_pieces
    linkageType: ''
    returnType: index_range<piece_index_t::diff_type>
    signature: index_range<piece_index_t::diff_type> file_storage::file_piece_range(file_index_t
      const file) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1096,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1096,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1096,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1097,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1105,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1107
    functionName: libtorrent::file_storage::file_num_blocks
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - TORRENT_ASSERT
    - static_cast<std::int64_t>
    - libtorrent::file_storage::end_file
    - file_index_t
    linkageType: ''
    returnType: int
    signature: int file_storage::file_num_blocks(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1111,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1111,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1111,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1112,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/file_storage.cpp:1113,1
    - Dst: libtorrent::file_storage::file_num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:1113,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/file_storage.cpp:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1115
    functionName: libtorrent::file_storage::file_first_piece_node
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - merkle_num_nodes
    - TORRENT_ASSERT_PRECOND
    - merkle_num_leafs
    - libtorrent::file_storage::end_file
    - libtorrent::file_storage::file_num_pieces
    - file_index_t
    linkageType: ''
    returnType: int
    signature: int file_storage::file_first_piece_node(file_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1119,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1119,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1119,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1120,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/file_storage.cpp:1121,1
    - Dst: libtorrent::file_storage::file_num_blocks
      Src: /src/libtorrent/src/file_storage.cpp:1121,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/file_storage.cpp:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1117
    functionDepth: 3
    functionLinenumber: 1117
    functionLinenumberEnd: 1123
    functionName: libtorrent::file_storage::file_first_block_node
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::file_num_blocks
    - merkle_num_nodes
    - TORRENT_ASSERT_PRECOND
    - merkle_num_leafs
    - libtorrent::file_storage::end_file
    - file_index_t
    linkageType: ''
    returnType: int
    signature: int file_storage::file_first_block_node(file_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1127,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1127,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1133
    functionName: libtorrent::file_storage::file_flags
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t file_storage::file_flags(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1137,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1137,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1140
    functionName: libtorrent::file_storage::file_absolute_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: bool
    signature: bool file_storage::file_absolute_path(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:1145,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1146,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1146,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1147,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/file_storage.cpp:1147,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/file_storage.cpp:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1149
    functionName: libtorrent::file_storage::hash
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - front
    - libtorrent::file_storage::end_file
    - sha1_hash
    - size
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash file_storage::hash(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1153,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1155
    functionName: libtorrent::file_storage::symlink
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::symlink(aux::file_entry const& fe) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:1159,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1160,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1160,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1157
    functionDepth: 2
    functionLinenumber: 1157
    functionLinenumberEnd: 1163
    functionName: libtorrent::file_storage::mtime
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - size
    - front
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t file_storage::mtime(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:1167,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1168,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1170
    functionName: libtorrent::file_storage::file_index
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - size
    - front
    linkageType: ''
    returnType: int
    signature: int file_storage::file_index(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:1175,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1176,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1176,1
    - Dst: libtorrent::file_storage::file_path
      Src: /src/libtorrent/src/file_storage.cpp:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' fe'
    - ' save_path'
    argTypes:
    - aux::file_entry
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1178
    functionName: libtorrent::file_storage::file_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_storage::file_path
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - front
    linkageType: ''
    returnType: std::string
    signature: "std::string file_storage::file_path(aux::file_entry const& fe\n\t\t,
      std::string const& save_path) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1183
    functionName: libtorrent::file_storage::file_name
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - filename
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::file_name(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1188
    functionName: libtorrent::file_storage::file_size
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_storage::file_size(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1193
    functionName: libtorrent::file_storage::pad_file_at
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool file_storage::pad_file_at(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1198
    functionName: libtorrent::file_storage::file_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_storage::file_offset(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::at_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:1201,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - file_storage::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1201
    functionName: libtorrent::file_storage::at
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::at_deprecated
    - begin
    linkageType: ''
    returnType: file_entry
    signature: file_entry file_storage::at(file_storage::iterator i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1207,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1208,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1209,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1210,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1211,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1212,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1213,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1214,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1215,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1217
    functionName: libtorrent::file_storage::swap
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::file_storage::swap
    linkageType: ''
    returnType: void
    signature: void file_storage::swap(file_storage& ti) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::canonicalize_impl
      Src: /src/libtorrent/src/file_storage.cpp:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1222
    functionName: libtorrent::file_storage::canonicalize
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::canonicalize_impl
    linkageType: ''
    returnType: void
    signature: void file_storage::canonicalize()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1226,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1226,1
    - Dst: libtorrent::file_storage::file_range
      Src: /src/libtorrent/src/file_storage.cpp:1232,1
    - Dst: std::partition
      Src: /src/libtorrent/src/file_storage.cpp:1237,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/file_storage.cpp:1237,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/file_storage.cpp:1237,1
    - Dst: aux::vector::erase
      Src: /src/libtorrent/src/file_storage.cpp:1239,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/file_storage.cpp:1239,1
    - Dst: std::sort
      Src: /src/libtorrent/src/file_storage.cpp:1246,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/file_storage.cpp:1246,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/file_storage.cpp:1246,1
    - Dst: path_compare
      Src: /src/libtorrent/src/file_storage.cpp:1254,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1254,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1255,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1258,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1258,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1266,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/file_storage.cpp:1266,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1267,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1268,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/file_storage.cpp:1268,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1269,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1270,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/file_storage.cpp:1270,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1276,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1278,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1279,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1279,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1280,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:1281,1
    - Dst: aux::vector::back
      Src: /src/libtorrent/src/file_storage.cpp:1282,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1283,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1284,1
    - Dst: libtorrent::file_storage::get_or_add_path
      Src: /src/libtorrent/src/file_storage.cpp:1286,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/file_storage.cpp:1288,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:1289,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1292,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1293,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1294,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1295,1
    - Dst: add_pad_file
      Src: /src/libtorrent/src/file_storage.cpp:1302,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1304,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:1305,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1305,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:1307,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1308,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1309,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1310,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:1312,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1313,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1314,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1315,1
    - Dst: aux::vector::back
      Src: /src/libtorrent/src/file_storage.cpp:1317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1318,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1318,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1319,1
    - Dst: libtorrent::file_storage::num_files
      Src: /src/libtorrent/src/file_storage.cpp:1324,1
    - Dst: add_pad_file
      Src: /src/libtorrent/src/file_storage.cpp:1325,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1328,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1329,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1330,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - backwards_compatible
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1333
    functionName: libtorrent::file_storage::canonicalize_impl
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<std::uint64_t>
    - std::partition
    - std::move
    - aux::vector::back
    - libtorrent::file_storage::get_or_add_path
    - empty
    - add_pad_file
    - aux::vector::end
    - aux::vector::size
    - aux::vector::erase
    - path_compare
    - aux::vector::push_back
    - static_cast<std::int64_t>
    - aux::vector::begin
    - libtorrent::file_storage::file_range
    - filename
    - std::snprintf
    - aux::vector::reserve
    - TORRENT_ASSERT
    - libtorrent::file_storage::num_files
    - end_index
    - set_name
    - piece_length
    - aux::vector::emplace_back
    - std::sort
    linkageType: ''
    returnType: void
    signature: void file_storage::canonicalize_impl(bool const backwards_compatible)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_range
      Src: /src/libtorrent/src/file_storage.cpp:1356,1
    - Dst: libtorrent::file_storage::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1358,1
    - Dst: libtorrent::file_storage::file_range
      Src: /src/libtorrent/src/file_storage.cpp:1362,1
    - Dst: std::unordered_map::insert
      Src: /src/libtorrent/src/file_storage.cpp:1363,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1363,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1368,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1368,1
    - Dst: is_complete
      Src: /src/libtorrent/src/file_storage.cpp:1375,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1379,1
    - Dst: std::unordered_map::find
      Src: /src/libtorrent/src/file_storage.cpp:1383,1
    - Dst: std::unordered_map::end
      Src: /src/libtorrent/src/file_storage.cpp:1384,1
    - Dst: libtorrent::file_storage::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1387,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1392,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:1402,1
    - Dst: rsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:1402,1
    - Dst: std::unordered_set::insert
      Src: /src/libtorrent/src/file_storage.cpp:1403,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file_storage.cpp:1403,1
    - Dst: std::unordered_set::count
      Src: /src/libtorrent/src/file_storage.cpp:1407,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1411,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1422,1
    - Dst: std::find
      Src: /src/libtorrent/src/file_storage.cpp:1424,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:1424,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:1424,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:1425,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1428,1
    - Dst: std::unordered_set::count
      Src: /src/libtorrent/src/file_storage.cpp:1432,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1436,1
    - Dst: std::unordered_map::find
      Src: /src/libtorrent/src/file_storage.cpp:1440,1
    - Dst: std::unordered_map::end
      Src: /src/libtorrent/src/file_storage.cpp:1441,1
    - Dst: libtorrent::file_storage::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1444,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1449,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1458,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1459,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1468,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1468,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:1480,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:1481,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/file_storage.cpp:1481,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:1482,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:1482,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file_storage.cpp:1484,1
    - Dst: std::unordered_set::count
      Src: /src/libtorrent/src/file_storage.cpp:1486,1
    - Dst: std::unordered_map::find
      Src: /src/libtorrent/src/file_storage.cpp:1488,1
    - Dst: std::unordered_map::end
      Src: /src/libtorrent/src/file_storage.cpp:1489,1
    - Dst: std::set::count
      Src: /src/libtorrent/src/file_storage.cpp:1490,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/file_storage.cpp:1491,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1491,1
    - Dst: combine_path
      Src: /src/libtorrent/src/file_storage.cpp:1495,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/file_storage.cpp:1495,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:1495,1
    - Dst: std::unordered_map::count
      Src: /src/libtorrent/src/file_storage.cpp:1503,1
    - Dst: std::unordered_set::count
      Src: /src/libtorrent/src/file_storage.cpp:1504,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1512,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1335
    functionDepth: 3
    functionLinenumber: 1335
    functionLinenumberEnd: 1514
    functionName: libtorrent::file_storage::sanitize_symlinks
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::internal_file_path
    - std::move
    - begin
    - std::unordered_map::find
    - std::unordered_map::insert
    - append_path
    - end
    - std::find
    - string_view::empty
    - string_view::to_string
    - std::string::substr
    - lsplit_path
    - libtorrent::file_storage::file_range
    - std::unordered_set::count
    - TORRENT_ASSERT
    - std::unordered_map::end
    - std::unordered_set::insert
    - size
    - std::string::size
    - std::vector::push_back
    - combine_path
    - rsplit_path
    - std::set::count
    - string_view::size
    - is_complete
    - libtorrent::file_storage::file_flags
    - std::set::insert
    - std::unordered_map::count
    linkageType: ''
    returnType: void
    signature: void file_storage::sanitize_symlinks()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1520,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1520,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1523,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1523,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1526,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1526,1
    - Dst: file_range
      Src: /src/libtorrent/src/file_storage.cpp:1531,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1533,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1533,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1534,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1534,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1543,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1543,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1544,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1544,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_storage.cpp:1545,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_storage.cpp:1545,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_storage.cpp:1546,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_storage.cpp:1546,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1551,1
    - Dst: symlink
      Src: /src/libtorrent/src/file_storage.cpp:1552,1
    - Dst: symlink
      Src: /src/libtorrent/src/file_storage.cpp:1552,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - file_storage
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1558
    functionName: libtorrent::aux::files_compatible
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 14
    functionsReached:
    - total_size
    - num_files
    - file_path
    - piece_length
    - symlink
    - file_size
    - libtorrent::aux::file_flags
    - pad_file_at
    - file_range
    - file_offset
    linkageType: ''
    returnType: bool
    signature: bool files_compatible(file_storage const& lhs, file_storage const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_file
      Src: /src/libtorrent/src/file_storage.cpp:1563,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1564,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1565,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1566,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1566,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1571,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1571,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1572,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:1572,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1573,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1573,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/file_storage.cpp:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fs'
    - file
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1560
    functionDepth: 2
    functionLinenumber: 1560
    functionLinenumberEnd: 1575
    functionName: libtorrent::aux::file_piece_range_exclusive
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - num_files
    - piece_index_t
    - piece_length
    - num_pieces
    - file_size
    - std::make_tuple
    - file_index_t
    - map_file
    linkageType: ''
    returnType: std::tuple<piece_index_t, piece_index_t>
    signature: std::tuple<piece_index_t, piece_index_t> file_piece_range_exclusive(file_storage
      const& fs, file_index_t const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_file
      Src: /src/libtorrent/src/file_storage.cpp:1580,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1581,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1582,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1583,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1583,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/file_storage.cpp:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fs'
    - file
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1577
    functionDepth: 2
    functionLinenumber: 1577
    functionLinenumberEnd: 1586
    functionName: libtorrent::aux::file_piece_range_inclusive
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - piece_index_t
    - piece_length
    - file_size
    - std::make_tuple
    - map_file
    linkageType: ''
    returnType: std::tuple<piece_index_t, piece_index_t>
    signature: std::tuple<piece_index_t, piece_index_t> file_piece_range_inclusive(file_storage
      const& fs, file_index_t const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1590,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1592
    functionName: libtorrent::aux::calc_num_pieces
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 26
    functionsReached:
    - total_size
    - aux::numeric_cast<int>
    - piece_length
    linkageType: ''
    returnType: int
    signature: int calc_num_pieces(file_storage const& fs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/file_storage.cpp:1597,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1599,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1594
    functionDepth: 2
    functionLinenumber: 1594
    functionLinenumberEnd: 1603
    functionName: libtorrent::aux::size_on_disk
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_range
    - file_size
    - pad_file_at
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t size_on_disk(file_storage const& fs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1520,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1520,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1523,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1523,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1526,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1526,1
    - Dst: file_range
      Src: /src/libtorrent/src/file_storage.cpp:1531,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1533,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1533,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1534,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1534,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1543,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1543,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1544,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1544,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_storage.cpp:1545,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_storage.cpp:1545,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_storage.cpp:1546,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_storage.cpp:1546,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1551,1
    - Dst: symlink
      Src: /src/libtorrent/src/file_storage.cpp:1552,1
    - Dst: symlink
      Src: /src/libtorrent/src/file_storage.cpp:1552,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - file_storage
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1558
    functionName: libtorrent::aux::files_compatible
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 14
    functionsReached:
    - total_size
    - num_files
    - file_path
    - piece_length
    - symlink
    - file_size
    - libtorrent::aux::file_flags
    - pad_file_at
    - file_range
    - file_offset
    linkageType: ''
    returnType: bool
    signature: bool files_compatible(file_storage const& lhs, file_storage const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_file
      Src: /src/libtorrent/src/file_storage.cpp:1563,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1564,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1565,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1566,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1566,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1571,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1571,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1572,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:1572,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1573,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1573,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/file_storage.cpp:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fs'
    - file
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1560
    functionDepth: 2
    functionLinenumber: 1560
    functionLinenumberEnd: 1575
    functionName: libtorrent::aux::file_piece_range_exclusive
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - num_files
    - piece_index_t
    - piece_length
    - num_pieces
    - file_size
    - std::make_tuple
    - file_index_t
    - map_file
    linkageType: ''
    returnType: std::tuple<piece_index_t, piece_index_t>
    signature: std::tuple<piece_index_t, piece_index_t> file_piece_range_exclusive(file_storage
      const& fs, file_index_t const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_file
      Src: /src/libtorrent/src/file_storage.cpp:1580,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1581,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1582,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1583,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1583,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/file_storage.cpp:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fs'
    - file
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1577
    functionDepth: 2
    functionLinenumber: 1577
    functionLinenumberEnd: 1586
    functionName: libtorrent::aux::file_piece_range_inclusive
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - piece_index_t
    - piece_length
    - file_size
    - std::make_tuple
    - map_file
    linkageType: ''
    returnType: std::tuple<piece_index_t, piece_index_t>
    signature: std::tuple<piece_index_t, piece_index_t> file_piece_range_inclusive(file_storage
      const& fs, file_index_t const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1590,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1592
    functionName: libtorrent::aux::calc_num_pieces
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 26
    functionsReached:
    - total_size
    - aux::numeric_cast<int>
    - piece_length
    linkageType: ''
    returnType: int
    signature: int calc_num_pieces(file_storage const& fs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/file_storage.cpp:1597,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1599,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1594
    functionDepth: 2
    functionLinenumber: 1594
    functionLinenumberEnd: 1603
    functionName: libtorrent::aux::size_on_disk
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_range
    - file_size
    - pad_file_at
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t size_on_disk(file_storage const& fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::file_storage::file_storage
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_storage::file_storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: file_storage::~file_storage()
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_storage::~file_storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::file_storage::file_storage
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_storage::file_storage(file_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::file_storage::file_storage
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_storage::file_storage(file_storage&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::reserve
      Src: /src/libtorrent/src/file_storage.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_files
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::file_storage::reserve
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_storage::reserve
    linkageType: ''
    returnType: void
    signature: void file_storage::reserve(int num_files)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:99,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:99,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:99,1
    - Dst: last_piece
      Src: /src/libtorrent/src/file_storage.cpp:100,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:103,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:103,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:103,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:106,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:106,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: libtorrent::file_storage::piece_size
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - total_size
    - TORRENT_ASSERT_PRECOND
    - last_piece
    - std::int64_t
    - num_pieces
    - piece_length
    - TORRENT_ASSERT
    - piece_index_t
    - end_piece
    linkageType: ''
    returnType: int
    signature: int file_storage::piece_size(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - aux::file_entry
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::compare_file_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_file_offset(aux::file_entry const& lhs\n\t\t, aux::file_entry
      const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - aux::file_entry
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::compare_file_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_file_offset(aux::file_entry const& lhs\n\t\t, aux::file_entry
      const& rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:128,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:129,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:129,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:132,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:132,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:132,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:133,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:133,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:133,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:134,1
    - Dst: compare_file_offset
      Src: /src/libtorrent/src/file_storage.cpp:134,1
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:134,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/file_storage.cpp:136,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:137,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:137,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:139,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:140,1
    - Dst: libtorrent::file_storage::piece_size
      Src: /src/libtorrent/src/file_storage.cpp:140,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:144,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_storage.cpp:145,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:145,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: libtorrent::file_storage::piece_size2
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - static_cast<std::uint64_t>
    - compare_file_offset
    - begin
    - aux::numeric_cast<std::uint64_t>
    - std::upper_bound
    - TORRENT_ASSERT_PRECOND
    - end
    - front
    - TORRENT_ASSERT
    - piece_length
    - std::int64_t
    - std::min
    - libtorrent::file_storage::piece_size
    - end_piece
    linkageType: ''
    returnType: int
    signature: int file_storage::piece_size2(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::piece_size2
      Src: /src/libtorrent/src/file_storage.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: libtorrent::file_storage::blocks_in_piece2
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::piece_size2
    linkageType: ''
    returnType: int
    signature: int file_storage::blocks_in_piece2(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: libtorrent::file_storage::blocks_per_piece
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_storage::blocks_per_piece() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_complete
      Src: /src/libtorrent/src/file_storage.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:166,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:172,1
    - Dst: std::tie
      Src: /src/libtorrent/src/file_storage.cpp:178,1
    - Dst: rsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:178,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:180,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:182,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:189,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:191,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:193,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/file_storage.cpp:193,1
    - Dst: defined
      Src: /src/libtorrent/src/file_storage.cpp:194,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/file_storage.cpp:195,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/file_storage.cpp:198,1
    - Dst: libtorrent::file_storage::get_or_add_path
      Src: /src/libtorrent/src/file_storage.cpp:206,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - ' e'
    - ' path'
    - set_name
    argTypes:
    - aux::file_entry
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 208
    functionName: libtorrent::file_storage::update_path_index
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - lsplit_path
    - std::tie
    - rsplit_path
    - libtorrent::file_storage::get_or_add_path
    - set_name
    - TORRENT_ASSERT
    - string_view::empty
    - is_complete
    - defined
    - string_view::front
    - string_view::remove_prefix
    linkageType: ''
    returnType: void
    signature: "void file_storage::update_path_index(aux::file_entry& e\n\t\t, std::string
      const& path, bool const set_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/file_storage.cpp:213,1
    - Dst: rbegin
      Src: /src/libtorrent/src/file_storage.cpp:213,1
    - Dst: rend
      Src: /src/libtorrent/src/file_storage.cpp:213,1
    - Dst: rend
      Src: /src/libtorrent/src/file_storage.cpp:215,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:218,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:219,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:219,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:220,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/file_storage.cpp:220,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:220,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/file_storage.cpp:226,1
    - Dst: auto::base
      Src: /src/libtorrent/src/file_storage.cpp:227,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: libtorrent::file_storage::get_or_add_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 4
    functionsReached:
    - string_view::data
    - begin
    - aux::numeric_cast<std::uint32_t>
    - rbegin
    - std::find
    - auto::base
    - TORRENT_ASSERT
    - rend
    - string_view::size
    - emplace_back
    - end_index
    linkageType: ''
    returnType: aux::path_index_t
    signature: aux::path_index_t file_storage::get_or_add_path(string_view const path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: libtorrent::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: file_entry::~file_entry()
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::~file_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: file_entry::~file_entry()
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::~file_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_entry::set_name
      Src: /src/libtorrent/src/file_storage.cpp:274,1
    - Dst: libtorrent::aux::file_entry::filename
      Src: /src/libtorrent/src/file_storage.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_entry::filename
    - libtorrent::aux::file_entry::set_name
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry(file_entry const& fe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:294,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 297
    functionName: '& file_entry::operator=(file_entry const& fe) &'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - filename
    - set_name
    linkageType: ''
    returnType: file_entry
    signature: file_entry & file_entry::operator=(file_entry const& fe) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry(file_entry&& fe) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: '& file_entry::operator=(file_entry&& fe) & noexcept'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_entry
    signature: file_entry & file_entry::operator=(file_entry&& fe) & noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:351,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:358,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/file_storage.cpp:358,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/file_storage.cpp:360,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:361,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:361,1
    - Dst: allocate_string_copy
      Src: /src/libtorrent/src/file_storage.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - n
    - borrow_string
    argTypes:
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 368
    functionName: libtorrent::aux::file_entry::set_name
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 3
    functionsReached:
    - string_view::substr
    - string_view::data
    - aux::numeric_cast<std::uint64_t>
    - TORRENT_ASSERT
    - string_view::empty
    - string_view::size
    - allocate_string_copy
    linkageType: ''
    returnType: void
    signature: void file_entry::set_name(string_view n, bool const borrow_string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/src/file_storage.cpp:372,1
    - Dst: string_view
      Src: /src/libtorrent/src/file_storage.cpp:373,1
    - Dst: string_view
      Src: /src/libtorrent/src/file_storage.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: libtorrent::aux::file_entry::filename
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 4
    functionsReached:
    - string_view
    - std::size_t
    linkageType: ''
    returnType: string_view
    signature: string_view file_entry::filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: file_entry::~file_entry()
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::~file_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_entry::set_name
      Src: /src/libtorrent/src/file_storage.cpp:274,1
    - Dst: libtorrent::aux::file_entry::filename
      Src: /src/libtorrent/src/file_storage.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_entry::filename
    - libtorrent::aux::file_entry::set_name
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry(file_entry const& fe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:294,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 297
    functionName: '& file_entry::operator=(file_entry const& fe) &'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - filename
    - set_name
    linkageType: ''
    returnType: file_entry
    signature: file_entry & file_entry::operator=(file_entry const& fe) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: libtorrent::aux::file_entry::file_entry
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry::file_entry(file_entry&& fe) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: '& file_entry::operator=(file_entry&& fe) & noexcept'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: file_entry
    signature: file_entry & file_entry::operator=(file_entry&& fe) & noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:351,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:358,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/file_storage.cpp:358,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/file_storage.cpp:360,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:361,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:361,1
    - Dst: allocate_string_copy
      Src: /src/libtorrent/src/file_storage.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - n
    - borrow_string
    argTypes:
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 368
    functionName: libtorrent::aux::file_entry::set_name
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 4
    functionsReached:
    - string_view::substr
    - string_view::data
    - aux::numeric_cast<std::uint64_t>
    - TORRENT_ASSERT
    - string_view::empty
    - string_view::size
    - allocate_string_copy
    linkageType: ''
    returnType: void
    signature: void file_entry::set_name(string_view n, bool const borrow_string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/src/file_storage.cpp:372,1
    - Dst: string_view
      Src: /src/libtorrent/src/file_storage.cpp:373,1
    - Dst: string_view
      Src: /src/libtorrent/src/file_storage.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: libtorrent::aux::file_entry::filename
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 5
    functionsReached:
    - string_view
    - std::size_t
    linkageType: ''
    returnType: string_view
    signature: string_view file_entry::filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:384,1
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:385,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/file_storage.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - filename
    - filename_len
    - ' path'
    - file_size
    - file_flags
    - filehash
    - mtime
    - symlink_path
    argTypes:
    - char*
    - int
    - std::string
    - std::int64_t
    - file_flags_t
    - char*
    - std::int64_t
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: libtorrent::file_storage::add_file_borrow
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::file_storage::add_file_borrow
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file_borrow(char const* filename, int filename_len\n\t\t,
      std::string const& path, std::int64_t file_size, file_flags_t file_flags\n\t\t,
      char const* filehash, std::int64_t mtime, string_view symlink_path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ' fe'
    - filehash
    argTypes:
    - file_entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: libtorrent::file_storage::add_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::add_file_borrow
    linkageType: ''
    returnType: void
    signature: void file_storage::add_file(file_entry const& fe, char const* filehash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:405,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:405,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:405,1
    - Dst: libtorrent::file_storage::update_path_index
      Src: /src/libtorrent/src/file_storage.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - index
    - ' new_filename'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: libtorrent::file_storage::rename_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::update_path_index
    linkageType: ''
    returnType: void
    signature: "void file_storage::rename_file(file_index_t const index\n\t\t, std::string
      const& new_filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:414,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:415,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:416,1
    - Dst: compare_file_offset
      Src: /src/libtorrent/src/file_storage.cpp:416,1
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:416,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/file_storage.cpp:418,1
    - Dst: begin_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:419,1
    - Dst: end_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:419,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:421,1
    - Dst: begin_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - offset
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 424
    functionName: libtorrent::file_storage::file_at_offset_deprecated
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - compare_file_offset
    - aux::numeric_cast<std::uint64_t>
    - std::upper_bound
    - front
    - TORRENT_ASSERT
    - begin_deprecated
    - end_deprecated
    linkageType: ''
    returnType: file_storage::iterator
    signature: file_storage::iterator file_storage::file_at_offset_deprecated(std::int64_t
      offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_at_offset_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: libtorrent::file_storage::file_at_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::file_at_offset_deprecated
    linkageType: ''
    returnType: file_storage::iterator
    signature: file_storage::iterator file_storage::file_at_offset(std::int64_t offset)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:434,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:435,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:436,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:439,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:440,1
    - Dst: compare_file_offset
      Src: /src/libtorrent/src/file_storage.cpp:440,1
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:440,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/file_storage.cpp:442,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:443,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:445,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:445,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - offset
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 448
    functionName: libtorrent::file_storage::file_index_at_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - compare_file_offset
    - begin
    - aux::numeric_cast<std::uint64_t>
    - std::upper_bound
    - TORRENT_ASSERT_PRECOND
    - end
    - front
    - TORRENT_ASSERT
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::file_index_at_offset(std::int64_t const
      offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_index_at_offset
      Src: /src/libtorrent/src/file_storage.cpp:452,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:452,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:452,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: libtorrent::file_storage::file_index_at_piece
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - piece_length
    - std::int64_t
    - libtorrent::file_storage::file_index_at_offset
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::file_index_at_piece(piece_index_t const
      piece) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_range
      Src: /src/libtorrent/src/file_storage.cpp:458,1
    - Dst: libtorrent::file_storage::root
      Src: /src/libtorrent/src/file_storage.cpp:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' root_hash'
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: libtorrent::file_storage::file_index_for_root
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::file_range
    - libtorrent::file_storage::root
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::file_index_for_root(sha256_hash const& root_hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:467,1
    - Dst: libtorrent::file_storage::file_offset
      Src: /src/libtorrent/src/file_storage.cpp:467,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: libtorrent::file_storage::piece_index_at_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - piece_length
    - aux::numeric_cast<int>
    - libtorrent::file_storage::file_offset
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t file_storage::piece_index_at_file(file_index_t f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: libtorrent::file_storage::file_name_ptr
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * file_storage::file_name_ptr(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: libtorrent::file_storage::file_name_len
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_storage::file_name_len(file_index_t const index) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:487,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:488,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:488,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:489,1
    - Dst: libtorrent::file_storage::num_files
      Src: /src/libtorrent/src/file_storage.cpp:489,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:490,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:493,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:497,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:497,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:498,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:498,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:498,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:499,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:499,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:500,1
    - Dst: compare_file_offset
      Src: /src/libtorrent/src/file_storage.cpp:500,1
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:500,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:503,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:504,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/file_storage.cpp:506,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:507,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:507,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:509,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:509,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:515,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:515,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:516,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:519,1
    - Dst: std::min
      Src: /src/libtorrent/src/file_storage.cpp:521,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:521,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/file_storage.cpp:521,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:522,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:525,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - piece
    - offset
    - size
    argTypes:
    - piece_index_t
    - std::int64_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 531
    functionName: libtorrent::file_storage::map_block
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::vector::push_back
    - compare_file_offset
    - begin
    - aux::numeric_cast<std::uint64_t>
    - std::upper_bound
    - empty
    - TORRENT_ASSERT_PRECOND
    - end
    - front
    - TORRENT_ASSERT
    - std::int64_t
    - std::min
    - libtorrent::file_storage::num_files
    - file_index_t
    - end_piece
    linkageType: ''
    returnType: std::vector<file_slice>
    signature: "std::vector<file_slice> file_storage::map_block(piece_index_t const
      piece\n\t\t, std::int64_t const offset, std::int64_t size) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::at_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: libtorrent::file_storage::at
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::at_deprecated
    linkageType: ''
    returnType: file_entry
    signature: file_entry file_storage::at(int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:541,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:542,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:542,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: '& file_storage::internal_at(int const index) const'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - file_index_t
    - size
    linkageType: ''
    returnType: aux::file_entry
    signature: aux::file_entry & file_storage::internal_at(int const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:548,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:548,1
    - Dst: libtorrent::file_storage::file_path
      Src: /src/libtorrent/src/file_storage.cpp:551,1
    - Dst: libtorrent::file_storage::mtime
      Src: /src/libtorrent/src/file_storage.cpp:554,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/src/file_storage.cpp:560,1
    - Dst: libtorrent::file_storage::hash
      Src: /src/libtorrent/src/file_storage.cpp:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 563
    functionName: libtorrent::file_storage::at_deprecated
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::file_storage::mtime
    - libtorrent::file_storage::hash
    - libtorrent::file_storage::file_path
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::symlink
    - size
    linkageType: ''
    returnType: file_entry
    signature: file_entry file_storage::at_deprecated(int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 567
    functionName: libtorrent::file_storage::num_files
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 3
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int file_storage::num_files() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: libtorrent::file_storage::end_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 25
    functionsReached:
    - end_index
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::end_file() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 574
    functionName: libtorrent::file_storage::last_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - end_index
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file_storage::last_file() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/libtorrent/src/file_storage.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 577
    functionName: libtorrent::file_storage::file_range
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 4
    functionsReached:
    - range
    linkageType: ''
    returnType: index_range<file_index_t>
    signature: index_range<file_index_t> file_storage::file_range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 580
    functionName: libtorrent::file_storage::piece_range
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - end_piece
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: index_range<piece_index_t> file_storage::piece_range() const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:585,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:586,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:589,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:591,1
    - Dst: libtorrent::file_storage::file_offset
      Src: /src/libtorrent/src/file_storage.cpp:597,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:599,1
    - Dst: end_piece
      Src: /src/libtorrent/src/file_storage.cpp:601,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:607,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:607,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:608,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:610,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - file_index
    - file_offset
    - size
    argTypes:
    - file_index_t
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 614
    functionName: libtorrent::file_storage::map_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - total_size
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::file_offset
    - TORRENT_ASSERT
    - piece_length
    - libtorrent::file_storage::end_file
    - piece_index_t
    - end_piece
    linkageType: ''
    returnType: peer_request
    signature: "peer_request file_storage::map_file(file_index_t const file_index\n\t\t,
      std::int64_t const file_offset, int const size) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:622,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/file_storage.cpp:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - ' path'
    - file_size
    - file_flags
    - mtime
    - symlink_path
    - root_hash
    argTypes:
    - std::string
    - std::int64_t
    - file_flags_t
    - std::time_t
    - string_view
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: libtorrent::file_storage::add_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::add_file_borrow
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file(std::string const& path, std::int64_t
      const file_size\n\t\t, file_flags_t const file_flags, std::time_t const mtime,
      string_view const symlink_path\n\t\t, char const* root_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:634,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/file_storage.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - filename
    - ' path'
    - file_size
    - file_flags
    - filehash
    - mtime
    - symlink_path
    - root_hash
    argTypes:
    - string_view
    - std::string
    - std::int64_t
    - file_flags_t
    - char*
    - std::int64_t
    - string_view
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 637
    functionName: libtorrent::file_storage::add_file_borrow
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::file_storage::add_file_borrow
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file_borrow(string_view filename\n\t\t, std::string
      const& path, std::int64_t const file_size\n\t\t, file_flags_t const file_flags,
      char const* filehash\n\t\t, std::int64_t const mtime, string_view const symlink_path\n\t\t,
      char const* root_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::add_file_borrow
      Src: /src/libtorrent/src/file_storage.cpp:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' ec'
    - ' path'
    - file_size
    - file_flags
    - mtime
    - symlink_path
    - root_hash
    argTypes:
    - error_code
    - std::string
    - std::int64_t
    - file_flags_t
    - std::time_t
    - string_view
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 646
    functionName: libtorrent::file_storage::add_file
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::add_file_borrow
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file(error_code& ec, std::string const& path\n\t\t,
      std::int64_t const file_size, file_flags_t const file_flags, std::time_t const
      mtime\n\t\t, string_view symlink_path, char const* root_hash)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:654,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:655,1
    - Dst: is_complete
      Src: /src/libtorrent/src/file_storage.cpp:655,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:659,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:665,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:669,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:671,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:673,1
    - Dst: libtorrent::aux::file_entry::filename
      Src: /src/libtorrent/src/file_storage.cpp:677,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:679,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/file_storage.cpp:683,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:689,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:689,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:694,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:695,1
    - Dst: to_string
      Src: /src/libtorrent/src/file_storage.cpp:695,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:700,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:707,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:707,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:715,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:716,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:721,1
    - Dst: back
      Src: /src/libtorrent/src/file_storage.cpp:722,1
    - Dst: libtorrent::file_storage::update_path_index
      Src: /src/libtorrent/src/file_storage.cpp:729,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:729,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:732,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:733,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:735,1
    - Dst: aux::numeric_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:736,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:745,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:745,1
    - Dst: resize
      Src: /src/libtorrent/src/file_storage.cpp:745,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:745,1
    - Dst: libtorrent::file_storage::last_file
      Src: /src/libtorrent/src/file_storage.cpp:746,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:748,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:749,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:751,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:752,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file_storage.cpp:752,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:760,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:760,1
    - Dst: resize
      Src: /src/libtorrent/src/file_storage.cpp:760,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:760,1
    - Dst: libtorrent::file_storage::last_file
      Src: /src/libtorrent/src/file_storage.cpp:761,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/file_storage.cpp:761,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:770,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:772,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:772,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:773,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:773,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:774,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/file_storage.cpp:777,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:781,1
    - Dst: back
      Src: /src/libtorrent/src/file_storage.cpp:783,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:784,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:785,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:786,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:787,1
    - Dst: libtorrent::file_storage::get_or_add_path
      Src: /src/libtorrent/src/file_storage.cpp:788,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/file_storage.cpp:790,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:792,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 9
    argNames:
    - ' ec'
    - filename
    - ' path'
    - file_size
    - file_flags
    - filehash
    - mtime
    - symlink_path
    - root_hash
    argTypes:
    - error_code
    - string_view
    - std::string
    - std::int64_t
    - file_flags_t
    - char*
    - std::int64_t
    - string_view
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 796
    functionName: libtorrent::file_storage::add_file_borrow
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 10
    functionsReached:
    - to_string
    - libtorrent::file_storage::update_path_index
    - static_cast<std::uint64_t>
    - libtorrent::file_storage::get_or_add_path
    - empty
    - make_error_code
    - emplace_back
    - aux::numeric_cast<std::uint64_t>
    - string_view::empty
    - has_parent_path
    - back
    - string_view::to_string
    - lsplit_path
    - std::time_t
    - std::snprintf
    - TORRENT_ASSERT
    - size
    - libtorrent::file_storage::last_file
    - libtorrent::aux::file_entry::filename
    - TORRENT_ASSERT_PRECOND
    - set_name
    - piece_length
    - string_view::size
    - resize
    - is_complete
    linkageType: ''
    returnType: void
    signature: "void file_storage::add_file_borrow(error_code& ec, string_view filename\n\t\t,
      std::string const& path, std::int64_t const file_size\n\t\t, file_flags_t const
      file_flags, char const* filehash\n\t\t, std::int64_t const mtime, string_view
      const symlink_path\n\t\t, char const* root_hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:802,1
    - Dst: libtorrent::file_storage::file_size
      Src: /src/libtorrent/src/file_storage.cpp:807,1
    - Dst: libtorrent::file_storage::pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:808,1
    - Dst: libtorrent::file_storage::file_size
      Src: /src/libtorrent/src/file_storage.cpp:810,1
    - Dst: erase
      Src: /src/libtorrent/src/file_storage.cpp:811,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:811,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:812,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:814,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 823
    functionName: libtorrent::file_storage::remove_tail_padding
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint64_t>
    - begin
    - erase
    - libtorrent::file_storage::pad_file_at
    - TORRENT_ASSERT
    - libtorrent::file_storage::end_file
    - libtorrent::file_storage::file_size
    linkageType: ''
    returnType: void
    signature: void file_storage::remove_tail_padding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:827,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:827,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:828,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/file_storage.cpp:828,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/file_storage.cpp:829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: libtorrent::file_storage::hash
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - sha1_hash
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - end_index
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash file_storage::hash(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:834,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:834,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/file_storage.cpp:835,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/file_storage.cpp:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: libtorrent::file_storage::root
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - sha256_hash
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash file_storage::root(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:841,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 843
    functionName: libtorrent::file_storage::root_ptr
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: char
    signature: char * file_storage::root_ptr(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:847,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:847,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:852,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:852,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:857,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:857,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:857,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/file_storage.cpp:858,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 861
    functionName: libtorrent::file_storage::symlink
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 3
    functionsReached:
    - append_path
    - TORRENT_ASSERT_PRECOND
    - TORRENT_ASSERT
    - libtorrent::file_storage::end_file
    - std::string::assign
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::symlink(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:865,1
    - Dst: end_file
      Src: /src/libtorrent/src/file_storage.cpp:865,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:867,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 870
    functionName: '& file_storage::internal_symlink(file_index_t const index) const'
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - end_file
    - TORRENT_ASSERT
    - TORRENT_ASSERT_PRECOND
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string & file_storage::internal_symlink(file_index_t const index)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:874,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:874,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 877
    functionName: libtorrent::file_storage::mtime
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - end_index
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t file_storage::mtime(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_byte
      Src: /src/libtorrent/src/file_storage.cpp:885,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/file_storage.cpp:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' crc'
    - str
    argTypes:
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: libtorrent::process_string_lowercase
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_lower
    - process_byte
    linkageType: ''
    returnType: void
    signature: void process_string_lowercase(CRC& crc, string_view str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:893,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/file_storage.cpp:897,1
    - Dst: CRC::checksum
      Src: /src/libtorrent/src/file_storage.cpp:897,1
    - Dst: CRC::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:898,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/file_storage.cpp:898,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/file_storage.cpp:900,1
    - Dst: CRC::checksum
      Src: /src/libtorrent/src/file_storage.cpp:900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ' table'
    - crc
    - str
    argTypes:
    - std::unordered_set<std::uint32_t>
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: libtorrent::process_path_lowercase
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::insert
    - CRC::checksum
    - string_view::empty
    - CRC::process_byte
    - libtorrent::to_lower
    linkageType: ''
    returnType: void
    signature: "void process_path_lowercase(\n\t\t\tstd::unordered_set<std::uint32_t>&
      table\n\t\t\t, CRC crc, string_view str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_byte
      Src: /src/libtorrent/src/file_storage.cpp:885,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/file_storage.cpp:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' crc'
    - str
    argTypes:
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: libtorrent::process_string_lowercase
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_lower
    - process_byte
    linkageType: ''
    returnType: void
    signature: void process_string_lowercase(CRC& crc, string_view str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:893,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/file_storage.cpp:897,1
    - Dst: CRC::checksum
      Src: /src/libtorrent/src/file_storage.cpp:897,1
    - Dst: CRC::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:898,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/file_storage.cpp:898,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/file_storage.cpp:900,1
    - Dst: CRC::checksum
      Src: /src/libtorrent/src/file_storage.cpp:900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ' table'
    - crc
    - str
    argTypes:
    - std::unordered_set<std::uint32_t>
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: libtorrent::process_path_lowercase
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::insert
    - CRC::checksum
    - string_view::empty
    - CRC::process_byte
    - libtorrent::to_lower
    linkageType: ''
    returnType: void
    signature: "void process_path_lowercase(\n\t\t\tstd::unordered_set<std::uint32_t>&
      table\n\t\t\t, CRC crc, string_view str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:909,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:911,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:912,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:912,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:913,1
    - Dst: process_path_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' table'
    argTypes:
    - std::unordered_set<std::uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 918
    functionName: libtorrent::file_storage::all_path_hashes
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - boost::crc_optimal::process_byte
    - process_path_lowercase
    - empty
    - TORRENT_ASSERT
    - process_string_lowercase
    - size
    linkageType: ''
    returnType: void
    signature: "void file_storage::all_path_hashes(\n\t\tstd::unordered_set<std::uint32_t>&
      table) const"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:923,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:923,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:923,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:930,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:930,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:934,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:936,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:937,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:937,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:938,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:940,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:940,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:944,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:946,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:947,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:947,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:948,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:951,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:953,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:954,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:954,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:955,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:957,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:957,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:961,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:963,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:964,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:964,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:965,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:967,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:968,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:968,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:969,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:969,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:970,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:973,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:975,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:976,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:976,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:977,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:977,1
    - Dst: boost::crc_optimal::process_byte
      Src: /src/libtorrent/src/file_storage.cpp:978,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/file_storage.cpp:980,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:980,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/src/file_storage.cpp:983,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - index
    - ' save_path'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 984
    functionName: libtorrent::file_storage::file_path_hash
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - boost::crc_optimal::process_byte
    - filename
    - TORRENT_ASSERT_PRECOND
    - empty
    - boost::crc_optimal::checksum
    - TORRENT_ASSERT
    - process_string_lowercase
    - libtorrent::file_storage::end_file
    - file_index_t
    - size
    linkageType: ''
    returnType: std::uint32_t
    signature: "std::uint32_t file_storage::file_path_hash(file_index_t const index\n\t\t,
      std::string const& save_path) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:988,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:988,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:988,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:995,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:999,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:999,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:999,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/file_storage.cpp:1000,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1001,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1001,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1007,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1007,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1007,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1007,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/file_storage.cpp:1008,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1009,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1010,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1010,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1016,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/file_storage.cpp:1017,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1018,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1019,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1020,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - index
    - ' save_path'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1025
    functionName: libtorrent::file_storage::file_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 3
    functionsReached:
    - append_path
    - filename
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::end_file
    - std::string::assign
    - file_index_t
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::file_path(file_index_t const index, std::string
      const& save_path) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1029,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1029,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1029,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1037,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1037,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1037,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1038,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1039,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1039,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1046
    functionName: libtorrent::file_storage::internal_file_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - append_path
    - filename
    - TORRENT_ASSERT_PRECOND
    - libtorrent::file_storage::end_file
    - file_index_t
    - size
    - std::string::reserve
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::internal_file_path(file_index_t const index)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1050,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1050,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1050,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1053
    functionName: libtorrent::file_storage::file_name
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - filename
    linkageType: ''
    returnType: string_view
    signature: string_view file_storage::file_name(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1057,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1057,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1059
    functionName: libtorrent::file_storage::file_size
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_storage::file_size(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1063,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1063,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1065
    functionName: libtorrent::file_storage::pad_file_at
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: bool
    signature: bool file_storage::pad_file_at(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1069,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1069,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1071
    functionName: libtorrent::file_storage::file_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 4
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_storage::file_offset(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1075,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1075,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1075,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1076,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1083,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1084,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1084,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1085,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1073
    functionDepth: 2
    functionLinenumber: 1073
    functionLinenumberEnd: 1087
    functionName: libtorrent::file_storage::file_num_pieces
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - TORRENT_ASSERT
    - static_cast<std::int64_t>
    - aux::numeric_cast<int>
    - libtorrent::file_storage::end_file
    - file_index_t
    linkageType: ''
    returnType: int
    signature: int file_storage::file_num_pieces(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1089
    functionDepth: 3
    functionLinenumber: 1089
    functionLinenumberEnd: 1092
    functionName: libtorrent::file_storage::file_piece_range
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::file_num_pieces
    linkageType: ''
    returnType: index_range<piece_index_t::diff_type>
    signature: index_range<piece_index_t::diff_type> file_storage::file_piece_range(file_index_t
      const file) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1096,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1096,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1096,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1097,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1105,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1107
    functionName: libtorrent::file_storage::file_num_blocks
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - TORRENT_ASSERT
    - static_cast<std::int64_t>
    - libtorrent::file_storage::end_file
    - file_index_t
    linkageType: ''
    returnType: int
    signature: int file_storage::file_num_blocks(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1111,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1111,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1111,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1112,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/file_storage.cpp:1113,1
    - Dst: libtorrent::file_storage::file_num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:1113,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/file_storage.cpp:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1115
    functionName: libtorrent::file_storage::file_first_piece_node
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - merkle_num_nodes
    - TORRENT_ASSERT_PRECOND
    - merkle_num_leafs
    - libtorrent::file_storage::end_file
    - libtorrent::file_storage::file_num_pieces
    - file_index_t
    linkageType: ''
    returnType: int
    signature: int file_storage::file_first_piece_node(file_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1119,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1119,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1119,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1120,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/file_storage.cpp:1121,1
    - Dst: libtorrent::file_storage::file_num_blocks
      Src: /src/libtorrent/src/file_storage.cpp:1121,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/file_storage.cpp:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1117
    functionDepth: 3
    functionLinenumber: 1117
    functionLinenumberEnd: 1123
    functionName: libtorrent::file_storage::file_first_block_node
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::file_num_blocks
    - merkle_num_nodes
    - TORRENT_ASSERT_PRECOND
    - merkle_num_leafs
    - libtorrent::file_storage::end_file
    - file_index_t
    linkageType: ''
    returnType: int
    signature: int file_storage::file_first_block_node(file_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1127,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1127,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1133
    functionName: libtorrent::file_storage::file_flags
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t file_storage::file_flags(file_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1137,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1137,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1140
    functionName: libtorrent::file_storage::file_absolute_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - file_index_t
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: bool
    signature: bool file_storage::file_absolute_path(file_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:1145,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1146,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1146,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1147,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/file_storage.cpp:1147,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/file_storage.cpp:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1149
    functionName: libtorrent::file_storage::hash
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - front
    - libtorrent::file_storage::end_file
    - sha1_hash
    - size
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash file_storage::hash(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1153,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1155
    functionName: libtorrent::file_storage::symlink
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::symlink(aux::file_entry const& fe) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:1159,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1160,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1160,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1157
    functionDepth: 2
    functionLinenumber: 1157
    functionLinenumberEnd: 1163
    functionName: libtorrent::file_storage::mtime
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - size
    - front
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t file_storage::mtime(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:1167,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1168,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1170
    functionName: libtorrent::file_storage::file_index
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    - size
    - front
    linkageType: ''
    returnType: int
    signature: int file_storage::file_index(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: front
      Src: /src/libtorrent/src/file_storage.cpp:1175,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/file_storage.cpp:1176,1
    - Dst: libtorrent::file_storage::end_file
      Src: /src/libtorrent/src/file_storage.cpp:1176,1
    - Dst: libtorrent::file_storage::file_path
      Src: /src/libtorrent/src/file_storage.cpp:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' fe'
    - ' save_path'
    argTypes:
    - aux::file_entry
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1178
    functionName: libtorrent::file_storage::file_path
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::file_storage::file_path
    - libtorrent::file_storage::end_file
    - TORRENT_ASSERT_PRECOND
    - front
    linkageType: ''
    returnType: std::string
    signature: "std::string file_storage::file_path(aux::file_entry const& fe\n\t\t,
      std::string const& save_path) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1183
    functionName: libtorrent::file_storage::file_name
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - filename
    linkageType: ''
    returnType: std::string
    signature: std::string file_storage::file_name(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1188
    functionName: libtorrent::file_storage::file_size
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_storage::file_size(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1193
    functionName: libtorrent::file_storage::pad_file_at
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool file_storage::pad_file_at(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - aux::file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1198
    functionName: libtorrent::file_storage::file_offset
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t file_storage::file_offset(aux::file_entry const& fe) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::at_deprecated
      Src: /src/libtorrent/src/file_storage.cpp:1201,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - file_storage::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1201
    functionName: libtorrent::file_storage::at
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::at_deprecated
    - begin
    linkageType: ''
    returnType: file_entry
    signature: file_entry file_storage::at(file_storage::iterator i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1207,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1208,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1209,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1210,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1211,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1212,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1213,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1214,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1215,1
    - Dst: libtorrent::file_storage::swap
      Src: /src/libtorrent/src/file_storage.cpp:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1217
    functionName: libtorrent::file_storage::swap
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_storage::swap
    linkageType: ''
    returnType: void
    signature: void file_storage::swap(file_storage& ti) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::canonicalize_impl
      Src: /src/libtorrent/src/file_storage.cpp:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1219
    functionDepth: 3
    functionLinenumber: 1219
    functionLinenumberEnd: 1222
    functionName: libtorrent::file_storage::canonicalize
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::canonicalize_impl
    linkageType: ''
    returnType: void
    signature: void file_storage::canonicalize()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1226,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1226,1
    - Dst: libtorrent::file_storage::file_range
      Src: /src/libtorrent/src/file_storage.cpp:1232,1
    - Dst: std::partition
      Src: /src/libtorrent/src/file_storage.cpp:1237,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/file_storage.cpp:1237,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/file_storage.cpp:1237,1
    - Dst: aux::vector::erase
      Src: /src/libtorrent/src/file_storage.cpp:1239,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/file_storage.cpp:1239,1
    - Dst: std::sort
      Src: /src/libtorrent/src/file_storage.cpp:1246,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/file_storage.cpp:1246,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/file_storage.cpp:1246,1
    - Dst: path_compare
      Src: /src/libtorrent/src/file_storage.cpp:1254,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1254,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1255,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1258,1
    - Dst: filename
      Src: /src/libtorrent/src/file_storage.cpp:1258,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1266,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/file_storage.cpp:1266,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1267,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1268,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/file_storage.cpp:1268,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1269,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/file_storage.cpp:1270,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/file_storage.cpp:1270,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1276,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1278,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1279,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1279,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1280,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:1281,1
    - Dst: aux::vector::back
      Src: /src/libtorrent/src/file_storage.cpp:1282,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1283,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1284,1
    - Dst: libtorrent::file_storage::get_or_add_path
      Src: /src/libtorrent/src/file_storage.cpp:1286,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/file_storage.cpp:1288,1
    - Dst: set_name
      Src: /src/libtorrent/src/file_storage.cpp:1289,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1292,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1293,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1294,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1295,1
    - Dst: add_pad_file
      Src: /src/libtorrent/src/file_storage.cpp:1302,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1304,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/file_storage.cpp:1305,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1305,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:1307,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1308,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1309,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1310,1
    - Dst: end_index
      Src: /src/libtorrent/src/file_storage.cpp:1312,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1313,1
    - Dst: empty
      Src: /src/libtorrent/src/file_storage.cpp:1314,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1315,1
    - Dst: aux::vector::back
      Src: /src/libtorrent/src/file_storage.cpp:1317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1318,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1318,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/src/file_storage.cpp:1319,1
    - Dst: libtorrent::file_storage::num_files
      Src: /src/libtorrent/src/file_storage.cpp:1324,1
    - Dst: add_pad_file
      Src: /src/libtorrent/src/file_storage.cpp:1325,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1328,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1329,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1330,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - backwards_compatible
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1333
    functionName: libtorrent::file_storage::canonicalize_impl
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<std::uint64_t>
    - std::partition
    - std::move
    - aux::vector::back
    - libtorrent::file_storage::get_or_add_path
    - empty
    - add_pad_file
    - aux::vector::end
    - aux::vector::size
    - aux::vector::erase
    - path_compare
    - aux::vector::push_back
    - static_cast<std::int64_t>
    - aux::vector::begin
    - libtorrent::file_storage::file_range
    - filename
    - std::snprintf
    - aux::vector::reserve
    - TORRENT_ASSERT
    - libtorrent::file_storage::num_files
    - end_index
    - set_name
    - piece_length
    - aux::vector::emplace_back
    - std::sort
    linkageType: ''
    returnType: void
    signature: void file_storage::canonicalize_impl(bool const backwards_compatible)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage::file_range
      Src: /src/libtorrent/src/file_storage.cpp:1356,1
    - Dst: libtorrent::file_storage::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1358,1
    - Dst: libtorrent::file_storage::file_range
      Src: /src/libtorrent/src/file_storage.cpp:1362,1
    - Dst: std::unordered_map::insert
      Src: /src/libtorrent/src/file_storage.cpp:1363,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1363,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1368,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1368,1
    - Dst: is_complete
      Src: /src/libtorrent/src/file_storage.cpp:1375,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1379,1
    - Dst: std::unordered_map::find
      Src: /src/libtorrent/src/file_storage.cpp:1383,1
    - Dst: std::unordered_map::end
      Src: /src/libtorrent/src/file_storage.cpp:1384,1
    - Dst: libtorrent::file_storage::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1387,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1392,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/file_storage.cpp:1402,1
    - Dst: rsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:1402,1
    - Dst: std::unordered_set::insert
      Src: /src/libtorrent/src/file_storage.cpp:1403,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file_storage.cpp:1403,1
    - Dst: std::unordered_set::count
      Src: /src/libtorrent/src/file_storage.cpp:1407,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1411,1
    - Dst: append_path
      Src: /src/libtorrent/src/file_storage.cpp:1422,1
    - Dst: std::find
      Src: /src/libtorrent/src/file_storage.cpp:1424,1
    - Dst: begin
      Src: /src/libtorrent/src/file_storage.cpp:1424,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:1424,1
    - Dst: end
      Src: /src/libtorrent/src/file_storage.cpp:1425,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1428,1
    - Dst: std::unordered_set::count
      Src: /src/libtorrent/src/file_storage.cpp:1432,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1436,1
    - Dst: std::unordered_map::find
      Src: /src/libtorrent/src/file_storage.cpp:1440,1
    - Dst: std::unordered_map::end
      Src: /src/libtorrent/src/file_storage.cpp:1441,1
    - Dst: libtorrent::file_storage::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1444,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1449,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1458,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/file_storage.cpp:1459,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_storage.cpp:1468,1
    - Dst: size
      Src: /src/libtorrent/src/file_storage.cpp:1468,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:1480,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:1481,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/file_storage.cpp:1481,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/file_storage.cpp:1482,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:1482,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/file_storage.cpp:1484,1
    - Dst: std::unordered_set::count
      Src: /src/libtorrent/src/file_storage.cpp:1486,1
    - Dst: std::unordered_map::find
      Src: /src/libtorrent/src/file_storage.cpp:1488,1
    - Dst: std::unordered_map::end
      Src: /src/libtorrent/src/file_storage.cpp:1489,1
    - Dst: std::set::count
      Src: /src/libtorrent/src/file_storage.cpp:1490,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/file_storage.cpp:1491,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_storage.cpp:1491,1
    - Dst: combine_path
      Src: /src/libtorrent/src/file_storage.cpp:1495,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/file_storage.cpp:1495,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/file_storage.cpp:1495,1
    - Dst: std::unordered_map::count
      Src: /src/libtorrent/src/file_storage.cpp:1503,1
    - Dst: std::unordered_set::count
      Src: /src/libtorrent/src/file_storage.cpp:1504,1
    - Dst: libtorrent::file_storage::internal_file_path
      Src: /src/libtorrent/src/file_storage.cpp:1512,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1335
    functionDepth: 3
    functionLinenumber: 1335
    functionLinenumberEnd: 1514
    functionName: libtorrent::file_storage::sanitize_symlinks
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_storage::internal_file_path
    - std::move
    - begin
    - std::unordered_map::find
    - std::unordered_map::insert
    - append_path
    - end
    - std::find
    - string_view::empty
    - string_view::to_string
    - std::string::substr
    - lsplit_path
    - libtorrent::file_storage::file_range
    - std::unordered_set::count
    - TORRENT_ASSERT
    - std::unordered_map::end
    - std::unordered_set::insert
    - size
    - std::string::size
    - std::vector::push_back
    - combine_path
    - rsplit_path
    - std::set::count
    - string_view::size
    - is_complete
    - libtorrent::file_storage::file_flags
    - std::set::insert
    - std::unordered_map::count
    linkageType: ''
    returnType: void
    signature: void file_storage::sanitize_symlinks()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1520,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1520,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1523,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1523,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1526,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1526,1
    - Dst: file_range
      Src: /src/libtorrent/src/file_storage.cpp:1531,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1533,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1533,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1534,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1534,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1543,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1543,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1544,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1544,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_storage.cpp:1545,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_storage.cpp:1545,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_storage.cpp:1546,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_storage.cpp:1546,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1551,1
    - Dst: symlink
      Src: /src/libtorrent/src/file_storage.cpp:1552,1
    - Dst: symlink
      Src: /src/libtorrent/src/file_storage.cpp:1552,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - file_storage
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1558
    functionName: libtorrent::aux::files_compatible
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 14
    functionsReached:
    - total_size
    - num_files
    - file_path
    - piece_length
    - symlink
    - file_size
    - libtorrent::aux::file_flags
    - pad_file_at
    - file_range
    - file_offset
    linkageType: ''
    returnType: bool
    signature: bool files_compatible(file_storage const& lhs, file_storage const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_file
      Src: /src/libtorrent/src/file_storage.cpp:1563,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1564,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1565,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1566,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1566,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1571,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1571,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1572,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:1572,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1573,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1573,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/file_storage.cpp:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fs'
    - file
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1560
    functionDepth: 2
    functionLinenumber: 1560
    functionLinenumberEnd: 1575
    functionName: libtorrent::aux::file_piece_range_exclusive
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - num_files
    - piece_index_t
    - piece_length
    - num_pieces
    - file_size
    - std::make_tuple
    - file_index_t
    - map_file
    linkageType: ''
    returnType: std::tuple<piece_index_t, piece_index_t>
    signature: std::tuple<piece_index_t, piece_index_t> file_piece_range_exclusive(file_storage
      const& fs, file_index_t const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_file
      Src: /src/libtorrent/src/file_storage.cpp:1580,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1581,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1582,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1583,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1583,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/file_storage.cpp:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fs'
    - file
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1577
    functionDepth: 2
    functionLinenumber: 1577
    functionLinenumberEnd: 1586
    functionName: libtorrent::aux::file_piece_range_inclusive
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - piece_index_t
    - piece_length
    - file_size
    - std::make_tuple
    - map_file
    linkageType: ''
    returnType: std::tuple<piece_index_t, piece_index_t>
    signature: std::tuple<piece_index_t, piece_index_t> file_piece_range_inclusive(file_storage
      const& fs, file_index_t const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1590,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1592
    functionName: libtorrent::aux::calc_num_pieces
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 26
    functionsReached:
    - total_size
    - aux::numeric_cast<int>
    - piece_length
    linkageType: ''
    returnType: int
    signature: int calc_num_pieces(file_storage const& fs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/file_storage.cpp:1597,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1599,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1594
    functionDepth: 2
    functionLinenumber: 1594
    functionLinenumberEnd: 1603
    functionName: libtorrent::aux::size_on_disk
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_range
    - file_size
    - pad_file_at
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t size_on_disk(file_storage const& fs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1520,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1520,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1523,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1523,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1526,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1526,1
    - Dst: file_range
      Src: /src/libtorrent/src/file_storage.cpp:1531,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1533,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1533,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1534,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1534,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1543,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1543,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1544,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1544,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_storage.cpp:1545,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_storage.cpp:1545,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_storage.cpp:1546,1
    - Dst: file_offset
      Src: /src/libtorrent/src/file_storage.cpp:1546,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/file_storage.cpp:1551,1
    - Dst: symlink
      Src: /src/libtorrent/src/file_storage.cpp:1552,1
    - Dst: symlink
      Src: /src/libtorrent/src/file_storage.cpp:1552,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - file_storage
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1558
    functionName: libtorrent::aux::files_compatible
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 14
    functionsReached:
    - total_size
    - num_files
    - file_path
    - piece_length
    - symlink
    - file_size
    - libtorrent::aux::file_flags
    - pad_file_at
    - file_range
    - file_offset
    linkageType: ''
    returnType: bool
    signature: bool files_compatible(file_storage const& lhs, file_storage const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_file
      Src: /src/libtorrent/src/file_storage.cpp:1563,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1564,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1565,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1566,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1566,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1571,1
    - Dst: num_files
      Src: /src/libtorrent/src/file_storage.cpp:1571,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1572,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/file_storage.cpp:1572,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1573,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1573,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/file_storage.cpp:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fs'
    - file
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1560
    functionDepth: 2
    functionLinenumber: 1560
    functionLinenumberEnd: 1575
    functionName: libtorrent::aux::file_piece_range_exclusive
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - num_files
    - piece_index_t
    - piece_length
    - num_pieces
    - file_size
    - std::make_tuple
    - file_index_t
    - map_file
    linkageType: ''
    returnType: std::tuple<piece_index_t, piece_index_t>
    signature: std::tuple<piece_index_t, piece_index_t> file_piece_range_exclusive(file_storage
      const& fs, file_index_t const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_file
      Src: /src/libtorrent/src/file_storage.cpp:1580,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1581,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1582,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/file_storage.cpp:1583,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1583,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/file_storage.cpp:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fs'
    - file
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1577
    functionDepth: 2
    functionLinenumber: 1577
    functionLinenumberEnd: 1586
    functionName: libtorrent::aux::file_piece_range_inclusive
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - piece_index_t
    - piece_length
    - file_size
    - std::make_tuple
    - map_file
    linkageType: ''
    returnType: std::tuple<piece_index_t, piece_index_t>
    signature: std::tuple<piece_index_t, piece_index_t> file_piece_range_inclusive(file_storage
      const& fs, file_index_t const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/file_storage.cpp:1590,1
    - Dst: total_size
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    - Dst: piece_length
      Src: /src/libtorrent/src/file_storage.cpp:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1592
    functionName: libtorrent::aux::calc_num_pieces
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 26
    functionsReached:
    - total_size
    - aux::numeric_cast<int>
    - piece_length
    linkageType: ''
    returnType: int
    signature: int calc_num_pieces(file_storage const& fs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/file_storage.cpp:1597,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/file_storage.cpp:1599,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_storage.cpp:1600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' fs'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1594
    functionDepth: 2
    functionLinenumber: 1594
    functionLinenumberEnd: 1603
    functionName: libtorrent::aux::size_on_disk
    functionSourceFile: /src/libtorrent/src/file_storage.cpp
    functionUses: 1
    functionsReached:
    - file_range
    - file_size
    - pad_file_at
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t size_on_disk(file_storage const& fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/tracker_manager.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: libtorrent::timeout_handler::timeout_handler
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void timeout_handler::timeout_handler(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: timeout_handler::~timeout_handler()
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void timeout_handler::~timeout_handler()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/tracker_manager.cpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:72,1
    - Dst: std::min
      Src: /src/libtorrent/src/tracker_manager.cpp:82,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/tracker_manager.cpp:85,1
    - Dst: expires_at
      Src: /src/libtorrent/src/tracker_manager.cpp:86,1
    - Dst: seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:86,1
    - Dst: async_wait
      Src: /src/libtorrent/src/tracker_manager.cpp:87,1
    - Dst: std::bind
      Src: /src/libtorrent/src/tracker_manager.cpp:87,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/tracker_manager.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - completion_timeout
    - read_timeout
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 92
    functionName: libtorrent::timeout_handler::set_timeout
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - shared_from_this
    - async_wait
    - seconds
    - TORRENT_ASSERT
    - std::min
    - expires_at
    linkageType: ''
    returnType: void
    signature: void timeout_handler::set_timeout(int completion_timeout, int read_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/tracker_manager.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: libtorrent::timeout_handler::restart_read_timeout
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void timeout_handler::restart_read_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::timeout_handler::cancel
      Src: /src/libtorrent/src/tracker_manager.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: libtorrent::timeout_handler::cancel
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::timeout_handler::cancel
    linkageType: ''
    returnType: void
    signature: void timeout_handler::cancel()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/tracker_manager.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:110,1
    - Dst: time_now
      Src: /src/libtorrent/src/tracker_manager.cpp:115,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:120,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:122,1
    - Dst: on_timeout
      Src: /src/libtorrent/src/tracker_manager.cpp:125,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:134,1
    - Dst: std::min
      Src: /src/libtorrent/src/tracker_manager.cpp:135,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:135,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/tracker_manager.cpp:137,1
    - Dst: expires_at
      Src: /src/libtorrent/src/tracker_manager.cpp:138,1
    - Dst: seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:138,1
    - Dst: async_wait
      Src: /src/libtorrent/src/tracker_manager.cpp:139,1
    - Dst: std::bind
      Src: /src/libtorrent/src/tracker_manager.cpp:140,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/tracker_manager.cpp:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 144
    functionName: libtorrent::timeout_handler::timeout_callback
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - shared_from_this
    - async_wait
    - total_seconds
    - seconds
    - TORRENT_ASSERT
    - std::min
    - expires_at
    - on_timeout
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void timeout_handler::timeout_callback(error_code const& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:152,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' man'
    - req
    - ' ios'
    - r
    argTypes:
    - tracker_manager
    - tracker_request
    - io_context
    - std::weak_ptr<request_callback>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: libtorrent::tracker_connection::tracker_connection
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void tracker_connection::tracker_connection(\n\t\ttracker_manager&
      man\n\t\t, tracker_request req\n\t\t, io_context& ios\n\t\t, std::weak_ptr<request_callback>
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/tracker_manager.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: libtorrent::tracker_connection::requester
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: std::shared_ptr<request_callback>
    signature: std::shared_ptr<request_callback> tracker_connection::requester() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/tracker_manager.cpp:166,1
    - Dst: get_executor
      Src: /src/libtorrent/src/tracker_manager.cpp:166,1
    - Dst: std::bind
      Src: /src/libtorrent/src/tracker_manager.cpp:166,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/tracker_manager.cpp:167,1
    - Dst: std::string
      Src: /src/libtorrent/src/tracker_manager.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ec'
    - op
    - msg
    - interval
    - min_interval
    argTypes:
    - error_code
    - operation_t
    - char*
    - seconds32
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: libtorrent::tracker_connection::fail
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - post
    - std::string
    - get_executor
    linkageType: ''
    returnType: void
    signature: "void tracker_connection::fail(error_code const& ec, operation_t const
      op\n\t\t, char const* msg, seconds32 const interval, seconds32 const min_interval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_connection::requester
      Src: /src/libtorrent/src/tracker_manager.cpp:173,1
    - Dst: std::shared_ptr::tracker_request_error
      Src: /src/libtorrent/src/tracker_manager.cpp:174,1
    - Dst: seconds32::count
      Src: /src/libtorrent/src/tracker_manager.cpp:175,1
    - Dst: close
      Src: /src/libtorrent/src/tracker_manager.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ' ec'
    - op
    - msg
    - interval
    - min_interval
    argTypes:
    - error_code
    - operation_t
    - std::string
    - seconds32
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: libtorrent::tracker_connection::fail_impl
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_connection::requester
    - seconds32::count
    - close
    - std::shared_ptr::tracker_request_error
    linkageType: ''
    returnType: void
    signature: "void tracker_connection::fail_impl(error_code const& ec, operation_t
      const op\n\t\t, std::string const msg, seconds32 const interval, seconds32 const
      min_interval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_connection::sent_bytes
      Src: /src/libtorrent/src/tracker_manager.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: libtorrent::tracker_connection::sent_bytes
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::tracker_connection::sent_bytes
    linkageType: ''
    returnType: void
    signature: void tracker_connection::sent_bytes(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_connection::received_bytes
      Src: /src/libtorrent/src/tracker_manager.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: libtorrent::tracker_connection::received_bytes
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::tracker_connection::received_bytes
    linkageType: ''
    returnType: void
    signature: void tracker_connection::received_bytes(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:198,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 6
    argNames:
    - send_fun
    - send_fun_hostname
    - ' stats_counters'
    - ' resolver'
    - ' sett'
    - ' ses'
    argTypes:
    - send_fun_t
    - send_fun_hostname_t
    - counters
    - aux::resolver_interface
    - aux::session_settings
    - aux::session_logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: libtorrent::tracker_manager::tracker_manager
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::tracker_manager(send_fun_t send_fun\n\t\t, send_fun_hostname_t
      send_fun_hostname\n\t\t, counters& stats_counters\n\t\t, aux::resolver_interface&
      resolver\n\t\t, aux::session_settings const& sett\n#if !defined TORRENT_DISABLE_LOGGING
      || TORRENT_USE_ASSERTS\n\t\t, aux::session_logger& ses\n#endif\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_all_requests
      Src: /src/libtorrent/src/tracker_manager.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: tracker_manager::~tracker_manager()
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - abort_all_requests
    linkageType: ''
    returnType: void
    signature: void tracker_manager::~tracker_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:215,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:215,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/tracker_manager.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: libtorrent::tracker_manager::sent_bytes
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void tracker_manager::sent_bytes(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:221,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:221,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/tracker_manager.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: libtorrent::tracker_manager::received_bytes
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void tracker_manager::received_bytes(int bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:227,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:227,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/tracker_manager.cpp:228,1
    - Dst: begin
      Src: /src/libtorrent/src/tracker_manager.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:228,1
    - Dst: get
      Src: /src/libtorrent/src/tracker_manager.cpp:229,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:230,1
    - Dst: erase
      Src: /src/libtorrent/src/tracker_manager.cpp:232,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:233,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:235,1
    - Dst: front
      Src: /src/libtorrent/src/tracker_manager.cpp:235,1
    - Dst: pop_front
      Src: /src/libtorrent/src/tracker_manager.cpp:236,1
    - Dst: push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:237,1
    - Dst: back
      Src: /src/libtorrent/src/tracker_manager.cpp:238,1
    - Dst: set_value
      Src: /src/libtorrent/src/tracker_manager.cpp:239,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/tracker_manager.cpp:239,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:239,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/tracker_manager.cpp:244,1
    - Dst: begin
      Src: /src/libtorrent/src/tracker_manager.cpp:244,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:244,1
    - Dst: get
      Src: /src/libtorrent/src/tracker_manager.cpp:245,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:246,1
    - Dst: erase
      Src: /src/libtorrent/src/tracker_manager.cpp:248,1
    - Dst: set_value
      Src: /src/libtorrent/src/tracker_manager.cpp:249,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/tracker_manager.cpp:249,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - http_tracker_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 251
    functionName: libtorrent::tracker_manager::remove_request
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - libtorrent::tracker_manager::empty
    - std::move
    - begin
    - is_single_thread
    - erase
    - end
    - front
    - TORRENT_ASSERT
    - set_value
    - std::int64_t
    - back
    - pop_front
    - get
    - size
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void tracker_manager::remove_request(http_tracker_connection const*
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:255,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:255,1
    - Dst: erase
      Src: /src/libtorrent/src/tracker_manager.cpp:256,1
    - Dst: udp_tracker_connection*::transaction_id
      Src: /src/libtorrent/src/tracker_manager.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - udp_tracker_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: libtorrent::tracker_manager::remove_request
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - erase
    - udp_tracker_connection*::transaction_id
    linkageType: ''
    returnType: void
    signature: void tracker_manager::remove_request(udp_tracker_connection const*
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:263,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:263,1
    - Dst: erase
      Src: /src/libtorrent/src/tracker_manager.cpp:264,1
    - Dst: std::shared_ptr<udp_tracker_connection>::transaction_id
      Src: /src/libtorrent/src/tracker_manager.cpp:264,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - tid
    argTypes:
    - std::shared_ptr<udp_tracker_connection>
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: libtorrent::tracker_manager::update_transaction_id
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - is_single_thread
    - erase
    - std::shared_ptr<udp_tracker_connection>::transaction_id
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::update_transaction_id(\n\t\tstd::shared_ptr<udp_tracker_connection>
      c\n\t\t, std::uint32_t tid)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:274,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:275,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:276,1
    - Dst: std::weak_ptr<request_callback>::lock
      Src: /src/libtorrent/src/tracker_manager.cpp:280,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:281,1
    - Dst: url::substr
      Src: /src/libtorrent/src/tracker_manager.cpp:285,1
    - Dst: url::find
      Src: /src/libtorrent/src/tracker_manager.cpp:285,1
    - Dst: std::make_shared<http_tracker_connection>
      Src: /src/libtorrent/src/tracker_manager.cpp:293,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:293,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:294,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/tracker_manager.cpp:294,1
    - Dst: get_int
      Src: /src/libtorrent/src/tracker_manager.cpp:294,1
    - Dst: push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:296,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:296,1
    - Dst: back
      Src: /src/libtorrent/src/tracker_manager.cpp:297,1
    - Dst: push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:301,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:301,1
    - Dst: set_value
      Src: /src/libtorrent/src/tracker_manager.cpp:302,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/tracker_manager.cpp:302,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:302,1
    - Dst: std::make_shared<udp_tracker_connection>
      Src: /src/libtorrent/src/tracker_manager.cpp:308,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:308,1
    - Dst: auto::transaction_id
      Src: /src/libtorrent/src/tracker_manager.cpp:309,1
    - Dst: auto::start
      Src: /src/libtorrent/src/tracker_manager.cpp:310,1
    - Dst: std::weak_ptr<request_callback>::lock
      Src: /src/libtorrent/src/tracker_manager.cpp:315,1
    - Dst: post
      Src: /src/libtorrent/src/tracker_manager.cpp:316,1
    - Dst: std::bind
      Src: /src/libtorrent/src/tracker_manager.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:316,1
    - Dst: seconds32
      Src: /src/libtorrent/src/tracker_manager.cpp:318,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:324,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:324,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:326,1
    - Dst: should_log
      Src: /src/libtorrent/src/tracker_manager.cpp:329,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:331,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/tracker_manager.cpp:332,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:332,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:341,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:344,1
    - Dst: find
      Src: /src/libtorrent/src/tracker_manager.cpp:345,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:347,1
    - Dst: should_log
      Src: /src/libtorrent/src/tracker_manager.cpp:350,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:352,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/tracker_manager.cpp:353,1
    - Dst: std::shared_ptr::on_receive
      Src: /src/libtorrent/src/tracker_manager.cpp:362,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:368,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:375,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:377,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:382,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:385,1
    - Dst: find
      Src: /src/libtorrent/src/tracker_manager.cpp:386,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:388,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:393,1
    - Dst: std::string
      Src: /src/libtorrent/src/tracker_manager.cpp:394,1
    - Dst: std::shared_ptr::on_receive_hostname
      Src: /src/libtorrent/src/tracker_manager.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:408,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:408,1
    - Dst: m_send_fun_hostname
      Src: /src/libtorrent/src/tracker_manager.cpp:409,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:417,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:417,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/tracker_manager.cpp:418,1
    - Dst: libtorrent::tracker_manager::abort_all_requests
      Src: /src/libtorrent/src/tracker_manager.cpp:423,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:431,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:431,1
    - Dst: std::weak_ptr<request_callback>::tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:443,1
    - Dst: std::weak_ptr<request_callback>::requester
      Src: /src/libtorrent/src/tracker_manager.cpp:446,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:447,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:447,1
    - Dst: std::weak_ptr<request_callback>::tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:452,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:456,1
    - Dst: std::weak_ptr<request_callback>::requester
      Src: /src/libtorrent/src/tracker_manager.cpp:459,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:460,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:460,1
    - Dst: std::weak_ptr<request_callback>::tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:466,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:470,1
    - Dst: std::weak_ptr<request_callback>::requester
      Src: /src/libtorrent/src/tracker_manager.cpp:473,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:474,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:474,1
    - Dst: std::weak_ptr<request_callback>::close
      Src: /src/libtorrent/src/tracker_manager.cpp:479,1
    - Dst: std::weak_ptr<request_callback>::close
      Src: /src/libtorrent/src/tracker_manager.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:487,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:487,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:488,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:488,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:493,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:493,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:494,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 93
    argCount: 4
    argNames:
    - ' ios'
    - ' req'
    - ' sett'
    - c
    argTypes:
    - io_context
    - tracker_request
    - aux::session_settings
    - std::weak_ptr<request_callback>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 496
    functionName: libtorrent::tracker_manager::queue_request
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::weak_ptr<request_callback>::tracker_req
    - std::weak_ptr<request_callback>::close
    - std::move
    - libtorrent::aux::read_uint32
    - libtorrent::tracker_manager::abort_all_requests
    - std::shared_ptr::debug_log
    - std::shared_ptr::on_receive_hostname
    - std::weak_ptr<request_callback>::requester
    - m_send_fun_hostname
    - push_back
    - session_log
    - is_single_thread
    - end
    - print_endpoint
    - get_int
    - std::size_t
    - back
    - url::find
    - std::make_shared<http_tracker_connection>
    - seconds32
    - std::make_shared<udp_tracker_connection>
    - std::string
    - TORRENT_ASSERT
    - set_value
    - std::weak_ptr<request_callback>::lock
    - m_send_fun
    - size
    - url::c_str
    - auto::start
    - std::bind
    - url::substr
    - std::vector::push_back
    - libtorrent::tracker_manager::empty
    - post
    - find
    - std::int64_t
    - std::shared_ptr::on_receive
    - auto::transaction_id
    - should_log
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::queue_request(\n\t\tio_context& ios\n\t\t, tracker_request&&
      req\n\t\t, aux::session_settings const& sett\n\t\t, std::weak_ptr<request_callback>
      c)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:324,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:324,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/tracker_manager.cpp:326,1
    - Dst: should_log
      Src: /src/libtorrent/src/tracker_manager.cpp:329,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:331,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/tracker_manager.cpp:332,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/tracker_manager.cpp:332,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:341,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:344,1
    - Dst: find
      Src: /src/libtorrent/src/tracker_manager.cpp:345,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:347,1
    - Dst: should_log
      Src: /src/libtorrent/src/tracker_manager.cpp:350,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:352,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/tracker_manager.cpp:353,1
    - Dst: std::shared_ptr::on_receive
      Src: /src/libtorrent/src/tracker_manager.cpp:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' ep'
    - buf
    argTypes:
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 363
    functionName: libtorrent::tracker_manager::incoming_packet
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - session_log
    - libtorrent::aux::read_uint32
    - is_single_thread
    - end
    - find
    - print_endpoint
    - TORRENT_ASSERT
    - span<char const>::size
    - std::shared_ptr::on_receive
    - should_log
    linkageType: ''
    returnType: bool
    signature: "bool tracker_manager::incoming_packet(udp::endpoint const& ep\n\t\t,
      span<char const> const buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:368,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: libtorrent::tracker_manager::incoming_error
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::incoming_error(error_code const&\n\t\t, udp::endpoint
      const&)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:375,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:375,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/tracker_manager.cpp:377,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:382,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:385,1
    - Dst: find
      Src: /src/libtorrent/src/tracker_manager.cpp:386,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:388,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:393,1
    - Dst: std::string
      Src: /src/libtorrent/src/tracker_manager.cpp:394,1
    - Dst: std::shared_ptr::on_receive_hostname
      Src: /src/libtorrent/src/tracker_manager.cpp:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - hostname
    - buf
    argTypes:
    - string_view
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 402
    functionName: libtorrent::tracker_manager::incoming_packet
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - session_log
    - libtorrent::aux::read_uint32
    - is_single_thread
    - end
    - std::string
    - find
    - TORRENT_ASSERT
    - span<char const>::size
    - std::shared_ptr::on_receive_hostname
    linkageType: ''
    returnType: bool
    signature: "bool tracker_manager::incoming_packet(string_view const hostname\n\t\t,
      span<char const> const buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:408,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:408,1
    - Dst: m_send_fun_hostname
      Src: /src/libtorrent/src/tracker_manager.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ' sock'
    - hostname
    - port
    - p
    - ' ec'
    - flags
    argTypes:
    - aux::listen_socket_handle
    - char*
    - int
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: libtorrent::tracker_manager::send_hostname
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - m_send_fun_hostname
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::send_hostname(aux::listen_socket_handle const&
      sock\n\t\t, char const* hostname, int const port\n\t\t, span<char const> p,
      error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:417,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:417,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/tracker_manager.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' sock'
    - ' ep'
    - p
    - ' ec'
    - flags
    argTypes:
    - aux::listen_socket_handle
    - udp::endpoint
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 419
    functionName: libtorrent::tracker_manager::send
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - m_send_fun
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::send(aux::listen_socket_handle const& sock\n\t\t,
      udp::endpoint const& ep\n\t\t, span<char const> p\n\t\t, error_code& ec, udp_send_flags_t
      const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_manager::abort_all_requests
      Src: /src/libtorrent/src/tracker_manager.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: libtorrent::tracker_manager::stop
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_manager::abort_all_requests
    linkageType: ''
    returnType: void
    signature: void tracker_manager::stop()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:431,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:431,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:443,1
    - Dst: requester
      Src: /src/libtorrent/src/tracker_manager.cpp:446,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:447,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:447,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:452,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:456,1
    - Dst: requester
      Src: /src/libtorrent/src/tracker_manager.cpp:459,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:460,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:460,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:466,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:470,1
    - Dst: requester
      Src: /src/libtorrent/src/tracker_manager.cpp:473,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:474,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:474,1
    - Dst: close
      Src: /src/libtorrent/src/tracker_manager.cpp:479,1
    - Dst: close
      Src: /src/libtorrent/src/tracker_manager.cpp:482,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 22
    argCount: 1
    argNames:
    - all
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 483
    functionName: libtorrent::tracker_manager::abort_all_requests
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 2
    functionsReached:
    - requester
    - std::vector::push_back
    - is_single_thread
    - std::shared_ptr::debug_log
    - TORRENT_ASSERT
    - close
    - tracker_req
    - url::c_str
    linkageType: ''
    returnType: void
    signature: void tracker_manager::abort_all_requests(bool all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:487,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:487,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:488,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: libtorrent::tracker_manager::empty
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::tracker_manager::empty
    linkageType: ''
    returnType: bool
    signature: bool tracker_manager::empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:493,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:493,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: libtorrent::tracker_manager::num_requests
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - size
    linkageType: ''
    returnType: int
    signature: int tracker_manager::num_requests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/tracker_manager.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: libtorrent::timeout_handler::timeout_handler
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void timeout_handler::timeout_handler(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: timeout_handler::~timeout_handler()
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void timeout_handler::~timeout_handler()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/tracker_manager.cpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:72,1
    - Dst: std::min
      Src: /src/libtorrent/src/tracker_manager.cpp:82,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/tracker_manager.cpp:85,1
    - Dst: expires_at
      Src: /src/libtorrent/src/tracker_manager.cpp:86,1
    - Dst: seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:86,1
    - Dst: async_wait
      Src: /src/libtorrent/src/tracker_manager.cpp:87,1
    - Dst: std::bind
      Src: /src/libtorrent/src/tracker_manager.cpp:87,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/tracker_manager.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - completion_timeout
    - read_timeout
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 92
    functionName: libtorrent::timeout_handler::set_timeout
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - shared_from_this
    - async_wait
    - seconds
    - TORRENT_ASSERT
    - std::min
    - expires_at
    linkageType: ''
    returnType: void
    signature: void timeout_handler::set_timeout(int completion_timeout, int read_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/tracker_manager.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: libtorrent::timeout_handler::restart_read_timeout
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void timeout_handler::restart_read_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::timeout_handler::cancel
      Src: /src/libtorrent/src/tracker_manager.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: libtorrent::timeout_handler::cancel
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::timeout_handler::cancel
    linkageType: ''
    returnType: void
    signature: void timeout_handler::cancel()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/tracker_manager.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:110,1
    - Dst: time_now
      Src: /src/libtorrent/src/tracker_manager.cpp:115,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:120,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:122,1
    - Dst: on_timeout
      Src: /src/libtorrent/src/tracker_manager.cpp:125,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:134,1
    - Dst: std::min
      Src: /src/libtorrent/src/tracker_manager.cpp:135,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:135,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/tracker_manager.cpp:137,1
    - Dst: expires_at
      Src: /src/libtorrent/src/tracker_manager.cpp:138,1
    - Dst: seconds
      Src: /src/libtorrent/src/tracker_manager.cpp:138,1
    - Dst: async_wait
      Src: /src/libtorrent/src/tracker_manager.cpp:139,1
    - Dst: std::bind
      Src: /src/libtorrent/src/tracker_manager.cpp:140,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/tracker_manager.cpp:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 144
    functionName: libtorrent::timeout_handler::timeout_callback
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - shared_from_this
    - async_wait
    - total_seconds
    - seconds
    - TORRENT_ASSERT
    - std::min
    - expires_at
    - on_timeout
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void timeout_handler::timeout_callback(error_code const& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:152,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' man'
    - req
    - ' ios'
    - r
    argTypes:
    - tracker_manager
    - tracker_request
    - io_context
    - std::weak_ptr<request_callback>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: libtorrent::tracker_connection::tracker_connection
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void tracker_connection::tracker_connection(\n\t\ttracker_manager&
      man\n\t\t, tracker_request req\n\t\t, io_context& ios\n\t\t, std::weak_ptr<request_callback>
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/tracker_manager.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: libtorrent::tracker_connection::requester
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 1
    functionsReached:
    - lock
    linkageType: ''
    returnType: std::shared_ptr<request_callback>
    signature: std::shared_ptr<request_callback> tracker_connection::requester() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/tracker_manager.cpp:166,1
    - Dst: get_executor
      Src: /src/libtorrent/src/tracker_manager.cpp:166,1
    - Dst: std::bind
      Src: /src/libtorrent/src/tracker_manager.cpp:166,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/tracker_manager.cpp:167,1
    - Dst: std::string
      Src: /src/libtorrent/src/tracker_manager.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ec'
    - op
    - msg
    - interval
    - min_interval
    argTypes:
    - error_code
    - operation_t
    - char*
    - seconds32
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: libtorrent::tracker_connection::fail
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - post
    - std::string
    - get_executor
    linkageType: ''
    returnType: void
    signature: "void tracker_connection::fail(error_code const& ec, operation_t const
      op\n\t\t, char const* msg, seconds32 const interval, seconds32 const min_interval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_connection::requester
      Src: /src/libtorrent/src/tracker_manager.cpp:173,1
    - Dst: std::shared_ptr::tracker_request_error
      Src: /src/libtorrent/src/tracker_manager.cpp:174,1
    - Dst: seconds32::count
      Src: /src/libtorrent/src/tracker_manager.cpp:175,1
    - Dst: close
      Src: /src/libtorrent/src/tracker_manager.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ' ec'
    - op
    - msg
    - interval
    - min_interval
    argTypes:
    - error_code
    - operation_t
    - std::string
    - seconds32
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: libtorrent::tracker_connection::fail_impl
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_connection::requester
    - seconds32::count
    - close
    - std::shared_ptr::tracker_request_error
    linkageType: ''
    returnType: void
    signature: "void tracker_connection::fail_impl(error_code const& ec, operation_t
      const op\n\t\t, std::string const msg, seconds32 const interval, seconds32 const
      min_interval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_connection::sent_bytes
      Src: /src/libtorrent/src/tracker_manager.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: libtorrent::tracker_connection::sent_bytes
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::tracker_connection::sent_bytes
    linkageType: ''
    returnType: void
    signature: void tracker_connection::sent_bytes(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_connection::received_bytes
      Src: /src/libtorrent/src/tracker_manager.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: libtorrent::tracker_connection::received_bytes
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::tracker_connection::received_bytes
    linkageType: ''
    returnType: void
    signature: void tracker_connection::received_bytes(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:198,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 6
    argNames:
    - send_fun
    - send_fun_hostname
    - ' stats_counters'
    - ' resolver'
    - ' sett'
    - ' ses'
    argTypes:
    - send_fun_t
    - send_fun_hostname_t
    - counters
    - aux::resolver_interface
    - aux::session_settings
    - aux::session_logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: libtorrent::tracker_manager::tracker_manager
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::tracker_manager(send_fun_t send_fun\n\t\t, send_fun_hostname_t
      send_fun_hostname\n\t\t, counters& stats_counters\n\t\t, aux::resolver_interface&
      resolver\n\t\t, aux::session_settings const& sett\n#if !defined TORRENT_DISABLE_LOGGING
      || TORRENT_USE_ASSERTS\n\t\t, aux::session_logger& ses\n#endif\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_all_requests
      Src: /src/libtorrent/src/tracker_manager.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: tracker_manager::~tracker_manager()
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - abort_all_requests
    linkageType: ''
    returnType: void
    signature: void tracker_manager::~tracker_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:215,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:215,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/tracker_manager.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: libtorrent::tracker_manager::sent_bytes
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void tracker_manager::sent_bytes(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:221,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:221,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/tracker_manager.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: libtorrent::tracker_manager::received_bytes
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void tracker_manager::received_bytes(int bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:227,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:227,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/tracker_manager.cpp:228,1
    - Dst: begin
      Src: /src/libtorrent/src/tracker_manager.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:228,1
    - Dst: get
      Src: /src/libtorrent/src/tracker_manager.cpp:229,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:230,1
    - Dst: erase
      Src: /src/libtorrent/src/tracker_manager.cpp:232,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:233,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:235,1
    - Dst: front
      Src: /src/libtorrent/src/tracker_manager.cpp:235,1
    - Dst: pop_front
      Src: /src/libtorrent/src/tracker_manager.cpp:236,1
    - Dst: push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:237,1
    - Dst: back
      Src: /src/libtorrent/src/tracker_manager.cpp:238,1
    - Dst: set_value
      Src: /src/libtorrent/src/tracker_manager.cpp:239,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/tracker_manager.cpp:239,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:239,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/tracker_manager.cpp:244,1
    - Dst: begin
      Src: /src/libtorrent/src/tracker_manager.cpp:244,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:244,1
    - Dst: get
      Src: /src/libtorrent/src/tracker_manager.cpp:245,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:246,1
    - Dst: erase
      Src: /src/libtorrent/src/tracker_manager.cpp:248,1
    - Dst: set_value
      Src: /src/libtorrent/src/tracker_manager.cpp:249,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/tracker_manager.cpp:249,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - http_tracker_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 251
    functionName: libtorrent::tracker_manager::remove_request
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - libtorrent::tracker_manager::empty
    - std::move
    - begin
    - is_single_thread
    - erase
    - end
    - front
    - TORRENT_ASSERT
    - set_value
    - std::int64_t
    - back
    - pop_front
    - get
    - size
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void tracker_manager::remove_request(http_tracker_connection const*
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:255,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:255,1
    - Dst: erase
      Src: /src/libtorrent/src/tracker_manager.cpp:256,1
    - Dst: udp_tracker_connection*::transaction_id
      Src: /src/libtorrent/src/tracker_manager.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - udp_tracker_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: libtorrent::tracker_manager::remove_request
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - erase
    - udp_tracker_connection*::transaction_id
    linkageType: ''
    returnType: void
    signature: void tracker_manager::remove_request(udp_tracker_connection const*
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:263,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:263,1
    - Dst: erase
      Src: /src/libtorrent/src/tracker_manager.cpp:264,1
    - Dst: std::shared_ptr<udp_tracker_connection>::transaction_id
      Src: /src/libtorrent/src/tracker_manager.cpp:264,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - tid
    argTypes:
    - std::shared_ptr<udp_tracker_connection>
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: libtorrent::tracker_manager::update_transaction_id
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - is_single_thread
    - erase
    - std::shared_ptr<udp_tracker_connection>::transaction_id
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::update_transaction_id(\n\t\tstd::shared_ptr<udp_tracker_connection>
      c\n\t\t, std::uint32_t tid)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:274,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:275,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:276,1
    - Dst: std::weak_ptr<request_callback>::lock
      Src: /src/libtorrent/src/tracker_manager.cpp:280,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:281,1
    - Dst: url::substr
      Src: /src/libtorrent/src/tracker_manager.cpp:285,1
    - Dst: url::find
      Src: /src/libtorrent/src/tracker_manager.cpp:285,1
    - Dst: std::make_shared<http_tracker_connection>
      Src: /src/libtorrent/src/tracker_manager.cpp:293,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:293,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:294,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/tracker_manager.cpp:294,1
    - Dst: get_int
      Src: /src/libtorrent/src/tracker_manager.cpp:294,1
    - Dst: push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:296,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:296,1
    - Dst: back
      Src: /src/libtorrent/src/tracker_manager.cpp:297,1
    - Dst: push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:301,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:301,1
    - Dst: set_value
      Src: /src/libtorrent/src/tracker_manager.cpp:302,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/tracker_manager.cpp:302,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:302,1
    - Dst: std::make_shared<udp_tracker_connection>
      Src: /src/libtorrent/src/tracker_manager.cpp:308,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:308,1
    - Dst: auto::transaction_id
      Src: /src/libtorrent/src/tracker_manager.cpp:309,1
    - Dst: auto::start
      Src: /src/libtorrent/src/tracker_manager.cpp:310,1
    - Dst: std::weak_ptr<request_callback>::lock
      Src: /src/libtorrent/src/tracker_manager.cpp:315,1
    - Dst: post
      Src: /src/libtorrent/src/tracker_manager.cpp:316,1
    - Dst: std::bind
      Src: /src/libtorrent/src/tracker_manager.cpp:316,1
    - Dst: std::move
      Src: /src/libtorrent/src/tracker_manager.cpp:316,1
    - Dst: seconds32
      Src: /src/libtorrent/src/tracker_manager.cpp:318,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:324,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:324,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:326,1
    - Dst: should_log
      Src: /src/libtorrent/src/tracker_manager.cpp:329,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:331,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/tracker_manager.cpp:332,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:332,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:341,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:344,1
    - Dst: find
      Src: /src/libtorrent/src/tracker_manager.cpp:345,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:347,1
    - Dst: should_log
      Src: /src/libtorrent/src/tracker_manager.cpp:350,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:352,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/tracker_manager.cpp:353,1
    - Dst: std::shared_ptr::on_receive
      Src: /src/libtorrent/src/tracker_manager.cpp:362,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:368,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:375,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:377,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:382,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:385,1
    - Dst: find
      Src: /src/libtorrent/src/tracker_manager.cpp:386,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:388,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:393,1
    - Dst: std::string
      Src: /src/libtorrent/src/tracker_manager.cpp:394,1
    - Dst: std::shared_ptr::on_receive_hostname
      Src: /src/libtorrent/src/tracker_manager.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:408,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:408,1
    - Dst: m_send_fun_hostname
      Src: /src/libtorrent/src/tracker_manager.cpp:409,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:417,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:417,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/tracker_manager.cpp:418,1
    - Dst: libtorrent::tracker_manager::abort_all_requests
      Src: /src/libtorrent/src/tracker_manager.cpp:423,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:431,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:431,1
    - Dst: std::weak_ptr<request_callback>::tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:443,1
    - Dst: std::weak_ptr<request_callback>::requester
      Src: /src/libtorrent/src/tracker_manager.cpp:446,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:447,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:447,1
    - Dst: std::weak_ptr<request_callback>::tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:452,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:456,1
    - Dst: std::weak_ptr<request_callback>::requester
      Src: /src/libtorrent/src/tracker_manager.cpp:459,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:460,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:460,1
    - Dst: std::weak_ptr<request_callback>::tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:466,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:470,1
    - Dst: std::weak_ptr<request_callback>::requester
      Src: /src/libtorrent/src/tracker_manager.cpp:473,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:474,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:474,1
    - Dst: std::weak_ptr<request_callback>::close
      Src: /src/libtorrent/src/tracker_manager.cpp:479,1
    - Dst: std::weak_ptr<request_callback>::close
      Src: /src/libtorrent/src/tracker_manager.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:487,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:487,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:488,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:488,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:493,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:493,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:494,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 93
    argCount: 4
    argNames:
    - ' ios'
    - ' req'
    - ' sett'
    - c
    argTypes:
    - io_context
    - tracker_request
    - aux::session_settings
    - std::weak_ptr<request_callback>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 496
    functionName: libtorrent::tracker_manager::queue_request
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - std::weak_ptr<request_callback>::tracker_req
    - std::weak_ptr<request_callback>::close
    - std::move
    - libtorrent::aux::read_uint32
    - libtorrent::tracker_manager::abort_all_requests
    - std::shared_ptr::debug_log
    - std::shared_ptr::on_receive_hostname
    - std::weak_ptr<request_callback>::requester
    - m_send_fun_hostname
    - push_back
    - session_log
    - is_single_thread
    - end
    - print_endpoint
    - get_int
    - std::size_t
    - back
    - url::find
    - std::make_shared<http_tracker_connection>
    - seconds32
    - std::make_shared<udp_tracker_connection>
    - std::string
    - TORRENT_ASSERT
    - set_value
    - std::weak_ptr<request_callback>::lock
    - m_send_fun
    - size
    - url::c_str
    - auto::start
    - std::bind
    - url::substr
    - std::vector::push_back
    - libtorrent::tracker_manager::empty
    - post
    - find
    - std::int64_t
    - std::shared_ptr::on_receive
    - auto::transaction_id
    - should_log
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::queue_request(\n\t\tio_context& ios\n\t\t, tracker_request&&
      req\n\t\t, aux::session_settings const& sett\n\t\t, std::weak_ptr<request_callback>
      c)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:324,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:324,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/tracker_manager.cpp:326,1
    - Dst: should_log
      Src: /src/libtorrent/src/tracker_manager.cpp:329,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:331,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/tracker_manager.cpp:332,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/tracker_manager.cpp:332,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:341,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:344,1
    - Dst: find
      Src: /src/libtorrent/src/tracker_manager.cpp:345,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:347,1
    - Dst: should_log
      Src: /src/libtorrent/src/tracker_manager.cpp:350,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:352,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/tracker_manager.cpp:353,1
    - Dst: std::shared_ptr::on_receive
      Src: /src/libtorrent/src/tracker_manager.cpp:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' ep'
    - buf
    argTypes:
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 363
    functionName: libtorrent::tracker_manager::incoming_packet
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - session_log
    - libtorrent::aux::read_uint32
    - is_single_thread
    - end
    - find
    - print_endpoint
    - TORRENT_ASSERT
    - span<char const>::size
    - std::shared_ptr::on_receive
    - should_log
    linkageType: ''
    returnType: bool
    signature: "bool tracker_manager::incoming_packet(udp::endpoint const& ep\n\t\t,
      span<char const> const buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:368,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: libtorrent::tracker_manager::incoming_error
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::incoming_error(error_code const&\n\t\t, udp::endpoint
      const&)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:375,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:375,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/tracker_manager.cpp:377,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:382,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/tracker_manager.cpp:385,1
    - Dst: find
      Src: /src/libtorrent/src/tracker_manager.cpp:386,1
    - Dst: end
      Src: /src/libtorrent/src/tracker_manager.cpp:388,1
    - Dst: session_log
      Src: /src/libtorrent/src/tracker_manager.cpp:393,1
    - Dst: std::string
      Src: /src/libtorrent/src/tracker_manager.cpp:394,1
    - Dst: std::shared_ptr::on_receive_hostname
      Src: /src/libtorrent/src/tracker_manager.cpp:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - hostname
    - buf
    argTypes:
    - string_view
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 402
    functionName: libtorrent::tracker_manager::incoming_packet
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - session_log
    - libtorrent::aux::read_uint32
    - is_single_thread
    - end
    - std::string
    - find
    - TORRENT_ASSERT
    - span<char const>::size
    - std::shared_ptr::on_receive_hostname
    linkageType: ''
    returnType: bool
    signature: "bool tracker_manager::incoming_packet(string_view const hostname\n\t\t,
      span<char const> const buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:408,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:408,1
    - Dst: m_send_fun_hostname
      Src: /src/libtorrent/src/tracker_manager.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ' sock'
    - hostname
    - port
    - p
    - ' ec'
    - flags
    argTypes:
    - aux::listen_socket_handle
    - char*
    - int
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: libtorrent::tracker_manager::send_hostname
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - m_send_fun_hostname
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::send_hostname(aux::listen_socket_handle const&
      sock\n\t\t, char const* hostname, int const port\n\t\t, span<char const> p,
      error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:417,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:417,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/tracker_manager.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' sock'
    - ' ep'
    - p
    - ' ec'
    - flags
    argTypes:
    - aux::listen_socket_handle
    - udp::endpoint
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 419
    functionName: libtorrent::tracker_manager::send
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - m_send_fun
    linkageType: ''
    returnType: void
    signature: "void tracker_manager::send(aux::listen_socket_handle const& sock\n\t\t,
      udp::endpoint const& ep\n\t\t, span<char const> p\n\t\t, error_code& ec, udp_send_flags_t
      const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_manager::abort_all_requests
      Src: /src/libtorrent/src/tracker_manager.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: libtorrent::tracker_manager::stop
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_manager::abort_all_requests
    linkageType: ''
    returnType: void
    signature: void tracker_manager::stop()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:431,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:431,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:443,1
    - Dst: requester
      Src: /src/libtorrent/src/tracker_manager.cpp:446,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:447,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:447,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:452,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:456,1
    - Dst: requester
      Src: /src/libtorrent/src/tracker_manager.cpp:459,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:460,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:460,1
    - Dst: tracker_req
      Src: /src/libtorrent/src/tracker_manager.cpp:466,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/tracker_manager.cpp:470,1
    - Dst: requester
      Src: /src/libtorrent/src/tracker_manager.cpp:473,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/tracker_manager.cpp:474,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/tracker_manager.cpp:474,1
    - Dst: close
      Src: /src/libtorrent/src/tracker_manager.cpp:479,1
    - Dst: close
      Src: /src/libtorrent/src/tracker_manager.cpp:482,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 22
    argCount: 1
    argNames:
    - all
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 483
    functionName: libtorrent::tracker_manager::abort_all_requests
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 4
    functionsReached:
    - requester
    - std::vector::push_back
    - is_single_thread
    - std::shared_ptr::debug_log
    - TORRENT_ASSERT
    - close
    - tracker_req
    - url::c_str
    linkageType: ''
    returnType: void
    signature: void tracker_manager::abort_all_requests(bool all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:487,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:487,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:488,1
    - Dst: libtorrent::tracker_manager::empty
      Src: /src/libtorrent/src/tracker_manager.cpp:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: libtorrent::tracker_manager::empty
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::tracker_manager::empty
    linkageType: ''
    returnType: bool
    signature: bool tracker_manager::empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/tracker_manager.cpp:493,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/tracker_manager.cpp:493,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:494,1
    - Dst: size
      Src: /src/libtorrent/src/tracker_manager.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: libtorrent::tracker_manager::num_requests
    functionSourceFile: /src/libtorrent/src/tracker_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - size
    linkageType: ''
    returnType: int
    signature: int tracker_manager::num_requests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: libtorrent::torrent_status::torrent_status
    functionSourceFile: /src/libtorrent/src/torrent_status.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_status::torrent_status() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: torrent_status::~torrent_status()
    functionSourceFile: /src/libtorrent/src/torrent_status.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_status::~torrent_status()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::torrent_status::torrent_status
    functionSourceFile: /src/libtorrent/src/torrent_status.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_status::torrent_status(torrent_status const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: libtorrent::torrent_status::torrent_status
    functionSourceFile: /src/libtorrent/src/torrent_status.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_status::torrent_status(torrent_status&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: libtorrent::torrent_status::torrent_status
    functionSourceFile: /src/libtorrent/src/torrent_status.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_status::torrent_status() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: torrent_status::~torrent_status()
    functionSourceFile: /src/libtorrent/src/torrent_status.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_status::~torrent_status()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::torrent_status::torrent_status
    functionSourceFile: /src/libtorrent/src/torrent_status.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_status::torrent_status(torrent_status const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: libtorrent::torrent_status::torrent_status
    functionSourceFile: /src/libtorrent/src/torrent_status.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_status::torrent_status(torrent_status&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::log_async
      Src: /src/libtorrent/src/session.cpp:81,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/session.cpp:83,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/session.cpp:83,1
    - Dst: std::printf
      Src: /src/libtorrent/src/session.cpp:85,1
    - Dst: libtorrent::async_dec_threads
      Src: /src/libtorrent/src/session.cpp:88,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: libtorrent::wait_for_asio_handlers
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - libtorrent::async_dec_threads
    - milliseconds
    - std::fprintf
    - libtorrent::log_async
    - std::printf
    linkageType: ''
    returnType: void
    signature: void wait_for_asio_handlers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::log_async
      Src: /src/libtorrent/src/session.cpp:81,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/session.cpp:83,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/session.cpp:83,1
    - Dst: std::printf
      Src: /src/libtorrent/src/session.cpp:85,1
    - Dst: libtorrent::async_dec_threads
      Src: /src/libtorrent/src/session.cpp:88,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: libtorrent::wait_for_asio_handlers
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - libtorrent::async_dec_threads
    - milliseconds
    - std::fprintf
    - libtorrent::log_async
    - std::printf
    linkageType: ''
    returnType: void
    signature: void wait_for_asio_handlers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:102,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:105,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:107,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:108,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:111,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:114,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:116,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:118,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:119,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:126,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:127,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:128,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:131,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:134,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:137,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:138,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:139,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:144,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:148,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:150,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:152,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:153,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:156,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:158,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:160,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 163
    functionName: libtorrent::min_memory_usage
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_bool
    - settings_pack::set_int
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack min_memory_usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:170,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:172,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:173,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:175,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:179,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:182,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:185,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:192,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:195,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:198,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:201,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:205,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:209,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:212,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:214,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:216,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:218,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:221,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:222,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:223,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:225,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:226,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:227,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:228,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:230,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:234,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:239,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:243,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:247,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:250,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 255
    functionName: libtorrent::high_performance_seed
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - settings_pack::set_bool
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack high_performance_seed()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<io_context>
      Src: /src/libtorrent/src/session.cpp:264,1
    - Dst: get
      Src: /src/libtorrent/src/session.cpp:265,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:282,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:283,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:284,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:285,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:286,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:287,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:288,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:289,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:290,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:291,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:292,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:293,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:294,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:295,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:296,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:297,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:298,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:299,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:300,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:301,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:302,1
    - Dst: std::make_shared<aux::session_impl>
      Src: /src/libtorrent/src/session.cpp:309,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session.cpp:309,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:310,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:311,1
    - Dst: static_cast<session_handle*>
      Src: /src/libtorrent/src/session.cpp:313,1
    - Dst: session_handle
      Src: /src/libtorrent/src/session.cpp:313,1
    - Dst: load_state
      Src: /src/libtorrent/src/session.cpp:318,1
    - Dst: add_ses_extension
      Src: /src/libtorrent/src/session.cpp:319,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:319,1
    - Dst: set_dht_state
      Src: /src/libtorrent/src/session.cpp:324,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:324,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session.cpp:326,1
    - Dst: set_dht_storage
      Src: /src/libtorrent/src/session.cpp:327,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:327,1
    - Dst: ip_filter::empty
      Src: /src/libtorrent/src/session.cpp:330,1
    - Dst: std::make_shared<ip_filter>
      Src: /src/libtorrent/src/session.cpp:332,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:332,1
    - Dst: set_ip_filter
      Src: /src/libtorrent/src/session.cpp:333,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:333,1
    - Dst: start_session
      Src: /src/libtorrent/src/session.cpp:336,1
    - Dst: std::make_shared<std::thread>
      Src: /src/libtorrent/src/session.cpp:342,1
    - Dst: set_thread_name
      Src: /src/libtorrent/src/session.cpp:344,1
    - Dst: auto::run
      Src: /src/libtorrent/src/session.cpp:345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 3
    argNames:
    - flags
    - ' params'
    - ios
    argTypes:
    - session_flags_t
    - session_params
    - io_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 348
    functionName: libtorrent::session::start
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - load_state
    - set_thread_name
    - SET_BOOL
    - SET_INT
    - std::make_shared<aux::session_impl>
    - session_handle
    - set_dht_storage
    - std::make_shared<io_context>
    - TORRENT_ASSERT
    - auto::run
    - static_cast<session_handle*>
    - std::make_shared<std::thread>
    - set_dht_state
    - std::ref
    - set_ip_filter
    - ip_filter::empty
    - get
    - add_ses_extension
    - start_session
    - std::make_shared<ip_filter>
    linkageType: ''
    returnType: void
    signature: void session::start(session_flags_t const flags, session_params&& params,
      io_context* ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: SET_BOOL
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOOL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: SET_INT
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:356,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:356,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:360,1
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:361,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - flags
    - ' sp'
    - ios
    argTypes:
    - session_flags_t
    - settings_pack
    - io_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: libtorrent::session::start
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::start(session_flags_t const flags, settings_pack&& sp,
      io_context* ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session::session(session&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:370,1
    - Dst: session_params
      Src: /src/libtorrent/src/session.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - session_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_params
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params const& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:375,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - session_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params&& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:380,1
    - Dst: session_params
      Src: /src/libtorrent/src/session.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - flags
    argTypes:
    - session_params
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_params
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params const& params, session_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:385,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - flags
    argTypes:
    - session_params
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params&& params, session_flags_t const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:396,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - ' ios'
    argTypes:
    - session_params
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params&& params, io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:401,1
    - Dst: session_params
      Src: /src/libtorrent/src/session.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - ' ios'
    argTypes:
    - session_params
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_params
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params const& params, io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:406,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' params'
    - ' ios'
    - flags
    argTypes:
    - session_params
    - io_context
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params&& params, io_context& ios, session_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:411,1
    - Dst: session_params
      Src: /src/libtorrent/src/session.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' params'
    - ' ios'
    - flags
    argTypes:
    - session_params
    - io_context
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_params
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params const& params, io_context& ios,
      session_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' pack'
    - flags
    argTypes:
    - settings_pack
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(settings_pack&& pack, session_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:423,1
    - Dst: settings_pack
      Src: /src/libtorrent/src/session.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' pack'
    - flags
    argTypes:
    - settings_pack
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - settings_pack
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(settings_pack const& pack, session_flags_t const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:428,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' pack'
    - ' ios'
    - flags
    argTypes:
    - settings_pack
    - io_context
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(settings_pack&& pack, io_context& ios, session_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:433,1
    - Dst: settings_pack
      Src: /src/libtorrent/src/session.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' pack'
    - ' ios'
    - flags
    argTypes:
    - settings_pack
    - io_context
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - settings_pack
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(settings_pack const& pack, io_context& ios, session_flags_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:443,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session.cpp:444,1
    - Dst: to_string
      Src: /src/libtorrent/src/session.cpp:444,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:447,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:448,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:449,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:450,1
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:453,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' print'
    - flags
    - alert_mask
    argTypes:
    - fingerprint
    - session_flags_t
    - alert_category_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::move
    - libtorrent::session::start
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: "void session::session(fingerprint const& print, session_flags_t const
      flags\n\t\t, alert_category_t const alert_mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session.cpp:460,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session.cpp:461,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:464,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:465,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session.cpp:466,1
    - Dst: to_string
      Src: /src/libtorrent/src/session.cpp:466,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/session.cpp:470,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session.cpp:471,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:475,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:476,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:477,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:478,1
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:480,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - ' print'
    - listen_port_range
    - listen_interface
    - flags
    - alert_mask
    argTypes:
    - fingerprint
    - std::pair<int, int>
    - char*
    - session_flags_t
    - alert_category_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 481
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::move
    - libtorrent::session::start
    - std::snprintf
    - TORRENT_ASSERT
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: "void session::session(fingerprint const& print, std::pair<int, int>
      listen_port_range\n\t\t, char const* listen_interface, session_flags_t const
      flags\n\t\t, alert_category_t const alert_mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::dump_call_profile
      Src: /src/libtorrent/src/session.cpp:490,1
    - Dst: call_abort
      Src: /src/libtorrent/src/session.cpp:494,1
    - Dst: use_count
      Src: /src/libtorrent/src/session.cpp:496,1
    - Dst: wait_for_asio_handlers
      Src: /src/libtorrent/src/session.cpp:499,1
    - Dst: join
      Src: /src/libtorrent/src/session.cpp:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 503
    functionName: session::~session()
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - wait_for_asio_handlers
    - call_abort
    - join
    - use_count
    - libtorrent::aux::dump_call_profile
    linkageType: ''
    returnType: void
    signature: void session::~session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session.cpp:509,1
    - Dst: session_proxy
      Src: /src/libtorrent/src/session.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 511
    functionName: libtorrent::session::abort
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_proxy
    - alerts
    linkageType: ''
    returnType: session_proxy
    signature: session_proxy session::abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 513
    functionName: libtorrent::session_proxy::session_proxy
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_proxy::session_proxy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:517,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ios
    - t
    - impl
    argTypes:
    - std::shared_ptr<io_context>
    - std::shared_ptr<std::thread>
    - std::shared_ptr<aux::session_impl>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: libtorrent::session_proxy::session_proxy
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void session_proxy::session_proxy(std::shared_ptr<io_context> ios\n\t\t,
      std::shared_ptr<std::thread> t\n\t\t, std::shared_ptr<aux::session_impl> impl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 521
    functionName: libtorrent::session_proxy::session_proxy
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_proxy::session_proxy(session_proxy const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 523
    functionName: libtorrent::session_proxy::session_proxy
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_proxy::session_proxy(session_proxy&&) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use_count
      Src: /src/libtorrent/src/session.cpp:527,1
    - Dst: wait_for_asio_handlers
      Src: /src/libtorrent/src/session.cpp:530,1
    - Dst: join
      Src: /src/libtorrent/src/session.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 534
    functionName: session_proxy::~session_proxy()
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - use_count
    - join
    - wait_for_asio_handlers
    linkageType: ''
    returnType: void
    signature: void session_proxy::~session_proxy()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap_disk_io_constructor
      Src: /src/libtorrent/src/session.cpp:543,1
    - Dst: posix_disk_io_constructor
      Src: /src/libtorrent/src/session.cpp:545,1
    - Dst: posix_disk_io_constructor
      Src: /src/libtorrent/src/session.cpp:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 550
    functionName: "std::unique_ptr<disk_interface> default_disk_io_constructor(\n\t\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - posix_disk_io_constructor
    - mmap_disk_io_constructor
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT std::unique_ptr<disk_interface> default_disk_io_constructor(\n\t\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::log_async
      Src: /src/libtorrent/src/session.cpp:81,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/session.cpp:83,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/session.cpp:83,1
    - Dst: std::printf
      Src: /src/libtorrent/src/session.cpp:85,1
    - Dst: libtorrent::async_dec_threads
      Src: /src/libtorrent/src/session.cpp:88,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: libtorrent::wait_for_asio_handlers
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - libtorrent::async_dec_threads
    - milliseconds
    - std::fprintf
    - libtorrent::log_async
    - std::printf
    linkageType: ''
    returnType: void
    signature: void wait_for_asio_handlers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::log_async
      Src: /src/libtorrent/src/session.cpp:81,1
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/session.cpp:83,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/session.cpp:83,1
    - Dst: std::printf
      Src: /src/libtorrent/src/session.cpp:85,1
    - Dst: libtorrent::async_dec_threads
      Src: /src/libtorrent/src/session.cpp:88,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: libtorrent::wait_for_asio_handlers
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - libtorrent::async_dec_threads
    - milliseconds
    - std::fprintf
    - libtorrent::log_async
    - std::printf
    linkageType: ''
    returnType: void
    signature: void wait_for_asio_handlers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:102,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:105,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:107,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:108,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:111,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:114,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:116,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:118,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:119,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:126,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:127,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:128,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:131,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:134,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:137,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:138,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:139,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:144,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:148,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:150,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:152,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:153,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:156,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:158,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:160,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 163
    functionName: libtorrent::min_memory_usage
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_bool
    - settings_pack::set_int
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack min_memory_usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:170,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:172,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:173,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:175,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:179,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:182,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:185,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:192,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:195,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:198,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:201,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:205,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:209,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:212,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:214,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:216,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:218,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:221,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:222,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:223,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:225,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:226,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:227,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:228,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:230,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:234,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:239,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:243,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:247,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:250,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 255
    functionName: libtorrent::high_performance_seed
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - settings_pack::set_bool
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack high_performance_seed()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<io_context>
      Src: /src/libtorrent/src/session.cpp:264,1
    - Dst: get
      Src: /src/libtorrent/src/session.cpp:265,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:282,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:283,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:284,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:285,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:286,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:287,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:288,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:289,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:290,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:291,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:292,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:293,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:294,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:295,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:296,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:297,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session.cpp:298,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:299,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:300,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:301,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session.cpp:302,1
    - Dst: std::make_shared<aux::session_impl>
      Src: /src/libtorrent/src/session.cpp:309,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session.cpp:309,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:310,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:311,1
    - Dst: static_cast<session_handle*>
      Src: /src/libtorrent/src/session.cpp:313,1
    - Dst: session_handle
      Src: /src/libtorrent/src/session.cpp:313,1
    - Dst: load_state
      Src: /src/libtorrent/src/session.cpp:318,1
    - Dst: add_ses_extension
      Src: /src/libtorrent/src/session.cpp:319,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:319,1
    - Dst: set_dht_state
      Src: /src/libtorrent/src/session.cpp:324,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:324,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session.cpp:326,1
    - Dst: set_dht_storage
      Src: /src/libtorrent/src/session.cpp:327,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:327,1
    - Dst: ip_filter::empty
      Src: /src/libtorrent/src/session.cpp:330,1
    - Dst: std::make_shared<ip_filter>
      Src: /src/libtorrent/src/session.cpp:332,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:332,1
    - Dst: set_ip_filter
      Src: /src/libtorrent/src/session.cpp:333,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:333,1
    - Dst: start_session
      Src: /src/libtorrent/src/session.cpp:336,1
    - Dst: std::make_shared<std::thread>
      Src: /src/libtorrent/src/session.cpp:342,1
    - Dst: set_thread_name
      Src: /src/libtorrent/src/session.cpp:344,1
    - Dst: auto::run
      Src: /src/libtorrent/src/session.cpp:345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 3
    argNames:
    - flags
    - ' params'
    - ios
    argTypes:
    - session_flags_t
    - session_params
    - io_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 348
    functionName: libtorrent::session::start
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 16
    functionsReached:
    - std::move
    - load_state
    - set_thread_name
    - SET_BOOL
    - SET_INT
    - std::make_shared<aux::session_impl>
    - session_handle
    - set_dht_storage
    - std::make_shared<io_context>
    - TORRENT_ASSERT
    - auto::run
    - static_cast<session_handle*>
    - std::make_shared<std::thread>
    - set_dht_state
    - std::ref
    - set_ip_filter
    - ip_filter::empty
    - get
    - add_ses_extension
    - start_session
    - std::make_shared<ip_filter>
    linkageType: ''
    returnType: void
    signature: void session::start(session_flags_t const flags, session_params&& params,
      io_context* ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: SET_BOOL
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOOL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: SET_INT
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:356,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:356,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:360,1
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:361,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - flags
    - ' sp'
    - ios
    argTypes:
    - session_flags_t
    - settings_pack
    - io_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: libtorrent::session::start
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 17
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::start(session_flags_t const flags, settings_pack&& sp,
      io_context* ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session::session(session&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:370,1
    - Dst: session_params
      Src: /src/libtorrent/src/session.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - session_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_params
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params const& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:375,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - session_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params&& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:380,1
    - Dst: session_params
      Src: /src/libtorrent/src/session.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - flags
    argTypes:
    - session_params
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_params
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params const& params, session_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:385,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - flags
    argTypes:
    - session_params
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params&& params, session_flags_t const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:396,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - ' ios'
    argTypes:
    - session_params
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params&& params, io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:401,1
    - Dst: session_params
      Src: /src/libtorrent/src/session.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - ' ios'
    argTypes:
    - session_params
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_params
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params const& params, io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:406,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' params'
    - ' ios'
    - flags
    argTypes:
    - session_params
    - io_context
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params&& params, io_context& ios, session_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:411,1
    - Dst: session_params
      Src: /src/libtorrent/src/session.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' params'
    - ' ios'
    - flags
    argTypes:
    - session_params
    - io_context
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_params
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(session_params const& params, io_context& ios,
      session_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' pack'
    - flags
    argTypes:
    - settings_pack
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(settings_pack&& pack, session_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:423,1
    - Dst: settings_pack
      Src: /src/libtorrent/src/session.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' pack'
    - flags
    argTypes:
    - settings_pack
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - settings_pack
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(settings_pack const& pack, session_flags_t const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:428,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' pack'
    - ' ios'
    - flags
    argTypes:
    - settings_pack
    - io_context
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(settings_pack&& pack, io_context& ios, session_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:433,1
    - Dst: settings_pack
      Src: /src/libtorrent/src/session.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' pack'
    - ' ios'
    - flags
    argTypes:
    - settings_pack
    - io_context
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - settings_pack
    - libtorrent::session::start
    linkageType: ''
    returnType: void
    signature: void session::session(settings_pack const& pack, io_context& ios, session_flags_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:443,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session.cpp:444,1
    - Dst: to_string
      Src: /src/libtorrent/src/session.cpp:444,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:447,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:448,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:449,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:450,1
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:453,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' print'
    - flags
    - alert_mask
    argTypes:
    - fingerprint
    - session_flags_t
    - alert_category_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::move
    - libtorrent::session::start
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: "void session::session(fingerprint const& print, session_flags_t const
      flags\n\t\t, alert_category_t const alert_mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session.cpp:460,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session.cpp:461,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:464,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session.cpp:465,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session.cpp:466,1
    - Dst: to_string
      Src: /src/libtorrent/src/session.cpp:466,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/session.cpp:470,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session.cpp:471,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:475,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:476,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:477,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session.cpp:478,1
    - Dst: libtorrent::session::start
      Src: /src/libtorrent/src/session.cpp:480,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - ' print'
    - listen_port_range
    - listen_interface
    - flags
    - alert_mask
    argTypes:
    - fingerprint
    - std::pair<int, int>
    - char*
    - session_flags_t
    - alert_category_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 481
    functionName: libtorrent::session::session
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::move
    - libtorrent::session::start
    - std::snprintf
    - TORRENT_ASSERT
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: "void session::session(fingerprint const& print, std::pair<int, int>
      listen_port_range\n\t\t, char const* listen_interface, session_flags_t const
      flags\n\t\t, alert_category_t const alert_mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::dump_call_profile
      Src: /src/libtorrent/src/session.cpp:490,1
    - Dst: call_abort
      Src: /src/libtorrent/src/session.cpp:494,1
    - Dst: use_count
      Src: /src/libtorrent/src/session.cpp:496,1
    - Dst: wait_for_asio_handlers
      Src: /src/libtorrent/src/session.cpp:499,1
    - Dst: join
      Src: /src/libtorrent/src/session.cpp:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 503
    functionName: session::~session()
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - wait_for_asio_handlers
    - call_abort
    - join
    - use_count
    - libtorrent::aux::dump_call_profile
    linkageType: ''
    returnType: void
    signature: void session::~session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session.cpp:509,1
    - Dst: session_proxy
      Src: /src/libtorrent/src/session.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 511
    functionName: libtorrent::session::abort
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - session_proxy
    - alerts
    linkageType: ''
    returnType: session_proxy
    signature: session_proxy session::abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 513
    functionName: libtorrent::session_proxy::session_proxy
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_proxy::session_proxy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:517,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/src/session.cpp:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ios
    - t
    - impl
    argTypes:
    - std::shared_ptr<io_context>
    - std::shared_ptr<std::thread>
    - std::shared_ptr<aux::session_impl>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: libtorrent::session_proxy::session_proxy
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void session_proxy::session_proxy(std::shared_ptr<io_context> ios\n\t\t,
      std::shared_ptr<std::thread> t\n\t\t, std::shared_ptr<aux::session_impl> impl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 521
    functionName: libtorrent::session_proxy::session_proxy
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_proxy::session_proxy(session_proxy const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 523
    functionName: libtorrent::session_proxy::session_proxy
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_proxy::session_proxy(session_proxy&&) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use_count
      Src: /src/libtorrent/src/session.cpp:527,1
    - Dst: wait_for_asio_handlers
      Src: /src/libtorrent/src/session.cpp:530,1
    - Dst: join
      Src: /src/libtorrent/src/session.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 534
    functionName: session_proxy::~session_proxy()
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - use_count
    - join
    - wait_for_asio_handlers
    linkageType: ''
    returnType: void
    signature: void session_proxy::~session_proxy()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap_disk_io_constructor
      Src: /src/libtorrent/src/session.cpp:543,1
    - Dst: posix_disk_io_constructor
      Src: /src/libtorrent/src/session.cpp:545,1
    - Dst: posix_disk_io_constructor
      Src: /src/libtorrent/src/session.cpp:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 550
    functionName: "std::unique_ptr<disk_interface> default_disk_io_constructor(\n\t\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
    functionSourceFile: /src/libtorrent/src/session.cpp
    functionUses: 0
    functionsReached:
    - posix_disk_io_constructor
    - mmap_disk_io_constructor
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT std::unique_ptr<disk_interface> default_disk_io_constructor(\n\t\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_valid
      Src: /src/libtorrent/src/magnet_uri.cpp:50,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:54,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:57,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:57,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:60,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:62,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:64,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:64,1
    - Dst: status
      Src: /src/libtorrent/src/magnet_uri.cpp:67,1
    - Dst: torrent_status::name::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:68,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:71,1
    - Dst: trackers
      Src: /src/libtorrent/src/magnet_uri.cpp:74,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:77,1
    - Dst: url_seeds
      Src: /src/libtorrent/src/magnet_uri.cpp:80,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 87
    functionName: libtorrent::make_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::to_hex
    - trackers
    - libtorrent::is_valid
    - torrent_status::name::empty
    - info_hashes
    - status
    - libtorrent::escape_string
    - url_seeds
    linkageType: ''
    returnType: std::string
    signature: std::string make_magnet_uri(torrent_handle const& handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:92,1
    - Dst: libtorrent::name
      Src: /src/libtorrent/src/magnet_uri.cpp:93,1
    - Dst: add_torrent_params::trackers::reserve
      Src: /src/libtorrent/src/magnet_uri.cpp:94,1
    - Dst: trackers
      Src: /src/libtorrent/src/magnet_uri.cpp:94,1
    - Dst: trackers
      Src: /src/libtorrent/src/magnet_uri.cpp:95,1
    - Dst: add_torrent_params::trackers::emplace_back
      Src: /src/libtorrent/src/magnet_uri.cpp:96,1
    - Dst: web_seeds
      Src: /src/libtorrent/src/magnet_uri.cpp:97,1
    - Dst: add_torrent_params::url_seeds::emplace_back
      Src: /src/libtorrent/src/magnet_uri.cpp:100,1
    - Dst: libtorrent::make_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: libtorrent::make_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 2
    functionsReached:
    - web_seeds
    - add_torrent_params::url_seeds::emplace_back
    - add_torrent_params::trackers::emplace_back
    - libtorrent::make_magnet_uri
    - trackers
    - add_torrent_params::trackers::reserve
    - info_hashes
    - libtorrent::name
    linkageType: ''
    returnType: std::string
    signature: std::string make_magnet_uri(torrent_info const& info)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: info_hashes::has_v1
      Src: /src/libtorrent/src/magnet_uri.cpp:111,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:114,1
    - Dst: info_hashes::has_v2
      Src: /src/libtorrent/src/magnet_uri.cpp:118,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:122,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:129,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:132,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:132,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:136,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:140,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:140,1
    - Dst: info_hash::is_all_zeros
      Src: /src/libtorrent/src/magnet_uri.cpp:146,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:149,1
    - Dst: name::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:160,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:163,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:169,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:175,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:181,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:183,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/magnet_uri.cpp:189,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/magnet_uri.cpp:194,1
    - Dst: file_priorities::begin
      Src: /src/libtorrent/src/magnet_uri.cpp:194,1
    - Dst: file_priorities::end
      Src: /src/libtorrent/src/magnet_uri.cpp:194,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:213,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:217,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:219,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:232,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:236,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:238,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 244
    functionName: libtorrent::make_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 2
    functionsReached:
    - auto::info_hashes
    - libtorrent::aux::to_hex
    - info_hash::is_all_zeros
    - info_hashes::has_v2
    - libtorrent::print_endpoint
    - libtorrent::to_string
    - info_hashes::has_v1
    - file_priorities::begin
    - file_priorities::end
    - std::any_of
    - name::empty
    - libtorrent::escape_string
    linkageType: ''
    returnType: std::string
    signature: std::string make_magnet_uri(add_torrent_params const& atp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:253,1
    - Dst: libtorrent::torrent_handle
      Src: /src/libtorrent/src/magnet_uri.cpp:254,1
    - Dst: add_torrent
      Src: /src/libtorrent/src/magnet_uri.cpp:255,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' ses'
    - ' uri'
    - ' p'
    - ' ec'
    argTypes:
    - session
    - std::string
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: libtorrent::add_magnet_uri_deprecated
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - add_torrent
    - libtorrent::torrent_handle
    - libtorrent::move
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri_deprecated(session& ses, std::string
      const& uri\n\t\t\t, add_torrent_params const& p, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:253,1
    - Dst: libtorrent::torrent_handle
      Src: /src/libtorrent/src/magnet_uri.cpp:254,1
    - Dst: add_torrent
      Src: /src/libtorrent/src/magnet_uri.cpp:255,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' ses'
    - ' uri'
    - ' p'
    - ' ec'
    argTypes:
    - session
    - std::string
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: libtorrent::add_magnet_uri_deprecated
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - add_torrent
    - libtorrent::torrent_handle
    - libtorrent::move
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri_deprecated(session& ses, std::string
      const& uri\n\t\t\t, add_torrent_params const& p, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_magnet_uri_deprecated
      Src: /src/libtorrent/src/magnet_uri.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ses'
    - ' uri'
    - ' p'
    - ' ec'
    argTypes:
    - session
    - std::string
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: libtorrent::add_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::add_magnet_uri_deprecated
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri(session& ses, std::string const& uri\n\t\t,
      add_torrent_params const& p, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:274,1
    - Dst: add_torrent
      Src: /src/libtorrent/src/magnet_uri.cpp:281,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ' ses'
    - ' uri'
    - ' save_path'
    - storage_mode
    - paused
    argTypes:
    - session
    - std::string
    - std::string
    - storage_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 282
    functionName: libtorrent::add_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - add_torrent
    - libtorrent::move
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri(session& ses, std::string const& uri\n\t\t,
      std::string const& save_path\n\t\t, storage_mode_t storage_mode\n\t\t, bool
      paused\n\t\t, void*)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_magnet_uri_deprecated
      Src: /src/libtorrent/src/magnet_uri.cpp:288,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/magnet_uri.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' ses'
    - ' uri'
    - ' p'
    argTypes:
    - session
    - std::string
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: libtorrent::add_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::add_magnet_uri_deprecated
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri(session& ses, std::string const& uri\n\t\t,
      add_torrent_params const& p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - uri
    - ' ec'
    argTypes:
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: libtorrent::parse_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params parse_magnet_uri(string_view uri, error_code& ec)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/magnet_uri.cpp:304,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:308,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:313,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:317,1
    - Dst: std::tie
      Src: /src/libtorrent/src/magnet_uri.cpp:320,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/magnet_uri.cpp:320,1
    - Dst: std::tie
      Src: /src/libtorrent/src/magnet_uri.cpp:322,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/magnet_uri.cpp:322,1
    - Dst: std::tie
      Src: /src/libtorrent/src/magnet_uri.cpp:330,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/magnet_uri.cpp:330,1
    - Dst: all_of
      Src: /src/libtorrent/src/magnet_uri.cpp:331,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/magnet_uri.cpp:331,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/magnet_uri.cpp:331,1
    - Dst: libtorrent::is_digit
      Src: /src/libtorrent/src/magnet_uri.cpp:331,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:334,1
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:337,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:339,1
    - Dst: tracker_tiers::size
      Src: /src/libtorrent/src/magnet_uri.cpp:343,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/magnet_uri.cpp:343,1
    - Dst: tracker_tiers::resize
      Src: /src/libtorrent/src/magnet_uri.cpp:344,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/magnet_uri.cpp:344,1
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:346,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:347,1
    - Dst: libtorrent::is_i2p_url
      Src: /src/libtorrent/src/magnet_uri.cpp:350,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/src/magnet_uri.cpp:354,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:354,1
    - Dst: tracker_tiers::push_back
      Src: /src/libtorrent/src/magnet_uri.cpp:355,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:358,1
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:361,1
    - Dst: url_seeds::push_back
      Src: /src/libtorrent/src/magnet_uri.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:362,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:364,1
    - Dst: string_view::find
      Src: /src/libtorrent/src/magnet_uri.cpp:367,1
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:369,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:374,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:376,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/magnet_uri.cpp:379,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:379,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/magnet_uri.cpp:379,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/magnet_uri.cpp:380,1
    - Dst: libtorrent::base32decode
      Src: /src/libtorrent/src/magnet_uri.cpp:382,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/magnet_uri.cpp:383,1
    - Dst: sha1_hash::assign
      Src: /src/libtorrent/src/magnet_uri.cpp:388,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:398,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:400,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:403,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:409,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/magnet_uri.cpp:411,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:416,1
    - Dst: info_hashes::v2::data
      Src: /src/libtorrent/src/magnet_uri.cpp:416,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:420,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/magnet_uri.cpp:423,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/magnet_uri.cpp:423,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/magnet_uri.cpp:423,1
    - Dst: libtorrent::is_digit
      Src: /src/libtorrent/src/magnet_uri.cpp:424,1
    - Dst: std::tie
      Src: /src/libtorrent/src/magnet_uri.cpp:434,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/magnet_uri.cpp:434,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:436,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/magnet_uri.cpp:442,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/magnet_uri.cpp:447,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/magnet_uri.cpp:450,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:450,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/magnet_uri.cpp:453,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:453,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/magnet_uri.cpp:462,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:462,1
    - Dst: file_priorities::size
      Src: /src/libtorrent/src/magnet_uri.cpp:468,1
    - Dst: file_priorities::resize
      Src: /src/libtorrent/src/magnet_uri.cpp:469,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/magnet_uri.cpp:469,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/magnet_uri.cpp:472,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:474,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:476,1
    - Dst: libtorrent::parse_endpoint
      Src: /src/libtorrent/src/magnet_uri.cpp:479,1
    - Dst: peers::push_back
      Src: /src/libtorrent/src/magnet_uri.cpp:480,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:480,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:483,1
    - Dst: string_view::find_last_of
      Src: /src/libtorrent/src/magnet_uri.cpp:485,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/magnet_uri.cpp:488,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:488,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/magnet_uri.cpp:489,1
    - Dst: dht_nodes::emplace_back
      Src: /src/libtorrent/src/magnet_uri.cpp:490,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:490,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/magnet_uri.cpp:503,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:505,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 123
    argCount: 3
    argNames:
    - uri
    - ' p'
    - ' ec'
    argTypes:
    - string_view
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 506
    functionName: libtorrent::parse_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 4
    functionsReached:
    - string_view::end
    - libtorrent::string_equal_no_case
    - file_priorities::resize
    - peers::push_back
    - static_cast<std::size_t>
    - string_view::find
    - all_of
    - std::atoi
    - libtorrent::move
    - dht_nodes::emplace_back
    - trackers::push_back
    - trackers::size
    - tracker_tiers::push_back
    - libtorrent::unescape_string
    - string_view::empty
    - libtorrent::is_digit
    - tracker_tiers::resize
    - sha1_hash::assign
    - libtorrent::is_i2p_url
    - string_view::to_string
    - std::size_t
    - libtorrent::clear
    - libtorrent::split_string
    - info_hashes::get_best
    - string_view::find_first_of
    - string_view::find_last_of
    - libtorrent::aux::max
    - string_view::begin
    - sha1_hash::data
    - std::string::size
    - string_view::substr
    - info_hashes::v2::data
    - libtorrent::aux::from_hex
    - std::tie
    - libtorrent::parse_endpoint
    - std::string::empty
    - tracker_tiers::size
    - libtorrent::base32decode
    - string_view::size
    - std::any_of
    - url_seeds::push_back
    - file_priorities::size
    linkageType: ''
    returnType: void
    signature: void parse_magnet_uri(string_view uri, add_torrent_params& p, error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:512,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/magnet_uri.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uri
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: libtorrent::parse_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 5
    functionsReached:
    - aux::throw_ex<system_error>
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params parse_magnet_uri(string_view uri)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_valid
      Src: /src/libtorrent/src/magnet_uri.cpp:50,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:54,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:57,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:57,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:60,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:62,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:64,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:64,1
    - Dst: status
      Src: /src/libtorrent/src/magnet_uri.cpp:67,1
    - Dst: torrent_status::name::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:68,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:71,1
    - Dst: trackers
      Src: /src/libtorrent/src/magnet_uri.cpp:74,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:77,1
    - Dst: url_seeds
      Src: /src/libtorrent/src/magnet_uri.cpp:80,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 87
    functionName: libtorrent::make_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::to_hex
    - trackers
    - libtorrent::is_valid
    - torrent_status::name::empty
    - info_hashes
    - status
    - libtorrent::escape_string
    - url_seeds
    linkageType: ''
    returnType: std::string
    signature: std::string make_magnet_uri(torrent_handle const& handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:92,1
    - Dst: libtorrent::name
      Src: /src/libtorrent/src/magnet_uri.cpp:93,1
    - Dst: add_torrent_params::trackers::reserve
      Src: /src/libtorrent/src/magnet_uri.cpp:94,1
    - Dst: trackers
      Src: /src/libtorrent/src/magnet_uri.cpp:94,1
    - Dst: trackers
      Src: /src/libtorrent/src/magnet_uri.cpp:95,1
    - Dst: add_torrent_params::trackers::emplace_back
      Src: /src/libtorrent/src/magnet_uri.cpp:96,1
    - Dst: web_seeds
      Src: /src/libtorrent/src/magnet_uri.cpp:97,1
    - Dst: add_torrent_params::url_seeds::emplace_back
      Src: /src/libtorrent/src/magnet_uri.cpp:100,1
    - Dst: libtorrent::make_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: libtorrent::make_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 3
    functionsReached:
    - web_seeds
    - add_torrent_params::url_seeds::emplace_back
    - add_torrent_params::trackers::emplace_back
    - libtorrent::make_magnet_uri
    - trackers
    - add_torrent_params::trackers::reserve
    - info_hashes
    - libtorrent::name
    linkageType: ''
    returnType: std::string
    signature: std::string make_magnet_uri(torrent_info const& info)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: info_hashes::has_v1
      Src: /src/libtorrent/src/magnet_uri.cpp:111,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:114,1
    - Dst: info_hashes::has_v2
      Src: /src/libtorrent/src/magnet_uri.cpp:118,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:122,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:129,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:132,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:132,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:136,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:140,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/magnet_uri.cpp:140,1
    - Dst: info_hash::is_all_zeros
      Src: /src/libtorrent/src/magnet_uri.cpp:146,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:149,1
    - Dst: name::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:160,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:163,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:169,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:175,1
    - Dst: libtorrent::escape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:181,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:183,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/magnet_uri.cpp:189,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/magnet_uri.cpp:194,1
    - Dst: file_priorities::begin
      Src: /src/libtorrent/src/magnet_uri.cpp:194,1
    - Dst: file_priorities::end
      Src: /src/libtorrent/src/magnet_uri.cpp:194,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:213,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:217,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:219,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:232,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:236,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:238,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 244
    functionName: libtorrent::make_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 3
    functionsReached:
    - auto::info_hashes
    - libtorrent::aux::to_hex
    - info_hash::is_all_zeros
    - info_hashes::has_v2
    - libtorrent::print_endpoint
    - libtorrent::to_string
    - info_hashes::has_v1
    - file_priorities::begin
    - file_priorities::end
    - std::any_of
    - name::empty
    - libtorrent::escape_string
    linkageType: ''
    returnType: std::string
    signature: std::string make_magnet_uri(add_torrent_params const& atp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:253,1
    - Dst: libtorrent::torrent_handle
      Src: /src/libtorrent/src/magnet_uri.cpp:254,1
    - Dst: add_torrent
      Src: /src/libtorrent/src/magnet_uri.cpp:255,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' ses'
    - ' uri'
    - ' p'
    - ' ec'
    argTypes:
    - session
    - std::string
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: libtorrent::add_magnet_uri_deprecated
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 2
    functionsReached:
    - add_torrent
    - libtorrent::torrent_handle
    - libtorrent::move
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri_deprecated(session& ses, std::string
      const& uri\n\t\t\t, add_torrent_params const& p, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:253,1
    - Dst: libtorrent::torrent_handle
      Src: /src/libtorrent/src/magnet_uri.cpp:254,1
    - Dst: add_torrent
      Src: /src/libtorrent/src/magnet_uri.cpp:255,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' ses'
    - ' uri'
    - ' p'
    - ' ec'
    argTypes:
    - session
    - std::string
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: libtorrent::add_magnet_uri_deprecated
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 2
    functionsReached:
    - add_torrent
    - libtorrent::torrent_handle
    - libtorrent::move
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri_deprecated(session& ses, std::string
      const& uri\n\t\t\t, add_torrent_params const& p, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_magnet_uri_deprecated
      Src: /src/libtorrent/src/magnet_uri.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ses'
    - ' uri'
    - ' p'
    - ' ec'
    argTypes:
    - session
    - std::string
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: libtorrent::add_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::add_magnet_uri_deprecated
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri(session& ses, std::string const& uri\n\t\t,
      add_torrent_params const& p, error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:274,1
    - Dst: add_torrent
      Src: /src/libtorrent/src/magnet_uri.cpp:281,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ' ses'
    - ' uri'
    - ' save_path'
    - storage_mode
    - paused
    argTypes:
    - session
    - std::string
    - std::string
    - storage_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 282
    functionName: libtorrent::add_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - add_torrent
    - libtorrent::move
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri(session& ses, std::string const& uri\n\t\t,
      std::string const& save_path\n\t\t, storage_mode_t storage_mode\n\t\t, bool
      paused\n\t\t, void*)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_magnet_uri_deprecated
      Src: /src/libtorrent/src/magnet_uri.cpp:288,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/magnet_uri.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' ses'
    - ' uri'
    - ' p'
    argTypes:
    - session
    - std::string
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: libtorrent::add_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::add_magnet_uri_deprecated
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_magnet_uri(session& ses, std::string const& uri\n\t\t,
      add_torrent_params const& p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - uri
    - ' ec'
    argTypes:
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: libtorrent::parse_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params parse_magnet_uri(string_view uri, error_code& ec)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/magnet_uri.cpp:304,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:308,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:313,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:317,1
    - Dst: std::tie
      Src: /src/libtorrent/src/magnet_uri.cpp:320,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/magnet_uri.cpp:320,1
    - Dst: std::tie
      Src: /src/libtorrent/src/magnet_uri.cpp:322,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/magnet_uri.cpp:322,1
    - Dst: std::tie
      Src: /src/libtorrent/src/magnet_uri.cpp:330,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/magnet_uri.cpp:330,1
    - Dst: all_of
      Src: /src/libtorrent/src/magnet_uri.cpp:331,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/magnet_uri.cpp:331,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/magnet_uri.cpp:331,1
    - Dst: libtorrent::is_digit
      Src: /src/libtorrent/src/magnet_uri.cpp:331,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:334,1
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:337,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:339,1
    - Dst: tracker_tiers::size
      Src: /src/libtorrent/src/magnet_uri.cpp:343,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/magnet_uri.cpp:343,1
    - Dst: tracker_tiers::resize
      Src: /src/libtorrent/src/magnet_uri.cpp:344,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/magnet_uri.cpp:344,1
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:346,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:347,1
    - Dst: libtorrent::is_i2p_url
      Src: /src/libtorrent/src/magnet_uri.cpp:350,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/src/magnet_uri.cpp:354,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:354,1
    - Dst: tracker_tiers::push_back
      Src: /src/libtorrent/src/magnet_uri.cpp:355,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:358,1
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:361,1
    - Dst: url_seeds::push_back
      Src: /src/libtorrent/src/magnet_uri.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:362,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:364,1
    - Dst: string_view::find
      Src: /src/libtorrent/src/magnet_uri.cpp:367,1
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/src/magnet_uri.cpp:369,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:374,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:376,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/magnet_uri.cpp:379,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:379,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/magnet_uri.cpp:379,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/magnet_uri.cpp:380,1
    - Dst: libtorrent::base32decode
      Src: /src/libtorrent/src/magnet_uri.cpp:382,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/magnet_uri.cpp:383,1
    - Dst: sha1_hash::assign
      Src: /src/libtorrent/src/magnet_uri.cpp:388,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:398,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:400,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:403,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:409,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/magnet_uri.cpp:411,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/magnet_uri.cpp:416,1
    - Dst: info_hashes::v2::data
      Src: /src/libtorrent/src/magnet_uri.cpp:416,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:420,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/magnet_uri.cpp:423,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/magnet_uri.cpp:423,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/magnet_uri.cpp:423,1
    - Dst: libtorrent::is_digit
      Src: /src/libtorrent/src/magnet_uri.cpp:424,1
    - Dst: std::tie
      Src: /src/libtorrent/src/magnet_uri.cpp:434,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/magnet_uri.cpp:434,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:436,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/magnet_uri.cpp:442,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/magnet_uri.cpp:447,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/magnet_uri.cpp:450,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:450,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/magnet_uri.cpp:453,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:453,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/magnet_uri.cpp:462,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/magnet_uri.cpp:462,1
    - Dst: file_priorities::size
      Src: /src/libtorrent/src/magnet_uri.cpp:468,1
    - Dst: file_priorities::resize
      Src: /src/libtorrent/src/magnet_uri.cpp:469,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/magnet_uri.cpp:469,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/magnet_uri.cpp:472,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:474,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:476,1
    - Dst: libtorrent::parse_endpoint
      Src: /src/libtorrent/src/magnet_uri.cpp:479,1
    - Dst: peers::push_back
      Src: /src/libtorrent/src/magnet_uri.cpp:480,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/magnet_uri.cpp:480,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/magnet_uri.cpp:483,1
    - Dst: string_view::find_last_of
      Src: /src/libtorrent/src/magnet_uri.cpp:485,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/magnet_uri.cpp:488,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:488,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/magnet_uri.cpp:489,1
    - Dst: dht_nodes::emplace_back
      Src: /src/libtorrent/src/magnet_uri.cpp:490,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/magnet_uri.cpp:490,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/magnet_uri.cpp:503,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/magnet_uri.cpp:505,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 123
    argCount: 3
    argNames:
    - uri
    - ' p'
    - ' ec'
    argTypes:
    - string_view
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 506
    functionName: libtorrent::parse_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 9
    functionsReached:
    - string_view::end
    - libtorrent::string_equal_no_case
    - file_priorities::resize
    - peers::push_back
    - static_cast<std::size_t>
    - string_view::find
    - all_of
    - std::atoi
    - libtorrent::move
    - dht_nodes::emplace_back
    - trackers::push_back
    - trackers::size
    - tracker_tiers::push_back
    - libtorrent::unescape_string
    - string_view::empty
    - libtorrent::is_digit
    - tracker_tiers::resize
    - sha1_hash::assign
    - libtorrent::is_i2p_url
    - string_view::to_string
    - std::size_t
    - libtorrent::clear
    - libtorrent::split_string
    - info_hashes::get_best
    - string_view::find_first_of
    - string_view::find_last_of
    - libtorrent::aux::max
    - string_view::begin
    - sha1_hash::data
    - std::string::size
    - string_view::substr
    - info_hashes::v2::data
    - libtorrent::aux::from_hex
    - std::tie
    - libtorrent::parse_endpoint
    - std::string::empty
    - tracker_tiers::size
    - libtorrent::base32decode
    - string_view::size
    - std::any_of
    - url_seeds::push_back
    - file_priorities::size
    linkageType: ''
    returnType: void
    signature: void parse_magnet_uri(string_view uri, add_torrent_params& p, error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/src/magnet_uri.cpp:512,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/magnet_uri.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uri
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: libtorrent::parse_magnet_uri
    functionSourceFile: /src/libtorrent/src/magnet_uri.cpp
    functionUses: 10
    functionsReached:
    - aux::throw_ex<system_error>
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params parse_magnet_uri(string_view uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/http_seed_connection.cpp:63,1
    - Dst: ignore_stats
      Src: /src/libtorrent/src/http_seed_connection.cpp:64,1
    - Dst: tor::lock
      Src: /src/libtorrent/src/http_seed_connection.cpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:67,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:68,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:68,1
    - Dst: max_out_request_queue
      Src: /src/libtorrent/src/http_seed_connection.cpp:72,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_seed_connection.cpp:72,1
    - Dst: prefer_contiguous_blocks
      Src: /src/libtorrent/src/http_seed_connection.cpp:75,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' pack'
    - ' web'
    argTypes:
    - peer_connection_args
    - web_seed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 80
    functionName: libtorrent::http_seed_connection::http_seed_connection
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - tor::lock
    - TORRENT_ASSERT
    - get_int
    - ignore_stats
    - prefer_contiguous_blocks
    - get_bool
    - std::shared_ptr::block_size
    - peer_log
    - std::shared_ptr::torrent_file
    - max_out_request_queue
    linkageType: ''
    returnType: void
    signature: "void http_seed_connection::http_seed_connection(peer_connection_args&
      pack\n\t\t, web_seed_t& web)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:86,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:89,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:90,1
    - Dst: std::shared_ptr::remove_web_seed_conn
      Src: /src/libtorrent/src/http_seed_connection.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:94,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/http_seed_connection.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: libtorrent::http_seed_connection::disable
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - associated_torrent
    - std::shared_ptr::remove_web_seed_conn
    - is_disconnecting
    - TORRENT_ASSERT
    - libtorrent::http_seed_connection::disconnect
    linkageType: ''
    returnType: void
    signature: void http_seed_connection::disable(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:100,1
    - Dst: set_pid
      Src: /src/libtorrent/src/http_seed_connection.cpp:101,1
    - Dst: incoming_have_all
      Src: /src/libtorrent/src/http_seed_connection.cpp:104,1
    - Dst: libtorrent::web_connection_base::on_connected
      Src: /src/libtorrent/src/http_seed_connection.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: libtorrent::http_seed_connection::on_connected
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    - incoming_have_all
    - libtorrent::web_connection_base::on_connected
    - set_pid
    linkageType: ''
    returnType: void
    signature: void http_seed_connection::on_connected()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/http_seed_connection.cpp:111,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:113,1
    - Dst: endpoints::erase
      Src: /src/libtorrent/src/http_seed_connection.cpp:117,1
    - Dst: endpoints::begin
      Src: /src/libtorrent/src/http_seed_connection.cpp:117,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:120,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' ec'
    - op
    - error
    argTypes:
    - error_code
    - operation_t
    - disconnect_severity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: libtorrent::http_seed_connection::disconnect
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 1
    functionsReached:
    - associated_torrent
    - is_disconnecting
    - endpoints::begin
    - endpoints::erase
    - endpoints::empty
    - TORRENT_ASSERT
    - peer_connection::disconnect
    linkageType: ''
    returnType: void
    signature: "void http_seed_connection::disconnect(error_code const& ec\n\t\t,
      operation_t const op, disconnect_severity_t const error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:128,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:131,1
    - Dst: front
      Src: /src/libtorrent/src/http_seed_connection.cpp:135,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_seed_connection.cpp:137,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:143,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_seed_connection.cpp:143,1
    - Dst: std::max
      Src: /src/libtorrent/src/http_seed_connection.cpp:146,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:146,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:152,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:153,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:154,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:156,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:156,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:157,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 159
    functionName: libtorrent::http_seed_connection::downloading_piece_progress
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - body_start
    - associated_torrent
    - empty
    - front
    - TORRENT_ASSERT
    - header_finished
    - std::max
    - std::shared_ptr::block_size
    - get
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: piece_block_progress
    signature: piece_block_progress http_seed_connection::downloading_piece_progress()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:166,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:168,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/http_seed_connection.cpp:168,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:171,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:171,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/http_seed_connection.cpp:174,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:177,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:178,1
    - Dst: std::min
      Src: /src/libtorrent/src/http_seed_connection.cpp:184,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/http_seed_connection.cpp:185,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/http_seed_connection.cpp:185,1
    - Dst: push_back
      Src: /src/libtorrent/src/http_seed_connection.cpp:186,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_seed_connection.cpp:190,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:197,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/http_seed_connection.cpp:197,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:199,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:203,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:206,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:209,1
    - Dst: add_headers
      Src: /src/libtorrent/src/http_seed_connection.cpp:213,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:218,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_seed_connection.cpp:218,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/http_seed_connection.cpp:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 222
    functionName: libtorrent::http_seed_connection::write_request
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - to_string
    - send_buffer
    - associated_info_hash
    - associated_torrent
    - std::string::c_str
    - TORRENT_ASSERT
    - std::min
    - get_int
    - escape_string
    - add_headers
    - std::shared_ptr::block_size
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - peer_log
    - std::shared_ptr::torrent_file
    - std::string::reserve
    linkageType: ''
    returnType: void
    signature: void http_seed_connection::write_request(peer_request const& r)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:235,1
    - Dst: should_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:237,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:239,1
    - Dst: message
      Src: /src/libtorrent/src/http_seed_connection.cpp:240,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:246,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:247,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:251,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:254,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:254,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:256,1
    - Dst: empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:256,1
    - Dst: empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:257,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:259,1
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:260,1
    - Dst: front
      Src: /src/libtorrent/src/http_seed_connection.cpp:264,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_seed_connection.cpp:266,1
    - Dst: std::tie
      Src: /src/libtorrent/src/http_seed_connection.cpp:272,1
    - Dst: incoming
      Src: /src/libtorrent/src/http_seed_connection.cpp:272,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:275,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:275,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:276,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:283,1
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:288,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:288,1
    - Dst: span::front
      Src: /src/libtorrent/src/http_seed_connection.cpp:288,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:290,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:290,1
    - Dst: packet_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:290,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:293,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:295,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:296,1
    - Dst: is_ok_status
      Src: /src/libtorrent/src/http_seed_connection.cpp:301,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:301,1
    - Dst: value_or
      Src: /src/libtorrent/src/http_seed_connection.cpp:303,1
    - Dst: header_duration
      Src: /src/libtorrent/src/http_seed_connection.cpp:303,1
    - Dst: seconds32
      Src: /src/libtorrent/src/http_seed_connection.cpp:304,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_seed_connection.cpp:304,1
    - Dst: std::shared_ptr::retry_web_seed
      Src: /src/libtorrent/src/http_seed_connection.cpp:307,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/http_seed_connection.cpp:309,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:311,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:311,1
    - Dst: message
      Src: /src/libtorrent/src/http_seed_connection.cpp:312,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/http_seed_connection.cpp:313,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/http_seed_connection.cpp:313,1
    - Dst: url
      Src: /src/libtorrent/src/http_seed_connection.cpp:313,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:316,1
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:317,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:317,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:317,1
    - Dst: http_category
      Src: /src/libtorrent/src/http_seed_connection.cpp:317,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_seed_connection.cpp:320,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:322,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:323,1
    - Dst: is_redirect
      Src: /src/libtorrent/src/http_seed_connection.cpp:331,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:331,1
    - Dst: header
      Src: /src/libtorrent/src/http_seed_connection.cpp:335,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:336,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:338,1
    - Dst: libtorrent::http_seed_connection::disable
      Src: /src/libtorrent/src/http_seed_connection.cpp:341,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_seed_connection.cpp:349,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/http_seed_connection.cpp:349,1
    - Dst: remote
      Src: /src/libtorrent/src/http_seed_connection.cpp:349,1
    - Dst: std::shared_ptr::add_web_seed
      Src: /src/libtorrent/src/http_seed_connection.cpp:353,1
    - Dst: libtorrent::http_seed_connection::disable
      Src: /src/libtorrent/src/http_seed_connection.cpp:356,1
    - Dst: header
      Src: /src/libtorrent/src/http_seed_connection.cpp:360,1
    - Dst: empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:361,1
    - Dst: atol
      Src: /src/libtorrent/src/http_seed_connection.cpp:366,1
    - Dst: header
      Src: /src/libtorrent/src/http_seed_connection.cpp:366,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:369,1
    - Dst: libtorrent::http_seed_connection::disable
      Src: /src/libtorrent/src/http_seed_connection.cpp:371,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:376,1
    - Dst: libtorrent::http_seed_connection::disable
      Src: /src/libtorrent/src/http_seed_connection.cpp:378,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_seed_connection.cpp:381,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/http_seed_connection.cpp:384,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_seed_connection.cpp:389,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:391,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/http_seed_connection.cpp:395,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:395,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:396,1
    - Dst: libtorrent::aux::is_hex
      Src: /src/libtorrent/src/http_seed_connection.cpp:397,1
    - Dst: parse_chunk_header
      Src: /src/libtorrent/src/http_seed_connection.cpp:398,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:401,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:401,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:401,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:402,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:402,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:403,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/http_seed_connection.cpp:403,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:403,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/http_seed_connection.cpp:404,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:404,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:411,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:415,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:415,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:416,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:418,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:420,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:420,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:422,1
    - Dst: cut
      Src: /src/libtorrent/src/http_seed_connection.cpp:423,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:423,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/http_seed_connection.cpp:423,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:424,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/http_seed_connection.cpp:425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:429,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:429,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:430,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:430,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_seed_connection.cpp:431,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:432,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:432,1
    - Dst: outstanding_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:444,1
    - Dst: outstanding_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:444,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:445,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/http_seed_connection.cpp:446,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:449,1
    - Dst: finished
      Src: /src/libtorrent/src/http_seed_connection.cpp:451,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/http_seed_connection.cpp:453,1
    - Dst: std::string
      Src: /src/libtorrent/src/http_seed_connection.cpp:453,1
    - Dst: span::begin
      Src: /src/libtorrent/src/http_seed_connection.cpp:453,1
    - Dst: span::end
      Src: /src/libtorrent/src/http_seed_connection.cpp:453,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:456,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:459,1
    - Dst: std::shared_ptr::retry_web_seed
      Src: /src/libtorrent/src/http_seed_connection.cpp:461,1
    - Dst: seconds32
      Src: /src/libtorrent/src/http_seed_connection.cpp:461,1
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:462,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:462,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:462,1
    - Dst: http_category
      Src: /src/libtorrent/src/http_seed_connection.cpp:462,1
    - Dst: span::empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:468,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:470,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_seed_connection.cpp:474,1
    - Dst: pop_front
      Src: /src/libtorrent/src/http_seed_connection.cpp:476,1
    - Dst: incoming_piece
      Src: /src/libtorrent/src/http_seed_connection.cpp:477,1
    - Dst: span::begin
      Src: /src/libtorrent/src/http_seed_connection.cpp:477,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:478,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:481,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:481,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:482,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_seed_connection.cpp:483,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:483,1
    - Dst: cut
      Src: /src/libtorrent/src/http_seed_connection.cpp:485,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:485,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:488,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:488,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:492,1
    - Dst: reset
      Src: /src/libtorrent/src/http_seed_connection.cpp:493,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 153
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 495
    functionName: libtorrent::http_seed_connection::on_receive
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - to_string
    - parse_chunk_header
    - packet_size
    - span::size
    - http_category
    - body_start
    - associated_torrent
    - std::shared_ptr::retry_web_seed
    - chunked_encoding
    - empty
    - static_cast<std::ptrdiff_t>
    - remote
    - header_finished
    - std::shared_ptr::add_web_seed
    - aux::numeric_cast<int>
    - get_bool
    - cut
    - std::atoi
    - std::shared_ptr::get_handle
    - reset
    - received_bytes
    - aux::numeric_cast<std::size_t>
    - span::front
    - message
    - aux::numeric_cast<std::ptrdiff_t>
    - front
    - get_int
    - url
    - header_duration
    - header
    - pop_front
    - span::begin
    - span::end
    - incoming_piece
    - seconds32
    - std::string
    - finished
    - TORRENT_ASSERT
    - span::empty
    - libtorrent::http_seed_connection::disable
    - std::shared_ptr::block_size
    - libtorrent::http_seed_connection::disconnect
    - is_redirect
    - libtorrent::aux::is_hex
    - atol
    - span::subspan
    - libtorrent::aux::is_global
    - std::tie
    - error_code
    - incoming_piece_fragment
    - std::shared_ptr::alerts
    - std::string::empty
    - outstanding_bytes
    - incoming
    - status_code
    - is_ok_status
    - should_log
    - get
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void http_seed_connection::on_receive(error_code const& error\n\t\t,
      std::size_t bytes_transferred)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_connection_base::get_specific_peer_info
      Src: /src/libtorrent/src/http_seed_connection.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: libtorrent::http_seed_connection::get_specific_peer_info
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::web_connection_base::get_specific_peer_info
    linkageType: ''
    returnType: void
    signature: void http_seed_connection::get_specific_peer_info(peer_info& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/http_seed_connection.cpp:63,1
    - Dst: ignore_stats
      Src: /src/libtorrent/src/http_seed_connection.cpp:64,1
    - Dst: tor::lock
      Src: /src/libtorrent/src/http_seed_connection.cpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:67,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:68,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:68,1
    - Dst: max_out_request_queue
      Src: /src/libtorrent/src/http_seed_connection.cpp:72,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_seed_connection.cpp:72,1
    - Dst: prefer_contiguous_blocks
      Src: /src/libtorrent/src/http_seed_connection.cpp:75,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' pack'
    - ' web'
    argTypes:
    - peer_connection_args
    - web_seed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 80
    functionName: libtorrent::http_seed_connection::http_seed_connection
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - tor::lock
    - TORRENT_ASSERT
    - get_int
    - ignore_stats
    - prefer_contiguous_blocks
    - get_bool
    - std::shared_ptr::block_size
    - peer_log
    - std::shared_ptr::torrent_file
    - max_out_request_queue
    linkageType: ''
    returnType: void
    signature: "void http_seed_connection::http_seed_connection(peer_connection_args&
      pack\n\t\t, web_seed_t& web)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:86,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:89,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:90,1
    - Dst: std::shared_ptr::remove_web_seed_conn
      Src: /src/libtorrent/src/http_seed_connection.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:94,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/http_seed_connection.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: libtorrent::http_seed_connection::disable
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 1
    functionsReached:
    - associated_torrent
    - std::shared_ptr::remove_web_seed_conn
    - is_disconnecting
    - TORRENT_ASSERT
    - libtorrent::http_seed_connection::disconnect
    linkageType: ''
    returnType: void
    signature: void http_seed_connection::disable(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:100,1
    - Dst: set_pid
      Src: /src/libtorrent/src/http_seed_connection.cpp:101,1
    - Dst: incoming_have_all
      Src: /src/libtorrent/src/http_seed_connection.cpp:104,1
    - Dst: libtorrent::web_connection_base::on_connected
      Src: /src/libtorrent/src/http_seed_connection.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: libtorrent::http_seed_connection::on_connected
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    - incoming_have_all
    - libtorrent::web_connection_base::on_connected
    - set_pid
    linkageType: ''
    returnType: void
    signature: void http_seed_connection::on_connected()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/http_seed_connection.cpp:111,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:113,1
    - Dst: endpoints::erase
      Src: /src/libtorrent/src/http_seed_connection.cpp:117,1
    - Dst: endpoints::begin
      Src: /src/libtorrent/src/http_seed_connection.cpp:117,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:120,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' ec'
    - op
    - error
    argTypes:
    - error_code
    - operation_t
    - disconnect_severity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: libtorrent::http_seed_connection::disconnect
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 3
    functionsReached:
    - associated_torrent
    - is_disconnecting
    - endpoints::begin
    - endpoints::erase
    - endpoints::empty
    - TORRENT_ASSERT
    - peer_connection::disconnect
    linkageType: ''
    returnType: void
    signature: "void http_seed_connection::disconnect(error_code const& ec\n\t\t,
      operation_t const op, disconnect_severity_t const error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:128,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:131,1
    - Dst: front
      Src: /src/libtorrent/src/http_seed_connection.cpp:135,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_seed_connection.cpp:137,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:143,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_seed_connection.cpp:143,1
    - Dst: std::max
      Src: /src/libtorrent/src/http_seed_connection.cpp:146,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:146,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:152,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:153,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:154,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:156,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:156,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:157,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 159
    functionName: libtorrent::http_seed_connection::downloading_piece_progress
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - body_start
    - associated_torrent
    - empty
    - front
    - TORRENT_ASSERT
    - header_finished
    - std::max
    - std::shared_ptr::block_size
    - get
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: piece_block_progress
    signature: piece_block_progress http_seed_connection::downloading_piece_progress()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:166,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:168,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/http_seed_connection.cpp:168,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:171,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:171,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/http_seed_connection.cpp:174,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:177,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:178,1
    - Dst: std::min
      Src: /src/libtorrent/src/http_seed_connection.cpp:184,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/http_seed_connection.cpp:185,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/http_seed_connection.cpp:185,1
    - Dst: push_back
      Src: /src/libtorrent/src/http_seed_connection.cpp:186,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_seed_connection.cpp:190,1
    - Dst: escape_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:197,1
    - Dst: associated_info_hash
      Src: /src/libtorrent/src/http_seed_connection.cpp:197,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:199,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/http_seed_connection.cpp:203,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:206,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:209,1
    - Dst: add_headers
      Src: /src/libtorrent/src/http_seed_connection.cpp:213,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:218,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_seed_connection.cpp:218,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/http_seed_connection.cpp:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 222
    functionName: libtorrent::http_seed_connection::write_request
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - to_string
    - send_buffer
    - associated_info_hash
    - associated_torrent
    - std::string::c_str
    - TORRENT_ASSERT
    - std::min
    - get_int
    - escape_string
    - add_headers
    - std::shared_ptr::block_size
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - peer_log
    - std::shared_ptr::torrent_file
    - std::string::reserve
    linkageType: ''
    returnType: void
    signature: void http_seed_connection::write_request(peer_request const& r)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:235,1
    - Dst: should_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:237,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:239,1
    - Dst: message
      Src: /src/libtorrent/src/http_seed_connection.cpp:240,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:246,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:247,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:251,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:254,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:254,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:256,1
    - Dst: empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:256,1
    - Dst: empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:257,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:259,1
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:260,1
    - Dst: front
      Src: /src/libtorrent/src/http_seed_connection.cpp:264,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_seed_connection.cpp:266,1
    - Dst: std::tie
      Src: /src/libtorrent/src/http_seed_connection.cpp:272,1
    - Dst: incoming
      Src: /src/libtorrent/src/http_seed_connection.cpp:272,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:275,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:275,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:276,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:283,1
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:288,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:288,1
    - Dst: span::front
      Src: /src/libtorrent/src/http_seed_connection.cpp:288,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:290,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:290,1
    - Dst: packet_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:290,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:293,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:295,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:296,1
    - Dst: is_ok_status
      Src: /src/libtorrent/src/http_seed_connection.cpp:301,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:301,1
    - Dst: value_or
      Src: /src/libtorrent/src/http_seed_connection.cpp:303,1
    - Dst: header_duration
      Src: /src/libtorrent/src/http_seed_connection.cpp:303,1
    - Dst: seconds32
      Src: /src/libtorrent/src/http_seed_connection.cpp:304,1
    - Dst: get_int
      Src: /src/libtorrent/src/http_seed_connection.cpp:304,1
    - Dst: std::shared_ptr::retry_web_seed
      Src: /src/libtorrent/src/http_seed_connection.cpp:307,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/http_seed_connection.cpp:309,1
    - Dst: to_string
      Src: /src/libtorrent/src/http_seed_connection.cpp:311,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:311,1
    - Dst: message
      Src: /src/libtorrent/src/http_seed_connection.cpp:312,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/http_seed_connection.cpp:313,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/http_seed_connection.cpp:313,1
    - Dst: url
      Src: /src/libtorrent/src/http_seed_connection.cpp:313,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:316,1
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:317,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:317,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:317,1
    - Dst: http_category
      Src: /src/libtorrent/src/http_seed_connection.cpp:317,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_seed_connection.cpp:320,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:322,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:323,1
    - Dst: is_redirect
      Src: /src/libtorrent/src/http_seed_connection.cpp:331,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:331,1
    - Dst: header
      Src: /src/libtorrent/src/http_seed_connection.cpp:335,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:336,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:338,1
    - Dst: libtorrent::http_seed_connection::disable
      Src: /src/libtorrent/src/http_seed_connection.cpp:341,1
    - Dst: get_bool
      Src: /src/libtorrent/src/http_seed_connection.cpp:349,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/http_seed_connection.cpp:349,1
    - Dst: remote
      Src: /src/libtorrent/src/http_seed_connection.cpp:349,1
    - Dst: std::shared_ptr::add_web_seed
      Src: /src/libtorrent/src/http_seed_connection.cpp:353,1
    - Dst: libtorrent::http_seed_connection::disable
      Src: /src/libtorrent/src/http_seed_connection.cpp:356,1
    - Dst: header
      Src: /src/libtorrent/src/http_seed_connection.cpp:360,1
    - Dst: empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:361,1
    - Dst: atol
      Src: /src/libtorrent/src/http_seed_connection.cpp:366,1
    - Dst: header
      Src: /src/libtorrent/src/http_seed_connection.cpp:366,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:369,1
    - Dst: libtorrent::http_seed_connection::disable
      Src: /src/libtorrent/src/http_seed_connection.cpp:371,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:376,1
    - Dst: libtorrent::http_seed_connection::disable
      Src: /src/libtorrent/src/http_seed_connection.cpp:378,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_seed_connection.cpp:381,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/http_seed_connection.cpp:384,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_seed_connection.cpp:389,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:391,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/http_seed_connection.cpp:395,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:395,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:396,1
    - Dst: libtorrent::aux::is_hex
      Src: /src/libtorrent/src/http_seed_connection.cpp:397,1
    - Dst: parse_chunk_header
      Src: /src/libtorrent/src/http_seed_connection.cpp:398,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:401,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:401,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:401,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:402,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:402,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:403,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/http_seed_connection.cpp:403,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:403,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/http_seed_connection.cpp:404,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:404,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:411,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:415,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:415,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:416,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:418,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:420,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:420,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:422,1
    - Dst: cut
      Src: /src/libtorrent/src/http_seed_connection.cpp:423,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:423,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/http_seed_connection.cpp:423,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:424,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/http_seed_connection.cpp:425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:429,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:429,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:430,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:430,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_seed_connection.cpp:431,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:432,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:432,1
    - Dst: outstanding_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:444,1
    - Dst: outstanding_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:444,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:445,1
    - Dst: incoming_piece_fragment
      Src: /src/libtorrent/src/http_seed_connection.cpp:446,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:449,1
    - Dst: finished
      Src: /src/libtorrent/src/http_seed_connection.cpp:451,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/http_seed_connection.cpp:453,1
    - Dst: std::string
      Src: /src/libtorrent/src/http_seed_connection.cpp:453,1
    - Dst: span::begin
      Src: /src/libtorrent/src/http_seed_connection.cpp:453,1
    - Dst: span::end
      Src: /src/libtorrent/src/http_seed_connection.cpp:453,1
    - Dst: peer_log
      Src: /src/libtorrent/src/http_seed_connection.cpp:456,1
    - Dst: received_bytes
      Src: /src/libtorrent/src/http_seed_connection.cpp:459,1
    - Dst: std::shared_ptr::retry_web_seed
      Src: /src/libtorrent/src/http_seed_connection.cpp:461,1
    - Dst: seconds32
      Src: /src/libtorrent/src/http_seed_connection.cpp:461,1
    - Dst: libtorrent::http_seed_connection::disconnect
      Src: /src/libtorrent/src/http_seed_connection.cpp:462,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:462,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_seed_connection.cpp:462,1
    - Dst: http_category
      Src: /src/libtorrent/src/http_seed_connection.cpp:462,1
    - Dst: span::empty
      Src: /src/libtorrent/src/http_seed_connection.cpp:468,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_seed_connection.cpp:470,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_seed_connection.cpp:474,1
    - Dst: pop_front
      Src: /src/libtorrent/src/http_seed_connection.cpp:476,1
    - Dst: incoming_piece
      Src: /src/libtorrent/src/http_seed_connection.cpp:477,1
    - Dst: span::begin
      Src: /src/libtorrent/src/http_seed_connection.cpp:477,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/http_seed_connection.cpp:478,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:481,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:481,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:482,1
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_seed_connection.cpp:483,1
    - Dst: get
      Src: /src/libtorrent/src/http_seed_connection.cpp:483,1
    - Dst: cut
      Src: /src/libtorrent/src/http_seed_connection.cpp:485,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/http_seed_connection.cpp:485,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:488,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:488,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/http_seed_connection.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_seed_connection.cpp:492,1
    - Dst: reset
      Src: /src/libtorrent/src/http_seed_connection.cpp:493,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 153
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 495
    functionName: libtorrent::http_seed_connection::on_receive
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - to_string
    - parse_chunk_header
    - packet_size
    - span::size
    - http_category
    - body_start
    - associated_torrent
    - std::shared_ptr::retry_web_seed
    - chunked_encoding
    - empty
    - static_cast<std::ptrdiff_t>
    - remote
    - header_finished
    - std::shared_ptr::add_web_seed
    - aux::numeric_cast<int>
    - get_bool
    - cut
    - std::atoi
    - std::shared_ptr::get_handle
    - reset
    - received_bytes
    - aux::numeric_cast<std::size_t>
    - span::front
    - message
    - aux::numeric_cast<std::ptrdiff_t>
    - front
    - get_int
    - url
    - header_duration
    - header
    - pop_front
    - span::begin
    - span::end
    - incoming_piece
    - seconds32
    - std::string
    - finished
    - TORRENT_ASSERT
    - span::empty
    - libtorrent::http_seed_connection::disable
    - std::shared_ptr::block_size
    - libtorrent::http_seed_connection::disconnect
    - is_redirect
    - libtorrent::aux::is_hex
    - atol
    - span::subspan
    - libtorrent::aux::is_global
    - std::tie
    - error_code
    - incoming_piece_fragment
    - std::shared_ptr::alerts
    - std::string::empty
    - outstanding_bytes
    - incoming
    - status_code
    - is_ok_status
    - should_log
    - get
    - peer_log
    linkageType: ''
    returnType: void
    signature: "void http_seed_connection::on_receive(error_code const& error\n\t\t,
      std::size_t bytes_transferred)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_connection_base::get_specific_peer_info
      Src: /src/libtorrent/src/http_seed_connection.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: libtorrent::http_seed_connection::get_specific_peer_info
    functionSourceFile: /src/libtorrent/src/http_seed_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::web_connection_base::get_specific_peer_info
    linkageType: ''
    returnType: void
    signature: void http_seed_connection::get_specific_peer_info(peer_info& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::resolver::resolver
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: void
    signature: void resolver::resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/resolver.cpp:58,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/resolver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - ' ec'
    - ' ips'
    argTypes:
    - resolver_interface::callback_t
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::callback
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - h
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: "void callback(resolver_interface::callback_t h\n\t\t, error_code const&
      ec, std::vector<address> const& ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/resolver.cpp:58,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/resolver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - ' ec'
    - ' ips'
    argTypes:
    - resolver_interface::callback_t
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::callback
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - h
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: "void callback(resolver_interface::callback_t h\n\t\t, error_code const&
      ec, std::vector<address> const& ips)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/resolver.cpp:68,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:72,1
    - Dst: size
      Src: /src/libtorrent/src/resolver.cpp:77,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:79,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:80,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:80,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:87,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolver.cpp:90,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:92,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:93,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:98,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:99,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:100,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:104,1
    - Dst: addresses::clear
      Src: /src/libtorrent/src/resolver.cpp:105,1
    - Dst: addresses::push_back
      Src: /src/libtorrent/src/resolver.cpp:107,1
    - Dst: endpoint
      Src: /src/libtorrent/src/resolver.cpp:107,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolver.cpp:109,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:111,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:112,1
    - Dst: size
      Src: /src/libtorrent/src/resolver.cpp:116,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:119,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:119,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - ' ec'
    - ips
    - ' hostname'
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 128
    functionName: libtorrent::aux::resolver::on_lookup
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - addresses::clear
    - std::move
    - begin
    - equal_range
    - erase
    - callback
    - end
    - find
    - endpoint
    - addresses::push_back
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: "void resolver::on_lookup(error_code const& ec, tcp::resolver::results_type
      ips\n\t\t, std::string const& hostname)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/resolver.cpp:136,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:139,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:139,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/resolver.cpp:142,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:144,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:145,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:149,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:152,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:152,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:157,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:158,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:163,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:166,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:166,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:174,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:175,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:180,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:181,1
    - Dst: insert
      Src: /src/libtorrent/src/resolver.cpp:183,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:183,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/resolver.cpp:191,1
    - Dst: libtorrent::aux::resolver::async_resolve
      Src: /src/libtorrent/src/resolver.cpp:194,1
    - Dst: std::bind
      Src: /src/libtorrent/src/resolver.cpp:194,1
    - Dst: libtorrent::aux::resolver::async_resolve
      Src: /src/libtorrent/src/resolver.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/src/resolver.cpp:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - ' host'
    - flags
    - h
    argTypes:
    - std::string
    - resolver_flags
    - resolver_interface::callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 202
    functionName: libtorrent::aux::resolver::async_resolve
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - std::move
    - post
    - callback
    - insert
    - end
    - find
    - libtorrent::aux::resolver::async_resolve
    - error_code::clear
    - make_address
    linkageType: ''
    returnType: void
    signature: "void resolver::async_resolve(std::string const& host, resolver_flags
      const flags\n\t\t, resolver_interface::callback_t h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/resolver.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::aux::resolver::abort
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void resolver::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:211,1
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: libtorrent::aux::resolver::set_cache_timeout
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: void
    signature: void resolver::set_cache_timeout(seconds const timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::resolver::resolver
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: void
    signature: void resolver::resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/resolver.cpp:58,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/resolver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - ' ec'
    - ' ips'
    argTypes:
    - resolver_interface::callback_t
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::callback
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - h
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: "void callback(resolver_interface::callback_t h\n\t\t, error_code const&
      ec, std::vector<address> const& ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/resolver.cpp:58,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/resolver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - ' ec'
    - ' ips'
    argTypes:
    - resolver_interface::callback_t
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::callback
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - h
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: "void callback(resolver_interface::callback_t h\n\t\t, error_code const&
      ec, std::vector<address> const& ips)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/resolver.cpp:68,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:72,1
    - Dst: size
      Src: /src/libtorrent/src/resolver.cpp:77,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:79,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:80,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:80,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:87,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolver.cpp:90,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:92,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:93,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:98,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:99,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:100,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:104,1
    - Dst: addresses::clear
      Src: /src/libtorrent/src/resolver.cpp:105,1
    - Dst: addresses::push_back
      Src: /src/libtorrent/src/resolver.cpp:107,1
    - Dst: endpoint
      Src: /src/libtorrent/src/resolver.cpp:107,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolver.cpp:109,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:111,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:112,1
    - Dst: size
      Src: /src/libtorrent/src/resolver.cpp:116,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:119,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:119,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - ' ec'
    - ips
    - ' hostname'
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 128
    functionName: libtorrent::aux::resolver::on_lookup
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - addresses::clear
    - std::move
    - begin
    - equal_range
    - erase
    - callback
    - end
    - find
    - endpoint
    - addresses::push_back
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: "void resolver::on_lookup(error_code const& ec, tcp::resolver::results_type
      ips\n\t\t, std::string const& hostname)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/resolver.cpp:136,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:139,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:139,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/resolver.cpp:142,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:144,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:145,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:149,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:152,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:152,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:157,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:158,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:163,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:166,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:166,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:174,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:175,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:180,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:181,1
    - Dst: insert
      Src: /src/libtorrent/src/resolver.cpp:183,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:183,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/resolver.cpp:191,1
    - Dst: libtorrent::aux::resolver::async_resolve
      Src: /src/libtorrent/src/resolver.cpp:194,1
    - Dst: std::bind
      Src: /src/libtorrent/src/resolver.cpp:194,1
    - Dst: libtorrent::aux::resolver::async_resolve
      Src: /src/libtorrent/src/resolver.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/src/resolver.cpp:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - ' host'
    - flags
    - h
    argTypes:
    - std::string
    - resolver_flags
    - resolver_interface::callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 202
    functionName: libtorrent::aux::resolver::async_resolve
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - std::move
    - post
    - callback
    - insert
    - end
    - find
    - libtorrent::aux::resolver::async_resolve
    - error_code::clear
    - make_address
    linkageType: ''
    returnType: void
    signature: "void resolver::async_resolve(std::string const& host, resolver_flags
      const flags\n\t\t, resolver_interface::callback_t h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/resolver.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::aux::resolver::abort
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void resolver::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:211,1
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: libtorrent::aux::resolver::set_cache_timeout
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: void
    signature: void resolver::set_cache_timeout(seconds const timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::resolver::resolver
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: void
    signature: void resolver::resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/resolver.cpp:58,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/resolver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - ' ec'
    - ' ips'
    argTypes:
    - resolver_interface::callback_t
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::callback
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - h
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: "void callback(resolver_interface::callback_t h\n\t\t, error_code const&
      ec, std::vector<address> const& ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/resolver.cpp:58,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/resolver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - ' ec'
    - ' ips'
    argTypes:
    - resolver_interface::callback_t
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::callback
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - h
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: "void callback(resolver_interface::callback_t h\n\t\t, error_code const&
      ec, std::vector<address> const& ips)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/resolver.cpp:68,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:72,1
    - Dst: size
      Src: /src/libtorrent/src/resolver.cpp:77,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:79,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:80,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:80,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:87,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolver.cpp:90,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:92,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:93,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:98,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:99,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:100,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:104,1
    - Dst: addresses::clear
      Src: /src/libtorrent/src/resolver.cpp:105,1
    - Dst: addresses::push_back
      Src: /src/libtorrent/src/resolver.cpp:107,1
    - Dst: endpoint
      Src: /src/libtorrent/src/resolver.cpp:107,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolver.cpp:109,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:111,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:112,1
    - Dst: size
      Src: /src/libtorrent/src/resolver.cpp:116,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:119,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:119,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - ' ec'
    - ips
    - ' hostname'
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 128
    functionName: libtorrent::aux::resolver::on_lookup
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - addresses::clear
    - std::move
    - begin
    - equal_range
    - erase
    - callback
    - end
    - find
    - endpoint
    - addresses::push_back
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: "void resolver::on_lookup(error_code const& ec, tcp::resolver::results_type
      ips\n\t\t, std::string const& hostname)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/resolver.cpp:136,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:139,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:139,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/resolver.cpp:142,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:144,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:145,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:149,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:152,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:152,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:157,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:158,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:163,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:166,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:166,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:174,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:175,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:180,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:181,1
    - Dst: insert
      Src: /src/libtorrent/src/resolver.cpp:183,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:183,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/resolver.cpp:191,1
    - Dst: libtorrent::aux::resolver::async_resolve
      Src: /src/libtorrent/src/resolver.cpp:194,1
    - Dst: std::bind
      Src: /src/libtorrent/src/resolver.cpp:194,1
    - Dst: libtorrent::aux::resolver::async_resolve
      Src: /src/libtorrent/src/resolver.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/src/resolver.cpp:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - ' host'
    - flags
    - h
    argTypes:
    - std::string
    - resolver_flags
    - resolver_interface::callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 202
    functionName: libtorrent::aux::resolver::async_resolve
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 3
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - std::move
    - post
    - callback
    - insert
    - end
    - find
    - libtorrent::aux::resolver::async_resolve
    - error_code::clear
    - make_address
    linkageType: ''
    returnType: void
    signature: "void resolver::async_resolve(std::string const& host, resolver_flags
      const flags\n\t\t, resolver_interface::callback_t h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/resolver.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::aux::resolver::abort
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void resolver::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:211,1
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: libtorrent::aux::resolver::set_cache_timeout
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: void
    signature: void resolver::set_cache_timeout(seconds const timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::resolver::resolver
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: void
    signature: void resolver::resolver(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/resolver.cpp:58,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/resolver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - ' ec'
    - ' ips'
    argTypes:
    - resolver_interface::callback_t
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::callback
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - h
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: "void callback(resolver_interface::callback_t h\n\t\t, error_code const&
      ec, std::vector<address> const& ips)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/src/resolver.cpp:58,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/resolver.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - ' ec'
    - ' ips'
    argTypes:
    - resolver_interface::callback_t
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::callback
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - h
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: "void callback(resolver_interface::callback_t h\n\t\t, error_code const&
      ec, std::vector<address> const& ips)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/resolver.cpp:68,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:72,1
    - Dst: size
      Src: /src/libtorrent/src/resolver.cpp:77,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:79,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:80,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:80,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:87,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolver.cpp:90,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:92,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:93,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:98,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:99,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:100,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:104,1
    - Dst: addresses::clear
      Src: /src/libtorrent/src/resolver.cpp:105,1
    - Dst: addresses::push_back
      Src: /src/libtorrent/src/resolver.cpp:107,1
    - Dst: endpoint
      Src: /src/libtorrent/src/resolver.cpp:107,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolver.cpp:109,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:111,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:112,1
    - Dst: size
      Src: /src/libtorrent/src/resolver.cpp:116,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/resolver.cpp:119,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:119,1
    - Dst: erase
      Src: /src/libtorrent/src/resolver.cpp:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - ' ec'
    - ips
    - ' hostname'
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 128
    functionName: libtorrent::aux::resolver::on_lookup
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - addresses::clear
    - std::move
    - begin
    - equal_range
    - erase
    - callback
    - end
    - find
    - endpoint
    - addresses::push_back
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: "void resolver::on_lookup(error_code const& ec, tcp::resolver::results_type
      ips\n\t\t, std::string const& hostname)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/resolver.cpp:136,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:139,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:139,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/resolver.cpp:142,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:144,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:145,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:149,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:152,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:152,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:157,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:158,1
    - Dst: time_now
      Src: /src/libtorrent/src/resolver.cpp:163,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:166,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:166,1
    - Dst: post
      Src: /src/libtorrent/src/resolver.cpp:174,1
    - Dst: callback
      Src: /src/libtorrent/src/resolver.cpp:175,1
    - Dst: find
      Src: /src/libtorrent/src/resolver.cpp:180,1
    - Dst: end
      Src: /src/libtorrent/src/resolver.cpp:181,1
    - Dst: insert
      Src: /src/libtorrent/src/resolver.cpp:183,1
    - Dst: std::move
      Src: /src/libtorrent/src/resolver.cpp:183,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/resolver.cpp:191,1
    - Dst: libtorrent::aux::resolver::async_resolve
      Src: /src/libtorrent/src/resolver.cpp:194,1
    - Dst: std::bind
      Src: /src/libtorrent/src/resolver.cpp:194,1
    - Dst: libtorrent::aux::resolver::async_resolve
      Src: /src/libtorrent/src/resolver.cpp:199,1
    - Dst: std::bind
      Src: /src/libtorrent/src/resolver.cpp:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - ' host'
    - flags
    - h
    argTypes:
    - std::string
    - resolver_flags
    - resolver_interface::callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 202
    functionName: libtorrent::aux::resolver::async_resolve
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 4
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - std::move
    - post
    - callback
    - insert
    - end
    - find
    - libtorrent::aux::resolver::async_resolve
    - error_code::clear
    - make_address
    linkageType: ''
    returnType: void
    signature: "void resolver::async_resolve(std::string const& host, resolver_flags
      const flags\n\t\t, resolver_interface::callback_t h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/resolver.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::aux::resolver::abort
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void resolver::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:211,1
    - Dst: seconds
      Src: /src/libtorrent/src/resolver.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: libtorrent::aux::resolver::set_cache_timeout
    functionSourceFile: /src/libtorrent/src/resolver.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: void
    signature: void resolver::set_cache_timeout(seconds const timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/libtorrent/src/hasher.cpp:50,1
    - Dst: CC_SHA1_Init
      Src: /src/libtorrent/src/hasher.cpp:52,1
    - Dst: SHA1_Init
      Src: /src/libtorrent/src/hasher.cpp:56,1
    - Dst: SHA1_init
      Src: /src/libtorrent/src/hasher.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - gcry_md_open
    - SHA1_Init
    - CC_SHA1_Init
    - SHA1_init
    linkageType: ''
    returnType: TORRENT_CRYPTO_NAMESPACE
    signature: TORRENT_CRYPTO_NAMESPACE hasher::hasher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void hasher::hasher(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hasher.cpp:71,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - update
    linkageType: ''
    returnType: void
    signature: void hasher::hasher(char const* data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/hasher.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void hasher::hasher(hasher const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/hasher.cpp:84,1
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/hasher.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: '& hasher::operator=(hasher const& h) &'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    - gcry_md_copy
    linkageType: ''
    returnType: hasher
    signature: hasher & hasher::operator=(hasher const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher::hasher(hasher const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: '& hasher::update(char const* data, int len)'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: hasher
    signature: hasher & hasher::update(char const* data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hasher.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:100,1
    - Dst: gcry_md_write
      Src: /src/libtorrent/src/hasher.cpp:102,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:102,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:102,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:102,1
    - Dst: CC_SHA1_Update
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: CC_LONG
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:106,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:108,1
    - Dst: SHA1_Update
      Src: /src/libtorrent/src/hasher.cpp:110,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:110,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:110,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:111,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:111,1
    - Dst: SHA1_update
      Src: /src/libtorrent/src/hasher.cpp:113,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:113,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:113,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:114,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: '& hasher::update(span<char const> data)'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - CC_SHA1_Update
    - reinterpret_cast<unsigned char const*>
    - update
    - span<char const>::data
    - gcry_md_write
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - SHA1_Update
    - SHA1_update
    - CC_LONG
    linkageType: ''
    returnType: hasher
    signature: hasher & hasher::update(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_final
      Src: /src/libtorrent/src/hasher.cpp:123,1
    - Dst: sha1_hash::assign
      Src: /src/libtorrent/src/hasher.cpp:124,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/hasher.cpp:124,1
    - Dst: gcry_md_read
      Src: /src/libtorrent/src/hasher.cpp:124,1
    - Dst: CC_SHA1_Final
      Src: /src/libtorrent/src/hasher.cpp:126,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:126,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:126,1
    - Dst: get_hash
      Src: /src/libtorrent/src/hasher.cpp:128,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:128,1
    - Dst: sha1_hash::size
      Src: /src/libtorrent/src/hasher.cpp:128,1
    - Dst: get_hash
      Src: /src/libtorrent/src/hasher.cpp:130,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:130,1
    - Dst: sha1_hash::size
      Src: /src/libtorrent/src/hasher.cpp:130,1
    - Dst: SHA1_Final
      Src: /src/libtorrent/src/hasher.cpp:132,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:132,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:132,1
    - Dst: SHA1_final
      Src: /src/libtorrent/src/hasher.cpp:134,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:134,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: libtorrent::hasher::final
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_final
    - CC_SHA1_Final
    - get_hash
    - SHA1_Final
    - SHA1_final
    - sha1_hash::assign
    - reinterpret_cast<char const*>
    - sha1_hash::size
    - gcry_md_read
    - sha1_hash::data
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash hasher::final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_reset
      Src: /src/libtorrent/src/hasher.cpp:142,1
    - Dst: CC_SHA1_Init
      Src: /src/libtorrent/src/hasher.cpp:144,1
    - Dst: libtorrent::hasher::reset
      Src: /src/libtorrent/src/hasher.cpp:146,1
    - Dst: libtorrent::hasher::reset
      Src: /src/libtorrent/src/hasher.cpp:148,1
    - Dst: SHA1_Init
      Src: /src/libtorrent/src/hasher.cpp:150,1
    - Dst: SHA1_init
      Src: /src/libtorrent/src/hasher.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::hasher::reset
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::hasher::reset
    - gcry_md_reset
    - SHA1_init
    - SHA1_Init
    - CC_SHA1_Init
    linkageType: ''
    returnType: void
    signature: void hasher::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/hasher.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: hasher::~hasher()
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    linkageType: ''
    returnType: void
    signature: void hasher::~hasher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/libtorrent/src/hasher.cpp:166,1
    - Dst: CC_SHA256_Init
      Src: /src/libtorrent/src/hasher.cpp:168,1
    - Dst: SHA256_Init
      Src: /src/libtorrent/src/hasher.cpp:172,1
    - Dst: SHA256_init
      Src: /src/libtorrent/src/hasher.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - gcry_md_open
    - SHA256_Init
    - SHA256_init
    - CC_SHA256_Init
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hasher.cpp:187,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - update
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256(char const* data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/hasher.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256(hasher256 const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/hasher.cpp:200,1
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/hasher.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: '& hasher256::operator=(hasher256 const& h) &'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    - gcry_md_copy
    linkageType: ''
    returnType: hasher256
    signature: hasher256 & hasher256::operator=(hasher256 const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256(hasher256 const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: '& hasher256::update(char const* data, int len)'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: hasher256
    signature: hasher256 & hasher256::update(char const* data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hasher.cpp:216,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/hasher.cpp:216,1
    - Dst: gcry_md_write
      Src: /src/libtorrent/src/hasher.cpp:218,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:218,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:218,1
    - Dst: CC_SHA256_Update
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: CC_LONG
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:222,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:224,1
    - Dst: SHA256_Update
      Src: /src/libtorrent/src/hasher.cpp:226,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:226,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:226,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:227,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:227,1
    - Dst: SHA256_update
      Src: /src/libtorrent/src/hasher.cpp:229,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:229,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:229,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:230,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: '& hasher256::update(span<char const> data)'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - update
    - SHA256_update
    - span<char const>::data
    - gcry_md_write
    - CC_SHA256_Update
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - SHA256_Update
    - span<char const>::empty
    - CC_LONG
    linkageType: ''
    returnType: hasher256
    signature: hasher256 & hasher256::update(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_final
      Src: /src/libtorrent/src/hasher.cpp:239,1
    - Dst: sha256_hash::assign
      Src: /src/libtorrent/src/hasher.cpp:240,1
    - Dst: gcry_md_read
      Src: /src/libtorrent/src/hasher.cpp:240,1
    - Dst: CC_SHA256_Final
      Src: /src/libtorrent/src/hasher.cpp:242,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:242,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:242,1
    - Dst: get_hash
      Src: /src/libtorrent/src/hasher.cpp:244,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:244,1
    - Dst: sha256_hash::size
      Src: /src/libtorrent/src/hasher.cpp:244,1
    - Dst: get_hash
      Src: /src/libtorrent/src/hasher.cpp:246,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:246,1
    - Dst: sha256_hash::size
      Src: /src/libtorrent/src/hasher.cpp:246,1
    - Dst: SHA256_Final
      Src: /src/libtorrent/src/hasher.cpp:248,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:248,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:248,1
    - Dst: SHA256_final
      Src: /src/libtorrent/src/hasher.cpp:250,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:250,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: libtorrent::hasher256::final
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_final
    - sha256_hash::data
    - get_hash
    - sha256_hash::size
    - SHA256_Final
    - SHA256_final
    - gcry_md_read
    - CC_SHA256_Final
    - reinterpret_cast<unsigned char*>
    - sha256_hash::assign
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash hasher256::final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_reset
      Src: /src/libtorrent/src/hasher.cpp:258,1
    - Dst: CC_SHA256_Init
      Src: /src/libtorrent/src/hasher.cpp:260,1
    - Dst: libtorrent::hasher256::reset
      Src: /src/libtorrent/src/hasher.cpp:262,1
    - Dst: libtorrent::hasher256::reset
      Src: /src/libtorrent/src/hasher.cpp:264,1
    - Dst: SHA256_Init
      Src: /src/libtorrent/src/hasher.cpp:266,1
    - Dst: SHA256_init
      Src: /src/libtorrent/src/hasher.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: libtorrent::hasher256::reset
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - gcry_md_reset
    - SHA256_init
    - SHA256_Init
    - libtorrent::hasher256::reset
    - CC_SHA256_Init
    linkageType: ''
    returnType: void
    signature: void hasher256::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/hasher.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: hasher256::~hasher256()
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    linkageType: ''
    returnType: void
    signature: void hasher256::~hasher256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/libtorrent/src/hasher.cpp:50,1
    - Dst: CC_SHA1_Init
      Src: /src/libtorrent/src/hasher.cpp:52,1
    - Dst: SHA1_Init
      Src: /src/libtorrent/src/hasher.cpp:56,1
    - Dst: SHA1_init
      Src: /src/libtorrent/src/hasher.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - gcry_md_open
    - SHA1_Init
    - CC_SHA1_Init
    - SHA1_init
    linkageType: ''
    returnType: TORRENT_CRYPTO_NAMESPACE
    signature: TORRENT_CRYPTO_NAMESPACE hasher::hasher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void hasher::hasher(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hasher.cpp:71,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - update
    linkageType: ''
    returnType: void
    signature: void hasher::hasher(char const* data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/hasher.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void hasher::hasher(hasher const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/hasher.cpp:84,1
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/hasher.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: '& hasher::operator=(hasher const& h) &'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    - gcry_md_copy
    linkageType: ''
    returnType: hasher
    signature: hasher & hasher::operator=(hasher const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::hasher::hasher
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher::hasher(hasher const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: '& hasher::update(char const* data, int len)'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: hasher
    signature: hasher & hasher::update(char const* data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hasher.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:100,1
    - Dst: gcry_md_write
      Src: /src/libtorrent/src/hasher.cpp:102,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:102,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:102,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:102,1
    - Dst: CC_SHA1_Update
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: CC_LONG
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:104,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:106,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:108,1
    - Dst: SHA1_Update
      Src: /src/libtorrent/src/hasher.cpp:110,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:110,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:110,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:111,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:111,1
    - Dst: SHA1_update
      Src: /src/libtorrent/src/hasher.cpp:113,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:113,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:113,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:114,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: '& hasher::update(span<char const> data)'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - CC_SHA1_Update
    - reinterpret_cast<unsigned char const*>
    - update
    - span<char const>::data
    - gcry_md_write
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - SHA1_Update
    - SHA1_update
    - CC_LONG
    linkageType: ''
    returnType: hasher
    signature: hasher & hasher::update(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_final
      Src: /src/libtorrent/src/hasher.cpp:123,1
    - Dst: sha1_hash::assign
      Src: /src/libtorrent/src/hasher.cpp:124,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/hasher.cpp:124,1
    - Dst: gcry_md_read
      Src: /src/libtorrent/src/hasher.cpp:124,1
    - Dst: CC_SHA1_Final
      Src: /src/libtorrent/src/hasher.cpp:126,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:126,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:126,1
    - Dst: get_hash
      Src: /src/libtorrent/src/hasher.cpp:128,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:128,1
    - Dst: sha1_hash::size
      Src: /src/libtorrent/src/hasher.cpp:128,1
    - Dst: get_hash
      Src: /src/libtorrent/src/hasher.cpp:130,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:130,1
    - Dst: sha1_hash::size
      Src: /src/libtorrent/src/hasher.cpp:130,1
    - Dst: SHA1_Final
      Src: /src/libtorrent/src/hasher.cpp:132,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:132,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:132,1
    - Dst: SHA1_final
      Src: /src/libtorrent/src/hasher.cpp:134,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:134,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/hasher.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: libtorrent::hasher::final
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_final
    - CC_SHA1_Final
    - get_hash
    - SHA1_Final
    - SHA1_final
    - sha1_hash::assign
    - reinterpret_cast<char const*>
    - sha1_hash::size
    - gcry_md_read
    - sha1_hash::data
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash hasher::final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_reset
      Src: /src/libtorrent/src/hasher.cpp:142,1
    - Dst: CC_SHA1_Init
      Src: /src/libtorrent/src/hasher.cpp:144,1
    - Dst: libtorrent::hasher::reset
      Src: /src/libtorrent/src/hasher.cpp:146,1
    - Dst: libtorrent::hasher::reset
      Src: /src/libtorrent/src/hasher.cpp:148,1
    - Dst: SHA1_Init
      Src: /src/libtorrent/src/hasher.cpp:150,1
    - Dst: SHA1_init
      Src: /src/libtorrent/src/hasher.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::hasher::reset
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::hasher::reset
    - gcry_md_reset
    - SHA1_init
    - SHA1_Init
    - CC_SHA1_Init
    linkageType: ''
    returnType: void
    signature: void hasher::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/hasher.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: hasher::~hasher()
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    linkageType: ''
    returnType: void
    signature: void hasher::~hasher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/libtorrent/src/hasher.cpp:166,1
    - Dst: CC_SHA256_Init
      Src: /src/libtorrent/src/hasher.cpp:168,1
    - Dst: SHA256_Init
      Src: /src/libtorrent/src/hasher.cpp:172,1
    - Dst: SHA256_init
      Src: /src/libtorrent/src/hasher.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - gcry_md_open
    - SHA256_Init
    - SHA256_init
    - CC_SHA256_Init
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hasher.cpp:187,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - update
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256(char const* data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/hasher.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256(hasher256 const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/hasher.cpp:200,1
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/hasher.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: '& hasher256::operator=(hasher256 const& h) &'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    - gcry_md_copy
    linkageType: ''
    returnType: hasher256
    signature: hasher256 & hasher256::operator=(hasher256 const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::hasher256::hasher256
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher256::hasher256(hasher256 const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: '& hasher256::update(char const* data, int len)'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: hasher256
    signature: hasher256 & hasher256::update(char const* data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/hasher.cpp:216,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/hasher.cpp:216,1
    - Dst: gcry_md_write
      Src: /src/libtorrent/src/hasher.cpp:218,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:218,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:218,1
    - Dst: CC_SHA256_Update
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: CC_LONG
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:220,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:222,1
    - Dst: update
      Src: /src/libtorrent/src/hasher.cpp:224,1
    - Dst: SHA256_Update
      Src: /src/libtorrent/src/hasher.cpp:226,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:226,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:226,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:227,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:227,1
    - Dst: SHA256_update
      Src: /src/libtorrent/src/hasher.cpp:229,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/hasher.cpp:229,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hasher.cpp:229,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/hasher.cpp:230,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hasher.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: '& hasher256::update(span<char const> data)'
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - update
    - SHA256_update
    - span<char const>::data
    - gcry_md_write
    - CC_SHA256_Update
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - SHA256_Update
    - span<char const>::empty
    - CC_LONG
    linkageType: ''
    returnType: hasher256
    signature: hasher256 & hasher256::update(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_final
      Src: /src/libtorrent/src/hasher.cpp:239,1
    - Dst: sha256_hash::assign
      Src: /src/libtorrent/src/hasher.cpp:240,1
    - Dst: gcry_md_read
      Src: /src/libtorrent/src/hasher.cpp:240,1
    - Dst: CC_SHA256_Final
      Src: /src/libtorrent/src/hasher.cpp:242,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:242,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:242,1
    - Dst: get_hash
      Src: /src/libtorrent/src/hasher.cpp:244,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:244,1
    - Dst: sha256_hash::size
      Src: /src/libtorrent/src/hasher.cpp:244,1
    - Dst: get_hash
      Src: /src/libtorrent/src/hasher.cpp:246,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:246,1
    - Dst: sha256_hash::size
      Src: /src/libtorrent/src/hasher.cpp:246,1
    - Dst: SHA256_Final
      Src: /src/libtorrent/src/hasher.cpp:248,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:248,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:248,1
    - Dst: SHA256_final
      Src: /src/libtorrent/src/hasher.cpp:250,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/hasher.cpp:250,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/hasher.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: libtorrent::hasher256::final
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_final
    - sha256_hash::data
    - get_hash
    - sha256_hash::size
    - SHA256_Final
    - SHA256_final
    - gcry_md_read
    - CC_SHA256_Final
    - reinterpret_cast<unsigned char*>
    - sha256_hash::assign
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash hasher256::final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_reset
      Src: /src/libtorrent/src/hasher.cpp:258,1
    - Dst: CC_SHA256_Init
      Src: /src/libtorrent/src/hasher.cpp:260,1
    - Dst: libtorrent::hasher256::reset
      Src: /src/libtorrent/src/hasher.cpp:262,1
    - Dst: libtorrent::hasher256::reset
      Src: /src/libtorrent/src/hasher.cpp:264,1
    - Dst: SHA256_Init
      Src: /src/libtorrent/src/hasher.cpp:266,1
    - Dst: SHA256_init
      Src: /src/libtorrent/src/hasher.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: libtorrent::hasher256::reset
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 2
    functionsReached:
    - gcry_md_reset
    - SHA256_init
    - SHA256_Init
    - libtorrent::hasher256::reset
    - CC_SHA256_Init
    linkageType: ''
    returnType: void
    signature: void hasher256::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/hasher.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: hasher256::~hasher256()
    functionSourceFile: /src/libtorrent/src/hasher.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    linkageType: ''
    returnType: void
    signature: void hasher256::~hasher256()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:82,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:83,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:83,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:85,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:86,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:86,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:93,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:94,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:94,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:96,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:97,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:97,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:103,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' err'
    - write
    argTypes:
    - std::error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 106
    functionName: libtorrent::translate_error
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - std::error_code
    - generic_category
    - error_code
    linkageType: ''
    returnType: error_code
    signature: error_code translate_error(std::error_code const& err, bool const write)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:82,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:83,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:83,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:85,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:86,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:86,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:93,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:94,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:94,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:96,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:97,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:97,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:103,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' err'
    - write
    argTypes:
    - std::error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 106
    functionName: libtorrent::translate_error
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - std::error_code
    - generic_category
    - error_code
    linkageType: ''
    returnType: error_code
    signature: error_code translate_error(std::error_code const& err, bool const write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/src/mmap_storage.cpp:114,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/mmap_storage.cpp:115,1
    - Dst: std::make_unique<file_storage>
      Src: /src/libtorrent/src/mmap_storage.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:121,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:121,1
    - Dst: reset
      Src: /src/libtorrent/src/mmap_storage.cpp:124,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:124,1
    - Dst: std::mutex::mutex
      Src: /src/libtorrent/src/mmap_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' params'
    - ' pool'
    argTypes:
    - storage_params
    - aux::file_view_pool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: libtorrent::mmap_storage::mmap_storage
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - std::mutex::mutex
    - std::make_unique<file_storage>
    - reset
    - libtorrent::aux::to_hex
    - files
    - TORRENT_ASSERT
    - complete
    linkageType: ''
    returnType: void
    signature: "void mmap_storage::mmap_storage(storage_params const& params\n\t\t,
      aux::file_view_pool& pool)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/mmap_storage.cpp:132,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:136,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: mmap_storage::~mmap_storage()
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - flush_metadata
    linkageType: ''
    returnType: void
    signature: void mmap_storage::~mmap_storage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<part_file>
      Src: /src/libtorrent/src/mmap_storage.cpp:143,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:145,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: libtorrent::mmap_storage::need_partfile
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - std::make_unique<part_file>
    linkageType: ''
    returnType: void
    signature: void mmap_storage::need_partfile()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:154,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:154,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_storage.cpp:155,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:155,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:157,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:158,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/mmap_storage.cpp:161,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/mmap_storage.cpp:171,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:179,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:182,1
    - Dst: export_file
      Src: /src/libtorrent/src/mmap_storage.cpp:186,1
    - Dst: std::shared_ptr::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:187,1
    - Dst: libtorrent::aux::pwrite_all
      Src: /src/libtorrent/src/mmap_storage.cpp:190,1
    - Dst: std::shared_ptr::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:190,1
    - Dst: lt::system_error
      Src: /src/libtorrent/src/mmap_storage.cpp:191,1
    - Dst: std::shared_ptr::range
      Src: /src/libtorrent/src/mmap_storage.cpp:195,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:196,1
    - Dst: auto::size
      Src: /src/libtorrent/src/mmap_storage.cpp:196,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:196,1
    - Dst: sig::try_signal
      Src: /src/libtorrent/src/mmap_storage.cpp:197,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_storage.cpp:198,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/mmap_storage.cpp:198,1
    - Dst: auto::data
      Src: /src/libtorrent/src/mmap_storage.cpp:198,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_storage.cpp:198,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:199,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:199,1
    - Dst: file_offset
      Src: /src/libtorrent/src/mmap_storage.cpp:201,1
    - Dst: file_size
      Src: /src/libtorrent/src/mmap_storage.cpp:201,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:205,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:212,1
    - Dst: translate_error
      Src: /src/libtorrent/src/mmap_storage.cpp:214,1
    - Dst: lt::error_code::code
      Src: /src/libtorrent/src/mmap_storage.cpp:214,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:219,1
    - Dst: lt::error_code::code
      Src: /src/libtorrent/src/mmap_storage.cpp:221,1
    - Dst: file_path
      Src: /src/libtorrent/src/mmap_storage.cpp:232,1
    - Dst: exists
      Src: /src/libtorrent/src/mmap_storage.cpp:233,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:236,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:240,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/mmap_storage.cpp:268,1
    - Dst: auto::disarm
      Src: /src/libtorrent/src/mmap_storage.cpp:269,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:271,1
    - Dst: libtorrent::mmap_storage::need_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:273,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/mmap_storage.cpp:276,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:279,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 3
    argNames:
    - ' sett'
    - ' prio'
    - ' ec'
    argTypes:
    - settings_interface
    - aux::vector<download_priority_t, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 282
    functionName: libtorrent::mmap_storage::set_file_priority
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::has_memory_map
    - libtorrent::mmap_storage::open_file
    - export_file
    - sig::try_signal
    - static_cast<std::size_t>
    - lt::system_error
    - file_size
    - pad_file_at
    - libtorrent::mmap_storage::use_partfile
    - file_offset
    - flush_metadata
    - data
    - libtorrent::aux::scope_end
    - file_path
    - file
    - translate_error
    - auto::disarm
    - files
    - std::shared_ptr::range
    - TORRENT_ASSERT
    - auto::size
    - std::shared_ptr::fd
    - lt::error_code::code
    - end_index
    - size
    - std::ptrdiff_t
    - const_cast<char*>
    - auto::data
    - std::memcpy
    - libtorrent::aux::pwrite_all
    - exists
    - resize
    - ec::clear
    - libtorrent::mmap_storage::need_partfile
    linkageType: ''
    returnType: void
    signature: "void mmap_storage::set_file_priority(settings_interface const& sett\n\t\t,
      aux::vector<download_priority_t, file_index_t>& prio\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/mmap_storage.cpp:286,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: libtorrent::mmap_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT_VAL
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool mmap_storage::use_partfile(file_index_t const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:293,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_storage.cpp:298,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - b
    argTypes:
    - file_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: libtorrent::mmap_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void mmap_storage::use_partfile(file_index_t const index, bool const
      b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/mmap_storage.cpp:305,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:305,1
    - Dst: libtorrent::aux::get_drive_info
      Src: /src/libtorrent/src/mmap_storage.cpp:307,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_storage.cpp:314,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_storage.cpp:323,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:323,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:326,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:332,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/mmap_storage.cpp:334,1
    - Dst: get_filesize
      Src: /src/libtorrent/src/mmap_storage.cpp:338,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:341,1
    - Dst: file_size
      Src: /src/libtorrent/src/mmap_storage.cpp:342,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:350,1
    - Dst: libtorrent::mmap_storage::need_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:351,1
    - Dst: libtorrent::aux::initialize_storage
      Src: /src/libtorrent/src/mmap_storage.cpp:355,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:357,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:363,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:363,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - ' sett'
    - ' ec'
    argTypes:
    - settings_interface
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 365
    functionName: libtorrent::mmap_storage::initialize
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - libtorrent::aux::initialize_storage
    - libtorrent::mmap_storage::open_file
    - get_filesize
    - libtorrent::aux::get_drive_info
    - files
    - get_int
    - reserve
    - resize
    - pad_file_at
    - file_size
    - libtorrent::mmap_storage::need_partfile
    - end_index
    - libtorrent::mmap_storage::use_partfile
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_storage::initialize(settings_interface const& sett, storage_error&
      ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/mmap_storage.cpp:369,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:369,1
    - Dst: libtorrent::aux::has_any_file
      Src: /src/libtorrent/src/mmap_storage.cpp:371,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:371,1
    - Dst: stat_file
      Src: /src/libtorrent/src/mmap_storage.cpp:377,1
    - Dst: combine_path
      Src: /src/libtorrent/src/mmap_storage.cpp:377,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/mmap_storage.cpp:382,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 390
    functionName: libtorrent::mmap_storage::has_any_file
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - combine_path
    - files
    - stat_file
    - reserve
    - ec::clear
    - libtorrent::aux::has_any_file
    - file
    linkageType: ''
    returnType: bool
    signature: bool mmap_storage::has_any_file(storage_error& ec)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/src/mmap_storage.cpp:395,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:395,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:396,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:397,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:397,1
    - Dst: exists
      Src: /src/libtorrent/src/mmap_storage.cpp:406,1
    - Dst: is_complete
      Src: /src/libtorrent/src/mmap_storage.cpp:409,1
    - Dst: combine_path
      Src: /src/libtorrent/src/mmap_storage.cpp:410,1
    - Dst: parent_path
      Src: /src/libtorrent/src/mmap_storage.cpp:411,1
    - Dst: exists
      Src: /src/libtorrent/src/mmap_storage.cpp:414,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:417,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:417,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:418,1
    - Dst: create_directories
      Src: /src/libtorrent/src/mmap_storage.cpp:425,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:428,1
    - Dst: rename
      Src: /src/libtorrent/src/mmap_storage.cpp:433,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/mmap_storage.cpp:439,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/mmap_storage.cpp:443,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/mmap_storage.cpp:444,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:448,1
    - Dst: remove
      Src: /src/libtorrent/src/mmap_storage.cpp:453,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:459,1
    - Dst: std::make_unique<file_storage>
      Src: /src/libtorrent/src/mmap_storage.cpp:468,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:468,1
    - Dst: libtorrent::mmap_storage::rename_file
      Src: /src/libtorrent/src/mmap_storage.cpp:469,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - index
    - ' new_filename'
    - ' ec'
    argTypes:
    - file_index_t
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 470
    functionName: libtorrent::mmap_storage::rename_file
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 1
    functionsReached:
    - storage_index
    - release
    - std::make_unique<file_storage>
    - rename
    - combine_path
    - create_directories
    - files
    - parent_path
    - error_code
    - exists
    - generic_category
    - file
    - ec::clear
    - remove
    - is_complete
    - libtorrent::aux::copy_file
    - libtorrent::mmap_storage::rename_file
    - file_index_t
    linkageType: ''
    returnType: void
    signature: "void mmap_storage::rename_file(file_index_t const index, std::string
      const& new_filename\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/mmap_storage.cpp:477,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:481,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:481,1
    - Dst: clear
      Src: /src/libtorrent/src/mmap_storage.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 486
    functionName: libtorrent::mmap_storage::release_files
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - clear
    - flush_metadata
    linkageType: ''
    returnType: void
    signature: void mmap_storage::release_files(storage_error&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:491,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:491,1
    - Dst: reset
      Src: /src/libtorrent/src/mmap_storage.cpp:496,1
    - Dst: libtorrent::aux::delete_files
      Src: /src/libtorrent/src/mmap_storage.cpp:498,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - options
    - ' ec'
    argTypes:
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 499
    functionName: libtorrent::mmap_storage::delete_files
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - reset
    - files
    - libtorrent::aux::delete_files
    linkageType: ''
    returnType: void
    signature: void mmap_storage::delete_files(remove_flags_t const options, storage_error&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::verify_resume_data
      Src: /src/libtorrent/src/mmap_storage.cpp:505,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rd'
    - ' links'
    - ' ec'
    argTypes:
    - add_torrent_params
    - aux::vector<std::string, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 507
    functionName: libtorrent::mmap_storage::verify_resume_data
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - libtorrent::aux::verify_resume_data
    linkageType: ''
    returnType: bool
    signature: "bool mmap_storage::verify_resume_data(add_torrent_params const& rd\n\t\t,
      aux::vector<std::string, file_index_t> const& links\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:512,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:512,1
    - Dst: move_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:518,1
    - Dst: std::tie
      Src: /src/libtorrent/src/mmap_storage.cpp:520,1
    - Dst: libtorrent::aux::move_storage
      Src: /src/libtorrent/src/mmap_storage.cpp:520,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:520,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_storage.cpp:520,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_storage.cpp:521,1
    - Dst: clear
      Src: /src/libtorrent/src/mmap_storage.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - save_path
    - flags
    - ' ec'
    argTypes:
    - std::string
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 527
    functionName: libtorrent::mmap_storage::move_storage
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - move_partfile
    - std::move
    - std::tie
    - files
    - libtorrent::aux::move_storage
    - clear
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> mmap_storage::move_storage(std::string
      save_path\n\t\t, move_flags_t const flags, storage_error& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/mmap_storage.cpp:537,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/mmap_storage.cpp:537,1
    - Dst: rand
      Src: /src/libtorrent/src/mmap_storage.cpp:537,1
    - Dst: readwrite
      Src: /src/libtorrent/src/mmap_storage.cpp:539,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:539,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:545,1
    - Dst: libtorrent::aux::read_zeroes
      Src: /src/libtorrent/src/mmap_storage.cpp:545,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:547,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:551,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:554,1
    - Dst: libtorrent::mmap_storage::read
      Src: /src/libtorrent/src/mmap_storage.cpp:555,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:568,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:570,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/mmap_storage.cpp:571,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:571,1
    - Dst: auto::range
      Src: /src/libtorrent/src/mmap_storage.cpp:574,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:580,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:588,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:588,1
    - Dst: span::empty
      Src: /src/libtorrent/src/mmap_storage.cpp:589,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:591,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:591,1
    - Dst: first
      Src: /src/libtorrent/src/mmap_storage.cpp:591,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:591,1
    - Dst: sig::try_signal
      Src: /src/libtorrent/src/mmap_storage.cpp:593,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_storage.cpp:594,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_storage.cpp:594,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/mmap_storage.cpp:594,1
    - Dst: span::data
      Src: /src/libtorrent/src/mmap_storage.cpp:594,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:595,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:595,1
    - Dst: auto::dont_need
      Src: /src/libtorrent/src/mmap_storage.cpp:599,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:599,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:599,1
    - Dst: auto::page_out
      Src: /src/libtorrent/src/mmap_storage.cpp:601,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:601,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:601,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:603,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:603,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:604,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:604,1
    - Dst: translate_error
      Src: /src/libtorrent/src/mmap_storage.cpp:609,1
    - Dst: code
      Src: /src/libtorrent/src/mmap_storage.cpp:609,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:613,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 7
    argNames:
    - ' sett'
    - buffer
    - piece
    - offset
    - mode
    - flags
    - ' error'
    argTypes:
    - settings_interface
    - span<char>
    - piece_index_t
    - int
    - aux::open_mode_t
    - disk_job_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 615
    functionName: libtorrent::mmap_storage::read
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::mmap_storage::open_file
    - auto::range
    - span::size
    - static_cast<std::ptrdiff_t>
    - std::this_thread::sleep_for
    - sig::try_signal
    - static_cast<std::size_t>
    - libtorrent::mmap_storage::use_partfile
    - auto::has_memory_map
    - data
    - rand
    - first
    - span::first
    - libtorrent::aux::pread_all
    - translate_error
    - auto::dont_need
    - files
    - span::data
    - TORRENT_ASSERT
    - span::empty
    - milliseconds
    - auto::fd
    - auto::page_out
    - end_index
    - size
    - const_cast<char*>
    - span::subspan
    - libtorrent::mmap_storage::read
    - std::memcpy
    - code
    - readwrite
    - libtorrent::aux::read_zeroes
    linkageType: ''
    returnType: int
    signature: "int mmap_storage::read(settings_interface const& sett\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, aux::open_mode_t
      const mode\n\t\t, disk_job_flags_t const flags\n\t\t, storage_error& error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/mmap_storage.cpp:625,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/mmap_storage.cpp:625,1
    - Dst: rand
      Src: /src/libtorrent/src/mmap_storage.cpp:625,1
    - Dst: readwrite
      Src: /src/libtorrent/src/mmap_storage.cpp:627,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:627,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:632,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:635,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:638,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:640,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:642,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:645,1
    - Dst: libtorrent::mmap_storage::write
      Src: /src/libtorrent/src/mmap_storage.cpp:647,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/mmap_storage.cpp:660,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:662,1
    - Dst: end_file
      Src: /src/libtorrent/src/mmap_storage.cpp:662,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:664,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:672,1
    - Dst: libtorrent::aux::pwrite_all
      Src: /src/libtorrent/src/mmap_storage.cpp:673,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:673,1
    - Dst: auto::range
      Src: /src/libtorrent/src/mmap_storage.cpp:676,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:676,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:680,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:680,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:680,1
    - Dst: sig::try_signal
      Src: /src/libtorrent/src/mmap_storage.cpp:682,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: span::data
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:686,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:686,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:687,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:687,1
    - Dst: auto::dont_need
      Src: /src/libtorrent/src/mmap_storage.cpp:690,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:690,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:690,1
    - Dst: auto::page_out
      Src: /src/libtorrent/src/mmap_storage.cpp:692,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:692,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:692,1
    - Dst: translate_error
      Src: /src/libtorrent/src/mmap_storage.cpp:696,1
    - Dst: code
      Src: /src/libtorrent/src/mmap_storage.cpp:696,1
    - Dst: record_file_write
      Src: /src/libtorrent/src/mmap_storage.cpp:701,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:701,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 7
    argNames:
    - ' sett'
    - buffer
    - piece
    - offset
    - mode
    - flags
    - ' error'
    argTypes:
    - settings_interface
    - span<char>
    - piece_index_t
    - int
    - aux::open_mode_t
    - disk_job_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 706
    functionName: libtorrent::mmap_storage::write
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::mmap_storage::open_file
    - auto::range
    - static_cast<std::ptrdiff_t>
    - span::size
    - std::this_thread::sleep_for
    - sig::try_signal
    - static_cast<std::size_t>
    - libtorrent::mmap_storage::use_partfile
    - auto::has_memory_map
    - data
    - rand
    - span::first
    - end_file
    - libtorrent::mmap_storage::write
    - storage_index
    - translate_error
    - auto::dont_need
    - record_file_write
    - files
    - span::data
    - TORRENT_ASSERT
    - milliseconds
    - auto::fd
    - auto::page_out
    - end_index
    - size
    - const_cast<char*>
    - span::subspan
    - set_dirty
    - std::memcpy
    - libtorrent::aux::pwrite_all
    - code
    - readwrite
    linkageType: ''
    returnType: int
    signature: "int mmap_storage::write(settings_interface const& sett\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, aux::open_mode_t
      const mode\n\t\t, disk_job_flags_t const flags\n\t\t, storage_error& error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/mmap_storage.cpp:716,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/mmap_storage.cpp:716,1
    - Dst: rand
      Src: /src/libtorrent/src/mmap_storage.cpp:716,1
    - Dst: readwrite
      Src: /src/libtorrent/src/mmap_storage.cpp:722,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:722,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:727,1
    - Dst: libtorrent::aux::hash_zeroes
      Src: /src/libtorrent/src/mmap_storage.cpp:728,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:728,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:730,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:732,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:735,1
    - Dst: libtorrent::mmap_storage::hash
      Src: /src/libtorrent/src/mmap_storage.cpp:736,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:736,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:748,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:751,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/mmap_storage.cpp:753,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/mmap_storage.cpp:753,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:753,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/mmap_storage.cpp:754,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:754,1
    - Dst: update
      Src: /src/libtorrent/src/mmap_storage.cpp:756,1
    - Dst: auto::range
      Src: /src/libtorrent/src/mmap_storage.cpp:761,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:762,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:764,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:764,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_storage.cpp:765,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:765,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:765,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:765,1
    - Dst: sig::try_signal
      Src: /src/libtorrent/src/mmap_storage.cpp:767,1
    - Dst: update
      Src: /src/libtorrent/src/mmap_storage.cpp:768,1
    - Dst: const_cast<char const*>
      Src: /src/libtorrent/src/mmap_storage.cpp:768,1
    - Dst: span::data
      Src: /src/libtorrent/src/mmap_storage.cpp:768,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:768,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:770,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:770,1
    - Dst: auto::dont_need
      Src: /src/libtorrent/src/mmap_storage.cpp:772,1
    - Dst: auto::page_out
      Src: /src/libtorrent/src/mmap_storage.cpp:774,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 8
    argNames:
    - ' sett'
    - ' ph'
    - len
    - piece
    - offset
    - mode
    - flags
    - ' error'
    argTypes:
    - settings_interface
    - hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - aux::open_mode_t
    - disk_job_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 779
    functionName: libtorrent::mmap_storage::hash
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - update
    - libtorrent::mmap_storage::open_file
    - auto::range
    - span::size
    - sig::try_signal
    - std::this_thread::sleep_for
    - std::min
    - libtorrent::mmap_storage::use_partfile
    - auto::has_memory_map
    - rand
    - std::size_t
    - libtorrent::aux::hash_zeroes
    - const_cast<char const*>
    - libtorrent::mmap_storage::hash
    - libtorrent::aux::pread_all
    - auto::dont_need
    - files
    - std::vector::resize
    - span::data
    - milliseconds
    - auto::fd
    - auto::page_out
    - end_index
    - size
    - std::ptrdiff_t
    - span::subspan
    - readwrite
    linkageType: ''
    returnType: int
    signature: "int mmap_storage::hash(settings_interface const& sett\n\t\t, hasher&
      ph, std::ptrdiff_t const len\n\t\t, piece_index_t const piece, int const offset\n\t\t,
      aux::open_mode_t const mode\n\t\t, disk_job_flags_t const flags\n\t\t, storage_error&
      error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:788,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap_storage.cpp:788,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:788,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:789,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:790,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:791,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:792,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:792,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:794,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:796,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:799,1
    - Dst: libtorrent::mmap_storage::hash2
      Src: /src/libtorrent/src/mmap_storage.cpp:800,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:806,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:813,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:816,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/mmap_storage.cpp:819,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:819,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:822,1
    - Dst: update
      Src: /src/libtorrent/src/mmap_storage.cpp:826,1
    - Dst: auto::range
      Src: /src/libtorrent/src/mmap_storage.cpp:830,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap_storage.cpp:831,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:831,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:834,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:838,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:838,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:839,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_storage.cpp:839,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:839,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:839,1
    - Dst: update
      Src: /src/libtorrent/src/mmap_storage.cpp:840,1
    - Dst: auto::dont_need
      Src: /src/libtorrent/src/mmap_storage.cpp:842,1
    - Dst: auto::page_out
      Src: /src/libtorrent/src/mmap_storage.cpp:844,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:846,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:846,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 8
    argNames:
    - ' sett'
    - ' ph'
    - len
    - piece
    - offset
    - mode
    - flags
    - ' error'
    argTypes:
    - settings_interface
    - hasher256
    - std::ptrdiff_t
    - piece_index_t
    - int
    - aux::open_mode_t
    - disk_job_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 847
    functionName: libtorrent::mmap_storage::hash2
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - update
    - libtorrent::mmap_storage::open_file
    - auto::range
    - span::size
    - libtorrent::mmap_storage::hash2
    - std::min
    - libtorrent::mmap_storage::use_partfile
    - auto::has_memory_map
    - span::first
    - file
    - libtorrent::aux::pread_all
    - auto::dont_need
    - files
    - TORRENT_ASSERT
    - auto::fd
    - auto::page_out
    - end_index
    - std::ptrdiff_t
    - span::subspan
    - std::int64_t
    linkageType: ''
    returnType: int
    signature: "int mmap_storage::hash2(settings_interface const& sett\n\t\t, hasher256&
      ph, std::ptrdiff_t const len\n\t\t, piece_index_t const piece, int const offset\n\t\t,
      aux::open_mode_t const mode\n\t\t, disk_job_flags_t const flags\n\t\t, storage_error&
      error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:859,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:859,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_storage.cpp:860,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:860,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:867,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:870,1
    - Dst: get_bool
      Src: /src/libtorrent/src/mmap_storage.cpp:874,1
    - Dst: libtorrent::mmap_storage::open_file_impl
      Src: /src/libtorrent/src/mmap_storage.cpp:880,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:883,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:886,1
    - Dst: set_bit
      Src: /src/libtorrent/src/mmap_storage.cpp:893,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:897,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/src/mmap_storage.cpp:897,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - ' sett'
    - file
    - mode
    - ' ec'
    argTypes:
    - settings_interface
    - file_index_t
    - aux::open_mode_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 899
    functionName: libtorrent::mmap_storage::open_file
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 6
    functionsReached:
    - set_bit
    - static_cast<bool>
    - files
    - TORRENT_ASSERT
    - libtorrent::mmap_storage::open_file_impl
    - resize
    - file
    - get_bool
    - size
    linkageType: ''
    returnType: std::shared_ptr<aux::file_mapping>
    signature: "std::shared_ptr<aux::file_mapping> mmap_storage::open_file(settings_interface
      const& sett\n\t\t, file_index_t const file\n\t\t, aux::open_mode_t mode, storage_error&
      ec) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:906,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:906,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:910,1
    - Dst: get_bool
      Src: /src/libtorrent/src/mmap_storage.cpp:913,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:916,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_storage.cpp:917,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_storage.cpp:921,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:929,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:929,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:930,1
    - Dst: std::shared_ptr<std::mutex>
      Src: /src/libtorrent/src/mmap_storage.cpp:932,1
    - Dst: get
      Src: /src/libtorrent/src/mmap_storage.cpp:933,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:940,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:941,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - ' sett'
    - file
    - mode
    - ' ec'
    argTypes:
    - settings_interface
    - file_index_t
    - aux::open_mode_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 944
    functionName: libtorrent::mmap_storage::open_file_impl
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 1
    functionsReached:
    - storage_index
    - libtorrent::mmap_storage::open_file
    - files
    - get
    - TORRENT_ASSERT
    - get_int
    - std::shared_ptr<std::mutex>
    - file
    - get_bool
    - end_index
    linkageType: ''
    returnType: std::shared_ptr<aux::file_mapping>
    signature: "std::shared_ptr<aux::file_mapping> mmap_storage::open_file_impl(settings_interface
      const& sett\n\t\t, file_index_t file\n\t\t, aux::open_mode_t mode\n\t\t, storage_error&
      ec) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/mmap_storage.cpp:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 952
    functionName: libtorrent::mmap_storage::tick
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    linkageType: ''
    returnType: bool
    signature: bool mmap_storage::tick()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:82,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:83,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:83,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:85,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:86,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:86,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:93,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:94,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:94,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:96,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:97,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:97,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:103,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' err'
    - write
    argTypes:
    - std::error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 106
    functionName: libtorrent::translate_error
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - std::error_code
    - generic_category
    - error_code
    linkageType: ''
    returnType: error_code
    signature: error_code translate_error(std::error_code const& err, bool const write)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:82,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:83,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:83,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:85,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:86,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:86,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:93,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:94,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:94,1
    - Dst: std::error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:96,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:97,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:97,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:103,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' err'
    - write
    argTypes:
    - std::error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 106
    functionName: libtorrent::translate_error
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - std::error_code
    - generic_category
    - error_code
    linkageType: ''
    returnType: error_code
    signature: error_code translate_error(std::error_code const& err, bool const write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/src/mmap_storage.cpp:114,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/mmap_storage.cpp:115,1
    - Dst: std::make_unique<file_storage>
      Src: /src/libtorrent/src/mmap_storage.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:121,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:121,1
    - Dst: reset
      Src: /src/libtorrent/src/mmap_storage.cpp:124,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:124,1
    - Dst: std::mutex::mutex
      Src: /src/libtorrent/src/mmap_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' params'
    - ' pool'
    argTypes:
    - storage_params
    - aux::file_view_pool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: libtorrent::mmap_storage::mmap_storage
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - std::mutex::mutex
    - std::make_unique<file_storage>
    - reset
    - libtorrent::aux::to_hex
    - files
    - TORRENT_ASSERT
    - complete
    linkageType: ''
    returnType: void
    signature: "void mmap_storage::mmap_storage(storage_params const& params\n\t\t,
      aux::file_view_pool& pool)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/mmap_storage.cpp:132,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:136,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: mmap_storage::~mmap_storage()
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - flush_metadata
    linkageType: ''
    returnType: void
    signature: void mmap_storage::~mmap_storage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<part_file>
      Src: /src/libtorrent/src/mmap_storage.cpp:143,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:145,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: libtorrent::mmap_storage::need_partfile
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 2
    functionsReached:
    - files
    - std::make_unique<part_file>
    linkageType: ''
    returnType: void
    signature: void mmap_storage::need_partfile()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:154,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:154,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_storage.cpp:155,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:155,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:157,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:158,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/mmap_storage.cpp:161,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/mmap_storage.cpp:171,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:179,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:182,1
    - Dst: export_file
      Src: /src/libtorrent/src/mmap_storage.cpp:186,1
    - Dst: std::shared_ptr::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:187,1
    - Dst: libtorrent::aux::pwrite_all
      Src: /src/libtorrent/src/mmap_storage.cpp:190,1
    - Dst: std::shared_ptr::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:190,1
    - Dst: lt::system_error
      Src: /src/libtorrent/src/mmap_storage.cpp:191,1
    - Dst: std::shared_ptr::range
      Src: /src/libtorrent/src/mmap_storage.cpp:195,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:196,1
    - Dst: auto::size
      Src: /src/libtorrent/src/mmap_storage.cpp:196,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:196,1
    - Dst: sig::try_signal
      Src: /src/libtorrent/src/mmap_storage.cpp:197,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_storage.cpp:198,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/mmap_storage.cpp:198,1
    - Dst: auto::data
      Src: /src/libtorrent/src/mmap_storage.cpp:198,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_storage.cpp:198,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:199,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:199,1
    - Dst: file_offset
      Src: /src/libtorrent/src/mmap_storage.cpp:201,1
    - Dst: file_size
      Src: /src/libtorrent/src/mmap_storage.cpp:201,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:205,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:212,1
    - Dst: translate_error
      Src: /src/libtorrent/src/mmap_storage.cpp:214,1
    - Dst: lt::error_code::code
      Src: /src/libtorrent/src/mmap_storage.cpp:214,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:219,1
    - Dst: lt::error_code::code
      Src: /src/libtorrent/src/mmap_storage.cpp:221,1
    - Dst: file_path
      Src: /src/libtorrent/src/mmap_storage.cpp:232,1
    - Dst: exists
      Src: /src/libtorrent/src/mmap_storage.cpp:233,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:236,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:240,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/mmap_storage.cpp:268,1
    - Dst: auto::disarm
      Src: /src/libtorrent/src/mmap_storage.cpp:269,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:271,1
    - Dst: libtorrent::mmap_storage::need_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:273,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/mmap_storage.cpp:276,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:279,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 3
    argNames:
    - ' sett'
    - ' prio'
    - ' ec'
    argTypes:
    - settings_interface
    - aux::vector<download_priority_t, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 282
    functionName: libtorrent::mmap_storage::set_file_priority
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::has_memory_map
    - libtorrent::mmap_storage::open_file
    - export_file
    - sig::try_signal
    - static_cast<std::size_t>
    - lt::system_error
    - file_size
    - pad_file_at
    - libtorrent::mmap_storage::use_partfile
    - file_offset
    - flush_metadata
    - data
    - libtorrent::aux::scope_end
    - file_path
    - file
    - translate_error
    - auto::disarm
    - files
    - std::shared_ptr::range
    - TORRENT_ASSERT
    - auto::size
    - std::shared_ptr::fd
    - lt::error_code::code
    - end_index
    - size
    - std::ptrdiff_t
    - const_cast<char*>
    - auto::data
    - std::memcpy
    - libtorrent::aux::pwrite_all
    - exists
    - resize
    - ec::clear
    - libtorrent::mmap_storage::need_partfile
    linkageType: ''
    returnType: void
    signature: "void mmap_storage::set_file_priority(settings_interface const& sett\n\t\t,
      aux::vector<download_priority_t, file_index_t>& prio\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/mmap_storage.cpp:286,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: libtorrent::mmap_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT_VAL
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool mmap_storage::use_partfile(file_index_t const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:293,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_storage.cpp:298,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - b
    argTypes:
    - file_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: libtorrent::mmap_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 7
    functionsReached:
    - static_cast<int>
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void mmap_storage::use_partfile(file_index_t const index, bool const
      b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/mmap_storage.cpp:305,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:305,1
    - Dst: libtorrent::aux::get_drive_info
      Src: /src/libtorrent/src/mmap_storage.cpp:307,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_storage.cpp:314,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_storage.cpp:323,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:323,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:326,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:332,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/mmap_storage.cpp:334,1
    - Dst: get_filesize
      Src: /src/libtorrent/src/mmap_storage.cpp:338,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:341,1
    - Dst: file_size
      Src: /src/libtorrent/src/mmap_storage.cpp:342,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:350,1
    - Dst: libtorrent::mmap_storage::need_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:351,1
    - Dst: libtorrent::aux::initialize_storage
      Src: /src/libtorrent/src/mmap_storage.cpp:355,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:357,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:363,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:363,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - ' sett'
    - ' ec'
    argTypes:
    - settings_interface
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 365
    functionName: libtorrent::mmap_storage::initialize
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - libtorrent::aux::initialize_storage
    - libtorrent::mmap_storage::open_file
    - get_filesize
    - libtorrent::aux::get_drive_info
    - files
    - get_int
    - reserve
    - resize
    - pad_file_at
    - file_size
    - libtorrent::mmap_storage::need_partfile
    - end_index
    - libtorrent::mmap_storage::use_partfile
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_storage::initialize(settings_interface const& sett, storage_error&
      ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/mmap_storage.cpp:369,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:369,1
    - Dst: libtorrent::aux::has_any_file
      Src: /src/libtorrent/src/mmap_storage.cpp:371,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:371,1
    - Dst: stat_file
      Src: /src/libtorrent/src/mmap_storage.cpp:377,1
    - Dst: combine_path
      Src: /src/libtorrent/src/mmap_storage.cpp:377,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/mmap_storage.cpp:382,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 390
    functionName: libtorrent::mmap_storage::has_any_file
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - combine_path
    - files
    - stat_file
    - reserve
    - ec::clear
    - libtorrent::aux::has_any_file
    - file
    linkageType: ''
    returnType: bool
    signature: bool mmap_storage::has_any_file(storage_error& ec)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/src/mmap_storage.cpp:395,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:395,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:396,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:397,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:397,1
    - Dst: exists
      Src: /src/libtorrent/src/mmap_storage.cpp:406,1
    - Dst: is_complete
      Src: /src/libtorrent/src/mmap_storage.cpp:409,1
    - Dst: combine_path
      Src: /src/libtorrent/src/mmap_storage.cpp:410,1
    - Dst: parent_path
      Src: /src/libtorrent/src/mmap_storage.cpp:411,1
    - Dst: exists
      Src: /src/libtorrent/src/mmap_storage.cpp:414,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap_storage.cpp:417,1
    - Dst: generic_category
      Src: /src/libtorrent/src/mmap_storage.cpp:417,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:418,1
    - Dst: create_directories
      Src: /src/libtorrent/src/mmap_storage.cpp:425,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:428,1
    - Dst: rename
      Src: /src/libtorrent/src/mmap_storage.cpp:433,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/mmap_storage.cpp:439,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/mmap_storage.cpp:443,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/mmap_storage.cpp:444,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:448,1
    - Dst: remove
      Src: /src/libtorrent/src/mmap_storage.cpp:453,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:459,1
    - Dst: std::make_unique<file_storage>
      Src: /src/libtorrent/src/mmap_storage.cpp:468,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:468,1
    - Dst: libtorrent::mmap_storage::rename_file
      Src: /src/libtorrent/src/mmap_storage.cpp:469,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - index
    - ' new_filename'
    - ' ec'
    argTypes:
    - file_index_t
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 470
    functionName: libtorrent::mmap_storage::rename_file
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 2
    functionsReached:
    - storage_index
    - release
    - std::make_unique<file_storage>
    - rename
    - combine_path
    - create_directories
    - files
    - parent_path
    - error_code
    - exists
    - generic_category
    - file
    - ec::clear
    - remove
    - is_complete
    - libtorrent::aux::copy_file
    - libtorrent::mmap_storage::rename_file
    - file_index_t
    linkageType: ''
    returnType: void
    signature: "void mmap_storage::rename_file(file_index_t const index, std::string
      const& new_filename\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/mmap_storage.cpp:477,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:481,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:481,1
    - Dst: clear
      Src: /src/libtorrent/src/mmap_storage.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 486
    functionName: libtorrent::mmap_storage::release_files
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - clear
    - flush_metadata
    linkageType: ''
    returnType: void
    signature: void mmap_storage::release_files(storage_error&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:491,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:491,1
    - Dst: reset
      Src: /src/libtorrent/src/mmap_storage.cpp:496,1
    - Dst: libtorrent::aux::delete_files
      Src: /src/libtorrent/src/mmap_storage.cpp:498,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - options
    - ' ec'
    argTypes:
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 499
    functionName: libtorrent::mmap_storage::delete_files
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - reset
    - files
    - libtorrent::aux::delete_files
    linkageType: ''
    returnType: void
    signature: void mmap_storage::delete_files(remove_flags_t const options, storage_error&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::verify_resume_data
      Src: /src/libtorrent/src/mmap_storage.cpp:505,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rd'
    - ' links'
    - ' ec'
    argTypes:
    - add_torrent_params
    - aux::vector<std::string, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 507
    functionName: libtorrent::mmap_storage::verify_resume_data
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - libtorrent::aux::verify_resume_data
    linkageType: ''
    returnType: bool
    signature: "bool mmap_storage::verify_resume_data(add_torrent_params const& rd\n\t\t,
      aux::vector<std::string, file_index_t> const& links\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/mmap_storage.cpp:512,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:512,1
    - Dst: move_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:518,1
    - Dst: std::tie
      Src: /src/libtorrent/src/mmap_storage.cpp:520,1
    - Dst: libtorrent::aux::move_storage
      Src: /src/libtorrent/src/mmap_storage.cpp:520,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:520,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_storage.cpp:520,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_storage.cpp:521,1
    - Dst: clear
      Src: /src/libtorrent/src/mmap_storage.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - save_path
    - flags
    - ' ec'
    argTypes:
    - std::string
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 527
    functionName: libtorrent::mmap_storage::move_storage
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - storage_index
    - release
    - move_partfile
    - std::move
    - std::tie
    - files
    - libtorrent::aux::move_storage
    - clear
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> mmap_storage::move_storage(std::string
      save_path\n\t\t, move_flags_t const flags, storage_error& ec)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/mmap_storage.cpp:537,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/mmap_storage.cpp:537,1
    - Dst: rand
      Src: /src/libtorrent/src/mmap_storage.cpp:537,1
    - Dst: readwrite
      Src: /src/libtorrent/src/mmap_storage.cpp:539,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:539,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:545,1
    - Dst: libtorrent::aux::read_zeroes
      Src: /src/libtorrent/src/mmap_storage.cpp:545,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:547,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:551,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:554,1
    - Dst: libtorrent::mmap_storage::read
      Src: /src/libtorrent/src/mmap_storage.cpp:555,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:568,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:570,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/mmap_storage.cpp:571,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:571,1
    - Dst: auto::range
      Src: /src/libtorrent/src/mmap_storage.cpp:574,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:580,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:588,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:588,1
    - Dst: span::empty
      Src: /src/libtorrent/src/mmap_storage.cpp:589,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:591,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:591,1
    - Dst: first
      Src: /src/libtorrent/src/mmap_storage.cpp:591,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:591,1
    - Dst: sig::try_signal
      Src: /src/libtorrent/src/mmap_storage.cpp:593,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_storage.cpp:594,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_storage.cpp:594,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/mmap_storage.cpp:594,1
    - Dst: span::data
      Src: /src/libtorrent/src/mmap_storage.cpp:594,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:595,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:595,1
    - Dst: auto::dont_need
      Src: /src/libtorrent/src/mmap_storage.cpp:599,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:599,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:599,1
    - Dst: auto::page_out
      Src: /src/libtorrent/src/mmap_storage.cpp:601,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:601,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:601,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:603,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:603,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:604,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:604,1
    - Dst: translate_error
      Src: /src/libtorrent/src/mmap_storage.cpp:609,1
    - Dst: code
      Src: /src/libtorrent/src/mmap_storage.cpp:609,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:613,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 7
    argNames:
    - ' sett'
    - buffer
    - piece
    - offset
    - mode
    - flags
    - ' error'
    argTypes:
    - settings_interface
    - span<char>
    - piece_index_t
    - int
    - aux::open_mode_t
    - disk_job_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 615
    functionName: libtorrent::mmap_storage::read
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - libtorrent::mmap_storage::open_file
    - auto::range
    - span::size
    - static_cast<std::ptrdiff_t>
    - std::this_thread::sleep_for
    - sig::try_signal
    - static_cast<std::size_t>
    - libtorrent::mmap_storage::use_partfile
    - auto::has_memory_map
    - data
    - rand
    - first
    - span::first
    - libtorrent::aux::pread_all
    - translate_error
    - auto::dont_need
    - files
    - span::data
    - TORRENT_ASSERT
    - span::empty
    - milliseconds
    - auto::fd
    - auto::page_out
    - end_index
    - size
    - const_cast<char*>
    - span::subspan
    - libtorrent::mmap_storage::read
    - std::memcpy
    - code
    - readwrite
    - libtorrent::aux::read_zeroes
    linkageType: ''
    returnType: int
    signature: "int mmap_storage::read(settings_interface const& sett\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, aux::open_mode_t
      const mode\n\t\t, disk_job_flags_t const flags\n\t\t, storage_error& error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/mmap_storage.cpp:625,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/mmap_storage.cpp:625,1
    - Dst: rand
      Src: /src/libtorrent/src/mmap_storage.cpp:625,1
    - Dst: readwrite
      Src: /src/libtorrent/src/mmap_storage.cpp:627,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:627,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:632,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:635,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:638,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:640,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:642,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:645,1
    - Dst: libtorrent::mmap_storage::write
      Src: /src/libtorrent/src/mmap_storage.cpp:647,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/mmap_storage.cpp:660,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:662,1
    - Dst: end_file
      Src: /src/libtorrent/src/mmap_storage.cpp:662,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:664,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:672,1
    - Dst: libtorrent::aux::pwrite_all
      Src: /src/libtorrent/src/mmap_storage.cpp:673,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:673,1
    - Dst: auto::range
      Src: /src/libtorrent/src/mmap_storage.cpp:676,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:676,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:680,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:680,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:680,1
    - Dst: sig::try_signal
      Src: /src/libtorrent/src/mmap_storage.cpp:682,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: span::data
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:683,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:686,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:686,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:687,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:687,1
    - Dst: auto::dont_need
      Src: /src/libtorrent/src/mmap_storage.cpp:690,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:690,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:690,1
    - Dst: auto::page_out
      Src: /src/libtorrent/src/mmap_storage.cpp:692,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:692,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:692,1
    - Dst: translate_error
      Src: /src/libtorrent/src/mmap_storage.cpp:696,1
    - Dst: code
      Src: /src/libtorrent/src/mmap_storage.cpp:696,1
    - Dst: record_file_write
      Src: /src/libtorrent/src/mmap_storage.cpp:701,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:701,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 7
    argNames:
    - ' sett'
    - buffer
    - piece
    - offset
    - mode
    - flags
    - ' error'
    argTypes:
    - settings_interface
    - span<char>
    - piece_index_t
    - int
    - aux::open_mode_t
    - disk_job_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 706
    functionName: libtorrent::mmap_storage::write
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - libtorrent::mmap_storage::open_file
    - auto::range
    - static_cast<std::ptrdiff_t>
    - span::size
    - std::this_thread::sleep_for
    - sig::try_signal
    - static_cast<std::size_t>
    - libtorrent::mmap_storage::use_partfile
    - auto::has_memory_map
    - data
    - rand
    - span::first
    - end_file
    - libtorrent::mmap_storage::write
    - storage_index
    - translate_error
    - auto::dont_need
    - record_file_write
    - files
    - span::data
    - TORRENT_ASSERT
    - milliseconds
    - auto::fd
    - auto::page_out
    - end_index
    - size
    - const_cast<char*>
    - span::subspan
    - set_dirty
    - std::memcpy
    - libtorrent::aux::pwrite_all
    - code
    - readwrite
    linkageType: ''
    returnType: int
    signature: "int mmap_storage::write(settings_interface const& sett\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, aux::open_mode_t
      const mode\n\t\t, disk_job_flags_t const flags\n\t\t, storage_error& error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/mmap_storage.cpp:716,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/mmap_storage.cpp:716,1
    - Dst: rand
      Src: /src/libtorrent/src/mmap_storage.cpp:716,1
    - Dst: readwrite
      Src: /src/libtorrent/src/mmap_storage.cpp:722,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:722,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:727,1
    - Dst: libtorrent::aux::hash_zeroes
      Src: /src/libtorrent/src/mmap_storage.cpp:728,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:728,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:730,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:732,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:735,1
    - Dst: libtorrent::mmap_storage::hash
      Src: /src/libtorrent/src/mmap_storage.cpp:736,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:736,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:748,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:751,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/mmap_storage.cpp:753,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/mmap_storage.cpp:753,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:753,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/mmap_storage.cpp:754,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:754,1
    - Dst: update
      Src: /src/libtorrent/src/mmap_storage.cpp:756,1
    - Dst: auto::range
      Src: /src/libtorrent/src/mmap_storage.cpp:761,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:762,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:764,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:764,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_storage.cpp:765,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:765,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:765,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:765,1
    - Dst: sig::try_signal
      Src: /src/libtorrent/src/mmap_storage.cpp:767,1
    - Dst: update
      Src: /src/libtorrent/src/mmap_storage.cpp:768,1
    - Dst: const_cast<char const*>
      Src: /src/libtorrent/src/mmap_storage.cpp:768,1
    - Dst: span::data
      Src: /src/libtorrent/src/mmap_storage.cpp:768,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:768,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:770,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:770,1
    - Dst: auto::dont_need
      Src: /src/libtorrent/src/mmap_storage.cpp:772,1
    - Dst: auto::page_out
      Src: /src/libtorrent/src/mmap_storage.cpp:774,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 8
    argNames:
    - ' sett'
    - ' ph'
    - len
    - piece
    - offset
    - mode
    - flags
    - ' error'
    argTypes:
    - settings_interface
    - hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - aux::open_mode_t
    - disk_job_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 779
    functionName: libtorrent::mmap_storage::hash
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - update
    - libtorrent::mmap_storage::open_file
    - auto::range
    - span::size
    - sig::try_signal
    - std::this_thread::sleep_for
    - std::min
    - libtorrent::mmap_storage::use_partfile
    - auto::has_memory_map
    - rand
    - std::size_t
    - libtorrent::aux::hash_zeroes
    - const_cast<char const*>
    - libtorrent::mmap_storage::hash
    - libtorrent::aux::pread_all
    - auto::dont_need
    - files
    - std::vector::resize
    - span::data
    - milliseconds
    - auto::fd
    - auto::page_out
    - end_index
    - size
    - std::ptrdiff_t
    - span::subspan
    - readwrite
    linkageType: ''
    returnType: int
    signature: "int mmap_storage::hash(settings_interface const& sett\n\t\t, hasher&
      ph, std::ptrdiff_t const len\n\t\t, piece_index_t const piece, int const offset\n\t\t,
      aux::open_mode_t const mode\n\t\t, disk_job_flags_t const flags\n\t\t, storage_error&
      error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:788,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap_storage.cpp:788,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:788,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:789,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:790,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:791,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:792,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:792,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:794,1
    - Dst: libtorrent::mmap_storage::use_partfile
      Src: /src/libtorrent/src/mmap_storage.cpp:796,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:799,1
    - Dst: libtorrent::mmap_storage::hash2
      Src: /src/libtorrent/src/mmap_storage.cpp:800,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:806,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:813,1
    - Dst: auto::has_memory_map
      Src: /src/libtorrent/src/mmap_storage.cpp:816,1
    - Dst: libtorrent::aux::pread_all
      Src: /src/libtorrent/src/mmap_storage.cpp:819,1
    - Dst: auto::fd
      Src: /src/libtorrent/src/mmap_storage.cpp:819,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:822,1
    - Dst: update
      Src: /src/libtorrent/src/mmap_storage.cpp:826,1
    - Dst: auto::range
      Src: /src/libtorrent/src/mmap_storage.cpp:830,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap_storage.cpp:831,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:831,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:834,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/mmap_storage.cpp:838,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:838,1
    - Dst: span::first
      Src: /src/libtorrent/src/mmap_storage.cpp:839,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_storage.cpp:839,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/mmap_storage.cpp:839,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:839,1
    - Dst: update
      Src: /src/libtorrent/src/mmap_storage.cpp:840,1
    - Dst: auto::dont_need
      Src: /src/libtorrent/src/mmap_storage.cpp:842,1
    - Dst: auto::page_out
      Src: /src/libtorrent/src/mmap_storage.cpp:844,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_storage.cpp:846,1
    - Dst: span::size
      Src: /src/libtorrent/src/mmap_storage.cpp:846,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 8
    argNames:
    - ' sett'
    - ' ph'
    - len
    - piece
    - offset
    - mode
    - flags
    - ' error'
    argTypes:
    - settings_interface
    - hasher256
    - std::ptrdiff_t
    - piece_index_t
    - int
    - aux::open_mode_t
    - disk_job_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 847
    functionName: libtorrent::mmap_storage::hash2
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - update
    - libtorrent::mmap_storage::open_file
    - auto::range
    - span::size
    - libtorrent::mmap_storage::hash2
    - std::min
    - libtorrent::mmap_storage::use_partfile
    - auto::has_memory_map
    - span::first
    - file
    - libtorrent::aux::pread_all
    - auto::dont_need
    - files
    - TORRENT_ASSERT
    - auto::fd
    - auto::page_out
    - end_index
    - std::ptrdiff_t
    - span::subspan
    - std::int64_t
    linkageType: ''
    returnType: int
    signature: "int mmap_storage::hash2(settings_interface const& sett\n\t\t, hasher256&
      ph, std::ptrdiff_t const len\n\t\t, piece_index_t const piece, int const offset\n\t\t,
      aux::open_mode_t const mode\n\t\t, disk_job_flags_t const flags\n\t\t, storage_error&
      error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/mmap_storage.cpp:859,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:859,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_storage.cpp:860,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:860,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:867,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:870,1
    - Dst: get_bool
      Src: /src/libtorrent/src/mmap_storage.cpp:874,1
    - Dst: libtorrent::mmap_storage::open_file_impl
      Src: /src/libtorrent/src/mmap_storage.cpp:880,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:883,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:886,1
    - Dst: set_bit
      Src: /src/libtorrent/src/mmap_storage.cpp:893,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:897,1
    - Dst: static_cast<bool>
      Src: /src/libtorrent/src/mmap_storage.cpp:897,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - ' sett'
    - file
    - mode
    - ' ec'
    argTypes:
    - settings_interface
    - file_index_t
    - aux::open_mode_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 899
    functionName: libtorrent::mmap_storage::open_file
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 13
    functionsReached:
    - set_bit
    - static_cast<bool>
    - files
    - TORRENT_ASSERT
    - libtorrent::mmap_storage::open_file_impl
    - resize
    - file
    - get_bool
    - size
    linkageType: ''
    returnType: std::shared_ptr<aux::file_mapping>
    signature: "std::shared_ptr<aux::file_mapping> mmap_storage::open_file(settings_interface
      const& sett\n\t\t, file_index_t const file\n\t\t, aux::open_mode_t mode, storage_error&
      ec) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:906,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:906,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_storage.cpp:910,1
    - Dst: get_bool
      Src: /src/libtorrent/src/mmap_storage.cpp:913,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:916,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_storage.cpp:917,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_storage.cpp:921,1
    - Dst: libtorrent::mmap_storage::open_file
      Src: /src/libtorrent/src/mmap_storage.cpp:929,1
    - Dst: storage_index
      Src: /src/libtorrent/src/mmap_storage.cpp:929,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_storage.cpp:930,1
    - Dst: std::shared_ptr<std::mutex>
      Src: /src/libtorrent/src/mmap_storage.cpp:932,1
    - Dst: get
      Src: /src/libtorrent/src/mmap_storage.cpp:933,1
    - Dst: file
      Src: /src/libtorrent/src/mmap_storage.cpp:940,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_storage.cpp:941,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - ' sett'
    - file
    - mode
    - ' ec'
    argTypes:
    - settings_interface
    - file_index_t
    - aux::open_mode_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 944
    functionName: libtorrent::mmap_storage::open_file_impl
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 2
    functionsReached:
    - storage_index
    - libtorrent::mmap_storage::open_file
    - files
    - get
    - TORRENT_ASSERT
    - get_int
    - std::shared_ptr<std::mutex>
    - file
    - get_bool
    - end_index
    linkageType: ''
    returnType: std::shared_ptr<aux::file_mapping>
    signature: "std::shared_ptr<aux::file_mapping> mmap_storage::open_file_impl(settings_interface
      const& sett\n\t\t, file_index_t file\n\t\t, aux::open_mode_t mode\n\t\t, storage_error&
      ec) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/mmap_storage.cpp:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 952
    functionName: libtorrent::mmap_storage::tick
    functionSourceFile: /src/libtorrent/src/mmap_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    linkageType: ''
    returnType: bool
    signature: bool mmap_storage::tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<std::uint16_t, T>
    - std::pair<std::uint16_t, T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: compare_first
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_first(std::pair<std::uint16_t, T> const& lhs\n\t\t, std::pair<std::uint16_t,
      T> const& rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:58,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:58,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:58,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/src/settings_pack.cpp:59,1
    - Dst: emplace
      Src: /src/libtorrent/src/settings_pack.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/src/settings_pack.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' c'
    - v
    argTypes:
    - std::vector<std::pair<std::uint16_t, T>>
    - std::pair<std::uint16_t, T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: insort_replace
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - emplace
    - end
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void insort_replace(std::vector<std::pair<std::uint16_t, T>>& c, std::pair<std::uint16_t,
      T> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ensure_string
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ensure_string(char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<std::uint16_t, T>
    - std::pair<std::uint16_t, T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: compare_first
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_first(std::pair<std::uint16_t, T> const& lhs\n\t\t, std::pair<std::uint16_t,
      T> const& rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:58,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:58,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:58,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:59,1
    - Dst: std::move
      Src: /src/libtorrent/src/settings_pack.cpp:59,1
    - Dst: emplace
      Src: /src/libtorrent/src/settings_pack.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/src/settings_pack.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' c'
    - v
    argTypes:
    - std::vector<std::pair<std::uint16_t, T>>
    - std::pair<std::uint16_t, T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: insort_replace
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - emplace
    - end
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void insort_replace(std::vector<std::pair<std::uint16_t, T>>& c, std::pair<std::uint16_t,
      T> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ensure_string
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ensure_string(char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: DEPRECATED_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: DEPRECATED_SET_STR
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET_STR(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: DEPRECATED2_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED2_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: DEPRECATED_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: DEPRECATED_SET_STR
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET_STR(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: DEPRECATED2_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED2_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: DEPRECATED_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: DEPRECATED_SET_STR
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET_STR(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: DEPRECATED2_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED2_SET(name, default_value, fun)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:419,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:424,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:429,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 440
    functionName: libtorrent::setting_by_name
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: int
    signature: int setting_by_name(string_view const key)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 454
    functionName: libtorrent::name_for_setting
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name_for_setting(int s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dict_size
      Src: /src/libtorrent/src/settings_pack.cpp:460,1
    - Dst: std::tie
      Src: /src/libtorrent/src/settings_pack.cpp:464,1
    - Dst: dict_at
      Src: /src/libtorrent/src/settings_pack.cpp:464,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/settings_pack.cpp:465,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:473,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:476,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/settings_pack.cpp:476,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:481,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:484,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/settings_pack.cpp:484,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:490,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/settings_pack.cpp:493,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/settings_pack.cpp:493,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 502
    functionName: libtorrent::load_pack_from_dict
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - dict_at
    - bdecode_node::type
    - bdecode_node::string_value
    - std::tie
    - bdecode_node::int_value
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    - end_index
    - dict_size
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack load_pack_from_dict(bdecode_node const& settings)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bulk_get
      Src: /src/libtorrent/src/settings_pack.cpp:507,1
    - Dst: ensure_string
      Src: /src/libtorrent/src/settings_pack.cpp:513,1
    - Dst: get_str
      Src: /src/libtorrent/src/settings_pack.cpp:513,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/settings_pack.cpp:514,1
    - Dst: get_str
      Src: /src/libtorrent/src/settings_pack.cpp:514,1
    - Dst: get_int
      Src: /src/libtorrent/src/settings_pack.cpp:520,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:521,1
    - Dst: get_int
      Src: /src/libtorrent/src/settings_pack.cpp:521,1
    - Dst: get_bool
      Src: /src/libtorrent/src/settings_pack.cpp:527,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:528,1
    - Dst: get_bool
      Src: /src/libtorrent/src/settings_pack.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 532
    functionName: libtorrent::non_default_settings
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - bulk_get
    - get_int
    - settings_pack::set_bool
    - ensure_string
    - settings_pack::set_str
    - get_bool
    - settings_pack::set_int
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack non_default_settings(aux::session_settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::for_each
      Src: /src/libtorrent/src/settings_pack.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' sett'
    - ' out'
    argTypes:
    - settings_pack
    - entry::dictionary_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 544
    functionName: libtorrent::save_settings_to_dict
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::for_each
    linkageType: ''
    returnType: void
    signature: void save_settings_to_dict(settings_pack const& sett, entry::dictionary_type&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - ' str'
    argTypes:
    - std::uint16_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: operator()(std::uint16_t i, std::string const& str)
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(std::uint16_t i, std::string const& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - std::uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: operator()(std::uint16_t i, int val)
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(std::uint16_t i, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - std::uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: operator()(std::uint16_t i, bool val)
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(std::uint16_t i, bool val)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - aux::session_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 566
    functionName: libtorrent::run_all_updates
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void run_all_updates(aux::session_impl& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_str
      Src: /src/libtorrent/src/settings_pack.cpp:573,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:574,1
    - Dst: get_str
      Src: /src/libtorrent/src/settings_pack.cpp:574,1
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:580,1
    - Dst: get_int
      Src: /src/libtorrent/src/settings_pack.cpp:580,1
    - Dst: set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:586,1
    - Dst: get_bool
      Src: /src/libtorrent/src/settings_pack.cpp:586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::session_settings_single_thread
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 588
    functionName: libtorrent::initialize_default_settings
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - libtorrent::set_int
    - set_bool
    - TORRENT_ASSERT
    - get_int
    - get_bool
    - set_str
    linkageType: ''
    returnType: void
    signature: void initialize_default_settings(aux::session_settings_single_thread&
      s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/settings_pack.cpp:597,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:602,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 610
    functionName: libtorrent::default_settings
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - settings_pack::set_bool
    - settings_pack::set_str
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack default_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bulk_set
      Src: /src/libtorrent/src/settings_pack.cpp:618,1
    - Dst: libtorrent::apply_pack_impl
      Src: /src/libtorrent/src/settings_pack.cpp:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pack
    - ' sett'
    - ses
    argTypes:
    - settings_pack*
    - aux::session_settings
    - aux::session_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: libtorrent::apply_pack
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - bulk_set
    - libtorrent::apply_pack_impl
    linkageType: ''
    returnType: void
    signature: "void apply_pack(settings_pack const* pack, aux::session_settings&
      sett\n\t\t, aux::session_impl* ses)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:642,1
    - Dst: get_str
      Src: /src/libtorrent/src/settings_pack.cpp:647,1
    - Dst: set_str
      Src: /src/libtorrent/src/settings_pack.cpp:649,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/settings_pack.cpp:653,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::begin
      Src: /src/libtorrent/src/settings_pack.cpp:653,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:653,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:653,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::push_back
      Src: /src/libtorrent/src/settings_pack.cpp:654,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:665,1
    - Dst: get_int
      Src: /src/libtorrent/src/settings_pack.cpp:670,1
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:672,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/settings_pack.cpp:675,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::begin
      Src: /src/libtorrent/src/settings_pack.cpp:675,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:675,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:675,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::push_back
      Src: /src/libtorrent/src/settings_pack.cpp:676,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:687,1
    - Dst: get_bool
      Src: /src/libtorrent/src/settings_pack.cpp:692,1
    - Dst: set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:694,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/settings_pack.cpp:697,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::begin
      Src: /src/libtorrent/src/settings_pack.cpp:697,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:697,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:697,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::push_back
      Src: /src/libtorrent/src/settings_pack.cpp:698,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 34
    argCount: 3
    argNames:
    - pack
    - ' sett'
    - callbacks
    argTypes:
    - settings_pack*
    - aux::session_settings_single_thread
    - std::vector<void(aux::session_impl::*)()>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 700
    functionName: libtorrent::apply_pack_impl
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 1
    functionsReached:
    - get_str
    - std::vector<void(aux::session_impl::*)()>*::begin
    - libtorrent::set_int
    - libtorrent::find
    - std::vector<void(aux::session_impl::*)()>*::end
    - std::vector<void(aux::session_impl::*)()>*::push_back
    - TORRENT_ASSERT_PRECOND
    - set_bool
    - get_int
    - get_bool
    - set_str
    linkageType: ''
    returnType: void
    signature: "void apply_pack_impl(settings_pack const* pack, aux::session_settings_single_thread&
      sett\n\t\t, std::vector<void(aux::session_impl::*)()>* callbacks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:704,1
    - Dst: insort_replace
      Src: /src/libtorrent/src/settings_pack.cpp:707,1
    - Dst: std::move
      Src: /src/libtorrent/src/settings_pack.cpp:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: libtorrent::settings_pack::set_str
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - insort_replace
    - std::move
    linkageType: ''
    returnType: void
    signature: void settings_pack::set_str(int const name, std::string val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:712,1
    - Dst: insort_replace
      Src: /src/libtorrent/src/settings_pack.cpp:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: libtorrent::settings_pack::set_int
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - insort_replace
    linkageType: ''
    returnType: void
    signature: void settings_pack::set_int(int const name, int const val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:720,1
    - Dst: insort_replace
      Src: /src/libtorrent/src/settings_pack.cpp:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 724
    functionName: libtorrent::settings_pack::set_bool
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - insort_replace
    linkageType: ''
    returnType: void
    signature: void settings_pack::set_bool(int const name, bool const val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:734,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:737,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:737,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:737,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:739,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:745,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/settings_pack.cpp:747,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:748,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:748,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:748,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:750,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:756,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:759,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:759,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:759,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:761,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/settings_pack.cpp:764,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 766
    functionName: libtorrent::settings_pack::has_val
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - begin
    - end
    - size
    - TORRENT_ASSERT_FAIL
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool settings_pack::has_val(int const name) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:771,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:776,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:778,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:782,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:782,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:782,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:784,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 792
    functionName: '& settings_pack::get_str(int name) const'
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - begin
    - TORRENT_ASSERT_PRECOND
    - end
    - TORRENT_ASSERT
    - size
    - std::lower_bound
    linkageType: ''
    returnType: std::string
    signature: std::string & settings_pack::get_str(int name) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:796,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:801,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:803,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/settings_pack.cpp:806,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:807,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:807,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:807,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 812
    functionName: libtorrent::settings_pack::get_int
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - begin
    - TORRENT_ASSERT_PRECOND
    - end
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    linkageType: ''
    returnType: int
    signature: int settings_pack::get_int(int name) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:816,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:821,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:823,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:827,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:827,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:827,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 832
    functionName: libtorrent::settings_pack::get_bool
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - begin
    - TORRENT_ASSERT_PRECOND
    - end
    - TORRENT_ASSERT
    - size
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool settings_pack::get_bool(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::settings_pack::clear
      Src: /src/libtorrent/src/settings_pack.cpp:836,1
    - Dst: libtorrent::settings_pack::clear
      Src: /src/libtorrent/src/settings_pack.cpp:837,1
    - Dst: libtorrent::settings_pack::clear
      Src: /src/libtorrent/src/settings_pack.cpp:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 839
    functionName: libtorrent::settings_pack::clear
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::settings_pack::clear
    linkageType: ''
    returnType: void
    signature: void settings_pack::clear()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:848,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:848,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:848,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:850,1
    - Dst: erase
      Src: /src/libtorrent/src/settings_pack.cpp:850,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/settings_pack.cpp:855,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:856,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:856,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:856,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:858,1
    - Dst: erase
      Src: /src/libtorrent/src/settings_pack.cpp:858,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:864,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:864,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:864,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:866,1
    - Dst: erase
      Src: /src/libtorrent/src/settings_pack.cpp:866,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 870
    functionName: libtorrent::settings_pack::clear
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 1
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - begin
    - erase
    - end
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void settings_pack::clear(int const name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: DEPRECATED_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: DEPRECATED_SET_STR
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET_STR(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: DEPRECATED2_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED2_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: DEPRECATED_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: DEPRECATED_SET_STR
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET_STR(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: DEPRECATED2_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED2_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: DEPRECATED_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: DEPRECATED_SET_STR
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED_SET_STR(name, default_value, fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - default_value
    - ','
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: DEPRECATED2_SET
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEPRECATED2_SET(name, default_value, fun)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:419,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:424,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:429,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 440
    functionName: libtorrent::setting_by_name
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: int
    signature: int setting_by_name(string_view const key)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 454
    functionName: libtorrent::name_for_setting
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name_for_setting(int s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dict_size
      Src: /src/libtorrent/src/settings_pack.cpp:460,1
    - Dst: std::tie
      Src: /src/libtorrent/src/settings_pack.cpp:464,1
    - Dst: dict_at
      Src: /src/libtorrent/src/settings_pack.cpp:464,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/settings_pack.cpp:465,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:473,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:476,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/settings_pack.cpp:476,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:481,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:484,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/settings_pack.cpp:484,1
    - Dst: end_index
      Src: /src/libtorrent/src/settings_pack.cpp:490,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/settings_pack.cpp:493,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/settings_pack.cpp:493,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 502
    functionName: libtorrent::load_pack_from_dict
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - dict_at
    - bdecode_node::type
    - bdecode_node::string_value
    - std::tie
    - bdecode_node::int_value
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    - end_index
    - dict_size
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack load_pack_from_dict(bdecode_node const& settings)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bulk_get
      Src: /src/libtorrent/src/settings_pack.cpp:507,1
    - Dst: ensure_string
      Src: /src/libtorrent/src/settings_pack.cpp:513,1
    - Dst: get_str
      Src: /src/libtorrent/src/settings_pack.cpp:513,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/settings_pack.cpp:514,1
    - Dst: get_str
      Src: /src/libtorrent/src/settings_pack.cpp:514,1
    - Dst: get_int
      Src: /src/libtorrent/src/settings_pack.cpp:520,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:521,1
    - Dst: get_int
      Src: /src/libtorrent/src/settings_pack.cpp:521,1
    - Dst: get_bool
      Src: /src/libtorrent/src/settings_pack.cpp:527,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:528,1
    - Dst: get_bool
      Src: /src/libtorrent/src/settings_pack.cpp:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 532
    functionName: libtorrent::non_default_settings
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - bulk_get
    - get_int
    - settings_pack::set_bool
    - ensure_string
    - settings_pack::set_str
    - get_bool
    - settings_pack::set_int
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack non_default_settings(aux::session_settings const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::for_each
      Src: /src/libtorrent/src/settings_pack.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' sett'
    - ' out'
    argTypes:
    - settings_pack
    - entry::dictionary_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 544
    functionName: libtorrent::save_settings_to_dict
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::for_each
    linkageType: ''
    returnType: void
    signature: void save_settings_to_dict(settings_pack const& sett, entry::dictionary_type&
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - ' str'
    argTypes:
    - std::uint16_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: operator()(std::uint16_t i, std::string const& str)
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(std::uint16_t i, std::string const& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - std::uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: operator()(std::uint16_t i, int val)
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(std::uint16_t i, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - val
    argTypes:
    - std::uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: operator()(std::uint16_t i, bool val)
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(std::uint16_t i, bool val)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - aux::session_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 566
    functionName: libtorrent::run_all_updates
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void run_all_updates(aux::session_impl& ses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_str
      Src: /src/libtorrent/src/settings_pack.cpp:573,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:574,1
    - Dst: get_str
      Src: /src/libtorrent/src/settings_pack.cpp:574,1
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:580,1
    - Dst: get_int
      Src: /src/libtorrent/src/settings_pack.cpp:580,1
    - Dst: set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:586,1
    - Dst: get_bool
      Src: /src/libtorrent/src/settings_pack.cpp:586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::session_settings_single_thread
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 588
    functionName: libtorrent::initialize_default_settings
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - libtorrent::set_int
    - set_bool
    - TORRENT_ASSERT
    - get_int
    - get_bool
    - set_str
    linkageType: ''
    returnType: void
    signature: void initialize_default_settings(aux::session_settings_single_thread&
      s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/settings_pack.cpp:597,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:602,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 610
    functionName: libtorrent::default_settings
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - settings_pack::set_bool
    - settings_pack::set_str
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack default_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bulk_set
      Src: /src/libtorrent/src/settings_pack.cpp:618,1
    - Dst: libtorrent::apply_pack_impl
      Src: /src/libtorrent/src/settings_pack.cpp:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pack
    - ' sett'
    - ses
    argTypes:
    - settings_pack*
    - aux::session_settings
    - aux::session_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: libtorrent::apply_pack
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - bulk_set
    - libtorrent::apply_pack_impl
    linkageType: ''
    returnType: void
    signature: "void apply_pack(settings_pack const* pack, aux::session_settings&
      sett\n\t\t, aux::session_impl* ses)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:642,1
    - Dst: get_str
      Src: /src/libtorrent/src/settings_pack.cpp:647,1
    - Dst: set_str
      Src: /src/libtorrent/src/settings_pack.cpp:649,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/settings_pack.cpp:653,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::begin
      Src: /src/libtorrent/src/settings_pack.cpp:653,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:653,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:653,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::push_back
      Src: /src/libtorrent/src/settings_pack.cpp:654,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:665,1
    - Dst: get_int
      Src: /src/libtorrent/src/settings_pack.cpp:670,1
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/src/settings_pack.cpp:672,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/settings_pack.cpp:675,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::begin
      Src: /src/libtorrent/src/settings_pack.cpp:675,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:675,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:675,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::push_back
      Src: /src/libtorrent/src/settings_pack.cpp:676,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:687,1
    - Dst: get_bool
      Src: /src/libtorrent/src/settings_pack.cpp:692,1
    - Dst: set_bool
      Src: /src/libtorrent/src/settings_pack.cpp:694,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/settings_pack.cpp:697,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::begin
      Src: /src/libtorrent/src/settings_pack.cpp:697,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:697,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::end
      Src: /src/libtorrent/src/settings_pack.cpp:697,1
    - Dst: std::vector<void(aux::session_impl::*)()>*::push_back
      Src: /src/libtorrent/src/settings_pack.cpp:698,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 34
    argCount: 3
    argNames:
    - pack
    - ' sett'
    - callbacks
    argTypes:
    - settings_pack*
    - aux::session_settings_single_thread
    - std::vector<void(aux::session_impl::*)()>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 700
    functionName: libtorrent::apply_pack_impl
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 2
    functionsReached:
    - get_str
    - std::vector<void(aux::session_impl::*)()>*::begin
    - libtorrent::set_int
    - libtorrent::find
    - std::vector<void(aux::session_impl::*)()>*::end
    - std::vector<void(aux::session_impl::*)()>*::push_back
    - TORRENT_ASSERT_PRECOND
    - set_bool
    - get_int
    - get_bool
    - set_str
    linkageType: ''
    returnType: void
    signature: "void apply_pack_impl(settings_pack const* pack, aux::session_settings_single_thread&
      sett\n\t\t, std::vector<void(aux::session_impl::*)()>* callbacks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:704,1
    - Dst: insort_replace
      Src: /src/libtorrent/src/settings_pack.cpp:707,1
    - Dst: std::move
      Src: /src/libtorrent/src/settings_pack.cpp:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: libtorrent::settings_pack::set_str
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - insort_replace
    - std::move
    linkageType: ''
    returnType: void
    signature: void settings_pack::set_str(int const name, std::string val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:712,1
    - Dst: insort_replace
      Src: /src/libtorrent/src/settings_pack.cpp:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: libtorrent::settings_pack::set_int
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - insort_replace
    linkageType: ''
    returnType: void
    signature: void settings_pack::set_int(int const name, int const val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:720,1
    - Dst: insort_replace
      Src: /src/libtorrent/src/settings_pack.cpp:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 724
    functionName: libtorrent::settings_pack::set_bool
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - insort_replace
    linkageType: ''
    returnType: void
    signature: void settings_pack::set_bool(int const name, bool const val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:734,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:737,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:737,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:737,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:739,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:745,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/settings_pack.cpp:747,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:748,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:748,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:748,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:750,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:756,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:759,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:759,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:759,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:761,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/settings_pack.cpp:764,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 766
    functionName: libtorrent::settings_pack::has_val
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - begin
    - end
    - size
    - TORRENT_ASSERT_FAIL
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool settings_pack::has_val(int const name) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:771,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:776,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:778,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:782,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:782,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:782,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:784,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 792
    functionName: '& settings_pack::get_str(int name) const'
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - begin
    - TORRENT_ASSERT_PRECOND
    - end
    - TORRENT_ASSERT
    - size
    - std::lower_bound
    linkageType: ''
    returnType: std::string
    signature: std::string & settings_pack::get_str(int name) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:796,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:801,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:803,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/settings_pack.cpp:806,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:807,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:807,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:807,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 812
    functionName: libtorrent::settings_pack::get_int
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - begin
    - TORRENT_ASSERT_PRECOND
    - end
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    linkageType: ''
    returnType: int
    signature: int settings_pack::get_int(int name) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/settings_pack.cpp:816,1
    - Dst: size
      Src: /src/libtorrent/src/settings_pack.cpp:821,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/settings_pack.cpp:823,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:827,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:827,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:827,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 832
    functionName: libtorrent::settings_pack::get_bool
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 0
    functionsReached:
    - begin
    - TORRENT_ASSERT_PRECOND
    - end
    - TORRENT_ASSERT
    - size
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool settings_pack::get_bool(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::settings_pack::clear
      Src: /src/libtorrent/src/settings_pack.cpp:836,1
    - Dst: libtorrent::settings_pack::clear
      Src: /src/libtorrent/src/settings_pack.cpp:837,1
    - Dst: libtorrent::settings_pack::clear
      Src: /src/libtorrent/src/settings_pack.cpp:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 839
    functionName: libtorrent::settings_pack::clear
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::settings_pack::clear
    linkageType: ''
    returnType: void
    signature: void settings_pack::clear()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:848,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:848,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:848,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:850,1
    - Dst: erase
      Src: /src/libtorrent/src/settings_pack.cpp:850,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/settings_pack.cpp:855,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:856,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:856,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:856,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:858,1
    - Dst: erase
      Src: /src/libtorrent/src/settings_pack.cpp:858,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/settings_pack.cpp:864,1
    - Dst: begin
      Src: /src/libtorrent/src/settings_pack.cpp:864,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:864,1
    - Dst: end
      Src: /src/libtorrent/src/settings_pack.cpp:866,1
    - Dst: erase
      Src: /src/libtorrent/src/settings_pack.cpp:866,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 870
    functionName: libtorrent::settings_pack::clear
    functionSourceFile: /src/libtorrent/src/settings_pack.cpp
    functionUses: 2
    functionsReached:
    - aux::numeric_cast<std::uint16_t>
    - begin
    - erase
    - end
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void settings_pack::clear(int const name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:94,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:95,1
    - Dst: dispatch
      Src: /src/libtorrent/src/session_handle.cpp:96,1
    - Dst: std::shared_ptr::get_context
      Src: /src/libtorrent/src/session_handle.cpp:96,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_handle.cpp:96,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/session_handle.cpp:101,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/session_handle.cpp:101,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/session_handle.cpp:104,1
    - Dst: code
      Src: /src/libtorrent/src/session_handle.cpp:104,1
    - Dst: what
      Src: /src/libtorrent/src/session_handle.cpp:104,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/session_handle.cpp:106,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_handle.cpp:106,1
    - Dst: what
      Src: /src/libtorrent/src/session_handle.cpp:106,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/session_handle.cpp:108,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_handle.cpp:108,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/session_handle.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 112
    functionName: session_handle::async_call
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - dispatch
    - std::bind
    - aux::throw_ex<system_error>
    - error_code
    - std::shared_ptr::get_context
    - std::shared_ptr::alerts
    - code
    - lock
    - std::forward<Args>
    - what
    - std::shared_ptr::get
    linkageType: ''
    returnType: void
    signature: void session_handle::async_call(Fun f, Args&&... a) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:117,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:118,1
    - Dst: dispatch
      Src: /src/libtorrent/src/session_handle.cpp:126,1
    - Dst: std::shared_ptr::get_context
      Src: /src/libtorrent/src/session_handle.cpp:126,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_handle.cpp:126,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/session_handle.cpp:131,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/session_handle.cpp:131,1
    - Dst: std::current_exception
      Src: /src/libtorrent/src/session_handle.cpp:134,1
    - Dst: std::shared_ptr::cond::notify_all
      Src: /src/libtorrent/src/session_handle.cpp:139,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/session_handle.cpp:140,1
    - Dst: libtorrent::aux::torrent_wait
      Src: /src/libtorrent/src/session_handle.cpp:142,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/src/session_handle.cpp:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 144
    functionName: session_handle::sync_call
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - dispatch
    - std::bind
    - aux::throw_ex<system_error>
    - std::shared_ptr::get_context
    - libtorrent::aux::torrent_wait
    - std::shared_ptr::cond::notify_all
    - lock
    - std::current_exception
    - std::rethrow_exception
    - std::forward<Args>
    - std::shared_ptr::get
    linkageType: ''
    returnType: void
    signature: void session_handle::sync_call(Fun f, Args&&... a) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:149,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:150,1
    - Dst: dispatch
      Src: /src/libtorrent/src/session_handle.cpp:158,1
    - Dst: std::shared_ptr::get_context
      Src: /src/libtorrent/src/session_handle.cpp:158,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_handle.cpp:158,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/session_handle.cpp:163,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/session_handle.cpp:163,1
    - Dst: std::current_exception
      Src: /src/libtorrent/src/session_handle.cpp:166,1
    - Dst: std::shared_ptr::cond::notify_all
      Src: /src/libtorrent/src/session_handle.cpp:171,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/src/session_handle.cpp:172,1
    - Dst: libtorrent::aux::torrent_wait
      Src: /src/libtorrent/src/session_handle.cpp:174,1
    - Dst: std::rethrow_exception
      Src: /src/libtorrent/src/session_handle.cpp:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: session_handle::sync_call_ret
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - dispatch
    - std::bind
    - aux::throw_ex<system_error>
    - std::shared_ptr::get_context
    - libtorrent::aux::torrent_wait
    - std::shared_ptr::cond::notify_all
    - lock
    - std::current_exception
    - std::rethrow_exception
    - std::forward<Args>
    - std::shared_ptr::get
    linkageType: ''
    returnType: Ret
    signature: Ret session_handle::sync_call_ret(Fun f, Args&&... a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call
      Src: /src/libtorrent/src/session_handle.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' e'
    - flags
    argTypes:
    - entry
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: session_handle::save_state
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call
    linkageType: ''
    returnType: void
    signature: void session_handle::save_state(entry& e, save_state_flags_t const
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call
      Src: /src/libtorrent/src/session_handle.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' e'
    - flags
    argTypes:
    - bdecode_node
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: session_handle::load_state
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call
    linkageType: ''
    returnType: void
    signature: "void session_handle::load_state(bdecode_node const& e\n\t\t, save_state_flags_t
      const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: session_handle::session_state
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: session_params
    signature: session_params session_handle::session_state(save_state_flags_t const
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call
      Src: /src/libtorrent/src/session_handle.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pred'
    - flags
    argTypes:
    - std::function<bool(torrent_status const&)>
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: session_handle::get_torrent_status
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call
    linkageType: ''
    returnType: std::vector<torrent_status>
    signature: "std::vector<torrent_status> session_handle::get_torrent_status(\n\t\tstd::function<bool(torrent_status
      const&)> const& pred\n\t\t, status_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call
      Src: /src/libtorrent/src/session_handle.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ret
    - ' pred'
    - flags
    argTypes:
    - std::vector<torrent_status>*
    - std::function<bool(torrent_status const&)>
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: session_handle::get_torrent_status
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call
    linkageType: ''
    returnType: void
    signature: "void session_handle::get_torrent_status(std::vector<torrent_status>*
      ret\n\t\t, std::function<bool(torrent_status const&)> const& pred\n\t\t, status_flags_t
      const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call
      Src: /src/libtorrent/src/session_handle.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ret
    - flags
    argTypes:
    - std::vector<torrent_status>*
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: session_handle::refresh_torrent_status
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call
    linkageType: ''
    returnType: void
    signature: "void session_handle::refresh_torrent_status(std::vector<torrent_status>*
      ret\n\t\t, status_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: session_handle::post_torrent_updates
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::post_torrent_updates(status_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: session_handle::post_session_stats
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::post_session_stats()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: session_handle::post_dht_stats
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::post_dht_stats()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:241,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:242,1
    - Dst: std::shared_ptr::get_context
      Src: /src/libtorrent/src/session_handle.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: '& session_handle::get_context()'
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::get_context
    - lock
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: io_context
    signature: io_context & session_handle::get_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:249,1
    - Dst: libtorrent::dht::dht_state
      Src: /src/libtorrent/src/session_handle.cpp:249,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - dht::dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: session_handle::set_dht_state
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - libtorrent::dht::dht_state
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::set_dht_state(dht::dht_state const& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:258,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:258,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - dht::dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: session_handle::set_dht_state
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::set_dht_state(dht::dht_state&& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:266,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/session_handle.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' info_hash'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: session_handle::find_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    - info_hash_t
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle session_handle::find_torrent(sha1_hash const& info_hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:271,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/session_handle.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' info_hash'
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: session_handle::find_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    - info_hash_t
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle session_handle::find_torrent(sha256_hash const& info_hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: session_handle::get_torrents
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: std::vector<torrent_handle>
    signature: std::vector<torrent_handle> session_handle::get_torrents() const
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: resume_data::empty
      Src: /src/libtorrent/src/session_handle.cpp:287,1
    - Dst: read_resume_data
      Src: /src/libtorrent/src/session_handle.cpp:291,1
    - Dst: add_torrent_params::save_path::empty
      Src: /src/libtorrent/src/session_handle.cpp:298,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:300,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:305,1
    - Dst: add_torrent_params::trackers::empty
      Src: /src/libtorrent/src/session_handle.cpp:308,1
    - Dst: tracker_tiers::resize
      Src: /src/libtorrent/src/session_handle.cpp:310,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/session_handle.cpp:310,1
    - Dst: trackers::insert
      Src: /src/libtorrent/src/session_handle.cpp:311,1
    - Dst: trackers::end
      Src: /src/libtorrent/src/session_handle.cpp:311,1
    - Dst: add_torrent_params::trackers::begin
      Src: /src/libtorrent/src/session_handle.cpp:312,1
    - Dst: add_torrent_params::trackers::end
      Src: /src/libtorrent/src/session_handle.cpp:313,1
    - Dst: tracker_tiers::insert
      Src: /src/libtorrent/src/session_handle.cpp:314,1
    - Dst: tracker_tiers::end
      Src: /src/libtorrent/src/session_handle.cpp:314,1
    - Dst: add_torrent_params::tracker_tiers::begin
      Src: /src/libtorrent/src/session_handle.cpp:315,1
    - Dst: add_torrent_params::tracker_tiers::end
      Src: /src/libtorrent/src/session_handle.cpp:316,1
    - Dst: add_torrent_params::url_seeds::empty
      Src: /src/libtorrent/src/session_handle.cpp:321,1
    - Dst: url_seeds::clear
      Src: /src/libtorrent/src/session_handle.cpp:324,1
    - Dst: url_seeds::insert
      Src: /src/libtorrent/src/session_handle.cpp:326,1
    - Dst: url_seeds::end
      Src: /src/libtorrent/src/session_handle.cpp:326,1
    - Dst: add_torrent_params::url_seeds::begin
      Src: /src/libtorrent/src/session_handle.cpp:327,1
    - Dst: add_torrent_params::url_seeds::end
      Src: /src/libtorrent/src/session_handle.cpp:328,1
    - Dst: add_torrent_params::http_seeds::empty
      Src: /src/libtorrent/src/session_handle.cpp:333,1
    - Dst: http_seeds::clear
      Src: /src/libtorrent/src/session_handle.cpp:336,1
    - Dst: http_seeds::insert
      Src: /src/libtorrent/src/session_handle.cpp:338,1
    - Dst: http_seeds::end
      Src: /src/libtorrent/src/session_handle.cpp:338,1
    - Dst: add_torrent_params::http_seeds::begin
      Src: /src/libtorrent/src/session_handle.cpp:339,1
    - Dst: add_torrent_params::http_seeds::end
      Src: /src/libtorrent/src/session_handle.cpp:340,1
    - Dst: peers::swap
      Src: /src/libtorrent/src/session_handle.cpp:362,1
    - Dst: banned_peers::swap
      Src: /src/libtorrent/src/session_handle.cpp:363,1
    - Dst: unfinished_pieces::swap
      Src: /src/libtorrent/src/session_handle.cpp:365,1
    - Dst: have_pieces::swap
      Src: /src/libtorrent/src/session_handle.cpp:366,1
    - Dst: verified_pieces::swap
      Src: /src/libtorrent/src/session_handle.cpp:367,1
    - Dst: piece_priorities::swap
      Src: /src/libtorrent/src/session_handle.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:370,1
    - Dst: add_torrent_params::file_priorities::empty
      Src: /src/libtorrent/src/session_handle.cpp:379,1
    - Dst: file_priorities::empty
      Src: /src/libtorrent/src/session_handle.cpp:394,1
    - Dst: info_hash::is_all_zeros
      Src: /src/libtorrent/src/session_handle.cpp:398,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/session_handle.cpp:399,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/session_handle.cpp:399,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/src/session_handle.cpp:402,1
    - Dst: url::clear
      Src: /src/libtorrent/src/session_handle.cpp:403,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 405
    functionName: handle_backwards_compatible_resume_data
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - http_seeds::end
    - trackers::end
    - add_torrent_params::save_path::empty
    - url::clear
    - banned_peers::swap
    - add_torrent_params::url_seeds::end
    - url_seeds::end
    - add_torrent_params::tracker_tiers::begin
    - parse_magnet_uri
    - trackers::size
    - add_torrent_params::http_seeds::end
    - url_seeds::insert
    - have_pieces::swap
    - add_torrent_params::tracker_tiers::end
    - add_torrent_params::url_seeds::begin
    - resume_data::empty
    - tracker_tiers::resize
    - add_torrent_params::trackers::empty
    - add_torrent_params::file_priorities::empty
    - url_seeds::clear
    - add_torrent_params::url_seeds::empty
    - read_resume_data
    - unfinished_pieces::swap
    - piece_priorities::swap
    - string_begins_no_case
    - url::c_str
    - add_torrent_params::http_seeds::begin
    - tracker_tiers::insert
    - tracker_tiers::end
    - info_hash::is_all_zeros
    - http_seeds::insert
    - trackers::insert
    - add_torrent_params::trackers::end
    - add_torrent_params::http_seeds::empty
    - http_seeds::clear
    - peers::swap
    - verified_pieces::swap
    - add_torrent_params::trackers::begin
    - file_priorities::empty
    linkageType: ''
    returnType: void
    signature: void handle_backwards_compatible_resume_data(add_torrent_params& atp)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: resume_data::empty
      Src: /src/libtorrent/src/session_handle.cpp:287,1
    - Dst: read_resume_data
      Src: /src/libtorrent/src/session_handle.cpp:291,1
    - Dst: add_torrent_params::save_path::empty
      Src: /src/libtorrent/src/session_handle.cpp:298,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:300,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:305,1
    - Dst: add_torrent_params::trackers::empty
      Src: /src/libtorrent/src/session_handle.cpp:308,1
    - Dst: tracker_tiers::resize
      Src: /src/libtorrent/src/session_handle.cpp:310,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/session_handle.cpp:310,1
    - Dst: trackers::insert
      Src: /src/libtorrent/src/session_handle.cpp:311,1
    - Dst: trackers::end
      Src: /src/libtorrent/src/session_handle.cpp:311,1
    - Dst: add_torrent_params::trackers::begin
      Src: /src/libtorrent/src/session_handle.cpp:312,1
    - Dst: add_torrent_params::trackers::end
      Src: /src/libtorrent/src/session_handle.cpp:313,1
    - Dst: tracker_tiers::insert
      Src: /src/libtorrent/src/session_handle.cpp:314,1
    - Dst: tracker_tiers::end
      Src: /src/libtorrent/src/session_handle.cpp:314,1
    - Dst: add_torrent_params::tracker_tiers::begin
      Src: /src/libtorrent/src/session_handle.cpp:315,1
    - Dst: add_torrent_params::tracker_tiers::end
      Src: /src/libtorrent/src/session_handle.cpp:316,1
    - Dst: add_torrent_params::url_seeds::empty
      Src: /src/libtorrent/src/session_handle.cpp:321,1
    - Dst: url_seeds::clear
      Src: /src/libtorrent/src/session_handle.cpp:324,1
    - Dst: url_seeds::insert
      Src: /src/libtorrent/src/session_handle.cpp:326,1
    - Dst: url_seeds::end
      Src: /src/libtorrent/src/session_handle.cpp:326,1
    - Dst: add_torrent_params::url_seeds::begin
      Src: /src/libtorrent/src/session_handle.cpp:327,1
    - Dst: add_torrent_params::url_seeds::end
      Src: /src/libtorrent/src/session_handle.cpp:328,1
    - Dst: add_torrent_params::http_seeds::empty
      Src: /src/libtorrent/src/session_handle.cpp:333,1
    - Dst: http_seeds::clear
      Src: /src/libtorrent/src/session_handle.cpp:336,1
    - Dst: http_seeds::insert
      Src: /src/libtorrent/src/session_handle.cpp:338,1
    - Dst: http_seeds::end
      Src: /src/libtorrent/src/session_handle.cpp:338,1
    - Dst: add_torrent_params::http_seeds::begin
      Src: /src/libtorrent/src/session_handle.cpp:339,1
    - Dst: add_torrent_params::http_seeds::end
      Src: /src/libtorrent/src/session_handle.cpp:340,1
    - Dst: peers::swap
      Src: /src/libtorrent/src/session_handle.cpp:362,1
    - Dst: banned_peers::swap
      Src: /src/libtorrent/src/session_handle.cpp:363,1
    - Dst: unfinished_pieces::swap
      Src: /src/libtorrent/src/session_handle.cpp:365,1
    - Dst: have_pieces::swap
      Src: /src/libtorrent/src/session_handle.cpp:366,1
    - Dst: verified_pieces::swap
      Src: /src/libtorrent/src/session_handle.cpp:367,1
    - Dst: piece_priorities::swap
      Src: /src/libtorrent/src/session_handle.cpp:368,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:370,1
    - Dst: add_torrent_params::file_priorities::empty
      Src: /src/libtorrent/src/session_handle.cpp:379,1
    - Dst: file_priorities::empty
      Src: /src/libtorrent/src/session_handle.cpp:394,1
    - Dst: info_hash::is_all_zeros
      Src: /src/libtorrent/src/session_handle.cpp:398,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/session_handle.cpp:399,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/session_handle.cpp:399,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/src/session_handle.cpp:402,1
    - Dst: url::clear
      Src: /src/libtorrent/src/session_handle.cpp:403,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 405
    functionName: handle_backwards_compatible_resume_data
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - http_seeds::end
    - trackers::end
    - add_torrent_params::save_path::empty
    - url::clear
    - banned_peers::swap
    - add_torrent_params::url_seeds::end
    - url_seeds::end
    - add_torrent_params::tracker_tiers::begin
    - parse_magnet_uri
    - trackers::size
    - add_torrent_params::http_seeds::end
    - url_seeds::insert
    - have_pieces::swap
    - add_torrent_params::tracker_tiers::end
    - add_torrent_params::url_seeds::begin
    - resume_data::empty
    - tracker_tiers::resize
    - add_torrent_params::trackers::empty
    - add_torrent_params::file_priorities::empty
    - url_seeds::clear
    - add_torrent_params::url_seeds::empty
    - read_resume_data
    - unfinished_pieces::swap
    - piece_priorities::swap
    - string_begins_no_case
    - url::c_str
    - add_torrent_params::http_seeds::begin
    - tracker_tiers::insert
    - tracker_tiers::end
    - info_hash::is_all_zeros
    - http_seeds::insert
    - trackers::insert
    - add_torrent_params::trackers::end
    - add_torrent_params::http_seeds::empty
    - http_seeds::clear
    - peers::swap
    - verified_pieces::swap
    - add_torrent_params::trackers::begin
    - file_priorities::empty
    linkageType: ''
    returnType: void
    signature: void handle_backwards_compatible_resume_data(add_torrent_params& atp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: save_path::empty
      Src: /src/libtorrent/src/session_handle.cpp:415,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:416,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_handle.cpp:416,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:418,1
    - Dst: save_path::empty
      Src: /src/libtorrent/src/session_handle.cpp:418,1
    - Dst: info_hashes::has_v1
      Src: /src/libtorrent/src/session_handle.cpp:422,1
    - Dst: info_hashes::has_v2
      Src: /src/libtorrent/src/session_handle.cpp:422,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/session_handle.cpp:429,1
    - Dst: handle_backwards_compatible_resume_data
      Src: /src/libtorrent/src/session_handle.cpp:432,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:435,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session_handle.cpp:435,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 438
    functionName: session_handle::add_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - save_path::empty
    - aux::throw_ex<system_error>
    - std::make_shared<torrent_info>
    - std::move
    - error_code
    - session_handle::sync_call_ret
    - TORRENT_ASSERT_PRECOND
    - info_hashes::has_v2
    - handle_backwards_compatible_resume_data
    - info_hashes::has_v1
    - std::ref
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle session_handle::add_torrent(add_torrent_params&& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::add_torrent
      Src: /src/libtorrent/src/session_handle.cpp:442,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/src/session_handle.cpp:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: session_handle::add_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 1
    functionsReached:
    - add_torrent_params
    - session_handle::add_torrent
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle session_handle::add_torrent(add_torrent_params const&
      params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: save_path::empty
      Src: /src/libtorrent/src/session_handle.cpp:448,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_handle.cpp:450,1
    - Dst: info_hashes::has_v1
      Src: /src/libtorrent/src/session_handle.cpp:455,1
    - Dst: info_hashes::has_v2
      Src: /src/libtorrent/src/session_handle.cpp:455,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/session_handle.cpp:462,1
    - Dst: clear
      Src: /src/libtorrent/src/session_handle.cpp:464,1
    - Dst: handle_backwards_compatible_resume_data
      Src: /src/libtorrent/src/session_handle.cpp:466,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:468,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:468,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session_handle.cpp:468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' params'
    - ' ec'
    argTypes:
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 469
    functionName: session_handle::add_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 1
    functionsReached:
    - save_path::empty
    - std::make_shared<torrent_info>
    - std::move
    - error_code
    - session_handle::sync_call_ret
    - info_hashes::has_v2
    - handle_backwards_compatible_resume_data
    - info_hashes::has_v1
    - std::ref
    - clear
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle session_handle::add_torrent(add_torrent_params&& params,
      error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::add_torrent
      Src: /src/libtorrent/src/session_handle.cpp:473,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/src/session_handle.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - ' ec'
    argTypes:
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: session_handle::add_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 2
    functionsReached:
    - add_torrent_params
    - session_handle::add_torrent
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle session_handle::add_torrent(add_torrent_params const&
      params, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_add_torrent
      Src: /src/libtorrent/src/session_handle.cpp:478,1
    - Dst: add_torrent_params
      Src: /src/libtorrent/src/session_handle.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: session_handle::async_add_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 1
    functionsReached:
    - add_torrent_params
    - session_handle::async_add_torrent
    linkageType: ''
    returnType: void
    signature: void session_handle::async_add_torrent(add_torrent_params const& params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: save_path::empty
      Src: /src/libtorrent/src/session_handle.cpp:484,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:485,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_handle.cpp:485,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:487,1
    - Dst: save_path::empty
      Src: /src/libtorrent/src/session_handle.cpp:487,1
    - Dst: info_hashes::has_v1
      Src: /src/libtorrent/src/session_handle.cpp:491,1
    - Dst: info_hashes::has_v2
      Src: /src/libtorrent/src/session_handle.cpp:491,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/session_handle.cpp:498,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:504,1
    - Dst: add_torrent_params::add_torrent_params
      Src: /src/libtorrent/src/session_handle.cpp:504,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/session_handle.cpp:505,1
    - Dst: complete
      Src: /src/libtorrent/src/session_handle.cpp:506,1
    - Dst: handle_backwards_compatible_resume_data
      Src: /src/libtorrent/src/session_handle.cpp:509,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:512,1
    - Dst: auto::disarm
      Src: /src/libtorrent/src/session_handle.cpp:513,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 514
    functionName: session_handle::async_add_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 1
    functionsReached:
    - save_path::empty
    - aux::throw_ex<system_error>
    - std::make_shared<torrent_info>
    - std::move
    - libtorrent::aux::scope_end
    - auto::disarm
    - error_code
    - TORRENT_ASSERT_PRECOND
    - info_hashes::has_v2
    - handle_backwards_compatible_resume_data
    - info_hashes::has_v1
    - session_handle::async_call
    - add_torrent_params::add_torrent_params
    - complete
    linkageType: ''
    returnType: void
    signature: void session_handle::async_add_torrent(add_torrent_params&& params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/session_handle.cpp:527,1
    - Dst: type
      Src: /src/libtorrent/src/session_handle.cpp:529,1
    - Dst: bencode
      Src: /src/libtorrent/src/session_handle.cpp:531,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_handle.cpp:531,1
    - Dst: session_handle::add_torrent
      Src: /src/libtorrent/src/session_handle.cpp:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ' ti'
    - ' save_path'
    - ' resume_data'
    - storage_mode
    - add_paused
    argTypes:
    - torrent_info
    - std::string
    - entry
    - storage_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 537
    functionName: session_handle::add_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 3
    functionsReached:
    - std::make_shared<torrent_info>
    - session_handle::add_torrent
    - std::back_inserter
    - type
    - bencode
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle session_handle::add_torrent(\n\t\ttorrent_info const&
      ti\n\t\t, std::string const& save_path\n\t\t, entry const& resume_data\n\t\t,
      storage_mode_t storage_mode\n\t\t, bool const add_paused)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/session_handle.cpp:550,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:551,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_handle.cpp:551,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:553,1
    - Dst: empty
      Src: /src/libtorrent/src/session_handle.cpp:553,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/src/session_handle.cpp:557,1
    - Dst: type
      Src: /src/libtorrent/src/session_handle.cpp:567,1
    - Dst: bencode
      Src: /src/libtorrent/src/session_handle.cpp:569,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_handle.cpp:569,1
    - Dst: session_handle::add_torrent
      Src: /src/libtorrent/src/session_handle.cpp:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 8
    argNames:
    - tracker_url
    - ' info_hash'
    - name
    - ' save_path'
    - ' resume_data'
    - storage_mode
    - add_paused
    - userdata
    argTypes:
    - char*
    - sha1_hash
    - char*
    - std::string
    - entry
    - storage_mode_t
    - bool
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 572
    functionName: session_handle::add_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 4
    functionsReached:
    - add_torrent_params::trackers::push_back
    - aux::throw_ex<system_error>
    - session_handle::add_torrent
    - error_code
    - empty
    - TORRENT_ASSERT_PRECOND
    - std::back_inserter
    - type
    - bencode
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle session_handle::add_torrent(\n\t\tchar const* tracker_url\n\t\t,
      sha1_hash const& info_hash\n\t\t, char const* name\n\t\t, std::string const&
      save_path\n\t\t, entry const& resume_data\n\t\t, storage_mode_t storage_mode\n\t\t,
      bool const add_paused\n\t\t, client_data_t userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: session_handle::pause
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::pause()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: session_handle::resume
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::resume()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: session_handle::is_paused
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool session_handle::is_paused() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fun
    argTypes:
    - user_load_function_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: session_handle::set_load_function
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_load_function(user_load_function_t fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 600
    functionName: session_handle::status
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: session_status
    signature: session_status session_handle::status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:605,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:606,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: session_handle::start_dht
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::start_dht()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:612,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:613,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 614
    functionName: session_handle::stop_dht
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::stop_dht()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:621,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - dht::dht_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 625
    functionName: session_handle::set_dht_settings
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::set_dht_settings(dht::dht_settings const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:630,1
    - Dst: libtorrent::dht::dht_settings
      Src: /src/libtorrent/src/session_handle.cpp:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 634
    functionName: session_handle::get_dht_settings
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    - libtorrent::dht::dht_settings
    linkageType: ''
    returnType: dht::dht_settings
    signature: dht::dht_settings session_handle::get_dht_settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 644
    functionName: session_handle::is_dht_running
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool session_handle::is_dht_running() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:649,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - dht::dht_storage_constructor_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: session_handle::set_dht_storage
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::set_dht_storage(dht::dht_storage_constructor_type
      sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:658,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - std::pair<std::string, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 662
    functionName: session_handle::add_dht_node
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::add_dht_node(std::pair<std::string, int> const&
      node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:668,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - std::pair<std::string, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: session_handle::add_dht_router
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::add_dht_router(std::pair<std::string, int> const&
      node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:678,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 682
    functionName: session_handle::dht_get_item
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::dht_get_item(sha1_hash const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:688,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:690,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - key
    - salt
    argTypes:
    - std::array<char, 32>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 693
    functionName: session_handle::dht_get_item
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void session_handle::dht_get_item(std::array<char, 32> key\n\t\t,
      std::string salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/session_handle.cpp:700,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_handle.cpp:700,1
    - Dst: hasher
      Src: /src/libtorrent/src/session_handle.cpp:701,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 707
    functionName: session_handle::dht_put_item
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - std::back_inserter
    - bencode
    - hasher
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash session_handle::dht_put_item(entry data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:715,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:717,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:718,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - cb
    - salt
    argTypes:
    - std::array<char, 32>
    - "std::function<void(entry&, std::array<char,64>&\n\t\t\t, std::int64_t&, std::string
      const&)>"
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 721
    functionName: session_handle::dht_put_item
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void session_handle::dht_put_item(std::array<char, 32> key\n\t\t,
      std::function<void(entry&, std::array<char,64>&\n\t\t\t, std::int64_t&, std::string
      const&)> cb\n\t\t, std::string salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:726,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' info_hash'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 730
    functionName: session_handle::dht_get_peers
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::dht_get_peers(sha1_hash const& info_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:736,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:738,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:739,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' info_hash'
    - port
    - flags
    argTypes:
    - sha1_hash
    - int
    - dht::announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 742
    functionName: session_handle::dht_announce
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void session_handle::dht_announce(sha1_hash const& info_hash, int
      port\n\t\t, dht::announce_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:747,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 751
    functionName: session_handle::dht_live_nodes
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::dht_live_nodes(sha1_hash const& nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:756,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:758,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' target'
    argTypes:
    - udp::endpoint
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 761
    functionName: session_handle::dht_sample_infohashes
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::dht_sample_infohashes(udp::endpoint const& ep,
      sha1_hash const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:768,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:770,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:771,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - userdata
    argTypes:
    - udp::endpoint
    - entry
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 774
    functionName: session_handle::dht_direct_request
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void session_handle::dht_direct_request(udp::endpoint const& ep, entry
      const& e\n\t\t, client_data_t userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:780,1
    - Dst: entry
      Src: /src/libtorrent/src/session_handle.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 784
    functionName: session_handle::dht_state
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    - entry
    linkageType: ''
    returnType: entry
    signature: entry session_handle::dht_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:789,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' startup_state'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 793
    functionName: session_handle::start_dht
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::start_dht(entry const& startup_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:799,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::function<std::shared_ptr<torrent_plugin>(torrent_handle const&, client_data_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 803
    functionName: session_handle::add_extension
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::add_extension(std::function<std::shared_ptr<torrent_plugin>(torrent_handle
      const&, client_data_t)> ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:808,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_handle.cpp:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 812
    functionName: session_handle::add_extension
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_handle::add_extension(std::shared_ptr<plugin> ext)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/session_handle.cpp:818,1
    - Dst: bencode
      Src: /src/libtorrent/src/session_handle.cpp:820,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_handle.cpp:820,1
    - Dst: bdecode
      Src: /src/libtorrent/src/session_handle.cpp:826,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_handle.cpp:826,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_handle.cpp:828,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:830,1
    - Dst: session_handle::sync_call
      Src: /src/libtorrent/src/session_handle.cpp:832,1
    - Dst: session_handle::sync_call
      Src: /src/libtorrent/src/session_handle.cpp:839,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/src/session_handle.cpp:839,1
    - Dst: std::make_shared<ip_filter>
      Src: /src/libtorrent/src/session_handle.cpp:846,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:846,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:847,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:847,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:852,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:857,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:864,1
    - Dst: to_string
      Src: /src/libtorrent/src/session_handle.cpp:864,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:865,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:865,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:876,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:882,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:888,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:894,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:899,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:904,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:909,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:914,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:919,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:924,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:929,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:934,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:941,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:942,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:942,1
    - Dst: strlen
      Src: /src/libtorrent/src/session_handle.cpp:952,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_handle.cpp:955,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/session_handle.cpp:955,1
    - Dst: make_address
      Src: /src/libtorrent/src/session_handle.cpp:955,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_handle.cpp:955,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:958,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:959,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:960,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:961,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:961,1
    - Dst: is_valid
      Src: /src/libtorrent/src/session_handle.cpp:967,1
    - Dst: throw_invalid_handle
      Src: /src/libtorrent/src/session_handle.cpp:971,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:973,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:980,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:981,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:982,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:983,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:985,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:985,1
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:990,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/src/session_handle.cpp:993,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/session_handle.cpp:994,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/src/session_handle.cpp:994,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/session_handle.cpp:995,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/src/session_handle.cpp:995,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/session_handle.cpp:996,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/src/session_handle.cpp:996,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1003,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1003,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1004,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1006,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1006,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1007,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1009,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1009,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1010,1
    - Dst: std::make_shared<settings_pack>
      Src: /src/libtorrent/src/session_handle.cpp:1013,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1014,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1019,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1019,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1020,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1022,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1022,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1023,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1025,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1025,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1026,1
    - Dst: std::make_shared<settings_pack>
      Src: /src/libtorrent/src/session_handle.cpp:1029,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1029,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1030,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1035,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:1042,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:1043,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1045,1
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:1051,1
    - Dst: settings_pack::get_str
      Src: /src/libtorrent/src/session_handle.cpp:1052,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_handle.cpp:1053,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/src/session_handle.cpp:1053,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:1060,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:1061,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:1062,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:1063,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:1064,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1065,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1066,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1068,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1068,1
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:1073,1
    - Dst: proxy_settings
      Src: /src/libtorrent/src/session_handle.cpp:1074,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1079,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1084,1
    - Dst: session_handle::set_proxy
      Src: /src/libtorrent/src/session_handle.cpp:1089,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1102,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1104,1
    - Dst: session_handle::proxy
      Src: /src/libtorrent/src/session_handle.cpp:1109,1
    - Dst: session_handle::proxy
      Src: /src/libtorrent/src/session_handle.cpp:1114,1
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:1119,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/src/session_handle.cpp:1120,1
    - Dst: proxy_settings
      Src: /src/libtorrent/src/session_handle.cpp:1121,1
    - Dst: proxy_settings
      Src: /src/libtorrent/src/session_handle.cpp:1121,1
    - Dst: session_handle::proxy
      Src: /src/libtorrent/src/session_handle.cpp:1131,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1136,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1141,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1146,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1151,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1158,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1163,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1168,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1173,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1178,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1183,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1190,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1195,1
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:1203,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:1204,1
    - Dst: std::shared_ptr::pop_alerts
      Src: /src/libtorrent/src/session_handle.cpp:1205,1
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:1210,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:1211,1
    - Dst: std::shared_ptr::wait_for_alert
      Src: /src/libtorrent/src/session_handle.cpp:1212,1
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:1217,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:1218,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/session_handle.cpp:1219,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1225,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:1231,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1232,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1232,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/session_handle.cpp:1237,1
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:1237,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1243,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1244,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1244,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1250,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1251,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1251,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1257,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1258,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1258,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1264,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1265,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1265,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1271,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1272,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1272,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1278,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1279,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1279,1
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1286,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1291,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1296,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 196
    argCount: 2
    argNames:
    - ' ses_state'
    - flags
    argTypes:
    - entry
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 1299
    functionName: session_handle::load_state
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - session_handle::sync_call
    - std::vector::size
    - std::move
    - session_handle::apply_settings
    - session_handle::set_proxy
    - is_valid
    - std::uint32_t
    - session_handle::async_call
    - has_val
    - strlen
    - bdecode
    - session_handle::proxy
    - aux::throw_ex<system_error>
    - std::uint8_t
    - std::uint16_t
    - session_handle::sync_call_ret
    - print_endpoint
    - get_int
    - make_address
    - type
    - settings_pack::set_bool
    - TORRENT_ASSERT
    - throw_invalid_handle
    - lock
    - std::shared_ptr::pop_alerts
    - settings_pack::get_int
    - peer_conn::write_have_all
    - bencode
    - session_handle::get_settings
    - settings_pack::get_bool
    - proxy_settings
    - std::shared_ptr::wait_for_alert
    - settings_pack::get_str
    - std::make_shared<settings_pack>
    - TORRENT_ASSERT_PRECOND
    - std::shared_ptr::alerts
    - settings_pack::set_str
    - std::back_inserter
    - local_endpoint
    - settings_pack::set_int
    - std::make_shared<ip_filter>
    linkageType: ''
    returnType: void
    signature: "void session_handle::load_state(entry const& ses_state\n\t\t, save_state_flags_t
      const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call
      Src: /src/libtorrent/src/session_handle.cpp:839,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/src/session_handle.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 841
    functionName: session_handle::state
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call
    - peer_conn::write_have_all
    linkageType: ''
    returnType: entry
    signature: entry session_handle::state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<ip_filter>
      Src: /src/libtorrent/src/session_handle.cpp:846,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:846,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:847,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - ip_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 848
    functionName: session_handle::set_ip_filter
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - std::move
    - std::make_shared<ip_filter>
    linkageType: ''
    returnType: void
    signature: void session_handle::set_ip_filter(ip_filter f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 853
    functionName: session_handle::get_ip_filter
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: ip_filter
    signature: ip_filter session_handle::get_ip_filter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - port_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 858
    functionName: session_handle::set_port_filter
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_port_filter(port_filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:864,1
    - Dst: to_string
      Src: /src/libtorrent/src/session_handle.cpp:864,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:865,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 866
    functionName: session_handle::set_peer_id
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - to_string
    - settings_pack::set_str
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::set_peer_id(peer_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 872
    functionName: session_handle::set_key
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle::set_key(std::uint32_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 877
    functionName: session_handle::id
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: peer_id
    signature: peer_id session_handle::id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 884
    functionName: session_handle::listen_port
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short session_handle::listen_port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: session_handle::ssl_listen_port
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short session_handle::ssl_listen_port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 892
    functionDepth: 3
    functionLinenumber: 892
    functionLinenumberEnd: 895
    functionName: session_handle::is_listening
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: bool
    signature: bool session_handle::is_listening() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - ip_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 900
    functionName: session_handle::set_peer_class_filter
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_peer_class_filter(ip_filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 902
    functionDepth: 3
    functionLinenumber: 902
    functionLinenumberEnd: 905
    functionName: session_handle::get_peer_class_filter
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: ip_filter
    signature: ip_filter session_handle::get_peer_class_filter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - peer_class_type_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 910
    functionName: session_handle::set_peer_class_type_filter
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_peer_class_type_filter(peer_class_type_filter
      const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 3
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: session_handle::get_peer_class_type_filter
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: peer_class_type_filter
    signature: peer_class_type_filter session_handle::get_peer_class_type_filter()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 917
    functionDepth: 3
    functionLinenumber: 917
    functionLinenumberEnd: 920
    functionName: session_handle::create_peer_class
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: peer_class_t
    signature: peer_class_t session_handle::create_peer_class(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cid
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 925
    functionName: session_handle::delete_peer_class
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::delete_peer_class(peer_class_t cid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cid
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 930
    functionName: session_handle::get_peer_class
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: peer_class_info
    signature: peer_class_info session_handle::get_peer_class(peer_class_t cid) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cid
    - ' pci'
    argTypes:
    - peer_class_t
    - peer_class_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 935
    functionName: session_handle::set_peer_class
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_peer_class(peer_class_t cid, peer_class_info
      const& pci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:941,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:942,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interfaces
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 943
    functionName: session_handle::use_interfaces
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_str
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::use_interfaces(char const* interfaces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtorrent/src/session_handle.cpp:952,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_handle.cpp:955,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/session_handle.cpp:955,1
    - Dst: make_address
      Src: /src/libtorrent/src/session_handle.cpp:955,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_handle.cpp:955,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:958,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:959,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:960,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:961,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ' port_range'
    - ' ec'
    - net_interface
    - flags
    argTypes:
    - std::pair<int, int>
    - error_code
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 962
    functionName: session_handle::listen_on
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::uint16_t
    - session_handle::apply_settings
    - print_endpoint
    - settings_pack::set_bool
    - local_endpoint
    - settings_pack::set_str
    - make_address
    - strlen
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: "void session_handle::listen_on(\n\t\tstd::pair<int, int> const& port_range\n\t\t,
      error_code& ec\n\t\t, const char* net_interface, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/libtorrent/src/session_handle.cpp:967,1
    - Dst: throw_invalid_handle
      Src: /src/libtorrent/src/session_handle.cpp:971,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' h'
    - options
    argTypes:
    - torrent_handle
    - remove_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 974
    functionName: session_handle::remove_torrent
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    - throw_invalid_handle
    - is_valid
    linkageType: ''
    returnType: void
    signature: void session_handle::remove_torrent(const torrent_handle& h, remove_flags_t
      const options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:980,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:981,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:982,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:983,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:985,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - pe_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 986
    functionName: session_handle::set_pe_settings
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void session_handle::set_pe_settings(pe_settings const& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:990,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/src/session_handle.cpp:993,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/session_handle.cpp:994,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/src/session_handle.cpp:994,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/session_handle.cpp:995,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/src/session_handle.cpp:995,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/session_handle.cpp:996,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/src/session_handle.cpp:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 998
    functionName: session_handle::get_pe_settings
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::get_int
    - settings_pack::get_bool
    - session_handle::get_settings
    - std::uint8_t
    linkageType: ''
    returnType: pe_settings
    signature: pe_settings session_handle::get_pe_settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1003,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1003,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1004,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1006,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1006,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1007,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1009,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1009,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1010,1
    - Dst: std::make_shared<settings_pack>
      Src: /src/libtorrent/src/session_handle.cpp:1013,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1015
    functionName: session_handle::apply_settings
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 7
    functionsReached:
    - std::make_shared<settings_pack>
    - TORRENT_ASSERT_PRECOND
    - session_handle::async_call
    - get_int
    - has_val
    linkageType: ''
    returnType: void
    signature: void session_handle::apply_settings(settings_pack const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1019,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1019,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1020,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1022,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1022,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1023,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_handle.cpp:1025,1
    - Dst: has_val
      Src: /src/libtorrent/src/session_handle.cpp:1025,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_handle.cpp:1026,1
    - Dst: std::make_shared<settings_pack>
      Src: /src/libtorrent/src/session_handle.cpp:1029,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1029,1
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1030,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1031
    functionName: session_handle::apply_settings
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 7
    functionsReached:
    - std::move
    - std::make_shared<settings_pack>
    - TORRENT_ASSERT_PRECOND
    - get_int
    - has_val
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::apply_settings(settings_pack&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1033
    functionDepth: 3
    functionLinenumber: 1033
    functionLinenumberEnd: 1036
    functionName: session_handle::get_settings
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 2
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack session_handle::get_settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:1042,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:1043,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1046
    functionName: session_handle::set_i2p_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_int
    - settings_pack::set_str
    linkageType: ''
    returnType: void
    signature: void session_handle::set_i2p_proxy(proxy_settings const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:1051,1
    - Dst: settings_pack::get_str
      Src: /src/libtorrent/src/session_handle.cpp:1052,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_handle.cpp:1053,1
    - Dst: settings_pack::get_int
      Src: /src/libtorrent/src/session_handle.cpp:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1048
    functionDepth: 4
    functionLinenumber: 1048
    functionLinenumberEnd: 1055
    functionName: session_handle::i2p_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - settings_pack::get_str
    - settings_pack::get_int
    - session_handle::get_settings
    linkageType: ''
    returnType: proxy_settings
    signature: proxy_settings session_handle::i2p_proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:1060,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:1061,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_handle.cpp:1062,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:1063,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:1064,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1065,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1066,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1068,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1069
    functionName: session_handle::set_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - session_handle::apply_settings
    - settings_pack::set_bool
    - settings_pack::set_str
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void session_handle::set_proxy(proxy_settings const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:1073,1
    - Dst: proxy_settings
      Src: /src/libtorrent/src/session_handle.cpp:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 4
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: session_handle::proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 1
    functionsReached:
    - proxy_settings
    - session_handle::get_settings
    linkageType: ''
    returnType: proxy_settings
    signature: proxy_settings session_handle::proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1077
    functionDepth: 3
    functionLinenumber: 1077
    functionLinenumberEnd: 1080
    functionName: session_handle::num_uploads
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int session_handle::num_uploads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1082
    functionDepth: 3
    functionLinenumber: 1082
    functionLinenumberEnd: 1085
    functionName: session_handle::num_connections
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int session_handle::num_connections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::set_proxy
      Src: /src/libtorrent/src/session_handle.cpp:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1090
    functionName: session_handle::set_peer_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::set_proxy
    linkageType: ''
    returnType: void
    signature: void session_handle::set_peer_proxy(proxy_settings const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1095
    functionName: session_handle::set_web_seed_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle::set_web_seed_proxy(proxy_settings const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1102,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1097
    functionDepth: 2
    functionLinenumber: 1097
    functionLinenumberEnd: 1105
    functionName: session_handle::set_tracker_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    linkageType: ''
    returnType: void
    signature: void session_handle::set_tracker_proxy(proxy_settings const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::proxy
      Src: /src/libtorrent/src/session_handle.cpp:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 5
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: session_handle::peer_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::proxy
    linkageType: ''
    returnType: proxy_settings
    signature: proxy_settings session_handle::peer_proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::proxy
      Src: /src/libtorrent/src/session_handle.cpp:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1112
    functionDepth: 5
    functionLinenumber: 1112
    functionLinenumberEnd: 1115
    functionName: session_handle::web_seed_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::proxy
    linkageType: ''
    returnType: proxy_settings
    signature: proxy_settings session_handle::web_seed_proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:1119,1
    - Dst: settings_pack::get_bool
      Src: /src/libtorrent/src/session_handle.cpp:1120,1
    - Dst: proxy_settings
      Src: /src/libtorrent/src/session_handle.cpp:1121,1
    - Dst: proxy_settings
      Src: /src/libtorrent/src/session_handle.cpp:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1117
    functionDepth: 4
    functionLinenumber: 1117
    functionLinenumberEnd: 1122
    functionName: session_handle::tracker_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - proxy_settings
    - settings_pack::get_bool
    - session_handle::get_settings
    linkageType: ''
    returnType: proxy_settings
    signature: proxy_settings session_handle::tracker_proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1127
    functionName: session_handle::set_dht_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle::set_dht_proxy(proxy_settings const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::proxy
      Src: /src/libtorrent/src/session_handle.cpp:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1129
    functionDepth: 5
    functionLinenumber: 1129
    functionLinenumberEnd: 1132
    functionName: session_handle::dht_proxy
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::proxy
    linkageType: ''
    returnType: proxy_settings
    signature: proxy_settings session_handle::dht_proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1134
    functionDepth: 3
    functionLinenumber: 1134
    functionLinenumberEnd: 1137
    functionName: session_handle::upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int session_handle::upload_rate_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1139
    functionDepth: 3
    functionLinenumber: 1139
    functionLinenumberEnd: 1142
    functionName: session_handle::download_rate_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int session_handle::download_rate_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1144
    functionDepth: 3
    functionLinenumber: 1144
    functionLinenumberEnd: 1147
    functionName: session_handle::local_upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int session_handle::local_upload_rate_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1152
    functionName: session_handle::local_download_rate_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int session_handle::local_download_rate_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1154
    functionName: session_handle::max_half_open_connections
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int session_handle::max_half_open_connections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes_per_second
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1159
    functionName: session_handle::set_local_upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_local_upload_rate_limit(int bytes_per_second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes_per_second
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1164
    functionName: session_handle::set_local_download_rate_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_local_download_rate_limit(int bytes_per_second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes_per_second
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1169
    functionName: session_handle::set_upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_upload_rate_limit(int bytes_per_second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes_per_second
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1174
    functionName: session_handle::set_download_rate_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_download_rate_limit(int bytes_per_second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1179
    functionName: session_handle::set_max_connections
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_max_connections(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1184
    functionName: session_handle::set_max_uploads
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::set_max_uploads(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1186
    functionName: session_handle::set_max_half_open_connections
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle::set_max_half_open_connections(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1188
    functionDepth: 3
    functionLinenumber: 1188
    functionLinenumberEnd: 1191
    functionName: session_handle::max_uploads
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int session_handle::max_uploads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1196
    functionName: session_handle::max_connections
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: int
    signature: int session_handle::max_connections() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:1203,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:1204,1
    - Dst: std::shared_ptr::pop_alerts
      Src: /src/libtorrent/src/session_handle.cpp:1205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - alerts
    argTypes:
    - std::vector<alert*>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1206
    functionName: session_handle::pop_alerts
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::pop_alerts
    - lock
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: void session_handle::pop_alerts(std::vector<alert*>* alerts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:1210,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:1211,1
    - Dst: std::shared_ptr::wait_for_alert
      Src: /src/libtorrent/src/session_handle.cpp:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - max_wait
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1213
    functionName: session_handle::wait_for_alert
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::wait_for_alert
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: alert
    signature: alert * session_handle::wait_for_alert(time_duration max_wait)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/session_handle.cpp:1217,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/session_handle.cpp:1218,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/session_handle.cpp:1219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1220
    functionName: session_handle::set_alert_notify
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::alerts
    - lock
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: void session_handle::set_alert_notify(std::function<void()> const&
      fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue_size_limit_
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1223
    functionDepth: 3
    functionLinenumber: 1223
    functionLinenumberEnd: 1226
    functionName: session_handle::set_alert_queue_size_limit
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: size_t
    signature: size_t session_handle::set_alert_queue_size_limit(size_t queue_size_limit_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_handle.cpp:1231,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1232,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1233
    functionName: session_handle::set_alert_mask
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_int
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::set_alert_mask(std::uint32_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/session_handle.cpp:1237,1
    - Dst: session_handle::get_settings
      Src: /src/libtorrent/src/session_handle.cpp:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1235
    functionDepth: 4
    functionLinenumber: 1235
    functionLinenumberEnd: 1238
    functionName: session_handle::get_alert_mask
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - std::uint32_t
    - session_handle::get_settings
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t session_handle::get_alert_mask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1243,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1244,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1240
    functionDepth: 2
    functionLinenumber: 1240
    functionLinenumberEnd: 1245
    functionName: session_handle::start_lsd
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::start_lsd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1250,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1251,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1247
    functionDepth: 2
    functionLinenumber: 1247
    functionLinenumberEnd: 1252
    functionName: session_handle::stop_lsd
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::stop_lsd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1257,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1258,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1254
    functionDepth: 2
    functionLinenumber: 1254
    functionLinenumberEnd: 1259
    functionName: session_handle::start_upnp
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::start_upnp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1264,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1265,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1261
    functionDepth: 2
    functionLinenumber: 1261
    functionLinenumberEnd: 1266
    functionName: session_handle::stop_upnp
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::stop_upnp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1271,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1272,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1268
    functionDepth: 2
    functionLinenumber: 1268
    functionLinenumberEnd: 1273
    functionName: session_handle::start_natpmp
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::start_natpmp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_handle.cpp:1278,1
    - Dst: session_handle::apply_settings
      Src: /src/libtorrent/src/session_handle.cpp:1279,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_handle.cpp:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1280
    functionName: session_handle::stop_natpmp
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::apply_settings
    - settings_pack::set_bool
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_handle::stop_natpmp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::sync_call_ret
      Src: /src/libtorrent/src/session_handle.cpp:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - external_port
    - local_port
    argTypes:
    - portmap_protocol
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1283
    functionDepth: 3
    functionLinenumber: 1283
    functionLinenumberEnd: 1287
    functionName: session_handle::add_port_mapping
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::sync_call_ret
    linkageType: ''
    returnType: std::vector<port_mapping_t>
    signature: "std::vector<port_mapping_t> session_handle::add_port_mapping(portmap_protocol
      const t\n\t\t, int external_port, int local_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1292
    functionName: session_handle::delete_port_mapping
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::delete_port_mapping(port_mapping_t handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_handle::async_call
      Src: /src/libtorrent/src/session_handle.cpp:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - reopen_network_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1297
    functionName: session_handle::reopen_network_sockets
    functionSourceFile: /src/libtorrent/src/session_handle.cpp
    functionUses: 0
    functionsReached:
    - session_handle::async_call
    linkageType: ''
    returnType: void
    signature: void session_handle::reopen_network_sockets(reopen_network_flags_t
      const options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/lsd.cpp:64,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/lsd.cpp:65,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/lsd.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dst
    - len
    - listen_port
    - info_hash_hex
    - cookie
    - host
    argTypes:
    - char*
    - int
    - int
    - char*
    - std::uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: libtorrent::render_lsd_packet
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::snprintf
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: int
    signature: "int render_lsd_packet(char* dst, int const len, int const listen_port\n\t,
      char const* info_hash_hex, std::uint32_t const cookie, char const* host)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/lsd.cpp:64,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/lsd.cpp:65,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/lsd.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dst
    - len
    - listen_port
    - info_hash_hex
    - cookie
    - host
    argTypes:
    - char*
    - int
    - int
    - char*
    - std::uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: libtorrent::render_lsd_packet
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::snprintf
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: int
    signature: "int render_lsd_packet(char* dst, int const len, int const listen_port\n\t,
      char const* info_hash_hex, std::uint32_t const cookie, char const* host)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/lsd.cpp:82,1
    - Dst: std::uintptr_t
      Src: /src/libtorrent/src/lsd.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ios'
    - ' cb'
    - listen_address
    - netmask
    argTypes:
    - io_context
    - aux::lsd_callback
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: libtorrent::lsd::lsd
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - std::uintptr_t
    - random
    linkageType: ''
    returnType: void
    signature: "void lsd::lsd(io_context& ios, aux::lsd_callback& cb\n\t, address
      const listen_address, address const netmask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_log_lsd
      Src: /src/libtorrent/src/lsd.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: libtorrent::lsd::should_log
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - should_log_lsd
    linkageType: ''
    returnType: bool
    signature: bool lsd::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lsd::should_log
      Src: /src/libtorrent/src/lsd.cpp:95,1
    - Dst: va_start
      Src: /src/libtorrent/src/lsd.cpp:97,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/lsd.cpp:100,1
    - Dst: va_end
      Src: /src/libtorrent/src/lsd.cpp:101,1
    - Dst: log_lsd
      Src: /src/libtorrent/src/lsd.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: libtorrent::lsd::debug_log
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - log_lsd
    - va_end
    - libtorrent::lsd::should_log
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void lsd::debug_log(char const* fmt, ...) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/lsd.cpp:115,1
    - Dst: open
      Src: /src/libtorrent/src/lsd.cpp:116,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/lsd.cpp:116,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/lsd.cpp:116,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:119,1
    - Dst: udp::socket::reuse_address
      Src: /src/libtorrent/src/lsd.cpp:119,1
    - Dst: bind
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: address
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: address
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: address_v6::any
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:125,1
    - Dst: join_group
      Src: /src/libtorrent/src/lsd.cpp:125,1
    - Dst: to_v4
      Src: /src/libtorrent/src/lsd.cpp:125,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:127,1
    - Dst: join_group
      Src: /src/libtorrent/src/lsd.cpp:127,1
    - Dst: to_v6
      Src: /src/libtorrent/src/lsd.cpp:127,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:129,1
    - Dst: hops
      Src: /src/libtorrent/src/lsd.cpp:129,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:131,1
    - Dst: enable_loopback
      Src: /src/libtorrent/src/lsd.cpp:131,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:135,1
    - Dst: outbound_interface
      Src: /src/libtorrent/src/lsd.cpp:135,1
    - Dst: to_v4
      Src: /src/libtorrent/src/lsd.cpp:135,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:139,1
    - Dst: async_receive_from
      Src: /src/libtorrent/src/lsd.cpp:140,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/lsd.cpp:140,1
    - Dst: std::bind
      Src: /src/libtorrent/src/lsd.cpp:141,1
    - Dst: self
      Src: /src/libtorrent/src/lsd.cpp:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 142
    functionName: libtorrent::lsd::start
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - udp::socket::reuse_address
    - self
    - set_option
    - bind
    - ADD_OUTSTANDING_ASYNC
    - enable_loopback
    - outbound_interface
    - rand_v6
    - async_receive_from
    - to_v4
    - address
    - hops
    - open
    - address_v4::any
    - to_v6
    - join_group
    - std::bind
    - rand_v4
    - address_v6::any
    - both_sides_from_store_buffer
    - local_endpoint
    - is_v4
    linkageType: ''
    returnType: void
    signature: void lsd::start(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: lsd::~lsd()
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lsd::~lsd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lsd::announce_impl
      Src: /src/libtorrent/src/lsd.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ih'
    - listen_port
    argTypes:
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: libtorrent::lsd::announce
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::lsd::announce_impl
    linkageType: ''
    returnType: void
    signature: void lsd::announce(sha1_hash const& ih, int listen_port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/lsd.cpp:161,1
    - Dst: render_lsd_packet
      Src: /src/libtorrent/src/lsd.cpp:165,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/lsd.cpp:165,1
    - Dst: address
      Src: /src/libtorrent/src/lsd.cpp:168,1
    - Dst: address
      Src: /src/libtorrent/src/lsd.cpp:168,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:172,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/lsd.cpp:172,1
    - Dst: to_string
      Src: /src/libtorrent/src/lsd.cpp:173,1
    - Dst: send_to
      Src: /src/libtorrent/src/lsd.cpp:176,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/lsd.cpp:176,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/lsd.cpp:176,1
    - Dst: libtorrent::lsd::should_log
      Src: /src/libtorrent/src/lsd.cpp:182,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:184,1
    - Dst: error_code::value
      Src: /src/libtorrent/src/lsd.cpp:184,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/lsd.cpp:185,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:196,1
    - Dst: expires_after
      Src: /src/libtorrent/src/lsd.cpp:197,1
    - Dst: seconds
      Src: /src/libtorrent/src/lsd.cpp:197,1
    - Dst: async_wait
      Src: /src/libtorrent/src/lsd.cpp:198,1
    - Dst: std::bind
      Src: /src/libtorrent/src/lsd.cpp:198,1
    - Dst: self
      Src: /src/libtorrent/src/lsd.cpp:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ' ih'
    - listen_port
    - retry_count
    argTypes:
    - sha1_hash
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 200
    functionName: libtorrent::lsd::announce_impl
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 1
    functionsReached:
    - error_code::value
    - to_string
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - libtorrent::lsd::should_log
    - libtorrent::aux::to_hex
    - send_to
    - libtorrent::lsd::debug_log
    - seconds
    - static_cast<std::size_t>
    - expires_after
    - both_sides_from_store_buffer
    - error_code::message
    - self
    - address
    - is_v4
    - render_lsd_packet
    linkageType: ''
    returnType: void
    signature: "void lsd::announce_impl(sha1_hash const& ih, int const listen_port\n\t,
      int retry_count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:205,1
    - Dst: libtorrent::lsd::announce_impl
      Src: /src/libtorrent/src/lsd.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' e'
    - ' info_hash'
    - listen_port
    - retry_count
    argTypes:
    - error_code
    - sha1_hash
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: libtorrent::lsd::resend_announce
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - COMPLETE_ASYNC
    - libtorrent::lsd::announce_impl
    linkageType: ''
    returnType: void
    signature: "void lsd::resend_announce(error_code const& e, sha1_hash const& info_hash\n\t,
      int listen_port, int retry_count)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:213,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:217,1
    - Dst: message
      Src: /src/libtorrent/src/lsd.cpp:217,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/lsd.cpp:226,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:227,1
    - Dst: async_receive_from
      Src: /src/libtorrent/src/lsd.cpp:228,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/lsd.cpp:228,1
    - Dst: std::bind
      Src: /src/libtorrent/src/lsd.cpp:229,1
    - Dst: self
      Src: /src/libtorrent/src/lsd.cpp:229,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/src/lsd.cpp:232,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/lsd.cpp:232,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:236,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/lsd.cpp:237,1
    - Dst: http_parser::incoming
      Src: /src/libtorrent/src/lsd.cpp:245,1
    - Dst: data
      Src: /src/libtorrent/src/lsd.cpp:245,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/lsd.cpp:245,1
    - Dst: http_parser::header_finished
      Src: /src/libtorrent/src/lsd.cpp:247,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:250,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/lsd.cpp:255,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:258,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/lsd.cpp:258,1
    - Dst: http_parser::header
      Src: /src/libtorrent/src/lsd.cpp:263,1
    - Dst: empty
      Src: /src/libtorrent/src/lsd.cpp:264,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:267,1
    - Dst: std::strtol
      Src: /src/libtorrent/src/lsd.cpp:272,1
    - Dst: c_str
      Src: /src/libtorrent/src/lsd.cpp:272,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/lsd.cpp:273,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:276,1
    - Dst: c_str
      Src: /src/libtorrent/src/lsd.cpp:276,1
    - Dst: http_parser::headers
      Src: /src/libtorrent/src/lsd.cpp:281,1
    - Dst: find
      Src: /src/libtorrent/src/lsd.cpp:283,1
    - Dst: end
      Src: /src/libtorrent/src/lsd.cpp:284,1
    - Dst: std::strtoul
      Src: /src/libtorrent/src/lsd.cpp:288,1
    - Dst: auto::second::c_str
      Src: /src/libtorrent/src/lsd.cpp:288,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:292,1
    - Dst: equal_range
      Src: /src/libtorrent/src/lsd.cpp:299,1
    - Dst: size
      Src: /src/libtorrent/src/lsd.cpp:303,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:306,1
    - Dst: c_str
      Src: /src/libtorrent/src/lsd.cpp:307,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/lsd.cpp:313,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/lsd.cpp:313,1
    - Dst: sha1_hash::is_all_zeros
      Src: /src/libtorrent/src/lsd.cpp:315,1
    - Dst: libtorrent::lsd::should_log
      Src: /src/libtorrent/src/lsd.cpp:318,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:320,1
    - Dst: print_address
      Src: /src/libtorrent/src/lsd.cpp:321,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/lsd.cpp:321,1
    - Dst: c_str
      Src: /src/libtorrent/src/lsd.cpp:322,1
    - Dst: on_lsd_peer
      Src: /src/libtorrent/src/lsd.cpp:326,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/lsd.cpp:326,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/lsd.cpp:326,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/lsd.cpp:326,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - ' ec'
    - len
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 329
    functionName: libtorrent::lsd::on_announce
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - empty
    - self
    - libtorrent::lsd::should_log
    - data
    - ADD_OUTSTANDING_ASYNC
    - std::strtoul
    - libtorrent::aux::scope_end
    - udp::endpoint::address
    - async_receive_from
    - http_parser::headers
    - std::uint16_t
    - message
    - end
    - http_parser::header
    - COMPLETE_ASYNC
    - std::strtol
    - print_address
    - equal_range
    - auto::second::c_str
    - libtorrent::aux::max
    - sha1_hash::is_all_zeros
    - http_parser::incoming
    - http_parser::header_finished
    - sha1_hash::data
    - size
    - std::ptrdiff_t
    - on_lsd_peer
    - std::bind
    - libtorrent::aux::from_hex
    - http_parser::method
    - c_str
    - libtorrent::lsd::debug_log
    - find
    - both_sides_from_store_buffer
    - local_endpoint
    - match_addr_mask
    linkageType: ''
    returnType: void
    signature: void lsd::on_announce(error_code const& ec, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lsd::close
      Src: /src/libtorrent/src/lsd.cpp:334,1
    - Dst: cancel
      Src: /src/libtorrent/src/lsd.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: libtorrent::lsd::close
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::lsd::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void lsd::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/lsd.cpp:64,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/lsd.cpp:65,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/lsd.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dst
    - len
    - listen_port
    - info_hash_hex
    - cookie
    - host
    argTypes:
    - char*
    - int
    - int
    - char*
    - std::uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: libtorrent::render_lsd_packet
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::snprintf
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: int
    signature: "int render_lsd_packet(char* dst, int const len, int const listen_port\n\t,
      char const* info_hash_hex, std::uint32_t const cookie, char const* host)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/lsd.cpp:64,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/lsd.cpp:65,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/lsd.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dst
    - len
    - listen_port
    - info_hash_hex
    - cookie
    - host
    argTypes:
    - char*
    - int
    - int
    - char*
    - std::uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: libtorrent::render_lsd_packet
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::snprintf
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: int
    signature: "int render_lsd_packet(char* dst, int const len, int const listen_port\n\t,
      char const* info_hash_hex, std::uint32_t const cookie, char const* host)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/lsd.cpp:82,1
    - Dst: std::uintptr_t
      Src: /src/libtorrent/src/lsd.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ios'
    - ' cb'
    - listen_address
    - netmask
    argTypes:
    - io_context
    - aux::lsd_callback
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: libtorrent::lsd::lsd
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - std::uintptr_t
    - random
    linkageType: ''
    returnType: void
    signature: "void lsd::lsd(io_context& ios, aux::lsd_callback& cb\n\t, address
      const listen_address, address const netmask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_log_lsd
      Src: /src/libtorrent/src/lsd.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: libtorrent::lsd::should_log
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 3
    functionsReached:
    - should_log_lsd
    linkageType: ''
    returnType: bool
    signature: bool lsd::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lsd::should_log
      Src: /src/libtorrent/src/lsd.cpp:95,1
    - Dst: va_start
      Src: /src/libtorrent/src/lsd.cpp:97,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/lsd.cpp:100,1
    - Dst: va_end
      Src: /src/libtorrent/src/lsd.cpp:101,1
    - Dst: log_lsd
      Src: /src/libtorrent/src/lsd.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: libtorrent::lsd::debug_log
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 2
    functionsReached:
    - va_start
    - log_lsd
    - va_end
    - libtorrent::lsd::should_log
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void lsd::debug_log(char const* fmt, ...) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/lsd.cpp:115,1
    - Dst: open
      Src: /src/libtorrent/src/lsd.cpp:116,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/lsd.cpp:116,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/lsd.cpp:116,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:119,1
    - Dst: udp::socket::reuse_address
      Src: /src/libtorrent/src/lsd.cpp:119,1
    - Dst: bind
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: address
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: address
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: address_v6::any
      Src: /src/libtorrent/src/lsd.cpp:122,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:125,1
    - Dst: join_group
      Src: /src/libtorrent/src/lsd.cpp:125,1
    - Dst: to_v4
      Src: /src/libtorrent/src/lsd.cpp:125,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:127,1
    - Dst: join_group
      Src: /src/libtorrent/src/lsd.cpp:127,1
    - Dst: to_v6
      Src: /src/libtorrent/src/lsd.cpp:127,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:129,1
    - Dst: hops
      Src: /src/libtorrent/src/lsd.cpp:129,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:131,1
    - Dst: enable_loopback
      Src: /src/libtorrent/src/lsd.cpp:131,1
    - Dst: set_option
      Src: /src/libtorrent/src/lsd.cpp:135,1
    - Dst: outbound_interface
      Src: /src/libtorrent/src/lsd.cpp:135,1
    - Dst: to_v4
      Src: /src/libtorrent/src/lsd.cpp:135,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:139,1
    - Dst: async_receive_from
      Src: /src/libtorrent/src/lsd.cpp:140,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/lsd.cpp:140,1
    - Dst: std::bind
      Src: /src/libtorrent/src/lsd.cpp:141,1
    - Dst: self
      Src: /src/libtorrent/src/lsd.cpp:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 142
    functionName: libtorrent::lsd::start
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - udp::socket::reuse_address
    - self
    - set_option
    - bind
    - ADD_OUTSTANDING_ASYNC
    - enable_loopback
    - outbound_interface
    - rand_v6
    - async_receive_from
    - to_v4
    - address
    - hops
    - open
    - address_v4::any
    - to_v6
    - join_group
    - std::bind
    - rand_v4
    - address_v6::any
    - both_sides_from_store_buffer
    - local_endpoint
    - is_v4
    linkageType: ''
    returnType: void
    signature: void lsd::start(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: lsd::~lsd()
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lsd::~lsd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lsd::announce_impl
      Src: /src/libtorrent/src/lsd.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ih'
    - listen_port
    argTypes:
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: libtorrent::lsd::announce
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::lsd::announce_impl
    linkageType: ''
    returnType: void
    signature: void lsd::announce(sha1_hash const& ih, int listen_port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/lsd.cpp:161,1
    - Dst: render_lsd_packet
      Src: /src/libtorrent/src/lsd.cpp:165,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/lsd.cpp:165,1
    - Dst: address
      Src: /src/libtorrent/src/lsd.cpp:168,1
    - Dst: address
      Src: /src/libtorrent/src/lsd.cpp:168,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:172,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/lsd.cpp:172,1
    - Dst: to_string
      Src: /src/libtorrent/src/lsd.cpp:173,1
    - Dst: send_to
      Src: /src/libtorrent/src/lsd.cpp:176,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/lsd.cpp:176,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/lsd.cpp:176,1
    - Dst: libtorrent::lsd::should_log
      Src: /src/libtorrent/src/lsd.cpp:182,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:184,1
    - Dst: error_code::value
      Src: /src/libtorrent/src/lsd.cpp:184,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/lsd.cpp:185,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:196,1
    - Dst: expires_after
      Src: /src/libtorrent/src/lsd.cpp:197,1
    - Dst: seconds
      Src: /src/libtorrent/src/lsd.cpp:197,1
    - Dst: async_wait
      Src: /src/libtorrent/src/lsd.cpp:198,1
    - Dst: std::bind
      Src: /src/libtorrent/src/lsd.cpp:198,1
    - Dst: self
      Src: /src/libtorrent/src/lsd.cpp:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ' ih'
    - listen_port
    - retry_count
    argTypes:
    - sha1_hash
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 200
    functionName: libtorrent::lsd::announce_impl
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 3
    functionsReached:
    - error_code::value
    - to_string
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - libtorrent::lsd::should_log
    - libtorrent::aux::to_hex
    - send_to
    - libtorrent::lsd::debug_log
    - seconds
    - static_cast<std::size_t>
    - expires_after
    - both_sides_from_store_buffer
    - error_code::message
    - self
    - address
    - is_v4
    - render_lsd_packet
    linkageType: ''
    returnType: void
    signature: "void lsd::announce_impl(sha1_hash const& ih, int const listen_port\n\t,
      int retry_count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:205,1
    - Dst: libtorrent::lsd::announce_impl
      Src: /src/libtorrent/src/lsd.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' e'
    - ' info_hash'
    - listen_port
    - retry_count
    argTypes:
    - error_code
    - sha1_hash
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: libtorrent::lsd::resend_announce
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - COMPLETE_ASYNC
    - libtorrent::lsd::announce_impl
    linkageType: ''
    returnType: void
    signature: "void lsd::resend_announce(error_code const& e, sha1_hash const& info_hash\n\t,
      int listen_port, int retry_count)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:213,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:217,1
    - Dst: message
      Src: /src/libtorrent/src/lsd.cpp:217,1
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/lsd.cpp:226,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/lsd.cpp:227,1
    - Dst: async_receive_from
      Src: /src/libtorrent/src/lsd.cpp:228,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/lsd.cpp:228,1
    - Dst: std::bind
      Src: /src/libtorrent/src/lsd.cpp:229,1
    - Dst: self
      Src: /src/libtorrent/src/lsd.cpp:229,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/src/lsd.cpp:232,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/lsd.cpp:232,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:236,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/lsd.cpp:237,1
    - Dst: http_parser::incoming
      Src: /src/libtorrent/src/lsd.cpp:245,1
    - Dst: data
      Src: /src/libtorrent/src/lsd.cpp:245,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/lsd.cpp:245,1
    - Dst: http_parser::header_finished
      Src: /src/libtorrent/src/lsd.cpp:247,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:250,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/lsd.cpp:255,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:258,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/lsd.cpp:258,1
    - Dst: http_parser::header
      Src: /src/libtorrent/src/lsd.cpp:263,1
    - Dst: empty
      Src: /src/libtorrent/src/lsd.cpp:264,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:267,1
    - Dst: std::strtol
      Src: /src/libtorrent/src/lsd.cpp:272,1
    - Dst: c_str
      Src: /src/libtorrent/src/lsd.cpp:272,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/lsd.cpp:273,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:276,1
    - Dst: c_str
      Src: /src/libtorrent/src/lsd.cpp:276,1
    - Dst: http_parser::headers
      Src: /src/libtorrent/src/lsd.cpp:281,1
    - Dst: find
      Src: /src/libtorrent/src/lsd.cpp:283,1
    - Dst: end
      Src: /src/libtorrent/src/lsd.cpp:284,1
    - Dst: std::strtoul
      Src: /src/libtorrent/src/lsd.cpp:288,1
    - Dst: auto::second::c_str
      Src: /src/libtorrent/src/lsd.cpp:288,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:292,1
    - Dst: equal_range
      Src: /src/libtorrent/src/lsd.cpp:299,1
    - Dst: size
      Src: /src/libtorrent/src/lsd.cpp:303,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:306,1
    - Dst: c_str
      Src: /src/libtorrent/src/lsd.cpp:307,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/lsd.cpp:313,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/lsd.cpp:313,1
    - Dst: sha1_hash::is_all_zeros
      Src: /src/libtorrent/src/lsd.cpp:315,1
    - Dst: libtorrent::lsd::should_log
      Src: /src/libtorrent/src/lsd.cpp:318,1
    - Dst: libtorrent::lsd::debug_log
      Src: /src/libtorrent/src/lsd.cpp:320,1
    - Dst: print_address
      Src: /src/libtorrent/src/lsd.cpp:321,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/lsd.cpp:321,1
    - Dst: c_str
      Src: /src/libtorrent/src/lsd.cpp:322,1
    - Dst: on_lsd_peer
      Src: /src/libtorrent/src/lsd.cpp:326,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/lsd.cpp:326,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/lsd.cpp:326,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/lsd.cpp:326,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - ' ec'
    - len
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 329
    functionName: libtorrent::lsd::on_announce
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 0
    functionsReached:
    - empty
    - self
    - libtorrent::lsd::should_log
    - data
    - ADD_OUTSTANDING_ASYNC
    - std::strtoul
    - libtorrent::aux::scope_end
    - udp::endpoint::address
    - async_receive_from
    - http_parser::headers
    - std::uint16_t
    - message
    - end
    - http_parser::header
    - COMPLETE_ASYNC
    - std::strtol
    - print_address
    - equal_range
    - auto::second::c_str
    - libtorrent::aux::max
    - sha1_hash::is_all_zeros
    - http_parser::incoming
    - http_parser::header_finished
    - sha1_hash::data
    - size
    - std::ptrdiff_t
    - on_lsd_peer
    - std::bind
    - libtorrent::aux::from_hex
    - http_parser::method
    - c_str
    - libtorrent::lsd::debug_log
    - find
    - both_sides_from_store_buffer
    - local_endpoint
    - match_addr_mask
    linkageType: ''
    returnType: void
    signature: void lsd::on_announce(error_code const& ec, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lsd::close
      Src: /src/libtorrent/src/lsd.cpp:334,1
    - Dst: cancel
      Src: /src/libtorrent/src/lsd.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: libtorrent::lsd::close
    functionSourceFile: /src/libtorrent/src/lsd.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::lsd::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void lsd::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::aux::session_settings::session_settings
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_settings::session_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_pack_impl
      Src: /src/libtorrent/src/session_settings.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::session_settings::session_settings
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - apply_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_settings::session_settings(settings_pack const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/session_settings.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(session_settings_single_thread&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::session_settings::bulk_set
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void session_settings::bulk_set(std::function<void(session_settings_single_thread&)>
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/session_settings.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(session_settings_single_thread const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::session_settings::bulk_get
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void session_settings::bulk_get(std::function<void(session_settings_single_thread
      const&)> f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialize_default_settings
      Src: /src/libtorrent/src/session_settings.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::session_settings_single_thread::session_settings_single_thread
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - initialize_default_settings
    linkageType: ''
    returnType: void
    signature: void session_settings_single_thread::session_settings_single_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::aux::session_settings::session_settings
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_settings::session_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_pack_impl
      Src: /src/libtorrent/src/session_settings.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::session_settings::session_settings
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - apply_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_settings::session_settings(settings_pack const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/session_settings.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(session_settings_single_thread&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::session_settings::bulk_set
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void session_settings::bulk_set(std::function<void(session_settings_single_thread&)>
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/session_settings.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(session_settings_single_thread const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::session_settings::bulk_get
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void session_settings::bulk_get(std::function<void(session_settings_single_thread
      const&)> f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialize_default_settings
      Src: /src/libtorrent/src/session_settings.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::session_settings_single_thread::session_settings_single_thread
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - initialize_default_settings
    linkageType: ''
    returnType: void
    signature: void session_settings_single_thread::session_settings_single_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::aux::session_settings::session_settings
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_settings::session_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_pack_impl
      Src: /src/libtorrent/src/session_settings.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::session_settings::session_settings
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - apply_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_settings::session_settings(settings_pack const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/session_settings.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(session_settings_single_thread&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::session_settings::bulk_set
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void session_settings::bulk_set(std::function<void(session_settings_single_thread&)>
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/session_settings.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(session_settings_single_thread const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::session_settings::bulk_get
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void session_settings::bulk_get(std::function<void(session_settings_single_thread
      const&)> f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialize_default_settings
      Src: /src/libtorrent/src/session_settings.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::session_settings_single_thread::session_settings_single_thread
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - initialize_default_settings
    linkageType: ''
    returnType: void
    signature: void session_settings_single_thread::session_settings_single_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: libtorrent::aux::session_settings::session_settings
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_settings::session_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_pack_impl
      Src: /src/libtorrent/src/session_settings.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::session_settings::session_settings
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - apply_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_settings::session_settings(settings_pack const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/session_settings.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(session_settings_single_thread&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::session_settings::bulk_set
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void session_settings::bulk_set(std::function<void(session_settings_single_thread&)>
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/session_settings.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(session_settings_single_thread const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::session_settings::bulk_get
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void session_settings::bulk_get(std::function<void(session_settings_single_thread
      const&)> f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialize_default_settings
      Src: /src/libtorrent/src/session_settings.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::session_settings_single_thread::session_settings_single_thread
    functionSourceFile: /src/libtorrent/src/session_settings.cpp
    functionUses: 0
    functionsReached:
    - initialize_default_settings
    linkageType: ''
    returnType: void
    signature: void session_settings_single_thread::session_settings_single_thread()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:41,1
    - Dst: throttle
      Src: /src/libtorrent/src/peer_class.cpp:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: libtorrent::peer_class::set_upload_limit
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throttle
    linkageType: ''
    returnType: void
    signature: void peer_class::set_upload_limit(int limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:49,1
    - Dst: throttle
      Src: /src/libtorrent/src/peer_class.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: libtorrent::peer_class::set_download_limit
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throttle
    linkageType: ''
    returnType: void
    signature: void peer_class::set_download_limit(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/src/peer_class.cpp:60,1
    - Dst: throttle
      Src: /src/libtorrent/src/peer_class.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pci
    argTypes:
    - peer_class_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: libtorrent::peer_class::get_info
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - throttle
    linkageType: ''
    returnType: void
    signature: void peer_class::get_info(peer_class_info* pci) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_class::set_upload_limit
      Src: /src/libtorrent/src/peer_class.cpp:71,1
    - Dst: libtorrent::peer_class::set_download_limit
      Src: /src/libtorrent/src/peer_class.cpp:72,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_class.cpp:73,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_class.cpp:73,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_class.cpp:74,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_class.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pci
    argTypes:
    - peer_class_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: libtorrent::peer_class::set_info
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - libtorrent::peer_class::set_download_limit
    - libtorrent::peer_class::set_upload_limit
    - std::max
    linkageType: ''
    returnType: void
    signature: void peer_class::set_info(peer_class_info const* pci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/peer_class.cpp:80,1
    - Dst: back
      Src: /src/libtorrent/src/peer_class.cpp:82,1
    - Dst: pop_back
      Src: /src/libtorrent/src/peer_class.cpp:83,1
    - Dst: peer_class
      Src: /src/libtorrent/src/peer_class.cpp:84,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_class.cpp:84,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:88,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/peer_class.cpp:89,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_class.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - label
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 93
    functionName: libtorrent::peer_class_pool::new_peer_class
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - pop_back
    - empty
    - back
    - emplace_back
    - end_index
    - peer_class
    linkageType: ''
    returnType: peer_class_t
    signature: peer_class_t peer_class_pool::new_peer_class(std::string label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:97,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:99,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_class.cpp:103,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_class.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: libtorrent::peer_class_pool::decref
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - push_back
    - end_index
    - clear
    linkageType: ''
    returnType: void
    signature: void peer_class_pool::decref(peer_class_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:109,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: libtorrent::peer_class_pool::incref
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: void
    signature: void peer_class_pool::incref(peer_class_t c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::peer_class_pool::at
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: peer_class
    signature: peer_class * peer_class_pool::at(peer_class_t c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: libtorrent::peer_class_pool::at
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: peer_class
    signature: peer_class * peer_class_pool::at(peer_class_t c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:41,1
    - Dst: throttle
      Src: /src/libtorrent/src/peer_class.cpp:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: libtorrent::peer_class::set_upload_limit
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - throttle
    linkageType: ''
    returnType: void
    signature: void peer_class::set_upload_limit(int limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:49,1
    - Dst: throttle
      Src: /src/libtorrent/src/peer_class.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: libtorrent::peer_class::set_download_limit
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - throttle
    linkageType: ''
    returnType: void
    signature: void peer_class::set_download_limit(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle
      Src: /src/libtorrent/src/peer_class.cpp:60,1
    - Dst: throttle
      Src: /src/libtorrent/src/peer_class.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pci
    argTypes:
    - peer_class_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: libtorrent::peer_class::get_info
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - throttle
    linkageType: ''
    returnType: void
    signature: void peer_class::get_info(peer_class_info* pci) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_class::set_upload_limit
      Src: /src/libtorrent/src/peer_class.cpp:71,1
    - Dst: libtorrent::peer_class::set_download_limit
      Src: /src/libtorrent/src/peer_class.cpp:72,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_class.cpp:73,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_class.cpp:73,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_class.cpp:74,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_class.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pci
    argTypes:
    - peer_class_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: libtorrent::peer_class::set_info
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - libtorrent::peer_class::set_download_limit
    - libtorrent::peer_class::set_upload_limit
    - std::max
    linkageType: ''
    returnType: void
    signature: void peer_class::set_info(peer_class_info const* pci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/peer_class.cpp:80,1
    - Dst: back
      Src: /src/libtorrent/src/peer_class.cpp:82,1
    - Dst: pop_back
      Src: /src/libtorrent/src/peer_class.cpp:83,1
    - Dst: peer_class
      Src: /src/libtorrent/src/peer_class.cpp:84,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_class.cpp:84,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:88,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/peer_class.cpp:89,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_class.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - label
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 93
    functionName: libtorrent::peer_class_pool::new_peer_class
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - pop_back
    - empty
    - back
    - emplace_back
    - end_index
    - peer_class
    linkageType: ''
    returnType: peer_class_t
    signature: peer_class_t peer_class_pool::new_peer_class(std::string label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:97,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:99,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_class.cpp:103,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_class.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: libtorrent::peer_class_pool::decref
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - push_back
    - end_index
    - clear
    linkageType: ''
    returnType: void
    signature: void peer_class_pool::decref(peer_class_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:109,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_class.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: libtorrent::peer_class_pool::incref
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: void
    signature: void peer_class_pool::incref(peer_class_t c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::peer_class_pool::at
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: peer_class
    signature: peer_class * peer_class_pool::at(peer_class_t c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/peer_class.cpp:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: libtorrent::peer_class_pool::at
    functionSourceFile: /src/libtorrent/src/peer_class.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: peer_class
    signature: peer_class * peer_class_pool::at(peer_class_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(socket_closer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(socket_closer &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: '& operator=(socket_closer const&)'
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_closer
    signature: socket_closer & operator=(socket_closer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: '& operator=(socket_closer &&)'
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_closer
    signature: socket_closer & operator=(socket_closer &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/enum_net.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: ~socket_closer()
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    linkageType: ''
    returnType: void
    signature: void ~socket_closer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: boost::asio::ip::address_v4::bytes_type::data
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: boost::asio::ip::address_v4::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ina
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: libtorrent::inaddr_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - boost::asio::ip::address_v4::bytes_type::data
    - libtorrent::min
    - std::size_t
    - boost::asio::ip::address_v4::bytes_type::size
    - address_v4
    linkageType: ''
    returnType: address_v4
    signature: address_v4 inaddr_to_address(void const* ina, int const len = 4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: boost::asio::ip::address_v6::bytes_type::data
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: boost::asio::ip::address_v6::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ina6
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: libtorrent::inaddr6_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - libtorrent::min
    - address_v6
    - boost::asio::ip::address_v6::bytes_type::size
    - std::size_t
    - boost::asio::ip::address_v6::bytes_type::data
    linkageType: ''
    returnType: address_v6
    signature: address_v6 inaddr6_to_address(void const* ina6, int const len = 16)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sin
    argTypes:
    - sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: libtorrent::sockaddr_len
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sockaddr_len(sockaddr const* sin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:204,1
    - Dst: reinterpret_cast<sockaddr_in const*>
      Src: /src/libtorrent/src/enum_net.cpp:204,1
    - Dst: libtorrent::sockaddr_len
      Src: /src/libtorrent/src/enum_net.cpp:205,1
    - Dst: reinterpret_cast<sockaddr_in6 const*>
      Src: /src/libtorrent/src/enum_net.cpp:208,1
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:209,1
    - Dst: libtorrent::sockaddr_len
      Src: /src/libtorrent/src/enum_net.cpp:210,1
    - Dst: auto::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:211,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sin
    argTypes:
    - sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: libtorrent::sockaddr_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::inaddr_to_address
    - libtorrent::sockaddr_len
    - auto::scope_id
    - reinterpret_cast<sockaddr_in6 const*>
    - libtorrent::address
    - libtorrent::inaddr6_to_address
    - reinterpret_cast<sockaddr_in const*>
    linkageType: ''
    returnType: address
    signature: address sockaddr_to_address(sockaddr const* sin, int assume_family
      = -1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - family
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: libtorrent::valid_addr_family
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_addr_family(int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: libtorrent::convert_if_flags
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: interface_flags
    signature: interface_flags convert_if_flags(unsigned int const f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/enum_net.cpp:263,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/enum_net.cpp:263,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/enum_net.cpp:266,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/enum_net.cpp:266,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/enum_net.cpp:270,1
    - Dst: on_msg
      Src: /src/libtorrent/src/enum_net.cpp:281,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - sock
    - seq
    - pid
    - on_msg
    argTypes:
    - int
    - std::uint32_t
    - std::uint32_t
    - std::function<void(nlmsghdr const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: libtorrent::read_nl_sock
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<nlmsghdr const*>
    - std::array::size
    - std::array::data
    - libtorrent::aux::nlmsg_ok
    - libtorrent::aux::nlmsg_next
    - on_msg
    - recv
    linkageType: ''
    returnType: int
    signature: "int read_nl_sock(int sock, std::uint32_t const seq, std::uint32_t
      const pid\n\t\t, std::function<void(nlmsghdr const*)> on_msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::send
      Src: /src/libtorrent/src/enum_net.cpp:299,1
    - Dst: ::getsockname
      Src: /src/libtorrent/src/enum_net.cpp:305,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:305,1
    - Dst: libtorrent::read_nl_sock
      Src: /src/libtorrent/src/enum_net.cpp:308,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/enum_net.cpp:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - sock
    - seq
    - request_msg
    - on_msg
    argTypes:
    - int
    - std::uint32_t
    - nlmsghdr*
    - std::function<void(nlmsghdr const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 309
    functionName: libtorrent::nl_dump_request
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - ::getsockname
    - reinterpret_cast<sockaddr*>
    - libtorrent::broadcast_socket::send
    - libtorrent::read_nl_sock
    - libtorrent::move
    linkageType: ''
    returnType: int
    signature: "int nl_dump_request(int const sock, std::uint32_t const seq\n\t\t,
      nlmsghdr* const request_msg, std::function<void(nlmsghdr const*)> on_msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:313,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - address_family
    - in
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: libtorrent::to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::inaddr_to_address
    - libtorrent::inaddr6_to_address
    linkageType: ''
    returnType: address
    signature: address to_address(int const address_family, void const* in)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ifinfomsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:329,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:329,1
    - Dst: libtorrent::aux::ifla_rta
      Src: /src/libtorrent/src/enum_net.cpp:330,1
    - Dst: libtorrent::aux::ifla_payload
      Src: /src/libtorrent/src/enum_net.cpp:331,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:334,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:337,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:337,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:339,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:343,1
    - Dst: static_cast<char const*>
      Src: /src/libtorrent/src/enum_net.cpp:343,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:346,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:347,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - nl_hdr
    argTypes:
    - nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 364
    functionName: libtorrent::parse_nl_link
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::ifla_rta
    - libtorrent::aux::rta_data
    - std::memcpy
    - libtorrent::aux::ifla_payload
    - static_cast<char const*>
    - libtorrent::aux::rta_next
    - libtorrent::convert_if_flags
    - libtorrent::aux::nlmsg_data
    - libtorrent::aux::rta_ok
    - std::strncpy
    - static_cast<ifinfomsg const*>
    linkageType: ''
    returnType: link_info
    signature: link_info parse_nl_link(nlmsghdr const* nl_hdr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<rtmsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:371,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:371,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:373,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:380,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:381,1
    - Dst: libtorrent::aux::rtm_payload
      Src: /src/libtorrent/src/enum_net.cpp:385,1
    - Dst: libtorrent::aux::rtm_rta
      Src: /src/libtorrent/src/enum_net.cpp:386,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:387,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:387,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:392,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:392,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:395,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:395,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:398,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:398,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:401,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:401,1
    - Dst: ip_route*::gateway::is_v6
      Src: /src/libtorrent/src/enum_net.cpp:406,1
    - Dst: ip_route*::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:406,1
    - Dst: ip_route*::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:408,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:409,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:409,1
    - Dst: ::if_indextoname
      Src: /src/libtorrent/src/enum_net.cpp:414,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:414,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:416,1
    - Dst: ::ioctl
      Src: /src/libtorrent/src/enum_net.cpp:417,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:419,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - s
    - nl_hdr
    - rt_info
    argTypes:
    - int
    - nlmsghdr*
    - ip_route*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 421
    functionName: libtorrent::parse_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - static_cast<rtmsg const*>
    - libtorrent::build_netmask
    - std::memcpy
    - address_v6
    - libtorrent::aux::rta_data
    - ip_route*::gateway::to_v6
    - libtorrent::to_address
    - libtorrent::aux::rtm_payload
    - std::uint32_t
    - libtorrent::aux::rtm_rta
    - libtorrent::aux::rta_next
    - ip_route*::gateway::is_v6
    - ::ioctl
    - address_v6::scope_id
    - libtorrent::aux::nlmsg_data
    - libtorrent::aux::rta_ok
    - libtorrent::valid_addr_family
    - ::if_indextoname
    linkageType: ''
    returnType: bool
    signature: bool parse_route(int s, nlmsghdr const* nl_hdr, ip_route* rt_info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ifaddrmsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:429,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:429,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:431,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: span<link_info const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:436,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:436,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:437,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:440,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:442,1
    - Dst: libtorrent::aux::ifa_payload
      Src: /src/libtorrent/src/enum_net.cpp:443,1
    - Dst: libtorrent::aux::ifa_rta
      Src: /src/libtorrent/src/enum_net.cpp:444,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:445,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:445,1
    - Dst: ip_interface*::interface_address::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:453,1
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:459,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:459,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:461,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:466,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:466,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - nl_hdr
    - nics
    - ip_info
    argTypes:
    - nlmsghdr*
    - span<link_info const>
    - ip_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 487
    functionName: libtorrent::parse_nl_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - span<link_info const>::begin
    - libtorrent::aux::rta_data
    - libtorrent::inaddr_to_address
    - libtorrent::aux::rta_next
    - libtorrent::aux::ifa_payload
    - libtorrent::build_netmask
    - span<link_info const>::end
    - libtorrent::aux::nlmsg_data
    - TORRENT_ASSERT
    - libtorrent::aux::ifa_rta
    - libtorrent::address
    - address_v6::scope_id
    - libtorrent::aux::rta_ok
    - libtorrent::valid_addr_family
    - libtorrent::inaddr6_to_address
    - std::find_if
    - std::memcpy
    - static_cast<ifaddrmsg const*>
    - ip_interface*::interface_address::is_unspecified
    linkageType: ''
    returnType: bool
    signature: "bool parse_nl_address(nlmsghdr const* nl_hdr, span<link_info const>
      nics\n\t\t, ip_interface* ip_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:499,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: ROUNDUP
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:521,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:524,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:525,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:526,1
    - Dst: ip_route*::destination::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:527,1
    - Dst: if_indextoname
      Src: /src/libtorrent/src/enum_net.cpp:528,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:529,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - rtm
    - rt_info
    argTypes:
    - rt_msghdr*
    - ip_route*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 531
    functionName: libtorrent::parse_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr*>
    - reinterpret_cast<char*>
    - libtorrent::sockaddr_to_address
    - ip_route*::destination::is_v4
    - if_indextoname
    - ROUNDUP
    - libtorrent::valid_addr_family
    linkageType: ''
    returnType: bool
    signature: bool parse_route(int, rt_msghdr* rtm, ip_route* rt_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 511
    functionName: ROUNDUP
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:541,1
    - Dst: ip_interface::interface_address::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:542,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:546,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:552,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ifa
    - rv
    argTypes:
    - ifaddrs*
    - ip_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 556
    functionName: libtorrent::iface_from_ifaddrs
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - ip_interface::interface_address::is_unspecified
    - std::strncpy
    - libtorrent::sockaddr_to_address
    - libtorrent::convert_if_flags
    linkageType: ''
    returnType: bool
    signature: bool iface_from_ifaddrs(ifaddrs *ifa, ip_interface &rv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:561,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:561,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:562,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:570,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mask
    - prefix_bits
    argTypes:
    - span<unsigned char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 580
    functionName: libtorrent::build_netmask_impl
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - span<unsigned char>::size
    linkageType: ''
    returnType: void
    signature: void build_netmask_impl(span<unsigned char> mask, int prefix_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(socket_closer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(socket_closer &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: '& operator=(socket_closer const&)'
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_closer
    signature: socket_closer & operator=(socket_closer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: '& operator=(socket_closer &&)'
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_closer
    signature: socket_closer & operator=(socket_closer &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/enum_net.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: ~socket_closer()
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    linkageType: ''
    returnType: void
    signature: void ~socket_closer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: boost::asio::ip::address_v4::bytes_type::data
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: boost::asio::ip::address_v4::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ina
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: libtorrent::inaddr_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 3
    functionsReached:
    - std::memcpy
    - boost::asio::ip::address_v4::bytes_type::data
    - libtorrent::min
    - std::size_t
    - boost::asio::ip::address_v4::bytes_type::size
    - address_v4
    linkageType: ''
    returnType: address_v4
    signature: address_v4 inaddr_to_address(void const* ina, int const len = 4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: boost::asio::ip::address_v6::bytes_type::data
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: boost::asio::ip::address_v6::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ina6
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: libtorrent::inaddr6_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 3
    functionsReached:
    - std::memcpy
    - libtorrent::min
    - address_v6
    - boost::asio::ip::address_v6::bytes_type::size
    - std::size_t
    - boost::asio::ip::address_v6::bytes_type::data
    linkageType: ''
    returnType: address_v6
    signature: address_v6 inaddr6_to_address(void const* ina6, int const len = 16)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sin
    argTypes:
    - sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: libtorrent::sockaddr_len
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sockaddr_len(sockaddr const* sin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:204,1
    - Dst: reinterpret_cast<sockaddr_in const*>
      Src: /src/libtorrent/src/enum_net.cpp:204,1
    - Dst: libtorrent::sockaddr_len
      Src: /src/libtorrent/src/enum_net.cpp:205,1
    - Dst: reinterpret_cast<sockaddr_in6 const*>
      Src: /src/libtorrent/src/enum_net.cpp:208,1
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:209,1
    - Dst: libtorrent::sockaddr_len
      Src: /src/libtorrent/src/enum_net.cpp:210,1
    - Dst: auto::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:211,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sin
    argTypes:
    - sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: libtorrent::sockaddr_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::inaddr_to_address
    - libtorrent::sockaddr_len
    - auto::scope_id
    - reinterpret_cast<sockaddr_in6 const*>
    - libtorrent::address
    - libtorrent::inaddr6_to_address
    - reinterpret_cast<sockaddr_in const*>
    linkageType: ''
    returnType: address
    signature: address sockaddr_to_address(sockaddr const* sin, int assume_family
      = -1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - family
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: libtorrent::valid_addr_family
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_addr_family(int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: libtorrent::convert_if_flags
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: interface_flags
    signature: interface_flags convert_if_flags(unsigned int const f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/enum_net.cpp:263,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/enum_net.cpp:263,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/enum_net.cpp:266,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/enum_net.cpp:266,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/enum_net.cpp:270,1
    - Dst: on_msg
      Src: /src/libtorrent/src/enum_net.cpp:281,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - sock
    - seq
    - pid
    - on_msg
    argTypes:
    - int
    - std::uint32_t
    - std::uint32_t
    - std::function<void(nlmsghdr const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: libtorrent::read_nl_sock
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<nlmsghdr const*>
    - std::array::size
    - std::array::data
    - libtorrent::aux::nlmsg_ok
    - libtorrent::aux::nlmsg_next
    - on_msg
    - recv
    linkageType: ''
    returnType: int
    signature: "int read_nl_sock(int sock, std::uint32_t const seq, std::uint32_t
      const pid\n\t\t, std::function<void(nlmsghdr const*)> on_msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::send
      Src: /src/libtorrent/src/enum_net.cpp:299,1
    - Dst: ::getsockname
      Src: /src/libtorrent/src/enum_net.cpp:305,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:305,1
    - Dst: libtorrent::read_nl_sock
      Src: /src/libtorrent/src/enum_net.cpp:308,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/enum_net.cpp:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - sock
    - seq
    - request_msg
    - on_msg
    argTypes:
    - int
    - std::uint32_t
    - nlmsghdr*
    - std::function<void(nlmsghdr const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 309
    functionName: libtorrent::nl_dump_request
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - ::getsockname
    - reinterpret_cast<sockaddr*>
    - libtorrent::broadcast_socket::send
    - libtorrent::read_nl_sock
    - libtorrent::move
    linkageType: ''
    returnType: int
    signature: "int nl_dump_request(int const sock, std::uint32_t const seq\n\t\t,
      nlmsghdr* const request_msg, std::function<void(nlmsghdr const*)> on_msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:313,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - address_family
    - in
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: libtorrent::to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::inaddr_to_address
    - libtorrent::inaddr6_to_address
    linkageType: ''
    returnType: address
    signature: address to_address(int const address_family, void const* in)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ifinfomsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:329,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:329,1
    - Dst: libtorrent::aux::ifla_rta
      Src: /src/libtorrent/src/enum_net.cpp:330,1
    - Dst: libtorrent::aux::ifla_payload
      Src: /src/libtorrent/src/enum_net.cpp:331,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:334,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:337,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:337,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:339,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:343,1
    - Dst: static_cast<char const*>
      Src: /src/libtorrent/src/enum_net.cpp:343,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:346,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:347,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - nl_hdr
    argTypes:
    - nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 364
    functionName: libtorrent::parse_nl_link
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::ifla_rta
    - libtorrent::aux::rta_data
    - std::memcpy
    - libtorrent::aux::ifla_payload
    - static_cast<char const*>
    - libtorrent::aux::rta_next
    - libtorrent::convert_if_flags
    - libtorrent::aux::nlmsg_data
    - libtorrent::aux::rta_ok
    - std::strncpy
    - static_cast<ifinfomsg const*>
    linkageType: ''
    returnType: link_info
    signature: link_info parse_nl_link(nlmsghdr const* nl_hdr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<rtmsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:371,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:371,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:373,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:380,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:381,1
    - Dst: libtorrent::aux::rtm_payload
      Src: /src/libtorrent/src/enum_net.cpp:385,1
    - Dst: libtorrent::aux::rtm_rta
      Src: /src/libtorrent/src/enum_net.cpp:386,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:387,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:387,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:392,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:392,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:395,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:395,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:398,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:398,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:401,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:401,1
    - Dst: ip_route*::gateway::is_v6
      Src: /src/libtorrent/src/enum_net.cpp:406,1
    - Dst: ip_route*::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:406,1
    - Dst: ip_route*::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:408,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:409,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:409,1
    - Dst: ::if_indextoname
      Src: /src/libtorrent/src/enum_net.cpp:414,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:414,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:416,1
    - Dst: ::ioctl
      Src: /src/libtorrent/src/enum_net.cpp:417,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:419,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - s
    - nl_hdr
    - rt_info
    argTypes:
    - int
    - nlmsghdr*
    - ip_route*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 421
    functionName: libtorrent::parse_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - static_cast<rtmsg const*>
    - libtorrent::build_netmask
    - std::memcpy
    - address_v6
    - libtorrent::aux::rta_data
    - ip_route*::gateway::to_v6
    - libtorrent::to_address
    - libtorrent::aux::rtm_payload
    - std::uint32_t
    - libtorrent::aux::rtm_rta
    - libtorrent::aux::rta_next
    - ip_route*::gateway::is_v6
    - ::ioctl
    - address_v6::scope_id
    - libtorrent::aux::nlmsg_data
    - libtorrent::aux::rta_ok
    - libtorrent::valid_addr_family
    - ::if_indextoname
    linkageType: ''
    returnType: bool
    signature: bool parse_route(int s, nlmsghdr const* nl_hdr, ip_route* rt_info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ifaddrmsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:429,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:429,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:431,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: span<link_info const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:436,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:436,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:437,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:440,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:442,1
    - Dst: libtorrent::aux::ifa_payload
      Src: /src/libtorrent/src/enum_net.cpp:443,1
    - Dst: libtorrent::aux::ifa_rta
      Src: /src/libtorrent/src/enum_net.cpp:444,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:445,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:445,1
    - Dst: ip_interface*::interface_address::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:453,1
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:459,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:459,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:461,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:466,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:466,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - nl_hdr
    - nics
    - ip_info
    argTypes:
    - nlmsghdr*
    - span<link_info const>
    - ip_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 487
    functionName: libtorrent::parse_nl_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - span<link_info const>::begin
    - libtorrent::aux::rta_data
    - libtorrent::inaddr_to_address
    - libtorrent::aux::rta_next
    - libtorrent::aux::ifa_payload
    - libtorrent::build_netmask
    - span<link_info const>::end
    - libtorrent::aux::nlmsg_data
    - TORRENT_ASSERT
    - libtorrent::aux::ifa_rta
    - libtorrent::address
    - address_v6::scope_id
    - libtorrent::aux::rta_ok
    - libtorrent::valid_addr_family
    - libtorrent::inaddr6_to_address
    - std::find_if
    - std::memcpy
    - static_cast<ifaddrmsg const*>
    - ip_interface*::interface_address::is_unspecified
    linkageType: ''
    returnType: bool
    signature: "bool parse_nl_address(nlmsghdr const* nl_hdr, span<link_info const>
      nics\n\t\t, ip_interface* ip_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:499,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: ROUNDUP
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:521,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:524,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:525,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:526,1
    - Dst: ip_route*::destination::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:527,1
    - Dst: if_indextoname
      Src: /src/libtorrent/src/enum_net.cpp:528,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:529,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - rtm
    - rt_info
    argTypes:
    - rt_msghdr*
    - ip_route*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 531
    functionName: libtorrent::parse_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr*>
    - reinterpret_cast<char*>
    - libtorrent::sockaddr_to_address
    - ip_route*::destination::is_v4
    - if_indextoname
    - ROUNDUP
    - libtorrent::valid_addr_family
    linkageType: ''
    returnType: bool
    signature: bool parse_route(int, rt_msghdr* rtm, ip_route* rt_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 511
    functionName: ROUNDUP
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:541,1
    - Dst: ip_interface::interface_address::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:542,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:546,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:552,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ifa
    - rv
    argTypes:
    - ifaddrs*
    - ip_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 556
    functionName: libtorrent::iface_from_ifaddrs
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - ip_interface::interface_address::is_unspecified
    - std::strncpy
    - libtorrent::sockaddr_to_address
    - libtorrent::convert_if_flags
    linkageType: ''
    returnType: bool
    signature: bool iface_from_ifaddrs(ifaddrs *ifa, ip_interface &rv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:561,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:561,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:562,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:570,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mask
    - prefix_bits
    argTypes:
    - span<unsigned char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 580
    functionName: libtorrent::build_netmask_impl
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - span<unsigned char>::size
    linkageType: ''
    returnType: void
    signature: void build_netmask_impl(span<unsigned char> mask, int prefix_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    functionName: libtorrent::family
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - is_v4
    linkageType: ''
    returnType: int
    signature: int family(address const& a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::build_netmask_impl
      Src: /src/libtorrent/src/enum_net.cpp:591,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:592,1
    - Dst: libtorrent::build_netmask_impl
      Src: /src/libtorrent/src/enum_net.cpp:597,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - prefix_bits
    - family
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 601
    functionName: libtorrent::build_netmask
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::build_netmask_impl
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address build_netmask(int prefix_bits, int const family)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:607,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:607,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:608,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:608,1
    - Dst: is_v6
      Src: /src/libtorrent/src/enum_net.cpp:610,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:612,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:612,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:614,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:615,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:616,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:617,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:624,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:624,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:625,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ' a1'
    - ' a2'
    - ' mask'
    argTypes:
    - address
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 626
    functionName: libtorrent::match_addr_mask
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - to_v4
    - address_v6::bytes_type::size
    - to_v6
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool match_addr_mask(address const& a1, address const& a2, address
      const& mask)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:630,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/enum_net.cpp:632,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:639,1
    - Dst: get_ips
      Src: /src/libtorrent/src/enum_net.cpp:643,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:649,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/enum_net.cpp:650,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/enum_net.cpp:652,1
    - Dst: std::strcpy
      Src: /src/libtorrent/src/enum_net.cpp:653,1
    - Dst: std::strcpy
      Src: /src/libtorrent/src/enum_net.cpp:654,1
    - Dst: std::strcpy
      Src: /src/libtorrent/src/enum_net.cpp:655,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:656,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:659,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:662,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:662,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:677,1
    - Dst: NLMSG_LENGTH
      Src: /src/libtorrent/src/enum_net.cpp:677,1
    - Dst: libtorrent::nl_dump_request
      Src: /src/libtorrent/src/enum_net.cpp:683,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:688,1
    - Dst: libtorrent::parse_nl_link
      Src: /src/libtorrent/src/enum_net.cpp:688,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:691,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:691,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:701,1
    - Dst: NLMSG_LENGTH
      Src: /src/libtorrent/src/enum_net.cpp:701,1
    - Dst: libtorrent::nl_dump_request
      Src: /src/libtorrent/src/enum_net.cpp:705,1
    - Dst: libtorrent::parse_nl_address
      Src: /src/libtorrent/src/enum_net.cpp:707,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:707,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:710,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:710,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:714,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:717,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:717,1
    - Dst: getifaddrs
      Src: /src/libtorrent/src/enum_net.cpp:723,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:725,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:725,1
    - Dst: libtorrent::iface_from_ifaddrs
      Src: /src/libtorrent/src/enum_net.cpp:732,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:733,1
    - Dst: freeifaddrs
      Src: /src/libtorrent/src/enum_net.cpp:735,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:738,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:741,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:741,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:750,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:752,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:752,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/enum_net.cpp:756,1
    - Dst: reinterpret_cast<ifreq const*>
      Src: /src/libtorrent/src/enum_net.cpp:763,1
    - Dst: _SIZEOF_ADDR_IFREQ
      Src: /src/libtorrent/src/enum_net.cpp:766,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:775,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:779,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:780,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:784,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:785,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:786,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:790,1
    - Dst: ip_interface::interface_address::is_v6
      Src: /src/libtorrent/src/enum_net.cpp:792,1
    - Dst: address_v6::any
      Src: /src/libtorrent/src/enum_net.cpp:795,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:799,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:799,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:805,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:807,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, GetAdaptersAddresses_t>
      Src: /src/libtorrent/src/enum_net.cpp:816,1
    - Dst: reinterpret_cast<IP_ADAPTER_ADDRESSES*>
      Src: /src/libtorrent/src/enum_net.cpp:823,1
    - Dst: GetAdaptersAddresses
      Src: /src/libtorrent/src/enum_net.cpp:825,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/enum_net.cpp:829,1
    - Dst: reinterpret_cast<IP_ADAPTER_ADDRESSES*>
      Src: /src/libtorrent/src/enum_net.cpp:830,1
    - Dst: GetAdaptersAddresses
      Src: /src/libtorrent/src/enum_net.cpp:831,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:836,1
    - Dst: WSAGetLastError
      Src: /src/libtorrent/src/enum_net.cpp:836,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:836,1
    - Dst: std::vector<ip_interface>
      Src: /src/libtorrent/src/enum_net.cpp:837,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:844,1
    - Dst: wcstombs
      Src: /src/libtorrent/src/enum_net.cpp:846,1
    - Dst: wcstombs
      Src: /src/libtorrent/src/enum_net.cpp:848,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:873,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:884,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:892,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:892,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:893,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:893,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:894,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:910,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:914,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:920,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:920,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:921,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:921,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:924,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:932,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:935,1
    - Dst: WSAGetLastError
      Src: /src/libtorrent/src/enum_net.cpp:935,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:935,1
    - Dst: WSAIoctl
      Src: /src/libtorrent/src/enum_net.cpp:942,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:945,1
    - Dst: WSAGetLastError
      Src: /src/libtorrent/src/enum_net.cpp:945,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:945,1
    - Dst: closesocket
      Src: /src/libtorrent/src/enum_net.cpp:946,1
    - Dst: closesocket
      Src: /src/libtorrent/src/enum_net.cpp:949,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:956,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/enum_net.cpp:957,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:958,1
    - Dst: ip_interface::interface_address::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:959,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:960,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 160
    argCount: 2
    argNames:
    - ' ios'
    - ' ec'
    argTypes:
    - io_context
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 968
    functionName: libtorrent::enum_net_interfaces
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - make_address_v4
    - get_ips
    - std::uint32_t
    - freeifaddrs
    - libtorrent::parse_nl_address
    - wcstombs
    - libtorrent::convert_if_flags
    - libtorrent::build_netmask
    - aux::get_library_procedure<aux::iphlpapi, GetAdaptersAddresses_t>
    - GetAdaptersAddresses
    - WSAIoctl
    - make_address_v6
    - std::strncpy
    - closesocket
    - libtorrent::clear
    - WSAGetLastError
    - ip_interface::interface_address::is_v4
    - std::vector::resize
    - libtorrent::iface_from_ifaddrs
    - libtorrent::nl_dump_request
    - NLMSG_LENGTH
    - sim::socket
    - address_v4::any
    - libtorrent::address
    - reinterpret_cast<char const*>
    - libtorrent::valid_addr_family
    - reinterpret_cast<IP_ADAPTER_ADDRESSES*>
    - TORRENT_UNUSED
    - address_v4
    - system_category
    - std::vector::push_back
    - address_v6
    - _SIZEOF_ADDR_IFREQ
    - reinterpret_cast<ifreq const*>
    - error_code
    - libtorrent::sockaddr_to_address
    - address_v6::any
    - libtorrent::parse_nl_link
    - is_v4
    - std::vector<ip_interface>
    - getifaddrs
    - ip_interface::interface_address::is_v6
    - std::strcpy
    - ioctl
    linkageType: ''
    returnType: std::vector<ip_interface>
    signature: std::vector<ip_interface> enum_net_interfaces(io_context& ios, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:972,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/enum_net.cpp:975,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:977,1
    - Dst: span<ip_route const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:977,1
    - Dst: span<ip_route const>::end
      Src: /src/libtorrent/src/enum_net.cpp:977,1
    - Dst: destination::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:980,1
    - Dst: destination::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:981,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:981,1
    - Dst: gateway::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:982,1
    - Dst: source_hint::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:986,1
    - Dst: std::strcmp
      Src: /src/libtorrent/src/enum_net.cpp:987,1
    - Dst: span<ip_route const>::end
      Src: /src/libtorrent/src/enum_net.cpp:989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - ' iface'
    - routes
    argTypes:
    - ip_interface
    - span<ip_route const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 991
    functionName: libtorrent::get_gateway
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - destination::is_unspecified
    - span<ip_route const>::begin
    - destination::is_v4
    - gateway::is_unspecified
    - span<ip_route const>::end
    - interface_address::is_v4
    - std::strcmp
    - libtorrent::aux::is_local
    - source_hint::is_unspecified
    - std::find_if
    linkageType: ''
    returnType: boost::optional<address>
    signature: boost::optional<address> get_gateway(ip_interface const& iface, span<ip_route
      const> routes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/enum_net.cpp:995,1
    - Dst: span<ip_route const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:995,1
    - Dst: span<ip_route const>::end
      Src: /src/libtorrent/src/enum_net.cpp:995,1
    - Dst: destination::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:1000,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/enum_net.cpp:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - routes
    argTypes:
    - span<ip_route const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1003
    functionName: libtorrent::has_any_internet_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - span<ip_route const>::begin
    - libtorrent::aux::is_global
    - span<ip_route const>::end
    - std::any_of
    - destination::is_unspecified
    linkageType: ''
    returnType: bool
    signature: bool has_any_internet_route(span<ip_route const> routes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/enum_net.cpp:1007,1
    - Dst: span<ip_route const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:1007,1
    - Dst: span<ip_route const>::end
      Src: /src/libtorrent/src/enum_net.cpp:1007,1
    - Dst: libtorrent::family
      Src: /src/libtorrent/src/enum_net.cpp:1012,1
    - Dst: destination::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:1014,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/enum_net.cpp:1015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - device
    - fam
    - routes
    argTypes:
    - string_view
    - int
    - span<ip_route const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1018
    functionName: libtorrent::has_internet_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - span<ip_route const>::begin
    - libtorrent::aux::is_global
    - libtorrent::family
    - span<ip_route const>::end
    - std::any_of
    - destination::is_unspecified
    linkageType: ''
    returnType: bool
    signature: bool has_internet_route(string_view device, int const fam, span<ip_route
      const> routes)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:1023,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/enum_net.cpp:1024,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:1031,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:1035,1
    - Dst: get_ips
      Src: /src/libtorrent/src/enum_net.cpp:1037,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:1042,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:1044,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/enum_net.cpp:1045,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:1046,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:1048,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:1052,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/enum_net.cpp:1053,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:1054,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:1056,1
    - Dst: std::strcpy
      Src: /src/libtorrent/src/enum_net.cpp:1058,1
    - Dst: sim
      Src: /src/libtorrent/src/enum_net.cpp:1059,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1060,1
    - Dst: __libsocket_sysctl
      Src: /src/libtorrent/src/enum_net.cpp:1168,1
    - Dst: sysctl
      Src: /src/libtorrent/src/enum_net.cpp:1170,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1173,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1173,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1174,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1179,1
    - Dst: char::char
      Src: /src/libtorrent/src/enum_net.cpp:1182,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1186,1
    - Dst: __libsocket_sysctl
      Src: /src/libtorrent/src/enum_net.cpp:1190,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/enum_net.cpp:1190,1
    - Dst: sysctl
      Src: /src/libtorrent/src/enum_net.cpp:1192,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/enum_net.cpp:1192,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1195,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1195,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1196,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/enum_net.cpp:1199,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:1201,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1204,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1204,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1205,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/enum_net.cpp:1209,1
    - Dst: reinterpret_cast<rt_msghdr*>
      Src: /src/libtorrent/src/enum_net.cpp:1211,1
    - Dst: libtorrent::parse_route
      Src: /src/libtorrent/src/enum_net.cpp:1220,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1220,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, GetIfEntry_t>
      Src: /src/libtorrent/src/enum_net.cpp:1276,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1282,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, GetIpForwardTable2_t>
      Src: /src/libtorrent/src/enum_net.cpp:1290,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, FreeMibTable_t>
      Src: /src/libtorrent/src/enum_net.cpp:1291,1
    - Dst: GetIpForwardTable2
      Src: /src/libtorrent/src/enum_net.cpp:1295,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1301,1
    - Dst: ip_route::gateway::is_v6
      Src: /src/libtorrent/src/enum_net.cpp:1304,1
    - Dst: ip_route::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:1304,1
    - Dst: ip_route::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:1306,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:1307,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1310,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:1312,1
    - Dst: GetIfEntry
      Src: /src/libtorrent/src/enum_net.cpp:1316,1
    - Dst: wcsncmp
      Src: /src/libtorrent/src/enum_net.cpp:1320,1
    - Dst: wcslen
      Src: /src/libtorrent/src/enum_net.cpp:1320,1
    - Dst: wcslen
      Src: /src/libtorrent/src/enum_net.cpp:1322,1
    - Dst: wcstombs
      Src: /src/libtorrent/src/enum_net.cpp:1324,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1327,1
    - Dst: FreeMibTable
      Src: /src/libtorrent/src/enum_net.cpp:1331,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, GetIpForwardTable_t>
      Src: /src/libtorrent/src/enum_net.cpp:1339,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1343,1
    - Dst: GetIpForwardTable
      Src: /src/libtorrent/src/enum_net.cpp:1348,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1351,1
    - Dst: malloc
      Src: /src/libtorrent/src/enum_net.cpp:1354,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1358,1
    - Dst: GetIpForwardTable
      Src: /src/libtorrent/src/enum_net.cpp:1361,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1366,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1367,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1368,1
    - Dst: GetIfEntry
      Src: /src/libtorrent/src/enum_net.cpp:1371,1
    - Dst: wcstombs
      Src: /src/libtorrent/src/enum_net.cpp:1373,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1376,1
    - Dst: free
      Src: /src/libtorrent/src/enum_net.cpp:1382,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:1384,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1387,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1387,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1388,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:1392,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1395,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1395,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1396,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:1405,1
    - Dst: NLMSG_LENGTH
      Src: /src/libtorrent/src/enum_net.cpp:1405,1
    - Dst: libtorrent::nl_dump_request
      Src: /src/libtorrent/src/enum_net.cpp:1410,1
    - Dst: libtorrent::parse_route
      Src: /src/libtorrent/src/enum_net.cpp:1412,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1412,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1415,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1415,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1416,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:1422,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1425,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1425,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:1431,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1433,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1433,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/enum_net.cpp:1441,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/enum_net.cpp:1441,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:1442,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1444,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1444,1
    - Dst: reinterpret_cast<ifreq const*>
      Src: /src/libtorrent/src/enum_net.cpp:1448,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/enum_net.cpp:1450,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1459,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1464,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1469,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1474,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:1478,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1481,1
    - Dst: reinterpret_cast<ifreq const*>
      Src: /src/libtorrent/src/enum_net.cpp:1483,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/enum_net.cpp:1483,1
    - Dst: libtorrent::enum_net_interfaces
      Src: /src/libtorrent/src/enum_net.cpp:1498,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/enum_net.cpp:1504,1
    - Dst: std::string
      Src: /src/libtorrent/src/enum_net.cpp:1504,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 174
    argCount: 2
    argNames:
    - ' ios'
    - ' ec'
    argTypes:
    - io_context
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1020
    functionDepth: 5
    functionLinenumber: 1020
    functionLinenumberEnd: 1506
    functionName: libtorrent::enum_routes
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - free
    - static_cast<int>
    - make_address_v4
    - wcsncmp
    - get_ips
    - libtorrent::inaddr_to_address
    - wcstombs
    - std::uint32_t
    - std::vector::begin
    - sim
    - std::vector<ip_route>
    - std::vector::end
    - aux::get_library_procedure<aux::iphlpapi, GetIpForwardTable2_t>
    - libtorrent::build_netmask
    - ip_route::gateway::is_v6
    - reinterpret_cast<rt_msghdr*>
    - libtorrent::parse_route
    - GetIfEntry
    - to_v4
    - aux::get_library_procedure<aux::iphlpapi, GetIfEntry_t>
    - ip_route::gateway::to_v6
    - FreeMibTable
    - char::char
    - GetIpForwardTable
    - make_address_v6
    - std::strncpy
    - libtorrent::clear
    - aux::get_library_procedure<aux::iphlpapi, FreeMibTable_t>
    - libtorrent::nl_dump_request
    - std::string
    - NLMSG_LENGTH
    - sim::socket
    - __libsocket_sysctl
    - static_cast<void*>
    - std::unique_ptr::get
    - reinterpret_cast<char const*>
    - address_v6::scope_id
    - malloc
    - address_v4
    - to_v6
    - TORRENT_UNUSED
    - std::find_if
    - system_category
    - std::vector::data
    - address_v6
    - std::vector::push_back
    - aux::get_library_procedure<aux::iphlpapi, GetIpForwardTable_t>
    - reinterpret_cast<ifreq const*>
    - error_code
    - libtorrent::sockaddr_to_address
    - is_v4
    - sysctl
    - libtorrent::enum_net_interfaces
    - GetIpForwardTable2
    - wcslen
    - std::strcpy
    - ioctl
    linkageType: ''
    returnType: std::vector<ip_route>
    signature: std::vector<ip_route> enum_routes(io_context& ios, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::enum_net_interfaces
      Src: /src/libtorrent/src/enum_net.cpp:1498,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/enum_net.cpp:1504,1
    - Dst: std::string
      Src: /src/libtorrent/src/enum_net.cpp:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - addr
    - ' ios'
    - ' ec'
    argTypes:
    - address
    - io_context
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1496
    functionDepth: 5
    functionLinenumber: 1496
    functionLinenumberEnd: 1505
    functionName: libtorrent::device_for_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::string
    - libtorrent::enum_net_interfaces
    - std::vector::end
    - std::find_if
    linkageType: ''
    returnType: std::string
    signature: std::string device_for_address(address addr, io_context& ios, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(socket_closer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(socket_closer &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: '& operator=(socket_closer const&)'
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_closer
    signature: socket_closer & operator=(socket_closer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: '& operator=(socket_closer &&)'
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_closer
    signature: socket_closer & operator=(socket_closer &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/enum_net.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: ~socket_closer()
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    linkageType: ''
    returnType: void
    signature: void ~socket_closer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: boost::asio::ip::address_v4::bytes_type::data
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: boost::asio::ip::address_v4::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ina
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: libtorrent::inaddr_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 7
    functionsReached:
    - std::memcpy
    - boost::asio::ip::address_v4::bytes_type::data
    - libtorrent::min
    - std::size_t
    - boost::asio::ip::address_v4::bytes_type::size
    - address_v4
    linkageType: ''
    returnType: address_v4
    signature: address_v4 inaddr_to_address(void const* ina, int const len = 4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: boost::asio::ip::address_v6::bytes_type::data
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: boost::asio::ip::address_v6::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ina6
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: libtorrent::inaddr6_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 6
    functionsReached:
    - std::memcpy
    - libtorrent::min
    - address_v6
    - boost::asio::ip::address_v6::bytes_type::size
    - std::size_t
    - boost::asio::ip::address_v6::bytes_type::data
    linkageType: ''
    returnType: address_v6
    signature: address_v6 inaddr6_to_address(void const* ina6, int const len = 16)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sin
    argTypes:
    - sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: libtorrent::sockaddr_len
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sockaddr_len(sockaddr const* sin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:204,1
    - Dst: reinterpret_cast<sockaddr_in const*>
      Src: /src/libtorrent/src/enum_net.cpp:204,1
    - Dst: libtorrent::sockaddr_len
      Src: /src/libtorrent/src/enum_net.cpp:205,1
    - Dst: reinterpret_cast<sockaddr_in6 const*>
      Src: /src/libtorrent/src/enum_net.cpp:208,1
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:209,1
    - Dst: libtorrent::sockaddr_len
      Src: /src/libtorrent/src/enum_net.cpp:210,1
    - Dst: auto::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:211,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sin
    argTypes:
    - sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: libtorrent::sockaddr_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::inaddr_to_address
    - libtorrent::sockaddr_len
    - auto::scope_id
    - reinterpret_cast<sockaddr_in6 const*>
    - libtorrent::address
    - libtorrent::inaddr6_to_address
    - reinterpret_cast<sockaddr_in const*>
    linkageType: ''
    returnType: address
    signature: address sockaddr_to_address(sockaddr const* sin, int assume_family
      = -1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - family
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: libtorrent::valid_addr_family
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_addr_family(int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: libtorrent::convert_if_flags
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: interface_flags
    signature: interface_flags convert_if_flags(unsigned int const f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/enum_net.cpp:263,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/enum_net.cpp:263,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/enum_net.cpp:266,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/enum_net.cpp:266,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/enum_net.cpp:270,1
    - Dst: on_msg
      Src: /src/libtorrent/src/enum_net.cpp:281,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - sock
    - seq
    - pid
    - on_msg
    argTypes:
    - int
    - std::uint32_t
    - std::uint32_t
    - std::function<void(nlmsghdr const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: libtorrent::read_nl_sock
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 2
    functionsReached:
    - reinterpret_cast<nlmsghdr const*>
    - std::array::size
    - std::array::data
    - libtorrent::aux::nlmsg_ok
    - libtorrent::aux::nlmsg_next
    - on_msg
    - recv
    linkageType: ''
    returnType: int
    signature: "int read_nl_sock(int sock, std::uint32_t const seq, std::uint32_t
      const pid\n\t\t, std::function<void(nlmsghdr const*)> on_msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::send
      Src: /src/libtorrent/src/enum_net.cpp:299,1
    - Dst: ::getsockname
      Src: /src/libtorrent/src/enum_net.cpp:305,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:305,1
    - Dst: libtorrent::read_nl_sock
      Src: /src/libtorrent/src/enum_net.cpp:308,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/enum_net.cpp:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - sock
    - seq
    - request_msg
    - on_msg
    argTypes:
    - int
    - std::uint32_t
    - nlmsghdr*
    - std::function<void(nlmsghdr const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 309
    functionName: libtorrent::nl_dump_request
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 2
    functionsReached:
    - ::getsockname
    - reinterpret_cast<sockaddr*>
    - libtorrent::broadcast_socket::send
    - libtorrent::read_nl_sock
    - libtorrent::move
    linkageType: ''
    returnType: int
    signature: "int nl_dump_request(int const sock, std::uint32_t const seq\n\t\t,
      nlmsghdr* const request_msg, std::function<void(nlmsghdr const*)> on_msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:313,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - address_family
    - in
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: libtorrent::to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::inaddr_to_address
    - libtorrent::inaddr6_to_address
    linkageType: ''
    returnType: address
    signature: address to_address(int const address_family, void const* in)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ifinfomsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:329,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:329,1
    - Dst: libtorrent::aux::ifla_rta
      Src: /src/libtorrent/src/enum_net.cpp:330,1
    - Dst: libtorrent::aux::ifla_payload
      Src: /src/libtorrent/src/enum_net.cpp:331,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:334,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:337,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:337,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:339,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:343,1
    - Dst: static_cast<char const*>
      Src: /src/libtorrent/src/enum_net.cpp:343,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:346,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:347,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - nl_hdr
    argTypes:
    - nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 364
    functionName: libtorrent::parse_nl_link
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::ifla_rta
    - libtorrent::aux::rta_data
    - std::memcpy
    - libtorrent::aux::ifla_payload
    - static_cast<char const*>
    - libtorrent::aux::rta_next
    - libtorrent::convert_if_flags
    - libtorrent::aux::nlmsg_data
    - libtorrent::aux::rta_ok
    - std::strncpy
    - static_cast<ifinfomsg const*>
    linkageType: ''
    returnType: link_info
    signature: link_info parse_nl_link(nlmsghdr const* nl_hdr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<rtmsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:371,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:371,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:373,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:380,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:381,1
    - Dst: libtorrent::aux::rtm_payload
      Src: /src/libtorrent/src/enum_net.cpp:385,1
    - Dst: libtorrent::aux::rtm_rta
      Src: /src/libtorrent/src/enum_net.cpp:386,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:387,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:387,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:392,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:392,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:395,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:395,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:398,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:398,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:401,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:401,1
    - Dst: ip_route*::gateway::is_v6
      Src: /src/libtorrent/src/enum_net.cpp:406,1
    - Dst: ip_route*::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:406,1
    - Dst: ip_route*::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:408,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:409,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:409,1
    - Dst: ::if_indextoname
      Src: /src/libtorrent/src/enum_net.cpp:414,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:414,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:416,1
    - Dst: ::ioctl
      Src: /src/libtorrent/src/enum_net.cpp:417,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:419,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - s
    - nl_hdr
    - rt_info
    argTypes:
    - int
    - nlmsghdr*
    - ip_route*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 421
    functionName: libtorrent::parse_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - static_cast<rtmsg const*>
    - libtorrent::build_netmask
    - std::memcpy
    - address_v6
    - libtorrent::aux::rta_data
    - ip_route*::gateway::to_v6
    - libtorrent::to_address
    - libtorrent::aux::rtm_payload
    - std::uint32_t
    - libtorrent::aux::rtm_rta
    - libtorrent::aux::rta_next
    - ip_route*::gateway::is_v6
    - ::ioctl
    - address_v6::scope_id
    - libtorrent::aux::nlmsg_data
    - libtorrent::aux::rta_ok
    - libtorrent::valid_addr_family
    - ::if_indextoname
    linkageType: ''
    returnType: bool
    signature: bool parse_route(int s, nlmsghdr const* nl_hdr, ip_route* rt_info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ifaddrmsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:429,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:429,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:431,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: span<link_info const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:436,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:436,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:437,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:440,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:442,1
    - Dst: libtorrent::aux::ifa_payload
      Src: /src/libtorrent/src/enum_net.cpp:443,1
    - Dst: libtorrent::aux::ifa_rta
      Src: /src/libtorrent/src/enum_net.cpp:444,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:445,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:445,1
    - Dst: ip_interface*::interface_address::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:453,1
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:459,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:459,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:461,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:466,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:466,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - nl_hdr
    - nics
    - ip_info
    argTypes:
    - nlmsghdr*
    - span<link_info const>
    - ip_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 487
    functionName: libtorrent::parse_nl_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - span<link_info const>::begin
    - libtorrent::aux::rta_data
    - libtorrent::inaddr_to_address
    - libtorrent::aux::rta_next
    - libtorrent::aux::ifa_payload
    - libtorrent::build_netmask
    - span<link_info const>::end
    - libtorrent::aux::nlmsg_data
    - TORRENT_ASSERT
    - libtorrent::aux::ifa_rta
    - libtorrent::address
    - address_v6::scope_id
    - libtorrent::aux::rta_ok
    - libtorrent::valid_addr_family
    - libtorrent::inaddr6_to_address
    - std::find_if
    - std::memcpy
    - static_cast<ifaddrmsg const*>
    - ip_interface*::interface_address::is_unspecified
    linkageType: ''
    returnType: bool
    signature: "bool parse_nl_address(nlmsghdr const* nl_hdr, span<link_info const>
      nics\n\t\t, ip_interface* ip_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:499,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: ROUNDUP
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:521,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:524,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:525,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:526,1
    - Dst: ip_route*::destination::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:527,1
    - Dst: if_indextoname
      Src: /src/libtorrent/src/enum_net.cpp:528,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:529,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - rtm
    - rt_info
    argTypes:
    - rt_msghdr*
    - ip_route*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 531
    functionName: libtorrent::parse_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<sockaddr*>
    - reinterpret_cast<char*>
    - libtorrent::sockaddr_to_address
    - ip_route*::destination::is_v4
    - if_indextoname
    - ROUNDUP
    - libtorrent::valid_addr_family
    linkageType: ''
    returnType: bool
    signature: bool parse_route(int, rt_msghdr* rtm, ip_route* rt_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 511
    functionName: ROUNDUP
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:541,1
    - Dst: ip_interface::interface_address::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:542,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:546,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:552,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ifa
    - rv
    argTypes:
    - ifaddrs*
    - ip_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 556
    functionName: libtorrent::iface_from_ifaddrs
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - ip_interface::interface_address::is_unspecified
    - std::strncpy
    - libtorrent::sockaddr_to_address
    - libtorrent::convert_if_flags
    linkageType: ''
    returnType: bool
    signature: bool iface_from_ifaddrs(ifaddrs *ifa, ip_interface &rv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:561,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:561,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:562,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:570,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mask
    - prefix_bits
    argTypes:
    - span<unsigned char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 580
    functionName: libtorrent::build_netmask_impl
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - span<unsigned char>::size
    linkageType: ''
    returnType: void
    signature: void build_netmask_impl(span<unsigned char> mask, int prefix_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(socket_closer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::socket_closer
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_closer(socket_closer &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: '& operator=(socket_closer const&)'
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_closer
    signature: socket_closer & operator=(socket_closer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: '& operator=(socket_closer &&)'
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_closer
    signature: socket_closer & operator=(socket_closer &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::close
      Src: /src/libtorrent/src/enum_net.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: ~socket_closer()
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    linkageType: ''
    returnType: void
    signature: void ~socket_closer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: boost::asio::ip::address_v4::bytes_type::data
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: boost::asio::ip::address_v4::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:180,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ina
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: libtorrent::inaddr_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 10
    functionsReached:
    - std::memcpy
    - boost::asio::ip::address_v4::bytes_type::data
    - libtorrent::min
    - std::size_t
    - boost::asio::ip::address_v4::bytes_type::size
    - address_v4
    linkageType: ''
    returnType: address_v4
    signature: address_v4 inaddr_to_address(void const* ina, int const len = 4)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: boost::asio::ip::address_v6::bytes_type::data
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: boost::asio::ip::address_v6::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:187,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ina6
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: libtorrent::inaddr6_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 9
    functionsReached:
    - std::memcpy
    - libtorrent::min
    - address_v6
    - boost::asio::ip::address_v6::bytes_type::size
    - std::size_t
    - boost::asio::ip::address_v6::bytes_type::data
    linkageType: ''
    returnType: address_v6
    signature: address_v6 inaddr6_to_address(void const* ina6, int const len = 16)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sin
    argTypes:
    - sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: libtorrent::sockaddr_len
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sockaddr_len(sockaddr const* sin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:204,1
    - Dst: reinterpret_cast<sockaddr_in const*>
      Src: /src/libtorrent/src/enum_net.cpp:204,1
    - Dst: libtorrent::sockaddr_len
      Src: /src/libtorrent/src/enum_net.cpp:205,1
    - Dst: reinterpret_cast<sockaddr_in6 const*>
      Src: /src/libtorrent/src/enum_net.cpp:208,1
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:209,1
    - Dst: libtorrent::sockaddr_len
      Src: /src/libtorrent/src/enum_net.cpp:210,1
    - Dst: auto::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:211,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sin
    argTypes:
    - sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: libtorrent::sockaddr_to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::inaddr_to_address
    - libtorrent::sockaddr_len
    - auto::scope_id
    - reinterpret_cast<sockaddr_in6 const*>
    - libtorrent::address
    - libtorrent::inaddr6_to_address
    - reinterpret_cast<sockaddr_in const*>
    linkageType: ''
    returnType: address
    signature: address sockaddr_to_address(sockaddr const* sin, int assume_family
      = -1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - family
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: libtorrent::valid_addr_family
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_addr_family(int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: libtorrent::convert_if_flags
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: interface_flags
    signature: interface_flags convert_if_flags(unsigned int const f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/enum_net.cpp:260,1
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/enum_net.cpp:263,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/enum_net.cpp:263,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/enum_net.cpp:266,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/enum_net.cpp:266,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/enum_net.cpp:270,1
    - Dst: on_msg
      Src: /src/libtorrent/src/enum_net.cpp:281,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - sock
    - seq
    - pid
    - on_msg
    argTypes:
    - int
    - std::uint32_t
    - std::uint32_t
    - std::function<void(nlmsghdr const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: libtorrent::read_nl_sock
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 3
    functionsReached:
    - reinterpret_cast<nlmsghdr const*>
    - std::array::size
    - std::array::data
    - libtorrent::aux::nlmsg_ok
    - libtorrent::aux::nlmsg_next
    - on_msg
    - recv
    linkageType: ''
    returnType: int
    signature: "int read_nl_sock(int sock, std::uint32_t const seq, std::uint32_t
      const pid\n\t\t, std::function<void(nlmsghdr const*)> on_msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::send
      Src: /src/libtorrent/src/enum_net.cpp:299,1
    - Dst: ::getsockname
      Src: /src/libtorrent/src/enum_net.cpp:305,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:305,1
    - Dst: libtorrent::read_nl_sock
      Src: /src/libtorrent/src/enum_net.cpp:308,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/enum_net.cpp:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - sock
    - seq
    - request_msg
    - on_msg
    argTypes:
    - int
    - std::uint32_t
    - nlmsghdr*
    - std::function<void(nlmsghdr const*)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 309
    functionName: libtorrent::nl_dump_request
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 2
    functionsReached:
    - ::getsockname
    - reinterpret_cast<sockaddr*>
    - libtorrent::broadcast_socket::send
    - libtorrent::read_nl_sock
    - libtorrent::move
    linkageType: ''
    returnType: int
    signature: "int nl_dump_request(int const sock, std::uint32_t const seq\n\t\t,
      nlmsghdr* const request_msg, std::function<void(nlmsghdr const*)> on_msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:313,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - address_family
    - in
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: libtorrent::to_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::inaddr_to_address
    - libtorrent::inaddr6_to_address
    linkageType: ''
    returnType: address
    signature: address to_address(int const address_family, void const* in)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ifinfomsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:329,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:329,1
    - Dst: libtorrent::aux::ifla_rta
      Src: /src/libtorrent/src/enum_net.cpp:330,1
    - Dst: libtorrent::aux::ifla_payload
      Src: /src/libtorrent/src/enum_net.cpp:331,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:334,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:337,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:337,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:339,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:343,1
    - Dst: static_cast<char const*>
      Src: /src/libtorrent/src/enum_net.cpp:343,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:346,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:347,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - nl_hdr
    argTypes:
    - nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 364
    functionName: libtorrent::parse_nl_link
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::ifla_rta
    - libtorrent::aux::rta_data
    - std::memcpy
    - libtorrent::aux::ifla_payload
    - static_cast<char const*>
    - libtorrent::aux::rta_next
    - libtorrent::convert_if_flags
    - libtorrent::aux::nlmsg_data
    - libtorrent::aux::rta_ok
    - std::strncpy
    - static_cast<ifinfomsg const*>
    linkageType: ''
    returnType: link_info
    signature: link_info parse_nl_link(nlmsghdr const* nl_hdr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<rtmsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:371,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:371,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:373,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:380,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:381,1
    - Dst: libtorrent::aux::rtm_payload
      Src: /src/libtorrent/src/enum_net.cpp:385,1
    - Dst: libtorrent::aux::rtm_rta
      Src: /src/libtorrent/src/enum_net.cpp:386,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:387,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:387,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:392,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:392,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:395,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:395,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:398,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:398,1
    - Dst: libtorrent::to_address
      Src: /src/libtorrent/src/enum_net.cpp:401,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:401,1
    - Dst: ip_route*::gateway::is_v6
      Src: /src/libtorrent/src/enum_net.cpp:406,1
    - Dst: ip_route*::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:406,1
    - Dst: ip_route*::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:408,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:409,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:409,1
    - Dst: ::if_indextoname
      Src: /src/libtorrent/src/enum_net.cpp:414,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:414,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:416,1
    - Dst: ::ioctl
      Src: /src/libtorrent/src/enum_net.cpp:417,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:419,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - s
    - nl_hdr
    - rt_info
    argTypes:
    - int
    - nlmsghdr*
    - ip_route*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 421
    functionName: libtorrent::parse_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - static_cast<rtmsg const*>
    - libtorrent::build_netmask
    - std::memcpy
    - address_v6
    - libtorrent::aux::rta_data
    - ip_route*::gateway::to_v6
    - libtorrent::to_address
    - libtorrent::aux::rtm_payload
    - std::uint32_t
    - libtorrent::aux::rtm_rta
    - libtorrent::aux::rta_next
    - ip_route*::gateway::is_v6
    - ::ioctl
    - address_v6::scope_id
    - libtorrent::aux::nlmsg_data
    - libtorrent::aux::rta_ok
    - libtorrent::valid_addr_family
    - ::if_indextoname
    linkageType: ''
    returnType: bool
    signature: bool parse_route(int s, nlmsghdr const* nl_hdr, ip_route* rt_info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ifaddrmsg const*>
      Src: /src/libtorrent/src/enum_net.cpp:429,1
    - Dst: libtorrent::aux::nlmsg_data
      Src: /src/libtorrent/src/enum_net.cpp:429,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:431,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: span<link_info const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:436,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:436,1
    - Dst: span<link_info const>::end
      Src: /src/libtorrent/src/enum_net.cpp:437,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:440,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:442,1
    - Dst: libtorrent::aux::ifa_payload
      Src: /src/libtorrent/src/enum_net.cpp:443,1
    - Dst: libtorrent::aux::ifa_rta
      Src: /src/libtorrent/src/enum_net.cpp:444,1
    - Dst: libtorrent::aux::rta_ok
      Src: /src/libtorrent/src/enum_net.cpp:445,1
    - Dst: libtorrent::aux::rta_next
      Src: /src/libtorrent/src/enum_net.cpp:445,1
    - Dst: ip_interface*::interface_address::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:453,1
    - Dst: libtorrent::inaddr6_to_address
      Src: /src/libtorrent/src/enum_net.cpp:459,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:459,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:461,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:466,1
    - Dst: libtorrent::aux::rta_data
      Src: /src/libtorrent/src/enum_net.cpp:466,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/enum_net.cpp:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - nl_hdr
    - nics
    - ip_info
    argTypes:
    - nlmsghdr*
    - span<link_info const>
    - ip_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 487
    functionName: libtorrent::parse_nl_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - span<link_info const>::begin
    - libtorrent::aux::rta_data
    - libtorrent::inaddr_to_address
    - libtorrent::aux::rta_next
    - libtorrent::aux::ifa_payload
    - libtorrent::build_netmask
    - span<link_info const>::end
    - libtorrent::aux::nlmsg_data
    - TORRENT_ASSERT
    - libtorrent::aux::ifa_rta
    - libtorrent::address
    - address_v6::scope_id
    - libtorrent::aux::rta_ok
    - libtorrent::valid_addr_family
    - libtorrent::inaddr6_to_address
    - std::find_if
    - std::memcpy
    - static_cast<ifaddrmsg const*>
    - ip_interface*::interface_address::is_unspecified
    linkageType: ''
    returnType: bool
    signature: "bool parse_nl_address(nlmsghdr const* nl_hdr, span<link_info const>
      nics\n\t\t, ip_interface* ip_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:499,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: ROUNDUP
      Src: /src/libtorrent/src/enum_net.cpp:512,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:521,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:524,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:525,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:526,1
    - Dst: ip_route*::destination::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:527,1
    - Dst: if_indextoname
      Src: /src/libtorrent/src/enum_net.cpp:528,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:529,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - rtm
    - rt_info
    argTypes:
    - rt_msghdr*
    - ip_route*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 531
    functionName: libtorrent::parse_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<sockaddr*>
    - reinterpret_cast<char*>
    - libtorrent::sockaddr_to_address
    - ip_route*::destination::is_v4
    - if_indextoname
    - ROUNDUP
    - libtorrent::valid_addr_family
    linkageType: ''
    returnType: bool
    signature: bool parse_route(int, rt_msghdr* rtm, ip_route* rt_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 511
    functionName: ROUNDUP
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:541,1
    - Dst: ip_interface::interface_address::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:542,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:546,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:552,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ifa
    - rv
    argTypes:
    - ifaddrs*
    - ip_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 556
    functionName: libtorrent::iface_from_ifaddrs
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - ip_interface::interface_address::is_unspecified
    - std::strncpy
    - libtorrent::sockaddr_to_address
    - libtorrent::convert_if_flags
    linkageType: ''
    returnType: bool
    signature: bool iface_from_ifaddrs(ifaddrs *ifa, ip_interface &rv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:561,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:561,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/enum_net.cpp:562,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:570,1
    - Dst: span<unsigned char>::size
      Src: /src/libtorrent/src/enum_net.cpp:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mask
    - prefix_bits
    argTypes:
    - span<unsigned char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 580
    functionName: libtorrent::build_netmask_impl
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - span<unsigned char>::size
    linkageType: ''
    returnType: void
    signature: void build_netmask_impl(span<unsigned char> mask, int prefix_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    functionName: libtorrent::family
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - is_v4
    linkageType: ''
    returnType: int
    signature: int family(address const& a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::build_netmask_impl
      Src: /src/libtorrent/src/enum_net.cpp:591,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:592,1
    - Dst: libtorrent::build_netmask_impl
      Src: /src/libtorrent/src/enum_net.cpp:597,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - prefix_bits
    - family
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 601
    functionName: libtorrent::build_netmask
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 10
    functionsReached:
    - libtorrent::build_netmask_impl
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address build_netmask(int prefix_bits, int const family)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:607,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:607,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:608,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:608,1
    - Dst: is_v6
      Src: /src/libtorrent/src/enum_net.cpp:610,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:612,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:612,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:614,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:615,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:616,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/src/enum_net.cpp:617,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:624,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:624,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:625,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ' a1'
    - ' a2'
    - ' mask'
    argTypes:
    - address
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 626
    functionName: libtorrent::match_addr_mask
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - to_v4
    - address_v6::bytes_type::size
    - to_v6
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool match_addr_mask(address const& a1, address const& a2, address
      const& mask)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:630,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/enum_net.cpp:632,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:639,1
    - Dst: get_ips
      Src: /src/libtorrent/src/enum_net.cpp:643,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:649,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/enum_net.cpp:650,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/enum_net.cpp:652,1
    - Dst: std::strcpy
      Src: /src/libtorrent/src/enum_net.cpp:653,1
    - Dst: std::strcpy
      Src: /src/libtorrent/src/enum_net.cpp:654,1
    - Dst: std::strcpy
      Src: /src/libtorrent/src/enum_net.cpp:655,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:656,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:659,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:662,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:662,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:677,1
    - Dst: NLMSG_LENGTH
      Src: /src/libtorrent/src/enum_net.cpp:677,1
    - Dst: libtorrent::nl_dump_request
      Src: /src/libtorrent/src/enum_net.cpp:683,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:688,1
    - Dst: libtorrent::parse_nl_link
      Src: /src/libtorrent/src/enum_net.cpp:688,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:691,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:691,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:701,1
    - Dst: NLMSG_LENGTH
      Src: /src/libtorrent/src/enum_net.cpp:701,1
    - Dst: libtorrent::nl_dump_request
      Src: /src/libtorrent/src/enum_net.cpp:705,1
    - Dst: libtorrent::parse_nl_address
      Src: /src/libtorrent/src/enum_net.cpp:707,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:707,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:710,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:710,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:714,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:717,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:717,1
    - Dst: getifaddrs
      Src: /src/libtorrent/src/enum_net.cpp:723,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:725,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:725,1
    - Dst: libtorrent::iface_from_ifaddrs
      Src: /src/libtorrent/src/enum_net.cpp:732,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:733,1
    - Dst: freeifaddrs
      Src: /src/libtorrent/src/enum_net.cpp:735,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:738,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:741,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:741,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:750,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:752,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:752,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/enum_net.cpp:756,1
    - Dst: reinterpret_cast<ifreq const*>
      Src: /src/libtorrent/src/enum_net.cpp:763,1
    - Dst: _SIZEOF_ADDR_IFREQ
      Src: /src/libtorrent/src/enum_net.cpp:766,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:775,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:779,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:780,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:784,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:785,1
    - Dst: libtorrent::convert_if_flags
      Src: /src/libtorrent/src/enum_net.cpp:786,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:790,1
    - Dst: ip_interface::interface_address::is_v6
      Src: /src/libtorrent/src/enum_net.cpp:792,1
    - Dst: address_v6::any
      Src: /src/libtorrent/src/enum_net.cpp:795,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:799,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:799,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:805,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:807,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, GetAdaptersAddresses_t>
      Src: /src/libtorrent/src/enum_net.cpp:816,1
    - Dst: reinterpret_cast<IP_ADAPTER_ADDRESSES*>
      Src: /src/libtorrent/src/enum_net.cpp:823,1
    - Dst: GetAdaptersAddresses
      Src: /src/libtorrent/src/enum_net.cpp:825,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/enum_net.cpp:829,1
    - Dst: reinterpret_cast<IP_ADAPTER_ADDRESSES*>
      Src: /src/libtorrent/src/enum_net.cpp:830,1
    - Dst: GetAdaptersAddresses
      Src: /src/libtorrent/src/enum_net.cpp:831,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:836,1
    - Dst: WSAGetLastError
      Src: /src/libtorrent/src/enum_net.cpp:836,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:836,1
    - Dst: std::vector<ip_interface>
      Src: /src/libtorrent/src/enum_net.cpp:837,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:844,1
    - Dst: wcstombs
      Src: /src/libtorrent/src/enum_net.cpp:846,1
    - Dst: wcstombs
      Src: /src/libtorrent/src/enum_net.cpp:848,1
    - Dst: libtorrent::valid_addr_family
      Src: /src/libtorrent/src/enum_net.cpp:873,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:884,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:892,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:892,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:893,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:893,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:894,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:910,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:914,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:920,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:920,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/enum_net.cpp:921,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:921,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:924,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:932,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:935,1
    - Dst: WSAGetLastError
      Src: /src/libtorrent/src/enum_net.cpp:935,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:935,1
    - Dst: WSAIoctl
      Src: /src/libtorrent/src/enum_net.cpp:942,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:945,1
    - Dst: WSAGetLastError
      Src: /src/libtorrent/src/enum_net.cpp:945,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:945,1
    - Dst: closesocket
      Src: /src/libtorrent/src/enum_net.cpp:946,1
    - Dst: closesocket
      Src: /src/libtorrent/src/enum_net.cpp:949,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:956,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/enum_net.cpp:957,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:958,1
    - Dst: ip_interface::interface_address::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:959,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:960,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 160
    argCount: 2
    argNames:
    - ' ios'
    - ' ec'
    argTypes:
    - io_context
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 968
    functionName: libtorrent::enum_net_interfaces
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 3
    functionsReached:
    - make_address_v4
    - get_ips
    - std::uint32_t
    - freeifaddrs
    - libtorrent::parse_nl_address
    - wcstombs
    - libtorrent::convert_if_flags
    - libtorrent::build_netmask
    - aux::get_library_procedure<aux::iphlpapi, GetAdaptersAddresses_t>
    - GetAdaptersAddresses
    - WSAIoctl
    - make_address_v6
    - std::strncpy
    - closesocket
    - libtorrent::clear
    - WSAGetLastError
    - ip_interface::interface_address::is_v4
    - std::vector::resize
    - libtorrent::iface_from_ifaddrs
    - libtorrent::nl_dump_request
    - NLMSG_LENGTH
    - sim::socket
    - address_v4::any
    - libtorrent::address
    - reinterpret_cast<char const*>
    - libtorrent::valid_addr_family
    - reinterpret_cast<IP_ADAPTER_ADDRESSES*>
    - TORRENT_UNUSED
    - address_v4
    - system_category
    - std::vector::push_back
    - address_v6
    - _SIZEOF_ADDR_IFREQ
    - reinterpret_cast<ifreq const*>
    - error_code
    - libtorrent::sockaddr_to_address
    - address_v6::any
    - libtorrent::parse_nl_link
    - is_v4
    - std::vector<ip_interface>
    - getifaddrs
    - ip_interface::interface_address::is_v6
    - std::strcpy
    - ioctl
    linkageType: ''
    returnType: std::vector<ip_interface>
    signature: std::vector<ip_interface> enum_net_interfaces(io_context& ios, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:972,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/enum_net.cpp:975,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:977,1
    - Dst: span<ip_route const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:977,1
    - Dst: span<ip_route const>::end
      Src: /src/libtorrent/src/enum_net.cpp:977,1
    - Dst: destination::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:980,1
    - Dst: destination::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:981,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/src/enum_net.cpp:981,1
    - Dst: gateway::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:982,1
    - Dst: source_hint::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:986,1
    - Dst: std::strcmp
      Src: /src/libtorrent/src/enum_net.cpp:987,1
    - Dst: span<ip_route const>::end
      Src: /src/libtorrent/src/enum_net.cpp:989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - ' iface'
    - routes
    argTypes:
    - ip_interface
    - span<ip_route const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 991
    functionName: libtorrent::get_gateway
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - destination::is_unspecified
    - span<ip_route const>::begin
    - destination::is_v4
    - gateway::is_unspecified
    - span<ip_route const>::end
    - interface_address::is_v4
    - std::strcmp
    - libtorrent::aux::is_local
    - source_hint::is_unspecified
    - std::find_if
    linkageType: ''
    returnType: boost::optional<address>
    signature: boost::optional<address> get_gateway(ip_interface const& iface, span<ip_route
      const> routes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/enum_net.cpp:995,1
    - Dst: span<ip_route const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:995,1
    - Dst: span<ip_route const>::end
      Src: /src/libtorrent/src/enum_net.cpp:995,1
    - Dst: destination::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:1000,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/enum_net.cpp:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - routes
    argTypes:
    - span<ip_route const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1003
    functionName: libtorrent::has_any_internet_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - span<ip_route const>::begin
    - libtorrent::aux::is_global
    - span<ip_route const>::end
    - std::any_of
    - destination::is_unspecified
    linkageType: ''
    returnType: bool
    signature: bool has_any_internet_route(span<ip_route const> routes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/enum_net.cpp:1007,1
    - Dst: span<ip_route const>::begin
      Src: /src/libtorrent/src/enum_net.cpp:1007,1
    - Dst: span<ip_route const>::end
      Src: /src/libtorrent/src/enum_net.cpp:1007,1
    - Dst: libtorrent::family
      Src: /src/libtorrent/src/enum_net.cpp:1012,1
    - Dst: destination::is_unspecified
      Src: /src/libtorrent/src/enum_net.cpp:1014,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/enum_net.cpp:1015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - device
    - fam
    - routes
    argTypes:
    - string_view
    - int
    - span<ip_route const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1018
    functionName: libtorrent::has_internet_route
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - span<ip_route const>::begin
    - libtorrent::aux::is_global
    - libtorrent::family
    - span<ip_route const>::end
    - std::any_of
    - destination::is_unspecified
    linkageType: ''
    returnType: bool
    signature: bool has_internet_route(string_view device, int const fam, span<ip_route
      const> routes)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:1023,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/enum_net.cpp:1024,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:1031,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/enum_net.cpp:1035,1
    - Dst: get_ips
      Src: /src/libtorrent/src/enum_net.cpp:1037,1
    - Dst: is_v4
      Src: /src/libtorrent/src/enum_net.cpp:1042,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:1044,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/enum_net.cpp:1045,1
    - Dst: to_v4
      Src: /src/libtorrent/src/enum_net.cpp:1046,1
    - Dst: address_v4
      Src: /src/libtorrent/src/enum_net.cpp:1048,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:1052,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/enum_net.cpp:1053,1
    - Dst: to_v6
      Src: /src/libtorrent/src/enum_net.cpp:1054,1
    - Dst: address_v6
      Src: /src/libtorrent/src/enum_net.cpp:1056,1
    - Dst: std::strcpy
      Src: /src/libtorrent/src/enum_net.cpp:1058,1
    - Dst: sim
      Src: /src/libtorrent/src/enum_net.cpp:1059,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1060,1
    - Dst: __libsocket_sysctl
      Src: /src/libtorrent/src/enum_net.cpp:1168,1
    - Dst: sysctl
      Src: /src/libtorrent/src/enum_net.cpp:1170,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1173,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1173,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1174,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1179,1
    - Dst: char::char
      Src: /src/libtorrent/src/enum_net.cpp:1182,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1186,1
    - Dst: __libsocket_sysctl
      Src: /src/libtorrent/src/enum_net.cpp:1190,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/enum_net.cpp:1190,1
    - Dst: sysctl
      Src: /src/libtorrent/src/enum_net.cpp:1192,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/enum_net.cpp:1192,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1195,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1195,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1196,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/enum_net.cpp:1199,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:1201,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1204,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1204,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1205,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/enum_net.cpp:1209,1
    - Dst: reinterpret_cast<rt_msghdr*>
      Src: /src/libtorrent/src/enum_net.cpp:1211,1
    - Dst: libtorrent::parse_route
      Src: /src/libtorrent/src/enum_net.cpp:1220,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1220,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, GetIfEntry_t>
      Src: /src/libtorrent/src/enum_net.cpp:1276,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1282,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, GetIpForwardTable2_t>
      Src: /src/libtorrent/src/enum_net.cpp:1290,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, FreeMibTable_t>
      Src: /src/libtorrent/src/enum_net.cpp:1291,1
    - Dst: GetIpForwardTable2
      Src: /src/libtorrent/src/enum_net.cpp:1295,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1301,1
    - Dst: ip_route::gateway::is_v6
      Src: /src/libtorrent/src/enum_net.cpp:1304,1
    - Dst: ip_route::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:1304,1
    - Dst: ip_route::gateway::to_v6
      Src: /src/libtorrent/src/enum_net.cpp:1306,1
    - Dst: address_v6::scope_id
      Src: /src/libtorrent/src/enum_net.cpp:1307,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1310,1
    - Dst: libtorrent::build_netmask
      Src: /src/libtorrent/src/enum_net.cpp:1312,1
    - Dst: GetIfEntry
      Src: /src/libtorrent/src/enum_net.cpp:1316,1
    - Dst: wcsncmp
      Src: /src/libtorrent/src/enum_net.cpp:1320,1
    - Dst: wcslen
      Src: /src/libtorrent/src/enum_net.cpp:1320,1
    - Dst: wcslen
      Src: /src/libtorrent/src/enum_net.cpp:1322,1
    - Dst: wcstombs
      Src: /src/libtorrent/src/enum_net.cpp:1324,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1327,1
    - Dst: FreeMibTable
      Src: /src/libtorrent/src/enum_net.cpp:1331,1
    - Dst: aux::get_library_procedure<aux::iphlpapi, GetIpForwardTable_t>
      Src: /src/libtorrent/src/enum_net.cpp:1339,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1343,1
    - Dst: GetIpForwardTable
      Src: /src/libtorrent/src/enum_net.cpp:1348,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1351,1
    - Dst: malloc
      Src: /src/libtorrent/src/enum_net.cpp:1354,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1358,1
    - Dst: GetIpForwardTable
      Src: /src/libtorrent/src/enum_net.cpp:1361,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1366,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1367,1
    - Dst: libtorrent::inaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1368,1
    - Dst: GetIfEntry
      Src: /src/libtorrent/src/enum_net.cpp:1371,1
    - Dst: wcstombs
      Src: /src/libtorrent/src/enum_net.cpp:1373,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1376,1
    - Dst: free
      Src: /src/libtorrent/src/enum_net.cpp:1382,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:1384,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1387,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1387,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1388,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:1392,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1395,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1395,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1396,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/enum_net.cpp:1405,1
    - Dst: NLMSG_LENGTH
      Src: /src/libtorrent/src/enum_net.cpp:1405,1
    - Dst: libtorrent::nl_dump_request
      Src: /src/libtorrent/src/enum_net.cpp:1410,1
    - Dst: libtorrent::parse_route
      Src: /src/libtorrent/src/enum_net.cpp:1412,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1412,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1415,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1415,1
    - Dst: std::vector<ip_route>
      Src: /src/libtorrent/src/enum_net.cpp:1416,1
    - Dst: sim::socket
      Src: /src/libtorrent/src/enum_net.cpp:1422,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1425,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1425,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:1431,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1433,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1433,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/enum_net.cpp:1441,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/enum_net.cpp:1441,1
    - Dst: ioctl
      Src: /src/libtorrent/src/enum_net.cpp:1442,1
    - Dst: error_code
      Src: /src/libtorrent/src/enum_net.cpp:1444,1
    - Dst: system_category
      Src: /src/libtorrent/src/enum_net.cpp:1444,1
    - Dst: reinterpret_cast<ifreq const*>
      Src: /src/libtorrent/src/enum_net.cpp:1448,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/enum_net.cpp:1450,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1459,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1464,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1469,1
    - Dst: libtorrent::sockaddr_to_address
      Src: /src/libtorrent/src/enum_net.cpp:1474,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/enum_net.cpp:1478,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/enum_net.cpp:1481,1
    - Dst: reinterpret_cast<ifreq const*>
      Src: /src/libtorrent/src/enum_net.cpp:1483,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/enum_net.cpp:1483,1
    - Dst: libtorrent::enum_net_interfaces
      Src: /src/libtorrent/src/enum_net.cpp:1498,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/enum_net.cpp:1504,1
    - Dst: std::string
      Src: /src/libtorrent/src/enum_net.cpp:1504,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 174
    argCount: 2
    argNames:
    - ' ios'
    - ' ec'
    argTypes:
    - io_context
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1020
    functionDepth: 5
    functionLinenumber: 1020
    functionLinenumberEnd: 1506
    functionName: libtorrent::enum_routes
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 1
    functionsReached:
    - free
    - static_cast<int>
    - make_address_v4
    - wcsncmp
    - get_ips
    - libtorrent::inaddr_to_address
    - wcstombs
    - std::uint32_t
    - std::vector::begin
    - sim
    - std::vector<ip_route>
    - std::vector::end
    - aux::get_library_procedure<aux::iphlpapi, GetIpForwardTable2_t>
    - libtorrent::build_netmask
    - ip_route::gateway::is_v6
    - reinterpret_cast<rt_msghdr*>
    - libtorrent::parse_route
    - GetIfEntry
    - to_v4
    - aux::get_library_procedure<aux::iphlpapi, GetIfEntry_t>
    - ip_route::gateway::to_v6
    - FreeMibTable
    - char::char
    - GetIpForwardTable
    - make_address_v6
    - std::strncpy
    - libtorrent::clear
    - aux::get_library_procedure<aux::iphlpapi, FreeMibTable_t>
    - libtorrent::nl_dump_request
    - std::string
    - NLMSG_LENGTH
    - sim::socket
    - __libsocket_sysctl
    - static_cast<void*>
    - std::unique_ptr::get
    - reinterpret_cast<char const*>
    - address_v6::scope_id
    - malloc
    - address_v4
    - to_v6
    - TORRENT_UNUSED
    - std::find_if
    - system_category
    - std::vector::data
    - address_v6
    - std::vector::push_back
    - aux::get_library_procedure<aux::iphlpapi, GetIpForwardTable_t>
    - reinterpret_cast<ifreq const*>
    - error_code
    - libtorrent::sockaddr_to_address
    - is_v4
    - sysctl
    - libtorrent::enum_net_interfaces
    - GetIpForwardTable2
    - wcslen
    - std::strcpy
    - ioctl
    linkageType: ''
    returnType: std::vector<ip_route>
    signature: std::vector<ip_route> enum_routes(io_context& ios, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::enum_net_interfaces
      Src: /src/libtorrent/src/enum_net.cpp:1498,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/enum_net.cpp:1501,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/enum_net.cpp:1504,1
    - Dst: std::string
      Src: /src/libtorrent/src/enum_net.cpp:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - addr
    - ' ios'
    - ' ec'
    argTypes:
    - address
    - io_context
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1496
    functionDepth: 5
    functionLinenumber: 1496
    functionLinenumberEnd: 1505
    functionName: libtorrent::device_for_address
    functionSourceFile: /src/libtorrent/src/enum_net.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::string
    - libtorrent::enum_net_interfaces
    - std::vector::end
    - std::find_if
    linkageType: ''
    returnType: std::string
    signature: std::string device_for_address(address addr, io_context& ios, error_code&
      ec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _internal_drain
      Src: /src/libtorrent/src/load_torrent.cpp:48,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:51,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:51,1
    - Dst: tracker_tiers::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:52,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/load_torrent.cpp:54,1
    - Dst: url_seeds::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:60,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:60,1
    - Dst: http_seeds::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:62,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:62,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:65,1
    - Dst: v2_piece_hashes_verified
      Src: /src/libtorrent/src/load_torrent.cpp:67,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/load_torrent.cpp:69,1
    - Dst: libtorrent::merkle_pad
      Src: /src/libtorrent/src/load_torrent.cpp:71,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/load_torrent.cpp:72,1
    - Dst: merkle_trees::resize
      Src: /src/libtorrent/src/load_torrent.cpp:73,1
    - Dst: num_files
      Src: /src/libtorrent/src/load_torrent.cpp:73,1
    - Dst: merkle_tree_mask::resize
      Src: /src/libtorrent/src/load_torrent.cpp:74,1
    - Dst: num_files
      Src: /src/libtorrent/src/load_torrent.cpp:74,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/load_torrent.cpp:75,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/load_torrent.cpp:77,1
    - Dst: file_size
      Src: /src/libtorrent/src/load_torrent.cpp:78,1
    - Dst: libtorrent::piece_layer
      Src: /src/libtorrent/src/load_torrent.cpp:79,1
    - Dst: reserve
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/src/load_torrent.cpp:82,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/load_torrent.cpp:82,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/load_torrent.cpp:83,1
    - Dst: auto::data
      Src: /src/libtorrent/src/load_torrent.cpp:83,1
    - Dst: libtorrent::merkle_num_nodes
      Src: /src/libtorrent/src/load_torrent.cpp:85,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/load_torrent.cpp:86,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/load_torrent.cpp:86,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/load_torrent.cpp:87,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/load_torrent.cpp:88,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/load_torrent.cpp:90,1
    - Dst: libtorrent::merkle_root_scratch
      Src: /src/libtorrent/src/load_torrent.cpp:92,1
    - Dst: root
      Src: /src/libtorrent/src/load_torrent.cpp:96,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/load_torrent.cpp:97,1
    - Dst: resize
      Src: /src/libtorrent/src/load_torrent.cpp:101,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:101,1
    - Dst: libtorrent::merkle_first_leaf
      Src: /src/libtorrent/src/load_torrent.cpp:102,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:105,1
    - Dst: free_piece_layers
      Src: /src/libtorrent/src/load_torrent.cpp:108,1
    - Dst: ti::info_hashes
      Src: /src/libtorrent/src/load_torrent.cpp:110,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 111
    functionName: libtorrent::update_atp
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::merkle_pad
    - merkle_tree_mask::resize
    - libtorrent::files
    - test_piece_size
    - libtorrent::merkle_num_nodes
    - libtorrent::merkle_root_scratch
    - merkle_trees::resize
    - _internal_drain
    - libtorrent::empty
    - file_size
    - pad_file_at
    - libtorrent::file_range
    - libtorrent::move
    - trackers::push_back
    - aux::throw_ex<system_error>
    - tracker_tiers::push_back
    - free_piece_layers
    - libtorrent::emplace_back
    - std::size_t
    - ti::info_hashes
    - libtorrent::piece_layer
    - num_files
    - libtorrent::merkle_first_leaf
    - auto::size
    - reserve
    - http_seeds::push_back
    - is_i2p
    - auto::data
    - file_num_pieces
    - root
    - libtorrent::merkle_num_leafs
    - resize
    - file_num_blocks
    - url_seeds::push_back
    - v2_piece_hashes_verified
    linkageType: ''
    returnType: void
    signature: void update_atp(add_torrent_params& atp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _internal_drain
      Src: /src/libtorrent/src/load_torrent.cpp:48,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:51,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:51,1
    - Dst: tracker_tiers::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:52,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/load_torrent.cpp:54,1
    - Dst: url_seeds::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:60,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:60,1
    - Dst: http_seeds::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:62,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:62,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:65,1
    - Dst: v2_piece_hashes_verified
      Src: /src/libtorrent/src/load_torrent.cpp:67,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/load_torrent.cpp:69,1
    - Dst: libtorrent::merkle_pad
      Src: /src/libtorrent/src/load_torrent.cpp:71,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/load_torrent.cpp:72,1
    - Dst: merkle_trees::resize
      Src: /src/libtorrent/src/load_torrent.cpp:73,1
    - Dst: num_files
      Src: /src/libtorrent/src/load_torrent.cpp:73,1
    - Dst: merkle_tree_mask::resize
      Src: /src/libtorrent/src/load_torrent.cpp:74,1
    - Dst: num_files
      Src: /src/libtorrent/src/load_torrent.cpp:74,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/load_torrent.cpp:75,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/load_torrent.cpp:77,1
    - Dst: file_size
      Src: /src/libtorrent/src/load_torrent.cpp:78,1
    - Dst: libtorrent::piece_layer
      Src: /src/libtorrent/src/load_torrent.cpp:79,1
    - Dst: reserve
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/src/load_torrent.cpp:82,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/load_torrent.cpp:82,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/load_torrent.cpp:83,1
    - Dst: auto::data
      Src: /src/libtorrent/src/load_torrent.cpp:83,1
    - Dst: libtorrent::merkle_num_nodes
      Src: /src/libtorrent/src/load_torrent.cpp:85,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/load_torrent.cpp:86,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/load_torrent.cpp:86,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/load_torrent.cpp:87,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/load_torrent.cpp:88,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/load_torrent.cpp:90,1
    - Dst: libtorrent::merkle_root_scratch
      Src: /src/libtorrent/src/load_torrent.cpp:92,1
    - Dst: root
      Src: /src/libtorrent/src/load_torrent.cpp:96,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/load_torrent.cpp:97,1
    - Dst: resize
      Src: /src/libtorrent/src/load_torrent.cpp:101,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:101,1
    - Dst: libtorrent::merkle_first_leaf
      Src: /src/libtorrent/src/load_torrent.cpp:102,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:105,1
    - Dst: free_piece_layers
      Src: /src/libtorrent/src/load_torrent.cpp:108,1
    - Dst: ti::info_hashes
      Src: /src/libtorrent/src/load_torrent.cpp:110,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 111
    functionName: libtorrent::update_atp
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::merkle_pad
    - merkle_tree_mask::resize
    - libtorrent::files
    - test_piece_size
    - libtorrent::merkle_num_nodes
    - libtorrent::merkle_root_scratch
    - merkle_trees::resize
    - _internal_drain
    - libtorrent::empty
    - file_size
    - pad_file_at
    - libtorrent::file_range
    - libtorrent::move
    - trackers::push_back
    - aux::throw_ex<system_error>
    - tracker_tiers::push_back
    - free_piece_layers
    - libtorrent::emplace_back
    - std::size_t
    - ti::info_hashes
    - libtorrent::piece_layer
    - num_files
    - libtorrent::merkle_first_leaf
    - auto::size
    - reserve
    - http_seeds::push_back
    - is_i2p
    - auto::data
    - file_num_pieces
    - root
    - libtorrent::merkle_num_leafs
    - resize
    - file_num_blocks
    - url_seeds::push_back
    - v2_piece_hashes_verified
    linkageType: ''
    returnType: void
    signature: void update_atp(add_torrent_params& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_file
      Src: /src/libtorrent/src/load_torrent.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: libtorrent::load_torrent_file
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::load_torrent_file
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_file(std::string const& filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_buffer
      Src: /src/libtorrent/src/load_torrent.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: libtorrent::load_torrent_buffer
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::load_torrent_buffer
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_buffer(span<char const> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_parsed
      Src: /src/libtorrent/src/load_torrent.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' torrent_file'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: libtorrent::load_torrent_parsed
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::load_torrent_parsed
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_parsed(bdecode_node const& torrent_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/load_torrent.cpp:125,1
    - Dst: libtorrent::update_atp
      Src: /src/libtorrent/src/load_torrent.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' filename'
    - ' cfg'
    argTypes:
    - std::string
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: libtorrent::load_torrent_file
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<torrent_info>
    - libtorrent::update_atp
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_file(std::string const& filename, load_torrent_limits
      const& cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/load_torrent.cpp:133,1
    - Dst: libtorrent::update_atp
      Src: /src/libtorrent/src/load_torrent.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buffer
    - ' cfg'
    argTypes:
    - span<char const>
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: libtorrent::load_torrent_buffer
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 3
    functionsReached:
    - std::make_shared<torrent_info>
    - libtorrent::update_atp
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_buffer(span<char const> buffer, load_torrent_limits
      const& cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/load_torrent.cpp:141,1
    - Dst: libtorrent::update_atp
      Src: /src/libtorrent/src/load_torrent.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' torrent_file'
    - ' cfg'
    argTypes:
    - bdecode_node
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: libtorrent::load_torrent_parsed
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<torrent_info>
    - libtorrent::update_atp
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_parsed(bdecode_node const& torrent_file,
      load_torrent_limits const& cfg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _internal_drain
      Src: /src/libtorrent/src/load_torrent.cpp:48,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:51,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:51,1
    - Dst: tracker_tiers::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:52,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/load_torrent.cpp:54,1
    - Dst: url_seeds::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:60,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:60,1
    - Dst: http_seeds::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:62,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:62,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:65,1
    - Dst: v2_piece_hashes_verified
      Src: /src/libtorrent/src/load_torrent.cpp:67,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/load_torrent.cpp:69,1
    - Dst: libtorrent::merkle_pad
      Src: /src/libtorrent/src/load_torrent.cpp:71,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/load_torrent.cpp:72,1
    - Dst: merkle_trees::resize
      Src: /src/libtorrent/src/load_torrent.cpp:73,1
    - Dst: num_files
      Src: /src/libtorrent/src/load_torrent.cpp:73,1
    - Dst: merkle_tree_mask::resize
      Src: /src/libtorrent/src/load_torrent.cpp:74,1
    - Dst: num_files
      Src: /src/libtorrent/src/load_torrent.cpp:74,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/load_torrent.cpp:75,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/load_torrent.cpp:77,1
    - Dst: file_size
      Src: /src/libtorrent/src/load_torrent.cpp:78,1
    - Dst: libtorrent::piece_layer
      Src: /src/libtorrent/src/load_torrent.cpp:79,1
    - Dst: reserve
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/src/load_torrent.cpp:82,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/load_torrent.cpp:82,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/load_torrent.cpp:83,1
    - Dst: auto::data
      Src: /src/libtorrent/src/load_torrent.cpp:83,1
    - Dst: libtorrent::merkle_num_nodes
      Src: /src/libtorrent/src/load_torrent.cpp:85,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/load_torrent.cpp:86,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/load_torrent.cpp:86,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/load_torrent.cpp:87,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/load_torrent.cpp:88,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/load_torrent.cpp:90,1
    - Dst: libtorrent::merkle_root_scratch
      Src: /src/libtorrent/src/load_torrent.cpp:92,1
    - Dst: root
      Src: /src/libtorrent/src/load_torrent.cpp:96,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/load_torrent.cpp:97,1
    - Dst: resize
      Src: /src/libtorrent/src/load_torrent.cpp:101,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:101,1
    - Dst: libtorrent::merkle_first_leaf
      Src: /src/libtorrent/src/load_torrent.cpp:102,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:105,1
    - Dst: free_piece_layers
      Src: /src/libtorrent/src/load_torrent.cpp:108,1
    - Dst: ti::info_hashes
      Src: /src/libtorrent/src/load_torrent.cpp:110,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 111
    functionName: libtorrent::update_atp
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::merkle_pad
    - merkle_tree_mask::resize
    - libtorrent::files
    - test_piece_size
    - libtorrent::merkle_num_nodes
    - libtorrent::merkle_root_scratch
    - merkle_trees::resize
    - _internal_drain
    - libtorrent::empty
    - file_size
    - pad_file_at
    - libtorrent::file_range
    - libtorrent::move
    - trackers::push_back
    - aux::throw_ex<system_error>
    - tracker_tiers::push_back
    - free_piece_layers
    - libtorrent::emplace_back
    - std::size_t
    - ti::info_hashes
    - libtorrent::piece_layer
    - num_files
    - libtorrent::merkle_first_leaf
    - auto::size
    - reserve
    - http_seeds::push_back
    - is_i2p
    - auto::data
    - file_num_pieces
    - root
    - libtorrent::merkle_num_leafs
    - resize
    - file_num_blocks
    - url_seeds::push_back
    - v2_piece_hashes_verified
    linkageType: ''
    returnType: void
    signature: void update_atp(add_torrent_params& atp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _internal_drain
      Src: /src/libtorrent/src/load_torrent.cpp:48,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:51,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:51,1
    - Dst: tracker_tiers::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:52,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/load_torrent.cpp:54,1
    - Dst: url_seeds::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:60,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:60,1
    - Dst: http_seeds::push_back
      Src: /src/libtorrent/src/load_torrent.cpp:62,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:62,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/load_torrent.cpp:65,1
    - Dst: v2_piece_hashes_verified
      Src: /src/libtorrent/src/load_torrent.cpp:67,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/load_torrent.cpp:69,1
    - Dst: libtorrent::merkle_pad
      Src: /src/libtorrent/src/load_torrent.cpp:71,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/load_torrent.cpp:72,1
    - Dst: merkle_trees::resize
      Src: /src/libtorrent/src/load_torrent.cpp:73,1
    - Dst: num_files
      Src: /src/libtorrent/src/load_torrent.cpp:73,1
    - Dst: merkle_tree_mask::resize
      Src: /src/libtorrent/src/load_torrent.cpp:74,1
    - Dst: num_files
      Src: /src/libtorrent/src/load_torrent.cpp:74,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/load_torrent.cpp:75,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/load_torrent.cpp:77,1
    - Dst: file_size
      Src: /src/libtorrent/src/load_torrent.cpp:78,1
    - Dst: libtorrent::piece_layer
      Src: /src/libtorrent/src/load_torrent.cpp:79,1
    - Dst: reserve
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/load_torrent.cpp:81,1
    - Dst: auto::size
      Src: /src/libtorrent/src/load_torrent.cpp:82,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/load_torrent.cpp:82,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/load_torrent.cpp:83,1
    - Dst: auto::data
      Src: /src/libtorrent/src/load_torrent.cpp:83,1
    - Dst: libtorrent::merkle_num_nodes
      Src: /src/libtorrent/src/load_torrent.cpp:85,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/load_torrent.cpp:86,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/load_torrent.cpp:86,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/load_torrent.cpp:87,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/load_torrent.cpp:88,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/load_torrent.cpp:90,1
    - Dst: libtorrent::merkle_root_scratch
      Src: /src/libtorrent/src/load_torrent.cpp:92,1
    - Dst: root
      Src: /src/libtorrent/src/load_torrent.cpp:96,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/load_torrent.cpp:97,1
    - Dst: resize
      Src: /src/libtorrent/src/load_torrent.cpp:101,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:101,1
    - Dst: libtorrent::merkle_first_leaf
      Src: /src/libtorrent/src/load_torrent.cpp:102,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/load_torrent.cpp:105,1
    - Dst: free_piece_layers
      Src: /src/libtorrent/src/load_torrent.cpp:108,1
    - Dst: ti::info_hashes
      Src: /src/libtorrent/src/load_torrent.cpp:110,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 111
    functionName: libtorrent::update_atp
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::merkle_pad
    - merkle_tree_mask::resize
    - libtorrent::files
    - test_piece_size
    - libtorrent::merkle_num_nodes
    - libtorrent::merkle_root_scratch
    - merkle_trees::resize
    - _internal_drain
    - libtorrent::empty
    - file_size
    - pad_file_at
    - libtorrent::file_range
    - libtorrent::move
    - trackers::push_back
    - aux::throw_ex<system_error>
    - tracker_tiers::push_back
    - free_piece_layers
    - libtorrent::emplace_back
    - std::size_t
    - ti::info_hashes
    - libtorrent::piece_layer
    - num_files
    - libtorrent::merkle_first_leaf
    - auto::size
    - reserve
    - http_seeds::push_back
    - is_i2p
    - auto::data
    - file_num_pieces
    - root
    - libtorrent::merkle_num_leafs
    - resize
    - file_num_blocks
    - url_seeds::push_back
    - v2_piece_hashes_verified
    linkageType: ''
    returnType: void
    signature: void update_atp(add_torrent_params& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_file
      Src: /src/libtorrent/src/load_torrent.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: libtorrent::load_torrent_file
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::load_torrent_file
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_file(std::string const& filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_buffer
      Src: /src/libtorrent/src/load_torrent.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: libtorrent::load_torrent_buffer
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::load_torrent_buffer
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_buffer(span<char const> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_parsed
      Src: /src/libtorrent/src/load_torrent.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' torrent_file'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: libtorrent::load_torrent_parsed
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::load_torrent_parsed
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_parsed(bdecode_node const& torrent_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/load_torrent.cpp:125,1
    - Dst: libtorrent::update_atp
      Src: /src/libtorrent/src/load_torrent.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' filename'
    - ' cfg'
    argTypes:
    - std::string
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: libtorrent::load_torrent_file
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<torrent_info>
    - libtorrent::update_atp
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_file(std::string const& filename, load_torrent_limits
      const& cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/load_torrent.cpp:133,1
    - Dst: libtorrent::update_atp
      Src: /src/libtorrent/src/load_torrent.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buffer
    - ' cfg'
    argTypes:
    - span<char const>
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: libtorrent::load_torrent_buffer
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<torrent_info>
    - libtorrent::update_atp
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_buffer(span<char const> buffer, load_torrent_limits
      const& cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/load_torrent.cpp:141,1
    - Dst: libtorrent::update_atp
      Src: /src/libtorrent/src/load_torrent.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' torrent_file'
    - ' cfg'
    argTypes:
    - bdecode_node
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: libtorrent::load_torrent_parsed
    functionSourceFile: /src/libtorrent/src/load_torrent.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<torrent_info>
    - libtorrent::update_atp
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params load_torrent_parsed(bdecode_node const& torrent_file,
      load_torrent_limits const& cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - buf
    - sz
    argTypes:
    - buffer_allocator_interface
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: libtorrent::disk_buffer_holder::disk_buffer_holder
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void disk_buffer_holder::disk_buffer_holder(buffer_allocator_interface&
      alloc\n\t\t, char* const buf, int const sz) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - disk_buffer_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: libtorrent::disk_buffer_holder::disk_buffer_holder
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder::disk_buffer_holder(disk_buffer_holder&& h)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: disk_buffer_holder
      Src: /src/libtorrent/src/disk_buffer_holder.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_holder.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - disk_buffer_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: '& disk_buffer_holder::operator=(disk_buffer_holder&& h) & noexcept'
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached:
    - disk_buffer_holder
    - std::move
    linkageType: ''
    returnType: disk_buffer_holder
    signature: disk_buffer_holder & disk_buffer_holder::operator=(disk_buffer_holder&&
      h) & noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_disk_buffer
      Src: /src/libtorrent/src/disk_buffer_holder.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: libtorrent::disk_buffer_holder::reset
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached:
    - free_disk_buffer
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/disk_buffer_holder.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: disk_buffer_holder::~disk_buffer_holder()
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder::~disk_buffer_holder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - buf
    - sz
    argTypes:
    - buffer_allocator_interface
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: libtorrent::disk_buffer_holder::disk_buffer_holder
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void disk_buffer_holder::disk_buffer_holder(buffer_allocator_interface&
      alloc\n\t\t, char* const buf, int const sz) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - disk_buffer_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: libtorrent::disk_buffer_holder::disk_buffer_holder
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder::disk_buffer_holder(disk_buffer_holder&& h)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: disk_buffer_holder
      Src: /src/libtorrent/src/disk_buffer_holder.cpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_holder.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - disk_buffer_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: '& disk_buffer_holder::operator=(disk_buffer_holder&& h) & noexcept'
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached:
    - disk_buffer_holder
    - std::move
    linkageType: ''
    returnType: disk_buffer_holder
    signature: disk_buffer_holder & disk_buffer_holder::operator=(disk_buffer_holder&&
      h) & noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_disk_buffer
      Src: /src/libtorrent/src/disk_buffer_holder.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: libtorrent::disk_buffer_holder::reset
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached:
    - free_disk_buffer
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/disk_buffer_holder.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: disk_buffer_holder::~disk_buffer_holder()
    functionSourceFile: /src/libtorrent/src/disk_buffer_holder.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder::~disk_buffer_holder()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/entry.cpp:55,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:56,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:56,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:62,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:62,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:69,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:69,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:77,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:77,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:86,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:90,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:100,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/entry.cpp:108,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - ' buf'
    - val
    argTypes:
    - std::array<char, 21>
    - entry::integer_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::integer_to_str
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::data
    - static_cast<std::size_t>
    - static_cast<char>
    - TORRENT_ASSERT
    - std::size_t
    - back
    linkageType: ''
    returnType: string_view
    signature: string_view integer_to_str(std::array<char, 21>& buf, entry::integer_type
      val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/entry.cpp:55,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:56,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:56,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:62,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:62,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:69,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:69,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:77,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:77,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:86,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:90,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:100,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/entry.cpp:108,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - ' buf'
    - val
    argTypes:
    - std::array<char, 21>
    - entry::integer_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::integer_to_str
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::data
    - static_cast<std::size_t>
    - static_cast<char>
    - TORRENT_ASSERT
    - std::size_t
    - back
    linkageType: ''
    returnType: string_view
    signature: string_view integer_to_str(std::array<char, 21>& buf, entry::integer_type
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/entry.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: libtorrent::throw_error
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: void throw_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:120,1
    - Dst: T*::~T
      Src: /src/libtorrent/src/entry.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::call_destructor
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - T*::~T
    linkageType: ''
    returnType: void
    signature: void call_destructor(T* o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/entry.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: libtorrent::throw_error
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: void throw_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:120,1
    - Dst: T*::~T
      Src: /src/libtorrent/src/entry.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::call_destructor
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - T*::~T
    linkageType: ''
    returnType: void
    signature: void call_destructor(T* o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:130,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:132,1
    - Dst: std::string
      Src: /src/libtorrent/src/entry.cpp:132,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:134,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:135,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/entry.cpp:137,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/entry.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: '& entry::operator[](string_view key)'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - std::string
    - dict
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator[](string_view key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:147,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:149,1
    - Dst: std::string
      Src: /src/libtorrent/src/entry.cpp:149,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:151,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: '& entry::operator[](string_view key) const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - throw_error
    - std::string
    - dict
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator[](string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:158,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:160,1
    - Dst: std::string
      Src: /src/libtorrent/src/entry.cpp:160,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: libtorrent::entry::find_key
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - dict
    linkageType: ''
    returnType: entry
    signature: entry * entry::find_key(string_view key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:169,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:171,1
    - Dst: std::string
      Src: /src/libtorrent/src/entry.cpp:171,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: libtorrent::entry::find_key
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - dict
    linkageType: ''
    returnType: entry
    signature: entry * entry::find_key(string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::data_type
      Src: /src/libtorrent/src/entry.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: libtorrent::entry::type
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - entry::data_type
    linkageType: ''
    returnType: entry::data_type
    signature: entry::data_type entry::type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: entry::~entry()
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - destruct
    linkageType: ''
    returnType: void
    signature: void entry::~entry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:190,1
    - Dst: copy
      Src: /src/libtorrent/src/entry.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: '& entry::operator=(const entry& e) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - copy
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(const entry& e) &
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:198,1
    - Dst: type
      Src: /src/libtorrent/src/entry.cpp:199,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:203,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:203,1
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:203,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:206,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:206,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:209,1
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:209,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:209,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:212,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:212,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:212,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:217,1
    - Dst: preformatted
      Src: /src/libtorrent/src/entry.cpp:217,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: '& entry::operator=(entry&& e) & noexcept'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - preformatted
    - std::move
    - string_type::string_type
    - list_type::list_type
    - string
    - list
    - dict
    - preformatted_type::preformatted_type
    - integer
    - type
    - dictionary_type::dictionary_type
    - destruct
    - integer_type::integer_type
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(entry&& e) & noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:231,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:233,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:234,1
    - Dst: reinterpret_cast<integer_type*>
      Src: /src/libtorrent/src/entry.cpp:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: '& entry::integer()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - construct
    - reinterpret_cast<integer_type*>
    linkageType: ''
    returnType: entry::integer_type
    signature: entry::integer_type & entry::integer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:240,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:244,1
    - Dst: reinterpret_cast<const integer_type*>
      Src: /src/libtorrent/src/entry.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: '& entry::integer() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const integer_type*>
    linkageType: ''
    returnType: entry::integer_type
    signature: entry::integer_type & entry::integer() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:250,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:252,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:254,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:255,1
    - Dst: reinterpret_cast<string_type*>
      Src: /src/libtorrent/src/entry.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: '& entry::string()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reinterpret_cast<string_type*>
    - throw_error
    - construct
    linkageType: ''
    returnType: entry::string_type
    signature: entry::string_type & entry::string()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:261,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:265,1
    - Dst: reinterpret_cast<const string_type*>
      Src: /src/libtorrent/src/entry.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: '& entry::string() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const string_type*>
    linkageType: ''
    returnType: entry::string_type
    signature: entry::string_type & entry::string() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:271,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:273,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:275,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:276,1
    - Dst: reinterpret_cast<list_type*>
      Src: /src/libtorrent/src/entry.cpp:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: '& entry::list()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - construct
    - reinterpret_cast<list_type*>
    linkageType: ''
    returnType: entry::list_type
    signature: entry::list_type & entry::list()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:282,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:286,1
    - Dst: reinterpret_cast<const list_type*>
      Src: /src/libtorrent/src/entry.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: '& entry::list() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const list_type*>
    linkageType: ''
    returnType: entry::list_type
    signature: entry::list_type & entry::list() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:294,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:296,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:297,1
    - Dst: reinterpret_cast<dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: '& entry::dict()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reinterpret_cast<dictionary_type*>
    - throw_error
    - construct
    linkageType: ''
    returnType: entry::dictionary_type
    signature: entry::dictionary_type & entry::dict()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:303,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:307,1
    - Dst: reinterpret_cast<const dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: '& entry::dict() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const dictionary_type*>
    linkageType: ''
    returnType: entry::dictionary_type
    signature: entry::dictionary_type & entry::dict() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:313,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:315,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:318,1
    - Dst: reinterpret_cast<preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: '& entry::preformatted()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reinterpret_cast<preformatted_type*>
    - throw_error
    - construct
    linkageType: ''
    returnType: entry::preformatted_type
    signature: entry::preformatted_type & entry::preformatted()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:324,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:328,1
    - Dst: reinterpret_cast<const preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: '& entry::preformatted() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const preformatted_type*>
    linkageType: ''
    returnType: entry::preformatted_type
    signature: entry::preformatted_type & entry::preformatted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entry::entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry::construct
      Src: /src/libtorrent/src/entry.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - data_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::entry::construct
    linkageType: ''
    returnType: void
    signature: void entry::entry(data_type t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry::copy
      Src: /src/libtorrent/src/entry.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::entry::copy
    linkageType: ''
    returnType: void
    signature: void entry::entry(const entry& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void entry::entry(entry&& e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entry::entry(bdecode_node const& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:376,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - dictionary_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 378
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - dictionary_type::dictionary_type
    - std::move
    linkageType: ''
    returnType: void
    signature: void entry::entry(dictionary_type v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/entry.cpp:386,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:386,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/entry.cpp:386,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::data
    - std::size_t
    - span<char const>::size
    - string_type::string_type
    linkageType: ''
    returnType: void
    signature: void entry::entry(span<char const> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:396,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - list_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - list_type::list_type
    linkageType: ''
    returnType: void
    signature: void entry::entry(list_type v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:406,1
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - integer_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - integer_type::integer_type
    linkageType: ''
    returnType: void
    signature: void entry::entry(integer_type v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:416,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - preformatted_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - preformatted_type::preformatted_type
    linkageType: ''
    returnType: void
    signature: void entry::entry(preformatted_type v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:423,1
    - Dst: type
      Src: /src/libtorrent/src/entry.cpp:424,1
    - Dst: '& entry::string'
      Src: /src/libtorrent/src/entry.cpp:427,1
    - Dst: string_value
      Src: /src/libtorrent/src/entry.cpp:427,1
    - Dst: '& entry::integer'
      Src: /src/libtorrent/src/entry.cpp:430,1
    - Dst: int_value
      Src: /src/libtorrent/src/entry.cpp:430,1
    - Dst: '& entry::dict'
      Src: /src/libtorrent/src/entry.cpp:434,1
    - Dst: dict_size
      Src: /src/libtorrent/src/entry.cpp:435,1
    - Dst: dict_at
      Src: /src/libtorrent/src/entry.cpp:437,1
    - Dst: std::pair::first::to_string
      Src: /src/libtorrent/src/entry.cpp:438,1
    - Dst: '& entry::list'
      Src: /src/libtorrent/src/entry.cpp:444,1
    - Dst: list_size
      Src: /src/libtorrent/src/entry.cpp:445,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/entry.cpp:447,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:448,1
    - Dst: list_at
      Src: /src/libtorrent/src/entry.cpp:448,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 456
    functionName: '& entry::operator=(bdecode_node const& e) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - list_size
    - '& entry::string'
    - dict_at
    - int_value
    - '& entry::dict'
    - '& entry::integer'
    - '& entry::list'
    - std::pair::first::to_string
    - back
    - emplace_back
    - type
    - list_at
    - dict_size
    - string_value
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(bdecode_node const& e) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:461,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - preformatted_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: '& entry::operator=(preformatted_type v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - preformatted_type::preformatted_type
    - std::move
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(preformatted_type v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:471,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:472,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - dictionary_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: '& entry::operator=(dictionary_type v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - dictionary_type::dictionary_type
    - std::move
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(dictionary_type v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:482,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/entry.cpp:483,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:483,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/entry.cpp:483,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 489
    functionName: '& entry::operator=(span<char const> v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - string_type::string_type
    - span<char const>::data
    - std::size_t
    - span<char const>::size
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(span<char const> v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:493,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:494,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - list_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: '& entry::operator=(list_type v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - list_type::list_type
    - std::move
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(list_type v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:504,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:505,1
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - integer_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 511
    functionName: '& entry::operator=(integer_type v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - destruct
    - integer_type::integer_type
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(integer_type v) &
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/entry.cpp:515,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/entry.cpp:515,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/entry.cpp:517,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:520,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:520,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:522,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:522,1
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:524,1
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:524,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:526,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:526,1
    - Dst: preformatted
      Src: /src/libtorrent/src/entry.cpp:528,1
    - Dst: preformatted
      Src: /src/libtorrent/src/entry.cpp:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - entry
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 533
    functionName: operator==(entry const& lhs, entry const& rhs)
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - preformatted
    - string
    - list
    - dict
    - integer
    linkageType: ''
    returnType: bool
    signature: bool operator==(entry const& lhs, entry const& rhs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:540,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:543,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:546,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:549,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - t
    argTypes:
    - data_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 561
    functionName: libtorrent::entry::construct
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 1
    functionsReached:
    - string_type::string_type
    - list_type::list_type
    - preformatted_type::preformatted_type
    - dictionary_type::dictionary_type
    - integer_type::integer_type
    linkageType: ''
    returnType: void
    signature: void entry::construct(data_type t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry::type
      Src: /src/libtorrent/src/entry.cpp:565,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:568,1
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:568,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:571,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:571,1
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:574,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:574,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:577,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:577,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:580,1
    - Dst: libtorrent::entry::type
      Src: /src/libtorrent/src/entry.cpp:580,1
    - Dst: preformatted
      Src: /src/libtorrent/src/entry.cpp:583,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:583,1
    - Dst: libtorrent::entry::type
      Src: /src/libtorrent/src/entry.cpp:586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 590
    functionName: libtorrent::entry::copy
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 1
    functionsReached:
    - preformatted
    - string_type::string_type
    - list_type::list_type
    - string
    - list
    - libtorrent::entry::type
    - dict
    - preformatted_type::preformatted_type
    - TORRENT_ASSERT
    - integer
    - dictionary_type::dictionary_type
    - integer_type::integer_type
    linkageType: ''
    returnType: void
    signature: void entry::copy(entry const& e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:597,1
    - Dst: reinterpret_cast<integer_type*>
      Src: /src/libtorrent/src/entry.cpp:597,1
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:600,1
    - Dst: reinterpret_cast<string_type*>
      Src: /src/libtorrent/src/entry.cpp:600,1
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:603,1
    - Dst: reinterpret_cast<list_type*>
      Src: /src/libtorrent/src/entry.cpp:603,1
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:606,1
    - Dst: reinterpret_cast<dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:606,1
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:609,1
    - Dst: reinterpret_cast<preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:609,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:612,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 619
    functionName: libtorrent::entry::destruct
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<dictionary_type*>
    - call_destructor
    - reinterpret_cast<list_type*>
    - TORRENT_ASSERT
    - reinterpret_cast<preformatted_type*>
    - reinterpret_cast<string_type*>
    - reinterpret_cast<integer_type*>
    linkageType: ''
    returnType: void
    signature: void entry::destruct()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry::construct
      Src: /src/libtorrent/src/entry.cpp:631,1
    - Dst: data_type
      Src: /src/libtorrent/src/entry.cpp:631,1
    - Dst: libtorrent::entry::construct
      Src: /src/libtorrent/src/entry.cpp:637,1
    - Dst: data_type
      Src: /src/libtorrent/src/entry.cpp:637,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:646,1
    - Dst: reinterpret_cast<integer_type*>
      Src: /src/libtorrent/src/entry.cpp:646,1
    - Dst: reinterpret_cast<integer_type*>
      Src: /src/libtorrent/src/entry.cpp:647,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:650,1
    - Dst: reinterpret_cast<string_type*>
      Src: /src/libtorrent/src/entry.cpp:650,1
    - Dst: reinterpret_cast<string_type*>
      Src: /src/libtorrent/src/entry.cpp:651,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:654,1
    - Dst: reinterpret_cast<list_type*>
      Src: /src/libtorrent/src/entry.cpp:654,1
    - Dst: reinterpret_cast<list_type*>
      Src: /src/libtorrent/src/entry.cpp:655,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:658,1
    - Dst: reinterpret_cast<dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:658,1
    - Dst: reinterpret_cast<dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:659,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:662,1
    - Dst: reinterpret_cast<preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:662,1
    - Dst: reinterpret_cast<preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:663,1
    - Dst: libtorrent::entry::destruct
      Src: /src/libtorrent/src/entry.cpp:670,1
    - Dst: libtorrent::entry::destruct
      Src: /src/libtorrent/src/entry.cpp:673,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/entry.cpp:679,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 681
    functionName: libtorrent::entry::swap
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - data_type
    - reinterpret_cast<dictionary_type*>
    - reinterpret_cast<list_type*>
    - std::swap
    - reinterpret_cast<preformatted_type*>
    - reinterpret_cast<string_type*>
    - libtorrent::entry::destruct
    - TORRENT_ASSERT_FAIL
    - reinterpret_cast<integer_type*>
    - libtorrent::entry::construct
    linkageType: ''
    returnType: void
    signature: void entry::swap(entry& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::is_print
      Src: /src/libtorrent/src/entry.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: libtorrent::is_binary
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::is_print
    - libtorrent::end
    - libtorrent::begin
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: bool is_binary(std::string const& str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_binary
      Src: /src/libtorrent/src/entry.cpp:692,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/entry.cpp:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: libtorrent::print_string
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_hex
    - libtorrent::is_binary
    linkageType: ''
    returnType: std::string
    signature: std::string print_string(std::string const& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/entry.cpp:698,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/entry.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - indent
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: libtorrent::add_indent
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - resize
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void add_indent(std::string& out, int const indent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:707,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/entry.cpp:708,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/entry.cpp:711,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:711,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/entry.cpp:715,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:715,1
    - Dst: libtorrent::print_list
      Src: /src/libtorrent/src/entry.cpp:719,1
    - Dst: libtorrent::print_dict
      Src: /src/libtorrent/src/entry.cpp:722,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 731
    functionName: libtorrent::to_string_impl
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - libtorrent::print_list
    - string
    - libtorrent::to_string
    - TORRENT_ASSERT
    - libtorrent::print_dict
    - integer
    - libtorrent::print_string
    linkageType: ''
    returnType: void
    signature: "void to_string_impl(std::string& out, entry const& e, int const indent\n\t\t,
      bool const single_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:738,1
    - Dst: libtorrent::add_indent
      Src: /src/libtorrent/src/entry.cpp:742,1
    - Dst: libtorrent::to_string_impl
      Src: /src/libtorrent/src/entry.cpp:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 746
    functionName: libtorrent::print_list
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 1
    functionsReached:
    - list
    - libtorrent::to_string_impl
    - libtorrent::add_indent
    linkageType: ''
    returnType: void
    signature: "void print_list(std::string& out, entry const& e\n\t\t, int const
      indent, bool const single_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:753,1
    - Dst: libtorrent::add_indent
      Src: /src/libtorrent/src/entry.cpp:757,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/entry.cpp:759,1
    - Dst: libtorrent::to_string_impl
      Src: /src/libtorrent/src/entry.cpp:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 765
    functionName: libtorrent::print_dict
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::print_string
    - libtorrent::to_string_impl
    - libtorrent::add_indent
    - dict
    linkageType: ''
    returnType: void
    signature: "void print_dict(std::string& out, entry const& e\n\t\t, int const
      indent, bool const single_line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::is_print
      Src: /src/libtorrent/src/entry.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: libtorrent::is_binary
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::is_print
    - libtorrent::end
    - libtorrent::begin
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: bool is_binary(std::string const& str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_binary
      Src: /src/libtorrent/src/entry.cpp:692,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/entry.cpp:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: libtorrent::print_string
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::to_hex
    - libtorrent::is_binary
    linkageType: ''
    returnType: std::string
    signature: std::string print_string(std::string const& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/entry.cpp:698,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/entry.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - indent
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: libtorrent::add_indent
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 2
    functionsReached:
    - resize
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void add_indent(std::string& out, int const indent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:707,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/entry.cpp:708,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/entry.cpp:711,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:711,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/entry.cpp:715,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:715,1
    - Dst: libtorrent::print_list
      Src: /src/libtorrent/src/entry.cpp:719,1
    - Dst: libtorrent::print_dict
      Src: /src/libtorrent/src/entry.cpp:722,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 731
    functionName: libtorrent::to_string_impl
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::type
    - libtorrent::print_list
    - string
    - libtorrent::to_string
    - TORRENT_ASSERT
    - libtorrent::print_dict
    - integer
    - libtorrent::print_string
    linkageType: ''
    returnType: void
    signature: "void to_string_impl(std::string& out, entry const& e, int const indent\n\t\t,
      bool const single_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:738,1
    - Dst: libtorrent::add_indent
      Src: /src/libtorrent/src/entry.cpp:742,1
    - Dst: libtorrent::to_string_impl
      Src: /src/libtorrent/src/entry.cpp:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 746
    functionName: libtorrent::print_list
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 2
    functionsReached:
    - list
    - libtorrent::to_string_impl
    - libtorrent::add_indent
    linkageType: ''
    returnType: void
    signature: "void print_list(std::string& out, entry const& e\n\t\t, int const
      indent, bool const single_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:753,1
    - Dst: libtorrent::add_indent
      Src: /src/libtorrent/src/entry.cpp:757,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/entry.cpp:759,1
    - Dst: libtorrent::to_string_impl
      Src: /src/libtorrent/src/entry.cpp:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 765
    functionName: libtorrent::print_dict
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::print_string
    - libtorrent::to_string_impl
    - libtorrent::add_indent
    - dict
    linkageType: ''
    returnType: void
    signature: "void print_dict(std::string& out, entry const& e\n\t\t, int const
      indent, bool const single_line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string_impl
      Src: /src/libtorrent/src/entry.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - single_line
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 773
    functionName: libtorrent::entry::to_string
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - to_string_impl
    linkageType: ''
    returnType: std::string
    signature: std::string entry::to_string(bool const single_line) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/entry.cpp:55,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:56,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:56,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:62,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:62,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:69,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:69,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:77,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:77,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:86,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:90,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:100,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/entry.cpp:108,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - ' buf'
    - val
    argTypes:
    - std::array<char, 21>
    - entry::integer_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::integer_to_str
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::data
    - static_cast<std::size_t>
    - static_cast<char>
    - TORRENT_ASSERT
    - std::size_t
    - back
    linkageType: ''
    returnType: string_view
    signature: string_view integer_to_str(std::array<char, 21>& buf, entry::integer_type
      val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/entry.cpp:55,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:56,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:56,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:62,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:62,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:69,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:69,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:77,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:77,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/entry.cpp:86,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:90,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:100,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/entry.cpp:108,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - ' buf'
    - val
    argTypes:
    - std::array<char, 21>
    - entry::integer_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::integer_to_str
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::data
    - static_cast<std::size_t>
    - static_cast<char>
    - TORRENT_ASSERT
    - std::size_t
    - back
    linkageType: ''
    returnType: string_view
    signature: string_view integer_to_str(std::array<char, 21>& buf, entry::integer_type
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/entry.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: libtorrent::throw_error
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: void throw_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:120,1
    - Dst: T*::~T
      Src: /src/libtorrent/src/entry.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::call_destructor
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - T*::~T
    linkageType: ''
    returnType: void
    signature: void call_destructor(T* o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/entry.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: libtorrent::throw_error
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: void throw_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:120,1
    - Dst: T*::~T
      Src: /src/libtorrent/src/entry.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::call_destructor
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - T*::~T
    linkageType: ''
    returnType: void
    signature: void call_destructor(T* o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:130,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:132,1
    - Dst: std::string
      Src: /src/libtorrent/src/entry.cpp:132,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:134,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:135,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/entry.cpp:137,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/entry.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: '& entry::operator[](string_view key)'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - std::string
    - dict
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator[](string_view key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:147,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:149,1
    - Dst: std::string
      Src: /src/libtorrent/src/entry.cpp:149,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:151,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: '& entry::operator[](string_view key) const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - throw_error
    - std::string
    - dict
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator[](string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:158,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:160,1
    - Dst: std::string
      Src: /src/libtorrent/src/entry.cpp:160,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: libtorrent::entry::find_key
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - dict
    linkageType: ''
    returnType: entry
    signature: entry * entry::find_key(string_view key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:169,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:171,1
    - Dst: std::string
      Src: /src/libtorrent/src/entry.cpp:171,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: libtorrent::entry::find_key
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - dict
    linkageType: ''
    returnType: entry
    signature: entry * entry::find_key(string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::data_type
      Src: /src/libtorrent/src/entry.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: libtorrent::entry::type
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 1
    functionsReached:
    - entry::data_type
    linkageType: ''
    returnType: entry::data_type
    signature: entry::data_type entry::type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: entry::~entry()
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - destruct
    linkageType: ''
    returnType: void
    signature: void entry::~entry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:190,1
    - Dst: copy
      Src: /src/libtorrent/src/entry.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: '& entry::operator=(const entry& e) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - copy
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(const entry& e) &
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:198,1
    - Dst: type
      Src: /src/libtorrent/src/entry.cpp:199,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:203,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:203,1
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:203,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:206,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:206,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:209,1
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:209,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:209,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:212,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:212,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:212,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:217,1
    - Dst: preformatted
      Src: /src/libtorrent/src/entry.cpp:217,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: '& entry::operator=(entry&& e) & noexcept'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - preformatted
    - std::move
    - string_type::string_type
    - list_type::list_type
    - string
    - list
    - dict
    - preformatted_type::preformatted_type
    - integer
    - type
    - dictionary_type::dictionary_type
    - destruct
    - integer_type::integer_type
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(entry&& e) & noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:231,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:233,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:234,1
    - Dst: reinterpret_cast<integer_type*>
      Src: /src/libtorrent/src/entry.cpp:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: '& entry::integer()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - construct
    - reinterpret_cast<integer_type*>
    linkageType: ''
    returnType: entry::integer_type
    signature: entry::integer_type & entry::integer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:240,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:244,1
    - Dst: reinterpret_cast<const integer_type*>
      Src: /src/libtorrent/src/entry.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: '& entry::integer() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const integer_type*>
    linkageType: ''
    returnType: entry::integer_type
    signature: entry::integer_type & entry::integer() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:250,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:252,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:254,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:255,1
    - Dst: reinterpret_cast<string_type*>
      Src: /src/libtorrent/src/entry.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: '& entry::string()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reinterpret_cast<string_type*>
    - throw_error
    - construct
    linkageType: ''
    returnType: entry::string_type
    signature: entry::string_type & entry::string()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:261,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:265,1
    - Dst: reinterpret_cast<const string_type*>
      Src: /src/libtorrent/src/entry.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: '& entry::string() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const string_type*>
    linkageType: ''
    returnType: entry::string_type
    signature: entry::string_type & entry::string() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:271,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:273,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:275,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:276,1
    - Dst: reinterpret_cast<list_type*>
      Src: /src/libtorrent/src/entry.cpp:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: '& entry::list()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - construct
    - reinterpret_cast<list_type*>
    linkageType: ''
    returnType: entry::list_type
    signature: entry::list_type & entry::list()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:282,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:286,1
    - Dst: reinterpret_cast<const list_type*>
      Src: /src/libtorrent/src/entry.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: '& entry::list() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const list_type*>
    linkageType: ''
    returnType: entry::list_type
    signature: entry::list_type & entry::list() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:294,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:296,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:297,1
    - Dst: reinterpret_cast<dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: '& entry::dict()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reinterpret_cast<dictionary_type*>
    - throw_error
    - construct
    linkageType: ''
    returnType: entry::dictionary_type
    signature: entry::dictionary_type & entry::dict()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:303,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:305,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:307,1
    - Dst: reinterpret_cast<const dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: '& entry::dict() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const dictionary_type*>
    linkageType: ''
    returnType: entry::dictionary_type
    signature: entry::dictionary_type & entry::dict() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/entry.cpp:313,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:315,1
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:318,1
    - Dst: reinterpret_cast<preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: '& entry::preformatted()'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reinterpret_cast<preformatted_type*>
    - throw_error
    - construct
    linkageType: ''
    returnType: entry::preformatted_type
    signature: entry::preformatted_type & entry::preformatted()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throw_error
      Src: /src/libtorrent/src/entry.cpp:324,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:328,1
    - Dst: reinterpret_cast<const preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: '& entry::preformatted() const'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_error
    - reinterpret_cast<const preformatted_type*>
    linkageType: ''
    returnType: entry::preformatted_type
    signature: entry::preformatted_type & entry::preformatted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entry::entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry::construct
      Src: /src/libtorrent/src/entry.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - data_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::entry::construct
    linkageType: ''
    returnType: void
    signature: void entry::entry(data_type t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry::copy
      Src: /src/libtorrent/src/entry.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::entry::copy
    linkageType: ''
    returnType: void
    signature: void entry::entry(const entry& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void entry::entry(entry&& e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entry::entry(bdecode_node const& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:376,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - dictionary_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 378
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - dictionary_type::dictionary_type
    - std::move
    linkageType: ''
    returnType: void
    signature: void entry::entry(dictionary_type v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/entry.cpp:386,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:386,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/entry.cpp:386,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::data
    - std::size_t
    - span<char const>::size
    - string_type::string_type
    linkageType: ''
    returnType: void
    signature: void entry::entry(span<char const> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:396,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - list_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - list_type::list_type
    linkageType: ''
    returnType: void
    signature: void entry::entry(list_type v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:406,1
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - integer_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - integer_type::integer_type
    linkageType: ''
    returnType: void
    signature: void entry::entry(integer_type v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:416,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - preformatted_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: libtorrent::entry::entry
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - preformatted_type::preformatted_type
    linkageType: ''
    returnType: void
    signature: void entry::entry(preformatted_type v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:423,1
    - Dst: type
      Src: /src/libtorrent/src/entry.cpp:424,1
    - Dst: '& entry::string'
      Src: /src/libtorrent/src/entry.cpp:427,1
    - Dst: string_value
      Src: /src/libtorrent/src/entry.cpp:427,1
    - Dst: '& entry::integer'
      Src: /src/libtorrent/src/entry.cpp:430,1
    - Dst: int_value
      Src: /src/libtorrent/src/entry.cpp:430,1
    - Dst: '& entry::dict'
      Src: /src/libtorrent/src/entry.cpp:434,1
    - Dst: dict_size
      Src: /src/libtorrent/src/entry.cpp:435,1
    - Dst: dict_at
      Src: /src/libtorrent/src/entry.cpp:437,1
    - Dst: std::pair::first::to_string
      Src: /src/libtorrent/src/entry.cpp:438,1
    - Dst: '& entry::list'
      Src: /src/libtorrent/src/entry.cpp:444,1
    - Dst: list_size
      Src: /src/libtorrent/src/entry.cpp:445,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/entry.cpp:447,1
    - Dst: back
      Src: /src/libtorrent/src/entry.cpp:448,1
    - Dst: list_at
      Src: /src/libtorrent/src/entry.cpp:448,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 456
    functionName: '& entry::operator=(bdecode_node const& e) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - list_size
    - '& entry::string'
    - dict_at
    - int_value
    - '& entry::dict'
    - '& entry::integer'
    - '& entry::list'
    - std::pair::first::to_string
    - back
    - emplace_back
    - type
    - list_at
    - dict_size
    - string_value
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(bdecode_node const& e) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:461,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - preformatted_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: '& entry::operator=(preformatted_type v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - preformatted_type::preformatted_type
    - std::move
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(preformatted_type v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:471,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:472,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - dictionary_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: '& entry::operator=(dictionary_type v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - dictionary_type::dictionary_type
    - std::move
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(dictionary_type v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:482,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/entry.cpp:483,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/entry.cpp:483,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/entry.cpp:483,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 489
    functionName: '& entry::operator=(span<char const> v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - string_type::string_type
    - span<char const>::data
    - std::size_t
    - span<char const>::size
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(span<char const> v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:493,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:494,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - list_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: '& entry::operator=(list_type v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - list_type::list_type
    - std::move
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(list_type v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/src/entry.cpp:504,1
    - Dst: std::move
      Src: /src/libtorrent/src/entry.cpp:505,1
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - integer_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 511
    functionName: '& entry::operator=(integer_type v) &'
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - destruct
    - integer_type::integer_type
    linkageType: ''
    returnType: entry
    signature: entry & entry::operator=(integer_type v) &
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/entry.cpp:515,1
    - Dst: type
      Src: /src/libtorrent/src/entry.cpp:515,1
    - Dst: type
      Src: /src/libtorrent/src/entry.cpp:517,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:520,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:520,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:522,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:522,1
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:524,1
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:524,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:526,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:526,1
    - Dst: preformatted
      Src: /src/libtorrent/src/entry.cpp:528,1
    - Dst: preformatted
      Src: /src/libtorrent/src/entry.cpp:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - entry
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 533
    functionName: operator==(entry const& lhs, entry const& rhs)
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - preformatted
    - string
    - list
    - dict
    - integer
    - type
    linkageType: ''
    returnType: bool
    signature: bool operator==(entry const& lhs, entry const& rhs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:540,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:543,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:546,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:549,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - t
    argTypes:
    - data_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 561
    functionName: libtorrent::entry::construct
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 3
    functionsReached:
    - string_type::string_type
    - list_type::list_type
    - preformatted_type::preformatted_type
    - dictionary_type::dictionary_type
    - integer_type::integer_type
    linkageType: ''
    returnType: void
    signature: void entry::construct(data_type t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry::type
      Src: /src/libtorrent/src/entry.cpp:565,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:568,1
    - Dst: integer_type::integer_type
      Src: /src/libtorrent/src/entry.cpp:568,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:571,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/src/entry.cpp:571,1
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:574,1
    - Dst: list_type::list_type
      Src: /src/libtorrent/src/entry.cpp:574,1
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:577,1
    - Dst: dictionary_type::dictionary_type
      Src: /src/libtorrent/src/entry.cpp:577,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:580,1
    - Dst: libtorrent::entry::type
      Src: /src/libtorrent/src/entry.cpp:580,1
    - Dst: preformatted
      Src: /src/libtorrent/src/entry.cpp:583,1
    - Dst: preformatted_type::preformatted_type
      Src: /src/libtorrent/src/entry.cpp:583,1
    - Dst: libtorrent::entry::type
      Src: /src/libtorrent/src/entry.cpp:586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 590
    functionName: libtorrent::entry::copy
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 2
    functionsReached:
    - preformatted
    - string_type::string_type
    - list_type::list_type
    - string
    - list
    - libtorrent::entry::type
    - dict
    - preformatted_type::preformatted_type
    - TORRENT_ASSERT
    - integer
    - dictionary_type::dictionary_type
    - integer_type::integer_type
    linkageType: ''
    returnType: void
    signature: void entry::copy(entry const& e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:597,1
    - Dst: reinterpret_cast<integer_type*>
      Src: /src/libtorrent/src/entry.cpp:597,1
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:600,1
    - Dst: reinterpret_cast<string_type*>
      Src: /src/libtorrent/src/entry.cpp:600,1
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:603,1
    - Dst: reinterpret_cast<list_type*>
      Src: /src/libtorrent/src/entry.cpp:603,1
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:606,1
    - Dst: reinterpret_cast<dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:606,1
    - Dst: call_destructor
      Src: /src/libtorrent/src/entry.cpp:609,1
    - Dst: reinterpret_cast<preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:609,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:612,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 619
    functionName: libtorrent::entry::destruct
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<dictionary_type*>
    - call_destructor
    - reinterpret_cast<list_type*>
    - TORRENT_ASSERT
    - reinterpret_cast<preformatted_type*>
    - reinterpret_cast<string_type*>
    - reinterpret_cast<integer_type*>
    linkageType: ''
    returnType: void
    signature: void entry::destruct()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry::construct
      Src: /src/libtorrent/src/entry.cpp:631,1
    - Dst: data_type
      Src: /src/libtorrent/src/entry.cpp:631,1
    - Dst: libtorrent::entry::construct
      Src: /src/libtorrent/src/entry.cpp:637,1
    - Dst: data_type
      Src: /src/libtorrent/src/entry.cpp:637,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:646,1
    - Dst: reinterpret_cast<integer_type*>
      Src: /src/libtorrent/src/entry.cpp:646,1
    - Dst: reinterpret_cast<integer_type*>
      Src: /src/libtorrent/src/entry.cpp:647,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:650,1
    - Dst: reinterpret_cast<string_type*>
      Src: /src/libtorrent/src/entry.cpp:650,1
    - Dst: reinterpret_cast<string_type*>
      Src: /src/libtorrent/src/entry.cpp:651,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:654,1
    - Dst: reinterpret_cast<list_type*>
      Src: /src/libtorrent/src/entry.cpp:654,1
    - Dst: reinterpret_cast<list_type*>
      Src: /src/libtorrent/src/entry.cpp:655,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:658,1
    - Dst: reinterpret_cast<dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:658,1
    - Dst: reinterpret_cast<dictionary_type*>
      Src: /src/libtorrent/src/entry.cpp:659,1
    - Dst: std::swap
      Src: /src/libtorrent/src/entry.cpp:662,1
    - Dst: reinterpret_cast<preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:662,1
    - Dst: reinterpret_cast<preformatted_type*>
      Src: /src/libtorrent/src/entry.cpp:663,1
    - Dst: libtorrent::entry::destruct
      Src: /src/libtorrent/src/entry.cpp:670,1
    - Dst: libtorrent::entry::destruct
      Src: /src/libtorrent/src/entry.cpp:673,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/entry.cpp:679,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 681
    functionName: libtorrent::entry::swap
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - data_type
    - reinterpret_cast<dictionary_type*>
    - reinterpret_cast<list_type*>
    - std::swap
    - reinterpret_cast<preformatted_type*>
    - reinterpret_cast<string_type*>
    - libtorrent::entry::destruct
    - TORRENT_ASSERT_FAIL
    - reinterpret_cast<integer_type*>
    - libtorrent::entry::construct
    linkageType: ''
    returnType: void
    signature: void entry::swap(entry& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::is_print
      Src: /src/libtorrent/src/entry.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: libtorrent::is_binary
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::is_print
    - libtorrent::end
    - libtorrent::begin
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: bool is_binary(std::string const& str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_binary
      Src: /src/libtorrent/src/entry.cpp:692,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/entry.cpp:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: libtorrent::print_string
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::to_hex
    - libtorrent::is_binary
    linkageType: ''
    returnType: std::string
    signature: std::string print_string(std::string const& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/entry.cpp:698,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/entry.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - indent
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: libtorrent::add_indent
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 4
    functionsReached:
    - resize
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void add_indent(std::string& out, int const indent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:707,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/entry.cpp:708,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/entry.cpp:711,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:711,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/entry.cpp:715,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:715,1
    - Dst: libtorrent::print_list
      Src: /src/libtorrent/src/entry.cpp:719,1
    - Dst: libtorrent::print_dict
      Src: /src/libtorrent/src/entry.cpp:722,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 731
    functionName: libtorrent::to_string_impl
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::type
    - libtorrent::print_list
    - string
    - libtorrent::to_string
    - TORRENT_ASSERT
    - libtorrent::print_dict
    - integer
    - libtorrent::print_string
    linkageType: ''
    returnType: void
    signature: "void to_string_impl(std::string& out, entry const& e, int const indent\n\t\t,
      bool const single_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:738,1
    - Dst: libtorrent::add_indent
      Src: /src/libtorrent/src/entry.cpp:742,1
    - Dst: libtorrent::to_string_impl
      Src: /src/libtorrent/src/entry.cpp:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 746
    functionName: libtorrent::print_list
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 3
    functionsReached:
    - list
    - libtorrent::to_string_impl
    - libtorrent::add_indent
    linkageType: ''
    returnType: void
    signature: "void print_list(std::string& out, entry const& e\n\t\t, int const
      indent, bool const single_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:753,1
    - Dst: libtorrent::add_indent
      Src: /src/libtorrent/src/entry.cpp:757,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/entry.cpp:759,1
    - Dst: libtorrent::to_string_impl
      Src: /src/libtorrent/src/entry.cpp:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 765
    functionName: libtorrent::print_dict
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::print_string
    - libtorrent::to_string_impl
    - libtorrent::add_indent
    - dict
    linkageType: ''
    returnType: void
    signature: "void print_dict(std::string& out, entry const& e\n\t\t, int const
      indent, bool const single_line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/entry.cpp:686,1
    - Dst: libtorrent::is_print
      Src: /src/libtorrent/src/entry.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: libtorrent::is_binary
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::is_print
    - libtorrent::end
    - libtorrent::begin
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: bool is_binary(std::string const& str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_binary
      Src: /src/libtorrent/src/entry.cpp:692,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/entry.cpp:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: libtorrent::print_string
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::to_hex
    - libtorrent::is_binary
    linkageType: ''
    returnType: std::string
    signature: std::string print_string(std::string const& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/entry.cpp:698,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/entry.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - indent
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: libtorrent::add_indent
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 6
    functionsReached:
    - resize
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void add_indent(std::string& out, int const indent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/entry.cpp:707,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/entry.cpp:708,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/entry.cpp:711,1
    - Dst: integer
      Src: /src/libtorrent/src/entry.cpp:711,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/entry.cpp:715,1
    - Dst: string
      Src: /src/libtorrent/src/entry.cpp:715,1
    - Dst: libtorrent::print_list
      Src: /src/libtorrent/src/entry.cpp:719,1
    - Dst: libtorrent::print_dict
      Src: /src/libtorrent/src/entry.cpp:722,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 731
    functionName: libtorrent::to_string_impl
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::type
    - libtorrent::print_list
    - string
    - libtorrent::to_string
    - TORRENT_ASSERT
    - libtorrent::print_dict
    - integer
    - libtorrent::print_string
    linkageType: ''
    returnType: void
    signature: "void to_string_impl(std::string& out, entry const& e, int const indent\n\t\t,
      bool const single_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/entry.cpp:738,1
    - Dst: libtorrent::add_indent
      Src: /src/libtorrent/src/entry.cpp:742,1
    - Dst: libtorrent::to_string_impl
      Src: /src/libtorrent/src/entry.cpp:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 746
    functionName: libtorrent::print_list
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 4
    functionsReached:
    - list
    - libtorrent::to_string_impl
    - libtorrent::add_indent
    linkageType: ''
    returnType: void
    signature: "void print_list(std::string& out, entry const& e\n\t\t, int const
      indent, bool const single_line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict
      Src: /src/libtorrent/src/entry.cpp:753,1
    - Dst: libtorrent::add_indent
      Src: /src/libtorrent/src/entry.cpp:757,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/entry.cpp:759,1
    - Dst: libtorrent::to_string_impl
      Src: /src/libtorrent/src/entry.cpp:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ' out'
    - ' e'
    - indent
    - single_line
    argTypes:
    - std::string
    - entry
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 765
    functionName: libtorrent::print_dict
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::print_string
    - libtorrent::to_string_impl
    - libtorrent::add_indent
    - dict
    linkageType: ''
    returnType: void
    signature: "void print_dict(std::string& out, entry const& e\n\t\t, int const
      indent, bool const single_line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string_impl
      Src: /src/libtorrent/src/entry.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - single_line
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 773
    functionName: libtorrent::entry::to_string
    functionSourceFile: /src/libtorrent/src/entry.cpp
    functionUses: 0
    functionsReached:
    - to_string_impl
    linkageType: ''
    returnType: std::string
    signature: std::string entry::to_string(bool const single_line) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::numeric
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool numeric(char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - start
    - end
    - ' e'
    argTypes:
    - char*
    - char*
    - bdecode_errors::error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 110
    functionName: libtorrent::check_integer
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::numeric
    linkageType: ''
    returnType: char
    signature: "char * check_integer(char const* start, char const* end\n\t\t, bdecode_errors::error_code_enum&
      e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::stack_frame
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_frame()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::stack_frame
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void stack_frame(int const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - bdecode_token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: libtorrent::token_source_span
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int token_source_span(bdecode_token const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::numeric
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool numeric(char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - start
    - end
    - ' e'
    argTypes:
    - char*
    - char*
    - bdecode_errors::error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 110
    functionName: libtorrent::check_integer
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::numeric
    linkageType: ''
    returnType: char
    signature: "char * check_integer(char const* start, char const* end\n\t\t, bdecode_errors::error_code_enum&
      e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::stack_frame
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_frame()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::stack_frame
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void stack_frame(int const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - bdecode_token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: libtorrent::token_source_span
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int token_source_span(bdecode_token const& t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/bdecode.cpp:135,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:140,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bdecode.cpp:140,1
    - Dst: assign
      Src: /src/libtorrent/src/bdecode.cpp:146,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' ret'
    - str
    - len
    argTypes:
    - std::string
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::escape_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - std::uint8_t
    - std::snprintf
    - assign
    - std::size_t
    - std::any_of
    linkageType: ''
    returnType: void
    signature: void escape_string(std::string& ret, char const* str, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/bdecode.cpp:135,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:140,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bdecode.cpp:140,1
    - Dst: assign
      Src: /src/libtorrent/src/bdecode.cpp:146,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' ret'
    - str
    - len
    argTypes:
    - std::string
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::escape_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - std::uint8_t
    - std::snprintf
    - assign
    - std::size_t
    - std::any_of
    linkageType: ''
    returnType: void
    signature: void escape_string(std::string& ret, char const* str, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:164,1
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:168,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/bdecode.cpp:173,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/bdecode.cpp:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - start
    - end
    - delimiter
    - ' val'
    - ' ec'
    argTypes:
    - char*
    - char*
    - char
    - std::int64_t
    - bdecode_errors::error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 189
    functionName: libtorrent::parse_int
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::max
    - libtorrent::numeric
    linkageType: ''
    returnType: char
    signature: "char * parse_int(char const* start, char const* end, char delimiter\n\t\t,
      std::int64_t& val, bdecode_errors::error_code_enum& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: libtorrent::bdecode_error_category::name
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * bdecode_error_category::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: libtorrent::bdecode_error_category::message
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string bdecode_error_category::message(int ev) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: libtorrent::bdecode_category
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & bdecode_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode_category
      Src: /src/libtorrent/src/bdecode.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: libtorrent::bdecode_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - bdecode_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode_category
      Src: /src/libtorrent/src/bdecode.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: libtorrent::bdecode_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - bdecode_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: libtorrent::bdecode_node::bdecode_node
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdecode_node::bdecode_node(bdecode_node const& n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/bdecode.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 269
    functionName: '& bdecode_node::operator=(bdecode_node const& n) &'
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node & bdecode_node::operator=(bdecode_node const& n) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: libtorrent::bdecode_node::bdecode_node
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdecode_node::bdecode_node(bdecode_node&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - tokens
    - buf
    - len
    - idx
    argTypes:
    - bdecode_token*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: libtorrent::bdecode_node::bdecode_node
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void bdecode_node::bdecode_node(bdecode_token const* tokens, char
      const* buf\n\t\t, int len, int idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/bdecode.cpp:287,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: libtorrent::bdecode_node::non_owning
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::non_owning() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::clear
      Src: /src/libtorrent/src/bdecode.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: libtorrent::bdecode_node::clear
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::bdecode_node::clear
    linkageType: ''
    returnType: void
    signature: void bdecode_node::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:306,1
    - Dst: empty
      Src: /src/libtorrent/src/bdecode.cpp:306,1
    - Dst: empty
      Src: /src/libtorrent/src/bdecode.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: libtorrent::bdecode_node::switch_underlying_buffer
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - empty
    linkageType: ''
    returnType: void
    signature: void bdecode_node::switch_underlying_buffer(char const* buf) noexcept
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:314,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/bdecode.cpp:323,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:333,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bdecode.cpp:333,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:333,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bdecode.cpp:333,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:342,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bdecode.cpp:342,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:342,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bdecode.cpp:342,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bdecode.cpp:348,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bdecode.cpp:351,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bdecode.cpp:352,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:372,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:374,1
    - Dst: std::min
      Src: /src/libtorrent/src/bdecode.cpp:377,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/bdecode.cpp:379,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:379,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:382,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bdecode.cpp:382,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:382,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bdecode.cpp:382,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:387,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bdecode.cpp:387,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:387,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bdecode.cpp:387,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bdecode.cpp:398,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 1
    argNames:
    - error
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 400
    functionName: libtorrent::bdecode_node::has_soft_error
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::back
    - std::memcmp
    - std::vector::empty
    - start_offset
    - std::snprintf
    - std::min
    - std::vector::reserve
    - std::vector::pop_back
    - std::size_t
    - span<char>::data
    - span<char>::size
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: bool
    signature: bool bdecode_node::has_soft_error(span<char> error) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bdecode_node::type_t>
      Src: /src/libtorrent/src/bdecode.cpp:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: libtorrent::bdecode_node::type
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - static_cast<bdecode_node::type_t>
    linkageType: ''
    returnType: bdecode_node::type_t
    signature: bdecode_node::type_t bdecode_node::type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: bdecode_node::operator bool() const noexcept
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdecode_node::operator bool() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:417,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/bdecode.cpp:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 421
    functionName: libtorrent::bdecode_node::data_section
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::ptrdiff_t>
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> bdecode_node::data_section() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/bdecode.cpp:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: libtorrent::bdecode_node::data_offset
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: std::ptrdiff_t bdecode_node::data_offset() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:433,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:456,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 463
    functionName: libtorrent::bdecode_node::list_at
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::bdecode_node::bdecode_node
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::list_at(int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::list_at
      Src: /src/libtorrent/src/bdecode.cpp:468,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:469,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/bdecode.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - default_val
    argTypes:
    - int
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: libtorrent::bdecode_node::list_string_value_at
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::list_at
    - bdecode_node::string_value
    - bdecode_node::type
    linkageType: ''
    returnType: string_view
    signature: "string_view bdecode_node::list_string_value_at(int i\n\t\t, string_view
      default_val) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::list_at
      Src: /src/libtorrent/src/bdecode.cpp:476,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:477,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/bdecode.cpp:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - default_val
    argTypes:
    - int
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: libtorrent::bdecode_node::list_int_value_at
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::list_at
    - bdecode_node::type
    - bdecode_node::int_value
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t bdecode_node::list_int_value_at(int i\n\t\t, std::int64_t
      default_val) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:483,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:483,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 510
    functionName: libtorrent::bdecode_node::list_size
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: int
    signature: int bdecode_node::list_size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:514,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:514,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:515,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:518,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:532,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:537,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:545,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:556,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/bdecode.cpp:558,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:559,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 561
    functionName: libtorrent::bdecode_node::dict_at_node
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::make_pair
    - libtorrent::bdecode_node::bdecode_node
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: std::pair<bdecode_node, bdecode_node>
    signature: std::pair<bdecode_node, bdecode_node> bdecode_node::dict_at_node(int
      i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/bdecode.cpp:567,1
    - Dst: libtorrent::bdecode_node::dict_at_node
      Src: /src/libtorrent/src/bdecode.cpp:567,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/bdecode.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 569
    functionName: libtorrent::bdecode_node::dict_at
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node::string_value
    - libtorrent::bdecode_node::dict_at_node
    - std::tie
    linkageType: ''
    returnType: std::pair<string_view, bdecode_node>
    signature: std::pair<string_view, bdecode_node> bdecode_node::dict_at(int const
      i) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:573,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:573,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:574,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 607
    functionName: libtorrent::bdecode_node::dict_size
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: int
    signature: int bdecode_node::dict_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:611,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:611,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:621,1
    - Dst: token_source_span
      Src: /src/libtorrent/src/bdecode.cpp:623,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:623,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/bdecode.cpp:624,1
    - Dst: equal
      Src: /src/libtorrent/src/bdecode.cpp:625,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:625,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:625,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:626,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:630,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:632,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:637,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 644
    functionName: libtorrent::bdecode_node::dict_find
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - string_view::data
    - start_offset
    - TORRENT_ASSERT
    - equal
    - string_view::size
    - libtorrent::bdecode_node::bdecode_node
    - token_source_span
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:648,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:649,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: libtorrent::bdecode_node::dict_find_list
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find_list(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:656,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:657,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 660
    functionName: libtorrent::bdecode_node::dict_find_dict
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find_dict(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:664,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:665,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 668
    functionName: libtorrent::bdecode_node::dict_find_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find_string(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:672,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:673,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 676
    functionName: libtorrent::bdecode_node::dict_find_int
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find_int(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:681,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:682,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/bdecode.cpp:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - default_value
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 684
    functionName: libtorrent::bdecode_node::dict_find_string_value
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::string_value
    - bdecode_node::type
    linkageType: ''
    returnType: string_view
    signature: "string_view bdecode_node::dict_find_string_value(string_view key\n\t\t,
      string_view default_value) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:689,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:690,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/bdecode.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - default_val
    argTypes:
    - string_view
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 692
    functionName: libtorrent::bdecode_node::dict_find_int_value
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - bdecode_node::int_value
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t bdecode_node::dict_find_int_value(string_view key\n\t\t,
      std::int64_t default_val) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:696,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:696,1
    - Dst: token_source_span
      Src: /src/libtorrent/src/bdecode.cpp:698,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:699,1
    - Dst: parse_int
      Src: /src/libtorrent/src/bdecode.cpp:706,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/bdecode.cpp:709,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 713
    functionName: libtorrent::bdecode_node::int_value
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - parse_int
    - token_source_span
    - TORRENT_UNUSED
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t bdecode_node::int_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:717,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:717,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bdecode.cpp:719,1
    - Dst: token_source_span
      Src: /src/libtorrent/src/bdecode.cpp:719,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:719,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:720,1
    - Dst: string_view
      Src: /src/libtorrent/src/bdecode.cpp:723,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 724
    functionName: libtorrent::bdecode_node::string_value
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - start_offset
    - TORRENT_ASSERT
    - string_view
    - token_source_span
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: string_view
    signature: string_view bdecode_node::string_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:728,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:728,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:730,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 733
    functionName: libtorrent::bdecode_node::string_offset
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - start_offset
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: std::ptrdiff_t bdecode_node::string_offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:737,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:737,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:739,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 742
    functionName: libtorrent::bdecode_node::string_ptr
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - start_offset
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: char
    signature: char * bdecode_node::string_ptr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:746,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:746,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:748,1
    - Dst: token_source_span
      Src: /src/libtorrent/src/bdecode.cpp:750,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 751
    functionName: libtorrent::bdecode_node::string_length
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - token_source_span
    - start_offset
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: int
    signature: int bdecode_node::string_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::reserve
      Src: /src/libtorrent/src/bdecode.cpp:754,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bdecode.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 754
    functionName: libtorrent::bdecode_node::reserve
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::bdecode_node::reserve
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void bdecode_node::reserve(int tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::swap
      Src: /src/libtorrent/src/bdecode.cpp:778,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:779,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:780,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:781,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:782,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:783,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:784,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 786
    functionName: libtorrent::bdecode_node::swap
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - std::swap
    - libtorrent::bdecode_node::swap
    linkageType: ''
    returnType: void
    signature: void bdecode_node::swap(bdecode_node& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: TORRENT_FAIL_BDECODE
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_FAIL_BDECODE(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/bdecode.cpp:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - start
    - end
    - ' ret'
    - ' ec'
    - error_pos
    - depth_limit
    - token_limit
    argTypes:
    - char*
    - char*
    - bdecode_node
    - error_code
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 799
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::bdecode
    linkageType: ''
    returnType: int
    signature: "int bdecode(char const* start, char const* end, bdecode_node& ret\n\t\t,
      error_code& ec, int* error_pos, int const depth_limit, int token_limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/bdecode.cpp:804,1
    - Dst: system_error
      Src: /src/libtorrent/src/bdecode.cpp:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - depth_limit
    - token_limit
    argTypes:
    - span<char const>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 807
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::bdecode
    - system_error
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode(span<char const> buffer, int depth_limit, int
      token_limit)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/bdecode.cpp:813,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/bdecode.cpp:815,1
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/bdecode.cpp:825,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/bdecode.cpp:828,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/bdecode.cpp:829,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:833,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:837,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:840,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:844,1
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:860,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:861,1
    - Dst: libtorrent::stack_frame
      Src: /src/libtorrent/src/bdecode.cpp:868,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:868,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:872,1
    - Dst: libtorrent::stack_frame
      Src: /src/libtorrent/src/bdecode.cpp:876,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:876,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:880,1
    - Dst: libtorrent::check_integer
      Src: /src/libtorrent/src/bdecode.cpp:888,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:896,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:898,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:900,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:910,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:918,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:922,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:929,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:930,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:932,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:932,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:932,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:935,1
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:944,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:945,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:950,1
    - Dst: libtorrent::parse_int
      Src: /src/libtorrent/src/bdecode.cpp:952,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:954,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:956,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:961,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:963,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:972,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:977,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:979,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:980,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:1004,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:1013,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:1014,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:1018,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:1018,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1019,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:1019,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:1019,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:1020,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:1023,1
    - Dst: bdecode_node::m_tokens::data
      Src: /src/libtorrent/src/bdecode.cpp:1028,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 114
    argCount: 5
    argNames:
    - buffer
    - ' ec'
    - error_pos
    - depth_limit
    - token_limit
    argTypes:
    - span<char const>
    - error_code
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 1031
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::clear
    - bdecode_node::m_tokens::size
    - libtorrent::check_integer
    - bdecode_node::m_tokens::push_back
    - TORRENT_FAIL_BDECODE
    - libtorrent::parse_int
    - span<char const>::data
    - std::uint32_t
    - TORRENT_ASSERT
    - bdecode_node::m_tokens::data
    - std::size_t
    - span<char const>::size
    - libtorrent::numeric
    - TORRENT_ALLOCA
    - libtorrent::stack_frame
    linkageType: ''
    returnType: bdecode_node
    signature: "bdecode_node bdecode(span<char const> buffer\n\t\t, error_code& ec,
      int* error_pos, int depth_limit, int token_limit)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/bdecode.cpp:1038,1
    - Dst: list_size
      Src: /src/libtorrent/src/bdecode.cpp:1043,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1045,1
    - Dst: list_at
      Src: /src/libtorrent/src/bdecode.cpp:1045,1
    - Dst: dict_size
      Src: /src/libtorrent/src/bdecode.cpp:1053,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1055,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/bdecode.cpp:1055,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1057,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1057,1
    - Dst: string_length
      Src: /src/libtorrent/src/bdecode.cpp:1063,1
    - Dst: int_value
      Src: /src/libtorrent/src/bdecode.cpp:1067,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - ' e'
    - limit
    argTypes:
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1083
    functionName: libtorrent::line_longer_than
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - list_size
    - libtorrent::type
    - dict_at
    - libtorrent::size
    - string_length
    - libtorrent::line_longer_than
    - list_at
    - dict_size
    - int_value
    linkageType: ''
    returnType: int
    signature: int line_longer_than(bdecode_node const& e, int limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/bdecode.cpp:1087,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1091,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1101,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1101,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1103,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1103,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1112,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1112,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1114,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1114,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1118,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - ' ret'
    - str
    - single_line
    argTypes:
    - std::string
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1121
    functionName: libtorrent::print_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 8
    functionsReached:
    - string_view::data
    - libtorrent::append
    - string_view::size
    - libtorrent::aux::escape_string
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void print_string(std::string& ret, string_view str, bool single_line)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/bdecode.cpp:1038,1
    - Dst: list_size
      Src: /src/libtorrent/src/bdecode.cpp:1043,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1045,1
    - Dst: list_at
      Src: /src/libtorrent/src/bdecode.cpp:1045,1
    - Dst: dict_size
      Src: /src/libtorrent/src/bdecode.cpp:1053,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1055,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/bdecode.cpp:1055,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1057,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1057,1
    - Dst: string_length
      Src: /src/libtorrent/src/bdecode.cpp:1063,1
    - Dst: int_value
      Src: /src/libtorrent/src/bdecode.cpp:1067,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - ' e'
    - limit
    argTypes:
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1083
    functionName: libtorrent::line_longer_than
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 2
    functionsReached:
    - list_size
    - libtorrent::type
    - dict_at
    - libtorrent::size
    - string_length
    - libtorrent::line_longer_than
    - list_at
    - dict_size
    - int_value
    linkageType: ''
    returnType: int
    signature: int line_longer_than(bdecode_node const& e, int limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/bdecode.cpp:1087,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1091,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1101,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1101,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1103,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1103,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1112,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1112,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1114,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1114,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1118,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - ' ret'
    - str
    - single_line
    argTypes:
    - std::string
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1121
    functionName: libtorrent::print_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 8
    functionsReached:
    - string_view::data
    - libtorrent::append
    - string_view::size
    - libtorrent::aux::escape_string
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void print_string(std::string& ret, string_view str, bool single_line)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtorrent/src/bdecode.cpp:1130,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/bdecode.cpp:1136,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:1142,1
    - Dst: int_value
      Src: /src/libtorrent/src/bdecode.cpp:1142,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/bdecode.cpp:1147,1
    - Dst: string_value
      Src: /src/libtorrent/src/bdecode.cpp:1147,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1153,1
    - Dst: list_size
      Src: /src/libtorrent/src/bdecode.cpp:1156,1
    - Dst: libtorrent::print_entry
      Src: /src/libtorrent/src/bdecode.cpp:1159,1
    - Dst: list_at
      Src: /src/libtorrent/src/bdecode.cpp:1159,1
    - Dst: list_size
      Src: /src/libtorrent/src/bdecode.cpp:1160,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1169,1
    - Dst: dict_size
      Src: /src/libtorrent/src/bdecode.cpp:1172,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1175,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/bdecode.cpp:1176,1
    - Dst: libtorrent::print_entry
      Src: /src/libtorrent/src/bdecode.cpp:1178,1
    - Dst: dict_size
      Src: /src/libtorrent/src/bdecode.cpp:1179,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - ' e'
    - single_line
    - indent
    argTypes:
    - bdecode_node
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1187
    functionName: libtorrent::print_entry
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - list_size
    - libtorrent::type
    - dict_at
    - libtorrent::print_entry
    - std::snprintf
    - list_at
    - memset
    - libtorrent::line_longer_than
    - libtorrent::print_string
    - dict_size
    - string_value
    - int_value
    linkageType: ''
    returnType: std::string
    signature: "std::string print_entry(bdecode_node const& e\n\t\t, bool single_line,
      int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::numeric
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool numeric(char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - start
    - end
    - ' e'
    argTypes:
    - char*
    - char*
    - bdecode_errors::error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 110
    functionName: libtorrent::check_integer
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::numeric
    linkageType: ''
    returnType: char
    signature: "char * check_integer(char const* start, char const* end\n\t\t, bdecode_errors::error_code_enum&
      e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::stack_frame
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_frame()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::stack_frame
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void stack_frame(int const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - bdecode_token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: libtorrent::token_source_span
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int token_source_span(bdecode_token const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::numeric
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool numeric(char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - start
    - end
    - ' e'
    argTypes:
    - char*
    - char*
    - bdecode_errors::error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 110
    functionName: libtorrent::check_integer
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::numeric
    linkageType: ''
    returnType: char
    signature: "char * check_integer(char const* start, char const* end\n\t\t, bdecode_errors::error_code_enum&
      e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::stack_frame
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_frame()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::stack_frame
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void stack_frame(int const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - bdecode_token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: libtorrent::token_source_span
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int token_source_span(bdecode_token const& t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/bdecode.cpp:135,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:140,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bdecode.cpp:140,1
    - Dst: assign
      Src: /src/libtorrent/src/bdecode.cpp:146,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' ret'
    - str
    - len
    argTypes:
    - std::string
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::escape_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 2
    functionsReached:
    - std::uint8_t
    - std::snprintf
    - assign
    - std::size_t
    - std::any_of
    linkageType: ''
    returnType: void
    signature: void escape_string(std::string& ret, char const* str, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/bdecode.cpp:135,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:140,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/bdecode.cpp:140,1
    - Dst: assign
      Src: /src/libtorrent/src/bdecode.cpp:146,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ' ret'
    - str
    - len
    argTypes:
    - std::string
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::escape_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 2
    functionsReached:
    - std::uint8_t
    - std::snprintf
    - assign
    - std::size_t
    - std::any_of
    linkageType: ''
    returnType: void
    signature: void escape_string(std::string& ret, char const* str, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:164,1
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:168,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/bdecode.cpp:173,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/bdecode.cpp:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - start
    - end
    - delimiter
    - ' val'
    - ' ec'
    argTypes:
    - char*
    - char*
    - char
    - std::int64_t
    - bdecode_errors::error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 189
    functionName: libtorrent::parse_int
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::max
    - libtorrent::numeric
    linkageType: ''
    returnType: char
    signature: "char * parse_int(char const* start, char const* end, char delimiter\n\t\t,
      std::int64_t& val, bdecode_errors::error_code_enum& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: libtorrent::bdecode_error_category::name
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * bdecode_error_category::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: libtorrent::bdecode_error_category::message
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string bdecode_error_category::message(int ev) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: libtorrent::bdecode_category
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & bdecode_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode_category
      Src: /src/libtorrent/src/bdecode.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: libtorrent::bdecode_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - bdecode_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode_category
      Src: /src/libtorrent/src/bdecode.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: libtorrent::bdecode_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - bdecode_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: libtorrent::bdecode_node::bdecode_node
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdecode_node::bdecode_node(bdecode_node const& n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/bdecode.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 269
    functionName: '& bdecode_node::operator=(bdecode_node const& n) &'
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node & bdecode_node::operator=(bdecode_node const& n) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: libtorrent::bdecode_node::bdecode_node
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdecode_node::bdecode_node(bdecode_node&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - tokens
    - buf
    - len
    - idx
    argTypes:
    - bdecode_token*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: libtorrent::bdecode_node::bdecode_node
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void bdecode_node::bdecode_node(bdecode_token const* tokens, char
      const* buf\n\t\t, int len, int idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/bdecode.cpp:287,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: libtorrent::bdecode_node::non_owning
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - empty
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::non_owning() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::clear
      Src: /src/libtorrent/src/bdecode.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: libtorrent::bdecode_node::clear
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::bdecode_node::clear
    linkageType: ''
    returnType: void
    signature: void bdecode_node::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:306,1
    - Dst: empty
      Src: /src/libtorrent/src/bdecode.cpp:306,1
    - Dst: empty
      Src: /src/libtorrent/src/bdecode.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: libtorrent::bdecode_node::switch_underlying_buffer
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - empty
    linkageType: ''
    returnType: void
    signature: void bdecode_node::switch_underlying_buffer(char const* buf) noexcept
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:314,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/bdecode.cpp:323,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:333,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bdecode.cpp:333,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:333,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bdecode.cpp:333,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:342,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bdecode.cpp:342,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:342,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bdecode.cpp:342,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bdecode.cpp:348,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bdecode.cpp:351,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bdecode.cpp:352,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:372,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:374,1
    - Dst: std::min
      Src: /src/libtorrent/src/bdecode.cpp:377,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/bdecode.cpp:379,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:379,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:382,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bdecode.cpp:382,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:382,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bdecode.cpp:382,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:387,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/bdecode.cpp:387,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:387,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/bdecode.cpp:387,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bdecode.cpp:398,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 1
    argNames:
    - error
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 400
    functionName: libtorrent::bdecode_node::has_soft_error
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::back
    - std::memcmp
    - std::vector::empty
    - start_offset
    - std::snprintf
    - std::min
    - std::vector::reserve
    - std::vector::pop_back
    - std::size_t
    - span<char>::data
    - span<char>::size
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: bool
    signature: bool bdecode_node::has_soft_error(span<char> error) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bdecode_node::type_t>
      Src: /src/libtorrent/src/bdecode.cpp:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: libtorrent::bdecode_node::type
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 12
    functionsReached:
    - static_cast<bdecode_node::type_t>
    linkageType: ''
    returnType: bdecode_node::type_t
    signature: bdecode_node::type_t bdecode_node::type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: bdecode_node::operator bool() const noexcept
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdecode_node::operator bool() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:417,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/bdecode.cpp:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 421
    functionName: libtorrent::bdecode_node::data_section
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::ptrdiff_t>
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> bdecode_node::data_section() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/bdecode.cpp:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: libtorrent::bdecode_node::data_offset
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_PRECOND
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: std::ptrdiff_t bdecode_node::data_offset() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:433,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:456,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 463
    functionName: libtorrent::bdecode_node::list_at
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::bdecode_node::bdecode_node
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::list_at(int i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::list_at
      Src: /src/libtorrent/src/bdecode.cpp:468,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:469,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/bdecode.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - default_val
    argTypes:
    - int
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: libtorrent::bdecode_node::list_string_value_at
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::list_at
    - bdecode_node::string_value
    - bdecode_node::type
    linkageType: ''
    returnType: string_view
    signature: "string_view bdecode_node::list_string_value_at(int i\n\t\t, string_view
      default_val) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::list_at
      Src: /src/libtorrent/src/bdecode.cpp:476,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:477,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/bdecode.cpp:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - default_val
    argTypes:
    - int
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: libtorrent::bdecode_node::list_int_value_at
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::list_at
    - bdecode_node::type
    - bdecode_node::int_value
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t bdecode_node::list_int_value_at(int i\n\t\t, std::int64_t
      default_val) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:483,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:483,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 510
    functionName: libtorrent::bdecode_node::list_size
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: int
    signature: int bdecode_node::list_size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:514,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:514,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:515,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:518,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:532,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:537,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:545,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:556,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/bdecode.cpp:558,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:559,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 561
    functionName: libtorrent::bdecode_node::dict_at_node
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - std::make_pair
    - libtorrent::bdecode_node::bdecode_node
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: std::pair<bdecode_node, bdecode_node>
    signature: std::pair<bdecode_node, bdecode_node> bdecode_node::dict_at_node(int
      i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/bdecode.cpp:567,1
    - Dst: libtorrent::bdecode_node::dict_at_node
      Src: /src/libtorrent/src/bdecode.cpp:567,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/bdecode.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 569
    functionName: libtorrent::bdecode_node::dict_at
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node::string_value
    - libtorrent::bdecode_node::dict_at_node
    - std::tie
    linkageType: ''
    returnType: std::pair<string_view, bdecode_node>
    signature: std::pair<string_view, bdecode_node> bdecode_node::dict_at(int const
      i) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:573,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:573,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:574,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 607
    functionName: libtorrent::bdecode_node::dict_size
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: int
    signature: int bdecode_node::dict_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:611,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:611,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:621,1
    - Dst: token_source_span
      Src: /src/libtorrent/src/bdecode.cpp:623,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:623,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/bdecode.cpp:624,1
    - Dst: equal
      Src: /src/libtorrent/src/bdecode.cpp:625,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:625,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:625,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:626,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:630,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:632,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:637,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 644
    functionName: libtorrent::bdecode_node::dict_find
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 6
    functionsReached:
    - string_view::data
    - start_offset
    - TORRENT_ASSERT
    - equal
    - string_view::size
    - libtorrent::bdecode_node::bdecode_node
    - token_source_span
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:648,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:649,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: libtorrent::bdecode_node::dict_find_list
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find_list(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:656,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:657,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 660
    functionName: libtorrent::bdecode_node::dict_find_dict
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find_dict(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:664,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:665,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 668
    functionName: libtorrent::bdecode_node::dict_find_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find_string(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:672,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:673,1
    - Dst: libtorrent::bdecode_node::bdecode_node
      Src: /src/libtorrent/src/bdecode.cpp:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 676
    functionName: libtorrent::bdecode_node::dict_find_int
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - libtorrent::bdecode_node::bdecode_node
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode_node::dict_find_int(string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:681,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:682,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/bdecode.cpp:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - default_value
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 684
    functionName: libtorrent::bdecode_node::dict_find_string_value
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::string_value
    - bdecode_node::type
    linkageType: ''
    returnType: string_view
    signature: "string_view bdecode_node::dict_find_string_value(string_view key\n\t\t,
      string_view default_value) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::dict_find
      Src: /src/libtorrent/src/bdecode.cpp:689,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:690,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/bdecode.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - default_val
    argTypes:
    - string_view
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 692
    functionName: libtorrent::bdecode_node::dict_find_int_value
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_node::dict_find
    - bdecode_node::type
    - bdecode_node::int_value
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t bdecode_node::dict_find_int_value(string_view key\n\t\t,
      std::int64_t default_val) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:696,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:696,1
    - Dst: token_source_span
      Src: /src/libtorrent/src/bdecode.cpp:698,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:699,1
    - Dst: parse_int
      Src: /src/libtorrent/src/bdecode.cpp:706,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/bdecode.cpp:709,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 713
    functionName: libtorrent::bdecode_node::int_value
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - parse_int
    - token_source_span
    - TORRENT_UNUSED
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t bdecode_node::int_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:717,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:717,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bdecode.cpp:719,1
    - Dst: token_source_span
      Src: /src/libtorrent/src/bdecode.cpp:719,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:719,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:720,1
    - Dst: string_view
      Src: /src/libtorrent/src/bdecode.cpp:723,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 724
    functionName: libtorrent::bdecode_node::string_value
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - start_offset
    - TORRENT_ASSERT
    - string_view
    - token_source_span
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: string_view
    signature: string_view bdecode_node::string_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:728,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:728,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:730,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 733
    functionName: libtorrent::bdecode_node::string_offset
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - start_offset
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: std::ptrdiff_t bdecode_node::string_offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:737,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:737,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:739,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 742
    functionName: libtorrent::bdecode_node::string_ptr
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - start_offset
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: char
    signature: char * bdecode_node::string_ptr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:746,1
    - Dst: libtorrent::bdecode_node::type
      Src: /src/libtorrent/src/bdecode.cpp:746,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:748,1
    - Dst: token_source_span
      Src: /src/libtorrent/src/bdecode.cpp:750,1
    - Dst: start_offset
      Src: /src/libtorrent/src/bdecode.cpp:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 751
    functionName: libtorrent::bdecode_node::string_length
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - token_source_span
    - start_offset
    - libtorrent::bdecode_node::type
    linkageType: ''
    returnType: int
    signature: int bdecode_node::string_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::reserve
      Src: /src/libtorrent/src/bdecode.cpp:754,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/bdecode.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 754
    functionName: libtorrent::bdecode_node::reserve
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::bdecode_node::reserve
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void bdecode_node::reserve(int tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_node::swap
      Src: /src/libtorrent/src/bdecode.cpp:778,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:779,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:780,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:781,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:782,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:783,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:784,1
    - Dst: std::swap
      Src: /src/libtorrent/src/bdecode.cpp:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 786
    functionName: libtorrent::bdecode_node::swap
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 2
    functionsReached:
    - std::swap
    - libtorrent::bdecode_node::swap
    linkageType: ''
    returnType: void
    signature: void bdecode_node::swap(bdecode_node& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: TORRENT_FAIL_BDECODE
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_FAIL_BDECODE(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/bdecode.cpp:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - start
    - end
    - ' ret'
    - ' ec'
    - error_pos
    - depth_limit
    - token_limit
    argTypes:
    - char*
    - char*
    - bdecode_node
    - error_code
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 799
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::bdecode
    linkageType: ''
    returnType: int
    signature: "int bdecode(char const* start, char const* end, bdecode_node& ret\n\t\t,
      error_code& ec, int* error_pos, int const depth_limit, int token_limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/bdecode.cpp:804,1
    - Dst: system_error
      Src: /src/libtorrent/src/bdecode.cpp:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - depth_limit
    - token_limit
    argTypes:
    - span<char const>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 807
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 10
    functionsReached:
    - libtorrent::bdecode
    - system_error
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node bdecode(span<char const> buffer, int depth_limit, int
      token_limit)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/bdecode.cpp:813,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/bdecode.cpp:815,1
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/bdecode.cpp:825,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/bdecode.cpp:828,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/bdecode.cpp:829,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:833,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:837,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:840,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:844,1
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:860,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:861,1
    - Dst: libtorrent::stack_frame
      Src: /src/libtorrent/src/bdecode.cpp:868,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:868,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:872,1
    - Dst: libtorrent::stack_frame
      Src: /src/libtorrent/src/bdecode.cpp:876,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:876,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:880,1
    - Dst: libtorrent::check_integer
      Src: /src/libtorrent/src/bdecode.cpp:888,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:896,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:898,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:900,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:910,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:918,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:922,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:929,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:930,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:932,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:932,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:932,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:935,1
    - Dst: libtorrent::numeric
      Src: /src/libtorrent/src/bdecode.cpp:944,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:945,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:950,1
    - Dst: libtorrent::parse_int
      Src: /src/libtorrent/src/bdecode.cpp:952,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:954,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:956,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:961,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:963,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:972,1
    - Dst: TORRENT_FAIL_BDECODE
      Src: /src/libtorrent/src/bdecode.cpp:977,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:979,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:980,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:1004,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:1013,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:1014,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bdecode.cpp:1018,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:1018,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1019,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bdecode.cpp:1019,1
    - Dst: bdecode_node::m_tokens::size
      Src: /src/libtorrent/src/bdecode.cpp:1019,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:1020,1
    - Dst: bdecode_node::m_tokens::push_back
      Src: /src/libtorrent/src/bdecode.cpp:1023,1
    - Dst: bdecode_node::m_tokens::data
      Src: /src/libtorrent/src/bdecode.cpp:1028,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 114
    argCount: 5
    argNames:
    - buffer
    - ' ec'
    - error_pos
    - depth_limit
    - token_limit
    argTypes:
    - span<char const>
    - error_code
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 1031
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 10
    functionsReached:
    - libtorrent::clear
    - bdecode_node::m_tokens::size
    - libtorrent::check_integer
    - bdecode_node::m_tokens::push_back
    - TORRENT_FAIL_BDECODE
    - libtorrent::parse_int
    - span<char const>::data
    - std::uint32_t
    - TORRENT_ASSERT
    - bdecode_node::m_tokens::data
    - std::size_t
    - span<char const>::size
    - libtorrent::numeric
    - TORRENT_ALLOCA
    - libtorrent::stack_frame
    linkageType: ''
    returnType: bdecode_node
    signature: "bdecode_node bdecode(span<char const> buffer\n\t\t, error_code& ec,
      int* error_pos, int depth_limit, int token_limit)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/bdecode.cpp:1038,1
    - Dst: list_size
      Src: /src/libtorrent/src/bdecode.cpp:1043,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1045,1
    - Dst: list_at
      Src: /src/libtorrent/src/bdecode.cpp:1045,1
    - Dst: dict_size
      Src: /src/libtorrent/src/bdecode.cpp:1053,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1055,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/bdecode.cpp:1055,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1057,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1057,1
    - Dst: string_length
      Src: /src/libtorrent/src/bdecode.cpp:1063,1
    - Dst: int_value
      Src: /src/libtorrent/src/bdecode.cpp:1067,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - ' e'
    - limit
    argTypes:
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1083
    functionName: libtorrent::line_longer_than
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 4
    functionsReached:
    - list_size
    - libtorrent::type
    - dict_at
    - libtorrent::size
    - string_length
    - libtorrent::line_longer_than
    - list_at
    - dict_size
    - int_value
    linkageType: ''
    returnType: int
    signature: int line_longer_than(bdecode_node const& e, int limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/bdecode.cpp:1087,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1091,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1101,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1101,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1103,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1103,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1112,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1112,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1114,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1114,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1118,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - ' ret'
    - str
    - single_line
    argTypes:
    - std::string
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1121
    functionName: libtorrent::print_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 9
    functionsReached:
    - string_view::data
    - libtorrent::append
    - string_view::size
    - libtorrent::aux::escape_string
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void print_string(std::string& ret, string_view str, bool single_line)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/bdecode.cpp:1038,1
    - Dst: list_size
      Src: /src/libtorrent/src/bdecode.cpp:1043,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1045,1
    - Dst: list_at
      Src: /src/libtorrent/src/bdecode.cpp:1045,1
    - Dst: dict_size
      Src: /src/libtorrent/src/bdecode.cpp:1053,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1055,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/bdecode.cpp:1055,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1057,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1057,1
    - Dst: string_length
      Src: /src/libtorrent/src/bdecode.cpp:1063,1
    - Dst: int_value
      Src: /src/libtorrent/src/bdecode.cpp:1067,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - ' e'
    - limit
    argTypes:
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1083
    functionName: libtorrent::line_longer_than
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 5
    functionsReached:
    - list_size
    - libtorrent::type
    - dict_at
    - libtorrent::size
    - string_length
    - libtorrent::line_longer_than
    - list_at
    - dict_size
    - int_value
    linkageType: ''
    returnType: int
    signature: int line_longer_than(bdecode_node const& e, int limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/bdecode.cpp:1087,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1091,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1101,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1101,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1103,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1103,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/bdecode.cpp:1106,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1112,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1112,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1114,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1114,1
    - Dst: libtorrent::aux::escape_string
      Src: /src/libtorrent/src/bdecode.cpp:1118,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/bdecode.cpp:1118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - ' ret'
    - str
    - single_line
    argTypes:
    - std::string
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1121
    functionName: libtorrent::print_string
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 9
    functionsReached:
    - string_view::data
    - libtorrent::append
    - string_view::size
    - libtorrent::aux::escape_string
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void print_string(std::string& ret, string_view str, bool single_line)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtorrent/src/bdecode.cpp:1130,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/bdecode.cpp:1136,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/bdecode.cpp:1142,1
    - Dst: int_value
      Src: /src/libtorrent/src/bdecode.cpp:1142,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/bdecode.cpp:1147,1
    - Dst: string_value
      Src: /src/libtorrent/src/bdecode.cpp:1147,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1153,1
    - Dst: list_size
      Src: /src/libtorrent/src/bdecode.cpp:1156,1
    - Dst: libtorrent::print_entry
      Src: /src/libtorrent/src/bdecode.cpp:1159,1
    - Dst: list_at
      Src: /src/libtorrent/src/bdecode.cpp:1159,1
    - Dst: list_size
      Src: /src/libtorrent/src/bdecode.cpp:1160,1
    - Dst: libtorrent::line_longer_than
      Src: /src/libtorrent/src/bdecode.cpp:1169,1
    - Dst: dict_size
      Src: /src/libtorrent/src/bdecode.cpp:1172,1
    - Dst: dict_at
      Src: /src/libtorrent/src/bdecode.cpp:1175,1
    - Dst: libtorrent::print_string
      Src: /src/libtorrent/src/bdecode.cpp:1176,1
    - Dst: libtorrent::print_entry
      Src: /src/libtorrent/src/bdecode.cpp:1178,1
    - Dst: dict_size
      Src: /src/libtorrent/src/bdecode.cpp:1179,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - ' e'
    - single_line
    - indent
    argTypes:
    - bdecode_node
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1187
    functionName: libtorrent::print_entry
    functionSourceFile: /src/libtorrent/src/bdecode.cpp
    functionUses: 2
    functionsReached:
    - list_size
    - libtorrent::type
    - dict_at
    - libtorrent::print_entry
    - std::snprintf
    - list_at
    - memset
    - libtorrent::line_longer_than
    - libtorrent::print_string
    - dict_size
    - string_value
    - int_value
    linkageType: ''
    returnType: std::string
    signature: "std::string print_entry(bdecode_node const& e\n\t\t, bool single_line,
      int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/alert.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::alert::alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void alert::alert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: alert::~alert()
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert::~alert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::alert::timestamp
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point alert::timestamp() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/alert.cpp:113,1
    - Dst: std::shared_ptr::name_idx
      Src: /src/libtorrent/src/alert.cpp:115,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: libtorrent::torrent_alert::torrent_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - native_handle
    - get
    - std::shared_ptr::name_idx
    linkageType: ''
    returnType: void
    signature: "void torrent_alert::torrent_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: libtorrent::torrent_alert::torrent_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * torrent_alert::torrent_name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:132,1
    - Dst: libtorrent::torrent_alert::torrent_name
      Src: /src/libtorrent/src/alert.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: libtorrent::torrent_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - is_valid
    - libtorrent::torrent_alert::torrent_name
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' i'
    - ' pi'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: libtorrent::peer_alert::peer_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_alert::peer_alert(aux::stack_allocator& alloc\n\t\t, torrent_handle
      const& h\n\t\t, tcp::endpoint const& i\n\t\t, peer_id const& pi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:154,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:154,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/src/alert.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: libtorrent::peer_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - libtorrent::aux::identify_client_impl
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string peer_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: libtorrent::tracker_alert::tracker_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void tracker_alert::tracker_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h, tcp::endpoint const& ep, string_view u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: libtorrent::tracker_alert::tracker_url
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * tracker_alert::tracker_url() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:179,1
    - Dst: libtorrent::tracker_alert::tracker_url
      Src: /src/libtorrent/src/alert.cpp:179,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: libtorrent::tracker_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - libtorrent::tracker_alert::tracker_url
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - p
    - d
    - s
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - piece_index_t
    - boost::shared_array<char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: libtorrent::read_piece_alert::read_piece_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void read_piece_alert::read_piece_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h\n\t\t, piece_index_t p, boost::shared_array<char> d,
      int s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - p
    - e
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - piece_index_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: libtorrent::read_piece_alert::read_piece_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void read_piece_alert::read_piece_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle h, piece_index_t p, error_code e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:212,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:213,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:213,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:214,1
    - Dst: libtorrent::read_piece_alert::message
      Src: /src/libtorrent/src/alert.cpp:214,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:218,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:219,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 223
    functionName: libtorrent::read_piece_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::snprintf
    - libtorrent::read_piece_alert::message
    - libtorrent::torrent_alert::message
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string read_piece_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - idx
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: libtorrent::file_completed_alert::file_completed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void file_completed_alert::file_completed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, file_index_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:237,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:239,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:240,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 244
    functionName: libtorrent::file_completed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::torrent_alert::message
    - std::string::append
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string file_completed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:250,1
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - n
    - old
    - idx
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - string_view
    - string_view
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: libtorrent::file_renamed_alert::file_renamed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void file_renamed_alert::file_renamed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, string_view n, string_view old, file_index_t
      const idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: libtorrent::file_renamed_alert::new_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * file_renamed_alert::new_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: libtorrent::file_renamed_alert::old_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * file_renamed_alert::old_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:272,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:274,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:275,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:276,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:277,1
    - Dst: libtorrent::file_renamed_alert::old_name
      Src: /src/libtorrent/src/alert.cpp:277,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:278,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:279,1
    - Dst: libtorrent::file_renamed_alert::new_name
      Src: /src/libtorrent/src/alert.cpp:279,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 283
    functionName: libtorrent::file_renamed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::string::append
    - libtorrent::file_renamed_alert::old_name
    - libtorrent::file_renamed_alert::new_name
    - std::snprintf
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string file_renamed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - idx
    - ec
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - file_index_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: libtorrent::file_rename_failed_alert::file_rename_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void file_rename_failed_alert::file_rename_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, file_index_t const idx\n\t\t, error_code
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:299,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:301,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:302,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:303,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:304,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:304,1
    - Dst: libtorrent::file_rename_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 307
    functionName: libtorrent::file_rename_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::string::append
    - libtorrent::file_rename_failed_alert::message
    - std::snprintf
    - libtorrent::torrent_alert::message
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string file_rename_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - w
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - performance_warning_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: libtorrent::performance_alert::performance_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void performance_alert::performance_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h\n\t\t, performance_warning_t w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/alert.cpp:319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:337,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:338,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/alert.cpp:338,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/alert.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - performance_alert::performance_warning_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 341
    functionName: libtorrent::performance_warning_str
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::end
    - libtorrent::begin
    - TORRENT_UNUSED
    linkageType: ''
    returnType: char
    signature: char * performance_warning_str(performance_alert::performance_warning_t
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:345,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/src/alert.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: libtorrent::performance_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - performance_warning_str
    linkageType: ''
    returnType: std::string
    signature: std::string performance_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - st
    - prev_st
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - torrent_status::state_t
    - torrent_status::state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: libtorrent::state_changed_alert::state_changed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void state_changed_alert::state_changed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, torrent_status::state_t st\n\t\t,
      torrent_status::state_t prev_st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 371
    functionName: libtorrent::state_changed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string state_changed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:382,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:384,1
    - Dst: http_category
      Src: /src/libtorrent/src/alert.cpp:384,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:390,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 9
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - times
    - v
    - u
    - operation
    - ' e'
    - m
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - int
    - protocol_version
    - string_view
    - operation_t
    - error_code
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 391
    functionName: libtorrent::tracker_error_alert::tracker_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - http_category
    - category
    - TORRENT_ASSERT
    - string_view::empty
    - value
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void tracker_error_alert::tracker_error_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep, int times\n\t\t,
      protocol_version v, string_view u, operation_t const operation\n\t\t, error_code
      const& e\n\t\t, string_view m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: libtorrent::tracker_error_alert::failure_reason
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * tracker_error_alert::failure_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:404,1
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:405,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:407,1
    - Dst: libtorrent::tracker_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:407,1
    - Dst: error_message
      Src: /src/libtorrent/src/alert.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: libtorrent::tracker_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - error_message
    - std::snprintf
    - libtorrent::tracker_alert::message
    - libtorrent::tracker_error_alert::message
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:417,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:424,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - v
    - m
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - protocol_version
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: libtorrent::tracker_warning_alert::tracker_warning_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void tracker_warning_alert::tracker_warning_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, string_view
      u, protocol_version v, string_view m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: libtorrent::tracker_warning_alert::warning_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * tracker_warning_alert::warning_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:437,1
    - Dst: libtorrent::tracker_warning_alert::warning_message
      Src: /src/libtorrent/src/alert.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: libtorrent::tracker_warning_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_alert::message
    - libtorrent::tracker_warning_alert::warning_message
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_warning_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:450,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - incomp
    - comp
    - u
    - v
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - int
    - int
    - string_view
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 451
    functionName: libtorrent::scrape_reply_alert::scrape_reply_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    linkageType: ''
    returnType: void
    signature: "void scrape_reply_alert::scrape_reply_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, int incomp,
      int comp, string_view u, protocol_version const v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:459,1
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 465
    functionName: libtorrent::scrape_reply_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string scrape_reply_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:474,1
    - Dst: libtorrent::scrape_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:479,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - v
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - protocol_version
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 480
    functionName: libtorrent::scrape_failed_alert::scrape_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    - convert_from_native
    - libtorrent::scrape_failed_alert::message
    linkageType: ''
    returnType: void
    signature: "void scrape_failed_alert::scrape_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, string_view
      u, protocol_version const v, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:487,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:492,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - m
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 493
    functionName: libtorrent::scrape_failed_alert::scrape_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void scrape_failed_alert::scrape_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, string_view
      u, string_view m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::allocation_slot
      Src: /src/libtorrent/src/alert.cpp:497,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: libtorrent::scrape_failed_alert::error_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    - libtorrent::aux::allocation_slot
    linkageType: ''
    returnType: char
    signature: char * scrape_failed_alert::error_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:506,1
    - Dst: libtorrent::scrape_failed_alert::error_message
      Src: /src/libtorrent/src/alert.cpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: libtorrent::scrape_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::tracker_alert::message
    - libtorrent::scrape_failed_alert::error_message
    linkageType: ''
    returnType: std::string
    signature: std::string scrape_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:518,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - np
    - v
    - u
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - int
    - protocol_version
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 519
    functionName: libtorrent::tracker_reply_alert::tracker_reply_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    linkageType: ''
    returnType: void
    signature: "void tracker_reply_alert::tracker_reply_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, int np,
      protocol_version v, string_view u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:527,1
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: libtorrent::tracker_reply_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_reply_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - np
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 540
    functionName: libtorrent::dht_reply_alert::dht_reply_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_reply_alert::dht_reply_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h\n\t\t, int np)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:548,1
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 552
    functionName: libtorrent::dht_reply_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string dht_reply_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:562,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - v
    - e
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - protocol_version
    - event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 563
    functionName: libtorrent::tracker_announce_alert::tracker_announce_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    linkageType: ''
    returnType: void
    signature: "void tracker_announce_alert::tracker_announce_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep, string_view u\n\t\t,
      protocol_version const v, event_t const e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:571,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 575
    functionName: libtorrent::tracker_announce_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::tracker_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_announce_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:584,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - index
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 585
    functionName: libtorrent::hash_failed_alert::hash_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void hash_failed_alert::hash_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, piece_index_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:593,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:594,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 597
    functionName: libtorrent::hash_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::torrent_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string hash_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: libtorrent::peer_ban_alert::peer_ban_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_ban_alert::peer_ban_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle h, tcp::endpoint const& ep\n\t\t, peer_id const& peer_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 612
    functionName: libtorrent::peer_ban_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string peer_ban_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: libtorrent::peer_unsnubbed_alert::peer_unsnubbed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_unsnubbed_alert::peer_unsnubbed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle h, tcp::endpoint const& ep\n\t\t, peer_id const&
      peer_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 627
    functionName: libtorrent::peer_unsnubbed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string peer_unsnubbed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 633
    functionName: libtorrent::peer_snubbed_alert::peer_snubbed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_snubbed_alert::peer_snubbed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle h, tcp::endpoint const& ep\n\t\t, peer_id const&
      peer_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 642
    functionName: libtorrent::peer_snubbed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string peer_snubbed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - ' peer_id'
    - ' r'
    - _have
    - _peer_interested
    - _withheld
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - peer_request
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: libtorrent::invalid_request_alert::invalid_request_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void invalid_request_alert::invalid_request_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, peer_id
      const& peer_id, peer_request const& r\n\t\t, bool _have, bool _peer_interested,
      bool _withheld)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:661,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:663,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 673
    functionName: libtorrent::invalid_request_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string invalid_request_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - h
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 678
    functionName: libtorrent::torrent_finished_alert::torrent_finished_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_finished_alert::torrent_finished_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: libtorrent::torrent_finished_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_finished_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: libtorrent::piece_finished_alert::piece_finished_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void piece_finished_alert::piece_finished_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:701,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:702,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 705
    functionName: libtorrent::piece_finished_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::torrent_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string piece_finished_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:714,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 715
    functionName: libtorrent::request_dropped_alert::request_dropped_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void request_dropped_alert::request_dropped_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      int block_num\n\t\t, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:723,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:724,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 727
    functionName: libtorrent::request_dropped_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string request_dropped_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:736,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 737
    functionName: libtorrent::block_timeout_alert::block_timeout_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void block_timeout_alert::block_timeout_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      int block_num\n\t\t, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:745,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:746,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 749
    functionName: libtorrent::block_timeout_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string block_timeout_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:758,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: libtorrent::block_finished_alert::block_finished_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void block_finished_alert::block_finished_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      int block_num\n\t\t, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:767,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:768,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 771
    functionName: libtorrent::block_finished_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string block_finished_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:783,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 784
    functionName: libtorrent::block_downloading_alert::block_downloading_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void block_downloading_alert::block_downloading_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep\n\t\t, peer_id const&
      peer_id, int block_num, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:792,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:793,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 796
    functionName: libtorrent::block_downloading_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string block_downloading_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:805,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: libtorrent::unwanted_block_alert::unwanted_block_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void unwanted_block_alert::unwanted_block_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep\n\t\t, peer_id const&
      peer_id, int block_num, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:814,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:815,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 818
    functionName: libtorrent::unwanted_block_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string unwanted_block_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:823,1
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - p
    - old
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 828
    functionName: libtorrent::storage_moved_alert::storage_moved_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void storage_moved_alert::storage_moved_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, string_view p, string_view old)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:835,1
    - Dst: libtorrent::storage_moved_alert::old_path
      Src: /src/libtorrent/src/alert.cpp:836,1
    - Dst: libtorrent::storage_moved_alert::storage_path
      Src: /src/libtorrent/src/alert.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 838
    functionName: libtorrent::storage_moved_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - libtorrent::storage_moved_alert::old_path
    - libtorrent::storage_moved_alert::storage_path
    linkageType: ''
    returnType: std::string
    signature: std::string storage_moved_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 843
    functionName: libtorrent::storage_moved_alert::storage_path
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * storage_moved_alert::storage_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: libtorrent::storage_moved_alert::old_path
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * storage_moved_alert::old_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:856,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    - f
    - op_
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    - string_view
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 861
    functionName: libtorrent::storage_moved_failed_alert::storage_moved_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    - operation_name
    linkageType: ''
    returnType: void
    signature: "void storage_moved_failed_alert::storage_moved_failed_alert(\n\t\taux::stack_allocator&
      alloc, torrent_handle const& h, error_code const& e\n\t\t, string_view f, operation_t
      const op_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 866
    functionName: libtorrent::storage_moved_failed_alert::file_path
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * storage_moved_failed_alert::file_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:873,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:874,1
    - Dst: libtorrent::storage_moved_failed_alert::file_path
      Src: /src/libtorrent/src/alert.cpp:874,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:875,1
    - Dst: libtorrent::storage_moved_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: libtorrent::storage_moved_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::storage_moved_failed_alert::file_path
    - libtorrent::storage_moved_failed_alert::message
    - libtorrent::torrent_alert::message
    - convert_from_native
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string storage_moved_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_best
      Src: /src/libtorrent/src/alert.cpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - ' ih'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 887
    functionName: libtorrent::torrent_deleted_alert::torrent_deleted_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get_best
    linkageType: ''
    returnType: void
    signature: "void torrent_deleted_alert::torrent_deleted_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, info_hash_t const& ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 896
    functionName: libtorrent::torrent_deleted_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_deleted_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:904,1
    - Dst: libtorrent::torrent_delete_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:904,1
    - Dst: get_best
      Src: /src/libtorrent/src/alert.cpp:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    - ' ih'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 910
    functionName: libtorrent::torrent_delete_failed_alert::torrent_delete_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_delete_failed_alert::message
    - convert_from_native
    - get_best
    linkageType: ''
    returnType: void
    signature: "void torrent_delete_failed_alert::torrent_delete_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, error_code const& e, info_hash_t const&
      ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:917,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:918,1
    - Dst: libtorrent::torrent_delete_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 920
    functionName: libtorrent::torrent_delete_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::torrent_delete_failed_alert::message
    - libtorrent::torrent_alert::message
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_delete_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:926,1
    - Dst: std::make_shared<entry>
      Src: /src/libtorrent/src/alert.cpp:928,1
    - Dst: write_resume_data
      Src: /src/libtorrent/src/alert.cpp:928,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/alert.cpp:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' alloc'
    - ' p'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - add_torrent_params
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 934
    functionName: libtorrent::save_resume_data_alert::save_resume_data_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<entry>
    - info_hashes::get_best
    - std::move
    - write_resume_data
    linkageType: ''
    returnType: void
    signature: "void save_resume_data_alert::save_resume_data_alert(aux::stack_allocator&
      alloc\n\t\t, add_torrent_params&& p\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 943
    functionName: libtorrent::save_resume_data_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string save_resume_data_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:950,1
    - Dst: libtorrent::save_resume_data_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 953
    functionName: libtorrent::save_resume_data_failed_alert::save_resume_data_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - convert_from_native
    - libtorrent::save_resume_data_failed_alert::message
    linkageType: ''
    returnType: void
    signature: "void save_resume_data_failed_alert::save_resume_data_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:960,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:961,1
    - Dst: libtorrent::save_resume_data_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 963
    functionName: libtorrent::save_resume_data_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::torrent_alert::message
    - convert_from_native
    - libtorrent::save_resume_data_failed_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string save_resume_data_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 968
    functionName: libtorrent::torrent_paused_alert::torrent_paused_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_paused_alert::torrent_paused_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 977
    functionName: libtorrent::torrent_paused_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_paused_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: libtorrent::torrent_resumed_alert::torrent_resumed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_resumed_alert::torrent_resumed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 991
    functionName: libtorrent::torrent_resumed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_resumed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 996
    functionName: libtorrent::torrent_checked_alert::torrent_checked_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_checked_alert::torrent_checked_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1005
    functionName: libtorrent::torrent_checked_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_checked_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1032
    functionName: libtorrent::sock_type_idx
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sock_type_idx(socket_type_t type)
  - BBCount: 48
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 98
    argCount: 1
    argNames:
    - op
    argTypes:
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1092
    functionName: libtorrent::to_op_t
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_op_t(operation_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1032
    functionName: libtorrent::sock_type_idx
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sock_type_idx(socket_type_t type)
  - BBCount: 48
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 98
    argCount: 1
    argNames:
    - op
    argTypes:
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1092
    functionName: libtorrent::to_op_t
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_op_t(operation_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1113,1
    - Dst: to_op_t
      Src: /src/libtorrent/src/alert.cpp:1115,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/alert.cpp:1116,1
    - Dst: static_cast<socket_type_t>
      Src: /src/libtorrent/src/alert.cpp:1117,1
    - Dst: sock_type_idx
      Src: /src/libtorrent/src/alert.cpp:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - ' alloc'
    - iface
    - ' listen_addr'
    - listen_port
    - op_
    - ' ec'
    - t
    argTypes:
    - aux::stack_allocator
    - string_view
    - libtorrent::address
    - int
    - operation_t
    - error_code
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1119
    functionName: libtorrent::listen_failed_alert::listen_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - static_cast<socket_type_t>
    - to_op_t
    - copy_string
    - sock_type_idx
    linkageType: ''
    returnType: void
    signature: "void listen_failed_alert::listen_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, string_view iface\n\t\t, libtorrent::address const& listen_addr\n\t\t,
      int listen_port\n\t\t, operation_t const op_\n\t\t, error_code const& ec\n\t\t,
      libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1130,1
    - Dst: port
      Src: /src/libtorrent/src/alert.cpp:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - iface
    - ' ep'
    - op_
    - ' ec'
    - t
    argTypes:
    - aux::stack_allocator
    - string_view
    - tcp::endpoint
    - operation_t
    - error_code
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1135
    functionName: libtorrent::listen_failed_alert::listen_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void listen_failed_alert::listen_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, string_view iface\n\t\t, tcp::endpoint const& ep\n\t\t, operation_t
      const op_\n\t\t, error_code const& ec\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1146,1
    - Dst: port
      Src: /src/libtorrent/src/alert.cpp:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - iface
    - ' ep'
    - op_
    - ' ec'
    - t
    argTypes:
    - aux::stack_allocator
    - string_view
    - udp::endpoint
    - operation_t
    - error_code
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1151
    functionName: libtorrent::listen_failed_alert::listen_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void listen_failed_alert::listen_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, string_view iface\n\t\t, udp::endpoint const& ep\n\t\t, operation_t
      const op_\n\t\t, error_code const& ec\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/alert.cpp:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - iface
    - op_
    - ' ec'
    - t
    argTypes:
    - aux::stack_allocator
    - string_view
    - operation_t
    - error_code
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1166
    functionName: libtorrent::listen_failed_alert::listen_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::address
    linkageType: ''
    returnType: void
    signature: "void listen_failed_alert::listen_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, string_view iface\n\t\t, operation_t const op_\n\t\t, error_code
      const& ec\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1171
    functionName: libtorrent::listen_failed_alert::listen_interface
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * listen_failed_alert::listen_interface() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1179,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:1180,1
    - Dst: libtorrent::listen_failed_alert::listen_interface
      Src: /src/libtorrent/src/alert.cpp:1181,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1182,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1183,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1184,1
    - Dst: libtorrent::listen_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1187
    functionName: libtorrent::listen_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - socket_type_name
    - std::snprintf
    - libtorrent::listen_failed_alert::listen_interface
    - print_endpoint
    - libtorrent::listen_failed_alert::message
    - convert_from_native
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string listen_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1193
    functionName: libtorrent::metadata_failed_alert::metadata_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void metadata_failed_alert::metadata_failed_alert(aux::stack_allocator&
      alloc\n\t\t, const torrent_handle& h, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1202
    functionName: libtorrent::metadata_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string metadata_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1207
    functionName: libtorrent::metadata_received_alert::metadata_received_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void metadata_received_alert::metadata_received_alert(aux::stack_allocator&
      alloc\n\t\t, const torrent_handle& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1216
    functionName: libtorrent::metadata_received_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string metadata_received_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - op
    - ' ec'
    argTypes:
    - udp::endpoint
    - operation_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1226
    functionName: libtorrent::udp_error_alert::udp_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void udp_error_alert::udp_error_alert(\n\t\taux::stack_allocator&\n\t\t,
      udp::endpoint const& ep\n\t\t, operation_t op\n\t\t, error_code const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1233,1
    - Dst: libtorrent::udp_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1233,1
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1234,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1237
    functionName: libtorrent::udp_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - convert_from_native
    - address
    - operation_name
    - libtorrent::udp_error_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string udp_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1242
    functionName: libtorrent::external_ip_alert::external_ip_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void external_ip_alert::external_ip_alert(aux::stack_allocator&\n\t\t,
      address const& ip)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1251
    functionName: libtorrent::external_ip_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string external_ip_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/alert.cpp:1261,1
    - Dst: static_cast<socket_type_t>
      Src: /src/libtorrent/src/alert.cpp:1262,1
    - Dst: sock_type_idx
      Src: /src/libtorrent/src/alert.cpp:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' listen_addr'
    - listen_port
    - t
    argTypes:
    - libtorrent::address
    - int
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1264
    functionName: libtorrent::listen_succeeded_alert::listen_succeeded_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - static_cast<socket_type_t>
    - sock_type_idx
    linkageType: ''
    returnType: void
    signature: "void listen_succeeded_alert::listen_succeeded_alert(aux::stack_allocator&\n\t\t,
      libtorrent::address const& listen_addr\n\t\t, int listen_port\n\t\t, libtorrent::socket_type_t
      t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1270,1
    - Dst: port
      Src: /src/libtorrent/src/alert.cpp:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' ep'
    - t
    argTypes:
    - aux::stack_allocator
    - tcp::endpoint
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1273
    functionName: libtorrent::listen_succeeded_alert::listen_succeeded_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void listen_succeeded_alert::listen_succeeded_alert(aux::stack_allocator&
      alloc\n\t\t, tcp::endpoint const& ep\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1279,1
    - Dst: port
      Src: /src/libtorrent/src/alert.cpp:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' ep'
    - t
    argTypes:
    - aux::stack_allocator
    - udp::endpoint
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1282
    functionName: libtorrent::listen_succeeded_alert::listen_succeeded_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void listen_succeeded_alert::listen_succeeded_alert(aux::stack_allocator&
      alloc\n\t\t, udp::endpoint const& ep\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1290,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1291,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1294
    functionName: libtorrent::listen_succeeded_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - socket_type_name
    - std::snprintf
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string listen_succeeded_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1304,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1305,1
    - Dst: libtorrent::portmap_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - i
    - t
    - ' e'
    - ' local'
    argTypes:
    - port_mapping_t
    - portmap_transport
    - error_code
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1307
    functionName: libtorrent::portmap_error_alert::portmap_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::portmap_error_alert::message
    - convert_from_native
    linkageType: ''
    returnType: void
    signature: "void portmap_error_alert::portmap_error_alert(aux::stack_allocator&\n\t\t,
      port_mapping_t const i, portmap_transport const t, error_code const& e\n\t\t,
      address const& local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/src/alert.cpp:1314,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1315,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1316,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1317,1
    - Dst: libtorrent::portmap_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1319
    functionName: libtorrent::portmap_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - to_string
    - libtorrent::portmap_error_alert::message
    - std::string
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string portmap_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1330,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - i
    - port
    - t
    - proto
    - ' local'
    argTypes:
    - port_mapping_t
    - int
    - portmap_transport
    - portmap_protocol
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1333
    functionName: libtorrent::portmap_alert::portmap_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: "void portmap_alert::portmap_alert(aux::stack_allocator&, port_mapping_t
      const i\n\t\t, int const port, portmap_transport const t, portmap_protocol const
      proto\n\t\t, address const& local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1341,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1342,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1343,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1335
    functionDepth: 1
    functionLinenumber: 1335
    functionLinenumberEnd: 1347
    functionName: libtorrent::portmap_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string portmap_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1354,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - t
    - m
    - ' local'
    argTypes:
    - aux::stack_allocator
    - portmap_transport
    - char*
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1359
    functionName: libtorrent::portmap_log_alert::portmap_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void portmap_log_alert::portmap_log_alert(aux::stack_allocator& alloc\n\t\t,
      portmap_transport const t, const char* m, address const& local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1364
    functionName: libtorrent::portmap_log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * portmap_log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1372,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1373,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1374,1
    - Dst: libtorrent::portmap_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1378
    functionName: libtorrent::portmap_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - libtorrent::portmap_log_alert::log_message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string portmap_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1389,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1391,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1393,1
    - Dst: libtorrent::fastresume_rejected_alert::message
      Src: /src/libtorrent/src/alert.cpp:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - ' ec'
    - f
    - op_
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    - string_view
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1396
    functionName: libtorrent::fastresume_rejected_alert::fastresume_rejected_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::fastresume_rejected_alert::message
    - convert_from_native
    - copy_string
    - operation_name
    linkageType: ''
    returnType: void
    signature: "void fastresume_rejected_alert::fastresume_rejected_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, error_code const& ec\n\t\t, string_view
      f\n\t\t, operation_t const op_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1403,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1404,1
    - Dst: libtorrent::fastresume_rejected_alert::file_path
      Src: /src/libtorrent/src/alert.cpp:1404,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1405,1
    - Dst: libtorrent::fastresume_rejected_alert::message
      Src: /src/libtorrent/src/alert.cpp:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1407
    functionName: libtorrent::fastresume_rejected_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::fastresume_rejected_alert::message
    - libtorrent::fastresume_rejected_alert::file_path
    - libtorrent::torrent_alert::message
    - convert_from_native
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string fastresume_rejected_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1412
    functionName: libtorrent::fastresume_rejected_alert::file_path
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * fastresume_rejected_alert::file_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_id
      Src: /src/libtorrent/src/alert.cpp:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - r
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1418
    functionName: libtorrent::peer_blocked_alert::peer_blocked_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - peer_id
    linkageType: ''
    returnType: void
    signature: "void peer_blocked_alert::peer_blocked_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep, int r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1438,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1442
    functionName: libtorrent::peer_blocked_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string peer_blocked_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' i'
    - p
    - ' ih'
    argTypes:
    - address
    - int
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1450
    functionName: libtorrent::dht_announce_alert::dht_announce_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_announce_alert::dht_announce_alert(aux::stack_allocator&\n\t\t,
      address const& i, int p\n\t\t, sha1_hash const& ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1458,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1459,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1462
    functionName: libtorrent::dht_announce_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_announce_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ih'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1467
    functionName: libtorrent::dht_get_peers_alert::dht_get_peers_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_get_peers_alert::dht_get_peers_alert(aux::stack_allocator&\n\t\t,
      sha1_hash const& ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1475,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:1475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1478
    functionName: libtorrent::dht_get_peers_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_get_peers_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1487,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1488,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1489,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1490,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1491,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1506
    functionName: libtorrent::stat_to_array
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: std::array<int, stats_alert::num_channels>
    signature: std::array<int, stats_alert::num_channels> stat_to_array(stat const&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1487,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1488,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1489,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1490,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1491,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1506
    functionName: libtorrent::stat_to_array
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: std::array<int, stats_alert::num_channels>
    signature: std::array<int, stats_alert::num_channels> stat_to_array(stat const&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat_to_array
      Src: /src/libtorrent/src/alert.cpp:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - in
    - ' s'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - int
    - stat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1514
    functionName: libtorrent::stats_alert::stats_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - stat_to_array
    linkageType: ''
    returnType: void
    signature: "void stats_alert::stats_alert(aux::stack_allocator& alloc\n\t\t, torrent_handle
      const& h, int in, stat const& s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1522,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1543
    functionName: libtorrent::stats_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string stats_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1548
    functionName: libtorrent::cache_flushed_alert::cache_flushed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cache_flushed_alert::cache_flushed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - k
    - s
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - int
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1556
    functionName: libtorrent::anonymous_mode_alert::anonymous_mode_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void anonymous_mode_alert::anonymous_mode_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, int k, string_view s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1567,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1568,1
    - Dst: c_str
      Src: /src/libtorrent/src/alert.cpp:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1572
    functionName: libtorrent::anonymous_mode_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - libtorrent::torrent_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string anonymous_mode_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_id
      Src: /src/libtorrent/src/alert.cpp:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - ' i'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1578
    functionName: libtorrent::lsd_peer_alert::lsd_peer_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - peer_id
    linkageType: ''
    returnType: void
    signature: "void lsd_peer_alert::lsd_peer_alert(aux::stack_allocator& alloc, torrent_handle
      const& h\n\t\t, tcp::endpoint const& i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1586,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1580
    functionDepth: 0
    functionLinenumber: 1580
    functionLinenumberEnd: 1590
    functionName: libtorrent::lsd_peer_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string lsd_peer_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - ' id'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1603
    functionName: libtorrent::trackerid_alert::trackerid_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void trackerid_alert::trackerid_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, tcp::endpoint const& ep\n\t\t, string_view
      u\n\t\t, const std::string& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1605
    functionDepth: 0
    functionLinenumber: 1605
    functionLinenumberEnd: 1608
    functionName: libtorrent::trackerid_alert::tracker_id
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * trackerid_alert::tracker_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/src/alert.cpp:1615,1
    - Dst: libtorrent::trackerid_alert::tracker_id
      Src: /src/libtorrent/src/alert.cpp:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1617
    functionName: libtorrent::trackerid_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::trackerid_alert::tracker_id
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string trackerid_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1620
    functionName: libtorrent::dht_bootstrap_alert::dht_bootstrap_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_bootstrap_alert::dht_bootstrap_alert(aux::stack_allocator&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1629
    functionName: libtorrent::dht_bootstrap_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string dht_bootstrap_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    - f
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1641
    functionName: libtorrent::torrent_error_alert::torrent_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void torrent_error_alert::torrent_error_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, error_code const& e, string_view
      f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1651,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:1652,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1652,1
    - Dst: libtorrent::torrent_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1652,1
    - Dst: libtorrent::torrent_error_alert::filename
      Src: /src/libtorrent/src/alert.cpp:1653,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1657,1
    - Dst: libtorrent::torrent_error_alert::filename
      Src: /src/libtorrent/src/alert.cpp:1657,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1643
    functionDepth: 1
    functionLinenumber: 1643
    functionLinenumberEnd: 1661
    functionName: libtorrent::torrent_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - std::snprintf
    - libtorrent::torrent_error_alert::filename
    - value
    - libtorrent::torrent_alert::message
    - convert_from_native
    - libtorrent::torrent_error_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1666
    functionName: libtorrent::torrent_error_alert::filename
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * torrent_error_alert::filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1672
    functionName: libtorrent::torrent_added_alert::torrent_added_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_added_alert::torrent_added_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1681
    functionName: libtorrent::torrent_added_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_added_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_best
      Src: /src/libtorrent/src/alert.cpp:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' ih'
    - u
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - info_hash_t
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1693
    functionName: libtorrent::torrent_removed_alert::torrent_removed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get_best
    linkageType: ''
    returnType: void
    signature: "void torrent_removed_alert::torrent_removed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, info_hash_t const& ih, client_data_t u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1695
    functionDepth: 0
    functionLinenumber: 1695
    functionLinenumberEnd: 1702
    functionName: libtorrent::torrent_removed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_removed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1707
    functionName: libtorrent::torrent_need_cert_alert::torrent_need_cert_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_need_cert_alert::torrent_need_cert_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1709
    functionDepth: 0
    functionLinenumber: 1709
    functionLinenumberEnd: 1716
    functionName: libtorrent::torrent_need_cert_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_need_cert_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - t
    - ' i'
    argTypes:
    - socket_type_t
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1718
    functionDepth: 0
    functionLinenumber: 1718
    functionLinenumberEnd: 1725
    functionName: libtorrent::incoming_connection_alert::incoming_connection_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void incoming_connection_alert::incoming_connection_alert(aux::stack_allocator&\n\t\t,
      socket_type_t t, tcp::endpoint const& i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1733,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:1734,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1737
    functionName: libtorrent::incoming_connection_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - socket_type_name
    - std::snprintf
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string incoming_connection_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - type
    - dir
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - socket_type_t
    - direction_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1744
    functionName: libtorrent::peer_connect_alert::peer_connect_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_connect_alert::peer_connect_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      socket_type_t const type, direction_t const dir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1753,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1754,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1757
    functionName: libtorrent::peer_connect_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    - socket_type_name
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string peer_connect_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:1762,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/alert.cpp:1766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - p
    - ' ec'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1768
    functionName: libtorrent::add_torrent_alert::add_torrent_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - info_hashes::get_best
    - std::move
    linkageType: ''
    returnType: void
    signature: "void add_torrent_alert::add_torrent_alert(aux::stack_allocator& alloc,
      torrent_handle const& h\n\t\t, add_torrent_params p, error_code const& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ti::name
      Src: /src/libtorrent/src/alert.cpp:1778,1
    - Dst: name::empty
      Src: /src/libtorrent/src/alert.cpp:1779,1
    - Dst: name::c_str
      Src: /src/libtorrent/src/alert.cpp:1779,1
    - Dst: url::empty
      Src: /src/libtorrent/src/alert.cpp:1781,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/alert.cpp:1781,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/alert.cpp:1783,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1787,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:1788,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1789,1
    - Dst: libtorrent::add_torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1789,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1797
    functionName: libtorrent::add_torrent_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - name::c_str
    - info_hashes::get_best
    - libtorrent::add_torrent_alert::message
    - std::snprintf
    - ti::name
    - category
    - url::empty
    - convert_from_native
    - name::empty
    - url::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string add_torrent_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:1801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - st
    argTypes:
    - std::vector<torrent_status>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1802
    functionName: libtorrent::state_update_alert::state_update_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void state_update_alert::state_update_alert(aux::stack_allocator&\n\t\t,
      std::vector<torrent_status> st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1810,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1813
    functionName: libtorrent::state_update_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string state_update_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1818
    functionName: libtorrent::mmap_cache_alert::mmap_cache_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void mmap_cache_alert::mmap_cache_alert(aux::stack_allocator&\n\t\t,
      error_code const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1826,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:1826,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1827,1
    - Dst: libtorrent::mmap_cache_alert::message
      Src: /src/libtorrent/src/alert.cpp:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1820
    functionDepth: 0
    functionLinenumber: 1820
    functionLinenumberEnd: 1830
    functionName: libtorrent::mmap_cache_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - value
    - convert_from_native
    - std::snprintf
    - libtorrent::mmap_cache_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string mmap_cache_alert::message() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/alert.cpp:1836,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1895
    functionName: libtorrent::operation_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - TORRENT_UNUSED
    linkageType: ''
    returnType: char
    signature: char * operation_name(operation_t const op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::operation_name
      Src: /src/libtorrent/src/alert.cpp:1900,1
    - Dst: static_cast<operation_t>
      Src: /src/libtorrent/src/alert.cpp:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1901
    functionName: libtorrent::operation_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::operation_name
    - static_cast<operation_t>
    linkageType: ''
    returnType: char
    signature: char * operation_name(int const op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1911,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1912,1
    - Dst: libtorrent::peer_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - ' peer_id'
    - op_
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - operation_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1914
    functionName: libtorrent::peer_error_alert::peer_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - convert_from_native
    - libtorrent::peer_error_alert::message
    linkageType: ''
    returnType: void
    signature: "void peer_error_alert::peer_error_alert(aux::stack_allocator& alloc,
      torrent_handle const& h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      operation_t const op_\n\t\t, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1922,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1923,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1924,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:1924,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1925,1
    - Dst: libtorrent::peer_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1916
    functionDepth: 0
    functionLinenumber: 1916
    functionLinenumberEnd: 1928
    functionName: libtorrent::peer_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - std::snprintf
    - category
    - convert_from_native
    - libtorrent::peer_error_alert::message
    - libtorrent::peer_alert::message
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string peer_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1940,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1941,1
    - Dst: libtorrent::peer_disconnected_alert::message
      Src: /src/libtorrent/src/alert.cpp:1941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - ' peer_id'
    - op_
    - type
    - ' e'
    - r
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - operation_t
    - socket_type_t
    - error_code
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1943
    functionName: libtorrent::peer_disconnected_alert::peer_disconnected_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - convert_from_native
    - libtorrent::peer_disconnected_alert::message
    linkageType: ''
    returnType: void
    signature: "void peer_disconnected_alert::peer_disconnected_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, peer_id
      const& peer_id, operation_t op_, socket_type_t const type, error_code const&
      e\n\t\t, close_reason_t r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1951,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1952,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1953,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1954,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:1954,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1955,1
    - Dst: libtorrent::peer_disconnected_alert::message
      Src: /src/libtorrent/src/alert.cpp:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1945
    functionDepth: 0
    functionLinenumber: 1945
    functionLinenumberEnd: 1959
    functionName: libtorrent::peer_disconnected_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - socket_type_name
    - std::snprintf
    - category
    - libtorrent::peer_disconnected_alert::message
    - convert_from_native
    - libtorrent::peer_alert::message
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string peer_disconnected_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - op_
    - ' ec'
    argTypes:
    - operation_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1970
    functionName: libtorrent::dht_error_alert::dht_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_error_alert::dht_error_alert(aux::stack_allocator&\n\t\t,
      operation_t const op_\n\t\t, error_code const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1978,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1979,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:1980,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1981,1
    - Dst: libtorrent::dht_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 1984
    functionName: libtorrent::dht_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - std::snprintf
    - value
    - convert_from_native
    - libtorrent::dht_error_alert::message
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string dht_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' t'
    - i
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 1989
    functionName: libtorrent::dht_immutable_item_alert::dht_immutable_item_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_immutable_item_alert::dht_immutable_item_alert(aux::stack_allocator&\n\t\t,
      sha1_hash const& t, entry i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1997,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:1998,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1991
    functionDepth: 1
    functionLinenumber: 1991
    functionLinenumberEnd: 2002
    functionName: libtorrent::dht_immutable_item_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_immutable_item_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' k'
    - ' sig'
    - sequence
    - s
    - i
    - a
    argTypes:
    - std::array<char, 32>
    - std::array<char, 64>
    - std::int64_t
    - string_view
    - entry
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2006
    functionDepth: 0
    functionLinenumber: 2006
    functionLinenumberEnd: 2014
    functionName: libtorrent::dht_mutable_item_alert::dht_mutable_item_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_mutable_item_alert::dht_mutable_item_alert(aux::stack_allocator&\n\t\t,
      std::array<char, 32> const& k\n\t\t, std::array<char, 64> const& sig\n\t\t,
      std::int64_t sequence\n\t\t, string_view s\n\t\t, entry i\n\t\t, bool a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2022,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2023,1
    - Dst: c_str
      Src: /src/libtorrent/src/alert.cpp:2024,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2030
    functionName: libtorrent::dht_mutable_item_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - to_string
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_mutable_item_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' t'
    - n
    argTypes:
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2039
    functionName: libtorrent::dht_put_alert::dht_put_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_put_alert::dht_put_alert(aux::stack_allocator&, sha1_hash
      const& t, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' key'
    - ' sig'
    - s
    - sequence_number
    - n
    argTypes:
    - std::array<char, 32>
    - std::array<char, 64>
    - std::string
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2041
    functionDepth: 0
    functionLinenumber: 2041
    functionLinenumberEnd: 2053
    functionName: libtorrent::dht_put_alert::dht_put_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_put_alert::dht_put_alert(aux::stack_allocator&\n\t\t, std::array<char,
      32> const& key\n\t\t, std::array<char, 64> const& sig\n\t\t, std::string s\n\t\t,
      std::int64_t sequence_number\n\t\t, int n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/alert.cpp:2061,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2063,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2065,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2066,1
    - Dst: c_str
      Src: /src/libtorrent/src/alert.cpp:2067,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2072,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2055
    functionDepth: 0
    functionLinenumber: 2055
    functionLinenumberEnd: 2077
    functionName: libtorrent::dht_put_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - std::snprintf
    - is_all_zeros
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_put_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2081
    functionName: libtorrent::i2p_alert::i2p_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_alert::i2p_alert(aux::stack_allocator&, error_code const&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2089,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:2090,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2090,1
    - Dst: libtorrent::i2p_alert::message
      Src: /src/libtorrent/src/alert.cpp:2090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2083
    functionDepth: 0
    functionLinenumber: 2083
    functionLinenumberEnd: 2093
    functionName: libtorrent::i2p_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::i2p_alert::message
    - convert_from_native
    - std::snprintf
    - category
    linkageType: ''
    returnType: std::string
    signature: std::string i2p_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ih'
    - ' obfih'
    - ep
    argTypes:
    - sha1_hash
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2104
    functionName: libtorrent::dht_outgoing_get_peers_alert::dht_outgoing_get_peers_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_outgoing_get_peers_alert::dht_outgoing_get_peers_alert(aux::stack_allocator&\n\t\t,
      sha1_hash const& ih, sha1_hash const& obfih\n\t\t, udp::endpoint ep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2116,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2117,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2119,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2120,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:2122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2106
    functionDepth: 1
    functionLinenumber: 2106
    functionLinenumberEnd: 2125
    functionName: libtorrent::dht_outgoing_get_peers_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - libtorrent::aux::to_hex
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string dht_outgoing_get_peers_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - log
    argTypes:
    - aux::stack_allocator
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2130
    functionName: libtorrent::log_alert::log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: void log_alert::log_alert(aux::stack_allocator& alloc, char const*
      log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string
      Src: /src/libtorrent/src/alert.cpp:2133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - fmt
    - v
    argTypes:
    - aux::stack_allocator
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2131
    functionDepth: 0
    functionLinenumber: 2131
    functionLinenumberEnd: 2134
    functionName: libtorrent::log_alert::log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - format_string
    linkageType: ''
    returnType: void
    signature: void log_alert::log_alert(aux::stack_allocator& alloc, char const*
      fmt, va_list v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2139
    functionName: libtorrent::log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2145
    functionName: libtorrent::log_alert::msg
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::log_alert::log_message
    linkageType: ''
    returnType: char
    signature: char * log_alert::msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2155
    functionName: libtorrent::log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::log_alert::log_message
    linkageType: ''
    returnType: std::string
    signature: std::string log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string
      Src: /src/libtorrent/src/alert.cpp:2160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - fmt
    - v
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2161
    functionName: libtorrent::torrent_log_alert::torrent_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - format_string
    linkageType: ''
    returnType: void
    signature: "void torrent_log_alert::torrent_log_alert(aux::stack_allocator& alloc,
      torrent_handle const& h\n\t\t, char const* fmt, va_list v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2163
    functionDepth: 0
    functionLinenumber: 2163
    functionLinenumberEnd: 2166
    functionName: libtorrent::torrent_log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * torrent_log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2172
    functionName: libtorrent::torrent_log_alert::msg
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_log_alert::log_message
    linkageType: ''
    returnType: char
    signature: char * torrent_log_alert::msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:2180,1
    - Dst: libtorrent::torrent_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2175
    functionDepth: 1
    functionLinenumber: 2175
    functionLinenumberEnd: 2182
    functionName: libtorrent::torrent_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - libtorrent::torrent_log_alert::log_message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string
      Src: /src/libtorrent/src/alert.cpp:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - ' alloc'
    - ' h'
    - ' i'
    - ' pi'
    - dir
    - event
    - fmt
    - v
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - peer_log_alert::direction_t
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2193
    functionName: libtorrent::peer_log_alert::peer_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - format_string
    linkageType: ''
    returnType: void
    signature: "void peer_log_alert::peer_log_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h\n\t\t, tcp::endpoint const& i, peer_id const& pi\n\t\t,
      peer_log_alert::direction_t dir\n\t\t, char const* event, char const* fmt, va_list
      v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2195
    functionDepth: 0
    functionLinenumber: 2195
    functionLinenumberEnd: 2198
    functionName: libtorrent::peer_log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * peer_log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2201
    functionDepth: 1
    functionLinenumber: 2201
    functionLinenumberEnd: 2204
    functionName: libtorrent::peer_log_alert::msg
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_log_alert::log_message
    linkageType: ''
    returnType: char
    signature: char * peer_log_alert::msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:2214,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:2214,1
    - Dst: libtorrent::peer_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2207
    functionDepth: 1
    functionLinenumber: 2207
    functionLinenumberEnd: 2217
    functionName: libtorrent::peer_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    - libtorrent::peer_log_alert::log_message
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string peer_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ec'
    - ' local'
    argTypes:
    - error_code
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2219
    functionDepth: 0
    functionLinenumber: 2219
    functionLinenumberEnd: 2224
    functionName: libtorrent::lsd_error_alert::lsd_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void lsd_error_alert::lsd_error_alert(aux::stack_allocator&, error_code
      const& ec\n\t\t, address const& local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:2231,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2232,1
    - Dst: libtorrent::lsd_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:2232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2234
    functionName: libtorrent::lsd_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - convert_from_native
    - libtorrent::lsd_error_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string lsd_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2247
    functionName: libtorrent::counters_to_array
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::array<std::int64_t, counters::num_counters>
    signature: aux::array<std::int64_t, counters::num_counters> counters_to_array(counters
      const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2247
    functionName: libtorrent::counters_to_array
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::array<std::int64_t, counters::num_counters>
    signature: aux::array<std::int64_t, counters::num_counters> counters_to_array(counters
      const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/src/alert.cpp:2254,1
    - Dst: reinterpret_cast<std::uintptr_t>
      Src: /src/libtorrent/src/alert.cpp:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2256
    functionName: libtorrent::align_pointer
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<std::uintptr_t>
    linkageType: ''
    returnType: T
    signature: T * align_pointer(U* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/src/alert.cpp:2254,1
    - Dst: reinterpret_cast<std::uintptr_t>
      Src: /src/libtorrent/src/alert.cpp:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2256
    functionName: libtorrent::align_pointer
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<std::uintptr_t>
    linkageType: ''
    returnType: T
    signature: T * align_pointer(U* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: counters_to_array
      Src: /src/libtorrent/src/alert.cpp:2262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - struct counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2263
    functionName: libtorrent::session_stats_alert::session_stats_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - counters_to_array
    linkageType: ''
    returnType: void
    signature: void session_stats_alert::session_stats_alert(aux::stack_allocator&,
      struct counters const& cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2267,1
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:2270,1
    - Dst: align_pointer<std::int64_t>
      Src: /src/libtorrent/src/alert.cpp:2271,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' alloc'
    - ' cnt'
    argTypes:
    - aux::stack_allocator
    - struct counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2274
    functionName: libtorrent::session_stats_alert::session_stats_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - is_valid
    - align_pointer<std::int64_t>
    - allocate
    linkageType: ''
    returnType: void
    signature: void session_stats_alert::session_stats_alert(aux::stack_allocator&
      alloc, struct counters const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_stats_alert::counters
      Src: /src/libtorrent/src/alert.cpp:2283,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2284,1
    - Dst: auto::size
      Src: /src/libtorrent/src/alert.cpp:2284,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2277
    functionDepth: 1
    functionLinenumber: 2277
    functionLinenumberEnd: 2295
    functionName: libtorrent::session_stats_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::snprintf
    - libtorrent::session_stats_alert::counters
    linkageType: ''
    returnType: std::string
    signature: std::string session_stats_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: align_pointer<std::int64_t const>
      Src: /src/libtorrent/src/alert.cpp:2302,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2305
    functionName: libtorrent::session_stats_alert::counters
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - align_pointer<std::int64_t const>
    - get
    linkageType: ''
    returnType: span<std::int64_t const>
    signature: span<std::int64_t const> session_stats_alert::counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2312,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - table
    - requests
    - id
    - ep
    argTypes:
    - std::vector<dht_routing_bucket>
    - std::vector<dht_lookup>
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2307
    functionDepth: 0
    functionLinenumber: 2307
    functionLinenumberEnd: 2316
    functionName: libtorrent::dht_stats_alert::dht_stats_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_stats_alert::dht_stats_alert(aux::stack_allocator&\n\t\t,
      std::vector<dht_routing_bucket> table\n\t\t, std::vector<dht_lookup> requests\n\t\t\t,
      sha1_hash id, udp::endpoint ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2324,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2325,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:2326,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:2327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2318
    functionDepth: 1
    functionLinenumber: 2318
    functionLinenumberEnd: 2330
    functionName: libtorrent::dht_stats_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - size
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_stats_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2336,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2340,1
    - Dst: libtorrent::url_seed_alert::message
      Src: /src/libtorrent/src/alert.cpp:2340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - u
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2342
    functionName: libtorrent::url_seed_alert::url_seed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::url_seed_alert::message
    - convert_from_native
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void url_seed_alert::url_seed_alert(aux::stack_allocator& alloc, torrent_handle
      const& h\n\t\t, string_view u, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2347,1
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - u
    - m
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2353
    functionName: libtorrent::url_seed_alert::url_seed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void url_seed_alert::url_seed_alert(aux::stack_allocator& alloc, torrent_handle
      const& h\n\t\t, string_view u, string_view m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:2360,1
    - Dst: libtorrent::url_seed_alert::server_url
      Src: /src/libtorrent/src/alert.cpp:2361,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2361,1
    - Dst: libtorrent::url_seed_alert::message
      Src: /src/libtorrent/src/alert.cpp:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2355
    functionDepth: 1
    functionLinenumber: 2355
    functionLinenumberEnd: 2363
    functionName: libtorrent::url_seed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::url_seed_alert::server_url
    - libtorrent::torrent_alert::message
    - convert_from_native
    - libtorrent::url_seed_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string url_seed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2365
    functionDepth: 0
    functionLinenumber: 2365
    functionLinenumberEnd: 2368
    functionName: libtorrent::url_seed_alert::server_url
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * url_seed_alert::server_url() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::allocation_slot
      Src: /src/libtorrent/src/alert.cpp:2372,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2370
    functionDepth: 1
    functionLinenumber: 2370
    functionLinenumberEnd: 2374
    functionName: libtorrent::url_seed_alert::error_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    - libtorrent::aux::allocation_slot
    linkageType: ''
    returnType: char
    signature: char * url_seed_alert::error_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2382,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:2384,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2386,1
    - Dst: libtorrent::file_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:2386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' ec'
    - f
    - op_
    - ' h'
    argTypes:
    - aux::stack_allocator
    - error_code
    - string_view
    - operation_t
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2388
    functionName: libtorrent::file_error_alert::file_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - convert_from_native
    - copy_string
    - libtorrent::file_error_alert::message
    - operation_name
    linkageType: ''
    returnType: void
    signature: "void file_error_alert::file_error_alert(aux::stack_allocator& alloc\n\t\t,
      error_code const& ec, string_view f, operation_t const op_\n\t\t, torrent_handle
      const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2390
    functionDepth: 0
    functionLinenumber: 2390
    functionLinenumberEnd: 2393
    functionName: libtorrent::file_error_alert::filename
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * file_error_alert::filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:2400,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:2401,1
    - Dst: libtorrent::file_error_alert::filename
      Src: /src/libtorrent/src/alert.cpp:2401,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2402,1
    - Dst: libtorrent::file_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:2402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2395
    functionDepth: 1
    functionLinenumber: 2395
    functionLinenumberEnd: 2404
    functionName: libtorrent::file_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_error_alert::filename
    - libtorrent::file_error_alert::message
    - libtorrent::torrent_alert::message
    - convert_from_native
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string file_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - r
    - h
    - ' ep'
    - ' peer_id'
    argTypes:
    - aux::stack_allocator
    - peer_request
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2406
    functionDepth: 0
    functionLinenumber: 2406
    functionLinenumberEnd: 2411
    functionName: libtorrent::incoming_request_alert::incoming_request_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void incoming_request_alert::incoming_request_alert(aux::stack_allocator&
      alloc\n\t\t, peer_request r, torrent_handle h\n\t\t, tcp::endpoint const& ep,
      peer_id const& peer_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2419,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:2420,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2424
    functionName: libtorrent::incoming_request_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string incoming_request_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string
      Src: /src/libtorrent/src/alert.cpp:2430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - m
    - fmt
    - v
    argTypes:
    - aux::stack_allocator
    - dht_log_alert::dht_module_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2426
    functionDepth: 0
    functionLinenumber: 2426
    functionLinenumberEnd: 2431
    functionName: libtorrent::dht_log_alert::dht_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - format_string
    linkageType: ''
    returnType: void
    signature: "void dht_log_alert::dht_log_alert(aux::stack_allocator& alloc\n\t\t,
      dht_log_alert::dht_module_t m, const char* fmt, va_list v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2433
    functionDepth: 0
    functionLinenumber: 2433
    functionLinenumberEnd: 2436
    functionName: libtorrent::dht_log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * dht_log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2453,1
    - Dst: libtorrent::dht_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2457
    functionName: libtorrent::dht_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht_log_alert::log_message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string dht_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_buffer
      Src: /src/libtorrent/src/alert.cpp:2465,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2466,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/alert.cpp:2466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - buf
    - d
    - ' ep'
    argTypes:
    - aux::stack_allocator
    - span<char const>
    - dht_pkt_alert::direction_t
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2459
    functionDepth: 1
    functionLinenumber: 2459
    functionLinenumberEnd: 2470
    functionName: libtorrent::dht_pkt_alert::dht_pkt_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_buffer
    - aux::numeric_cast<int>
    - span<char const>::size
    linkageType: ''
    returnType: void
    signature: "void dht_pkt_alert::dht_pkt_alert(aux::stack_allocator& alloc\n\t\t,
      span<char const> buf, dht_pkt_alert::direction_t d\n\t\t, udp::endpoint const&
      ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2472
    functionDepth: 0
    functionLinenumber: 2472
    functionLinenumberEnd: 2475
    functionName: libtorrent::dht_pkt_alert::pkt_buf
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> dht_pkt_alert::pkt_buf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht_pkt_alert::pkt_buf
      Src: /src/libtorrent/src/alert.cpp:2487,1
    - Dst: bdecode
      Src: /src/libtorrent/src/alert.cpp:2488,1
    - Dst: span::data
      Src: /src/libtorrent/src/alert.cpp:2488,1
    - Dst: span::data
      Src: /src/libtorrent/src/alert.cpp:2488,1
    - Dst: span::size
      Src: /src/libtorrent/src/alert.cpp:2488,1
    - Dst: print_entry
      Src: /src/libtorrent/src/alert.cpp:2490,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2494,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:2495,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/alert.cpp:2495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2477
    functionDepth: 1
    functionLinenumber: 2477
    functionLinenumberEnd: 2499
    functionName: libtorrent::dht_pkt_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - span::size
    - std::snprintf
    - span::data
    - std::string::c_str
    - print_endpoint
    - libtorrent::dht_pkt_alert::pkt_buf
    - bdecode
    linkageType: ''
    returnType: std::string
    signature: std::string dht_pkt_alert::message() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2509,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2515,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2516,1
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:2518,1
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:2518,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2525,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2526,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2529,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2530,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2532,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - ' alloc'
    - ' ih'
    - ' peers'
    argTypes:
    - aux::stack_allocator
    - sha1_hash
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2501
    functionDepth: 1
    functionLinenumber: 2501
    functionLinenumberEnd: 2534
    functionName: libtorrent::dht_get_peers_reply_alert::dht_get_peers_reply_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - ptr
    - libtorrent::aux::is_v4
    - is_valid
    - allocate
    linkageType: ''
    returnType: void
    signature: "void dht_get_peers_reply_alert::dht_get_peers_reply_alert(aux::stack_allocator&
      alloc\n\t\t, sha1_hash const& ih\n\t\t, std::vector<tcp::endpoint> const& peers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2542,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2543,1
    - Dst: libtorrent::dht_get_peers_reply_alert::num_peers
      Src: /src/libtorrent/src/alert.cpp:2543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2536
    functionDepth: 1
    functionLinenumber: 2536
    functionLinenumberEnd: 2546
    functionName: libtorrent::dht_get_peers_reply_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - libtorrent::dht_get_peers_reply_alert::num_peers
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_get_peers_reply_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2548
    functionDepth: 0
    functionLinenumber: 2548
    functionLinenumberEnd: 2551
    functionName: libtorrent::dht_get_peers_reply_alert::num_peers
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dht_get_peers_reply_alert::num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<tcp::endpoint>::reserve
      Src: /src/libtorrent/src/alert.cpp:2557,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/alert.cpp:2557,1
    - Dst: std::copy
      Src: /src/libtorrent/src/alert.cpp:2558,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/alert.cpp:2558,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/alert.cpp:2558,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/alert.cpp:2558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2559
    functionName: libtorrent::dht_get_peers_reply_alert::peers
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - std::vector::begin
    - std::copy
    - std::back_inserter
    - std::vector::end
    - std::vector<tcp::endpoint>::reserve
    linkageType: ''
    returnType: void
    signature: void dht_get_peers_reply_alert::peers(std::vector<tcp::endpoint> &v)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/alert.cpp:2564,1
    - Dst: libtorrent::dht_get_peers_reply_alert::num_peers
      Src: /src/libtorrent/src/alert.cpp:2564,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2566,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/alert.cpp:2568,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2568,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2569,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/alert.cpp:2571,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2571,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/alert.cpp:2573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2574
    functionName: libtorrent::dht_get_peers_reply_alert::peers
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht_get_peers_reply_alert::num_peers
    - aux::read_v4_endpoint<tcp::endpoint>
    - aux::vector::push_back
    - aux::vector::reserve
    - TORRENT_RVO
    - get
    - aux::read_v6_endpoint<tcp::endpoint>
    linkageType: ''
    returnType: std::vector<tcp::endpoint>
    signature: std::vector<tcp::endpoint> dht_get_peers_reply_alert::peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_buffer
      Src: /src/libtorrent/src/alert.cpp:2581,1
    - Dst: data_section
      Src: /src/libtorrent/src/alert.cpp:2581,1
    - Dst: data_section
      Src: /src/libtorrent/src/alert.cpp:2582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - userdata_
    - ' addr_'
    - ' response'
    argTypes:
    - aux::stack_allocator
    - client_data_t
    - udp::endpoint
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2586
    functionName: libtorrent::dht_direct_response_alert::dht_direct_response_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_buffer
    - data_section
    linkageType: ''
    returnType: void
    signature: "void dht_direct_response_alert::dht_direct_response_alert(\n\t\taux::stack_allocator&
      alloc, client_data_t userdata_\n\t\t, udp::endpoint const& addr_, bdecode_node
      const& response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - userdata_
    - ' addr_'
    argTypes:
    - aux::stack_allocator
    - client_data_t
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2588
    functionDepth: 0
    functionLinenumber: 2588
    functionLinenumberEnd: 2599
    functionName: libtorrent::dht_direct_response_alert::dht_direct_response_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_direct_response_alert::dht_direct_response_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, client_data_t userdata_\n\t\t, udp::endpoint const& addr_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2607,1
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:2608,1
    - Dst: std::string
      Src: /src/libtorrent/src/alert.cpp:2609,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2609,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/alert.cpp:2610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2613
    functionName: libtorrent::dht_direct_response_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - std::snprintf
    - std::string
    - get
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string dht_direct_response_alert::message() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bdecode_node
      Src: /src/libtorrent/src/alert.cpp:2617,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2618,1
    - Dst: bdecode
      Src: /src/libtorrent/src/alert.cpp:2622,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:2623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2615
    functionDepth: 1
    functionLinenumber: 2615
    functionLinenumberEnd: 2625
    functionName: libtorrent::dht_direct_response_alert::response
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node
    - TORRENT_ASSERT
    - get
    - bdecode
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node dht_direct_response_alert::response() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_buffer
      Src: /src/libtorrent/src/alert.cpp:2632,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/alert.cpp:2632,1
    - Dst: span<piece_block const>::data
      Src: /src/libtorrent/src/alert.cpp:2632,1
    - Dst: span<piece_block const>::size
      Src: /src/libtorrent/src/alert.cpp:2633,1
    - Dst: span<piece_block const>::size
      Src: /src/libtorrent/src/alert.cpp:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - ' peer_id'
    - flags
    - blocks
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - picker_flags_t
    - span<piece_block const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2627
    functionDepth: 1
    functionLinenumber: 2627
    functionLinenumberEnd: 2635
    functionName: libtorrent::picker_log_alert::picker_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_buffer
    - span<piece_block const>::data
    - span<piece_block const>::size
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: "void picker_log_alert::picker_log_alert(aux::stack_allocator& alloc,
      torrent_handle const& h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      picker_flags_t const flags\n\t\t, span<piece_block const> blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/alert.cpp:2641,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2644,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2645,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/alert.cpp:2645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2637
    functionDepth: 1
    functionLinenumber: 2637
    functionLinenumberEnd: 2648
    functionName: libtorrent::picker_log_alert::blocks
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    - std::memcpy
    - aux::numeric_cast<std::size_t>
    - std::vector::data
    linkageType: ''
    returnType: std::vector<piece_block>
    signature: std::vector<piece_block> picker_log_alert::blocks() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:2694,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/alert.cpp:2696,1
    - Dst: libtorrent::picker_log_alert::blocks
      Src: /src/libtorrent/src/alert.cpp:2706,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2711,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2668
    functionDepth: 2
    functionLinenumber: 2668
    functionLinenumberEnd: 2717
    functionName: libtorrent::picker_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::picker_log_alert::blocks
    - std::snprintf
    - static_cast<std::uint32_t>
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string picker_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - e
    - error_str
    argTypes:
    - aux::stack_allocator
    - error_code
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2719
    functionDepth: 0
    functionLinenumber: 2719
    functionLinenumberEnd: 2724
    functionName: libtorrent::session_error_alert::session_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void session_error_alert::session_error_alert(aux::stack_allocator&
      alloc\n\t\t, error_code e, string_view error_str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2734,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:2735,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2735,1
    - Dst: libtorrent::session_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:2735,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2736,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2740,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2726
    functionDepth: 0
    functionLinenumber: 2726
    functionLinenumberEnd: 2745
    functionName: libtorrent::session_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - std::snprintf
    - libtorrent::session_error_alert::message
    - value
    - convert_from_native
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string session_error_alert::message() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2759,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2765,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2766,1
    - Dst: aux::allocation_slot::is_valid
      Src: /src/libtorrent/src/alert.cpp:2768,1
    - Dst: aux::allocation_slot::is_valid
      Src: /src/libtorrent/src/alert.cpp:2768,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2770,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2771,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2775,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/alert.cpp:2777,1
    - Dst: first::to_string
      Src: /src/libtorrent/src/alert.cpp:2777,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2778,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/alert.cpp:2782,1
    - Dst: first::to_string
      Src: /src/libtorrent/src/alert.cpp:2782,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2783,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ' alloc'
    - ' nodes'
    argTypes:
    - aux::stack_allocator
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2751
    functionDepth: 1
    functionLinenumber: 2751
    functionLinenumberEnd: 2794
    functionName: libtorrent::write_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - ptr
    - libtorrent::aux::is_v4
    - aux::allocation_slot::is_valid
    - allocate
    - libtorrent::aux::write_string
    - first::to_string
    linkageType: ''
    returnType: nodes_slot
    signature: "nodes_slot write_nodes(aux::stack_allocator& alloc\n\t\t, std::vector<std::pair<sha1_hash,
      udp::endpoint>> const& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/alert.cpp:2802,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2804,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2808,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/alert.cpp:2808,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/alert.cpp:2810,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2810,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2812,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2816,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/alert.cpp:2816,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/alert.cpp:2818,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2818,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/alert.cpp:2821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' alloc'
    - v4_num_nodes
    - v4_nodes_idx
    - v6_num_nodes
    - v6_nodes_idx
    argTypes:
    - aux::stack_allocator
    - int
    - aux::allocation_slot
    - int
    - aux::allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2796
    functionDepth: 1
    functionLinenumber: 2796
    functionLinenumberEnd: 2822
    functionName: libtorrent::read_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - std::memcpy
    - aux::read_v6_endpoint<udp::endpoint>
    - aux::vector::reserve
    - aux::read_v4_endpoint<udp::endpoint>
    - TORRENT_RVO
    - sha1_hash::data
    - aux::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::pair<sha1_hash, udp::endpoint>>
    signature: "std::vector<std::pair<sha1_hash, udp::endpoint>> read_nodes(\n\t\taux::stack_allocator
      const& alloc\n\t\t, int const v4_num_nodes, aux::allocation_slot const v4_nodes_idx\n\t\t,
      int const v6_num_nodes, aux::allocation_slot const v6_nodes_idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2759,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2765,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2766,1
    - Dst: aux::allocation_slot::is_valid
      Src: /src/libtorrent/src/alert.cpp:2768,1
    - Dst: aux::allocation_slot::is_valid
      Src: /src/libtorrent/src/alert.cpp:2768,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2770,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2771,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2775,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/alert.cpp:2777,1
    - Dst: first::to_string
      Src: /src/libtorrent/src/alert.cpp:2777,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2778,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/alert.cpp:2782,1
    - Dst: first::to_string
      Src: /src/libtorrent/src/alert.cpp:2782,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2783,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ' alloc'
    - ' nodes'
    argTypes:
    - aux::stack_allocator
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2751
    functionDepth: 1
    functionLinenumber: 2751
    functionLinenumberEnd: 2794
    functionName: libtorrent::write_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - ptr
    - libtorrent::aux::is_v4
    - aux::allocation_slot::is_valid
    - allocate
    - libtorrent::aux::write_string
    - first::to_string
    linkageType: ''
    returnType: nodes_slot
    signature: "nodes_slot write_nodes(aux::stack_allocator& alloc\n\t\t, std::vector<std::pair<sha1_hash,
      udp::endpoint>> const& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/alert.cpp:2802,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2804,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2808,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/alert.cpp:2808,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/alert.cpp:2810,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2810,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2812,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2816,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/alert.cpp:2816,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/alert.cpp:2818,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2818,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/alert.cpp:2821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' alloc'
    - v4_num_nodes
    - v4_nodes_idx
    - v6_num_nodes
    - v6_nodes_idx
    argTypes:
    - aux::stack_allocator
    - int
    - aux::allocation_slot
    - int
    - aux::allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2796
    functionDepth: 1
    functionLinenumber: 2796
    functionLinenumberEnd: 2822
    functionName: libtorrent::read_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - std::memcpy
    - aux::read_v6_endpoint<udp::endpoint>
    - aux::vector::reserve
    - aux::read_v4_endpoint<udp::endpoint>
    - TORRENT_RVO
    - sha1_hash::data
    - aux::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::pair<sha1_hash, udp::endpoint>>
    signature: "std::vector<std::pair<sha1_hash, udp::endpoint>> read_nodes(\n\t\taux::stack_allocator
      const& alloc\n\t\t, int const v4_num_nodes, aux::allocation_slot const v4_nodes_idx\n\t\t,
      int const v6_num_nodes, aux::allocation_slot const v6_nodes_idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/alert.cpp:2831,1
    - Dst: write_nodes
      Src: /src/libtorrent/src/alert.cpp:2832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alloc'
    - ' nid'
    - ' nodes'
    argTypes:
    - aux::stack_allocator
    - sha1_hash
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2825
    functionDepth: 0
    functionLinenumber: 2825
    functionLinenumberEnd: 2833
    functionName: libtorrent::dht_live_nodes_alert::dht_live_nodes_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - write_nodes
    - std::tie
    linkageType: ''
    returnType: void
    signature: "void dht_live_nodes_alert::dht_live_nodes_alert(aux::stack_allocator&
      alloc\n\t\t, sha1_hash const& nid\n\t\t, std::vector<std::pair<sha1_hash, udp::endpoint>>
      const& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2841,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2842,1
    - Dst: libtorrent::dht_live_nodes_alert::num_nodes
      Src: /src/libtorrent/src/alert.cpp:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2835
    functionDepth: 1
    functionLinenumber: 2835
    functionLinenumberEnd: 2845
    functionName: libtorrent::dht_live_nodes_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht_live_nodes_alert::num_nodes
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_live_nodes_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2847
    functionDepth: 0
    functionLinenumber: 2847
    functionLinenumberEnd: 2850
    functionName: libtorrent::dht_live_nodes_alert::num_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dht_live_nodes_alert::num_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_nodes
      Src: /src/libtorrent/src/alert.cpp:2854,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2852
    functionDepth: 0
    functionLinenumber: 2852
    functionLinenumberEnd: 2857
    functionName: libtorrent::dht_live_nodes_alert::nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    - read_nodes
    linkageType: ''
    returnType: std::vector<std::pair<sha1_hash, udp::endpoint>>
    signature: std::vector<std::pair<sha1_hash, udp::endpoint>> dht_live_nodes_alert::nodes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2859
    functionDepth: 0
    functionLinenumber: 2859
    functionLinenumberEnd: 2860
    functionName: libtorrent::session_stats_header_alert::session_stats_header_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_stats_header_alert::session_stats_header_alert(aux::stack_allocator&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_stats_metrics
      Src: /src/libtorrent/src/alert.cpp:2868,1
    - Dst: std::sort
      Src: /src/libtorrent/src/alert.cpp:2869,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/alert.cpp:2869,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/alert.cpp:2869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2862
    functionDepth: 0
    functionLinenumber: 2862
    functionLinenumberEnd: 2882
    functionName: libtorrent::session_stats_header_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - session_stats_metrics
    - std::vector::begin
    - std::sort
    linkageType: ''
    returnType: std::string
    signature: std::string session_stats_header_alert::message() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2896,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:2896,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2898,1
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:2900,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2906,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2907,1
    - Dst: data
      Src: /src/libtorrent/src/alert.cpp:2907,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:2907,1
    - Dst: std::tie
      Src: /src/libtorrent/src/alert.cpp:2909,1
    - Dst: write_nodes
      Src: /src/libtorrent/src/alert.cpp:2910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - ' alloc'
    - ' nid'
    - ' endp'
    - _interval
    - _num
    - ' samples'
    - ' nodes'
    argTypes:
    - aux::stack_allocator
    - sha1_hash
    - udp::endpoint
    - time_duration
    - int
    - std::vector<sha1_hash>
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2884
    functionDepth: 1
    functionLinenumber: 2884
    functionLinenumberEnd: 2911
    functionName: libtorrent::dht_sample_infohashes_alert::dht_sample_infohashes_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - std::memcpy
    - std::tie
    - is_valid
    - write_nodes
    - allocate
    - aux::numeric_cast<int>
    - size
    - data
    linkageType: ''
    returnType: void
    signature: "void dht_sample_infohashes_alert::dht_sample_infohashes_alert(aux::stack_allocator&
      alloc\n\t\t, sha1_hash const& nid\n\t\t, udp::endpoint const& endp\n\t\t, time_duration
      _interval\n\t\t, int _num\n\t\t, std::vector<sha1_hash> const& samples\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>> const& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2919,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:2921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2913
    functionDepth: 1
    functionLinenumber: 2913
    functionLinenumberEnd: 2924
    functionName: libtorrent::dht_sample_infohashes_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string dht_sample_infohashes_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2926
    functionDepth: 0
    functionLinenumber: 2926
    functionLinenumberEnd: 2929
    functionName: libtorrent::dht_sample_infohashes_alert::num_samples
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dht_sample_infohashes_alert::num_samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/alert.cpp:2934,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2936,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2937,1
    - Dst: aux::vector::data
      Src: /src/libtorrent/src/alert.cpp:2937,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/alert.cpp:2937,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/alert.cpp:2939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2931
    functionDepth: 1
    functionLinenumber: 2931
    functionLinenumberEnd: 2940
    functionName: libtorrent::dht_sample_infohashes_alert::samples
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - aux::vector::data
    - TORRENT_RVO
    - aux::vector::resize
    - get
    - aux::vector::size
    linkageType: ''
    returnType: std::vector<sha1_hash>
    signature: std::vector<sha1_hash> dht_sample_infohashes_alert::samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2942
    functionDepth: 0
    functionLinenumber: 2942
    functionLinenumberEnd: 2945
    functionName: libtorrent::dht_sample_infohashes_alert::num_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dht_sample_infohashes_alert::num_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_nodes
      Src: /src/libtorrent/src/alert.cpp:2949,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2947
    functionDepth: 0
    functionLinenumber: 2947
    functionLinenumberEnd: 2952
    functionName: libtorrent::dht_sample_infohashes_alert::nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    - read_nodes
    linkageType: ''
    returnType: std::vector<std::pair<sha1_hash, udp::endpoint>>
    signature: std::vector<std::pair<sha1_hash, udp::endpoint>> dht_sample_infohashes_alert::nodes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:2961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2954
    functionDepth: 1
    functionLinenumber: 2954
    functionLinenumberEnd: 2962
    functionName: libtorrent::block_uploaded_alert::block_uploaded_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void block_uploaded_alert::block_uploaded_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      int block_num\n\t\t, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libtorrent/src/alert.cpp:2970,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:2971,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2964
    functionDepth: 0
    functionLinenumber: 2964
    functionLinenumberEnd: 2974
    functionName: libtorrent::block_uploaded_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - snprintf
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string block_uploaded_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' dropped'
    argTypes:
    - std::bitset<abi_alert_count>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2979
    functionName: libtorrent::alerts_dropped_alert::alerts_dropped_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void alerts_dropped_alert::alerts_dropped_alert(aux::stack_allocator&\n\t\t,
      std::bitset<abi_alert_count> const& dropped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:3036,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:3037,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/alert.cpp:3038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - alert_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3039
      start: 2981
    functionDepth: 1
    functionLinenumber: 2981
    functionLinenumberEnd: 3039
    functionName: libtorrent::alert_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    linkageType: ''
    returnType: char
    signature: char * alert_name(int const alert_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:3048,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:3048,1
    - Dst: test
      Src: /src/libtorrent/src/alert.cpp:3051,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/alert.cpp:3051,1
    - Dst: alert_name
      Src: /src/libtorrent/src/alert.cpp:3052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3041
    functionDepth: 2
    functionLinenumber: 3041
    functionLinenumberEnd: 3058
    functionName: libtorrent::alerts_dropped_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - test
    - alert_name
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string alerts_dropped_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - operation
    - ' ec'
    argTypes:
    - tcp::endpoint
    - operation_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3065
    functionName: libtorrent::socks5_alert::socks5_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void socks5_alert::socks5_alert(aux::stack_allocator&\n\t\t, tcp::endpoint
      const& ep, operation_t operation, error_code const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:3073,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:3074,1
    - Dst: libtorrent::socks5_alert::message
      Src: /src/libtorrent/src/alert.cpp:3074,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:3074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3067
    functionDepth: 1
    functionLinenumber: 3067
    functionLinenumberEnd: 3077
    functionName: libtorrent::socks5_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::socks5_alert::message
    - std::snprintf
    - operation_name
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string socks5_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - h
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3079
    functionDepth: 0
    functionLinenumber: 3079
    functionLinenumberEnd: 3081
    functionName: libtorrent::file_prio_alert::file_prio_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_prio_alert::file_prio_alert(aux::stack_allocator& a, torrent_handle
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3083
    functionDepth: 0
    functionLinenumber: 3083
    functionLinenumberEnd: 3090
    functionName: libtorrent::file_prio_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string file_prio_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - h
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3094
      start: 3092
    functionDepth: 0
    functionLinenumber: 3092
    functionLinenumberEnd: 3094
    functionName: libtorrent::oversized_file_alert::oversized_file_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void oversized_file_alert::oversized_file_alert(aux::stack_allocator&
      a, torrent_handle h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3103
      start: 3096
    functionDepth: 0
    functionLinenumber: 3096
    functionLinenumberEnd: 3103
    functionName: libtorrent::oversized_file_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string oversized_file_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h1
    - h2
    - ti
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - torrent_handle
    - std::shared_ptr<torrent_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3105
    functionDepth: 0
    functionLinenumber: 3105
    functionLinenumberEnd: 3110
    functionName: libtorrent::torrent_conflict_alert::torrent_conflict_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void torrent_conflict_alert::torrent_conflict_alert(aux::stack_allocator&
      alloc, torrent_handle h1\n\t\t, torrent_handle h2, std::shared_ptr<torrent_info>
      ti)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3119
    functionName: libtorrent::torrent_conflict_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_conflict_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3123,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - h
    - p
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - std::vector<lt::peer_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3121
    functionDepth: 0
    functionLinenumber: 3121
    functionLinenumberEnd: 3125
    functionName: libtorrent::peer_info_alert::peer_info_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void peer_info_alert::peer_info_alert(aux::stack_allocator& alloc,
      torrent_handle h\n\t\t, std::vector<lt::peer_info> p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3127
    functionDepth: 0
    functionLinenumber: 3127
    functionLinenumberEnd: 3134
    functionName: libtorrent::peer_info_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string peer_info_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3138,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - h
    - fp
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - aux::vector<std::int64_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3136
    functionDepth: 0
    functionLinenumber: 3136
    functionLinenumberEnd: 3140
    functionName: libtorrent::file_progress_alert::file_progress_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void file_progress_alert::file_progress_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, aux::vector<std::int64_t, file_index_t> fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3142
    functionDepth: 0
    functionLinenumber: 3142
    functionLinenumberEnd: 3149
    functionName: libtorrent::file_progress_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string file_progress_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3153,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3154,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - pi
    - ' bd'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - std::vector<partial_piece_info>
    - std::vector<block_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3151
    functionDepth: 0
    functionLinenumber: 3151
    functionLinenumberEnd: 3156
    functionName: libtorrent::piece_info_alert::piece_info_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void piece_info_alert::piece_info_alert(aux::stack_allocator& alloc,
      torrent_handle h\n\t\t\t, std::vector<partial_piece_info> pi, std::vector<block_info>&&
      bd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3158
    functionDepth: 0
    functionLinenumber: 3158
    functionLinenumberEnd: 3165
    functionName: libtorrent::piece_info_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string piece_info_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3169,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - h
    - pa
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 3167
    functionDepth: 0
    functionLinenumber: 3167
    functionLinenumberEnd: 3171
    functionName: libtorrent::piece_availability_alert::piece_availability_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void piece_availability_alert::piece_availability_alert(aux::stack_allocator&
      alloc\n\t\t\t, torrent_handle h, std::vector<int> pa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3173
    functionDepth: 0
    functionLinenumber: 3173
    functionLinenumberEnd: 3180
    functionName: libtorrent::piece_availability_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string piece_availability_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3184,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - h
    - t
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - std::vector<announce_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3182
    functionDepth: 0
    functionLinenumber: 3182
    functionLinenumberEnd: 3186
    functionName: libtorrent::tracker_list_alert::tracker_list_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void tracker_list_alert::tracker_list_alert(aux::stack_allocator&
      alloc\n\t\t\t, torrent_handle h, std::vector<announce_entry> t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3188
    functionDepth: 0
    functionLinenumber: 3188
    functionLinenumberEnd: 3195
    functionName: libtorrent::tracker_list_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_list_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/alert.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::alert::alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - time_now
    linkageType: ''
    returnType: void
    signature: void alert::alert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: alert::~alert()
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert::~alert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::alert::timestamp
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point alert::timestamp() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/alert.cpp:113,1
    - Dst: std::shared_ptr::name_idx
      Src: /src/libtorrent/src/alert.cpp:115,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: libtorrent::torrent_alert::torrent_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - native_handle
    - get
    - std::shared_ptr::name_idx
    linkageType: ''
    returnType: void
    signature: "void torrent_alert::torrent_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: libtorrent::torrent_alert::torrent_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * torrent_alert::torrent_name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:132,1
    - Dst: libtorrent::torrent_alert::torrent_name
      Src: /src/libtorrent/src/alert.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: libtorrent::torrent_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 40
    functionsReached:
    - is_valid
    - libtorrent::torrent_alert::torrent_name
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' i'
    - ' pi'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: libtorrent::peer_alert::peer_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_alert::peer_alert(aux::stack_allocator& alloc\n\t\t, torrent_handle
      const& h\n\t\t, tcp::endpoint const& i\n\t\t, peer_id const& pi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:154,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:154,1
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/src/alert.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: libtorrent::peer_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 18
    functionsReached:
    - libtorrent::torrent_alert::message
    - libtorrent::aux::identify_client_impl
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string peer_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: libtorrent::tracker_alert::tracker_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void tracker_alert::tracker_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h, tcp::endpoint const& ep, string_view u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: libtorrent::tracker_alert::tracker_url
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * tracker_alert::tracker_url() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:179,1
    - Dst: libtorrent::tracker_alert::tracker_url
      Src: /src/libtorrent/src/alert.cpp:179,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: libtorrent::tracker_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::torrent_alert::message
    - libtorrent::tracker_alert::tracker_url
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - p
    - d
    - s
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - piece_index_t
    - boost::shared_array<char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: libtorrent::read_piece_alert::read_piece_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void read_piece_alert::read_piece_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h\n\t\t, piece_index_t p, boost::shared_array<char> d,
      int s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - p
    - e
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - piece_index_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: libtorrent::read_piece_alert::read_piece_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void read_piece_alert::read_piece_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle h, piece_index_t p, error_code e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:212,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:213,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:213,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:214,1
    - Dst: libtorrent::read_piece_alert::message
      Src: /src/libtorrent/src/alert.cpp:214,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:218,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:219,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 223
    functionName: libtorrent::read_piece_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::snprintf
    - libtorrent::read_piece_alert::message
    - libtorrent::torrent_alert::message
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string read_piece_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - idx
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: libtorrent::file_completed_alert::file_completed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void file_completed_alert::file_completed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, file_index_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:237,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:239,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:240,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 244
    functionName: libtorrent::file_completed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::torrent_alert::message
    - std::string::append
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string file_completed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:250,1
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - n
    - old
    - idx
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - string_view
    - string_view
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: libtorrent::file_renamed_alert::file_renamed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void file_renamed_alert::file_renamed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, string_view n, string_view old, file_index_t
      const idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: libtorrent::file_renamed_alert::new_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * file_renamed_alert::new_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: libtorrent::file_renamed_alert::old_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * file_renamed_alert::old_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:272,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:274,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:275,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:276,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:277,1
    - Dst: libtorrent::file_renamed_alert::old_name
      Src: /src/libtorrent/src/alert.cpp:277,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:278,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:279,1
    - Dst: libtorrent::file_renamed_alert::new_name
      Src: /src/libtorrent/src/alert.cpp:279,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 283
    functionName: libtorrent::file_renamed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::string::append
    - libtorrent::file_renamed_alert::old_name
    - libtorrent::file_renamed_alert::new_name
    - std::snprintf
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string file_renamed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - idx
    - ec
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - file_index_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: libtorrent::file_rename_failed_alert::file_rename_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void file_rename_failed_alert::file_rename_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, file_index_t const idx\n\t\t, error_code
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:299,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:301,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:302,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:303,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/alert.cpp:304,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:304,1
    - Dst: libtorrent::file_rename_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 307
    functionName: libtorrent::file_rename_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::string::append
    - libtorrent::file_rename_failed_alert::message
    - std::snprintf
    - libtorrent::torrent_alert::message
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string file_rename_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - w
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - performance_warning_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: libtorrent::performance_alert::performance_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void performance_alert::performance_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h\n\t\t, performance_warning_t w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/alert.cpp:319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:337,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:338,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/alert.cpp:338,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/alert.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - performance_alert::performance_warning_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 341
    functionName: libtorrent::performance_warning_str
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::end
    - libtorrent::begin
    - TORRENT_UNUSED
    linkageType: ''
    returnType: char
    signature: char * performance_warning_str(performance_alert::performance_warning_t
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:345,1
    - Dst: performance_warning_str
      Src: /src/libtorrent/src/alert.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: libtorrent::performance_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - performance_warning_str
    linkageType: ''
    returnType: std::string
    signature: std::string performance_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - st
    - prev_st
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - torrent_status::state_t
    - torrent_status::state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: libtorrent::state_changed_alert::state_changed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void state_changed_alert::state_changed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, torrent_status::state_t st\n\t\t,
      torrent_status::state_t prev_st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 371
    functionName: libtorrent::state_changed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string state_changed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:382,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:384,1
    - Dst: http_category
      Src: /src/libtorrent/src/alert.cpp:384,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:390,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 9
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - times
    - v
    - u
    - operation
    - ' e'
    - m
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - int
    - protocol_version
    - string_view
    - operation_t
    - error_code
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 391
    functionName: libtorrent::tracker_error_alert::tracker_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - http_category
    - category
    - TORRENT_ASSERT
    - string_view::empty
    - value
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void tracker_error_alert::tracker_error_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep, int times\n\t\t,
      protocol_version v, string_view u, operation_t const operation\n\t\t, error_code
      const& e\n\t\t, string_view m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: libtorrent::tracker_error_alert::failure_reason
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * tracker_error_alert::failure_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:404,1
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:405,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:407,1
    - Dst: libtorrent::tracker_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:407,1
    - Dst: error_message
      Src: /src/libtorrent/src/alert.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: libtorrent::tracker_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - error_message
    - std::snprintf
    - libtorrent::tracker_alert::message
    - libtorrent::tracker_error_alert::message
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:417,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:424,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - v
    - m
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - protocol_version
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: libtorrent::tracker_warning_alert::tracker_warning_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void tracker_warning_alert::tracker_warning_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, string_view
      u, protocol_version v, string_view m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: libtorrent::tracker_warning_alert::warning_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * tracker_warning_alert::warning_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:437,1
    - Dst: libtorrent::tracker_warning_alert::warning_message
      Src: /src/libtorrent/src/alert.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: libtorrent::tracker_warning_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_alert::message
    - libtorrent::tracker_warning_alert::warning_message
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_warning_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:450,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - incomp
    - comp
    - u
    - v
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - int
    - int
    - string_view
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 451
    functionName: libtorrent::scrape_reply_alert::scrape_reply_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    linkageType: ''
    returnType: void
    signature: "void scrape_reply_alert::scrape_reply_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, int incomp,
      int comp, string_view u, protocol_version const v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:459,1
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 465
    functionName: libtorrent::scrape_reply_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string scrape_reply_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:474,1
    - Dst: libtorrent::scrape_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:479,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - v
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - protocol_version
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 480
    functionName: libtorrent::scrape_failed_alert::scrape_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    - convert_from_native
    - libtorrent::scrape_failed_alert::message
    linkageType: ''
    returnType: void
    signature: "void scrape_failed_alert::scrape_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, string_view
      u, protocol_version const v, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:487,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:492,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - m
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 493
    functionName: libtorrent::scrape_failed_alert::scrape_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void scrape_failed_alert::scrape_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, string_view
      u, string_view m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::allocation_slot
      Src: /src/libtorrent/src/alert.cpp:497,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: libtorrent::scrape_failed_alert::error_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    - libtorrent::aux::allocation_slot
    linkageType: ''
    returnType: char
    signature: char * scrape_failed_alert::error_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:506,1
    - Dst: libtorrent::scrape_failed_alert::error_message
      Src: /src/libtorrent/src/alert.cpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: libtorrent::scrape_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::tracker_alert::message
    - libtorrent::scrape_failed_alert::error_message
    linkageType: ''
    returnType: std::string
    signature: std::string scrape_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:518,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - np
    - v
    - u
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - int
    - protocol_version
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 519
    functionName: libtorrent::tracker_reply_alert::tracker_reply_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    linkageType: ''
    returnType: void
    signature: "void tracker_reply_alert::tracker_reply_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, int np,
      protocol_version v, string_view u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:527,1
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: libtorrent::tracker_reply_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_reply_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - np
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 540
    functionName: libtorrent::dht_reply_alert::dht_reply_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_reply_alert::dht_reply_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h\n\t\t, int np)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:548,1
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 552
    functionName: libtorrent::dht_reply_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::tracker_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string dht_reply_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:562,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/alert.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - v
    - e
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - protocol_version
    - event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 563
    functionName: libtorrent::tracker_announce_alert::tracker_announce_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - string_view::empty
    linkageType: ''
    returnType: void
    signature: "void tracker_announce_alert::tracker_announce_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep, string_view u\n\t\t,
      protocol_version const v, event_t const e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tracker_alert::message
      Src: /src/libtorrent/src/alert.cpp:571,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 575
    functionName: libtorrent::tracker_announce_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::tracker_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_announce_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:584,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - index
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 585
    functionName: libtorrent::hash_failed_alert::hash_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void hash_failed_alert::hash_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, piece_index_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:593,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:594,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 597
    functionName: libtorrent::hash_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::torrent_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string hash_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: libtorrent::peer_ban_alert::peer_ban_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_ban_alert::peer_ban_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle h, tcp::endpoint const& ep\n\t\t, peer_id const& peer_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 612
    functionName: libtorrent::peer_ban_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string peer_ban_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: libtorrent::peer_unsnubbed_alert::peer_unsnubbed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_unsnubbed_alert::peer_unsnubbed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle h, tcp::endpoint const& ep\n\t\t, peer_id const&
      peer_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 627
    functionName: libtorrent::peer_unsnubbed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string peer_unsnubbed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 633
    functionName: libtorrent::peer_snubbed_alert::peer_snubbed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_snubbed_alert::peer_snubbed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle h, tcp::endpoint const& ep\n\t\t, peer_id const&
      peer_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 642
    functionName: libtorrent::peer_snubbed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string peer_snubbed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - ' peer_id'
    - ' r'
    - _have
    - _peer_interested
    - _withheld
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - peer_request
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: libtorrent::invalid_request_alert::invalid_request_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void invalid_request_alert::invalid_request_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, peer_id
      const& peer_id, peer_request const& r\n\t\t, bool _have, bool _peer_interested,
      bool _withheld)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:661,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:663,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 673
    functionName: libtorrent::invalid_request_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string invalid_request_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - h
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 678
    functionName: libtorrent::torrent_finished_alert::torrent_finished_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_finished_alert::torrent_finished_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: libtorrent::torrent_finished_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_finished_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: libtorrent::piece_finished_alert::piece_finished_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void piece_finished_alert::piece_finished_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:701,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:702,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 705
    functionName: libtorrent::piece_finished_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::torrent_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string piece_finished_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:714,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 715
    functionName: libtorrent::request_dropped_alert::request_dropped_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void request_dropped_alert::request_dropped_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      int block_num\n\t\t, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:723,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:724,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 727
    functionName: libtorrent::request_dropped_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string request_dropped_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:736,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 737
    functionName: libtorrent::block_timeout_alert::block_timeout_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void block_timeout_alert::block_timeout_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      int block_num\n\t\t, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:745,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:746,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 749
    functionName: libtorrent::block_timeout_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string block_timeout_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:758,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: libtorrent::block_finished_alert::block_finished_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void block_finished_alert::block_finished_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      int block_num\n\t\t, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:767,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:768,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 771
    functionName: libtorrent::block_finished_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string block_finished_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:783,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 784
    functionName: libtorrent::block_downloading_alert::block_downloading_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void block_downloading_alert::block_downloading_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep\n\t\t, peer_id const&
      peer_id, int block_num, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:792,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:793,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 796
    functionName: libtorrent::block_downloading_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string block_downloading_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:805,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/alert.cpp:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: libtorrent::unwanted_block_alert::unwanted_block_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void unwanted_block_alert::unwanted_block_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep\n\t\t, peer_id const&
      peer_id, int block_num, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:814,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:815,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 818
    functionName: libtorrent::unwanted_block_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string unwanted_block_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:823,1
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - p
    - old
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 828
    functionName: libtorrent::storage_moved_alert::storage_moved_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void storage_moved_alert::storage_moved_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, string_view p, string_view old)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:835,1
    - Dst: libtorrent::storage_moved_alert::old_path
      Src: /src/libtorrent/src/alert.cpp:836,1
    - Dst: libtorrent::storage_moved_alert::storage_path
      Src: /src/libtorrent/src/alert.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 838
    functionName: libtorrent::storage_moved_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - libtorrent::storage_moved_alert::old_path
    - libtorrent::storage_moved_alert::storage_path
    linkageType: ''
    returnType: std::string
    signature: std::string storage_moved_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 843
    functionName: libtorrent::storage_moved_alert::storage_path
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * storage_moved_alert::storage_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: libtorrent::storage_moved_alert::old_path
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * storage_moved_alert::old_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:856,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    - f
    - op_
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    - string_view
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 861
    functionName: libtorrent::storage_moved_failed_alert::storage_moved_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    - operation_name
    linkageType: ''
    returnType: void
    signature: "void storage_moved_failed_alert::storage_moved_failed_alert(\n\t\taux::stack_allocator&
      alloc, torrent_handle const& h, error_code const& e\n\t\t, string_view f, operation_t
      const op_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 866
    functionName: libtorrent::storage_moved_failed_alert::file_path
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * storage_moved_failed_alert::file_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:873,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:874,1
    - Dst: libtorrent::storage_moved_failed_alert::file_path
      Src: /src/libtorrent/src/alert.cpp:874,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:875,1
    - Dst: libtorrent::storage_moved_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: libtorrent::storage_moved_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::storage_moved_failed_alert::file_path
    - libtorrent::storage_moved_failed_alert::message
    - libtorrent::torrent_alert::message
    - convert_from_native
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string storage_moved_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_best
      Src: /src/libtorrent/src/alert.cpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - ' ih'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 887
    functionName: libtorrent::torrent_deleted_alert::torrent_deleted_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get_best
    linkageType: ''
    returnType: void
    signature: "void torrent_deleted_alert::torrent_deleted_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, info_hash_t const& ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 896
    functionName: libtorrent::torrent_deleted_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_deleted_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:904,1
    - Dst: libtorrent::torrent_delete_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:904,1
    - Dst: get_best
      Src: /src/libtorrent/src/alert.cpp:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    - ' ih'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 910
    functionName: libtorrent::torrent_delete_failed_alert::torrent_delete_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_delete_failed_alert::message
    - convert_from_native
    - get_best
    linkageType: ''
    returnType: void
    signature: "void torrent_delete_failed_alert::torrent_delete_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, error_code const& e, info_hash_t const&
      ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:917,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:918,1
    - Dst: libtorrent::torrent_delete_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 920
    functionName: libtorrent::torrent_delete_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::torrent_delete_failed_alert::message
    - libtorrent::torrent_alert::message
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_delete_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:926,1
    - Dst: std::make_shared<entry>
      Src: /src/libtorrent/src/alert.cpp:928,1
    - Dst: write_resume_data
      Src: /src/libtorrent/src/alert.cpp:928,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/alert.cpp:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' alloc'
    - ' p'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - add_torrent_params
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 934
    functionName: libtorrent::save_resume_data_alert::save_resume_data_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<entry>
    - info_hashes::get_best
    - std::move
    - write_resume_data
    linkageType: ''
    returnType: void
    signature: "void save_resume_data_alert::save_resume_data_alert(aux::stack_allocator&
      alloc\n\t\t, add_torrent_params&& p\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 943
    functionName: libtorrent::save_resume_data_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string save_resume_data_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:950,1
    - Dst: libtorrent::save_resume_data_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 953
    functionName: libtorrent::save_resume_data_failed_alert::save_resume_data_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - convert_from_native
    - libtorrent::save_resume_data_failed_alert::message
    linkageType: ''
    returnType: void
    signature: "void save_resume_data_failed_alert::save_resume_data_failed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:960,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:961,1
    - Dst: libtorrent::save_resume_data_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 963
    functionName: libtorrent::save_resume_data_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::torrent_alert::message
    - convert_from_native
    - libtorrent::save_resume_data_failed_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string save_resume_data_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 968
    functionName: libtorrent::torrent_paused_alert::torrent_paused_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_paused_alert::torrent_paused_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 977
    functionName: libtorrent::torrent_paused_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_paused_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: libtorrent::torrent_resumed_alert::torrent_resumed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_resumed_alert::torrent_resumed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 991
    functionName: libtorrent::torrent_resumed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_resumed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 996
    functionName: libtorrent::torrent_checked_alert::torrent_checked_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_checked_alert::torrent_checked_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1005
    functionName: libtorrent::torrent_checked_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_checked_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1032
    functionName: libtorrent::sock_type_idx
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sock_type_idx(socket_type_t type)
  - BBCount: 48
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 98
    argCount: 1
    argNames:
    - op
    argTypes:
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1092
    functionName: libtorrent::to_op_t
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_op_t(operation_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1032
    functionName: libtorrent::sock_type_idx
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sock_type_idx(socket_type_t type)
  - BBCount: 48
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 98
    argCount: 1
    argNames:
    - op
    argTypes:
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1092
    functionName: libtorrent::to_op_t
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_op_t(operation_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1113,1
    - Dst: to_op_t
      Src: /src/libtorrent/src/alert.cpp:1115,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/alert.cpp:1116,1
    - Dst: static_cast<socket_type_t>
      Src: /src/libtorrent/src/alert.cpp:1117,1
    - Dst: sock_type_idx
      Src: /src/libtorrent/src/alert.cpp:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - ' alloc'
    - iface
    - ' listen_addr'
    - listen_port
    - op_
    - ' ec'
    - t
    argTypes:
    - aux::stack_allocator
    - string_view
    - libtorrent::address
    - int
    - operation_t
    - error_code
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1119
    functionName: libtorrent::listen_failed_alert::listen_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - static_cast<socket_type_t>
    - to_op_t
    - copy_string
    - sock_type_idx
    linkageType: ''
    returnType: void
    signature: "void listen_failed_alert::listen_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, string_view iface\n\t\t, libtorrent::address const& listen_addr\n\t\t,
      int listen_port\n\t\t, operation_t const op_\n\t\t, error_code const& ec\n\t\t,
      libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1130,1
    - Dst: port
      Src: /src/libtorrent/src/alert.cpp:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - iface
    - ' ep'
    - op_
    - ' ec'
    - t
    argTypes:
    - aux::stack_allocator
    - string_view
    - tcp::endpoint
    - operation_t
    - error_code
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1135
    functionName: libtorrent::listen_failed_alert::listen_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void listen_failed_alert::listen_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, string_view iface\n\t\t, tcp::endpoint const& ep\n\t\t, operation_t
      const op_\n\t\t, error_code const& ec\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1146,1
    - Dst: port
      Src: /src/libtorrent/src/alert.cpp:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - iface
    - ' ep'
    - op_
    - ' ec'
    - t
    argTypes:
    - aux::stack_allocator
    - string_view
    - udp::endpoint
    - operation_t
    - error_code
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1151
    functionName: libtorrent::listen_failed_alert::listen_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void listen_failed_alert::listen_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, string_view iface\n\t\t, udp::endpoint const& ep\n\t\t, operation_t
      const op_\n\t\t, error_code const& ec\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/alert.cpp:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - iface
    - op_
    - ' ec'
    - t
    argTypes:
    - aux::stack_allocator
    - string_view
    - operation_t
    - error_code
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1166
    functionName: libtorrent::listen_failed_alert::listen_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::address
    linkageType: ''
    returnType: void
    signature: "void listen_failed_alert::listen_failed_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, string_view iface\n\t\t, operation_t const op_\n\t\t, error_code
      const& ec\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1171
    functionName: libtorrent::listen_failed_alert::listen_interface
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * listen_failed_alert::listen_interface() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1179,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:1180,1
    - Dst: libtorrent::listen_failed_alert::listen_interface
      Src: /src/libtorrent/src/alert.cpp:1181,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1182,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1183,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1184,1
    - Dst: libtorrent::listen_failed_alert::message
      Src: /src/libtorrent/src/alert.cpp:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1187
    functionName: libtorrent::listen_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - socket_type_name
    - std::snprintf
    - libtorrent::listen_failed_alert::listen_interface
    - print_endpoint
    - libtorrent::listen_failed_alert::message
    - convert_from_native
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string listen_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1193
    functionName: libtorrent::metadata_failed_alert::metadata_failed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void metadata_failed_alert::metadata_failed_alert(aux::stack_allocator&
      alloc\n\t\t, const torrent_handle& h, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1202
    functionName: libtorrent::metadata_failed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string metadata_failed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1207
    functionName: libtorrent::metadata_received_alert::metadata_received_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void metadata_received_alert::metadata_received_alert(aux::stack_allocator&
      alloc\n\t\t, const torrent_handle& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1216
    functionName: libtorrent::metadata_received_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string metadata_received_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - op
    - ' ec'
    argTypes:
    - udp::endpoint
    - operation_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1226
    functionName: libtorrent::udp_error_alert::udp_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void udp_error_alert::udp_error_alert(\n\t\taux::stack_allocator&\n\t\t,
      udp::endpoint const& ep\n\t\t, operation_t op\n\t\t, error_code const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1233,1
    - Dst: libtorrent::udp_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1233,1
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1234,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1237
    functionName: libtorrent::udp_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - convert_from_native
    - address
    - operation_name
    - libtorrent::udp_error_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string udp_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1242
    functionName: libtorrent::external_ip_alert::external_ip_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void external_ip_alert::external_ip_alert(aux::stack_allocator&\n\t\t,
      address const& ip)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1251
    functionName: libtorrent::external_ip_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string external_ip_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/alert.cpp:1261,1
    - Dst: static_cast<socket_type_t>
      Src: /src/libtorrent/src/alert.cpp:1262,1
    - Dst: sock_type_idx
      Src: /src/libtorrent/src/alert.cpp:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' listen_addr'
    - listen_port
    - t
    argTypes:
    - libtorrent::address
    - int
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1264
    functionName: libtorrent::listen_succeeded_alert::listen_succeeded_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - static_cast<socket_type_t>
    - sock_type_idx
    linkageType: ''
    returnType: void
    signature: "void listen_succeeded_alert::listen_succeeded_alert(aux::stack_allocator&\n\t\t,
      libtorrent::address const& listen_addr\n\t\t, int listen_port\n\t\t, libtorrent::socket_type_t
      t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1270,1
    - Dst: port
      Src: /src/libtorrent/src/alert.cpp:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' ep'
    - t
    argTypes:
    - aux::stack_allocator
    - tcp::endpoint
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1273
    functionName: libtorrent::listen_succeeded_alert::listen_succeeded_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void listen_succeeded_alert::listen_succeeded_alert(aux::stack_allocator&
      alloc\n\t\t, tcp::endpoint const& ep\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:1279,1
    - Dst: port
      Src: /src/libtorrent/src/alert.cpp:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' ep'
    - t
    argTypes:
    - aux::stack_allocator
    - udp::endpoint
    - libtorrent::socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1282
    functionName: libtorrent::listen_succeeded_alert::listen_succeeded_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void listen_succeeded_alert::listen_succeeded_alert(aux::stack_allocator&
      alloc\n\t\t, udp::endpoint const& ep\n\t\t, libtorrent::socket_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1290,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1291,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1294
    functionName: libtorrent::listen_succeeded_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - socket_type_name
    - std::snprintf
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string listen_succeeded_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1304,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1305,1
    - Dst: libtorrent::portmap_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - i
    - t
    - ' e'
    - ' local'
    argTypes:
    - port_mapping_t
    - portmap_transport
    - error_code
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1307
    functionName: libtorrent::portmap_error_alert::portmap_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::portmap_error_alert::message
    - convert_from_native
    linkageType: ''
    returnType: void
    signature: "void portmap_error_alert::portmap_error_alert(aux::stack_allocator&\n\t\t,
      port_mapping_t const i, portmap_transport const t, error_code const& e\n\t\t,
      address const& local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/src/alert.cpp:1314,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1315,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1316,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1317,1
    - Dst: libtorrent::portmap_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1319
    functionName: libtorrent::portmap_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - to_string
    - libtorrent::portmap_error_alert::message
    - std::string
    - convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string portmap_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1330,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - i
    - port
    - t
    - proto
    - ' local'
    argTypes:
    - port_mapping_t
    - int
    - portmap_transport
    - portmap_protocol
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1333
    functionName: libtorrent::portmap_alert::portmap_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: "void portmap_alert::portmap_alert(aux::stack_allocator&, port_mapping_t
      const i\n\t\t, int const port, portmap_transport const t, portmap_protocol const
      proto\n\t\t, address const& local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1341,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1342,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1343,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1335
    functionDepth: 1
    functionLinenumber: 1335
    functionLinenumberEnd: 1347
    functionName: libtorrent::portmap_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string portmap_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1354,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - t
    - m
    - ' local'
    argTypes:
    - aux::stack_allocator
    - portmap_transport
    - char*
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1359
    functionName: libtorrent::portmap_log_alert::portmap_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void portmap_log_alert::portmap_log_alert(aux::stack_allocator& alloc\n\t\t,
      portmap_transport const t, const char* m, address const& local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1364
    functionName: libtorrent::portmap_log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * portmap_log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1372,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1373,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1374,1
    - Dst: libtorrent::portmap_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1378
    functionName: libtorrent::portmap_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - libtorrent::portmap_log_alert::log_message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string portmap_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1389,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1391,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1393,1
    - Dst: libtorrent::fastresume_rejected_alert::message
      Src: /src/libtorrent/src/alert.cpp:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - ' ec'
    - f
    - op_
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    - string_view
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1396
    functionName: libtorrent::fastresume_rejected_alert::fastresume_rejected_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::fastresume_rejected_alert::message
    - convert_from_native
    - copy_string
    - operation_name
    linkageType: ''
    returnType: void
    signature: "void fastresume_rejected_alert::fastresume_rejected_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, error_code const& ec\n\t\t, string_view
      f\n\t\t, operation_t const op_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1403,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1404,1
    - Dst: libtorrent::fastresume_rejected_alert::file_path
      Src: /src/libtorrent/src/alert.cpp:1404,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1405,1
    - Dst: libtorrent::fastresume_rejected_alert::message
      Src: /src/libtorrent/src/alert.cpp:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1407
    functionName: libtorrent::fastresume_rejected_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::fastresume_rejected_alert::message
    - libtorrent::fastresume_rejected_alert::file_path
    - libtorrent::torrent_alert::message
    - convert_from_native
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string fastresume_rejected_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1412
    functionName: libtorrent::fastresume_rejected_alert::file_path
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * fastresume_rejected_alert::file_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_id
      Src: /src/libtorrent/src/alert.cpp:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - r
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1418
    functionName: libtorrent::peer_blocked_alert::peer_blocked_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - peer_id
    linkageType: ''
    returnType: void
    signature: "void peer_blocked_alert::peer_blocked_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep, int r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1438,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1442
    functionName: libtorrent::peer_blocked_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string peer_blocked_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' i'
    - p
    - ' ih'
    argTypes:
    - address
    - int
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1450
    functionName: libtorrent::dht_announce_alert::dht_announce_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_announce_alert::dht_announce_alert(aux::stack_allocator&\n\t\t,
      address const& i, int p\n\t\t, sha1_hash const& ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1458,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1459,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1462
    functionName: libtorrent::dht_announce_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_announce_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ih'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1467
    functionName: libtorrent::dht_get_peers_alert::dht_get_peers_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_get_peers_alert::dht_get_peers_alert(aux::stack_allocator&\n\t\t,
      sha1_hash const& ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1475,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:1475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1478
    functionName: libtorrent::dht_get_peers_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_get_peers_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1487,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1488,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1489,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1490,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1491,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1506
    functionName: libtorrent::stat_to_array
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: std::array<int, stats_alert::num_channels>
    signature: std::array<int, stats_alert::num_channels> stat_to_array(stat const&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1487,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1488,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1489,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1490,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1491,1
    - Dst: libtorrent::counter
      Src: /src/libtorrent/src/alert.cpp:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1506
    functionName: libtorrent::stat_to_array
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: std::array<int, stats_alert::num_channels>
    signature: std::array<int, stats_alert::num_channels> stat_to_array(stat const&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat_to_array
      Src: /src/libtorrent/src/alert.cpp:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - in
    - ' s'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - int
    - stat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1514
    functionName: libtorrent::stats_alert::stats_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - stat_to_array
    linkageType: ''
    returnType: void
    signature: "void stats_alert::stats_alert(aux::stack_allocator& alloc\n\t\t, torrent_handle
      const& h, int in, stat const& s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1522,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1543
    functionName: libtorrent::stats_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string stats_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1548
    functionName: libtorrent::cache_flushed_alert::cache_flushed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cache_flushed_alert::cache_flushed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - k
    - s
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - int
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1556
    functionName: libtorrent::anonymous_mode_alert::anonymous_mode_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void anonymous_mode_alert::anonymous_mode_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, int k, string_view s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1567,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1568,1
    - Dst: c_str
      Src: /src/libtorrent/src/alert.cpp:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1572
    functionName: libtorrent::anonymous_mode_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - libtorrent::torrent_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string anonymous_mode_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_id
      Src: /src/libtorrent/src/alert.cpp:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - ' h'
    - ' i'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1578
    functionName: libtorrent::lsd_peer_alert::lsd_peer_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - peer_id
    linkageType: ''
    returnType: void
    signature: "void lsd_peer_alert::lsd_peer_alert(aux::stack_allocator& alloc, torrent_handle
      const& h\n\t\t, tcp::endpoint const& i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1586,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1580
    functionDepth: 0
    functionLinenumber: 1580
    functionLinenumberEnd: 1590
    functionName: libtorrent::lsd_peer_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string lsd_peer_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - u
    - ' id'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - string_view
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1603
    functionName: libtorrent::trackerid_alert::trackerid_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void trackerid_alert::trackerid_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, tcp::endpoint const& ep\n\t\t, string_view
      u\n\t\t, const std::string& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1605
    functionDepth: 0
    functionLinenumber: 1605
    functionLinenumberEnd: 1608
    functionName: libtorrent::trackerid_alert::tracker_id
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * trackerid_alert::tracker_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/src/alert.cpp:1615,1
    - Dst: libtorrent::trackerid_alert::tracker_id
      Src: /src/libtorrent/src/alert.cpp:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1617
    functionName: libtorrent::trackerid_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::trackerid_alert::tracker_id
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string trackerid_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1620
    functionName: libtorrent::dht_bootstrap_alert::dht_bootstrap_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_bootstrap_alert::dht_bootstrap_alert(aux::stack_allocator&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1629
    functionName: libtorrent::dht_bootstrap_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string dht_bootstrap_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' e'
    - f
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - error_code
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1641
    functionName: libtorrent::torrent_error_alert::torrent_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void torrent_error_alert::torrent_error_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h\n\t\t, error_code const& e, string_view
      f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1651,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:1652,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1652,1
    - Dst: libtorrent::torrent_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1652,1
    - Dst: libtorrent::torrent_error_alert::filename
      Src: /src/libtorrent/src/alert.cpp:1653,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1657,1
    - Dst: libtorrent::torrent_error_alert::filename
      Src: /src/libtorrent/src/alert.cpp:1657,1
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1643
    functionDepth: 1
    functionLinenumber: 1643
    functionLinenumberEnd: 1661
    functionName: libtorrent::torrent_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - std::snprintf
    - libtorrent::torrent_error_alert::filename
    - value
    - libtorrent::torrent_alert::message
    - convert_from_native
    - libtorrent::torrent_error_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1666
    functionName: libtorrent::torrent_error_alert::filename
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * torrent_error_alert::filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1672
    functionName: libtorrent::torrent_added_alert::torrent_added_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_added_alert::torrent_added_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1681
    functionName: libtorrent::torrent_added_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_added_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_best
      Src: /src/libtorrent/src/alert.cpp:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - ' ih'
    - u
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - info_hash_t
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1693
    functionName: libtorrent::torrent_removed_alert::torrent_removed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get_best
    linkageType: ''
    returnType: void
    signature: "void torrent_removed_alert::torrent_removed_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, info_hash_t const& ih, client_data_t u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1695
    functionDepth: 0
    functionLinenumber: 1695
    functionLinenumberEnd: 1702
    functionName: libtorrent::torrent_removed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_removed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - ' h'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1707
    functionName: libtorrent::torrent_need_cert_alert::torrent_need_cert_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_need_cert_alert::torrent_need_cert_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1709
    functionDepth: 0
    functionLinenumber: 1709
    functionLinenumberEnd: 1716
    functionName: libtorrent::torrent_need_cert_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_need_cert_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - t
    - ' i'
    argTypes:
    - socket_type_t
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1718
    functionDepth: 0
    functionLinenumber: 1718
    functionLinenumberEnd: 1725
    functionName: libtorrent::incoming_connection_alert::incoming_connection_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void incoming_connection_alert::incoming_connection_alert(aux::stack_allocator&\n\t\t,
      socket_type_t t, tcp::endpoint const& i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1733,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:1734,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1737
    functionName: libtorrent::incoming_connection_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - socket_type_name
    - std::snprintf
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string incoming_connection_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - type
    - dir
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - socket_type_t
    - direction_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1744
    functionName: libtorrent::peer_connect_alert::peer_connect_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void peer_connect_alert::peer_connect_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      socket_type_t const type, direction_t const dir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1753,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1754,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1757
    functionName: libtorrent::peer_connect_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    - socket_type_name
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string peer_connect_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:1762,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/alert.cpp:1766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - p
    - ' ec'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1768
    functionName: libtorrent::add_torrent_alert::add_torrent_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - info_hashes::get_best
    - std::move
    linkageType: ''
    returnType: void
    signature: "void add_torrent_alert::add_torrent_alert(aux::stack_allocator& alloc,
      torrent_handle const& h\n\t\t, add_torrent_params p, error_code const& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ti::name
      Src: /src/libtorrent/src/alert.cpp:1778,1
    - Dst: name::empty
      Src: /src/libtorrent/src/alert.cpp:1779,1
    - Dst: name::c_str
      Src: /src/libtorrent/src/alert.cpp:1779,1
    - Dst: url::empty
      Src: /src/libtorrent/src/alert.cpp:1781,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/alert.cpp:1781,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/alert.cpp:1783,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1787,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:1788,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1789,1
    - Dst: libtorrent::add_torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:1789,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1797
    functionName: libtorrent::add_torrent_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - name::c_str
    - info_hashes::get_best
    - libtorrent::add_torrent_alert::message
    - std::snprintf
    - ti::name
    - category
    - url::empty
    - convert_from_native
    - name::empty
    - url::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string add_torrent_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:1801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - st
    argTypes:
    - std::vector<torrent_status>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1802
    functionName: libtorrent::state_update_alert::state_update_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void state_update_alert::state_update_alert(aux::stack_allocator&\n\t\t,
      std::vector<torrent_status> st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1810,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1813
    functionName: libtorrent::state_update_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string state_update_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1818
    functionName: libtorrent::mmap_cache_alert::mmap_cache_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void mmap_cache_alert::mmap_cache_alert(aux::stack_allocator&\n\t\t,
      error_code const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1826,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:1826,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1827,1
    - Dst: libtorrent::mmap_cache_alert::message
      Src: /src/libtorrent/src/alert.cpp:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1820
    functionDepth: 0
    functionLinenumber: 1820
    functionLinenumberEnd: 1830
    functionName: libtorrent::mmap_cache_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - value
    - convert_from_native
    - std::snprintf
    - libtorrent::mmap_cache_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string mmap_cache_alert::message() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/alert.cpp:1836,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1895
    functionName: libtorrent::operation_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - TORRENT_UNUSED
    linkageType: ''
    returnType: char
    signature: char * operation_name(operation_t const op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::operation_name
      Src: /src/libtorrent/src/alert.cpp:1900,1
    - Dst: static_cast<operation_t>
      Src: /src/libtorrent/src/alert.cpp:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1901
    functionName: libtorrent::operation_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::operation_name
    - static_cast<operation_t>
    linkageType: ''
    returnType: char
    signature: char * operation_name(int const op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1911,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1912,1
    - Dst: libtorrent::peer_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - ' peer_id'
    - op_
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - operation_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1914
    functionName: libtorrent::peer_error_alert::peer_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - convert_from_native
    - libtorrent::peer_error_alert::message
    linkageType: ''
    returnType: void
    signature: "void peer_error_alert::peer_error_alert(aux::stack_allocator& alloc,
      torrent_handle const& h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      operation_t const op_\n\t\t, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1922,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1923,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1924,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:1924,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1925,1
    - Dst: libtorrent::peer_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1916
    functionDepth: 0
    functionLinenumber: 1916
    functionLinenumberEnd: 1928
    functionName: libtorrent::peer_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 4
    functionsReached:
    - std::snprintf
    - category
    - convert_from_native
    - libtorrent::peer_error_alert::message
    - libtorrent::peer_alert::message
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string peer_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:1940,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1941,1
    - Dst: libtorrent::peer_disconnected_alert::message
      Src: /src/libtorrent/src/alert.cpp:1941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - ' peer_id'
    - op_
    - type
    - ' e'
    - r
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - operation_t
    - socket_type_t
    - error_code
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1943
    functionName: libtorrent::peer_disconnected_alert::peer_disconnected_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - convert_from_native
    - libtorrent::peer_disconnected_alert::message
    linkageType: ''
    returnType: void
    signature: "void peer_disconnected_alert::peer_disconnected_alert(aux::stack_allocator&
      alloc\n\t\t, torrent_handle const& h, tcp::endpoint const& ep\n\t\t, peer_id
      const& peer_id, operation_t op_, socket_type_t const type, error_code const&
      e\n\t\t, close_reason_t r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1951,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:1952,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/alert.cpp:1953,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1954,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:1954,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1955,1
    - Dst: libtorrent::peer_disconnected_alert::message
      Src: /src/libtorrent/src/alert.cpp:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1945
    functionDepth: 0
    functionLinenumber: 1945
    functionLinenumberEnd: 1959
    functionName: libtorrent::peer_disconnected_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 4
    functionsReached:
    - socket_type_name
    - std::snprintf
    - category
    - libtorrent::peer_disconnected_alert::message
    - convert_from_native
    - libtorrent::peer_alert::message
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string peer_disconnected_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - op_
    - ' ec'
    argTypes:
    - operation_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1970
    functionName: libtorrent::dht_error_alert::dht_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_error_alert::dht_error_alert(aux::stack_allocator&\n\t\t,
      operation_t const op_\n\t\t, error_code const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1978,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:1979,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:1980,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:1981,1
    - Dst: libtorrent::dht_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 1984
    functionName: libtorrent::dht_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - std::snprintf
    - value
    - convert_from_native
    - libtorrent::dht_error_alert::message
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string dht_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' t'
    - i
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 1989
    functionName: libtorrent::dht_immutable_item_alert::dht_immutable_item_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_immutable_item_alert::dht_immutable_item_alert(aux::stack_allocator&\n\t\t,
      sha1_hash const& t, entry i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:1997,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:1998,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1991
    functionDepth: 1
    functionLinenumber: 1991
    functionLinenumberEnd: 2002
    functionName: libtorrent::dht_immutable_item_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_immutable_item_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' k'
    - ' sig'
    - sequence
    - s
    - i
    - a
    argTypes:
    - std::array<char, 32>
    - std::array<char, 64>
    - std::int64_t
    - string_view
    - entry
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2006
    functionDepth: 0
    functionLinenumber: 2006
    functionLinenumberEnd: 2014
    functionName: libtorrent::dht_mutable_item_alert::dht_mutable_item_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_mutable_item_alert::dht_mutable_item_alert(aux::stack_allocator&\n\t\t,
      std::array<char, 32> const& k\n\t\t, std::array<char, 64> const& sig\n\t\t,
      std::int64_t sequence\n\t\t, string_view s\n\t\t, entry i\n\t\t, bool a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2022,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2023,1
    - Dst: c_str
      Src: /src/libtorrent/src/alert.cpp:2024,1
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2030
    functionName: libtorrent::dht_mutable_item_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - to_string
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_mutable_item_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' t'
    - n
    argTypes:
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2039
    functionName: libtorrent::dht_put_alert::dht_put_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_put_alert::dht_put_alert(aux::stack_allocator&, sha1_hash
      const& t, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' key'
    - ' sig'
    - s
    - sequence_number
    - n
    argTypes:
    - std::array<char, 32>
    - std::array<char, 64>
    - std::string
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2041
    functionDepth: 0
    functionLinenumber: 2041
    functionLinenumberEnd: 2053
    functionName: libtorrent::dht_put_alert::dht_put_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_put_alert::dht_put_alert(aux::stack_allocator&\n\t\t, std::array<char,
      32> const& key\n\t\t, std::array<char, 64> const& sig\n\t\t, std::string s\n\t\t,
      std::int64_t sequence_number\n\t\t, int n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/alert.cpp:2061,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2063,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2065,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2066,1
    - Dst: c_str
      Src: /src/libtorrent/src/alert.cpp:2067,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2072,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2055
    functionDepth: 0
    functionLinenumber: 2055
    functionLinenumberEnd: 2077
    functionName: libtorrent::dht_put_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - std::snprintf
    - is_all_zeros
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_put_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2081
    functionName: libtorrent::i2p_alert::i2p_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_alert::i2p_alert(aux::stack_allocator&, error_code const&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2089,1
    - Dst: category
      Src: /src/libtorrent/src/alert.cpp:2090,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2090,1
    - Dst: libtorrent::i2p_alert::message
      Src: /src/libtorrent/src/alert.cpp:2090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2083
    functionDepth: 0
    functionLinenumber: 2083
    functionLinenumberEnd: 2093
    functionName: libtorrent::i2p_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::i2p_alert::message
    - convert_from_native
    - std::snprintf
    - category
    linkageType: ''
    returnType: std::string
    signature: std::string i2p_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ih'
    - ' obfih'
    - ep
    argTypes:
    - sha1_hash
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2104
    functionName: libtorrent::dht_outgoing_get_peers_alert::dht_outgoing_get_peers_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_outgoing_get_peers_alert::dht_outgoing_get_peers_alert(aux::stack_allocator&\n\t\t,
      sha1_hash const& ih, sha1_hash const& obfih\n\t\t, udp::endpoint ep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2116,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2117,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2119,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2120,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:2122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2106
    functionDepth: 1
    functionLinenumber: 2106
    functionLinenumberEnd: 2125
    functionName: libtorrent::dht_outgoing_get_peers_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - libtorrent::aux::to_hex
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string dht_outgoing_get_peers_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alloc'
    - log
    argTypes:
    - aux::stack_allocator
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2130
    functionName: libtorrent::log_alert::log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: void log_alert::log_alert(aux::stack_allocator& alloc, char const*
      log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string
      Src: /src/libtorrent/src/alert.cpp:2133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - fmt
    - v
    argTypes:
    - aux::stack_allocator
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2131
    functionDepth: 0
    functionLinenumber: 2131
    functionLinenumberEnd: 2134
    functionName: libtorrent::log_alert::log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - format_string
    linkageType: ''
    returnType: void
    signature: void log_alert::log_alert(aux::stack_allocator& alloc, char const*
      fmt, va_list v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2139
    functionName: libtorrent::log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2145
    functionName: libtorrent::log_alert::msg
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::log_alert::log_message
    linkageType: ''
    returnType: char
    signature: char * log_alert::msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2155
    functionName: libtorrent::log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::log_alert::log_message
    linkageType: ''
    returnType: std::string
    signature: std::string log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string
      Src: /src/libtorrent/src/alert.cpp:2160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - fmt
    - v
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2161
    functionName: libtorrent::torrent_log_alert::torrent_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - format_string
    linkageType: ''
    returnType: void
    signature: "void torrent_log_alert::torrent_log_alert(aux::stack_allocator& alloc,
      torrent_handle const& h\n\t\t, char const* fmt, va_list v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2163
    functionDepth: 0
    functionLinenumber: 2163
    functionLinenumberEnd: 2166
    functionName: libtorrent::torrent_log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * torrent_log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2172
    functionName: libtorrent::torrent_log_alert::msg
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_log_alert::log_message
    linkageType: ''
    returnType: char
    signature: char * torrent_log_alert::msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:2180,1
    - Dst: libtorrent::torrent_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2175
    functionDepth: 1
    functionLinenumber: 2175
    functionLinenumberEnd: 2182
    functionName: libtorrent::torrent_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    - libtorrent::torrent_log_alert::log_message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string
      Src: /src/libtorrent/src/alert.cpp:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - ' alloc'
    - ' h'
    - ' i'
    - ' pi'
    - dir
    - event
    - fmt
    - v
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - peer_log_alert::direction_t
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2193
    functionName: libtorrent::peer_log_alert::peer_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - format_string
    linkageType: ''
    returnType: void
    signature: "void peer_log_alert::peer_log_alert(aux::stack_allocator& alloc\n\t\t,
      torrent_handle const& h\n\t\t, tcp::endpoint const& i, peer_id const& pi\n\t\t,
      peer_log_alert::direction_t dir\n\t\t, char const* event, char const* fmt, va_list
      v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2195
    functionDepth: 0
    functionLinenumber: 2195
    functionLinenumberEnd: 2198
    functionName: libtorrent::peer_log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * peer_log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2201
    functionDepth: 1
    functionLinenumber: 2201
    functionLinenumberEnd: 2204
    functionName: libtorrent::peer_log_alert::msg
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_log_alert::log_message
    linkageType: ''
    returnType: char
    signature: char * peer_log_alert::msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:2214,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:2214,1
    - Dst: libtorrent::peer_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2207
    functionDepth: 1
    functionLinenumber: 2207
    functionLinenumberEnd: 2217
    functionName: libtorrent::peer_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_alert::message
    - libtorrent::peer_log_alert::log_message
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string peer_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ec'
    - ' local'
    argTypes:
    - error_code
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2219
    functionDepth: 0
    functionLinenumber: 2219
    functionLinenumberEnd: 2224
    functionName: libtorrent::lsd_error_alert::lsd_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void lsd_error_alert::lsd_error_alert(aux::stack_allocator&, error_code
      const& ec\n\t\t, address const& local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/src/alert.cpp:2231,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2232,1
    - Dst: libtorrent::lsd_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:2232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2234
    functionName: libtorrent::lsd_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - to_string
    - convert_from_native
    - libtorrent::lsd_error_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string lsd_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2247
    functionName: libtorrent::counters_to_array
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::array<std::int64_t, counters::num_counters>
    signature: aux::array<std::int64_t, counters::num_counters> counters_to_array(counters
      const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2247
    functionName: libtorrent::counters_to_array
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::array<std::int64_t, counters::num_counters>
    signature: aux::array<std::int64_t, counters::num_counters> counters_to_array(counters
      const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/src/alert.cpp:2254,1
    - Dst: reinterpret_cast<std::uintptr_t>
      Src: /src/libtorrent/src/alert.cpp:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2256
    functionName: libtorrent::align_pointer
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<std::uintptr_t>
    linkageType: ''
    returnType: T
    signature: T * align_pointer(U* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/src/alert.cpp:2254,1
    - Dst: reinterpret_cast<std::uintptr_t>
      Src: /src/libtorrent/src/alert.cpp:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2256
    functionName: libtorrent::align_pointer
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - reinterpret_cast<std::uintptr_t>
    linkageType: ''
    returnType: T
    signature: T * align_pointer(U* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: counters_to_array
      Src: /src/libtorrent/src/alert.cpp:2262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cnt'
    argTypes:
    - struct counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2263
    functionName: libtorrent::session_stats_alert::session_stats_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - counters_to_array
    linkageType: ''
    returnType: void
    signature: void session_stats_alert::session_stats_alert(aux::stack_allocator&,
      struct counters const& cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2267,1
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:2270,1
    - Dst: align_pointer<std::int64_t>
      Src: /src/libtorrent/src/alert.cpp:2271,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' alloc'
    - ' cnt'
    argTypes:
    - aux::stack_allocator
    - struct counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2274
    functionName: libtorrent::session_stats_alert::session_stats_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - is_valid
    - align_pointer<std::int64_t>
    - allocate
    linkageType: ''
    returnType: void
    signature: void session_stats_alert::session_stats_alert(aux::stack_allocator&
      alloc, struct counters const& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_stats_alert::counters
      Src: /src/libtorrent/src/alert.cpp:2283,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2284,1
    - Dst: auto::size
      Src: /src/libtorrent/src/alert.cpp:2284,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2277
    functionDepth: 1
    functionLinenumber: 2277
    functionLinenumberEnd: 2295
    functionName: libtorrent::session_stats_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::snprintf
    - libtorrent::session_stats_alert::counters
    linkageType: ''
    returnType: std::string
    signature: std::string session_stats_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: align_pointer<std::int64_t const>
      Src: /src/libtorrent/src/alert.cpp:2302,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2305
    functionName: libtorrent::session_stats_alert::counters
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - align_pointer<std::int64_t const>
    - get
    linkageType: ''
    returnType: span<std::int64_t const>
    signature: span<std::int64_t const> session_stats_alert::counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2312,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - table
    - requests
    - id
    - ep
    argTypes:
    - std::vector<dht_routing_bucket>
    - std::vector<dht_lookup>
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2307
    functionDepth: 0
    functionLinenumber: 2307
    functionLinenumberEnd: 2316
    functionName: libtorrent::dht_stats_alert::dht_stats_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_stats_alert::dht_stats_alert(aux::stack_allocator&\n\t\t,
      std::vector<dht_routing_bucket> table\n\t\t, std::vector<dht_lookup> requests\n\t\t\t,
      sha1_hash id, udp::endpoint ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2324,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2325,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:2326,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:2327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2318
    functionDepth: 1
    functionLinenumber: 2318
    functionLinenumberEnd: 2330
    functionName: libtorrent::dht_stats_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - size
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_stats_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2336,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2340,1
    - Dst: libtorrent::url_seed_alert::message
      Src: /src/libtorrent/src/alert.cpp:2340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - u
    - ' e'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2342
    functionName: libtorrent::url_seed_alert::url_seed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::url_seed_alert::message
    - convert_from_native
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void url_seed_alert::url_seed_alert(aux::stack_allocator& alloc, torrent_handle
      const& h\n\t\t, string_view u, error_code const& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2347,1
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - ' h'
    - u
    - m
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2353
    functionName: libtorrent::url_seed_alert::url_seed_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void url_seed_alert::url_seed_alert(aux::stack_allocator& alloc, torrent_handle
      const& h\n\t\t, string_view u, string_view m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:2360,1
    - Dst: libtorrent::url_seed_alert::server_url
      Src: /src/libtorrent/src/alert.cpp:2361,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2361,1
    - Dst: libtorrent::url_seed_alert::message
      Src: /src/libtorrent/src/alert.cpp:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2355
    functionDepth: 1
    functionLinenumber: 2355
    functionLinenumberEnd: 2363
    functionName: libtorrent::url_seed_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::url_seed_alert::server_url
    - libtorrent::torrent_alert::message
    - convert_from_native
    - libtorrent::url_seed_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string url_seed_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2365
    functionDepth: 0
    functionLinenumber: 2365
    functionLinenumberEnd: 2368
    functionName: libtorrent::url_seed_alert::server_url
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * url_seed_alert::server_url() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::allocation_slot
      Src: /src/libtorrent/src/alert.cpp:2372,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2370
    functionDepth: 1
    functionLinenumber: 2370
    functionLinenumberEnd: 2374
    functionName: libtorrent::url_seed_alert::error_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    - libtorrent::aux::allocation_slot
    linkageType: ''
    returnType: char
    signature: char * url_seed_alert::error_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2382,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:2384,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2386,1
    - Dst: libtorrent::file_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:2386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - ' ec'
    - f
    - op_
    - ' h'
    argTypes:
    - aux::stack_allocator
    - error_code
    - string_view
    - operation_t
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2388
    functionName: libtorrent::file_error_alert::file_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - convert_from_native
    - copy_string
    - libtorrent::file_error_alert::message
    - operation_name
    linkageType: ''
    returnType: void
    signature: "void file_error_alert::file_error_alert(aux::stack_allocator& alloc\n\t\t,
      error_code const& ec, string_view f, operation_t const op_\n\t\t, torrent_handle
      const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2390
    functionDepth: 0
    functionLinenumber: 2390
    functionLinenumberEnd: 2393
    functionName: libtorrent::file_error_alert::filename
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * file_error_alert::filename() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:2400,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:2401,1
    - Dst: libtorrent::file_error_alert::filename
      Src: /src/libtorrent/src/alert.cpp:2401,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2402,1
    - Dst: libtorrent::file_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:2402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2395
    functionDepth: 1
    functionLinenumber: 2395
    functionLinenumberEnd: 2404
    functionName: libtorrent::file_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::file_error_alert::filename
    - libtorrent::file_error_alert::message
    - libtorrent::torrent_alert::message
    - convert_from_native
    - operation_name
    linkageType: ''
    returnType: std::string
    signature: std::string file_error_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' alloc'
    - r
    - h
    - ' ep'
    - ' peer_id'
    argTypes:
    - aux::stack_allocator
    - peer_request
    - torrent_handle
    - tcp::endpoint
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2406
    functionDepth: 0
    functionLinenumber: 2406
    functionLinenumberEnd: 2411
    functionName: libtorrent::incoming_request_alert::incoming_request_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void incoming_request_alert::incoming_request_alert(aux::stack_allocator&
      alloc\n\t\t, peer_request r, torrent_handle h\n\t\t, tcp::endpoint const& ep,
      peer_id const& peer_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2419,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:2420,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2413
    functionDepth: 0
    functionLinenumber: 2413
    functionLinenumberEnd: 2424
    functionName: libtorrent::incoming_request_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::peer_alert::message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string incoming_request_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_string
      Src: /src/libtorrent/src/alert.cpp:2430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - m
    - fmt
    - v
    argTypes:
    - aux::stack_allocator
    - dht_log_alert::dht_module_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2426
    functionDepth: 0
    functionLinenumber: 2426
    functionLinenumberEnd: 2431
    functionName: libtorrent::dht_log_alert::dht_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - format_string
    linkageType: ''
    returnType: void
    signature: "void dht_log_alert::dht_log_alert(aux::stack_allocator& alloc\n\t\t,
      dht_log_alert::dht_module_t m, const char* fmt, va_list v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2433
    functionDepth: 0
    functionLinenumber: 2433
    functionLinenumberEnd: 2436
    functionName: libtorrent::dht_log_alert::log_message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: char
    signature: char * dht_log_alert::log_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2453,1
    - Dst: libtorrent::dht_log_alert::log_message
      Src: /src/libtorrent/src/alert.cpp:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2457
    functionName: libtorrent::dht_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht_log_alert::log_message
    - std::snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string dht_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_buffer
      Src: /src/libtorrent/src/alert.cpp:2465,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2466,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/alert.cpp:2466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - buf
    - d
    - ' ep'
    argTypes:
    - aux::stack_allocator
    - span<char const>
    - dht_pkt_alert::direction_t
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2459
    functionDepth: 1
    functionLinenumber: 2459
    functionLinenumberEnd: 2470
    functionName: libtorrent::dht_pkt_alert::dht_pkt_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_buffer
    - aux::numeric_cast<int>
    - span<char const>::size
    linkageType: ''
    returnType: void
    signature: "void dht_pkt_alert::dht_pkt_alert(aux::stack_allocator& alloc\n\t\t,
      span<char const> buf, dht_pkt_alert::direction_t d\n\t\t, udp::endpoint const&
      ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2472
    functionDepth: 0
    functionLinenumber: 2472
    functionLinenumberEnd: 2475
    functionName: libtorrent::dht_pkt_alert::pkt_buf
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> dht_pkt_alert::pkt_buf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht_pkt_alert::pkt_buf
      Src: /src/libtorrent/src/alert.cpp:2487,1
    - Dst: bdecode
      Src: /src/libtorrent/src/alert.cpp:2488,1
    - Dst: span::data
      Src: /src/libtorrent/src/alert.cpp:2488,1
    - Dst: span::data
      Src: /src/libtorrent/src/alert.cpp:2488,1
    - Dst: span::size
      Src: /src/libtorrent/src/alert.cpp:2488,1
    - Dst: print_entry
      Src: /src/libtorrent/src/alert.cpp:2490,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2494,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:2495,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/alert.cpp:2495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2477
    functionDepth: 1
    functionLinenumber: 2477
    functionLinenumberEnd: 2499
    functionName: libtorrent::dht_pkt_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - print_entry
    - span::size
    - std::snprintf
    - span::data
    - std::string::c_str
    - print_endpoint
    - libtorrent::dht_pkt_alert::pkt_buf
    - bdecode
    linkageType: ''
    returnType: std::string
    signature: std::string dht_pkt_alert::message() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2509,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2515,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2516,1
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:2518,1
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:2518,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2525,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2526,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2529,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2530,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2532,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - ' alloc'
    - ' ih'
    - ' peers'
    argTypes:
    - aux::stack_allocator
    - sha1_hash
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2501
    functionDepth: 1
    functionLinenumber: 2501
    functionLinenumberEnd: 2534
    functionName: libtorrent::dht_get_peers_reply_alert::dht_get_peers_reply_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - ptr
    - libtorrent::aux::is_v4
    - is_valid
    - allocate
    linkageType: ''
    returnType: void
    signature: "void dht_get_peers_reply_alert::dht_get_peers_reply_alert(aux::stack_allocator&
      alloc\n\t\t, sha1_hash const& ih\n\t\t, std::vector<tcp::endpoint> const& peers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2542,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2543,1
    - Dst: libtorrent::dht_get_peers_reply_alert::num_peers
      Src: /src/libtorrent/src/alert.cpp:2543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2536
    functionDepth: 1
    functionLinenumber: 2536
    functionLinenumberEnd: 2546
    functionName: libtorrent::dht_get_peers_reply_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - libtorrent::dht_get_peers_reply_alert::num_peers
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_get_peers_reply_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2548
    functionDepth: 0
    functionLinenumber: 2548
    functionLinenumberEnd: 2551
    functionName: libtorrent::dht_get_peers_reply_alert::num_peers
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dht_get_peers_reply_alert::num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<tcp::endpoint>::reserve
      Src: /src/libtorrent/src/alert.cpp:2557,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/alert.cpp:2557,1
    - Dst: std::copy
      Src: /src/libtorrent/src/alert.cpp:2558,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/alert.cpp:2558,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/alert.cpp:2558,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/alert.cpp:2558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2559
    functionName: libtorrent::dht_get_peers_reply_alert::peers
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - std::vector::begin
    - std::copy
    - std::back_inserter
    - std::vector::end
    - std::vector<tcp::endpoint>::reserve
    linkageType: ''
    returnType: void
    signature: void dht_get_peers_reply_alert::peers(std::vector<tcp::endpoint> &v)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/alert.cpp:2564,1
    - Dst: libtorrent::dht_get_peers_reply_alert::num_peers
      Src: /src/libtorrent/src/alert.cpp:2564,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2566,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/alert.cpp:2568,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2568,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2569,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/alert.cpp:2571,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2571,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/alert.cpp:2573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2574
    functionName: libtorrent::dht_get_peers_reply_alert::peers
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht_get_peers_reply_alert::num_peers
    - aux::read_v4_endpoint<tcp::endpoint>
    - aux::vector::push_back
    - aux::vector::reserve
    - TORRENT_RVO
    - get
    - aux::read_v6_endpoint<tcp::endpoint>
    linkageType: ''
    returnType: std::vector<tcp::endpoint>
    signature: std::vector<tcp::endpoint> dht_get_peers_reply_alert::peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_buffer
      Src: /src/libtorrent/src/alert.cpp:2581,1
    - Dst: data_section
      Src: /src/libtorrent/src/alert.cpp:2581,1
    - Dst: data_section
      Src: /src/libtorrent/src/alert.cpp:2582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - userdata_
    - ' addr_'
    - ' response'
    argTypes:
    - aux::stack_allocator
    - client_data_t
    - udp::endpoint
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2586
    functionName: libtorrent::dht_direct_response_alert::dht_direct_response_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_buffer
    - data_section
    linkageType: ''
    returnType: void
    signature: "void dht_direct_response_alert::dht_direct_response_alert(\n\t\taux::stack_allocator&
      alloc, client_data_t userdata_\n\t\t, udp::endpoint const& addr_, bdecode_node
      const& response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - userdata_
    - ' addr_'
    argTypes:
    - aux::stack_allocator
    - client_data_t
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2588
    functionDepth: 0
    functionLinenumber: 2588
    functionLinenumberEnd: 2599
    functionName: libtorrent::dht_direct_response_alert::dht_direct_response_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_direct_response_alert::dht_direct_response_alert(\n\t\taux::stack_allocator&
      alloc\n\t\t, client_data_t userdata_\n\t\t, udp::endpoint const& addr_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2607,1
    - Dst: address
      Src: /src/libtorrent/src/alert.cpp:2608,1
    - Dst: std::string
      Src: /src/libtorrent/src/alert.cpp:2609,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2609,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/alert.cpp:2610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2613
    functionName: libtorrent::dht_direct_response_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - std::snprintf
    - std::string
    - get
    - address
    linkageType: ''
    returnType: std::string
    signature: std::string dht_direct_response_alert::message() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bdecode_node
      Src: /src/libtorrent/src/alert.cpp:2617,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2618,1
    - Dst: bdecode
      Src: /src/libtorrent/src/alert.cpp:2622,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:2623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2615
    functionDepth: 1
    functionLinenumber: 2615
    functionLinenumberEnd: 2625
    functionName: libtorrent::dht_direct_response_alert::response
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node
    - TORRENT_ASSERT
    - get
    - bdecode
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node dht_direct_response_alert::response() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_buffer
      Src: /src/libtorrent/src/alert.cpp:2632,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/alert.cpp:2632,1
    - Dst: span<piece_block const>::data
      Src: /src/libtorrent/src/alert.cpp:2632,1
    - Dst: span<piece_block const>::size
      Src: /src/libtorrent/src/alert.cpp:2633,1
    - Dst: span<piece_block const>::size
      Src: /src/libtorrent/src/alert.cpp:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' alloc'
    - ' h'
    - ' ep'
    - ' peer_id'
    - flags
    - blocks
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - picker_flags_t
    - span<piece_block const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2627
    functionDepth: 1
    functionLinenumber: 2627
    functionLinenumberEnd: 2635
    functionName: libtorrent::picker_log_alert::picker_log_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_buffer
    - span<piece_block const>::data
    - span<piece_block const>::size
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: "void picker_log_alert::picker_log_alert(aux::stack_allocator& alloc,
      torrent_handle const& h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      picker_flags_t const flags\n\t\t, span<piece_block const> blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/alert.cpp:2641,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2644,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2645,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/alert.cpp:2645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2637
    functionDepth: 1
    functionLinenumber: 2637
    functionLinenumberEnd: 2648
    functionName: libtorrent::picker_log_alert::blocks
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 1
    functionsReached:
    - get
    - std::memcpy
    - aux::numeric_cast<std::size_t>
    - std::vector::data
    linkageType: ''
    returnType: std::vector<piece_block>
    signature: std::vector<piece_block> picker_log_alert::blocks() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:2694,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/alert.cpp:2696,1
    - Dst: libtorrent::picker_log_alert::blocks
      Src: /src/libtorrent/src/alert.cpp:2706,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2711,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2668
    functionDepth: 2
    functionLinenumber: 2668
    functionLinenumberEnd: 2717
    functionName: libtorrent::picker_log_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::picker_log_alert::blocks
    - std::snprintf
    - static_cast<std::uint32_t>
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string picker_log_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/alert.cpp:2723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - e
    - error_str
    argTypes:
    - aux::stack_allocator
    - error_code
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2719
    functionDepth: 0
    functionLinenumber: 2719
    functionLinenumberEnd: 2724
    functionName: libtorrent::session_error_alert::session_error_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - copy_string
    linkageType: ''
    returnType: void
    signature: "void session_error_alert::session_error_alert(aux::stack_allocator&
      alloc\n\t\t, error_code e, string_view error_str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2734,1
    - Dst: value
      Src: /src/libtorrent/src/alert.cpp:2735,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/alert.cpp:2735,1
    - Dst: libtorrent::session_error_alert::message
      Src: /src/libtorrent/src/alert.cpp:2735,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2736,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2740,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2726
    functionDepth: 0
    functionLinenumber: 2726
    functionLinenumberEnd: 2745
    functionName: libtorrent::session_error_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - std::snprintf
    - libtorrent::session_error_alert::message
    - value
    - convert_from_native
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string session_error_alert::message() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2759,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2765,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2766,1
    - Dst: aux::allocation_slot::is_valid
      Src: /src/libtorrent/src/alert.cpp:2768,1
    - Dst: aux::allocation_slot::is_valid
      Src: /src/libtorrent/src/alert.cpp:2768,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2770,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2771,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2775,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/alert.cpp:2777,1
    - Dst: first::to_string
      Src: /src/libtorrent/src/alert.cpp:2777,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2778,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/alert.cpp:2782,1
    - Dst: first::to_string
      Src: /src/libtorrent/src/alert.cpp:2782,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2783,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ' alloc'
    - ' nodes'
    argTypes:
    - aux::stack_allocator
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2751
    functionDepth: 1
    functionLinenumber: 2751
    functionLinenumberEnd: 2794
    functionName: libtorrent::write_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - ptr
    - libtorrent::aux::is_v4
    - aux::allocation_slot::is_valid
    - allocate
    - libtorrent::aux::write_string
    - first::to_string
    linkageType: ''
    returnType: nodes_slot
    signature: "nodes_slot write_nodes(aux::stack_allocator& alloc\n\t\t, std::vector<std::pair<sha1_hash,
      udp::endpoint>> const& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/alert.cpp:2802,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2804,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2808,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/alert.cpp:2808,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/alert.cpp:2810,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2810,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2812,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2816,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/alert.cpp:2816,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/alert.cpp:2818,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2818,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/alert.cpp:2821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' alloc'
    - v4_num_nodes
    - v4_nodes_idx
    - v6_num_nodes
    - v6_nodes_idx
    argTypes:
    - aux::stack_allocator
    - int
    - aux::allocation_slot
    - int
    - aux::allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2796
    functionDepth: 1
    functionLinenumber: 2796
    functionLinenumberEnd: 2822
    functionName: libtorrent::read_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - std::memcpy
    - aux::read_v6_endpoint<udp::endpoint>
    - aux::vector::reserve
    - aux::read_v4_endpoint<udp::endpoint>
    - TORRENT_RVO
    - sha1_hash::data
    - aux::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::pair<sha1_hash, udp::endpoint>>
    signature: "std::vector<std::pair<sha1_hash, udp::endpoint>> read_nodes(\n\t\taux::stack_allocator
      const& alloc\n\t\t, int const v4_num_nodes, aux::allocation_slot const v4_nodes_idx\n\t\t,
      int const v6_num_nodes, aux::allocation_slot const v6_nodes_idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2759,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2765,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2766,1
    - Dst: aux::allocation_slot::is_valid
      Src: /src/libtorrent/src/alert.cpp:2768,1
    - Dst: aux::allocation_slot::is_valid
      Src: /src/libtorrent/src/alert.cpp:2768,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2770,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2771,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/alert.cpp:2775,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/alert.cpp:2777,1
    - Dst: first::to_string
      Src: /src/libtorrent/src/alert.cpp:2777,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2778,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/src/alert.cpp:2782,1
    - Dst: first::to_string
      Src: /src/libtorrent/src/alert.cpp:2782,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/alert.cpp:2783,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ' alloc'
    - ' nodes'
    argTypes:
    - aux::stack_allocator
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2751
    functionDepth: 1
    functionLinenumber: 2751
    functionLinenumberEnd: 2794
    functionName: libtorrent::write_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - ptr
    - libtorrent::aux::is_v4
    - aux::allocation_slot::is_valid
    - allocate
    - libtorrent::aux::write_string
    - first::to_string
    linkageType: ''
    returnType: nodes_slot
    signature: "nodes_slot write_nodes(aux::stack_allocator& alloc\n\t\t, std::vector<std::pair<sha1_hash,
      udp::endpoint>> const& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/alert.cpp:2802,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2804,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2808,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/alert.cpp:2808,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/alert.cpp:2810,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2810,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2812,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2816,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/alert.cpp:2816,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/alert.cpp:2818,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/alert.cpp:2818,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/alert.cpp:2821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' alloc'
    - v4_num_nodes
    - v4_nodes_idx
    - v6_num_nodes
    - v6_nodes_idx
    argTypes:
    - aux::stack_allocator
    - int
    - aux::allocation_slot
    - int
    - aux::allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2796
    functionDepth: 1
    functionLinenumber: 2796
    functionLinenumberEnd: 2822
    functionName: libtorrent::read_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - std::memcpy
    - aux::read_v6_endpoint<udp::endpoint>
    - aux::vector::reserve
    - aux::read_v4_endpoint<udp::endpoint>
    - TORRENT_RVO
    - sha1_hash::data
    - aux::vector::emplace_back
    linkageType: ''
    returnType: std::vector<std::pair<sha1_hash, udp::endpoint>>
    signature: "std::vector<std::pair<sha1_hash, udp::endpoint>> read_nodes(\n\t\taux::stack_allocator
      const& alloc\n\t\t, int const v4_num_nodes, aux::allocation_slot const v4_nodes_idx\n\t\t,
      int const v6_num_nodes, aux::allocation_slot const v6_nodes_idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/alert.cpp:2831,1
    - Dst: write_nodes
      Src: /src/libtorrent/src/alert.cpp:2832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' alloc'
    - ' nid'
    - ' nodes'
    argTypes:
    - aux::stack_allocator
    - sha1_hash
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2825
    functionDepth: 0
    functionLinenumber: 2825
    functionLinenumberEnd: 2833
    functionName: libtorrent::dht_live_nodes_alert::dht_live_nodes_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - write_nodes
    - std::tie
    linkageType: ''
    returnType: void
    signature: "void dht_live_nodes_alert::dht_live_nodes_alert(aux::stack_allocator&
      alloc\n\t\t, sha1_hash const& nid\n\t\t, std::vector<std::pair<sha1_hash, udp::endpoint>>
      const& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2841,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/alert.cpp:2842,1
    - Dst: libtorrent::dht_live_nodes_alert::num_nodes
      Src: /src/libtorrent/src/alert.cpp:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2835
    functionDepth: 1
    functionLinenumber: 2835
    functionLinenumberEnd: 2845
    functionName: libtorrent::dht_live_nodes_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht_live_nodes_alert::num_nodes
    - std::snprintf
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: std::string
    signature: std::string dht_live_nodes_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2847
    functionDepth: 0
    functionLinenumber: 2847
    functionLinenumberEnd: 2850
    functionName: libtorrent::dht_live_nodes_alert::num_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dht_live_nodes_alert::num_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_nodes
      Src: /src/libtorrent/src/alert.cpp:2854,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2852
    functionDepth: 0
    functionLinenumber: 2852
    functionLinenumberEnd: 2857
    functionName: libtorrent::dht_live_nodes_alert::nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    - read_nodes
    linkageType: ''
    returnType: std::vector<std::pair<sha1_hash, udp::endpoint>>
    signature: std::vector<std::pair<sha1_hash, udp::endpoint>> dht_live_nodes_alert::nodes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2859
    functionDepth: 0
    functionLinenumber: 2859
    functionLinenumberEnd: 2860
    functionName: libtorrent::session_stats_header_alert::session_stats_header_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_stats_header_alert::session_stats_header_alert(aux::stack_allocator&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_stats_metrics
      Src: /src/libtorrent/src/alert.cpp:2868,1
    - Dst: std::sort
      Src: /src/libtorrent/src/alert.cpp:2869,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/alert.cpp:2869,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/alert.cpp:2869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2862
    functionDepth: 0
    functionLinenumber: 2862
    functionLinenumberEnd: 2882
    functionName: libtorrent::session_stats_header_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - session_stats_metrics
    - std::vector::begin
    - std::sort
    linkageType: ''
    returnType: std::string
    signature: std::string session_stats_header_alert::message() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2896,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:2896,1
    - Dst: allocate
      Src: /src/libtorrent/src/alert.cpp:2898,1
    - Dst: is_valid
      Src: /src/libtorrent/src/alert.cpp:2900,1
    - Dst: ptr
      Src: /src/libtorrent/src/alert.cpp:2906,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2907,1
    - Dst: data
      Src: /src/libtorrent/src/alert.cpp:2907,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:2907,1
    - Dst: std::tie
      Src: /src/libtorrent/src/alert.cpp:2909,1
    - Dst: write_nodes
      Src: /src/libtorrent/src/alert.cpp:2910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - ' alloc'
    - ' nid'
    - ' endp'
    - _interval
    - _num
    - ' samples'
    - ' nodes'
    argTypes:
    - aux::stack_allocator
    - sha1_hash
    - udp::endpoint
    - time_duration
    - int
    - std::vector<sha1_hash>
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2884
    functionDepth: 1
    functionLinenumber: 2884
    functionLinenumberEnd: 2911
    functionName: libtorrent::dht_sample_infohashes_alert::dht_sample_infohashes_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - std::memcpy
    - std::tie
    - is_valid
    - write_nodes
    - allocate
    - aux::numeric_cast<int>
    - size
    - data
    linkageType: ''
    returnType: void
    signature: "void dht_sample_infohashes_alert::dht_sample_infohashes_alert(aux::stack_allocator&
      alloc\n\t\t, sha1_hash const& nid\n\t\t, udp::endpoint const& endp\n\t\t, time_duration
      _interval\n\t\t, int _num\n\t\t, std::vector<sha1_hash> const& samples\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>> const& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:2919,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:2921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2913
    functionDepth: 1
    functionLinenumber: 2913
    functionLinenumberEnd: 2924
    functionName: libtorrent::dht_sample_infohashes_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::snprintf
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string dht_sample_infohashes_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2926
    functionDepth: 0
    functionLinenumber: 2926
    functionLinenumberEnd: 2929
    functionName: libtorrent::dht_sample_infohashes_alert::num_samples
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dht_sample_infohashes_alert::num_samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/alert.cpp:2934,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2936,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/alert.cpp:2937,1
    - Dst: aux::vector::data
      Src: /src/libtorrent/src/alert.cpp:2937,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/alert.cpp:2937,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/src/alert.cpp:2939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2931
    functionDepth: 1
    functionLinenumber: 2931
    functionLinenumberEnd: 2940
    functionName: libtorrent::dht_sample_infohashes_alert::samples
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - aux::vector::data
    - TORRENT_RVO
    - aux::vector::resize
    - get
    - aux::vector::size
    linkageType: ''
    returnType: std::vector<sha1_hash>
    signature: std::vector<sha1_hash> dht_sample_infohashes_alert::samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2942
    functionDepth: 0
    functionLinenumber: 2942
    functionLinenumberEnd: 2945
    functionName: libtorrent::dht_sample_infohashes_alert::num_nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dht_sample_infohashes_alert::num_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_nodes
      Src: /src/libtorrent/src/alert.cpp:2949,1
    - Dst: get
      Src: /src/libtorrent/src/alert.cpp:2949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2947
    functionDepth: 0
    functionLinenumber: 2947
    functionLinenumberEnd: 2952
    functionName: libtorrent::dht_sample_infohashes_alert::nodes
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - get
    - read_nodes
    linkageType: ''
    returnType: std::vector<std::pair<sha1_hash, udp::endpoint>>
    signature: std::vector<std::pair<sha1_hash, udp::endpoint>> dht_sample_infohashes_alert::nodes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:2961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - ' alloc'
    - h
    - ' ep'
    - ' peer_id'
    - block_num
    - piece_num
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - tcp::endpoint
    - peer_id
    - int
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2954
    functionDepth: 1
    functionLinenumber: 2954
    functionLinenumberEnd: 2962
    functionName: libtorrent::block_uploaded_alert::block_uploaded_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void block_uploaded_alert::block_uploaded_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, tcp::endpoint const& ep, peer_id const& peer_id,
      int block_num\n\t\t, piece_index_t piece_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libtorrent/src/alert.cpp:2970,1
    - Dst: libtorrent::peer_alert::message
      Src: /src/libtorrent/src/alert.cpp:2971,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/alert.cpp:2971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2964
    functionDepth: 0
    functionLinenumber: 2964
    functionLinenumberEnd: 2974
    functionName: libtorrent::block_uploaded_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - snprintf
    - libtorrent::peer_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string block_uploaded_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' dropped'
    argTypes:
    - std::bitset<abi_alert_count>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2979
    functionName: libtorrent::alerts_dropped_alert::alerts_dropped_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void alerts_dropped_alert::alerts_dropped_alert(aux::stack_allocator&\n\t\t,
      std::bitset<abi_alert_count> const& dropped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:3036,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:3037,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/alert.cpp:3038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - alert_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3039
      start: 2981
    functionDepth: 1
    functionLinenumber: 2981
    functionLinenumberEnd: 3039
    functionName: libtorrent::alert_name
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    linkageType: ''
    returnType: char
    signature: char * alert_name(int const alert_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/alert.cpp:3048,1
    - Dst: size
      Src: /src/libtorrent/src/alert.cpp:3048,1
    - Dst: test
      Src: /src/libtorrent/src/alert.cpp:3051,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/alert.cpp:3051,1
    - Dst: alert_name
      Src: /src/libtorrent/src/alert.cpp:3052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3041
    functionDepth: 2
    functionLinenumber: 3041
    functionLinenumberEnd: 3058
    functionName: libtorrent::alerts_dropped_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - test
    - alert_name
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string alerts_dropped_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ep'
    - operation
    - ' ec'
    argTypes:
    - tcp::endpoint
    - operation_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3065
    functionName: libtorrent::socks5_alert::socks5_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void socks5_alert::socks5_alert(aux::stack_allocator&\n\t\t, tcp::endpoint
      const& ep, operation_t operation, error_code const& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::snprintf
      Src: /src/libtorrent/src/alert.cpp:3073,1
    - Dst: operation_name
      Src: /src/libtorrent/src/alert.cpp:3074,1
    - Dst: libtorrent::socks5_alert::message
      Src: /src/libtorrent/src/alert.cpp:3074,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/alert.cpp:3074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3067
    functionDepth: 1
    functionLinenumber: 3067
    functionLinenumberEnd: 3077
    functionName: libtorrent::socks5_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::socks5_alert::message
    - std::snprintf
    - operation_name
    - print_endpoint
    linkageType: ''
    returnType: std::string
    signature: std::string socks5_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - h
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3079
    functionDepth: 0
    functionLinenumber: 3079
    functionLinenumberEnd: 3081
    functionName: libtorrent::file_prio_alert::file_prio_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_prio_alert::file_prio_alert(aux::stack_allocator& a, torrent_handle
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3083
    functionDepth: 0
    functionLinenumber: 3083
    functionLinenumberEnd: 3090
    functionName: libtorrent::file_prio_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string file_prio_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' a'
    - h
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3094
      start: 3092
    functionDepth: 0
    functionLinenumber: 3092
    functionLinenumberEnd: 3094
    functionName: libtorrent::oversized_file_alert::oversized_file_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void oversized_file_alert::oversized_file_alert(aux::stack_allocator&
      a, torrent_handle h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3103
      start: 3096
    functionDepth: 0
    functionLinenumber: 3096
    functionLinenumberEnd: 3103
    functionName: libtorrent::oversized_file_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string oversized_file_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h1
    - h2
    - ti
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - torrent_handle
    - std::shared_ptr<torrent_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3105
    functionDepth: 0
    functionLinenumber: 3105
    functionLinenumberEnd: 3110
    functionName: libtorrent::torrent_conflict_alert::torrent_conflict_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void torrent_conflict_alert::torrent_conflict_alert(aux::stack_allocator&
      alloc, torrent_handle h1\n\t\t, torrent_handle h2, std::shared_ptr<torrent_info>
      ti)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3119
    functionName: libtorrent::torrent_conflict_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_conflict_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3123,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - h
    - p
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - std::vector<lt::peer_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3121
    functionDepth: 0
    functionLinenumber: 3121
    functionLinenumberEnd: 3125
    functionName: libtorrent::peer_info_alert::peer_info_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void peer_info_alert::peer_info_alert(aux::stack_allocator& alloc,
      torrent_handle h\n\t\t, std::vector<lt::peer_info> p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3127
    functionDepth: 0
    functionLinenumber: 3127
    functionLinenumberEnd: 3134
    functionName: libtorrent::peer_info_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string peer_info_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3138,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - h
    - fp
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - aux::vector<std::int64_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3136
    functionDepth: 0
    functionLinenumber: 3136
    functionLinenumberEnd: 3140
    functionName: libtorrent::file_progress_alert::file_progress_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void file_progress_alert::file_progress_alert(aux::stack_allocator&
      alloc, torrent_handle h\n\t\t, aux::vector<std::int64_t, file_index_t> fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3142
    functionDepth: 0
    functionLinenumber: 3142
    functionLinenumberEnd: 3149
    functionName: libtorrent::file_progress_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string file_progress_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3153,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3154,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - ' alloc'
    - h
    - pi
    - ' bd'
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - std::vector<partial_piece_info>
    - std::vector<block_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3151
    functionDepth: 0
    functionLinenumber: 3151
    functionLinenumberEnd: 3156
    functionName: libtorrent::piece_info_alert::piece_info_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void piece_info_alert::piece_info_alert(aux::stack_allocator& alloc,
      torrent_handle h\n\t\t\t, std::vector<partial_piece_info> pi, std::vector<block_info>&&
      bd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3158
    functionDepth: 0
    functionLinenumber: 3158
    functionLinenumberEnd: 3165
    functionName: libtorrent::piece_info_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string piece_info_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3169,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - h
    - pa
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 3167
    functionDepth: 0
    functionLinenumber: 3167
    functionLinenumberEnd: 3171
    functionName: libtorrent::piece_availability_alert::piece_availability_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void piece_availability_alert::piece_availability_alert(aux::stack_allocator&
      alloc\n\t\t\t, torrent_handle h, std::vector<int> pa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3173
    functionDepth: 0
    functionLinenumber: 3173
    functionLinenumberEnd: 3180
    functionName: libtorrent::piece_availability_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string piece_availability_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3184,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert.cpp:3185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alloc'
    - h
    - t
    argTypes:
    - aux::stack_allocator
    - torrent_handle
    - std::vector<announce_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3182
    functionDepth: 0
    functionLinenumber: 3182
    functionLinenumberEnd: 3186
    functionName: libtorrent::tracker_list_alert::tracker_list_alert
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void tracker_list_alert::tracker_list_alert(aux::stack_allocator&
      alloc\n\t\t\t, torrent_handle h, std::vector<announce_entry> t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_alert::message
      Src: /src/libtorrent/src/alert.cpp:3193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3188
    functionDepth: 0
    functionLinenumber: 3188
    functionLinenumberEnd: 3195
    functionName: libtorrent::tracker_list_alert::message
    functionSourceFile: /src/libtorrent/src/alert.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_alert::message
    linkageType: ''
    returnType: std::string
    signature: std::string tracker_list_alert::message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: DLOG
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DLOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: DLOG
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DLOG(...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:109,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:113,1
    - Dst: std::unordered_map::insert
      Src: /src/libtorrent/src/mmap_disk_io.cpp:116,1
    - Dst: std::unordered_map::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:116,1
    - Dst: va_start
      Src: /src/libtorrent/src/mmap_disk_io.cpp:119,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:122,1
    - Dst: fputs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:128,1
    - Dst: va_end
      Src: /src/libtorrent/src/mmap_disk_io.cpp:131,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:133,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:133,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:134,1
    - Dst: fputs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 138
    functionName: libtorrent::debug_log
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - fputs
    - time_now
    - va_start
    - std::unordered_map::size
    - std::snprintf
    - libtorrent::total_milliseconds
    - std::unordered_map::insert
    - va_end
    - libtorrent::dht::item_target_id
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void debug_log(char const* fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: libtorrent::file_mode_for_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::open_mode_t
    signature: aux::open_mode_t file_mode_for_job(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - disk_job_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: libtorrent::valid_flags
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_flags(disk_job_flags_t const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:109,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:113,1
    - Dst: std::unordered_map::insert
      Src: /src/libtorrent/src/mmap_disk_io.cpp:116,1
    - Dst: std::unordered_map::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:116,1
    - Dst: va_start
      Src: /src/libtorrent/src/mmap_disk_io.cpp:119,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:122,1
    - Dst: fputs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:128,1
    - Dst: va_end
      Src: /src/libtorrent/src/mmap_disk_io.cpp:131,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:133,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:133,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:134,1
    - Dst: fputs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 138
    functionName: libtorrent::debug_log
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - fputs
    - time_now
    - va_start
    - std::unordered_map::size
    - std::snprintf
    - libtorrent::total_milliseconds
    - std::unordered_map::insert
    - va_end
    - libtorrent::dht::item_target_id
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void debug_log(char const* fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: libtorrent::file_mode_for_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::open_mode_t
    signature: aux::open_mode_t file_mode_for_job(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - disk_job_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: libtorrent::valid_flags
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_flags(disk_job_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::function<void()>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:196,1
    - Dst: libtorrent::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:247,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/mmap_disk_io.cpp:252,1
    - Dst: libtorrent::thread_fun
      Src: /src/libtorrent/src/mmap_disk_io.cpp:253,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap_disk_io.cpp:258,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/mmap_disk_io.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 379
    functionName: libtorrent::disk_interface
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::function<void()>
    - libtorrent::thread_fun
    - libtorrent::notify_all
    - COMPLETE_ASYNC
    - TORRENT_UNUSED
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT disk_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' owner'
    argTypes:
    - mmap_disk_io
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: libtorrent::job_queue
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void job_queue(mmap_disk_io& owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: libtorrent::notify_all
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::notify_all
    linkageType: ''
    returnType: void
    signature: void notify_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/mmap_disk_io.cpp:252,1
    - Dst: libtorrent::thread_fun
      Src: /src/libtorrent/src/mmap_disk_io.cpp:253,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap_disk_io.cpp:258,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/mmap_disk_io.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' pool'
    - work
    argTypes:
    - aux::disk_io_thread_pool
    - executor_work_guard<io_context::executor_type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: libtorrent::thread_fun
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - COMPLETE_ASYNC
    - libtorrent::thread_fun
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void thread_fun(aux::disk_io_thread_pool& pool, executor_work_guard<io_context::executor_type>
      work) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<mmap_disk_io>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: "std::unique_ptr<disk_interface> mmap_disk_io_constructor(\n\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<mmap_disk_io>
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT std::unique_ptr<disk_interface> mmap_disk_io_constructor(\n\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:391,1
    - Dst: libtorrent::mmap_disk_io::settings_updated
      Src: /src/libtorrent/src/mmap_disk_io.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 401
    functionName: libtorrent::mmap_disk_io::mmap_disk_io
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - libtorrent::mmap_disk_io::settings_updated
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::mmap_disk_io(io_context& ios, settings_interface
      const& sett, counters& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::mmap_disk_io::get_status
      Src: /src/libtorrent/src/mmap_disk_io.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: libtorrent::mmap_disk_io::get_status
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::mmap_disk_io::get_status
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> mmap_disk_io::get_status(storage_index_t
      const st) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:411,1
    - Dst: files::is_valid
      Src: /src/libtorrent/src/mmap_disk_io.cpp:411,1
    - Dst: new_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:413,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:413,1
    - Dst: std::make_shared<mmap_storage>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:414,1
    - Dst: auto::set_storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:415,1
    - Dst: auto::set_owner
      Src: /src/libtorrent/src/mmap_disk_io.cpp:416,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:417,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:419,1
    - Dst: storage_holder
      Src: /src/libtorrent/src/mmap_disk_io.cpp:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' params'
    - ' owner'
    argTypes:
    - storage_params
    - std::shared_ptr<void>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 421
    functionName: libtorrent::mmap_disk_io::new_torrent
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - auto::set_storage_index
    - auto::set_owner
    - std::move
    - files::is_valid
    - storage_holder
    - TORRENT_ASSERT
    - emplace_back
    - std::make_shared<mmap_storage>
    - new_index
    - end_index
    linkageType: ''
    returnType: storage_holder
    signature: "storage_holder mmap_disk_io::new_torrent(storage_params const& params\n\t\t,
      std::shared_ptr<void> const& owner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:425,1
    - Dst: reset
      Src: /src/libtorrent/src/mmap_disk_io.cpp:426,1
    - Dst: add
      Src: /src/libtorrent/src/mmap_disk_io.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: libtorrent::mmap_disk_io::remove_torrent
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reset
    - add
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::remove_torrent(storage_index_t const idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:438,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:441,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:444,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:444,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:445,1
    - Dst: num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:446,1
    - Dst: num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:446,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:447,1
    - Dst: m_queued_jobs::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:449,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:449,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:449,1
    - Dst: std::printf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:450,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:450,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:452,1
    - Dst: m_queued_jobs::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:454,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:454,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:454,1
    - Dst: std::printf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:455,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:455,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:457,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:457,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:458,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 459
    functionName: mmap_disk_io::~mmap_disk_io()
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - m_queued_jobs::empty
    - num_threads
    - auto::get
    - std::printf
    - DLOG
    - TORRENT_ASSERT
    - auto::next
    - m_queued_jobs::iterate
    - size
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::~mmap_disk_io()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:464,1
    - Dst: libtorrent::mmap_disk_io::submit_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:468,1
    - Dst: exchange
      Src: /src/libtorrent/src/mmap_disk_io.cpp:473,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:474,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:475,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:478,1
    - Dst: m_queued_jobs::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:479,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:479,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:479,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:480,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:481,1
    - Dst: libtorrent::mmap_disk_io::abort_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:487,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:490,1
    - Dst: libtorrent::mmap_disk_io::abort
      Src: /src/libtorrent/src/mmap_disk_io.cpp:494,1
    - Dst: libtorrent::mmap_disk_io::abort
      Src: /src/libtorrent/src/mmap_disk_io.cpp:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - wait
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 496
    functionName: libtorrent::mmap_disk_io::abort
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - auto::get
    - libtorrent::mmap_disk_io::abort_jobs
    - DLOG
    - libtorrent::mmap_disk_io::abort
    - exchange
    - libtorrent::mmap_disk_io::submit_jobs
    - std::unique_lock::unlock
    - m_queued_jobs::iterate
    - auto::next
    - libtorrent::mmap_disk_io::num_threads
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::abort(bool const wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:500,1
    - Dst: set_settings
      Src: /src/libtorrent/src/mmap_disk_io.cpp:501,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_disk_io.cpp:502,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:502,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:504,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:505,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:506,1
    - Dst: set_max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:508,1
    - Dst: set_max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: libtorrent::mmap_disk_io::settings_updated
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - DLOG
    - TORRENT_ASSERT
    - get_int
    - set_settings
    - resize
    - set_max_threads
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::settings_updated()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:514,1
    - Dst: pop_front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:516,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:517,1
    - Dst: erase
      Src: /src/libtorrent/src/mmap_disk_io.cpp:521,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:521,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' e'
    - ' src'
    - ' dst'
    argTypes:
    - storage_error
    - jobqueue_t
    - jobqueue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 527
    functionName: libtorrent::mmap_disk_io::fail_jobs_impl
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - erase
    - empty
    - TORRENT_ASSERT
    - pop_front
    - aux::mmap_disk_job*::storage::storage_index
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::fail_jobs_impl(storage_error const& e, jobqueue_t&
      src, jobqueue_t& dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:555,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:556,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:562,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:566,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:567,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:573,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:573,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:575,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:582,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:583,1
    - Dst: code
      Src: /src/libtorrent/src/mmap_disk_io.cpp:588,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:605,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:608,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - j
    - ' completed_jobs'
    argTypes:
    - aux::mmap_disk_job*
    - jobqueue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 613
    functionName: libtorrent::mmap_disk_io::perform_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - static_cast<std::size_t>
    - DLOG
    - TORRENT_ASSERT
    - code
    - inc_stats_counter
    - size
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::perform_job(aux::mmap_disk_job* j, jobqueue_t& completed_jobs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:617,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:618,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:620,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:622,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:623,1
    - Dst: aux::mmap_disk_job*::storage::read
      Src: /src/libtorrent/src/mmap_disk_io.cpp:625,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:628,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap_disk_io.cpp:629,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:633,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:633,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:635,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:636,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:637,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 641
    functionName: libtorrent::mmap_disk_io::do_partial_read
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - boost::get<disk_buffer_holder>
    - time_now
    - total_microseconds
    - aux::mmap_disk_job*::storage::read
    - file_mode_for_job
    - TORRENT_ASSERT
    - inc_stats_counter
    - TORRENT_UNUSED
    - data
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_partial_read(aux::mmap_disk_job* j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: disk_buffer_holder
      Src: /src/libtorrent/src/mmap_disk_io.cpp:645,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/mmap_disk_io.cpp:645,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:646,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:654,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:656,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:657,1
    - Dst: aux::mmap_disk_job*::storage::read
      Src: /src/libtorrent/src/mmap_disk_io.cpp:659,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:662,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap_disk_io.cpp:663,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:667,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:667,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:669,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:670,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:671,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 675
    functionName: libtorrent::mmap_disk_io::do_read
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - boost::get<disk_buffer_holder>
    - time_now
    - total_microseconds
    - aux::mmap_disk_job*::storage::read
    - allocate_buffer
    - disk_buffer_holder
    - file_mode_for_job
    - TORRENT_ASSERT
    - inc_stats_counter
    - TORRENT_UNUSED
    - data
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_read(aux::mmap_disk_job* j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:680,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:680,1
    - Dst: auto::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:682,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:683,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:685,1
    - Dst: aux::mmap_disk_job*::storage::write
      Src: /src/libtorrent/src/mmap_disk_io.cpp:688,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:691,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:695,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:695,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:697,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:698,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:699,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:700,1
    - Dst: aux::mmap_disk_job*::storage::set_need_tick
      Src: /src/libtorrent/src/mmap_disk_io.cpp:705,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:706,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:706,1
    - Dst: minutes
      Src: /src/libtorrent/src/mmap_disk_io.cpp:706,1
    - Dst: erase
      Src: /src/libtorrent/src/mmap_disk_io.cpp:709,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 713
    functionName: libtorrent::mmap_disk_io::do_write
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - boost::get<disk_buffer_holder>
    - time_now
    - aux::mmap_disk_job*::storage::write
    - total_microseconds
    - push_back
    - std::move
    - erase
    - file_mode_for_job
    - inc_stats_counter
    - minutes
    - aux::mmap_disk_job*::storage::storage_index
    - libtorrent::aux::time_now
    - aux::mmap_disk_job*::storage::set_need_tick
    - auto::data
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_write(aux::mmap_disk_job* j)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:719,1
    - Dst: valid_flags
      Src: /src/libtorrent/src/mmap_disk_io.cpp:719,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:720,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:721,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:723,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:723,1
    - Dst: handler
      Src: /src/libtorrent/src/mmap_disk_io.cpp:731,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:743,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:743,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:759,1
    - Dst: get2
      Src: /src/libtorrent/src/mmap_disk_io.cpp:761,1
    - Dst: disk_buffer_holder
      Src: /src/libtorrent/src/mmap_disk_io.cpp:763,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/mmap_disk_io.cpp:763,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_disk_io.cpp:772,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:772,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:772,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_disk_io.cpp:774,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:774,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:774,1
    - Dst: handler
      Src: /src/libtorrent/src/mmap_disk_io.cpp:782,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:782,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:788,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:792,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:793,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:794,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:797,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:800,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:801,1
    - Dst: get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:810,1
    - Dst: disk_buffer_holder
      Src: /src/libtorrent/src/mmap_disk_io.cpp:812,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/mmap_disk_io.cpp:812,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_disk_io.cpp:820,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:820,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:820,1
    - Dst: handler
      Src: /src/libtorrent/src/mmap_disk_io.cpp:823,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:823,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:828,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:829,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:832,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:834,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:835,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 4
    argNames:
    - storage
    - ' r'
    - handler
    - flags
    argTypes:
    - storage_index_t
    - peer_request
    - std::function<void(disk_buffer_holder, storage_error const&)>
    - disk_job_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 836
    functionName: libtorrent::mmap_disk_io::async_read
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - shared_from_this
    - std::memcpy
    - std::move
    - std::uint16_t
    - files
    - allocate_buffer
    - disk_buffer_holder
    - libtorrent::mmap_disk_io::add_job
    - DLOG
    - TORRENT_ASSERT
    - std::size_t
    - valid_flags
    - handler
    - get
    - get2
    - allocate_job
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_read(storage_index_t storage, peer_request
      const& r\n\t\t, std::function<void(disk_buffer_holder, storage_error const&)>
      handler\n\t\t, disk_job_flags_t const flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/mmap_disk_io.cpp:844,1
    - Dst: aux::throw_ex<std::bad_alloc>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:846,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_disk_io.cpp:847,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:847,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:847,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:849,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:850,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:851,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:851,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:853,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:854,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:857,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:858,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:859,1
    - Dst: insert
      Src: /src/libtorrent/src/mmap_disk_io.cpp:862,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:862,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:863,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 6
    argNames:
    - storage
    - ' r'
    - buf
    - o
    - handler
    - flags
    argTypes:
    - storage_index_t
    - peer_request
    - char*
    - std::shared_ptr<disk_observer>
    - std::function<void(storage_error const&)>
    - disk_job_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 866
    functionName: libtorrent::mmap_disk_io::async_write
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - boost::get<disk_buffer_holder>
    - shared_from_this
    - std::memcpy
    - std::move
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - allocate_buffer
    - files
    - insert
    - libtorrent::mmap_disk_io::add_job
    - TORRENT_ASSERT
    - aux::throw_ex<std::bad_alloc>
    - aux::mmap_disk_job*::storage::storage_index
    - allocate_job
    - disk_buffer_holder::data
    linkageType: ''
    returnType: bool
    signature: "bool mmap_disk_io::async_write(storage_index_t const storage, peer_request
      const& r\n\t\t, char const* buf, std::shared_ptr<disk_observer> o\n\t\t, std::function<void(storage_error
      const&)> handler\n\t\t, disk_job_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:872,1
    - Dst: valid_flags
      Src: /src/libtorrent/src/mmap_disk_io.cpp:872,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:873,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:874,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:877,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - storage
    - piece
    - v2
    - flags
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - span<sha256_hash>
    - disk_job_flags_t
    - std::function<void(piece_index_t, sha1_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 880
    functionName: libtorrent::mmap_disk_io::async_hash
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - libtorrent::mmap_disk_io::add_job
    - TORRENT_ASSERT
    - valid_flags
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_hash(storage_index_t const storage\n\t\t,
      piece_index_t const piece, span<sha256_hash> const v2, disk_job_flags_t const
      flags\n\t\t, std::function<void(piece_index_t, sha1_hash const&, storage_error
      const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:886,1
    - Dst: valid_flags
      Src: /src/libtorrent/src/mmap_disk_io.cpp:886,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:887,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:888,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:891,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - storage
    - piece
    - offset
    - flags
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - int
    - disk_job_flags_t
    - std::function<void(piece_index_t, sha256_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 894
    functionName: libtorrent::mmap_disk_io::async_hash2
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - libtorrent::mmap_disk_io::add_job
    - TORRENT_ASSERT
    - valid_flags
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_hash2(storage_index_t const storage\n\t\t,
      piece_index_t const piece, int const offset, disk_job_flags_t const flags\n\t\t,
      std::function<void(piece_index_t, sha256_hash const&, storage_error const&)>
      handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:900,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:901,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:902,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:903,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - storage
    - p
    - flags
    - handler
    argTypes:
    - storage_index_t
    - std::string
    - move_flags_t
    - std::function<void(status_t, std::string const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 907
    functionName: libtorrent::mmap_disk_io::async_move_storage
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_move_storage(storage_index_t const storage\n\t\t,
      std::string p, move_flags_t const flags\n\t\t, std::function<void(status_t,
      std::string const&, storage_error const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:912,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:913,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:914,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - storage
    - handler
    argTypes:
    - storage_index_t
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 917
    functionName: libtorrent::mmap_disk_io::async_release_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_release_files(storage_index_t const storage\n\t\t,
      std::function<void()> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:924,1
    - Dst: m_queued_jobs::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:926,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:926,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:926,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:928,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - storage
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 937
    functionName: libtorrent::mmap_disk_io::abort_hash_jobs
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - shared_from_this
    - m_queued_jobs::iterate
    - auto::next
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::abort_hash_jobs(storage_index_t const storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::mmap_disk_io::abort_hash_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:943,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:944,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:945,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:946,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - storage
    - options
    - handler
    argTypes:
    - storage_index_t
    - remove_flags_t
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 939
    functionDepth: 2
    functionLinenumber: 939
    functionLinenumberEnd: 949
    functionName: libtorrent::mmap_disk_io::async_delete_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - libtorrent::mmap_disk_io::abort_hash_jobs
    - libtorrent::mmap_disk_io::add_fence_job
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_delete_files(storage_index_t const storage\n\t\t,
      remove_flags_t const options\n\t\t, std::function<void(storage_error const&)>
      handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:956,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:957,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:959,1
    - Dst: aux::vector<std::string, file_index_t>::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:962,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:962,1
    - Dst: aux::vector<std::string, file_index_t>::string, file_index_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:962,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - storage
    - resume_data
    - links
    - handler
    argTypes:
    - storage_index_t
    - add_torrent_params*
    - aux::vector<std::string, file_index_t>
    - std::function<void(status_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 966
    functionName: libtorrent::mmap_disk_io::async_check_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - aux::vector<std::string, file_index_t>::string, file_index_t>
    - libtorrent::mmap_disk_io::add_fence_job
    - aux::vector<std::string, file_index_t>::empty
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_check_files(storage_index_t const storage\n\t\t,
      add_torrent_params const* resume_data\n\t\t, aux::vector<std::string, file_index_t>
      links\n\t\t, std::function<void(status_t, storage_error const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:972,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:973,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:975,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:976,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - storage
    - index
    - name
    - handler
    argTypes:
    - storage_index_t
    - file_index_t
    - std::string
    - std::function<void(std::string const&, file_index_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 978
    functionName: libtorrent::mmap_disk_io::async_rename_file
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_rename_file(storage_index_t const storage\n\t\t,
      file_index_t const index, std::string name\n\t\t, std::function<void(std::string
      const&, file_index_t, storage_error const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:983,1
    - Dst: libtorrent::mmap_disk_io::abort_hash_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:984,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:986,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:988,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - storage
    - handler
    argTypes:
    - storage_index_t
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 990
    functionName: libtorrent::mmap_disk_io::async_stop_torrent
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - libtorrent::mmap_disk_io::abort_hash_jobs
    - libtorrent::mmap_disk_io::add_fence_job
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_stop_torrent(storage_index_t const storage\n\t\t,
      std::function<void()> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:997,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:998,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:999,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1000,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - storage
    - prios
    - handler
    argTypes:
    - storage_index_t
    - aux::vector<download_priority_t, file_index_t>
    - "std::function<void(storage_error const&\n\t\t\t, aux::vector<download_priority_t,
      file_index_t>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1003
    functionName: libtorrent::mmap_disk_io::async_set_file_priority
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_set_file_priority(storage_index_t const storage\n\t\t,
      aux::vector<download_priority_t, file_index_t> prios\n\t\t, std::function<void(storage_error
      const&\n\t\t\t, aux::vector<download_priority_t, file_index_t>)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1008,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1009,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1011,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - storage
    - index
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1026
    functionName: libtorrent::mmap_disk_io::async_clear_piece
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_clear_piece(storage_index_t const storage\n\t\t,
      piece_index_t const index, std::function<void(piece_index_t)> handler)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1032,1
    - Dst: aux::mmap_disk_job*::d::h::block_hashes::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1035,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1037,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1038,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1040,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1041,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1043,1
    - Dst: aux::mmap_disk_job*::d::h::block_hashes::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1043,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1044,1
    - Dst: std::max
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1049,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1050,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1055,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1057,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1058,1
    - Dst: get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1062,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1062,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1067,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1072,1
    - Dst: aux::mmap_disk_job*::error::ec::clear
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1082,1
    - Dst: aux::mmap_disk_job*::storage::hash
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1083,1
    - Dst: aux::mmap_disk_job*::error::ec::clear
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1089,1
    - Dst: aux::mmap_disk_job*::storage::hash2
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1090,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1097,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1098,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1099,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1104,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1113,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1113,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1114,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1115,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1119,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1121
    functionName: libtorrent::mmap_disk_io::do_hash
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - aux::mmap_disk_job*::storage::hash
    - hasher256::final
    - std::min
    - aux::mmap_disk_job*::storage::files
    - std::max
    - hasher256::update
    - hasher::final
    - aux::mmap_disk_job*::error::ec::clear
    - inc_stats_counter
    - aux::mmap_disk_job*::storage::storage_index
    - time_now
    - aux::mmap_disk_job*::d::h::block_hashes::size
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::hash2
    - total_microseconds
    - file_mode_for_job
    - aux::mmap_disk_job*::d::h::block_hashes::empty
    - DLOG
    - hasher::update
    - get
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_hash(aux::mmap_disk_job* j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1125,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1127,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1128,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1133,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1135,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1137,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1138,1
    - Dst: get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1140,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1140,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1143,1
    - Dst: aux::mmap_disk_job*::storage::hash2
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1147,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1152,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1153,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1154,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1160,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1160,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1162,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1163,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1123
    functionDepth: 2
    functionLinenumber: 1123
    functionLinenumberEnd: 1168
    functionName: libtorrent::mmap_disk_io::do_hash2
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - total_microseconds
    - file_mode_for_job
    - hasher256::final
    - DLOG
    - TORRENT_ASSERT
    - std::min
    - aux::mmap_disk_job*::storage::files
    - inc_stats_counter
    - hasher256::update
    - get
    - aux::mmap_disk_job*::storage::hash2
    - aux::mmap_disk_job*::storage::storage_index
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_hash2(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1173,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1173,1
    - Dst: std::tie
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1178,1
    - Dst: aux::mmap_disk_job*::storage::move_storage
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1178,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1178,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1183
    functionName: libtorrent::mmap_disk_io::do_move_storage
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - aux::mmap_disk_job*::storage::move_storage
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - std::tie
    - TORRENT_ASSERT
    - boost::get<std::string>
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_move_storage(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1188,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1188,1
    - Dst: aux::mmap_disk_job*::storage::release_files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1191
    functionName: libtorrent::mmap_disk_io::do_release_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - aux::mmap_disk_job*::storage::release_files
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_release_files(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1195,1
    - Dst: boost::get<remove_flags_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1198,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1198,1
    - Dst: aux::mmap_disk_job*::storage::delete_files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1199,1
    - Dst: boost::get<remove_flags_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1201
    functionName: libtorrent::mmap_disk_io::do_delete_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::delete_files
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - boost::get<remove_flags_t>
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_delete_files(aux::mmap_disk_job* j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1206,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1206,1
    - Dst: boost::get<add_torrent_params const*>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1222,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1222,1
    - Dst: aux::mmap_disk_job*::storage::initialize
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1225,1
    - Dst: aux::mmap_disk_job*::storage::verify_resume_data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1230,1
    - Dst: aux::vector<std::string, file_index_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1231,1
    - Dst: get_bool
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1237,1
    - Dst: libtorrent::aux::contains_resume_data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1240,1
    - Dst: aux::mmap_disk_job*::storage::has_any_file
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1255
    functionName: libtorrent::mmap_disk_io::do_check_fastresume
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - aux::mmap_disk_job*::storage::initialize
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - libtorrent::aux::contains_resume_data
    - boost::get<add_torrent_params const*>
    - aux::mmap_disk_job*::storage::has_any_file
    - aux::mmap_disk_job*::storage::verify_resume_data
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::files
    - aux::vector<std::string, file_index_t>
    - get_bool
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_check_fastresume(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1260,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1260,1
    - Dst: aux::mmap_disk_job*::storage::rename_file
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1263,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1266
    functionName: libtorrent::mmap_disk_io::do_rename_file
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - boost::get<std::string>
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - aux::mmap_disk_job*::storage::rename_file
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_rename_file(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1271,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1271,1
    - Dst: aux::mmap_disk_job*::storage::release_files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1268
    functionDepth: 2
    functionLinenumber: 1268
    functionLinenumberEnd: 1274
    functionName: libtorrent::mmap_disk_io::do_stop_torrent
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - aux::mmap_disk_job*::storage::release_files
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_stop_torrent(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1282,1
    - Dst: read_jobs_in_use
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1282,1
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1283,1
    - Dst: write_jobs_in_use
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1283,1
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1284,1
    - Dst: jobs_in_use
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1284,1
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1285,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1285,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1286,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1288,1
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1291,1
    - Dst: in_use
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1292
    functionName: libtorrent::mmap_disk_io::update_stats_counters
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - read_jobs_in_use
    - jobs_in_use
    - write_jobs_in_use
    - set_value
    - in_use
    - m_queued_jobs::size
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::update_stats_counters(counters& c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::mmap_disk_job*::storage::set_file_priority
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1296,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1300
    functionName: libtorrent::mmap_disk_io::do_file_priority
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - aux::mmap_disk_job*::storage::set_file_priority
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_file_priority(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1310
    functionName: libtorrent::mmap_disk_io::do_clear_piece
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_clear_piece(aux::mmap_disk_job*)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: storage_error
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1315,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1318,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1322,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1326,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1326,1
    - Dst: post
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1328,1
    - Dst: libtorrent::mmap_disk_io::call_job_handlers
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1331
    functionName: libtorrent::mmap_disk_io::job_fail_add
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - post
    - libtorrent::mmap_disk_io::call_job_handlers
    - DLOG
    - TORRENT_ASSERT
    - storage_error
    - size
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::job_fail_add(aux::mmap_disk_job* j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::mmap_disk_io::job_fail_add
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1340,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1344,1
    - Dst: job_name
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1345,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1346,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1348,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1349,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1349,1
    - Dst: aux::mmap_disk_job*::storage::raise_fence
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1351,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1355,1
    - Dst: m_queued_jobs::push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1356,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1357,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1359,1
    - Dst: libtorrent::mmap_disk_io::immediate_execute
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1360,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1365,1
    - Dst: libtorrent::mmap_disk_io::immediate_execute
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - j
    - user_add
    argTypes:
    - aux::mmap_disk_job*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1367
    functionName: libtorrent::mmap_disk_io::add_fence_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - m_queued_jobs::push_back
    - libtorrent::mmap_disk_io::immediate_execute
    - aux::mmap_disk_job*::storage::raise_fence
    - libtorrent::mmap_disk_io::job_fail_add
    - DLOG
    - TORRENT_ASSERT
    - job_name
    - inc_stats_counter
    - libtorrent::mmap_disk_io::num_threads
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::add_fence_job(aux::mmap_disk_job* j, bool const
      user_add)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1371,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1373,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1373,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1374,1
    - Dst: libtorrent::mmap_disk_io::job_fail_add
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1384,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1386,1
    - Dst: job_name
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1387,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1388,1
    - Dst: aux::mmap_disk_job*::storage::is_blocked
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1395,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1397,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1398,1
    - Dst: job_name
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1399,1
    - Dst: aux::mmap_disk_job*::storage::num_blocked
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1399,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1406,1
    - Dst: queue_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1408,1
    - Dst: m_queued_jobs::push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1409,1
    - Dst: pool_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1414,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1416,1
    - Dst: libtorrent::mmap_disk_io::immediate_execute
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1417,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - j
    - user_add
    argTypes:
    - aux::mmap_disk_job*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1419
    functionName: libtorrent::mmap_disk_io::add_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 4
    functionsReached:
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - m_queued_jobs::push_back
    - libtorrent::mmap_disk_io::immediate_execute
    - aux::mmap_disk_job*::storage::num_blocked
    - queue_for_job
    - libtorrent::mmap_disk_io::job_fail_add
    - DLOG
    - TORRENT_ASSERT
    - job_name
    - aux::mmap_disk_job*::storage::is_blocked
    - aux::mmap_disk_job*::storage::files
    - inc_stats_counter
    - pool_for_job
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::add_job(aux::mmap_disk_job* j, bool const user_add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1423,1
    - Dst: m_queued_jobs::pop_front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1425,1
    - Dst: libtorrent::mmap_disk_io::execute_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1428
    functionName: libtorrent::mmap_disk_io::immediate_execute
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - m_queued_jobs::pop_front
    - libtorrent::mmap_disk_io::execute_job
    - m_queued_jobs::empty
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::immediate_execute()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1433,1
    - Dst: m_job_cond::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1435,1
    - Dst: job_queued
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1436,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1436,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1438,1
    - Dst: m_job_cond::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1440,1
    - Dst: job_queued
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1441,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1430
    functionDepth: 2
    functionLinenumber: 1430
    functionLinenumberEnd: 1443
    functionName: libtorrent::mmap_disk_io::submit_jobs
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - m_job_cond::notify_all
    - job_queued
    - m_queued_jobs::size
    - m_queued_jobs::empty
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::submit_jobs()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: storage_error
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1451,1
    - Dst: jobqueue_t::push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1452,1
    - Dst: libtorrent::mmap_disk_io::add_completed_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1453,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1453,1
    - Dst: libtorrent::mmap_disk_io::perform_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1457,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1458,1
    - Dst: libtorrent::mmap_disk_io::add_completed_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1459,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1460
    functionName: libtorrent::mmap_disk_io::execute_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::mmap_disk_io::perform_job
    - std::move
    - storage_error
    - jobqueue_t::push_back
    - libtorrent::mmap_disk_io::add_completed_jobs
    - jobqueue_t::empty
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::execute_job(aux::mmap_disk_job* j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1465,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1465,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1472,1
    - Dst: thread_idle
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1474,1
    - Dst: should_exit
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1482,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1483,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1484,1
    - Dst: try_thread_exit
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1486,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1486,1
    - Dst: thread_active
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1489,1
    - Dst: m_job_cond::wait_for
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1494,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1495,1
    - Dst: thread_active
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ' jobq'
    - ' threads'
    - ' l'
    argTypes:
    - job_queue
    - aux::disk_io_thread_pool
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1501
    functionName: libtorrent::mmap_disk_io::wait_for_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - owns_lock
    - m_queued_jobs::empty
    - thread_idle
    - thread_active
    - try_thread_exit
    - m_job_cond::wait_for
    - TORRENT_ASSERT
    - libtorrent::mmap_disk_io::num_threads
    - libtorrent::dht::item_target_id
    - should_exit
    linkageType: ''
    returnType: bool
    signature: "bool mmap_disk_io::wait_for_job(job_queue& jobq, aux::disk_io_thread_pool&
      threads\n\t\t, std::unique_lock<std::mutex>& l)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1505,1
    - Dst: set_thread_name
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1507,1
    - Dst: aux::get_library_procedure<aux::kernel32, SetThreadInformation_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1512,1
    - Dst: SetThreadInformation
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1522,1
    - Dst: GetCurrentThread
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1522,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1527,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1532,1
    - Dst: min_time
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1536,1
    - Dst: min_time
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1539,1
    - Dst: libtorrent::mmap_disk_io::wait_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1545,1
    - Dst: m_queued_jobs::pop_front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1547,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1548,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1550,1
    - Dst: first_thread_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1552,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1554,1
    - Dst: empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1557,1
    - Dst: front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1557,1
    - Dst: front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1559,1
    - Dst: lock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1559,1
    - Dst: erase
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1560,1
    - Dst: begin
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1560,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1563,1
    - Dst: std::shared_ptr::tick
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1564,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1565,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1572,1
    - Dst: seconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1573,1
    - Dst: minutes
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1576,1
    - Dst: close_oldest
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1581,1
    - Dst: flush_next_file
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1590,1
    - Dst: seconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1591,1
    - Dst: libtorrent::mmap_disk_io::execute_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1596,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1598,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1609,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1611,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1612,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1620,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1622,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1624,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1625,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1637,1
    - Dst: libtorrent::mmap_disk_io::abort_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1639,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1641,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1642,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - ' queue'
    - ' pool'
    argTypes:
    - job_queue
    - aux::disk_io_thread_pool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1503
    functionDepth: 3
    functionLinenumber: 1503
    functionLinenumberEnd: 1643
    functionName: libtorrent::mmap_disk_io::thread_fun
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - first_thread_id
    - set_thread_name
    - begin
    - empty
    - seconds
    - min_time
    - minutes
    - libtorrent::aux::time_now
    - libtorrent::mmap_disk_io::execute_job
    - libtorrent::mmap_disk_io::abort_jobs
    - front
    - get_int
    - inc_stats_counter
    - m_queued_jobs::pop_front
    - libtorrent::mmap_disk_io::wait_for_job
    - erase
    - TORRENT_ASSERT
    - lock
    - std::unique_lock::unlock
    - close_oldest
    - SetThreadInformation
    - DLOG
    - flush_next_file
    - GetCurrentThread
    - std::shared_ptr::tick
    - aux::get_library_procedure<aux::kernel32, SetThreadInformation_t>
    - m_queued_jobs::size
    - libtorrent::dht::item_target_id
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::thread_fun(job_queue& queue, aux::disk_io_thread_pool&
      pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1647,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1649,1
    - Dst: test_and_set
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1650,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1657,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1659
    functionName: libtorrent::mmap_disk_io::abort_jobs
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - release
    - test_and_set
    - DLOG
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::abort_jobs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1663,1
    - Dst: max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1664
    functionName: libtorrent::mmap_disk_io::num_threads
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 3
    functionsReached:
    - max_threads
    linkageType: ''
    returnType: int
    signature: int mmap_disk_io::num_threads() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1666
    functionDepth: 0
    functionLinenumber: 1666
    functionLinenumberEnd: 1674
    functionName: '& mmap_disk_io::queue_for_job(aux::mmap_disk_job* j)'
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - max_threads
    linkageType: ''
    returnType: mmap_disk_io::job_queue
    signature: mmap_disk_io::job_queue & mmap_disk_io::queue_for_job(aux::mmap_disk_job*
      j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1676
    functionDepth: 0
    functionLinenumber: 1676
    functionLinenumberEnd: 1683
    functionName: '& mmap_disk_io::pool_for_job(aux::mmap_disk_job* j)'
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - max_threads
    linkageType: ''
    returnType: aux::disk_io_thread_pool
    signature: aux::disk_io_thread_pool & mmap_disk_io::pool_for_job(aux::mmap_disk_job*
      j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1687,1
    - Dst: libtorrent::mmap_disk_io::add_completed_jobs_impl
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1694,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1694,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1695,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1695,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1696,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - jobs
    argTypes:
    - jobqueue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1698
    functionName: libtorrent::mmap_disk_io::add_completed_jobs
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::mmap_disk_io::add_completed_jobs_impl
    - std::move
    - jobqueue_t::empty
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::add_completed_jobs(jobqueue_t jobs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: jobqueue_t::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1704,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1704,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1704,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1706,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1707,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1711,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1712,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1715,1
    - Dst: aux::mmap_disk_job*::storage::job_complete
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1717,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1719,1
    - Dst: jobqueue_t::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1719,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1720,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1722,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1729,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1733,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1734,1
    - Dst: load
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1736,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1738,1
    - Dst: jobqueue_t::pop_front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1740,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1741,1
    - Dst: storage_error
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1743,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1744,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1749,1
    - Dst: m_queued_jobs::append
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1753,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1753,1
    - Dst: m_job_cond::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1758,1
    - Dst: job_queued
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1759,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1759,1
    - Dst: append
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1765,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1765,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1769,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1769,1
    - Dst: post
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1771,1
    - Dst: libtorrent::mmap_disk_io::call_job_handlers
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1771,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - jobs
    - ' completed'
    argTypes:
    - jobqueue_t
    - jobqueue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1700
    functionDepth: 2
    functionLinenumber: 1700
    functionLinenumberEnd: 1774
    functionName: libtorrent::mmap_disk_io::add_completed_jobs_impl
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::move
    - append
    - auto::get
    - jobqueue_t::empty
    - push_back
    - libtorrent::mmap_disk_io::call_job_handlers
    - jobqueue_t::iterate
    - m_job_cond::notify_all
    - inc_stats_counter
    - aux::mmap_disk_job*::storage::job_complete
    - TORRENT_ASSERT
    - m_queued_jobs::append
    - jobqueue_t::size
    - auto::next
    - size
    - jobqueue_t::pop_front
    - post
    - DLOG
    - storage_error
    - job_queued
    - m_queued_jobs::size
    - load
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::add_completed_jobs_impl(jobqueue_t jobs, jobqueue_t&
      completed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1779,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1782,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1782,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1784,1
    - Dst: get_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1787,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1788,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1795,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1796,1
    - Dst: aux::mmap_disk_job*::call_callback
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1803,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1806,1
    - Dst: free_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1809,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1809,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1809,1
    - Dst: free_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1813,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1814
    functionName: libtorrent::mmap_disk_io::call_job_handlers
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - aux::array::data
    - aux::mmap_disk_job*::call_callback
    - DLOG
    - TORRENT_ASSERT
    - get_all
    - inc_stats_counter
    - aux::array::size
    - std::unique_lock::unlock
    - free_jobs
    - size
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::call_job_handlers()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:109,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:113,1
    - Dst: std::unordered_map::insert
      Src: /src/libtorrent/src/mmap_disk_io.cpp:116,1
    - Dst: std::unordered_map::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:116,1
    - Dst: va_start
      Src: /src/libtorrent/src/mmap_disk_io.cpp:119,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:122,1
    - Dst: fputs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:128,1
    - Dst: va_end
      Src: /src/libtorrent/src/mmap_disk_io.cpp:131,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:133,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:133,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:134,1
    - Dst: fputs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 138
    functionName: libtorrent::debug_log
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - fputs
    - time_now
    - va_start
    - std::unordered_map::size
    - std::snprintf
    - libtorrent::total_milliseconds
    - std::unordered_map::insert
    - va_end
    - libtorrent::dht::item_target_id
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void debug_log(char const* fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: libtorrent::file_mode_for_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::open_mode_t
    signature: aux::open_mode_t file_mode_for_job(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - disk_job_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: libtorrent::valid_flags
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_flags(disk_job_flags_t const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:109,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:113,1
    - Dst: std::unordered_map::insert
      Src: /src/libtorrent/src/mmap_disk_io.cpp:116,1
    - Dst: std::unordered_map::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:116,1
    - Dst: va_start
      Src: /src/libtorrent/src/mmap_disk_io.cpp:119,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:122,1
    - Dst: fputs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:128,1
    - Dst: va_end
      Src: /src/libtorrent/src/mmap_disk_io.cpp:131,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:133,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:133,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:134,1
    - Dst: fputs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 138
    functionName: libtorrent::debug_log
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - fputs
    - time_now
    - va_start
    - std::unordered_map::size
    - std::snprintf
    - libtorrent::total_milliseconds
    - std::unordered_map::insert
    - va_end
    - libtorrent::dht::item_target_id
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void debug_log(char const* fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: libtorrent::file_mode_for_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::open_mode_t
    signature: aux::open_mode_t file_mode_for_job(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - disk_job_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: libtorrent::valid_flags
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_flags(disk_job_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::function<void()>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:196,1
    - Dst: libtorrent::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:247,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/mmap_disk_io.cpp:252,1
    - Dst: libtorrent::thread_fun
      Src: /src/libtorrent/src/mmap_disk_io.cpp:253,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap_disk_io.cpp:258,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/mmap_disk_io.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 379
    functionName: libtorrent::disk_interface
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::function<void()>
    - libtorrent::thread_fun
    - libtorrent::notify_all
    - COMPLETE_ASYNC
    - TORRENT_UNUSED
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT disk_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' owner'
    argTypes:
    - mmap_disk_io
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: libtorrent::job_queue
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void job_queue(mmap_disk_io& owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: libtorrent::notify_all
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::notify_all
    linkageType: ''
    returnType: void
    signature: void notify_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/mmap_disk_io.cpp:252,1
    - Dst: libtorrent::thread_fun
      Src: /src/libtorrent/src/mmap_disk_io.cpp:253,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap_disk_io.cpp:258,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/mmap_disk_io.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' pool'
    - work
    argTypes:
    - aux::disk_io_thread_pool
    - executor_work_guard<io_context::executor_type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: libtorrent::thread_fun
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 4
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - COMPLETE_ASYNC
    - libtorrent::thread_fun
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void thread_fun(aux::disk_io_thread_pool& pool, executor_work_guard<io_context::executor_type>
      work) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<mmap_disk_io>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: "std::unique_ptr<disk_interface> mmap_disk_io_constructor(\n\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<mmap_disk_io>
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT std::unique_ptr<disk_interface> mmap_disk_io_constructor(\n\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:391,1
    - Dst: libtorrent::mmap_disk_io::settings_updated
      Src: /src/libtorrent/src/mmap_disk_io.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 401
    functionName: libtorrent::mmap_disk_io::mmap_disk_io
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - libtorrent::mmap_disk_io::settings_updated
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::mmap_disk_io(io_context& ios, settings_interface
      const& sett, counters& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::mmap_disk_io::get_status
      Src: /src/libtorrent/src/mmap_disk_io.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: libtorrent::mmap_disk_io::get_status
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::mmap_disk_io::get_status
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> mmap_disk_io::get_status(storage_index_t
      const st) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:411,1
    - Dst: files::is_valid
      Src: /src/libtorrent/src/mmap_disk_io.cpp:411,1
    - Dst: new_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:413,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:413,1
    - Dst: std::make_shared<mmap_storage>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:414,1
    - Dst: auto::set_storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:415,1
    - Dst: auto::set_owner
      Src: /src/libtorrent/src/mmap_disk_io.cpp:416,1
    - Dst: end_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:417,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:418,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:419,1
    - Dst: storage_holder
      Src: /src/libtorrent/src/mmap_disk_io.cpp:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' params'
    - ' owner'
    argTypes:
    - storage_params
    - std::shared_ptr<void>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 421
    functionName: libtorrent::mmap_disk_io::new_torrent
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - auto::set_storage_index
    - auto::set_owner
    - std::move
    - files::is_valid
    - storage_holder
    - TORRENT_ASSERT
    - emplace_back
    - std::make_shared<mmap_storage>
    - new_index
    - end_index
    linkageType: ''
    returnType: storage_holder
    signature: "storage_holder mmap_disk_io::new_torrent(storage_params const& params\n\t\t,
      std::shared_ptr<void> const& owner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:425,1
    - Dst: reset
      Src: /src/libtorrent/src/mmap_disk_io.cpp:426,1
    - Dst: add
      Src: /src/libtorrent/src/mmap_disk_io.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: libtorrent::mmap_disk_io::remove_torrent
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - reset
    - add
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::remove_torrent(storage_index_t const idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:438,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:441,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:444,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:444,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:445,1
    - Dst: num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:446,1
    - Dst: num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:446,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:447,1
    - Dst: m_queued_jobs::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:449,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:449,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:449,1
    - Dst: std::printf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:450,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:450,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:452,1
    - Dst: m_queued_jobs::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:454,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:454,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:454,1
    - Dst: std::printf
      Src: /src/libtorrent/src/mmap_disk_io.cpp:455,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:455,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:457,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:457,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:458,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 459
    functionName: mmap_disk_io::~mmap_disk_io()
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - m_queued_jobs::empty
    - num_threads
    - auto::get
    - std::printf
    - DLOG
    - TORRENT_ASSERT
    - auto::next
    - m_queued_jobs::iterate
    - size
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::~mmap_disk_io()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:464,1
    - Dst: libtorrent::mmap_disk_io::submit_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:468,1
    - Dst: exchange
      Src: /src/libtorrent/src/mmap_disk_io.cpp:473,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:474,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:475,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:478,1
    - Dst: m_queued_jobs::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:479,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:479,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:479,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:480,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:481,1
    - Dst: libtorrent::mmap_disk_io::abort_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:487,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:490,1
    - Dst: libtorrent::mmap_disk_io::abort
      Src: /src/libtorrent/src/mmap_disk_io.cpp:494,1
    - Dst: libtorrent::mmap_disk_io::abort
      Src: /src/libtorrent/src/mmap_disk_io.cpp:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - wait
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 496
    functionName: libtorrent::mmap_disk_io::abort
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - auto::get
    - libtorrent::mmap_disk_io::abort_jobs
    - DLOG
    - libtorrent::mmap_disk_io::abort
    - exchange
    - libtorrent::mmap_disk_io::submit_jobs
    - std::unique_lock::unlock
    - m_queued_jobs::iterate
    - auto::next
    - libtorrent::mmap_disk_io::num_threads
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::abort(bool const wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:500,1
    - Dst: set_settings
      Src: /src/libtorrent/src/mmap_disk_io.cpp:501,1
    - Dst: resize
      Src: /src/libtorrent/src/mmap_disk_io.cpp:502,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:502,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:504,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:505,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:506,1
    - Dst: set_max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:508,1
    - Dst: set_max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: libtorrent::mmap_disk_io::settings_updated
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - DLOG
    - TORRENT_ASSERT
    - get_int
    - set_settings
    - resize
    - set_max_threads
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::settings_updated()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:514,1
    - Dst: pop_front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:516,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:517,1
    - Dst: erase
      Src: /src/libtorrent/src/mmap_disk_io.cpp:521,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:521,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' e'
    - ' src'
    - ' dst'
    argTypes:
    - storage_error
    - jobqueue_t
    - jobqueue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 527
    functionName: libtorrent::mmap_disk_io::fail_jobs_impl
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - erase
    - empty
    - TORRENT_ASSERT
    - pop_front
    - aux::mmap_disk_job*::storage::storage_index
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::fail_jobs_impl(storage_error const& e, jobqueue_t&
      src, jobqueue_t& dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:555,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:556,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:562,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:566,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:567,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:573,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:573,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:575,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:582,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:583,1
    - Dst: code
      Src: /src/libtorrent/src/mmap_disk_io.cpp:588,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:605,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:608,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - j
    - ' completed_jobs'
    argTypes:
    - aux::mmap_disk_job*
    - jobqueue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 613
    functionName: libtorrent::mmap_disk_io::perform_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - push_back
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - static_cast<std::size_t>
    - DLOG
    - TORRENT_ASSERT
    - code
    - inc_stats_counter
    - size
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::perform_job(aux::mmap_disk_job* j, jobqueue_t& completed_jobs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:617,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:618,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:620,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:622,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:623,1
    - Dst: aux::mmap_disk_job*::storage::read
      Src: /src/libtorrent/src/mmap_disk_io.cpp:625,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:628,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap_disk_io.cpp:629,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:633,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:633,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:635,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:636,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:637,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 641
    functionName: libtorrent::mmap_disk_io::do_partial_read
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - boost::get<disk_buffer_holder>
    - time_now
    - total_microseconds
    - aux::mmap_disk_job*::storage::read
    - file_mode_for_job
    - TORRENT_ASSERT
    - inc_stats_counter
    - TORRENT_UNUSED
    - data
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_partial_read(aux::mmap_disk_job* j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: disk_buffer_holder
      Src: /src/libtorrent/src/mmap_disk_io.cpp:645,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/mmap_disk_io.cpp:645,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:646,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:654,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:656,1
    - Dst: data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:657,1
    - Dst: aux::mmap_disk_job*::storage::read
      Src: /src/libtorrent/src/mmap_disk_io.cpp:659,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:662,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap_disk_io.cpp:663,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:667,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:667,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:669,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:670,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:671,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 675
    functionName: libtorrent::mmap_disk_io::do_read
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - boost::get<disk_buffer_holder>
    - time_now
    - total_microseconds
    - aux::mmap_disk_job*::storage::read
    - allocate_buffer
    - disk_buffer_holder
    - file_mode_for_job
    - TORRENT_ASSERT
    - inc_stats_counter
    - TORRENT_UNUSED
    - data
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_read(aux::mmap_disk_job* j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:679,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:680,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:680,1
    - Dst: auto::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:682,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:683,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:685,1
    - Dst: aux::mmap_disk_job*::storage::write
      Src: /src/libtorrent/src/mmap_disk_io.cpp:688,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:691,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:695,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:695,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:697,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:698,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:699,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:700,1
    - Dst: aux::mmap_disk_job*::storage::set_need_tick
      Src: /src/libtorrent/src/mmap_disk_io.cpp:705,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:706,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:706,1
    - Dst: minutes
      Src: /src/libtorrent/src/mmap_disk_io.cpp:706,1
    - Dst: erase
      Src: /src/libtorrent/src/mmap_disk_io.cpp:709,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 713
    functionName: libtorrent::mmap_disk_io::do_write
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - boost::get<disk_buffer_holder>
    - time_now
    - aux::mmap_disk_job*::storage::write
    - total_microseconds
    - push_back
    - std::move
    - erase
    - file_mode_for_job
    - inc_stats_counter
    - minutes
    - aux::mmap_disk_job*::storage::storage_index
    - libtorrent::aux::time_now
    - aux::mmap_disk_job*::storage::set_need_tick
    - auto::data
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_write(aux::mmap_disk_job* j)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:719,1
    - Dst: valid_flags
      Src: /src/libtorrent/src/mmap_disk_io.cpp:719,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:720,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:721,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:723,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:723,1
    - Dst: handler
      Src: /src/libtorrent/src/mmap_disk_io.cpp:731,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:743,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:743,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:759,1
    - Dst: get2
      Src: /src/libtorrent/src/mmap_disk_io.cpp:761,1
    - Dst: disk_buffer_holder
      Src: /src/libtorrent/src/mmap_disk_io.cpp:763,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/mmap_disk_io.cpp:763,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_disk_io.cpp:772,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:772,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:772,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_disk_io.cpp:774,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:774,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:774,1
    - Dst: handler
      Src: /src/libtorrent/src/mmap_disk_io.cpp:782,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:782,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:788,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:792,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:793,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:794,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:797,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:798,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:800,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:801,1
    - Dst: get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:810,1
    - Dst: disk_buffer_holder
      Src: /src/libtorrent/src/mmap_disk_io.cpp:812,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/mmap_disk_io.cpp:812,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_disk_io.cpp:820,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:820,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:820,1
    - Dst: handler
      Src: /src/libtorrent/src/mmap_disk_io.cpp:823,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:823,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:828,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:829,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:832,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:834,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:835,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 4
    argNames:
    - storage
    - ' r'
    - handler
    - flags
    argTypes:
    - storage_index_t
    - peer_request
    - std::function<void(disk_buffer_holder, storage_error const&)>
    - disk_job_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 836
    functionName: libtorrent::mmap_disk_io::async_read
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - shared_from_this
    - std::memcpy
    - std::move
    - std::uint16_t
    - files
    - allocate_buffer
    - disk_buffer_holder
    - libtorrent::mmap_disk_io::add_job
    - DLOG
    - TORRENT_ASSERT
    - std::size_t
    - valid_flags
    - handler
    - get
    - get2
    - allocate_job
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_read(storage_index_t storage, peer_request
      const& r\n\t\t, std::function<void(disk_buffer_holder, storage_error const&)>
      handler\n\t\t, disk_job_flags_t const flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/mmap_disk_io.cpp:844,1
    - Dst: aux::throw_ex<std::bad_alloc>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:846,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/mmap_disk_io.cpp:847,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:847,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:847,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:849,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:850,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:851,1
    - Dst: files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:851,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:853,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:854,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/mmap_disk_io.cpp:857,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:858,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:859,1
    - Dst: insert
      Src: /src/libtorrent/src/mmap_disk_io.cpp:862,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:862,1
    - Dst: boost::get<disk_buffer_holder>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:863,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 6
    argNames:
    - storage
    - ' r'
    - buf
    - o
    - handler
    - flags
    argTypes:
    - storage_index_t
    - peer_request
    - char*
    - std::shared_ptr<disk_observer>
    - std::function<void(storage_error const&)>
    - disk_job_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 866
    functionName: libtorrent::mmap_disk_io::async_write
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - boost::get<disk_buffer_holder>
    - shared_from_this
    - std::memcpy
    - std::move
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - allocate_buffer
    - files
    - insert
    - libtorrent::mmap_disk_io::add_job
    - TORRENT_ASSERT
    - aux::throw_ex<std::bad_alloc>
    - aux::mmap_disk_job*::storage::storage_index
    - allocate_job
    - disk_buffer_holder::data
    linkageType: ''
    returnType: bool
    signature: "bool mmap_disk_io::async_write(storage_index_t const storage, peer_request
      const& r\n\t\t, char const* buf, std::shared_ptr<disk_observer> o\n\t\t, std::function<void(storage_error
      const&)> handler\n\t\t, disk_job_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:872,1
    - Dst: valid_flags
      Src: /src/libtorrent/src/mmap_disk_io.cpp:872,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:873,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:874,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:877,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - storage
    - piece
    - v2
    - flags
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - span<sha256_hash>
    - disk_job_flags_t
    - std::function<void(piece_index_t, sha1_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 880
    functionName: libtorrent::mmap_disk_io::async_hash
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - libtorrent::mmap_disk_io::add_job
    - TORRENT_ASSERT
    - valid_flags
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_hash(storage_index_t const storage\n\t\t,
      piece_index_t const piece, span<sha256_hash> const v2, disk_job_flags_t const
      flags\n\t\t, std::function<void(piece_index_t, sha1_hash const&, storage_error
      const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:886,1
    - Dst: valid_flags
      Src: /src/libtorrent/src/mmap_disk_io.cpp:886,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:887,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:888,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:891,1
    - Dst: libtorrent::mmap_disk_io::add_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - storage
    - piece
    - offset
    - flags
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - int
    - disk_job_flags_t
    - std::function<void(piece_index_t, sha256_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 882
    functionDepth: 3
    functionLinenumber: 882
    functionLinenumberEnd: 894
    functionName: libtorrent::mmap_disk_io::async_hash2
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - libtorrent::mmap_disk_io::add_job
    - TORRENT_ASSERT
    - valid_flags
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_hash2(storage_index_t const storage\n\t\t,
      piece_index_t const piece, int const offset, disk_job_flags_t const flags\n\t\t,
      std::function<void(piece_index_t, sha256_hash const&, storage_error const&)>
      handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:900,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:901,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:902,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:903,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - storage
    - p
    - flags
    - handler
    argTypes:
    - storage_index_t
    - std::string
    - move_flags_t
    - std::function<void(status_t, std::string const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 907
    functionName: libtorrent::mmap_disk_io::async_move_storage
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_move_storage(storage_index_t const storage\n\t\t,
      std::string p, move_flags_t const flags\n\t\t, std::function<void(status_t,
      std::string const&, storage_error const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:912,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:913,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:914,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - storage
    - handler
    argTypes:
    - storage_index_t
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 917
    functionName: libtorrent::mmap_disk_io::async_release_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_release_files(storage_index_t const storage\n\t\t,
      std::function<void()> handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:924,1
    - Dst: m_queued_jobs::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:926,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:926,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:926,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:928,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - storage
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 937
    functionName: libtorrent::mmap_disk_io::abort_hash_jobs
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - auto::get
    - shared_from_this
    - m_queued_jobs::iterate
    - auto::next
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::abort_hash_jobs(storage_index_t const storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::mmap_disk_io::abort_hash_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:943,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:944,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:945,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:946,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - storage
    - options
    - handler
    argTypes:
    - storage_index_t
    - remove_flags_t
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 949
    functionName: libtorrent::mmap_disk_io::async_delete_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - libtorrent::mmap_disk_io::abort_hash_jobs
    - libtorrent::mmap_disk_io::add_fence_job
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_delete_files(storage_index_t const storage\n\t\t,
      remove_flags_t const options\n\t\t, std::function<void(storage_error const&)>
      handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:956,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:957,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:959,1
    - Dst: aux::vector<std::string, file_index_t>::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:962,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:962,1
    - Dst: aux::vector<std::string, file_index_t>::string, file_index_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:962,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - storage
    - resume_data
    - links
    - handler
    argTypes:
    - storage_index_t
    - add_torrent_params*
    - aux::vector<std::string, file_index_t>
    - std::function<void(status_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 951
    functionDepth: 3
    functionLinenumber: 951
    functionLinenumberEnd: 966
    functionName: libtorrent::mmap_disk_io::async_check_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - aux::vector<std::string, file_index_t>::string, file_index_t>
    - libtorrent::mmap_disk_io::add_fence_job
    - aux::vector<std::string, file_index_t>::empty
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_check_files(storage_index_t const storage\n\t\t,
      add_torrent_params const* resume_data\n\t\t, aux::vector<std::string, file_index_t>
      links\n\t\t, std::function<void(status_t, storage_error const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:972,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:973,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:975,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:976,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - storage
    - index
    - name
    - handler
    argTypes:
    - storage_index_t
    - file_index_t
    - std::string
    - std::function<void(std::string const&, file_index_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 978
    functionName: libtorrent::mmap_disk_io::async_rename_file
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_rename_file(storage_index_t const storage\n\t\t,
      file_index_t const index, std::string name\n\t\t, std::function<void(std::string
      const&, file_index_t, storage_error const&)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:983,1
    - Dst: libtorrent::mmap_disk_io::abort_hash_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:984,1
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:986,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:988,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - storage
    - handler
    argTypes:
    - storage_index_t
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 980
    functionDepth: 3
    functionLinenumber: 980
    functionLinenumberEnd: 990
    functionName: libtorrent::mmap_disk_io::async_stop_torrent
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::move
    - libtorrent::mmap_disk_io::abort_hash_jobs
    - libtorrent::mmap_disk_io::add_fence_job
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_stop_torrent(storage_index_t const storage\n\t\t,
      std::function<void()> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:997,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:998,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:999,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1000,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - storage
    - prios
    - handler
    argTypes:
    - storage_index_t
    - aux::vector<download_priority_t, file_index_t>
    - "std::function<void(storage_error const&\n\t\t\t, aux::vector<download_priority_t,
      file_index_t>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 1003
    functionName: libtorrent::mmap_disk_io::async_set_file_priority
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_set_file_priority(storage_index_t const storage\n\t\t,
      aux::vector<download_priority_t, file_index_t> prios\n\t\t, std::function<void(storage_error
      const&\n\t\t\t, aux::vector<download_priority_t, file_index_t>)> handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocate_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1008,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1009,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1011,1
    - Dst: libtorrent::mmap_disk_io::add_fence_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - storage
    - index
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1005
    functionDepth: 3
    functionLinenumber: 1005
    functionLinenumberEnd: 1026
    functionName: libtorrent::mmap_disk_io::async_clear_piece
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - libtorrent::mmap_disk_io::add_fence_job
    - std::move
    - allocate_job
    linkageType: ''
    returnType: void
    signature: "void mmap_disk_io::async_clear_piece(storage_index_t const storage\n\t\t,
      piece_index_t const index, std::function<void(piece_index_t)> handler)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1032,1
    - Dst: aux::mmap_disk_job*::d::h::block_hashes::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1035,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1037,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1038,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1040,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1041,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1043,1
    - Dst: aux::mmap_disk_job*::d::h::block_hashes::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1043,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1044,1
    - Dst: std::max
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1049,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1050,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1055,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1057,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1058,1
    - Dst: get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1062,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1062,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1067,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1072,1
    - Dst: aux::mmap_disk_job*::error::ec::clear
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1082,1
    - Dst: aux::mmap_disk_job*::storage::hash
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1083,1
    - Dst: aux::mmap_disk_job*::error::ec::clear
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1089,1
    - Dst: aux::mmap_disk_job*::storage::hash2
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1090,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1097,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1098,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1099,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1104,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1113,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1113,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1114,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1115,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1119,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1121
    functionName: libtorrent::mmap_disk_io::do_hash
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - aux::mmap_disk_job*::storage::hash
    - hasher256::final
    - std::min
    - aux::mmap_disk_job*::storage::files
    - std::max
    - hasher256::update
    - hasher::final
    - aux::mmap_disk_job*::error::ec::clear
    - inc_stats_counter
    - aux::mmap_disk_job*::storage::storage_index
    - time_now
    - aux::mmap_disk_job*::d::h::block_hashes::size
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::hash2
    - total_microseconds
    - file_mode_for_job
    - aux::mmap_disk_job*::d::h::block_hashes::empty
    - DLOG
    - hasher::update
    - get
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_hash(aux::mmap_disk_job* j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1125,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1127,1
    - Dst: file_mode_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1128,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1133,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1135,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1137,1
    - Dst: std::min
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1138,1
    - Dst: get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1140,1
    - Dst: aux::mmap_disk_job*::storage::storage_index
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1140,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1143,1
    - Dst: aux::mmap_disk_job*::storage::hash2
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1147,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1152,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1153,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1154,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1160,1
    - Dst: time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1160,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1162,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1163,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1123
    functionDepth: 2
    functionLinenumber: 1123
    functionLinenumberEnd: 1168
    functionName: libtorrent::mmap_disk_io::do_hash2
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - total_microseconds
    - file_mode_for_job
    - hasher256::final
    - DLOG
    - TORRENT_ASSERT
    - std::min
    - aux::mmap_disk_job*::storage::files
    - inc_stats_counter
    - hasher256::update
    - get
    - aux::mmap_disk_job*::storage::hash2
    - aux::mmap_disk_job*::storage::storage_index
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_hash2(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1173,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1173,1
    - Dst: std::tie
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1178,1
    - Dst: aux::mmap_disk_job*::storage::move_storage
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1178,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1178,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1183
    functionName: libtorrent::mmap_disk_io::do_move_storage
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - aux::mmap_disk_job*::storage::move_storage
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - std::tie
    - TORRENT_ASSERT
    - boost::get<std::string>
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_move_storage(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1188,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1188,1
    - Dst: aux::mmap_disk_job*::storage::release_files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1191
    functionName: libtorrent::mmap_disk_io::do_release_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - aux::mmap_disk_job*::storage::release_files
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_release_files(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1195,1
    - Dst: boost::get<remove_flags_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1198,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1198,1
    - Dst: aux::mmap_disk_job*::storage::delete_files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1199,1
    - Dst: boost::get<remove_flags_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1201
    functionName: libtorrent::mmap_disk_io::do_delete_files
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::delete_files
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - boost::get<remove_flags_t>
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_delete_files(aux::mmap_disk_job* j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1206,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1206,1
    - Dst: boost::get<add_torrent_params const*>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1222,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1222,1
    - Dst: aux::mmap_disk_job*::storage::initialize
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1225,1
    - Dst: aux::mmap_disk_job*::storage::verify_resume_data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1230,1
    - Dst: aux::vector<std::string, file_index_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1231,1
    - Dst: get_bool
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1237,1
    - Dst: libtorrent::aux::contains_resume_data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1240,1
    - Dst: aux::mmap_disk_job*::storage::has_any_file
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1255
    functionName: libtorrent::mmap_disk_io::do_check_fastresume
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - aux::mmap_disk_job*::storage::initialize
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - libtorrent::aux::contains_resume_data
    - boost::get<add_torrent_params const*>
    - aux::mmap_disk_job*::storage::has_any_file
    - aux::mmap_disk_job*::storage::verify_resume_data
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::files
    - aux::vector<std::string, file_index_t>
    - get_bool
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_check_fastresume(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1260,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1260,1
    - Dst: aux::mmap_disk_job*::storage::rename_file
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1263,1
    - Dst: boost::get<std::string>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1266
    functionName: libtorrent::mmap_disk_io::do_rename_file
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - boost::get<std::string>
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - aux::mmap_disk_job*::storage::rename_file
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_rename_file(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1271,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1271,1
    - Dst: aux::mmap_disk_job*::storage::release_files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1268
    functionDepth: 2
    functionLinenumber: 1268
    functionLinenumberEnd: 1274
    functionName: libtorrent::mmap_disk_io::do_stop_torrent
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - aux::mmap_disk_job*::storage::release_files
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_stop_torrent(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1282,1
    - Dst: read_jobs_in_use
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1282,1
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1283,1
    - Dst: write_jobs_in_use
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1283,1
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1284,1
    - Dst: jobs_in_use
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1284,1
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1285,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1285,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1286,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1288,1
    - Dst: set_value
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1291,1
    - Dst: in_use
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1292
    functionName: libtorrent::mmap_disk_io::update_stats_counters
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - read_jobs_in_use
    - jobs_in_use
    - write_jobs_in_use
    - set_value
    - in_use
    - m_queued_jobs::size
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::update_stats_counters(counters& c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::mmap_disk_job*::storage::set_file_priority
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1296,1
    - Dst: boost::get<aux::vector<download_priority_t, file_index_t>>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1300
    functionName: libtorrent::mmap_disk_io::do_file_priority
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - aux::mmap_disk_job*::storage::set_file_priority
    - boost::get<aux::vector<download_priority_t, file_index_t>>
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_file_priority(aux::mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1310
    functionName: libtorrent::mmap_disk_io::do_clear_piece
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: status_t
    signature: status_t mmap_disk_io::do_clear_piece(aux::mmap_disk_job*)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: storage_error
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1315,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1318,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1322,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1326,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1326,1
    - Dst: post
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1328,1
    - Dst: libtorrent::mmap_disk_io::call_job_handlers
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1312
    functionDepth: 2
    functionLinenumber: 1312
    functionLinenumberEnd: 1331
    functionName: libtorrent::mmap_disk_io::job_fail_add
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - post
    - libtorrent::mmap_disk_io::call_job_handlers
    - DLOG
    - TORRENT_ASSERT
    - storage_error
    - size
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::job_fail_add(aux::mmap_disk_job* j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::mmap_disk_io::job_fail_add
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1340,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1344,1
    - Dst: job_name
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1345,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1346,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1348,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1349,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1349,1
    - Dst: aux::mmap_disk_job*::storage::raise_fence
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1351,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1355,1
    - Dst: m_queued_jobs::push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1356,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1357,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1359,1
    - Dst: libtorrent::mmap_disk_io::immediate_execute
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1360,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1365,1
    - Dst: libtorrent::mmap_disk_io::immediate_execute
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - j
    - user_add
    argTypes:
    - aux::mmap_disk_job*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1367
    functionName: libtorrent::mmap_disk_io::add_fence_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 16
    functionsReached:
    - static_cast<int>
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - m_queued_jobs::push_back
    - libtorrent::mmap_disk_io::immediate_execute
    - aux::mmap_disk_job*::storage::raise_fence
    - libtorrent::mmap_disk_io::job_fail_add
    - DLOG
    - TORRENT_ASSERT
    - job_name
    - inc_stats_counter
    - libtorrent::mmap_disk_io::num_threads
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::add_fence_job(aux::mmap_disk_job* j, bool const
      user_add)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1371,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1373,1
    - Dst: aux::mmap_disk_job*::storage::files
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1373,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1374,1
    - Dst: libtorrent::mmap_disk_io::job_fail_add
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1384,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1386,1
    - Dst: job_name
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1387,1
    - Dst: aux::mmap_disk_job*::storage::num_outstanding_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1388,1
    - Dst: aux::mmap_disk_job*::storage::is_blocked
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1395,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1397,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1398,1
    - Dst: job_name
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1399,1
    - Dst: aux::mmap_disk_job*::storage::num_blocked
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1399,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1406,1
    - Dst: queue_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1408,1
    - Dst: m_queued_jobs::push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1409,1
    - Dst: pool_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1414,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1416,1
    - Dst: libtorrent::mmap_disk_io::immediate_execute
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1417,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - j
    - user_add
    argTypes:
    - aux::mmap_disk_job*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1419
    functionName: libtorrent::mmap_disk_io::add_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 8
    functionsReached:
    - aux::mmap_disk_job*::storage::num_outstanding_jobs
    - m_queued_jobs::push_back
    - libtorrent::mmap_disk_io::immediate_execute
    - aux::mmap_disk_job*::storage::num_blocked
    - queue_for_job
    - libtorrent::mmap_disk_io::job_fail_add
    - DLOG
    - TORRENT_ASSERT
    - job_name
    - aux::mmap_disk_job*::storage::is_blocked
    - aux::mmap_disk_job*::storage::files
    - inc_stats_counter
    - pool_for_job
    - std::unique_lock::unlock
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::add_job(aux::mmap_disk_job* j, bool const user_add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1423,1
    - Dst: m_queued_jobs::pop_front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1425,1
    - Dst: libtorrent::mmap_disk_io::execute_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1421
    functionDepth: 3
    functionLinenumber: 1421
    functionLinenumberEnd: 1428
    functionName: libtorrent::mmap_disk_io::immediate_execute
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 4
    functionsReached:
    - m_queued_jobs::pop_front
    - libtorrent::mmap_disk_io::execute_job
    - m_queued_jobs::empty
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::immediate_execute()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1433,1
    - Dst: m_job_cond::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1435,1
    - Dst: job_queued
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1436,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1436,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1438,1
    - Dst: m_job_cond::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1440,1
    - Dst: job_queued
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1441,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1430
    functionDepth: 2
    functionLinenumber: 1430
    functionLinenumberEnd: 1443
    functionName: libtorrent::mmap_disk_io::submit_jobs
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - m_job_cond::notify_all
    - job_queued
    - m_queued_jobs::size
    - m_queued_jobs::empty
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::submit_jobs()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: storage_error
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1451,1
    - Dst: jobqueue_t::push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1452,1
    - Dst: libtorrent::mmap_disk_io::add_completed_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1453,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1453,1
    - Dst: libtorrent::mmap_disk_io::perform_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1457,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1458,1
    - Dst: libtorrent::mmap_disk_io::add_completed_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1459,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1460
    functionName: libtorrent::mmap_disk_io::execute_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::mmap_disk_io::perform_job
    - std::move
    - storage_error
    - jobqueue_t::push_back
    - libtorrent::mmap_disk_io::add_completed_jobs
    - jobqueue_t::empty
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::execute_job(aux::mmap_disk_job* j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1465,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1465,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1472,1
    - Dst: thread_idle
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1474,1
    - Dst: should_exit
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1482,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1483,1
    - Dst: libtorrent::mmap_disk_io::num_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1484,1
    - Dst: try_thread_exit
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1486,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1486,1
    - Dst: thread_active
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1489,1
    - Dst: m_job_cond::wait_for
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1494,1
    - Dst: m_queued_jobs::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1495,1
    - Dst: thread_active
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ' jobq'
    - ' threads'
    - ' l'
    argTypes:
    - job_queue
    - aux::disk_io_thread_pool
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1501
    functionName: libtorrent::mmap_disk_io::wait_for_job
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 1
    functionsReached:
    - owns_lock
    - m_queued_jobs::empty
    - thread_idle
    - thread_active
    - try_thread_exit
    - m_job_cond::wait_for
    - TORRENT_ASSERT
    - libtorrent::mmap_disk_io::num_threads
    - libtorrent::dht::item_target_id
    - should_exit
    linkageType: ''
    returnType: bool
    signature: "bool mmap_disk_io::wait_for_job(job_queue& jobq, aux::disk_io_thread_pool&
      threads\n\t\t, std::unique_lock<std::mutex>& l)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1505,1
    - Dst: set_thread_name
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1507,1
    - Dst: aux::get_library_procedure<aux::kernel32, SetThreadInformation_t>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1512,1
    - Dst: SetThreadInformation
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1522,1
    - Dst: GetCurrentThread
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1522,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1527,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1532,1
    - Dst: min_time
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1536,1
    - Dst: min_time
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1539,1
    - Dst: libtorrent::mmap_disk_io::wait_for_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1545,1
    - Dst: m_queued_jobs::pop_front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1547,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1548,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1550,1
    - Dst: first_thread_id
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1552,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1554,1
    - Dst: empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1557,1
    - Dst: front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1557,1
    - Dst: front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1559,1
    - Dst: lock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1559,1
    - Dst: erase
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1560,1
    - Dst: begin
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1560,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1563,1
    - Dst: std::shared_ptr::tick
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1564,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1565,1
    - Dst: get_int
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1572,1
    - Dst: seconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1573,1
    - Dst: minutes
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1576,1
    - Dst: close_oldest
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1581,1
    - Dst: flush_next_file
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1590,1
    - Dst: seconds
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1591,1
    - Dst: libtorrent::mmap_disk_io::execute_job
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1596,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1598,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1609,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1611,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1612,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1620,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1622,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1624,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1625,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1637,1
    - Dst: libtorrent::mmap_disk_io::abort_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1639,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1641,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1642,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - ' queue'
    - ' pool'
    argTypes:
    - job_queue
    - aux::disk_io_thread_pool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1503
    functionDepth: 3
    functionLinenumber: 1503
    functionLinenumberEnd: 1643
    functionName: libtorrent::mmap_disk_io::thread_fun
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - first_thread_id
    - set_thread_name
    - begin
    - empty
    - seconds
    - min_time
    - minutes
    - libtorrent::aux::time_now
    - libtorrent::mmap_disk_io::execute_job
    - libtorrent::mmap_disk_io::abort_jobs
    - front
    - get_int
    - inc_stats_counter
    - m_queued_jobs::pop_front
    - libtorrent::mmap_disk_io::wait_for_job
    - erase
    - TORRENT_ASSERT
    - lock
    - std::unique_lock::unlock
    - close_oldest
    - SetThreadInformation
    - DLOG
    - flush_next_file
    - GetCurrentThread
    - std::shared_ptr::tick
    - aux::get_library_procedure<aux::kernel32, SetThreadInformation_t>
    - m_queued_jobs::size
    - libtorrent::dht::item_target_id
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::thread_fun(job_queue& queue, aux::disk_io_thread_pool&
      pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1647,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1649,1
    - Dst: test_and_set
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1650,1
    - Dst: release
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1657,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1659
    functionName: libtorrent::mmap_disk_io::abort_jobs
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - release
    - test_and_set
    - DLOG
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::abort_jobs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1663,1
    - Dst: max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1664
    functionName: libtorrent::mmap_disk_io::num_threads
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 6
    functionsReached:
    - max_threads
    linkageType: ''
    returnType: int
    signature: int mmap_disk_io::num_threads() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1666
    functionDepth: 0
    functionLinenumber: 1666
    functionLinenumberEnd: 1674
    functionName: '& mmap_disk_io::queue_for_job(aux::mmap_disk_job* j)'
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - max_threads
    linkageType: ''
    returnType: mmap_disk_io::job_queue
    signature: mmap_disk_io::job_queue & mmap_disk_io::queue_for_job(aux::mmap_disk_job*
      j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max_threads
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - aux::mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1676
    functionDepth: 0
    functionLinenumber: 1676
    functionLinenumberEnd: 1683
    functionName: '& mmap_disk_io::pool_for_job(aux::mmap_disk_job* j)'
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 0
    functionsReached:
    - max_threads
    linkageType: ''
    returnType: aux::disk_io_thread_pool
    signature: aux::disk_io_thread_pool & mmap_disk_io::pool_for_job(aux::mmap_disk_job*
      j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1687,1
    - Dst: libtorrent::mmap_disk_io::add_completed_jobs_impl
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1694,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1694,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1695,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1695,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1696,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - jobs
    argTypes:
    - jobqueue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1685
    functionDepth: 3
    functionLinenumber: 1685
    functionLinenumberEnd: 1698
    functionName: libtorrent::mmap_disk_io::add_completed_jobs
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::mmap_disk_io::add_completed_jobs_impl
    - std::move
    - jobqueue_t::empty
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::add_completed_jobs(jobqueue_t jobs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: jobqueue_t::iterate
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1704,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1704,1
    - Dst: auto::next
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1704,1
    - Dst: auto::get
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1706,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1707,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1711,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1712,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1715,1
    - Dst: aux::mmap_disk_job*::storage::job_complete
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1717,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1719,1
    - Dst: jobqueue_t::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1719,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1720,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1722,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1729,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1733,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1734,1
    - Dst: load
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1736,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1738,1
    - Dst: jobqueue_t::pop_front
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1740,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1741,1
    - Dst: storage_error
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1743,1
    - Dst: push_back
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1744,1
    - Dst: jobqueue_t::empty
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1749,1
    - Dst: m_queued_jobs::append
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1753,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1753,1
    - Dst: m_job_cond::notify_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1758,1
    - Dst: job_queued
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1759,1
    - Dst: m_queued_jobs::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1759,1
    - Dst: append
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1765,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1765,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1769,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1769,1
    - Dst: post
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1771,1
    - Dst: libtorrent::mmap_disk_io::call_job_handlers
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1771,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - jobs
    - ' completed'
    argTypes:
    - jobqueue_t
    - jobqueue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1700
    functionDepth: 2
    functionLinenumber: 1700
    functionLinenumberEnd: 1774
    functionName: libtorrent::mmap_disk_io::add_completed_jobs_impl
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::move
    - append
    - auto::get
    - jobqueue_t::empty
    - push_back
    - libtorrent::mmap_disk_io::call_job_handlers
    - jobqueue_t::iterate
    - m_job_cond::notify_all
    - inc_stats_counter
    - aux::mmap_disk_job*::storage::job_complete
    - TORRENT_ASSERT
    - m_queued_jobs::append
    - jobqueue_t::size
    - auto::next
    - size
    - jobqueue_t::pop_front
    - post
    - DLOG
    - storage_error
    - job_queued
    - m_queued_jobs::size
    - load
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::add_completed_jobs_impl(jobqueue_t jobs, jobqueue_t&
      completed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1779,1
    - Dst: DLOG
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1782,1
    - Dst: size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1782,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1784,1
    - Dst: get_all
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1787,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1788,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1795,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1796,1
    - Dst: aux::mmap_disk_job*::call_callback
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1803,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1806,1
    - Dst: free_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1809,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1809,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1809,1
    - Dst: free_jobs
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1813,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/mmap_disk_io.cpp:1813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1814
    functionName: libtorrent::mmap_disk_io::call_job_handlers
    functionSourceFile: /src/libtorrent/src/mmap_disk_io.cpp
    functionUses: 4
    functionsReached:
    - aux::array::data
    - aux::mmap_disk_job*::call_callback
    - DLOG
    - TORRENT_ASSERT
    - get_all
    - inc_stats_counter
    - aux::array::size
    - std::unique_lock::unlock
    - free_jobs
    - size
    linkageType: ''
    returnType: void
    signature: void mmap_disk_io::call_job_handlers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::utp_logger
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_logger()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/libtorrent/src/utp_stream.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ~utp_logger()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void ~utp_logger()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/utp_stream.cpp:89,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: va_start
      Src: /src/libtorrent/src/utp_stream.cpp:92,1
    - Dst: vfprintf
      Src: /src/libtorrent/src/utp_stream.cpp:93,1
    - Dst: va_end
      Src: /src/libtorrent/src/utp_stream.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::utp_log
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - total_microseconds
    - va_start
    - std::fprintf
    - va_end
    - vfprintf
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void utp_log(char const* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::is_utp_stream_logging
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_utp_stream_logging()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/utp_stream.cpp:106,1
    - Dst: fclose
      Src: /src/libtorrent/src/utp_stream.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::set_utp_stream_logging
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 9
    functionsReached:
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void set_utp_stream_logging(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: UTP_LOG
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTP_LOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: UTP_LOGV
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTP_LOGV(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - mask
    argTypes:
    - std::uint32_t
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::compare_less_wrap
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_less_wrap(std::uint32_t lhs\n\t, std::uint32_t rhs, std::uint32_t
      mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: connect_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:183,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:186,1
    - Dst: fill
      Src: /src/libtorrent/src/utp_stream.cpp:187,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - recv_id
    - send_id
    - userdata
    - ' sm'
    argTypes:
    - std::uint16_t
    - std::uint16_t
    - utp_stream*
    - utp_socket_manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 188
    functionName: libtorrent::aux::utp_socket_impl::utp_socket_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - libtorrent::aux::max
    - connect_timeout
    - TORRENT_ASSERT
    - fill
    - milliseconds
    - inc_stats_counter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::utp_socket_impl(std::uint16_t const recv_id\n\t,
      std::uint16_t const send_id\n\t, utp_stream* userdata, utp_socket_manager& sm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:192,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:195,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/utp_stream.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: libtorrent::aux::utp_socket_impl::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - state
    - address_v4::any
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint utp_socket_impl::remote_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allocate
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: libtorrent::aux::utp_socket_impl::acquire_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_socket_impl::acquire_packet
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr utp_socket_impl::acquire_packet(int const allocate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::aux::utp_socket_impl::release_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_socket_impl::release_packet
    - std::move
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::release_packet(packet_ptr p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:215,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:215,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:218,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:218,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:221,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:221,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:226,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:226,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:229,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: libtorrent::aux::utp_socket_impl::insert_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - packet_ptr::get
    - begin
    - erase
    - insert
    - reinterpret_cast<utp_header*>
    - std::find
    - end
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::release_packet
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::insert_packet(packet_ptr p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:236,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: libtorrent::aux::utp_socket_impl::abort
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - libtorrent::aux::utp_socket_impl::set_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:243,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' ep'
    - id
    argTypes:
    - udp::endpoint
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: libtorrent::aux::utp_socket_impl::match
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::match(udp::endpoint const& ep, std::uint16_t
      const id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: libtorrent::aux::utp_socket_impl::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint utp_socket_impl::remote_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:254,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::utp_socket_impl::send_deferred_ack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::send_pkt
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_deferred_ack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:268,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: libtorrent::aux::utp_socket_impl::socket_drained
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::socket_drained()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:289,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:289,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:294,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:296,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 302
    functionName: libtorrent::aux::utp_socket_impl::update_mtu_limits
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::update_mtu_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::send_delay
      Src: /src/libtorrent/src/utp_stream.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: libtorrent::aux::utp_stream::send_delay
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::send_delay
    linkageType: ''
    returnType: int
    signature: int utp_stream::send_delay() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::recv_delay
      Src: /src/libtorrent/src/utp_stream.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: libtorrent::aux::utp_stream::recv_delay
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::recv_delay
    linkageType: ''
    returnType: int
    signature: int utp_stream::recv_delay() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: libtorrent::aux::utp_stream::utp_stream
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::utp_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: libtorrent::aux::utp_stream::get_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: utp_socket_impl
    signature: utp_socket_impl * utp_stream::get_impl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::set_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: libtorrent::aux::utp_stream::set_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::set_close_reason
    linkageType: ''
    returnType: void
    signature: void utp_stream::set_close_reason(close_reason_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: libtorrent::aux::utp_stream::get_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t utp_stream::get_close_reason() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::close
      Src: /src/libtorrent/src/utp_stream.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::utp_stream::close
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::close
    linkageType: ''
    returnType: void
    signature: void utp_stream::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::available
      Src: /src/libtorrent/src/utp_stream.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: libtorrent::aux::utp_stream::available
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::available
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::remote_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: libtorrent::aux::utp_stream::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::remote_endpoint
    linkageType: ''
    returnType: utp_stream::endpoint_type
    signature: utp_stream::endpoint_type utp_stream::remote_endpoint(error_code& ec)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_sock::lock
      Src: /src/libtorrent/src/utp_stream.cpp:366,1
    - Dst: auto::get_local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:373,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/utp_stream.cpp:374,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/src/utp_stream.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::utp_stream::local_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - udp::endpoint::port
    - udp::endpoint::address
    - m_sock::lock
    - auto::get_local_endpoint
    linkageType: ''
    returnType: utp_stream::endpoint_type
    signature: utp_stream::endpoint_type utp_stream::local_endpoint(error_code& ec)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_userdata
      Src: /src/libtorrent/src/utp_stream.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - utp_stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: libtorrent::aux::utp_stream::utp_stream
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - set_userdata
    linkageType: ''
    returnType: void
    signature: void utp_stream::utp_stream(utp_stream&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:392,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:392,1
    - Dst: destroy
      Src: /src/libtorrent/src/utp_stream.cpp:393,1
    - Dst: detach
      Src: /src/libtorrent/src/utp_stream.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: utp_stream::~utp_stream()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - destroy
    - UTP_LOGV
    - static_cast<void*>
    - detach
    linkageType: ''
    returnType: void
    signature: void utp_stream::~utp_stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - impl
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: libtorrent::aux::utp_stream::set_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_stream::set_impl(utp_socket_impl* impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:409,1
    - Dst: receive_buffer_size
      Src: /src/libtorrent/src/utp_stream.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::utp_stream::read_buffer_size
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - receive_buffer_size
    linkageType: ''
    returnType: int
    signature: int utp_stream::read_buffer_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - reason
    argTypes:
    - utp_stream*
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: libtorrent::aux::utp_stream::on_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_close_reason(utp_stream* s, close_reason_t reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:424,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:424,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:427,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:428,1
    - Dst: utp_stream*::m_impl::null_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:428,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:433,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - s
    - bytes_transferred
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - std::size_t
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: libtorrent::aux::utp_stream::on_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - utp_stream*::m_impl::null_buffers
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_stream::on_read(utp_stream* s, std::size_t const bytes_transferred\n\t,
      error_code const& ec, bool const shutdown)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:442,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:443,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:446,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:452,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - s
    - bytes_transferred
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - std::size_t
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: libtorrent::aux::utp_stream::on_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_stream::on_write(utp_stream* s, std::size_t const bytes_transferred\n\t,
      error_code const& ec, bool const shutdown)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:460,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:461,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:462,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:464,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - ' ec'
    argTypes:
    - utp_stream*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: libtorrent::aux::utp_stream::on_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - post
    - message
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_writeable(utp_stream* s, error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:471,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:473,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:474,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:476,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:481,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 485
    functionName: libtorrent::aux::utp_stream::on_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_connect(utp_stream* s, error_code const& ec, bool
      const shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:492,1
    - Dst: libtorrent::aux::utp_stream::add_read_buffer
      Src: /src/libtorrent/src/utp_stream.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 494
    functionName: libtorrent::aux::utp_stream::add_read_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::add_read_buffer
    linkageType: ''
    returnType: void
    signature: void utp_stream::add_read_buffer(void* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:501,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:503,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:504,1
    - Dst: libtorrent::aux::utp_stream::add_write_buffer
      Src: /src/libtorrent/src/utp_stream.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: libtorrent::aux::utp_stream::add_write_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::add_write_buffer
    linkageType: ''
    returnType: void
    signature: void utp_stream::add_write_buffer(void const* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:510,1
    - Dst: libtorrent::aux::utp_stream::check_fin_sent
      Src: /src/libtorrent/src/utp_stream.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: libtorrent::aux::utp_stream::check_fin_sent
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::check_fin_sent
    linkageType: ''
    returnType: bool
    signature: bool utp_stream::check_fin_sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::issue_read
      Src: /src/libtorrent/src/utp_stream.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: libtorrent::aux::utp_stream::issue_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::issue_read
    linkageType: ''
    returnType: void
    signature: void utp_stream::issue_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::read_some
      Src: /src/libtorrent/src/utp_stream.cpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clear_buffers
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: libtorrent::aux::utp_stream::read_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::read_some(bool const clear_buffers, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::write_some
      Src: /src/libtorrent/src/utp_stream.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clear_buffers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: libtorrent::aux::utp_stream::write_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::write_some(bool const clear_buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::issue_write
      Src: /src/libtorrent/src/utp_stream.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: libtorrent::aux::utp_stream::issue_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::issue_write
    linkageType: ''
    returnType: void
    signature: void utp_stream::issue_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::subscribe_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: libtorrent::aux::utp_stream::subscribe_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::subscribe_writeable
    linkageType: ''
    returnType: void
    signature: void utp_stream::subscribe_writeable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::do_connect
      Src: /src/libtorrent/src/utp_stream.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: libtorrent::aux::utp_stream::do_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::do_connect
    linkageType: ''
    returnType: void
    signature: void utp_stream::do_connect(tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:557,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:557,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:559,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/utp_stream.cpp:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 561
    functionName: libtorrent::aux::utp_socket_impl::add_read_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - UTP_LOGV
    - reinterpret_cast<char*>
    - static_cast<void*>
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::add_read_buffer(void* buf, int const len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:565,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:566,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/src/utp_stream.cpp:566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:574,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:576,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:579,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:587,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 591
    functionName: libtorrent::aux::utp_socket_impl::add_write_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - emplace_back
    - reinterpret_cast<char const*>
    - UTP_LOGV
    - static_cast<void const*>
    - size
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::add_write_buffer(void const* buf, int const len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:595,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:596,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:601,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:603,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:604,1
    - Dst: libtorrent::aux::utp_socket_impl::read_some
      Src: /src/libtorrent/src/utp_stream.cpp:611,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 613
    functionName: libtorrent::aux::utp_socket_impl::issue_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    - libtorrent::aux::utp_socket_impl::read_some
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::issue_read()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:617,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:618,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:624,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:627,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:636,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:641,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:642,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:644,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:646,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:648,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:648,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:653,1
    - Dst: auto::get
      Src: /src/libtorrent/src/utp_stream.cpp:656,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:660,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:660,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:661,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:662,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:663,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:663,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:664,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: auto::data
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:667,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:667,1
    - Dst: auto::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:668,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:670,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:672,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:674,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:675,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:675,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:678,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:684,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:684,1
    - Dst: auto::reset
      Src: /src/libtorrent/src/utp_stream.cpp:685,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:690,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:693,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:694,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:700,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:700,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:701,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:704,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:704,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:706,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:707,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:712,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:714,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:718,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - clear_buffers
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 725
    functionName: libtorrent::aux::utp_socket_impl::read_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::move
    - begin
    - auto::get
    - empty
    - std::min
    - libtorrent::aux::utp_socket_impl::release_packet
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::check_receive_buffers
    - auto::subspan
    - std::uint16_t
    - end
    - std::size_t
    - clear
    - erase
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - auto::size
    - static_cast<void*>
    - std::ptrdiff_t
    - auto::data
    - std::memcpy
    - auto::reset
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::read_some(bool const clear_buffers, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:729,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:730,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:732,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:733,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:735,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:743,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:746,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:751,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 754
    functionName: libtorrent::aux::utp_socket_impl::issue_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::issue_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:758,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
      Src: /src/libtorrent/src/utp_stream.cpp:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: libtorrent::aux::utp_socket_impl::subscribe_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::subscribe_writeable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: libtorrent::aux::utp_socket_impl::check_fin_sent
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::check_fin_sent() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:773,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:778,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - clear_buffers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 782
    functionName: libtorrent::aux::utp_socket_impl::write_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - clear
    - libtorrent::aux::utp_socket_impl::send_pkt
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::write_some(bool const clear_buffers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtu_for_dest
      Src: /src/libtorrent/src/utp_stream.cpp:786,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:786,1
    - Dst: libtorrent::aux::utp_socket_impl::init_mtu
      Src: /src/libtorrent/src/utp_stream.cpp:787,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:788,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:789,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:790,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:794,1
    - Dst: libtorrent::aux::utp_socket_impl::send_syn
      Src: /src/libtorrent/src/utp_stream.cpp:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 796
    functionName: libtorrent::aux::utp_socket_impl::do_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::send_syn
    - TORRENT_ASSERT
    - mtu_for_dest
    - port
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - address
    - libtorrent::aux::utp_socket_impl::init_mtu
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::do_connect(tcp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cancel_deferred_ack
      Src: /src/libtorrent/src/utp_stream.cpp:805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:808,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:810,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:812,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:812,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: capacity
      Src: /src/libtorrent/src/utp_stream.cpp:816,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:819,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:820,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:820,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: capacity
      Src: /src/libtorrent/src/utp_stream.cpp:823,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:826,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:832,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:832,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:836,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:836,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:838,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:838,1
    - Dst: reset
      Src: /src/libtorrent/src/utp_stream.cpp:839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 840
    functionName: utp_socket_impl::~utp_socket_impl()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - release_packet
    - reset
    - std::move
    - std::uint16_t
    - cancel_deferred_ack
    - cursor
    - TORRENT_ASSERT
    - inc_stats_counter
    - static_cast<void*>
    - remove
    - capacity
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::~utp_socket_impl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:857,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:857,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:862,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/src/utp_stream.cpp:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 866
    functionName: libtorrent::aux::utp_socket_impl::should_delete
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void const*>
    - state
    - UTP_LOGV
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::should_delete() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:878,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:878,1
    - Dst: libtorrent::aux::utp_stream::on_read
      Src: /src/libtorrent/src/utp_stream.cpp:881,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:881,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 885
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::utp_stream::on_read
    - static_cast<void*>
    - clear
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_receive_callback(error_code const&
      ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:896,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:896,1
    - Dst: libtorrent::aux::utp_stream::on_write
      Src: /src/libtorrent/src/utp_stream.cpp:900,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:900,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:903,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:906,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:907,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 908
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - state
    - libtorrent::aux::utp_stream::on_write
    - aux::numeric_cast<std::size_t>
    - static_cast<void*>
    - clear
    - libtorrent::aux::utp_socket_impl::send_fin
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_send_callback(error_code const&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::on_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 921
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::on_writeable
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_writeable_callback(error_code const&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:926,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:927,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - code
    argTypes:
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: libtorrent::aux::utp_socket_impl::set_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::set_close_reason(close_reason_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:935,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:935,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:940,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:944,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:945,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 947
    functionName: libtorrent::aux::utp_socket_impl::close
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - at
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:954,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:955,1
    - Dst: libtorrent::aux::utp_socket_impl::close
      Src: /src/libtorrent/src/utp_stream.cpp:960,1
    - Dst: libtorrent::aux::utp_socket_impl::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:962,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:966,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:969,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:972,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:973,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:974,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:976,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:978,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 983
    functionName: libtorrent::aux::utp_socket_impl::destroy
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::close
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::cancel_handlers
    - clear
    - UTP_LOGV
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::destroy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:989,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 991
    functionName: libtorrent::aux::utp_socket_impl::detach
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::detach()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:997,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:997,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1003,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1012,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1025,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1027,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1028,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1028,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1031,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1032,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1033,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1033,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1037,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1037,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1038,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1043,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1043,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:1048,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:1051,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:1051,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1055,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1055,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1057,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1066,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1066,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1067,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1068,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/src/utp_stream.cpp:1068,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:1069,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1073,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1074,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1076,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 1078
    functionName: libtorrent::aux::utp_socket_impl::send_syn
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - std::uint32_t
    - libtorrent::aux::utp_socket_impl::release_packet
    - UTP_LOGV
    - push_back
    - packet_ptr::get
    - std::uint16_t
    - at
    - reinterpret_cast<utp_header*>
    - print_endpoint
    - time_now
    - subscribe_writable
    - time_point::time_since_epoch
    - TORRENT_ASSERT
    - static_cast<void*>
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - reinterpret_cast<std::uint8_t*>
    - random
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - insert
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_syn()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1086,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1086,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1088,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
      Src: /src/libtorrent/src/utp_stream.cpp:1090,1
    - Dst: libtorrent::aux::utp_socket_impl::should_delete
      Src: /src/libtorrent/src/utp_stream.cpp:1091,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1095,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1096,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1099,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1105,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1106,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:1107,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:1109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1110
    functionName: libtorrent::aux::utp_socket_impl::writable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    - at
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - libtorrent::aux::utp_socket_impl::should_delete
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::writable()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1118,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1120,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1125,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1130,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1130,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1131,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1133,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1134,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1138,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1140
    functionName: libtorrent::aux::utp_socket_impl::send_fin
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_socket_impl::set_state
    - message
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_fin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1152,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:1152,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1154,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1155,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1156,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1156,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1158,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1159,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1163,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1163,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1164,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1167,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1168,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ack_nr
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1171
    functionName: libtorrent::aux::utp_socket_impl::send_reset
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - total_microseconds
    - send_packet
    - std::uint16_t
    - std::uint32_t
    - time_point::time_since_epoch
    - static_cast<void*>
    - local_endpoint
    - error_code::message
    - reinterpret_cast<char const*>
    - UTP_LOGV
    - random
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_reset(std::uint16_t const ack_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1176
    functionName: libtorrent::aux::utp_socket_impl::available
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::available() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<close_reason_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1183,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/utp_stream.cpp:1183,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1185,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1186,1
    - Dst: libtorrent::aux::utp_stream::on_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:1190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1191
    functionName: libtorrent::aux::utp_socket_impl::parse_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_uint16
    - libtorrent::aux::utp_stream::on_close_reason
    - static_cast<void*>
    - UTP_LOGV
    - static_cast<close_reason_t>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::parse_close_reason(std::uint8_t const* ptr, int
      const size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/utp_stream.cpp:1206,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:1206,1
    - Dst: unsigned
      Src: /src/libtorrent/src/utp_stream.cpp:1209,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1218,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1219,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/utp_stream.cpp:1219,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1226,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1229,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:1247,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:1247,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1253,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: libtorrent::aux::utp_socket_impl::ack_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:1260,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1263,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/utp_stream.cpp:1264,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1280,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1310,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1311,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1322,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1322,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1333,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1334,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1335,1
    - Dst: libtorrent::aux::utp_socket_impl::experienced_loss
      Src: /src/libtorrent/src/utp_stream.cpp:1342,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1346,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 4
    argNames:
    - packet_ack
    - ptr
    - size
    - now
    argTypes:
    - std::uint16_t
    - std::uint8_t*
    - int
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1355
    functionName: libtorrent::aux::utp_socket_impl::parse_sack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - empty
    - std::min
    - UTP_LOGV
    - std::uint16_t
    - at
    - compare_less_wrap
    - libtorrent::aux::utp_socket_impl::experienced_loss
    - std::size_t
    - remove
    - libtorrent::aux::utp_socket_impl::ack_packet
    - unsigned
    - libtorrent::aux::utp_socket_impl::resend_packet
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - static_cast<void*>
    - aux::numeric_cast<packet_buffer::index_type>
    - std::string::c_str
    - aux::array::size
    - std::string::reserve
    linkageType: ''
    returnType: std::pair<std::uint32_t, int>
    signature: "std::pair<std::uint32_t, int> utp_socket_impl::parse_sack(std::uint16_t
      const packet_ack\n\t, std::uint8_t const* ptr, int const size, time_point const
      now)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1372,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1373,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1381,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:1381,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1385,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1386,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: auto::data
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: auto::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:1391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1392,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:1394,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:1399,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1399,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1407,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1411
    functionName: libtorrent::aux::utp_socket_impl::write_payload
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - auto::subspan
    - std::memcpy
    - begin
    - erase
    - empty
    - end
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - auto::size
    - std::size_t
    - size
    - std::ptrdiff_t
    - auto::data
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::write_payload(std::uint8_t* ptr, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1419,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1419,1
    - Dst: libtorrent::aux::utp_socket_impl::subscribe_drained
      Src: /src/libtorrent/src/utp_stream.cpp:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1422
    functionName: libtorrent::aux::utp_socket_impl::subscribe_drained
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::subscribe_drained
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::subscribe_drained()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1430,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1430,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1433
    functionName: libtorrent::aux::utp_socket_impl::defer_ack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::defer_ack
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::defer_ack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1447,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1450,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1451,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1453,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1454,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1454,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/utp_stream.cpp:1455,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1456,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1458
    functionName: libtorrent::aux::utp_socket_impl::remove_sack_header
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - std::memmove
    - reinterpret_cast<utp_header*>
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::remove_sack_header(packet* p)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1477,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1492,1
    - Dst: front
      Src: /src/libtorrent/src/utp_stream.cpp:1494,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1495,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1496,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1504,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1504,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1510,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1528,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1531,1
    - Dst: span
      Src: /src/libtorrent/src/utp_stream.cpp:1540,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1550,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1550,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1555,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1558,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1563,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1573,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1575,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1581,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1584,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1585,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1585,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1586,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1598,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1601,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1602,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1602,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1603,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1620,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1621,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:1625,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1629,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1630,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1638,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1641,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1648,1
    - Dst: libtorrent::aux::utp_socket_impl::write_payload
      Src: /src/libtorrent/src/utp_stream.cpp:1650,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1656,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1657,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1660,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1660,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1663,1
    - Dst: reset
      Src: /src/libtorrent/src/utp_stream.cpp:1664,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1668,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1677,1
    - Dst: libtorrent::aux::utp_socket_impl::remove_sack_header
      Src: /src/libtorrent/src/utp_stream.cpp:1680,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:1680,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1691,1
    - Dst: libtorrent::aux::utp_socket_impl::write_payload
      Src: /src/libtorrent/src/utp_stream.cpp:1697,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1698,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1702,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1703,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1711,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1714,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1718,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1725,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1726,1
    - Dst: libtorrent::aux::utp_socket_impl::write_sack
      Src: /src/libtorrent/src/utp_stream.cpp:1727,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1729,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/utp_stream.cpp:1736,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1737,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1741,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1745,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1752,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1757,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1758,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1775,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:1775,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1785,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1787,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1788,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1788,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:1791,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1795,1
    - Dst: utp_header*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:1795,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1796,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1796,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1797,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1798,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1799,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1804,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1804,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1805,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1811,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1812,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:1813,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1817,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:1819,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/utp_stream.cpp:1824,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1827,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1827,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1829,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1829,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1830,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1836,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1836,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1838,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:1840,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1844,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1849,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1850,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1851,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1851,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:1857,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1862,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:1862,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1864,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1865,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:1865,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1872,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1873,1
    - Dst: cancel_deferred_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1876,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1886,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1888,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1892,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1897,1
    - Dst: libtorrent::aux::utp_socket_impl::insert_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1903,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1903,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1904,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1906,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1906,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1908,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1913,1
    - Dst: libtorrent::aux::utp_socket_impl::insert_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1914,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1914,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1918,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1925,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:1927,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 191
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1935
    functionName: libtorrent::aux::utp_socket_impl::send_pkt
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - span
    - std::move
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - empty
    - std::uint32_t
    - std::min
    - error_code::clear
    - libtorrent::aux::utp_socket_impl::release_packet
    - std::max
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::insert_packet
    - reset
    - packet_ptr::get
    - std::uint8_t
    - std::uint16_t
    - message
    - reinterpret_cast<utp_header*>
    - static_cast<std::uint32_t>
    - compare_less_wrap
    - front
    - print_endpoint
    - cancel_deferred_ack
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - error_code::message
    - UTP_LOG
    - time_now
    - subscribe_writable
    - libtorrent::aux::utp_socket_impl::resend_packet
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::write_payload
    - time_point::time_since_epoch
    - static_cast<void*>
    - milliseconds
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - state
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::defer_ack
    - libtorrent::aux::utp_socket_impl::remove_sack_header
    - libtorrent::aux::write_uint32
    - local_endpoint
    - libtorrent::aux::utp_socket_impl::write_sack
    - utp_header*::get_type
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::send_pkt(int const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1942,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1942,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1952,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:1952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1957
    functionName: libtorrent::aux::utp_socket_impl::write_sack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - at
    - aux::numeric_cast<packet_buffer::index_type>
    - size
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::write_sack(std::uint8_t* buf, int const size)
      const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1964,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:1977,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1985,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2000,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2003,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2004,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:2011,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:2014,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2015,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2016,1
    - Dst: packet*::send_time::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:2016,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2024,1
    - Dst: libtorrent::aux::utp_socket_impl::write_sack
      Src: /src/libtorrent/src/utp_stream.cpp:2027,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2028,1
    - Dst: libtorrent::aux::utp_socket_impl::remove_sack_header
      Src: /src/libtorrent/src/utp_stream.cpp:2032,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2039,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2039,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2040,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2043,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2046,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2046,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2047,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2047,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:2048,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2049,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2050,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2056,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2056,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2058,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:2060,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:2063,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2071,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2071,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2077,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:2078,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2083,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 2
    argNames:
    - p
    - fast_resend
    argTypes:
    - packet*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 1959
    functionDepth: 2
    functionLinenumber: 1959
    functionLinenumberEnd: 2090
    functionName: libtorrent::aux::utp_socket_impl::resend_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - begin
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - std::uint32_t
    - std::min
    - UTP_LOGV
    - num_resends
    - push_back
    - auto*::get_type
    - reinterpret_cast<utp_header*>
    - std::find
    - end
    - print_endpoint
    - inc_stats_counter
    - error_code::message
    - packet*::send_time::time_since_epoch
    - time_now
    - subscribe_writable
    - TORRENT_ASSERT_VAL
    - erase
    - TORRENT_ASSERT
    - static_cast<void*>
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::remove_sack_header
    - local_endpoint
    - libtorrent::aux::utp_socket_impl::write_sack
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::resend_packet(packet* p, bool fast_resend)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2099,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2110,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2115,1
    - Dst: cwnd_reduce_timer
      Src: /src/libtorrent/src/utp_stream.cpp:2115,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2118,1
    - Dst: loss_multiplier
      Src: /src/libtorrent/src/utp_stream.cpp:2118,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:2119,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2121,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2122,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2129,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2131,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - seq_nr
    - now
    argTypes:
    - std::uint32_t
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2092
    functionDepth: 1
    functionLinenumber: 2092
    functionLinenumberEnd: 2134
    functionName: libtorrent::aux::utp_socket_impl::experienced_loss
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - std::int32_t
    - compare_less_wrap
    - loss_multiplier
    - std::int64_t
    - milliseconds
    - inc_stats_counter
    - std::max
    - static_cast<void*>
    - cwnd_reduce_timer
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::experienced_loss(std::uint32_t const seq_nr,
      time_point const now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2138,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2140,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2141,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2143
    functionName: libtorrent::aux::utp_socket_impl::set_state
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - state
    - inc_stats_counter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::set_state(state_t const s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2160,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2161,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2179
    functionName: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - state
    - at
    - compare_less_wrap
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_inc_acked_seq_nr()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2189,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2193,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:2193,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2198,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2202,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2208,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2210,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:2211,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:2215,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2217,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2217,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/utp_stream.cpp:2224,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2227,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2228,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2230,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2231,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - p
    - receive_time
    - seq_nr
    argTypes:
    - packet_ptr
    - time_point
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2182
    functionDepth: 2
    functionLinenumber: 2182
    functionLinenumberEnd: 2233
    functionName: libtorrent::aux::utp_socket_impl::ack_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - total_microseconds
    - std::move
    - packet_ptr::get
    - begin
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - add_sample
    - erase
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - end
    - reinterpret_cast<utp_header*>
    - std::find
    - std::uint32_t
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - libtorrent::aux::utp_socket_impl::release_packet
    - static_cast<void*>
    - std::max
    - UTP_LOGV
    linkageType: ''
    returnType: std::uint32_t
    signature: "std::uint32_t utp_socket_impl::ack_packet(packet_ptr p, time_point
      const receive_time\n\t, std::uint16_t seq_nr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2247,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2248,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2250,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2252,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2256,1
    - Dst: front
      Src: /src/libtorrent/src/utp_stream.cpp:2258,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: iovec_t*::size
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2261,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: iovec_t*::data
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: iovec_t*::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:2264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2266,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2269,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2269,1
    - Dst: iovec_t*::size
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2273,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2279,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2280,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2285,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2289,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2290,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2291,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2293,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2293,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:2297,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2297,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2299,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2299,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:2302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - buf
    - size
    - p
    argTypes:
    - std::uint8_t*
    - int
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2304
    functionName: libtorrent::aux::utp_socket_impl::incoming
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - iovec_t*::data
    - std::move
    - begin
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - empty
    - std::min
    - libtorrent::aux::utp_socket_impl::release_packet
    - emplace_back
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::check_receive_buffers
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - front
    - std::size_t
    - erase
    - TORRENT_ASSERT
    - iovec_t*::subspan
    - static_cast<void*>
    - std::ptrdiff_t
    - std::memcpy
    - iovec_t*::size
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::incoming(std::uint8_t const* buf, int size,
      packet_ptr p\n\t, time_point /* now */)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2314,1
    - Dst: libtorrent::aux::utp_stream::on_read
      Src: /src/libtorrent/src/utp_stream.cpp:2325,1
    - Dst: libtorrent::aux::utp_stream::on_write
      Src: /src/libtorrent/src/utp_stream.cpp:2326,1
    - Dst: libtorrent::aux::utp_stream::on_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:2327,1
    - Dst: libtorrent::aux::utp_stream::on_connect
      Src: /src/libtorrent/src/utp_stream.cpp:2328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ' ec'
    - shutdown
    argTypes:
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2306
    functionDepth: 2
    functionLinenumber: 2306
    functionLinenumberEnd: 2330
    functionName: libtorrent::aux::utp_socket_impl::cancel_handlers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::on_connect
    - libtorrent::aux::utp_stream::on_write
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::on_read
    - libtorrent::aux::utp_stream::on_writeable
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::cancel_handlers(error_code const& ec, bool shutdown)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utp_header*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2338,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2344,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2345,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2356,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2358,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2364,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2364,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2368,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2369,1
    - Dst: libtorrent::aux::utp_socket_impl::incoming
      Src: /src/libtorrent/src/utp_stream.cpp:2374,1
    - Dst: packet_ptr
      Src: /src/libtorrent/src/utp_stream.cpp:2374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2379,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2379,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2381,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2382,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2382,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:2388,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:2388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2392,1
    - Dst: libtorrent::aux::utp_socket_impl::incoming
      Src: /src/libtorrent/src/utp_stream.cpp:2395,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2395,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2397,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2399,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2400,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2400,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2410,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2412,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2413,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2418,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2420,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2421,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2427,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2428,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2433,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2434,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2441,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2441,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:2443,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2443,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2445,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2446,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2446,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 4
    argNames:
    - ph
    - ptr
    - payload_size
    - now
    argTypes:
    - utp_header*
    - std::uint8_t*
    - int
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2332
    functionDepth: 3
    functionLinenumber: 2332
    functionLinenumberEnd: 2450
    functionName: libtorrent::aux::utp_socket_impl::consume_incoming_data
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::incoming
    - packet_ptr
    - std::memcpy
    - std::move
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - at
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - compare_less_wrap
    - insert
    - TORRENT_ASSERT
    - size
    - static_cast<void*>
    - remove
    - UTP_LOGV
    - aux::numeric_cast<packet_buffer::index_type>
    - utp_header*::get_type
    - UTP_LOG
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_impl::consume_incoming_data(\n\tutp_header const*
      ph, std::uint8_t const* ptr, int const payload_size\n\t, time_point const now)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2467,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2468,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:2468,1
    - Dst: libtorrent::aux::utp_socket_impl::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:2471,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2473,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2475,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2453
    functionDepth: 3
    functionLinenumber: 2453
    functionLinenumberEnd: 2480
    functionName: libtorrent::aux::utp_socket_impl::test_socket_state
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 8
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - message
    - TORRENT_ASSERT
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::cancel_handlers
    - UTP_LOGV
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::test_socket_state()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2487,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2492,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:2496,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2498,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mtu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2482
    functionDepth: 1
    functionLinenumber: 2482
    functionLinenumberEnd: 2500
    functionName: libtorrent::aux::utp_socket_impl::init_mtu
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - std::uint16_t
    - UTP_LOGV
    - static_cast<void*>
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::init_mtu(int const mtu)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: reinterpret_cast<utp_header const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2509,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2509,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2510,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2512,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2514,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2515,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2515,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2516,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_stream.cpp:2520,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2522,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2523,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_stream.cpp:2523,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2524,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2529,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2531,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2532,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2533,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2537,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2539,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2540,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2540,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2541,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2545,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2545,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:2547,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:2548,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2551,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2551,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2553,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2554,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2555,1
    - Dst: minutes
      Src: /src/libtorrent/src/utp_stream.cpp:2560,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2571,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2571,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:2572,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:2574,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2574,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2575,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2576,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2577,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2578,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2578,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:2580,1
    - Dst: adjust_base
      Src: /src/libtorrent/src/utp_stream.cpp:2585,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2588,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2589,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2592,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2593,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2607,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2608,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2609,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2613,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2613,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2614,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2615,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2618,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2620,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2621,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2630,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2634,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2635,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2635,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2640,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2641,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2645,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2645,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2647,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2648,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2649,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2656,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2657,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2658,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2662,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2664,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2666,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2667,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2670,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2670,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2672,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:2673,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2687,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2695,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2707,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2708,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/utp_stream.cpp:2713,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2713,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:2715,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2717,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2717,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2724,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2724,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:2734,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:2734,1
    - Dst: libtorrent::aux::utp_socket_impl::ack_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2740,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:2743,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2744,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2748,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2749,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2757,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2759,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2759,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2760,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2765,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2767,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2768,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2768,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2769,1
    - Dst: std::tie
      Src: /src/libtorrent/src/utp_stream.cpp:2777,1
    - Dst: libtorrent::aux::utp_socket_impl::parse_sack
      Src: /src/libtorrent/src/utp_stream.cpp:2777,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2778,1
    - Dst: libtorrent::aux::utp_socket_impl::parse_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:2782,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2792,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:2792,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2793,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2794,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:2794,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2801,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2802,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2806,1
    - Dst: libtorrent::aux::utp_socket_impl::experienced_loss
      Src: /src/libtorrent/src/utp_stream.cpp:2815,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2816,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2823,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2827,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2829,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2829,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2830,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2831,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2834,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2840,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2840,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2848,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2848,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2853,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2854,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2859,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2860,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2870,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2871,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2871,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:2874,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2876,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:2877,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2883,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2883,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2885,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2889,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2893,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:2895,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:2896,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2899,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:2899,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2905,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2906,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2911,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2912,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2916,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:2918,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2923,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2924,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2924,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2935,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2936,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2941,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2942,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2944,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2944,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2950,1
    - Dst: libtorrent::aux::utp_stream::on_connect
      Src: /src/libtorrent/src/utp_stream.cpp:2959,1
    - Dst: std::min_element
      Src: /src/libtorrent/src/utp_stream.cpp:2973,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2973,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2974,1
    - Dst: libtorrent::aux::utp_socket_impl::do_ledbat
      Src: /src/libtorrent/src/utp_stream.cpp:2980,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2981,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2984,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2984,1
    - Dst: libtorrent::aux::utp_socket_impl::consume_incoming_data
      Src: /src/libtorrent/src/utp_stream.cpp:2986,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2993,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2994,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2995,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:3001,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:3005,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:3015,1
    - Dst: libtorrent::aux::utp_socket_impl::subscribe_drained
      Src: /src/libtorrent/src/utp_stream.cpp:3020,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3022,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3022,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3027,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3027,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3028,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3028,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3031,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:3031,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:3037,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/utp_stream.cpp:3038,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:3038,1
    - Dst: strcpy
      Src: /src/libtorrent/src/utp_stream.cpp:3040,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:3043,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/utp_stream.cpp:3044,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:3044,1
    - Dst: strcpy
      Src: /src/libtorrent/src/utp_stream.cpp:3046,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:3048,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3081,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3085,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3086,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3090,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3094,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3095,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3095,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3098,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3099,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3100,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:3100,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:3101,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3104,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:3179,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:3179,1
    - Dst: libtorrent::aux::utp_socket_impl::consume_incoming_data
      Src: /src/libtorrent/src/utp_stream.cpp:3181,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3194,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3194,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3198,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3199,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3201,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3202,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3206,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3206,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3208,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3209,1
    - Dst: libtorrent::aux::utp_socket_impl::send_reset
      Src: /src/libtorrent/src/utp_stream.cpp:3219,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 270
    argCount: 3
    argNames:
    - b
    - ' ep'
    - receive_time
    argTypes:
    - span<char const>
    - udp::endpoint
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 2503
    functionDepth: 4
    functionLinenumber: 2503
    functionLinenumberEnd: 3224
    functionName: libtorrent::aux::utp_socket_impl::incoming_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::parse_sack
    - target_delay
    - auto*::get_version
    - span::size
    - std::move
    - begin
    - empty
    - std::uint32_t
    - std::min
    - std::max
    - span<char const>::size
    - minutes
    - libtorrent::aux::utp_socket_impl::subscribe_drained
    - mean
    - UTP_LOGV
    - auto*::get_type
    - add_sample
    - std::uint16_t
    - at
    - compare_less_wrap
    - end
    - static_cast<std::uint32_t>
    - reinterpret_cast<std::uint8_t const*>
    - adjust_base
    - libtorrent::aux::utp_socket_impl::experienced_loss
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - libtorrent::aux::utp_socket_impl::ack_packet
    - remove
    - address
    - UTP_LOG
    - libtorrent::aux::utp_stream::on_connect
    - base
    - std::int32_t
    - TORRENT_ASSERT_VAL
    - libtorrent::aux::utp_socket_impl::resend_packet
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - std::snprintf
    - span::data
    - libtorrent::aux::max
    - time_point::time_since_epoch
    - TORRENT_ASSERT
    - static_cast<void*>
    - milliseconds
    - total_milliseconds
    - port
    - aux::numeric_cast<packet_buffer::index_type>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - random
    - state
    - total_microseconds
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    - std::min_element
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::defer_ack
    - std::tie
    - libtorrent::aux::utp_socket_impl::do_ledbat
    - libtorrent::aux::utp_socket_impl::consume_incoming_data
    - span<char const>::data
    - libtorrent::aux::utp_socket_impl::send_reset
    - libtorrent::aux::utp_socket_impl::send_pkt
    - initialized
    - libtorrent::aux::utp_socket_impl::parse_close_reason
    - reinterpret_cast<utp_header const*>
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_impl::incoming_packet(span<char const> b\n\t, udp::endpoint
      const& ep, time_point receive_time)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3234,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3235,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3237,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3237,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3244,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3245,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3253,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3254,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3258,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3262,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3266,1
    - Dst: gain_factor
      Src: /src/libtorrent/src/utp_stream.cpp:3266,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3272,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3285,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3286,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3290,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:3304,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:3305,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3307,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3309,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3318,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3322,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:3324,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3327,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - acked_bytes
    - delay
    - in_flight
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3226
    functionDepth: 1
    functionLinenumber: 3226
    functionLinenumberEnd: 3340
    functionName: libtorrent::aux::utp_socket_impl::do_ledbat
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - target_delay
    - gain_factor
    - std::int32_t
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::int64_t
    - std::min
    - static_cast<void*>
    - std::max
    - inc_stats_counter
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::do_ledbat(const int acked_bytes, const int delay\n\t,
      const int in_flight)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3342
    functionDepth: 0
    functionLinenumber: 3342
    functionLinenumberEnd: 3342
    functionName: libtorrent::aux::utp_stream::bind
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::bind(endpoint_type const&, error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:3347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3348
    functionName: libtorrent::aux::utp_stream::cancel_handlers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_stream::cancel_handlers
    linkageType: ''
    returnType: void
    signature: void utp_stream::cancel_handlers(error_code const& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3358,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: min_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: avg_deviation
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3369
    functionName: libtorrent::aux::utp_socket_impl::packet_timeout
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - state
    - min_timeout
    - avg_deviation
    - std::max
    - mean
    linkageType: ''
    returnType: int
    signature: int utp_socket_impl::packet_timeout() const
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3376,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3377,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3383,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3383,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3388,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3388,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:3404,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:3413,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3418,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3421,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3423,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3425,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3433,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3438,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3439,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3450,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3450,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3459,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3461,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3461,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3463,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3464,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3476,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3476,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3489,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:3489,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:3493,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3494,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3496,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3496,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3499,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3502,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3505,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3506,1
    - Dst: syn_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3506,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3507,1
    - Dst: fin_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3507,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3510,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3511,1
    - Dst: restrict_mtu
      Src: /src/libtorrent/src/utp_stream.cpp:3522,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3526,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3527,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:3536,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3537,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3537,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:3539,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:3541,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3542,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3542,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3544,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3548,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3549,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 80
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3553
      start: 3371
    functionDepth: 4
    functionLinenumber: 3371
    functionLinenumberEnd: 3553
    functionName: libtorrent::aux::utp_socket_impl::tick
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - restrict_mtu
    - std::max
    - UTP_LOGV
    - num_resends
    - push_back
    - fin_resends
    - at
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - syn_resends
    - libtorrent::aux::utp_socket_impl::resend_packet
    - TORRENT_ASSERT
    - static_cast<void*>
    - milliseconds
    - static_cast<std::uint8_t>
    - aux::numeric_cast<packet_buffer::index_type>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::send_pkt
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::tick(time_point const now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3564
    functionName: libtorrent::aux::utp_socket_impl::check_receive_buffers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - std::accumulate
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::check_receive_buffers() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:3571,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:3572,1
    - Dst: span
      Src: /src/libtorrent/src/utp_stream.cpp:3572,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3575,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3581,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:3581,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3583,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3586,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3593,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3595
      start: 3568
    functionDepth: 1
    functionLinenumber: 3568
    functionLinenumberEnd: 3595
    functionName: libtorrent::aux::utp_socket_impl::check_invariant
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - span
    - state
    - at
    - reinterpret_cast<utp_header*>
    - cursor
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::utp_logger
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_logger()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/libtorrent/src/utp_stream.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ~utp_logger()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void ~utp_logger()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/utp_stream.cpp:89,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: va_start
      Src: /src/libtorrent/src/utp_stream.cpp:92,1
    - Dst: vfprintf
      Src: /src/libtorrent/src/utp_stream.cpp:93,1
    - Dst: va_end
      Src: /src/libtorrent/src/utp_stream.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::utp_log
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - total_microseconds
    - va_start
    - std::fprintf
    - va_end
    - vfprintf
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void utp_log(char const* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::is_utp_stream_logging
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_utp_stream_logging()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/utp_stream.cpp:106,1
    - Dst: fclose
      Src: /src/libtorrent/src/utp_stream.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::set_utp_stream_logging
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 9
    functionsReached:
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void set_utp_stream_logging(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: UTP_LOG
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTP_LOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: UTP_LOGV
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTP_LOGV(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - mask
    argTypes:
    - std::uint32_t
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::compare_less_wrap
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_less_wrap(std::uint32_t lhs\n\t, std::uint32_t rhs, std::uint32_t
      mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: connect_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:183,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:186,1
    - Dst: fill
      Src: /src/libtorrent/src/utp_stream.cpp:187,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - recv_id
    - send_id
    - userdata
    - ' sm'
    argTypes:
    - std::uint16_t
    - std::uint16_t
    - utp_stream*
    - utp_socket_manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 188
    functionName: libtorrent::aux::utp_socket_impl::utp_socket_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - libtorrent::aux::max
    - connect_timeout
    - TORRENT_ASSERT
    - fill
    - milliseconds
    - inc_stats_counter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::utp_socket_impl(std::uint16_t const recv_id\n\t,
      std::uint16_t const send_id\n\t, utp_stream* userdata, utp_socket_manager& sm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:192,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:195,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/utp_stream.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: libtorrent::aux::utp_socket_impl::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - state
    - address_v4::any
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint utp_socket_impl::remote_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allocate
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: libtorrent::aux::utp_socket_impl::acquire_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::utp_socket_impl::acquire_packet
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr utp_socket_impl::acquire_packet(int const allocate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::aux::utp_socket_impl::release_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::utp_socket_impl::release_packet
    - std::move
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::release_packet(packet_ptr p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:215,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:215,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:218,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:218,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:221,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:221,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:226,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:226,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:229,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: libtorrent::aux::utp_socket_impl::insert_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - std::move
    - packet_ptr::get
    - begin
    - erase
    - insert
    - reinterpret_cast<utp_header*>
    - std::find
    - end
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::release_packet
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::insert_packet(packet_ptr p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:236,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: libtorrent::aux::utp_socket_impl::abort
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - libtorrent::aux::utp_socket_impl::set_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:243,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' ep'
    - id
    argTypes:
    - udp::endpoint
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: libtorrent::aux::utp_socket_impl::match
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::match(udp::endpoint const& ep, std::uint16_t
      const id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: libtorrent::aux::utp_socket_impl::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint utp_socket_impl::remote_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:254,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::utp_socket_impl::send_deferred_ack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::send_pkt
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_deferred_ack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:268,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: libtorrent::aux::utp_socket_impl::socket_drained
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::socket_drained()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:289,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:289,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:294,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:296,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 302
    functionName: libtorrent::aux::utp_socket_impl::update_mtu_limits
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - std::int64_t
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::update_mtu_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::send_delay
      Src: /src/libtorrent/src/utp_stream.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: libtorrent::aux::utp_stream::send_delay
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::send_delay
    linkageType: ''
    returnType: int
    signature: int utp_stream::send_delay() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::recv_delay
      Src: /src/libtorrent/src/utp_stream.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: libtorrent::aux::utp_stream::recv_delay
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::recv_delay
    linkageType: ''
    returnType: int
    signature: int utp_stream::recv_delay() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: libtorrent::aux::utp_stream::utp_stream
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::utp_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: libtorrent::aux::utp_stream::get_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: utp_socket_impl
    signature: utp_socket_impl * utp_stream::get_impl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::set_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: libtorrent::aux::utp_stream::set_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::set_close_reason
    linkageType: ''
    returnType: void
    signature: void utp_stream::set_close_reason(close_reason_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: libtorrent::aux::utp_stream::get_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t utp_stream::get_close_reason() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::close
      Src: /src/libtorrent/src/utp_stream.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::utp_stream::close
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::close
    linkageType: ''
    returnType: void
    signature: void utp_stream::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::available
      Src: /src/libtorrent/src/utp_stream.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: libtorrent::aux::utp_stream::available
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::available
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::remote_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: libtorrent::aux::utp_stream::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::remote_endpoint
    linkageType: ''
    returnType: utp_stream::endpoint_type
    signature: utp_stream::endpoint_type utp_stream::remote_endpoint(error_code& ec)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_sock::lock
      Src: /src/libtorrent/src/utp_stream.cpp:366,1
    - Dst: auto::get_local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:373,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/utp_stream.cpp:374,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/src/utp_stream.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::utp_stream::local_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - udp::endpoint::port
    - udp::endpoint::address
    - m_sock::lock
    - auto::get_local_endpoint
    linkageType: ''
    returnType: utp_stream::endpoint_type
    signature: utp_stream::endpoint_type utp_stream::local_endpoint(error_code& ec)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_userdata
      Src: /src/libtorrent/src/utp_stream.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - utp_stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: libtorrent::aux::utp_stream::utp_stream
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - set_userdata
    linkageType: ''
    returnType: void
    signature: void utp_stream::utp_stream(utp_stream&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:392,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:392,1
    - Dst: destroy
      Src: /src/libtorrent/src/utp_stream.cpp:393,1
    - Dst: detach
      Src: /src/libtorrent/src/utp_stream.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: utp_stream::~utp_stream()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - destroy
    - UTP_LOGV
    - static_cast<void*>
    - detach
    linkageType: ''
    returnType: void
    signature: void utp_stream::~utp_stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - impl
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: libtorrent::aux::utp_stream::set_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_stream::set_impl(utp_socket_impl* impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:409,1
    - Dst: receive_buffer_size
      Src: /src/libtorrent/src/utp_stream.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::utp_stream::read_buffer_size
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - receive_buffer_size
    linkageType: ''
    returnType: int
    signature: int utp_stream::read_buffer_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - reason
    argTypes:
    - utp_stream*
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: libtorrent::aux::utp_stream::on_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_close_reason(utp_stream* s, close_reason_t reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:424,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:424,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:427,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:428,1
    - Dst: utp_stream*::m_impl::null_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:428,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:433,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - s
    - bytes_transferred
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - std::size_t
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: libtorrent::aux::utp_stream::on_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - utp_stream*::m_impl::null_buffers
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_stream::on_read(utp_stream* s, std::size_t const bytes_transferred\n\t,
      error_code const& ec, bool const shutdown)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:442,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:443,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:446,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:452,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - s
    - bytes_transferred
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - std::size_t
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: libtorrent::aux::utp_stream::on_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_stream::on_write(utp_stream* s, std::size_t const bytes_transferred\n\t,
      error_code const& ec, bool const shutdown)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:460,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:461,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:462,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:464,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - ' ec'
    argTypes:
    - utp_stream*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: libtorrent::aux::utp_stream::on_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - post
    - message
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_writeable(utp_stream* s, error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:471,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:473,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:474,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:476,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:481,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 485
    functionName: libtorrent::aux::utp_stream::on_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_connect(utp_stream* s, error_code const& ec, bool
      const shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:492,1
    - Dst: libtorrent::aux::utp_stream::add_read_buffer
      Src: /src/libtorrent/src/utp_stream.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 494
    functionName: libtorrent::aux::utp_stream::add_read_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::add_read_buffer
    linkageType: ''
    returnType: void
    signature: void utp_stream::add_read_buffer(void* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:501,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:503,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:504,1
    - Dst: libtorrent::aux::utp_stream::add_write_buffer
      Src: /src/libtorrent/src/utp_stream.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: libtorrent::aux::utp_stream::add_write_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::add_write_buffer
    linkageType: ''
    returnType: void
    signature: void utp_stream::add_write_buffer(void const* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:510,1
    - Dst: libtorrent::aux::utp_stream::check_fin_sent
      Src: /src/libtorrent/src/utp_stream.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: libtorrent::aux::utp_stream::check_fin_sent
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::check_fin_sent
    linkageType: ''
    returnType: bool
    signature: bool utp_stream::check_fin_sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::issue_read
      Src: /src/libtorrent/src/utp_stream.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: libtorrent::aux::utp_stream::issue_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::issue_read
    linkageType: ''
    returnType: void
    signature: void utp_stream::issue_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::read_some
      Src: /src/libtorrent/src/utp_stream.cpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clear_buffers
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: libtorrent::aux::utp_stream::read_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::read_some(bool const clear_buffers, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::write_some
      Src: /src/libtorrent/src/utp_stream.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clear_buffers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: libtorrent::aux::utp_stream::write_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::write_some(bool const clear_buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::issue_write
      Src: /src/libtorrent/src/utp_stream.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: libtorrent::aux::utp_stream::issue_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::issue_write
    linkageType: ''
    returnType: void
    signature: void utp_stream::issue_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::subscribe_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: libtorrent::aux::utp_stream::subscribe_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::subscribe_writeable
    linkageType: ''
    returnType: void
    signature: void utp_stream::subscribe_writeable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::do_connect
      Src: /src/libtorrent/src/utp_stream.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: libtorrent::aux::utp_stream::do_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::do_connect
    linkageType: ''
    returnType: void
    signature: void utp_stream::do_connect(tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:557,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:557,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:559,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/utp_stream.cpp:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 561
    functionName: libtorrent::aux::utp_socket_impl::add_read_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - UTP_LOGV
    - reinterpret_cast<char*>
    - static_cast<void*>
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::add_read_buffer(void* buf, int const len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:565,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:566,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/src/utp_stream.cpp:566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:574,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:576,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:579,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:587,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 591
    functionName: libtorrent::aux::utp_socket_impl::add_write_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - emplace_back
    - reinterpret_cast<char const*>
    - UTP_LOGV
    - static_cast<void const*>
    - size
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::add_write_buffer(void const* buf, int const len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:595,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:596,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:601,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:603,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:604,1
    - Dst: libtorrent::aux::utp_socket_impl::read_some
      Src: /src/libtorrent/src/utp_stream.cpp:611,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 613
    functionName: libtorrent::aux::utp_socket_impl::issue_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    - libtorrent::aux::utp_socket_impl::read_some
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::issue_read()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:617,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:618,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:624,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:627,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:636,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:641,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:642,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:644,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:646,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:648,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:648,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:653,1
    - Dst: auto::get
      Src: /src/libtorrent/src/utp_stream.cpp:656,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:660,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:660,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:661,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:662,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:663,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:663,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:664,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: auto::data
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:667,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:667,1
    - Dst: auto::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:668,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:670,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:672,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:674,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:675,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:675,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:678,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:684,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:684,1
    - Dst: auto::reset
      Src: /src/libtorrent/src/utp_stream.cpp:685,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:690,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:693,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:694,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:700,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:700,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:701,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:704,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:704,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:706,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:707,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:712,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:714,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:718,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - clear_buffers
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 725
    functionName: libtorrent::aux::utp_socket_impl::read_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::move
    - begin
    - auto::get
    - empty
    - std::min
    - libtorrent::aux::utp_socket_impl::release_packet
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::check_receive_buffers
    - auto::subspan
    - std::uint16_t
    - end
    - std::size_t
    - clear
    - erase
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - auto::size
    - static_cast<void*>
    - std::ptrdiff_t
    - auto::data
    - std::memcpy
    - auto::reset
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::read_some(bool const clear_buffers, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:729,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:730,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:732,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:733,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:735,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:743,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:746,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:751,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 754
    functionName: libtorrent::aux::utp_socket_impl::issue_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::issue_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:758,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
      Src: /src/libtorrent/src/utp_stream.cpp:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: libtorrent::aux::utp_socket_impl::subscribe_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::subscribe_writeable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: libtorrent::aux::utp_socket_impl::check_fin_sent
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::check_fin_sent() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:773,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:778,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - clear_buffers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 782
    functionName: libtorrent::aux::utp_socket_impl::write_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - clear
    - libtorrent::aux::utp_socket_impl::send_pkt
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::write_some(bool const clear_buffers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtu_for_dest
      Src: /src/libtorrent/src/utp_stream.cpp:786,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:786,1
    - Dst: libtorrent::aux::utp_socket_impl::init_mtu
      Src: /src/libtorrent/src/utp_stream.cpp:787,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:788,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:789,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:790,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:794,1
    - Dst: libtorrent::aux::utp_socket_impl::send_syn
      Src: /src/libtorrent/src/utp_stream.cpp:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 796
    functionName: libtorrent::aux::utp_socket_impl::do_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::send_syn
    - TORRENT_ASSERT
    - mtu_for_dest
    - port
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - address
    - libtorrent::aux::utp_socket_impl::init_mtu
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::do_connect(tcp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cancel_deferred_ack
      Src: /src/libtorrent/src/utp_stream.cpp:805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:808,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:810,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:812,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:812,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: capacity
      Src: /src/libtorrent/src/utp_stream.cpp:816,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:819,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:820,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:820,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: capacity
      Src: /src/libtorrent/src/utp_stream.cpp:823,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:826,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:832,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:832,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:836,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:836,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:838,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:838,1
    - Dst: reset
      Src: /src/libtorrent/src/utp_stream.cpp:839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 840
    functionName: utp_socket_impl::~utp_socket_impl()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - release_packet
    - reset
    - std::move
    - std::uint16_t
    - cancel_deferred_ack
    - cursor
    - TORRENT_ASSERT
    - inc_stats_counter
    - static_cast<void*>
    - remove
    - capacity
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::~utp_socket_impl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:857,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:857,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:862,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/src/utp_stream.cpp:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 866
    functionName: libtorrent::aux::utp_socket_impl::should_delete
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - static_cast<void const*>
    - state
    - UTP_LOGV
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::should_delete() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:878,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:878,1
    - Dst: libtorrent::aux::utp_stream::on_read
      Src: /src/libtorrent/src/utp_stream.cpp:881,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:881,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 885
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::utp_stream::on_read
    - static_cast<void*>
    - clear
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_receive_callback(error_code const&
      ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:896,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:896,1
    - Dst: libtorrent::aux::utp_stream::on_write
      Src: /src/libtorrent/src/utp_stream.cpp:900,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:900,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:903,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:906,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:907,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 908
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - state
    - libtorrent::aux::utp_stream::on_write
    - aux::numeric_cast<std::size_t>
    - static_cast<void*>
    - clear
    - libtorrent::aux::utp_socket_impl::send_fin
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_send_callback(error_code const&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::on_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 921
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::on_writeable
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_writeable_callback(error_code const&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:926,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:927,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - code
    argTypes:
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: libtorrent::aux::utp_socket_impl::set_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::set_close_reason(close_reason_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:935,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:935,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:940,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:944,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:945,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 947
    functionName: libtorrent::aux::utp_socket_impl::close
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - state
    - at
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:954,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:955,1
    - Dst: libtorrent::aux::utp_socket_impl::close
      Src: /src/libtorrent/src/utp_stream.cpp:960,1
    - Dst: libtorrent::aux::utp_socket_impl::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:962,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:966,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:969,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:972,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:973,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:974,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:976,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:978,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 983
    functionName: libtorrent::aux::utp_socket_impl::destroy
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::close
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::cancel_handlers
    - clear
    - UTP_LOGV
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::destroy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:989,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 991
    functionName: libtorrent::aux::utp_socket_impl::detach
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::detach()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:997,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:997,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1003,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1012,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1025,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1027,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1028,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1028,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1031,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1032,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1033,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1033,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1037,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1037,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1038,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1043,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1043,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:1048,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:1051,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:1051,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1055,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1055,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1057,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1066,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1066,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1067,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1068,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/src/utp_stream.cpp:1068,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:1069,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1073,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1074,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1076,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 993
    functionDepth: 4
    functionLinenumber: 993
    functionLinenumberEnd: 1078
    functionName: libtorrent::aux::utp_socket_impl::send_syn
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - std::uint32_t
    - libtorrent::aux::utp_socket_impl::release_packet
    - UTP_LOGV
    - push_back
    - packet_ptr::get
    - std::uint16_t
    - at
    - reinterpret_cast<utp_header*>
    - print_endpoint
    - time_now
    - subscribe_writable
    - time_point::time_since_epoch
    - TORRENT_ASSERT
    - static_cast<void*>
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - reinterpret_cast<std::uint8_t*>
    - random
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - insert
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_syn()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1086,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1086,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1088,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
      Src: /src/libtorrent/src/utp_stream.cpp:1090,1
    - Dst: libtorrent::aux::utp_socket_impl::should_delete
      Src: /src/libtorrent/src/utp_stream.cpp:1091,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1095,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1096,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1099,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1105,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1106,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:1107,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:1109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1083
    functionDepth: 4
    functionLinenumber: 1083
    functionLinenumberEnd: 1110
    functionName: libtorrent::aux::utp_socket_impl::writable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    - at
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - libtorrent::aux::utp_socket_impl::should_delete
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::writable()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1118,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1120,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1125,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1130,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1130,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1131,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1133,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1134,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1138,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1112
    functionDepth: 4
    functionLinenumber: 1112
    functionLinenumberEnd: 1140
    functionName: libtorrent::aux::utp_socket_impl::send_fin
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::utp_socket_impl::set_state
    - message
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_fin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1152,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:1152,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1154,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1155,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1156,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1156,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1158,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1159,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1163,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1163,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1164,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1167,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1168,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ack_nr
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1171
    functionName: libtorrent::aux::utp_socket_impl::send_reset
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - time_now
    - total_microseconds
    - send_packet
    - std::uint16_t
    - std::uint32_t
    - time_point::time_since_epoch
    - static_cast<void*>
    - local_endpoint
    - error_code::message
    - reinterpret_cast<char const*>
    - UTP_LOGV
    - random
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_reset(std::uint16_t const ack_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1176
    functionName: libtorrent::aux::utp_socket_impl::available
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::available() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<close_reason_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1183,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/utp_stream.cpp:1183,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1185,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1186,1
    - Dst: libtorrent::aux::utp_stream::on_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:1190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1191
    functionName: libtorrent::aux::utp_socket_impl::parse_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::read_uint16
    - libtorrent::aux::utp_stream::on_close_reason
    - static_cast<void*>
    - UTP_LOGV
    - static_cast<close_reason_t>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::parse_close_reason(std::uint8_t const* ptr, int
      const size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/utp_stream.cpp:1206,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:1206,1
    - Dst: unsigned
      Src: /src/libtorrent/src/utp_stream.cpp:1209,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1218,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1219,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/utp_stream.cpp:1219,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1226,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1229,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:1247,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:1247,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1253,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: libtorrent::aux::utp_socket_impl::ack_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:1260,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1263,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/utp_stream.cpp:1264,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1280,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1310,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1311,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1322,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1322,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1333,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1334,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1335,1
    - Dst: libtorrent::aux::utp_socket_impl::experienced_loss
      Src: /src/libtorrent/src/utp_stream.cpp:1342,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1346,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 4
    argNames:
    - packet_ack
    - ptr
    - size
    - now
    argTypes:
    - std::uint16_t
    - std::uint8_t*
    - int
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1194
    functionDepth: 3
    functionLinenumber: 1194
    functionLinenumberEnd: 1355
    functionName: libtorrent::aux::utp_socket_impl::parse_sack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - empty
    - std::min
    - UTP_LOGV
    - std::uint16_t
    - at
    - compare_less_wrap
    - libtorrent::aux::utp_socket_impl::experienced_loss
    - std::size_t
    - remove
    - libtorrent::aux::utp_socket_impl::ack_packet
    - unsigned
    - libtorrent::aux::utp_socket_impl::resend_packet
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - static_cast<void*>
    - aux::numeric_cast<packet_buffer::index_type>
    - std::string::c_str
    - aux::array::size
    - std::string::reserve
    linkageType: ''
    returnType: std::pair<std::uint32_t, int>
    signature: "std::pair<std::uint32_t, int> utp_socket_impl::parse_sack(std::uint16_t
      const packet_ack\n\t, std::uint8_t const* ptr, int const size, time_point const
      now)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1372,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1373,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1381,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:1381,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1385,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1386,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: auto::data
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: auto::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:1391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1392,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:1394,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:1399,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1399,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1407,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1411
    functionName: libtorrent::aux::utp_socket_impl::write_payload
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - auto::subspan
    - std::memcpy
    - begin
    - erase
    - empty
    - end
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - auto::size
    - std::size_t
    - size
    - std::ptrdiff_t
    - auto::data
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::write_payload(std::uint8_t* ptr, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1419,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1419,1
    - Dst: libtorrent::aux::utp_socket_impl::subscribe_drained
      Src: /src/libtorrent/src/utp_stream.cpp:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1422
    functionName: libtorrent::aux::utp_socket_impl::subscribe_drained
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::subscribe_drained
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::subscribe_drained()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1430,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1430,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1433
    functionName: libtorrent::aux::utp_socket_impl::defer_ack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::defer_ack
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::defer_ack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1447,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1450,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1451,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1453,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1454,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1454,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/utp_stream.cpp:1455,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1456,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1458
    functionName: libtorrent::aux::utp_socket_impl::remove_sack_header
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - std::memmove
    - reinterpret_cast<utp_header*>
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::remove_sack_header(packet* p)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1477,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1492,1
    - Dst: front
      Src: /src/libtorrent/src/utp_stream.cpp:1494,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1495,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1496,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1504,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1504,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1510,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1528,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1531,1
    - Dst: span
      Src: /src/libtorrent/src/utp_stream.cpp:1540,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1550,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1550,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1555,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1558,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1563,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1573,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1575,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1581,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1584,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1585,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1585,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1586,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1598,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1601,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1602,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1602,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1603,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1620,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1621,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:1625,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1629,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1630,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1638,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1641,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1648,1
    - Dst: libtorrent::aux::utp_socket_impl::write_payload
      Src: /src/libtorrent/src/utp_stream.cpp:1650,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1656,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1657,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1660,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1660,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1663,1
    - Dst: reset
      Src: /src/libtorrent/src/utp_stream.cpp:1664,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1668,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1677,1
    - Dst: libtorrent::aux::utp_socket_impl::remove_sack_header
      Src: /src/libtorrent/src/utp_stream.cpp:1680,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:1680,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1691,1
    - Dst: libtorrent::aux::utp_socket_impl::write_payload
      Src: /src/libtorrent/src/utp_stream.cpp:1697,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1698,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1702,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1703,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1711,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1714,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1718,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1725,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1726,1
    - Dst: libtorrent::aux::utp_socket_impl::write_sack
      Src: /src/libtorrent/src/utp_stream.cpp:1727,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1729,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/utp_stream.cpp:1736,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1737,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1741,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1745,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1752,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1757,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1758,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1775,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:1775,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1785,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1787,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1788,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1788,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:1791,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1795,1
    - Dst: utp_header*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:1795,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1796,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1796,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1797,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1798,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1799,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1804,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1804,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1805,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1811,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1812,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:1813,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1817,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:1819,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/utp_stream.cpp:1824,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1827,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1827,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1829,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1829,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1830,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1836,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1836,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1838,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:1840,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1844,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1849,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1850,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1851,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1851,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:1857,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1862,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:1862,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1864,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1865,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:1865,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1872,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1873,1
    - Dst: cancel_deferred_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1876,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1886,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1888,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1892,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1897,1
    - Dst: libtorrent::aux::utp_socket_impl::insert_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1903,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1903,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1904,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1906,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1906,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1908,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1913,1
    - Dst: libtorrent::aux::utp_socket_impl::insert_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1914,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1914,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1918,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1925,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:1927,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 191
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1468
    functionDepth: 4
    functionLinenumber: 1468
    functionLinenumberEnd: 1935
    functionName: libtorrent::aux::utp_socket_impl::send_pkt
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 12
    functionsReached:
    - span
    - std::move
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - empty
    - std::uint32_t
    - std::min
    - error_code::clear
    - libtorrent::aux::utp_socket_impl::release_packet
    - std::max
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::insert_packet
    - reset
    - packet_ptr::get
    - std::uint8_t
    - std::uint16_t
    - message
    - reinterpret_cast<utp_header*>
    - static_cast<std::uint32_t>
    - compare_less_wrap
    - front
    - print_endpoint
    - cancel_deferred_ack
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - error_code::message
    - UTP_LOG
    - time_now
    - subscribe_writable
    - libtorrent::aux::utp_socket_impl::resend_packet
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::write_payload
    - time_point::time_since_epoch
    - static_cast<void*>
    - milliseconds
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - state
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::defer_ack
    - libtorrent::aux::utp_socket_impl::remove_sack_header
    - libtorrent::aux::write_uint32
    - local_endpoint
    - libtorrent::aux::utp_socket_impl::write_sack
    - utp_header*::get_type
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::send_pkt(int const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1942,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1942,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1952,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:1952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1957
    functionName: libtorrent::aux::utp_socket_impl::write_sack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - at
    - aux::numeric_cast<packet_buffer::index_type>
    - size
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::write_sack(std::uint8_t* buf, int const size)
      const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1964,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:1977,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1985,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2000,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2003,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2004,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:2011,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:2014,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2015,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2016,1
    - Dst: packet*::send_time::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:2016,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2024,1
    - Dst: libtorrent::aux::utp_socket_impl::write_sack
      Src: /src/libtorrent/src/utp_stream.cpp:2027,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2028,1
    - Dst: libtorrent::aux::utp_socket_impl::remove_sack_header
      Src: /src/libtorrent/src/utp_stream.cpp:2032,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2039,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2039,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2040,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2043,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2046,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2046,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2047,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2047,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:2048,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2049,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2050,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2056,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2056,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2058,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:2060,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:2063,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2071,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2071,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2077,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:2078,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2083,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 2
    argNames:
    - p
    - fast_resend
    argTypes:
    - packet*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 1959
    functionDepth: 4
    functionLinenumber: 1959
    functionLinenumberEnd: 2090
    functionName: libtorrent::aux::utp_socket_impl::resend_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - begin
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - std::uint32_t
    - std::min
    - UTP_LOGV
    - num_resends
    - push_back
    - auto*::get_type
    - reinterpret_cast<utp_header*>
    - std::find
    - end
    - print_endpoint
    - inc_stats_counter
    - error_code::message
    - packet*::send_time::time_since_epoch
    - time_now
    - subscribe_writable
    - TORRENT_ASSERT_VAL
    - erase
    - TORRENT_ASSERT
    - static_cast<void*>
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::remove_sack_header
    - local_endpoint
    - libtorrent::aux::utp_socket_impl::write_sack
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::resend_packet(packet* p, bool fast_resend)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2099,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2110,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2115,1
    - Dst: cwnd_reduce_timer
      Src: /src/libtorrent/src/utp_stream.cpp:2115,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2118,1
    - Dst: loss_multiplier
      Src: /src/libtorrent/src/utp_stream.cpp:2118,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:2119,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2121,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2122,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2129,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2131,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - seq_nr
    - now
    argTypes:
    - std::uint32_t
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2092
    functionDepth: 1
    functionLinenumber: 2092
    functionLinenumberEnd: 2134
    functionName: libtorrent::aux::utp_socket_impl::experienced_loss
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - std::int32_t
    - compare_less_wrap
    - loss_multiplier
    - std::int64_t
    - milliseconds
    - inc_stats_counter
    - std::max
    - static_cast<void*>
    - cwnd_reduce_timer
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::experienced_loss(std::uint32_t const seq_nr,
      time_point const now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2138,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2140,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2141,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2143
    functionName: libtorrent::aux::utp_socket_impl::set_state
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 15
    functionsReached:
    - state
    - inc_stats_counter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::set_state(state_t const s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2160,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2161,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2179
    functionName: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - state
    - at
    - compare_less_wrap
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_inc_acked_seq_nr()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2189,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2193,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:2193,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2198,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2202,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2208,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2210,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:2211,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:2215,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2217,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2217,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/utp_stream.cpp:2224,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2227,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2228,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2230,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2231,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - p
    - receive_time
    - seq_nr
    argTypes:
    - packet_ptr
    - time_point
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2182
    functionDepth: 2
    functionLinenumber: 2182
    functionLinenumberEnd: 2233
    functionName: libtorrent::aux::utp_socket_impl::ack_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - total_microseconds
    - std::move
    - packet_ptr::get
    - begin
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - add_sample
    - erase
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - end
    - reinterpret_cast<utp_header*>
    - std::find
    - std::uint32_t
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - libtorrent::aux::utp_socket_impl::release_packet
    - static_cast<void*>
    - std::max
    - UTP_LOGV
    linkageType: ''
    returnType: std::uint32_t
    signature: "std::uint32_t utp_socket_impl::ack_packet(packet_ptr p, time_point
      const receive_time\n\t, std::uint16_t seq_nr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2247,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2248,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2250,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2252,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2256,1
    - Dst: front
      Src: /src/libtorrent/src/utp_stream.cpp:2258,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: iovec_t*::size
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2261,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: iovec_t*::data
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: iovec_t*::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:2264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2266,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2269,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2269,1
    - Dst: iovec_t*::size
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2273,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2279,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2280,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2285,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2289,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2290,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2291,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2293,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2293,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:2297,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2297,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2299,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2299,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:2302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - buf
    - size
    - p
    argTypes:
    - std::uint8_t*
    - int
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2304
    functionName: libtorrent::aux::utp_socket_impl::incoming
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - iovec_t*::data
    - std::move
    - begin
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - empty
    - std::min
    - libtorrent::aux::utp_socket_impl::release_packet
    - emplace_back
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::check_receive_buffers
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - front
    - std::size_t
    - erase
    - TORRENT_ASSERT
    - iovec_t*::subspan
    - static_cast<void*>
    - std::ptrdiff_t
    - std::memcpy
    - iovec_t*::size
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::incoming(std::uint8_t const* buf, int size,
      packet_ptr p\n\t, time_point /* now */)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2314,1
    - Dst: libtorrent::aux::utp_stream::on_read
      Src: /src/libtorrent/src/utp_stream.cpp:2325,1
    - Dst: libtorrent::aux::utp_stream::on_write
      Src: /src/libtorrent/src/utp_stream.cpp:2326,1
    - Dst: libtorrent::aux::utp_stream::on_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:2327,1
    - Dst: libtorrent::aux::utp_stream::on_connect
      Src: /src/libtorrent/src/utp_stream.cpp:2328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ' ec'
    - shutdown
    argTypes:
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2306
    functionDepth: 2
    functionLinenumber: 2306
    functionLinenumberEnd: 2330
    functionName: libtorrent::aux::utp_socket_impl::cancel_handlers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::on_connect
    - libtorrent::aux::utp_stream::on_write
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::on_read
    - libtorrent::aux::utp_stream::on_writeable
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::cancel_handlers(error_code const& ec, bool shutdown)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utp_header*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2338,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2344,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2345,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2356,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2358,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2364,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2364,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2368,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2369,1
    - Dst: libtorrent::aux::utp_socket_impl::incoming
      Src: /src/libtorrent/src/utp_stream.cpp:2374,1
    - Dst: packet_ptr
      Src: /src/libtorrent/src/utp_stream.cpp:2374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2379,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2379,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2381,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2382,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2382,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:2388,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:2388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2392,1
    - Dst: libtorrent::aux::utp_socket_impl::incoming
      Src: /src/libtorrent/src/utp_stream.cpp:2395,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2395,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2397,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2399,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2400,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2400,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2410,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2412,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2413,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2418,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2420,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2421,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2427,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2428,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2433,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2434,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2441,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2441,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:2443,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2443,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2445,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2446,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2446,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 4
    argNames:
    - ph
    - ptr
    - payload_size
    - now
    argTypes:
    - utp_header*
    - std::uint8_t*
    - int
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2332
    functionDepth: 3
    functionLinenumber: 2332
    functionLinenumberEnd: 2450
    functionName: libtorrent::aux::utp_socket_impl::consume_incoming_data
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::utp_socket_impl::incoming
    - packet_ptr
    - std::memcpy
    - std::move
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - at
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - compare_less_wrap
    - insert
    - TORRENT_ASSERT
    - size
    - static_cast<void*>
    - remove
    - UTP_LOGV
    - aux::numeric_cast<packet_buffer::index_type>
    - utp_header*::get_type
    - UTP_LOG
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_impl::consume_incoming_data(\n\tutp_header const*
      ph, std::uint8_t const* ptr, int const payload_size\n\t, time_point const now)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2467,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2468,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:2468,1
    - Dst: libtorrent::aux::utp_socket_impl::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:2471,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2473,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2475,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2453
    functionDepth: 3
    functionLinenumber: 2453
    functionLinenumberEnd: 2480
    functionName: libtorrent::aux::utp_socket_impl::test_socket_state
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 18
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - message
    - TORRENT_ASSERT
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::cancel_handlers
    - UTP_LOGV
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::test_socket_state()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2487,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2492,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:2496,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2498,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mtu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2482
    functionDepth: 1
    functionLinenumber: 2482
    functionLinenumberEnd: 2500
    functionName: libtorrent::aux::utp_socket_impl::init_mtu
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - std::uint16_t
    - UTP_LOGV
    - static_cast<void*>
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::init_mtu(int const mtu)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: reinterpret_cast<utp_header const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2509,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2509,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2510,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2512,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2514,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2515,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2515,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2516,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_stream.cpp:2520,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2522,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2523,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_stream.cpp:2523,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2524,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2529,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2531,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2532,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2533,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2537,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2539,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2540,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2540,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2541,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2545,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2545,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:2547,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:2548,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2551,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2551,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2553,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2554,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2555,1
    - Dst: minutes
      Src: /src/libtorrent/src/utp_stream.cpp:2560,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2571,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2571,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:2572,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:2574,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2574,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2575,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2576,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2577,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2578,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2578,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:2580,1
    - Dst: adjust_base
      Src: /src/libtorrent/src/utp_stream.cpp:2585,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2588,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2589,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2592,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2593,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2607,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2608,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2609,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2613,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2613,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2614,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2615,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2618,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2620,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2621,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2630,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2634,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2635,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2635,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2640,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2641,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2645,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2645,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2647,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2648,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2649,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2656,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2657,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2658,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2662,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2664,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2666,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2667,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2670,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2670,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2672,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:2673,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2687,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2695,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2707,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2708,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/utp_stream.cpp:2713,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2713,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:2715,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2717,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2717,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2724,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2724,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:2734,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:2734,1
    - Dst: libtorrent::aux::utp_socket_impl::ack_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2740,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:2743,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2744,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2748,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2749,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2757,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2759,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2759,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2760,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2765,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2767,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2768,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2768,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2769,1
    - Dst: std::tie
      Src: /src/libtorrent/src/utp_stream.cpp:2777,1
    - Dst: libtorrent::aux::utp_socket_impl::parse_sack
      Src: /src/libtorrent/src/utp_stream.cpp:2777,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2778,1
    - Dst: libtorrent::aux::utp_socket_impl::parse_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:2782,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2792,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:2792,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2793,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2794,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:2794,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2801,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2802,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2806,1
    - Dst: libtorrent::aux::utp_socket_impl::experienced_loss
      Src: /src/libtorrent/src/utp_stream.cpp:2815,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2816,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2823,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2827,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2829,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2829,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2830,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2831,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2834,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2840,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2840,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2848,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2848,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2853,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2854,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2859,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2860,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2870,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2871,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2871,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:2874,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2876,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:2877,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2883,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2883,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2885,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2889,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2893,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:2895,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:2896,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2899,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:2899,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2905,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2906,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2911,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2912,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2916,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:2918,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2923,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2924,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2924,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2935,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2936,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2941,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2942,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2944,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2944,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2950,1
    - Dst: libtorrent::aux::utp_stream::on_connect
      Src: /src/libtorrent/src/utp_stream.cpp:2959,1
    - Dst: std::min_element
      Src: /src/libtorrent/src/utp_stream.cpp:2973,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2973,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2974,1
    - Dst: libtorrent::aux::utp_socket_impl::do_ledbat
      Src: /src/libtorrent/src/utp_stream.cpp:2980,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2981,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2984,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2984,1
    - Dst: libtorrent::aux::utp_socket_impl::consume_incoming_data
      Src: /src/libtorrent/src/utp_stream.cpp:2986,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2993,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2994,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2995,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:3001,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:3005,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:3015,1
    - Dst: libtorrent::aux::utp_socket_impl::subscribe_drained
      Src: /src/libtorrent/src/utp_stream.cpp:3020,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3022,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3022,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3027,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3027,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3028,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3028,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3031,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:3031,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:3037,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/utp_stream.cpp:3038,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:3038,1
    - Dst: strcpy
      Src: /src/libtorrent/src/utp_stream.cpp:3040,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:3043,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/utp_stream.cpp:3044,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:3044,1
    - Dst: strcpy
      Src: /src/libtorrent/src/utp_stream.cpp:3046,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:3048,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3081,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3085,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3086,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3090,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3094,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3095,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3095,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3098,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3099,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3100,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:3100,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:3101,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3104,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:3179,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:3179,1
    - Dst: libtorrent::aux::utp_socket_impl::consume_incoming_data
      Src: /src/libtorrent/src/utp_stream.cpp:3181,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3194,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3194,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3198,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3199,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3201,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3202,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3206,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3206,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3208,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3209,1
    - Dst: libtorrent::aux::utp_socket_impl::send_reset
      Src: /src/libtorrent/src/utp_stream.cpp:3219,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 270
    argCount: 3
    argNames:
    - b
    - ' ep'
    - receive_time
    argTypes:
    - span<char const>
    - udp::endpoint
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 2503
    functionDepth: 4
    functionLinenumber: 2503
    functionLinenumberEnd: 3224
    functionName: libtorrent::aux::utp_socket_impl::incoming_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::parse_sack
    - target_delay
    - auto*::get_version
    - span::size
    - std::move
    - begin
    - empty
    - std::uint32_t
    - std::min
    - std::max
    - span<char const>::size
    - minutes
    - libtorrent::aux::utp_socket_impl::subscribe_drained
    - mean
    - UTP_LOGV
    - auto*::get_type
    - add_sample
    - std::uint16_t
    - at
    - compare_less_wrap
    - end
    - static_cast<std::uint32_t>
    - reinterpret_cast<std::uint8_t const*>
    - adjust_base
    - libtorrent::aux::utp_socket_impl::experienced_loss
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - libtorrent::aux::utp_socket_impl::ack_packet
    - remove
    - address
    - UTP_LOG
    - libtorrent::aux::utp_stream::on_connect
    - base
    - std::int32_t
    - TORRENT_ASSERT_VAL
    - libtorrent::aux::utp_socket_impl::resend_packet
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - std::snprintf
    - span::data
    - libtorrent::aux::max
    - time_point::time_since_epoch
    - TORRENT_ASSERT
    - static_cast<void*>
    - milliseconds
    - total_milliseconds
    - port
    - aux::numeric_cast<packet_buffer::index_type>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - random
    - state
    - total_microseconds
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    - std::min_element
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::defer_ack
    - std::tie
    - libtorrent::aux::utp_socket_impl::do_ledbat
    - libtorrent::aux::utp_socket_impl::consume_incoming_data
    - span<char const>::data
    - libtorrent::aux::utp_socket_impl::send_reset
    - libtorrent::aux::utp_socket_impl::send_pkt
    - initialized
    - libtorrent::aux::utp_socket_impl::parse_close_reason
    - reinterpret_cast<utp_header const*>
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_impl::incoming_packet(span<char const> b\n\t, udp::endpoint
      const& ep, time_point receive_time)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3234,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3235,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3237,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3237,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3244,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3245,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3253,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3254,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3258,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3262,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3266,1
    - Dst: gain_factor
      Src: /src/libtorrent/src/utp_stream.cpp:3266,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3272,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3285,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3286,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3290,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:3304,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:3305,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3307,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3309,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3318,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3322,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:3324,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3327,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - acked_bytes
    - delay
    - in_flight
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3226
    functionDepth: 1
    functionLinenumber: 3226
    functionLinenumberEnd: 3340
    functionName: libtorrent::aux::utp_socket_impl::do_ledbat
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - target_delay
    - gain_factor
    - std::int32_t
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::int64_t
    - std::min
    - static_cast<void*>
    - std::max
    - inc_stats_counter
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::do_ledbat(const int acked_bytes, const int delay\n\t,
      const int in_flight)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3342
    functionDepth: 0
    functionLinenumber: 3342
    functionLinenumberEnd: 3342
    functionName: libtorrent::aux::utp_stream::bind
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::bind(endpoint_type const&, error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:3347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3348
    functionName: libtorrent::aux::utp_stream::cancel_handlers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_stream::cancel_handlers
    linkageType: ''
    returnType: void
    signature: void utp_stream::cancel_handlers(error_code const& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3358,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: min_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: avg_deviation
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3369
    functionName: libtorrent::aux::utp_socket_impl::packet_timeout
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - state
    - min_timeout
    - avg_deviation
    - std::max
    - mean
    linkageType: ''
    returnType: int
    signature: int utp_socket_impl::packet_timeout() const
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3376,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3377,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3383,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3383,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3388,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3388,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:3404,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:3413,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3418,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3421,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3423,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3425,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3433,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3438,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3439,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3450,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3450,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3459,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3461,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3461,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3463,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3464,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3476,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3476,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3489,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:3489,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:3493,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3494,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3496,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3496,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3499,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3502,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3505,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3506,1
    - Dst: syn_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3506,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3507,1
    - Dst: fin_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3507,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3510,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3511,1
    - Dst: restrict_mtu
      Src: /src/libtorrent/src/utp_stream.cpp:3522,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3526,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3527,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:3536,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3537,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3537,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:3539,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:3541,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3542,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3542,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3544,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3548,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3549,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 80
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3553
      start: 3371
    functionDepth: 4
    functionLinenumber: 3371
    functionLinenumberEnd: 3553
    functionName: libtorrent::aux::utp_socket_impl::tick
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - restrict_mtu
    - std::max
    - UTP_LOGV
    - num_resends
    - push_back
    - fin_resends
    - at
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - syn_resends
    - libtorrent::aux::utp_socket_impl::resend_packet
    - TORRENT_ASSERT
    - static_cast<void*>
    - milliseconds
    - static_cast<std::uint8_t>
    - aux::numeric_cast<packet_buffer::index_type>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::send_pkt
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::tick(time_point const now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3564
    functionName: libtorrent::aux::utp_socket_impl::check_receive_buffers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::accumulate
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::check_receive_buffers() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:3571,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:3572,1
    - Dst: span
      Src: /src/libtorrent/src/utp_stream.cpp:3572,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3575,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3581,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:3581,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3583,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3586,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3593,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3595
      start: 3568
    functionDepth: 1
    functionLinenumber: 3568
    functionLinenumberEnd: 3595
    functionName: libtorrent::aux::utp_socket_impl::check_invariant
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - span
    - state
    - at
    - reinterpret_cast<utp_header*>
    - cursor
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::utp_logger
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_logger()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/libtorrent/src/utp_stream.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ~utp_logger()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void ~utp_logger()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/utp_stream.cpp:89,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: va_start
      Src: /src/libtorrent/src/utp_stream.cpp:92,1
    - Dst: vfprintf
      Src: /src/libtorrent/src/utp_stream.cpp:93,1
    - Dst: va_end
      Src: /src/libtorrent/src/utp_stream.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::utp_log
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - total_microseconds
    - va_start
    - std::fprintf
    - va_end
    - vfprintf
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void utp_log(char const* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::is_utp_stream_logging
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_utp_stream_logging()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/utp_stream.cpp:106,1
    - Dst: fclose
      Src: /src/libtorrent/src/utp_stream.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::set_utp_stream_logging
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 9
    functionsReached:
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void set_utp_stream_logging(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: UTP_LOG
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTP_LOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: UTP_LOGV
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 78
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTP_LOGV(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - mask
    argTypes:
    - std::uint32_t
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::compare_less_wrap
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_less_wrap(std::uint32_t lhs\n\t, std::uint32_t rhs, std::uint32_t
      mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: connect_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:183,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:186,1
    - Dst: fill
      Src: /src/libtorrent/src/utp_stream.cpp:187,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - recv_id
    - send_id
    - userdata
    - ' sm'
    argTypes:
    - std::uint16_t
    - std::uint16_t
    - utp_stream*
    - utp_socket_manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 188
    functionName: libtorrent::aux::utp_socket_impl::utp_socket_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - libtorrent::aux::max
    - connect_timeout
    - TORRENT_ASSERT
    - fill
    - milliseconds
    - inc_stats_counter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::utp_socket_impl(std::uint16_t const recv_id\n\t,
      std::uint16_t const send_id\n\t, utp_stream* userdata, utp_socket_manager& sm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:192,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:195,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/utp_stream.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: libtorrent::aux::utp_socket_impl::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - state
    - address_v4::any
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint utp_socket_impl::remote_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allocate
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: libtorrent::aux::utp_socket_impl::acquire_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::utp_socket_impl::acquire_packet
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr utp_socket_impl::acquire_packet(int const allocate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::aux::utp_socket_impl::release_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::utp_socket_impl::release_packet
    - std::move
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::release_packet(packet_ptr p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:215,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:215,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:218,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:218,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:221,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:221,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:226,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:226,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:229,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: libtorrent::aux::utp_socket_impl::insert_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - std::move
    - packet_ptr::get
    - begin
    - erase
    - insert
    - reinterpret_cast<utp_header*>
    - std::find
    - end
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::release_packet
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::insert_packet(packet_ptr p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:236,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: libtorrent::aux::utp_socket_impl::abort
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - libtorrent::aux::utp_socket_impl::set_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:243,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' ep'
    - id
    argTypes:
    - udp::endpoint
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: libtorrent::aux::utp_socket_impl::match
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::match(udp::endpoint const& ep, std::uint16_t
      const id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: libtorrent::aux::utp_socket_impl::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint utp_socket_impl::remote_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:254,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::utp_socket_impl::send_deferred_ack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::send_pkt
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_deferred_ack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:268,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: libtorrent::aux::utp_socket_impl::socket_drained
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::socket_drained()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:289,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:289,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:294,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:296,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 302
    functionName: libtorrent::aux::utp_socket_impl::update_mtu_limits
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 8
    functionsReached:
    - std::int64_t
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::update_mtu_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::send_delay
      Src: /src/libtorrent/src/utp_stream.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: libtorrent::aux::utp_stream::send_delay
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::send_delay
    linkageType: ''
    returnType: int
    signature: int utp_stream::send_delay() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::recv_delay
      Src: /src/libtorrent/src/utp_stream.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: libtorrent::aux::utp_stream::recv_delay
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::recv_delay
    linkageType: ''
    returnType: int
    signature: int utp_stream::recv_delay() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: libtorrent::aux::utp_stream::utp_stream
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::utp_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: libtorrent::aux::utp_stream::get_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: utp_socket_impl
    signature: utp_socket_impl * utp_stream::get_impl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::set_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: libtorrent::aux::utp_stream::set_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::set_close_reason
    linkageType: ''
    returnType: void
    signature: void utp_stream::set_close_reason(close_reason_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: libtorrent::aux::utp_stream::get_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t utp_stream::get_close_reason() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::close
      Src: /src/libtorrent/src/utp_stream.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::utp_stream::close
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::close
    linkageType: ''
    returnType: void
    signature: void utp_stream::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::available
      Src: /src/libtorrent/src/utp_stream.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: libtorrent::aux::utp_stream::available
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::available
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::remote_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: libtorrent::aux::utp_stream::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::remote_endpoint
    linkageType: ''
    returnType: utp_stream::endpoint_type
    signature: utp_stream::endpoint_type utp_stream::remote_endpoint(error_code& ec)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_sock::lock
      Src: /src/libtorrent/src/utp_stream.cpp:366,1
    - Dst: auto::get_local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:373,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/utp_stream.cpp:374,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/src/utp_stream.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::utp_stream::local_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - udp::endpoint::port
    - udp::endpoint::address
    - m_sock::lock
    - auto::get_local_endpoint
    linkageType: ''
    returnType: utp_stream::endpoint_type
    signature: utp_stream::endpoint_type utp_stream::local_endpoint(error_code& ec)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_userdata
      Src: /src/libtorrent/src/utp_stream.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - utp_stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: libtorrent::aux::utp_stream::utp_stream
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - set_userdata
    linkageType: ''
    returnType: void
    signature: void utp_stream::utp_stream(utp_stream&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:392,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:392,1
    - Dst: destroy
      Src: /src/libtorrent/src/utp_stream.cpp:393,1
    - Dst: detach
      Src: /src/libtorrent/src/utp_stream.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: utp_stream::~utp_stream()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - destroy
    - UTP_LOGV
    - static_cast<void*>
    - detach
    linkageType: ''
    returnType: void
    signature: void utp_stream::~utp_stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - impl
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: libtorrent::aux::utp_stream::set_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_stream::set_impl(utp_socket_impl* impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:409,1
    - Dst: receive_buffer_size
      Src: /src/libtorrent/src/utp_stream.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::utp_stream::read_buffer_size
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - receive_buffer_size
    linkageType: ''
    returnType: int
    signature: int utp_stream::read_buffer_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - reason
    argTypes:
    - utp_stream*
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: libtorrent::aux::utp_stream::on_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_close_reason(utp_stream* s, close_reason_t reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:424,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:424,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:427,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:428,1
    - Dst: utp_stream*::m_impl::null_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:428,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:433,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - s
    - bytes_transferred
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - std::size_t
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: libtorrent::aux::utp_stream::on_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - utp_stream*::m_impl::null_buffers
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_stream::on_read(utp_stream* s, std::size_t const bytes_transferred\n\t,
      error_code const& ec, bool const shutdown)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:442,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:443,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:446,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:452,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - s
    - bytes_transferred
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - std::size_t
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: libtorrent::aux::utp_stream::on_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_stream::on_write(utp_stream* s, std::size_t const bytes_transferred\n\t,
      error_code const& ec, bool const shutdown)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:460,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:461,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:462,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:464,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - ' ec'
    argTypes:
    - utp_stream*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: libtorrent::aux::utp_stream::on_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - post
    - message
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_writeable(utp_stream* s, error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:471,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:473,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:474,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:476,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:481,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 485
    functionName: libtorrent::aux::utp_stream::on_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_connect(utp_stream* s, error_code const& ec, bool
      const shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:492,1
    - Dst: libtorrent::aux::utp_stream::add_read_buffer
      Src: /src/libtorrent/src/utp_stream.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 494
    functionName: libtorrent::aux::utp_stream::add_read_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::add_read_buffer
    linkageType: ''
    returnType: void
    signature: void utp_stream::add_read_buffer(void* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:501,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:503,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:504,1
    - Dst: libtorrent::aux::utp_stream::add_write_buffer
      Src: /src/libtorrent/src/utp_stream.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: libtorrent::aux::utp_stream::add_write_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::add_write_buffer
    linkageType: ''
    returnType: void
    signature: void utp_stream::add_write_buffer(void const* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:510,1
    - Dst: libtorrent::aux::utp_stream::check_fin_sent
      Src: /src/libtorrent/src/utp_stream.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: libtorrent::aux::utp_stream::check_fin_sent
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::check_fin_sent
    linkageType: ''
    returnType: bool
    signature: bool utp_stream::check_fin_sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::issue_read
      Src: /src/libtorrent/src/utp_stream.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: libtorrent::aux::utp_stream::issue_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::issue_read
    linkageType: ''
    returnType: void
    signature: void utp_stream::issue_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::read_some
      Src: /src/libtorrent/src/utp_stream.cpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clear_buffers
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: libtorrent::aux::utp_stream::read_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::read_some(bool const clear_buffers, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::write_some
      Src: /src/libtorrent/src/utp_stream.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clear_buffers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: libtorrent::aux::utp_stream::write_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::write_some(bool const clear_buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::issue_write
      Src: /src/libtorrent/src/utp_stream.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: libtorrent::aux::utp_stream::issue_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::issue_write
    linkageType: ''
    returnType: void
    signature: void utp_stream::issue_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::subscribe_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: libtorrent::aux::utp_stream::subscribe_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::subscribe_writeable
    linkageType: ''
    returnType: void
    signature: void utp_stream::subscribe_writeable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::do_connect
      Src: /src/libtorrent/src/utp_stream.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: libtorrent::aux::utp_stream::do_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::do_connect
    linkageType: ''
    returnType: void
    signature: void utp_stream::do_connect(tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:557,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:557,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:559,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/utp_stream.cpp:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 561
    functionName: libtorrent::aux::utp_socket_impl::add_read_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - UTP_LOGV
    - reinterpret_cast<char*>
    - static_cast<void*>
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::add_read_buffer(void* buf, int const len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:565,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:566,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/src/utp_stream.cpp:566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:574,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:576,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:579,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:587,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 591
    functionName: libtorrent::aux::utp_socket_impl::add_write_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - emplace_back
    - reinterpret_cast<char const*>
    - UTP_LOGV
    - static_cast<void const*>
    - size
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::add_write_buffer(void const* buf, int const len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:595,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:596,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:601,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:603,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:604,1
    - Dst: libtorrent::aux::utp_socket_impl::read_some
      Src: /src/libtorrent/src/utp_stream.cpp:611,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 613
    functionName: libtorrent::aux::utp_socket_impl::issue_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    - libtorrent::aux::utp_socket_impl::read_some
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::issue_read()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:617,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:618,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:624,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:627,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:636,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:641,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:642,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:644,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:646,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:648,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:648,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:653,1
    - Dst: auto::get
      Src: /src/libtorrent/src/utp_stream.cpp:656,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:660,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:660,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:661,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:662,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:663,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:663,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:664,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: auto::data
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:667,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:667,1
    - Dst: auto::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:668,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:670,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:672,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:674,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:675,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:675,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:678,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:684,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:684,1
    - Dst: auto::reset
      Src: /src/libtorrent/src/utp_stream.cpp:685,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:690,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:693,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:694,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:700,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:700,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:701,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:704,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:704,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:706,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:707,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:712,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:714,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:718,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - clear_buffers
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 725
    functionName: libtorrent::aux::utp_socket_impl::read_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - std::move
    - begin
    - auto::get
    - empty
    - std::min
    - libtorrent::aux::utp_socket_impl::release_packet
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::check_receive_buffers
    - auto::subspan
    - std::uint16_t
    - end
    - std::size_t
    - clear
    - erase
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - auto::size
    - static_cast<void*>
    - std::ptrdiff_t
    - auto::data
    - std::memcpy
    - auto::reset
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::read_some(bool const clear_buffers, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:729,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:730,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:732,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:733,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:735,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:743,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:746,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:751,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 754
    functionName: libtorrent::aux::utp_socket_impl::issue_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::issue_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:758,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
      Src: /src/libtorrent/src/utp_stream.cpp:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: libtorrent::aux::utp_socket_impl::subscribe_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::subscribe_writeable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: libtorrent::aux::utp_socket_impl::check_fin_sent
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::check_fin_sent() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:773,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:778,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - clear_buffers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 782
    functionName: libtorrent::aux::utp_socket_impl::write_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - clear
    - libtorrent::aux::utp_socket_impl::send_pkt
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::write_some(bool const clear_buffers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtu_for_dest
      Src: /src/libtorrent/src/utp_stream.cpp:786,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:786,1
    - Dst: libtorrent::aux::utp_socket_impl::init_mtu
      Src: /src/libtorrent/src/utp_stream.cpp:787,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:788,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:789,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:790,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:794,1
    - Dst: libtorrent::aux::utp_socket_impl::send_syn
      Src: /src/libtorrent/src/utp_stream.cpp:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 796
    functionName: libtorrent::aux::utp_socket_impl::do_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::send_syn
    - TORRENT_ASSERT
    - mtu_for_dest
    - port
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - address
    - libtorrent::aux::utp_socket_impl::init_mtu
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::do_connect(tcp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cancel_deferred_ack
      Src: /src/libtorrent/src/utp_stream.cpp:805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:808,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:810,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:812,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:812,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: capacity
      Src: /src/libtorrent/src/utp_stream.cpp:816,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:819,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:820,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:820,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: capacity
      Src: /src/libtorrent/src/utp_stream.cpp:823,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:826,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:832,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:832,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:836,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:836,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:838,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:838,1
    - Dst: reset
      Src: /src/libtorrent/src/utp_stream.cpp:839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 840
    functionName: utp_socket_impl::~utp_socket_impl()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - release_packet
    - reset
    - std::move
    - std::uint16_t
    - cancel_deferred_ack
    - cursor
    - TORRENT_ASSERT
    - inc_stats_counter
    - static_cast<void*>
    - remove
    - capacity
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::~utp_socket_impl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:857,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:857,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:862,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/src/utp_stream.cpp:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 866
    functionName: libtorrent::aux::utp_socket_impl::should_delete
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - static_cast<void const*>
    - state
    - UTP_LOGV
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::should_delete() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:878,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:878,1
    - Dst: libtorrent::aux::utp_stream::on_read
      Src: /src/libtorrent/src/utp_stream.cpp:881,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:881,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 885
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 8
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::utp_stream::on_read
    - static_cast<void*>
    - clear
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_receive_callback(error_code const&
      ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:896,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:896,1
    - Dst: libtorrent::aux::utp_stream::on_write
      Src: /src/libtorrent/src/utp_stream.cpp:900,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:900,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:903,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:906,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:907,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 908
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 10
    functionsReached:
    - state
    - libtorrent::aux::utp_stream::on_write
    - aux::numeric_cast<std::size_t>
    - static_cast<void*>
    - clear
    - libtorrent::aux::utp_socket_impl::send_fin
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_send_callback(error_code const&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::on_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 921
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::utp_stream::on_writeable
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_writeable_callback(error_code const&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:926,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:927,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - code
    argTypes:
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: libtorrent::aux::utp_socket_impl::set_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::set_close_reason(close_reason_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:935,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:935,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:940,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:944,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:945,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 947
    functionName: libtorrent::aux::utp_socket_impl::close
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - state
    - at
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:954,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:955,1
    - Dst: libtorrent::aux::utp_socket_impl::close
      Src: /src/libtorrent/src/utp_stream.cpp:960,1
    - Dst: libtorrent::aux::utp_socket_impl::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:962,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:966,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:969,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:972,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:973,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:974,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:976,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:978,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 983
    functionName: libtorrent::aux::utp_socket_impl::destroy
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::close
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::cancel_handlers
    - clear
    - UTP_LOGV
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::destroy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:989,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 991
    functionName: libtorrent::aux::utp_socket_impl::detach
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::detach()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:997,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:997,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1003,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1012,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1025,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1027,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1028,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1028,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1031,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1032,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1033,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1033,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1037,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1037,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1038,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1043,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1043,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:1048,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:1051,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:1051,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1055,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1055,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1057,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1066,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1066,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1067,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1068,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/src/utp_stream.cpp:1068,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:1069,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1073,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1074,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1076,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 993
    functionDepth: 4
    functionLinenumber: 993
    functionLinenumberEnd: 1078
    functionName: libtorrent::aux::utp_socket_impl::send_syn
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - std::uint32_t
    - libtorrent::aux::utp_socket_impl::release_packet
    - UTP_LOGV
    - push_back
    - packet_ptr::get
    - std::uint16_t
    - at
    - reinterpret_cast<utp_header*>
    - print_endpoint
    - time_now
    - subscribe_writable
    - time_point::time_since_epoch
    - TORRENT_ASSERT
    - static_cast<void*>
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - reinterpret_cast<std::uint8_t*>
    - random
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - insert
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_syn()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1086,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1086,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1088,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
      Src: /src/libtorrent/src/utp_stream.cpp:1090,1
    - Dst: libtorrent::aux::utp_socket_impl::should_delete
      Src: /src/libtorrent/src/utp_stream.cpp:1091,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1095,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1096,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1099,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1105,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1106,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:1107,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:1109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1083
    functionDepth: 4
    functionLinenumber: 1083
    functionLinenumberEnd: 1110
    functionName: libtorrent::aux::utp_socket_impl::writable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    - at
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - libtorrent::aux::utp_socket_impl::should_delete
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::writable()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1118,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1120,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1125,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1130,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1130,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1131,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1133,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1134,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1138,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1112
    functionDepth: 4
    functionLinenumber: 1112
    functionLinenumberEnd: 1140
    functionName: libtorrent::aux::utp_socket_impl::send_fin
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::utp_socket_impl::set_state
    - message
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_fin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1152,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:1152,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1154,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1155,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1156,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1156,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1158,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1159,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1163,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1163,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1164,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1167,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1168,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ack_nr
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1171
    functionName: libtorrent::aux::utp_socket_impl::send_reset
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - time_now
    - total_microseconds
    - send_packet
    - std::uint16_t
    - std::uint32_t
    - time_point::time_since_epoch
    - static_cast<void*>
    - local_endpoint
    - error_code::message
    - reinterpret_cast<char const*>
    - UTP_LOGV
    - random
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_reset(std::uint16_t const ack_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1176
    functionName: libtorrent::aux::utp_socket_impl::available
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::available() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<close_reason_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1183,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/utp_stream.cpp:1183,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1185,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1186,1
    - Dst: libtorrent::aux::utp_stream::on_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:1190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1191
    functionName: libtorrent::aux::utp_socket_impl::parse_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_uint16
    - libtorrent::aux::utp_stream::on_close_reason
    - static_cast<void*>
    - UTP_LOGV
    - static_cast<close_reason_t>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::parse_close_reason(std::uint8_t const* ptr, int
      const size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/utp_stream.cpp:1206,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:1206,1
    - Dst: unsigned
      Src: /src/libtorrent/src/utp_stream.cpp:1209,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1218,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1219,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/utp_stream.cpp:1219,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1226,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1229,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:1247,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:1247,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1253,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: libtorrent::aux::utp_socket_impl::ack_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:1260,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1263,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/utp_stream.cpp:1264,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1280,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1310,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1311,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1322,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1322,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1333,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1334,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1335,1
    - Dst: libtorrent::aux::utp_socket_impl::experienced_loss
      Src: /src/libtorrent/src/utp_stream.cpp:1342,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1346,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 4
    argNames:
    - packet_ack
    - ptr
    - size
    - now
    argTypes:
    - std::uint16_t
    - std::uint8_t*
    - int
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1194
    functionDepth: 3
    functionLinenumber: 1194
    functionLinenumberEnd: 1355
    functionName: libtorrent::aux::utp_socket_impl::parse_sack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - empty
    - std::min
    - UTP_LOGV
    - std::uint16_t
    - at
    - compare_less_wrap
    - libtorrent::aux::utp_socket_impl::experienced_loss
    - std::size_t
    - remove
    - libtorrent::aux::utp_socket_impl::ack_packet
    - unsigned
    - libtorrent::aux::utp_socket_impl::resend_packet
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - static_cast<void*>
    - aux::numeric_cast<packet_buffer::index_type>
    - std::string::c_str
    - aux::array::size
    - std::string::reserve
    linkageType: ''
    returnType: std::pair<std::uint32_t, int>
    signature: "std::pair<std::uint32_t, int> utp_socket_impl::parse_sack(std::uint16_t
      const packet_ack\n\t, std::uint8_t const* ptr, int const size, time_point const
      now)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1372,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1373,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1381,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:1381,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1385,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1386,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: auto::data
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: auto::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:1391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1392,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:1394,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:1399,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1399,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1407,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1411
    functionName: libtorrent::aux::utp_socket_impl::write_payload
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - auto::subspan
    - std::memcpy
    - begin
    - erase
    - empty
    - end
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - auto::size
    - std::size_t
    - size
    - std::ptrdiff_t
    - auto::data
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::write_payload(std::uint8_t* ptr, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1419,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1419,1
    - Dst: libtorrent::aux::utp_socket_impl::subscribe_drained
      Src: /src/libtorrent/src/utp_stream.cpp:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1422
    functionName: libtorrent::aux::utp_socket_impl::subscribe_drained
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::subscribe_drained
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::subscribe_drained()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1430,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1430,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1433
    functionName: libtorrent::aux::utp_socket_impl::defer_ack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::defer_ack
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::defer_ack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1447,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1450,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1451,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1453,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1454,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1454,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/utp_stream.cpp:1455,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1456,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1458
    functionName: libtorrent::aux::utp_socket_impl::remove_sack_header
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - std::memmove
    - reinterpret_cast<utp_header*>
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::remove_sack_header(packet* p)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1477,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1492,1
    - Dst: front
      Src: /src/libtorrent/src/utp_stream.cpp:1494,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1495,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1496,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1504,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1504,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1510,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1528,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1531,1
    - Dst: span
      Src: /src/libtorrent/src/utp_stream.cpp:1540,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1550,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1550,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1555,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1558,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1563,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1573,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1575,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1581,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1584,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1585,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1585,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1586,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1598,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1601,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1602,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1602,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1603,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1620,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1621,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:1625,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1629,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1630,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1638,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1641,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1648,1
    - Dst: libtorrent::aux::utp_socket_impl::write_payload
      Src: /src/libtorrent/src/utp_stream.cpp:1650,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1656,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1657,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1660,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1660,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1663,1
    - Dst: reset
      Src: /src/libtorrent/src/utp_stream.cpp:1664,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1668,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1677,1
    - Dst: libtorrent::aux::utp_socket_impl::remove_sack_header
      Src: /src/libtorrent/src/utp_stream.cpp:1680,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:1680,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1691,1
    - Dst: libtorrent::aux::utp_socket_impl::write_payload
      Src: /src/libtorrent/src/utp_stream.cpp:1697,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1698,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1702,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1703,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1711,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1714,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1718,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1725,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1726,1
    - Dst: libtorrent::aux::utp_socket_impl::write_sack
      Src: /src/libtorrent/src/utp_stream.cpp:1727,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1729,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/utp_stream.cpp:1736,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1737,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1741,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1745,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1752,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1757,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1758,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1775,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:1775,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1785,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1787,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1788,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1788,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:1791,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1795,1
    - Dst: utp_header*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:1795,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1796,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1796,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1797,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1798,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1799,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1804,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1804,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1805,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1811,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1812,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:1813,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1817,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:1819,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/utp_stream.cpp:1824,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1827,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1827,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1829,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1829,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1830,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1836,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1836,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1838,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:1840,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1844,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1849,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1850,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1851,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1851,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:1857,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1862,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:1862,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1864,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1865,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:1865,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1872,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1873,1
    - Dst: cancel_deferred_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1876,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1886,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1888,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1892,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1897,1
    - Dst: libtorrent::aux::utp_socket_impl::insert_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1903,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1903,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1904,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1906,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1906,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1908,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1913,1
    - Dst: libtorrent::aux::utp_socket_impl::insert_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1914,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1914,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1918,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1925,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:1927,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 191
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1468
    functionDepth: 4
    functionLinenumber: 1468
    functionLinenumberEnd: 1935
    functionName: libtorrent::aux::utp_socket_impl::send_pkt
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 19
    functionsReached:
    - span
    - std::move
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - empty
    - std::uint32_t
    - std::min
    - error_code::clear
    - libtorrent::aux::utp_socket_impl::release_packet
    - std::max
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::insert_packet
    - reset
    - packet_ptr::get
    - std::uint8_t
    - std::uint16_t
    - message
    - reinterpret_cast<utp_header*>
    - static_cast<std::uint32_t>
    - compare_less_wrap
    - front
    - print_endpoint
    - cancel_deferred_ack
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - error_code::message
    - UTP_LOG
    - time_now
    - subscribe_writable
    - libtorrent::aux::utp_socket_impl::resend_packet
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::write_payload
    - time_point::time_since_epoch
    - static_cast<void*>
    - milliseconds
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - state
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::defer_ack
    - libtorrent::aux::utp_socket_impl::remove_sack_header
    - libtorrent::aux::write_uint32
    - local_endpoint
    - libtorrent::aux::utp_socket_impl::write_sack
    - utp_header*::get_type
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::send_pkt(int const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1942,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1942,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1952,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:1952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1957
    functionName: libtorrent::aux::utp_socket_impl::write_sack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - at
    - aux::numeric_cast<packet_buffer::index_type>
    - size
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::write_sack(std::uint8_t* buf, int const size)
      const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1964,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:1977,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1985,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2000,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2003,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2004,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:2011,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:2014,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2015,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2016,1
    - Dst: packet*::send_time::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:2016,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2024,1
    - Dst: libtorrent::aux::utp_socket_impl::write_sack
      Src: /src/libtorrent/src/utp_stream.cpp:2027,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2028,1
    - Dst: libtorrent::aux::utp_socket_impl::remove_sack_header
      Src: /src/libtorrent/src/utp_stream.cpp:2032,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2039,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2039,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2040,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2043,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2046,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2046,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2047,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2047,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:2048,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2049,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2050,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2056,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2056,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2058,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:2060,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:2063,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2071,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2071,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2077,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:2078,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2083,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 2
    argNames:
    - p
    - fast_resend
    argTypes:
    - packet*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 1959
    functionDepth: 4
    functionLinenumber: 1959
    functionLinenumberEnd: 2090
    functionName: libtorrent::aux::utp_socket_impl::resend_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 10
    functionsReached:
    - begin
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - std::uint32_t
    - std::min
    - UTP_LOGV
    - num_resends
    - push_back
    - auto*::get_type
    - reinterpret_cast<utp_header*>
    - std::find
    - end
    - print_endpoint
    - inc_stats_counter
    - error_code::message
    - packet*::send_time::time_since_epoch
    - time_now
    - subscribe_writable
    - TORRENT_ASSERT_VAL
    - erase
    - TORRENT_ASSERT
    - static_cast<void*>
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::remove_sack_header
    - local_endpoint
    - libtorrent::aux::utp_socket_impl::write_sack
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::resend_packet(packet* p, bool fast_resend)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2099,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2110,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2115,1
    - Dst: cwnd_reduce_timer
      Src: /src/libtorrent/src/utp_stream.cpp:2115,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2118,1
    - Dst: loss_multiplier
      Src: /src/libtorrent/src/utp_stream.cpp:2118,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:2119,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2121,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2122,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2129,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2131,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - seq_nr
    - now
    argTypes:
    - std::uint32_t
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2092
    functionDepth: 1
    functionLinenumber: 2092
    functionLinenumberEnd: 2134
    functionName: libtorrent::aux::utp_socket_impl::experienced_loss
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - std::int32_t
    - compare_less_wrap
    - loss_multiplier
    - std::int64_t
    - milliseconds
    - inc_stats_counter
    - std::max
    - static_cast<void*>
    - cwnd_reduce_timer
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::experienced_loss(std::uint32_t const seq_nr,
      time_point const now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2138,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2140,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2141,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2143
    functionName: libtorrent::aux::utp_socket_impl::set_state
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 24
    functionsReached:
    - state
    - inc_stats_counter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::set_state(state_t const s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2160,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2161,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2179
    functionName: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - state
    - at
    - compare_less_wrap
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_inc_acked_seq_nr()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2189,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2193,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:2193,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2198,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2202,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2208,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2210,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:2211,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:2215,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2217,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2217,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/utp_stream.cpp:2224,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2227,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2228,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2230,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2231,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - p
    - receive_time
    - seq_nr
    argTypes:
    - packet_ptr
    - time_point
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2182
    functionDepth: 2
    functionLinenumber: 2182
    functionLinenumberEnd: 2233
    functionName: libtorrent::aux::utp_socket_impl::ack_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - total_microseconds
    - std::move
    - packet_ptr::get
    - begin
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - add_sample
    - erase
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - end
    - reinterpret_cast<utp_header*>
    - std::find
    - std::uint32_t
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - libtorrent::aux::utp_socket_impl::release_packet
    - static_cast<void*>
    - std::max
    - UTP_LOGV
    linkageType: ''
    returnType: std::uint32_t
    signature: "std::uint32_t utp_socket_impl::ack_packet(packet_ptr p, time_point
      const receive_time\n\t, std::uint16_t seq_nr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2247,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2248,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2250,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2252,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2256,1
    - Dst: front
      Src: /src/libtorrent/src/utp_stream.cpp:2258,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: iovec_t*::size
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2261,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: iovec_t*::data
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: iovec_t*::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:2264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2266,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2269,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2269,1
    - Dst: iovec_t*::size
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2273,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2279,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2280,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2285,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2289,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2290,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2291,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2293,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2293,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:2297,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2297,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2299,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2299,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:2302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - buf
    - size
    - p
    argTypes:
    - std::uint8_t*
    - int
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2304
    functionName: libtorrent::aux::utp_socket_impl::incoming
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - iovec_t*::data
    - std::move
    - begin
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - empty
    - std::min
    - libtorrent::aux::utp_socket_impl::release_packet
    - emplace_back
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::check_receive_buffers
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - front
    - std::size_t
    - erase
    - TORRENT_ASSERT
    - iovec_t*::subspan
    - static_cast<void*>
    - std::ptrdiff_t
    - std::memcpy
    - iovec_t*::size
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::incoming(std::uint8_t const* buf, int size,
      packet_ptr p\n\t, time_point /* now */)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2314,1
    - Dst: libtorrent::aux::utp_stream::on_read
      Src: /src/libtorrent/src/utp_stream.cpp:2325,1
    - Dst: libtorrent::aux::utp_stream::on_write
      Src: /src/libtorrent/src/utp_stream.cpp:2326,1
    - Dst: libtorrent::aux::utp_stream::on_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:2327,1
    - Dst: libtorrent::aux::utp_stream::on_connect
      Src: /src/libtorrent/src/utp_stream.cpp:2328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ' ec'
    - shutdown
    argTypes:
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2306
    functionDepth: 2
    functionLinenumber: 2306
    functionLinenumberEnd: 2330
    functionName: libtorrent::aux::utp_socket_impl::cancel_handlers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::utp_stream::on_connect
    - libtorrent::aux::utp_stream::on_write
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::on_read
    - libtorrent::aux::utp_stream::on_writeable
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::cancel_handlers(error_code const& ec, bool shutdown)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utp_header*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2338,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2344,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2345,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2356,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2358,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2364,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2364,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2368,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2369,1
    - Dst: libtorrent::aux::utp_socket_impl::incoming
      Src: /src/libtorrent/src/utp_stream.cpp:2374,1
    - Dst: packet_ptr
      Src: /src/libtorrent/src/utp_stream.cpp:2374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2379,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2379,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2381,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2382,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2382,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:2388,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:2388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2392,1
    - Dst: libtorrent::aux::utp_socket_impl::incoming
      Src: /src/libtorrent/src/utp_stream.cpp:2395,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2395,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2397,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2399,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2400,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2400,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2410,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2412,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2413,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2418,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2420,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2421,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2427,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2428,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2433,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2434,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2441,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2441,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:2443,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2443,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2445,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2446,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2446,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 4
    argNames:
    - ph
    - ptr
    - payload_size
    - now
    argTypes:
    - utp_header*
    - std::uint8_t*
    - int
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2332
    functionDepth: 3
    functionLinenumber: 2332
    functionLinenumberEnd: 2450
    functionName: libtorrent::aux::utp_socket_impl::consume_incoming_data
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::utp_socket_impl::incoming
    - packet_ptr
    - std::memcpy
    - std::move
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - at
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - compare_less_wrap
    - insert
    - TORRENT_ASSERT
    - size
    - static_cast<void*>
    - remove
    - UTP_LOGV
    - aux::numeric_cast<packet_buffer::index_type>
    - utp_header*::get_type
    - UTP_LOG
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_impl::consume_incoming_data(\n\tutp_header const*
      ph, std::uint8_t const* ptr, int const payload_size\n\t, time_point const now)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2467,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2468,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:2468,1
    - Dst: libtorrent::aux::utp_socket_impl::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:2471,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2473,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2475,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2453
    functionDepth: 3
    functionLinenumber: 2453
    functionLinenumberEnd: 2480
    functionName: libtorrent::aux::utp_socket_impl::test_socket_state
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 28
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - message
    - TORRENT_ASSERT
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::cancel_handlers
    - UTP_LOGV
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::test_socket_state()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2487,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2492,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:2496,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2498,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mtu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2482
    functionDepth: 1
    functionLinenumber: 2482
    functionLinenumberEnd: 2500
    functionName: libtorrent::aux::utp_socket_impl::init_mtu
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - std::uint16_t
    - UTP_LOGV
    - static_cast<void*>
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::init_mtu(int const mtu)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: reinterpret_cast<utp_header const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2509,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2509,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2510,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2512,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2514,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2515,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2515,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2516,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_stream.cpp:2520,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2522,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2523,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_stream.cpp:2523,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2524,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2529,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2531,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2532,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2533,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2537,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2539,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2540,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2540,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2541,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2545,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2545,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:2547,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:2548,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2551,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2551,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2553,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2554,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2555,1
    - Dst: minutes
      Src: /src/libtorrent/src/utp_stream.cpp:2560,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2571,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2571,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:2572,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:2574,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2574,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2575,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2576,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2577,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2578,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2578,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:2580,1
    - Dst: adjust_base
      Src: /src/libtorrent/src/utp_stream.cpp:2585,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2588,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2589,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2592,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2593,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2607,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2608,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2609,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2613,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2613,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2614,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2615,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2618,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2620,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2621,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2630,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2634,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2635,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2635,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2640,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2641,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2645,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2645,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2647,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2648,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2649,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2656,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2657,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2658,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2662,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2664,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2666,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2667,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2670,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2670,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2672,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:2673,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2687,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2695,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2707,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2708,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/utp_stream.cpp:2713,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2713,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:2715,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2717,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2717,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2724,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2724,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:2734,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:2734,1
    - Dst: libtorrent::aux::utp_socket_impl::ack_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2740,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:2743,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2744,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2748,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2749,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2757,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2759,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2759,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2760,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2765,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2767,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2768,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2768,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2769,1
    - Dst: std::tie
      Src: /src/libtorrent/src/utp_stream.cpp:2777,1
    - Dst: libtorrent::aux::utp_socket_impl::parse_sack
      Src: /src/libtorrent/src/utp_stream.cpp:2777,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2778,1
    - Dst: libtorrent::aux::utp_socket_impl::parse_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:2782,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2792,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:2792,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2793,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2794,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:2794,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2801,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2802,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2806,1
    - Dst: libtorrent::aux::utp_socket_impl::experienced_loss
      Src: /src/libtorrent/src/utp_stream.cpp:2815,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2816,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2823,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2827,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2829,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2829,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2830,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2831,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2834,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2840,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2840,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2848,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2848,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2853,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2854,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2859,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2860,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2870,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2871,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2871,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:2874,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2876,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:2877,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2883,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2883,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2885,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2889,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2893,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:2895,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:2896,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2899,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:2899,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2905,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2906,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2911,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2912,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2916,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:2918,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2923,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2924,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2924,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2935,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2936,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2941,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2942,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2944,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2944,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2950,1
    - Dst: libtorrent::aux::utp_stream::on_connect
      Src: /src/libtorrent/src/utp_stream.cpp:2959,1
    - Dst: std::min_element
      Src: /src/libtorrent/src/utp_stream.cpp:2973,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2973,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2974,1
    - Dst: libtorrent::aux::utp_socket_impl::do_ledbat
      Src: /src/libtorrent/src/utp_stream.cpp:2980,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2981,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2984,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2984,1
    - Dst: libtorrent::aux::utp_socket_impl::consume_incoming_data
      Src: /src/libtorrent/src/utp_stream.cpp:2986,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2993,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2994,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2995,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:3001,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:3005,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:3015,1
    - Dst: libtorrent::aux::utp_socket_impl::subscribe_drained
      Src: /src/libtorrent/src/utp_stream.cpp:3020,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3022,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3022,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3027,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3027,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3028,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3028,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3031,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:3031,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:3037,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/utp_stream.cpp:3038,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:3038,1
    - Dst: strcpy
      Src: /src/libtorrent/src/utp_stream.cpp:3040,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:3043,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/utp_stream.cpp:3044,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:3044,1
    - Dst: strcpy
      Src: /src/libtorrent/src/utp_stream.cpp:3046,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:3048,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3081,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3085,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3086,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3090,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3094,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3095,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3095,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3098,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3099,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3100,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:3100,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:3101,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3104,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:3179,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:3179,1
    - Dst: libtorrent::aux::utp_socket_impl::consume_incoming_data
      Src: /src/libtorrent/src/utp_stream.cpp:3181,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3194,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3194,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3198,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3199,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3201,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3202,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3206,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3206,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3208,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3209,1
    - Dst: libtorrent::aux::utp_socket_impl::send_reset
      Src: /src/libtorrent/src/utp_stream.cpp:3219,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 270
    argCount: 3
    argNames:
    - b
    - ' ep'
    - receive_time
    argTypes:
    - span<char const>
    - udp::endpoint
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 2503
    functionDepth: 4
    functionLinenumber: 2503
    functionLinenumberEnd: 3224
    functionName: libtorrent::aux::utp_socket_impl::incoming_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::parse_sack
    - target_delay
    - auto*::get_version
    - span::size
    - std::move
    - begin
    - empty
    - std::uint32_t
    - std::min
    - std::max
    - span<char const>::size
    - minutes
    - libtorrent::aux::utp_socket_impl::subscribe_drained
    - mean
    - UTP_LOGV
    - auto*::get_type
    - add_sample
    - std::uint16_t
    - at
    - compare_less_wrap
    - end
    - static_cast<std::uint32_t>
    - reinterpret_cast<std::uint8_t const*>
    - adjust_base
    - libtorrent::aux::utp_socket_impl::experienced_loss
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - libtorrent::aux::utp_socket_impl::ack_packet
    - remove
    - address
    - UTP_LOG
    - libtorrent::aux::utp_stream::on_connect
    - base
    - std::int32_t
    - TORRENT_ASSERT_VAL
    - libtorrent::aux::utp_socket_impl::resend_packet
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - std::snprintf
    - span::data
    - libtorrent::aux::max
    - time_point::time_since_epoch
    - TORRENT_ASSERT
    - static_cast<void*>
    - milliseconds
    - total_milliseconds
    - port
    - aux::numeric_cast<packet_buffer::index_type>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - random
    - state
    - total_microseconds
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    - std::min_element
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::defer_ack
    - std::tie
    - libtorrent::aux::utp_socket_impl::do_ledbat
    - libtorrent::aux::utp_socket_impl::consume_incoming_data
    - span<char const>::data
    - libtorrent::aux::utp_socket_impl::send_reset
    - libtorrent::aux::utp_socket_impl::send_pkt
    - initialized
    - libtorrent::aux::utp_socket_impl::parse_close_reason
    - reinterpret_cast<utp_header const*>
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_impl::incoming_packet(span<char const> b\n\t, udp::endpoint
      const& ep, time_point receive_time)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3234,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3235,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3237,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3237,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3244,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3245,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3253,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3254,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3258,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3262,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3266,1
    - Dst: gain_factor
      Src: /src/libtorrent/src/utp_stream.cpp:3266,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3272,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3285,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3286,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3290,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:3304,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:3305,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3307,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3309,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3318,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3322,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:3324,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3327,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - acked_bytes
    - delay
    - in_flight
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3226
    functionDepth: 1
    functionLinenumber: 3226
    functionLinenumberEnd: 3340
    functionName: libtorrent::aux::utp_socket_impl::do_ledbat
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - target_delay
    - gain_factor
    - std::int32_t
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::int64_t
    - std::min
    - static_cast<void*>
    - std::max
    - inc_stats_counter
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::do_ledbat(const int acked_bytes, const int delay\n\t,
      const int in_flight)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3342
    functionDepth: 0
    functionLinenumber: 3342
    functionLinenumberEnd: 3342
    functionName: libtorrent::aux::utp_stream::bind
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::bind(endpoint_type const&, error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:3347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3348
    functionName: libtorrent::aux::utp_stream::cancel_handlers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_stream::cancel_handlers
    linkageType: ''
    returnType: void
    signature: void utp_stream::cancel_handlers(error_code const& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3358,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: min_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: avg_deviation
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3369
    functionName: libtorrent::aux::utp_socket_impl::packet_timeout
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 8
    functionsReached:
    - state
    - min_timeout
    - avg_deviation
    - std::max
    - mean
    linkageType: ''
    returnType: int
    signature: int utp_socket_impl::packet_timeout() const
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3376,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3377,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3383,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3383,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3388,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3388,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:3404,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:3413,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3418,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3421,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3423,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3425,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3433,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3438,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3439,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3450,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3450,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3459,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3461,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3461,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3463,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3464,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3476,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3476,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3489,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:3489,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:3493,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3494,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3496,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3496,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3499,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3502,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3505,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3506,1
    - Dst: syn_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3506,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3507,1
    - Dst: fin_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3507,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3510,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3511,1
    - Dst: restrict_mtu
      Src: /src/libtorrent/src/utp_stream.cpp:3522,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3526,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3527,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:3536,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3537,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3537,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:3539,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:3541,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3542,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3542,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3544,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3548,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3549,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 80
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3553
      start: 3371
    functionDepth: 4
    functionLinenumber: 3371
    functionLinenumberEnd: 3553
    functionName: libtorrent::aux::utp_socket_impl::tick
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - restrict_mtu
    - std::max
    - UTP_LOGV
    - num_resends
    - push_back
    - fin_resends
    - at
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - syn_resends
    - libtorrent::aux::utp_socket_impl::resend_packet
    - TORRENT_ASSERT
    - static_cast<void*>
    - milliseconds
    - static_cast<std::uint8_t>
    - aux::numeric_cast<packet_buffer::index_type>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::send_pkt
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::tick(time_point const now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3564
    functionName: libtorrent::aux::utp_socket_impl::check_receive_buffers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - std::accumulate
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::check_receive_buffers() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:3571,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:3572,1
    - Dst: span
      Src: /src/libtorrent/src/utp_stream.cpp:3572,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3575,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3581,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:3581,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3583,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3586,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3593,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3595
      start: 3568
    functionDepth: 1
    functionLinenumber: 3568
    functionLinenumberEnd: 3595
    functionName: libtorrent::aux::utp_socket_impl::check_invariant
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - span
    - state
    - at
    - reinterpret_cast<utp_header*>
    - cursor
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::utp_logger
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_logger()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/libtorrent/src/utp_stream.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ~utp_logger()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void ~utp_logger()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/utp_stream.cpp:89,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/utp_stream.cpp:90,1
    - Dst: va_start
      Src: /src/libtorrent/src/utp_stream.cpp:92,1
    - Dst: vfprintf
      Src: /src/libtorrent/src/utp_stream.cpp:93,1
    - Dst: va_end
      Src: /src/libtorrent/src/utp_stream.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::utp_log
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - total_microseconds
    - va_start
    - std::fprintf
    - va_end
    - vfprintf
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void utp_log(char const* fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::is_utp_stream_logging
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_utp_stream_logging()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/utp_stream.cpp:106,1
    - Dst: fclose
      Src: /src/libtorrent/src/utp_stream.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::set_utp_stream_logging
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 9
    functionsReached:
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void set_utp_stream_logging(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: UTP_LOG
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTP_LOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: UTP_LOGV
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 117
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTP_LOGV(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - mask
    argTypes:
    - std::uint32_t
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::compare_less_wrap
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool compare_less_wrap(std::uint32_t lhs\n\t, std::uint32_t rhs, std::uint32_t
      mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: connect_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:166,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:183,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:186,1
    - Dst: fill
      Src: /src/libtorrent/src/utp_stream.cpp:187,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - recv_id
    - send_id
    - userdata
    - ' sm'
    argTypes:
    - std::uint16_t
    - std::uint16_t
    - utp_stream*
    - utp_socket_manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 188
    functionName: libtorrent::aux::utp_socket_impl::utp_socket_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - libtorrent::aux::max
    - connect_timeout
    - TORRENT_ASSERT
    - fill
    - milliseconds
    - inc_stats_counter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::utp_socket_impl(std::uint16_t const recv_id\n\t,
      std::uint16_t const send_id\n\t, utp_stream* userdata, utp_socket_manager& sm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:192,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:195,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/utp_stream.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: libtorrent::aux::utp_socket_impl::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - state
    - address_v4::any
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint utp_socket_impl::remote_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allocate
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: libtorrent::aux::utp_socket_impl::acquire_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 16
    functionsReached:
    - libtorrent::aux::utp_socket_impl::acquire_packet
    linkageType: ''
    returnType: packet_ptr
    signature: packet_ptr utp_socket_impl::acquire_packet(int const allocate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::aux::utp_socket_impl::release_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 22
    functionsReached:
    - libtorrent::aux::utp_socket_impl::release_packet
    - std::move
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::release_packet(packet_ptr p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:215,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:215,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:218,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:218,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:221,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:221,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:226,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:226,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:229,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: libtorrent::aux::utp_socket_impl::insert_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - push_back
    - std::move
    - packet_ptr::get
    - begin
    - erase
    - insert
    - reinterpret_cast<utp_header*>
    - std::find
    - end
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::release_packet
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::insert_packet(packet_ptr p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:236,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: libtorrent::aux::utp_socket_impl::abort
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - libtorrent::aux::utp_socket_impl::set_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:243,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' ep'
    - id
    argTypes:
    - udp::endpoint
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: libtorrent::aux::utp_socket_impl::match
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::match(udp::endpoint const& ep, std::uint16_t
      const id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: libtorrent::aux::utp_socket_impl::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint utp_socket_impl::remote_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:254,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::utp_socket_impl::send_deferred_ack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::send_pkt
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_deferred_ack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:268,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: libtorrent::aux::utp_socket_impl::socket_drained
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::socket_drained()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:289,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:289,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:294,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:296,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 302
    functionName: libtorrent::aux::utp_socket_impl::update_mtu_limits
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 12
    functionsReached:
    - std::int64_t
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::update_mtu_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::send_delay
      Src: /src/libtorrent/src/utp_stream.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: libtorrent::aux::utp_stream::send_delay
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::send_delay
    linkageType: ''
    returnType: int
    signature: int utp_stream::send_delay() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::recv_delay
      Src: /src/libtorrent/src/utp_stream.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: libtorrent::aux::utp_stream::recv_delay
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::recv_delay
    linkageType: ''
    returnType: int
    signature: int utp_stream::recv_delay() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: libtorrent::aux::utp_stream::utp_stream
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::utp_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: libtorrent::aux::utp_stream::get_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: utp_socket_impl
    signature: utp_socket_impl * utp_stream::get_impl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::set_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: libtorrent::aux::utp_stream::set_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::set_close_reason
    linkageType: ''
    returnType: void
    signature: void utp_stream::set_close_reason(close_reason_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: libtorrent::aux::utp_stream::get_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t utp_stream::get_close_reason() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::close
      Src: /src/libtorrent/src/utp_stream.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::utp_stream::close
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::close
    linkageType: ''
    returnType: void
    signature: void utp_stream::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::available
      Src: /src/libtorrent/src/utp_stream.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: libtorrent::aux::utp_stream::available
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::available
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::available() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::remote_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: libtorrent::aux::utp_stream::remote_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::remote_endpoint
    linkageType: ''
    returnType: utp_stream::endpoint_type
    signature: utp_stream::endpoint_type utp_stream::remote_endpoint(error_code& ec)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_sock::lock
      Src: /src/libtorrent/src/utp_stream.cpp:366,1
    - Dst: auto::get_local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:373,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/utp_stream.cpp:374,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/src/utp_stream.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::utp_stream::local_endpoint
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - udp::endpoint::port
    - udp::endpoint::address
    - m_sock::lock
    - auto::get_local_endpoint
    linkageType: ''
    returnType: utp_stream::endpoint_type
    signature: utp_stream::endpoint_type utp_stream::local_endpoint(error_code& ec)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_userdata
      Src: /src/libtorrent/src/utp_stream.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - utp_stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: libtorrent::aux::utp_stream::utp_stream
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - set_userdata
    linkageType: ''
    returnType: void
    signature: void utp_stream::utp_stream(utp_stream&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:392,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:392,1
    - Dst: destroy
      Src: /src/libtorrent/src/utp_stream.cpp:393,1
    - Dst: detach
      Src: /src/libtorrent/src/utp_stream.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: utp_stream::~utp_stream()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - destroy
    - UTP_LOGV
    - static_cast<void*>
    - detach
    linkageType: ''
    returnType: void
    signature: void utp_stream::~utp_stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - impl
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: libtorrent::aux::utp_stream::set_impl
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_stream::set_impl(utp_socket_impl* impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:409,1
    - Dst: receive_buffer_size
      Src: /src/libtorrent/src/utp_stream.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: libtorrent::aux::utp_stream::read_buffer_size
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - receive_buffer_size
    linkageType: ''
    returnType: int
    signature: int utp_stream::read_buffer_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - reason
    argTypes:
    - utp_stream*
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: libtorrent::aux::utp_stream::on_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_close_reason(utp_stream* s, close_reason_t reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:424,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:424,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:427,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:428,1
    - Dst: utp_stream*::m_impl::null_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:428,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:429,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:433,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - s
    - bytes_transferred
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - std::size_t
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: libtorrent::aux::utp_stream::on_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - utp_stream*::m_impl::null_buffers
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_stream::on_read(utp_stream* s, std::size_t const bytes_transferred\n\t,
      error_code const& ec, bool const shutdown)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:442,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:443,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:446,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:447,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:452,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - s
    - bytes_transferred
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - std::size_t
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: libtorrent::aux::utp_stream::on_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_stream::on_write(utp_stream* s, std::size_t const bytes_transferred\n\t,
      error_code const& ec, bool const shutdown)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:460,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:461,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:462,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:464,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - ' ec'
    argTypes:
    - utp_stream*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: libtorrent::aux::utp_stream::on_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - std::move
    - post
    - message
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_writeable(utp_stream* s, error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:471,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:473,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:474,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:476,1
    - Dst: post
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: std::bind<void>
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:477,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:481,1
    - Dst: utp_stream*::m_impl::detach
      Src: /src/libtorrent/src/utp_stream.cpp:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - ' ec'
    - shutdown
    argTypes:
    - utp_stream*
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 485
    functionName: libtorrent::aux::utp_stream::on_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - std::move
    - post
    - message
    - utp_stream*::m_impl::detach
    - TORRENT_ASSERT
    - static_cast<void*>
    - std::bind<void>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_stream::on_connect(utp_stream* s, error_code const& ec, bool
      const shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:492,1
    - Dst: libtorrent::aux::utp_stream::add_read_buffer
      Src: /src/libtorrent/src/utp_stream.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 494
    functionName: libtorrent::aux::utp_stream::add_read_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::add_read_buffer
    linkageType: ''
    returnType: void
    signature: void utp_stream::add_read_buffer(void* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:501,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:503,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:504,1
    - Dst: libtorrent::aux::utp_stream::add_write_buffer
      Src: /src/libtorrent/src/utp_stream.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: libtorrent::aux::utp_stream::add_write_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::add_write_buffer
    linkageType: ''
    returnType: void
    signature: void utp_stream::add_write_buffer(void const* buf, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:510,1
    - Dst: libtorrent::aux::utp_stream::check_fin_sent
      Src: /src/libtorrent/src/utp_stream.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: libtorrent::aux::utp_stream::check_fin_sent
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::check_fin_sent
    linkageType: ''
    returnType: bool
    signature: bool utp_stream::check_fin_sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::issue_read
      Src: /src/libtorrent/src/utp_stream.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: libtorrent::aux::utp_stream::issue_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::issue_read
    linkageType: ''
    returnType: void
    signature: void utp_stream::issue_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::read_some
      Src: /src/libtorrent/src/utp_stream.cpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clear_buffers
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: libtorrent::aux::utp_stream::read_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::read_some(bool const clear_buffers, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::write_some
      Src: /src/libtorrent/src/utp_stream.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clear_buffers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: libtorrent::aux::utp_stream::write_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_stream::write_some(bool const clear_buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::issue_write
      Src: /src/libtorrent/src/utp_stream.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: libtorrent::aux::utp_stream::issue_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::issue_write
    linkageType: ''
    returnType: void
    signature: void utp_stream::issue_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::subscribe_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: libtorrent::aux::utp_stream::subscribe_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::subscribe_writeable
    linkageType: ''
    returnType: void
    signature: void utp_stream::subscribe_writeable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::do_connect
      Src: /src/libtorrent/src/utp_stream.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: libtorrent::aux::utp_stream::do_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::do_connect
    linkageType: ''
    returnType: void
    signature: void utp_stream::do_connect(tcp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:557,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:557,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:559,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/utp_stream.cpp:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 561
    functionName: libtorrent::aux::utp_socket_impl::add_read_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - UTP_LOGV
    - reinterpret_cast<char*>
    - static_cast<void*>
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::add_read_buffer(void* buf, int const len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:565,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:566,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/src/utp_stream.cpp:566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:573,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:574,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:576,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:579,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:586,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:587,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 591
    functionName: libtorrent::aux::utp_socket_impl::add_write_buffer
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - emplace_back
    - reinterpret_cast<char const*>
    - UTP_LOGV
    - static_cast<void const*>
    - size
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::add_write_buffer(void const* buf, int const len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:595,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:596,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:601,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:603,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:604,1
    - Dst: libtorrent::aux::utp_socket_impl::read_some
      Src: /src/libtorrent/src/utp_stream.cpp:611,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 613
    functionName: libtorrent::aux::utp_socket_impl::issue_read
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    - libtorrent::aux::utp_socket_impl::read_some
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::issue_read()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:617,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:618,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:624,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:627,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:636,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:641,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:642,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:644,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:646,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:648,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:648,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:653,1
    - Dst: auto::get
      Src: /src/libtorrent/src/utp_stream.cpp:656,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:660,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:660,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:661,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:662,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:663,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:663,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:664,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: auto::data
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:665,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:667,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:667,1
    - Dst: auto::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:668,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:670,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:672,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:674,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:675,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:675,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:678,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:684,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:684,1
    - Dst: auto::reset
      Src: /src/libtorrent/src/utp_stream.cpp:685,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:690,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:693,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:694,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:700,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:700,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:701,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:704,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:704,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:706,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:707,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:712,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:714,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:718,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - clear_buffers
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 725
    functionName: libtorrent::aux::utp_socket_impl::read_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - std::move
    - begin
    - auto::get
    - empty
    - std::min
    - libtorrent::aux::utp_socket_impl::release_packet
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::check_receive_buffers
    - auto::subspan
    - std::uint16_t
    - end
    - std::size_t
    - clear
    - erase
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - auto::size
    - static_cast<void*>
    - std::ptrdiff_t
    - auto::data
    - std::memcpy
    - auto::reset
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::read_some(bool const clear_buffers, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:729,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:730,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:732,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:733,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:735,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:743,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:746,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:751,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 754
    functionName: libtorrent::aux::utp_socket_impl::issue_write
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::issue_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:758,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
      Src: /src/libtorrent/src/utp_stream.cpp:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: libtorrent::aux::utp_socket_impl::subscribe_writeable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::subscribe_writeable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: libtorrent::aux::utp_socket_impl::check_fin_sent
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::check_fin_sent() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:773,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:778,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - clear_buffers
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 782
    functionName: libtorrent::aux::utp_socket_impl::write_some
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - clear
    - libtorrent::aux::utp_socket_impl::send_pkt
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::write_some(bool const clear_buffers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtu_for_dest
      Src: /src/libtorrent/src/utp_stream.cpp:786,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:786,1
    - Dst: libtorrent::aux::utp_socket_impl::init_mtu
      Src: /src/libtorrent/src/utp_stream.cpp:787,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:788,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:789,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:790,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:794,1
    - Dst: libtorrent::aux::utp_socket_impl::send_syn
      Src: /src/libtorrent/src/utp_stream.cpp:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 796
    functionName: libtorrent::aux::utp_socket_impl::do_connect
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::send_syn
    - TORRENT_ASSERT
    - mtu_for_dest
    - port
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - address
    - libtorrent::aux::utp_socket_impl::init_mtu
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::do_connect(tcp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cancel_deferred_ack
      Src: /src/libtorrent/src/utp_stream.cpp:805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:808,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:810,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:812,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:812,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:815,1
    - Dst: capacity
      Src: /src/libtorrent/src/utp_stream.cpp:816,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:819,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:820,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:820,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:822,1
    - Dst: capacity
      Src: /src/libtorrent/src/utp_stream.cpp:823,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:826,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:832,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:832,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:836,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:836,1
    - Dst: release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:838,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:838,1
    - Dst: reset
      Src: /src/libtorrent/src/utp_stream.cpp:839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 840
    functionName: utp_socket_impl::~utp_socket_impl()
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - release_packet
    - reset
    - std::move
    - std::uint16_t
    - cancel_deferred_ack
    - cursor
    - TORRENT_ASSERT
    - inc_stats_counter
    - static_cast<void*>
    - remove
    - capacity
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::~utp_socket_impl()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:857,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:857,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:862,1
    - Dst: static_cast<void const*>
      Src: /src/libtorrent/src/utp_stream.cpp:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 866
    functionName: libtorrent::aux::utp_socket_impl::should_delete
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - static_cast<void const*>
    - state
    - UTP_LOGV
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::should_delete() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:878,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:878,1
    - Dst: libtorrent::aux::utp_stream::on_read
      Src: /src/libtorrent/src/utp_stream.cpp:881,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:881,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 885
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 11
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::utp_stream::on_read
    - static_cast<void*>
    - clear
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_receive_callback(error_code const&
      ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:896,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:896,1
    - Dst: libtorrent::aux::utp_stream::on_write
      Src: /src/libtorrent/src/utp_stream.cpp:900,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:900,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:903,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:906,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:907,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 908
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 14
    functionsReached:
    - state
    - libtorrent::aux::utp_stream::on_write
    - aux::numeric_cast<std::size_t>
    - static_cast<void*>
    - clear
    - libtorrent::aux::utp_socket_impl::send_fin
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_send_callback(error_code const&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::on_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 921
    functionName: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::utp_stream::on_writeable
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_trigger_writeable_callback(error_code const&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:926,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:927,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - code
    argTypes:
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: libtorrent::aux::utp_socket_impl::set_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::set_close_reason(close_reason_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:935,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:935,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:940,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:944,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:945,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 947
    functionName: libtorrent::aux::utp_socket_impl::close
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - state
    - at
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::close()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:954,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:955,1
    - Dst: libtorrent::aux::utp_socket_impl::close
      Src: /src/libtorrent/src/utp_stream.cpp:960,1
    - Dst: libtorrent::aux::utp_socket_impl::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:962,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:966,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_stream.cpp:969,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:972,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:973,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:974,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:976,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:978,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 983
    functionName: libtorrent::aux::utp_socket_impl::destroy
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::close
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::cancel_handlers
    - clear
    - UTP_LOGV
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::destroy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:989,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 991
    functionName: libtorrent::aux::utp_socket_impl::detach
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::detach()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:997,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:997,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1003,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1012,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1025,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1027,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1028,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1028,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1031,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1032,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1033,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1033,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1037,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1037,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1038,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1043,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1043,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:1048,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:1051,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:1051,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1055,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1055,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1057,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1066,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1066,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1067,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1068,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/src/utp_stream.cpp:1068,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:1069,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1073,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1074,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1076,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 993
    functionDepth: 4
    functionLinenumber: 993
    functionLinenumberEnd: 1078
    functionName: libtorrent::aux::utp_socket_impl::send_syn
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - std::uint32_t
    - libtorrent::aux::utp_socket_impl::release_packet
    - UTP_LOGV
    - push_back
    - packet_ptr::get
    - std::uint16_t
    - at
    - reinterpret_cast<utp_header*>
    - print_endpoint
    - time_now
    - subscribe_writable
    - time_point::time_since_epoch
    - TORRENT_ASSERT
    - static_cast<void*>
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - reinterpret_cast<std::uint8_t*>
    - random
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - insert
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_syn()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1086,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1086,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1088,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
      Src: /src/libtorrent/src/utp_stream.cpp:1090,1
    - Dst: libtorrent::aux::utp_socket_impl::should_delete
      Src: /src/libtorrent/src/utp_stream.cpp:1091,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1095,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1096,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1099,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1105,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1106,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:1107,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
      Src: /src/libtorrent/src/utp_stream.cpp:1109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1083
    functionDepth: 4
    functionLinenumber: 1083
    functionLinenumberEnd: 1110
    functionName: libtorrent::aux::utp_socket_impl::writable
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::maybe_trigger_writeable_callback
    - at
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::maybe_trigger_send_callback
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - libtorrent::aux::utp_socket_impl::should_delete
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::writable()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1118,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:1120,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1125,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1130,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1130,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1131,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1133,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1134,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1138,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1112
    functionDepth: 4
    functionLinenumber: 1112
    functionLinenumberEnd: 1140
    functionName: libtorrent::aux::utp_socket_impl::send_fin
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::utp_socket_impl::set_state
    - message
    - libtorrent::aux::utp_socket_impl::send_pkt
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::test_socket_state
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_fin()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1152,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:1152,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1154,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1155,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1156,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1156,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1158,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1159,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1163,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1163,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1164,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1167,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1168,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ack_nr
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1171
    functionName: libtorrent::aux::utp_socket_impl::send_reset
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - time_now
    - total_microseconds
    - send_packet
    - std::uint16_t
    - std::uint32_t
    - time_point::time_since_epoch
    - static_cast<void*>
    - local_endpoint
    - error_code::message
    - reinterpret_cast<char const*>
    - UTP_LOGV
    - random
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::send_reset(std::uint16_t const ack_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1176
    functionName: libtorrent::aux::utp_socket_impl::available
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t utp_socket_impl::available() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<close_reason_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1183,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/utp_stream.cpp:1183,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1185,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1186,1
    - Dst: libtorrent::aux::utp_stream::on_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:1190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1191
    functionName: libtorrent::aux::utp_socket_impl::parse_close_reason
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::read_uint16
    - libtorrent::aux::utp_stream::on_close_reason
    - static_cast<void*>
    - UTP_LOGV
    - static_cast<close_reason_t>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::parse_close_reason(std::uint8_t const* ptr, int
      const size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/utp_stream.cpp:1206,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:1206,1
    - Dst: unsigned
      Src: /src/libtorrent/src/utp_stream.cpp:1209,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1218,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1219,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/utp_stream.cpp:1219,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1226,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1229,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:1247,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:1247,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1253,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: libtorrent::aux::utp_socket_impl::ack_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1254,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:1260,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1263,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/utp_stream.cpp:1264,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1280,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1310,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1311,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1322,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1322,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1333,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1334,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1335,1
    - Dst: libtorrent::aux::utp_socket_impl::experienced_loss
      Src: /src/libtorrent/src/utp_stream.cpp:1342,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1346,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 4
    argNames:
    - packet_ack
    - ptr
    - size
    - now
    argTypes:
    - std::uint16_t
    - std::uint8_t*
    - int
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1194
    functionDepth: 3
    functionLinenumber: 1194
    functionLinenumberEnd: 1355
    functionName: libtorrent::aux::utp_socket_impl::parse_sack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - empty
    - std::min
    - UTP_LOGV
    - std::uint16_t
    - at
    - compare_less_wrap
    - libtorrent::aux::utp_socket_impl::experienced_loss
    - std::size_t
    - remove
    - libtorrent::aux::utp_socket_impl::ack_packet
    - unsigned
    - libtorrent::aux::utp_socket_impl::resend_packet
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - static_cast<void*>
    - aux::numeric_cast<packet_buffer::index_type>
    - std::string::c_str
    - aux::array::size
    - std::string::reserve
    linkageType: ''
    returnType: std::pair<std::uint32_t, int>
    signature: "std::pair<std::uint32_t, int> utp_socket_impl::parse_sack(std::uint16_t
      const packet_ack\n\t, std::uint8_t const* ptr, int const size, time_point const
      now)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1367,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1372,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1373,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1381,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:1381,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:1384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1385,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1386,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: auto::data
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:1387,1
    - Dst: auto::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:1391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1392,1
    - Dst: auto::size
      Src: /src/libtorrent/src/utp_stream.cpp:1394,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:1399,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1399,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:1400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1406,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1407,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1411
    functionName: libtorrent::aux::utp_socket_impl::write_payload
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - auto::subspan
    - std::memcpy
    - begin
    - erase
    - empty
    - end
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - auto::size
    - std::size_t
    - size
    - std::ptrdiff_t
    - auto::data
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::write_payload(std::uint8_t* ptr, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1419,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1419,1
    - Dst: libtorrent::aux::utp_socket_impl::subscribe_drained
      Src: /src/libtorrent/src/utp_stream.cpp:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1422
    functionName: libtorrent::aux::utp_socket_impl::subscribe_drained
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::subscribe_drained
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::subscribe_drained()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1430,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1430,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1433
    functionName: libtorrent::aux::utp_socket_impl::defer_ack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 10
    functionsReached:
    - UTP_LOGV
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::defer_ack
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::defer_ack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1447,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1450,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1451,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1453,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1454,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1454,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/utp_stream.cpp:1455,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1456,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1458
    functionName: libtorrent::aux::utp_socket_impl::remove_sack_header
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 6
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - std::memmove
    - reinterpret_cast<utp_header*>
    - TORRENT_ASSERT
    - static_cast<void*>
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::remove_sack_header(packet* p)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1477,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:1492,1
    - Dst: front
      Src: /src/libtorrent/src/utp_stream.cpp:1494,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1495,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1496,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1504,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1504,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1510,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1528,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1531,1
    - Dst: span
      Src: /src/libtorrent/src/utp_stream.cpp:1540,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1550,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1550,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1555,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1558,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1563,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1573,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1575,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1581,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1584,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1585,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1585,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1586,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1598,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1601,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1602,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1602,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1603,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1620,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1621,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:1625,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1629,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1630,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1638,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1641,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1648,1
    - Dst: libtorrent::aux::utp_socket_impl::write_payload
      Src: /src/libtorrent/src/utp_stream.cpp:1650,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1656,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1657,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1660,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1660,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1663,1
    - Dst: reset
      Src: /src/libtorrent/src/utp_stream.cpp:1664,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:1667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1668,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1677,1
    - Dst: libtorrent::aux::utp_socket_impl::remove_sack_header
      Src: /src/libtorrent/src/utp_stream.cpp:1680,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:1680,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1691,1
    - Dst: libtorrent::aux::utp_socket_impl::write_payload
      Src: /src/libtorrent/src/utp_stream.cpp:1697,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:1698,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1702,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1703,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1711,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1714,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1718,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1725,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/utp_stream.cpp:1726,1
    - Dst: libtorrent::aux::utp_socket_impl::write_sack
      Src: /src/libtorrent/src/utp_stream.cpp:1727,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1729,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/utp_stream.cpp:1736,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1737,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1741,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:1745,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1752,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1757,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1758,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:1775,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:1775,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:1785,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1787,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1788,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:1788,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:1791,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1795,1
    - Dst: utp_header*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:1795,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1796,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1796,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:1797,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1798,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:1799,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1804,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1804,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1805,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1811,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1812,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:1813,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1817,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:1819,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/utp_stream.cpp:1824,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1827,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1827,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1829,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:1829,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:1830,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1836,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1836,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1838,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:1840,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1844,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:1849,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:1850,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1851,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1851,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:1857,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:1862,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:1862,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1864,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1865,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:1865,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:1872,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:1873,1
    - Dst: cancel_deferred_ack
      Src: /src/libtorrent/src/utp_stream.cpp:1876,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1886,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1888,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1892,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1897,1
    - Dst: libtorrent::aux::utp_socket_impl::insert_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1903,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1903,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1904,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1906,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1906,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1908,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1913,1
    - Dst: libtorrent::aux::utp_socket_impl::insert_packet
      Src: /src/libtorrent/src/utp_stream.cpp:1914,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:1914,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1918,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:1925,1
    - Dst: libtorrent::aux::utp_socket_impl::send_fin
      Src: /src/libtorrent/src/utp_stream.cpp:1927,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 191
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1468
    functionDepth: 4
    functionLinenumber: 1468
    functionLinenumberEnd: 1935
    functionName: libtorrent::aux::utp_socket_impl::send_pkt
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 26
    functionsReached:
    - span
    - std::move
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - empty
    - std::uint32_t
    - std::min
    - error_code::clear
    - libtorrent::aux::utp_socket_impl::release_packet
    - std::max
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::insert_packet
    - reset
    - packet_ptr::get
    - std::uint8_t
    - std::uint16_t
    - message
    - reinterpret_cast<utp_header*>
    - static_cast<std::uint32_t>
    - compare_less_wrap
    - front
    - print_endpoint
    - cancel_deferred_ack
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - error_code::message
    - UTP_LOG
    - time_now
    - subscribe_writable
    - libtorrent::aux::utp_socket_impl::resend_packet
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_impl::write_payload
    - time_point::time_since_epoch
    - static_cast<void*>
    - milliseconds
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::send_fin
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - state
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::defer_ack
    - libtorrent::aux::utp_socket_impl::remove_sack_header
    - libtorrent::aux::write_uint32
    - local_endpoint
    - libtorrent::aux::utp_socket_impl::write_sack
    - utp_header*::get_type
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::send_pkt(int const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1942,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:1942,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:1952,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:1952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1957
    functionName: libtorrent::aux::utp_socket_impl::write_sack
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT
    - at
    - aux::numeric_cast<packet_buffer::index_type>
    - size
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::write_sack(std::uint8_t* buf, int const size)
      const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:1964,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:1977,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:1985,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:1998,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2000,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2003,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2004,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:2011,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_stream.cpp:2014,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2015,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2016,1
    - Dst: packet*::send_time::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:2016,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2024,1
    - Dst: libtorrent::aux::utp_socket_impl::write_sack
      Src: /src/libtorrent/src/utp_stream.cpp:2027,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2028,1
    - Dst: libtorrent::aux::utp_socket_impl::remove_sack_header
      Src: /src/libtorrent/src/utp_stream.cpp:2032,1
    - Dst: send_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2039,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2039,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2040,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2043,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2046,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2046,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2047,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/utp_stream.cpp:2047,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/utp_stream.cpp:2048,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2049,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2050,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2056,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2056,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2058,1
    - Dst: subscribe_writable
      Src: /src/libtorrent/src/utp_stream.cpp:2060,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:2063,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2070,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2071,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2071,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2077,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:2078,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2083,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 2
    argNames:
    - p
    - fast_resend
    argTypes:
    - packet*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 1959
    functionDepth: 4
    functionLinenumber: 1959
    functionLinenumberEnd: 2090
    functionName: libtorrent::aux::utp_socket_impl::resend_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 14
    functionsReached:
    - begin
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - std::uint32_t
    - std::min
    - UTP_LOGV
    - num_resends
    - push_back
    - auto*::get_type
    - reinterpret_cast<utp_header*>
    - std::find
    - end
    - print_endpoint
    - inc_stats_counter
    - error_code::message
    - packet*::send_time::time_since_epoch
    - time_now
    - subscribe_writable
    - TORRENT_ASSERT_VAL
    - erase
    - TORRENT_ASSERT
    - static_cast<void*>
    - reinterpret_cast<char const*>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - total_microseconds
    - send_packet
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::remove_sack_header
    - local_endpoint
    - libtorrent::aux::utp_socket_impl::write_sack
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::resend_packet(packet* p, bool fast_resend)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2099,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2110,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2115,1
    - Dst: cwnd_reduce_timer
      Src: /src/libtorrent/src/utp_stream.cpp:2115,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2118,1
    - Dst: loss_multiplier
      Src: /src/libtorrent/src/utp_stream.cpp:2118,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:2119,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2121,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2122,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2129,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2131,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - seq_nr
    - now
    argTypes:
    - std::uint32_t
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2092
    functionDepth: 1
    functionLinenumber: 2092
    functionLinenumberEnd: 2134
    functionName: libtorrent::aux::utp_socket_impl::experienced_loss
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - std::int32_t
    - compare_less_wrap
    - loss_multiplier
    - std::int64_t
    - milliseconds
    - inc_stats_counter
    - std::max
    - static_cast<void*>
    - cwnd_reduce_timer
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::experienced_loss(std::uint32_t const seq_nr,
      time_point const now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2138,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2140,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2141,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2143
    functionName: libtorrent::aux::utp_socket_impl::set_state
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 33
    functionsReached:
    - state
    - inc_stats_counter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::set_state(state_t const s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2160,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2161,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2179
    functionName: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 10
    functionsReached:
    - state
    - at
    - compare_less_wrap
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::maybe_inc_acked_seq_nr()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2189,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2193,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:2193,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: packet_ptr::get
      Src: /src/libtorrent/src/utp_stream.cpp:2197,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2198,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2202,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2208,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2210,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:2211,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:2215,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2217,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2217,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/utp_stream.cpp:2224,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2227,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2228,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2230,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2231,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - p
    - receive_time
    - seq_nr
    argTypes:
    - packet_ptr
    - time_point
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2182
    functionDepth: 2
    functionLinenumber: 2182
    functionLinenumberEnd: 2233
    functionName: libtorrent::aux::utp_socket_impl::ack_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - total_microseconds
    - std::move
    - packet_ptr::get
    - begin
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - add_sample
    - erase
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - end
    - reinterpret_cast<utp_header*>
    - std::find
    - std::uint32_t
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - libtorrent::aux::utp_socket_impl::release_packet
    - static_cast<void*>
    - std::max
    - UTP_LOGV
    linkageType: ''
    returnType: std::uint32_t
    signature: "std::uint32_t utp_socket_impl::ack_packet(packet_ptr p, time_point
      const receive_time\n\t, std::uint16_t seq_nr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2247,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2248,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2250,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2252,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2256,1
    - Dst: front
      Src: /src/libtorrent/src/utp_stream.cpp:2258,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: iovec_t*::size
      Src: /src/libtorrent/src/utp_stream.cpp:2260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2261,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: iovec_t*::data
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/utp_stream.cpp:2262,1
    - Dst: iovec_t*::subspan
      Src: /src/libtorrent/src/utp_stream.cpp:2264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2266,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2269,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2269,1
    - Dst: iovec_t*::size
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2270,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2273,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2279,1
    - Dst: libtorrent::aux::utp_socket_impl::release_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2280,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2285,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2289,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2290,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2291,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2293,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2293,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/utp_stream.cpp:2297,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2297,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2299,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2299,1
    - Dst: libtorrent::aux::utp_socket_impl::check_receive_buffers
      Src: /src/libtorrent/src/utp_stream.cpp:2302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - buf
    - size
    - p
    argTypes:
    - std::uint8_t*
    - int
    - packet_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2304
    functionName: libtorrent::aux::utp_socket_impl::incoming
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - iovec_t*::data
    - std::move
    - begin
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - empty
    - std::min
    - libtorrent::aux::utp_socket_impl::release_packet
    - emplace_back
    - UTP_LOGV
    - libtorrent::aux::utp_socket_impl::check_receive_buffers
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - front
    - std::size_t
    - erase
    - TORRENT_ASSERT
    - iovec_t*::subspan
    - static_cast<void*>
    - std::ptrdiff_t
    - std::memcpy
    - iovec_t*::size
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::incoming(std::uint8_t const* buf, int size,
      packet_ptr p\n\t, time_point /* now */)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2314,1
    - Dst: libtorrent::aux::utp_stream::on_read
      Src: /src/libtorrent/src/utp_stream.cpp:2325,1
    - Dst: libtorrent::aux::utp_stream::on_write
      Src: /src/libtorrent/src/utp_stream.cpp:2326,1
    - Dst: libtorrent::aux::utp_stream::on_writeable
      Src: /src/libtorrent/src/utp_stream.cpp:2327,1
    - Dst: libtorrent::aux::utp_stream::on_connect
      Src: /src/libtorrent/src/utp_stream.cpp:2328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ' ec'
    - shutdown
    argTypes:
    - error_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2306
    functionDepth: 2
    functionLinenumber: 2306
    functionLinenumberEnd: 2330
    functionName: libtorrent::aux::utp_socket_impl::cancel_handlers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::utp_stream::on_connect
    - libtorrent::aux::utp_stream::on_write
    - TORRENT_ASSERT
    - libtorrent::aux::utp_stream::on_read
    - libtorrent::aux::utp_stream::on_writeable
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::cancel_handlers(error_code const& ec, bool shutdown)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utp_header*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2338,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2344,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2345,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2356,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2358,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2364,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2364,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2368,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2369,1
    - Dst: libtorrent::aux::utp_socket_impl::incoming
      Src: /src/libtorrent/src/utp_stream.cpp:2374,1
    - Dst: packet_ptr
      Src: /src/libtorrent/src/utp_stream.cpp:2374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2379,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2379,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2381,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2382,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2382,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:2388,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:2388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2392,1
    - Dst: libtorrent::aux::utp_socket_impl::incoming
      Src: /src/libtorrent/src/utp_stream.cpp:2395,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2395,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2397,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2399,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2400,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2400,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2410,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2412,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2413,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2418,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2420,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2421,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2427,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2428,1
    - Dst: libtorrent::aux::utp_socket_impl::acquire_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2433,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2434,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/utp_stream.cpp:2441,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2441,1
    - Dst: insert
      Src: /src/libtorrent/src/utp_stream.cpp:2443,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2443,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2445,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2446,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2446,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 4
    argNames:
    - ph
    - ptr
    - payload_size
    - now
    argTypes:
    - utp_header*
    - std::uint8_t*
    - int
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2332
    functionDepth: 3
    functionLinenumber: 2332
    functionLinenumberEnd: 2450
    functionName: libtorrent::aux::utp_socket_impl::consume_incoming_data
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::utp_socket_impl::incoming
    - packet_ptr
    - std::memcpy
    - std::move
    - aux::numeric_cast<std::size_t>
    - std::uint16_t
    - at
    - libtorrent::aux::utp_socket_impl::acquire_packet
    - compare_less_wrap
    - insert
    - TORRENT_ASSERT
    - size
    - static_cast<void*>
    - remove
    - UTP_LOGV
    - aux::numeric_cast<packet_buffer::index_type>
    - utp_header*::get_type
    - UTP_LOG
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_impl::consume_incoming_data(\n\tutp_header const*
      ph, std::uint8_t const* ptr, int const payload_size\n\t, time_point const now)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2464,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2467,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2468,1
    - Dst: message
      Src: /src/libtorrent/src/utp_stream.cpp:2468,1
    - Dst: libtorrent::aux::utp_socket_impl::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:2471,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2473,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2475,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2453
    functionDepth: 3
    functionLinenumber: 2453
    functionLinenumberEnd: 2480
    functionName: libtorrent::aux::utp_socket_impl::test_socket_state
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 38
    functionsReached:
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - message
    - TORRENT_ASSERT
    - static_cast<void*>
    - libtorrent::aux::utp_socket_impl::cancel_handlers
    - UTP_LOGV
    linkageType: ''
    returnType: bool
    signature: bool utp_socket_impl::test_socket_state()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2487,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2492,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:2496,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2498,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mtu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2482
    functionDepth: 1
    functionLinenumber: 2482
    functionLinenumberEnd: 2500
    functionName: libtorrent::aux::utp_socket_impl::init_mtu
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - std::uint16_t
    - UTP_LOGV
    - static_cast<void*>
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::init_mtu(int const mtu)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/utp_stream.cpp:2507,1
    - Dst: reinterpret_cast<utp_header const*>
      Src: /src/libtorrent/src/utp_stream.cpp:2509,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2509,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2510,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2512,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2514,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2515,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2515,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2516,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_stream.cpp:2520,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2522,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2523,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_stream.cpp:2523,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2524,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2529,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2531,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2532,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2533,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2537,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2539,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2540,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2540,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2541,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2545,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2545,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:2547,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:2548,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2551,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2551,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2553,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2554,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2555,1
    - Dst: minutes
      Src: /src/libtorrent/src/utp_stream.cpp:2560,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2571,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2571,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:2572,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:2574,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2574,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2575,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2576,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2577,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2578,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:2578,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:2580,1
    - Dst: adjust_base
      Src: /src/libtorrent/src/utp_stream.cpp:2585,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2588,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2589,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2592,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2593,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2607,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2608,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2609,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2613,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2613,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2614,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2615,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2618,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2620,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2621,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2630,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2634,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2635,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2635,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2640,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2641,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/utp_stream.cpp:2645,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:2645,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2647,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2648,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2649,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2656,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2657,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2658,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2662,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2664,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2666,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2667,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2670,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2670,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2672,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:2673,1
    - Dst: add_sample
      Src: /src/libtorrent/src/utp_stream.cpp:2687,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2695,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2707,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2708,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/utp_stream.cpp:2713,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2713,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:2715,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2717,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2717,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2724,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:2724,1
    - Dst: remove
      Src: /src/libtorrent/src/utp_stream.cpp:2734,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:2734,1
    - Dst: libtorrent::aux::utp_socket_impl::ack_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2739,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2740,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
      Src: /src/libtorrent/src/utp_stream.cpp:2743,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2744,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2748,1
    - Dst: span::size
      Src: /src/libtorrent/src/utp_stream.cpp:2749,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2757,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2759,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2759,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2760,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2765,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2767,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2768,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2768,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:2769,1
    - Dst: std::tie
      Src: /src/libtorrent/src/utp_stream.cpp:2777,1
    - Dst: libtorrent::aux::utp_socket_impl::parse_sack
      Src: /src/libtorrent/src/utp_stream.cpp:2777,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2778,1
    - Dst: libtorrent::aux::utp_socket_impl::parse_close_reason
      Src: /src/libtorrent/src/utp_stream.cpp:2782,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:2792,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:2792,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2793,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2794,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:2794,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2801,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2802,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:2805,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2806,1
    - Dst: libtorrent::aux::utp_socket_impl::experienced_loss
      Src: /src/libtorrent/src/utp_stream.cpp:2815,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:2816,1
    - Dst: span::data
      Src: /src/libtorrent/src/utp_stream.cpp:2823,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2827,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2829,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2829,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2830,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2831,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2834,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2840,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2840,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2848,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2848,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2853,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2854,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2859,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2860,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2870,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2871,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:2871,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:2874,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_stream.cpp:2876,1
    - Dst: libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
      Src: /src/libtorrent/src/utp_stream.cpp:2877,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2883,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2883,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:2885,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2889,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2893,1
    - Dst: address
      Src: /src/libtorrent/src/utp_stream.cpp:2895,1
    - Dst: port
      Src: /src/libtorrent/src/utp_stream.cpp:2896,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_stream.cpp:2899,1
    - Dst: random
      Src: /src/libtorrent/src/utp_stream.cpp:2899,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2905,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2906,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2911,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2912,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2916,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:2918,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:2923,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2924,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2924,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2935,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2936,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:2941,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:2942,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:2944,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:2944,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2950,1
    - Dst: libtorrent::aux::utp_stream::on_connect
      Src: /src/libtorrent/src/utp_stream.cpp:2959,1
    - Dst: std::min_element
      Src: /src/libtorrent/src/utp_stream.cpp:2973,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:2973,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:2974,1
    - Dst: libtorrent::aux::utp_socket_impl::do_ledbat
      Src: /src/libtorrent/src/utp_stream.cpp:2980,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2981,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:2984,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:2984,1
    - Dst: libtorrent::aux::utp_socket_impl::consume_incoming_data
      Src: /src/libtorrent/src/utp_stream.cpp:2986,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2993,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2994,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:2995,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:3001,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:3005,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:3015,1
    - Dst: libtorrent::aux::utp_socket_impl::subscribe_drained
      Src: /src/libtorrent/src/utp_stream.cpp:3020,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3022,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3022,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3027,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3027,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3028,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3028,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3031,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/utp_stream.cpp:3031,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:3037,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/utp_stream.cpp:3038,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:3038,1
    - Dst: strcpy
      Src: /src/libtorrent/src/utp_stream.cpp:3040,1
    - Dst: initialized
      Src: /src/libtorrent/src/utp_stream.cpp:3043,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/utp_stream.cpp:3044,1
    - Dst: base
      Src: /src/libtorrent/src/utp_stream.cpp:3044,1
    - Dst: strcpy
      Src: /src/libtorrent/src/utp_stream.cpp:3046,1
    - Dst: UTP_LOG
      Src: /src/libtorrent/src/utp_stream.cpp:3048,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3081,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3085,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3086,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3090,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3094,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3095,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3095,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3098,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3099,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3100,1
    - Dst: time_point::time_since_epoch
      Src: /src/libtorrent/src/utp_stream.cpp:3100,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:3101,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3104,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_stream.cpp:3179,1
    - Dst: libtorrent::aux::utp_socket_impl::defer_ack
      Src: /src/libtorrent/src/utp_stream.cpp:3179,1
    - Dst: libtorrent::aux::utp_socket_impl::consume_incoming_data
      Src: /src/libtorrent/src/utp_stream.cpp:3181,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3194,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3194,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3198,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3199,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3201,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3202,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3206,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3206,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3208,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3209,1
    - Dst: libtorrent::aux::utp_socket_impl::send_reset
      Src: /src/libtorrent/src/utp_stream.cpp:3219,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 270
    argCount: 3
    argNames:
    - b
    - ' ep'
    - receive_time
    argTypes:
    - span<char const>
    - udp::endpoint
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 2503
    functionDepth: 4
    functionLinenumber: 2503
    functionLinenumberEnd: 3224
    functionName: libtorrent::aux::utp_socket_impl::incoming_packet
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::parse_sack
    - target_delay
    - auto*::get_version
    - span::size
    - std::move
    - begin
    - empty
    - std::uint32_t
    - std::min
    - std::max
    - span<char const>::size
    - minutes
    - libtorrent::aux::utp_socket_impl::subscribe_drained
    - mean
    - UTP_LOGV
    - auto*::get_type
    - add_sample
    - std::uint16_t
    - at
    - compare_less_wrap
    - end
    - static_cast<std::uint32_t>
    - reinterpret_cast<std::uint8_t const*>
    - adjust_base
    - libtorrent::aux::utp_socket_impl::experienced_loss
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - libtorrent::aux::utp_socket_impl::ack_packet
    - remove
    - address
    - UTP_LOG
    - libtorrent::aux::utp_stream::on_connect
    - base
    - std::int32_t
    - TORRENT_ASSERT_VAL
    - libtorrent::aux::utp_socket_impl::resend_packet
    - libtorrent::aux::utp_socket_impl::maybe_inc_acked_seq_nr
    - std::snprintf
    - span::data
    - libtorrent::aux::max
    - time_point::time_since_epoch
    - TORRENT_ASSERT
    - static_cast<void*>
    - milliseconds
    - total_milliseconds
    - port
    - aux::numeric_cast<packet_buffer::index_type>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - random
    - state
    - total_microseconds
    - libtorrent::aux::utp_socket_impl::maybe_trigger_receive_callback
    - std::min_element
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::defer_ack
    - std::tie
    - libtorrent::aux::utp_socket_impl::do_ledbat
    - libtorrent::aux::utp_socket_impl::consume_incoming_data
    - span<char const>::data
    - libtorrent::aux::utp_socket_impl::send_reset
    - libtorrent::aux::utp_socket_impl::send_pkt
    - initialized
    - libtorrent::aux::utp_socket_impl::parse_close_reason
    - reinterpret_cast<utp_header const*>
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_impl::incoming_packet(span<char const> b\n\t, udp::endpoint
      const& ep, time_point receive_time)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3234,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3235,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3237,1
    - Dst: target_delay
      Src: /src/libtorrent/src/utp_stream.cpp:3237,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3244,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3245,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3252,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3253,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/utp_stream.cpp:3254,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3258,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3262,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3266,1
    - Dst: gain_factor
      Src: /src/libtorrent/src/utp_stream.cpp:3266,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3272,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3285,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3286,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3290,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:3304,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/utp_stream.cpp:3305,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3307,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3309,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3318,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3322,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_stream.cpp:3324,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3327,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - acked_bytes
    - delay
    - in_flight
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3226
    functionDepth: 1
    functionLinenumber: 3226
    functionLinenumberEnd: 3340
    functionName: libtorrent::aux::utp_socket_impl::do_ledbat
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - target_delay
    - gain_factor
    - std::int32_t
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::int64_t
    - std::min
    - static_cast<void*>
    - std::max
    - inc_stats_counter
    - UTP_LOGV
    linkageType: ''
    returnType: void
    signature: "void utp_socket_impl::do_ledbat(const int acked_bytes, const int delay\n\t,
      const int in_flight)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3342
    functionDepth: 0
    functionLinenumber: 3342
    functionLinenumberEnd: 3342
    functionName: libtorrent::aux::utp_stream::bind
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_stream::bind(endpoint_type const&, error_code&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::utp_stream::cancel_handlers
      Src: /src/libtorrent/src/utp_stream.cpp:3347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3348
    functionName: libtorrent::aux::utp_stream::cancel_handlers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::utp_stream::cancel_handlers
    linkageType: ''
    returnType: void
    signature: void utp_stream::cancel_handlers(error_code const& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3358,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: min_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: mean
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    - Dst: avg_deviation
      Src: /src/libtorrent/src/utp_stream.cpp:3363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3369
    functionName: libtorrent::aux::utp_socket_impl::packet_timeout
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 11
    functionsReached:
    - state
    - min_timeout
    - avg_deviation
    - std::max
    - mean
    linkageType: ''
    returnType: int
    signature: int utp_socket_impl::packet_timeout() const
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3376,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3377,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3383,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3383,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3388,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3388,1
    - Dst: libtorrent::aux::utp_socket_impl::update_mtu_limits
      Src: /src/libtorrent/src/utp_stream.cpp:3404,1
    - Dst: size
      Src: /src/libtorrent/src/utp_stream.cpp:3413,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/utp_stream.cpp:3418,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3421,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3423,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3425,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3433,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3438,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3439,1
    - Dst: std::max
      Src: /src/libtorrent/src/utp_stream.cpp:3450,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3450,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/utp_stream.cpp:3456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3459,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/utp_stream.cpp:3461,1
    - Dst: libtorrent::aux::utp_socket_impl::packet_timeout
      Src: /src/libtorrent/src/utp_stream.cpp:3461,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3463,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3464,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3476,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3476,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3489,1
    - Dst: aux::numeric_cast<packet_buffer::index_type>
      Src: /src/libtorrent/src/utp_stream.cpp:3489,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_stream.cpp:3493,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3494,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3496,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3496,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3499,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3502,1
    - Dst: num_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3505,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3506,1
    - Dst: syn_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3506,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3507,1
    - Dst: fin_resends
      Src: /src/libtorrent/src/utp_stream.cpp:3507,1
    - Dst: UTP_LOGV
      Src: /src/libtorrent/src/utp_stream.cpp:3510,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/utp_stream.cpp:3511,1
    - Dst: restrict_mtu
      Src: /src/libtorrent/src/utp_stream.cpp:3522,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3526,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3527,1
    - Dst: libtorrent::aux::utp_socket_impl::resend_packet
      Src: /src/libtorrent/src/utp_stream.cpp:3536,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3537,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3537,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/utp_stream.cpp:3539,1
    - Dst: libtorrent::aux::utp_socket_impl::send_pkt
      Src: /src/libtorrent/src/utp_stream.cpp:3541,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3542,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3542,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3544,1
    - Dst: libtorrent::aux::utp_socket_impl::set_state
      Src: /src/libtorrent/src/utp_stream.cpp:3548,1
    - Dst: libtorrent::aux::utp_socket_impl::test_socket_state
      Src: /src/libtorrent/src/utp_stream.cpp:3549,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 80
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3553
      start: 3371
    functionDepth: 4
    functionLinenumber: 3371
    functionLinenumberEnd: 3553
    functionName: libtorrent::aux::utp_socket_impl::tick
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::utp_socket_impl::update_mtu_limits
    - restrict_mtu
    - std::max
    - UTP_LOGV
    - num_resends
    - push_back
    - fin_resends
    - at
    - libtorrent::aux::utp_socket_impl::packet_timeout
    - inc_stats_counter
    - syn_resends
    - libtorrent::aux::utp_socket_impl::resend_packet
    - TORRENT_ASSERT
    - static_cast<void*>
    - milliseconds
    - static_cast<std::uint8_t>
    - aux::numeric_cast<packet_buffer::index_type>
    - libtorrent::aux::utp_socket_impl::test_socket_state
    - size
    - state
    - libtorrent::aux::utp_socket_impl::set_state
    - libtorrent::aux::utp_socket_impl::send_pkt
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::tick(time_point const now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: end
      Src: /src/libtorrent/src/utp_stream.cpp:3560,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3564
    functionName: libtorrent::aux::utp_socket_impl::check_receive_buffers
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - std::accumulate
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::check_receive_buffers() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:3571,1
    - Dst: cursor
      Src: /src/libtorrent/src/utp_stream.cpp:3572,1
    - Dst: span
      Src: /src/libtorrent/src/utp_stream.cpp:3572,1
    - Dst: at
      Src: /src/libtorrent/src/utp_stream.cpp:3575,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3581,1
    - Dst: reinterpret_cast<utp_header*>
      Src: /src/libtorrent/src/utp_stream.cpp:3581,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3583,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3586,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_stream.cpp:3593,1
    - Dst: state
      Src: /src/libtorrent/src/utp_stream.cpp:3593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3595
      start: 3568
    functionDepth: 1
    functionLinenumber: 3568
    functionLinenumberEnd: 3595
    functionName: libtorrent::aux::utp_socket_impl::check_invariant
    functionSourceFile: /src/libtorrent/src/utp_stream.cpp
    functionUses: 0
    functionsReached:
    - span
    - state
    - at
    - reinterpret_cast<utp_header*>
    - cursor
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_impl::check_invariant() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:69,1
    - Dst: libtorrent::received_listen_port
      Src: /src/libtorrent/src/ut_pex.cpp:69,1
    - Dst: libtorrent::is_connecting
      Src: /src/libtorrent/src/ut_pex.cpp:71,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/ut_pex.cpp:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: libtorrent::send_peer
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::received_listen_port
    - libtorrent::is_outgoing
    - in_handshake
    - libtorrent::is_connecting
    linkageType: ''
    returnType: bool
    signature: bool send_peer(peer_connection const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::ut_pex_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: void ut_pex_plugin(torrent& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: '& get_ut_pex_msg()'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> & get_ut_pex_msg()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: libtorrent::peers_in_msg
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peers_in_msg() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:108,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:110,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:111,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/ut_pex.cpp:114,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:117,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:118,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:119,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:123,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:124,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:125,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/ut_pex.cpp:131,1
    - Dst: libtorrent::send_peer
      Src: /src/libtorrent/src/ut_pex.cpp:137,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:139,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:140,1
    - Dst: std::set::find
      Src: /src/libtorrent/src/ut_pex.cpp:142,1
    - Dst: std::set::end
      Src: /src/libtorrent/src/ut_pex.cpp:143,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:149,1
    - Dst: static_cast<bt_peer_connection const*>
      Src: /src/libtorrent/src/ut_pex.cpp:152,1
    - Dst: auto*::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:157,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/ut_pex.cpp:159,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:161,1
    - Dst: auto*::is_seed
      Src: /src/libtorrent/src/ut_pex.cpp:174,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/ut_pex.cpp:176,1
    - Dst: is_utp
      Src: /src/libtorrent/src/ut_pex.cpp:178,1
    - Dst: auto*::get_socket
      Src: /src/libtorrent/src/ut_pex.cpp:178,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/ut_pex.cpp:179,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:182,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:184,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:185,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:185,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:189,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:190,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:190,1
    - Dst: std::set::erase
      Src: /src/libtorrent/src/ut_pex.cpp:199,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:205,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:206,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:208,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/ut_pex.cpp:212,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_pex.cpp:213,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/ut_pex.cpp:213,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 214
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - seconds
    - libtorrent::insert
    - auto*::supports_encryption
    - libtorrent::send_peer
    - libtorrent::swap
    - libtorrent::aux::time_now
    - tcp::endpoint::port
    - libtorrent::aux::write_endpoint
    - auto*::get_socket
    - libtorrent::num_peers
    - libtorrent::bencode
    - auto*::is_outgoing
    - libtorrent::remote
    - libtorrent::clear
    - static_cast<bt_peer_connection const*>
    - flags
    - std::set::find
    - libtorrent::aux::is_v4
    - libtorrent::aux::write_uint8
    - is_utp
    - static_cast<std::uint8_t>
    - auto*::supports_holepunch
    - string
    - auto*::is_seed
    - libtorrent::peer_info_struct
    - std::set::end
    - std::set::erase
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: '& operator=(ut_pex_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_pex_plugin
    signature: ut_pex_plugin & operator=(ut_pex_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:235,1
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' t'
    - ' pc'
    - ' tp'
    argTypes:
    - torrent
    - peer_connection
    - ut_pex_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: libtorrent::ut_pex_peer_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: void ut_pex_peer_plugin(torrent& t, peer_connection& pc, ut_pex_plugin&
      tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry& h) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:255,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/ut_pex.cpp:256,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_pex.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - bdecode_node::dict_find_int_value
    - dict_find_dict
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const& h) override
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:270,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:274,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_pex.cpp:278,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:280,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:281,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:285,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/ut_pex.cpp:297,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:299,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:303,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:308,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:312,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:313,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:317,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:318,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:318,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:320,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_pex.cpp:320,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:324,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:325,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:329,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:331,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:331,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:333,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:334,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:335,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:339,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:340,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:345,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/ut_pex.cpp:345,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:351,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:351,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:354,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:355,1
    - Dst: add_peer
      Src: /src/libtorrent/src/ut_pex.cpp:356,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:361,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:365,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:367,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:368,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:372,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:373,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:373,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:375,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_pex.cpp:375,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:379,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:381,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:383,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:384,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:384,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:386,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:387,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:388,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:392,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:393,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:400,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/ut_pex.cpp:400,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:403,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:403,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:406,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:407,1
    - Dst: add_peer
      Src: /src/libtorrent/src/ut_pex.cpp:408,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:413,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:417,1
    - Dst: do_connect_boost
      Src: /src/libtorrent/src/ut_pex.cpp:419,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 78
    argCount: 3
    argNames:
    - length
    - msg
    - body
    argTypes:
    - int
    - int
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 421
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - seconds
    - do_connect_boost
    - bdecode_node::string_length
    - libtorrent::insert
    - span<char const>::size
    - libtorrent::aux::is_local
    - libtorrent::aux::time_now
    - tcp::endpoint::port
    - bdecode_node::string_ptr
    - aux::read_v6_endpoint<tcp::endpoint>
    - libtorrent::stats_counters
    - bdecode_node::type
    - aux::read_v4_endpoint<tcp::endpoint>
    - add_peer
    - libtorrent::end
    - libtorrent::remote
    - flags
    - libtorrent::size
    - erase
    - span<char const>::end
    - libtorrent::begin
    - disconnect
    - static_cast<std::uint8_t>
    - libtorrent::settings
    - bdecode_node::dict_find_string
    - libtorrent::bdecode
    - span<char const>::begin
    - peer_log
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool on_extended(int const length, int const msg, span<char const>
      body) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:430,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:431,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/ut_pex.cpp:439,1
    - Dst: libtorrent::send_ut_peer_list
      Src: /src/libtorrent/src/ut_pex.cpp:446,1
    - Dst: libtorrent::send_ut_peer_diff
      Src: /src/libtorrent/src/ut_pex.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 453
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_peers
    - seconds
    - libtorrent::send_ut_peer_list
    - libtorrent::send_ut_peer_diff
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:457,1
    - Dst: libtorrent::peers_in_msg
      Src: /src/libtorrent/src/ut_pex.cpp:460,1
    - Dst: get_ut_pex_msg
      Src: /src/libtorrent/src/ut_pex.cpp:462,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_pex.cpp:467,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:467,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:468,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:469,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:470,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:471,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:473,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:474,1
    - Dst: should_log
      Src: /src/libtorrent/src/ut_pex.cpp:477,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_pex.cpp:481,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:481,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_pex.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_pex.cpp:483,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ut_pex.cpp:484,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:487,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:488,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:489,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:490,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:491,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:492,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:493,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:494,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:495,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 499
    functionName: libtorrent::send_ut_peer_diff
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 1
    functionsReached:
    - bdecode_node::dict_find_string
    - send_buffer
    - libtorrent::size
    - flags
    - get_ut_pex_msg
    - libtorrent::bdecode
    - libtorrent::peers_in_msg
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - bdecode_node::string_length
    - libtorrent::aux::write_uint8
    - peer_log
    - should_log
    - libtorrent::stats_counters
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void send_ut_peer_diff()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:503,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:507,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:508,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:509,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:513,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:514,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:515,1
    - Dst: libtorrent::send_peer
      Src: /src/libtorrent/src/ut_pex.cpp:522,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:528,1
    - Dst: static_cast<bt_peer_connection const*>
      Src: /src/libtorrent/src/ut_pex.cpp:531,1
    - Dst: auto*::is_seed
      Src: /src/libtorrent/src/ut_pex.cpp:543,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/ut_pex.cpp:545,1
    - Dst: is_utp
      Src: /src/libtorrent/src/ut_pex.cpp:547,1
    - Dst: auto*::get_socket
      Src: /src/libtorrent/src/ut_pex.cpp:547,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/ut_pex.cpp:548,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:550,1
    - Dst: auto*::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:552,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/ut_pex.cpp:554,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:556,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:560,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:562,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:563,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:567,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:568,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_pex.cpp:573,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/ut_pex.cpp:573,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_pex.cpp:578,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/ut_pex.cpp:578,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:579,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:580,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:581,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:582,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:584,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:585,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:588,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/ut_pex.cpp:589,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 591
    functionName: libtorrent::send_ut_peer_list
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::type
    - std::vector::size
    - auto*::supports_encryption
    - libtorrent::send_peer
    - libtorrent::stats_counters
    - tcp::endpoint::port
    - libtorrent::aux::write_endpoint
    - auto*::get_socket
    - libtorrent::bencode
    - auto*::is_outgoing
    - libtorrent::remote
    - static_cast<bt_peer_connection const*>
    - send_buffer
    - flags
    - libtorrent::aux::is_v4
    - libtorrent::aux::write_uint8
    - is_utp
    - auto*::supports_holepunch
    - string
    - auto*::is_seed
    - libtorrent::aux::write_uint32
    - libtorrent::peer_info_struct
    - std::back_inserter
    - peer_log
    linkageType: ''
    returnType: void
    signature: void send_ut_peer_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    functionName: '& operator=(ut_pex_peer_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_pex_peer_plugin
    signature: ut_pex_peer_plugin & operator=(ut_pex_peer_plugin const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/ut_pex.cpp:621,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/ut_pex.cpp:623,1
    - Dst: native_handle
      Src: /src/libtorrent/src/ut_pex.cpp:623,1
    - Dst: std::make_shared<ut_pex_peer_plugin>
      Src: /src/libtorrent/src/ut_pex.cpp:624,1
    - Dst: bt_peer_connection*::set_ut_pex
      Src: /src/libtorrent/src/ut_pex.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pc'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 627
    functionName: libtorrent::ut_pex_plugin::new_connection
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - bt_peer_connection*::set_ut_pex
    - static_cast<bt_peer_connection*>
    - std::make_shared<ut_pex_peer_plugin>
    - type
    - native_handle
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: std::shared_ptr<peer_plugin> ut_pex_plugin::new_connection(peer_connection_handle
      const& pc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:69,1
    - Dst: libtorrent::received_listen_port
      Src: /src/libtorrent/src/ut_pex.cpp:69,1
    - Dst: libtorrent::is_connecting
      Src: /src/libtorrent/src/ut_pex.cpp:71,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/ut_pex.cpp:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: libtorrent::send_peer
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::received_listen_port
    - libtorrent::is_outgoing
    - in_handshake
    - libtorrent::is_connecting
    linkageType: ''
    returnType: bool
    signature: bool send_peer(peer_connection const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::ut_pex_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: void ut_pex_plugin(torrent& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: '& get_ut_pex_msg()'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> & get_ut_pex_msg()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: libtorrent::peers_in_msg
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peers_in_msg() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:108,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:110,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:111,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/ut_pex.cpp:114,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:117,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:118,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:119,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:123,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:124,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:125,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/ut_pex.cpp:131,1
    - Dst: libtorrent::send_peer
      Src: /src/libtorrent/src/ut_pex.cpp:137,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:139,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:140,1
    - Dst: std::set::find
      Src: /src/libtorrent/src/ut_pex.cpp:142,1
    - Dst: std::set::end
      Src: /src/libtorrent/src/ut_pex.cpp:143,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:149,1
    - Dst: static_cast<bt_peer_connection const*>
      Src: /src/libtorrent/src/ut_pex.cpp:152,1
    - Dst: auto*::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:157,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/ut_pex.cpp:159,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:161,1
    - Dst: auto*::is_seed
      Src: /src/libtorrent/src/ut_pex.cpp:174,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/ut_pex.cpp:176,1
    - Dst: is_utp
      Src: /src/libtorrent/src/ut_pex.cpp:178,1
    - Dst: auto*::get_socket
      Src: /src/libtorrent/src/ut_pex.cpp:178,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/ut_pex.cpp:179,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:182,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:184,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:185,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:185,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:189,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:190,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:190,1
    - Dst: std::set::erase
      Src: /src/libtorrent/src/ut_pex.cpp:199,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:205,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:206,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:208,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/ut_pex.cpp:212,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_pex.cpp:213,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/ut_pex.cpp:213,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 214
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - seconds
    - libtorrent::insert
    - auto*::supports_encryption
    - libtorrent::send_peer
    - libtorrent::swap
    - libtorrent::aux::time_now
    - tcp::endpoint::port
    - libtorrent::aux::write_endpoint
    - auto*::get_socket
    - libtorrent::num_peers
    - libtorrent::bencode
    - auto*::is_outgoing
    - libtorrent::remote
    - libtorrent::clear
    - static_cast<bt_peer_connection const*>
    - flags
    - std::set::find
    - libtorrent::aux::is_v4
    - libtorrent::aux::write_uint8
    - is_utp
    - static_cast<std::uint8_t>
    - auto*::supports_holepunch
    - string
    - auto*::is_seed
    - libtorrent::peer_info_struct
    - std::set::end
    - std::set::erase
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: '& operator=(ut_pex_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_pex_plugin
    signature: ut_pex_plugin & operator=(ut_pex_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:235,1
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' t'
    - ' pc'
    - ' tp'
    argTypes:
    - torrent
    - peer_connection
    - ut_pex_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: libtorrent::ut_pex_peer_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: void ut_pex_peer_plugin(torrent& t, peer_connection& pc, ut_pex_plugin&
      tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry& h) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:255,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/ut_pex.cpp:256,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_pex.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - bdecode_node::dict_find_int_value
    - dict_find_dict
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const& h) override
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:270,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:274,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_pex.cpp:278,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:280,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:281,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:285,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/ut_pex.cpp:297,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:299,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:303,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:308,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:312,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:313,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:317,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:318,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:318,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:320,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_pex.cpp:320,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:324,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:325,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:329,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:331,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:331,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:333,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:334,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:335,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:339,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:340,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:345,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/ut_pex.cpp:345,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:351,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:351,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:354,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:355,1
    - Dst: add_peer
      Src: /src/libtorrent/src/ut_pex.cpp:356,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:361,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:365,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:367,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:368,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:372,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:373,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:373,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:375,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_pex.cpp:375,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:379,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:381,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:383,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:384,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:384,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:386,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:387,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:388,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:392,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:393,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:400,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/ut_pex.cpp:400,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:403,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:403,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:406,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:407,1
    - Dst: add_peer
      Src: /src/libtorrent/src/ut_pex.cpp:408,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:413,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:417,1
    - Dst: do_connect_boost
      Src: /src/libtorrent/src/ut_pex.cpp:419,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 78
    argCount: 3
    argNames:
    - length
    - msg
    - body
    argTypes:
    - int
    - int
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 421
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - seconds
    - do_connect_boost
    - bdecode_node::string_length
    - libtorrent::insert
    - span<char const>::size
    - libtorrent::aux::is_local
    - libtorrent::aux::time_now
    - tcp::endpoint::port
    - bdecode_node::string_ptr
    - aux::read_v6_endpoint<tcp::endpoint>
    - libtorrent::stats_counters
    - bdecode_node::type
    - aux::read_v4_endpoint<tcp::endpoint>
    - add_peer
    - libtorrent::end
    - libtorrent::remote
    - flags
    - libtorrent::size
    - erase
    - span<char const>::end
    - libtorrent::begin
    - disconnect
    - static_cast<std::uint8_t>
    - libtorrent::settings
    - bdecode_node::dict_find_string
    - libtorrent::bdecode
    - span<char const>::begin
    - peer_log
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool on_extended(int const length, int const msg, span<char const>
      body) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:430,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:431,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/ut_pex.cpp:439,1
    - Dst: libtorrent::send_ut_peer_list
      Src: /src/libtorrent/src/ut_pex.cpp:446,1
    - Dst: libtorrent::send_ut_peer_diff
      Src: /src/libtorrent/src/ut_pex.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 453
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_peers
    - seconds
    - libtorrent::send_ut_peer_list
    - libtorrent::send_ut_peer_diff
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:457,1
    - Dst: libtorrent::peers_in_msg
      Src: /src/libtorrent/src/ut_pex.cpp:460,1
    - Dst: get_ut_pex_msg
      Src: /src/libtorrent/src/ut_pex.cpp:462,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_pex.cpp:467,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:467,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:468,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:469,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:470,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:471,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:473,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:474,1
    - Dst: should_log
      Src: /src/libtorrent/src/ut_pex.cpp:477,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_pex.cpp:481,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:481,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_pex.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_pex.cpp:483,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ut_pex.cpp:484,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:487,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:488,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:489,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:490,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:491,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:492,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:493,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:494,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:495,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 499
    functionName: libtorrent::send_ut_peer_diff
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 2
    functionsReached:
    - bdecode_node::dict_find_string
    - send_buffer
    - libtorrent::size
    - flags
    - get_ut_pex_msg
    - libtorrent::bdecode
    - libtorrent::peers_in_msg
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - bdecode_node::string_length
    - libtorrent::aux::write_uint8
    - peer_log
    - should_log
    - libtorrent::stats_counters
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void send_ut_peer_diff()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:503,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:507,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:508,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:509,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:513,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:514,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:515,1
    - Dst: libtorrent::send_peer
      Src: /src/libtorrent/src/ut_pex.cpp:522,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:528,1
    - Dst: static_cast<bt_peer_connection const*>
      Src: /src/libtorrent/src/ut_pex.cpp:531,1
    - Dst: auto*::is_seed
      Src: /src/libtorrent/src/ut_pex.cpp:543,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/ut_pex.cpp:545,1
    - Dst: is_utp
      Src: /src/libtorrent/src/ut_pex.cpp:547,1
    - Dst: auto*::get_socket
      Src: /src/libtorrent/src/ut_pex.cpp:547,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/ut_pex.cpp:548,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:550,1
    - Dst: auto*::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:552,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/ut_pex.cpp:554,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:556,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:560,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:562,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:563,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:567,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:568,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_pex.cpp:573,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/ut_pex.cpp:573,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_pex.cpp:578,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/ut_pex.cpp:578,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:579,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:580,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:581,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:582,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:584,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:585,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:588,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/ut_pex.cpp:589,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 591
    functionName: libtorrent::send_ut_peer_list
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::type
    - std::vector::size
    - auto*::supports_encryption
    - libtorrent::send_peer
    - libtorrent::stats_counters
    - tcp::endpoint::port
    - libtorrent::aux::write_endpoint
    - auto*::get_socket
    - libtorrent::bencode
    - auto*::is_outgoing
    - libtorrent::remote
    - static_cast<bt_peer_connection const*>
    - send_buffer
    - flags
    - libtorrent::aux::is_v4
    - libtorrent::aux::write_uint8
    - is_utp
    - auto*::supports_holepunch
    - string
    - auto*::is_seed
    - libtorrent::aux::write_uint32
    - libtorrent::peer_info_struct
    - std::back_inserter
    - peer_log
    linkageType: ''
    returnType: void
    signature: void send_ut_peer_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    functionName: '& operator=(ut_pex_peer_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_pex_peer_plugin
    signature: ut_pex_peer_plugin & operator=(ut_pex_peer_plugin const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/ut_pex.cpp:621,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/ut_pex.cpp:623,1
    - Dst: native_handle
      Src: /src/libtorrent/src/ut_pex.cpp:623,1
    - Dst: std::make_shared<ut_pex_peer_plugin>
      Src: /src/libtorrent/src/ut_pex.cpp:624,1
    - Dst: bt_peer_connection*::set_ut_pex
      Src: /src/libtorrent/src/ut_pex.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pc'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 627
    functionName: libtorrent::ut_pex_plugin::new_connection
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - bt_peer_connection*::set_ut_pex
    - static_cast<bt_peer_connection*>
    - std::make_shared<ut_pex_peer_plugin>
    - type
    - native_handle
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: std::shared_ptr<peer_plugin> ut_pex_plugin::new_connection(peer_connection_handle
      const& pc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:69,1
    - Dst: libtorrent::received_listen_port
      Src: /src/libtorrent/src/ut_pex.cpp:69,1
    - Dst: libtorrent::is_connecting
      Src: /src/libtorrent/src/ut_pex.cpp:71,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/ut_pex.cpp:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: libtorrent::send_peer
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::received_listen_port
    - libtorrent::is_outgoing
    - in_handshake
    - libtorrent::is_connecting
    linkageType: ''
    returnType: bool
    signature: bool send_peer(peer_connection const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::ut_pex_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: void ut_pex_plugin(torrent& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: '& get_ut_pex_msg()'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> & get_ut_pex_msg()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: libtorrent::peers_in_msg
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peers_in_msg() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:108,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:110,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:111,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/ut_pex.cpp:114,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:117,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:118,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:119,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:123,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:124,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:125,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/ut_pex.cpp:131,1
    - Dst: libtorrent::send_peer
      Src: /src/libtorrent/src/ut_pex.cpp:137,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:139,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:140,1
    - Dst: std::set::find
      Src: /src/libtorrent/src/ut_pex.cpp:142,1
    - Dst: std::set::end
      Src: /src/libtorrent/src/ut_pex.cpp:143,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:149,1
    - Dst: static_cast<bt_peer_connection const*>
      Src: /src/libtorrent/src/ut_pex.cpp:152,1
    - Dst: auto*::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:157,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/ut_pex.cpp:159,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:161,1
    - Dst: auto*::is_seed
      Src: /src/libtorrent/src/ut_pex.cpp:174,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/ut_pex.cpp:176,1
    - Dst: is_utp
      Src: /src/libtorrent/src/ut_pex.cpp:178,1
    - Dst: auto*::get_socket
      Src: /src/libtorrent/src/ut_pex.cpp:178,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/ut_pex.cpp:179,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:182,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:184,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:185,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:185,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:189,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:190,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:190,1
    - Dst: std::set::erase
      Src: /src/libtorrent/src/ut_pex.cpp:199,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:205,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:206,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:208,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/ut_pex.cpp:212,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_pex.cpp:213,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/ut_pex.cpp:213,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 214
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - seconds
    - libtorrent::insert
    - auto*::supports_encryption
    - libtorrent::send_peer
    - libtorrent::swap
    - libtorrent::aux::time_now
    - tcp::endpoint::port
    - libtorrent::aux::write_endpoint
    - auto*::get_socket
    - libtorrent::num_peers
    - libtorrent::bencode
    - auto*::is_outgoing
    - libtorrent::remote
    - libtorrent::clear
    - static_cast<bt_peer_connection const*>
    - flags
    - std::set::find
    - libtorrent::aux::is_v4
    - libtorrent::aux::write_uint8
    - is_utp
    - static_cast<std::uint8_t>
    - auto*::supports_holepunch
    - string
    - auto*::is_seed
    - libtorrent::peer_info_struct
    - std::set::end
    - std::set::erase
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: '& operator=(ut_pex_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_pex_plugin
    signature: ut_pex_plugin & operator=(ut_pex_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:235,1
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' t'
    - ' pc'
    - ' tp'
    argTypes:
    - torrent
    - peer_connection
    - ut_pex_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: libtorrent::ut_pex_peer_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: void ut_pex_peer_plugin(torrent& t, peer_connection& pc, ut_pex_plugin&
      tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry& h) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:255,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/ut_pex.cpp:256,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_pex.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - bdecode_node::dict_find_int_value
    - dict_find_dict
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const& h) override
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:270,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:274,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_pex.cpp:278,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:280,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:281,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:285,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/ut_pex.cpp:297,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:299,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:303,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:308,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:312,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:313,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:317,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:318,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:318,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:320,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_pex.cpp:320,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:324,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:325,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:329,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:331,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:331,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:333,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:334,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:335,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:339,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:340,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:345,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/ut_pex.cpp:345,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:351,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:351,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:354,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:355,1
    - Dst: add_peer
      Src: /src/libtorrent/src/ut_pex.cpp:356,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:361,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:365,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:367,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:368,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:372,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:373,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:373,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:375,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_pex.cpp:375,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:379,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:381,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:383,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:384,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:384,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:386,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:387,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:388,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:392,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:393,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:400,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/ut_pex.cpp:400,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:403,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:403,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:406,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:407,1
    - Dst: add_peer
      Src: /src/libtorrent/src/ut_pex.cpp:408,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:413,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:417,1
    - Dst: do_connect_boost
      Src: /src/libtorrent/src/ut_pex.cpp:419,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 78
    argCount: 3
    argNames:
    - length
    - msg
    - body
    argTypes:
    - int
    - int
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 421
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - seconds
    - do_connect_boost
    - bdecode_node::string_length
    - libtorrent::insert
    - span<char const>::size
    - libtorrent::aux::is_local
    - libtorrent::aux::time_now
    - tcp::endpoint::port
    - bdecode_node::string_ptr
    - aux::read_v6_endpoint<tcp::endpoint>
    - libtorrent::stats_counters
    - bdecode_node::type
    - aux::read_v4_endpoint<tcp::endpoint>
    - add_peer
    - libtorrent::end
    - libtorrent::remote
    - flags
    - libtorrent::size
    - erase
    - span<char const>::end
    - libtorrent::begin
    - disconnect
    - static_cast<std::uint8_t>
    - libtorrent::settings
    - bdecode_node::dict_find_string
    - libtorrent::bdecode
    - span<char const>::begin
    - peer_log
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool on_extended(int const length, int const msg, span<char const>
      body) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:430,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:431,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/ut_pex.cpp:439,1
    - Dst: libtorrent::send_ut_peer_list
      Src: /src/libtorrent/src/ut_pex.cpp:446,1
    - Dst: libtorrent::send_ut_peer_diff
      Src: /src/libtorrent/src/ut_pex.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 453
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_peers
    - seconds
    - libtorrent::send_ut_peer_list
    - libtorrent::send_ut_peer_diff
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:457,1
    - Dst: libtorrent::peers_in_msg
      Src: /src/libtorrent/src/ut_pex.cpp:460,1
    - Dst: get_ut_pex_msg
      Src: /src/libtorrent/src/ut_pex.cpp:462,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_pex.cpp:467,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:467,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:468,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:469,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:470,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:471,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:473,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:474,1
    - Dst: should_log
      Src: /src/libtorrent/src/ut_pex.cpp:477,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_pex.cpp:481,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:481,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_pex.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_pex.cpp:483,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ut_pex.cpp:484,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:487,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:488,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:489,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:490,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:491,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:492,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:493,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:494,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:495,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 499
    functionName: libtorrent::send_ut_peer_diff
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 3
    functionsReached:
    - bdecode_node::dict_find_string
    - send_buffer
    - libtorrent::size
    - flags
    - get_ut_pex_msg
    - libtorrent::bdecode
    - libtorrent::peers_in_msg
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - bdecode_node::string_length
    - libtorrent::aux::write_uint8
    - peer_log
    - should_log
    - libtorrent::stats_counters
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void send_ut_peer_diff()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:503,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:507,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:508,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:509,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:513,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:514,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:515,1
    - Dst: libtorrent::send_peer
      Src: /src/libtorrent/src/ut_pex.cpp:522,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:528,1
    - Dst: static_cast<bt_peer_connection const*>
      Src: /src/libtorrent/src/ut_pex.cpp:531,1
    - Dst: auto*::is_seed
      Src: /src/libtorrent/src/ut_pex.cpp:543,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/ut_pex.cpp:545,1
    - Dst: is_utp
      Src: /src/libtorrent/src/ut_pex.cpp:547,1
    - Dst: auto*::get_socket
      Src: /src/libtorrent/src/ut_pex.cpp:547,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/ut_pex.cpp:548,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:550,1
    - Dst: auto*::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:552,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/ut_pex.cpp:554,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:556,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:560,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:562,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:563,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:567,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:568,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_pex.cpp:573,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/ut_pex.cpp:573,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_pex.cpp:578,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/ut_pex.cpp:578,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:579,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:580,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:581,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:582,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:584,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:585,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:588,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/ut_pex.cpp:589,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 591
    functionName: libtorrent::send_ut_peer_list
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::type
    - std::vector::size
    - auto*::supports_encryption
    - libtorrent::send_peer
    - libtorrent::stats_counters
    - tcp::endpoint::port
    - libtorrent::aux::write_endpoint
    - auto*::get_socket
    - libtorrent::bencode
    - auto*::is_outgoing
    - libtorrent::remote
    - static_cast<bt_peer_connection const*>
    - send_buffer
    - flags
    - libtorrent::aux::is_v4
    - libtorrent::aux::write_uint8
    - is_utp
    - auto*::supports_holepunch
    - string
    - auto*::is_seed
    - libtorrent::aux::write_uint32
    - libtorrent::peer_info_struct
    - std::back_inserter
    - peer_log
    linkageType: ''
    returnType: void
    signature: void send_ut_peer_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    functionName: '& operator=(ut_pex_peer_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_pex_peer_plugin
    signature: ut_pex_peer_plugin & operator=(ut_pex_peer_plugin const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/ut_pex.cpp:621,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/ut_pex.cpp:623,1
    - Dst: native_handle
      Src: /src/libtorrent/src/ut_pex.cpp:623,1
    - Dst: std::make_shared<ut_pex_peer_plugin>
      Src: /src/libtorrent/src/ut_pex.cpp:624,1
    - Dst: bt_peer_connection*::set_ut_pex
      Src: /src/libtorrent/src/ut_pex.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pc'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 627
    functionName: libtorrent::ut_pex_plugin::new_connection
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - bt_peer_connection*::set_ut_pex
    - static_cast<bt_peer_connection*>
    - std::make_shared<ut_pex_peer_plugin>
    - type
    - native_handle
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: std::shared_ptr<peer_plugin> ut_pex_plugin::new_connection(peer_connection_handle
      const& pc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:69,1
    - Dst: libtorrent::received_listen_port
      Src: /src/libtorrent/src/ut_pex.cpp:69,1
    - Dst: libtorrent::is_connecting
      Src: /src/libtorrent/src/ut_pex.cpp:71,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/ut_pex.cpp:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: libtorrent::send_peer
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::received_listen_port
    - libtorrent::is_outgoing
    - in_handshake
    - libtorrent::is_connecting
    linkageType: ''
    returnType: bool
    signature: bool send_peer(peer_connection const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::ut_pex_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: void ut_pex_plugin(torrent& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: '& get_ut_pex_msg()'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> & get_ut_pex_msg()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: libtorrent::peers_in_msg
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peers_in_msg() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:108,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:110,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:111,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/ut_pex.cpp:114,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:117,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:118,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:119,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:123,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:124,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:125,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/ut_pex.cpp:131,1
    - Dst: libtorrent::send_peer
      Src: /src/libtorrent/src/ut_pex.cpp:137,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:139,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:140,1
    - Dst: std::set::find
      Src: /src/libtorrent/src/ut_pex.cpp:142,1
    - Dst: std::set::end
      Src: /src/libtorrent/src/ut_pex.cpp:143,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:149,1
    - Dst: static_cast<bt_peer_connection const*>
      Src: /src/libtorrent/src/ut_pex.cpp:152,1
    - Dst: auto*::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:157,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/ut_pex.cpp:159,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:161,1
    - Dst: auto*::is_seed
      Src: /src/libtorrent/src/ut_pex.cpp:174,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/ut_pex.cpp:176,1
    - Dst: is_utp
      Src: /src/libtorrent/src/ut_pex.cpp:178,1
    - Dst: auto*::get_socket
      Src: /src/libtorrent/src/ut_pex.cpp:178,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/ut_pex.cpp:179,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:182,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:184,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:185,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:185,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:189,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:190,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:190,1
    - Dst: std::set::erase
      Src: /src/libtorrent/src/ut_pex.cpp:199,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:205,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:206,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:208,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/ut_pex.cpp:212,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_pex.cpp:213,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/ut_pex.cpp:213,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 214
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - seconds
    - libtorrent::insert
    - auto*::supports_encryption
    - libtorrent::send_peer
    - libtorrent::swap
    - libtorrent::aux::time_now
    - tcp::endpoint::port
    - libtorrent::aux::write_endpoint
    - auto*::get_socket
    - libtorrent::num_peers
    - libtorrent::bencode
    - auto*::is_outgoing
    - libtorrent::remote
    - libtorrent::clear
    - static_cast<bt_peer_connection const*>
    - flags
    - std::set::find
    - libtorrent::aux::is_v4
    - libtorrent::aux::write_uint8
    - is_utp
    - static_cast<std::uint8_t>
    - auto*::supports_holepunch
    - string
    - auto*::is_seed
    - libtorrent::peer_info_struct
    - std::set::end
    - std::set::erase
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: '& operator=(ut_pex_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_pex_plugin
    signature: ut_pex_plugin & operator=(ut_pex_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:235,1
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_pex.cpp:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' t'
    - ' pc'
    - ' tp'
    argTypes:
    - torrent
    - peer_connection
    - ut_pex_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: libtorrent::ut_pex_peer_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: void ut_pex_peer_plugin(torrent& t, peer_connection& pc, ut_pex_plugin&
      tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry& h) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:255,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/ut_pex.cpp:256,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_pex.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - bdecode_node::dict_find_int_value
    - dict_find_dict
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const& h) override
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:270,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:274,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_pex.cpp:278,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:280,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:281,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:285,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/ut_pex.cpp:296,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/ut_pex.cpp:297,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_pex.cpp:299,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:303,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:308,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:312,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:313,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:317,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:318,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:318,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:319,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:320,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_pex.cpp:320,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:324,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:325,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:329,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:331,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:331,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:333,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:334,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:335,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:339,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:340,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:345,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/ut_pex.cpp:345,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:349,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:351,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:351,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:352,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:354,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:355,1
    - Dst: add_peer
      Src: /src/libtorrent/src/ut_pex.cpp:356,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:361,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:365,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:367,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:368,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:372,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:373,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:373,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:374,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:375,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_pex.cpp:375,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:379,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:381,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:383,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:384,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:384,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:386,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:387,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/ut_pex.cpp:388,1
    - Dst: aux::read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/ut_pex.cpp:392,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/ut_pex.cpp:393,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:399,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:400,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/ut_pex.cpp:400,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/ut_pex.cpp:403,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:403,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:404,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_pex.cpp:406,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/ut_pex.cpp:407,1
    - Dst: add_peer
      Src: /src/libtorrent/src/ut_pex.cpp:408,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:413,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:417,1
    - Dst: do_connect_boost
      Src: /src/libtorrent/src/ut_pex.cpp:419,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 78
    argCount: 3
    argNames:
    - length
    - msg
    - body
    argTypes:
    - int
    - int
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 421
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - seconds
    - do_connect_boost
    - bdecode_node::string_length
    - libtorrent::insert
    - span<char const>::size
    - libtorrent::aux::is_local
    - libtorrent::aux::time_now
    - tcp::endpoint::port
    - bdecode_node::string_ptr
    - aux::read_v6_endpoint<tcp::endpoint>
    - libtorrent::stats_counters
    - bdecode_node::type
    - aux::read_v4_endpoint<tcp::endpoint>
    - add_peer
    - libtorrent::end
    - libtorrent::remote
    - flags
    - libtorrent::size
    - erase
    - span<char const>::end
    - libtorrent::begin
    - disconnect
    - static_cast<std::uint8_t>
    - libtorrent::settings
    - bdecode_node::dict_find_string
    - libtorrent::bdecode
    - span<char const>::begin
    - peer_log
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool on_extended(int const length, int const msg, span<char const>
      body) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_pex.cpp:430,1
    - Dst: seconds
      Src: /src/libtorrent/src/ut_pex.cpp:431,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/ut_pex.cpp:439,1
    - Dst: libtorrent::send_ut_peer_list
      Src: /src/libtorrent/src/ut_pex.cpp:446,1
    - Dst: libtorrent::send_ut_peer_diff
      Src: /src/libtorrent/src/ut_pex.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 453
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_peers
    - seconds
    - libtorrent::send_ut_peer_list
    - libtorrent::send_ut_peer_diff
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:457,1
    - Dst: libtorrent::peers_in_msg
      Src: /src/libtorrent/src/ut_pex.cpp:460,1
    - Dst: get_ut_pex_msg
      Src: /src/libtorrent/src/ut_pex.cpp:462,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_pex.cpp:467,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:467,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:468,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:469,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:470,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:471,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:473,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:474,1
    - Dst: should_log
      Src: /src/libtorrent/src/ut_pex.cpp:477,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_pex.cpp:481,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:481,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_pex.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_pex.cpp:483,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ut_pex.cpp:484,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:487,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:488,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:489,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:490,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:491,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:492,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/ut_pex.cpp:493,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/ut_pex.cpp:494,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:495,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_pex.cpp:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 499
    functionName: libtorrent::send_ut_peer_diff
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 4
    functionsReached:
    - bdecode_node::dict_find_string
    - send_buffer
    - libtorrent::size
    - flags
    - get_ut_pex_msg
    - libtorrent::bdecode
    - libtorrent::peers_in_msg
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - bdecode_node::string_length
    - libtorrent::aux::write_uint8
    - peer_log
    - should_log
    - libtorrent::stats_counters
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void send_ut_peer_diff()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/libtorrent/src/ut_pex.cpp:503,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:507,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:508,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:509,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:513,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:514,1
    - Dst: string
      Src: /src/libtorrent/src/ut_pex.cpp:515,1
    - Dst: libtorrent::send_peer
      Src: /src/libtorrent/src/ut_pex.cpp:522,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_pex.cpp:528,1
    - Dst: static_cast<bt_peer_connection const*>
      Src: /src/libtorrent/src/ut_pex.cpp:531,1
    - Dst: auto*::is_seed
      Src: /src/libtorrent/src/ut_pex.cpp:543,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/ut_pex.cpp:545,1
    - Dst: is_utp
      Src: /src/libtorrent/src/ut_pex.cpp:547,1
    - Dst: auto*::get_socket
      Src: /src/libtorrent/src/ut_pex.cpp:547,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/ut_pex.cpp:548,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/ut_pex.cpp:550,1
    - Dst: auto*::is_outgoing
      Src: /src/libtorrent/src/ut_pex.cpp:552,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/ut_pex.cpp:554,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/ut_pex.cpp:556,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/ut_pex.cpp:560,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:562,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:563,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/ut_pex.cpp:567,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:568,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_pex.cpp:573,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/ut_pex.cpp:573,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_pex.cpp:578,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/ut_pex.cpp:578,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:579,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_pex.cpp:580,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:581,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_pex.cpp:582,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:584,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_pex.cpp:585,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_pex.cpp:588,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/ut_pex.cpp:589,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 591
    functionName: libtorrent::send_ut_peer_list
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::type
    - std::vector::size
    - auto*::supports_encryption
    - libtorrent::send_peer
    - libtorrent::stats_counters
    - tcp::endpoint::port
    - libtorrent::aux::write_endpoint
    - auto*::get_socket
    - libtorrent::bencode
    - auto*::is_outgoing
    - libtorrent::remote
    - static_cast<bt_peer_connection const*>
    - send_buffer
    - flags
    - libtorrent::aux::is_v4
    - libtorrent::aux::write_uint8
    - is_utp
    - auto*::supports_holepunch
    - string
    - auto*::is_seed
    - libtorrent::aux::write_uint32
    - libtorrent::peer_info_struct
    - std::back_inserter
    - peer_log
    linkageType: ''
    returnType: void
    signature: void send_ut_peer_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    functionName: '& operator=(ut_pex_peer_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_pex_peer_plugin
    signature: ut_pex_peer_plugin & operator=(ut_pex_peer_plugin const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/ut_pex.cpp:621,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/ut_pex.cpp:623,1
    - Dst: native_handle
      Src: /src/libtorrent/src/ut_pex.cpp:623,1
    - Dst: std::make_shared<ut_pex_peer_plugin>
      Src: /src/libtorrent/src/ut_pex.cpp:624,1
    - Dst: bt_peer_connection*::set_ut_pex
      Src: /src/libtorrent/src/ut_pex.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pc'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 627
    functionName: libtorrent::ut_pex_plugin::new_connection
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - bt_peer_connection*::set_ut_pex
    - static_cast<bt_peer_connection*>
    - std::make_shared<ut_pex_peer_plugin>
    - type
    - native_handle
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: std::shared_ptr<peer_plugin> ut_pex_plugin::new_connection(peer_connection_handle
      const& pc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::native_handle
      Src: /src/libtorrent/src/ut_pex.cpp:634,1
    - Dst: torrent*::torrent_file
      Src: /src/libtorrent/src/ut_pex.cpp:635,1
    - Dst: torrent*::torrent_file
      Src: /src/libtorrent/src/ut_pex.cpp:635,1
    - Dst: torrent*::settings
      Src: /src/libtorrent/src/ut_pex.cpp:636,1
    - Dst: std::make_shared<ut_pex_plugin>
      Src: /src/libtorrent/src/ut_pex.cpp:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 641
    functionName: libtorrent::create_ut_pex_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - torrent*::settings
    - std::make_shared<ut_pex_plugin>
    - libtorrent::native_handle
    - torrent*::torrent_file
    linkageType: ''
    returnType: std::shared_ptr<torrent_plugin>
    signature: std::shared_ptr<torrent_plugin> create_ut_pex_plugin(torrent_handle
      const& th, client_data_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::native_handle
      Src: /src/libtorrent/src/ut_pex.cpp:634,1
    - Dst: torrent*::torrent_file
      Src: /src/libtorrent/src/ut_pex.cpp:635,1
    - Dst: torrent*::torrent_file
      Src: /src/libtorrent/src/ut_pex.cpp:635,1
    - Dst: torrent*::settings
      Src: /src/libtorrent/src/ut_pex.cpp:636,1
    - Dst: std::make_shared<ut_pex_plugin>
      Src: /src/libtorrent/src/ut_pex.cpp:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 641
    functionName: libtorrent::create_ut_pex_plugin
    functionSourceFile: /src/libtorrent/src/ut_pex.cpp
    functionUses: 0
    functionsReached:
    - torrent*::settings
    - std::make_shared<ut_pex_plugin>
    - libtorrent::native_handle
    - torrent*::torrent_file
    linkageType: ''
    returnType: std::shared_ptr<torrent_plugin>
    signature: std::shared_ptr<torrent_plugin> create_ut_pex_plugin(torrent_handle
      const& th, client_data_t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/peer_class_set.cpp:42,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:42,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:42,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:43,1
    - Dst: size
      Src: /src/libtorrent/src/peer_class_set.cpp:44,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/peer_class_set.cpp:46,1
    - Dst: incref
      Src: /src/libtorrent/src/peer_class_set.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' pool'
    - c
    argTypes:
    - peer_class_pool
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: libtorrent::peer_class_set::add_class
    functionSourceFile: /src/libtorrent/src/peer_class_set.cpp
    functionUses: 0
    functionsReached:
    - incref
    - begin
    - std::find
    - TORRENT_ASSERT_FAIL
    - size
    linkageType: ''
    returnType: void
    signature: void peer_class_set::add_class(peer_class_pool& pool, peer_class_t
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/peer_class_set.cpp:56,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:56,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:56,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: libtorrent::peer_class_set::has_class
    functionSourceFile: /src/libtorrent/src/peer_class_set.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - begin
    linkageType: ''
    returnType: bool
    signature: bool peer_class_set::has_class(peer_class_t c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/peer_class_set.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:63,1
    - Dst: decref
      Src: /src/libtorrent/src/peer_class_set.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' pool'
    - c
    argTypes:
    - peer_class_pool
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: libtorrent::peer_class_set::remove_class
    functionSourceFile: /src/libtorrent/src/peer_class_set.cpp
    functionUses: 0
    functionsReached:
    - decref
    - std::find
    - begin
    linkageType: ''
    returnType: void
    signature: void peer_class_set::remove_class(peer_class_pool& pool, peer_class_t
      const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/peer_class_set.cpp:42,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:42,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:42,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:43,1
    - Dst: size
      Src: /src/libtorrent/src/peer_class_set.cpp:44,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/peer_class_set.cpp:46,1
    - Dst: incref
      Src: /src/libtorrent/src/peer_class_set.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' pool'
    - c
    argTypes:
    - peer_class_pool
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: libtorrent::peer_class_set::add_class
    functionSourceFile: /src/libtorrent/src/peer_class_set.cpp
    functionUses: 0
    functionsReached:
    - incref
    - begin
    - std::find
    - TORRENT_ASSERT_FAIL
    - size
    linkageType: ''
    returnType: void
    signature: void peer_class_set::add_class(peer_class_pool& pool, peer_class_t
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/peer_class_set.cpp:56,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:56,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:56,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: libtorrent::peer_class_set::has_class
    functionSourceFile: /src/libtorrent/src/peer_class_set.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - begin
    linkageType: ''
    returnType: bool
    signature: bool peer_class_set::has_class(peer_class_t c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/peer_class_set.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:62,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_class_set.cpp:63,1
    - Dst: decref
      Src: /src/libtorrent/src/peer_class_set.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' pool'
    - c
    argTypes:
    - peer_class_pool
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: libtorrent::peer_class_set::remove_class
    functionSourceFile: /src/libtorrent/src/peer_class_set.cpp
    functionUses: 0
    functionsReached:
    - decref
    - std::find
    - begin
    linkageType: ''
    returnType: void
    signature: void peer_class_set::remove_class(peer_class_pool& pool, peer_class_t
      const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::longjmp
      Src: /src/libtorrent/src/puff.cpp:138,1
    - Dst: long
      Src: /src/libtorrent/src/puff.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s
    - need
    argTypes:
    - struct state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 149
    functionName: bits
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 19
    functionsReached:
    - std::longjmp
    - long
    linkageType: ''
    returnType: local
    signature: local bits(struct state *s, int need)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 201
    functionName: stored
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local stored(struct state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - struct state*
    - struct huffman*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 259
    functionName: decode
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 136
    functionsReached:
    - bits
    linkageType: ''
    returnType: local
    signature: local decode(struct state *s, const struct huffman *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::longjmp
      Src: /src/libtorrent/src/puff.cpp:303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - struct state*
    - struct huffman*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 309
    functionName: decode
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 136
    functionsReached:
    - std::longjmp
    linkageType: ''
    returnType: local
    signature: local decode(struct state *s, const struct huffman *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - h
    - length
    - n
    argTypes:
    - struct huffman*
    - short*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 383
    functionName: construct
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local construct(struct huffman *h, const short *length, int n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: decode
      Src: /src/libtorrent/src/puff.cpp:464,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:481,1
    - Dst: decode
      Src: /src/libtorrent/src/puff.cpp:484,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:487,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - s
    - lencode
    - distcode
    argTypes:
    - struct state*
    - struct huffman*
    - struct huffman*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 514
    functionName: codes
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 0
    functionsReached:
    - bits
    - decode
    linkageType: ''
    returnType: local
    signature: "local codes(struct state *s,\n                const struct huffman
      *lencode,\n                const struct huffman *distcode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/puff.cpp:567,1
    - Dst: construct
      Src: /src/libtorrent/src/puff.cpp:572,1
    - Dst: codes
      Src: /src/libtorrent/src/puff.cpp:579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 580
    functionName: fixed
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 0
    functionsReached:
    - codes
    - construct
    linkageType: ''
    returnType: local
    signature: local fixed(struct state *s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:688,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:689,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:690,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:696,1
    - Dst: construct
      Src: /src/libtorrent/src/puff.cpp:701,1
    - Dst: decode
      Src: /src/libtorrent/src/puff.cpp:710,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:722,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:725,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:727,1
    - Dst: construct
      Src: /src/libtorrent/src/puff.cpp:740,1
    - Dst: construct
      Src: /src/libtorrent/src/puff.cpp:745,1
    - Dst: codes
      Src: /src/libtorrent/src/puff.cpp:750,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 751
    functionName: dynamic
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 0
    functionsReached:
    - codes
    - bits
    - construct
    - decode
    linkageType: ''
    returnType: local
    signature: local dynamic(struct state *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/libtorrent/src/puff.cpp:819,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:824,1
    - Dst: bits
      Src: /src/libtorrent/src/puff.cpp:825,1
    - Dst: stored
      Src: /src/libtorrent/src/puff.cpp:827,1
    - Dst: fixed
      Src: /src/libtorrent/src/puff.cpp:829,1
    - Dst: dynamic
      Src: /src/libtorrent/src/puff.cpp:831,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - dest
    - destlen
    - source
    - sourcelen
    argTypes:
    - unsigned char*
    - unsigned long*
    - unsigned char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 797
    functionDepth: 3
    functionLinenumber: 797
    functionLinenumberEnd: 844
    functionName: puff
    functionSourceFile: /src/libtorrent/src/puff.cpp
    functionUses: 0
    functionsReached:
    - dynamic
    - bits
    - setjmp
    - stored
    - fixed
    linkageType: ''
    returnType: int
    signature: "int puff(unsigned char *dest,           /* pointer to destination
      pointer */\n         unsigned long *destlen,        /* amount of output space
      */\n         const unsigned char *source,   /* pointer to source data pointer
      */\n         unsigned long *sourcelen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/resolve_links.cpp:42,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:44,1
    - Dst: piece_length
      Src: /src/libtorrent/src/resolve_links.cpp:46,1
    - Dst: v1
      Src: /src/libtorrent/src/resolve_links.cpp:48,1
    - Dst: v2
      Src: /src/libtorrent/src/resolve_links.cpp:49,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:51,1
    - Dst: reserve
      Src: /src/libtorrent/src/resolve_links.cpp:52,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/resolve_links.cpp:52,1
    - Dst: num_files
      Src: /src/libtorrent/src/resolve_links.cpp:52,1
    - Dst: file_range
      Src: /src/libtorrent/src/resolve_links.cpp:53,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/resolve_links.cpp:58,1
    - Dst: file_offset
      Src: /src/libtorrent/src/resolve_links.cpp:59,1
    - Dst: insert
      Src: /src/libtorrent/src/resolve_links.cpp:62,1
    - Dst: file_size
      Src: /src/libtorrent/src/resolve_links.cpp:62,1
    - Dst: insert
      Src: /src/libtorrent/src/resolve_links.cpp:65,1
    - Dst: root
      Src: /src/libtorrent/src/resolve_links.cpp:65,1
    - Dst: resize
      Src: /src/libtorrent/src/resolve_links.cpp:68,1
    - Dst: num_files
      Src: /src/libtorrent/src/resolve_links.cpp:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - ti
    argTypes:
    - std::shared_ptr<torrent_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 69
    functionName: libtorrent::resolve_links::resolve_links
    functionSourceFile: /src/libtorrent/src/resolve_links.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - aux::numeric_cast<std::size_t>
    - v1
    - root
    - files
    - num_files
    - insert
    - TORRENT_ASSERT
    - piece_length
    - reserve
    - v2
    - pad_file_at
    - file_size
    - resize
    - file_range
    - file_offset
    linkageType: ''
    returnType: void
    signature: void resolve_links::resolve_links(std::shared_ptr<torrent_info> ti)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: v2
      Src: /src/libtorrent/src/resolve_links.cpp:76,1
    - Dst: v2
      Src: /src/libtorrent/src/resolve_links.cpp:76,1
    - Dst: libtorrent::resolve_links::match_v2
      Src: /src/libtorrent/src/resolve_links.cpp:78,1
    - Dst: v1
      Src: /src/libtorrent/src/resolve_links.cpp:81,1
    - Dst: v1
      Src: /src/libtorrent/src/resolve_links.cpp:81,1
    - Dst: libtorrent::resolve_links::match_v1
      Src: /src/libtorrent/src/resolve_links.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ' ti'
    - ' save_path'
    argTypes:
    - std::shared_ptr<const torrent_info>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: libtorrent::resolve_links::match
    functionSourceFile: /src/libtorrent/src/resolve_links.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::resolve_links::match_v1
    - libtorrent::resolve_links::match_v2
    - v2
    - v1
    linkageType: ''
    returnType: void
    signature: "void resolve_links::match(std::shared_ptr<const torrent_info> const&
      ti\n\t, std::string const& save_path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: piece_length
      Src: /src/libtorrent/src/resolve_links.cpp:91,1
    - Dst: piece_length
      Src: /src/libtorrent/src/resolve_links.cpp:91,1
    - Dst: piece_length
      Src: /src/libtorrent/src/resolve_links.cpp:93,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:95,1
    - Dst: file_range
      Src: /src/libtorrent/src/resolve_links.cpp:96,1
    - Dst: file_offset
      Src: /src/libtorrent/src/resolve_links.cpp:103,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/resolve_links.cpp:104,1
    - Dst: file_size
      Src: /src/libtorrent/src/resolve_links.cpp:106,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolve_links.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:112,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/resolve_links.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:113,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:113,1
    - Dst: map_file
      Src: /src/libtorrent/src/resolve_links.cpp:123,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:125,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/src/resolve_links.cpp:133,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/src/resolve_links.cpp:134,1
    - Dst: erase
      Src: /src/libtorrent/src/resolve_links.cpp:148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - ' ti'
    - ' save_path'
    argTypes:
    - std::shared_ptr<const torrent_info>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 152
    functionName: libtorrent::resolve_links::match_v1
    functionSourceFile: /src/libtorrent/src/resolve_links.cpp
    functionUses: 1
    functionsReached:
    - hash_for_piece
    - equal_range
    - files
    - erase
    - TORRENT_ASSERT
    - piece_length
    - file_size
    - pad_file_at
    - file_index_t
    - file_range
    - file_offset
    - map_file
    linkageType: ''
    returnType: void
    signature: "void resolve_links::match_v1(std::shared_ptr<const torrent_info> const&
      ti\n\t, std::string const& save_path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:157,1
    - Dst: file_range
      Src: /src/libtorrent/src/resolve_links.cpp:158,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/resolve_links.cpp:162,1
    - Dst: find
      Src: /src/libtorrent/src/resolve_links.cpp:164,1
    - Dst: root
      Src: /src/libtorrent/src/resolve_links.cpp:164,1
    - Dst: end
      Src: /src/libtorrent/src/resolve_links.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:169,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/resolve_links.cpp:169,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:170,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:170,1
    - Dst: erase
      Src: /src/libtorrent/src/resolve_links.cpp:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ' ti'
    - ' save_path'
    argTypes:
    - std::shared_ptr<const torrent_info>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 184
    functionName: libtorrent::resolve_links::match_v2
    functionSourceFile: /src/libtorrent/src/resolve_links.cpp
    functionUses: 1
    functionsReached:
    - root
    - files
    - erase
    - end
    - find
    - TORRENT_ASSERT
    - pad_file_at
    - file_index_t
    - file_range
    linkageType: ''
    returnType: void
    signature: "void resolve_links::match_v2(std::shared_ptr<const torrent_info> const&
      ti\n\t, std::string const& save_path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/resolve_links.cpp:42,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:44,1
    - Dst: piece_length
      Src: /src/libtorrent/src/resolve_links.cpp:46,1
    - Dst: v1
      Src: /src/libtorrent/src/resolve_links.cpp:48,1
    - Dst: v2
      Src: /src/libtorrent/src/resolve_links.cpp:49,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:51,1
    - Dst: reserve
      Src: /src/libtorrent/src/resolve_links.cpp:52,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/resolve_links.cpp:52,1
    - Dst: num_files
      Src: /src/libtorrent/src/resolve_links.cpp:52,1
    - Dst: file_range
      Src: /src/libtorrent/src/resolve_links.cpp:53,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/resolve_links.cpp:58,1
    - Dst: file_offset
      Src: /src/libtorrent/src/resolve_links.cpp:59,1
    - Dst: insert
      Src: /src/libtorrent/src/resolve_links.cpp:62,1
    - Dst: file_size
      Src: /src/libtorrent/src/resolve_links.cpp:62,1
    - Dst: insert
      Src: /src/libtorrent/src/resolve_links.cpp:65,1
    - Dst: root
      Src: /src/libtorrent/src/resolve_links.cpp:65,1
    - Dst: resize
      Src: /src/libtorrent/src/resolve_links.cpp:68,1
    - Dst: num_files
      Src: /src/libtorrent/src/resolve_links.cpp:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - ti
    argTypes:
    - std::shared_ptr<torrent_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 69
    functionName: libtorrent::resolve_links::resolve_links
    functionSourceFile: /src/libtorrent/src/resolve_links.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - aux::numeric_cast<std::size_t>
    - v1
    - root
    - files
    - num_files
    - insert
    - TORRENT_ASSERT
    - piece_length
    - reserve
    - v2
    - pad_file_at
    - file_size
    - resize
    - file_range
    - file_offset
    linkageType: ''
    returnType: void
    signature: void resolve_links::resolve_links(std::shared_ptr<torrent_info> ti)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: v2
      Src: /src/libtorrent/src/resolve_links.cpp:76,1
    - Dst: v2
      Src: /src/libtorrent/src/resolve_links.cpp:76,1
    - Dst: libtorrent::resolve_links::match_v2
      Src: /src/libtorrent/src/resolve_links.cpp:78,1
    - Dst: v1
      Src: /src/libtorrent/src/resolve_links.cpp:81,1
    - Dst: v1
      Src: /src/libtorrent/src/resolve_links.cpp:81,1
    - Dst: libtorrent::resolve_links::match_v1
      Src: /src/libtorrent/src/resolve_links.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ' ti'
    - ' save_path'
    argTypes:
    - std::shared_ptr<const torrent_info>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: libtorrent::resolve_links::match
    functionSourceFile: /src/libtorrent/src/resolve_links.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::resolve_links::match_v1
    - libtorrent::resolve_links::match_v2
    - v2
    - v1
    linkageType: ''
    returnType: void
    signature: "void resolve_links::match(std::shared_ptr<const torrent_info> const&
      ti\n\t, std::string const& save_path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: piece_length
      Src: /src/libtorrent/src/resolve_links.cpp:91,1
    - Dst: piece_length
      Src: /src/libtorrent/src/resolve_links.cpp:91,1
    - Dst: piece_length
      Src: /src/libtorrent/src/resolve_links.cpp:93,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:95,1
    - Dst: file_range
      Src: /src/libtorrent/src/resolve_links.cpp:96,1
    - Dst: file_offset
      Src: /src/libtorrent/src/resolve_links.cpp:103,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/resolve_links.cpp:104,1
    - Dst: file_size
      Src: /src/libtorrent/src/resolve_links.cpp:106,1
    - Dst: equal_range
      Src: /src/libtorrent/src/resolve_links.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:112,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/resolve_links.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:113,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:113,1
    - Dst: map_file
      Src: /src/libtorrent/src/resolve_links.cpp:123,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:125,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/src/resolve_links.cpp:133,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/src/resolve_links.cpp:134,1
    - Dst: erase
      Src: /src/libtorrent/src/resolve_links.cpp:148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - ' ti'
    - ' save_path'
    argTypes:
    - std::shared_ptr<const torrent_info>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 152
    functionName: libtorrent::resolve_links::match_v1
    functionSourceFile: /src/libtorrent/src/resolve_links.cpp
    functionUses: 2
    functionsReached:
    - hash_for_piece
    - equal_range
    - files
    - erase
    - TORRENT_ASSERT
    - piece_length
    - file_size
    - pad_file_at
    - file_index_t
    - file_range
    - file_offset
    - map_file
    linkageType: ''
    returnType: void
    signature: "void resolve_links::match_v1(std::shared_ptr<const torrent_info> const&
      ti\n\t, std::string const& save_path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:157,1
    - Dst: file_range
      Src: /src/libtorrent/src/resolve_links.cpp:158,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/resolve_links.cpp:162,1
    - Dst: find
      Src: /src/libtorrent/src/resolve_links.cpp:164,1
    - Dst: root
      Src: /src/libtorrent/src/resolve_links.cpp:164,1
    - Dst: end
      Src: /src/libtorrent/src/resolve_links.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:169,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/resolve_links.cpp:169,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/resolve_links.cpp:170,1
    - Dst: files
      Src: /src/libtorrent/src/resolve_links.cpp:170,1
    - Dst: erase
      Src: /src/libtorrent/src/resolve_links.cpp:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ' ti'
    - ' save_path'
    argTypes:
    - std::shared_ptr<const torrent_info>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 184
    functionName: libtorrent::resolve_links::match_v2
    functionSourceFile: /src/libtorrent/src/resolve_links.cpp
    functionUses: 2
    functionsReached:
    - root
    - files
    - erase
    - end
    - find
    - TORRENT_ASSERT
    - pad_file_at
    - file_index_t
    - file_range
    linkageType: ''
    returnType: void
    signature: "void resolve_links::match_v2(std::shared_ptr<const torrent_info> const&
      ti\n\t, std::string const& save_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numeric_cast<std::uint8_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:46,1
    - Dst: log2p1
      Src: /src/libtorrent/src/merkle_tree.cpp:47,1
    - Dst: numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:47,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:53,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:55,1
    - Dst: libtorrent::aux::merkle_tree::blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - num_blocks
    - blocks_per_piece
    - r
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::merkle_tree::merkle_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - log2p1
    - TORRENT_ASSERT
    - libtorrent::aux::merkle_tree::blocks_per_piece
    - numeric_cast<std::uint8_t>
    - numeric_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void merkle_tree::merkle_tree(int const num_blocks, int const blocks_per_piece,
      char const* r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::aux::merkle_tree::root
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::root() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:62,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:62,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:66,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:67,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:67,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:69,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:69,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' verified'
    argTypes:
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::merkle_tree::load_verified_bits
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - set_bit
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - std::min
    - std::size_t
    - libtorrent::aux::merkle_tree::has_node
    linkageType: ''
    returnType: void
    signature: void merkle_tree::load_verified_bits(std::vector<bool> const& verified)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:78,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:79,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:82,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:86,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:90,1
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/src/merkle_tree.cpp:92,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:92,1
    - Dst: libtorrent::aux::merkle_tree::load_verified_bits
      Src: /src/libtorrent/src/merkle_tree.cpp:94,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:96,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage_piece_layer
      Src: /src/libtorrent/src/merkle_tree.cpp:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - t
    - ' verified'
    argTypes:
    - span<sha256_hash const>
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::merkle_tree::load_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::root
    - span<sha256_hash const>::size
    - libtorrent::aux::merkle_tree::allocate_full
    - libtorrent::aux::merkle_tree::optimize_storage
    - libtorrent::aux::merkle_tree::size
    - static_cast<std::size_t>
    - merkle_validate_copy
    - libtorrent::aux::merkle_tree::load_verified_bits
    - libtorrent::aux::merkle_tree::optimize_storage_piece_layer
    - span<sha256_hash const>::empty
    linkageType: ''
    returnType: void
    signature: void merkle_tree::load_tree(span<sha256_hash const> t, std::vector<bool>
      const& verified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:102,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/merkle_tree.cpp:103,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::merkle_tree::clear
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::merkle_tree::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void merkle_tree::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(bool b) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(bool b) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(bool b) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:132,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:133,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:133,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:144,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:145,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:150,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:152,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:152,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:160,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:164,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:165,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:165,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: std::logical_not<>
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:176,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:177,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:182,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:183,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:185,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:185,1
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:192,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:194,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:196,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:199,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:202,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:206,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:207,1
    - Dst: libtorrent::aux::merkle_tree::load_verified_bits
      Src: /src/libtorrent/src/merkle_tree.cpp:209,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:211,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 3
    argNames:
    - t
    - ' mask'
    - ' verified'
    argTypes:
    - span<sha256_hash const>
    - std::vector<bool>
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 212
    functionName: libtorrent::aux::merkle_tree::load_sparse_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::root
    - begin
    - std::logical_not<>
    - std::min
    - assign
    - all_of
    - libtorrent::aux::merkle_tree::num_pieces
    - libtorrent::aux::merkle_tree::optimize_storage
    - std::size_t
    - libtorrent::aux::merkle_tree::allocate_full
    - merkle_pad
    - merkle_fill_partial_tree
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - merkle_root
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::clear
    - span<sha256_hash const>::size
    - std::count_if
    - std::none_of
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::load_verified_bits
    - span<sha256_hash const>::empty
    - span<sha256_hash const>::begin
    - identity
    linkageType: ''
    returnType: void
    signature: "void merkle_tree::load_sparse_tree(span<sha256_hash const> t\n\t\t,
      std::vector<bool> const& mask\n\t\t, std::vector<bool> const& verified)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::assign
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/merkle_tree.cpp:233,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:233,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:236,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:237,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:239,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:240,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/src/merkle_tree.cpp:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 246
    functionName: libtorrent::aux::merkle_tree::get_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - blocks_per_piece
    - begin
    - aux::vector::push_back
    - libtorrent::aux::merkle_tree::size
    - aux::vector::reserve
    - aux::vector::assign
    - merkle_root_scratch
    - span<sha256_hash const>
    linkageType: ''
    returnType: aux::vector<sha256_hash>
    signature: aux::vector<sha256_hash> merkle_tree::get_piece_layer() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:254,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:255,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/merkle_tree.cpp:255,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:263,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:264,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:268,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:274,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:274,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - piece_layer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 284
    functionName: libtorrent::aux::merkle_tree::load_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::num_pieces
    - libtorrent::aux::merkle_tree::clear
    - sha256_hash
    - libtorrent::aux::merkle_tree::root
    - std::move
    - test_piece_size
    - span<char const>::data
    - merkle_pad
    - assign
    - span<char const>::size
    - merkle_root
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::load_piece_layer(span<char const> piece_layer)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:322,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:326,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:326,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::end
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:331,1
    - Dst: libtorrent::aux::merkle_tree::num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:333,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:336,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:339,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:340,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:341,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:345,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:347,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/src/merkle_tree.cpp:355,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:359,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:360,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/merkle_tree.cpp:364,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:370,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:387,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:393,1
    - Dst: add_hashes_result_t::failed::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:394,1
    - Dst: add_hashes_result_t::failed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:394,1
    - Dst: add_hashes_result_t::failed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:395,1
    - Dst: push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:395,1
    - Dst: add_hashes_result_t::failed::emplace_back
      Src: /src/libtorrent/src/merkle_tree.cpp:397,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:402,1
    - Dst: add_hashes_result_t::passed::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:410,1
    - Dst: add_hashes_result_t::passed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:410,1
    - Dst: add_hashes_result_t::passed::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:411,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:416,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:421,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:422,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:429,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:432,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:438,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:441,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:444,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:446,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/merkle_tree.cpp:447,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:447,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:448,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:449,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:456,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:459,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:462,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:462,1
    - Dst: add_hashes_result_t::failed::emplace_back
      Src: /src/libtorrent/src/merkle_tree.cpp:467,1
    - Dst: std::vector<int>
      Src: /src/libtorrent/src/merkle_tree.cpp:468,1
    - Dst: add_hashes_result_t::passed::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:472,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:474,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:475,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:479,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:481,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:485,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 4
    argNames:
    - dest_start_idx
    - file_piece_offset
    - hashes
    - uncle_hashes
    argTypes:
    - int
    - piece_index_t::diff_type
    - span<sha256_hash const>
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 488
    functionName: libtorrent::aux::merkle_tree::add_hashes
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - add_hashes_result_t::passed::empty
    - begin
    - std::min
    - libtorrent::aux::merkle_tree::has_node
    - add_hashes_result_t::failed::emplace_back
    - aux::vector::end
    - aux::vector::size
    - libtorrent::aux::merkle_tree::num_leafs
    - push_back
    - merkle_fill_tree
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - blocks_per_piece
    - libtorrent::aux::merkle_tree::optimize_storage
    - add_hashes_result_t::failed::back
    - add_hashes_result_t::failed::empty
    - std::copy
    - aux::vector::end_index
    - merkle_get_parent
    - merkle_clear_tree
    - set_bit
    - libtorrent::aux::merkle_tree::allocate_full
    - add_hashes_result_t::passed::back
    - merkle_first_leaf
    - merkle_pad
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - merkle_get_first_child
    - add_hashes_result_t::passed::push_back
    - libtorrent::aux::merkle_tree::clear
    - libtorrent::aux::merkle_tree::piece_layer_start
    - span<sha256_hash const>::size
    - span<sha256_hash const>::end
    - std::vector<int>
    - std::any_of
    - piece_levels
    - span<sha256_hash const>::begin
    - merkle_validate_and_insert_proofs
    - merkle_num_layers
    linkageType: ''
    returnType: boost::optional<add_hashes_result_t>
    signature: "boost::optional<add_hashes_result_t> merkle_tree::add_hashes(\n\t\tint
      const dest_start_idx\n\t\t, piece_index_t::diff_type const file_piece_offset\n\t\t,
      span<sha256_hash const> hashes\n\t\t, span<sha256_hash const> uncle_hashes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:496,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:498,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:499,1
    - Dst: libtorrent::aux::merkle_tree::blocks_verified
      Src: /src/libtorrent/src/merkle_tree.cpp:502,1
    - Dst: libtorrent::aux::merkle_tree::compare_node
      Src: /src/libtorrent/src/merkle_tree.cpp:505,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:506,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:508,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:511,1
    - Dst: std::tie
      Src: /src/libtorrent/src/merkle_tree.cpp:523,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/src/merkle_tree.cpp:524,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:527,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:528,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:532,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:539,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:541,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:546,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:548,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:552,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:553,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - block_index
    - ' h'
    argTypes:
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 556
    functionName: libtorrent::aux::merkle_tree::set_block
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - merkle_clear_tree
    - merkle_fill_tree
    - is_all_zeros
    - set_bit
    - libtorrent::aux::merkle_tree::allocate_full
    - std::tie
    - libtorrent::aux::merkle_tree::optimize_storage
    - merkle_first_leaf
    - libtorrent::aux::merkle_tree::compare_node
    - merkle_num_leafs
    - TORRENT_ASSERT
    - std::min
    - libtorrent::aux::merkle_tree::blocks_verified
    - std::make_tuple
    - merkle_find_known_subtree
    linkageType: ''
    returnType: std::tuple<merkle_tree::set_block_result, int, int>
    signature: "std::tuple<merkle_tree::set_block_result, int, int> merkle_tree::set_block(int
      const block_index\n\t\t, sha256_hash const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: libtorrent::aux::merkle_tree::size
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 4
    functionsReached:
    - merkle_num_nodes
    - merkle_num_leafs
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t merkle_tree::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:565,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: libtorrent::aux::merkle_tree::num_pieces
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - blocks_per_piece
    linkageType: ''
    returnType: int
    signature: int merkle_tree::num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:572,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:573,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: libtorrent::aux::merkle_tree::block_layer_start
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - merkle_first_leaf
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::block_layer_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:579,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:580,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: libtorrent::aux::merkle_tree::piece_layer_start
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - merkle_first_leaf
    - libtorrent::aux::merkle_tree::num_pieces
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::piece_layer_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: libtorrent::aux::merkle_tree::num_leafs
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 1
    functionsReached:
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::num_leafs() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:592,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:592,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:596,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:599,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:600,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:600,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:601,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: libtorrent::aux::merkle_tree::has_node
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 2
    functionsReached:
    - merkle_get_first_child
    - libtorrent::aux::merkle_tree::piece_layer_start
    - is_all_zeros
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::has_node(int const idx) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:612,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:613,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:615,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:615,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:620,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:621,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:623,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:626,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:628,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:635,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:638,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:644,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - idx
    - ' h'
    argTypes:
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 646
    functionName: libtorrent::aux::merkle_tree::compare_node
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - libtorrent::aux::merkle_tree::root
    - merkle_pad
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::compare_node(int const idx, sha256_hash const& h)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: merkle_tree::operator[](int const idx) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - get_impl
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::operator[](int const idx) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:659,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:662,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:669,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:670,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:672,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:673,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:678,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:683,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:685,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:692,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:694,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:695,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:695,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/src/merkle_tree.cpp:697,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - idx
    - ' scratch_space'
    argTypes:
    - int
    - std::vector<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 702
    functionName: libtorrent::aux::merkle_tree::get_impl
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - merkle_get_first_child
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::root
    - sha256_hash
    - merkle_pad
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT_FAIL
    - std::min
    - merkle_root_scratch
    - end_index
    - span<sha256_hash const>
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::get_impl(int idx, std::vector<sha256_hash>&
      scratch_space) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::assign
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:720,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:720,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:721,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:723,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:723,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: std::fill
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: span<sha256_hash>
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:732,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:734,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: std::fill
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:737,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 743
    functionName: libtorrent::aux::merkle_tree::build_vector
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - span<sha256_hash>
    - libtorrent::aux::merkle_tree::num_pieces
    - merkle_fill_tree
    - merkle_num_nodes
    - libtorrent::aux::merkle_tree::root
    - begin
    - std::fill
    - merkle_first_leaf
    - merkle_pad
    - end
    - merkle_num_leafs
    - std::vector::begin
    - TORRENT_ASSERT
    - std::copy
    - std::vector::assign
    - end_index
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> merkle_tree::build_vector() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:756,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:758,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:759,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:765,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:765,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:766,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:766,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:773,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:774,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:774,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:780,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:780,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 781
    functionName: libtorrent::aux::merkle_tree::build_sparse_vector
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - std::vector::push_back
    - std::move
    - merkle_first_leaf
    - merkle_num_leafs
    - end_index
    linkageType: ''
    returnType: std::pair<std::vector<sha256_hash>, aux::vector<bool>>
    signature: std::pair<std::vector<sha256_hash>, aux::vector<bool>> merkle_tree::build_sparse_vector()
      const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:792,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:792,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:796,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:796,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/merkle_tree.cpp:800,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:800,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:801,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:802,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:802,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:806,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 808
    functionName: libtorrent::aux::merkle_tree::verified_leafs
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - get_bit
    - std::vector<bool>
    - std::vector::resize
    - libtorrent::aux::merkle_tree::size
    - TORRENT_ASSERT_FAIL
    - std::size_t
    - piece_levels
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> merkle_tree::verified_leafs() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:819,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:823,1
    - Dst: all_set
      Src: /src/libtorrent/src/merkle_tree.cpp:823,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 827
    functionName: libtorrent::aux::merkle_tree::is_complete
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL
    - all_set
    - empty
    - piece_levels
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::is_complete() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:831,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:832,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:833,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:841,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:846,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - block_idx
    - num_blocks
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 851
    functionName: libtorrent::aux::merkle_tree::blocks_verified
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - get_bit
    - piece_levels
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::blocks_verified(int block_idx, int num_blocks) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:861,1
    - Dst: aux::vector<sha256_hash>
      Src: /src/libtorrent/src/merkle_tree.cpp:862,1
    - Dst: libtorrent::aux::merkle_tree::build_vector
      Src: /src/libtorrent/src/merkle_tree.cpp:862,1
    - Dst: resize
      Src: /src/libtorrent/src/merkle_tree.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 865
    functionName: libtorrent::aux::merkle_tree::allocate_full
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - aux::vector<sha256_hash>
    - libtorrent::aux::merkle_tree::build_vector
    - resize
    linkageType: ''
    returnType: void
    signature: void merkle_tree::allocate_full()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:876,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/merkle_tree.cpp:877,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:879,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:883,1
    - Dst: all_set
      Src: /src/libtorrent/src/merkle_tree.cpp:884,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:886,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:886,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:888,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 893
    functionName: libtorrent::aux::merkle_tree::optimize_storage
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 4
    functionsReached:
    - all_set
    - libtorrent::aux::merkle_tree::clear
    - std::move
    - begin
    - libtorrent::aux::merkle_tree::block_layer_start
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void merkle_tree::optimize_storage()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:902,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:902,1
    - Dst: merkle_validate_single_layer
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:908,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:911,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 916
    functionName: libtorrent::aux::merkle_tree::optimize_storage_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - merkle_num_nodes
    - std::move
    - begin
    - libtorrent::aux::merkle_tree::clear
    - merkle_num_leafs
    - end
    - libtorrent::aux::merkle_tree::block_layer_start
    - merkle_validate_single_layer
    - all_of
    - span<sha256_hash const>
    linkageType: ''
    returnType: void
    signature: void merkle_tree::optimize_storage_piece_layer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:922,1
    - Dst: libtorrent::aux::merkle_tree::num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:922,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/src/merkle_tree.cpp:923,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/merkle_tree.cpp:928,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:928,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:935,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:937,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/merkle_tree.cpp:939,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:939,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:948,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:950,1
    - Dst: libtorrent::aux::merkle_tree::get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:950,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:956,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:956,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:965,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/src/merkle_tree.cpp:969,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:970,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:970,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:973,1
    - Dst: libtorrent::aux::merkle_tree::get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:973,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - base
    - index
    - count
    - proof_layers
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 978
    functionName: libtorrent::aux::merkle_tree::get_hashes
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::get_impl
    - std::vector::push_back
    - libtorrent::aux::merkle_tree::num_leafs
    - std::vector::resize
    - merkle_num_leafs
    - merkle_get_sibling
    - std::min
    - std::vector::reserve
    - TORRENT_ASSERT
    - merkle_to_flat_index
    - std::size_t
    - libtorrent::aux::merkle_tree::has_node
    - merkle_get_parent
    - merkle_num_layers
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: "std::vector<sha256_hash> merkle_tree::get_hashes(int const base\n\t\t,
      int const index, int const count, int const proof_layers) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:987,1
    - Dst: libtorrent::aux::merkle_tree::blocks_verified
      Src: /src/libtorrent/src/merkle_tree.cpp:987,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:992,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:992,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:993,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:993,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:996,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:996,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:997,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:997,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1001,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1001,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1002,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1002,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:1004,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1006,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1011,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1015,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1015,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:1027,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1034,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1035,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1035,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1036,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1042,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1043,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1043,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:1045,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1046,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1046,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1047,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1048,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1048,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1052,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1053,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1053,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1059,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:1059,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1065,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:1065,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1069
    functionName: libtorrent::aux::merkle_tree::check_invariant
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - is_all_zeros
    - libtorrent::aux::merkle_tree::root
    - merkle_validate_node
    - get_bit
    - sha256_hash
    - merkle_first_leaf
    - merkle_pad
    - empty
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - libtorrent::aux::merkle_tree::blocks_verified
    - libtorrent::aux::merkle_tree::has_node
    - merkle_root
    - merkle_get_parent
    linkageType: ''
    returnType: void
    signature: void merkle_tree::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numeric_cast<std::uint8_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:46,1
    - Dst: log2p1
      Src: /src/libtorrent/src/merkle_tree.cpp:47,1
    - Dst: numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:47,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:53,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:55,1
    - Dst: libtorrent::aux::merkle_tree::blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - num_blocks
    - blocks_per_piece
    - r
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::merkle_tree::merkle_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - log2p1
    - TORRENT_ASSERT
    - libtorrent::aux::merkle_tree::blocks_per_piece
    - numeric_cast<std::uint8_t>
    - numeric_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void merkle_tree::merkle_tree(int const num_blocks, int const blocks_per_piece,
      char const* r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::aux::merkle_tree::root
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 7
    functionsReached:
    - sha256_hash
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::root() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:62,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:62,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:66,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:67,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:67,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:69,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:69,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' verified'
    argTypes:
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::merkle_tree::load_verified_bits
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 2
    functionsReached:
    - set_bit
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - std::min
    - std::size_t
    - libtorrent::aux::merkle_tree::has_node
    linkageType: ''
    returnType: void
    signature: void merkle_tree::load_verified_bits(std::vector<bool> const& verified)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:78,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:79,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:82,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:86,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:90,1
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/src/merkle_tree.cpp:92,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:92,1
    - Dst: libtorrent::aux::merkle_tree::load_verified_bits
      Src: /src/libtorrent/src/merkle_tree.cpp:94,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:96,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage_piece_layer
      Src: /src/libtorrent/src/merkle_tree.cpp:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - t
    - ' verified'
    argTypes:
    - span<sha256_hash const>
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::merkle_tree::load_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::root
    - span<sha256_hash const>::size
    - libtorrent::aux::merkle_tree::allocate_full
    - libtorrent::aux::merkle_tree::optimize_storage
    - libtorrent::aux::merkle_tree::size
    - static_cast<std::size_t>
    - merkle_validate_copy
    - libtorrent::aux::merkle_tree::load_verified_bits
    - libtorrent::aux::merkle_tree::optimize_storage_piece_layer
    - span<sha256_hash const>::empty
    linkageType: ''
    returnType: void
    signature: void merkle_tree::load_tree(span<sha256_hash const> t, std::vector<bool>
      const& verified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:102,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/merkle_tree.cpp:103,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::merkle_tree::clear
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::merkle_tree::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void merkle_tree::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(bool b) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(bool b) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(bool b) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:132,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:133,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:133,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:144,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:145,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:150,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:152,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:152,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:160,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:164,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:165,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:165,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: std::logical_not<>
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:176,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:177,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:182,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:183,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:185,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:185,1
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:192,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:194,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:196,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:199,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:202,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:206,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:207,1
    - Dst: libtorrent::aux::merkle_tree::load_verified_bits
      Src: /src/libtorrent/src/merkle_tree.cpp:209,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:211,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 3
    argNames:
    - t
    - ' mask'
    - ' verified'
    argTypes:
    - span<sha256_hash const>
    - std::vector<bool>
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 212
    functionName: libtorrent::aux::merkle_tree::load_sparse_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::root
    - begin
    - std::logical_not<>
    - std::min
    - assign
    - all_of
    - libtorrent::aux::merkle_tree::num_pieces
    - libtorrent::aux::merkle_tree::optimize_storage
    - std::size_t
    - libtorrent::aux::merkle_tree::allocate_full
    - merkle_pad
    - merkle_fill_partial_tree
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - merkle_root
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::clear
    - span<sha256_hash const>::size
    - std::count_if
    - std::none_of
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::load_verified_bits
    - span<sha256_hash const>::empty
    - span<sha256_hash const>::begin
    - identity
    linkageType: ''
    returnType: void
    signature: "void merkle_tree::load_sparse_tree(span<sha256_hash const> t\n\t\t,
      std::vector<bool> const& mask\n\t\t, std::vector<bool> const& verified)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::assign
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/merkle_tree.cpp:233,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:233,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:236,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:237,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:239,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:240,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/src/merkle_tree.cpp:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 246
    functionName: libtorrent::aux::merkle_tree::get_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - blocks_per_piece
    - begin
    - aux::vector::push_back
    - libtorrent::aux::merkle_tree::size
    - aux::vector::reserve
    - aux::vector::assign
    - merkle_root_scratch
    - span<sha256_hash const>
    linkageType: ''
    returnType: aux::vector<sha256_hash>
    signature: aux::vector<sha256_hash> merkle_tree::get_piece_layer() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:254,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:255,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/merkle_tree.cpp:255,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:263,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:264,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:268,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:274,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:274,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - piece_layer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 284
    functionName: libtorrent::aux::merkle_tree::load_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::num_pieces
    - libtorrent::aux::merkle_tree::clear
    - sha256_hash
    - libtorrent::aux::merkle_tree::root
    - std::move
    - test_piece_size
    - span<char const>::data
    - merkle_pad
    - assign
    - span<char const>::size
    - merkle_root
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::load_piece_layer(span<char const> piece_layer)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:322,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:326,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:326,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::end
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:331,1
    - Dst: libtorrent::aux::merkle_tree::num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:333,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:336,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:339,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:340,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:341,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:345,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:347,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/src/merkle_tree.cpp:355,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:359,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:360,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/merkle_tree.cpp:364,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:370,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:387,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:393,1
    - Dst: add_hashes_result_t::failed::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:394,1
    - Dst: add_hashes_result_t::failed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:394,1
    - Dst: add_hashes_result_t::failed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:395,1
    - Dst: push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:395,1
    - Dst: add_hashes_result_t::failed::emplace_back
      Src: /src/libtorrent/src/merkle_tree.cpp:397,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:402,1
    - Dst: add_hashes_result_t::passed::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:410,1
    - Dst: add_hashes_result_t::passed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:410,1
    - Dst: add_hashes_result_t::passed::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:411,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:416,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:421,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:422,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:429,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:432,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:438,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:441,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:444,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:446,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/merkle_tree.cpp:447,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:447,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:448,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:449,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:456,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:459,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:462,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:462,1
    - Dst: add_hashes_result_t::failed::emplace_back
      Src: /src/libtorrent/src/merkle_tree.cpp:467,1
    - Dst: std::vector<int>
      Src: /src/libtorrent/src/merkle_tree.cpp:468,1
    - Dst: add_hashes_result_t::passed::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:472,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:474,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:475,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:479,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:481,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:485,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 4
    argNames:
    - dest_start_idx
    - file_piece_offset
    - hashes
    - uncle_hashes
    argTypes:
    - int
    - piece_index_t::diff_type
    - span<sha256_hash const>
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 488
    functionName: libtorrent::aux::merkle_tree::add_hashes
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - add_hashes_result_t::passed::empty
    - begin
    - std::min
    - libtorrent::aux::merkle_tree::has_node
    - add_hashes_result_t::failed::emplace_back
    - aux::vector::end
    - aux::vector::size
    - libtorrent::aux::merkle_tree::num_leafs
    - push_back
    - merkle_fill_tree
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - blocks_per_piece
    - libtorrent::aux::merkle_tree::optimize_storage
    - add_hashes_result_t::failed::back
    - add_hashes_result_t::failed::empty
    - std::copy
    - aux::vector::end_index
    - merkle_get_parent
    - merkle_clear_tree
    - set_bit
    - libtorrent::aux::merkle_tree::allocate_full
    - add_hashes_result_t::passed::back
    - merkle_first_leaf
    - merkle_pad
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - merkle_get_first_child
    - add_hashes_result_t::passed::push_back
    - libtorrent::aux::merkle_tree::clear
    - libtorrent::aux::merkle_tree::piece_layer_start
    - span<sha256_hash const>::size
    - span<sha256_hash const>::end
    - std::vector<int>
    - std::any_of
    - piece_levels
    - span<sha256_hash const>::begin
    - merkle_validate_and_insert_proofs
    - merkle_num_layers
    linkageType: ''
    returnType: boost::optional<add_hashes_result_t>
    signature: "boost::optional<add_hashes_result_t> merkle_tree::add_hashes(\n\t\tint
      const dest_start_idx\n\t\t, piece_index_t::diff_type const file_piece_offset\n\t\t,
      span<sha256_hash const> hashes\n\t\t, span<sha256_hash const> uncle_hashes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:496,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:498,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:499,1
    - Dst: libtorrent::aux::merkle_tree::blocks_verified
      Src: /src/libtorrent/src/merkle_tree.cpp:502,1
    - Dst: libtorrent::aux::merkle_tree::compare_node
      Src: /src/libtorrent/src/merkle_tree.cpp:505,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:506,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:508,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:511,1
    - Dst: std::tie
      Src: /src/libtorrent/src/merkle_tree.cpp:523,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/src/merkle_tree.cpp:524,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:527,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:528,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:532,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:539,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:541,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:546,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:548,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:552,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:553,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - block_index
    - ' h'
    argTypes:
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 556
    functionName: libtorrent::aux::merkle_tree::set_block
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - merkle_clear_tree
    - merkle_fill_tree
    - is_all_zeros
    - set_bit
    - libtorrent::aux::merkle_tree::allocate_full
    - std::tie
    - libtorrent::aux::merkle_tree::optimize_storage
    - merkle_first_leaf
    - libtorrent::aux::merkle_tree::compare_node
    - merkle_num_leafs
    - TORRENT_ASSERT
    - std::min
    - libtorrent::aux::merkle_tree::blocks_verified
    - std::make_tuple
    - merkle_find_known_subtree
    linkageType: ''
    returnType: std::tuple<merkle_tree::set_block_result, int, int>
    signature: "std::tuple<merkle_tree::set_block_result, int, int> merkle_tree::set_block(int
      const block_index\n\t\t, sha256_hash const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: libtorrent::aux::merkle_tree::size
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 11
    functionsReached:
    - merkle_num_nodes
    - merkle_num_leafs
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t merkle_tree::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:565,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: libtorrent::aux::merkle_tree::num_pieces
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 13
    functionsReached:
    - TORRENT_ASSERT
    - blocks_per_piece
    linkageType: ''
    returnType: int
    signature: int merkle_tree::num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:572,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:573,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: libtorrent::aux::merkle_tree::block_layer_start
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT
    - merkle_first_leaf
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::block_layer_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:579,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:580,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: libtorrent::aux::merkle_tree::piece_layer_start
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 10
    functionsReached:
    - TORRENT_ASSERT
    - merkle_first_leaf
    - libtorrent::aux::merkle_tree::num_pieces
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::piece_layer_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: libtorrent::aux::merkle_tree::num_leafs
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 3
    functionsReached:
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::num_leafs() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:592,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:592,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:596,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:599,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:600,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:600,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:601,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: libtorrent::aux::merkle_tree::has_node
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 6
    functionsReached:
    - merkle_get_first_child
    - libtorrent::aux::merkle_tree::piece_layer_start
    - is_all_zeros
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::has_node(int const idx) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:612,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:613,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:615,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:615,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:620,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:621,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:623,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:626,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:628,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:635,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:638,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:644,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - idx
    - ' h'
    argTypes:
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 646
    functionName: libtorrent::aux::merkle_tree::compare_node
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - libtorrent::aux::merkle_tree::root
    - merkle_pad
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::compare_node(int const idx, sha256_hash const& h)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: merkle_tree::operator[](int const idx) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - get_impl
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::operator[](int const idx) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:659,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:662,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:669,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:670,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:672,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:673,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:678,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:683,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:685,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:692,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:694,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:695,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:695,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/src/merkle_tree.cpp:697,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - idx
    - ' scratch_space'
    argTypes:
    - int
    - std::vector<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 702
    functionName: libtorrent::aux::merkle_tree::get_impl
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 1
    functionsReached:
    - merkle_get_first_child
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::root
    - sha256_hash
    - merkle_pad
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT_FAIL
    - std::min
    - merkle_root_scratch
    - end_index
    - span<sha256_hash const>
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::get_impl(int idx, std::vector<sha256_hash>&
      scratch_space) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::assign
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:720,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:720,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:721,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:723,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:723,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: std::fill
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: span<sha256_hash>
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:732,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:734,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: std::fill
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:737,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 743
    functionName: libtorrent::aux::merkle_tree::build_vector
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 1
    functionsReached:
    - span<sha256_hash>
    - libtorrent::aux::merkle_tree::num_pieces
    - merkle_fill_tree
    - merkle_num_nodes
    - libtorrent::aux::merkle_tree::root
    - begin
    - std::fill
    - merkle_first_leaf
    - merkle_pad
    - end
    - merkle_num_leafs
    - std::vector::begin
    - TORRENT_ASSERT
    - std::copy
    - std::vector::assign
    - end_index
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> merkle_tree::build_vector() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:756,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:758,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:759,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:765,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:765,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:766,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:766,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:773,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:774,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:774,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:780,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:780,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 781
    functionName: libtorrent::aux::merkle_tree::build_sparse_vector
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - std::vector::push_back
    - std::move
    - merkle_first_leaf
    - merkle_num_leafs
    - end_index
    linkageType: ''
    returnType: std::pair<std::vector<sha256_hash>, aux::vector<bool>>
    signature: std::pair<std::vector<sha256_hash>, aux::vector<bool>> merkle_tree::build_sparse_vector()
      const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:792,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:792,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:796,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:796,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/merkle_tree.cpp:800,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:800,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:801,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:802,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:802,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:806,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 808
    functionName: libtorrent::aux::merkle_tree::verified_leafs
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - get_bit
    - std::vector<bool>
    - std::vector::resize
    - libtorrent::aux::merkle_tree::size
    - TORRENT_ASSERT_FAIL
    - std::size_t
    - piece_levels
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> merkle_tree::verified_leafs() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:819,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:823,1
    - Dst: all_set
      Src: /src/libtorrent/src/merkle_tree.cpp:823,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 827
    functionName: libtorrent::aux::merkle_tree::is_complete
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL
    - all_set
    - empty
    - piece_levels
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::is_complete() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:831,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:832,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:833,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:841,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:846,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - block_idx
    - num_blocks
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 851
    functionName: libtorrent::aux::merkle_tree::blocks_verified
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - get_bit
    - piece_levels
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::blocks_verified(int block_idx, int num_blocks) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:861,1
    - Dst: aux::vector<sha256_hash>
      Src: /src/libtorrent/src/merkle_tree.cpp:862,1
    - Dst: libtorrent::aux::merkle_tree::build_vector
      Src: /src/libtorrent/src/merkle_tree.cpp:862,1
    - Dst: resize
      Src: /src/libtorrent/src/merkle_tree.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 865
    functionName: libtorrent::aux::merkle_tree::allocate_full
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - aux::vector<sha256_hash>
    - libtorrent::aux::merkle_tree::build_vector
    - resize
    linkageType: ''
    returnType: void
    signature: void merkle_tree::allocate_full()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:876,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/merkle_tree.cpp:877,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:879,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:883,1
    - Dst: all_set
      Src: /src/libtorrent/src/merkle_tree.cpp:884,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:886,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:886,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:888,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 893
    functionName: libtorrent::aux::merkle_tree::optimize_storage
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 8
    functionsReached:
    - all_set
    - libtorrent::aux::merkle_tree::clear
    - std::move
    - begin
    - libtorrent::aux::merkle_tree::block_layer_start
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void merkle_tree::optimize_storage()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:902,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:902,1
    - Dst: merkle_validate_single_layer
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:908,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:911,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 916
    functionName: libtorrent::aux::merkle_tree::optimize_storage_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - merkle_num_nodes
    - std::move
    - begin
    - libtorrent::aux::merkle_tree::clear
    - merkle_num_leafs
    - end
    - libtorrent::aux::merkle_tree::block_layer_start
    - merkle_validate_single_layer
    - all_of
    - span<sha256_hash const>
    linkageType: ''
    returnType: void
    signature: void merkle_tree::optimize_storage_piece_layer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:922,1
    - Dst: libtorrent::aux::merkle_tree::num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:922,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/src/merkle_tree.cpp:923,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/merkle_tree.cpp:928,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:928,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:935,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:937,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/merkle_tree.cpp:939,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:939,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:948,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:950,1
    - Dst: libtorrent::aux::merkle_tree::get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:950,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:956,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:956,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:965,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/src/merkle_tree.cpp:969,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:970,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:970,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:973,1
    - Dst: libtorrent::aux::merkle_tree::get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:973,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - base
    - index
    - count
    - proof_layers
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 978
    functionName: libtorrent::aux::merkle_tree::get_hashes
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::get_impl
    - std::vector::push_back
    - libtorrent::aux::merkle_tree::num_leafs
    - std::vector::resize
    - merkle_num_leafs
    - merkle_get_sibling
    - std::min
    - std::vector::reserve
    - TORRENT_ASSERT
    - merkle_to_flat_index
    - std::size_t
    - libtorrent::aux::merkle_tree::has_node
    - merkle_get_parent
    - merkle_num_layers
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: "std::vector<sha256_hash> merkle_tree::get_hashes(int const base\n\t\t,
      int const index, int const count, int const proof_layers) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:987,1
    - Dst: libtorrent::aux::merkle_tree::blocks_verified
      Src: /src/libtorrent/src/merkle_tree.cpp:987,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:992,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:992,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:993,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:993,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:996,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:996,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:997,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:997,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1001,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1001,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1002,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1002,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:1004,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1006,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1011,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1015,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1015,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:1027,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1034,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1035,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1035,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1036,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1042,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1043,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1043,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:1045,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1046,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1046,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1047,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1048,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1048,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1052,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1053,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1053,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1059,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:1059,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1065,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:1065,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1069
    functionName: libtorrent::aux::merkle_tree::check_invariant
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - is_all_zeros
    - libtorrent::aux::merkle_tree::root
    - merkle_validate_node
    - get_bit
    - sha256_hash
    - merkle_first_leaf
    - merkle_pad
    - empty
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - libtorrent::aux::merkle_tree::blocks_verified
    - libtorrent::aux::merkle_tree::has_node
    - merkle_root
    - merkle_get_parent
    linkageType: ''
    returnType: void
    signature: void merkle_tree::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numeric_cast<std::uint8_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:46,1
    - Dst: log2p1
      Src: /src/libtorrent/src/merkle_tree.cpp:47,1
    - Dst: numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:47,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:53,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:55,1
    - Dst: libtorrent::aux::merkle_tree::blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - num_blocks
    - blocks_per_piece
    - r
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::merkle_tree::merkle_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - log2p1
    - TORRENT_ASSERT
    - libtorrent::aux::merkle_tree::blocks_per_piece
    - numeric_cast<std::uint8_t>
    - numeric_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void merkle_tree::merkle_tree(int const num_blocks, int const blocks_per_piece,
      char const* r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::aux::merkle_tree::root
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 14
    functionsReached:
    - sha256_hash
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::root() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:62,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:62,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:66,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:67,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:67,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:69,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:69,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' verified'
    argTypes:
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::merkle_tree::load_verified_bits
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 4
    functionsReached:
    - set_bit
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - std::min
    - std::size_t
    - libtorrent::aux::merkle_tree::has_node
    linkageType: ''
    returnType: void
    signature: void merkle_tree::load_verified_bits(std::vector<bool> const& verified)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:78,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:79,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:82,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:86,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:90,1
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/src/merkle_tree.cpp:92,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:92,1
    - Dst: libtorrent::aux::merkle_tree::load_verified_bits
      Src: /src/libtorrent/src/merkle_tree.cpp:94,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:96,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage_piece_layer
      Src: /src/libtorrent/src/merkle_tree.cpp:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - t
    - ' verified'
    argTypes:
    - span<sha256_hash const>
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::merkle_tree::load_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::root
    - span<sha256_hash const>::size
    - libtorrent::aux::merkle_tree::allocate_full
    - libtorrent::aux::merkle_tree::optimize_storage
    - libtorrent::aux::merkle_tree::size
    - static_cast<std::size_t>
    - merkle_validate_copy
    - libtorrent::aux::merkle_tree::load_verified_bits
    - libtorrent::aux::merkle_tree::optimize_storage_piece_layer
    - span<sha256_hash const>::empty
    linkageType: ''
    returnType: void
    signature: void merkle_tree::load_tree(span<sha256_hash const> t, std::vector<bool>
      const& verified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:102,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/merkle_tree.cpp:103,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::merkle_tree::clear
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::merkle_tree::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void merkle_tree::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(bool b) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(bool b) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(bool b) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:132,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:133,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:133,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:144,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:145,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:150,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:152,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:152,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:160,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:164,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:165,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:165,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: std::logical_not<>
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:176,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:177,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:182,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:183,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:185,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:185,1
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:192,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:194,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:196,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:199,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:202,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:206,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:207,1
    - Dst: libtorrent::aux::merkle_tree::load_verified_bits
      Src: /src/libtorrent/src/merkle_tree.cpp:209,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:211,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 3
    argNames:
    - t
    - ' mask'
    - ' verified'
    argTypes:
    - span<sha256_hash const>
    - std::vector<bool>
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 212
    functionName: libtorrent::aux::merkle_tree::load_sparse_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::root
    - begin
    - std::logical_not<>
    - std::min
    - assign
    - all_of
    - libtorrent::aux::merkle_tree::num_pieces
    - libtorrent::aux::merkle_tree::optimize_storage
    - std::size_t
    - libtorrent::aux::merkle_tree::allocate_full
    - merkle_pad
    - merkle_fill_partial_tree
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - merkle_root
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::clear
    - span<sha256_hash const>::size
    - std::count_if
    - std::none_of
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::load_verified_bits
    - span<sha256_hash const>::empty
    - span<sha256_hash const>::begin
    - identity
    linkageType: ''
    returnType: void
    signature: "void merkle_tree::load_sparse_tree(span<sha256_hash const> t\n\t\t,
      std::vector<bool> const& mask\n\t\t, std::vector<bool> const& verified)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::assign
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/merkle_tree.cpp:233,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:233,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:236,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:237,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:239,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:240,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/src/merkle_tree.cpp:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 246
    functionName: libtorrent::aux::merkle_tree::get_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - blocks_per_piece
    - begin
    - aux::vector::push_back
    - libtorrent::aux::merkle_tree::size
    - aux::vector::reserve
    - aux::vector::assign
    - merkle_root_scratch
    - span<sha256_hash const>
    linkageType: ''
    returnType: aux::vector<sha256_hash>
    signature: aux::vector<sha256_hash> merkle_tree::get_piece_layer() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:254,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:255,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/merkle_tree.cpp:255,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:263,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:264,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:268,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:274,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:274,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - piece_layer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 284
    functionName: libtorrent::aux::merkle_tree::load_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::num_pieces
    - libtorrent::aux::merkle_tree::clear
    - sha256_hash
    - libtorrent::aux::merkle_tree::root
    - std::move
    - test_piece_size
    - span<char const>::data
    - merkle_pad
    - assign
    - span<char const>::size
    - merkle_root
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::load_piece_layer(span<char const> piece_layer)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:322,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:326,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:326,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::end
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:331,1
    - Dst: libtorrent::aux::merkle_tree::num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:333,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:336,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:339,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:340,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:341,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:345,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:347,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/src/merkle_tree.cpp:355,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:359,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:360,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/merkle_tree.cpp:364,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:370,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:387,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:393,1
    - Dst: add_hashes_result_t::failed::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:394,1
    - Dst: add_hashes_result_t::failed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:394,1
    - Dst: add_hashes_result_t::failed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:395,1
    - Dst: push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:395,1
    - Dst: add_hashes_result_t::failed::emplace_back
      Src: /src/libtorrent/src/merkle_tree.cpp:397,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:402,1
    - Dst: add_hashes_result_t::passed::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:410,1
    - Dst: add_hashes_result_t::passed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:410,1
    - Dst: add_hashes_result_t::passed::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:411,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:416,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:421,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:422,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:429,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:432,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:438,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:441,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:444,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:446,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/merkle_tree.cpp:447,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:447,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:448,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:449,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:456,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:459,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:462,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:462,1
    - Dst: add_hashes_result_t::failed::emplace_back
      Src: /src/libtorrent/src/merkle_tree.cpp:467,1
    - Dst: std::vector<int>
      Src: /src/libtorrent/src/merkle_tree.cpp:468,1
    - Dst: add_hashes_result_t::passed::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:472,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:474,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:475,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:479,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:481,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:485,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 4
    argNames:
    - dest_start_idx
    - file_piece_offset
    - hashes
    - uncle_hashes
    argTypes:
    - int
    - piece_index_t::diff_type
    - span<sha256_hash const>
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 488
    functionName: libtorrent::aux::merkle_tree::add_hashes
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - add_hashes_result_t::passed::empty
    - begin
    - std::min
    - libtorrent::aux::merkle_tree::has_node
    - add_hashes_result_t::failed::emplace_back
    - aux::vector::end
    - aux::vector::size
    - libtorrent::aux::merkle_tree::num_leafs
    - push_back
    - merkle_fill_tree
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - blocks_per_piece
    - libtorrent::aux::merkle_tree::optimize_storage
    - add_hashes_result_t::failed::back
    - add_hashes_result_t::failed::empty
    - std::copy
    - aux::vector::end_index
    - merkle_get_parent
    - merkle_clear_tree
    - set_bit
    - libtorrent::aux::merkle_tree::allocate_full
    - add_hashes_result_t::passed::back
    - merkle_first_leaf
    - merkle_pad
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - merkle_get_first_child
    - add_hashes_result_t::passed::push_back
    - libtorrent::aux::merkle_tree::clear
    - libtorrent::aux::merkle_tree::piece_layer_start
    - span<sha256_hash const>::size
    - span<sha256_hash const>::end
    - std::vector<int>
    - std::any_of
    - piece_levels
    - span<sha256_hash const>::begin
    - merkle_validate_and_insert_proofs
    - merkle_num_layers
    linkageType: ''
    returnType: boost::optional<add_hashes_result_t>
    signature: "boost::optional<add_hashes_result_t> merkle_tree::add_hashes(\n\t\tint
      const dest_start_idx\n\t\t, piece_index_t::diff_type const file_piece_offset\n\t\t,
      span<sha256_hash const> hashes\n\t\t, span<sha256_hash const> uncle_hashes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:496,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:498,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:499,1
    - Dst: libtorrent::aux::merkle_tree::blocks_verified
      Src: /src/libtorrent/src/merkle_tree.cpp:502,1
    - Dst: libtorrent::aux::merkle_tree::compare_node
      Src: /src/libtorrent/src/merkle_tree.cpp:505,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:506,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:508,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:511,1
    - Dst: std::tie
      Src: /src/libtorrent/src/merkle_tree.cpp:523,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/src/merkle_tree.cpp:524,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:527,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:528,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:532,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:539,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:541,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:546,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:548,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:552,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:553,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - block_index
    - ' h'
    argTypes:
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 556
    functionName: libtorrent::aux::merkle_tree::set_block
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - merkle_clear_tree
    - merkle_fill_tree
    - is_all_zeros
    - set_bit
    - libtorrent::aux::merkle_tree::allocate_full
    - std::tie
    - libtorrent::aux::merkle_tree::optimize_storage
    - merkle_first_leaf
    - libtorrent::aux::merkle_tree::compare_node
    - merkle_num_leafs
    - TORRENT_ASSERT
    - std::min
    - libtorrent::aux::merkle_tree::blocks_verified
    - std::make_tuple
    - merkle_find_known_subtree
    linkageType: ''
    returnType: std::tuple<merkle_tree::set_block_result, int, int>
    signature: "std::tuple<merkle_tree::set_block_result, int, int> merkle_tree::set_block(int
      const block_index\n\t\t, sha256_hash const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: libtorrent::aux::merkle_tree::size
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 18
    functionsReached:
    - merkle_num_nodes
    - merkle_num_leafs
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t merkle_tree::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:565,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: libtorrent::aux::merkle_tree::num_pieces
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 22
    functionsReached:
    - TORRENT_ASSERT
    - blocks_per_piece
    linkageType: ''
    returnType: int
    signature: int merkle_tree::num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:572,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:573,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: libtorrent::aux::merkle_tree::block_layer_start
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 21
    functionsReached:
    - TORRENT_ASSERT
    - merkle_first_leaf
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::block_layer_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:579,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:580,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: libtorrent::aux::merkle_tree::piece_layer_start
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 17
    functionsReached:
    - TORRENT_ASSERT
    - merkle_first_leaf
    - libtorrent::aux::merkle_tree::num_pieces
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::piece_layer_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: libtorrent::aux::merkle_tree::num_leafs
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 5
    functionsReached:
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::num_leafs() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:592,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:592,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:596,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:599,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:600,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:600,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:601,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: libtorrent::aux::merkle_tree::has_node
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 10
    functionsReached:
    - merkle_get_first_child
    - libtorrent::aux::merkle_tree::piece_layer_start
    - is_all_zeros
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::has_node(int const idx) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:612,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:613,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:615,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:615,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:620,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:621,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:623,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:626,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:628,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:635,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:638,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:644,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - idx
    - ' h'
    argTypes:
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 646
    functionName: libtorrent::aux::merkle_tree::compare_node
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - libtorrent::aux::merkle_tree::root
    - merkle_pad
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::compare_node(int const idx, sha256_hash const& h)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: merkle_tree::operator[](int const idx) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - get_impl
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::operator[](int const idx) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:659,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:662,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:669,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:670,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:672,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:673,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:678,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:683,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:685,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:692,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:694,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:695,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:695,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/src/merkle_tree.cpp:697,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - idx
    - ' scratch_space'
    argTypes:
    - int
    - std::vector<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 702
    functionName: libtorrent::aux::merkle_tree::get_impl
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 2
    functionsReached:
    - merkle_get_first_child
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::root
    - sha256_hash
    - merkle_pad
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT_FAIL
    - std::min
    - merkle_root_scratch
    - end_index
    - span<sha256_hash const>
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::get_impl(int idx, std::vector<sha256_hash>&
      scratch_space) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::assign
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:720,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:720,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:721,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:723,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:723,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: std::fill
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: span<sha256_hash>
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:732,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:734,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: std::fill
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:737,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 743
    functionName: libtorrent::aux::merkle_tree::build_vector
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 2
    functionsReached:
    - span<sha256_hash>
    - libtorrent::aux::merkle_tree::num_pieces
    - merkle_fill_tree
    - merkle_num_nodes
    - libtorrent::aux::merkle_tree::root
    - begin
    - std::fill
    - merkle_first_leaf
    - merkle_pad
    - end
    - merkle_num_leafs
    - std::vector::begin
    - TORRENT_ASSERT
    - std::copy
    - std::vector::assign
    - end_index
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> merkle_tree::build_vector() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:756,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:758,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:759,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:765,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:765,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:766,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:766,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:773,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:774,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:774,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:780,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:780,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 781
    functionName: libtorrent::aux::merkle_tree::build_sparse_vector
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - std::vector::push_back
    - std::move
    - merkle_first_leaf
    - merkle_num_leafs
    - end_index
    linkageType: ''
    returnType: std::pair<std::vector<sha256_hash>, aux::vector<bool>>
    signature: std::pair<std::vector<sha256_hash>, aux::vector<bool>> merkle_tree::build_sparse_vector()
      const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:792,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:792,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:796,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:796,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/merkle_tree.cpp:800,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:800,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:801,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:802,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:802,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:806,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 808
    functionName: libtorrent::aux::merkle_tree::verified_leafs
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - get_bit
    - std::vector<bool>
    - std::vector::resize
    - libtorrent::aux::merkle_tree::size
    - TORRENT_ASSERT_FAIL
    - std::size_t
    - piece_levels
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> merkle_tree::verified_leafs() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:819,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:823,1
    - Dst: all_set
      Src: /src/libtorrent/src/merkle_tree.cpp:823,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 827
    functionName: libtorrent::aux::merkle_tree::is_complete
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL
    - all_set
    - empty
    - piece_levels
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::is_complete() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:831,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:832,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:833,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:841,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:846,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - block_idx
    - num_blocks
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 851
    functionName: libtorrent::aux::merkle_tree::blocks_verified
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - get_bit
    - piece_levels
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::blocks_verified(int block_idx, int num_blocks) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:861,1
    - Dst: aux::vector<sha256_hash>
      Src: /src/libtorrent/src/merkle_tree.cpp:862,1
    - Dst: libtorrent::aux::merkle_tree::build_vector
      Src: /src/libtorrent/src/merkle_tree.cpp:862,1
    - Dst: resize
      Src: /src/libtorrent/src/merkle_tree.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 865
    functionName: libtorrent::aux::merkle_tree::allocate_full
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT
    - aux::vector<sha256_hash>
    - libtorrent::aux::merkle_tree::build_vector
    - resize
    linkageType: ''
    returnType: void
    signature: void merkle_tree::allocate_full()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:876,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/merkle_tree.cpp:877,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:879,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:883,1
    - Dst: all_set
      Src: /src/libtorrent/src/merkle_tree.cpp:884,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:886,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:886,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:888,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 893
    functionName: libtorrent::aux::merkle_tree::optimize_storage
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 12
    functionsReached:
    - all_set
    - libtorrent::aux::merkle_tree::clear
    - std::move
    - begin
    - libtorrent::aux::merkle_tree::block_layer_start
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void merkle_tree::optimize_storage()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:902,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:902,1
    - Dst: merkle_validate_single_layer
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:908,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:911,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 916
    functionName: libtorrent::aux::merkle_tree::optimize_storage_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - merkle_num_nodes
    - std::move
    - begin
    - libtorrent::aux::merkle_tree::clear
    - merkle_num_leafs
    - end
    - libtorrent::aux::merkle_tree::block_layer_start
    - merkle_validate_single_layer
    - all_of
    - span<sha256_hash const>
    linkageType: ''
    returnType: void
    signature: void merkle_tree::optimize_storage_piece_layer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:922,1
    - Dst: libtorrent::aux::merkle_tree::num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:922,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/src/merkle_tree.cpp:923,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/merkle_tree.cpp:928,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:928,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:935,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:937,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/merkle_tree.cpp:939,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:939,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:948,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:950,1
    - Dst: libtorrent::aux::merkle_tree::get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:950,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:956,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:956,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:965,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/src/merkle_tree.cpp:969,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:970,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:970,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:973,1
    - Dst: libtorrent::aux::merkle_tree::get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:973,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - base
    - index
    - count
    - proof_layers
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 978
    functionName: libtorrent::aux::merkle_tree::get_hashes
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::get_impl
    - std::vector::push_back
    - libtorrent::aux::merkle_tree::num_leafs
    - std::vector::resize
    - merkle_num_leafs
    - merkle_get_sibling
    - std::min
    - std::vector::reserve
    - TORRENT_ASSERT
    - merkle_to_flat_index
    - std::size_t
    - libtorrent::aux::merkle_tree::has_node
    - merkle_get_parent
    - merkle_num_layers
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: "std::vector<sha256_hash> merkle_tree::get_hashes(int const base\n\t\t,
      int const index, int const count, int const proof_layers) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:987,1
    - Dst: libtorrent::aux::merkle_tree::blocks_verified
      Src: /src/libtorrent/src/merkle_tree.cpp:987,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:992,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:992,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:993,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:993,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:996,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:996,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:997,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:997,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1001,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1001,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1002,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1002,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:1004,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1006,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1011,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1015,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1015,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:1027,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1034,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1035,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1035,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1036,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1042,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1043,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1043,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:1045,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1046,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1046,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1047,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1048,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1048,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1052,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1053,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1053,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1059,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:1059,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1065,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:1065,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1069
    functionName: libtorrent::aux::merkle_tree::check_invariant
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - is_all_zeros
    - libtorrent::aux::merkle_tree::root
    - merkle_validate_node
    - get_bit
    - sha256_hash
    - merkle_first_leaf
    - merkle_pad
    - empty
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - libtorrent::aux::merkle_tree::blocks_verified
    - libtorrent::aux::merkle_tree::has_node
    - merkle_root
    - merkle_get_parent
    linkageType: ''
    returnType: void
    signature: void merkle_tree::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numeric_cast<std::uint8_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:46,1
    - Dst: log2p1
      Src: /src/libtorrent/src/merkle_tree.cpp:47,1
    - Dst: numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:47,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:53,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:55,1
    - Dst: libtorrent::aux::merkle_tree::blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - num_blocks
    - blocks_per_piece
    - r
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::merkle_tree::merkle_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - log2p1
    - TORRENT_ASSERT
    - libtorrent::aux::merkle_tree::blocks_per_piece
    - numeric_cast<std::uint8_t>
    - numeric_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void merkle_tree::merkle_tree(int const num_blocks, int const blocks_per_piece,
      char const* r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::aux::merkle_tree::root
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 21
    functionsReached:
    - sha256_hash
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::root() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:62,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:62,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:66,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:67,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:67,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:69,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:69,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' verified'
    argTypes:
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::merkle_tree::load_verified_bits
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 6
    functionsReached:
    - set_bit
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - std::min
    - std::size_t
    - libtorrent::aux::merkle_tree::has_node
    linkageType: ''
    returnType: void
    signature: void merkle_tree::load_verified_bits(std::vector<bool> const& verified)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:78,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:79,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:80,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:82,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:86,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:90,1
    - Dst: merkle_validate_copy
      Src: /src/libtorrent/src/merkle_tree.cpp:92,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:92,1
    - Dst: libtorrent::aux::merkle_tree::load_verified_bits
      Src: /src/libtorrent/src/merkle_tree.cpp:94,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:96,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage_piece_layer
      Src: /src/libtorrent/src/merkle_tree.cpp:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - t
    - ' verified'
    argTypes:
    - span<sha256_hash const>
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::merkle_tree::load_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::root
    - span<sha256_hash const>::size
    - libtorrent::aux::merkle_tree::allocate_full
    - libtorrent::aux::merkle_tree::optimize_storage
    - libtorrent::aux::merkle_tree::size
    - static_cast<std::size_t>
    - merkle_validate_copy
    - libtorrent::aux::merkle_tree::load_verified_bits
    - libtorrent::aux::merkle_tree::optimize_storage_piece_layer
    - span<sha256_hash const>::empty
    linkageType: ''
    returnType: void
    signature: void merkle_tree::load_tree(span<sha256_hash const> t, std::vector<bool>
      const& verified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:102,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/merkle_tree.cpp:103,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::merkle_tree::clear
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 19
    functionsReached:
    - libtorrent::aux::merkle_tree::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void merkle_tree::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(bool b) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(bool b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(bool b) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(bool b) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:127,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:132,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:133,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:133,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:138,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:141,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:144,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:145,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:147,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:150,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:152,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:152,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:160,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:164,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:165,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:165,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:170,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: std::logical_not<>
      Src: /src/libtorrent/src/merkle_tree.cpp:171,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:174,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:176,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:177,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:179,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:182,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:183,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:185,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:185,1
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: identity
      Src: /src/libtorrent/src/merkle_tree.cpp:191,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:192,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:194,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:196,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:199,1
    - Dst: merkle_fill_partial_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:202,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:206,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:207,1
    - Dst: libtorrent::aux::merkle_tree::load_verified_bits
      Src: /src/libtorrent/src/merkle_tree.cpp:209,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:211,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 3
    argNames:
    - t
    - ' mask'
    - ' verified'
    argTypes:
    - span<sha256_hash const>
    - std::vector<bool>
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 212
    functionName: libtorrent::aux::merkle_tree::load_sparse_tree
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::root
    - begin
    - std::logical_not<>
    - std::min
    - assign
    - all_of
    - libtorrent::aux::merkle_tree::num_pieces
    - libtorrent::aux::merkle_tree::optimize_storage
    - std::size_t
    - libtorrent::aux::merkle_tree::allocate_full
    - merkle_pad
    - merkle_fill_partial_tree
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - merkle_root
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::clear
    - span<sha256_hash const>::size
    - std::count_if
    - std::none_of
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::load_verified_bits
    - span<sha256_hash const>::empty
    - span<sha256_hash const>::begin
    - identity
    linkageType: ''
    returnType: void
    signature: "void merkle_tree::load_sparse_tree(span<sha256_hash const> t\n\t\t,
      std::vector<bool> const& mask\n\t\t, std::vector<bool> const& verified)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector::assign
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:223,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:224,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/merkle_tree.cpp:233,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:233,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:236,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:237,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:239,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:240,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/src/merkle_tree.cpp:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 246
    functionName: libtorrent::aux::merkle_tree::get_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - blocks_per_piece
    - begin
    - aux::vector::push_back
    - libtorrent::aux::merkle_tree::size
    - aux::vector::reserve
    - aux::vector::assign
    - merkle_root_scratch
    - span<sha256_hash const>
    linkageType: ''
    returnType: aux::vector<sha256_hash>
    signature: aux::vector<sha256_hash> merkle_tree::get_piece_layer() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:254,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:255,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/merkle_tree.cpp:255,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:260,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:263,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:264,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:268,1
    - Dst: assign
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/merkle_tree.cpp:272,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:274,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:274,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - piece_layer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 284
    functionName: libtorrent::aux::merkle_tree::load_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::num_pieces
    - libtorrent::aux::merkle_tree::clear
    - sha256_hash
    - libtorrent::aux::merkle_tree::root
    - std::move
    - test_piece_size
    - span<char const>::data
    - merkle_pad
    - assign
    - span<char const>::size
    - merkle_root
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::load_piece_layer(span<char const> piece_layer)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:322,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:326,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:326,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::end
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/merkle_tree.cpp:328,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:331,1
    - Dst: libtorrent::aux::merkle_tree::num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:333,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:336,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:339,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:340,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:341,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:345,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:347,1
    - Dst: merkle_validate_and_insert_proofs
      Src: /src/libtorrent/src/merkle_tree.cpp:355,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:359,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:360,1
    - Dst: aux::vector::size
      Src: /src/libtorrent/src/merkle_tree.cpp:364,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:370,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:387,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:393,1
    - Dst: add_hashes_result_t::failed::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:394,1
    - Dst: add_hashes_result_t::failed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:394,1
    - Dst: add_hashes_result_t::failed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:395,1
    - Dst: push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:395,1
    - Dst: add_hashes_result_t::failed::emplace_back
      Src: /src/libtorrent/src/merkle_tree.cpp:397,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:402,1
    - Dst: add_hashes_result_t::passed::empty
      Src: /src/libtorrent/src/merkle_tree.cpp:410,1
    - Dst: add_hashes_result_t::passed::back
      Src: /src/libtorrent/src/merkle_tree.cpp:410,1
    - Dst: add_hashes_result_t::passed::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:411,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:416,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:421,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:422,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:429,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:432,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle_tree.cpp:438,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:441,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:444,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:446,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/merkle_tree.cpp:447,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:447,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:448,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:449,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:456,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:459,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:462,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:462,1
    - Dst: add_hashes_result_t::failed::emplace_back
      Src: /src/libtorrent/src/merkle_tree.cpp:467,1
    - Dst: std::vector<int>
      Src: /src/libtorrent/src/merkle_tree.cpp:468,1
    - Dst: add_hashes_result_t::passed::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:472,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:474,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:475,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:479,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:481,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:485,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 4
    argNames:
    - dest_start_idx
    - file_piece_offset
    - hashes
    - uncle_hashes
    argTypes:
    - int
    - piece_index_t::diff_type
    - span<sha256_hash const>
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 488
    functionName: libtorrent::aux::merkle_tree::add_hashes
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - add_hashes_result_t::passed::empty
    - begin
    - std::min
    - libtorrent::aux::merkle_tree::has_node
    - add_hashes_result_t::failed::emplace_back
    - aux::vector::end
    - aux::vector::size
    - libtorrent::aux::merkle_tree::num_leafs
    - push_back
    - merkle_fill_tree
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - blocks_per_piece
    - libtorrent::aux::merkle_tree::optimize_storage
    - add_hashes_result_t::failed::back
    - add_hashes_result_t::failed::empty
    - std::copy
    - aux::vector::end_index
    - merkle_get_parent
    - merkle_clear_tree
    - set_bit
    - libtorrent::aux::merkle_tree::allocate_full
    - add_hashes_result_t::passed::back
    - merkle_first_leaf
    - merkle_pad
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - merkle_get_first_child
    - add_hashes_result_t::passed::push_back
    - libtorrent::aux::merkle_tree::clear
    - libtorrent::aux::merkle_tree::piece_layer_start
    - span<sha256_hash const>::size
    - span<sha256_hash const>::end
    - std::vector<int>
    - std::any_of
    - piece_levels
    - span<sha256_hash const>::begin
    - merkle_validate_and_insert_proofs
    - merkle_num_layers
    linkageType: ''
    returnType: boost::optional<add_hashes_result_t>
    signature: "boost::optional<add_hashes_result_t> merkle_tree::add_hashes(\n\t\tint
      const dest_start_idx\n\t\t, piece_index_t::diff_type const file_piece_offset\n\t\t,
      span<sha256_hash const> hashes\n\t\t, span<sha256_hash const> uncle_hashes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:496,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:498,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:499,1
    - Dst: libtorrent::aux::merkle_tree::blocks_verified
      Src: /src/libtorrent/src/merkle_tree.cpp:502,1
    - Dst: libtorrent::aux::merkle_tree::compare_node
      Src: /src/libtorrent/src/merkle_tree.cpp:505,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:506,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:508,1
    - Dst: libtorrent::aux::merkle_tree::allocate_full
      Src: /src/libtorrent/src/merkle_tree.cpp:511,1
    - Dst: std::tie
      Src: /src/libtorrent/src/merkle_tree.cpp:523,1
    - Dst: merkle_find_known_subtree
      Src: /src/libtorrent/src/merkle_tree.cpp:524,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:527,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:528,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:532,1
    - Dst: merkle_clear_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:539,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:541,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:546,1
    - Dst: set_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:548,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:552,1
    - Dst: libtorrent::aux::merkle_tree::optimize_storage
      Src: /src/libtorrent/src/merkle_tree.cpp:553,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle_tree.cpp:555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - block_index
    - ' h'
    argTypes:
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 556
    functionName: libtorrent::aux::merkle_tree::set_block
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - merkle_clear_tree
    - merkle_fill_tree
    - is_all_zeros
    - set_bit
    - libtorrent::aux::merkle_tree::allocate_full
    - std::tie
    - libtorrent::aux::merkle_tree::optimize_storage
    - merkle_first_leaf
    - libtorrent::aux::merkle_tree::compare_node
    - merkle_num_leafs
    - TORRENT_ASSERT
    - std::min
    - libtorrent::aux::merkle_tree::blocks_verified
    - std::make_tuple
    - merkle_find_known_subtree
    linkageType: ''
    returnType: std::tuple<merkle_tree::set_block_result, int, int>
    signature: "std::tuple<merkle_tree::set_block_result, int, int> merkle_tree::set_block(int
      const block_index\n\t\t, sha256_hash const& h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: libtorrent::aux::merkle_tree::size
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 25
    functionsReached:
    - merkle_num_nodes
    - merkle_num_leafs
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t merkle_tree::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/merkle_tree.cpp:565,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: libtorrent::aux::merkle_tree::num_pieces
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 31
    functionsReached:
    - TORRENT_ASSERT
    - blocks_per_piece
    linkageType: ''
    returnType: int
    signature: int merkle_tree::num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:572,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:573,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: libtorrent::aux::merkle_tree::block_layer_start
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 30
    functionsReached:
    - TORRENT_ASSERT
    - merkle_first_leaf
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::block_layer_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:579,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:580,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: libtorrent::aux::merkle_tree::piece_layer_start
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 24
    functionsReached:
    - TORRENT_ASSERT
    - merkle_first_leaf
    - libtorrent::aux::merkle_tree::num_pieces
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::piece_layer_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: libtorrent::aux::merkle_tree::num_leafs
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 7
    functionsReached:
    - merkle_num_leafs
    linkageType: ''
    returnType: int
    signature: int merkle_tree::num_leafs() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:592,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:592,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:596,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:599,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:600,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:600,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:601,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: libtorrent::aux::merkle_tree::has_node
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 14
    functionsReached:
    - merkle_get_first_child
    - libtorrent::aux::merkle_tree::piece_layer_start
    - is_all_zeros
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::has_node(int const idx) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:612,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:613,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:615,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:615,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:620,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:621,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:623,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:626,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:628,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:635,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:638,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:644,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - idx
    - ' h'
    argTypes:
    - int
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 646
    functionName: libtorrent::aux::merkle_tree::compare_node
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - libtorrent::aux::merkle_tree::root
    - merkle_pad
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::compare_node(int const idx, sha256_hash const& h)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: merkle_tree::operator[](int const idx) const
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - get_impl
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::operator[](int const idx) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:659,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:662,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:669,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:670,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:672,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:673,1
    - Dst: merkle_get_first_child
      Src: /src/libtorrent/src/merkle_tree.cpp:678,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:683,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:685,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:692,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:694,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:695,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:695,1
    - Dst: merkle_root_scratch
      Src: /src/libtorrent/src/merkle_tree.cpp:697,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - idx
    - ' scratch_space'
    argTypes:
    - int
    - std::vector<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 702
    functionName: libtorrent::aux::merkle_tree::get_impl
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 3
    functionsReached:
    - merkle_get_first_child
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::root
    - sha256_hash
    - merkle_pad
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT_FAIL
    - std::min
    - merkle_root_scratch
    - end_index
    - span<sha256_hash const>
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_tree::get_impl(int idx, std::vector<sha256_hash>&
      scratch_space) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::assign
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:716,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:720,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:720,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:721,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:723,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:723,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:724,1
    - Dst: std::fill
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:725,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: span<sha256_hash>
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:726,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:732,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:734,1
    - Dst: std::copy
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:735,1
    - Dst: std::fill
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/merkle_tree.cpp:736,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/src/merkle_tree.cpp:737,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 743
    functionName: libtorrent::aux::merkle_tree::build_vector
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 3
    functionsReached:
    - span<sha256_hash>
    - libtorrent::aux::merkle_tree::num_pieces
    - merkle_fill_tree
    - merkle_num_nodes
    - libtorrent::aux::merkle_tree::root
    - begin
    - std::fill
    - merkle_first_leaf
    - merkle_pad
    - end
    - merkle_num_leafs
    - std::vector::begin
    - TORRENT_ASSERT
    - std::copy
    - std::vector::assign
    - end_index
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> merkle_tree::build_vector() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:756,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:758,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:759,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:765,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:765,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:766,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:766,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:773,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:774,1
    - Dst: end_index
      Src: /src/libtorrent/src/merkle_tree.cpp:774,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:780,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:780,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 781
    functionName: libtorrent::aux::merkle_tree::build_sparse_vector
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - std::vector::push_back
    - std::move
    - merkle_first_leaf
    - merkle_num_leafs
    - end_index
    linkageType: ''
    returnType: std::pair<std::vector<sha256_hash>, aux::vector<bool>>
    signature: std::pair<std::vector<sha256_hash>, aux::vector<bool>> merkle_tree::build_sparse_vector()
      const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:792,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:792,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:794,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:796,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:796,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/merkle_tree.cpp:800,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:800,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:801,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:802,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:802,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:806,1
    - Dst: std::vector<bool>
      Src: /src/libtorrent/src/merkle_tree.cpp:807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 808
    functionName: libtorrent::aux::merkle_tree::verified_leafs
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - get_bit
    - std::vector<bool>
    - std::vector::resize
    - libtorrent::aux::merkle_tree::size
    - TORRENT_ASSERT_FAIL
    - std::size_t
    - piece_levels
    linkageType: ''
    returnType: std::vector<bool>
    signature: std::vector<bool> merkle_tree::verified_leafs() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:819,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:823,1
    - Dst: all_set
      Src: /src/libtorrent/src/merkle_tree.cpp:823,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 827
    functionName: libtorrent::aux::merkle_tree::is_complete
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL
    - all_set
    - empty
    - piece_levels
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::is_complete() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:831,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:832,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:833,1
    - Dst: piece_levels
      Src: /src/libtorrent/src/merkle_tree.cpp:841,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:846,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/merkle_tree.cpp:849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - block_idx
    - num_blocks
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 851
    functionName: libtorrent::aux::merkle_tree::blocks_verified
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - get_bit
    - piece_levels
    linkageType: ''
    returnType: bool
    signature: bool merkle_tree::blocks_verified(int block_idx, int num_blocks) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:861,1
    - Dst: aux::vector<sha256_hash>
      Src: /src/libtorrent/src/merkle_tree.cpp:862,1
    - Dst: libtorrent::aux::merkle_tree::build_vector
      Src: /src/libtorrent/src/merkle_tree.cpp:862,1
    - Dst: resize
      Src: /src/libtorrent/src/merkle_tree.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 865
    functionName: libtorrent::aux::merkle_tree::allocate_full
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    - aux::vector<sha256_hash>
    - libtorrent::aux::merkle_tree::build_vector
    - resize
    linkageType: ''
    returnType: void
    signature: void merkle_tree::allocate_full()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:876,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/merkle_tree.cpp:877,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:879,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:883,1
    - Dst: all_set
      Src: /src/libtorrent/src/merkle_tree.cpp:884,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:886,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:886,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:888,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 893
    functionName: libtorrent::aux::merkle_tree::optimize_storage
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 16
    functionsReached:
    - all_set
    - libtorrent::aux::merkle_tree::clear
    - std::move
    - begin
    - libtorrent::aux::merkle_tree::block_layer_start
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void merkle_tree::optimize_storage()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:902,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:902,1
    - Dst: merkle_validate_single_layer
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: span<sha256_hash const>
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: merkle_num_nodes
      Src: /src/libtorrent/src/merkle_tree.cpp:904,1
    - Dst: all_of
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: end
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:905,1
    - Dst: libtorrent::aux::merkle_tree::piece_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:908,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: begin
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: libtorrent::aux::merkle_tree::num_pieces
      Src: /src/libtorrent/src/merkle_tree.cpp:909,1
    - Dst: std::move
      Src: /src/libtorrent/src/merkle_tree.cpp:911,1
    - Dst: libtorrent::aux::merkle_tree::clear
      Src: /src/libtorrent/src/merkle_tree.cpp:913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 916
    functionName: libtorrent::aux::merkle_tree::optimize_storage_piece_layer
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::merkle_tree::piece_layer_start
    - libtorrent::aux::merkle_tree::num_pieces
    - is_all_zeros
    - merkle_num_nodes
    - std::move
    - begin
    - libtorrent::aux::merkle_tree::clear
    - merkle_num_leafs
    - end
    - libtorrent::aux::merkle_tree::block_layer_start
    - merkle_validate_single_layer
    - all_of
    - span<sha256_hash const>
    linkageType: ''
    returnType: void
    signature: void merkle_tree::optimize_storage_piece_layer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:922,1
    - Dst: libtorrent::aux::merkle_tree::num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:922,1
    - Dst: merkle_to_flat_index
      Src: /src/libtorrent/src/merkle_tree.cpp:923,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/merkle_tree.cpp:928,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:928,1
    - Dst: std::min
      Src: /src/libtorrent/src/merkle_tree.cpp:935,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:937,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/merkle_tree.cpp:939,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle_tree.cpp:939,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:948,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:950,1
    - Dst: libtorrent::aux::merkle_tree::get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:950,1
    - Dst: merkle_num_layers
      Src: /src/libtorrent/src/merkle_tree.cpp:956,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:956,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:965,1
    - Dst: merkle_get_sibling
      Src: /src/libtorrent/src/merkle_tree.cpp:969,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:970,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:970,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/merkle_tree.cpp:973,1
    - Dst: libtorrent::aux::merkle_tree::get_impl
      Src: /src/libtorrent/src/merkle_tree.cpp:973,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - base
    - index
    - count
    - proof_layers
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 978
    functionName: libtorrent::aux::merkle_tree::get_hashes
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::merkle_tree::get_impl
    - std::vector::push_back
    - libtorrent::aux::merkle_tree::num_leafs
    - std::vector::resize
    - merkle_num_leafs
    - merkle_get_sibling
    - std::min
    - std::vector::reserve
    - TORRENT_ASSERT
    - merkle_to_flat_index
    - std::size_t
    - libtorrent::aux::merkle_tree::has_node
    - merkle_get_parent
    - merkle_num_layers
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: "std::vector<sha256_hash> merkle_tree::get_hashes(int const base\n\t\t,
      int const index, int const count, int const proof_layers) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:987,1
    - Dst: libtorrent::aux::merkle_tree::blocks_verified
      Src: /src/libtorrent/src/merkle_tree.cpp:987,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:992,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:992,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:993,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:993,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:996,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:996,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:997,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:997,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1001,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1001,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1002,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1002,1
    - Dst: merkle_num_leafs
      Src: /src/libtorrent/src/merkle_tree.cpp:1004,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1006,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1011,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1015,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1015,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1018,1
    - Dst: merkle_first_leaf
      Src: /src/libtorrent/src/merkle_tree.cpp:1027,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1034,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1035,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1035,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1036,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/merkle_tree.cpp:1037,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1041,1
    - Dst: get_bit
      Src: /src/libtorrent/src/merkle_tree.cpp:1042,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1043,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1043,1
    - Dst: libtorrent::aux::merkle_tree::block_layer_start
      Src: /src/libtorrent/src/merkle_tree.cpp:1045,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1046,1
    - Dst: libtorrent::aux::merkle_tree::has_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1046,1
    - Dst: merkle_get_parent
      Src: /src/libtorrent/src/merkle_tree.cpp:1047,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1048,1
    - Dst: merkle_validate_node
      Src: /src/libtorrent/src/merkle_tree.cpp:1048,1
    - Dst: libtorrent::aux::merkle_tree::size
      Src: /src/libtorrent/src/merkle_tree.cpp:1052,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1053,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle_tree.cpp:1053,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1059,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:1059,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: libtorrent::aux::merkle_tree::root
      Src: /src/libtorrent/src/merkle_tree.cpp:1064,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle_tree.cpp:1065,1
    - Dst: empty
      Src: /src/libtorrent/src/merkle_tree.cpp:1065,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1069
    functionName: libtorrent::aux::merkle_tree::check_invariant
    functionSourceFile: /src/libtorrent/src/merkle_tree.cpp
    functionUses: 0
    functionsReached:
    - is_all_zeros
    - libtorrent::aux::merkle_tree::root
    - merkle_validate_node
    - get_bit
    - sha256_hash
    - merkle_first_leaf
    - merkle_pad
    - empty
    - merkle_num_leafs
    - libtorrent::aux::merkle_tree::size
    - libtorrent::aux::merkle_tree::block_layer_start
    - TORRENT_ASSERT
    - libtorrent::aux::merkle_tree::blocks_verified
    - libtorrent::aux::merkle_tree::has_node
    - merkle_root
    - merkle_get_parent
    linkageType: ''
    returnType: void
    signature: void merkle_tree::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:46,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:47,1
    - Dst: std::shared_ptr::type
      Src: /src/libtorrent/src/peer_connection_handle.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: libtorrent::peer_connection_handle::type
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::type
    linkageType: ''
    returnType: connection_type
    signature: connection_type peer_connection_handle::type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:55,1
    - Dst: std::shared_ptr::add_extension
      Src: /src/libtorrent/src/peer_connection_handle.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection_handle.cpp:56,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<peer_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: libtorrent::peer_connection_handle::add_extension
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::shared_ptr::add_extension
    - TORRENT_ASSERT
    - native_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::add_extension(std::shared_ptr<peer_plugin>
      ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:65,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:66,1
    - Dst: std::shared_ptr::find_plugin
      Src: /src/libtorrent/src/peer_connection_handle.cpp:67,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: libtorrent::peer_connection_handle::find_plugin
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::find_plugin
    - TORRENT_UNUSED
    linkageType: ''
    returnType: peer_plugin
    signature: peer_plugin * peer_connection_handle::find_plugin(string_view type)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:76,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:77,1
    - Dst: std::shared_ptr::is_seed
      Src: /src/libtorrent/src/peer_connection_handle.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: libtorrent::peer_connection_handle::is_seed
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::is_seed
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:84,1
    - Dst: std::shared_ptr::upload_only
      Src: /src/libtorrent/src/peer_connection_handle.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: libtorrent::peer_connection_handle::upload_only
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::upload_only
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::upload_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:91,1
    - Dst: std::shared_ptr::pid
      Src: /src/libtorrent/src/peer_connection_handle.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: '& peer_connection_handle::pid() const'
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::pid
    linkageType: ''
    returnType: peer_id
    signature: peer_id & peer_connection_handle::pid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:98,1
    - Dst: std::shared_ptr::has_piece
      Src: /src/libtorrent/src/peer_connection_handle.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: libtorrent::peer_connection_handle::has_piece
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::has_piece
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::has_piece(piece_index_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:105,1
    - Dst: std::shared_ptr::is_interesting
      Src: /src/libtorrent/src/peer_connection_handle.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: libtorrent::peer_connection_handle::is_interesting
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::is_interesting
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_interesting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:112,1
    - Dst: std::shared_ptr::is_choked
      Src: /src/libtorrent/src/peer_connection_handle.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: libtorrent::peer_connection_handle::is_choked
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::is_choked
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_choked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:118,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:119,1
    - Dst: std::shared_ptr::is_peer_interested
      Src: /src/libtorrent/src/peer_connection_handle.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: libtorrent::peer_connection_handle::is_peer_interested
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::is_peer_interested
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_peer_interested() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:125,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:126,1
    - Dst: std::shared_ptr::has_peer_choked
      Src: /src/libtorrent/src/peer_connection_handle.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: libtorrent::peer_connection_handle::has_peer_choked
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::has_peer_choked
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::has_peer_choked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:133,1
    - Dst: std::shared_ptr::choke_this_peer
      Src: /src/libtorrent/src/peer_connection_handle.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: libtorrent::peer_connection_handle::choke_this_peer
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::choke_this_peer
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::choke_this_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:139,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:140,1
    - Dst: std::shared_ptr::maybe_unchoke_this_peer
      Src: /src/libtorrent/src/peer_connection_handle.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: libtorrent::peer_connection_handle::maybe_unchoke_this_peer
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::maybe_unchoke_this_peer
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::maybe_unchoke_this_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:146,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:147,1
    - Dst: std::shared_ptr::get_peer_info
      Src: /src/libtorrent/src/peer_connection_handle.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: libtorrent::peer_connection_handle::get_peer_info
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::get_peer_info
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::get_peer_info(peer_info& p) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:153,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:154,1
    - Dst: std::shared_ptr::associated_torrent
      Src: /src/libtorrent/src/peer_connection_handle.cpp:155,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:156,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: libtorrent::peer_connection_handle::associated_torrent
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::associated_torrent
    - native_handle
    - std::shared_ptr::get_handle
    - torrent_handle
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle peer_connection_handle::associated_torrent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:163,1
    - Dst: std::shared_ptr::remote
      Src: /src/libtorrent/src/peer_connection_handle.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: '& peer_connection_handle::remote() const'
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::remote
    - native_handle
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint & peer_connection_handle::remote() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:169,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:170,1
    - Dst: std::shared_ptr::local_endpoint
      Src: /src/libtorrent/src/peer_connection_handle.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: libtorrent::peer_connection_handle::local_endpoint
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint peer_connection_handle::local_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:178,1
    - Dst: std::shared_ptr::disconnect
      Src: /src/libtorrent/src/peer_connection_handle.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ec'
    - op
    - error
    argTypes:
    - error_code
    - operation_t
    - disconnect_severity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: libtorrent::peer_connection_handle::disconnect
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::disconnect
    linkageType: ''
    returnType: void
    signature: "void peer_connection_handle::disconnect(error_code const& ec, operation_t
      const op\n\t, disconnect_severity_t const error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:184,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:185,1
    - Dst: std::shared_ptr::is_disconnecting
      Src: /src/libtorrent/src/peer_connection_handle.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: libtorrent::peer_connection_handle::is_disconnecting
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::is_disconnecting
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_disconnecting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:191,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:192,1
    - Dst: std::shared_ptr::is_connecting
      Src: /src/libtorrent/src/peer_connection_handle.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: libtorrent::peer_connection_handle::is_connecting
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::is_connecting
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_connecting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:199,1
    - Dst: std::shared_ptr::is_outgoing
      Src: /src/libtorrent/src/peer_connection_handle.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: libtorrent::peer_connection_handle::is_outgoing
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::is_outgoing
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_outgoing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:206,1
    - Dst: std::shared_ptr::on_local_network
      Src: /src/libtorrent/src/peer_connection_handle.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: libtorrent::peer_connection_handle::on_local_network
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::on_local_network
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::on_local_network() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:213,1
    - Dst: std::shared_ptr::ignore_unchoke_slots
      Src: /src/libtorrent/src/peer_connection_handle.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: libtorrent::peer_connection_handle::ignore_unchoke_slots
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::ignore_unchoke_slots
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::ignore_unchoke_slots() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:220,1
    - Dst: std::shared_ptr::failed
      Src: /src/libtorrent/src/peer_connection_handle.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: libtorrent::peer_connection_handle::failed
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::failed
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:228,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/peer_connection_handle.cpp:229,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - direction
    argTypes:
    - peer_log_alert::direction_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: libtorrent::peer_connection_handle::should_log
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - TORRENT_UNUSED
    - native_handle
    - std::shared_ptr::should_log
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::should_log(peer_log_alert::direction_t
      direction) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:242,1
    - Dst: va_start
      Src: /src/libtorrent/src/peer_connection_handle.cpp:244,1
    - Dst: std::shared_ptr::peer_log
      Src: /src/libtorrent/src/peer_connection_handle.cpp:250,1
    - Dst: va_end
      Src: /src/libtorrent/src/peer_connection_handle.cpp:254,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:256,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:257,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - direction
    - event
    - fmt
    argTypes:
    - peer_log_alert::direction_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: libtorrent::peer_connection_handle::peer_log
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - std::shared_ptr::peer_log
    - TORRENT_ASSERT
    - va_end
    - native_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void peer_connection_handle::peer_log(peer_log_alert::direction_t
      direction\n\t, char const* event, char const* fmt, ...) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:265,1
    - Dst: std::shared_ptr::can_disconnect
      Src: /src/libtorrent/src/peer_connection_handle.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: libtorrent::peer_connection_handle::can_disconnect
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::can_disconnect
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::can_disconnect(error_code const& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:271,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:272,1
    - Dst: std::shared_ptr::has_metadata
      Src: /src/libtorrent/src/peer_connection_handle.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: libtorrent::peer_connection_handle::has_metadata
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::has_metadata
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:279,1
    - Dst: std::shared_ptr::in_handshake
      Src: /src/libtorrent/src/peer_connection_handle.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: libtorrent::peer_connection_handle::in_handshake
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::in_handshake
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::in_handshake() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:285,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:286,1
    - Dst: std::shared_ptr::send_buffer
      Src: /src/libtorrent/src/peer_connection_handle.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - begin
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: libtorrent::peer_connection_handle::send_buffer
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::send_buffer
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::send_buffer(char const* begin, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:293,1
    - Dst: std::shared_ptr::last_seen_complete
      Src: /src/libtorrent/src/peer_connection_handle.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: libtorrent::peer_connection_handle::last_seen_complete
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::last_seen_complete
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t peer_connection_handle::last_seen_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:299,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:300,1
    - Dst: std::shared_ptr::time_of_last_unchoke
      Src: /src/libtorrent/src/peer_connection_handle.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: libtorrent::peer_connection_handle::time_of_last_unchoke
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::time_of_last_unchoke
    linkageType: ''
    returnType: time_point
    signature: time_point peer_connection_handle::time_of_last_unchoke() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:306,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:307,1
    - Dst: std::shared_ptr::packet_finished
      Src: /src/libtorrent/src/peer_connection_handle.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: libtorrent::bt_peer_connection_handle::packet_finished
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::packet_finished
    - libtorrent::bt_peer_connection_handle::native_handle
    linkageType: ''
    returnType: bool
    signature: bool bt_peer_connection_handle::packet_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:313,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:314,1
    - Dst: std::shared_ptr::support_extensions
      Src: /src/libtorrent/src/peer_connection_handle.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: libtorrent::bt_peer_connection_handle::support_extensions
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::support_extensions
    - libtorrent::bt_peer_connection_handle::native_handle
    linkageType: ''
    returnType: bool
    signature: bool bt_peer_connection_handle::support_extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:321,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:322,1
    - Dst: std::shared_ptr::supports_encryption
      Src: /src/libtorrent/src/peer_connection_handle.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: libtorrent::bt_peer_connection_handle::supports_encryption
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::supports_encryption
    - libtorrent::bt_peer_connection_handle::native_handle
    linkageType: ''
    returnType: bool
    signature: bool bt_peer_connection_handle::supports_encryption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:333,1
    - Dst: std::shared_ptr::switch_send_crypto
      Src: /src/libtorrent/src/peer_connection_handle.cpp:334,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection_handle.cpp:334,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - std::shared_ptr<crypto_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 338
    functionName: libtorrent::bt_peer_connection_handle::switch_send_crypto
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_ASSERT
    - std::shared_ptr::switch_send_crypto
    - libtorrent::bt_peer_connection_handle::native_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection_handle::switch_send_crypto(std::shared_ptr<crypto_plugin>
      crypto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:343,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:344,1
    - Dst: std::shared_ptr::switch_recv_crypto
      Src: /src/libtorrent/src/peer_connection_handle.cpp:345,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection_handle.cpp:345,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - std::shared_ptr<crypto_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: libtorrent::bt_peer_connection_handle::switch_recv_crypto
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::shared_ptr::switch_recv_crypto
    - TORRENT_ASSERT
    - libtorrent::bt_peer_connection_handle::native_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection_handle::switch_recv_crypto(std::shared_ptr<crypto_plugin>
      crypto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<bt_peer_connection>
      Src: /src/libtorrent/src/peer_connection_handle.cpp:353,1
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: libtorrent::bt_peer_connection_handle::native_handle
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::bt_peer_connection_handle::native_handle
    - std::static_pointer_cast<bt_peer_connection>
    linkageType: ''
    returnType: std::shared_ptr<bt_peer_connection>
    signature: std::shared_ptr<bt_peer_connection> bt_peer_connection_handle::native_handle()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:46,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:47,1
    - Dst: std::shared_ptr::type
      Src: /src/libtorrent/src/peer_connection_handle.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: libtorrent::peer_connection_handle::type
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::type
    linkageType: ''
    returnType: connection_type
    signature: connection_type peer_connection_handle::type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:55,1
    - Dst: std::shared_ptr::add_extension
      Src: /src/libtorrent/src/peer_connection_handle.cpp:56,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection_handle.cpp:56,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<peer_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: libtorrent::peer_connection_handle::add_extension
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::shared_ptr::add_extension
    - TORRENT_ASSERT
    - native_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::add_extension(std::shared_ptr<peer_plugin>
      ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:65,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:66,1
    - Dst: std::shared_ptr::find_plugin
      Src: /src/libtorrent/src/peer_connection_handle.cpp:67,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: libtorrent::peer_connection_handle::find_plugin
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::find_plugin
    - TORRENT_UNUSED
    linkageType: ''
    returnType: peer_plugin
    signature: peer_plugin * peer_connection_handle::find_plugin(string_view type)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:76,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:77,1
    - Dst: std::shared_ptr::is_seed
      Src: /src/libtorrent/src/peer_connection_handle.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: libtorrent::peer_connection_handle::is_seed
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::is_seed
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:84,1
    - Dst: std::shared_ptr::upload_only
      Src: /src/libtorrent/src/peer_connection_handle.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: libtorrent::peer_connection_handle::upload_only
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::upload_only
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::upload_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:91,1
    - Dst: std::shared_ptr::pid
      Src: /src/libtorrent/src/peer_connection_handle.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: '& peer_connection_handle::pid() const'
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::pid
    linkageType: ''
    returnType: peer_id
    signature: peer_id & peer_connection_handle::pid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:98,1
    - Dst: std::shared_ptr::has_piece
      Src: /src/libtorrent/src/peer_connection_handle.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: libtorrent::peer_connection_handle::has_piece
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::has_piece
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::has_piece(piece_index_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:105,1
    - Dst: std::shared_ptr::is_interesting
      Src: /src/libtorrent/src/peer_connection_handle.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: libtorrent::peer_connection_handle::is_interesting
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::is_interesting
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_interesting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:112,1
    - Dst: std::shared_ptr::is_choked
      Src: /src/libtorrent/src/peer_connection_handle.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: libtorrent::peer_connection_handle::is_choked
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::is_choked
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_choked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:118,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:119,1
    - Dst: std::shared_ptr::is_peer_interested
      Src: /src/libtorrent/src/peer_connection_handle.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: libtorrent::peer_connection_handle::is_peer_interested
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::is_peer_interested
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_peer_interested() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:125,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:126,1
    - Dst: std::shared_ptr::has_peer_choked
      Src: /src/libtorrent/src/peer_connection_handle.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: libtorrent::peer_connection_handle::has_peer_choked
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::has_peer_choked
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::has_peer_choked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:133,1
    - Dst: std::shared_ptr::choke_this_peer
      Src: /src/libtorrent/src/peer_connection_handle.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: libtorrent::peer_connection_handle::choke_this_peer
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::choke_this_peer
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::choke_this_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:139,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:140,1
    - Dst: std::shared_ptr::maybe_unchoke_this_peer
      Src: /src/libtorrent/src/peer_connection_handle.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: libtorrent::peer_connection_handle::maybe_unchoke_this_peer
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::maybe_unchoke_this_peer
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::maybe_unchoke_this_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:146,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:147,1
    - Dst: std::shared_ptr::get_peer_info
      Src: /src/libtorrent/src/peer_connection_handle.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: libtorrent::peer_connection_handle::get_peer_info
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::get_peer_info
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::get_peer_info(peer_info& p) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:153,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:154,1
    - Dst: std::shared_ptr::associated_torrent
      Src: /src/libtorrent/src/peer_connection_handle.cpp:155,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:156,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: libtorrent::peer_connection_handle::associated_torrent
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::associated_torrent
    - native_handle
    - std::shared_ptr::get_handle
    - torrent_handle
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle peer_connection_handle::associated_torrent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:163,1
    - Dst: std::shared_ptr::remote
      Src: /src/libtorrent/src/peer_connection_handle.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: '& peer_connection_handle::remote() const'
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::remote
    - native_handle
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint & peer_connection_handle::remote() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:169,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:170,1
    - Dst: std::shared_ptr::local_endpoint
      Src: /src/libtorrent/src/peer_connection_handle.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: libtorrent::peer_connection_handle::local_endpoint
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint peer_connection_handle::local_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:178,1
    - Dst: std::shared_ptr::disconnect
      Src: /src/libtorrent/src/peer_connection_handle.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ec'
    - op
    - error
    argTypes:
    - error_code
    - operation_t
    - disconnect_severity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: libtorrent::peer_connection_handle::disconnect
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::disconnect
    linkageType: ''
    returnType: void
    signature: "void peer_connection_handle::disconnect(error_code const& ec, operation_t
      const op\n\t, disconnect_severity_t const error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:184,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:185,1
    - Dst: std::shared_ptr::is_disconnecting
      Src: /src/libtorrent/src/peer_connection_handle.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: libtorrent::peer_connection_handle::is_disconnecting
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::is_disconnecting
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_disconnecting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:191,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:192,1
    - Dst: std::shared_ptr::is_connecting
      Src: /src/libtorrent/src/peer_connection_handle.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: libtorrent::peer_connection_handle::is_connecting
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::is_connecting
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_connecting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:199,1
    - Dst: std::shared_ptr::is_outgoing
      Src: /src/libtorrent/src/peer_connection_handle.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: libtorrent::peer_connection_handle::is_outgoing
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::is_outgoing
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::is_outgoing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:206,1
    - Dst: std::shared_ptr::on_local_network
      Src: /src/libtorrent/src/peer_connection_handle.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: libtorrent::peer_connection_handle::on_local_network
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::on_local_network
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::on_local_network() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:213,1
    - Dst: std::shared_ptr::ignore_unchoke_slots
      Src: /src/libtorrent/src/peer_connection_handle.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: libtorrent::peer_connection_handle::ignore_unchoke_slots
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::ignore_unchoke_slots
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::ignore_unchoke_slots() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:220,1
    - Dst: std::shared_ptr::failed
      Src: /src/libtorrent/src/peer_connection_handle.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: libtorrent::peer_connection_handle::failed
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::failed
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:228,1
    - Dst: std::shared_ptr::should_log
      Src: /src/libtorrent/src/peer_connection_handle.cpp:229,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - direction
    argTypes:
    - peer_log_alert::direction_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: libtorrent::peer_connection_handle::should_log
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - TORRENT_UNUSED
    - native_handle
    - std::shared_ptr::should_log
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::should_log(peer_log_alert::direction_t
      direction) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:242,1
    - Dst: va_start
      Src: /src/libtorrent/src/peer_connection_handle.cpp:244,1
    - Dst: std::shared_ptr::peer_log
      Src: /src/libtorrent/src/peer_connection_handle.cpp:250,1
    - Dst: va_end
      Src: /src/libtorrent/src/peer_connection_handle.cpp:254,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:256,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:257,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - direction
    - event
    - fmt
    argTypes:
    - peer_log_alert::direction_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: libtorrent::peer_connection_handle::peer_log
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - std::shared_ptr::peer_log
    - TORRENT_ASSERT
    - va_end
    - native_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void peer_connection_handle::peer_log(peer_log_alert::direction_t
      direction\n\t, char const* event, char const* fmt, ...) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:265,1
    - Dst: std::shared_ptr::can_disconnect
      Src: /src/libtorrent/src/peer_connection_handle.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: libtorrent::peer_connection_handle::can_disconnect
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::can_disconnect
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::can_disconnect(error_code const& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:271,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:272,1
    - Dst: std::shared_ptr::has_metadata
      Src: /src/libtorrent/src/peer_connection_handle.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: libtorrent::peer_connection_handle::has_metadata
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::has_metadata
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:279,1
    - Dst: std::shared_ptr::in_handshake
      Src: /src/libtorrent/src/peer_connection_handle.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: libtorrent::peer_connection_handle::in_handshake
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::in_handshake
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool peer_connection_handle::in_handshake() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:285,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:286,1
    - Dst: std::shared_ptr::send_buffer
      Src: /src/libtorrent/src/peer_connection_handle.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - begin
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: libtorrent::peer_connection_handle::send_buffer
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::send_buffer
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle::send_buffer(char const* begin, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:293,1
    - Dst: std::shared_ptr::last_seen_complete
      Src: /src/libtorrent/src/peer_connection_handle.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: libtorrent::peer_connection_handle::last_seen_complete
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::last_seen_complete
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t peer_connection_handle::last_seen_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:299,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:300,1
    - Dst: std::shared_ptr::time_of_last_unchoke
      Src: /src/libtorrent/src/peer_connection_handle.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: libtorrent::peer_connection_handle::time_of_last_unchoke
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - native_handle
    - std::shared_ptr::time_of_last_unchoke
    linkageType: ''
    returnType: time_point
    signature: time_point peer_connection_handle::time_of_last_unchoke() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:306,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:307,1
    - Dst: std::shared_ptr::packet_finished
      Src: /src/libtorrent/src/peer_connection_handle.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: libtorrent::bt_peer_connection_handle::packet_finished
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::packet_finished
    - libtorrent::bt_peer_connection_handle::native_handle
    linkageType: ''
    returnType: bool
    signature: bool bt_peer_connection_handle::packet_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:313,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:314,1
    - Dst: std::shared_ptr::support_extensions
      Src: /src/libtorrent/src/peer_connection_handle.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: libtorrent::bt_peer_connection_handle::support_extensions
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::support_extensions
    - libtorrent::bt_peer_connection_handle::native_handle
    linkageType: ''
    returnType: bool
    signature: bool bt_peer_connection_handle::support_extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:321,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:322,1
    - Dst: std::shared_ptr::supports_encryption
      Src: /src/libtorrent/src/peer_connection_handle.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: libtorrent::bt_peer_connection_handle::supports_encryption
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::shared_ptr::supports_encryption
    - libtorrent::bt_peer_connection_handle::native_handle
    linkageType: ''
    returnType: bool
    signature: bool bt_peer_connection_handle::supports_encryption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:333,1
    - Dst: std::shared_ptr::switch_send_crypto
      Src: /src/libtorrent/src/peer_connection_handle.cpp:334,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection_handle.cpp:334,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - std::shared_ptr<crypto_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 338
    functionName: libtorrent::bt_peer_connection_handle::switch_send_crypto
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_ASSERT
    - std::shared_ptr::switch_send_crypto
    - libtorrent::bt_peer_connection_handle::native_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection_handle::switch_send_crypto(std::shared_ptr<crypto_plugin>
      crypto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:343,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection_handle.cpp:344,1
    - Dst: std::shared_ptr::switch_recv_crypto
      Src: /src/libtorrent/src/peer_connection_handle.cpp:345,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection_handle.cpp:345,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection_handle.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - std::shared_ptr<crypto_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: libtorrent::bt_peer_connection_handle::switch_recv_crypto
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::shared_ptr::switch_recv_crypto
    - TORRENT_ASSERT
    - libtorrent::bt_peer_connection_handle::native_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection_handle::switch_recv_crypto(std::shared_ptr<crypto_plugin>
      crypto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<bt_peer_connection>
      Src: /src/libtorrent/src/peer_connection_handle.cpp:353,1
    - Dst: libtorrent::bt_peer_connection_handle::native_handle
      Src: /src/libtorrent/src/peer_connection_handle.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: libtorrent::bt_peer_connection_handle::native_handle
    functionSourceFile: /src/libtorrent/src/peer_connection_handle.cpp
    functionUses: 12
    functionsReached:
    - libtorrent::bt_peer_connection_handle::native_handle
    - std::static_pointer_cast<bt_peer_connection>
    linkageType: ''
    returnType: std::shared_ptr<bt_peer_connection>
    signature: std::shared_ptr<bt_peer_connection> bt_peer_connection_handle::native_handle()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: rol
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rol
      Src: /src/libtorrent/src/sha1.cpp:54,1
    - Dst: rol
      Src: /src/libtorrent/src/sha1.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - CHAR64LONG16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - rol
    linkageType: ''
    returnType: u32
    signature: u32 apply(CHAR64LONG16* block, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - CHAR64LONG16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 apply(CHAR64LONG16* block, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: blk
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: R0
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: R1
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: R2
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: R3
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: R4
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R4(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:90,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - u32[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 125
    functionName: libtorrent::SHA1transform
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - R0
    - R1
    - R2
    - R3
    - memcpy
    - R4
    linkageType: ''
    returnType: void
    signature: void SHA1transform(u32 state[5], u8 const buffer[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/src/sha1.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - msg
    argTypes:
    - sha1_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: libtorrent::SHAPrintContext
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - std::printf
    linkageType: ''
    returnType: void
    signature: void SHAPrintContext(sha1_ctx *context, char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::SHAPrintContext
      Src: /src/libtorrent/src/sha1.cpp:149,1
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:156,1
    - Dst: libtorrent::SHA1transform
      Src: /src/libtorrent/src/sha1.cpp:157,1
    - Dst: libtorrent::SHA1transform
      Src: /src/libtorrent/src/sha1.cpp:160,1
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:168,1
    - Dst: libtorrent::SHAPrintContext
      Src: /src/libtorrent/src/sha1.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - sha1_ctx*
    - u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: libtorrent::internal_update
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::SHAPrintContext
    - libtorrent::SHA1transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void internal_update(sha1_ctx* context, u8 const* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<u8*>
      Src: /src/libtorrent/src/sha1.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: libtorrent::is_big_endian
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<u8*>
    linkageType: ''
    returnType: bool
    signature: bool is_big_endian()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: rol
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rol
      Src: /src/libtorrent/src/sha1.cpp:54,1
    - Dst: rol
      Src: /src/libtorrent/src/sha1.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - CHAR64LONG16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - rol
    linkageType: ''
    returnType: u32
    signature: u32 apply(CHAR64LONG16* block, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - CHAR64LONG16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 apply(CHAR64LONG16* block, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: blk
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: R0
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: R1
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: R2
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: R3
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: R4
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R4(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:90,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - u32[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 125
    functionName: libtorrent::SHA1transform
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached:
    - R0
    - R1
    - R2
    - R3
    - memcpy
    - R4
    linkageType: ''
    returnType: void
    signature: void SHA1transform(u32 state[5], u8 const buffer[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/src/sha1.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - msg
    argTypes:
    - sha1_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: libtorrent::SHAPrintContext
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached:
    - std::printf
    linkageType: ''
    returnType: void
    signature: void SHAPrintContext(sha1_ctx *context, char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::SHAPrintContext
      Src: /src/libtorrent/src/sha1.cpp:149,1
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:156,1
    - Dst: libtorrent::SHA1transform
      Src: /src/libtorrent/src/sha1.cpp:157,1
    - Dst: libtorrent::SHA1transform
      Src: /src/libtorrent/src/sha1.cpp:160,1
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:168,1
    - Dst: libtorrent::SHAPrintContext
      Src: /src/libtorrent/src/sha1.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - sha1_ctx*
    - u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: libtorrent::internal_update
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::SHAPrintContext
    - libtorrent::SHA1transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void internal_update(sha1_ctx* context, u8 const* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<u8*>
      Src: /src/libtorrent/src/sha1.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: libtorrent::is_big_endian
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<u8*>
    linkageType: ''
    returnType: bool
    signature: bool is_big_endian()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - sha1_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: libtorrent::SHA1_init
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1_init(sha1_ctx* context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::internal_update
      Src: /src/libtorrent/src/sha1.cpp:204,1
    - Dst: libtorrent::internal_update
      Src: /src/libtorrent/src/sha1.cpp:206,1
    - Dst: libtorrent::is_big_endian
      Src: /src/libtorrent/src/sha1.cpp:210,1
    - Dst: libtorrent::internal_update
      Src: /src/libtorrent/src/sha1.cpp:211,1
    - Dst: libtorrent::internal_update
      Src: /src/libtorrent/src/sha1.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - sha1_ctx*
    - u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: libtorrent::SHA1_update
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::is_big_endian
    - libtorrent::internal_update
    linkageType: ''
    returnType: void
    signature: void SHA1_update(sha1_ctx* context, u8 const* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<u8>
      Src: /src/libtorrent/src/sha1.cpp:227,1
    - Dst: libtorrent::SHA1_update
      Src: /src/libtorrent/src/sha1.cpp:232,1
    - Dst: reinterpret_cast<u8 const*>
      Src: /src/libtorrent/src/sha1.cpp:232,1
    - Dst: libtorrent::SHA1_update
      Src: /src/libtorrent/src/sha1.cpp:234,1
    - Dst: reinterpret_cast<u8 const*>
      Src: /src/libtorrent/src/sha1.cpp:234,1
    - Dst: libtorrent::SHA1_update
      Src: /src/libtorrent/src/sha1.cpp:235,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/src/sha1.cpp:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - u8*
    - sha1_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 242
    functionName: libtorrent::SHA1_final
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - static_cast<u8>
    - reinterpret_cast<u8 const*>
    - static_cast<unsigned char>
    - libtorrent::SHA1_update
    linkageType: ''
    returnType: void
    signature: void SHA1_final(u8* digest, sha1_ctx* context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: rol
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rol
      Src: /src/libtorrent/src/sha1.cpp:54,1
    - Dst: rol
      Src: /src/libtorrent/src/sha1.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - CHAR64LONG16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - rol
    linkageType: ''
    returnType: u32
    signature: u32 apply(CHAR64LONG16* block, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - CHAR64LONG16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 apply(CHAR64LONG16* block, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: blk
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: R0
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: R1
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: R2
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: R3
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: R4
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R4(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:90,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - u32[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 125
    functionName: libtorrent::SHA1transform
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 2
    functionsReached:
    - R0
    - R1
    - R2
    - R3
    - memcpy
    - R4
    linkageType: ''
    returnType: void
    signature: void SHA1transform(u32 state[5], u8 const buffer[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/src/sha1.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - msg
    argTypes:
    - sha1_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: libtorrent::SHAPrintContext
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 2
    functionsReached:
    - std::printf
    linkageType: ''
    returnType: void
    signature: void SHAPrintContext(sha1_ctx *context, char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::SHAPrintContext
      Src: /src/libtorrent/src/sha1.cpp:149,1
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:156,1
    - Dst: libtorrent::SHA1transform
      Src: /src/libtorrent/src/sha1.cpp:157,1
    - Dst: libtorrent::SHA1transform
      Src: /src/libtorrent/src/sha1.cpp:160,1
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:168,1
    - Dst: libtorrent::SHAPrintContext
      Src: /src/libtorrent/src/sha1.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - sha1_ctx*
    - u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: libtorrent::internal_update
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::SHAPrintContext
    - libtorrent::SHA1transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void internal_update(sha1_ctx* context, u8 const* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<u8*>
      Src: /src/libtorrent/src/sha1.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: libtorrent::is_big_endian
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<u8*>
    linkageType: ''
    returnType: bool
    signature: bool is_big_endian()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: rol
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rol
      Src: /src/libtorrent/src/sha1.cpp:54,1
    - Dst: rol
      Src: /src/libtorrent/src/sha1.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - CHAR64LONG16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - rol
    linkageType: ''
    returnType: u32
    signature: u32 apply(CHAR64LONG16* block, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - CHAR64LONG16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 apply(CHAR64LONG16* block, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: blk
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: R0
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: R1
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: R2
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: R3
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: R4
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R4(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:90,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:99,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:100,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:101,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R0
      Src: /src/libtorrent/src/sha1.cpp:102,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R1
      Src: /src/libtorrent/src/sha1.cpp:103,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:104,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:105,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:106,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:107,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R2
      Src: /src/libtorrent/src/sha1.cpp:108,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:109,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:110,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:111,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:112,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R3
      Src: /src/libtorrent/src/sha1.cpp:113,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:114,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:115,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:116,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:117,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    - Dst: R4
      Src: /src/libtorrent/src/sha1.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - u32[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 125
    functionName: libtorrent::SHA1transform
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 3
    functionsReached:
    - R0
    - R1
    - R2
    - R3
    - memcpy
    - R4
    linkageType: ''
    returnType: void
    signature: void SHA1transform(u32 state[5], u8 const buffer[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/src/sha1.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - msg
    argTypes:
    - sha1_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: libtorrent::SHAPrintContext
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 3
    functionsReached:
    - std::printf
    linkageType: ''
    returnType: void
    signature: void SHAPrintContext(sha1_ctx *context, char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::SHAPrintContext
      Src: /src/libtorrent/src/sha1.cpp:149,1
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:156,1
    - Dst: libtorrent::SHA1transform
      Src: /src/libtorrent/src/sha1.cpp:157,1
    - Dst: libtorrent::SHA1transform
      Src: /src/libtorrent/src/sha1.cpp:160,1
    - Dst: memcpy
      Src: /src/libtorrent/src/sha1.cpp:168,1
    - Dst: libtorrent::SHAPrintContext
      Src: /src/libtorrent/src/sha1.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - sha1_ctx*
    - u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: libtorrent::internal_update
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::SHAPrintContext
    - libtorrent::SHA1transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void internal_update(sha1_ctx* context, u8 const* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<u8*>
      Src: /src/libtorrent/src/sha1.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: libtorrent::is_big_endian
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<u8*>
    linkageType: ''
    returnType: bool
    signature: bool is_big_endian()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - sha1_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: libtorrent::SHA1_init
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1_init(sha1_ctx* context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::internal_update
      Src: /src/libtorrent/src/sha1.cpp:204,1
    - Dst: libtorrent::internal_update
      Src: /src/libtorrent/src/sha1.cpp:206,1
    - Dst: libtorrent::is_big_endian
      Src: /src/libtorrent/src/sha1.cpp:210,1
    - Dst: libtorrent::internal_update
      Src: /src/libtorrent/src/sha1.cpp:211,1
    - Dst: libtorrent::internal_update
      Src: /src/libtorrent/src/sha1.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - sha1_ctx*
    - u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: libtorrent::SHA1_update
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::is_big_endian
    - libtorrent::internal_update
    linkageType: ''
    returnType: void
    signature: void SHA1_update(sha1_ctx* context, u8 const* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<u8>
      Src: /src/libtorrent/src/sha1.cpp:227,1
    - Dst: libtorrent::SHA1_update
      Src: /src/libtorrent/src/sha1.cpp:232,1
    - Dst: reinterpret_cast<u8 const*>
      Src: /src/libtorrent/src/sha1.cpp:232,1
    - Dst: libtorrent::SHA1_update
      Src: /src/libtorrent/src/sha1.cpp:234,1
    - Dst: reinterpret_cast<u8 const*>
      Src: /src/libtorrent/src/sha1.cpp:234,1
    - Dst: libtorrent::SHA1_update
      Src: /src/libtorrent/src/sha1.cpp:235,1
    - Dst: static_cast<unsigned char>
      Src: /src/libtorrent/src/sha1.cpp:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - u8*
    - sha1_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 242
    functionName: libtorrent::SHA1_final
    functionSourceFile: /src/libtorrent/src/sha1.cpp
    functionUses: 0
    functionsReached:
    - static_cast<u8>
    - reinterpret_cast<u8 const*>
    - static_cast<unsigned char>
    - libtorrent::SHA1_update
    linkageType: ''
    returnType: void
    signature: void SHA1_final(u8* digest, sha1_ctx* context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - queue_limit
    - alert_mask
    argTypes:
    - int
    - alert_category_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::alert_manager::alert_manager
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert_manager::alert_manager(int const queue_limit, alert_category_t
      const alert_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: alert_manager::~alert_manager()
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert_manager::~alert_manager()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:59,1
    - Dst: front
      Src: /src/libtorrent/src/alert_manager.cpp:60,1
    - Dst: wait_for
      Src: /src/libtorrent/src/alert_manager.cpp:63,1
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:64,1
    - Dst: front
      Src: /src/libtorrent/src/alert_manager.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - max_wait
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::alert_manager::wait_for_alert
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - wait_for
    - front
    linkageType: ''
    returnType: alert
    signature: alert * alert_manager::wait_for_alert(time_duration max_wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/alert_manager.cpp:72,1
    - Dst: m_notify
      Src: /src/libtorrent/src/alert_manager.cpp:78,1
    - Dst: notify_all
      Src: /src/libtorrent/src/alert_manager.cpp:82,1
    - Dst: on_alert
      Src: /src/libtorrent/src/alert_manager.cpp:87,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/alert_manager.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::alert_manager::maybe_notify
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - notify_all
    - m_notify
    - on_alert
    - size
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void alert_manager::maybe_notify(alert* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:97,1
    - Dst: m_notify
      Src: /src/libtorrent/src/alert_manager.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::alert_manager::set_notify_function
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - m_notify
    - empty
    linkageType: ''
    returnType: void
    signature: void alert_manager::set_notify_function(std::function<void()> const&
      fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/alert_manager.cpp:106,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert_manager.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::alert_manager::add_extension
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    linkageType: ''
    returnType: void
    signature: void alert_manager::add_extension(std::shared_ptr<plugin> ext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:114,1
    - Dst: clear
      Src: /src/libtorrent/src/alert_manager.cpp:116,1
    - Dst: any
      Src: /src/libtorrent/src/alert_manager.cpp:120,1
    - Dst: emplace_alert<alerts_dropped_alert>
      Src: /src/libtorrent/src/alert_manager.cpp:121,1
    - Dst: reset
      Src: /src/libtorrent/src/alert_manager.cpp:122,1
    - Dst: get_pointers
      Src: /src/libtorrent/src/alert_manager.cpp:125,1
    - Dst: clear
      Src: /src/libtorrent/src/alert_manager.cpp:130,1
    - Dst: reset
      Src: /src/libtorrent/src/alert_manager.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' alerts'
    argTypes:
    - std::vector<alert*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: libtorrent::aux::alert_manager::get_all
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - reset
    - emplace_alert<alerts_dropped_alert>
    - any
    - get_pointers
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void alert_manager::get_all(std::vector<alert*>& alerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::alert_manager::pending
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool alert_manager::pending() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/src/alert_manager.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue_size_limit_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: libtorrent::aux::alert_manager::set_alert_queue_size_limit
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: int
    signature: int alert_manager::set_alert_queue_size_limit(int queue_size_limit_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - queue_limit
    - alert_mask
    argTypes:
    - int
    - alert_category_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::alert_manager::alert_manager
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert_manager::alert_manager(int const queue_limit, alert_category_t
      const alert_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: alert_manager::~alert_manager()
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert_manager::~alert_manager()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:59,1
    - Dst: front
      Src: /src/libtorrent/src/alert_manager.cpp:60,1
    - Dst: wait_for
      Src: /src/libtorrent/src/alert_manager.cpp:63,1
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:64,1
    - Dst: front
      Src: /src/libtorrent/src/alert_manager.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - max_wait
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::alert_manager::wait_for_alert
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - wait_for
    - front
    linkageType: ''
    returnType: alert
    signature: alert * alert_manager::wait_for_alert(time_duration max_wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/alert_manager.cpp:72,1
    - Dst: m_notify
      Src: /src/libtorrent/src/alert_manager.cpp:78,1
    - Dst: notify_all
      Src: /src/libtorrent/src/alert_manager.cpp:82,1
    - Dst: on_alert
      Src: /src/libtorrent/src/alert_manager.cpp:87,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/alert_manager.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::alert_manager::maybe_notify
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - notify_all
    - m_notify
    - on_alert
    - size
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void alert_manager::maybe_notify(alert* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:97,1
    - Dst: m_notify
      Src: /src/libtorrent/src/alert_manager.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::alert_manager::set_notify_function
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - m_notify
    - empty
    linkageType: ''
    returnType: void
    signature: void alert_manager::set_notify_function(std::function<void()> const&
      fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/alert_manager.cpp:106,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert_manager.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::alert_manager::add_extension
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    linkageType: ''
    returnType: void
    signature: void alert_manager::add_extension(std::shared_ptr<plugin> ext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:114,1
    - Dst: clear
      Src: /src/libtorrent/src/alert_manager.cpp:116,1
    - Dst: any
      Src: /src/libtorrent/src/alert_manager.cpp:120,1
    - Dst: emplace_alert<alerts_dropped_alert>
      Src: /src/libtorrent/src/alert_manager.cpp:121,1
    - Dst: reset
      Src: /src/libtorrent/src/alert_manager.cpp:122,1
    - Dst: get_pointers
      Src: /src/libtorrent/src/alert_manager.cpp:125,1
    - Dst: clear
      Src: /src/libtorrent/src/alert_manager.cpp:130,1
    - Dst: reset
      Src: /src/libtorrent/src/alert_manager.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' alerts'
    argTypes:
    - std::vector<alert*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: libtorrent::aux::alert_manager::get_all
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - reset
    - emplace_alert<alerts_dropped_alert>
    - any
    - get_pointers
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void alert_manager::get_all(std::vector<alert*>& alerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::alert_manager::pending
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool alert_manager::pending() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/src/alert_manager.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue_size_limit_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: libtorrent::aux::alert_manager::set_alert_queue_size_limit
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: int
    signature: int alert_manager::set_alert_queue_size_limit(int queue_size_limit_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - queue_limit
    - alert_mask
    argTypes:
    - int
    - alert_category_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::alert_manager::alert_manager
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert_manager::alert_manager(int const queue_limit, alert_category_t
      const alert_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: alert_manager::~alert_manager()
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert_manager::~alert_manager()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:59,1
    - Dst: front
      Src: /src/libtorrent/src/alert_manager.cpp:60,1
    - Dst: wait_for
      Src: /src/libtorrent/src/alert_manager.cpp:63,1
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:64,1
    - Dst: front
      Src: /src/libtorrent/src/alert_manager.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - max_wait
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::alert_manager::wait_for_alert
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - wait_for
    - front
    linkageType: ''
    returnType: alert
    signature: alert * alert_manager::wait_for_alert(time_duration max_wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/alert_manager.cpp:72,1
    - Dst: m_notify
      Src: /src/libtorrent/src/alert_manager.cpp:78,1
    - Dst: notify_all
      Src: /src/libtorrent/src/alert_manager.cpp:82,1
    - Dst: on_alert
      Src: /src/libtorrent/src/alert_manager.cpp:87,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/alert_manager.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::alert_manager::maybe_notify
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - notify_all
    - m_notify
    - on_alert
    - size
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void alert_manager::maybe_notify(alert* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:97,1
    - Dst: m_notify
      Src: /src/libtorrent/src/alert_manager.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::alert_manager::set_notify_function
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - m_notify
    - empty
    linkageType: ''
    returnType: void
    signature: void alert_manager::set_notify_function(std::function<void()> const&
      fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/alert_manager.cpp:106,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert_manager.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::alert_manager::add_extension
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    linkageType: ''
    returnType: void
    signature: void alert_manager::add_extension(std::shared_ptr<plugin> ext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:114,1
    - Dst: clear
      Src: /src/libtorrent/src/alert_manager.cpp:116,1
    - Dst: any
      Src: /src/libtorrent/src/alert_manager.cpp:120,1
    - Dst: emplace_alert<alerts_dropped_alert>
      Src: /src/libtorrent/src/alert_manager.cpp:121,1
    - Dst: reset
      Src: /src/libtorrent/src/alert_manager.cpp:122,1
    - Dst: get_pointers
      Src: /src/libtorrent/src/alert_manager.cpp:125,1
    - Dst: clear
      Src: /src/libtorrent/src/alert_manager.cpp:130,1
    - Dst: reset
      Src: /src/libtorrent/src/alert_manager.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' alerts'
    argTypes:
    - std::vector<alert*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: libtorrent::aux::alert_manager::get_all
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - reset
    - emplace_alert<alerts_dropped_alert>
    - any
    - get_pointers
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void alert_manager::get_all(std::vector<alert*>& alerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::alert_manager::pending
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool alert_manager::pending() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/src/alert_manager.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue_size_limit_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: libtorrent::aux::alert_manager::set_alert_queue_size_limit
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: int
    signature: int alert_manager::set_alert_queue_size_limit(int queue_size_limit_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - queue_limit
    - alert_mask
    argTypes:
    - int
    - alert_category_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::alert_manager::alert_manager
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert_manager::alert_manager(int const queue_limit, alert_category_t
      const alert_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: alert_manager::~alert_manager()
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert_manager::~alert_manager()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:59,1
    - Dst: front
      Src: /src/libtorrent/src/alert_manager.cpp:60,1
    - Dst: wait_for
      Src: /src/libtorrent/src/alert_manager.cpp:63,1
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:64,1
    - Dst: front
      Src: /src/libtorrent/src/alert_manager.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - max_wait
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::alert_manager::wait_for_alert
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - wait_for
    - front
    linkageType: ''
    returnType: alert
    signature: alert * alert_manager::wait_for_alert(time_duration max_wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/alert_manager.cpp:72,1
    - Dst: m_notify
      Src: /src/libtorrent/src/alert_manager.cpp:78,1
    - Dst: notify_all
      Src: /src/libtorrent/src/alert_manager.cpp:82,1
    - Dst: on_alert
      Src: /src/libtorrent/src/alert_manager.cpp:87,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/alert_manager.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::alert_manager::maybe_notify
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - notify_all
    - m_notify
    - on_alert
    - size
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void alert_manager::maybe_notify(alert* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:97,1
    - Dst: m_notify
      Src: /src/libtorrent/src/alert_manager.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' fun'
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::alert_manager::set_notify_function
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - m_notify
    - empty
    linkageType: ''
    returnType: void
    signature: void alert_manager::set_notify_function(std::function<void()> const&
      fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/alert_manager.cpp:106,1
    - Dst: std::move
      Src: /src/libtorrent/src/alert_manager.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::alert_manager::add_extension
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    linkageType: ''
    returnType: void
    signature: void alert_manager::add_extension(std::shared_ptr<plugin> ext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:114,1
    - Dst: clear
      Src: /src/libtorrent/src/alert_manager.cpp:116,1
    - Dst: any
      Src: /src/libtorrent/src/alert_manager.cpp:120,1
    - Dst: emplace_alert<alerts_dropped_alert>
      Src: /src/libtorrent/src/alert_manager.cpp:121,1
    - Dst: reset
      Src: /src/libtorrent/src/alert_manager.cpp:122,1
    - Dst: get_pointers
      Src: /src/libtorrent/src/alert_manager.cpp:125,1
    - Dst: clear
      Src: /src/libtorrent/src/alert_manager.cpp:130,1
    - Dst: reset
      Src: /src/libtorrent/src/alert_manager.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' alerts'
    argTypes:
    - std::vector<alert*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: libtorrent::aux::alert_manager::get_all
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - reset
    - emplace_alert<alerts_dropped_alert>
    - any
    - get_pointers
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void alert_manager::get_all(std::vector<alert*>& alerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/alert_manager.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::alert_manager::pending
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool alert_manager::pending() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/src/alert_manager.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue_size_limit_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: libtorrent::aux::alert_manager::set_alert_queue_size_limit
    functionSourceFile: /src/libtorrent/src/alert_manager.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: int
    signature: int alert_manager::set_alert_queue_size_limit(int queue_size_limit_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::bandwidth_manager::bandwidth_manager
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::bandwidth_manager(int channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::swap
      Src: /src/libtorrent/src/bandwidth_manager.cpp:56,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:59,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:61,1
    - Dst: peer::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:62,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: libtorrent::aux::bandwidth_manager::close
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - std::vector::back
    - std::vector::empty
    - std::vector::swap
    - peer::assign_bandwidth
    - std::vector::pop_back
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer::get
      Src: /src/libtorrent/src/bandwidth_manager.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - bandwidth_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::bandwidth_manager::is_queued
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - peer::get
    linkageType: ''
    returnType: bool
    signature: bool bandwidth_manager::is_queued(bandwidth_socket const* peer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bandwidth_manager.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::bandwidth_manager::queue_size
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int bandwidth_manager::queue_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::bandwidth_manager::queued_bytes
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t bandwidth_manager::queued_bytes() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: libtorrent::aux::bandwidth_manager::is_queued
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: std::shared_ptr<bandwidth_socket>::get
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: need_queueing
      Src: /src/libtorrent/src/bandwidth_manager.cpp:117,1
    - Dst: push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:124,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - peer
    - blk
    - priority
    - chan
    - num_channels
    argTypes:
    - std::shared_ptr<bandwidth_socket>
    - int
    - int
    - bandwidth_channel**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::bandwidth_manager::request_bandwidth
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - std::shared_ptr<bandwidth_socket>::get
    - TORRENT_ASSERT
    - libtorrent::aux::bandwidth_manager::is_queued
    - need_queueing
    linkageType: ''
    returnType: int
    signature: "int bandwidth_manager::request_bandwidth(std::shared_ptr<bandwidth_socket>
      peer\n\t\t, int const blk, int const priority, bandwidth_channel** chan, int
      const num_channels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::bandwidth_manager::check_invariant
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::check_invariant() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:143,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/bandwidth_manager.cpp:147,1
    - Dst: begin
      Src: /src/libtorrent/src/bandwidth_manager.cpp:156,1
    - Dst: end
      Src: /src/libtorrent/src/bandwidth_manager.cpp:156,1
    - Dst: auto::peer::is_disconnecting
      Src: /src/libtorrent/src/bandwidth_manager.cpp:158,1
    - Dst: bandwidth_channel*::return_quota
      Src: /src/libtorrent/src/bandwidth_manager.cpp:167,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:171,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:171,1
    - Dst: erase
      Src: /src/libtorrent/src/bandwidth_manager.cpp:172,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:189,1
    - Dst: update_quota
      Src: /src/libtorrent/src/bandwidth_manager.cpp:196,1
    - Dst: begin
      Src: /src/libtorrent/src/bandwidth_manager.cpp:199,1
    - Dst: end
      Src: /src/libtorrent/src/bandwidth_manager.cpp:199,1
    - Dst: auto::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:206,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:207,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:207,1
    - Dst: erase
      Src: /src/libtorrent/src/bandwidth_manager.cpp:208,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:217,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:219,1
    - Dst: peer::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:220,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:221,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 1
    argNames:
    - ' dt'
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::bandwidth_manager::update_quotas
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::assign_bandwidth
    - std::vector::push_back
    - std::move
    - begin
    - auto::peer::is_disconnecting
    - std::vector::empty
    - erase
    - empty
    - end
    - std::vector::back
    - TORRENT_ASSERT
    - peer::assign_bandwidth
    - std::vector::pop_back
    - bandwidth_channel*::return_quota
    - total_milliseconds
    - update_quota
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::update_quotas(time_duration const& dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::bandwidth_manager::bandwidth_manager
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::bandwidth_manager(int channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::swap
      Src: /src/libtorrent/src/bandwidth_manager.cpp:56,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:59,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:61,1
    - Dst: peer::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:62,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: libtorrent::aux::bandwidth_manager::close
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - std::vector::back
    - std::vector::empty
    - std::vector::swap
    - peer::assign_bandwidth
    - std::vector::pop_back
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer::get
      Src: /src/libtorrent/src/bandwidth_manager.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - bandwidth_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::bandwidth_manager::is_queued
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 1
    functionsReached:
    - peer::get
    linkageType: ''
    returnType: bool
    signature: bool bandwidth_manager::is_queued(bandwidth_socket const* peer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bandwidth_manager.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::bandwidth_manager::queue_size
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int bandwidth_manager::queue_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::bandwidth_manager::queued_bytes
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t bandwidth_manager::queued_bytes() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: libtorrent::aux::bandwidth_manager::is_queued
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: std::shared_ptr<bandwidth_socket>::get
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: need_queueing
      Src: /src/libtorrent/src/bandwidth_manager.cpp:117,1
    - Dst: push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:124,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - peer
    - blk
    - priority
    - chan
    - num_channels
    argTypes:
    - std::shared_ptr<bandwidth_socket>
    - int
    - int
    - bandwidth_channel**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::bandwidth_manager::request_bandwidth
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - std::shared_ptr<bandwidth_socket>::get
    - TORRENT_ASSERT
    - libtorrent::aux::bandwidth_manager::is_queued
    - need_queueing
    linkageType: ''
    returnType: int
    signature: "int bandwidth_manager::request_bandwidth(std::shared_ptr<bandwidth_socket>
      peer\n\t\t, int const blk, int const priority, bandwidth_channel** chan, int
      const num_channels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::bandwidth_manager::check_invariant
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::check_invariant() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:143,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/bandwidth_manager.cpp:147,1
    - Dst: begin
      Src: /src/libtorrent/src/bandwidth_manager.cpp:156,1
    - Dst: end
      Src: /src/libtorrent/src/bandwidth_manager.cpp:156,1
    - Dst: auto::peer::is_disconnecting
      Src: /src/libtorrent/src/bandwidth_manager.cpp:158,1
    - Dst: bandwidth_channel*::return_quota
      Src: /src/libtorrent/src/bandwidth_manager.cpp:167,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:171,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:171,1
    - Dst: erase
      Src: /src/libtorrent/src/bandwidth_manager.cpp:172,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:189,1
    - Dst: update_quota
      Src: /src/libtorrent/src/bandwidth_manager.cpp:196,1
    - Dst: begin
      Src: /src/libtorrent/src/bandwidth_manager.cpp:199,1
    - Dst: end
      Src: /src/libtorrent/src/bandwidth_manager.cpp:199,1
    - Dst: auto::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:206,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:207,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:207,1
    - Dst: erase
      Src: /src/libtorrent/src/bandwidth_manager.cpp:208,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:217,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:219,1
    - Dst: peer::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:220,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:221,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 1
    argNames:
    - ' dt'
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::bandwidth_manager::update_quotas
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::assign_bandwidth
    - std::vector::push_back
    - std::move
    - begin
    - auto::peer::is_disconnecting
    - std::vector::empty
    - erase
    - empty
    - end
    - std::vector::back
    - TORRENT_ASSERT
    - peer::assign_bandwidth
    - std::vector::pop_back
    - bandwidth_channel*::return_quota
    - total_milliseconds
    - update_quota
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::update_quotas(time_duration const& dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::bandwidth_manager::bandwidth_manager
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::bandwidth_manager(int channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::swap
      Src: /src/libtorrent/src/bandwidth_manager.cpp:56,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:59,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:61,1
    - Dst: peer::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:62,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: libtorrent::aux::bandwidth_manager::close
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - std::vector::back
    - std::vector::empty
    - std::vector::swap
    - peer::assign_bandwidth
    - std::vector::pop_back
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer::get
      Src: /src/libtorrent/src/bandwidth_manager.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - bandwidth_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::bandwidth_manager::is_queued
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 2
    functionsReached:
    - peer::get
    linkageType: ''
    returnType: bool
    signature: bool bandwidth_manager::is_queued(bandwidth_socket const* peer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bandwidth_manager.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::bandwidth_manager::queue_size
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int bandwidth_manager::queue_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::bandwidth_manager::queued_bytes
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t bandwidth_manager::queued_bytes() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: libtorrent::aux::bandwidth_manager::is_queued
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: std::shared_ptr<bandwidth_socket>::get
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: need_queueing
      Src: /src/libtorrent/src/bandwidth_manager.cpp:117,1
    - Dst: push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:124,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - peer
    - blk
    - priority
    - chan
    - num_channels
    argTypes:
    - std::shared_ptr<bandwidth_socket>
    - int
    - int
    - bandwidth_channel**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::bandwidth_manager::request_bandwidth
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - std::shared_ptr<bandwidth_socket>::get
    - TORRENT_ASSERT
    - libtorrent::aux::bandwidth_manager::is_queued
    - need_queueing
    linkageType: ''
    returnType: int
    signature: "int bandwidth_manager::request_bandwidth(std::shared_ptr<bandwidth_socket>
      peer\n\t\t, int const blk, int const priority, bandwidth_channel** chan, int
      const num_channels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::bandwidth_manager::check_invariant
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::check_invariant() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:143,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/bandwidth_manager.cpp:147,1
    - Dst: begin
      Src: /src/libtorrent/src/bandwidth_manager.cpp:156,1
    - Dst: end
      Src: /src/libtorrent/src/bandwidth_manager.cpp:156,1
    - Dst: auto::peer::is_disconnecting
      Src: /src/libtorrent/src/bandwidth_manager.cpp:158,1
    - Dst: bandwidth_channel*::return_quota
      Src: /src/libtorrent/src/bandwidth_manager.cpp:167,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:171,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:171,1
    - Dst: erase
      Src: /src/libtorrent/src/bandwidth_manager.cpp:172,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:189,1
    - Dst: update_quota
      Src: /src/libtorrent/src/bandwidth_manager.cpp:196,1
    - Dst: begin
      Src: /src/libtorrent/src/bandwidth_manager.cpp:199,1
    - Dst: end
      Src: /src/libtorrent/src/bandwidth_manager.cpp:199,1
    - Dst: auto::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:206,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:207,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:207,1
    - Dst: erase
      Src: /src/libtorrent/src/bandwidth_manager.cpp:208,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:217,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:219,1
    - Dst: peer::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:220,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:221,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 1
    argNames:
    - ' dt'
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::bandwidth_manager::update_quotas
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::assign_bandwidth
    - std::vector::push_back
    - std::move
    - begin
    - auto::peer::is_disconnecting
    - std::vector::empty
    - erase
    - empty
    - end
    - std::vector::back
    - TORRENT_ASSERT
    - peer::assign_bandwidth
    - std::vector::pop_back
    - bandwidth_channel*::return_quota
    - total_milliseconds
    - update_quota
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::update_quotas(time_duration const& dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::bandwidth_manager::bandwidth_manager
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::bandwidth_manager(int channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::swap
      Src: /src/libtorrent/src/bandwidth_manager.cpp:56,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:59,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:61,1
    - Dst: peer::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:62,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: libtorrent::aux::bandwidth_manager::close
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - std::vector::back
    - std::vector::empty
    - std::vector::swap
    - peer::assign_bandwidth
    - std::vector::pop_back
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer::get
      Src: /src/libtorrent/src/bandwidth_manager.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - bandwidth_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::bandwidth_manager::is_queued
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 3
    functionsReached:
    - peer::get
    linkageType: ''
    returnType: bool
    signature: bool bandwidth_manager::is_queued(bandwidth_socket const* peer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/bandwidth_manager.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::bandwidth_manager::queue_size
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int bandwidth_manager::queue_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::bandwidth_manager::queued_bytes
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t bandwidth_manager::queued_bytes() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: libtorrent::aux::bandwidth_manager::is_queued
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: std::shared_ptr<bandwidth_socket>::get
      Src: /src/libtorrent/src/bandwidth_manager.cpp:102,1
    - Dst: need_queueing
      Src: /src/libtorrent/src/bandwidth_manager.cpp:117,1
    - Dst: push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:124,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - peer
    - blk
    - priority
    - chan
    - num_channels
    argTypes:
    - std::shared_ptr<bandwidth_socket>
    - int
    - int
    - bandwidth_channel**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::bandwidth_manager::request_bandwidth
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - std::shared_ptr<bandwidth_socket>::get
    - TORRENT_ASSERT
    - libtorrent::aux::bandwidth_manager::is_queued
    - need_queueing
    linkageType: ''
    returnType: int
    signature: "int bandwidth_manager::request_bandwidth(std::shared_ptr<bandwidth_socket>
      peer\n\t\t, int const blk, int const priority, bandwidth_channel** chan, int
      const num_channels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::bandwidth_manager::check_invariant
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::check_invariant() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:143,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/bandwidth_manager.cpp:147,1
    - Dst: begin
      Src: /src/libtorrent/src/bandwidth_manager.cpp:156,1
    - Dst: end
      Src: /src/libtorrent/src/bandwidth_manager.cpp:156,1
    - Dst: auto::peer::is_disconnecting
      Src: /src/libtorrent/src/bandwidth_manager.cpp:158,1
    - Dst: bandwidth_channel*::return_quota
      Src: /src/libtorrent/src/bandwidth_manager.cpp:167,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:171,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:171,1
    - Dst: erase
      Src: /src/libtorrent/src/bandwidth_manager.cpp:172,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:189,1
    - Dst: update_quota
      Src: /src/libtorrent/src/bandwidth_manager.cpp:196,1
    - Dst: begin
      Src: /src/libtorrent/src/bandwidth_manager.cpp:199,1
    - Dst: end
      Src: /src/libtorrent/src/bandwidth_manager.cpp:199,1
    - Dst: auto::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_manager.cpp:206,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:207,1
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_manager.cpp:207,1
    - Dst: erase
      Src: /src/libtorrent/src/bandwidth_manager.cpp:208,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/bandwidth_manager.cpp:217,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:219,1
    - Dst: peer::assign_bandwidth
      Src: /src/libtorrent/src/bandwidth_manager.cpp:220,1
    - Dst: std::vector::pop_back
      Src: /src/libtorrent/src/bandwidth_manager.cpp:221,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 1
    argNames:
    - ' dt'
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::bandwidth_manager::update_quotas
    functionSourceFile: /src/libtorrent/src/bandwidth_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::assign_bandwidth
    - std::vector::push_back
    - std::move
    - begin
    - auto::peer::is_disconnecting
    - std::vector::empty
    - erase
    - empty
    - end
    - std::vector::back
    - TORRENT_ASSERT
    - peer::assign_bandwidth
    - std::vector::pop_back
    - bandwidth_channel*::return_quota
    - total_milliseconds
    - update_quota
    linkageType: ''
    returnType: void
    signature: void bandwidth_manager::update_quotas(time_duration const& dt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:66,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:67,1
    - Dst: end_piece
      Src: /src/libtorrent/src/storage_utils.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:68,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:71,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: piece_length
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:73,1
    - Dst: total_size
      Src: /src/libtorrent/src/storage_utils.cpp:73,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: piece_length
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/storage_utils.cpp:77,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:78,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:80,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:84,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:89,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:90,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:101,1
    - Dst: end_file
      Src: /src/libtorrent/src/storage_utils.cpp:101,1
    - Dst: end_file
      Src: /src/libtorrent/src/storage_utils.cpp:105,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:109,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:111,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:112,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:114,1
    - Dst: op
      Src: /src/libtorrent/src/storage_utils.cpp:117,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/storage_utils.cpp:118,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:119,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:122,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/storage_utils.cpp:126,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 6
    argNames:
    - ' files'
    - buf
    - piece
    - offset
    - ' ec'
    - op
    argTypes:
    - file_storage
    - span<char>
    - piece_index_t
    - int
    - storage_error
    - fileop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::readwrite
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - total_size
    - span<char>::first
    - file_offset
    - file_index_at_offset
    - piece_index_t
    - TORRENT_ASSERT
    - piece_length
    - static_cast<std::int64_t>
    - std::int64_t
    - file_size
    - libtorrent::aux::max
    - end_file
    - libtorrent::aux::file
    - span<char>::subspan
    - span<char>::size
    - op
    - end_piece
    linkageType: ''
    returnType: int
    signature: "int readwrite(file_storage const& files, span<char> buf\n\t\t, piece_index_t
      const piece, const int offset\n\t\t, storage_error& ec, fileop op)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/src/storage_utils.cpp:150,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:157,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:161,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:164,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:166,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:166,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:170,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:181,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/storage_utils.cpp:184,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:185,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:189,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:189,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:197,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/storage_utils.cpp:211,1
    - Dst: num_files
      Src: /src/libtorrent/src/storage_utils.cpp:211,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:215,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:218,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:220,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:220,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:221,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:221,1
    - Dst: exists
      Src: /src/libtorrent/src/storage_utils.cpp:224,1
    - Dst: libtorrent::aux::move_file
      Src: /src/libtorrent/src/storage_utils.cpp:233,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:238,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:246,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/storage_utils.cpp:247,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:253,1
    - Dst: move_partfile
      Src: /src/libtorrent/src/storage_utils.cpp:262,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:266,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:274,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:277,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:283,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:283,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:284,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:284,1
    - Dst: libtorrent::aux::move_file
      Src: /src/libtorrent/src/storage_utils.cpp:288,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:301,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:304,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:306,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:306,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:313,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:313,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:319,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:325,1
    - Dst: path_equal
      Src: /src/libtorrent/src/storage_utils.cpp:327,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:329,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:330,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 92
    argCount: 6
    argNames:
    - ' f'
    - save_path
    - ' destination_save_path'
    - ' move_partfile'
    - flags
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - std::string
    - std::function<void(std::string const&, error_code&)>
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 335
    functionName: libtorrent::aux::move_storage
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - parent_path
    - error_code::clear
    - libtorrent::aux::file
    - create_directories
    - file_path
    - has_parent_path
    - std::size_t
    - remove
    - file_absolute_path
    - file_index_t
    - file_range
    - num_files
    - path_equal
    - stat_file
    - move_partfile
    - combine_path
    - exists
    - ec::clear
    - libtorrent::aux::move_file
    - libtorrent::aux::copy_file
    - std::set::insert
    - complete
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> move_storage(file_storage const&
      f\n\t\t, std::string save_path\n\t\t, std::string const& destination_save_path\n\t\t,
      std::function<void(std::string const&, error_code&)> const& move_partfile\n\t\t,
      move_flags_t const flags, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:341,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::delete_one_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - remove
    - libtorrent::aux::clear
    linkageType: ''
    returnType: void
    signature: void delete_one_file(std::string const& p, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:341,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::delete_one_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - remove
    - libtorrent::aux::clear
    linkageType: ''
    returnType: void
    signature: void delete_one_file(std::string const& p, error_code& ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:357,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:359,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:360,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:361,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:364,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/storage_utils.cpp:367,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/storage_utils.cpp:369,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:369,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:370,1
    - Dst: libtorrent::aux::delete_one_file
      Src: /src/libtorrent/src/storage_utils.cpp:373,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:374,1
    - Dst: std::set::rbegin
      Src: /src/libtorrent/src/storage_utils.cpp:380,1
    - Dst: std::set::rend
      Src: /src/libtorrent/src/storage_utils.cpp:381,1
    - Dst: libtorrent::aux::delete_one_file
      Src: /src/libtorrent/src/storage_utils.cpp:384,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:387,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:387,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:399,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:399,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:402,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:402,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 5
    argNames:
    - ' fs'
    - ' save_path'
    - ' part_file_name'
    - options
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - std::string
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 407
    functionName: libtorrent::aux::delete_files
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::delete_one_file
    - std::set::rend
    - combine_path
    - parent_path
    - std::string::empty
    - file_path
    - libtorrent::aux::file
    - remove
    - file_absolute_path
    - file_index_t
    - file_range
    - std::set::insert
    - std::set::rbegin
    linkageType: ''
    returnType: void
    signature: "void delete_files(file_storage const& fs, std::string const& save_path\n\t\t,
      std::string const& part_file_name, remove_flags_t const options, storage_error&
      ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:415,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:421,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' stat'
    - file_index
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - stat_cache
    - file_index_t
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: libtorrent::aux::get_filesize
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::file
    - libtorrent::aux::get_filesize
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t get_filesize(stat_cache& stat, file_index_t const file_index\n\t,
      file_storage const& fs, std::string const& save_path, storage_error& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:415,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:421,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' stat'
    - file_index
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - stat_cache
    - file_index_t
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: libtorrent::aux::get_filesize
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::file
    - libtorrent::aux::get_filesize
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t get_filesize(stat_cache& stat, file_index_t const file_index\n\t,
      file_storage const& fs, std::string const& save_path, storage_error& ec)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:444,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/storage_utils.cpp:447,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: num_files
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:457,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/storage_utils.cpp:460,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:463,1
    - Dst: hard_link
      Src: /src/libtorrent/src/storage_utils.cpp:464,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:470,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:470,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:474,1
    - Dst: hard_link
      Src: /src/libtorrent/src/storage_utils.cpp:479,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:492,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/storage_utils.cpp:497,1
    - Dst: have_pieces::size
      Src: /src/libtorrent/src/storage_utils.cpp:502,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/storage_utils.cpp:502,1
    - Dst: have_pieces::all_set
      Src: /src/libtorrent/src/storage_utils.cpp:503,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:508,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:510,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:515,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:520,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:524,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:527,1
    - Dst: std::min
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: have_pieces::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: end_piece
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: have_pieces::get_bit
      Src: /src/libtorrent/src/storage_utils.cpp:549,1
    - Dst: map_block
      Src: /src/libtorrent/src/storage_utils.cpp:551,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:552,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/storage_utils.cpp:552,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:559,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:563,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:565,1
    - Dst: map_file
      Src: /src/libtorrent/src/storage_utils.cpp:571,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:572,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:573,1
    - Dst: libtorrent::aux::next
      Src: /src/libtorrent/src/storage_utils.cpp:573,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 59
    argCount: 7
    argNames:
    - ' rd'
    - ' links'
    - ' fs'
    - ' file_priority'
    - ' stat'
    - ' save_path'
    - ' ec'
    argTypes:
    - add_torrent_params
    - aux::vector<std::string, file_index_t>
    - file_storage
    - aux::vector<download_priority_t, file_index_t>
    - stat_cache
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 576
    functionName: libtorrent::aux::verify_resume_data
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - have_pieces::end_index
    - libtorrent::aux::next
    - parent_path
    - std::min
    - file_size
    - libtorrent::aux::file
    - pad_file_at
    - hard_link
    - create_directories
    - have_pieces::all_set
    - file_path
    - num_pieces
    - file_range
    - map_file
    - num_files
    - libtorrent::aux::get_filesize
    - libtorrent::aux::size
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::aux::end_index
    - TORRENT_UNUSED
    - libtorrent::aux::empty
    - set_dirty
    - std::vector::empty
    - have_pieces::get_bit
    - have_pieces::size
    - map_block
    - end_piece
    linkageType: ''
    returnType: bool
    signature: "bool verify_resume_data(add_torrent_params const& rd\n\t\t, aux::vector<std::string,
      file_index_t> const& links\n\t\t, file_storage const& fs\n\t\t, aux::vector<download_priority_t,
      file_index_t> const& file_priority\n\t\t, stat_cache& stat\n\t\t, std::string
      const& save_path\n\t\t, storage_error& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:584,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:586,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:593,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:595,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - ' fs'
    - ' save_path'
    - ' cache'
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - stat_cache
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 605
    functionName: libtorrent::aux::has_any_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::get_filesize
    - ec::clear
    - libtorrent::aux::file
    - file_range
    - libtorrent::aux::clear
    linkageType: ''
    returnType: bool
    signature: "bool has_any_file(\n\t\tfile_storage const& fs\n\t\t, std::string
      const& save_path\n\t\t, stat_cache& cache\n\t\t, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: libtorrent::aux::read_zeroes
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - std::fill
    - span<char>::end
    - span<char>::size
    - span<char>::begin
    linkageType: ''
    returnType: int
    signature: int read_zeroes(span<char> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/src/storage_utils.cpp:616,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/storage_utils.cpp:617,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/storage_utils.cpp:617,1
    - Dst: libtorrent::aux::update
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::min
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ph'
    - size
    argTypes:
    - hasher
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: libtorrent::aux::hash_zeroes
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - std::array::data
    - std::array::fill
    - std::min
    - libtorrent::aux::update
    - std::ptrdiff_t
    linkageType: ''
    returnType: int
    signature: int hash_zeroes(hasher& ph, std::int64_t const size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:632,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:635,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:642,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:646,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:650,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:656,1
    - Dst: oversized_file
      Src: /src/libtorrent/src/storage_utils.cpp:660,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/storage_utils.cpp:670,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:673,1
    - Dst: lexically_relative
      Src: /src/libtorrent/src/storage_utils.cpp:675,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: symlink
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: create_link
      Src: /src/libtorrent/src/storage_utils.cpp:677,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:680,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:684,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:692,1
    - Dst: libtorrent::aux::create_file
      Src: /src/libtorrent/src/storage_utils.cpp:693,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:697,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 8
    argNames:
    - ' fs'
    - ' save_path'
    - ' sc'
    - ' file_priority'
    - create_file
    - create_link
    - oversized_file
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - stat_cache
    - aux::vector<download_priority_t, file_index_t>
    - std::function<void(file_index_t, storage_error&)>
    - std::function<void(std::string const&, std::string const&, storage_error&)>
    - std::function<void(file_index_t, std::int64_t)>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 699
    functionName: libtorrent::aux::initialize_storage
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - parent_path
    - libtorrent::aux::create_file
    - libtorrent::aux::get_filesize
    - oversized_file
    - file_path
    - symlink
    - file_size
    - libtorrent::aux::file_flags
    - libtorrent::aux::file
    - pad_file_at
    - libtorrent::aux::end_index
    - ec::clear
    - file_range
    - create_link
    - TORRENT_UNUSED
    - lexically_relative
    linkageType: ''
    returnType: void
    signature: "void initialize_storage(file_storage const& fs\n\t\t, std::string
      const& save_path\n\t\t, stat_cache& sc\n\t\t, aux::vector<download_priority_t,
      file_index_t> const& file_priority\n\t\t, std::function<void(file_index_t, storage_error&)>
      create_file\n\t\t, std::function<void(std::string const&, std::string const&,
      storage_error&)> create_link\n\t\t, std::function<void(file_index_t, std::int64_t)>
      oversized_file\n\t\t, storage_error& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:704,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:704,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:707,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:707,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: ::readlink
      Src: /src/libtorrent/src/storage_utils.cpp:720,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:720,1
    - Dst: string_view
      Src: /src/libtorrent/src/storage_utils.cpp:721,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/storage_utils.cpp:721,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:723,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:723,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:730,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:730,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:736,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:737,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ' target'
    - ' link'
    - ' ec'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 740
    functionName: libtorrent::aux::create_symlink
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - create_directories
    - c_str
    - error_code
    - parent_path
    - libtorrent::file_storage::symlink
    - generic_category
    - string_view
    - std::size_t
    - ::readlink
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void create_symlink(std::string const& target, std::string const& link,
      storage_error& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:744,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:747,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:754,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:756,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:756,1
    - Dst: rename
      Src: /src/libtorrent/src/storage_utils.cpp:764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 767
    functionName: libtorrent::aux::move_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 1
    functionsReached:
    - rename
    - create_directories
    - parent_path
    - stat_file
    - has_parent_path
    - ec::clear
    linkageType: ''
    returnType: void
    signature: void move_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:66,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:67,1
    - Dst: end_piece
      Src: /src/libtorrent/src/storage_utils.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:68,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:71,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: piece_length
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:73,1
    - Dst: total_size
      Src: /src/libtorrent/src/storage_utils.cpp:73,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: piece_length
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/storage_utils.cpp:77,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:78,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:80,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:84,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:89,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:90,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:101,1
    - Dst: end_file
      Src: /src/libtorrent/src/storage_utils.cpp:101,1
    - Dst: end_file
      Src: /src/libtorrent/src/storage_utils.cpp:105,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:109,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:111,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:112,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:114,1
    - Dst: op
      Src: /src/libtorrent/src/storage_utils.cpp:117,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/storage_utils.cpp:118,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:119,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:122,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/storage_utils.cpp:126,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 6
    argNames:
    - ' files'
    - buf
    - piece
    - offset
    - ' ec'
    - op
    argTypes:
    - file_storage
    - span<char>
    - piece_index_t
    - int
    - storage_error
    - fileop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::readwrite
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - total_size
    - span<char>::first
    - file_offset
    - file_index_at_offset
    - piece_index_t
    - TORRENT_ASSERT
    - piece_length
    - static_cast<std::int64_t>
    - std::int64_t
    - file_size
    - libtorrent::aux::max
    - end_file
    - libtorrent::aux::file
    - span<char>::subspan
    - span<char>::size
    - op
    - end_piece
    linkageType: ''
    returnType: int
    signature: "int readwrite(file_storage const& files, span<char> buf\n\t\t, piece_index_t
      const piece, const int offset\n\t\t, storage_error& ec, fileop op)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/src/storage_utils.cpp:150,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:157,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:161,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:164,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:166,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:166,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:170,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:181,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/storage_utils.cpp:184,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:185,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:189,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:189,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:197,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/storage_utils.cpp:211,1
    - Dst: num_files
      Src: /src/libtorrent/src/storage_utils.cpp:211,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:215,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:218,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:220,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:220,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:221,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:221,1
    - Dst: exists
      Src: /src/libtorrent/src/storage_utils.cpp:224,1
    - Dst: libtorrent::aux::move_file
      Src: /src/libtorrent/src/storage_utils.cpp:233,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:238,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:246,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/storage_utils.cpp:247,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:253,1
    - Dst: move_partfile
      Src: /src/libtorrent/src/storage_utils.cpp:262,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:266,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:274,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:277,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:283,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:283,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:284,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:284,1
    - Dst: libtorrent::aux::move_file
      Src: /src/libtorrent/src/storage_utils.cpp:288,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:301,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:304,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:306,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:306,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:313,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:313,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:319,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:325,1
    - Dst: path_equal
      Src: /src/libtorrent/src/storage_utils.cpp:327,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:329,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:330,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 92
    argCount: 6
    argNames:
    - ' f'
    - save_path
    - ' destination_save_path'
    - ' move_partfile'
    - flags
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - std::string
    - std::function<void(std::string const&, error_code&)>
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 335
    functionName: libtorrent::aux::move_storage
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - parent_path
    - error_code::clear
    - libtorrent::aux::file
    - create_directories
    - file_path
    - has_parent_path
    - std::size_t
    - remove
    - file_absolute_path
    - file_index_t
    - file_range
    - num_files
    - path_equal
    - stat_file
    - move_partfile
    - combine_path
    - exists
    - ec::clear
    - libtorrent::aux::move_file
    - libtorrent::aux::copy_file
    - std::set::insert
    - complete
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> move_storage(file_storage const&
      f\n\t\t, std::string save_path\n\t\t, std::string const& destination_save_path\n\t\t,
      std::function<void(std::string const&, error_code&)> const& move_partfile\n\t\t,
      move_flags_t const flags, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:341,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::delete_one_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 1
    functionsReached:
    - remove
    - libtorrent::aux::clear
    linkageType: ''
    returnType: void
    signature: void delete_one_file(std::string const& p, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:341,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::delete_one_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 1
    functionsReached:
    - remove
    - libtorrent::aux::clear
    linkageType: ''
    returnType: void
    signature: void delete_one_file(std::string const& p, error_code& ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:357,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:359,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:360,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:361,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:364,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/storage_utils.cpp:367,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/storage_utils.cpp:369,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:369,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:370,1
    - Dst: libtorrent::aux::delete_one_file
      Src: /src/libtorrent/src/storage_utils.cpp:373,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:374,1
    - Dst: std::set::rbegin
      Src: /src/libtorrent/src/storage_utils.cpp:380,1
    - Dst: std::set::rend
      Src: /src/libtorrent/src/storage_utils.cpp:381,1
    - Dst: libtorrent::aux::delete_one_file
      Src: /src/libtorrent/src/storage_utils.cpp:384,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:387,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:387,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:399,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:399,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:402,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:402,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 5
    argNames:
    - ' fs'
    - ' save_path'
    - ' part_file_name'
    - options
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - std::string
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 407
    functionName: libtorrent::aux::delete_files
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::delete_one_file
    - std::set::rend
    - combine_path
    - parent_path
    - std::string::empty
    - file_path
    - libtorrent::aux::file
    - remove
    - file_absolute_path
    - file_index_t
    - file_range
    - std::set::insert
    - std::set::rbegin
    linkageType: ''
    returnType: void
    signature: "void delete_files(file_storage const& fs, std::string const& save_path\n\t\t,
      std::string const& part_file_name, remove_flags_t const options, storage_error&
      ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:415,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:421,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' stat'
    - file_index
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - stat_cache
    - file_index_t
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: libtorrent::aux::get_filesize
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::file
    - libtorrent::aux::get_filesize
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t get_filesize(stat_cache& stat, file_index_t const file_index\n\t,
      file_storage const& fs, std::string const& save_path, storage_error& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:415,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:421,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' stat'
    - file_index
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - stat_cache
    - file_index_t
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: libtorrent::aux::get_filesize
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::file
    - libtorrent::aux::get_filesize
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t get_filesize(stat_cache& stat, file_index_t const file_index\n\t,
      file_storage const& fs, std::string const& save_path, storage_error& ec)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:444,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/storage_utils.cpp:447,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: num_files
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:457,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/storage_utils.cpp:460,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:463,1
    - Dst: hard_link
      Src: /src/libtorrent/src/storage_utils.cpp:464,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:470,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:470,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:474,1
    - Dst: hard_link
      Src: /src/libtorrent/src/storage_utils.cpp:479,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:492,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/storage_utils.cpp:497,1
    - Dst: have_pieces::size
      Src: /src/libtorrent/src/storage_utils.cpp:502,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/storage_utils.cpp:502,1
    - Dst: have_pieces::all_set
      Src: /src/libtorrent/src/storage_utils.cpp:503,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:508,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:510,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:515,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:520,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:524,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:527,1
    - Dst: std::min
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: have_pieces::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: end_piece
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: have_pieces::get_bit
      Src: /src/libtorrent/src/storage_utils.cpp:549,1
    - Dst: map_block
      Src: /src/libtorrent/src/storage_utils.cpp:551,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:552,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/storage_utils.cpp:552,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:559,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:563,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:565,1
    - Dst: map_file
      Src: /src/libtorrent/src/storage_utils.cpp:571,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:572,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:573,1
    - Dst: libtorrent::aux::next
      Src: /src/libtorrent/src/storage_utils.cpp:573,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 59
    argCount: 7
    argNames:
    - ' rd'
    - ' links'
    - ' fs'
    - ' file_priority'
    - ' stat'
    - ' save_path'
    - ' ec'
    argTypes:
    - add_torrent_params
    - aux::vector<std::string, file_index_t>
    - file_storage
    - aux::vector<download_priority_t, file_index_t>
    - stat_cache
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 576
    functionName: libtorrent::aux::verify_resume_data
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - have_pieces::end_index
    - libtorrent::aux::next
    - parent_path
    - std::min
    - file_size
    - libtorrent::aux::file
    - pad_file_at
    - hard_link
    - create_directories
    - have_pieces::all_set
    - file_path
    - num_pieces
    - file_range
    - map_file
    - num_files
    - libtorrent::aux::get_filesize
    - libtorrent::aux::size
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::aux::end_index
    - TORRENT_UNUSED
    - libtorrent::aux::empty
    - set_dirty
    - std::vector::empty
    - have_pieces::get_bit
    - have_pieces::size
    - map_block
    - end_piece
    linkageType: ''
    returnType: bool
    signature: "bool verify_resume_data(add_torrent_params const& rd\n\t\t, aux::vector<std::string,
      file_index_t> const& links\n\t\t, file_storage const& fs\n\t\t, aux::vector<download_priority_t,
      file_index_t> const& file_priority\n\t\t, stat_cache& stat\n\t\t, std::string
      const& save_path\n\t\t, storage_error& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:584,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:586,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:593,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:595,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - ' fs'
    - ' save_path'
    - ' cache'
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - stat_cache
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 605
    functionName: libtorrent::aux::has_any_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::get_filesize
    - ec::clear
    - libtorrent::aux::file
    - file_range
    - libtorrent::aux::clear
    linkageType: ''
    returnType: bool
    signature: "bool has_any_file(\n\t\tfile_storage const& fs\n\t\t, std::string
      const& save_path\n\t\t, stat_cache& cache\n\t\t, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: libtorrent::aux::read_zeroes
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - std::fill
    - span<char>::end
    - span<char>::size
    - span<char>::begin
    linkageType: ''
    returnType: int
    signature: int read_zeroes(span<char> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/src/storage_utils.cpp:616,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/storage_utils.cpp:617,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/storage_utils.cpp:617,1
    - Dst: libtorrent::aux::update
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::min
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ph'
    - size
    argTypes:
    - hasher
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: libtorrent::aux::hash_zeroes
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - std::array::data
    - std::array::fill
    - std::min
    - libtorrent::aux::update
    - std::ptrdiff_t
    linkageType: ''
    returnType: int
    signature: int hash_zeroes(hasher& ph, std::int64_t const size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:632,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:635,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:642,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:646,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:650,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:656,1
    - Dst: oversized_file
      Src: /src/libtorrent/src/storage_utils.cpp:660,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/storage_utils.cpp:670,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:673,1
    - Dst: lexically_relative
      Src: /src/libtorrent/src/storage_utils.cpp:675,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: symlink
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: create_link
      Src: /src/libtorrent/src/storage_utils.cpp:677,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:680,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:684,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:692,1
    - Dst: libtorrent::aux::create_file
      Src: /src/libtorrent/src/storage_utils.cpp:693,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:697,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 8
    argNames:
    - ' fs'
    - ' save_path'
    - ' sc'
    - ' file_priority'
    - create_file
    - create_link
    - oversized_file
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - stat_cache
    - aux::vector<download_priority_t, file_index_t>
    - std::function<void(file_index_t, storage_error&)>
    - std::function<void(std::string const&, std::string const&, storage_error&)>
    - std::function<void(file_index_t, std::int64_t)>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 699
    functionName: libtorrent::aux::initialize_storage
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - parent_path
    - libtorrent::aux::create_file
    - libtorrent::aux::get_filesize
    - oversized_file
    - file_path
    - symlink
    - file_size
    - libtorrent::aux::file_flags
    - libtorrent::aux::file
    - pad_file_at
    - libtorrent::aux::end_index
    - ec::clear
    - file_range
    - create_link
    - TORRENT_UNUSED
    - lexically_relative
    linkageType: ''
    returnType: void
    signature: "void initialize_storage(file_storage const& fs\n\t\t, std::string
      const& save_path\n\t\t, stat_cache& sc\n\t\t, aux::vector<download_priority_t,
      file_index_t> const& file_priority\n\t\t, std::function<void(file_index_t, storage_error&)>
      create_file\n\t\t, std::function<void(std::string const&, std::string const&,
      storage_error&)> create_link\n\t\t, std::function<void(file_index_t, std::int64_t)>
      oversized_file\n\t\t, storage_error& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:704,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:704,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:707,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:707,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: ::readlink
      Src: /src/libtorrent/src/storage_utils.cpp:720,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:720,1
    - Dst: string_view
      Src: /src/libtorrent/src/storage_utils.cpp:721,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/storage_utils.cpp:721,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:723,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:723,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:730,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:730,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:736,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:737,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ' target'
    - ' link'
    - ' ec'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 740
    functionName: libtorrent::aux::create_symlink
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - create_directories
    - c_str
    - error_code
    - parent_path
    - libtorrent::file_storage::symlink
    - generic_category
    - string_view
    - std::size_t
    - ::readlink
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void create_symlink(std::string const& target, std::string const& link,
      storage_error& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:744,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:747,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:754,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:756,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:756,1
    - Dst: rename
      Src: /src/libtorrent/src/storage_utils.cpp:764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 767
    functionName: libtorrent::aux::move_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - rename
    - create_directories
    - parent_path
    - stat_file
    - has_parent_path
    - ec::clear
    linkageType: ''
    returnType: void
    signature: void move_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:66,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:67,1
    - Dst: end_piece
      Src: /src/libtorrent/src/storage_utils.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:68,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:71,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: piece_length
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:73,1
    - Dst: total_size
      Src: /src/libtorrent/src/storage_utils.cpp:73,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: piece_length
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/storage_utils.cpp:77,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:78,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:80,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:84,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:89,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:90,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:101,1
    - Dst: end_file
      Src: /src/libtorrent/src/storage_utils.cpp:101,1
    - Dst: end_file
      Src: /src/libtorrent/src/storage_utils.cpp:105,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:109,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:111,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:112,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:114,1
    - Dst: op
      Src: /src/libtorrent/src/storage_utils.cpp:117,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/storage_utils.cpp:118,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:119,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:122,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/storage_utils.cpp:126,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 6
    argNames:
    - ' files'
    - buf
    - piece
    - offset
    - ' ec'
    - op
    argTypes:
    - file_storage
    - span<char>
    - piece_index_t
    - int
    - storage_error
    - fileop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::readwrite
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - total_size
    - span<char>::first
    - file_offset
    - file_index_at_offset
    - piece_index_t
    - TORRENT_ASSERT
    - piece_length
    - static_cast<std::int64_t>
    - std::int64_t
    - file_size
    - libtorrent::aux::max
    - end_file
    - libtorrent::aux::file
    - span<char>::subspan
    - span<char>::size
    - op
    - end_piece
    linkageType: ''
    returnType: int
    signature: "int readwrite(file_storage const& files, span<char> buf\n\t\t, piece_index_t
      const piece, const int offset\n\t\t, storage_error& ec, fileop op)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/src/storage_utils.cpp:150,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:157,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:161,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:164,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:166,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:166,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:170,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:181,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/storage_utils.cpp:184,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:185,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:189,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:189,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:197,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/storage_utils.cpp:211,1
    - Dst: num_files
      Src: /src/libtorrent/src/storage_utils.cpp:211,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:215,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:218,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:220,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:220,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:221,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:221,1
    - Dst: exists
      Src: /src/libtorrent/src/storage_utils.cpp:224,1
    - Dst: libtorrent::aux::move_file
      Src: /src/libtorrent/src/storage_utils.cpp:233,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:238,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:246,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/storage_utils.cpp:247,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:253,1
    - Dst: move_partfile
      Src: /src/libtorrent/src/storage_utils.cpp:262,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:266,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:274,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:277,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:283,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:283,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:284,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:284,1
    - Dst: libtorrent::aux::move_file
      Src: /src/libtorrent/src/storage_utils.cpp:288,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:301,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:304,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:306,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:306,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:313,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:313,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:319,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:325,1
    - Dst: path_equal
      Src: /src/libtorrent/src/storage_utils.cpp:327,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:329,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:330,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 92
    argCount: 6
    argNames:
    - ' f'
    - save_path
    - ' destination_save_path'
    - ' move_partfile'
    - flags
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - std::string
    - std::function<void(std::string const&, error_code&)>
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 335
    functionName: libtorrent::aux::move_storage
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - parent_path
    - error_code::clear
    - libtorrent::aux::file
    - create_directories
    - file_path
    - has_parent_path
    - std::size_t
    - remove
    - file_absolute_path
    - file_index_t
    - file_range
    - num_files
    - path_equal
    - stat_file
    - move_partfile
    - combine_path
    - exists
    - ec::clear
    - libtorrent::aux::move_file
    - libtorrent::aux::copy_file
    - std::set::insert
    - complete
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> move_storage(file_storage const&
      f\n\t\t, std::string save_path\n\t\t, std::string const& destination_save_path\n\t\t,
      std::function<void(std::string const&, error_code&)> const& move_partfile\n\t\t,
      move_flags_t const flags, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:341,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::delete_one_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - remove
    - libtorrent::aux::clear
    linkageType: ''
    returnType: void
    signature: void delete_one_file(std::string const& p, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:341,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::delete_one_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - remove
    - libtorrent::aux::clear
    linkageType: ''
    returnType: void
    signature: void delete_one_file(std::string const& p, error_code& ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:357,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:359,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:360,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:361,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:364,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/storage_utils.cpp:367,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/storage_utils.cpp:369,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:369,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:370,1
    - Dst: libtorrent::aux::delete_one_file
      Src: /src/libtorrent/src/storage_utils.cpp:373,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:374,1
    - Dst: std::set::rbegin
      Src: /src/libtorrent/src/storage_utils.cpp:380,1
    - Dst: std::set::rend
      Src: /src/libtorrent/src/storage_utils.cpp:381,1
    - Dst: libtorrent::aux::delete_one_file
      Src: /src/libtorrent/src/storage_utils.cpp:384,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:387,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:387,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:399,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:399,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:402,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:402,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 5
    argNames:
    - ' fs'
    - ' save_path'
    - ' part_file_name'
    - options
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - std::string
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 407
    functionName: libtorrent::aux::delete_files
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::delete_one_file
    - std::set::rend
    - combine_path
    - parent_path
    - std::string::empty
    - file_path
    - libtorrent::aux::file
    - remove
    - file_absolute_path
    - file_index_t
    - file_range
    - std::set::insert
    - std::set::rbegin
    linkageType: ''
    returnType: void
    signature: "void delete_files(file_storage const& fs, std::string const& save_path\n\t\t,
      std::string const& part_file_name, remove_flags_t const options, storage_error&
      ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:415,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:421,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' stat'
    - file_index
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - stat_cache
    - file_index_t
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: libtorrent::aux::get_filesize
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::file
    - libtorrent::aux::get_filesize
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t get_filesize(stat_cache& stat, file_index_t const file_index\n\t,
      file_storage const& fs, std::string const& save_path, storage_error& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:415,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:421,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' stat'
    - file_index
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - stat_cache
    - file_index_t
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: libtorrent::aux::get_filesize
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::file
    - libtorrent::aux::get_filesize
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t get_filesize(stat_cache& stat, file_index_t const file_index\n\t,
      file_storage const& fs, std::string const& save_path, storage_error& ec)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:444,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/storage_utils.cpp:447,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: num_files
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:457,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/storage_utils.cpp:460,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:463,1
    - Dst: hard_link
      Src: /src/libtorrent/src/storage_utils.cpp:464,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:470,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:470,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:474,1
    - Dst: hard_link
      Src: /src/libtorrent/src/storage_utils.cpp:479,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:492,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/storage_utils.cpp:497,1
    - Dst: have_pieces::size
      Src: /src/libtorrent/src/storage_utils.cpp:502,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/storage_utils.cpp:502,1
    - Dst: have_pieces::all_set
      Src: /src/libtorrent/src/storage_utils.cpp:503,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:508,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:510,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:515,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:520,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:524,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:527,1
    - Dst: std::min
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: have_pieces::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: end_piece
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: have_pieces::get_bit
      Src: /src/libtorrent/src/storage_utils.cpp:549,1
    - Dst: map_block
      Src: /src/libtorrent/src/storage_utils.cpp:551,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:552,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/storage_utils.cpp:552,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:559,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:563,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:565,1
    - Dst: map_file
      Src: /src/libtorrent/src/storage_utils.cpp:571,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:572,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:573,1
    - Dst: libtorrent::aux::next
      Src: /src/libtorrent/src/storage_utils.cpp:573,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 59
    argCount: 7
    argNames:
    - ' rd'
    - ' links'
    - ' fs'
    - ' file_priority'
    - ' stat'
    - ' save_path'
    - ' ec'
    argTypes:
    - add_torrent_params
    - aux::vector<std::string, file_index_t>
    - file_storage
    - aux::vector<download_priority_t, file_index_t>
    - stat_cache
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 576
    functionName: libtorrent::aux::verify_resume_data
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - have_pieces::end_index
    - libtorrent::aux::next
    - parent_path
    - std::min
    - file_size
    - libtorrent::aux::file
    - pad_file_at
    - hard_link
    - create_directories
    - have_pieces::all_set
    - file_path
    - num_pieces
    - file_range
    - map_file
    - num_files
    - libtorrent::aux::get_filesize
    - libtorrent::aux::size
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::aux::end_index
    - TORRENT_UNUSED
    - libtorrent::aux::empty
    - set_dirty
    - std::vector::empty
    - have_pieces::get_bit
    - have_pieces::size
    - map_block
    - end_piece
    linkageType: ''
    returnType: bool
    signature: "bool verify_resume_data(add_torrent_params const& rd\n\t\t, aux::vector<std::string,
      file_index_t> const& links\n\t\t, file_storage const& fs\n\t\t, aux::vector<download_priority_t,
      file_index_t> const& file_priority\n\t\t, stat_cache& stat\n\t\t, std::string
      const& save_path\n\t\t, storage_error& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:584,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:586,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:593,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:595,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - ' fs'
    - ' save_path'
    - ' cache'
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - stat_cache
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 605
    functionName: libtorrent::aux::has_any_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::get_filesize
    - ec::clear
    - libtorrent::aux::file
    - file_range
    - libtorrent::aux::clear
    linkageType: ''
    returnType: bool
    signature: "bool has_any_file(\n\t\tfile_storage const& fs\n\t\t, std::string
      const& save_path\n\t\t, stat_cache& cache\n\t\t, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: libtorrent::aux::read_zeroes
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - std::fill
    - span<char>::end
    - span<char>::size
    - span<char>::begin
    linkageType: ''
    returnType: int
    signature: int read_zeroes(span<char> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/src/storage_utils.cpp:616,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/storage_utils.cpp:617,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/storage_utils.cpp:617,1
    - Dst: libtorrent::aux::update
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::min
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ph'
    - size
    argTypes:
    - hasher
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: libtorrent::aux::hash_zeroes
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - std::array::data
    - std::array::fill
    - std::min
    - libtorrent::aux::update
    - std::ptrdiff_t
    linkageType: ''
    returnType: int
    signature: int hash_zeroes(hasher& ph, std::int64_t const size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:632,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:635,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:642,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:646,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:650,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:656,1
    - Dst: oversized_file
      Src: /src/libtorrent/src/storage_utils.cpp:660,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/storage_utils.cpp:670,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:673,1
    - Dst: lexically_relative
      Src: /src/libtorrent/src/storage_utils.cpp:675,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: symlink
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: create_link
      Src: /src/libtorrent/src/storage_utils.cpp:677,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:680,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:684,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:692,1
    - Dst: libtorrent::aux::create_file
      Src: /src/libtorrent/src/storage_utils.cpp:693,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:697,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 8
    argNames:
    - ' fs'
    - ' save_path'
    - ' sc'
    - ' file_priority'
    - create_file
    - create_link
    - oversized_file
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - stat_cache
    - aux::vector<download_priority_t, file_index_t>
    - std::function<void(file_index_t, storage_error&)>
    - std::function<void(std::string const&, std::string const&, storage_error&)>
    - std::function<void(file_index_t, std::int64_t)>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 699
    functionName: libtorrent::aux::initialize_storage
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - parent_path
    - libtorrent::aux::create_file
    - libtorrent::aux::get_filesize
    - oversized_file
    - file_path
    - symlink
    - file_size
    - libtorrent::aux::file_flags
    - libtorrent::aux::file
    - pad_file_at
    - libtorrent::aux::end_index
    - ec::clear
    - file_range
    - create_link
    - TORRENT_UNUSED
    - lexically_relative
    linkageType: ''
    returnType: void
    signature: "void initialize_storage(file_storage const& fs\n\t\t, std::string
      const& save_path\n\t\t, stat_cache& sc\n\t\t, aux::vector<download_priority_t,
      file_index_t> const& file_priority\n\t\t, std::function<void(file_index_t, storage_error&)>
      create_file\n\t\t, std::function<void(std::string const&, std::string const&,
      storage_error&)> create_link\n\t\t, std::function<void(file_index_t, std::int64_t)>
      oversized_file\n\t\t, storage_error& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:704,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:704,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:707,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:707,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: ::readlink
      Src: /src/libtorrent/src/storage_utils.cpp:720,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:720,1
    - Dst: string_view
      Src: /src/libtorrent/src/storage_utils.cpp:721,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/storage_utils.cpp:721,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:723,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:723,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:730,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:730,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:736,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:737,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ' target'
    - ' link'
    - ' ec'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 740
    functionName: libtorrent::aux::create_symlink
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - create_directories
    - c_str
    - error_code
    - parent_path
    - libtorrent::file_storage::symlink
    - generic_category
    - string_view
    - std::size_t
    - ::readlink
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void create_symlink(std::string const& target, std::string const& link,
      storage_error& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:744,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:747,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:754,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:756,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:756,1
    - Dst: rename
      Src: /src/libtorrent/src/storage_utils.cpp:764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 767
    functionName: libtorrent::aux::move_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 3
    functionsReached:
    - rename
    - create_directories
    - parent_path
    - stat_file
    - has_parent_path
    - ec::clear
    linkageType: ''
    returnType: void
    signature: void move_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:66,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:67,1
    - Dst: end_piece
      Src: /src/libtorrent/src/storage_utils.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:68,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:71,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: piece_length
      Src: /src/libtorrent/src/storage_utils.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:73,1
    - Dst: total_size
      Src: /src/libtorrent/src/storage_utils.cpp:73,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: piece_length
      Src: /src/libtorrent/src/storage_utils.cpp:76,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/storage_utils.cpp:77,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:78,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:79,1
    - Dst: file_offset
      Src: /src/libtorrent/src/storage_utils.cpp:80,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:84,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:89,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:90,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:101,1
    - Dst: end_file
      Src: /src/libtorrent/src/storage_utils.cpp:101,1
    - Dst: end_file
      Src: /src/libtorrent/src/storage_utils.cpp:105,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:109,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:111,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:112,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:113,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:114,1
    - Dst: op
      Src: /src/libtorrent/src/storage_utils.cpp:117,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/storage_utils.cpp:118,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:119,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:122,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/storage_utils.cpp:126,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 6
    argNames:
    - ' files'
    - buf
    - piece
    - offset
    - ' ec'
    - op
    argTypes:
    - file_storage
    - span<char>
    - piece_index_t
    - int
    - storage_error
    - fileop
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::readwrite
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - total_size
    - span<char>::first
    - file_offset
    - file_index_at_offset
    - piece_index_t
    - TORRENT_ASSERT
    - piece_length
    - static_cast<std::int64_t>
    - std::int64_t
    - file_size
    - libtorrent::aux::max
    - end_file
    - libtorrent::aux::file
    - span<char>::subspan
    - span<char>::size
    - op
    - end_piece
    linkageType: ''
    returnType: int
    signature: "int readwrite(file_storage const& files, span<char> buf\n\t\t, piece_index_t
      const piece, const int offset\n\t\t, storage_error& ec, fileop op)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/libtorrent/src/storage_utils.cpp:150,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:157,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:161,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:164,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:166,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:166,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:170,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:181,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/storage_utils.cpp:184,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:185,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:189,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:189,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:197,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/storage_utils.cpp:211,1
    - Dst: num_files
      Src: /src/libtorrent/src/storage_utils.cpp:211,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:215,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:218,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:220,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:220,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:221,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:221,1
    - Dst: exists
      Src: /src/libtorrent/src/storage_utils.cpp:224,1
    - Dst: libtorrent::aux::move_file
      Src: /src/libtorrent/src/storage_utils.cpp:233,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:238,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:246,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/storage_utils.cpp:247,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:253,1
    - Dst: move_partfile
      Src: /src/libtorrent/src/storage_utils.cpp:262,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:266,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:274,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:277,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:283,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:283,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:284,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:284,1
    - Dst: libtorrent::aux::move_file
      Src: /src/libtorrent/src/storage_utils.cpp:288,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:301,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:304,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:306,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:306,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:307,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:313,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:313,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:319,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:325,1
    - Dst: path_equal
      Src: /src/libtorrent/src/storage_utils.cpp:327,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:329,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:330,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 92
    argCount: 6
    argNames:
    - ' f'
    - save_path
    - ' destination_save_path'
    - ' move_partfile'
    - flags
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - std::string
    - std::function<void(std::string const&, error_code&)>
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 335
    functionName: libtorrent::aux::move_storage
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - parent_path
    - error_code::clear
    - libtorrent::aux::file
    - create_directories
    - file_path
    - has_parent_path
    - std::size_t
    - remove
    - file_absolute_path
    - file_index_t
    - file_range
    - num_files
    - path_equal
    - stat_file
    - move_partfile
    - combine_path
    - exists
    - ec::clear
    - libtorrent::aux::move_file
    - libtorrent::aux::copy_file
    - std::set::insert
    - complete
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> move_storage(file_storage const&
      f\n\t\t, std::string save_path\n\t\t, std::string const& destination_save_path\n\t\t,
      std::function<void(std::string const&, error_code&)> const& move_partfile\n\t\t,
      move_flags_t const flags, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:341,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::delete_one_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 3
    functionsReached:
    - remove
    - libtorrent::aux::clear
    linkageType: ''
    returnType: void
    signature: void delete_one_file(std::string const& p, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:341,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::delete_one_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 3
    functionsReached:
    - remove
    - libtorrent::aux::clear
    linkageType: ''
    returnType: void
    signature: void delete_one_file(std::string const& p, error_code& ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:357,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:359,1
    - Dst: file_absolute_path
      Src: /src/libtorrent/src/storage_utils.cpp:360,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:361,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:364,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/storage_utils.cpp:367,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/storage_utils.cpp:369,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:369,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:370,1
    - Dst: libtorrent::aux::delete_one_file
      Src: /src/libtorrent/src/storage_utils.cpp:373,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:374,1
    - Dst: std::set::rbegin
      Src: /src/libtorrent/src/storage_utils.cpp:380,1
    - Dst: std::set::rend
      Src: /src/libtorrent/src/storage_utils.cpp:381,1
    - Dst: libtorrent::aux::delete_one_file
      Src: /src/libtorrent/src/storage_utils.cpp:384,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:387,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:387,1
    - Dst: remove
      Src: /src/libtorrent/src/storage_utils.cpp:399,1
    - Dst: combine_path
      Src: /src/libtorrent/src/storage_utils.cpp:399,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:402,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/storage_utils.cpp:402,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 5
    argNames:
    - ' fs'
    - ' save_path'
    - ' part_file_name'
    - options
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - std::string
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 407
    functionName: libtorrent::aux::delete_files
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::delete_one_file
    - std::set::rend
    - combine_path
    - parent_path
    - std::string::empty
    - file_path
    - libtorrent::aux::file
    - remove
    - file_absolute_path
    - file_index_t
    - file_range
    - std::set::insert
    - std::set::rbegin
    linkageType: ''
    returnType: void
    signature: "void delete_files(file_storage const& fs, std::string const& save_path\n\t\t,
      std::string const& part_file_name, remove_flags_t const options, storage_error&
      ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:415,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:421,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' stat'
    - file_index
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - stat_cache
    - file_index_t
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: libtorrent::aux::get_filesize
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 16
    functionsReached:
    - libtorrent::aux::file
    - libtorrent::aux::get_filesize
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t get_filesize(stat_cache& stat, file_index_t const file_index\n\t,
      file_storage const& fs, std::string const& save_path, storage_error& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:415,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:421,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' stat'
    - file_index
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - stat_cache
    - file_index_t
    - file_storage
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: libtorrent::aux::get_filesize
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 17
    functionsReached:
    - libtorrent::aux::file
    - libtorrent::aux::get_filesize
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t get_filesize(stat_cache& stat, file_index_t const file_index\n\t,
      file_storage const& fs, std::string const& save_path, storage_error& ec)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:444,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/storage_utils.cpp:447,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: num_files
      Src: /src/libtorrent/src/storage_utils.cpp:449,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:457,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/storage_utils.cpp:460,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:463,1
    - Dst: hard_link
      Src: /src/libtorrent/src/storage_utils.cpp:464,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:470,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:470,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:474,1
    - Dst: hard_link
      Src: /src/libtorrent/src/storage_utils.cpp:479,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:492,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/storage_utils.cpp:497,1
    - Dst: have_pieces::size
      Src: /src/libtorrent/src/storage_utils.cpp:502,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/storage_utils.cpp:502,1
    - Dst: have_pieces::all_set
      Src: /src/libtorrent/src/storage_utils.cpp:503,1
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:508,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:510,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:515,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:520,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:524,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:527,1
    - Dst: std::min
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: have_pieces::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: end_piece
      Src: /src/libtorrent/src/storage_utils.cpp:546,1
    - Dst: have_pieces::get_bit
      Src: /src/libtorrent/src/storage_utils.cpp:549,1
    - Dst: map_block
      Src: /src/libtorrent/src/storage_utils.cpp:551,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/storage_utils.cpp:552,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/storage_utils.cpp:552,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:559,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:563,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:565,1
    - Dst: map_file
      Src: /src/libtorrent/src/storage_utils.cpp:571,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:572,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/storage_utils.cpp:573,1
    - Dst: libtorrent::aux::next
      Src: /src/libtorrent/src/storage_utils.cpp:573,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 59
    argCount: 7
    argNames:
    - ' rd'
    - ' links'
    - ' fs'
    - ' file_priority'
    - ' stat'
    - ' save_path'
    - ' ec'
    argTypes:
    - add_torrent_params
    - aux::vector<std::string, file_index_t>
    - file_storage
    - aux::vector<download_priority_t, file_index_t>
    - stat_cache
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 576
    functionName: libtorrent::aux::verify_resume_data
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - have_pieces::end_index
    - libtorrent::aux::next
    - parent_path
    - std::min
    - file_size
    - libtorrent::aux::file
    - pad_file_at
    - hard_link
    - create_directories
    - have_pieces::all_set
    - file_path
    - num_pieces
    - file_range
    - map_file
    - num_files
    - libtorrent::aux::get_filesize
    - libtorrent::aux::size
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::aux::end_index
    - TORRENT_UNUSED
    - libtorrent::aux::empty
    - set_dirty
    - std::vector::empty
    - have_pieces::get_bit
    - have_pieces::size
    - map_block
    - end_piece
    linkageType: ''
    returnType: bool
    signature: "bool verify_resume_data(add_torrent_params const& rd\n\t\t, aux::vector<std::string,
      file_index_t> const& links\n\t\t, file_storage const& fs\n\t\t, aux::vector<download_priority_t,
      file_index_t> const& file_priority\n\t\t, stat_cache& stat\n\t\t, std::string
      const& save_path\n\t\t, storage_error& ec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:584,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:586,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:593,1
    - Dst: libtorrent::aux::clear
      Src: /src/libtorrent/src/storage_utils.cpp:595,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - ' fs'
    - ' save_path'
    - ' cache'
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - stat_cache
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 605
    functionName: libtorrent::aux::has_any_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::get_filesize
    - ec::clear
    - libtorrent::aux::file
    - file_range
    - libtorrent::aux::clear
    linkageType: ''
    returnType: bool
    signature: "bool has_any_file(\n\t\tfile_storage const& fs\n\t\t, std::string
      const& save_path\n\t\t, stat_cache& cache\n\t\t, storage_error& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/storage_utils.cpp:609,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/storage_utils.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: libtorrent::aux::read_zeroes
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - std::fill
    - span<char>::end
    - span<char>::size
    - span<char>::begin
    linkageType: ''
    returnType: int
    signature: int read_zeroes(span<char> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::fill
      Src: /src/libtorrent/src/storage_utils.cpp:616,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/storage_utils.cpp:617,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/storage_utils.cpp:617,1
    - Dst: libtorrent::aux::update
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::min
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    - Dst: std::array::size
      Src: /src/libtorrent/src/storage_utils.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ph'
    - size
    argTypes:
    - hasher
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: libtorrent::aux::hash_zeroes
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - std::array::size
    - std::array::data
    - std::array::fill
    - std::min
    - libtorrent::aux::update
    - std::ptrdiff_t
    linkageType: ''
    returnType: int
    signature: int hash_zeroes(hasher& ph, std::int64_t const size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/storage_utils.cpp:632,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/src/storage_utils.cpp:635,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/storage_utils.cpp:642,1
    - Dst: libtorrent::aux::get_filesize
      Src: /src/libtorrent/src/storage_utils.cpp:646,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:650,1
    - Dst: file_size
      Src: /src/libtorrent/src/storage_utils.cpp:656,1
    - Dst: oversized_file
      Src: /src/libtorrent/src/storage_utils.cpp:660,1
    - Dst: libtorrent::aux::file_flags
      Src: /src/libtorrent/src/storage_utils.cpp:670,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:673,1
    - Dst: lexically_relative
      Src: /src/libtorrent/src/storage_utils.cpp:675,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: file_path
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: symlink
      Src: /src/libtorrent/src/storage_utils.cpp:676,1
    - Dst: create_link
      Src: /src/libtorrent/src/storage_utils.cpp:677,1
    - Dst: libtorrent::aux::file
      Src: /src/libtorrent/src/storage_utils.cpp:680,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:684,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:692,1
    - Dst: libtorrent::aux::create_file
      Src: /src/libtorrent/src/storage_utils.cpp:693,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:697,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 8
    argNames:
    - ' fs'
    - ' save_path'
    - ' sc'
    - ' file_priority'
    - create_file
    - create_link
    - oversized_file
    - ' ec'
    argTypes:
    - file_storage
    - std::string
    - stat_cache
    - aux::vector<download_priority_t, file_index_t>
    - std::function<void(file_index_t, storage_error&)>
    - std::function<void(std::string const&, std::string const&, storage_error&)>
    - std::function<void(file_index_t, std::int64_t)>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 699
    functionName: libtorrent::aux::initialize_storage
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 2
    functionsReached:
    - parent_path
    - libtorrent::aux::create_file
    - libtorrent::aux::get_filesize
    - oversized_file
    - file_path
    - symlink
    - file_size
    - libtorrent::aux::file_flags
    - libtorrent::aux::file
    - pad_file_at
    - libtorrent::aux::end_index
    - ec::clear
    - file_range
    - create_link
    - TORRENT_UNUSED
    - lexically_relative
    linkageType: ''
    returnType: void
    signature: "void initialize_storage(file_storage const& fs\n\t\t, std::string
      const& save_path\n\t\t, stat_cache& sc\n\t\t, aux::vector<download_priority_t,
      file_index_t> const& file_priority\n\t\t, std::function<void(file_index_t, storage_error&)>
      create_file\n\t\t, std::function<void(std::string const&, std::string const&,
      storage_error&)> create_link\n\t\t, std::function<void(file_index_t, std::int64_t)>
      oversized_file\n\t\t, storage_error& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:704,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:704,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:707,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:707,1
    - Dst: libtorrent::file_storage::symlink
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:711,1
    - Dst: ::readlink
      Src: /src/libtorrent/src/storage_utils.cpp:720,1
    - Dst: c_str
      Src: /src/libtorrent/src/storage_utils.cpp:720,1
    - Dst: string_view
      Src: /src/libtorrent/src/storage_utils.cpp:721,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/storage_utils.cpp:721,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:723,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:723,1
    - Dst: error_code
      Src: /src/libtorrent/src/storage_utils.cpp:730,1
    - Dst: generic_category
      Src: /src/libtorrent/src/storage_utils.cpp:730,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:736,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:737,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/storage_utils.cpp:738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ' target'
    - ' link'
    - ' ec'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 740
    functionName: libtorrent::aux::create_symlink
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 0
    functionsReached:
    - create_directories
    - c_str
    - error_code
    - parent_path
    - libtorrent::file_storage::symlink
    - generic_category
    - string_view
    - std::size_t
    - ::readlink
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void create_symlink(std::string const& target, std::string const& link,
      storage_error& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ec::clear
      Src: /src/libtorrent/src/storage_utils.cpp:744,1
    - Dst: stat_file
      Src: /src/libtorrent/src/storage_utils.cpp:747,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:754,1
    - Dst: create_directories
      Src: /src/libtorrent/src/storage_utils.cpp:756,1
    - Dst: parent_path
      Src: /src/libtorrent/src/storage_utils.cpp:756,1
    - Dst: rename
      Src: /src/libtorrent/src/storage_utils.cpp:764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' se'
    argTypes:
    - std::string
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 767
    functionName: libtorrent::aux::move_file
    functionSourceFile: /src/libtorrent/src/storage_utils.cpp
    functionUses: 4
    functionsReached:
    - rename
    - create_directories
    - parent_path
    - stat_file
    - has_parent_path
    - ec::clear
    linkageType: ''
    returnType: void
    signature: void move_file(std::string const& inf, std::string const& newf, storage_error&
      se)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - source_bitmask
    argTypes:
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: libtorrent::source_rank
    functionSourceFile: /src/libtorrent/src/request_blocks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int source_rank(peer_source_flags_t const source_bitmask)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/src/request_blocks.cpp:66,1
    - Dst: libtorrent::no_download
      Src: /src/libtorrent/src/request_blocks.cpp:67,1
    - Dst: libtorrent::upload_mode
      Src: /src/libtorrent/src/request_blocks.cpp:68,1
    - Dst: libtorrent::is_disconnecting
      Src: /src/libtorrent/src/request_blocks.cpp:69,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/request_blocks.cpp:72,1
    - Dst: are_files_checked
      Src: /src/libtorrent/src/request_blocks.cpp:76,1
    - Dst: libtorrent::graceful_pause
      Src: /src/libtorrent/src/request_blocks.cpp:79,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:81,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/request_blocks.cpp:81,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/request_blocks.cpp:82,1
    - Dst: num_time_critical_pieces
      Src: /src/libtorrent/src/request_blocks.cpp:84,1
    - Dst: libtorrent::desired_queue_size
      Src: /src/libtorrent/src/request_blocks.cpp:88,1
    - Dst: libtorrent::download_queue
      Src: /src/libtorrent/src/request_blocks.cpp:91,1
    - Dst: request_queue
      Src: /src/libtorrent/src/request_blocks.cpp:92,1
    - Dst: should_log
      Src: /src/libtorrent/src/request_blocks.cpp:95,1
    - Dst: peer_log
      Src: /src/libtorrent/src/request_blocks.cpp:97,1
    - Dst: libtorrent::download_queue
      Src: /src/libtorrent/src/request_blocks.cpp:99,1
    - Dst: request_queue
      Src: /src/libtorrent/src/request_blocks.cpp:99,1
    - Dst: libtorrent::endgame
      Src: /src/libtorrent/src/request_blocks.cpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:103,1
    - Dst: need_picker
      Src: /src/libtorrent/src/request_blocks.cpp:108,1
    - Dst: picker
      Src: /src/libtorrent/src/request_blocks.cpp:110,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/request_blocks.cpp:112,1
    - Dst: libtorrent::prefer_contiguous_blocks
      Src: /src/libtorrent/src/request_blocks.cpp:114,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/request_blocks.cpp:118,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/request_blocks.cpp:130,1
    - Dst: libtorrent::statistics
      Src: /src/libtorrent/src/request_blocks.cpp:130,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/request_blocks.cpp:131,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/request_blocks.cpp:133,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/request_blocks.cpp:135,1
    - Dst: libtorrent::block_size
      Src: /src/libtorrent/src/request_blocks.cpp:135,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/request_blocks.cpp:145,1
    - Dst: libtorrent::download_queue
      Src: /src/libtorrent/src/request_blocks.cpp:147,1
    - Dst: request_queue
      Src: /src/libtorrent/src/request_blocks.cpp:148,1
    - Dst: libtorrent::suggested_pieces
      Src: /src/libtorrent/src/request_blocks.cpp:150,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/request_blocks.cpp:151,1
    - Dst: libtorrent::has_peer_choked
      Src: /src/libtorrent/src/request_blocks.cpp:154,1
    - Dst: typed_bitfield::resize
      Src: /src/libtorrent/src/request_blocks.cpp:161,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/request_blocks.cpp:161,1
    - Dst: allowed_fast
      Src: /src/libtorrent/src/request_blocks.cpp:162,1
    - Dst: typed_bitfield::set_bit
      Src: /src/libtorrent/src/request_blocks.cpp:164,1
    - Dst: pick_pieces
      Src: /src/libtorrent/src/request_blocks.cpp:177,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/request_blocks.cpp:178,1
    - Dst: libtorrent::picker_options
      Src: /src/libtorrent/src/request_blocks.cpp:179,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:179,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/request_blocks.cpp:180,1
    - Dst: alerts
      Src: /src/libtorrent/src/request_blocks.cpp:183,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/request_blocks.cpp:184,1
    - Dst: alerts
      Src: /src/libtorrent/src/request_blocks.cpp:186,1
    - Dst: get_handle
      Src: /src/libtorrent/src/request_blocks.cpp:186,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/request_blocks.cpp:186,1
    - Dst: libtorrent::pid
      Src: /src/libtorrent/src/request_blocks.cpp:187,1
    - Dst: peer_log
      Src: /src/libtorrent/src/request_blocks.cpp:189,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/request_blocks.cpp:191,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/request_blocks.cpp:193,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/request_blocks.cpp:204,1
    - Dst: get_download_queue_size
      Src: /src/libtorrent/src/request_blocks.cpp:205,1
    - Dst: libtorrent::num_want_left
      Src: /src/libtorrent/src/request_blocks.cpp:205,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/request_blocks.cpp:206,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/request_blocks.cpp:206,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:216,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:227,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:232,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:232,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/request_blocks.cpp:243,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/request_blocks.cpp:243,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:243,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/request_blocks.cpp:243,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:244,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:244,1
    - Dst: peer_log
      Src: /src/libtorrent/src/request_blocks.cpp:247,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/request_blocks.cpp:249,1
    - Dst: add_request
      Src: /src/libtorrent/src/request_blocks.cpp:257,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:258,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:258,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:259,1
    - Dst: is_requested
      Src: /src/libtorrent/src/request_blocks.cpp:259,1
    - Dst: set_endgame
      Src: /src/libtorrent/src/request_blocks.cpp:270,1
    - Dst: libtorrent::has_peer_choked
      Src: /src/libtorrent/src/request_blocks.cpp:280,1
    - Dst: set_endgame
      Src: /src/libtorrent/src/request_blocks.cpp:281,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/request_blocks.cpp:287,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/request_blocks.cpp:287,1
    - Dst: piece_info
      Src: /src/libtorrent/src/request_blocks.cpp:294,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:295,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/request_blocks.cpp:296,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:298,1
    - Dst: is_requested
      Src: /src/libtorrent/src/request_blocks.cpp:298,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:299,1
    - Dst: is_downloaded
      Src: /src/libtorrent/src/request_blocks.cpp:299,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:300,1
    - Dst: libtorrent::is_finished
      Src: /src/libtorrent/src/request_blocks.cpp:300,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:301,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:301,1
    - Dst: add_request
      Src: /src/libtorrent/src/request_blocks.cpp:303,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 80
    argCount: 2
    argNames:
    - ' t'
    - ' c'
    argTypes:
    - torrent
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 305
    functionName: libtorrent::request_a_block
    functionSourceFile: /src/libtorrent/src/request_blocks.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::type
    - std::vector::size
    - allowed_fast
    - valid_metadata
    - num_time_critical_pieces
    - std::vector::reserve
    - libtorrent::num_want_left
    - libtorrent::has_peer_choked
    - typed_bitfield::set_bit
    - get_handle
    - get_bitfield
    - libtorrent::is_disconnecting
    - libtorrent::stats_counters
    - alerts
    - add_request
    - typed_bitfield::resize
    - set_endgame
    - libtorrent::statistics
    - libtorrent::num_peers
    - libtorrent::prefer_contiguous_blocks
    - blocks_in_piece
    - libtorrent::end
    - piece_info
    - libtorrent::remote
    - libtorrent::aux::has_block
    - libtorrent::suggested_pieces
    - libtorrent::block_size
    - libtorrent::picker_options
    - is_downloaded
    - should_log
    - libtorrent::min
    - libtorrent::no_download
    - libtorrent::graceful_pause
    - pick_pieces
    - libtorrent::desired_queue_size
    - libtorrent::size
    - libtorrent::download_queue
    - picker
    - TORRENT_ASSERT
    - libtorrent::upload_mode
    - request_queue
    - is_seed
    - libtorrent::settings
    - libtorrent::begin
    - need_picker
    - is_requested
    - torrent_file
    - TORRENT_UNUSED
    - get_download_queue_size
    - std::find_if
    - std::vector::empty
    - libtorrent::pid
    - libtorrent::session
    - are_files_checked
    - libtorrent::peer_info_struct
    - libtorrent::is_finished
    - libtorrent::endgame
    - peer_log
    linkageType: ''
    returnType: bool
    signature: bool request_a_block(torrent& t, peer_connection& c)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - source_bitmask
    argTypes:
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: libtorrent::source_rank
    functionSourceFile: /src/libtorrent/src/request_blocks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int source_rank(peer_source_flags_t const source_bitmask)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/src/request_blocks.cpp:66,1
    - Dst: libtorrent::no_download
      Src: /src/libtorrent/src/request_blocks.cpp:67,1
    - Dst: libtorrent::upload_mode
      Src: /src/libtorrent/src/request_blocks.cpp:68,1
    - Dst: libtorrent::is_disconnecting
      Src: /src/libtorrent/src/request_blocks.cpp:69,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/request_blocks.cpp:72,1
    - Dst: are_files_checked
      Src: /src/libtorrent/src/request_blocks.cpp:76,1
    - Dst: libtorrent::graceful_pause
      Src: /src/libtorrent/src/request_blocks.cpp:79,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:81,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/request_blocks.cpp:81,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/request_blocks.cpp:82,1
    - Dst: num_time_critical_pieces
      Src: /src/libtorrent/src/request_blocks.cpp:84,1
    - Dst: libtorrent::desired_queue_size
      Src: /src/libtorrent/src/request_blocks.cpp:88,1
    - Dst: libtorrent::download_queue
      Src: /src/libtorrent/src/request_blocks.cpp:91,1
    - Dst: request_queue
      Src: /src/libtorrent/src/request_blocks.cpp:92,1
    - Dst: should_log
      Src: /src/libtorrent/src/request_blocks.cpp:95,1
    - Dst: peer_log
      Src: /src/libtorrent/src/request_blocks.cpp:97,1
    - Dst: libtorrent::download_queue
      Src: /src/libtorrent/src/request_blocks.cpp:99,1
    - Dst: request_queue
      Src: /src/libtorrent/src/request_blocks.cpp:99,1
    - Dst: libtorrent::endgame
      Src: /src/libtorrent/src/request_blocks.cpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:103,1
    - Dst: need_picker
      Src: /src/libtorrent/src/request_blocks.cpp:108,1
    - Dst: picker
      Src: /src/libtorrent/src/request_blocks.cpp:110,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/request_blocks.cpp:112,1
    - Dst: libtorrent::prefer_contiguous_blocks
      Src: /src/libtorrent/src/request_blocks.cpp:114,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/request_blocks.cpp:118,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/request_blocks.cpp:130,1
    - Dst: libtorrent::statistics
      Src: /src/libtorrent/src/request_blocks.cpp:130,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/request_blocks.cpp:131,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/request_blocks.cpp:133,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/request_blocks.cpp:135,1
    - Dst: libtorrent::block_size
      Src: /src/libtorrent/src/request_blocks.cpp:135,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/request_blocks.cpp:145,1
    - Dst: libtorrent::download_queue
      Src: /src/libtorrent/src/request_blocks.cpp:147,1
    - Dst: request_queue
      Src: /src/libtorrent/src/request_blocks.cpp:148,1
    - Dst: libtorrent::suggested_pieces
      Src: /src/libtorrent/src/request_blocks.cpp:150,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/request_blocks.cpp:151,1
    - Dst: libtorrent::has_peer_choked
      Src: /src/libtorrent/src/request_blocks.cpp:154,1
    - Dst: typed_bitfield::resize
      Src: /src/libtorrent/src/request_blocks.cpp:161,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/request_blocks.cpp:161,1
    - Dst: allowed_fast
      Src: /src/libtorrent/src/request_blocks.cpp:162,1
    - Dst: typed_bitfield::set_bit
      Src: /src/libtorrent/src/request_blocks.cpp:164,1
    - Dst: pick_pieces
      Src: /src/libtorrent/src/request_blocks.cpp:177,1
    - Dst: libtorrent::peer_info_struct
      Src: /src/libtorrent/src/request_blocks.cpp:178,1
    - Dst: libtorrent::picker_options
      Src: /src/libtorrent/src/request_blocks.cpp:179,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:179,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/request_blocks.cpp:180,1
    - Dst: alerts
      Src: /src/libtorrent/src/request_blocks.cpp:183,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/request_blocks.cpp:184,1
    - Dst: alerts
      Src: /src/libtorrent/src/request_blocks.cpp:186,1
    - Dst: get_handle
      Src: /src/libtorrent/src/request_blocks.cpp:186,1
    - Dst: libtorrent::remote
      Src: /src/libtorrent/src/request_blocks.cpp:186,1
    - Dst: libtorrent::pid
      Src: /src/libtorrent/src/request_blocks.cpp:187,1
    - Dst: peer_log
      Src: /src/libtorrent/src/request_blocks.cpp:189,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/request_blocks.cpp:191,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/request_blocks.cpp:193,1
    - Dst: libtorrent::settings
      Src: /src/libtorrent/src/request_blocks.cpp:204,1
    - Dst: get_download_queue_size
      Src: /src/libtorrent/src/request_blocks.cpp:205,1
    - Dst: libtorrent::num_want_left
      Src: /src/libtorrent/src/request_blocks.cpp:205,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/request_blocks.cpp:206,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/request_blocks.cpp:206,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:216,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:227,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:232,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:232,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:239,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:240,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/request_blocks.cpp:243,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/request_blocks.cpp:243,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:243,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/request_blocks.cpp:243,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/request_blocks.cpp:244,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:244,1
    - Dst: peer_log
      Src: /src/libtorrent/src/request_blocks.cpp:247,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/request_blocks.cpp:249,1
    - Dst: add_request
      Src: /src/libtorrent/src/request_blocks.cpp:257,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:258,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:258,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:259,1
    - Dst: is_requested
      Src: /src/libtorrent/src/request_blocks.cpp:259,1
    - Dst: set_endgame
      Src: /src/libtorrent/src/request_blocks.cpp:270,1
    - Dst: libtorrent::has_peer_choked
      Src: /src/libtorrent/src/request_blocks.cpp:280,1
    - Dst: set_endgame
      Src: /src/libtorrent/src/request_blocks.cpp:281,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/request_blocks.cpp:287,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/request_blocks.cpp:287,1
    - Dst: piece_info
      Src: /src/libtorrent/src/request_blocks.cpp:294,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:295,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/request_blocks.cpp:296,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:298,1
    - Dst: is_requested
      Src: /src/libtorrent/src/request_blocks.cpp:298,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:299,1
    - Dst: is_downloaded
      Src: /src/libtorrent/src/request_blocks.cpp:299,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:300,1
    - Dst: libtorrent::is_finished
      Src: /src/libtorrent/src/request_blocks.cpp:300,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/request_blocks.cpp:301,1
    - Dst: libtorrent::num_peers
      Src: /src/libtorrent/src/request_blocks.cpp:301,1
    - Dst: add_request
      Src: /src/libtorrent/src/request_blocks.cpp:303,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 80
    argCount: 2
    argNames:
    - ' t'
    - ' c'
    argTypes:
    - torrent
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 305
    functionName: libtorrent::request_a_block
    functionSourceFile: /src/libtorrent/src/request_blocks.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::type
    - std::vector::size
    - allowed_fast
    - valid_metadata
    - num_time_critical_pieces
    - std::vector::reserve
    - libtorrent::num_want_left
    - libtorrent::has_peer_choked
    - typed_bitfield::set_bit
    - get_handle
    - get_bitfield
    - libtorrent::is_disconnecting
    - libtorrent::stats_counters
    - alerts
    - add_request
    - typed_bitfield::resize
    - set_endgame
    - libtorrent::statistics
    - libtorrent::num_peers
    - libtorrent::prefer_contiguous_blocks
    - blocks_in_piece
    - libtorrent::end
    - piece_info
    - libtorrent::remote
    - libtorrent::aux::has_block
    - libtorrent::suggested_pieces
    - libtorrent::block_size
    - libtorrent::picker_options
    - is_downloaded
    - should_log
    - libtorrent::min
    - libtorrent::no_download
    - libtorrent::graceful_pause
    - pick_pieces
    - libtorrent::desired_queue_size
    - libtorrent::size
    - libtorrent::download_queue
    - picker
    - TORRENT_ASSERT
    - libtorrent::upload_mode
    - request_queue
    - is_seed
    - libtorrent::settings
    - libtorrent::begin
    - need_picker
    - is_requested
    - torrent_file
    - TORRENT_UNUSED
    - get_download_queue_size
    - std::find_if
    - std::vector::empty
    - libtorrent::pid
    - libtorrent::session
    - are_files_checked
    - libtorrent::peer_info_struct
    - libtorrent::is_finished
    - libtorrent::endgame
    - peer_log
    linkageType: ''
    returnType: bool
    signature: bool request_a_block(torrent& t, peer_connection& c)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/instantiate_connection.cpp:53,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:61,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: utp_socket_manager*::new_utp_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:63,1
    - Dst: utp_stream::set_impl
      Src: /src/libtorrent/src/instantiate_connection.cpp:69,1
    - Dst: utp_socket_manager*::new_utp_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:69,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/instantiate_connection.cpp:77,1
    - Dst: i2p_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:79,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:80,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:80,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: ssl_stream<tcp::socket>
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:95,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:95,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:104,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:105,1
    - Dst: http_stream*::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:106,1
    - Dst: http_stream*::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:108,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:109,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:109,1
    - Dst: http_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:115,1
    - Dst: http_stream::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:117,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:118,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:118,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:129,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:130,1
    - Dst: socks5_stream*::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:131,1
    - Dst: socks5_stream*::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:133,1
    - Dst: socks5_stream*::set_version
      Src: /src/libtorrent/src/instantiate_connection.cpp:135,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:136,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:136,1
    - Dst: socks5_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:142,1
    - Dst: socks5_stream::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:144,1
    - Dst: socks5_stream::set_version
      Src: /src/libtorrent/src/instantiate_connection.cpp:146,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:147,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:147,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/instantiate_connection.cpp:150,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/src/instantiate_connection.cpp:151,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 6
    argNames:
    - ' ios'
    - ' ps'
    - ssl_context
    - sm
    - peer_connection
    - tracker_connection
    argTypes:
    - io_context
    - aux::proxy_settings
    - void*
    - utp_socket_manager*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 152
    functionName: libtorrent::aux::instantiate_connection
    functionSourceFile: /src/libtorrent/src/instantiate_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - http_stream::set_proxy
    - TORRENT_ASSERT_FAIL
    - libtorrent::broadcast_socket::broadcast_socket
    - std::runtime_error
    - socket_type
    - socks5_stream::set_username
    - socks5_stream::set_version
    - ssl_stream<tcp::socket>
    - http_stream*::set_username
    - utp_socket_manager*::new_utp_socket
    - utp_stream::set_impl
    - http_stream*::set_proxy
    - socks5_stream*::set_proxy
    - TORRENT_ASSERT
    - i2p_stream::set_proxy
    - socks5_stream*::set_username
    - TORRENT_UNUSED
    - socks5_stream*::set_version
    - ssl_stream::next_layer
    - socks5_stream::set_proxy
    - http_stream::set_username
    - static_cast<ssl::context*>
    linkageType: ''
    returnType: aux::socket_type
    signature: "aux::socket_type instantiate_connection(io_context& ios\n\t\t, aux::proxy_settings
      const& ps\n\t\t, void* ssl_context\n\t\t, utp_socket_manager* sm\n\t\t, bool
      peer_connection\n\t\t, bool tracker_connection)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/instantiate_connection.cpp:53,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:61,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: utp_socket_manager*::new_utp_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:63,1
    - Dst: utp_stream::set_impl
      Src: /src/libtorrent/src/instantiate_connection.cpp:69,1
    - Dst: utp_socket_manager*::new_utp_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:69,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/instantiate_connection.cpp:77,1
    - Dst: i2p_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:79,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:80,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:80,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: ssl_stream<tcp::socket>
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:95,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:95,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:104,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:105,1
    - Dst: http_stream*::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:106,1
    - Dst: http_stream*::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:108,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:109,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:109,1
    - Dst: http_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:115,1
    - Dst: http_stream::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:117,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:118,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:118,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:129,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:130,1
    - Dst: socks5_stream*::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:131,1
    - Dst: socks5_stream*::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:133,1
    - Dst: socks5_stream*::set_version
      Src: /src/libtorrent/src/instantiate_connection.cpp:135,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:136,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:136,1
    - Dst: socks5_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:142,1
    - Dst: socks5_stream::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:144,1
    - Dst: socks5_stream::set_version
      Src: /src/libtorrent/src/instantiate_connection.cpp:146,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:147,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:147,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/instantiate_connection.cpp:150,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/src/instantiate_connection.cpp:151,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 6
    argNames:
    - ' ios'
    - ' ps'
    - ssl_context
    - sm
    - peer_connection
    - tracker_connection
    argTypes:
    - io_context
    - aux::proxy_settings
    - void*
    - utp_socket_manager*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 152
    functionName: libtorrent::aux::instantiate_connection
    functionSourceFile: /src/libtorrent/src/instantiate_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - http_stream::set_proxy
    - TORRENT_ASSERT_FAIL
    - libtorrent::broadcast_socket::broadcast_socket
    - std::runtime_error
    - socket_type
    - socks5_stream::set_username
    - socks5_stream::set_version
    - ssl_stream<tcp::socket>
    - http_stream*::set_username
    - utp_socket_manager*::new_utp_socket
    - utp_stream::set_impl
    - http_stream*::set_proxy
    - socks5_stream*::set_proxy
    - TORRENT_ASSERT
    - i2p_stream::set_proxy
    - socks5_stream*::set_username
    - TORRENT_UNUSED
    - socks5_stream*::set_version
    - ssl_stream::next_layer
    - socks5_stream::set_proxy
    - http_stream::set_username
    - static_cast<ssl::context*>
    linkageType: ''
    returnType: aux::socket_type
    signature: "aux::socket_type instantiate_connection(io_context& ios\n\t\t, aux::proxy_settings
      const& ps\n\t\t, void* ssl_context\n\t\t, utp_socket_manager* sm\n\t\t, bool
      peer_connection\n\t\t, bool tracker_connection)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/instantiate_connection.cpp:53,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:61,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: utp_socket_manager*::new_utp_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:63,1
    - Dst: utp_stream::set_impl
      Src: /src/libtorrent/src/instantiate_connection.cpp:69,1
    - Dst: utp_socket_manager*::new_utp_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:69,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/instantiate_connection.cpp:77,1
    - Dst: i2p_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:79,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:80,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:80,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: ssl_stream<tcp::socket>
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:95,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:95,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:104,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:105,1
    - Dst: http_stream*::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:106,1
    - Dst: http_stream*::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:108,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:109,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:109,1
    - Dst: http_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:115,1
    - Dst: http_stream::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:117,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:118,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:118,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:129,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:130,1
    - Dst: socks5_stream*::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:131,1
    - Dst: socks5_stream*::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:133,1
    - Dst: socks5_stream*::set_version
      Src: /src/libtorrent/src/instantiate_connection.cpp:135,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:136,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:136,1
    - Dst: socks5_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:142,1
    - Dst: socks5_stream::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:144,1
    - Dst: socks5_stream::set_version
      Src: /src/libtorrent/src/instantiate_connection.cpp:146,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:147,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:147,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/instantiate_connection.cpp:150,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/src/instantiate_connection.cpp:151,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 6
    argNames:
    - ' ios'
    - ' ps'
    - ssl_context
    - sm
    - peer_connection
    - tracker_connection
    argTypes:
    - io_context
    - aux::proxy_settings
    - void*
    - utp_socket_manager*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 152
    functionName: libtorrent::aux::instantiate_connection
    functionSourceFile: /src/libtorrent/src/instantiate_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - http_stream::set_proxy
    - TORRENT_ASSERT_FAIL
    - libtorrent::broadcast_socket::broadcast_socket
    - std::runtime_error
    - socket_type
    - socks5_stream::set_username
    - socks5_stream::set_version
    - ssl_stream<tcp::socket>
    - http_stream*::set_username
    - utp_socket_manager*::new_utp_socket
    - utp_stream::set_impl
    - http_stream*::set_proxy
    - socks5_stream*::set_proxy
    - TORRENT_ASSERT
    - i2p_stream::set_proxy
    - socks5_stream*::set_username
    - TORRENT_UNUSED
    - socks5_stream*::set_version
    - ssl_stream::next_layer
    - socks5_stream::set_proxy
    - http_stream::set_username
    - static_cast<ssl::context*>
    linkageType: ''
    returnType: aux::socket_type
    signature: "aux::socket_type instantiate_connection(io_context& ios\n\t\t, aux::proxy_settings
      const& ps\n\t\t, void* ssl_context\n\t\t, utp_socket_manager* sm\n\t\t, bool
      peer_connection\n\t\t, bool tracker_connection)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/instantiate_connection.cpp:53,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:61,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: utp_socket_manager*::new_utp_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:62,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:63,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:63,1
    - Dst: utp_stream::set_impl
      Src: /src/libtorrent/src/instantiate_connection.cpp:69,1
    - Dst: utp_socket_manager*::new_utp_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:69,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:70,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/instantiate_connection.cpp:77,1
    - Dst: i2p_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:79,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:80,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:80,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: ssl_stream<tcp::socket>
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:90,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:95,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/src/instantiate_connection.cpp:95,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:104,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:105,1
    - Dst: http_stream*::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:106,1
    - Dst: http_stream*::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:108,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:109,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:109,1
    - Dst: http_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:115,1
    - Dst: http_stream::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:117,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:118,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:118,1
    - Dst: static_cast<ssl::context*>
      Src: /src/libtorrent/src/instantiate_connection.cpp:129,1
    - Dst: ssl_stream::next_layer
      Src: /src/libtorrent/src/instantiate_connection.cpp:130,1
    - Dst: socks5_stream*::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:131,1
    - Dst: socks5_stream*::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:133,1
    - Dst: socks5_stream*::set_version
      Src: /src/libtorrent/src/instantiate_connection.cpp:135,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:136,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:136,1
    - Dst: socks5_stream::set_proxy
      Src: /src/libtorrent/src/instantiate_connection.cpp:142,1
    - Dst: socks5_stream::set_username
      Src: /src/libtorrent/src/instantiate_connection.cpp:144,1
    - Dst: socks5_stream::set_version
      Src: /src/libtorrent/src/instantiate_connection.cpp:146,1
    - Dst: socket_type
      Src: /src/libtorrent/src/instantiate_connection.cpp:147,1
    - Dst: std::move
      Src: /src/libtorrent/src/instantiate_connection.cpp:147,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/instantiate_connection.cpp:150,1
    - Dst: std::runtime_error
      Src: /src/libtorrent/src/instantiate_connection.cpp:151,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 6
    argNames:
    - ' ios'
    - ' ps'
    - ssl_context
    - sm
    - peer_connection
    - tracker_connection
    argTypes:
    - io_context
    - aux::proxy_settings
    - void*
    - utp_socket_manager*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 152
    functionName: libtorrent::aux::instantiate_connection
    functionSourceFile: /src/libtorrent/src/instantiate_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - http_stream::set_proxy
    - TORRENT_ASSERT_FAIL
    - libtorrent::broadcast_socket::broadcast_socket
    - std::runtime_error
    - socket_type
    - socks5_stream::set_username
    - socks5_stream::set_version
    - ssl_stream<tcp::socket>
    - http_stream*::set_username
    - utp_socket_manager*::new_utp_socket
    - utp_stream::set_impl
    - http_stream*::set_proxy
    - socks5_stream*::set_proxy
    - TORRENT_ASSERT
    - i2p_stream::set_proxy
    - socks5_stream*::set_username
    - TORRENT_UNUSED
    - socks5_stream*::set_version
    - ssl_stream::next_layer
    - socks5_stream::set_proxy
    - http_stream::set_username
    - static_cast<ssl::context*>
    linkageType: ''
    returnType: aux::socket_type
    signature: "aux::socket_type instantiate_connection(io_context& ios\n\t\t, aux::proxy_settings
      const& ps\n\t\t, void* ssl_context\n\t\t, utp_socket_manager* sm\n\t\t, bool
      peer_connection\n\t\t, bool tracker_connection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: libtorrent::i2p_category
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & i2p_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2p_category
      Src: /src/libtorrent/src/i2p_stream.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - i2p_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: libtorrent::i2p_error::make_error_code
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached:
    - i2p_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(i2p_error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2p_category
      Src: /src/libtorrent/src/i2p_stream.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - i2p_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: libtorrent::i2p_error::make_error_code
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached:
    - i2p_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(i2p_error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: libtorrent::i2p_connection::i2p_connection
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_connection::i2p_connection(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: i2p_connection::~i2p_connection()
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_connection::~i2p_connection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::i2p_connection::close
      Src: /src/libtorrent/src/i2p_stream.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: libtorrent::i2p_connection::close
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::i2p_connection::close
    linkageType: ''
    returnType: void
    signature: void i2p_connection::close(error_code& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/i2p_stream.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: libtorrent::i2p_connection::proxy
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    linkageType: ''
    returnType: aux::proxy_settings
    signature: aux::proxy_settings i2p_connection::proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::i2p_stream::i2p_stream
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_stream::i2p_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: libtorrent::i2p_category
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & i2p_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2p_category
      Src: /src/libtorrent/src/i2p_stream.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - i2p_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: libtorrent::i2p_error::make_error_code
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached:
    - i2p_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(i2p_error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2p_category
      Src: /src/libtorrent/src/i2p_stream.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - i2p_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: libtorrent::i2p_error::make_error_code
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached:
    - i2p_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(i2p_error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: libtorrent::i2p_connection::i2p_connection
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_connection::i2p_connection(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: i2p_connection::~i2p_connection()
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_connection::~i2p_connection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::i2p_connection::close
      Src: /src/libtorrent/src/i2p_stream.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: libtorrent::i2p_connection::close
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::i2p_connection::close
    linkageType: ''
    returnType: void
    signature: void i2p_connection::close(error_code& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/i2p_stream.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: libtorrent::i2p_connection::proxy
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    linkageType: ''
    returnType: aux::proxy_settings
    signature: aux::proxy_settings i2p_connection::proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: libtorrent::i2p_stream::i2p_stream
    functionSourceFile: /src/libtorrent/src/i2p_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_stream::i2p_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::gzip_error_category::name
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * gzip_error_category::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 96
    functionName: libtorrent::gzip_error_category::message
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string gzip_error_category::message(int ev) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: libtorrent::gzip_category
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & gzip_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzip_category
      Src: /src/libtorrent/src/gzip.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: libtorrent::gzip_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached:
    - gzip_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzip_category
      Src: /src/libtorrent/src/gzip.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: libtorrent::gzip_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached:
    - gzip_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:118,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:140,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:144,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:147,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:148,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:153,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:156,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:157,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:159,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:164,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:167,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:168,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:170,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:175,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:176,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/gzip.cpp:179,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:179,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:179,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 180
    functionName: libtorrent::gzip_header
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - span::size
    - span<char const>::data
    - span::empty
    - span<char const>::size
    - reinterpret_cast<const unsigned char*>
    - span::subspan
    linkageType: ''
    returnType: int
    signature: int gzip_header(span<char const> const in)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:118,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:140,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:144,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:147,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:148,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:153,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:156,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:157,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:159,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:164,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:167,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:168,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:170,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:175,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:176,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/gzip.cpp:179,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:179,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:179,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 180
    functionName: libtorrent::gzip_header
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - span::size
    - span<char const>::data
    - span::empty
    - span<char const>::size
    - reinterpret_cast<const unsigned char*>
    - span::subspan
    linkageType: ''
    returnType: int
    signature: int gzip_header(span<char const> const in)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/gzip.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/gzip.cpp:189,1
    - Dst: libtorrent::gzip_header
      Src: /src/libtorrent/src/gzip.cpp:191,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/gzip.cpp:202,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/gzip.cpp:203,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:203,1
    - Dst: resize
      Src: /src/libtorrent/src/gzip.cpp:209,1
    - Dst: puff
      Src: /src/libtorrent/src/gzip.cpp:217,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/gzip.cpp:217,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/gzip.cpp:217,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/libtorrent/src/gzip.cpp:219,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/gzip.cpp:219,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/gzip.cpp:227,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/gzip.cpp:234,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/gzip.cpp:235,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/gzip.cpp:259,1
    - Dst: resize
      Src: /src/libtorrent/src/gzip.cpp:265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 74
    argCount: 4
    argNames:
    - in
    - ' buffer'
    - maximum_size
    - ' ec'
    argTypes:
    - span<char const>
    - std::vector<char>
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 266
    functionName: libtorrent::inflate_gzip
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::size
    - puff
    - span<char const>::data
    - std::uint32_t
    - libtorrent::data
    - TORRENT_ASSERT
    - resize
    - span<char const>::subspan
    - span<char const>::size
    - libtorrent::gzip_header
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: void
    signature: "void inflate_gzip(span<char const> in\n\t\t, std::vector<char>& buffer\n\t\t,
      int maximum_size\n\t\t, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::gzip_error_category::name
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * gzip_error_category::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 96
    functionName: libtorrent::gzip_error_category::message
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string gzip_error_category::message(int ev) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: libtorrent::gzip_category
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & gzip_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzip_category
      Src: /src/libtorrent/src/gzip.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: libtorrent::gzip_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached:
    - gzip_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzip_category
      Src: /src/libtorrent/src/gzip.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: libtorrent::gzip_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached:
    - gzip_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:118,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:140,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:144,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:147,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:148,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:153,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:156,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:157,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:159,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:164,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:167,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:168,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:170,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:175,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:176,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/gzip.cpp:179,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:179,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:179,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 180
    functionName: libtorrent::gzip_header
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - span::size
    - span<char const>::data
    - span::empty
    - span<char const>::size
    - reinterpret_cast<const unsigned char*>
    - span::subspan
    linkageType: ''
    returnType: int
    signature: int gzip_header(span<char const> const in)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:118,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:121,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:140,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:144,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:147,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:148,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:153,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:156,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:157,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:159,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:164,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:167,1
    - Dst: span::empty
      Src: /src/libtorrent/src/gzip.cpp:168,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:170,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:175,1
    - Dst: span::subspan
      Src: /src/libtorrent/src/gzip.cpp:176,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/gzip.cpp:179,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:179,1
    - Dst: span::size
      Src: /src/libtorrent/src/gzip.cpp:179,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 180
    functionName: libtorrent::gzip_header
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - span::size
    - span<char const>::data
    - span::empty
    - span<char const>::size
    - reinterpret_cast<const unsigned char*>
    - span::subspan
    linkageType: ''
    returnType: int
    signature: int gzip_header(span<char const> const in)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/gzip.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/gzip.cpp:189,1
    - Dst: libtorrent::gzip_header
      Src: /src/libtorrent/src/gzip.cpp:191,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/gzip.cpp:202,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/gzip.cpp:203,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/gzip.cpp:203,1
    - Dst: resize
      Src: /src/libtorrent/src/gzip.cpp:209,1
    - Dst: puff
      Src: /src/libtorrent/src/gzip.cpp:217,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/gzip.cpp:217,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/gzip.cpp:217,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/libtorrent/src/gzip.cpp:219,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/gzip.cpp:219,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/gzip.cpp:227,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/gzip.cpp:234,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/gzip.cpp:235,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/gzip.cpp:259,1
    - Dst: resize
      Src: /src/libtorrent/src/gzip.cpp:265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 74
    argCount: 4
    argNames:
    - in
    - ' buffer'
    - maximum_size
    - ' ec'
    argTypes:
    - span<char const>
    - std::vector<char>
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 266
    functionName: libtorrent::inflate_gzip
    functionSourceFile: /src/libtorrent/src/gzip.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::size
    - puff
    - span<char const>::data
    - std::uint32_t
    - libtorrent::data
    - TORRENT_ASSERT
    - resize
    - span<char const>::subspan
    - span<char const>::size
    - libtorrent::gzip_header
    - reinterpret_cast<const unsigned char*>
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: void
    signature: "void inflate_gzip(span<char const> in\n\t\t, std::vector<char>& buffer\n\t\t,
      int maximum_size\n\t\t, error_code& ec)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL_VAL
      Src: /src/libtorrent/src/torrent.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - st
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 151
    functionName: is_downloading_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL_VAL
    linkageType: ''
    returnType: bool
    signature: bool is_downloading_state(int const st)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL_VAL
      Src: /src/libtorrent/src/torrent.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - st
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 151
    functionName: is_downloading_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL_VAL
    linkageType: ''
    returnType: bool
    signature: bool is_downloading_state(int const st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' wse'
    argTypes:
    - web_seed_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: web_seed_t::web_seed_t
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void web_seed_t::web_seed_t(web_seed_entry const& wse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' url_'
    - type_
    - ' auth_'
    - ' extra_headers_'
    argTypes:
    - std::string
    - web_seed_entry::type_t
    - std::string
    - web_seed_entry::headers_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: web_seed_t::web_seed_t
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void web_seed_t::web_seed_t(std::string const& url_, web_seed_entry::type_t
      type_\n\t\t, std::string const& auth_\n\t\t, web_seed_entry::headers_t const&
      extra_headers_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' ses'
    - ' p'
    - session_paused
    argTypes:
    - aux::session_interface
    - add_torrent_params
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 188
    functionName: torrent_hot_members::torrent_hot_members
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent_hot_members::torrent_hot_members(aux::session_interface&
      ses\n\t\t, add_torrent_params const& p, bool const session_paused)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: get_context
      Src: /src/libtorrent/src/torrent.cpp:197,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent.cpp:198,1
    - Dst: complete
      Src: /src/libtorrent/src/torrent.cpp:200,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/torrent.cpp:201,1
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/src/torrent.cpp:202,1
    - Dst: libtorrent::aux::generate_peer_id
      Src: /src/libtorrent/src/torrent.cpp:209,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:209,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent.cpp:233,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:233,1
    - Dst: libtorrent::aux::from_time_t
      Src: /src/libtorrent/src/torrent.cpp:238,1
    - Dst: libtorrent::aux::from_time_t
      Src: /src/libtorrent/src/torrent.cpp:239,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:242,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/src/torrent.cpp:261,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:266,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/torrent.cpp:270,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/torrent.cpp:273,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:277,1
    - Dst: torrent::initialize_merkle_trees
      Src: /src/libtorrent/src/torrent.cpp:279,1
    - Dst: system_error
      Src: /src/libtorrent/src/torrent.cpp:280,1
    - Dst: libtorrent::aux::size_on_disk
      Src: /src/libtorrent/src/torrent.cpp:281,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:281,1
    - Dst: torrent::web_seeds
      Src: /src/libtorrent/src/torrent.cpp:291,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:292,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:296,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:297,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:301,1
    - Dst: web_seed_t
      Src: /src/libtorrent/src/torrent.cpp:301,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/torrent.cpp:305,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/torrent.cpp:305,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:306,1
    - Dst: add_url_seed
      Src: /src/libtorrent/src/torrent.cpp:307,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/torrent.cpp:307,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:312,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:313,1
    - Dst: add_http_seed
      Src: /src/libtorrent/src/torrent.cpp:314,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/torrent.cpp:317,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:318,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:318,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:325,1
    - Dst: torrent::trackers
      Src: /src/libtorrent/src/torrent.cpp:326,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:327,1
    - Dst: tracker_tiers::begin
      Src: /src/libtorrent/src/torrent.cpp:331,1
    - Dst: tracker_tiers::end
      Src: /src/libtorrent/src/torrent.cpp:335,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/torrent.cpp:340,1
    - Dst: torrent::find_tracker
      Src: /src/libtorrent/src/torrent.cpp:341,1
    - Dst: aux::announce_entry::url::empty
      Src: /src/libtorrent/src/torrent.cpp:343,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:344,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:348,1
    - Dst: torrent::add_tracker
      Src: /src/libtorrent/src/torrent.cpp:349,1
    - Dst: announce_entry::tracker_source
      Src: /src/libtorrent/src/torrent.cpp:349,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent.cpp:353,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:353,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:353,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:357,1
    - Dst: torrent::prioritize_udp_trackers
      Src: /src/libtorrent/src/torrent.cpp:358,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:360,1
    - Dst: std::find
      Src: /src/libtorrent/src/torrent.cpp:368,1
    - Dst: file_priorities::begin
      Src: /src/libtorrent/src/torrent.cpp:368,1
    - Dst: file_priorities::end
      Src: /src/libtorrent/src/torrent.cpp:368,1
    - Dst: file_priorities::end
      Src: /src/libtorrent/src/torrent.cpp:368,1
    - Dst: std::find
      Src: /src/libtorrent/src/torrent.cpp:369,1
    - Dst: piece_priorities::begin
      Src: /src/libtorrent/src/torrent.cpp:369,1
    - Dst: piece_priorities::end
      Src: /src/libtorrent/src/torrent.cpp:369,1
    - Dst: piece_priorities::end
      Src: /src/libtorrent/src/torrent.cpp:369,1
    - Dst: std::find
      Src: /src/libtorrent/src/torrent.cpp:370,1
    - Dst: have_pieces::begin
      Src: /src/libtorrent/src/torrent.cpp:370,1
    - Dst: have_pieces::end
      Src: /src/libtorrent/src/torrent.cpp:370,1
    - Dst: have_pieces::end
      Src: /src/libtorrent/src/torrent.cpp:370,1
    - Dst: name::empty
      Src: /src/libtorrent/src/torrent.cpp:376,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:376,1
    - Dst: std::string::string
      Src: /src/libtorrent/src/torrent.cpp:376,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:379,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:379,1
    - Dst: assign
      Src: /src/libtorrent/src/torrent.cpp:380,1
    - Dst: file_priorities::begin
      Src: /src/libtorrent/src/torrent.cpp:380,1
    - Dst: file_priorities::end
      Src: /src/libtorrent/src/torrent.cpp:380,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:384,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:384,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:385,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:385,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:393,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:394,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:395,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:402,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:402,1
    - Dst: merkle_trees::empty
      Src: /src/libtorrent/src/torrent.cpp:404,1
    - Dst: torrent::load_merkle_trees
      Src: /src/libtorrent/src/torrent.cpp:405,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:406,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:407,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:408,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:411,1
    - Dst: merkle_trees::empty
      Src: /src/libtorrent/src/torrent.cpp:411,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:414,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:416,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:417,1
    - Dst: std::make_unique<add_torrent_params>
      Src: /src/libtorrent/src/torrent.cpp:421,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:421,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 83
    argCount: 3
    argNames:
    - ' ses'
    - session_paused
    - ' p'
    argTypes:
    - aux::session_interface
    - bool
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 422
    functionName: torrent::torrent
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<add_torrent_params>
    - torrent::prioritize_udp_trackers
    - std::move
    - torrent::trackers
    - libtorrent::aux::generate_peer_id
    - stats_counters
    - std::vector::emplace_back
    - announce_entry::tracker_source
    - begin
    - is_valid
    - seconds
    - valid_metadata
    - system_error
    - torrent::inc_stats_counter
    - info_hashes
    - assign
    - emplace_back
    - libtorrent::aux::random_shuffle
    - torrent::find_tracker
    - add_url_seed
    - piece_priorities::begin
    - file_priorities::begin
    - push_back
    - std::make_shared<torrent_info>
    - get_context
    - aux::announce_entry::url::empty
    - torrent::add_tracker
    - std::uint8_t
    - piece_priorities::end
    - reset
    - is_single_thread
    - libtorrent::aux::posix_time
    - static_cast<std::uint32_t>
    - end
    - std::find
    - num_pieces
    - add_http_seed
    - clear
    - tracker_tiers::begin
    - torrent::web_seeds
    - std::vector::back
    - files
    - num_files
    - web_seed_t
    - file_priorities::end
    - have_pieces::end
    - canonicalize_path
    - libtorrent::aux::size_on_disk
    - TORRENT_ASSERT
    - is_i2p
    - static_cast<std::uint8_t>
    - torrent::initialize_merkle_trees
    - std::string::string
    - torrent::load_merkle_trees
    - ensure_trailing_slash
    - name::empty
    - merkle_trees::empty
    - have_pieces::begin
    - libtorrent::aux::from_time_t
    - tracker_tiers::end
    - resize
    - settings
    - std::sort
    - complete
    linkageType: ''
    returnType: void
    signature: "void torrent::torrent(\n\t\taux::session_interface& ses\n\t\t, bool
      const session_paused\n\t\t, add_torrent_params&& p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent.cpp:429,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:432,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/torrent.cpp:434,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:434,1
    - Dst: aux::vector<std::vector<sha256_hash>, file_index_t>::end_index
      Src: /src/libtorrent/src/torrent.cpp:437,1
    - Dst: aux::vector<std::vector<bool>, file_index_t>::end_index
      Src: /src/libtorrent/src/torrent.cpp:438,1
    - Dst: aux::vector<std::vector<bool>, file_index_t>::end_index
      Src: /src/libtorrent/src/torrent.cpp:439,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:439,1
    - Dst: load_sparse_tree
      Src: /src/libtorrent/src/torrent.cpp:441,1
    - Dst: load_tree
      Src: /src/libtorrent/src/torrent.cpp:445,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - trees_import
    - mask
    - verified
    argTypes:
    - aux::vector<std::vector<sha256_hash>, file_index_t>
    - aux::vector<std::vector<bool>, file_index_t>
    - aux::vector<std::vector<bool>, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 448
    functionName: torrent::load_merkle_trees
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - load_sparse_tree
    - aux::vector<std::vector<sha256_hash>, file_index_t>::end_index
    - empty
    - load_tree
    - end_file
    - file_size
    - orig_files
    - pad_file_at
    - aux::vector<std::vector<bool>, file_index_t>::end_index
    linkageType: ''
    returnType: void
    signature: "void torrent::load_merkle_trees(\n\t\taux::vector<std::vector<sha256_hash>,
      file_index_t> trees_import\n\t\t, aux::vector<std::vector<bool>, file_index_t>
      mask\n\t\t, aux::vector<std::vector<bool>, file_index_t> verified)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stats_counters
      Src: /src/libtorrent/src/torrent.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: torrent::inc_stats_counter
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - stats_counters
    linkageType: ''
    returnType: void
    signature: void torrent::inc_stats_counter(int c, int value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: has_error
      Src: /src/libtorrent/src/torrent.cpp:458,1
    - Dst: is_auto_managed
      Src: /src/libtorrent/src/torrent.cpp:461,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:462,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:465,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:467,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:471,1
    - Dst: is_upload_only
      Src: /src/libtorrent/src/torrent.cpp:472,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 474
    functionName: torrent::current_stats_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - is_upload_only
    - state
    - is_auto_managed
    - torrent::is_seed
    - has_error
    linkageType: ''
    returnType: int
    signature: int torrent::current_stats_state() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: torrent::current_stats_state
      Src: /src/libtorrent/src/torrent.cpp:478,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:479,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:480,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:485,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:487,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:490,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 492
    functionName: torrent::update_gauge
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - torrent::current_stats_state
    - torrent::inc_stats_counter
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void torrent::update_gauge()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:507,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:512,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:519,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:522,1
    - Dst: torrent::force_recheck
      Src: /src/libtorrent/src/torrent.cpp:523,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:526,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:527,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - checking
    argTypes:
    - seed_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 530
    functionName: torrent::leave_seed_mode
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - state
    - torrent::set_state
    - torrent::debug_log
    - set_need_save_resume
    - clear
    - torrent::force_recheck
    linkageType: ''
    returnType: void
    signature: void torrent::leave_seed_mode(seed_mode_t const checking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:534,1
    - Dst: get_bit
      Src: /src/libtorrent/src/torrent.cpp:534,1
    - Dst: set_bit
      Src: /src/libtorrent/src/torrent.cpp:536,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: torrent::verified
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - set_bit
    - get_bit
    - set_need_save_resume
    linkageType: ''
    returnType: void
    signature: void torrent::verified(piece_index_t const piece)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:542,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:542,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:543,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:555,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:557,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:557,1
    - Dst: torrent::set_max_uploads
      Src: /src/libtorrent/src/torrent.cpp:565,1
    - Dst: torrent::set_max_connections
      Src: /src/libtorrent/src/torrent.cpp:566,1
    - Dst: torrent::set_limit_impl
      Src: /src/libtorrent/src/torrent.cpp:567,1
    - Dst: torrent::set_limit_impl
      Src: /src/libtorrent/src/torrent.cpp:568,1
    - Dst: torrent::add_peer
      Src: /src/libtorrent/src/torrent.cpp:572,1
    - Dst: peers::empty
      Src: /src/libtorrent/src/torrent.cpp:575,1
    - Dst: torrent::do_connect_boost
      Src: /src/libtorrent/src/torrent.cpp:577,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:581,1
    - Dst: peers::empty
      Src: /src/libtorrent/src/torrent.cpp:581,1
    - Dst: address
      Src: /src/libtorrent/src/torrent.cpp:586,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:589,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:590,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/torrent.cpp:591,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:597,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:599,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:602,1
    - Dst: torrent::upload_limit
      Src: /src/libtorrent/src/torrent.cpp:605,1
    - Dst: torrent::download_limit
      Src: /src/libtorrent/src/torrent.cpp:606,1
    - Dst: c_str
      Src: /src/libtorrent/src/torrent.cpp:628,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:633,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:635,1
    - Dst: torrent::update_want_scrape
      Src: /src/libtorrent/src/torrent.cpp:636,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:637,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:638,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:640,1
    - Dst: torrent::init
      Src: /src/libtorrent/src/torrent.cpp:642,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:648,1
    - Dst: torrent::start_announcing
      Src: /src/libtorrent/src/torrent.cpp:649,1
    - Dst: torrent::check_invariant
      Src: /src/libtorrent/src/torrent.cpp:653,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 655
    functionName: torrent::start
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_want_peers
    - peers::empty
    - is_valid
    - alerts
    - torrent::upload_limit
    - torrent::set_max_uploads
    - torrent::add_peer
    - is_single_thread
    - torrent::download_limit
    - torrent::set_limit_impl
    - address
    - num_connect_candidates
    - torrent::set_max_connections
    - TORRENT_ASSERT
    - torrent::init
    - torrent_file
    - torrent::update_state_list
    - torrent::should_log
    - torrent::do_connect_boost
    - c_str
    - torrent::set_state
    - torrent::get_handle
    - std::string::c_str
    - torrent::debug_log
    - torrent::update_want_tick
    - torrent::check_invariant
    - torrent::start_announcing
    - torrent::update_want_scrape
    - torrent::update_gauge
    linkageType: ''
    returnType: void
    signature: void torrent::start()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:662,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:666,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:669,1
    - Dst: torrent::ip_filter_updated
      Src: /src/libtorrent/src/torrent.cpp:672,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 674
    functionName: torrent::set_apply_ip_filter
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::inc_stats_counter
    - set_need_save_resume
    - torrent::state_updated
    - torrent::ip_filter_updated
    linkageType: ''
    returnType: void
    signature: void torrent::set_apply_ip_filter(bool b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:678,1
    - Dst: torrent::ip_filter_updated
      Src: /src/libtorrent/src/torrent.cpp:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ipf
    argTypes:
    - std::shared_ptr<const ip_filter>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: torrent::set_ip_filter
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::ip_filter_updated
    - std::move
    linkageType: ''
    returnType: void
    signature: void torrent::set_ip_filter(std::shared_ptr<const ip_filter> ipf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:686,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:686,1
    - Dst: announce_dht
      Src: /src/libtorrent/src/torrent.cpp:688,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/torrent.cpp:693,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:693,1
    - Dst: dht
      Src: /src/libtorrent/src/torrent.cpp:697,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:698,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:703,1
    - Dst: priv
      Src: /src/libtorrent/src/torrent.cpp:703,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:704,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:705,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/torrent.cpp:707,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:707,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:707,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 709
    functionName: torrent::should_announce_dht
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - is_single_thread
    - empty
    - is_valid
    - std::none_of
    - priv
    - end
    - TORRENT_ASSERT
    - is_i2p
    - settings
    - dht
    - announce_dht
    linkageType: ''
    returnType: bool
    signature: bool torrent::should_announce_dht() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/torrent.cpp:719,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:721,1
    - Dst: unlink
      Src: /src/libtorrent/src/torrent.cpp:722,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/torrent.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:740,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:741,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:741,1
    - Dst: close_connection
      Src: /src/libtorrent/src/torrent.cpp:744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 745
    functionName: torrent::~torrent()
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - close_connection
    - torrent_list
    - empty
    - unlink
    - TORRENT_ASSERT
    - in_list
    - end_index
    linkageType: ''
    returnType: void
    signature: void torrent::~torrent()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: error_code::assign
      Src: /src/libtorrent/src/torrent.cpp:752,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent.cpp:752,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:754,1
    - Dst: error_code::assign
      Src: /src/libtorrent/src/torrent.cpp:756,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/torrent.cpp:756,1
    - Dst: user_have_piece
      Src: /src/libtorrent/src/torrent.cpp:758,1
    - Dst: error_code::assign
      Src: /src/libtorrent/src/torrent.cpp:760,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/torrent.cpp:760,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:765,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:765,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:769,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:770,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:770,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:772,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:773,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:779,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:780,1
    - Dst: std::make_shared<read_piece_struct>
      Src: /src/libtorrent/src/torrent.cpp:784,1
    - Dst: std::shared_ptr::piece_data::reset
      Src: /src/libtorrent/src/torrent.cpp:785,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent.cpp:785,1
    - Dst: char::char
      Src: /src/libtorrent/src/torrent.cpp:785,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:788,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:789,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:789,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent.cpp:789,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:796,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:803,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:804,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:806,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:806,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:807,1
    - Dst: auto::on_disk_read_complete
      Src: /src/libtorrent/src/torrent.cpp:809,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:809,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:812,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 813
    functionName: torrent::read_piece
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - disk_thread
    - block_size
    - valid_metadata
    - std::min
    - libtorrent_category
    - deferred_submit_jobs
    - alerts
    - std::make_shared<read_piece_struct>
    - std::shared_ptr::piece_data::reset
    - std::size_t
    - char::char
    - user_have_piece
    - shared_from_this
    - error_code::assign
    - TORRENT_ASSERT
    - generic_category
    - auto::on_disk_read_complete
    - error_code
    - torrent::get_handle
    - settings
    - piece_size
    linkageType: ''
    returnType: void
    signature: void torrent::read_piece(piece_index_t const piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:821,1
    - Dst: type
      Src: /src/libtorrent/src/torrent.cpp:822,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:823,1
    - Dst: auto*::write_share_mode
      Src: /src/libtorrent/src/torrent.cpp:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 827
    functionName: torrent::send_share_mode
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_INCREMENT
    - auto*::write_share_mode
    - static_cast<bt_peer_connection*>
    - type
    linkageType: ''
    returnType: void
    signature: void torrent::send_share_mode()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: share_mode
      Src: /src/libtorrent/src/torrent.cpp:835,1
    - Dst: super_seeding
      Src: /src/libtorrent/src/torrent.cpp:838,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:844,1
    - Dst: is_upload_only
      Src: /src/libtorrent/src/torrent.cpp:851,1
    - Dst: super_seeding
      Src: /src/libtorrent/src/torrent.cpp:853,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:859,1
    - Dst: send_not_interested
      Src: /src/libtorrent/src/torrent.cpp:861,1
    - Dst: torrent::send_upload_only
      Src: /src/libtorrent/src/torrent.cpp:862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 865
    functionName: torrent::send_upload_only
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - is_upload_only
    - TORRENT_INCREMENT
    - settings
    - share_mode
    - send_not_interested
    - torrent::send_upload_only
    - super_seeding
    linkageType: ''
    returnType: void
    signature: void torrent::send_upload_only()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: is_torrent_paused
      Src: /src/libtorrent/src/torrent.cpp:880,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 901
    functionName: torrent::flags
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - is_torrent_paused
    linkageType: ''
    returnType: torrent_flags_t
    signature: torrent_flags_t torrent::flags() const
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: torrent::leave_seed_mode
      Src: /src/libtorrent/src/torrent.cpp:913,1
    - Dst: torrent::set_upload_mode
      Src: /src/libtorrent/src/torrent.cpp:916,1
    - Dst: torrent::set_share_mode
      Src: /src/libtorrent/src/torrent.cpp:919,1
    - Dst: torrent::set_apply_ip_filter
      Src: /src/libtorrent/src/torrent.cpp:922,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:926,1
    - Dst: torrent::resume
      Src: /src/libtorrent/src/torrent.cpp:928,1
    - Dst: torrent::auto_managed
      Src: /src/libtorrent/src/torrent.cpp:931,1
    - Dst: torrent::set_super_seeding
      Src: /src/libtorrent/src/torrent.cpp:934,1
    - Dst: torrent::set_sequential_download
      Src: /src/libtorrent/src/torrent.cpp:937,1
    - Dst: torrent::stop_when_ready
      Src: /src/libtorrent/src/torrent.cpp:939,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:943,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:949,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:955,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - flags
    - mask
    argTypes:
    - torrent_flags_t
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 958
    functionName: torrent::set_flags
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::set_apply_ip_filter
    - torrent::set_super_seeding
    - torrent::set_share_mode
    - torrent::stop_when_ready
    - torrent::resume
    - torrent::set_sequential_download
    - set_need_save_resume
    - torrent::leave_seed_mode
    - torrent::pause
    - torrent::auto_managed
    - torrent::set_upload_mode
    linkageType: ''
    returnType: void
    signature: "void torrent::set_flags(torrent_flags_t const flags\n\t\t, torrent_flags_t
      const mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:966,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:968,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:972,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent.cpp:973,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:973,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:974,1
    - Dst: torrent::prioritize_files
      Src: /src/libtorrent/src/torrent.cpp:977,1
    - Dst: aux::vector<download_priority_t, file_index_t>
      Src: /src/libtorrent/src/torrent.cpp:977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 979
    functionName: torrent::set_share_mode
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - num_files
    - valid_metadata
    - torrent::prioritize_files
    - torrent::debug_log
    - set_need_save_resume
    - std::size_t
    - aux::vector<download_priority_t, file_index_t>
    - size
    linkageType: ''
    returnType: void
    signature: void torrent::set_share_mode(bool s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:988,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:991,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:992,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:993,1
    - Dst: torrent::send_upload_only
      Src: /src/libtorrent/src/torrent.cpp:994,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:1001,1
    - Dst: upload_only
      Src: /src/libtorrent/src/torrent.cpp:1003,1
    - Dst: update_interest
      Src: /src/libtorrent/src/torrent.cpp:1004,1
    - Dst: cancel_all_requests
      Src: /src/libtorrent/src/torrent.cpp:1005,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:1008,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:1021,1
    - Dst: update_interest
      Src: /src/libtorrent/src/torrent.cpp:1023,1
    - Dst: send_block_requests
      Src: /src/libtorrent/src/torrent.cpp:1024,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 1027
    functionName: torrent::set_upload_mode
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - upload_only
    - send_block_requests
    - torrent::debug_log
    - TORRENT_INCREMENT
    - set_need_save_resume
    - libtorrent::aux::time_now32
    - torrent::send_upload_only
    - cancel_all_requests
    - torrent::update_gauge
    - torrent::state_updated
    - update_interest
    linkageType: ''
    returnType: void
    signature: void torrent::set_upload_mode(bool b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<peer_list>
      Src: /src/libtorrent/src/torrent.cpp:1032,1
    - Dst: get_peer_allocator
      Src: /src/libtorrent/src/torrent.cpp:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1033
    functionName: torrent::need_peer_list
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<peer_list>
    - get_peer_allocator
    linkageType: ''
    returnType: void
    signature: void torrent::need_peer_list()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:1044,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:1046,1
    - Dst: code
      Src: /src/libtorrent/src/torrent.cpp:1047,1
    - Dst: code
      Src: /src/libtorrent/src/torrent.cpp:1047,1
    - Dst: what
      Src: /src/libtorrent/src/torrent.cpp:1048,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1051,1
    - Dst: code
      Src: /src/libtorrent/src/torrent.cpp:1051,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:1055,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1056,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:1056,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:1058,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:1060,1
    - Dst: what
      Src: /src/libtorrent/src/torrent.cpp:1060,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1066,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:1066,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:1068,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:1070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1074
    functionName: torrent::handle_exception
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::should_log
    - error_code
    - torrent::debug_log
    - torrent::set_error
    - code
    - what
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void torrent::handle_exception()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:1081,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1082,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:1082,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1083,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:1086,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:1088,1
    - Dst: ec::value
      Src: /src/libtorrent/src/torrent.cpp:1089,1
    - Dst: ec::message
      Src: /src/libtorrent/src/torrent.cpp:1089,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent.cpp:1090,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/torrent.cpp:1090,1
    - Dst: operation_name
      Src: /src/libtorrent/src/torrent.cpp:1091,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:1092,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:1092,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1098,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1099,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:1100,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:1100,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:1100,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:1101,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1108,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1109,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:1110,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:1110,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:1110,1
    - Dst: torrent::set_upload_mode
      Src: /src/libtorrent/src/torrent.cpp:1131,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1136,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:1136,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:1139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 4
    argNames:
    - job_name
    - ' error'
    - c
    - rw
    argTypes:
    - string_view
    - storage_error
    - peer_connection*
    - disk_class
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1076
    functionDepth: 4
    functionLinenumber: 1076
    functionLinenumberEnd: 1140
    functionName: torrent::handle_disk_error
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::disconnect
    - alerts
    - torrent::should_log
    - string_view::data
    - ec::value
    - is_single_thread
    - torrent::get_handle
    - torrent::debug_log
    - torrent::set_error
    - TORRENT_ASSERT
    - ec::message
    - string_view::size
    - torrent::resolve_filename
    - file
    - torrent::pause
    - torrent::set_upload_mode
    - operation_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void torrent::handle_disk_error(string_view job_name\n\t\t, storage_error
      const& error\n\t\t, peer_connection* c\n\t\t, disk_class rw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:1144,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/torrent.cpp:1145,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1146,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:1150,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:1151,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:1152,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:1154,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1156
    functionName: torrent::handle_inconsistent_hashes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - reset
    - auto::empty
    - torrent::set_error
    - clear
    - torrent::pause
    - torrent::update_gauge
    - torrent_file
    linkageType: ''
    returnType: void
    signature: void torrent::handle_inconsistent_hashes(piece_index_t const piece)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:1164,1
    - Dst: restore_piece
      Src: /src/libtorrent/src/torrent.cpp:1168,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:1171,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:1174,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:1174,1
    - Dst: peer_connection*::is_interesting
      Src: /src/libtorrent/src/torrent.cpp:1183,1
    - Dst: peer_connection*::update_interest
      Src: /src/libtorrent/src/torrent.cpp:1184,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/torrent.cpp:1187,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:1188,1
    - Dst: peer_connection*::send_block_requests
      Src: /src/libtorrent/src/torrent.cpp:1189,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:1193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1193
    functionName: torrent::on_piece_fail_sync
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::update_interest
    - torrent::handle_exception
    - request_a_block
    - peer_connection*::send_block_requests
    - begin
    - restore_piece
    - end
    - has_picker
    - torrent::inc_stats_counter
    - peer_connection*::is_interesting
    - torrent::update_gauge
    linkageType: ''
    returnType: void
    signature: void torrent::on_piece_fail_sync(piece_index_t const piece, piece_block)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1200,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:1200,1
    - Dst: torrent::handle_disk_error
      Src: /src/libtorrent/src/torrent.cpp:1207,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/torrent.cpp:1211,1
    - Dst: std::shared_ptr<read_piece_struct>::piece_data::get
      Src: /src/libtorrent/src/torrent.cpp:1211,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/torrent.cpp:1211,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent.cpp:1211,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:1216,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1219,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:1220,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1224,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:1225,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:1229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - buffer
    - ' se'
    - '  r'
    - rp
    argTypes:
    - disk_buffer_holder
    - storage_error
    - peer_request
    - std::shared_ptr<read_piece_struct>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1195
    functionDepth: 5
    functionLinenumber: 1195
    functionLinenumberEnd: 1229
    functionName: torrent::on_disk_read_complete
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - std::memcpy
    - aux::numeric_cast<std::size_t>
    - is_single_thread
    - torrent::handle_disk_error
    - torrent::get_handle
    - TORRENT_ASSERT
    - std::shared_ptr<read_piece_struct>::piece_data::get
    - piece_size
    - alerts
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void torrent::on_disk_read_complete(disk_buffer_holder buffer\n\t\t,
      storage_error const& se\n\t\t, peer_request const&  r, std::shared_ptr<read_piece_struct>
      rp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: storage_mode_t
      Src: /src/libtorrent/src/torrent.cpp:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1232
    functionName: torrent::storage_mode
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - storage_mode_t
    linkageType: ''
    returnType: storage_mode_t
    signature: storage_mode_t torrent::storage_mode() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::disconnect_all
      Src: /src/libtorrent/src/torrent.cpp:1236,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:1236,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1238
    functionName: torrent::clear_peers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::disconnect_all
    - error_code
    - clear
    linkageType: ''
    returnType: void
    signature: void torrent::clear_peers()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1244,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:1244,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1245,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1251,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:1252,1
    - Dst: std::make_unique<piece_picker>
      Src: /src/libtorrent/src/torrent.cpp:1255,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:1255,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:1256,1
    - Dst: auto::we_have_all
      Src: /src/libtorrent/src/torrent.cpp:1258,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:1261,1
    - Dst: torrent::init
      Src: /src/libtorrent/src/torrent.cpp:1262,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:1262,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:1264,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:1266,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:1270,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:1271,1
    - Dst: torrent::peer_has
      Src: /src/libtorrent/src/torrent.cpp:1272,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/torrent.cpp:1272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1240
    functionDepth: 2
    functionLinenumber: 1240
    functionLinenumberEnd: 1274
    functionName: torrent::need_picker
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - total_size
    - auto::we_have_all
    - std::move
    - files
    - valid_metadata
    - empty
    - is_disconnecting
    - torrent::peer_has
    - TORRENT_ASSERT
    - piece_length
    - TORRENT_INCREMENT
    - std::make_unique<piece_picker>
    - torrent::init
    - settings
    - torrent::update_gauge
    - get_bitfield
    linkageType: ''
    returnType: void
    signature: void torrent::need_picker()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1280,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:1280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1281,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:1285,1
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent.cpp:1285,1
    - Dst: hash_picker::hash_picker
      Src: /src/libtorrent/src/torrent.cpp:1285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1287
    functionName: torrent::need_hash_picker
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - reset
    - valid_metadata
    - TORRENT_ASSERT
    - orig_files
    - hash_picker::hash_picker
    linkageType: ''
    returnType: void
    signature: void torrent::need_hash_picker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inc_refcount
      Src: /src/libtorrent/src/torrent.cpp:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - piece
    argTypes:
    - piece_picker
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1296
    functionName: piece_refcount
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - inc_refcount
    linkageType: ''
    returnType: void
    signature: void piece_refcount(piece_picker& p, piece_index_t piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1298
    functionName: piece_refcount
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_refcount(piece_refcount const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1299
    functionName: '& operator=(piece_refcount const&)'
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: piece_refcount
    signature: piece_refcount & operator=(piece_refcount const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1301
    functionName: disarm
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disarm()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dec_refcount
      Src: /src/libtorrent/src/torrent.cpp:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1307
    functionName: ~piece_refcount()
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - dec_refcount
    linkageType: ''
    returnType: void
    signature: void ~piece_refcount()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1318,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:1318,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:1321,1
    - Dst: std::vector<char>::size
      Src: /src/libtorrent/src/torrent.cpp:1325,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent.cpp:1325,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:1325,1
    - Dst: torrent::add_piece
      Src: /src/libtorrent/src/torrent.cpp:1328,1
    - Dst: std::vector<char>::data
      Src: /src/libtorrent/src/torrent.cpp:1328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - piece
    - data
    - flags
    argTypes:
    - piece_index_t
    - std::vector<char>
    - add_piece_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1329
    functionName: torrent::add_piece_async
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::add_piece
    - piece_size
    - std::vector<char>::data
    - is_single_thread
    - TORRENT_ASSERT
    - std::size_t
    - std::vector<char>::size
    - torrent_file
    linkageType: ''
    returnType: void
    signature: "void torrent::add_piece_async(piece_index_t const piece\n\t\t, std::vector<char>
      data, add_piece_flags_t const flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1336,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:1336,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:1339,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:1342,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1343,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1343,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:1348,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent.cpp:1352,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:1352,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:1353,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:1354,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:1355,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:1358,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1360,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1367,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:1368,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1369,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1373,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1380,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:1389,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1389,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:1391,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:1395,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:1399,1
    - Dst: auto::on_disk_write_complete
      Src: /src/libtorrent/src/torrent.cpp:1400,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1403,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1404,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1406,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1407,1
    - Dst: torrent::cancel_block
      Src: /src/libtorrent/src/torrent.cpp:1409,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1414,1
    - Dst: torrent::verify_piece
      Src: /src/libtorrent/src/torrent.cpp:1416,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:1419,1
    - Dst: piece_refcount::disarm
      Src: /src/libtorrent/src/torrent.cpp:1423,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 3
    argNames:
    - piece
    - data
    - flags
    argTypes:
    - piece_index_t
    - char*
    - add_piece_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1333
    functionDepth: 3
    functionLinenumber: 1333
    functionLinenumberEnd: 1424
    functionName: torrent::add_piece
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - disk_thread
    - block_size
    - std::min
    - torrent::inc_stats_counter
    - deferred_submit_jobs
    - is_single_thread
    - shared_from_this
    - piece_refcount::disarm
    - picker
    - TORRENT_ASSERT
    - has_picker
    - auto::on_disk_write_complete
    - torrent_file
    - state
    - TORRENT_ASSERT_PRECOND
    - torrent::need_picker
    - torrent::cancel_block
    - torrent::verify_piece
    - settings
    - piece_size
    linkageType: ''
    returnType: void
    signature: "void torrent::add_piece(piece_index_t const piece, char const* data\n\t\t,
      add_piece_flags_t const flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1429,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:1429,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:1431,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1438,1
    - Dst: torrent::handle_disk_error
      Src: /src/libtorrent/src/torrent.cpp:1442,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:1446,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1451,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:1453,1
    - Dst: torrent::maybe_done_flushing
      Src: /src/libtorrent/src/torrent.cpp:1454,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1456,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1458,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:1458,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent.cpp:1459,1
    - Dst: peer_id
      Src: /src/libtorrent/src/torrent.cpp:1459,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:1463,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ' error'
    - ' p'
    argTypes:
    - storage_error
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1426
    functionDepth: 5
    functionLinenumber: 1426
    functionLinenumberEnd: 1463
    functionName: torrent::on_disk_write_complete
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - is_single_thread
    - block_size
    - torrent::handle_disk_error
    - torrent::maybe_done_flushing
    - picker
    - torrent::get_handle
    - TORRENT_ASSERT
    - torrent::inc_stats_counter
    - has_picker
    - peer_id
    - local_endpoint
    - alerts
    linkageType: ''
    returnType: void
    signature: "void torrent::on_disk_write_complete(storage_error const& error\n\t\t,
      peer_request const& p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1467,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:1468,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:1468,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1469,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1470,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1471,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1478
    functionName: torrent::to_req
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - block_size
    - TORRENT_ASSERT
    - torrent_file
    linkageType: ''
    returnType: peer_request
    signature: peer_request torrent::to_req(piece_block const& p) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:1482,1
    - Dst: torrent::name
      Src: /src/libtorrent/src/torrent.cpp:1482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1485
    functionName: torrent::name
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - valid_metadata
    - torrent::name
    linkageType: ''
    returnType: std::string
    signature: std::string torrent::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: copy_string
      Src: /src/libtorrent/src/torrent.cpp:1489,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:1490,1
    - Dst: torrent::name
      Src: /src/libtorrent/src/torrent.cpp:1490,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent.cpp:1492,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/torrent.cpp:1493,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/torrent.cpp:1495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - aux::stack_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1497
    functionName: torrent::name_idx
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_hex
    - has_v2
    - valid_metadata
    - torrent::name
    - copy_string
    linkageType: ''
    returnType: aux::allocation_slot
    signature: aux::allocation_slot torrent::name_idx(aux::stack_allocator& a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:1503,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:1503,1
    - Dst: back
      Src: /src/libtorrent/src/torrent.cpp:1504,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:1508,1
    - Dst: new_connection
      Src: /src/libtorrent/src/torrent.cpp:1509,1
    - Dst: peer_connection_handle
      Src: /src/libtorrent/src/torrent.cpp:1509,1
    - Dst: self
      Src: /src/libtorrent/src/torrent.cpp:1509,1
    - Dst: torrent::add_extension
      Src: /src/libtorrent/src/torrent.cpp:1510,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:1510,1
    - Dst: on_files_checked
      Src: /src/libtorrent/src/torrent.cpp:1516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<torrent_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1517
    functionName: torrent::add_extension
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - torrent::add_extension
    - std::move
    - TORRENT_INCREMENT
    - new_connection
    - back
    - self
    - on_files_checked
    - peer_connection_handle
    linkageType: ''
    returnType: void
    signature: void torrent::add_extension(std::shared_ptr<torrent_plugin> ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/torrent.cpp:1521,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:1521,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:1521,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:1522,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:1523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<torrent_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1524
    functionName: torrent::remove_extension
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - std::find
    - begin
    linkageType: ''
    returnType: void
    signature: void torrent::remove_extension(std::shared_ptr<torrent_plugin> ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::add_extension
      Src: /src/libtorrent/src/torrent.cpp:1532,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:1532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ext'
    - userdata
    argTypes:
    - std::function<std::shared_ptr<torrent_plugin>(torrent_handle const&, client_data_t)>
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1533
    functionName: torrent::add_extension_fun
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::add_extension
    - std::move
    linkageType: ''
    returnType: void
    signature: "void torrent::add_extension_fun(std::function<std::shared_ptr<torrent_plugin>(torrent_handle
      const&, client_data_t)> const& ext\n\t\t, client_data_t userdata)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: torrent::name
      Src: /src/libtorrent/src/torrent.cpp:1543,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/libtorrent/src/torrent.cpp:1561,1
    - Dst: native_handle
      Src: /src/libtorrent/src/torrent.cpp:1561,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/libtorrent/src/torrent.cpp:1564,1
    - Dst: native_handle
      Src: /src/libtorrent/src/torrent.cpp:1564,1
    - Dst: static_cast<GENERAL_NAMES*>
      Src: /src/libtorrent/src/torrent.cpp:1567,1
    - Dst: X509_get_ext_d2i
      Src: /src/libtorrent/src/torrent.cpp:1568,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/libtorrent/src/torrent.cpp:1570,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/libtorrent/src/torrent.cpp:1572,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/torrent.cpp:1576,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent.cpp:1577,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/torrent.cpp:1581,1
    - Dst: std::strncmp
      Src: /src/libtorrent/src/torrent.cpp:1583,1
    - Dst: std::strncmp
      Src: /src/libtorrent/src/torrent.cpp:1584,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:1584,1
    - Dst: X509_get_subject_name
      Src: /src/libtorrent/src/torrent.cpp:1599,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/libtorrent/src/torrent.cpp:1602,1
    - Dst: X509_NAME_get_entry
      Src: /src/libtorrent/src/torrent.cpp:1604,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/libtorrent/src/torrent.cpp:1605,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/torrent.cpp:1609,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent.cpp:1610,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent.cpp:1613,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/torrent.cpp:1614,1
    - Dst: std::strncmp
      Src: /src/libtorrent/src/torrent.cpp:1616,1
    - Dst: std::strncmp
      Src: /src/libtorrent/src/torrent.cpp:1617,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:1617,1
    - Dst: native_handle
      Src: /src/libtorrent/src/torrent.cpp:1632,1
    - Dst: gnutls_x509_crt_get_subject_alt_name
      Src: /src/libtorrent/src/torrent.cpp:1641,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent.cpp:1646,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/torrent.cpp:1647,1
    - Dst: std::strncmp
      Src: /src/libtorrent/src/torrent.cpp:1649,1
    - Dst: std::strncmp
      Src: /src/libtorrent/src/torrent.cpp:1650,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:1650,1
    - Dst: gnutls_x509_crt_get_dn_by_oid
      Src: /src/libtorrent/src/torrent.cpp:1665,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent.cpp:1669,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/torrent.cpp:1670,1
    - Dst: std::strncmp
      Src: /src/libtorrent/src/torrent.cpp:1672,1
    - Dst: std::strncmp
      Src: /src/libtorrent/src/torrent.cpp:1673,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:1673,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:1685,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:1686,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 58
    argCount: 2
    argNames:
    - preverified
    - ' ctx'
    argTypes:
    - bool
    - ssl::verify_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1538
    functionDepth: 1
    functionLinenumber: 1538
    functionLinenumberEnd: 1691
    functionName: torrent::verify_peer_cert
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_current_cert
    - torrent::name
    - std::strncmp
    - static_cast<GENERAL_NAMES*>
    - aux::numeric_cast<std::size_t>
    - X509_NAME_get_entry
    - X509_NAME_get_index_by_NID
    - sk_GENERAL_NAME_value
    - X509_get_ext_d2i
    - gnutls_x509_crt_get_subject_alt_name
    - X509_get_subject_name
    - std::string::append
    - X509_STORE_CTX_get_error_depth
    - reinterpret_cast<char const*>
    - sk_GENERAL_NAME_num
    - std::string::c_str
    - std::string::empty
    - torrent::debug_log
    - gnutls_x509_crt_get_dn_by_oid
    - X509_NAME_ENTRY_get_data
    - native_handle
    linkageType: ''
    returnType: bool
    signature: bool torrent::verify_peer_cert(bool const preverified, ssl::verify_context&
      ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::set_options
      Src: /src/libtorrent/src/torrent.cpp:1700,1
    - Dst: std::unique_ptr::set_verify_mode
      Src: /src/libtorrent/src/torrent.cpp:1706,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1711,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:1712,1
    - Dst: std::unique_ptr::set_verify_callback
      Src: /src/libtorrent/src/torrent.cpp:1719,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:1720,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1724,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:1725,1
    - Dst: libtorrent::ssl::set_trust_certificate
      Src: /src/libtorrent/src/torrent.cpp:1730,1
    - Dst: std::unique_ptr::native_handle
      Src: /src/libtorrent/src/torrent.cpp:1730,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1733,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:1734,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/torrent.cpp:1740,1
    - Dst: random
      Src: /src/libtorrent/src/torrent.cpp:1740,1
    - Dst: fopen
      Src: /src/libtorrent/src/torrent.cpp:1741,1
    - Dst: fwrite
      Src: /src/libtorrent/src/torrent.cpp:1742,1
    - Dst: string_view::c_str
      Src: /src/libtorrent/src/torrent.cpp:1742,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent.cpp:1742,1
    - Dst: fclose
      Src: /src/libtorrent/src/torrent.cpp:1743,1
    - Dst: std::unique_ptr::load_verify_file
      Src: /src/libtorrent/src/torrent.cpp:1744,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:1748,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:1750,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:1750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - cert
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1751
    functionName: torrent::init_ssl
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - torrent::set_error
    - torrent::pause
    - fwrite
    - std::unique_ptr::set_verify_mode
    - alerts
    - std::snprintf
    - string_view::c_str
    - fclose
    - random
    - std::bind
    - std::unique_ptr::load_verify_file
    - std::unique_ptr::set_verify_callback
    - std::unique_ptr::native_handle
    - torrent::get_handle
    - string_view::size
    - libtorrent::ssl::set_trust_certificate
    - fopen
    - std::unique_ptr::set_options
    linkageType: ''
    returnType: void
    signature: void torrent::init_ssl(string_view cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent.cpp:1757,1
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent.cpp:1758,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:1758,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:1759,1
    - Dst: static_cast<storage_mode_t>
      Src: /src/libtorrent/src/torrent.cpp:1761,1
    - Dst: get_best
      Src: /src/libtorrent/src/torrent.cpp:1763,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:1768,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1769
    functionName: torrent::construct_storage
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - disk_thread
    - static_cast<storage_mode_t>
    - files
    - get_best
    - orig_files
    linkageType: ''
    returnType: void
    signature: void torrent::construct_storage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:1773,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:1774,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:1774,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:1777,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:1778,1
    - Dst: peer_rank
      Src: /src/libtorrent/src/torrent.cpp:1778,1
    - Dst: peer_rank
      Src: /src/libtorrent/src/torrent.cpp:1778,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:1782,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1784
    functionName: torrent::find_lowest_ranking_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - peer_rank
    - end
    - is_disconnecting
    - begin
    linkageType: ''
    returnType: peer_connection
    signature: peer_connection * torrent::find_lowest_ranking_peer() const
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1793,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:1793,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:1796,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:1796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1799,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:1799,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1800,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:1800,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1801,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:1801,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:1803,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:1803,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:1804,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:1804,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:1806,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:1806,1
    - Dst: ssl_cert
      Src: /src/libtorrent/src/torrent.cpp:1808,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/torrent.cpp:1809,1
    - Dst: torrent::init_ssl
      Src: /src/libtorrent/src/torrent.cpp:1813,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:1817,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1819,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:1820,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:1824,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1826,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:1827,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:1832,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:1835,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:1836,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:1841,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent.cpp:1846,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:1846,1
    - Dst: torrent::rename_file
      Src: /src/libtorrent/src/torrent.cpp:1847,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent.cpp:1847,1
    - Dst: torrent::construct_storage
      Src: /src/libtorrent/src/torrent.cpp:1851,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:1854,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:1857,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:1858,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:1858,1
    - Dst: self
      Src: /src/libtorrent/src/torrent.cpp:1875,1
    - Dst: auto::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:1876,1
    - Dst: auto::on_metadata_impl
      Src: /src/libtorrent/src/torrent.cpp:1877,1
    - Dst: auto::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:1878,1
    - Dst: auto::init
      Src: /src/libtorrent/src/torrent.cpp:1879,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:1886,1
    - Dst: torrent::update_piece_priorities
      Src: /src/libtorrent/src/torrent.cpp:1891,1
    - Dst: piece_priorities::size
      Src: /src/libtorrent/src/torrent.cpp:1898,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent.cpp:1898,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:1898,1
    - Dst: piece_priorities::resize
      Src: /src/libtorrent/src/torrent.cpp:1899,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent.cpp:1899,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:1899,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:1903,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:1905,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:1906,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:1910,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:1916,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:1917,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:1918,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:1922,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1924,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:1924,1
    - Dst: libtorrent::aux::apply_pad_files
      Src: /src/libtorrent/src/torrent.cpp:1929,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:1932,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent.cpp:1933,1
    - Dst: set_pad_bytes
      Src: /src/libtorrent/src/torrent.cpp:1934,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:1941,1
    - Dst: torrent::we_have
      Src: /src/libtorrent/src/torrent.cpp:1944,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:1948,1
    - Dst: similar_torrents
      Src: /src/libtorrent/src/torrent.cpp:1952,1
    - Dst: collections
      Src: /src/libtorrent/src/torrent.cpp:1953,1
    - Dst: similar_torrents
      Src: /src/libtorrent/src/torrent.cpp:1957,1
    - Dst: find_torrent
      Src: /src/libtorrent/src/torrent.cpp:1959,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/torrent.cpp:1959,1
    - Dst: std::shared_ptr::is_seed
      Src: /src/libtorrent/src/torrent.cpp:1965,1
    - Dst: resolve_links::match
      Src: /src/libtorrent/src/torrent.cpp:1967,1
    - Dst: std::shared_ptr::get_torrent_file
      Src: /src/libtorrent/src/torrent.cpp:1967,1
    - Dst: std::shared_ptr::save_path
      Src: /src/libtorrent/src/torrent.cpp:1967,1
    - Dst: collections
      Src: /src/libtorrent/src/torrent.cpp:1969,1
    - Dst: find_collection
      Src: /src/libtorrent/src/torrent.cpp:1971,1
    - Dst: std::shared_ptr::is_seed
      Src: /src/libtorrent/src/torrent.cpp:1978,1
    - Dst: resolve_links::match
      Src: /src/libtorrent/src/torrent.cpp:1980,1
    - Dst: std::shared_ptr::get_torrent_file
      Src: /src/libtorrent/src/torrent.cpp:1980,1
    - Dst: std::shared_ptr::save_path
      Src: /src/libtorrent/src/torrent.cpp:1980,1
    - Dst: resolve_links::get_links
      Src: /src/libtorrent/src/torrent.cpp:1984,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:1985,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/torrent.cpp:1987,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:1987,1
    - Dst: combine_path
      Src: /src/libtorrent/src/torrent.cpp:1991,1
    - Dst: ti::files
      Src: /src/libtorrent/src/torrent.cpp:1992,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:1999,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:2005,1
    - Dst: get
      Src: /src/libtorrent/src/torrent.cpp:2006,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:2007,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:2007,1
    - Dst: torrent::on_resume_data_checked
      Src: /src/libtorrent/src/torrent.cpp:2008,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2010,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:2012,1
    - Dst: torrent::on_resume_data_checked
      Src: /src/libtorrent/src/torrent.cpp:2016,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:2019,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:2020,1
    - Dst: torrent::maybe_done_flushing
      Src: /src/libtorrent/src/torrent.cpp:2023,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 1789
    functionDepth: 3
    functionLinenumber: 1789
    functionLinenumberEnd: 2026
    functionName: torrent::init
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::construct_storage
    - torrent::update_want_peers
    - piece_priorities::size
    - libtorrent::aux::apply_pad_files
    - disk_thread
    - std::move
    - block_size
    - valid_metadata
    - empty
    - set_pad_bytes
    - torrent::set_error
    - aux::vector::resize
    - self
    - torrent::pause
    - deferred_submit_jobs
    - std::shared_ptr::is_seed
    - auto::empty
    - ssl_cert
    - resolve_links::get_links
    - is_single_thread
    - end_file
    - num_pieces
    - torrent::on_resume_data_checked
    - std::size_t
    - piece_priorities::resize
    - clear
    - file_index_t
    - total_size
    - auto::init
    - shared_from_this
    - ti::files
    - torrent::update_piece_priorities
    - piece_size
    - torrent::we_have
    - info_hash_t
    - files
    - num_files
    - torrent::maybe_done_flushing
    - resolve_links::match
    - TORRENT_ASSERT
    - has_picker
    - similar_torrents
    - have_piece
    - find_collection
    - find_torrent
    - std::shared_ptr::save_path
    - size
    - torrent_file
    - torrent::init_ssl
    - torrent::update_state_list
    - collections
    - std::vector::push_back
    - auto::is_disconnecting
    - combine_path
    - std::shared_ptr::get_torrent_file
    - torrent::rename_file
    - torrent::set_state
    - torrent::need_picker
    - torrent::debug_log
    - auto::on_metadata_impl
    - torrent::update_want_tick
    - piece_length
    - resize
    - torrent::update_gauge
    - get
    - torrent::set_piece_priority
    linkageType: ''
    returnType: void
    signature: void torrent::init()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:2033,1
    - Dst: type
      Src: /src/libtorrent/src/torrent.cpp:2034,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:2035,1
    - Dst: auto*::supports_holepunch
      Src: /src/libtorrent/src/torrent.cpp:2036,1
    - Dst: auto*::was_introduced_by
      Src: /src/libtorrent/src/torrent.cpp:2037,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:2040,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2043
    functionName: torrent::find_introducer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - auto*::supports_holepunch
    - TORRENT_INCREMENT
    - static_cast<bt_peer_connection*>
    - type
    - auto*::was_introduced_by
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bt_peer_connection
    signature: bt_peer_connection * torrent::find_introducer(tcp::endpoint const&
      ep) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:2049,1
    - Dst: type
      Src: /src/libtorrent/src/torrent.cpp:2050,1
    - Dst: remote
      Src: /src/libtorrent/src/torrent.cpp:2051,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:2051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2054
    functionName: torrent::find_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_INCREMENT
    - static_cast<bt_peer_connection*>
    - remote
    - type
    linkageType: ''
    returnType: bt_peer_connection
    signature: bt_peer_connection * torrent::find_peer(tcp::endpoint const& ep) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pid
      Src: /src/libtorrent/src/torrent.cpp:2060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' pid'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2063
    functionName: torrent::find_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - pid
    linkageType: ''
    returnType: peer_connection
    signature: peer_connection * torrent::find_peer(peer_id const& pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/libtorrent/src/torrent.cpp:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pid'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2065
    functionDepth: 0
    functionLinenumber: 2065
    functionLinenumberEnd: 2068
    functionName: torrent::is_self_connection
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: bool
    signature: bool torrent::is_self_connection(peer_id const& pid) const
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2074,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2086,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:2086,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2094,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2095,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:2095,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2100,1
    - Dst: torrent::handle_disk_error
      Src: /src/libtorrent/src/torrent.cpp:2101,1
    - Dst: torrent::auto_managed
      Src: /src/libtorrent/src/torrent.cpp:2102,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:2103,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:2106,1
    - Dst: torrent::add_peer
      Src: /src/libtorrent/src/torrent.cpp:2114,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:2118,1
    - Dst: peers::empty
      Src: /src/libtorrent/src/torrent.cpp:2118,1
    - Dst: address
      Src: /src/libtorrent/src/torrent.cpp:2123,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2126,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:2127,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/torrent.cpp:2128,1
    - Dst: torrent::add_peer
      Src: /src/libtorrent/src/torrent.cpp:2134,1
    - Dst: torrent::ban_peer
      Src: /src/libtorrent/src/torrent.cpp:2135,1
    - Dst: peers::empty
      Src: /src/libtorrent/src/torrent.cpp:2138,1
    - Dst: banned_peers::empty
      Src: /src/libtorrent/src/torrent.cpp:2139,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:2141,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:2145,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2146,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:2147,1
    - Dst: libtorrent::aux::contains_resume_data
      Src: /src/libtorrent/src/torrent.cpp:2155,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2156,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2158,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:2158,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:2160,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:2160,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:2165,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2169,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2170,1
    - Dst: ec::value
      Src: /src/libtorrent/src/torrent.cpp:2170,1
    - Dst: operation_name
      Src: /src/libtorrent/src/torrent.cpp:2171,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2172,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:2172,1
    - Dst: ec::message
      Src: /src/libtorrent/src/torrent.cpp:2173,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2177,1
    - Dst: have_pieces::empty
      Src: /src/libtorrent/src/torrent.cpp:2188,1
    - Dst: have_pieces::size
      Src: /src/libtorrent/src/torrent.cpp:2189,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:2189,1
    - Dst: have_pieces::end_index
      Src: /src/libtorrent/src/torrent.cpp:2192,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:2208,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:2209,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:2213,1
    - Dst: verified_pieces::size
      Src: /src/libtorrent/src/torrent.cpp:2213,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2214,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2215,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2216,1
    - Dst: set_bit
      Src: /src/libtorrent/src/torrent.cpp:2219,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:2227,1
    - Dst: have_pieces::size
      Src: /src/libtorrent/src/torrent.cpp:2227,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2228,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2229,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2229,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:2232,1
    - Dst: piece_flushed
      Src: /src/libtorrent/src/torrent.cpp:2233,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:2234,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:2235,1
    - Dst: torrent::we_have
      Src: /src/libtorrent/src/torrent.cpp:2236,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2241,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2248,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2248,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:2253,1
    - Dst: torrent::leave_seed_mode
      Src: /src/libtorrent/src/torrent.cpp:2258,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:2260,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:2260,1
    - Dst: we_dont_have
      Src: /src/libtorrent/src/torrent.cpp:2262,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:2263,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:2266,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:2268,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:2268,1
    - Dst: get_bit
      Src: /src/libtorrent/src/torrent.cpp:2271,1
    - Dst: mark_as_finished
      Src: /src/libtorrent/src/torrent.cpp:2273,1
    - Dst: piece_block
      Src: /src/libtorrent/src/torrent.cpp:2273,1
    - Dst: is_piece_finished
      Src: /src/libtorrent/src/torrent.cpp:2276,1
    - Dst: torrent::verify_piece
      Src: /src/libtorrent/src/torrent.cpp:2278,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:2289,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:2290,1
    - Dst: torrent::stop_announcing
      Src: /src/libtorrent/src/torrent.cpp:2295,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:2296,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:2297,1
    - Dst: torrent::start_checking
      Src: /src/libtorrent/src/torrent.cpp:2297,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:2300,1
    - Dst: torrent::files_checked
      Src: /src/libtorrent/src/torrent.cpp:2304,1
    - Dst: torrent::maybe_done_flushing
      Src: /src/libtorrent/src/torrent.cpp:2308,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2309,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:2310,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:2316,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 117
    argCount: 2
    argNames:
    - status
    - ' error'
    argTypes:
    - status_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2070
    functionDepth: 5
    functionLinenumber: 2070
    functionLinenumberEnd: 2316
    functionName: torrent::on_resume_data_checked
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - torrent::update_want_peers
    - have_pieces::end_index
    - peers::empty
    - torrent::stop_announcing
    - torrent::handle_exception
    - torrent::start_checking
    - torrent::files_checked
    - std::min
    - torrent::inc_stats_counter
    - torrent::leave_seed_mode
    - torrent::pause
    - mark_as_finished
    - alerts
    - reset
    - get_bit
    - libtorrent::aux::contains_resume_data
    - ec::value
    - torrent::add_peer
    - is_single_thread
    - piece_block
    - num_pieces
    - file
    - num_peers
    - address
    - operation_name
    - piece_flushed
    - set_bit
    - num_connect_candidates
    - torrent::we_have
    - torrent::maybe_done_flushing
    - banned_peers::empty
    - TORRENT_ASSERT
    - has_picker
    - torrent::resolve_filename
    - have_piece
    - torrent::state_updated
    - piece_index_t
    - torrent_file
    - size
    - verified_pieces::size
    - torrent::update_state_list
    - is_piece_finished
    - torrent::should_log
    - torrent::ban_peer
    - torrent::should_check_files
    - torrent::set_state
    - torrent::handle_disk_error
    - torrent::get_handle
    - torrent::debug_log
    - std::string::c_str
    - torrent::need_picker
    - ec::message
    - have_pieces::empty
    - we_dont_have
    - have_pieces::size
    - torrent::verify_piece
    - trigger_auto_manage
    - torrent::update_gauge
    - torrent::auto_managed
    linkageType: ''
    returnType: void
    signature: "void torrent::on_resume_data_checked(status_t status\n\t\t, storage_error
      const& error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:2322,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:2326,1
    - Dst: torrent::clear_error
      Src: /src/libtorrent/src/torrent.cpp:2330,1
    - Dst: torrent::disconnect_all
      Src: /src/libtorrent/src/torrent.cpp:2332,1
    - Dst: torrent::stop_announcing
      Src: /src/libtorrent/src/torrent.cpp:2333,1
    - Dst: torrent::leave_seed_mode
      Src: /src/libtorrent/src/torrent.cpp:2337,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:2346,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:2346,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:2346,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:2348,1
    - Dst: torrent::init
      Src: /src/libtorrent/src/torrent.cpp:2349,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:2349,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:2349,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:2355,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:2356,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:2357,1
    - Dst: torrent::set_queue_position
      Src: /src/libtorrent/src/torrent.cpp:2359,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2361,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:2362,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:2366,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:2368,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:2369,1
    - Dst: torrent::on_force_recheck
      Src: /src/libtorrent/src/torrent.cpp:2370,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:2371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2318
    functionDepth: 4
    functionLinenumber: 2318
    functionLinenumberEnd: 2372
    functionName: torrent::force_recheck
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::stop_announcing
    - disk_thread
    - valid_metadata
    - torrent::leave_seed_mode
    - deferred_submit_jobs
    - torrent::clear_error
    - reset
    - torrent::on_force_recheck
    - clear
    - torrent::disconnect_all
    - total_size
    - shared_from_this
    - files
    - picker
    - TORRENT_ASSERT
    - torrent::init
    - torrent::set_queue_position
    - torrent::should_check_files
    - torrent::set_state
    - torrent::update_want_tick
    - piece_length
    - resize
    - torrent::update_gauge
    linkageType: ''
    returnType: void
    signature: void torrent::force_recheck()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2376,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:2376,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:2379,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2387,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2388,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:2388,1
    - Dst: torrent::handle_disk_error
      Src: /src/libtorrent/src/torrent.cpp:2393,1
    - Dst: torrent::files_checked
      Src: /src/libtorrent/src/torrent.cpp:2399,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2404,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2405,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:2407,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:2408,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:2409,1
    - Dst: torrent::start_checking
      Src: /src/libtorrent/src/torrent.cpp:2409,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:2410,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:2413,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - status
    - ' error'
    argTypes:
    - status_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2374
    functionDepth: 5
    functionLinenumber: 2374
    functionLinenumberEnd: 2413
    functionName: torrent::on_force_recheck
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::handle_exception
    - torrent::should_check_files
    - is_single_thread
    - torrent::set_state
    - torrent::get_handle
    - torrent::handle_disk_error
    - torrent::files_checked
    - torrent::start_checking
    - TORRENT_ASSERT
    - trigger_auto_manage
    - torrent::pause
    - torrent::state_updated
    - piece_index_t
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::on_force_recheck(status_t status, storage_error const&
      error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2417,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:2417,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2419,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:2419,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:2420,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:2425,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2425,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2429,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2430,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:2435,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2438,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2439,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:2439,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:2446,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:2449,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:2450,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:2457,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2460,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2463,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/torrent.cpp:2464,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2464,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:2467,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:2468,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:2468,1
    - Dst: torrent::on_piece_hashed
      Src: /src/libtorrent/src/torrent.cpp:2470,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:2470,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:2472,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:2474,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2476,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2477,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:2480,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2415
    functionDepth: 2
    functionLinenumber: 2415
    functionLinenumberEnd: 2480
    functionName: torrent::start_checking
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - torrent::handle_exception
    - std::move
    - disk_thread
    - block_size
    - std::max
    - aux::vector::resize
    - deferred_submit_jobs
    - torrent::on_piece_hashed
    - num_pieces
    - shared_from_this
    - TORRENT_ASSERT
    - has_picker
    - have_piece
    - torrent_file
    - torrent::should_check_files
    - torrent::debug_log
    - piece_length
    - settings
    - end_piece
    linkageType: ''
    returnType: void
    signature: void torrent::start_checking()
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2488,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:2488,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:2494,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:2504,1
    - Dst: system_category
      Src: /src/libtorrent/src/torrent.cpp:2504,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2508,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:2508,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent.cpp:2508,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:2511,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:2512,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:2512,1
    - Dst: map_file
      Src: /src/libtorrent/src/torrent.cpp:2513,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:2513,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2516,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2516,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2517,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2517,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2525,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2526,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:2527,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:2527,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:2527,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:2530,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2532,1
    - Dst: ec::value
      Src: /src/libtorrent/src/torrent.cpp:2532,1
    - Dst: ec::message
      Src: /src/libtorrent/src/torrent.cpp:2533,1
    - Dst: torrent::auto_managed
      Src: /src/libtorrent/src/torrent.cpp:2536,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:2537,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:2538,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:2538,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:2542,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/torrent.cpp:2547,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:2547,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2547,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2548,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2553,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2555,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/src/torrent.cpp:2556,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2560,1
    - Dst: torrent::on_blocks_hashed
      Src: /src/libtorrent/src/torrent.cpp:2562,1
    - Dst: torrent::handle_inconsistent_hashes
      Src: /src/libtorrent/src/torrent.cpp:2572,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:2577,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:2579,1
    - Dst: piece_flushed
      Src: /src/libtorrent/src/torrent.cpp:2580,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:2581,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:2582,1
    - Dst: torrent::we_have
      Src: /src/libtorrent/src/torrent.cpp:2584,1
    - Dst: boost::indeterminate
      Src: /src/libtorrent/src/torrent.cpp:2587,1
    - Dst: boost::indeterminate
      Src: /src/libtorrent/src/torrent.cpp:2588,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:2596,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:2597,1
    - Dst: mark_as_finished
      Src: /src/libtorrent/src/torrent.cpp:2599,1
    - Dst: piece_block
      Src: /src/libtorrent/src/torrent.cpp:2599,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:2602,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:2602,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:2605,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:2609,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:2619,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:2622,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2625,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2631,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2632,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:2632,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:2637,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2642,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2644,1
    - Dst: aux::vector<sha256_hash>::resize
      Src: /src/libtorrent/src/torrent.cpp:2645,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2645,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:2648,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:2649,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:2649,1
    - Dst: torrent::on_piece_hashed
      Src: /src/libtorrent/src/torrent.cpp:2651,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:2651,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:2653,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2655,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2656,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2662,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2665,1
    - Dst: get_int
      Src: /src/libtorrent/src/torrent.cpp:2667,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent.cpp:2668,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:2671,1
    - Dst: get_int_setting
      Src: /src/libtorrent/src/torrent.cpp:2672,1
    - Dst: get_int_setting
      Src: /src/libtorrent/src/torrent.cpp:2673,1
    - Dst: get_int_setting
      Src: /src/libtorrent/src/torrent.cpp:2674,1
    - Dst: num_torrents
      Src: /src/libtorrent/src/torrent.cpp:2675,1
    - Dst: torrent::set_paused
      Src: /src/libtorrent/src/torrent.cpp:2681,1
    - Dst: torrent::files_checked
      Src: /src/libtorrent/src/torrent.cpp:2685,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2688,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:2689,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:2691,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 105
    argCount: 4
    argNames:
    - block_hashes
    - piece
    - ' piece_hash'
    - ' error'
    argTypes:
    - aux::vector<sha256_hash>
    - piece_index_t
    - sha1_hash
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2484
    functionDepth: 3
    functionLinenumber: 2484
    functionLinenumberEnd: 2691
    functionName: torrent::on_piece_hashed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - num_torrents
    - torrent::handle_exception
    - std::move
    - disk_thread
    - std::uint32_t
    - torrent::set_error
    - std::min
    - set_need_save_resume
    - file_size
    - torrent::pause
    - deferred_submit_jobs
    - mark_as_finished
    - alerts
    - torrent::on_piece_hashed
    - ec::value
    - is_single_thread
    - torrent::handle_inconsistent_hashes
    - piece_block
    - get_int
    - blocks_in_piece
    - file
    - file_index_t
    - map_file
    - torrent::on_blocks_hashed
    - piece_flushed
    - shared_from_this
    - torrent::set_paused
    - torrent::we_have
    - files
    - libtorrent::aux::max
    - aux::vector<sha256_hash>::resize
    - TORRENT_ASSERT
    - has_picker
    - boost::indeterminate
    - get_int_setting
    - torrent::resolve_filename
    - have_piece
    - torrent::state_updated
    - piece_index_t
    - torrent_file
    - system_category
    - torrent::should_log
    - hash_for_piece
    - torrent::should_check_files
    - error_code
    - torrent::get_handle
    - torrent::need_picker
    - torrent::debug_log
    - torrent::files_checked
    - std::int64_t
    - ec::message
    - trigger_auto_manage
    - settings
    - torrent::update_gauge
    - torrent::auto_managed
    - end_piece
    linkageType: ''
    returnType: void
    signature: "void torrent::on_piece_hashed(aux::vector<sha256_hash> block_hashes\n\t\t,
      piece_index_t const piece, sha1_hash const& piece_hash\n\t\t, storage_error
      const& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<settings_pack>
      Src: /src/libtorrent/src/torrent.cpp:2696,1
    - Dst: std::shared_ptr::set_str
      Src: /src/libtorrent/src/torrent.cpp:2697,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:2697,1
    - Dst: apply_settings_pack
      Src: /src/libtorrent/src/torrent.cpp:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - net_interfaces
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2694
    functionDepth: 0
    functionLinenumber: 2694
    functionLinenumberEnd: 2699
    functionName: torrent::use_interface
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::set_str
    - std::make_shared<settings_pack>
    - apply_settings_pack
    - std::move
    linkageType: ''
    returnType: void
    signature: void torrent::use_interface(std::string net_interfaces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:2704,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2705,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:2705,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2706,1
    - Dst: torrent::announce_with_tracker
      Src: /src/libtorrent/src/torrent.cpp:2710,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:2712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2702
    functionDepth: 2
    functionLinenumber: 2702
    functionLinenumberEnd: 2712
    functionName: torrent::on_tracker_announce
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - is_single_thread
    - torrent::announce_with_tracker
    - TORRENT_ASSERT
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void torrent::on_tracker_announce(error_code const& ec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:2722,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:2727,1
    - Dst: priv
      Src: /src/libtorrent/src/torrent.cpp:2727,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/torrent.cpp:2732,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2732,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:2736,1
    - Dst: has_lsd
      Src: /src/libtorrent/src/torrent.cpp:2738,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:2744,1
    - Dst: ssl_listen_port
      Src: /src/libtorrent/src/torrent.cpp:2744,1
    - Dst: listen_port
      Src: /src/libtorrent/src/torrent.cpp:2744,1
    - Dst: listen_port
      Src: /src/libtorrent/src/torrent.cpp:2746,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:2750,1
    - Dst: announce_lsd
      Src: /src/libtorrent/src/torrent.cpp:2752,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2714
    functionDepth: 1
    functionLinenumber: 2714
    functionLinenumberEnd: 2754
    functionName: torrent::lsd_announce
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - has_lsd
    - ssl_listen_port
    - is_ssl_torrent
    - torrent::is_paused
    - valid_metadata
    - is_valid
    - listen_port
    - info_hashes
    - is_i2p
    - settings
    - priv
    - announce_lsd
    linkageType: ''
    returnType: void
    signature: void torrent::lsd_announce()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2760,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:2760,1
    - Dst: dht
      Src: /src/libtorrent/src/torrent.cpp:2761,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2764,1
    - Dst: torrent::should_announce_dht
      Src: /src/libtorrent/src/torrent.cpp:2768,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:2771,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/torrent.cpp:2774,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2774,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2775,1
    - Dst: announce_dht
      Src: /src/libtorrent/src/torrent.cpp:2777,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2778,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:2780,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2781,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2784,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2787,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2790,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:2792,1
    - Dst: priv
      Src: /src/libtorrent/src/torrent.cpp:2792,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2793,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2795,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:2797,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/torrent.cpp:2797,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:2798,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:2798,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2802,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2809,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2812,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:2813,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:2817,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent.cpp:2827,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2827,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:2828,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2832,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:2838,1
    - Dst: dht
      Src: /src/libtorrent/src/torrent.cpp:2840,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:2841,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2758
    functionDepth: 2
    functionLinenumber: 2758
    functionLinenumberEnd: 2843
    functionName: torrent::dht_announce
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - is_valid
    - info_hashes
    - torrent::is_seed
    - dht
    - libtorrent::aux::time_now
    - is_ssl_torrent
    - std::uint16_t
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - is_i2p
    - priv
    - announce_dht
    - std::bind
    - torrent::should_log
    - std::count_if
    - torrent::debug_log
    - settings
    - torrent::should_announce_dht
    linkageType: ''
    returnType: void
    signature: void torrent::dht_announce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<torrent>::lock
      Src: /src/libtorrent/src/torrent.cpp:2848,1
    - Dst: std::shared_ptr::on_dht_announce_response
      Src: /src/libtorrent/src/torrent.cpp:2850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - t
    - v
    - ' peers'
    argTypes:
    - std::weak_ptr<torrent>
    - protocol_version
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2845
    functionDepth: 0
    functionLinenumber: 2845
    functionLinenumberEnd: 2851
    functionName: torrent::on_dht_announce_response_disp
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::on_dht_announce_response
    - std::weak_ptr<torrent>::lock
    linkageType: ''
    returnType: void
    signature: "void torrent::on_dht_announce_response_disp(std::weak_ptr<torrent>
      const t\n\t\t, protocol_version const v, std::vector<tcp::endpoint> const& peers)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2856,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:2856,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2859,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/torrent.cpp:2860,1
    - Dst: time_now
      Src: /src/libtorrent/src/torrent.cpp:2860,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:2861,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:2865,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2867,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:2869,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:2870,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:2870,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/torrent.cpp:2874,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2874,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:2877,1
    - Dst: torrent::add_peer
      Src: /src/libtorrent/src/torrent.cpp:2880,1
    - Dst: pex_flags_t
      Src: /src/libtorrent/src/torrent.cpp:2880,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:2883,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:2883,1
    - Dst: address
      Src: /src/libtorrent/src/torrent.cpp:2888,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2891,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:2892,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/torrent.cpp:2893,1
    - Dst: torrent::do_connect_boost
      Src: /src/libtorrent/src/torrent.cpp:2897,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:2899,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:2901,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - v
    - ' peers'
    argTypes:
    - protocol_version
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2853
    functionDepth: 2
    functionLinenumber: 2853
    functionLinenumberEnd: 2901
    functionName: torrent::on_dht_announce_response
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_want_peers
    - torrent::handle_exception
    - empty
    - alerts
    - torrent::add_peer
    - is_single_thread
    - pex_flags_t
    - address
    - time_now
    - num_connect_candidates
    - TORRENT_ASSERT
    - is_i2p
    - total_milliseconds
    - torrent_file
    - size
    - torrent::should_log
    - torrent::do_connect_boost
    - torrent::get_handle
    - std::string::c_str
    - torrent::debug_log
    - settings
    linkageType: ''
    returnType: void
    signature: "void torrent::on_dht_announce_response(protocol_version const v\n\t\t,
      std::vector<tcp::endpoint> const& peers)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/torrent.cpp:2912,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:2914,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:2916,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:2916,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:2916,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:2918,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:2920,1
    - Dst: libtorrent::aux::listen_socket_handle
      Src: /src/libtorrent/src/torrent.cpp:2920,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:2925,1
    - Dst: for_each_listen_socket
      Src: /src/libtorrent/src/torrent.cpp:2931,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/torrent.cpp:2932,1
    - Dst: std::swap
      Src: /src/libtorrent/src/torrent.cpp:2937,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:2942,1
    - Dst: std::swap
      Src: /src/libtorrent/src/torrent.cpp:2943,1
    - Dst: back
      Src: /src/libtorrent/src/torrent.cpp:2943,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2947,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:2947,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:2948,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:2948,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:2948,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - ' ses'
    - ' url'
    - is_ssl
    - complete_sent
    - ' aeps'
    argTypes:
    - aux::session_interface
    - std::string
    - bool
    - bool
    - std::vector<aux::announce_endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2906
    functionDepth: 1
    functionLinenumber: 2906
    functionLinenumberEnd: 2949
    functionName: refresh_endpoint_list
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - is_ssl
    - begin
    - erase
    - empty
    - end
    - std::swap
    - TORRENT_ASSERT
    - libtorrent::aux::listen_socket_handle
    - for_each_listen_socket
    - back
    - emplace_back
    - is_i2p_url
    - size
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void refresh_endpoint_list(aux::session_interface& ses\n\t\t, std::string
      const& url\n\t\t, bool const is_ssl, bool const complete_sent\n\t\t, std::vector<aux::announce_endpoint>&
      aeps)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/torrent.cpp:2912,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:2914,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:2916,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:2916,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:2916,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:2918,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:2920,1
    - Dst: libtorrent::aux::listen_socket_handle
      Src: /src/libtorrent/src/torrent.cpp:2920,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:2925,1
    - Dst: for_each_listen_socket
      Src: /src/libtorrent/src/torrent.cpp:2931,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/torrent.cpp:2932,1
    - Dst: std::swap
      Src: /src/libtorrent/src/torrent.cpp:2937,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:2942,1
    - Dst: std::swap
      Src: /src/libtorrent/src/torrent.cpp:2943,1
    - Dst: back
      Src: /src/libtorrent/src/torrent.cpp:2943,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2947,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:2947,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:2948,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:2948,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:2948,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - ' ses'
    - ' url'
    - is_ssl
    - complete_sent
    - ' aeps'
    argTypes:
    - aux::session_interface
    - std::string
    - bool
    - bool
    - std::vector<aux::announce_endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2906
    functionDepth: 1
    functionLinenumber: 2906
    functionLinenumberEnd: 2949
    functionName: refresh_endpoint_list
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - is_ssl
    - begin
    - erase
    - empty
    - end
    - std::swap
    - TORRENT_ASSERT
    - libtorrent::aux::listen_socket_handle
    - for_each_listen_socket
    - back
    - emplace_back
    - is_i2p_url
    - size
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void refresh_endpoint_list(aux::session_interface& ses\n\t\t, std::string
      const& url\n\t\t, bool const is_ssl, bool const complete_sent\n\t\t, std::vector<aux::announce_endpoint>&
      aeps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:2971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2970
    functionDepth: 0
    functionLinenumber: 2970
    functionLinenumberEnd: 2971
    functionName: announce_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void announce_state(aux::listen_socket_handle s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:2971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2970
    functionDepth: 0
    functionLinenumber: 2970
    functionLinenumberEnd: 2971
    functionName: announce_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void announce_state(aux::listen_socket_handle s)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2981,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:2981,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:2982,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:2982,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:2985,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:2988,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:2999,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3002,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3012,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3021,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3026,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:3028,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:3028,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3032,1
    - Dst: priv
      Src: /src/libtorrent/src/torrent.cpp:3038,1
    - Dst: total_payload_download
      Src: /src/libtorrent/src/torrent.cpp:3041,1
    - Dst: total_payload_upload
      Src: /src/libtorrent/src/torrent.cpp:3042,1
    - Dst: value_or
      Src: /src/libtorrent/src/torrent.cpp:3044,1
    - Dst: torrent::bytes_left
      Src: /src/libtorrent/src/torrent.cpp:3044,1
    - Dst: get
      Src: /src/libtorrent/src/torrent.cpp:3048,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3053,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:3063,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:3067,1
    - Dst: downloading_piece_progress
      Src: /src/libtorrent/src/torrent.cpp:3068,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3083,1
    - Dst: priv
      Src: /src/libtorrent/src/torrent.cpp:3085,1
    - Dst: for_each_listen_socket
      Src: /src/libtorrent/src/torrent.cpp:3087,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/torrent.cpp:3089,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:3089,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/torrent.cpp:3090,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3091,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/torrent.cpp:3092,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/torrent.cpp:3094,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3094,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3094,1
    - Dst: tracker_request::ipv6::push_back
      Src: /src/libtorrent/src/torrent.cpp:3095,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3095,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/torrent.cpp:3099,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3099,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3099,1
    - Dst: tracker_request::ipv4::push_back
      Src: /src/libtorrent/src/torrent.cpp:3100,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3100,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3107,1
    - Dst: has_v1
      Src: /src/libtorrent/src/torrent.cpp:3116,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent.cpp:3117,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:3123,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3129,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3130,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3133,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3135,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:3139,1
    - Dst: refresh_endpoint_list
      Src: /src/libtorrent/src/torrent.cpp:3148,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:3148,1
    - Dst: trackerid::empty
      Src: /src/libtorrent/src/torrent.cpp:3151,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/torrent.cpp:3155,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/torrent.cpp:3159,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3159,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:3175,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:3175,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:3175,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:3177,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:3179,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:3180,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3201,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3203,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:3206,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/torrent.cpp:3207,1
    - Dst: is_working
      Src: /src/libtorrent/src/torrent.cpp:3207,1
    - Dst: can_announce
      Src: /src/libtorrent/src/torrent.cpp:3208,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:3208,1
    - Dst: is_working
      Src: /src/libtorrent/src/torrent.cpp:3221,1
    - Dst: can_announce
      Src: /src/libtorrent/src/torrent.cpp:3222,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:3222,1
    - Dst: is_working
      Src: /src/libtorrent/src/torrent.cpp:3225,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:3243,1
    - Dst: torrent::tracker_login
      Src: /src/libtorrent/src/torrent.cpp:3253,1
    - Dst: torrent::tracker_key
      Src: /src/libtorrent/src/torrent.cpp:3255,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:3258,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3261,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3263,1
    - Dst: tracker_request::url::c_str
      Src: /src/libtorrent/src/torrent.cpp:3265,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/torrent.cpp:3270,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/torrent.cpp:3272,1
    - Dst: listen_port
      Src: /src/libtorrent/src/torrent.cpp:3274,1
    - Dst: ssl_listen_port
      Src: /src/libtorrent/src/torrent.cpp:3275,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:3278,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3283,1
    - Dst: std::make_shared<aux::tracker_logger>
      Src: /src/libtorrent/src/torrent.cpp:3285,1
    - Dst: queue_tracker_request
      Src: /src/libtorrent/src/torrent.cpp:3286,1
    - Dst: queue_tracker_request
      Src: /src/libtorrent/src/torrent.cpp:3291,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:3291,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3298,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3300,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:3301,1
    - Dst: is_working
      Src: /src/libtorrent/src/torrent.cpp:3305,1
    - Dst: all_of
      Src: /src/libtorrent/src/torrent.cpp:3314,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:3314,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:3314,1
    - Dst: torrent::update_tracker_timer
      Src: /src/libtorrent/src/torrent.cpp:3325,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 156
    argCount: 1
    argNames:
    - e
    argTypes:
    - event_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3326
      start: 2979
    functionDepth: 2
    functionLinenumber: 2979
    functionLinenumberEnd: 3326
    functionName: torrent::announce_with_tracker
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - value_or
    - ssl_listen_port
    - std::make_shared<aux::tracker_logger>
    - refresh_endpoint_list
    - libtorrent::aux::is_v6
    - tcp::endpoint::address
    - has_v2
    - total_payload_download
    - empty
    - tracker_request::ipv6::push_back
    - std::vector::begin
    - std::vector::emplace_back
    - torrent::tracker_login
    - info_hashes
    - torrent::is_seed
    - for_each_listen_socket
    - all_of
    - std::vector::end
    - libtorrent::aux::is_local
    - has_v1
    - tracker_request::url::c_str
    - alerts
    - queue_tracker_request
    - total_payload_upload
    - is_ssl_torrent
    - is_ssl
    - torrent::is_finished
    - get_local_endpoint
    - torrent::update_tracker_timer
    - is_single_thread
    - trackerid::empty
    - print_endpoint
    - TORRENT_INCREMENT
    - listen_port
    - is_working
    - shared_from_this
    - torrent::tracker_key
    - TORRENT_ASSERT
    - static_cast<void*>
    - is_i2p
    - can_announce
    - priv
    - is_i2p_url
    - size
    - url::c_str
    - std::find_if
    - state
    - torrent::should_log
    - tracker_request::ipv4::push_back
    - torrent::bytes_left
    - torrent::get_handle
    - torrent::debug_log
    - settings
    - downloading_piece_progress
    - libtorrent::aux::time_now32
    - get
    linkageType: ''
    returnType: void
    signature: void torrent::announce_with_tracker(event_t e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3330,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:3330,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:3332,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:3335,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:3337,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3341,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/torrent.cpp:3349,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/torrent.cpp:3351,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3351,1
    - Dst: refresh_endpoint_list
      Src: /src/libtorrent/src/torrent.cpp:3354,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:3354,1
    - Dst: priv
      Src: /src/libtorrent/src/torrent.cpp:3356,1
    - Dst: torrent::tracker_login
      Src: /src/libtorrent/src/torrent.cpp:3358,1
    - Dst: torrent::tracker_key
      Src: /src/libtorrent/src/torrent.cpp:3360,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:3366,1
    - Dst: queue_tracker_request
      Src: /src/libtorrent/src/torrent.cpp:3369,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:3369,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - idx
    - user_triggered
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3372
      start: 3328
    functionDepth: 2
    functionLinenumber: 3328
    functionLinenumberEnd: 3372
    functionName: torrent::scrape_tracker
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - queue_tracker_request
    - shared_from_this
    - refresh_endpoint_list
    - is_ssl_torrent
    - torrent::tracker_key
    - is_single_thread
    - empty
    - torrent::tracker_login
    - info_hashes
    - TORRENT_ASSERT
    - is_i2p
    - settings
    - priv
    - libtorrent::aux::time_now32
    - is_i2p_url
    - size
    linkageType: ''
    returnType: void
    signature: void torrent::scrape_tracker(int idx, bool const user_triggered)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3376,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:3376,1
    - Dst: torrent::find_tracker
      Src: /src/libtorrent/src/torrent.cpp:3383,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3396,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3397,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:3397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' req'
    - ' msg'
    argTypes:
    - tracker_request
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3399
      start: 3374
    functionDepth: 1
    functionLinenumber: 3374
    functionLinenumberEnd: 3399
    functionName: torrent::tracker_warning
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - is_single_thread
    - torrent::get_handle
    - TORRENT_ASSERT
    - torrent::find_tracker
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::tracker_warning(tracker_request const& req, std::string
      const& msg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3404,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:3404,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3407,1
    - Dst: torrent::find_tracker
      Src: /src/libtorrent/src/torrent.cpp:3412,1
    - Dst: aux::announce_entry*::find_endpoint
      Src: /src/libtorrent/src/torrent.cpp:3416,1
    - Dst: torrent::update_scrape_state
      Src: /src/libtorrent/src/torrent.cpp:3424,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3431,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3434,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:3435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - ' req'
    - complete
    - incomplete
    - downloaded
    argTypes:
    - tracker_request
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3401
    functionDepth: 1
    functionLinenumber: 3401
    functionLinenumberEnd: 3437
    functionName: torrent::tracker_scrape_response
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - aux::announce_entry*::find_endpoint
    - is_single_thread
    - torrent::get_handle
    - TORRENT_ASSERT
    - torrent::update_scrape_state
    - torrent::find_tracker
    - alerts
    linkageType: ''
    returnType: void
    signature: "void torrent::tracker_scrape_response(tracker_request const& req\n\t\t,
      int const complete, int const incomplete, int const downloaded, int /* downloaders
      */)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:3453,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:3454,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:3455,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:3463,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/torrent.cpp:3469,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/torrent.cpp:3470,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/torrent.cpp:3471,1
    - Dst: torrent::update_auto_sequential
      Src: /src/libtorrent/src/torrent.cpp:3473,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:3476,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3478
      start: 3439
    functionDepth: 1
    functionLinenumber: 3439
    functionLinenumberEnd: 3478
    functionName: torrent::update_scrape_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - std::uint32_t
    - set_need_save_resume
    - torrent::update_auto_sequential
    - std::max
    - torrent::state_updated
    linkageType: ''
    returnType: void
    signature: void torrent::update_scrape_state()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3486,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:3486,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3489,1
    - Dst: address
      Src: /src/libtorrent/src/torrent.cpp:3494,1
    - Dst: is_unspecified
      Src: /src/libtorrent/src/torrent.cpp:3494,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/torrent.cpp:3495,1
    - Dst: outgoing_socket::get_local_endpoint
      Src: /src/libtorrent/src/torrent.cpp:3495,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:3499,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:3501,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:3504,1
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:3504,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3505,1
    - Dst: torrent::find_tracker
      Src: /src/libtorrent/src/torrent.cpp:3507,1
    - Dst: aux::announce_entry*::find_endpoint
      Src: /src/libtorrent/src/torrent.cpp:3511,1
    - Dst: last_error::clear
      Src: /src/libtorrent/src/torrent.cpp:3535,1
    - Dst: warning_message::empty
      Src: /src/libtorrent/src/torrent.cpp:3536,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent.cpp:3536,1
    - Dst: data
      Src: /src/libtorrent/src/torrent.cpp:3537,1
    - Dst: std::int8_t
      Src: /src/libtorrent/src/torrent.cpp:3538,1
    - Dst: trackerid::empty
      Src: /src/libtorrent/src/torrent.cpp:3540,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3543,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3544,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:3544,1
    - Dst: torrent::update_scrape_state
      Src: /src/libtorrent/src/torrent.cpp:3548,1
    - Dst: torrent::update_tracker_timer
      Src: /src/libtorrent/src/torrent.cpp:3551,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:3555,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3559,1
    - Dst: to_string
      Src: /src/libtorrent/src/torrent.cpp:3564,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3567,1
    - Dst: auto::count
      Src: /src/libtorrent/src/torrent.cpp:3569,1
    - Dst: min_interval::count
      Src: /src/libtorrent/src/torrent.cpp:3570,1
    - Dst: print_address
      Src: /src/libtorrent/src/torrent.cpp:3571,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:3572,1
    - Dst: print_address
      Src: /src/libtorrent/src/torrent.cpp:3573,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:3576,1
    - Dst: string_ends_with
      Src: /src/libtorrent/src/torrent.cpp:3591,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:3593,1
    - Dst: i2pconn::async_name_lookup
      Src: /src/libtorrent/src/torrent.cpp:3594,1
    - Dst: hostname::c_str
      Src: /src/libtorrent/src/torrent.cpp:3594,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:3595,1
    - Dst: torrent::on_i2p_resolve
      Src: /src/libtorrent/src/torrent.cpp:3596,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:3600,1
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:3601,1
    - Dst: add_i2p_peer
      Src: /src/libtorrent/src/torrent.cpp:3602,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:3603,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:3604,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:3610,1
    - Dst: get_resolver
      Src: /src/libtorrent/src/torrent.cpp:3611,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:3612,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:3612,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:3621,1
    - Dst: base32encode_i2p
      Src: /src/libtorrent/src/torrent.cpp:3623,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:3626,1
    - Dst: i2pconn::async_name_lookup
      Src: /src/libtorrent/src/torrent.cpp:3627,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:3627,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:3628,1
    - Dst: torrent::on_i2p_resolve
      Src: /src/libtorrent/src/torrent.cpp:3629,1
    - Dst: pex_flags_t
      Src: /src/libtorrent/src/torrent.cpp:3643,1
    - Dst: address_v4
      Src: /src/libtorrent/src/torrent.cpp:3648,1
    - Dst: torrent::add_peer
      Src: /src/libtorrent/src/torrent.cpp:3649,1
    - Dst: address_v6
      Src: /src/libtorrent/src/torrent.cpp:3654,1
    - Dst: torrent::add_peer
      Src: /src/libtorrent/src/torrent.cpp:3655,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3659,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/torrent.cpp:3659,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/torrent.cpp:3659,1
    - Dst: address_v4
      Src: /src/libtorrent/src/torrent.cpp:3664,1
    - Dst: address_v6
      Src: /src/libtorrent/src/torrent.cpp:3669,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3672,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent.cpp:3673,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/torrent.cpp:3674,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:3677,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:3679,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3682,1
    - Dst: peers::size
      Src: /src/libtorrent/src/torrent.cpp:3685,1
    - Dst: peers4::size
      Src: /src/libtorrent/src/torrent.cpp:3685,1
    - Dst: i2p_peers::size
      Src: /src/libtorrent/src/torrent.cpp:3687,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3689,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:3690,1
    - Dst: peers6::size
      Src: /src/libtorrent/src/torrent.cpp:3691,1
    - Dst: torrent::do_connect_boost
      Src: /src/libtorrent/src/torrent.cpp:3694,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:3696,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 4
    argNames:
    - ' r'
    - ' tracker_ip'
    - ' tracker_ips'
    - ' resp'
    argTypes:
    - tracker_request
    - address
    - std::list<address>
    - struct tracker_response
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3697
      start: 3480
    functionDepth: 2
    functionLinenumber: 3480
    functionLinenumberEnd: 3697
    functionName: torrent::tracker_response
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - torrent::update_want_peers
    - last_error::clear
    - torrent::get_peer_list_state
    - outgoing_socket::get_local_endpoint
    - std::int8_t
    - std::max
    - peers::size
    - torrent::peers_erased
    - torrent::find_tracker
    - min_interval::count
    - peers4::empty
    - alerts
    - data
    - ADD_OUTSTANDING_ASYNC
    - torrent::update_tracker_timer
    - torrent::add_peer
    - is_single_thread
    - set_external_address
    - trackerid::empty
    - pex_flags_t
    - address
    - shared_from_this
    - seconds32
    - print_address
    - num_connect_candidates
    - add_i2p_peer
    - is_unspecified
    - get_resolver
    - std::string
    - hostname::c_str
    - TORRENT_ASSERT
    - base32encode_i2p
    - warning_message::empty
    - i2pconn::async_name_lookup
    - peers6::empty
    - torrent::state_updated
    - address_v4
    - torrent_file
    - TORRENT_UNUSED
    - std::bind
    - peers4::size
    - aux::announce_entry*::find_endpoint
    - torrent::should_log
    - address_v6
    - torrent::do_connect_boost
    - string_ends_with
    - torrent::get_handle
    - std::string::c_str
    - torrent::debug_log
    - auto::count
    - torrent::update_scrape_state
    - torrent::on_i2p_resolve
    - peers6::size
    - settings
    - libtorrent::aux::time_now32
    - i2p_peers::size
    - torrent::need_peer_list
    linkageType: ''
    returnType: void
    signature: "void torrent::tracker_response(\n\t\ttracker_request const& r\n\t\t,
      address const& tracker_ip // this is the IP we connected to\n\t\t, std::list<address>
      const& tracker_ips // these are all the IPs it resolved to\n\t\t, struct tracker_response
      const& resp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3701,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:3707,1
    - Dst: torrent::num_downloaders
      Src: /src/libtorrent/src/torrent.cpp:3718,1
    - Dst: torrent::num_seeds
      Src: /src/libtorrent/src/torrent.cpp:3719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3722
      start: 3699
    functionDepth: 1
    functionLinenumber: 3699
    functionLinenumberEnd: 3722
    functionName: torrent::update_auto_sequential
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - num_peers
    - torrent::num_seeds
    - torrent::num_downloaders
    - settings
    linkageType: ''
    returnType: void
    signature: void torrent::update_auto_sequential()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:3731,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:3732,1
    - Dst: num_connections
      Src: /src/libtorrent/src/torrent.cpp:3732,1
    - Dst: torrent::want_peers
      Src: /src/libtorrent/src/torrent.cpp:3739,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3741,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:3744,1
    - Dst: connect_one_peer
      Src: /src/libtorrent/src/torrent.cpp:3745,1
    - Dst: session_time
      Src: /src/libtorrent/src/torrent.cpp:3745,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:3746,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:3747,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:3750,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3755,1
    - Dst: external_address
      Src: /src/libtorrent/src/torrent.cpp:3757,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3758,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:3760,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/torrent.cpp:3760,1
    - Dst: torrent_peer*::rank
      Src: /src/libtorrent/src/torrent.cpp:3761,1
    - Dst: listen_port
      Src: /src/libtorrent/src/torrent.cpp:3761,1
    - Dst: print_address
      Src: /src/libtorrent/src/torrent.cpp:3762,1
    - Dst: external_address
      Src: /src/libtorrent/src/torrent.cpp:3762,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/torrent.cpp:3762,1
    - Dst: session_time
      Src: /src/libtorrent/src/torrent.cpp:3763,1
    - Dst: torrent::connect_to_peer
      Src: /src/libtorrent/src/torrent.cpp:3767,1
    - Dst: inc_failcount
      Src: /src/libtorrent/src/torrent.cpp:3769,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:3770,1
    - Dst: inc_boost_connections
      Src: /src/libtorrent/src/torrent.cpp:3777,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:3778,1
    - Dst: torrent::want_peers
      Src: /src/libtorrent/src/torrent.cpp:3782,1
    - Dst: prioritize_connections
      Src: /src/libtorrent/src/torrent.cpp:3782,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:3782,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3783
      start: 3724
    functionDepth: 1
    functionLinenumber: 3724
    functionLinenumberEnd: 3783
    functionName: torrent::do_connect_boost
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - torrent::update_want_peers
    - prioritize_connections
    - torrent::connect_to_peer
    - torrent::get_peer_list_state
    - std::min
    - torrent::inc_stats_counter
    - torrent::peers_erased
    - inc_failcount
    - print_endpoint
    - listen_port
    - torrent_peer*::ip
    - shared_from_this
    - print_address
    - external_address
    - TORRENT_ASSERT
    - torrent::want_peers
    - num_connections
    - torrent_peer*::address
    - torrent::should_log
    - inc_boost_connections
    - connect_one_peer
    - torrent::debug_log
    - torrent_peer*::rank
    - settings
    - session_time
    linkageType: ''
    returnType: void
    signature: void torrent::do_connect_boost()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent.cpp:3791,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:3792,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:3795,1
    - Dst: refresh_endpoint_list
      Src: /src/libtorrent/src/torrent.cpp:3804,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:3804,1
    - Dst: time_point_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:3810,1
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:3810,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:3811,1
    - Dst: time_point_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:3811,1
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:3811,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:3820,1
    - Dst: time_point_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:3828,1
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:3828,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:3829,1
    - Dst: time_point_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:3829,1
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:3829,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3842,1
    - Dst: torrent::update_tracker_timer
      Src: /src/libtorrent/src/torrent.cpp:3845,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:3845,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - t
    - tracker_idx
    - flags
    argTypes:
    - time_point
    - int
    - reannounce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3846
      start: 3788
    functionDepth: 2
    functionLinenumber: 3788
    functionLinenumberEnd: 3846
    functionName: torrent::force_tracker_request
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - seconds32
    - refresh_endpoint_list
    - is_ssl_torrent
    - torrent::update_tracker_timer
    - time_point_cast<seconds32>
    - TORRENT_ASSERT_PRECOND
    - torrent::debug_log
    - std::max
    - torrent::is_paused
    - libtorrent::aux::time_now32
    - size
    linkageType: ''
    returnType: void
    signature: "void torrent::force_tracker_request(time_point const t, int const
      tracker_idx\n\t\t, reannounce_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' pw'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3854
      start: 3849
    functionDepth: 0
    functionLinenumber: 3849
    functionLinenumberEnd: 3854
    functionName: torrent::set_tracker_login
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void torrent::set_tracker_login(std::string const& name\n\t\t, std::string
      const& pw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3860,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:3860,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:3864,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3866,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3867,1
    - Dst: message
      Src: /src/libtorrent/src/torrent.cpp:3867,1
    - Dst: is_aborted
      Src: /src/libtorrent/src/torrent.cpp:3869,1
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:3871,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:3872,1
    - Dst: add_i2p_peer
      Src: /src/libtorrent/src/torrent.cpp:3873,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:3874,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:3875,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:3877,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:3879,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ' ec'
    - dest
    argTypes:
    - error_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3858
    functionDepth: 2
    functionLinenumber: 3858
    functionLinenumberEnd: 3879
    functionName: torrent::on_i2p_resolve
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::update_want_peers
    - is_aborted
    - torrent::state_updated
    - torrent::should_log
    - torrent::handle_exception
    - add_i2p_peer
    - is_single_thread
    - message
    - torrent::get_peer_list_state
    - torrent::debug_log
    - TORRENT_ASSERT
    - torrent::peers_erased
    - torrent::need_peer_list
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void torrent::on_i2p_resolve(error_code const& ec, char const* dest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3886,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:3886,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:3890,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3893,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3894,1
    - Dst: message
      Src: /src/libtorrent/src/torrent.cpp:3894,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:3897,1
    - Dst: is_aborted
      Src: /src/libtorrent/src/torrent.cpp:3897,1
    - Dst: front
      Src: /src/libtorrent/src/torrent.cpp:3900,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent.cpp:3900,1
    - Dst: access
      Src: /src/libtorrent/src/torrent.cpp:3902,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3902,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3905,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3907,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3907,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3910,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:3911,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:3911,1
    - Dst: torrent::add_peer
      Src: /src/libtorrent/src/torrent.cpp:3916,1
    - Dst: pex_flags_t
      Src: /src/libtorrent/src/torrent.cpp:3916,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:3918,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:3921,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:3923,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:3924,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/torrent.cpp:3925,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:3929,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:3931,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 4
    argNames:
    - ' e'
    - ' host_list'
    - port
    - v
    argTypes:
    - error_code
    - std::vector<address>
    - int
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3931
      start: 3882
    functionDepth: 2
    functionLinenumber: 3882
    functionLinenumberEnd: 3931
    functionName: torrent::on_peer_name_lookup
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_want_peers
    - torrent::handle_exception
    - tcp::endpoint::address
    - empty
    - alerts
    - is_aborted
    - std::uint16_t
    - torrent::add_peer
    - is_single_thread
    - message
    - front
    - pex_flags_t
    - COMPLETE_ASYNC
    - access
    - num_connect_candidates
    - TORRENT_ASSERT
    - torrent::state_updated
    - torrent::should_log
    - torrent::get_handle
    - torrent::debug_log
    linkageType: ''
    returnType: void
    signature: "void torrent::on_peer_name_lookup(error_code const& e\n\t\t, std::vector<address>
      const& host_list, int const port\n\t\t, protocol_version const v)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:3937,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3938,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:3938,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:3939,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:3940,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:3940,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:3940,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:3940,1
    - Dst: have
      Src: /src/libtorrent/src/torrent.cpp:3942,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:3944,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:3945,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:3945,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:3952,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:3952,1
    - Dst: last_piece
      Src: /src/libtorrent/src/torrent.cpp:3952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3956
      start: 3933
    functionDepth: 1
    functionLinenumber: 3933
    functionLinenumberEnd: 3956
    functionName: torrent::bytes_left
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - total_size
    - valid_metadata
    - last_piece
    - TORRENT_ASSERT
    - num_pieces
    - std::int64_t
    - has_picker
    - torrent::is_seed
    - piece_length
    - piece_size
    - have
    linkageType: ''
    returnType: boost::optional<std::int64_t>
    signature: boost::optional<std::int64_t> torrent::bytes_left() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3963,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3966,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3969,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:3969,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3972,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:3972,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:3972,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:3974,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:3974,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:3975,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:3975,1
    - Dst: last_piece
      Src: /src/libtorrent/src/torrent.cpp:3975,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:3976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' fs'
    - ' pc'
    argTypes:
    - file_storage
    - piece_count
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3977
      start: 3960
    functionDepth: 1
    functionLinenumber: 3960
    functionLinenumberEnd: 3977
    functionName: calc_bytes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 6
    functionsReached:
    - last_piece
    - TORRENT_ASSERT
    - num_pieces
    - std::int64_t
    - piece_length
    - piece_size
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t calc_bytes(file_storage const& fs, piece_count const&
      pc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3989,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:3989,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3990,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:3992,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:3992,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:3992,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:3993,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:3995,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:4000,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4003,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4004,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4005,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:4005,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4008,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4016,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4016,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:4018,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:4020,1
    - Dst: calc_bytes
      Src: /src/libtorrent/src/torrent.cpp:4020,1
    - Dst: want
      Src: /src/libtorrent/src/torrent.cpp:4020,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:4021,1
    - Dst: total_on_disk
      Src: /src/libtorrent/src/torrent.cpp:4021,1
    - Dst: calc_bytes
      Src: /src/libtorrent/src/torrent.cpp:4022,1
    - Dst: have_want
      Src: /src/libtorrent/src/torrent.cpp:4022,1
    - Dst: calc_bytes
      Src: /src/libtorrent/src/torrent.cpp:4023,1
    - Dst: have
      Src: /src/libtorrent/src/torrent.cpp:4023,1
    - Dst: calc_bytes
      Src: /src/libtorrent/src/torrent.cpp:4024,1
    - Dst: all_pieces
      Src: /src/libtorrent/src/torrent.cpp:4024,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4026,1
    - Dst: calc_bytes
      Src: /src/libtorrent/src/torrent.cpp:4026,1
    - Dst: all_pieces
      Src: /src/libtorrent/src/torrent.cpp:4026,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4027,1
    - Dst: calc_bytes
      Src: /src/libtorrent/src/torrent.cpp:4027,1
    - Dst: all_pieces
      Src: /src/libtorrent/src/torrent.cpp:4027,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4029,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4030,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4031,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4032,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4033,1
    - Dst: torrent::get_download_queue
      Src: /src/libtorrent/src/torrent.cpp:4041,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:4045,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:4045,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:4050,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4052,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:4052,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:4054,1
    - Dst: pad_bytes_in_piece
      Src: /src/libtorrent/src/torrent.cpp:4055,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:4055,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:4056,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4057,1
    - Dst: torrent::piece_priority
      Src: /src/libtorrent/src/torrent.cpp:4059,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4063,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4064,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 2
    argNames:
    - ' st'
    - flags
    argTypes:
    - torrent_status
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4065
      start: 3981
    functionDepth: 2
    functionLinenumber: 3981
    functionLinenumberEnd: 4065
    functionName: torrent::bytes_done
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - have_want
    - all_pieces
    - block_size
    - valid_metadata
    - std::vector::begin
    - std::min
    - torrent::is_seed
    - torrent::get_download_queue
    - std::vector::end
    - num_pieces
    - blocks_in_piece
    - want
    - total_size
    - files
    - calc_bytes
    - TORRENT_ASSERT
    - has_picker
    - have_piece
    - have
    - total_on_disk
    - torrent::piece_priority
    - std::int64_t
    - pad_bytes_in_piece
    linkageType: ''
    returnType: void
    signature: void torrent::bytes_done(torrent_status& st, status_flags_t const flags)
      const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4071,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:4071,1
    - Dst: completed_hash_job
      Src: /src/libtorrent/src/torrent.cpp:4076,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:4081,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:4091,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/torrent.cpp:4093,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/src/torrent.cpp:4093,1
    - Dst: aux::vector<sha256_hash>::empty
      Src: /src/libtorrent/src/torrent.cpp:4096,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4098,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:4098,1
    - Dst: torrent::on_blocks_hashed
      Src: /src/libtorrent/src/torrent.cpp:4099,1
    - Dst: torrent::handle_inconsistent_hashes
      Src: /src/libtorrent/src/torrent.cpp:4105,1
    - Dst: torrent::handle_disk_error
      Src: /src/libtorrent/src/torrent.cpp:4111,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:4114,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:4116,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:4117,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:4122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4125,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:4125,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4130,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:4132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4134,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:4134,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:4136,1
    - Dst: is_piece_finished
      Src: /src/libtorrent/src/torrent.cpp:4144,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:4148,1
    - Dst: torrent::piece_passed
      Src: /src/libtorrent/src/torrent.cpp:4154,1
    - Dst: torrent::verified
      Src: /src/libtorrent/src/torrent.cpp:4157,1
    - Dst: torrent::piece_failed
      Src: /src/libtorrent/src/torrent.cpp:4162,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:4165,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 52
    argCount: 4
    argNames:
    - block_hashes
    - piece
    - ' piece_hash'
    - ' error'
    argTypes:
    - aux::vector<sha256_hash>
    - piece_index_t
    - sha1_hash
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4165
      start: 4067
    functionDepth: 5
    functionLinenumber: 4067
    functionLinenumberEnd: 4165
    functionName: torrent::on_piece_verified
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - torrent::handle_exception
    - valid_metadata
    - torrent::piece_failed
    - torrent::update_gauge
    - is_single_thread
    - torrent::handle_inconsistent_hashes
    - torrent::piece_passed
    - sha1_hash
    - torrent::on_blocks_hashed
    - torrent::verified
    - TORRENT_ASSERT
    - has_picker
    - have_piece
    - completed_hash_job
    - torrent::state_updated
    - torrent_file
    - is_piece_finished
    - torrent::should_log
    - hash_for_piece
    - torrent::handle_disk_error
    - torrent::need_picker
    - torrent::debug_log
    - settings
    - piece_size
    - aux::vector<sha256_hash>::empty
    linkageType: ''
    returnType: void
    signature: "void torrent::on_piece_verified(aux::vector<sha256_hash> block_hashes\n\t\t,
      piece_index_t const piece\n\t\t, sha1_hash const& piece_hash, storage_error
      const& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4169,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:4169,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:4174,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:4175,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:4175,1
    - Dst: get_availability
      Src: /src/libtorrent/src/torrent.cpp:4176,1
    - Dst: torrent::add_piece
      Src: /src/libtorrent/src/torrent.cpp:4178,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:4179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4167
    functionDepth: 4
    functionLinenumber: 4167
    functionLinenumberEnd: 4180
    functionName: torrent::add_suggest_piece
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::add_piece
    - get_availability
    - torrent::need_picker
    - TORRENT_ASSERT
    - std::max
    - num_peers
    - settings
    linkageType: ''
    returnType: void
    signature: void torrent::add_suggest_piece(piece_index_t const index)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4192,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:4192,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4193,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4193,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:4193,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:4195,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/torrent.cpp:4203,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:4203,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4204,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4205,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:4209,1
    - Dst: self
      Src: /src/libtorrent/src/torrent.cpp:4217,1
    - Dst: auto::received_piece
      Src: /src/libtorrent/src/torrent.cpp:4222,1
    - Dst: auto::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:4223,1
    - Dst: auto::announce_piece
      Src: /src/libtorrent/src/torrent.cpp:4230,1
    - Dst: auto::fill_send_buffer
      Src: /src/libtorrent/src/torrent.cpp:4231,1
    - Dst: on_piece_pass
      Src: /src/libtorrent/src/torrent.cpp:4237,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:4248,1
    - Dst: auto::is_interesting
      Src: /src/libtorrent/src/torrent.cpp:4250,1
    - Dst: auto::has_piece
      Src: /src/libtorrent/src/torrent.cpp:4253,1
    - Dst: auto::update_interest
      Src: /src/libtorrent/src/torrent.cpp:4254,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:4259,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:4260,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:4261,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4264,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4265,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:4265,1
    - Dst: update
      Src: /src/libtorrent/src/torrent.cpp:4268,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:4268,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4271,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4274,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:4275,1
    - Dst: torrent::remove_time_critical_piece
      Src: /src/libtorrent/src/torrent.cpp:4280,1
    - Dst: is_downloading_state
      Src: /src/libtorrent/src/torrent.cpp:4283,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:4287,1
    - Dst: torrent::finished
      Src: /src/libtorrent/src/torrent.cpp:4293,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:4298,1
    - Dst: torrent::recalc_share_mode
      Src: /src/libtorrent/src/torrent.cpp:4302,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:4305,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 2
    argNames:
    - index
    - loading_resume
    argTypes:
    - piece_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4306
      start: 4190
    functionDepth: 2
    functionLinenumber: 4190
    functionLinenumberEnd: 4306
    functionName: torrent::we_have
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - update
    - begin
    - torrent::inc_stats_counter
    - set_need_save_resume
    - auto::has_piece
    - self
    - torrent::remove_time_critical_piece
    - alerts
    - auto::announce_piece
    - torrent::is_finished
    - is_single_thread
    - end
    - TORRENT_INCREMENT
    - torrent::recalc_share_mode
    - on_piece_pass
    - auto::received_piece
    - auto::is_interesting
    - erase
    - files
    - TORRENT_ASSERT
    - has_picker
    - have_piece
    - is_downloading_state
    - torrent::state_updated
    - auto::is_disconnecting
    - auto::fill_send_buffer
    - torrent::get_handle
    - torrent::finished
    - torrent::update_want_tick
    - auto::update_interest
    - libtorrent::aux::time_now32
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void torrent::we_have(piece_index_t const index, bool const loading_resume)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: torrent::need_hash_picker
      Src: /src/libtorrent/src/torrent.cpp:4312,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:4314,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:4315,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4318,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/torrent.cpp:4318,1
    - Dst: std::fill
      Src: /src/libtorrent/src/torrent.cpp:4321,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:4321,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4321,1
    - Dst: set_block_hash_result
      Src: /src/libtorrent/src/torrent.cpp:4323,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/torrent.cpp:4329,1
    - Dst: get_hash_picker
      Src: /src/libtorrent/src/torrent.cpp:4331,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4336,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4338,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4343,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4344,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:4358,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:4359,1
    - Dst: std::fill_n
      Src: /src/libtorrent/src/torrent.cpp:4360,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:4360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4364,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4365,1
    - Dst: auto::piece_range
      Src: /src/libtorrent/src/torrent.cpp:4370,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4372,1
    - Dst: is_piece_finished
      Src: /src/libtorrent/src/torrent.cpp:4374,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:4375,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4378,1
    - Dst: get_hash_picker
      Src: /src/libtorrent/src/torrent.cpp:4378,1
    - Dst: piece_flushed
      Src: /src/libtorrent/src/torrent.cpp:4379,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:4380,1
    - Dst: torrent::we_have
      Src: /src/libtorrent/src/torrent.cpp:4381,1
    - Dst: set_block_hash_result::piece_range
      Src: /src/libtorrent/src/torrent.cpp:4399,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4401,1
    - Dst: we_dont_have
      Src: /src/libtorrent/src/torrent.cpp:4405,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:4406,1
    - Dst: torrent::piece_failed
      Src: /src/libtorrent/src/torrent.cpp:4407,1
    - Dst: boost::indeterminate
      Src: /src/libtorrent/src/torrent.cpp:4411,1
    - Dst: all_of
      Src: /src/libtorrent/src/torrent.cpp:4411,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:4411,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4411,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 2
    argNames:
    - piece
    - block_hashes
    argTypes:
    - piece_index_t
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4417
      start: 4308
    functionDepth: 3
    functionLinenumber: 4308
    functionLinenumberEnd: 4417
    functionName: torrent::on_blocks_hashed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - set_block_hash_result::piece_range
    - begin
    - std::min
    - auto::piece_range
    - std::max
    - all_of
    - is_all_zeros
    - std::fill_n
    - torrent::piece_failed
    - end
    - torrent::need_hash_picker
    - piece_flushed
    - set_block_hash_result
    - torrent::we_have
    - TORRENT_ASSERT
    - has_picker
    - boost::indeterminate
    - have_piece
    - torrent_file
    - is_piece_finished
    - span<sha256_hash const>::size
    - get_hash_picker
    - std::fill
    - we_dont_have
    - torrent::update_gauge
    linkageType: ''
    returnType: boost::tribool
    signature: "boost::tribool torrent::on_blocks_hashed(piece_index_t const piece\n\t\t,
      span<sha256_hash const> const block_hashes)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4427,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:4427,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4428,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:4428,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:4431,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:4432,1
    - Dst: num_have
      Src: /src/libtorrent/src/torrent.cpp:4432,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4437,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:4437,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4438,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:4438,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:4440,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:4442,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:4444,1
    - Dst: torrent::add_suggest_piece
      Src: /src/libtorrent/src/torrent.cpp:4451,1
    - Dst: get_downloaders
      Src: /src/libtorrent/src/torrent.cpp:4458,1
    - Dst: std::remove_copy
      Src: /src/libtorrent/src/torrent.cpp:4465,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:4465,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:4465,1
    - Dst: inserter
      Src: /src/libtorrent/src/torrent.cpp:4466,1
    - Dst: std::set::begin
      Src: /src/libtorrent/src/torrent.cpp:4466,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/torrent.cpp:4466,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4472,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4474,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:4482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4483,1
    - Dst: auto*::received_valid_data
      Src: /src/libtorrent/src/torrent.cpp:4484,1
    - Dst: torrent::piece_passed
      Src: /src/libtorrent/src/torrent.cpp:4488,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:4489,1
    - Dst: torrent::we_have
      Src: /src/libtorrent/src/torrent.cpp:4490,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:4493,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:4494,1
    - Dst: num_have
      Src: /src/libtorrent/src/torrent.cpp:4494,1
    - Dst: torrent::remove_time_critical_piece
      Src: /src/libtorrent/src/torrent.cpp:4497,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4499
      start: 4424
    functionDepth: 5
    functionLinenumber: 4424
    functionLinenumberEnd: 4499
    functionName: torrent::piece_passed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - std::vector::begin
    - torrent::inc_stats_counter
    - set_need_save_resume
    - std::vector::end
    - torrent::remove_time_critical_piece
    - num_have
    - is_single_thread
    - std::set::begin
    - static_cast<torrent_peer*>
    - torrent::piece_passed
    - static_cast<peer_connection*>
    - auto*::received_valid_data
    - torrent::add_suggest_piece
    - torrent::we_have
    - get_downloaders
    - TORRENT_ASSERT
    - have_piece
    - inserter
    - piece_index_t
    - torrent::should_log
    - torrent::debug_log
    - std::remove_copy
    - settings
    - torrent::update_gauge
    - end_piece
    linkageType: ''
    returnType: void
    signature: void torrent::piece_passed(piece_index_t const index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/torrent.cpp:4509,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:4509,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4510,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4511,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:4515,1
    - Dst: peer_log
      Src: /src/libtorrent/src/torrent.cpp:4517,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:4518,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:4520,1
    - Dst: announce_piece
      Src: /src/libtorrent/src/torrent.cpp:4522,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:4525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - index
    - milliseconds
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4526
      start: 4507
    functionDepth: 1
    functionLinenumber: 4507
    functionLinenumberEnd: 4526
    functionName: torrent::predicted_have_piece
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - insert
    - end
    - TORRENT_INCREMENT
    - announce_piece
    - std::lower_bound
    - peer_log
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void torrent::predicted_have_piece(piece_index_t const index, int const
      milliseconds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4539,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:4539,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4541,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4541,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4542,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:4542,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4543,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:4543,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4544,1
    - Dst: std::is_sorted
      Src: /src/libtorrent/src/torrent.cpp:4544,1
    - Dst: std::vector<int>::begin
      Src: /src/libtorrent/src/torrent.cpp:4544,1
    - Dst: std::vector<int>::end
      Src: /src/libtorrent/src/torrent.cpp:4544,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:4546,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/torrent.cpp:4549,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:4549,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4550,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4551,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:4555,1
    - Dst: reject_piece
      Src: /src/libtorrent/src/torrent.cpp:4558,1
    - Dst: write_dont_have
      Src: /src/libtorrent/src/torrent.cpp:4561,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:4563,1
    - Dst: get_downloaders
      Src: /src/libtorrent/src/torrent.cpp:4567,1
    - Dst: std::vector<int>::empty
      Src: /src/libtorrent/src/torrent.cpp:4577,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:4577,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent.cpp:4579,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent.cpp:4579,1
    - Dst: std::copy
      Src: /src/libtorrent/src/torrent.cpp:4583,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:4583,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:4583,1
    - Dst: inserter
      Src: /src/libtorrent/src/torrent.cpp:4583,1
    - Dst: std::set::begin
      Src: /src/libtorrent/src/torrent.cpp:4583,1
    - Dst: std::set::size
      Src: /src/libtorrent/src/torrent.cpp:4591,1
    - Dst: std::set::count
      Src: /src/libtorrent/src/torrent.cpp:4591,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:4593,1
    - Dst: std::vector<int>::empty
      Src: /src/libtorrent/src/torrent.cpp:4593,1
    - Dst: torrent::verify_block_hashes
      Src: /src/libtorrent/src/torrent.cpp:4598,1
    - Dst: std::vector<int>::empty
      Src: /src/libtorrent/src/torrent.cpp:4605,1
    - Dst: torrent::add_failed_bytes
      Src: /src/libtorrent/src/torrent.cpp:4606,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:4606,1
    - Dst: torrent::add_failed_bytes
      Src: /src/libtorrent/src/torrent.cpp:4608,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:4608,1
    - Dst: std::vector<int>::size
      Src: /src/libtorrent/src/torrent.cpp:4608,1
    - Dst: on_piece_failed
      Src: /src/libtorrent/src/torrent.cpp:4613,1
    - Dst: std::set::size
      Src: /src/libtorrent/src/torrent.cpp:4620,1
    - Dst: std::vector<int>::empty
      Src: /src/libtorrent/src/torrent.cpp:4620,1
    - Dst: torrent::penalize_peers
      Src: /src/libtorrent/src/torrent.cpp:4622,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4634,1
    - Dst: lock_piece
      Src: /src/libtorrent/src/torrent.cpp:4638,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:4643,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:4644,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:4644,1
    - Dst: torrent::on_piece_sync
      Src: /src/libtorrent/src/torrent.cpp:4645,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:4646,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4650,1
    - Dst: torrent::on_piece_sync
      Src: /src/libtorrent/src/torrent.cpp:4654,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:4654,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - index
    - blocks
    argTypes:
    - piece_index_t
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4656
      start: 4531
    functionDepth: 1
    functionLinenumber: 4531
    functionLinenumberEnd: 4656
    functionName: torrent::piece_failed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - write_dont_have
    - static_cast<int>
    - std::is_sorted
    - std::move
    - disk_thread
    - begin
    - torrent::penalize_peers
    - std::vector::begin
    - torrent::inc_stats_counter
    - deferred_submit_jobs
    - std::vector::end
    - lock_piece
    - std::vector<int>::size
    - is_single_thread
    - end
    - reject_piece
    - TORRENT_INCREMENT
    - std::copy
    - std::set::begin
    - std::size_t
    - std::set::size
    - shared_from_this
    - piece_size
    - get_downloaders
    - erase
    - TORRENT_ASSERT
    - has_picker
    - on_piece_failed
    - inserter
    - piece_index_t
    - std::vector<int>::begin
    - torrent_file
    - torrent::add_failed_bytes
    - std::vector::empty
    - std::vector<int>::end
    - std::set::count
    - std::vector<int>::empty
    - torrent::verify_block_hashes
    - torrent::on_piece_sync
    - std::set::insert
    - std::lower_bound
    - end_piece
    linkageType: ''
    returnType: void
    signature: void torrent::piece_failed(piece_index_t const index, std::vector<int>
      blocks)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4664,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:4668,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4669,1
    - Dst: auto*::received_invalid_data
      Src: /src/libtorrent/src/torrent.cpp:4674,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:4677,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/torrent.cpp:4690,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4701,1
    - Dst: connection::pid
      Src: /src/libtorrent/src/torrent.cpp:4704,1
    - Dst: peer_id
      Src: /src/libtorrent/src/torrent.cpp:4704,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4705,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:4706,1
    - Dst: ip
      Src: /src/libtorrent/src/torrent.cpp:4706,1
    - Dst: torrent::ban_peer
      Src: /src/libtorrent/src/torrent.cpp:4710,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:4711,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:4712,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:4716,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:4718,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:4720,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:4721,1
    - Dst: ip
      Src: /src/libtorrent/src/torrent.cpp:4721,1
    - Dst: auto*::peer_log
      Src: /src/libtorrent/src/torrent.cpp:4723,1
    - Dst: auto*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:4725,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - ' peers'
    - index
    - known_bad_peer
    argTypes:
    - std::set<torrent_peer*>
    - piece_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4729
      start: 4658
    functionDepth: 1
    functionLinenumber: 4658
    functionLinenumberEnd: 4729
    functionName: torrent::penalize_peers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - static_cast<peer_connection*>
    - torrent::update_want_peers
    - torrent::ban_peer
    - torrent::should_log
    - std::uint8_t
    - auto*::received_invalid_data
    - ip
    - torrent::get_handle
    - torrent::debug_log
    - peer_id
    - TORRENT_ASSERT
    - connection::pid
    - torrent::inc_stats_counter
    - print_endpoint
    - auto*::disconnect
    - settings
    - auto*::peer_log
    - alerts
    linkageType: ''
    returnType: void
    signature: "void torrent::penalize_peers(std::set<torrent_peer*> const& peers\n\t\t,
      piece_index_t const index, bool const known_bad_peer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4736,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:4736,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/torrent.cpp:4738,1
    - Dst: send_interested
      Src: /src/libtorrent/src/torrent.cpp:4739,1
    - Dst: has_peer_choked
      Src: /src/libtorrent/src/torrent.cpp:4740,1
    - Dst: allowed_fast
      Src: /src/libtorrent/src/torrent.cpp:4741,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/torrent.cpp:4744,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:4745,1
    - Dst: send_block_requests
      Src: /src/libtorrent/src/torrent.cpp:4746,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4747
      start: 4731
    functionDepth: 2
    functionLinenumber: 4731
    functionLinenumberEnd: 4747
    functionName: torrent::peer_is_interesting
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - request_a_block
    - torrent::is_finished
    - allowed_fast
    - send_block_requests
    - in_handshake
    - TORRENT_ASSERT
    - torrent::inc_stats_counter
    - has_peer_choked
    - send_interested
    linkageType: ''
    returnType: void
    signature: void torrent::peer_is_interesting(peer_connection& c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4753,1
    - Dst: restore_piece
      Src: /src/libtorrent/src/torrent.cpp:4757,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4759,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4760,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:4760,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4765,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:4765,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:4771,1
    - Dst: download_queue
      Src: /src/libtorrent/src/torrent.cpp:4772,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:4776,1
    - Dst: std::find
      Src: /src/libtorrent/src/torrent.cpp:4777,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:4777,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4777,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4777,1
    - Dst: mark_as_downloading
      Src: /src/libtorrent/src/torrent.cpp:4779,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:4779,1
    - Dst: picker_options
      Src: /src/libtorrent/src/torrent.cpp:4780,1
    - Dst: request_queue
      Src: /src/libtorrent/src/torrent.cpp:4782,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:4785,1
    - Dst: std::find
      Src: /src/libtorrent/src/torrent.cpp:4786,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:4786,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4786,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:4786,1
    - Dst: mark_as_downloading
      Src: /src/libtorrent/src/torrent.cpp:4788,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:4788,1
    - Dst: picker_options
      Src: /src/libtorrent/src/torrent.cpp:4789,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:4793,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 26
    argCount: 2
    argNames:
    - piece
    - ' blocks'
    argTypes:
    - piece_index_t
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4793
      start: 4749
    functionDepth: 2
    functionLinenumber: 4749
    functionLinenumberEnd: 4793
    functionName: torrent::on_piece_sync
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - picker_options
    - torrent::handle_exception
    - begin
    - restore_piece
    - download_queue
    - torrent::get_handle
    - empty
    - std::find
    - end
    - has_picker
    - TORRENT_ASSERT
    - TORRENT_INCREMENT
    - mark_as_downloading
    - peer_info_struct
    - have_piece
    - request_queue
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::on_piece_sync(piece_index_t const piece, std::vector<int>
      const& blocks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4797,1
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:4799,1
    - Dst: inc_refcount
      Src: /src/libtorrent/src/torrent.cpp:4800,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4804,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:4804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - index
    - peer
    argTypes:
    - piece_index_t
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4806
      start: 4795
    functionDepth: 1
    functionLinenumber: 4795
    functionLinenumberEnd: 4806
    functionName: torrent::peer_has
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - inc_refcount
    - has_picker
    - TORRENT_ASSERT
    - torrent::is_seed
    - peer_connection*::peer_info_struct
    linkageType: ''
    returnType: void
    signature: void torrent::peer_has(piece_index_t const index, peer_connection const*
      peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4812,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4814,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:4814,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:4814,1
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:4815,1
    - Dst: inc_refcount
      Src: /src/libtorrent/src/torrent.cpp:4816,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4820,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:4820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' bits'
    - peer
    argTypes:
    - typed_bitfield<piece_index_t>
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4822
      start: 4809
    functionDepth: 1
    functionLinenumber: 4809
    functionLinenumberEnd: 4822
    functionName: torrent::peer_has
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - inc_refcount
    - has_picker
    - TORRENT_ASSERT
    - size
    - torrent::is_seed
    - peer_connection*::peer_info_struct
    - torrent_file
    linkageType: ''
    returnType: void
    signature: "void torrent::peer_has(typed_bitfield<piece_index_t> const& bits\n\t\t,
      peer_connection const* peer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4826,1
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:4828,1
    - Dst: inc_refcount_all
      Src: /src/libtorrent/src/torrent.cpp:4829,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4833,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:4833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - peer
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4835
      start: 4824
    functionDepth: 1
    functionLinenumber: 4824
    functionLinenumberEnd: 4835
    functionName: torrent::peer_has_all
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - inc_refcount_all
    - has_picker
    - TORRENT_ASSERT
    - torrent::is_seed
    - peer_connection*::peer_info_struct
    linkageType: ''
    returnType: void
    signature: void torrent::peer_has_all(peer_connection const* peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:4840,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4842,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:4842,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:4842,1
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:4843,1
    - Dst: dec_refcount
      Src: /src/libtorrent/src/torrent.cpp:4844,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4848,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:4848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' bits'
    - peer
    argTypes:
    - typed_bitfield<piece_index_t>
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4837
    functionDepth: 1
    functionLinenumber: 4837
    functionLinenumberEnd: 4850
    functionName: torrent::peer_lost
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - dec_refcount
    - has_picker
    - TORRENT_ASSERT
    - size
    - torrent::is_seed
    - peer_connection*::peer_info_struct
    - torrent_file
    linkageType: ''
    returnType: void
    signature: "void torrent::peer_lost(typed_bitfield<piece_index_t> const& bits\n\t\t,
      peer_connection const* peer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:4856,1
    - Dst: dec_refcount
      Src: /src/libtorrent/src/torrent.cpp:4857,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4861,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:4861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - index
    - peer
    argTypes:
    - piece_index_t
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4863
      start: 4852
    functionDepth: 1
    functionLinenumber: 4852
    functionLinenumberEnd: 4863
    functionName: torrent::peer_lost
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - torrent::is_seed
    - peer_connection*::peer_info_struct
    - dec_refcount
    linkageType: ''
    returnType: void
    signature: void torrent::peer_lost(piece_index_t const index, peer_connection
      const* peer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4867,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:4867,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:4872,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:4873,1
    - Dst: torrent::update_want_scrape
      Src: /src/libtorrent/src/torrent.cpp:4874,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:4875,1
    - Dst: torrent::stop_announcing
      Src: /src/libtorrent/src/torrent.cpp:4876,1
    - Dst: torrent::set_queue_position
      Src: /src/libtorrent/src/torrent.cpp:4879,1
    - Dst: remove_class
      Src: /src/libtorrent/src/torrent.cpp:4883,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:4883,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:4884,1
    - Dst: cancel
      Src: /src/libtorrent/src/torrent.cpp:4888,1
    - Dst: torrent::log_to_all_peers
      Src: /src/libtorrent/src/torrent.cpp:4891,1
    - Dst: torrent::disconnect_all
      Src: /src/libtorrent/src/torrent.cpp:4896,1
    - Dst: torrent::on_remove_peers
      Src: /src/libtorrent/src/torrent.cpp:4899,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4900,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:4900,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:4907,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:4908,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:4908,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:4912,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:4913,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:4915,1
    - Dst: what
      Src: /src/libtorrent/src/torrent.cpp:4915,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4920,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4921,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:4921,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:4923,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4927,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4928,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:4928,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:4929,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:4929,1
    - Dst: info_hash
      Src: /src/libtorrent/src/torrent.cpp:4930,1
    - Dst: get_userdata
      Src: /src/libtorrent/src/torrent.cpp:4930,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:4938,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:4944,1
    - Dst: end_index
      Src: /src/libtorrent/src/torrent.cpp:4945,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:4947,1
    - Dst: unlink
      Src: /src/libtorrent/src/torrent.cpp:4948,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/torrent.cpp:4948,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4952
      start: 4865
    functionDepth: 2
    functionLinenumber: 4865
    functionLinenumberEnd: 4952
    functionName: torrent::abort
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::update_want_peers
    - torrent::stop_announcing
    - disk_thread
    - empty
    - cancel
    - in_list
    - torrent::inc_stats_counter
    - torrent::on_remove_peers
    - deferred_submit_jobs
    - alerts
    - reset
    - peer_classes
    - is_single_thread
    - remove_class
    - torrent::disconnect_all
    - torrent::log_to_all_peers
    - shared_from_this
    - get_userdata
    - info_hash
    - torrent_list
    - TORRENT_ASSERT
    - end_index
    - TORRENT_UNUSED
    - std::bind
    - torrent::update_state_list
    - torrent::set_queue_position
    - torrent::get_handle
    - unlink
    - torrent::debug_log
    - torrent::update_want_tick
    - torrent::update_want_scrape
    - torrent::update_gauge
    - what
    linkageType: ''
    returnType: void
    signature: void torrent::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:4958,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:4962,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:4963,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:4964,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:4965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4969
      start: 4956
    functionDepth: 1
    functionLinenumber: 4956
    functionLinenumberEnd: 4969
    functionName: torrent::panic
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - reset
    - clear
    linkageType: ''
    returnType: void
    signature: void torrent::panic()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:4977,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:4978,1
    - Dst: superseed_piece
      Src: /src/libtorrent/src/torrent.cpp:4985,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:4985,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:4985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - 'on'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4987
      start: 4972
    functionDepth: 1
    functionLinenumber: 4972
    functionLinenumberEnd: 4987
    functionName: torrent::set_super_seeding
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - superseed_piece
    - set_need_save_resume
    - torrent::state_updated
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void torrent::set_super_seeding(bool const on)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:4996,1
    - Dst: piece_range
      Src: /src/libtorrent/src/torrent.cpp:5001,1
    - Dst: super_seeded_piece
      Src: /src/libtorrent/src/torrent.cpp:5008,1
    - Dst: has_piece
      Src: /src/libtorrent/src/torrent.cpp:5016,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent.cpp:5021,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5024,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:5026,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent.cpp:5027,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:5030,1
    - Dst: random
      Src: /src/libtorrent/src/torrent.cpp:5031,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/torrent.cpp:5031,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/torrent.cpp:5031,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 4991
    functionDepth: 1
    functionLinenumber: 4991
    functionLinenumberEnd: 5032
    functionName: torrent::get_piece_to_super_seed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - has_piece
    - std::vector::push_back
    - std::vector::empty
    - std::vector::size
    - std::vector::clear
    - std::uint32_t
    - TORRENT_ASSERT
    - super_seeded_piece
    - piece_range
    - random
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t torrent::get_piece_to_super_seed(typed_bitfield<piece_index_t>
      const& bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5037,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:5037,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5041,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5042,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5042,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:5043,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5047,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5047,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:5047,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:5050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5050
      start: 5035
    functionDepth: 2
    functionLinenumber: 5035
    functionLinenumberEnd: 5050
    functionName: torrent::on_files_deleted
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - is_single_thread
    - torrent::get_handle
    - info_hashes
    - TORRENT_ASSERT
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::on_files_deleted(storage_error const& error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5056,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:5056,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5060,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5060,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5065,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5065,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:5066,1
    - Dst: torrent::rename_file
      Src: /src/libtorrent/src/torrent.cpp:5067,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:5069,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:5072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' filename'
    - file_idx
    - ' error'
    argTypes:
    - std::string
    - file_index_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5072
      start: 5052
    functionDepth: 2
    functionLinenumber: 5052
    functionLinenumberEnd: 5072
    functionName: torrent::on_file_renamed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - files
    - is_single_thread
    - torrent::rename_file
    - torrent::get_handle
    - TORRENT_ASSERT
    - set_need_save_resume
    - alerts
    linkageType: ''
    returnType: void
    signature: "void torrent::on_file_renamed(std::string const& filename\n\t\t, file_index_t
      const file_idx\n\t\t, storage_error const& error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5076,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:5076,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5078,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5079,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5079,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:5081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5081
      start: 5074
    functionDepth: 2
    functionLinenumber: 5074
    functionLinenumberEnd: 5081
    functionName: torrent::on_torrent_paused
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - is_single_thread
    - torrent::get_handle
    - TORRENT_ASSERT
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::on_torrent_paused()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:5086,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:5086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5088
      start: 5084
    functionDepth: 0
    functionLinenumber: 5084
    functionLinenumberEnd: 5088
    functionName: torrent::tracker_login
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string torrent::tracker_login() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/libtorrent/src/torrent.cpp:5093,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/libtorrent/src/torrent.cpp:5094,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:5096,1
    - Dst: static_cast<storage_index_t>
      Src: /src/libtorrent/src/torrent.cpp:5096,1
    - Dst: hasher
      Src: /src/libtorrent/src/torrent.cpp:5098,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/torrent.cpp:5098,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/torrent.cpp:5099,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/torrent.cpp:5100,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/torrent.cpp:5103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5104
      start: 5091
    functionDepth: 0
    functionLinenumber: 5091
    functionLinenumberEnd: 5104
    functionName: torrent::tracker_key
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - hasher
    - libtorrent::aux::read_uint32
    - static_cast<storage_index_t>
    - reinterpret_cast<uintptr_t>
    - static_cast<std::uint32_t>
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t torrent::tracker_key() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:5111,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent.cpp:5115,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:5119,1
    - Dst: download_queue
      Src: /src/libtorrent/src/torrent.cpp:5125,1
    - Dst: std::set::count
      Src: /src/libtorrent/src/torrent.cpp:5128,1
    - Dst: cancel_request
      Src: /src/libtorrent/src/torrent.cpp:5130,1
    - Dst: request_queue
      Src: /src/libtorrent/src/torrent.cpp:5135,1
    - Dst: std::set::count
      Src: /src/libtorrent/src/torrent.cpp:5138,1
    - Dst: cancel_request
      Src: /src/libtorrent/src/torrent.cpp:5139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5142
      start: 5107
    functionDepth: 1
    functionLinenumber: 5107
    functionLinenumberEnd: 5142
    functionName: torrent::cancel_non_critical
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - download_queue
    - std::set::count
    - has_picker
    - TORRENT_INCREMENT
    - request_queue
    - cancel_request
    - std::set::insert
    linkageType: ''
    returnType: void
    signature: void torrent::cancel_non_critical()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent.cpp:5149,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:5149,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent.cpp:5150,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5150,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent.cpp:5151,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5151,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:5151,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5153,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:5154,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:5155,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5160,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5161,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:5161,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent.cpp:5161,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:5166,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/torrent.cpp:5166,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:5171,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:5171,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:5171,1
    - Dst: torrent::read_piece
      Src: /src/libtorrent/src/torrent.cpp:5174,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:5180,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:5185,1
    - Dst: post
      Src: /src/libtorrent/src/torrent.cpp:5186,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent.cpp:5186,1
    - Dst: auto::wrap
      Src: /src/libtorrent/src/torrent.cpp:5186,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5189,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5190,1
    - Dst: std::next
      Src: /src/libtorrent/src/torrent.cpp:5197,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5197,1
    - Dst: std::next
      Src: /src/libtorrent/src/torrent.cpp:5197,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/src/torrent.cpp:5199,1
    - Dst: std::next
      Src: /src/libtorrent/src/torrent.cpp:5199,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5202,1
    - Dst: std::prev
      Src: /src/libtorrent/src/torrent.cpp:5202,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/src/torrent.cpp:5204,1
    - Dst: std::prev
      Src: /src/libtorrent/src/torrent.cpp:5204,1
    - Dst: torrent::piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5208,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:5209,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5210,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:5213,1
    - Dst: torrent::update_peer_interest
      Src: /src/libtorrent/src/torrent.cpp:5214,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:5219,1
    - Dst: min_time
      Src: /src/libtorrent/src/torrent.cpp:5222,1
    - Dst: min_time
      Src: /src/libtorrent/src/torrent.cpp:5223,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/torrent.cpp:5228,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5228,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5229,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:5230,1
    - Dst: torrent::piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5233,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:5234,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5235,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:5238,1
    - Dst: torrent::update_peer_interest
      Src: /src/libtorrent/src/torrent.cpp:5239,1
    - Dst: piece_info
      Src: /src/libtorrent/src/torrent.cpp:5243,1
    - Dst: get_downloaders
      Src: /src/libtorrent/src/torrent.cpp:5249,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:5252,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:5253,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:5257,1
    - Dst: auto*::make_time_critical
      Src: /src/libtorrent/src/torrent.cpp:5258,1
    - Dst: piece_block
      Src: /src/libtorrent/src/torrent.cpp:5258,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 3
    argNames:
    - piece
    - t
    - flags
    argTypes:
    - piece_index_t
    - int
    - deadline_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5260
      start: 5144
    functionDepth: 3
    functionLinenumber: 5144
    functionLinenumberEnd: 5260
    functionName: torrent::set_piece_deadline
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::upper_bound
    - valid_metadata
    - empty
    - std::vector::begin
    - torrent::is_seed
    - std::next
    - min_time
    - std::vector::end
    - libtorrent::aux::time_now
    - alerts
    - get_context
    - std::iter_swap
    - torrent::is_finished
    - end
    - piece_block
    - auto::wrap
    - piece_info
    - static_cast<peer_connection*>
    - shared_from_this
    - get_downloaders
    - std::prev
    - torrent::update_peer_interest
    - has_picker
    - generic_category
    - milliseconds
    - have_piece
    - auto*::make_time_critical
    - piece_index_t
    - torrent::piece_priority
    - post
    - error_code
    - insert
    - TORRENT_ASSERT_PRECOND
    - torrent::get_handle
    - torrent::need_picker
    - torrent::read_piece
    - torrent::update_gauge
    - torrent::set_piece_priority
    - end_piece
    linkageType: ''
    returnType: void
    signature: "void torrent::set_piece_deadline(piece_index_t const piece, int const
      t\n\t\t, deadline_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::remove_time_critical_piece
      Src: /src/libtorrent/src/torrent.cpp:5264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5265
      start: 5262
    functionDepth: 1
    functionLinenumber: 5262
    functionLinenumberEnd: 5265
    functionName: torrent::reset_piece_deadline
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::remove_time_critical_piece
    linkageType: ''
    returnType: void
    signature: void torrent::reset_piece_deadline(piece_index_t piece)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5269,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5269,1
    - Dst: torrent::read_piece
      Src: /src/libtorrent/src/torrent.cpp:5277,1
    - Dst: min_time
      Src: /src/libtorrent/src/torrent.cpp:5282,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:5286,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/torrent.cpp:5286,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:5286,1
    - Dst: std::abs
      Src: /src/libtorrent/src/torrent.cpp:5294,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5305,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5306,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:5306,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent.cpp:5306,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:5308,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5308,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:5309,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - piece
    - finished
    argTypes:
    - piece_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5312
      start: 5267
    functionDepth: 2
    functionLinenumber: 5267
    functionLinenumberEnd: 5312
    functionName: torrent::remove_time_critical_piece
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - alerts
    - begin
    - error_code
    - erase
    - end
    - torrent::get_handle
    - has_picker
    - torrent::read_piece
    - aux::numeric_cast<int>
    - generic_category
    - std::abs
    - min_time
    - total_milliseconds
    - torrent::set_piece_priority
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void torrent::remove_time_critical_piece(piece_index_t const piece,
      bool const finished)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5316,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5316,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5321,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5322,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:5322,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent.cpp:5322,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:5324,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5324,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:5325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5314
    functionDepth: 1
    functionLinenumber: 5314
    functionLinenumberEnd: 5327
    functionName: torrent::clear_time_critical
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - error_code
    - erase
    - torrent::get_handle
    - end
    - has_picker
    - generic_category
    - torrent::set_piece_priority
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::clear_time_critical()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5332,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5332,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5339,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5340,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:5340,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent.cpp:5340,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:5342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' priority'
    argTypes:
    - aux::vector<download_priority_t, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5330
    functionDepth: 0
    functionLinenumber: 5330
    functionLinenumberEnd: 5347
    functionName: torrent::remove_time_critical_pieces
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - error_code
    - erase
    - torrent::get_handle
    - end
    - generic_category
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::remove_time_critical_pieces(aux::vector<download_priority_t,
      piece_index_t> const& priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::piece_availability
      Src: /src/libtorrent/src/torrent.cpp:5353,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5354,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5354,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5355
      start: 5350
    functionDepth: 0
    functionLinenumber: 5350
    functionLinenumberEnd: 5355
    functionName: torrent::post_piece_availability
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - torrent::piece_availability
    - torrent::get_handle
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::post_piece_availability()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5361,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5361,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:5362,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:5364,1
    - Dst: get_availability
      Src: /src/libtorrent/src/torrent.cpp:5368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' avail'
    argTypes:
    - aux::vector<int, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5369
      start: 5357
    functionDepth: 1
    functionLinenumber: 5357
    functionLinenumberEnd: 5369
    functionName: torrent::piece_availability
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - get_availability
    - valid_metadata
    - TORRENT_ASSERT
    - has_picker
    - clear
    linkageType: ''
    returnType: void
    signature: void torrent::piece_availability(aux::vector<int, piece_index_t>& avail)
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5377,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:5379,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:5380,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent.cpp:5381,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5384,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:5384,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:5387,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:5387,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:5392,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:5394,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5395,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:5397,1
    - Dst: torrent::update_peer_interest
      Src: /src/libtorrent/src/torrent.cpp:5401,1
    - Dst: torrent::remove_time_critical_piece
      Src: /src/libtorrent/src/torrent.cpp:5403,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - index
    - priority
    argTypes:
    - piece_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5407
      start: 5371
    functionDepth: 3
    functionLinenumber: 5371
    functionLinenumberEnd: 5407
    functionName: torrent::set_piece_priority
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 5
    functionsReached:
    - static_cast<int>
    - torrent::is_finished
    - torrent::set_piece_priority
    - valid_metadata
    - torrent::need_picker
    - torrent::debug_log
    - torrent::update_peer_interest
    - torrent::is_seed
    - static_cast<std::uint8_t>
    - torrent::update_gauge
    - torrent::remove_time_critical_piece
    - piece_index_t
    - end_piece
    linkageType: ''
    returnType: void
    signature: "void torrent::set_piece_priority(piece_index_t const index\n\t\t,
      download_priority_t const priority)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:5413,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5416,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5416,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:5417,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:5417,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/torrent.cpp:5419,1
    - Dst: torrent::piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5424
      start: 5409
    functionDepth: 1
    functionLinenumber: 5409
    functionLinenumberEnd: 5424
    functionName: torrent::piece_priority
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - torrent::piece_priority
    - valid_metadata
    - has_picker
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - piece_index_t
    - end_piece
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t torrent::piece_priority(piece_index_t const index)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5432,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5432,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:5433,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:5435,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:5438,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5444,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:5444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5445,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:5445,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:5447,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:5448,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5456,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:5458,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:5462,1
    - Dst: torrent::update_peer_interest
      Src: /src/libtorrent/src/torrent.cpp:5464,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:5467,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - "std::vector<std::pair<piece_index_t\n\t\t, download_priority_t>>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5468
      start: 5426
    functionDepth: 4
    functionLinenumber: 5426
    functionLinenumberEnd: 5468
    functionName: torrent::prioritize_piece_list
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::is_finished
    - torrent::set_piece_priority
    - valid_metadata
    - torrent::need_picker
    - torrent::update_peer_interest
    - TORRENT_ASSERT
    - set_need_save_resume
    - torrent::is_seed
    - torrent::update_gauge
    - torrent::state_updated
    - piece_index_t
    - end_piece
    linkageType: ''
    returnType: void
    signature: "void torrent::prioritize_piece_list(std::vector<std::pair<piece_index_t\n\t\t,
      download_priority_t>> const& pieces)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5475,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5475,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:5476,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5478,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:5481,1
    - Dst: torrent::need_picker
      Src: /src/libtorrent/src/torrent.cpp:5486,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:5490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5495,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:5496,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:5499,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:5500,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:5505,1
    - Dst: torrent::update_peer_interest
      Src: /src/libtorrent/src/torrent.cpp:5507,1
    - Dst: torrent::remove_time_critical_pieces
      Src: /src/libtorrent/src/torrent.cpp:5509,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:5513,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:5514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - aux::vector<download_priority_t, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5515
      start: 5470
    functionDepth: 4
    functionLinenumber: 5470
    functionLinenumberEnd: 5515
    functionName: torrent::prioritize_pieces
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_state_list
    - torrent::is_finished
    - valid_metadata
    - torrent::need_picker
    - torrent::debug_log
    - torrent::update_peer_interest
    - TORRENT_ASSERT
    - torrent::update_want_tick
    - set_need_save_resume
    - torrent::is_seed
    - torrent::remove_time_critical_pieces
    - torrent::update_gauge
    - torrent::state_updated
    - torrent::set_piece_priority
    linkageType: ''
    returnType: void
    signature: void torrent::prioritize_pieces(aux::vector<download_priority_t, piece_index_t>
      const& pieces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5522,1
    - Dst: aux::vector<download_priority_t, piece_index_t>*::clear
      Src: /src/libtorrent/src/torrent.cpp:5524,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:5528,1
    - Dst: aux::vector<download_priority_t, piece_index_t>*::clear
      Src: /src/libtorrent/src/torrent.cpp:5530,1
    - Dst: aux::vector<download_priority_t, piece_index_t>*::resize
      Src: /src/libtorrent/src/torrent.cpp:5531,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:5531,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5535,1
    - Dst: torrent::piece_priorities
      Src: /src/libtorrent/src/torrent.cpp:5536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pieces
    argTypes:
    - aux::vector<download_priority_t, piece_index_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5537
      start: 5517
    functionDepth: 1
    functionLinenumber: 5517
    functionLinenumberEnd: 5537
    functionName: torrent::piece_priorities
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - aux::vector<download_priority_t, piece_index_t>*::resize
    - valid_metadata
    - aux::vector<download_priority_t, piece_index_t>*::clear
    - has_picker
    - num_pieces
    - TORRENT_ASSERT
    - torrent::piece_priorities
    linkageType: ''
    returnType: void
    signature: void torrent::piece_priorities(aux::vector<download_priority_t, piece_index_t>*
      pieces) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector<download_priority_t, file_index_t>::resize
      Src: /src/libtorrent/src/torrent.cpp:5545,1
    - Dst: file_storage*::num_files
      Src: /src/libtorrent/src/torrent.cpp:5545,1
    - Dst: aux::vector<download_priority_t, file_index_t>::range
      Src: /src/libtorrent/src/torrent.cpp:5547,1
    - Dst: file_storage*::pad_file_at
      Src: /src/libtorrent/src/torrent.cpp:5550,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - input
    - fs
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    - file_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5541
    functionDepth: 1
    functionLinenumber: 5541
    functionLinenumberEnd: 5557
    functionName: fix_priorities
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - file_storage*::pad_file_at
    - aux::vector<download_priority_t, file_index_t>::range
    - aux::vector<download_priority_t, file_index_t>::resize
    - file_storage*::num_files
    linkageType: ''
    returnType: aux::vector<download_priority_t, file_index_t>
    signature: "aux::vector<download_priority_t, file_index_t> fix_priorities(\n\t\t\taux::vector<download_priority_t,
      file_index_t> input\n\t\t\t, file_storage const* fs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector<download_priority_t, file_index_t>::resize
      Src: /src/libtorrent/src/torrent.cpp:5545,1
    - Dst: file_storage*::num_files
      Src: /src/libtorrent/src/torrent.cpp:5545,1
    - Dst: aux::vector<download_priority_t, file_index_t>::range
      Src: /src/libtorrent/src/torrent.cpp:5547,1
    - Dst: file_storage*::pad_file_at
      Src: /src/libtorrent/src/torrent.cpp:5550,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - input
    - fs
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    - file_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5541
    functionDepth: 1
    functionLinenumber: 5541
    functionLinenumberEnd: 5557
    functionName: fix_priorities
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - file_storage*::pad_file_at
    - aux::vector<download_priority_t, file_index_t>::range
    - aux::vector<download_priority_t, file_index_t>::resize
    - file_storage*::num_files
    linkageType: ''
    returnType: aux::vector<download_priority_t, file_index_t>
    signature: "aux::vector<download_priority_t, file_index_t> fix_priorities(\n\t\t\taux::vector<download_priority_t,
      file_index_t> input\n\t\t\t, file_storage const* fs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:5564,1
    - Dst: torrent::update_piece_priorities
      Src: /src/libtorrent/src/torrent.cpp:5568,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5569,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:5570,1
    - Dst: torrent::recalc_share_mode
      Src: /src/libtorrent/src/torrent.cpp:5573,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5580,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5581,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:5582,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:5582,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5582,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:5584,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:5584,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:5585,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5589,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5590,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5590,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:5592,1
    - Dst: std::prev
      Src: /src/libtorrent/src/torrent.cpp:5597,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5597,1
    - Dst: auto::end_index
      Src: /src/libtorrent/src/torrent.cpp:5598,1
    - Dst: auto::resize
      Src: /src/libtorrent/src/torrent.cpp:5601,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:5601,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:5609,1
    - Dst: torrent::prioritize_files
      Src: /src/libtorrent/src/torrent.cpp:5610,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' err'
    - prios
    argTypes:
    - storage_error
    - aux::vector<download_priority_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5612
      start: 5560
    functionDepth: 1
    functionLinenumber: 5560
    functionLinenumberEnd: 5612
    functionName: torrent::on_file_priority
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::move
    - empty
    - torrent::prioritize_files
    - torrent::set_error
    - set_need_save_resume
    - torrent::pause
    - alerts
    - end
    - torrent::recalc_share_mode
    - file
    - auto::resize
    - clear
    - COMPLETE_ASYNC
    - torrent::update_piece_priorities
    - auto::end_index
    - std::prev
    - torrent::resolve_filename
    - torrent::get_handle
    linkageType: ''
    returnType: void
    signature: "void torrent::on_file_priority(storage_error const& err\n\t\t, aux::vector<download_priority_t,
      file_index_t> prios)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fix_priorities
      Src: /src/libtorrent/src/torrent.cpp:5618,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5618,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5619,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:5619,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:5621,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:5633,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:5634,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5635,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:5636,1
    - Dst: torrent::on_file_priority
      Src: /src/libtorrent/src/torrent.cpp:5637,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5637,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:5638,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5642,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:5643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - files
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5645
      start: 5614
    functionDepth: 2
    functionLinenumber: 5614
    functionLinenumberEnd: 5645
    functionName: torrent::prioritize_files
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - shared_from_this
    - std::move
    - disk_thread
    - files
    - valid_metadata
    - set_need_save_resume
    - clear
    - deferred_submit_jobs
    - torrent::on_file_priority
    - fix_priorities
    linkageType: ''
    returnType: void
    signature: void torrent::prioritize_files(aux::vector<download_priority_t, file_index_t>
      files)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent.cpp:5655,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5656,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:5656,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/torrent.cpp:5661,1
    - Dst: auto::end_index
      Src: /src/libtorrent/src/torrent.cpp:5670,1
    - Dst: auto::resize
      Src: /src/libtorrent/src/torrent.cpp:5673,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:5673,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:5682,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:5683,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5684,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:5685,1
    - Dst: torrent::on_file_priority
      Src: /src/libtorrent/src/torrent.cpp:5686,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5686,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:5687,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5691,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:5692,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - index
    - prio
    argTypes:
    - file_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5694
      start: 5647
    functionDepth: 2
    functionLinenumber: 5647
    functionLinenumberEnd: 5694
    functionName: torrent::set_file_priority
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - ADD_OUTSTANDING_ASYNC
    - shared_from_this
    - std::move
    - disk_thread
    - files
    - libtorrent::aux::clamp
    - valid_metadata
    - auto::end_index
    - set_need_save_resume
    - auto::resize
    - deferred_submit_jobs
    - torrent::on_file_priority
    - file_index_t
    linkageType: ''
    returnType: void
    signature: "void torrent::set_file_priority(file_index_t const index\n\t\t, download_priority_t
      prio)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent.cpp:5698,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent.cpp:5698,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent.cpp:5699,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5702,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:5704,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent.cpp:5705,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:5705,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:5706,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/torrent.cpp:5709,1
    - Dst: end_index
      Src: /src/libtorrent/src/torrent.cpp:5713,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5716
      start: 5696
    functionDepth: 1
    functionLinenumber: 5696
    functionLinenumberEnd: 5716
    functionName: torrent::file_priority
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - files
    - valid_metadata
    - TORRENT_ASSERT_PRECOND
    - end_file
    - pad_file_at
    - file_index_t
    - end_index
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t torrent::file_priority(file_index_t const index)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aux::vector<download_priority_t, file_index_t>*::assign
      Src: /src/libtorrent/src/torrent.cpp:5722,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5722,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5722,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:5724,1
    - Dst: aux::vector<download_priority_t, file_index_t>*::resize
      Src: /src/libtorrent/src/torrent.cpp:5729,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:5729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - files
    argTypes:
    - aux::vector<download_priority_t, file_index_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5730
      start: 5718
    functionDepth: 1
    functionLinenumber: 5718
    functionLinenumberEnd: 5730
    functionName: torrent::file_priorities
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - aux::vector<download_priority_t, file_index_t>*::assign
    - begin
    - aux::vector<download_priority_t, file_index_t>*::resize
    - num_files
    - valid_metadata
    - end
    linkageType: ''
    returnType: void
    signature: void torrent::file_priorities(aux::vector<download_priority_t, file_index_t>*
      files) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:5737,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent.cpp:5742,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:5743,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:5744,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent.cpp:5745,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:5747,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/torrent.cpp:5752,1
    - Dst: end_index
      Src: /src/libtorrent/src/torrent.cpp:5753,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent.cpp:5769,1
    - Dst: file_piece_range_inclusive
      Src: /src/libtorrent/src/torrent.cpp:5769,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:5774,1
    - Dst: torrent::prioritize_pieces
      Src: /src/libtorrent/src/torrent.cpp:5778,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - ' file_prios'
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5779
      start: 5732
    functionDepth: 1
    functionLinenumber: 5732
    functionLinenumberEnd: 5779
    functionName: torrent::update_piece_priorities
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::prioritize_pieces
    - aux::numeric_cast<std::size_t>
    - std::tie
    - files
    - file_piece_range_inclusive
    - num_pieces
    - std::max
    - pad_file_at
    - file_range
    - end_index
    linkageType: ''
    returnType: void
    signature: "void torrent::update_piece_priorities(\n\t\taux::vector<download_priority_t,
      file_index_t> const& file_prios)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5785,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5785,1
    - Dst: peer_connection*::update_interest
      Src: /src/libtorrent/src/torrent.cpp:5791,1
    - Dst: is_downloading_state
      Src: /src/libtorrent/src/torrent.cpp:5794,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:5797,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:5804,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:5806,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:5807,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:5812,1
    - Dst: torrent::finished
      Src: /src/libtorrent/src/torrent.cpp:5814,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:5816,1
    - Dst: torrent::resume_download
      Src: /src/libtorrent/src/torrent.cpp:5820,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - was_finished
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5822
      start: 5783
    functionDepth: 2
    functionLinenumber: 5783
    functionLinenumberEnd: 5822
    functionName: torrent::update_peer_interest
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 4
    functionsReached:
    - peer_connection*::update_interest
    - torrent::should_log
    - begin
    - torrent::is_finished
    - end
    - torrent::finished
    - torrent::debug_log
    - is_downloading_state
    - torrent::resume_download
    linkageType: ''
    returnType: void
    signature: void torrent::update_peer_interest(bool const was_finished)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::trackers
      Src: /src/libtorrent/src/torrent.cpp:5826,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:5827,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:5827,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:5827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5828
      start: 5824
    functionDepth: 0
    functionLinenumber: 5824
    functionLinenumberEnd: 5828
    functionName: torrent::post_trackers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - torrent::get_handle
    - alerts
    - torrent::trackers
    linkageType: ''
    returnType: void
    signature: void torrent::post_trackers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent.cpp:5833,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:5833,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:5836,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/torrent.cpp:5837,1
    - Dst: endpoints::reserve
      Src: /src/libtorrent/src/torrent.cpp:5843,1
    - Dst: endpoints::size
      Src: /src/libtorrent/src/torrent.cpp:5843,1
    - Dst: endpoints::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:5846,1
    - Dst: endpoints::back
      Src: /src/libtorrent/src/torrent.cpp:5847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5886
      start: 5830
    functionDepth: 1
    functionLinenumber: 5830
    functionLinenumberEnd: 5886
    functionName: torrent::trackers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - endpoints::back
    - std::vector::back
    - std::vector::emplace_back
    - endpoints::reserve
    - endpoints::emplace_back
    - std::vector::reserve
    - endpoints::size
    - size
    linkageType: ''
    returnType: std::vector<announce_entry>
    signature: std::vector<announce_entry> torrent::trackers() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:5890,1
    - Dst: url::empty
      Src: /src/libtorrent/src/torrent.cpp:5893,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:5894,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent.cpp:5898,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5898,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5898,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:5904,1
    - Dst: torrent::prioritize_udp_trackers
      Src: /src/libtorrent/src/torrent.cpp:5905,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:5907,1
    - Dst: torrent::announce_with_tracker
      Src: /src/libtorrent/src/torrent.cpp:5907,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:5909,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' urls'
    argTypes:
    - std::vector<announce_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5910
      start: 5888
    functionDepth: 3
    functionLinenumber: 5888
    functionLinenumberEnd: 5910
    functionName: torrent::replace_trackers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::prioritize_udp_trackers
    - begin
    - empty
    - end
    - torrent::announce_with_tracker
    - set_need_save_resume
    - clear
    - emplace_back
    - settings
    - url::empty
    - std::sort
    linkageType: ''
    returnType: void
    signature: void torrent::replace_trackers(std::vector<announce_entry> const& urls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5915,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5915,1
    - Dst: auto::url::substr
      Src: /src/libtorrent/src/torrent.cpp:5917,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent.cpp:5924,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/torrent.cpp:5925,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5926,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent.cpp:5929,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/torrent.cpp:5930,1
    - Dst: auto::url::substr
      Src: /src/libtorrent/src/torrent.cpp:5932,1
    - Dst: swap
      Src: /src/libtorrent/src/torrent.cpp:5935,1
    - Dst: iter_swap
      Src: /src/libtorrent/src/torrent.cpp:5936,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5940
      start: 5912
    functionDepth: 0
    functionLinenumber: 5912
    functionLinenumberEnd: 5940
    functionName: torrent::prioritize_udp_trackers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - parse_url_components
    - auto::url::substr
    - std::tie
    - begin
    - iter_swap
    - swap
    - end
    linkageType: ''
    returnType: void
    signature: void torrent::prioritize_udp_trackers()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: url::empty
      Src: /src/libtorrent/src/torrent.cpp:5944,1
    - Dst: torrent::find_tracker
      Src: /src/libtorrent/src/torrent.cpp:5945,1
    - Dst: std::upper_bound
      Src: /src/libtorrent/src/torrent.cpp:5950,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5950,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:5950,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:5952,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:5953,1
    - Dst: libtorrent::aux::announce_entry
      Src: /src/libtorrent/src/torrent.cpp:5953,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:5959,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:5960,1
    - Dst: torrent::announce_with_tracker
      Src: /src/libtorrent/src/torrent.cpp:5960,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5962
      start: 5942
    functionDepth: 3
    functionLinenumber: 5942
    functionLinenumberEnd: 5962
    functionName: torrent::add_tracker
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 6
    functionsReached:
    - begin
    - std::upper_bound
    - insert
    - end
    - empty
    - torrent::announce_with_tracker
    - set_need_save_resume
    - libtorrent::aux::announce_entry
    - url::empty
    - torrent::find_tracker
    linkageType: ''
    returnType: bool
    signature: bool torrent::add_tracker(announce_entry const& url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5968,1
    - Dst: is_choked
      Src: /src/libtorrent/src/torrent.cpp:5968,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5969,1
    - Dst: ignore_unchoke_slots
      Src: /src/libtorrent/src/torrent.cpp:5969,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5970,1
    - Dst: send_choke
      Src: /src/libtorrent/src/torrent.cpp:5971,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:5973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5975
      start: 5964
    functionDepth: 1
    functionLinenumber: 5964
    functionLinenumberEnd: 5975
    functionName: torrent::choke_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - ignore_unchoke_slots
    - send_choke
    - TORRENT_ASSERT
    - is_choked
    - torrent::state_updated
    linkageType: ''
    returnType: bool
    signature: bool torrent::choke_peer(peer_connection& c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5981,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5982,1
    - Dst: is_choked
      Src: /src/libtorrent/src/torrent.cpp:5982,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:5983,1
    - Dst: ignore_unchoke_slots
      Src: /src/libtorrent/src/torrent.cpp:5983,1
    - Dst: send_unchoke
      Src: /src/libtorrent/src/torrent.cpp:5988,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:5990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' c'
    - optimistic
    argTypes:
    - peer_connection
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5992
      start: 5977
    functionDepth: 3
    functionLinenumber: 5977
    functionLinenumberEnd: 5992
    functionName: torrent::unchoke_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - ignore_unchoke_slots
    - send_unchoke
    - TORRENT_ASSERT
    - is_choked
    - torrent::state_updated
    linkageType: ''
    returnType: bool
    signature: bool torrent::unchoke_peer(peer_connection& c, bool optimistic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::trigger_unchoke
      Src: /src/libtorrent/src/torrent.cpp:5996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5997
      start: 5994
    functionDepth: 1
    functionLinenumber: 5994
    functionLinenumberEnd: 5997
    functionName: torrent::trigger_unchoke
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::trigger_unchoke
    linkageType: ''
    returnType: void
    signature: void torrent::trigger_unchoke() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::trigger_optimistic_unchoke
      Src: /src/libtorrent/src/torrent.cpp:6001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6002
      start: 5999
    functionDepth: 1
    functionLinenumber: 5999
    functionLinenumberEnd: 6002
    functionName: torrent::trigger_optimistic_unchoke
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::trigger_optimistic_unchoke
    linkageType: ''
    returnType: void
    signature: void torrent::trigger_optimistic_unchoke() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6008,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:6008,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:6012,1
    - Dst: cancel_request
      Src: /src/libtorrent/src/torrent.cpp:6013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6015
      start: 6004
    functionDepth: 1
    functionLinenumber: 6004
    functionLinenumberEnd: 6015
    functionName: torrent::cancel_block
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - cancel_request
    - TORRENT_INCREMENT
    - has_picker
    linkageType: ''
    returnType: void
    signature: void torrent::cancel_block(piece_block block)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6030,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6031,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6031,1
    - Dst: set_password_callback
      Src: /src/libtorrent/src/torrent.cpp:6037,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6045,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6046,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6046,1
    - Dst: use_certificate_file
      Src: /src/libtorrent/src/torrent.cpp:6048,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6051,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6052,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6052,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:6055,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6056,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/torrent.cpp:6056,1
    - Dst: use_private_key_file
      Src: /src/libtorrent/src/torrent.cpp:6058,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6061,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6062,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6062,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:6065,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6066,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/torrent.cpp:6066,1
    - Dst: use_tmp_dh_file
      Src: /src/libtorrent/src/torrent.cpp:6068,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6071,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6072,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6072,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:6075,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6076,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/torrent.cpp:6076,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - ' certificate'
    - ' private_key'
    - ' dh_params'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6078
      start: 6023
    functionDepth: 1
    functionLinenumber: 6023
    functionLinenumberEnd: 6078
    functionName: torrent::set_ssl_cert
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - use_tmp_dh_file
    - torrent::should_log
    - torrent::get_handle
    - torrent::debug_log
    - error_code::message
    - use_private_key_file
    - set_password_callback
    - alerts
    - use_certificate_file
    linkageType: ''
    returnType: void
    signature: "void torrent::set_ssl_cert(std::string const& certificate\n\t\t, std::string
      const& private_key\n\t\t, std::string const& dh_params\n\t\t, std::string const&
      passphrase)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/src/torrent.cpp:6086,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6086,1
    - Dst: use_certificate
      Src: /src/libtorrent/src/torrent.cpp:6089,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6092,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6093,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6093,1
    - Dst: c_str
      Src: /src/libtorrent/src/torrent.cpp:6096,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6096,1
    - Dst: use_private_key
      Src: /src/libtorrent/src/torrent.cpp:6097,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6100,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6101,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6101,1
    - Dst: c_str
      Src: /src/libtorrent/src/torrent.cpp:6104,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6104,1
    - Dst: use_tmp_dh
      Src: /src/libtorrent/src/torrent.cpp:6105,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6108,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6109,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - ' certificate'
    - ' private_key'
    - ' dh_params'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6111
      start: 6080
    functionDepth: 1
    functionLinenumber: 6080
    functionLinenumberEnd: 6111
    functionName: torrent::set_ssl_cert_buffer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - use_tmp_dh
    - c_str
    - torrent::get_handle
    - size
    - use_private_key
    - use_certificate
    - alerts
    linkageType: ''
    returnType: void
    signature: "void torrent::set_ssl_cert_buffer(std::string const& certificate\n\t\t,
      std::string const& private_key\n\t\t, std::string const& dh_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:6117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6118
      start: 6115
    functionDepth: 1
    functionLinenumber: 6115
    functionLinenumberEnd: 6118
    functionName: torrent::on_exception
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::set_error
    linkageType: ''
    returnType: void
    signature: void torrent::on_exception(std::exception const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:6122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6123
      start: 6120
    functionDepth: 1
    functionLinenumber: 6120
    functionLinenumberEnd: 6123
    functionName: torrent::on_error
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::set_error
    linkageType: ''
    returnType: void
    signature: void torrent::on_error(error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6127,1
    - Dst: sorted_find
      Src: /src/libtorrent/src/torrent.cpp:6128,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:6129,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:6130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6131
      start: 6125
    functionDepth: 1
    functionLinenumber: 6125
    functionLinenumberEnd: 6131
    functionName: torrent::remove_connection
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - sorted_find
    - end
    - erase
    linkageType: ''
    returnType: void
    signature: void torrent::remove_connection(peer_connection const* p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6135,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6136,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:6136,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6137,1
    - Dst: std::count
      Src: /src/libtorrent/src/torrent.cpp:6137,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:6137,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:6138,1
    - Dst: find
      Src: /src/libtorrent/src/torrent.cpp:6140,1
    - Dst: std::shared_ptr<peer_connection>::our_pid
      Src: /src/libtorrent/src/torrent.cpp:6140,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:6141,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:6143,1
    - Dst: std::shared_ptr<peer_connection>::associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:6157,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:6160,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:6161,1
    - Dst: capacity
      Src: /src/libtorrent/src/torrent.cpp:6161,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6161,1
    - Dst: capacity
      Src: /src/libtorrent/src/torrent.cpp:6162,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:6163,1
    - Dst: post_deferred
      Src: /src/libtorrent/src/torrent.cpp:6176,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent.cpp:6176,1
    - Dst: deferred_handler_type
      Src: /src/libtorrent/src/torrent.cpp:6176,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:6176,1
    - Dst: torrent::remove_connection
      Src: /src/libtorrent/src/torrent.cpp:6183,1
    - Dst: std::shared_ptr<peer_connection>::get
      Src: /src/libtorrent/src/torrent.cpp:6183,1
    - Dst: std::shared_ptr<peer_connection>::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:6186,1
    - Dst: ready_for_connections
      Src: /src/libtorrent/src/torrent.cpp:6187,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6189,1
    - Dst: std::shared_ptr<peer_connection>::associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:6189,1
    - Dst: std::shared_ptr<peer_connection>::associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:6190,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:6192,1
    - Dst: std::shared_ptr<peer_connection>::is_seed
      Src: /src/libtorrent/src/torrent.cpp:6194,1
    - Dst: dec_refcount_all
      Src: /src/libtorrent/src/torrent.cpp:6196,1
    - Dst: std::shared_ptr<peer_connection>::get_bitfield
      Src: /src/libtorrent/src/torrent.cpp:6200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6201,1
    - Dst: count
      Src: /src/libtorrent/src/torrent.cpp:6201,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6201,1
    - Dst: dec_refcount
      Src: /src/libtorrent/src/torrent.cpp:6202,1
    - Dst: std::shared_ptr<peer_connection>::is_choked
      Src: /src/libtorrent/src/torrent.cpp:6207,1
    - Dst: std::shared_ptr<peer_connection>::ignore_unchoke_slots
      Src: /src/libtorrent/src/torrent.cpp:6207,1
    - Dst: torrent::trigger_unchoke
      Src: /src/libtorrent/src/torrent.cpp:6210,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:6218,1
    - Dst: torrent::trigger_optimistic_unchoke
      Src: /src/libtorrent/src/torrent.cpp:6220,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6223,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6224,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:6225,1
    - Dst: std::shared_ptr<peer_connection>::statistics
      Src: /src/libtorrent/src/torrent.cpp:6225,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:6226,1
    - Dst: std::shared_ptr<peer_connection>::statistics
      Src: /src/libtorrent/src/torrent.cpp:6226,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6232,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:6238,1
    - Dst: connection_closed
      Src: /src/libtorrent/src/torrent.cpp:6239,1
    - Dst: session_time
      Src: /src/libtorrent/src/torrent.cpp:6239,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:6240,1
    - Dst: std::shared_ptr<peer_connection>::set_peer_info
      Src: /src/libtorrent/src/torrent.cpp:6244,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:6246,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:6247,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::shared_ptr<peer_connection>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6248
      start: 6133
    functionDepth: 2
    functionLinenumber: 6133
    functionLinenumberEnd: 6248
    functionName: torrent::remove_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_want_peers
    - std::shared_ptr<peer_connection>::get
    - count
    - connection_closed
    - std::shared_ptr<peer_connection>::is_choked
    - begin
    - std::shared_ptr<peer_connection>::ignore_unchoke_slots
    - aux::numeric_cast<std::uint32_t>
    - torrent::get_peer_list_state
    - torrent::trigger_optimistic_unchoke
    - torrent::inc_stats_counter
    - torrent::peers_erased
    - torrent::trigger_unchoke
    - torrent::remove_connection
    - std::shared_ptr<peer_connection>::peer_info_struct
    - push_back
    - get_context
    - is_single_thread
    - end
    - std::shared_ptr<peer_connection>::associated_torrent
    - std::shared_ptr<peer_connection>::statistics
    - std::shared_ptr<peer_connection>::is_seed
    - shared_from_this
    - std::shared_ptr<peer_connection>::our_pid
    - std::count
    - TORRENT_ASSERT_VAL
    - erase
    - dec_refcount
    - TORRENT_ASSERT
    - has_picker
    - capacity
    - dec_refcount_all
    - post_deferred
    - deferred_handler_type
    - size
    - ready_for_connections
    - std::shared_ptr<peer_connection>::set_peer_info
    - std::shared_ptr<peer_connection>::get_bitfield
    - find
    - torrent::update_want_tick
    - session_time
    linkageType: ''
    returnType: void
    signature: void torrent::remove_peer(std::shared_ptr<peer_connection> p) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6252,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:6252,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6256,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6261,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:6261,1
    - Dst: torrent::remove_connection
      Src: /src/libtorrent/src/torrent.cpp:6263,1
    - Dst: get
      Src: /src/libtorrent/src/torrent.cpp:6263,1
    - Dst: close_connection
      Src: /src/libtorrent/src/torrent.cpp:6264,1
    - Dst: get
      Src: /src/libtorrent/src/torrent.cpp:6264,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:6266,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6266,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6266,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:6267,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:6269,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6274,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:6274,1
    - Dst: torrent::set_paused
      Src: /src/libtorrent/src/torrent.cpp:6277,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:6280,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:6281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6282
      start: 6250
    functionDepth: 2
    functionLinenumber: 6250
    functionLinenumberEnd: 6282
    functionName: torrent::on_remove_peers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::update_want_peers
    - torrent::set_paused
    - close_connection
    - associated_torrent
    - TORRENT_ASSERT_VAL
    - is_single_thread
    - empty
    - TORRENT_ASSERT
    - torrent::update_want_tick
    - clear
    - torrent::is_paused
    - get
    - torrent::remove_connection
    - size
    linkageType: ''
    returnType: void
    signature: void torrent::on_remove_peers() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6293,1
    - Dst: std::list<web_seed_t>::iterator::url::c_str
      Src: /src/libtorrent/src/torrent.cpp:6293,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:6296,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6302,1
    - Dst: auto*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:6303,1
    - Dst: auto*::set_peer_info
      Src: /src/libtorrent/src/torrent.cpp:6304,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:6306,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:6306,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:6308,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:6311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - web
    argTypes:
    - std::list<web_seed_t>::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6312
      start: 6284
    functionDepth: 1
    functionLinenumber: 6284
    functionLinenumberEnd: 6312
    functionName: torrent::remove_web_seed_iter
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<peer_connection*>
    - erase
    - torrent::debug_log
    - std::list<web_seed_t>::iterator::url::c_str
    - TORRENT_ASSERT
    - has_picker
    - picker
    - torrent::update_want_tick
    - auto*::disconnect
    - auto*::set_peer_info
    linkageType: ''
    returnType: void
    signature: void torrent::remove_web_seed_iter(std::list<web_seed_t>::iterator
      web)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6489,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:6489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6493,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6495,1
    - Dst: std::list<web_seed_t>::iterator::url::c_str
      Src: /src/libtorrent/src/torrent.cpp:6495,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:6496,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6497,1
    - Dst: message
      Src: /src/libtorrent/src/torrent.cpp:6497,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6504,1
    - Dst: torrent::remove_web_seed_iter
      Src: /src/libtorrent/src/torrent.cpp:6506,1
    - Dst: is_aborted
      Src: /src/libtorrent/src/torrent.cpp:6511,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:6513,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6515,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6517,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6517,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:6527,1
    - Dst: num_connections
      Src: /src/libtorrent/src/torrent.cpp:6528,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:6528,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent.cpp:6536,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/torrent.cpp:6537,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6542,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6544,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6544,1
    - Dst: torrent::remove_web_seed_iter
      Src: /src/libtorrent/src/torrent.cpp:6547,1
    - Dst: access
      Src: /src/libtorrent/src/torrent.cpp:6551,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent.cpp:6551,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6553,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6554,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6554,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:6559,1
    - Dst: get_resolver
      Src: /src/libtorrent/src/torrent.cpp:6561,1
    - Dst: auto::wrap
      Src: /src/libtorrent/src/torrent.cpp:6564,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:6567,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - ' e'
    - ' addrs'
    - web
    - port
    argTypes:
    - error_code
    - std::vector<address>
    - std::list<web_seed_t>::iterator
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6567
      start: 6485
    functionDepth: 2
    functionLinenumber: 6485
    functionLinenumberEnd: 6567
    functionName: torrent::on_proxy_name_lookup
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - torrent::remove_web_seed_iter
    - tcp::endpoint::address
    - empty
    - std::list<web_seed_t>::iterator::url::c_str
    - alerts
    - parse_url_components
    - is_aborted
    - is_single_thread
    - message
    - auto::wrap
    - num_peers
    - shared_from_this
    - access
    - get_resolver
    - TORRENT_ASSERT
    - num_connections
    - torrent::should_log
    - std::tie
    - torrent::get_handle
    - torrent::debug_log
    - settings
    linkageType: ''
    returnType: void
    signature: "void torrent::on_proxy_name_lookup(error_code const& e\n\t\t, std::vector<address>
      const& addrs\n\t\t, std::list<web_seed_t>::iterator web, int port)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6574,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:6574,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6578,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6580,1
    - Dst: std::list<web_seed_t>::iterator::url::c_str
      Src: /src/libtorrent/src/torrent.cpp:6580,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6586,1
    - Dst: torrent::remove_web_seed_iter
      Src: /src/libtorrent/src/torrent.cpp:6588,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:6594,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6596,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6597,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6597,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:6599,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6601,1
    - Dst: std::list<web_seed_t>::iterator::url::c_str
      Src: /src/libtorrent/src/torrent.cpp:6602,1
    - Dst: value
      Src: /src/libtorrent/src/torrent.cpp:6602,1
    - Dst: message
      Src: /src/libtorrent/src/torrent.cpp:6602,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:6607,1
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:6608,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:6608,1
    - Dst: libtorrent::aux::is_global
      Src: /src/libtorrent/src/torrent.cpp:6616,1
    - Dst: std::list<web_seed_t>::iterator::endpoints::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:6619,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent.cpp:6619,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:6622,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6623,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:6623,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent.cpp:6623,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent.cpp:6623,1
    - Dst: std::list<web_seed_t>::iterator::endpoints::empty
      Src: /src/libtorrent/src/torrent.cpp:6627,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6629,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:6631,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:6631,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:6641,1
    - Dst: num_connections
      Src: /src/libtorrent/src/torrent.cpp:6642,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:6642,1
    - Dst: connect_web_seed
      Src: /src/libtorrent/src/torrent.cpp:6645,1
    - Dst: std::list<web_seed_t>::iterator::endpoints::front
      Src: /src/libtorrent/src/torrent.cpp:6645,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:6647,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 4
    argNames:
    - ' e'
    - ' addrs'
    - port
    - web
    argTypes:
    - error_code
    - std::vector<address>
    - int
    - std::list<web_seed_t>::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6647
      start: 6569
    functionDepth: 2
    functionLinenumber: 6569
    functionLinenumberEnd: 6647
    functionName: torrent::on_name_lookup
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - torrent::remove_web_seed_iter
    - empty
    - std::list<web_seed_t>::iterator::url::c_str
    - value
    - alerts
    - std::uint16_t
    - is_single_thread
    - message
    - print_endpoint
    - num_peers
    - std::list<web_seed_t>::iterator::endpoints::front
    - seconds32
    - std::list<web_seed_t>::iterator::endpoints::emplace_back
    - TORRENT_ASSERT
    - num_connections
    - std::list<web_seed_t>::iterator::endpoints::empty
    - torrent::should_log
    - libtorrent::aux::is_global
    - connect_web_seed
    - torrent::get_handle
    - torrent::debug_log
    - local_endpoint
    - settings
    - libtorrent::aux::time_now32
    linkageType: ''
    returnType: void
    signature: "void torrent::on_name_lookup(error_code const& e\n\t\t, std::vector<address>
      const& addrs\n\t\t, int const port\n\t\t, std::list<web_seed_t>::iterator web)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<ssl_stream<http_stream>>
      Src: /src/libtorrent/src/torrent.cpp:6770,1
    - Dst: next_layer
      Src: /src/libtorrent/src/torrent.cpp:6772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6773
      start: 6770
    functionDepth: 0
    functionLinenumber: 6770
    functionLinenumberEnd: 6773
    functionName: if
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 85
    functionsReached:
    - boost::get<ssl_stream<http_stream>>
    - next_layer
    linkageType: ''
    returnType: else
    signature: else if (auto* inner2 = boost::get<ssl_stream<http_stream>>(&s))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::need_hash_picker
      Src: /src/libtorrent/src/torrent.cpp:6890,1
    - Dst: torrent::pick_hashes
      Src: /src/libtorrent/src/torrent.cpp:6892,1
    - Dst: peer_connection*::get_bitfield
      Src: /src/libtorrent/src/torrent.cpp:6892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6893
      start: 6888
    functionDepth: 2
    functionLinenumber: 6888
    functionLinenumberEnd: 6893
    functionName: torrent::pick_hashes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::pick_hashes
    - peer_connection*::get_bitfield
    - torrent::need_hash_picker
    linkageType: ''
    returnType: hash_request
    signature: hash_request torrent::pick_hashes(peer_connection* peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6897,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:6897,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:6898,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6899,1
    - Dst: validate_hash_request
      Src: /src/libtorrent/src/torrent.cpp:6899,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:6899,1
    - Dst: torrent::get_hashes
      Src: /src/libtorrent/src/torrent.cpp:6903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' req'
    argTypes:
    - hash_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6904
      start: 6895
    functionDepth: 1
    functionLinenumber: 6895
    functionLinenumberEnd: 6904
    functionName: torrent::get_hashes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::get_hashes
    - files
    - is_valid
    - TORRENT_ASSERT
    - validate_hash_request
    linkageType: ''
    returnType: std::vector<sha256_hash>
    signature: std::vector<sha256_hash> torrent::get_hashes(hash_request const& req)
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: torrent::need_hash_picker
      Src: /src/libtorrent/src/torrent.cpp:6908,1
    - Dst: torrent::add_hashes
      Src: /src/libtorrent/src/torrent.cpp:6910,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:6913,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:6913,1
    - Dst: torrent::handle_inconsistent_hashes
      Src: /src/libtorrent/src/torrent.cpp:6915,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:6919,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:6919,1
    - Dst: is_downloading
      Src: /src/libtorrent/src/torrent.cpp:6923,1
    - Dst: torrent::piece_failed
      Src: /src/libtorrent/src/torrent.cpp:6924,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:6928,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:6928,1
    - Dst: torrent::handle_inconsistent_hashes
      Src: /src/libtorrent/src/torrent.cpp:6930,1
    - Dst: is_downloading
      Src: /src/libtorrent/src/torrent.cpp:6934,1
    - Dst: is_piece_finished
      Src: /src/libtorrent/src/torrent.cpp:6934,1
    - Dst: is_hashing
      Src: /src/libtorrent/src/torrent.cpp:6935,1
    - Dst: torrent::piece_passed
      Src: /src/libtorrent/src/torrent.cpp:6937,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 2
    argNames:
    - ' req'
    - hashes
    argTypes:
    - hash_request
    - span<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6941
      start: 6906
    functionDepth: 6
    functionLinenumber: 6906
    functionLinenumberEnd: 6941
    functionName: torrent::add_hashes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - is_piece_finished
    - torrent::add_hashes
    - is_downloading
    - torrent::piece_failed
    - torrent::handle_inconsistent_hashes
    - is_hashing
    - torrent::need_hash_picker
    - TORRENT_ASSERT
    - have_piece
    - torrent::piece_passed
    - torrent_file
    linkageType: ''
    returnType: bool
    signature: bool torrent::add_hashes(hash_request const& req, span<sha256_hash>
      hashes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent::hashes_rejected
      Src: /src/libtorrent/src/torrent.cpp:6946,1
    - Dst: type
      Src: /src/libtorrent/src/torrent.cpp:6951,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:6952,1
    - Dst: auto*::maybe_send_hash_request
      Src: /src/libtorrent/src/torrent.cpp:6953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' req'
    argTypes:
    - hash_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6955
      start: 6943
    functionDepth: 1
    functionLinenumber: 6943
    functionLinenumberEnd: 6955
    functionName: torrent::hashes_rejected
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - auto*::maybe_send_hash_request
    - torrent::hashes_rejected
    - static_cast<bt_peer_connection*>
    - type
    linkageType: ''
    returnType: void
    signature: void torrent::hashes_rejected(hash_request const& req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent::need_hash_picker
      Src: /src/libtorrent/src/torrent.cpp:6959,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:6962,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:6964,1
    - Dst: torrent::verify_block_hashes
      Src: /src/libtorrent/src/torrent.cpp:6967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6968
      start: 6957
    functionDepth: 2
    functionLinenumber: 6957
    functionLinenumberEnd: 6968
    functionName: torrent::verify_block_hashes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::verify_block_hashes
    - torrent::debug_log
    - torrent::should_log
    - torrent::need_hash_picker
    linkageType: ''
    returnType: void
    signature: void torrent::verify_block_hashes(piece_index_t index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:6972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6974
      start: 6970
    functionDepth: 1
    functionLinenumber: 6970
    functionLinenumberEnd: 6974
    functionName: torrent::get_torrent_file
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - is_valid
    linkageType: ''
    returnType: std::shared_ptr<const torrent_info>
    signature: std::shared_ptr<const torrent_info> torrent::get_torrent_file() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:6978,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/torrent.cpp:6979,1
    - Dst: auto::v2
      Src: /src/libtorrent/src/torrent.cpp:6981,1
    - Dst: get_piece_layer
      Src: /src/libtorrent/src/torrent.cpp:6986,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent.cpp:6988,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:6988,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent.cpp:6988,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/torrent.cpp:6993,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/torrent.cpp:6994,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:6994,1
    - Dst: data
      Src: /src/libtorrent/src/torrent.cpp:6994,1
    - Dst: data
      Src: /src/libtorrent/src/torrent.cpp:6994,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent.cpp:6994,1
    - Dst: aux::vector::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:6996,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:6996,1
    - Dst: auto::set_piece_layers
      Src: /src/libtorrent/src/torrent.cpp:6998,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:6998,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7002
      start: 6976
    functionDepth: 2
    functionLinenumber: 6976
    functionLinenumberEnd: 7002
    functionName: torrent::get_torrent_copy_with_hashes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - is_all_zeros
    - std::move
    - auto::v2
    - test_piece_size
    - is_valid
    - std::vector::insert
    - std::vector::reserve
    - get_piece_layer
    - std::vector::end
    - auto::set_piece_layers
    - aux::vector::emplace_back
    - size
    - data
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> torrent::get_torrent_copy_with_hashes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7008,1
    - Dst: get_piece_layer
      Src: /src/libtorrent/src/torrent.cpp:7008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7010
      start: 7004
    functionDepth: 0
    functionLinenumber: 7004
    functionLinenumberEnd: 7010
    functionName: torrent::get_piece_layers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - get_piece_layer
    linkageType: ''
    returnType: std::vector<std::vector<sha256_hash>>
    signature: std::vector<std::vector<sha256_hash>> torrent::get_piece_layers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7017
      start: 7012
    functionDepth: 0
    functionLinenumber: 7012
    functionLinenumberEnd: 7017
    functionName: torrent::enable_all_trackers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent::enable_all_trackers()
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: torrent::storage_mode
      Src: /src/libtorrent/src/torrent.cpp:7022,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:7027,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:7027,1
    - Dst: torrent::active_time
      Src: /src/libtorrent/src/torrent.cpp:7027,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:7028,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:7028,1
    - Dst: torrent::finished_time
      Src: /src/libtorrent/src/torrent.cpp:7028,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:7029,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:7029,1
    - Dst: torrent::seeding_time
      Src: /src/libtorrent/src/torrent.cpp:7029,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/src/torrent.cpp:7031,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/src/torrent.cpp:7032,1
    - Dst: torrent::flags
      Src: /src/libtorrent/src/torrent.cpp:7038,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:7045,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:7046,1
    - Dst: torrent::name
      Src: /src/libtorrent/src/torrent.cpp:7046,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/torrent.cpp:7050,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:7053,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:7061,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:7063,1
    - Dst: torrent::get_download_queue
      Src: /src/libtorrent/src/torrent.cpp:7066,1
    - Dst: bitfield::resize
      Src: /src/libtorrent/src/torrent.cpp:7075,1
    - Dst: blocks_for_piece
      Src: /src/libtorrent/src/torrent.cpp:7077,1
    - Dst: auto::size
      Src: /src/libtorrent/src/torrent.cpp:7078,1
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/src/torrent.cpp:7081,1
    - Dst: unfinished_pieces::emplace
      Src: /src/libtorrent/src/torrent.cpp:7083,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7083,1
    - Dst: trackers::push_back
      Src: /src/libtorrent/src/torrent.cpp:7090,1
    - Dst: tracker_tiers::push_back
      Src: /src/libtorrent/src/torrent.cpp:7091,1
    - Dst: url_seeds::push_back
      Src: /src/libtorrent/src/torrent.cpp:7099,1
    - Dst: http_seeds::push_back
      Src: /src/libtorrent/src/torrent.cpp:7101,1
    - Dst: nodes
      Src: /src/libtorrent/src/torrent.cpp:7104,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:7112,1
    - Dst: end_piece
      Src: /src/libtorrent/src/torrent.cpp:7121,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:7122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7124,1
    - Dst: have_pieces::empty
      Src: /src/libtorrent/src/torrent.cpp:7124,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:7125,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:7127,1
    - Dst: have_pieces::resize
      Src: /src/libtorrent/src/torrent.cpp:7129,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:7129,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:7131,1
    - Dst: have_pieces::resize
      Src: /src/libtorrent/src/torrent.cpp:7133,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:7133,1
    - Dst: have_pieces::range
      Src: /src/libtorrent/src/torrent.cpp:7134,1
    - Dst: is_piece_flushed
      Src: /src/libtorrent/src/torrent.cpp:7135,1
    - Dst: have_pieces::set_bit
      Src: /src/libtorrent/src/torrent.cpp:7135,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:7143,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:7144,1
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent.cpp:7144,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:7145,1
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent.cpp:7145,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:7147,1
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent.cpp:7148,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent.cpp:7149,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent.cpp:7151,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent.cpp:7151,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent.cpp:7152,1
    - Dst: banned_peers::push_back
      Src: /src/libtorrent/src/torrent.cpp:7167,1
    - Dst: ip
      Src: /src/libtorrent/src/torrent.cpp:7167,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/torrent.cpp:7191,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent.cpp:7192,1
    - Dst: peers::push_back
      Src: /src/libtorrent/src/torrent.cpp:7196,1
    - Dst: ip
      Src: /src/libtorrent/src/torrent.cpp:7196,1
    - Dst: peers::size
      Src: /src/libtorrent/src/torrent.cpp:7201,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/torrent.cpp:7203,1
    - Dst: peers::push_back
      Src: /src/libtorrent/src/torrent.cpp:7206,1
    - Dst: ip
      Src: /src/libtorrent/src/torrent.cpp:7206,1
    - Dst: peers::size
      Src: /src/libtorrent/src/torrent.cpp:7207,1
    - Dst: torrent::upload_limit
      Src: /src/libtorrent/src/torrent.cpp:7211,1
    - Dst: torrent::download_limit
      Src: /src/libtorrent/src/torrent.cpp:7212,1
    - Dst: max_connections
      Src: /src/libtorrent/src/torrent.cpp:7213,1
    - Dst: max_uploads
      Src: /src/libtorrent/src/torrent.cpp:7214,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:7220,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:7226,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:7226,1
    - Dst: piece_range
      Src: /src/libtorrent/src/torrent.cpp:7231,1
    - Dst: torrent::piece_priority
      Src: /src/libtorrent/src/torrent.cpp:7233,1
    - Dst: piece_priorities::clear
      Src: /src/libtorrent/src/torrent.cpp:7240,1
    - Dst: piece_priorities::reserve
      Src: /src/libtorrent/src/torrent.cpp:7241,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent.cpp:7241,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:7241,1
    - Dst: piece_range
      Src: /src/libtorrent/src/torrent.cpp:7243,1
    - Dst: piece_priorities::push_back
      Src: /src/libtorrent/src/torrent.cpp:7244,1
    - Dst: torrent::piece_priority
      Src: /src/libtorrent/src/torrent.cpp:7244,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7248,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:7250,1
    - Dst: merkle_trees::clear
      Src: /src/libtorrent/src/torrent.cpp:7251,1
    - Dst: merkle_trees::reserve
      Src: /src/libtorrent/src/torrent.cpp:7252,1
    - Dst: merkle_tree_mask::clear
      Src: /src/libtorrent/src/torrent.cpp:7253,1
    - Dst: merkle_tree_mask::reserve
      Src: /src/libtorrent/src/torrent.cpp:7254,1
    - Dst: verified_leaf_hashes::clear
      Src: /src/libtorrent/src/torrent.cpp:7255,1
    - Dst: verified_leaf_hashes::reserve
      Src: /src/libtorrent/src/torrent.cpp:7256,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent.cpp:7262,1
    - Dst: build_sparse_vector
      Src: /src/libtorrent/src/torrent.cpp:7262,1
    - Dst: merkle_trees::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7263,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7263,1
    - Dst: merkle_tree_mask::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7264,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7264,1
    - Dst: verified_leaf_hashes::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7265,1
    - Dst: verified_leafs
      Src: /src/libtorrent/src/torrent.cpp:7265,1
    - Dst: has_hash_picker
      Src: /src/libtorrent/src/torrent.cpp:7268,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:7270,1
    - Dst: verified_leaf_hashes::reserve
      Src: /src/libtorrent/src/torrent.cpp:7271,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:7271,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:7272,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/torrent.cpp:7274,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:7274,1
    - Dst: verified_leaf_hashes::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7276,1
    - Dst: verified_leaf_hashes::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7279,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/torrent.cpp:7280,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 137
    argCount: 2
    argNames:
    - flags
    - ' ret'
    argTypes:
    - resume_data_flags_t
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7284
      start: 7019
    functionDepth: 2
    functionLinenumber: 7019
    functionLinenumberEnd: 7284
    functionName: torrent::write_resume_data
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - nodes
    - bitfield::set_bit
    - peers::push_back
    - merkle_trees::clear
    - pad_file_at
    - blocks_for_piece
    - have_pieces::resize
    - torrent::download_limit
    - orig_files
    - piece_priorities::reserve
    - TORRENT_ASSERT
    - piece_index_t
    - torrent::active_time
    - torrent::storage_mode
    - file_num_blocks
    - end_piece
    - merkle_tree_mask::emplace_back
    - std::vector::size
    - is_piece_flushed
    - valid_metadata
    - static_cast<std::size_t>
    - have_pieces::set_bit
    - info_hashes
    - file_size
    - torrent::get_download_queue
    - libtorrent::aux::random_shuffle
    - banned_peers::push_back
    - torrent::flags
    - tracker_tiers::push_back
    - merkle_trees::emplace_back
    - num_pieces
    - file_range
    - has_picker
    - state
    - torrent::seeding_time
    - std::tie
    - have_pieces::empty
    - merkle_tree_mask::clear
    - static_cast<int>
    - empty
    - torrent::name
    - torrent::is_seed
    - max_connections
    - piece_range
    - piece_priorities::push_back
    - torrent::upload_limit
    - bitfield::resize
    - file_path
    - build_sparse_vector
    - verified_leaf_hashes::reserve
    - info_hashes::get_best
    - files
    - have_pieces::range
    - num_files
    - http_seeds::push_back
    - merkle_trees::reserve
    - torrent_file
    - std::vector::push_back
    - torrent::piece_priority
    - total_seconds
    - ip
    - torrent::finished_time
    - piece_priorities::clear
    - peers::size
    - trackers::push_back
    - end_file
    - verified_leafs
    - libtorrent::aux::to_time_t
    - verified_leaf_hashes::emplace_back
    - unfinished_pieces::emplace
    - auto::size
    - has_hash_picker
    - max_uploads
    - size
    - merkle_tree_mask::reserve
    - verified_leaf_hashes::clear
    - url_seeds::push_back
    linkageType: ''
    returnType: void
    signature: void torrent::write_resume_data(resume_data_flags_t const flags, add_torrent_params&
      ret) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<peer_list_entry>*::clear
      Src: /src/libtorrent/src/torrent.cpp:7289,1
    - Dst: std::vector<peer_list_entry>*::reserve
      Src: /src/libtorrent/src/torrent.cpp:7292,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent.cpp:7292,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:7292,1
    - Dst: ip
      Src: /src/libtorrent/src/torrent.cpp:7296,1
    - Dst: std::vector<peer_list_entry>*::push_back
      Src: /src/libtorrent/src/torrent.cpp:7300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<peer_list_entry>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7302
      start: 7287
    functionDepth: 1
    functionLinenumber: 7287
    functionLinenumberEnd: 7302
    functionName: torrent::get_full_peer_list
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - ip
    - std::vector<peer_list_entry>*::clear
    - num_peers
    - std::vector<peer_list_entry>*::push_back
    - std::vector<peer_list_entry>*::reserve
    linkageType: ''
    returnType: void
    signature: void torrent::get_full_peer_list(std::vector<peer_list_entry>* v) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<peer_info>*::clear
      Src: /src/libtorrent/src/torrent.cpp:7307,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7310,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:7314,1
    - Dst: std::vector<peer_info>*::emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7316,1
    - Dst: std::vector<peer_info>*::back
      Src: /src/libtorrent/src/torrent.cpp:7317,1
    - Dst: torrent::get_peer_info
      Src: /src/libtorrent/src/torrent.cpp:7319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<peer_info>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7321
      start: 7305
    functionDepth: 1
    functionLinenumber: 7305
    functionLinenumberEnd: 7321
    functionName: torrent::get_peer_info
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - std::vector<peer_info>*::emplace_back
    - torrent::get_peer_info
    - std::vector<peer_info>*::back
    - associated_torrent
    - TORRENT_ASSERT
    - std::vector<peer_info>*::clear
    linkageType: ''
    returnType: void
    signature: void torrent::get_peer_info(std::vector<peer_info>* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::get_peer_info
      Src: /src/libtorrent/src/torrent.cpp:7326,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7327,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7327,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7328
      start: 7323
    functionDepth: 0
    functionLinenumber: 7323
    functionLinenumberEnd: 7328
    functionName: torrent::post_peer_info
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::get_handle
    - std::move
    - torrent::get_peer_info
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::post_peer_info()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:7338,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:7338,1
    - Dst: span<piece_picker::downloading_piece const>::begin
      Src: /src/libtorrent/src/torrent.cpp:7340,1
    - Dst: span<piece_picker::downloading_piece const>::end
      Src: /src/libtorrent/src/torrent.cpp:7340,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:7343,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7350,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:7350,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent.cpp:7351,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:7353,1
    - Dst: blocks_for_piece
      Src: /src/libtorrent/src/torrent.cpp:7355,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:7361,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:7362,1
    - Dst: set_peer
      Src: /src/libtorrent/src/torrent.cpp:7367,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent.cpp:7367,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7373,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:7376,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7377,1
    - Dst: set_peer
      Src: /src/libtorrent/src/torrent.cpp:7378,1
    - Dst: auto*::remote
      Src: /src/libtorrent/src/torrent.cpp:7378,1
    - Dst: auto*::downloading_piece_progress
      Src: /src/libtorrent/src/torrent.cpp:7381,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:7384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7385,1
    - Dst: set_peer
      Src: /src/libtorrent/src/torrent.cpp:7399,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/torrent.cpp:7399,1
    - Dst: std::vector<partial_piece_info>*::push_back
      Src: /src/libtorrent/src/torrent.cpp:7407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 6
    argNames:
    - ' p'
    - ' ti'
    - block_size
    - ' blk'
    - q
    - queue
    argTypes:
    - piece_picker
    - torrent_info
    - int
    - std::vector<block_info>
    - span<piece_picker::downloading_piece const>
    - std::vector<partial_piece_info>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7409
      start: 7331
    functionDepth: 1
    functionLinenumber: 7331
    functionLinenumberEnd: 7409
    functionName: initialize_piece_info
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<peer_connection*>
    - torrent_peer*::ip
    - span<piece_picker::downloading_piece const>::begin
    - span<piece_picker::downloading_piece const>::end
    - aux::numeric_cast<std::uint32_t>
    - auto*::remote
    - TORRENT_ASSERT
    - blocks_in_piece
    - std::vector<partial_piece_info>*::push_back
    - std::size_t
    - local_endpoint
    - auto*::downloading_piece_progress
    - set_peer
    - piece_size
    - blocks_for_piece
    - piece_index_t
    - size
    linkageType: ''
    returnType: void
    signature: "void initialize_piece_info(piece_picker const& p\n\t\t, torrent_info
      const& ti\n\t\t, int const block_size\n\t\t, std::vector<block_info>& blk\n\t\t,
      span<piece_picker::downloading_piece const> q\n\t\t, std::vector<partial_piece_info>*
      queue)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:7338,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:7338,1
    - Dst: span<piece_picker::downloading_piece const>::begin
      Src: /src/libtorrent/src/torrent.cpp:7340,1
    - Dst: span<piece_picker::downloading_piece const>::end
      Src: /src/libtorrent/src/torrent.cpp:7340,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:7343,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7350,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:7350,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent.cpp:7351,1
    - Dst: piece_size
      Src: /src/libtorrent/src/torrent.cpp:7353,1
    - Dst: blocks_for_piece
      Src: /src/libtorrent/src/torrent.cpp:7355,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:7361,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:7362,1
    - Dst: set_peer
      Src: /src/libtorrent/src/torrent.cpp:7367,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent.cpp:7367,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7373,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:7376,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7377,1
    - Dst: set_peer
      Src: /src/libtorrent/src/torrent.cpp:7378,1
    - Dst: auto*::remote
      Src: /src/libtorrent/src/torrent.cpp:7378,1
    - Dst: auto*::downloading_piece_progress
      Src: /src/libtorrent/src/torrent.cpp:7381,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:7384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7385,1
    - Dst: set_peer
      Src: /src/libtorrent/src/torrent.cpp:7399,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/torrent.cpp:7399,1
    - Dst: std::vector<partial_piece_info>*::push_back
      Src: /src/libtorrent/src/torrent.cpp:7407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 6
    argNames:
    - ' p'
    - ' ti'
    - block_size
    - ' blk'
    - q
    - queue
    argTypes:
    - piece_picker
    - torrent_info
    - int
    - std::vector<block_info>
    - span<piece_picker::downloading_piece const>
    - std::vector<partial_piece_info>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7409
      start: 7331
    functionDepth: 1
    functionLinenumber: 7331
    functionLinenumberEnd: 7409
    functionName: initialize_piece_info
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<peer_connection*>
    - torrent_peer*::ip
    - span<piece_picker::downloading_piece const>::begin
    - span<piece_picker::downloading_piece const>::end
    - aux::numeric_cast<std::uint32_t>
    - auto*::remote
    - TORRENT_ASSERT
    - blocks_in_piece
    - std::vector<partial_piece_info>*::push_back
    - std::size_t
    - local_endpoint
    - auto*::downloading_piece_progress
    - set_peer
    - piece_size
    - blocks_for_piece
    - piece_index_t
    - size
    linkageType: ''
    returnType: void
    signature: "void initialize_piece_info(piece_picker const& p\n\t\t, torrent_info
      const& ti\n\t\t, int const block_size\n\t\t, std::vector<block_info>& blk\n\t\t,
      span<piece_picker::downloading_piece const> q\n\t\t, std::vector<partial_piece_info>*
      queue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:7415,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:7415,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:7416,1
    - Dst: torrent::get_download_queue
      Src: /src/libtorrent/src/torrent.cpp:7417,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:7419,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:7421,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:7421,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/torrent.cpp:7422,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/torrent.cpp:7422,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent.cpp:7422,1
    - Dst: initialize_piece_info
      Src: /src/libtorrent/src/torrent.cpp:7423,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:7423,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:7423,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7425,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7425,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7425,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7426
      start: 7412
    functionDepth: 2
    functionLinenumber: 7412
    functionLinenumberEnd: 7426
    functionName: torrent::post_download_queue
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - alerts
    - std::vector::size
    - std::move
    - std::vector::empty
    - aux::numeric_cast<std::size_t>
    - std::vector::resize
    - block_size
    - valid_metadata
    - torrent::get_handle
    - picker
    - has_picker
    - blocks_in_piece
    - torrent::get_download_queue
    - torrent_file
    - piece_index_t
    - initialize_piece_info
    linkageType: ''
    returnType: void
    signature: void torrent::post_download_queue()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7430,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:7430,1
    - Dst: std::vector<partial_piece_info>*::clear
      Src: /src/libtorrent/src/torrent.cpp:7431,1
    - Dst: block_info_storage
      Src: /src/libtorrent/src/torrent.cpp:7432,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:7433,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:7435,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:7435,1
    - Dst: picker
      Src: /src/libtorrent/src/torrent.cpp:7436,1
    - Dst: torrent::get_download_queue
      Src: /src/libtorrent/src/torrent.cpp:7438,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:7439,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:7441,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:7441,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:7442,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/torrent.cpp:7442,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent.cpp:7442,1
    - Dst: initialize_piece_info
      Src: /src/libtorrent/src/torrent.cpp:7444,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:7444,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:7444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - queue
    argTypes:
    - std::vector<partial_piece_info>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7445
      start: 7428
    functionDepth: 2
    functionLinenumber: 7428
    functionLinenumberEnd: 7445
    functionName: torrent::get_download_queue
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 4
    functionsReached:
    - std::vector<partial_piece_info>*::clear
    - std::vector::size
    - std::vector::empty
    - aux::numeric_cast<std::size_t>
    - is_single_thread
    - valid_metadata
    - block_size
    - picker
    - TORRENT_ASSERT
    - has_picker
    - blocks_in_piece
    - resize
    - torrent::get_download_queue
    - clear
    - torrent_file
    - piece_index_t
    - initialize_piece_info
    - block_info_storage
    linkageType: ''
    returnType: void
    signature: void torrent::get_download_queue(std::vector<partial_piece_info>* queue)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7450
      start: 7450
    functionDepth: 0
    functionLinenumber: 7450
    functionLinenumberEnd: 7450
    functionName: hostname_visitor
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hostname_visitor(std::string const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7452
      start: 7452
    functionDepth: 0
    functionLinenumber: 7452
    functionLinenumberEnd: 7452
    functionName: operator()(T&)
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(T&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_host_name
      Src: /src/libtorrent/src/torrent.cpp:7454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7454
      start: 7454
    functionDepth: 0
    functionLinenumber: 7454
    functionLinenumberEnd: 7454
    functionName: operator()(ssl_stream<T>& s)
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - set_host_name
    linkageType: ''
    returnType: void
    signature: void operator()(ssl_stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7462
      start: 7461
    functionDepth: 0
    functionLinenumber: 7461
    functionLinenumberEnd: 7462
    functionName: operator()(T&)
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssl::stream_handle_type
    signature: ssl::stream_handle_type operator()(T&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle
      Src: /src/libtorrent/src/torrent.cpp:7466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7466
      start: 7465
    functionDepth: 0
    functionLinenumber: 7465
    functionLinenumberEnd: 7466
    functionName: operator()(ssl_stream<T>& s)
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - handle
    linkageType: ''
    returnType: ssl::stream_handle_type
    signature: ssl::stream_handle_type operator()(ssl_stream<T>& s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7472,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:7472,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:7474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7476,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7477,1
    - Dst: session_time
      Src: /src/libtorrent/src/torrent.cpp:7481,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7483,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:7486,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:7486,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:7486,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:7488,1
    - Dst: remote
      Src: /src/libtorrent/src/torrent.cpp:7488,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/torrent.cpp:7488,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7490,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:7490,1
    - Dst: type
      Src: /src/libtorrent/src/torrent.cpp:7491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7494,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:7494,1
    - Dst: type
      Src: /src/libtorrent/src/torrent.cpp:7495,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7500,1
    - Dst: torrent::want_peers
      Src: /src/libtorrent/src/torrent.cpp:7500,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7501,1
    - Dst: num_connections
      Src: /src/libtorrent/src/torrent.cpp:7501,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7502,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/torrent.cpp:7504,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7505,1
    - Dst: access
      Src: /src/libtorrent/src/torrent.cpp:7507,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/torrent.cpp:7507,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7517,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7521,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7522,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7529,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7530,1
    - Dst: utp_socket_manager
      Src: /src/libtorrent/src/torrent.cpp:7534,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7538,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:7541,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:7543,1
    - Dst: torrent_peer*::to_string
      Src: /src/libtorrent/src/torrent.cpp:7544,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7565,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent.cpp:7566,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7566,1
    - Dst: instantiate_connection
      Src: /src/libtorrent/src/torrent.cpp:7569,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent.cpp:7569,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/torrent.cpp:7571,1
    - Dst: set_local_i2p_endpoint
      Src: /src/libtorrent/src/torrent.cpp:7572,1
    - Dst: local_i2p_endpoint
      Src: /src/libtorrent/src/torrent.cpp:7572,1
    - Dst: set_destination
      Src: /src/libtorrent/src/torrent.cpp:7573,1
    - Dst: static_cast<i2p_peer*>
      Src: /src/libtorrent/src/torrent.cpp:7573,1
    - Dst: set_command
      Src: /src/libtorrent/src/torrent.cpp:7574,1
    - Dst: set_session_id
      Src: /src/libtorrent/src/torrent.cpp:7575,1
    - Dst: i2p_session
      Src: /src/libtorrent/src/torrent.cpp:7575,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:7583,1
    - Dst: get
      Src: /src/libtorrent/src/torrent.cpp:7585,1
    - Dst: ssl_utp_socket_manager
      Src: /src/libtorrent/src/torrent.cpp:7588,1
    - Dst: instantiate_connection
      Src: /src/libtorrent/src/torrent.cpp:7592,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent.cpp:7592,1
    - Dst: proxy
      Src: /src/libtorrent/src/torrent.cpp:7593,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:7596,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/torrent.cpp:7599,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7600,1
    - Dst: torrent_peer*::protocol
      Src: /src/libtorrent/src/torrent.cpp:7600,1
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/torrent.cpp:7602,1
    - Dst: libtorrent::aux::generate_peer_id
      Src: /src/libtorrent/src/torrent.cpp:7609,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7609,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7612,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/torrent.cpp:7613,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:7614,1
    - Dst: get_context
      Src: /src/libtorrent/src/torrent.cpp:7615,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:7616,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7617,1
    - Dst: std::make_shared<bt_peer_connection>
      Src: /src/libtorrent/src/torrent.cpp:7623,1
    - Dst: auto::add_stat
      Src: /src/libtorrent/src/torrent.cpp:7629,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:7629,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:7630,1
    - Dst: new_connection
      Src: /src/libtorrent/src/torrent.cpp:7637,1
    - Dst: peer_connection_handle
      Src: /src/libtorrent/src/torrent.cpp:7638,1
    - Dst: auto::self
      Src: /src/libtorrent/src/torrent.cpp:7638,1
    - Dst: auto::add_extension
      Src: /src/libtorrent/src/torrent.cpp:7639,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7644,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent.cpp:7649,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:7649,1
    - Dst: sorted_insert
      Src: /src/libtorrent/src/torrent.cpp:7651,1
    - Dst: auto::get
      Src: /src/libtorrent/src/torrent.cpp:7651,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:7654,1
    - Dst: insert_peer
      Src: /src/libtorrent/src/torrent.cpp:7655,1
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:7656,1
    - Dst: set_connection
      Src: /src/libtorrent/src/torrent.cpp:7657,1
    - Dst: auto::get
      Src: /src/libtorrent/src/torrent.cpp:7657,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7660,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:7663,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:7664,1
    - Dst: auto::start
      Src: /src/libtorrent/src/torrent.cpp:7665,1
    - Dst: auto::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:7667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7671,1
    - Dst: auto::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7672,1
    - Dst: torrent::recalc_share_mode
      Src: /src/libtorrent/src/torrent.cpp:7678,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 88
    argCount: 2
    argNames:
    - peerinfo
    - ignore_limit
    argTypes:
    - torrent_peer*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7682
      start: 7470
    functionDepth: 1
    functionLinenumber: 7470
    functionLinenumberEnd: 7682
    functionName: torrent::connect_to_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - torrent::update_want_peers
    - std::move
    - disk_thread
    - begin
    - libtorrent::aux::generate_peer_id
    - stats_counters
    - auto::get
    - set_command
    - remote
    - info_hashes
    - proxy
    - alerts
    - auto::self
    - std::make_shared<bt_peer_connection>
    - get_context
    - is_ssl_torrent
    - auto::add_extension
    - std::uint16_t
    - is_single_thread
    - local_i2p_endpoint
    - end
    - boost::get<i2p_stream>
    - set_destination
    - get
    - auto::add_stat
    - static_cast<i2p_peer*>
    - torrent::recalc_share_mode
    - new_connection
    - sorted_insert
    - type
    - ssl_utp_socket_manager
    - peer_connection_handle
    - torrent_peer*::ip
    - shared_from_this
    - set_session_id
    - access
    - torrent::need_peer_list
    - boost::apply_visitor
    - libtorrent::aux::to_hex
    - auto::disconnect
    - set_local_i2p_endpoint
    - is_disconnecting
    - TORRENT_ASSERT
    - insert_peer
    - reserve
    - num_connections
    - torrent_peer*::address
    - torrent::want_peers
    - set_connection
    - size
    - TORRENT_UNUSED
    - std::find_if
    - auto::start
    - torrent::should_log
    - auto::is_disconnecting
    - torrent_peer*::to_string
    - insert
    - torrent_peer*::protocol
    - torrent::debug_log
    - std::int64_t
    - i2p_session
    - utp_socket_manager
    - torrent::update_want_tick
    - settings
    - session_time
    - instantiate_connection
    linkageType: ''
    returnType: bool
    signature: bool torrent::connect_to_peer(torrent_peer* peerinfo, bool const ignore_limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: info_hash
      Src: /src/libtorrent/src/torrent.cpp:7686,1
    - Dst: v2_piece_hashes_verified
      Src: /src/libtorrent/src/torrent.cpp:7688,1
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent.cpp:7690,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent.cpp:7691,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:7691,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent.cpp:7692,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/torrent.cpp:7694,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:7694,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7696,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:7699,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/torrent.cpp:7699,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/torrent.cpp:7700,1
    - Dst: root_ptr
      Src: /src/libtorrent/src/torrent.cpp:7700,1
    - Dst: piece_layer
      Src: /src/libtorrent/src/torrent.cpp:7701,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/torrent.cpp:7702,1
    - Dst: load_piece_layer
      Src: /src/libtorrent/src/torrent.cpp:7708,1
    - Dst: libtorrent::aux::merkle_tree
      Src: /src/libtorrent/src/torrent.cpp:7710,1
    - Dst: free_piece_layers
      Src: /src/libtorrent/src/torrent.cpp:7718,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7720
      start: 7684
    functionDepth: 2
    functionLinenumber: 7684
    functionLinenumberEnd: 7720
    functionName: torrent::initialize_merkle_trees
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - info_hash
    - blocks_per_piece
    - root_ptr
    - auto::empty
    - libtorrent::aux::merkle_tree
    - free_piece_layers
    - num_files
    - reserve
    - orig_files
    - pad_file_at
    - file_size
    - emplace_back
    - file_num_blocks
    - piece_layer
    - load_piece_layer
    - file_range
    - v2_piece_hashes_verified
    linkageType: ''
    returnType: error_code
    signature: error_code torrent::initialize_merkle_trees()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7724,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:7724,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:7727,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7729,1
    - Dst: hasher
      Src: /src/libtorrent/src/torrent.cpp:7731,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7732,1
    - Dst: hasher256
      Src: /src/libtorrent/src/torrent.cpp:7735,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/torrent.cpp:7736,1
    - Dst: sha256_hash::data
      Src: /src/libtorrent/src/torrent.cpp:7736,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7736,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7738,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7740,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7740,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7747,1
    - Dst: hasher256
      Src: /src/libtorrent/src/torrent.cpp:7752,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7753,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7755,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7757,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7757,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7767,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent.cpp:7771,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7772,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/torrent.cpp:7774,1
    - Dst: auto::parse_info_section
      Src: /src/libtorrent/src/torrent.cpp:7775,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:7776,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:7778,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7782,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7784,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7784,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:7786,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:7787,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7793,1
    - Dst: find_torrent
      Src: /src/libtorrent/src/torrent.cpp:7797,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/torrent.cpp:7797,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:7798,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7800,1
    - Dst: auto::valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:7800,1
    - Dst: auto::set_error
      Src: /src/libtorrent/src/torrent.cpp:7808,1
    - Dst: auto::pause
      Src: /src/libtorrent/src/torrent.cpp:7809,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:7811,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:7812,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7815,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7817,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7817,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/torrent.cpp:7818,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7818,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:7818,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:7826,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:7828,1
    - Dst: libtorrent::aux::size_on_disk
      Src: /src/libtorrent/src/torrent.cpp:7830,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:7830,1
    - Dst: update_torrent_info_hash
      Src: /src/libtorrent/src/torrent.cpp:7832,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:7832,1
    - Dst: torrent::initialize_merkle_trees
      Src: /src/libtorrent/src/torrent.cpp:7834,1
    - Dst: torrent::set_error
      Src: /src/libtorrent/src/torrent.cpp:7837,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:7838,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:7842,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:7843,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7845,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7847,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7848,1
    - Dst: torrent::init
      Src: /src/libtorrent/src/torrent.cpp:7854,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:7856,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:7857,1
    - Dst: disconnect_if_redundant
      Src: /src/libtorrent/src/torrent.cpp:7861,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:7863,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 1
    argNames:
    - metadata_buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7866
      start: 7722
    functionDepth: 4
    functionLinenumber: 7722
    functionLinenumberEnd: 7866
    functionName: torrent::set_metadata
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - auto::info_hashes
    - std::move
    - disconnect_if_redundant
    - update_torrent_info_hash
    - is_valid
    - info_hashes
    - torrent::set_error
    - torrent::inc_stats_counter
    - auto::set_error
    - set_need_save_resume
    - torrent::pause
    - alerts
    - bdecode
    - std::make_shared<torrent_info>
    - hasher
    - is_single_thread
    - hasher256
    - num_pieces
    - clear
    - sha1_hash
    - sha256_hash::data
    - shared_from_this
    - auto::valid_metadata
    - info_hash_t
    - files
    - auto::parse_info_section
    - TORRENT_ASSERT
    - libtorrent::aux::size_on_disk
    - torrent::init
    - torrent::initialize_merkle_trees
    - find_torrent
    - torrent::get_handle
    - torrent_handle
    - torrent::update_want_tick
    - auto::pause
    - settings
    - torrent::update_gauge
    linkageType: ''
    returnType: bool
    signature: bool torrent::set_metadata(span<char const> metadata_buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::is_connecting
      Src: /src/libtorrent/src/torrent.cpp:7872,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:7872,1
    - Dst: peer_connection*::is_connecting
      Src: /src/libtorrent/src/torrent.cpp:7873,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:7873,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/torrent.cpp:7879,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/torrent.cpp:7879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7880
      start: 7870
    functionDepth: 1
    functionLinenumber: 7870
    functionLinenumberEnd: 7880
    functionName: connecting_time_compare
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::connected_time
    - peer_connection*::is_disconnecting
    - peer_connection*::is_connecting
    linkageType: ''
    returnType: bool
    signature: bool connecting_time_compare(peer_connection const* lhs, peer_connection
      const* rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::is_connecting
      Src: /src/libtorrent/src/torrent.cpp:7872,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:7872,1
    - Dst: peer_connection*::is_connecting
      Src: /src/libtorrent/src/torrent.cpp:7873,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:7873,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/torrent.cpp:7879,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/torrent.cpp:7879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7880
      start: 7870
    functionDepth: 1
    functionLinenumber: 7870
    functionLinenumberEnd: 7880
    functionName: connecting_time_compare
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::connected_time
    - peer_connection*::is_disconnecting
    - peer_connection*::is_connecting
    linkageType: ''
    returnType: bool
    signature: bool connecting_time_compare(peer_connection const* lhs, peer_connection
      const* rhs)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:7889,1
    - Dst: peer_connection*::get_socket
      Src: /src/libtorrent/src/torrent.cpp:7892,1
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/torrent.cpp:7894,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7899,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7906,1
    - Dst: libtorrent::ssl::has_context
      Src: /src/libtorrent/src/torrent.cpp:7910,1
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7910,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7917,1
    - Dst: is_ssl_torrent
      Src: /src/libtorrent/src/torrent.cpp:7922,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7926,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7931,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:7932,1
    - Dst: peer_connection*::is_outgoing
      Src: /src/libtorrent/src/torrent.cpp:7932,1
    - Dst: access
      Src: /src/libtorrent/src/torrent.cpp:7938,1
    - Dst: peer_connection*::remote
      Src: /src/libtorrent/src/torrent.cpp:7938,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7940,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:7941,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:7941,1
    - Dst: peer_connection*::remote
      Src: /src/libtorrent/src/torrent.cpp:7942,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7943,1
    - Dst: is_downloading_state
      Src: /src/libtorrent/src/torrent.cpp:7947,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:7947,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7949,1
    - Dst: has_connection
      Src: /src/libtorrent/src/torrent.cpp:7953,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7955,1
    - Dst: is_aborted
      Src: /src/libtorrent/src/torrent.cpp:7959,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7961,1
    - Dst: peer_connection*::num_classes
      Src: /src/libtorrent/src/torrent.cpp:7966,1
    - Dst: peer_connection*::class_at
      Src: /src/libtorrent/src/torrent.cpp:7968,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:7969,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:7970,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:7975,1
    - Dst: end_index
      Src: /src/libtorrent/src/torrent.cpp:7979,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/torrent.cpp:7992,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:7992,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:7992,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:7994,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/torrent.cpp:7994,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:7994,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:7997,1
    - Dst: disconnect
      Src: /src/libtorrent/src/torrent.cpp:8000,1
    - Dst: peer_connection*::peer_disconnected_other
      Src: /src/libtorrent/src/torrent.cpp:8005,1
    - Dst: new_connection
      Src: /src/libtorrent/src/torrent.cpp:8016,1
    - Dst: peer_connection_handle
      Src: /src/libtorrent/src/torrent.cpp:8017,1
    - Dst: peer_connection*::self
      Src: /src/libtorrent/src/torrent.cpp:8017,1
    - Dst: peer_connection*::add_extension
      Src: /src/libtorrent/src/torrent.cpp:8018,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:8021,1
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:8022,1
    - Dst: new_connection
      Src: /src/libtorrent/src/torrent.cpp:8023,1
    - Dst: session_time
      Src: /src/libtorrent/src/torrent.cpp:8023,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:8025,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:8027,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:8029,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:8031,1
    - Dst: peer_connection*::remote
      Src: /src/libtorrent/src/torrent.cpp:8031,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8032,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:8036,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:8039,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent.cpp:8041,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:8041,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent.cpp:8042,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:8042,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8046,1
    - Dst: peer_connection*::remote
      Src: /src/libtorrent/src/torrent.cpp:8046,1
    - Dst: peer_connection*::get_socket
      Src: /src/libtorrent/src/torrent.cpp:8046,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8049,1
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:8049,1
    - Dst: torrent::find_lowest_ranking_peer
      Src: /src/libtorrent/src/torrent.cpp:8058,1
    - Dst: peer_connection*::peer_rank
      Src: /src/libtorrent/src/torrent.cpp:8063,1
    - Dst: peer_connection*::peer_rank
      Src: /src/libtorrent/src/torrent.cpp:8063,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:8066,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:8068,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:8070,1
    - Dst: peer_connection*::remote
      Src: /src/libtorrent/src/torrent.cpp:8070,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8071,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:8075,1
    - Dst: peer_connection*::peer_disconnected_other
      Src: /src/libtorrent/src/torrent.cpp:8076,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:8081,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:8083,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:8085,1
    - Dst: peer_connection*::remote
      Src: /src/libtorrent/src/torrent.cpp:8085,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8086,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:8090,1
    - Dst: torrent::remove_peer
      Src: /src/libtorrent/src/torrent.cpp:8094,1
    - Dst: peer_connection*::self
      Src: /src/libtorrent/src/torrent.cpp:8094,1
    - Dst: torrent::check_invariant
      Src: /src/libtorrent/src/torrent.cpp:8100,1
    - Dst: torrent::recalc_share_mode
      Src: /src/libtorrent/src/torrent.cpp:8105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8111,1
    - Dst: sorted_find
      Src: /src/libtorrent/src/torrent.cpp:8111,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:8111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8112,1
    - Dst: sorted_insert
      Src: /src/libtorrent/src/torrent.cpp:8113,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:8114,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:8115,1
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:8117,1
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:8117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8119,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:8124,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:8126,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:8127,1
    - Dst: peer_connection*::remote
      Src: /src/libtorrent/src/torrent.cpp:8127,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8127,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8129,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/torrent.cpp:8138,1
    - Dst: torrent::remove_peer
      Src: /src/libtorrent/src/torrent.cpp:8141,1
    - Dst: peer_connection*::self
      Src: /src/libtorrent/src/torrent.cpp:8141,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 117
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8143
      start: 7884
    functionDepth: 3
    functionLinenumber: 7884
    functionLinenumberEnd: 8143
    functionName: torrent::attach_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_want_peers
    - peer_connection*::self
    - begin
    - valid_metadata
    - torrent::get_peer_list_state
    - session_time
    - libtorrent::ssl::get_handle
    - torrent::peers_erased
    - alerts
    - torrent::remove_peer
    - has_connection
    - is_aborted
    - peer_connection*::peer_disconnected_other
    - is_ssl_torrent
    - peer_classes
    - end
    - peer_connection*::get_socket
    - print_endpoint
    - torrent::recalc_share_mode
    - new_connection
    - sorted_insert
    - num_peers
    - peer_connection*::peer_rank
    - peer_connection*::remote
    - peer_connection_handle
    - peer_connection*::is_outgoing
    - access
    - boost::apply_visitor
    - torrent::find_lowest_ranking_peer
    - peer_connection*::add_extension
    - is_disconnecting
    - libtorrent::ssl::has_context
    - TORRENT_ASSERT
    - reserve
    - peer_connection*::class_at
    - peer_connection*::peer_info_struct
    - is_downloading_state
    - end_index
    - size
    - peer_connection*::disconnect
    - std::max_element
    - torrent::should_log
    - torrent::get_handle
    - torrent::debug_log
    - is_connecting
    - std::int64_t
    - torrent::update_want_tick
    - torrent::check_invariant
    - peer_connection*::num_classes
    - sorted_find
    - torrent::need_peer_list
    - disconnect
    linkageType: ''
    returnType: bool
    signature: bool torrent::attach_peer(peer_connection* p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:8149,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:8152,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:8152,1
    - Dst: low_pass_upload_rate
      Src: /src/libtorrent/src/torrent.cpp:8155,1
    - Dst: low_pass_download_rate
      Src: /src/libtorrent/src/torrent.cpp:8155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8162
      start: 8145
    functionDepth: 0
    functionLinenumber: 8145
    functionLinenumberEnd: 8162
    functionName: torrent::want_tick
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - low_pass_download_rate
    - empty
    - low_pass_upload_rate
    - torrent::is_finished
    linkageType: ''
    returnType: bool
    signature: bool torrent::want_tick() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::update_list
      Src: /src/libtorrent/src/torrent.cpp:8166,1
    - Dst: torrent::want_tick
      Src: /src/libtorrent/src/torrent.cpp:8166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8167
      start: 8164
    functionDepth: 1
    functionLinenumber: 8164
    functionLinenumberEnd: 8167
    functionName: torrent::update_want_tick
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 12
    functionsReached:
    - torrent::update_list
    - torrent::want_tick
    linkageType: ''
    returnType: void
    signature: void torrent::update_want_tick()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_auto_managed
      Src: /src/libtorrent/src/torrent.cpp:8177,1
    - Dst: has_error
      Src: /src/libtorrent/src/torrent.cpp:8177,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:8191,1
    - Dst: torrent::update_list
      Src: /src/libtorrent/src/torrent.cpp:8198,1
    - Dst: torrent::update_list
      Src: /src/libtorrent/src/torrent.cpp:8200,1
    - Dst: torrent::update_list
      Src: /src/libtorrent/src/torrent.cpp:8202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8204
      start: 8171
    functionDepth: 1
    functionLinenumber: 8171
    functionLinenumberEnd: 8204
    functionName: torrent::update_state_list
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 5
    functionsReached:
    - torrent::update_list
    - has_error
    - is_auto_managed
    - torrent::is_finished
    linkageType: ''
    returnType: void
    signature: void torrent::update_state_list()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8210,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:8213,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:8220,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/torrent.cpp:8225,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:8230,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:8235,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:8236,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8240
      start: 8207
    functionDepth: 1
    functionLinenumber: 8207
    functionLinenumberEnd: 8240
    functionName: torrent::want_peers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - num_connect_candidates
    - torrent::is_paused
    - valid_metadata
    - settings
    - num_peers
    linkageType: ''
    returnType: bool
    signature: bool torrent::want_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::want_peers
      Src: /src/libtorrent/src/torrent.cpp:8246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8247
      start: 8242
    functionDepth: 2
    functionLinenumber: 8242
    functionLinenumberEnd: 8247
    functionName: torrent::want_peers_download
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::want_peers
    linkageType: ''
    returnType: bool
    signature: bool torrent::want_peers_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::want_peers
      Src: /src/libtorrent/src/torrent.cpp:8253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8254
      start: 8249
    functionDepth: 2
    functionLinenumber: 8249
    functionLinenumberEnd: 8254
    functionName: torrent::want_peers_finished
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::want_peers
    linkageType: ''
    returnType: bool
    signature: bool torrent::want_peers_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::update_list
      Src: /src/libtorrent/src/torrent.cpp:8258,1
    - Dst: torrent::want_peers_download
      Src: /src/libtorrent/src/torrent.cpp:8258,1
    - Dst: torrent::update_list
      Src: /src/libtorrent/src/torrent.cpp:8259,1
    - Dst: torrent::want_peers_finished
      Src: /src/libtorrent/src/torrent.cpp:8259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8260
      start: 8256
    functionDepth: 3
    functionLinenumber: 8256
    functionLinenumberEnd: 8260
    functionName: torrent::update_want_peers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 14
    functionsReached:
    - torrent::want_peers_finished
    - torrent::update_list
    - torrent::want_peers_download
    linkageType: ''
    returnType: void
    signature: void torrent::update_want_peers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::update_list
      Src: /src/libtorrent/src/torrent.cpp:8264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8266
      start: 8262
    functionDepth: 1
    functionLinenumber: 8262
    functionLinenumberEnd: 8266
    functionName: torrent::update_want_scrape
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::update_list
    linkageType: ''
    returnType: void
    signature: void torrent::update_want_scrape()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:8274,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8276,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8277,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8278,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8279,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8280,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8281,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8282,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8283,1
    - Dst: TORRENT_ASSERT_FAIL_VAL
      Src: /src/libtorrent/src/torrent.cpp:8284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - idx
    argTypes:
    - torrent_list_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8288
      start: 8271
    functionDepth: 1
    functionLinenumber: 8271
    functionLinenumberEnd: 8288
    functionName: list_name
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - TORRENT_LIST_NAME
    - TORRENT_ASSERT_FAIL_VAL
    linkageType: ''
    returnType: char
    signature: char * list_name(torrent_list_index_t const idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8274
      start: 8273
    functionDepth: 0
    functionLinenumber: 8273
    functionLinenumberEnd: 8274
    functionName: TORRENT_LIST_NAME
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_LIST_NAME(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:8274,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8276,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8277,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8278,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8279,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8280,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8281,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8282,1
    - Dst: TORRENT_LIST_NAME
      Src: /src/libtorrent/src/torrent.cpp:8283,1
    - Dst: TORRENT_ASSERT_FAIL_VAL
      Src: /src/libtorrent/src/torrent.cpp:8284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - idx
    argTypes:
    - torrent_list_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8288
      start: 8271
    functionDepth: 1
    functionLinenumber: 8271
    functionLinenumberEnd: 8288
    functionName: list_name
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - TORRENT_LIST_NAME
    - TORRENT_ASSERT_FAIL_VAL
    linkageType: ''
    returnType: char
    signature: char * list_name(torrent_list_index_t const idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8274
      start: 8273
    functionDepth: 0
    functionLinenumber: 8273
    functionLinenumberEnd: 8274
    functionName: TORRENT_LIST_NAME
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_LIST_NAME(n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: torrent_list
      Src: /src/libtorrent/src/torrent.cpp:8296,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8300,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:8301,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8305,1
    - Dst: unlink
      Src: /src/libtorrent/src/torrent.cpp:8306,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:8310,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:8311,1
    - Dst: list_name
      Src: /src/libtorrent/src/torrent.cpp:8311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - list
    - in
    argTypes:
    - torrent_list_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8313
      start: 8293
    functionDepth: 2
    functionLinenumber: 8293
    functionLinenumberEnd: 8313
    functionName: torrent::update_list
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 4
    functionsReached:
    - torrent::should_log
    - torrent_list
    - insert
    - unlink
    - list_name
    - torrent::debug_log
    - in_list
    linkageType: ''
    returnType: void
    signature: void torrent::update_list(torrent_list_index_t const list, bool in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8317,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:8320,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8321,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:8321,1
    - Dst: disconnect
      Src: /src/libtorrent/src/torrent.cpp:8322,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:8325,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:8326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' ec'
    - op
    argTypes:
    - error_code
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8327
      start: 8315
    functionDepth: 4
    functionLinenumber: 8315
    functionLinenumberEnd: 8327
    functionName: torrent::disconnect_all
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - torrent::update_want_peers
    - associated_torrent
    - TORRENT_ASSERT
    - TORRENT_INCREMENT
    - torrent::update_want_tick
    - disconnect
    linkageType: ''
    returnType: void
    signature: void torrent::disconnect_all(error_code const& ec, operation_t op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:8335,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:8335,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:8336,1
    - Dst: peer_connection*::is_interesting
      Src: /src/libtorrent/src/torrent.cpp:8339,1
    - Dst: peer_connection*::is_interesting
      Src: /src/libtorrent/src/torrent.cpp:8339,1
    - Dst: peer_connection*::is_interesting
      Src: /src/libtorrent/src/torrent.cpp:8340,1
    - Dst: peer_connection*::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8343,1
    - Dst: peer_connection*::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8343,1
    - Dst: peer_connection*::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8344,1
    - Dst: peer_connection*::on_parole
      Src: /src/libtorrent/src/torrent.cpp:8347,1
    - Dst: peer_connection*::on_parole
      Src: /src/libtorrent/src/torrent.cpp:8347,1
    - Dst: peer_connection*::on_parole
      Src: /src/libtorrent/src/torrent.cpp:8348,1
    - Dst: peer_connection*::statistics
      Src: /src/libtorrent/src/torrent.cpp:8351,1
    - Dst: peer_connection*::statistics
      Src: /src/libtorrent/src/torrent.cpp:8352,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:8354,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:8355,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/torrent.cpp:8355,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:8356,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/torrent.cpp:8356,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/torrent.cpp:8364,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/torrent.cpp:8364,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/torrent.cpp:8365,1
    - Dst: peer_connection*::last_received
      Src: /src/libtorrent/src/torrent.cpp:8367,1
    - Dst: peer_connection*::last_received
      Src: /src/libtorrent/src/torrent.cpp:8367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8368
      start: 8332
    functionDepth: 2
    functionLinenumber: 8332
    functionLinenumberEnd: 8368
    functionName: compare_disconnect_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::is_seed
    - peer_connection*::statistics
    - peer_connection*::is_choked
    - total_seconds
    - peer_connection*::last_received
    - peer_connection*::connected_time
    - peer_connection*::is_interesting
    - libtorrent::aux::time_now
    - peer_connection*::on_parole
    - peer_connection*::is_disconnecting
    linkageType: ''
    returnType: bool
    signature: bool compare_disconnect_peer(peer_connection const* lhs, peer_connection
      const* rhs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:8335,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:8335,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:8336,1
    - Dst: peer_connection*::is_interesting
      Src: /src/libtorrent/src/torrent.cpp:8339,1
    - Dst: peer_connection*::is_interesting
      Src: /src/libtorrent/src/torrent.cpp:8339,1
    - Dst: peer_connection*::is_interesting
      Src: /src/libtorrent/src/torrent.cpp:8340,1
    - Dst: peer_connection*::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8343,1
    - Dst: peer_connection*::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8343,1
    - Dst: peer_connection*::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8344,1
    - Dst: peer_connection*::on_parole
      Src: /src/libtorrent/src/torrent.cpp:8347,1
    - Dst: peer_connection*::on_parole
      Src: /src/libtorrent/src/torrent.cpp:8347,1
    - Dst: peer_connection*::on_parole
      Src: /src/libtorrent/src/torrent.cpp:8348,1
    - Dst: peer_connection*::statistics
      Src: /src/libtorrent/src/torrent.cpp:8351,1
    - Dst: peer_connection*::statistics
      Src: /src/libtorrent/src/torrent.cpp:8352,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:8354,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:8355,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/torrent.cpp:8355,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:8356,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/torrent.cpp:8356,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/torrent.cpp:8364,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/torrent.cpp:8364,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/torrent.cpp:8365,1
    - Dst: peer_connection*::last_received
      Src: /src/libtorrent/src/torrent.cpp:8367,1
    - Dst: peer_connection*::last_received
      Src: /src/libtorrent/src/torrent.cpp:8367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8368
      start: 8332
    functionDepth: 2
    functionLinenumber: 8332
    functionLinenumberEnd: 8368
    functionName: compare_disconnect_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::is_seed
    - peer_connection*::statistics
    - peer_connection*::is_choked
    - total_seconds
    - peer_connection*::last_received
    - peer_connection*::connected_time
    - peer_connection*::is_interesting
    - libtorrent::aux::time_now
    - peer_connection*::on_parole
    - peer_connection*::is_disconnecting
    linkageType: ''
    returnType: bool
    signature: bool compare_disconnect_peer(peer_connection const* lhs, peer_connection
      const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:8380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8381,1
    - Dst: has_peer
      Src: /src/libtorrent/src/torrent.cpp:8381,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/torrent.cpp:8385,1
    - Dst: std::partial_sort_copy
      Src: /src/libtorrent/src/torrent.cpp:8386,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:8386,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:8386,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:8387,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/torrent.cpp:8387,1
    - Dst: libtorrent::aux::range
      Src: /src/libtorrent/src/torrent.cpp:8388,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:8388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8390,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:8390,1
    - Dst: disconnect
      Src: /src/libtorrent/src/torrent.cpp:8391,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:8393,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:8393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - num
    - ' ec'
    argTypes:
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8394
      start: 8372
    functionDepth: 1
    functionLinenumber: 8372
    functionLinenumberEnd: 8394
    functionName: torrent::disconnect_peers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - aux::vector::begin
    - begin
    - associated_torrent
    - end
    - TORRENT_INCREMENT
    - TORRENT_ASSERT
    - aux::vector::resize
    - std::partial_sort_copy
    - has_peer
    - aux::vector::end
    - disconnect
    - libtorrent::aux::range
    linkageType: ''
    returnType: int
    signature: int torrent::disconnect_peers(int const num, error_code const& ec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:8400,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:8401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8405,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:8405,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:8407,1
    - Dst: torrent::set_queue_position
      Src: /src/libtorrent/src/torrent.cpp:8408,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:8410,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8415,1
    - Dst: torrent::completed
      Src: /src/libtorrent/src/torrent.cpp:8415,1
    - Dst: torrent::send_upload_only
      Src: /src/libtorrent/src/torrent.cpp:8417,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:8418,1
    - Dst: time
      Src: /src/libtorrent/src/torrent.cpp:8421,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:8424,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:8432,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8433,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:8433,1
    - Dst: upload_only
      Src: /src/libtorrent/src/torrent.cpp:8434,1
    - Dst: can_disconnect
      Src: /src/libtorrent/src/torrent.cpp:8434,1
    - Dst: peer_log
      Src: /src/libtorrent/src/torrent.cpp:8437,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent.cpp:8439,1
    - Dst: disconnect
      Src: /src/libtorrent/src/torrent.cpp:8443,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:8449,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:8454,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:8455,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:8455,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:8456,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:8463,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8464
      start: 8398
    functionDepth: 4
    functionLinenumber: 8398
    functionLinenumberEnd: 8464
    functionName: torrent::finished
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::update_want_peers
    - disk_thread
    - associated_torrent
    - torrent::is_seed
    - deferred_submit_jobs
    - time
    - torrent::is_finished
    - TORRENT_INCREMENT
    - torrent::completed
    - upload_only
    - shared_from_this
    - TORRENT_ASSERT
    - disconnect
    - torrent::send_upload_only
    - torrent::state_updated
    - std::bind
    - torrent::update_state_list
    - torrent::set_queue_position
    - std::vector::push_back
    - can_disconnect
    - torrent::set_state
    - torrent::update_want_tick
    - trigger_auto_manage
    - settings
    - libtorrent::aux::time_now32
    - peer_log
    linkageType: ''
    returnType: void
    signature: void torrent::finished()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8474,1
    - Dst: torrent::leave_seed_mode
      Src: /src/libtorrent/src/torrent.cpp:8479,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8481,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:8481,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:8482,1
    - Dst: torrent::set_queue_position
      Src: /src/libtorrent/src/torrent.cpp:8483,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:8488,1
    - Dst: torrent::send_upload_only
      Src: /src/libtorrent/src/torrent.cpp:8490,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:8491,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:8492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8493
      start: 8468
    functionDepth: 3
    functionLinenumber: 8468
    functionLinenumberEnd: 8493
    functionName: torrent::resume_download
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::update_state_list
    - torrent::set_queue_position
    - torrent::is_finished
    - torrent::set_state
    - torrent::debug_log
    - TORRENT_ASSERT
    - torrent::update_want_tick
    - torrent::leave_seed_mode
    - torrent::send_upload_only
    linkageType: ''
    returnType: void
    signature: void torrent::resume_download()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:8497,1
    - Dst: is_seeding
      Src: /src/libtorrent/src/torrent.cpp:8499,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:8505,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:8508,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:8509,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:8510,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:8514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8515
      start: 8495
    functionDepth: 2
    functionLinenumber: 8495
    functionLinenumberEnd: 8515
    functionName: torrent::maybe_done_flushing
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - reset
    - has_picker
    - clear
    - settings
    - torrent::update_gauge
    - is_seeding
    linkageType: ''
    returnType: void
    signature: void torrent::maybe_done_flushing()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: torrent::maybe_done_flushing
      Src: /src/libtorrent/src/torrent.cpp:8521,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:8523,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:8524,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:8528,1
    - Dst: torrent::announce_with_tracker
      Src: /src/libtorrent/src/torrent.cpp:8542,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8543
      start: 8519
    functionDepth: 3
    functionLinenumber: 8519
    functionLinenumberEnd: 8543
    functionName: torrent::completed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::time_now32
    - torrent::maybe_done_flushing
    - torrent::set_state
    - torrent::announce_with_tracker
    linkageType: ''
    returnType: void
    signature: void torrent::completed()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8550,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:8550,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:8551,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:8553,1
    - Dst: swap
      Src: /src/libtorrent/src/torrent.cpp:8556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8562
      start: 8545
    functionDepth: 1
    functionLinenumber: 8545
    functionLinenumberEnd: 8562
    functionName: torrent::deprioritize_tracker
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - swap
    - size
    linkageType: ''
    returnType: int
    signature: int torrent::deprioritize_tracker(int index)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8566,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:8566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8567,1
    - Dst: is_valid
      Src: /src/libtorrent/src/torrent.cpp:8567,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:8572,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:8586,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8589,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:8596,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:8597,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:8601,1
    - Dst: torrent::finished
      Src: /src/libtorrent/src/torrent.cpp:8602,1
    - Dst: torrent::finished
      Src: /src/libtorrent/src/torrent.cpp:8621,1
    - Dst: torrent::set_state
      Src: /src/libtorrent/src/torrent.cpp:8631,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8636,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8638,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:8639,1
    - Dst: on_files_checked
      Src: /src/libtorrent/src/torrent.cpp:8645,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:8653,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:8657,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:8662,1
    - Dst: on_metadata_impl
      Src: /src/libtorrent/src/torrent.cpp:8663,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:8664,1
    - Dst: torrent::init
      Src: /src/libtorrent/src/torrent.cpp:8665,1
    - Dst: peer_log
      Src: /src/libtorrent/src/torrent.cpp:8669,1
    - Dst: is_interesting
      Src: /src/libtorrent/src/torrent.cpp:8671,1
    - Dst: has_peer_choked
      Src: /src/libtorrent/src/torrent.cpp:8671,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/torrent.cpp:8673,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:8675,1
    - Dst: send_block_requests
      Src: /src/libtorrent/src/torrent.cpp:8676,1
    - Dst: torrent::start_announcing
      Src: /src/libtorrent/src/torrent.cpp:8681,1
    - Dst: torrent::maybe_connect_web_seeds
      Src: /src/libtorrent/src/torrent.cpp:8683,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8684
      start: 8564
    functionDepth: 5
    functionLinenumber: 8564
    functionLinenumberEnd: 8684
    functionName: torrent::files_checked
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - is_valid
    - torrent::inc_stats_counter
    - set_need_save_resume
    - torrent::is_seed
    - is_interesting
    - alerts
    - torrent::is_finished
    - is_single_thread
    - send_block_requests
    - TORRENT_INCREMENT
    - is_disconnecting
    - TORRENT_ASSERT
    - on_metadata_impl
    - torrent::init
    - on_files_checked
    - torrent::state_updated
    - has_peer_choked
    - request_a_block
    - torrent::maybe_connect_web_seeds
    - torrent::set_state
    - torrent::finished
    - torrent::get_handle
    - torrent::debug_log
    - torrent::update_want_tick
    - trigger_auto_manage
    - torrent::start_announcing
    - peer_log
    linkageType: ''
    returnType: void
    signature: void torrent::files_checked()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8688,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:8688,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8690
      start: 8686
    functionDepth: 1
    functionLinenumber: 8686
    functionLinenumberEnd: 8690
    functionName: '& torrent::alerts() const'
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - alerts
    linkageType: ''
    returnType: aux::alert_manager
    signature: aux::alert_manager & torrent::alerts() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:8694,1
    - Dst: is_seeding
      Src: /src/libtorrent/src/torrent.cpp:8697,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8699
      start: 8692
    functionDepth: 1
    functionLinenumber: 8692
    functionLinenumberEnd: 8699
    functionName: torrent::is_seed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 17
    functionsReached:
    - valid_metadata
    - is_seeding
    linkageType: ''
    returnType: bool
    signature: bool torrent::is_seed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8703,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:8704,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:8704,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:8704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8705
      start: 8701
    functionDepth: 1
    functionLinenumber: 8701
    functionLinenumberEnd: 8705
    functionName: torrent::is_finished
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 16
    functionsReached:
    - has_picker
    - torrent::is_seed
    - valid_metadata
    - torrent::is_finished
    linkageType: ''
    returnType: bool
    signature: bool torrent::is_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:8709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8712
      start: 8707
    functionDepth: 1
    functionLinenumber: 8707
    functionLinenumberEnd: 8712
    functionName: torrent::is_inactive
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - settings
    linkageType: ''
    returnType: bool
    signature: bool torrent::is_inactive() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8717
      start: 8714
    functionDepth: 0
    functionLinenumber: 8714
    functionLinenumberEnd: 8717
    functionName: torrent::save_path
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string torrent::save_path() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:8723,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8724,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent.cpp:8724,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8725,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:8725,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/torrent.cpp:8726,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8731,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8732,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:8732,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:8737,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:8737,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:8738,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:8738,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:8739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - index
    - name
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8740
      start: 8719
    functionDepth: 1
    functionLinenumber: 8719
    functionLinenumberEnd: 8740
    functionName: torrent::rename_file
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - shared_from_this
    - std::move
    - disk_thread
    - files
    - torrent::get_handle
    - TORRENT_ASSERT
    - end_file
    - deferred_submit_jobs
    - file_index_t
    - alerts
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void torrent::rename_file(file_index_t const index, std::string name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8744,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:8744,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8749,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8750,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:8750,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:8758,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8760,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8761,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:8761,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/src/torrent.cpp:8763,1
    - Dst: complete
      Src: /src/libtorrent/src/torrent.cpp:8767,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/src/torrent.cpp:8775,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:8779,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:8779,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:8780,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:8780,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:8782,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8786,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8787,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:8787,1
    - Dst: canonicalize_path
      Src: /src/libtorrent/src/torrent.cpp:8790,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:8795,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ' save_path'
    - flags
    argTypes:
    - std::string
    - move_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8797
      start: 8742
    functionDepth: 1
    functionLinenumber: 8742
    functionLinenumberEnd: 8797
    functionName: torrent::move_storage
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - std::move
    - disk_thread
    - is_single_thread
    - valid_metadata
    - torrent::get_handle
    - canonicalize_path
    - TORRENT_ASSERT
    - set_need_save_resume
    - deferred_submit_jobs
    - alerts
    - complete
    linkageType: ''
    returnType: void
    signature: void torrent::move_storage(std::string const& save_path, move_flags_t
      const flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8802,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:8802,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8808,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8809,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:8809,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:8811,1
    - Dst: torrent::force_recheck
      Src: /src/libtorrent/src/torrent.cpp:8813,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8817,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:8818,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:8818,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:8819,1
    - Dst: file
      Src: /src/libtorrent/src/torrent.cpp:8819,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:8822,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - status
    - ' path'
    - ' error'
    argTypes:
    - status_t
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8822
      start: 8799
    functionDepth: 5
    functionLinenumber: 8799
    functionLinenumberEnd: 8822
    functionName: torrent::on_storage_moved
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::handle_exception
    - is_single_thread
    - torrent::get_handle
    - TORRENT_ASSERT
    - set_need_save_resume
    - file
    - torrent::resolve_filename
    - torrent::force_recheck
    - alerts
    linkageType: ''
    returnType: void
    signature: "void torrent::on_storage_moved(status_t const status, std::string
      const& path\n\t\t, storage_error const& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8826,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:8826,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/torrent.cpp:8827,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:8827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8828
      start: 8824
    functionDepth: 1
    functionLinenumber: 8824
    functionLinenumberEnd: 8828
    functionName: torrent::get_handle
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 41
    functionsReached:
    - TORRENT_ASSERT
    - shared_from_this
    - is_single_thread
    - torrent_handle
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle torrent::get_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8832,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:8832,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:8833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8834
      start: 8830
    functionDepth: 1
    functionLinenumber: 8830
    functionLinenumberEnd: 8834
    functionName: '& torrent::settings() const'
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - settings
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings & torrent::settings() const
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8839,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:8839,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:8839,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8843,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:8843,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:8843,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8844,1
    - Dst: torrent::current_stats_state
      Src: /src/libtorrent/src/torrent.cpp:8844,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8847,1
    - Dst: verify_queue_position
      Src: /src/libtorrent/src/torrent.cpp:8848,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8853,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8853,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8854,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:8854,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:8854,1
    - Dst: torrent::current_stats_state
      Src: /src/libtorrent/src/torrent.cpp:8858,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8860,1
    - Dst: has_error
      Src: /src/libtorrent/src/torrent.cpp:8860,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8863,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:8863,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:8864,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8866,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:8866,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8869,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8869,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8870,1
    - Dst: is_upload_only
      Src: /src/libtorrent/src/torrent.cpp:8870,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8871,1
    - Dst: is_auto_managed
      Src: /src/libtorrent/src/torrent.cpp:8871,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8875,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8875,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8880,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:8880,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8881,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/torrent.cpp:8881,1
    - Dst: end_index
      Src: /src/libtorrent/src/torrent.cpp:8884,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8886,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8889,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8890,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/torrent.cpp:8890,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8893,1
    - Dst: torrent::want_peers_download
      Src: /src/libtorrent/src/torrent.cpp:8893,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8893,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8894,1
    - Dst: torrent::want_peers_finished
      Src: /src/libtorrent/src/torrent.cpp:8894,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8894,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8895,1
    - Dst: torrent::want_tick
      Src: /src/libtorrent/src/torrent.cpp:8895,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8895,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8896,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8896,1
    - Dst: is_auto_managed
      Src: /src/libtorrent/src/torrent.cpp:8902,1
    - Dst: has_error
      Src: /src/libtorrent/src/torrent.cpp:8902,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:8913,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8920,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8920,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8922,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8922,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8924,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:8924,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8929,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8929,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8932,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:8932,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:8934,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8934,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8934,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/torrent.cpp:8945,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/torrent.cpp:8947,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:8947,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:8950,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:8952,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:8958,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:8958,1
    - Dst: request_queue
      Src: /src/libtorrent/src/torrent.cpp:8962,1
    - Dst: download_queue
      Src: /src/libtorrent/src/torrent.cpp:8967,1
    - Dst: is_choked
      Src: /src/libtorrent/src/torrent.cpp:8972,1
    - Dst: ignore_unchoke_slots
      Src: /src/libtorrent/src/torrent.cpp:8972,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:8973,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/torrent.cpp:8975,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8977,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8978,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8979,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8980,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8982,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8982,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8982,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8983,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8983,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8983,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8984,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8984,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8984,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8985,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8985,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8985,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8986,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/torrent.cpp:8988,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8988,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8989,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:8991,1
    - Dst: std::map::begin
      Src: /src/libtorrent/src/torrent.cpp:8993,1
    - Dst: std::map::end
      Src: /src/libtorrent/src/torrent.cpp:8994,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:8998,1
    - Dst: is_downloaded
      Src: /src/libtorrent/src/torrent.cpp:9004,1
    - Dst: is_downloading
      Src: /src/libtorrent/src/torrent.cpp:9004,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/torrent.cpp:9008,1
    - Dst: torrent::begin
      Src: /src/libtorrent/src/torrent.cpp:9011,1
    - Dst: torrent::end
      Src: /src/libtorrent/src/torrent.cpp:9011,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/torrent.cpp:9014,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:9014,1
    - Dst: remote
      Src: /src/libtorrent/src/torrent.cpp:9014,1
    - Dst: request_queue
      Src: /src/libtorrent/src/torrent.cpp:9015,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/torrent.cpp:9017,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:9018,1
    - Dst: download_queue
      Src: /src/libtorrent/src/torrent.cpp:9022,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/torrent.cpp:9024,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:9025,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/torrent.cpp:9030,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:9036,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9038,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:9038,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:9038,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9042,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:9042,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:9048,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:9048,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:9050,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:9052,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9056,1
    - Dst: cmp
      Src: /src/libtorrent/src/torrent.cpp:9056,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:9086,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9088,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:9088,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 124
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9090
      start: 8837
    functionDepth: 3
    functionLinenumber: 8837
    functionLinenumberEnd: 9090
    functionName: torrent::check_invariant
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - is_upload_only
    - ignore_unchoke_slots
    - static_cast<int>
    - torrent::want_peers_download
    - torrent::want_peers_finished
    - associated_torrent
    - begin
    - empty
    - valid_metadata
    - block_size
    - remote
    - info_hashes
    - TORRENT_ASSERT_FAIL
    - torrent::is_seed
    - cmp
    - torrent::is_finished
    - is_downloading
    - torrent::current_stats_state
    - is_single_thread
    - end
    - std::map::begin
    - print_endpoint
    - num_pieces
    - num_peers
    - torrent::is_paused
    - has_error
    - is_downloaded
    - verify_queue_position
    - is_auto_managed
    - torrent_list
    - TORRENT_ASSERT_VAL
    - torrent::begin
    - TORRENT_ASSERT
    - has_picker
    - torrent::want_tick
    - request_queue
    - std::map::end
    - have_piece
    - is_choked
    - torrent::end
    - end_index
    - size
    - state
    - download_queue
    - is_connecting
    - peer_info_struct
    - std::fprintf
    - in_list
    linkageType: ''
    returnType: void
    signature: void torrent::check_invariant() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9095,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9095,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9099,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9102,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sd
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9105
      start: 9093
    functionDepth: 1
    functionLinenumber: 9093
    functionLinenumberEnd: 9105
    functionName: torrent::set_sequential_download
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - is_single_thread
    - torrent::debug_log
    - TORRENT_ASSERT
    - set_need_save_resume
    - torrent::state_updated
    linkageType: ''
    returnType: void
    signature: void torrent::set_sequential_download(bool const sd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:9111,1
    - Dst: torrent::set_queue_position
      Src: /src/libtorrent/src/torrent.cpp:9113,1
    - Dst: queue_position
      Src: /src/libtorrent/src/torrent.cpp:9113,1
    - Dst: queue_position
      Src: /src/libtorrent/src/torrent.cpp:9114,1
    - Dst: prev
      Src: /src/libtorrent/src/torrent.cpp:9114,1
    - Dst: queue_position
      Src: /src/libtorrent/src/torrent.cpp:9114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9115
      start: 9107
    functionDepth: 1
    functionLinenumber: 9107
    functionLinenumberEnd: 9115
    functionName: torrent::queue_up
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - queue_position
    - prev
    - torrent::set_queue_position
    - torrent::is_finished
    linkageType: ''
    returnType: void
    signature: void torrent::queue_up()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::set_queue_position
      Src: /src/libtorrent/src/torrent.cpp:9119,1
    - Dst: next
      Src: /src/libtorrent/src/torrent.cpp:9119,1
    - Dst: queue_position
      Src: /src/libtorrent/src/torrent.cpp:9119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9120
      start: 9117
    functionDepth: 1
    functionLinenumber: 9117
    functionLinenumberEnd: 9120
    functionName: torrent::queue_down
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - queue_position
    - torrent::set_queue_position
    - next
    linkageType: ''
    returnType: void
    signature: void torrent::queue_down()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9124,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9124,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:9128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9130,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:9130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9136,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9138,1
    - Dst: torrent::set_queue_position
      Src: /src/libtorrent/src/torrent.cpp:9140,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - queue_position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9141
      start: 9122
    functionDepth: 1
    functionLinenumber: 9122
    functionLinenumberEnd: 9141
    functionName: torrent::set_queue_position
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 7
    functionsReached:
    - torrent::set_queue_position
    - torrent::is_finished
    - is_single_thread
    - TORRENT_ASSERT
    - torrent::state_updated
    linkageType: ''
    returnType: void
    signature: void torrent::set_queue_position(queue_position_t const p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9145,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9145,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9149,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:9150,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:9152,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9153,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - limit
    - state_update
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9158
      start: 9143
    functionDepth: 1
    functionLinenumber: 9143
    functionLinenumberEnd: 9158
    functionName: torrent::set_max_uploads
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::should_log
    - aux::numeric_cast<std::uint32_t>
    - is_single_thread
    - torrent::debug_log
    - TORRENT_ASSERT
    - set_need_save_resume
    - torrent::state_updated
    linkageType: ''
    returnType: void
    signature: void torrent::set_max_uploads(int limit, bool const state_update)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9162,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9162,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9166,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:9167,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:9168,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:9171,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9172,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:9175,1
    - Dst: torrent::disconnect_peers
      Src: /src/libtorrent/src/torrent.cpp:9177,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:9177,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - limit
    - state_update
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9183
      start: 9160
    functionDepth: 4
    functionLinenumber: 9160
    functionLinenumberEnd: 9183
    functionName: torrent::set_max_connections
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::update_want_peers
    - torrent::should_log
    - aux::numeric_cast<std::uint32_t>
    - is_single_thread
    - torrent::debug_log
    - TORRENT_ASSERT
    - set_need_save_resume
    - num_peers
    - torrent::state_updated
    - torrent::disconnect_peers
    linkageType: ''
    returnType: void
    signature: void torrent::set_max_connections(int limit, bool const state_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::set_limit_impl
      Src: /src/libtorrent/src/torrent.cpp:9187,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9191
      start: 9185
    functionDepth: 1
    functionLinenumber: 9185
    functionLinenumberEnd: 9191
    functionName: torrent::set_upload_limit
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::set_limit_impl
    - torrent::debug_log
    linkageType: ''
    returnType: void
    signature: void torrent::set_upload_limit(int const limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::set_limit_impl
      Src: /src/libtorrent/src/torrent.cpp:9195,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9199
      start: 9193
    functionDepth: 1
    functionLinenumber: 9193
    functionLinenumberEnd: 9199
    functionName: torrent::set_download_limit
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::set_limit_impl
    - torrent::debug_log
    linkageType: ''
    returnType: void
    signature: void torrent::set_download_limit(int const limit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9203,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9203,1
    - Dst: torrent::setup_peer_class
      Src: /src/libtorrent/src/torrent.cpp:9209,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:9212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9213,1
    - Dst: throttle
      Src: /src/libtorrent/src/torrent.cpp:9214,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9217,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9218,1
    - Dst: throttle
      Src: /src/libtorrent/src/torrent.cpp:9220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - limit
    - channel
    - state_update
    argTypes:
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9221
      start: 9201
    functionDepth: 2
    functionLinenumber: 9201
    functionLinenumberEnd: 9221
    functionName: torrent::set_limit_impl
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - peer_classes
    - is_single_thread
    - TORRENT_ASSERT
    - torrent::setup_peer_class
    - set_need_save_resume
    - throttle
    - torrent::state_updated
    linkageType: ''
    returnType: void
    signature: void torrent::set_limit_impl(int limit, int const channel, bool const
      state_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9225,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:9226,1
    - Dst: torrent::name
      Src: /src/libtorrent/src/torrent.cpp:9226,1
    - Dst: add_class
      Src: /src/libtorrent/src/torrent.cpp:9227,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:9227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9228
      start: 9223
    functionDepth: 1
    functionLinenumber: 9223
    functionLinenumberEnd: 9228
    functionName: torrent::setup_peer_class
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - peer_classes
    - add_class
    - torrent::name
    linkageType: ''
    returnType: void
    signature: void torrent::setup_peer_class()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9232,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9232,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:9235,1
    - Dst: throttle
      Src: /src/libtorrent/src/torrent.cpp:9235,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent.cpp:9236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9238
      start: 9230
    functionDepth: 2
    functionLinenumber: 9230
    functionLinenumberEnd: 9238
    functionName: torrent::limit_impl
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - peer_classes
    - is_single_thread
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - throttle
    linkageType: ''
    returnType: int
    signature: int torrent::limit_impl(int const channel) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::limit_impl
      Src: /src/libtorrent/src/torrent.cpp:9242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9243
      start: 9240
    functionDepth: 3
    functionLinenumber: 9240
    functionLinenumberEnd: 9243
    functionName: torrent::upload_limit
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::limit_impl
    linkageType: ''
    returnType: int
    signature: int torrent::upload_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::limit_impl
      Src: /src/libtorrent/src/torrent.cpp:9247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9248
      start: 9245
    functionDepth: 3
    functionLinenumber: 9245
    functionLinenumberEnd: 9248
    functionName: torrent::download_limit
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::limit_impl
    linkageType: ''
    returnType: int
    signature: int torrent::download_limit() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9252,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9252,1
    - Dst: torrent::log_to_all_peers
      Src: /src/libtorrent/src/torrent.cpp:9255,1
    - Dst: torrent::disconnect_all
      Src: /src/libtorrent/src/torrent.cpp:9258,1
    - Dst: torrent::stop_announcing
      Src: /src/libtorrent/src/torrent.cpp:9259,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9264,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:9265,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:9266,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:9266,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:9268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - options
    argTypes:
    - remove_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9272
      start: 9250
    functionDepth: 5
    functionLinenumber: 9250
    functionLinenumberEnd: 9272
    functionName: torrent::delete_files
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - torrent::stop_announcing
    - disk_thread
    - is_single_thread
    - TORRENT_ASSERT
    - deferred_submit_jobs
    - torrent::disconnect_all
    - torrent::log_to_all_peers
    linkageType: ''
    returnType: bool
    signature: bool torrent::delete_files(remove_flags_t const options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9276,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9276,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:9278,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:9279,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:9280,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:9283,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9284,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:9285,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:9286,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:9289,1
    - Dst: torrent::init
      Src: /src/libtorrent/src/torrent.cpp:9289,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:9290,1
    - Dst: torrent::start_checking
      Src: /src/libtorrent/src/torrent.cpp:9291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9292
      start: 9274
    functionDepth: 4
    functionLinenumber: 9274
    functionLinenumberEnd: 9292
    functionName: torrent::clear_error
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::update_want_peers
    - torrent::update_state_list
    - torrent::should_check_files
    - is_single_thread
    - valid_metadata
    - torrent::start_checking
    - TORRENT_ASSERT
    - trigger_auto_manage
    - torrent::init
    - clear
    - torrent::update_gauge
    - torrent::state_updated
    linkageType: ''
    returnType: void
    signature: void torrent::clear_error()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent.cpp:9301,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:9303,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent.cpp:9304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - file
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9310
      start: 9293
    functionDepth: 1
    functionLinenumber: 9293
    functionLinenumberEnd: 9310
    functionName: torrent::resolve_filename
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 5
    functionsReached:
    - file_path
    - files
    - file_index_t
    linkageType: ''
    returnType: std::string
    signature: std::string torrent::resolve_filename(file_index_t const file) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9314,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9314,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:9318,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9320,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9321,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9321,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:9322,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/torrent.cpp:9328,1
    - Dst: message
      Src: /src/libtorrent/src/torrent.cpp:9328,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:9329,1
    - Dst: torrent::log_to_all_peers
      Src: /src/libtorrent/src/torrent.cpp:9330,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9334,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:9335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' ec'
    - error_file
    argTypes:
    - error_code
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9336
      start: 9312
    functionDepth: 2
    functionLinenumber: 9312
    functionLinenumberEnd: 9336
    functionName: torrent::set_error
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 10
    functionsReached:
    - torrent::update_state_list
    - is_single_thread
    - message
    - torrent::get_handle
    - std::snprintf
    - TORRENT_ASSERT
    - torrent::resolve_filename
    - torrent::update_gauge
    - torrent::log_to_all_peers
    - torrent::state_updated
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::set_error(error_code const& ec, file_index_t const error_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9340,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9340,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:9344,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:9346,1
    - Dst: torrent::update_want_scrape
      Src: /src/libtorrent/src/torrent.cpp:9347,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:9348,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9350,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9353,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:9357,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:9359,1
    - Dst: torrent::start_checking
      Src: /src/libtorrent/src/torrent.cpp:9361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - a
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9363
      start: 9338
    functionDepth: 3
    functionLinenumber: 9338
    functionLinenumberEnd: 9363
    functionName: torrent::auto_managed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - torrent::update_state_list
    - torrent::should_check_files
    - is_single_thread
    - torrent::start_checking
    - TORRENT_ASSERT
    - set_need_save_resume
    - trigger_auto_manage
    - torrent::update_want_scrape
    - torrent::update_gauge
    - torrent::state_updated
    linkageType: ''
    returnType: void
    signature: void torrent::auto_managed(bool a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent.cpp:9370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9371
      start: 9367
    functionDepth: 0
    functionLinenumber: 9367
    functionLinenumberEnd: 9371
    functionName: clamped_subtract_u16
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t clamped_subtract_u16(int const a, int const b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent.cpp:9370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9371
      start: 9367
    functionDepth: 0
    functionLinenumber: 9367
    functionLinenumberEnd: 9371
    functionName: clamped_subtract_u16
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t clamped_subtract_u16(int const a, int const b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clamped_subtract_u16
      Src: /src/libtorrent/src/torrent.cpp:9389,1
    - Dst: clamped_subtract_u16
      Src: /src/libtorrent/src/torrent.cpp:9390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9393
      start: 9382
    functionDepth: 1
    functionLinenumber: 9382
    functionLinenumberEnd: 9393
    functionName: torrent::step_session_time
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - clamped_subtract_u16
    linkageType: ''
    returnType: void
    signature: void torrent::step_session_time(int const seconds)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9398,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9398,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:9407,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:9410,1
    - Dst: torrent::active_time
      Src: /src/libtorrent/src/torrent.cpp:9414,1
    - Dst: torrent::finished_time
      Src: /src/libtorrent/src/torrent.cpp:9415,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:9421,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:9421,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:9422,1
    - Dst: get_int
      Src: /src/libtorrent/src/torrent.cpp:9422,1
    - Dst: seconds32::count
      Src: /src/libtorrent/src/torrent.cpp:9423,1
    - Dst: get_int
      Src: /src/libtorrent/src/torrent.cpp:9424,1
    - Dst: get_int
      Src: /src/libtorrent/src/torrent.cpp:9426,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:9431,1
    - Dst: minutes
      Src: /src/libtorrent/src/torrent.cpp:9431,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:9441,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:9441,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:9443,1
    - Dst: torrent::num_seeds
      Src: /src/libtorrent/src/torrent.cpp:9444,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:9447,1
    - Dst: torrent::num_seeds
      Src: /src/libtorrent/src/torrent.cpp:9447,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9460
      start: 9396
    functionDepth: 1
    functionLinenumber: 9396
    functionLinenumberEnd: 9460
    functionName: torrent::seed_rank
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - total_size
    - torrent::is_finished
    - is_single_thread
    - torrent::active_time
    - seconds
    - torrent::num_seeds
    - TORRENT_ASSERT
    - get_int
    - torrent::is_seed
    - std::max
    - seconds32::count
    - minutes
    - torrent::is_paused
    - num_peers
    - torrent::finished_time
    linkageType: ''
    returnType: int
    signature: int torrent::seed_rank(aux::session_settings const& s) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9465,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9465,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9470,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9470,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9489,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9489,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9495,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:9499,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:9500,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9503,1
    - Dst: torrent::write_resume_data
      Src: /src/libtorrent/src/torrent.cpp:9506,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9507,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:9507,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - flags
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9508
      start: 9463
    functionDepth: 3
    functionLinenumber: 9463
    functionLinenumberEnd: 9508
    functionName: torrent::save_resume_data
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - disk_thread
    - is_single_thread
    - torrent::get_handle
    - torrent::write_resume_data
    - TORRENT_ASSERT
    - deferred_submit_jobs
    - torrent::state_updated
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::save_resume_data(resume_data_flags_t const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9512,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9512,1
    - Dst: torrent::write_resume_data
      Src: /src/libtorrent/src/torrent.cpp:9519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - flags
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9522
      start: 9510
    functionDepth: 3
    functionLinenumber: 9510
    functionLinenumberEnd: 9522
    functionName: torrent::get_resume_data
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - torrent::write_resume_data
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params torrent::get_resume_data(resume_data_flags_t const
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9526,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9526,1
    - Dst: has_error
      Src: /src/libtorrent/src/torrent.cpp:9529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9532
      start: 9524
    functionDepth: 1
    functionLinenumber: 9524
    functionLinenumberEnd: 9532
    functionName: torrent::should_check_files
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - has_error
    linkageType: ''
    returnType: bool
    signature: bool torrent::should_check_files() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9536,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9536,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9541,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:9544,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:9545,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:9545,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:9546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9547
      start: 9534
    functionDepth: 1
    functionLinenumber: 9534
    functionLinenumberEnd: 9547
    functionName: torrent::flush_cache
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - shared_from_this
    - disk_thread
    - is_single_thread
    - TORRENT_ASSERT
    - deferred_submit_jobs
    linkageType: ''
    returnType: void
    signature: void torrent::flush_cache()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9551,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9551,1
    - Dst: is_aborted
      Src: /src/libtorrent/src/torrent.cpp:9553,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9555,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9556,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9556,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:9558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - manually_triggered
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9558
      start: 9549
    functionDepth: 2
    functionLinenumber: 9549
    functionLinenumberEnd: 9558
    functionName: torrent::on_cache_flushed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - is_aborted
    - torrent::handle_exception
    - is_single_thread
    - torrent::get_handle
    - TORRENT_ASSERT
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::on_cache_flushed(bool const manually_triggered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9562,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9562,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:9566,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9568,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9568,1
    - Dst: info_hash
      Src: /src/libtorrent/src/torrent.cpp:9569,1
    - Dst: get_userdata
      Src: /src/libtorrent/src/torrent.cpp:9569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9570
      start: 9560
    functionDepth: 1
    functionLinenumber: 9560
    functionLinenumberEnd: 9570
    functionName: torrent::on_torrent_aborted
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - get_userdata
    - reset
    - info_hash
    - is_single_thread
    - torrent::get_handle
    - TORRENT_ASSERT
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::on_torrent_aborted()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9575
      start: 9572
    functionDepth: 0
    functionLinenumber: 9572
    functionLinenumberEnd: 9575
    functionName: torrent::is_paused
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool torrent::is_paused() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9579,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9579,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9585,1
    - Dst: torrent::set_paused
      Src: /src/libtorrent/src/torrent.cpp:9588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - flags
    argTypes:
    - pause_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9589
      start: 9577
    functionDepth: 1
    functionLinenumber: 9577
    functionLinenumberEnd: 9589
    functionName: torrent::pause
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 10
    functionsReached:
    - TORRENT_ASSERT
    - torrent::set_paused
    - is_single_thread
    - set_need_save_resume
    linkageType: ''
    returnType: void
    signature: void torrent::pause(pause_flags_t const flags)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9593,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9593,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:9594,1
    - Dst: cancel
      Src: /src/libtorrent/src/torrent.cpp:9603,1
    - Dst: on_pause
      Src: /src/libtorrent/src/torrent.cpp:9609,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent.cpp:9614,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:9614,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:9617,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:9618,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:9625,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:9628,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:9630,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:9631,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:9633,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:9634,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9641,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:9642,1
    - Dst: torrent::update_want_scrape
      Src: /src/libtorrent/src/torrent.cpp:9643,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:9644,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:9645,1
    - Dst: torrent::log_to_all_peers
      Src: /src/libtorrent/src/torrent.cpp:9648,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9657,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9658,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9658,1
    - Dst: torrent::disconnect_all
      Src: /src/libtorrent/src/torrent.cpp:9660,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:9671,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:9672,1
    - Dst: torrent::on_torrent_paused
      Src: /src/libtorrent/src/torrent.cpp:9672,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:9673,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9677,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9678,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9678,1
    - Dst: torrent::disconnect_all
      Src: /src/libtorrent/src/torrent.cpp:9681,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:9690,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9691,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/torrent.cpp:9691,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:9693,1
    - Dst: outstanding_bytes
      Src: /src/libtorrent/src/torrent.cpp:9695,1
    - Dst: peer_log
      Src: /src/libtorrent/src/torrent.cpp:9698,1
    - Dst: clear_request_queue
      Src: /src/libtorrent/src/torrent.cpp:9701,1
    - Dst: choke_this_peer
      Src: /src/libtorrent/src/torrent.cpp:9703,1
    - Dst: peer_log
      Src: /src/libtorrent/src/torrent.cpp:9711,1
    - Dst: disconnect
      Src: /src/libtorrent/src/torrent.cpp:9713,1
    - Dst: torrent::stop_announcing
      Src: /src/libtorrent/src/torrent.cpp:9717,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 1
    argNames:
    - was_paused
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9718
      start: 9591
    functionDepth: 5
    functionLinenumber: 9591
    functionLinenumberEnd: 9718
    functionName: torrent::do_pause
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_want_peers
    - torrent::stop_announcing
    - disk_thread
    - associated_torrent
    - cancel
    - torrent::is_seed
    - on_pause
    - deferred_submit_jobs
    - alerts
    - libtorrent::aux::time_now
    - torrent::is_finished
    - is_single_thread
    - TORRENT_INCREMENT
    - duration_cast<seconds32>
    - torrent::is_paused
    - torrent::disconnect_all
    - clear_request_queue
    - torrent::log_to_all_peers
    - shared_from_this
    - is_disconnecting
    - TORRENT_ASSERT
    - disconnect
    - static_cast<std::uint8_t>
    - torrent::state_updated
    - torrent::update_state_list
    - torrent::get_handle
    - torrent::update_want_tick
    - outstanding_bytes
    - settings
    - torrent::update_want_scrape
    - torrent::update_gauge
    - torrent::on_torrent_paused
    - peer_log
    - choke_this_peer
    linkageType: ''
    returnType: void
    signature: void torrent::do_pause(bool const was_paused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9723,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9723,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:9725,1
    - Dst: front
      Src: /src/libtorrent/src/torrent.cpp:9726,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:9732,1
    - Dst: peer_log
      Src: /src/libtorrent/src/torrent.cpp:9733,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9738
      start: 9721
    functionDepth: 1
    functionLinenumber: 9721
    functionLinenumberEnd: 9738
    functionName: torrent::log_to_all_peers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 4
    functionsReached:
    - is_single_thread
    - empty
    - torrent::debug_log
    - front
    - TORRENT_ASSERT
    - TORRENT_INCREMENT
    - peer_log
    linkageType: ''
    returnType: void
    signature: void torrent::log_to_all_peers(char const* message)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/torrent.cpp:9754,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:9754,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:9754,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:9755,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9761,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:9766,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:9766,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9770,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:9772,1
    - Dst: back
      Src: /src/libtorrent/src/torrent.cpp:9773,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - ' url'
    - type
    - ' auth'
    - ' extra_headers'
    - flags
    argTypes:
    - std::string
    - web_seed_entry::type_t
    - std::string
    - web_seed_entry::headers_t
    - web_seed_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9774
      start: 9743
    functionDepth: 2
    functionLinenumber: 9743
    functionLinenumberEnd: 9774
    functionName: torrent::add_web_seed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - end
    - std::find
    - torrent::update_want_tick
    - set_need_save_resume
    - back
    - emplace_back
    linkageType: ''
    returnType: web_seed_t
    signature: "web_seed_t * torrent::add_web_seed(std::string const& url\n\t\t, web_seed_entry::type_t
      const type\n\t\t, std::string const& auth\n\t\t, web_seed_entry::headers_t const&
      extra_headers\n\t\t, web_seed_flag_t const flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:9779,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:9782,1
    - Dst: torrent::do_pause
      Src: /src/libtorrent/src/torrent.cpp:9784,1
    - Dst: torrent::do_resume
      Src: /src/libtorrent/src/torrent.cpp:9785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9786
      start: 9776
    functionDepth: 6
    functionLinenumber: 9776
    functionLinenumberEnd: 9786
    functionName: torrent::set_session_paused
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::do_resume
    - torrent::do_pause
    - torrent::is_paused
    linkageType: ''
    returnType: void
    signature: void torrent::set_session_paused(bool const b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9790,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9790,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:9797,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:9810,1
    - Dst: torrent::do_pause
      Src: /src/libtorrent/src/torrent.cpp:9811,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:9816,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:9822,1
    - Dst: torrent::do_pause
      Src: /src/libtorrent/src/torrent.cpp:9826,1
    - Dst: torrent::do_resume
      Src: /src/libtorrent/src/torrent.cpp:9827,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - bool
    - pause_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9828
      start: 9788
    functionDepth: 6
    functionLinenumber: 9788
    functionLinenumberEnd: 9828
    functionName: torrent::set_paused
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - is_single_thread
    - TORRENT_ASSERT
    - num_peers
    - torrent::is_paused
    - torrent::update_gauge
    - torrent::do_resume
    - torrent::do_pause
    linkageType: ''
    returnType: void
    signature: void torrent::set_paused(bool const b, pause_flags_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9832,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9832,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:9843,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:9846,1
    - Dst: torrent::do_resume
      Src: /src/libtorrent/src/torrent.cpp:9848,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9849
      start: 9830
    functionDepth: 2
    functionLinenumber: 9830
    functionLinenumberEnd: 9849
    functionName: torrent::resume
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - is_single_thread
    - TORRENT_ASSERT
    - set_need_save_resume
    - torrent::update_gauge
    - torrent::do_resume
    linkageType: ''
    returnType: void
    signature: void torrent::resume()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9853,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9853,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:9854,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:9856,1
    - Dst: on_resume
      Src: /src/libtorrent/src/torrent.cpp:9863,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9867,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:9868,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:9868,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:9874,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:9875,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:9876,1
    - Dst: torrent::clear_error
      Src: /src/libtorrent/src/torrent.cpp:9878,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:9883,1
    - Dst: torrent::should_check_files
      Src: /src/libtorrent/src/torrent.cpp:9886,1
    - Dst: torrent::start_checking
      Src: /src/libtorrent/src/torrent.cpp:9886,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:9888,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:9889,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:9890,1
    - Dst: torrent::update_want_scrape
      Src: /src/libtorrent/src/torrent.cpp:9891,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:9892,1
    - Dst: torrent::start_announcing
      Src: /src/libtorrent/src/torrent.cpp:9896,1
    - Dst: torrent::do_connect_boost
      Src: /src/libtorrent/src/torrent.cpp:9898,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9899
      start: 9851
    functionDepth: 5
    functionLinenumber: 9851
    functionLinenumberEnd: 9899
    functionName: torrent::do_resume
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - torrent::update_want_peers
    - torrent::start_checking
    - torrent::is_seed
    - torrent::clear_error
    - alerts
    - torrent::is_finished
    - is_single_thread
    - torrent::is_paused
    - on_resume
    - TORRENT_ASSERT
    - torrent::state_updated
    - torrent::should_check_files
    - torrent::do_connect_boost
    - torrent::get_handle
    - torrent::update_want_tick
    - trigger_auto_manage
    - torrent::start_announcing
    - libtorrent::aux::time_now32
    - torrent::update_want_scrape
    - torrent::update_gauge
    linkageType: ''
    returnType: void
    signature: void torrent::do_resume()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:9906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9906
      start: 9905
    functionDepth: 0
    functionLinenumber: 9905
    functionLinenumberEnd: 9906
    functionName: timer_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void timer_state(aux::listen_socket_handle s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:9906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9906
      start: 9905
    functionDepth: 0
    functionLinenumber: 9905
    functionLinenumberEnd: 9906
    functionName: timer_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void timer_state(aux::listen_socket_handle s)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:9922,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:9922,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9926,1
    - Dst: has_v1
      Src: /src/libtorrent/src/torrent.cpp:9937,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent.cpp:9938,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent.cpp:9944,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:9948,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:9949,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:9952,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9954,1
    - Dst: size
      Src: /src/libtorrent/src/torrent.cpp:9958,1
    - Dst: std::map::find
      Src: /src/libtorrent/src/torrent.cpp:9968,1
    - Dst: socket::get_ptr
      Src: /src/libtorrent/src/torrent.cpp:9968,1
    - Dst: std::map::end
      Src: /src/libtorrent/src/torrent.cpp:9969,1
    - Dst: std::map::insert
      Src: /src/libtorrent/src/torrent.cpp:9971,1
    - Dst: socket::get_ptr
      Src: /src/libtorrent/src/torrent.cpp:9971,1
    - Dst: timer_state
      Src: /src/libtorrent/src/torrent.cpp:9971,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:9986,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:9988,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:9991,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/torrent.cpp:9991,1
    - Dst: is_working
      Src: /src/libtorrent/src/torrent.cpp:9992,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:10017,1
    - Dst: is_working
      Src: /src/libtorrent/src/torrent.cpp:10021,1
    - Dst: all_of
      Src: /src/libtorrent/src/torrent.cpp:10029,1
    - Dst: std::map::begin
      Src: /src/libtorrent/src/torrent.cpp:10029,1
    - Dst: std::map::end
      Src: /src/libtorrent/src/torrent.cpp:10029,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent.cpp:10052,1
    - Dst: minutes32
      Src: /src/libtorrent/src/torrent.cpp:10055,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:10062,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:10070,1
    - Dst: expiry
      Src: /src/libtorrent/src/torrent.cpp:10075,1
    - Dst: expires_at
      Src: /src/libtorrent/src/torrent.cpp:10077,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/torrent.cpp:10078,1
    - Dst: async_wait
      Src: /src/libtorrent/src/torrent.cpp:10080,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:10080,1
    - Dst: wrap
      Src: /src/libtorrent/src/torrent.cpp:10081,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 69
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10082
      start: 9920
    functionDepth: 2
    functionLinenumber: 9920
    functionLinenumberEnd: 10082
    functionName: torrent::update_tracker_timer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - wrap
    - has_v2
    - std::max
    - all_of
    - has_v1
    - ADD_OUTSTANDING_ASYNC
    - std::map::insert
    - is_single_thread
    - std::map::begin
    - print_endpoint
    - minutes32
    - is_working
    - shared_from_this
    - async_wait
    - expiry
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::map::end
    - expires_at
    - timer_state
    - socket::get_ptr
    - size
    - url::c_str
    - std::map::find
    - torrent::should_log
    - total_seconds
    - torrent::debug_log
    - settings
    linkageType: ''
    returnType: void
    signature: void torrent::update_tracker_timer(time_point32 const now)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10086,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:10086,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10087,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:10087,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:10088,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:10091,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:10098,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:10101,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:10110,1
    - Dst: dht
      Src: /src/libtorrent/src/torrent.cpp:10110,1
    - Dst: prioritize_dht
      Src: /src/libtorrent/src/torrent.cpp:10114,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:10114,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:10118,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent.cpp:10121,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:10128,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:10130,1
    - Dst: torrent::announce_with_tracker
      Src: /src/libtorrent/src/torrent.cpp:10132,1
    - Dst: torrent::lsd_announce
      Src: /src/libtorrent/src/torrent.cpp:10134,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10135
      start: 10084
    functionDepth: 3
    functionLinenumber: 10084
    functionLinenumberEnd: 10135
    functionName: torrent::start_announcing
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - state
    - shared_from_this
    - reset
    - is_single_thread
    - valid_metadata
    - empty
    - torrent::announce_with_tracker
    - torrent::debug_log
    - torrent::lsd_announce
    - TORRENT_ASSERT
    - torrent::update_want_tick
    - num_peers
    - torrent::is_paused
    - dht
    - clear
    - prioritize_dht
    linkageType: ''
    returnType: void
    signature: void torrent::start_announcing()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10139,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:10139,1
    - Dst: cancel
      Src: /src/libtorrent/src/torrent.cpp:10142,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:10146,1
    - Dst: torrent::announce_with_tracker
      Src: /src/libtorrent/src/torrent.cpp:10158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10159
      start: 10137
    functionDepth: 3
    functionLinenumber: 10137
    functionLinenumberEnd: 10159
    functionName: torrent::stop_announcing
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 5
    functionsReached:
    - is_single_thread
    - torrent::announce_with_tracker
    - cancel
    - TORRENT_ASSERT
    - libtorrent::aux::time_now32
    linkageType: ''
    returnType: void
    signature: void torrent::stop_announcing()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:10163,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:10163,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:10166,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:10167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10168
      start: 10161
    functionDepth: 1
    functionLinenumber: 10161
    functionLinenumberEnd: 10168
    functionName: torrent::finished_time
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - duration_cast<seconds32>
    - torrent::is_paused
    - libtorrent::aux::time_now
    - torrent::is_finished
    linkageType: ''
    returnType: seconds32
    signature: seconds32 torrent::finished_time() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:10172,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:10178,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:10179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10180
      start: 10170
    functionDepth: 1
    functionLinenumber: 10170
    functionLinenumberEnd: 10180
    functionName: torrent::active_time
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - duration_cast<seconds32>
    - libtorrent::aux::time_now
    - torrent::is_paused
    linkageType: ''
    returnType: seconds32
    signature: seconds32 torrent::active_time() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:10184,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:10184,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/torrent.cpp:10189,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:10190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10191
      start: 10182
    functionDepth: 1
    functionLinenumber: 10182
    functionLinenumberEnd: 10191
    functionName: torrent::seeding_time
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::is_seed
    - duration_cast<seconds32>
    - libtorrent::aux::time_now
    - torrent::is_paused
    linkageType: ''
    returnType: seconds32
    signature: seconds32 torrent::seeding_time() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:10196,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:10198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10199
      start: 10193
    functionDepth: 1
    functionLinenumber: 10193
    functionLinenumberEnd: 10199
    functionName: torrent::upload_mode_time
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::time_now32
    - seconds32
    linkageType: ''
    returnType: seconds32
    signature: seconds32 torrent::upload_mode_time() const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10203,1
    - Dst: torrent::want_tick
      Src: /src/libtorrent/src/torrent.cpp:10203,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10204,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:10204,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:10207,1
    - Dst: tick
      Src: /src/libtorrent/src/torrent.cpp:10212,1
    - Dst: torrent::upload_mode_time
      Src: /src/libtorrent/src/torrent.cpp:10221,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:10222,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10222,1
    - Dst: torrent::set_upload_mode
      Src: /src/libtorrent/src/torrent.cpp:10224,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:10227,1
    - Dst: low_pass_upload_rate
      Src: /src/libtorrent/src/torrent.cpp:10232,1
    - Dst: low_pass_download_rate
      Src: /src/libtorrent/src/torrent.cpp:10232,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:10233,1
    - Dst: torrent::second_tick
      Src: /src/libtorrent/src/torrent.cpp:10234,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:10237,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10242,1
    - Dst: torrent::upload_limit
      Src: /src/libtorrent/src/torrent.cpp:10244,1
    - Dst: torrent::download_limit
      Src: /src/libtorrent/src/torrent.cpp:10245,1
    - Dst: download_ip_overhead
      Src: /src/libtorrent/src/torrent.cpp:10248,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:10249,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:10251,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:10251,1
    - Dst: upload_ip_overhead
      Src: /src/libtorrent/src/torrent.cpp:10256,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:10257,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:10259,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:10259,1
    - Dst: torrent::get_download_queue
      Src: /src/libtorrent/src/torrent.cpp:10269,1
    - Dst: torrent::get_peer_info
      Src: /src/libtorrent/src/torrent.cpp:10272,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent.cpp:10274,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:10274,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10274,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10277,1
    - Dst: print_piece
      Src: /src/libtorrent/src/torrent.cpp:10286,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:10290,1
    - Dst: upload_mode
      Src: /src/libtorrent/src/torrent.cpp:10290,1
    - Dst: torrent::request_time_critical_pieces
      Src: /src/libtorrent/src/torrent.cpp:10292,1
    - Dst: torrent::maybe_connect_web_seeds
      Src: /src/libtorrent/src/torrent.cpp:10298,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:10303,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:10306,1
    - Dst: last_seen_complete
      Src: /src/libtorrent/src/torrent.cpp:10306,1
    - Dst: torrent::second_tick
      Src: /src/libtorrent/src/torrent.cpp:10310,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:10313,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:10314,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:10314,1
    - Dst: last_payload_uploaded
      Src: /src/libtorrent/src/torrent.cpp:10317,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/torrent.cpp:10318,1
    - Dst: torrent::second_tick
      Src: /src/libtorrent/src/torrent.cpp:10319,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:10323,1
    - Dst: low_pass_upload_rate
      Src: /src/libtorrent/src/torrent.cpp:10326,1
    - Dst: low_pass_download_rate
      Src: /src/libtorrent/src/torrent.cpp:10326,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:10327,1
    - Dst: torrent::is_inactive_internal
      Src: /src/libtorrent/src/torrent.cpp:10333,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10335,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10339,1
    - Dst: expires_after
      Src: /src/libtorrent/src/torrent.cpp:10340,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:10340,1
    - Dst: async_wait
      Src: /src/libtorrent/src/torrent.cpp:10341,1
    - Dst: auto::wrap
      Src: /src/libtorrent/src/torrent.cpp:10342,1
    - Dst: cancel
      Src: /src/libtorrent/src/torrent.cpp:10348,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:10354,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 1
    argNames:
    - tick_interval_ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10355
      start: 10201
    functionDepth: 4
    functionLinenumber: 10201
    functionLinenumberEnd: 10355
    functionName: torrent::second_tick
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - last_seen_complete
    - tick
    - seconds
    - std::vector::begin
    - empty
    - cancel
    - torrent::request_time_critical_pieces
    - upload_ip_overhead
    - set_need_save_resume
    - torrent::get_download_queue
    - std::max
    - std::vector::end
    - alerts
    - low_pass_upload_rate
    - torrent::upload_limit
    - torrent::get_peer_info
    - torrent::upload_mode_time
    - low_pass_download_rate
    - is_single_thread
    - torrent::download_limit
    - expires_after
    - TORRENT_INCREMENT
    - auto::wrap
    - upload_mode
    - torrent::is_paused
    - torrent::is_inactive_internal
    - std::printf
    - shared_from_this
    - async_wait
    - print_piece
    - TORRENT_ASSERT
    - torrent::want_tick
    - torrent::second_tick
    - torrent::state_updated
    - torrent::set_upload_mode
    - last_payload_downloaded
    - last_payload_uploaded
    - torrent::maybe_connect_web_seeds
    - torrent::get_handle
    - torrent::update_want_tick
    - settings
    - std::sort
    - download_ip_overhead
    linkageType: ''
    returnType: void
    signature: void torrent::second_tick(int const tick_interval_ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:10359,1
    - Dst: upload_payload_rate
      Src: /src/libtorrent/src/torrent.cpp:10360,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10361,1
    - Dst: download_payload_rate
      Src: /src/libtorrent/src/torrent.cpp:10363,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10365
      start: 10357
    functionDepth: 1
    functionLinenumber: 10357
    functionLinenumberEnd: 10365
    functionName: torrent::is_inactive_internal
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - upload_payload_rate
    - download_payload_rate
    - settings
    - torrent::is_finished
    linkageType: ''
    returnType: bool
    signature: bool torrent::is_inactive_internal() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_inactive_internal
      Src: /src/libtorrent/src/torrent.cpp:10373,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:10378,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:10379,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10381,1
    - Dst: trigger_auto_manage
      Src: /src/libtorrent/src/torrent.cpp:10382,1
    - Dst: torrent::handle_exception
      Src: /src/libtorrent/src/torrent.cpp:10384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10384
      start: 10367
    functionDepth: 2
    functionLinenumber: 10367
    functionLinenumberEnd: 10384
    functionName: torrent::on_inactivity_tick
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_state_list
    - torrent::handle_exception
    - torrent::update_want_tick
    - trigger_auto_manage
    - settings
    - torrent::is_inactive_internal
    linkageType: ''
    returnType: void
    signature: void torrent::on_inactivity_tick(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - def_val
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10388
      start: 10387
    functionDepth: 0
    functionLinenumber: 10387
    functionLinenumberEnd: 10388
    functionName: zero_or
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int zero_or(int const val, int const def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - def_val
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10388
      start: 10387
    functionDepth: 0
    functionLinenumber: 10387
    functionLinenumberEnd: 10388
    functionName: zero_or
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int zero_or(int const val, int const def_val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:10396,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:10397,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:10399,1
    - Dst: num_connections
      Src: /src/libtorrent/src/torrent.cpp:10400,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10400,1
    - Dst: zero_or
      Src: /src/libtorrent/src/torrent.cpp:10406,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10406,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:10409,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10413,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10413,1
    - Dst: connect_to_url_seed
      Src: /src/libtorrent/src/torrent.cpp:10423,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10425
      start: 10391
    functionDepth: 1
    functionLinenumber: 10391
    functionLinenumberEnd: 10425
    functionName: torrent::maybe_connect_web_seeds
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - connect_to_url_seed
    - torrent::is_finished
    - begin
    - empty
    - end
    - settings
    - num_peers
    - num_connections
    - libtorrent::aux::time_now32
    - zero_or
    linkageType: ''
    returnType: void
    signature: void torrent::maybe_connect_web_seeds()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10430,1
    - Dst: share_mode
      Src: /src/libtorrent/src/torrent.cpp:10430,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:10431,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:10433,1
    - Dst: TORRENT_INCREMENT
      Src: /src/libtorrent/src/torrent.cpp:10440,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/torrent.cpp:10441,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/torrent.cpp:10442,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:10444,1
    - Dst: share_mode
      Src: /src/libtorrent/src/torrent.cpp:10450,1
    - Dst: upload_only
      Src: /src/libtorrent/src/torrent.cpp:10451,1
    - Dst: num_have_pieces
      Src: /src/libtorrent/src/torrent.cpp:10454,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/torrent.cpp:10469,1
    - Dst: std::copy_if
      Src: /src/libtorrent/src/torrent.cpp:10470,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10470,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10470,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/torrent.cpp:10470,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:10471,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/torrent.cpp:10473,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10474,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/src/torrent.cpp:10474,1
    - Dst: span<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:10475,1
    - Dst: disconnect
      Src: /src/libtorrent/src/torrent.cpp:10476,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:10494,1
    - Dst: have
      Src: /src/libtorrent/src/torrent.cpp:10494,1
    - Dst: want
      Src: /src/libtorrent/src/torrent.cpp:10495,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:10497,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:10497,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10498,1
    - Dst: get_download_queue_size
      Src: /src/libtorrent/src/torrent.cpp:10504,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:10515,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/torrent.cpp:10517,1
    - Dst: piece_stats
      Src: /src/libtorrent/src/torrent.cpp:10519,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:10523,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/torrent.cpp:10531,1
    - Dst: aux::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:10535,1
    - Dst: aux::vector::push_back
      Src: /src/libtorrent/src/torrent.cpp:10537,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:10540,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:10541,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:10550,1
    - Dst: random
      Src: /src/libtorrent/src/torrent.cpp:10554,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/torrent.cpp:10554,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/src/torrent.cpp:10554,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:10555,1
    - Dst: torrent::set_piece_priority
      Src: /src/libtorrent/src/torrent.cpp:10556,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:10557,1
    - Dst: torrent::update_peer_interest
      Src: /src/libtorrent/src/torrent.cpp:10558,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:10559,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10560
      start: 10428
    functionDepth: 4
    functionLinenumber: 10428
    functionLinenumberEnd: 10560
    functionName: torrent::recalc_share_mode
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 4
    functionsReached:
    - torrent::update_want_peers
    - num_have_pieces
    - begin
    - aux::numeric_cast<std::uint32_t>
    - std::copy_if
    - torrent::is_seed
    - std::max
    - libtorrent::aux::random_shuffle
    - span<peer_connection*>
    - torrent::is_finished
    - aux::vector::push_back
    - end
    - TORRENT_INCREMENT
    - num_pieces
    - aux::vector::end_index
    - want
    - upload_only
    - is_disconnecting
    - aux::vector::reserve
    - aux::vector::clear
    - TORRENT_ASSERT
    - torrent::update_peer_interest
    - share_mode
    - piece_stats
    - piece_index_t
    - get_download_queue_size
    - have
    - random
    - is_connecting
    - std::int64_t
    - piece_length
    - std::back_inserter
    - settings
    - torrent::update_gauge
    - torrent::set_piece_priority
    - disconnect
    linkageType: ''
    returnType: void
    signature: void torrent::recalc_share_mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::sent_bytes
      Src: /src/libtorrent/src/torrent.cpp:10565,1
    - Dst: torrent::sent_bytes
      Src: /src/libtorrent/src/torrent.cpp:10566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes_payload
    - bytes_protocol
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10567
      start: 10563
    functionDepth: 1
    functionLinenumber: 10563
    functionLinenumberEnd: 10567
    functionName: torrent::sent_bytes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::sent_bytes
    linkageType: ''
    returnType: void
    signature: void torrent::sent_bytes(int const bytes_payload, int const bytes_protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::received_bytes
      Src: /src/libtorrent/src/torrent.cpp:10571,1
    - Dst: torrent::received_bytes
      Src: /src/libtorrent/src/torrent.cpp:10572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes_payload
    - bytes_protocol
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10573
      start: 10569
    functionDepth: 1
    functionLinenumber: 10569
    functionLinenumberEnd: 10573
    functionName: torrent::received_bytes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::received_bytes
    linkageType: ''
    returnType: void
    signature: void torrent::received_bytes(int const bytes_payload, int const bytes_protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::trancieve_ip_packet
      Src: /src/libtorrent/src/torrent.cpp:10577,1
    - Dst: torrent::trancieve_ip_packet
      Src: /src/libtorrent/src/torrent.cpp:10578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - ipv6
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10579
      start: 10575
    functionDepth: 1
    functionLinenumber: 10575
    functionLinenumberEnd: 10579
    functionName: torrent::trancieve_ip_packet
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::trancieve_ip_packet
    linkageType: ''
    returnType: void
    signature: void torrent::trancieve_ip_packet(int const bytes, bool const ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::sent_syn
      Src: /src/libtorrent/src/torrent.cpp:10583,1
    - Dst: torrent::sent_syn
      Src: /src/libtorrent/src/torrent.cpp:10584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ipv6
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10585
      start: 10581
    functionDepth: 1
    functionLinenumber: 10581
    functionLinenumberEnd: 10585
    functionName: torrent::sent_syn
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::sent_syn
    linkageType: ''
    returnType: void
    signature: void torrent::sent_syn(bool const ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::received_synack
      Src: /src/libtorrent/src/torrent.cpp:10589,1
    - Dst: torrent::received_synack
      Src: /src/libtorrent/src/torrent.cpp:10590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ipv6
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10591
      start: 10587
    functionDepth: 1
    functionLinenumber: 10587
    functionLinenumberEnd: 10591
    functionName: torrent::received_synack
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::received_synack
    linkageType: ''
    returnType: void
    signature: void torrent::received_synack(bool const ipv6)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - code
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10614
      start: 10596
    functionDepth: 0
    functionLinenumber: 10596
    functionLinenumberEnd: 10614
    functionName: esc
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * esc(char const* code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:10619,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10619,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10620,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:10620,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10621,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - ' peers'
    argTypes:
    - libtorrent::tcp::endpoint
    - std::vector<libtorrent::peer_info>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10624
      start: 10616
    functionDepth: 0
    functionLinenumber: 10616
    functionLinenumberEnd: 10624
    functionName: peer_index
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::bind
    - end
    - std::find_if
    linkageType: ''
    returnType: int
    signature: "int peer_index(libtorrent::tcp::endpoint addr\n\t\t, std::vector<libtorrent::peer_info>
      const& peers)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/torrent.cpp:10630,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:10638,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10638,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10638,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:10639,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10640,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/torrent.cpp:10642,1
    - Dst: min_time
      Src: /src/libtorrent/src/torrent.cpp:10643,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/torrent.cpp:10646,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10652,1
    - Dst: peer_index
      Src: /src/libtorrent/src/torrent.cpp:10655,1
    - Dst: peer
      Src: /src/libtorrent/src/torrent.cpp:10655,1
    - Dst: esc
      Src: /src/libtorrent/src/torrent.cpp:10664,1
    - Dst: esc
      Src: /src/libtorrent/src/torrent.cpp:10669,1
    - Dst: esc
      Src: /src/libtorrent/src/torrent.cpp:10672,1
    - Dst: esc
      Src: /src/libtorrent/src/torrent.cpp:10673,1
    - Dst: esc
      Src: /src/libtorrent/src/torrent.cpp:10674,1
    - Dst: esc
      Src: /src/libtorrent/src/torrent.cpp:10675,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10677,1
    - Dst: esc
      Src: /src/libtorrent/src/torrent.cpp:10677,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10679,1
    - Dst: esc
      Src: /src/libtorrent/src/torrent.cpp:10679,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10681,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10684,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - pp
    - ' peers'
    - ' time_critical'
    argTypes:
    - libtorrent::partial_piece_info*
    - std::vector<libtorrent::peer_info>
    - std::vector<time_critical_piece>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10685
      start: 10626
    functionDepth: 2
    functionLinenumber: 10626
    functionLinenumberEnd: 10685
    functionName: print_piece
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - time_now
    - std::bind
    - peer
    - begin
    - end
    - min_time
    - total_milliseconds
    - peer_index
    - esc
    - std::printf
    - std::find_if
    linkageType: ''
    returnType: void
    signature: "void print_piece(libtorrent::partial_piece_info* pp\n\t\t, std::vector<libtorrent::peer_info>
      const& peers\n\t\t, std::vector<time_critical_piece> const& time_critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - busy_block_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10694
      start: 10694
    functionDepth: 0
    functionLinenumber: 10694
    functionLinenumberEnd: 10694
    functionName: operator<(busy_block_t const& rhs) const
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(busy_block_t const& rhs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/torrent.cpp:10710,1
    - Dst: piece_picker*::blocks_for_piece
      Src: /src/libtorrent/src/torrent.cpp:10715,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10735,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10739,1
    - Dst: first
      Src: /src/libtorrent/src/torrent.cpp:10742,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent.cpp:10747,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10747,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10747,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:10751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - picker
    - piece
    - blocks_in_piece
    - timed_out
    - ' interesting_blocks'
    - ' pi'
    argTypes:
    - piece_picker*
    - piece_index_t
    - int
    - int
    - std::vector<piece_block>
    - piece_picker::downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10752
      start: 10697
    functionDepth: 1
    functionLinenumber: 10697
    functionLinenumberEnd: 10752
    functionName: pick_busy_blocks
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - first
    - std::printf
    - begin
    - end
    - emplace_back
    - TORRENT_ALLOCA
    - piece_picker*::blocks_for_piece
    - std::sort
    linkageType: ''
    returnType: void
    signature: "void pick_busy_blocks(piece_picker const* picker\n\t\t, piece_index_t
      const piece\n\t\t, int const blocks_in_piece\n\t\t, int const timed_out\n\t\t,
      std::vector<piece_block>& interesting_blocks\n\t\t, piece_picker::downloading_piece
      const& pi)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:10768,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:10775,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10775,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/torrent.cpp:10775,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10778,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/torrent.cpp:10779,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10779,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:10785,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10785,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10785,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:10786,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10790,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10793,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:10799,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:10800,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:10801,1
    - Dst: piece_picker*::add_blocks
      Src: /src/libtorrent/src/torrent.cpp:10806,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/torrent.cpp:10806,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:10807,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/torrent.cpp:10810,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10810,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:10811,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10811,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/torrent.cpp:10812,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10812,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:10813,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10813,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:10817,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10822,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10831,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10837,1
    - Dst: pick_busy_blocks
      Src: /src/libtorrent/src/torrent.cpp:10840,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:10846,1
    - Dst: std::vector::front
      Src: /src/libtorrent/src/torrent.cpp:10848,1
    - Dst: download_queue
      Src: /src/libtorrent/src/torrent.cpp:10853,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:10855,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10855,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10855,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/torrent.cpp:10856,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10856,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:10866,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:10867,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10869,1
    - Dst: request_queue
      Src: /src/libtorrent/src/torrent.cpp:10875,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:10877,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10877,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10877,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/torrent.cpp:10878,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10878,1
    - Dst: make_time_critical
      Src: /src/libtorrent/src/torrent.cpp:10882,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10885,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:10887,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:10888,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10894,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:10899,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10899,1
    - Dst: add_request
      Src: /src/libtorrent/src/torrent.cpp:10903,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10907,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:10910,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:10911,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10916,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:10919,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10919,1
    - Dst: min_time
      Src: /src/libtorrent/src/torrent.cpp:10924,1
    - Dst: can_request_time_critical
      Src: /src/libtorrent/src/torrent.cpp:10926,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10929,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:10931,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10937,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10937,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10938,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/src/torrent.cpp:10940,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:10943,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 8
    argNames:
    - ' peers'
    - ' ignore_peers'
    - ' peers_with_requests'
    - ' pi'
    - i
    - picker
    - blocks_in_piece
    - timed_out
    argTypes:
    - std::vector<peer_connection*>
    - std::vector<peer_connection*>
    - std::set<peer_connection*>
    - piece_picker::downloading_piece
    - time_critical_piece*
    - piece_picker*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10944
      start: 10754
    functionDepth: 2
    functionLinenumber: 10754
    functionLinenumberEnd: 10944
    functionName: pick_time_critical_block
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::vector::front
    - empty
    - std::vector::begin
    - min_time
    - std::vector::end
    - get_bitfield
    - libtorrent::aux::time_now
    - add_request
    - push_back
    - std::iter_swap
    - std::vector::clear
    - end
    - libtorrent::aux::has_block
    - make_time_critical
    - std::printf
    - erase
    - can_request_time_critical
    - std::vector::insert
    - request_queue
    - milliseconds
    - pick_busy_blocks
    - total_milliseconds
    - std::find_if
    - std::bind
    - std::vector::empty
    - download_queue
    - insert
    - peer_info_struct
    - download_queue_time
    - piece_picker*::add_blocks
    linkageType: ''
    returnType: void
    signature: "void pick_time_critical_block(std::vector<peer_connection*>& peers\n\t\t,
      std::vector<peer_connection*>& ignore_peers\n\t\t, std::set<peer_connection*>&
      peers_with_requests\n\t\t, piece_picker::downloading_piece const& pi\n\t\t,
      time_critical_piece* i\n\t\t, piece_picker const* picker\n\t\t, int const blocks_in_piece\n\t\t,
      int const timed_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - busy_block_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10694
      start: 10694
    functionDepth: 0
    functionLinenumber: 10694
    functionLinenumberEnd: 10694
    functionName: operator<(busy_block_t const& rhs) const
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(busy_block_t const& rhs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/torrent.cpp:10710,1
    - Dst: piece_picker*::blocks_for_piece
      Src: /src/libtorrent/src/torrent.cpp:10715,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10735,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10739,1
    - Dst: first
      Src: /src/libtorrent/src/torrent.cpp:10742,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent.cpp:10747,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10747,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10747,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent.cpp:10751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - picker
    - piece
    - blocks_in_piece
    - timed_out
    - ' interesting_blocks'
    - ' pi'
    argTypes:
    - piece_picker*
    - piece_index_t
    - int
    - int
    - std::vector<piece_block>
    - piece_picker::downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10752
      start: 10697
    functionDepth: 1
    functionLinenumber: 10697
    functionLinenumberEnd: 10752
    functionName: pick_busy_blocks
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - first
    - std::printf
    - begin
    - end
    - emplace_back
    - TORRENT_ALLOCA
    - piece_picker*::blocks_for_piece
    - std::sort
    linkageType: ''
    returnType: void
    signature: "void pick_busy_blocks(piece_picker const* picker\n\t\t, piece_index_t
      const piece\n\t\t, int const blocks_in_piece\n\t\t, int const timed_out\n\t\t,
      std::vector<piece_block>& interesting_blocks\n\t\t, piece_picker::downloading_piece
      const& pi)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/torrent.cpp:10768,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:10775,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10775,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/torrent.cpp:10775,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10778,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/torrent.cpp:10779,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10779,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:10785,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10785,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10785,1
    - Dst: std::bind
      Src: /src/libtorrent/src/torrent.cpp:10786,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10790,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10793,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:10799,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:10800,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:10801,1
    - Dst: piece_picker*::add_blocks
      Src: /src/libtorrent/src/torrent.cpp:10806,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/torrent.cpp:10806,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/torrent.cpp:10807,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/torrent.cpp:10810,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10810,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:10811,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10811,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/torrent.cpp:10812,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10812,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:10813,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10813,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:10817,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10822,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10831,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10837,1
    - Dst: pick_busy_blocks
      Src: /src/libtorrent/src/torrent.cpp:10840,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:10846,1
    - Dst: std::vector::front
      Src: /src/libtorrent/src/torrent.cpp:10848,1
    - Dst: download_queue
      Src: /src/libtorrent/src/torrent.cpp:10853,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:10855,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10855,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10855,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/torrent.cpp:10856,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10856,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:10866,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:10867,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10869,1
    - Dst: request_queue
      Src: /src/libtorrent/src/torrent.cpp:10875,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:10877,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10877,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10877,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/torrent.cpp:10878,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10878,1
    - Dst: make_time_critical
      Src: /src/libtorrent/src/torrent.cpp:10882,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10885,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:10887,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:10888,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10894,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:10899,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10899,1
    - Dst: add_request
      Src: /src/libtorrent/src/torrent.cpp:10903,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10907,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent.cpp:10910,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:10911,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10916,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:10919,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10919,1
    - Dst: min_time
      Src: /src/libtorrent/src/torrent.cpp:10924,1
    - Dst: can_request_time_critical
      Src: /src/libtorrent/src/torrent.cpp:10926,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:10929,1
    - Dst: erase
      Src: /src/libtorrent/src/torrent.cpp:10931,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10937,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10937,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10938,1
    - Dst: std::iter_swap
      Src: /src/libtorrent/src/torrent.cpp:10940,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:10943,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 8
    argNames:
    - ' peers'
    - ' ignore_peers'
    - ' peers_with_requests'
    - ' pi'
    - i
    - picker
    - blocks_in_piece
    - timed_out
    argTypes:
    - std::vector<peer_connection*>
    - std::vector<peer_connection*>
    - std::set<peer_connection*>
    - piece_picker::downloading_piece
    - time_critical_piece*
    - piece_picker*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10944
      start: 10754
    functionDepth: 2
    functionLinenumber: 10754
    functionLinenumberEnd: 10944
    functionName: pick_time_critical_block
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::vector::front
    - empty
    - std::vector::begin
    - min_time
    - std::vector::end
    - get_bitfield
    - libtorrent::aux::time_now
    - add_request
    - push_back
    - std::iter_swap
    - std::vector::clear
    - end
    - libtorrent::aux::has_block
    - make_time_critical
    - std::printf
    - erase
    - can_request_time_critical
    - std::vector::insert
    - request_queue
    - milliseconds
    - pick_busy_blocks
    - total_milliseconds
    - std::find_if
    - std::bind
    - std::vector::empty
    - download_queue
    - insert
    - peer_info_struct
    - download_queue_time
    - piece_picker*::add_blocks
    linkageType: ''
    returnType: void
    signature: "void pick_time_critical_block(std::vector<peer_connection*>& peers\n\t\t,
      std::vector<peer_connection*>& ignore_peers\n\t\t, std::set<peer_connection*>&
      peers_with_requests\n\t\t, piece_picker::downloading_piece const& pi\n\t\t,
      time_critical_piece* i\n\t\t, piece_picker const* picker\n\t\t, int const blocks_in_piece\n\t\t,
      int const timed_out)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10950,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:10950,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10951,1
    - Dst: upload_mode
      Src: /src/libtorrent/src/torrent.cpp:10951,1
    - Dst: aux::vector::reserve
      Src: /src/libtorrent/src/torrent.cpp:10958,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:10958,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/torrent.cpp:10964,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:10964,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:10964,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/torrent.cpp:10965,1
    - Dst: can_request_time_critical
      Src: /src/libtorrent/src/torrent.cpp:10966,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent.cpp:10971,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:10971,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/torrent.cpp:10971,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10973,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:10973,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/src/torrent.cpp:10977,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:10978,1
    - Dst: aux::vector::end_index
      Src: /src/libtorrent/src/torrent.cpp:10978,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/torrent.cpp:10979,1
    - Dst: time_now
      Src: /src/libtorrent/src/torrent.cpp:10994,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:11003,1
    - Dst: aux::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:11006,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:11009,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/torrent.cpp:11018,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:11024,1
    - Dst: piece_info
      Src: /src/libtorrent/src/torrent.cpp:11033,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/torrent.cpp:11038,1
    - Dst: min_time
      Src: /src/libtorrent/src/torrent.cpp:11048,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/torrent.cpp:11055,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:11056,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:11067,1
    - Dst: std::printf
      Src: /src/libtorrent/src/torrent.cpp:11083,1
    - Dst: pick_time_critical_block
      Src: /src/libtorrent/src/torrent.cpp:11092,1
    - Dst: get
      Src: /src/libtorrent/src/torrent.cpp:11094,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:11098,1
    - Dst: aux::vector::insert
      Src: /src/libtorrent/src/torrent.cpp:11100,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:11100,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:11100,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/torrent.cpp:11100,1
    - Dst: std::vector::clear
      Src: /src/libtorrent/src/torrent.cpp:11101,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent.cpp:11105,1
    - Dst: aux::vector::begin
      Src: /src/libtorrent/src/torrent.cpp:11105,1
    - Dst: aux::vector::end
      Src: /src/libtorrent/src/torrent.cpp:11105,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:11107,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:11107,1
    - Dst: aux::vector::empty
      Src: /src/libtorrent/src/torrent.cpp:11112,1
    - Dst: download_queue_time
      Src: /src/libtorrent/src/torrent.cpp:11112,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/torrent.cpp:11112,1
    - Dst: send_block_requests
      Src: /src/libtorrent/src/torrent.cpp:11119,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11121
      start: 10948
    functionDepth: 3
    functionLinenumber: 10948
    functionLinenumberEnd: 11121
    functionName: torrent::request_time_critical_pieces
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - begin
    - std::vector::begin
    - pick_time_critical_block
    - std::max
    - aux::vector::resize
    - min_time
    - std::vector::end
    - aux::vector::end
    - aux::vector::insert
    - std::vector::clear
    - is_single_thread
    - send_block_requests
    - end
    - blocks_in_piece
    - upload_mode
    - aux::vector::end_index
    - piece_info
    - num_peers
    - std::printf
    - time_now
    - aux::vector::begin
    - can_request_time_critical
    - aux::vector::reserve
    - TORRENT_ASSERT
    - milliseconds
    - total_milliseconds
    - std::remove_copy_if
    - aux::vector::empty
    - std::vector::empty
    - download_queue_time
    - std::back_inserter
    - get
    - std::sort
    linkageType: ''
    returnType: void
    signature: void torrent::request_time_critical_pieces()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11126,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:11126,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent.cpp:11133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - web_seed_entry::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11136
      start: 11124
    functionDepth: 1
    functionLinenumber: 11124
    functionLinenumberEnd: 11136
    functionName: torrent::web_seeds
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> torrent::web_seeds(web_seed_entry::type_t const
      type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:11140,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:11140,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11140,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11143,1
    - Dst: set_need_save_resume
      Src: /src/libtorrent/src/torrent.cpp:11146,1
    - Dst: torrent::remove_web_seed_iter
      Src: /src/libtorrent/src/torrent.cpp:11147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' url'
    - type
    argTypes:
    - std::string
    - web_seed_entry::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11149
      start: 11138
    functionDepth: 2
    functionLinenumber: 11138
    functionLinenumberEnd: 11149
    functionName: torrent::remove_web_seed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - torrent::remove_web_seed_iter
    - end
    - set_need_save_resume
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void torrent::remove_web_seed(std::string const& url, web_seed_entry::type_t
      const type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:11153,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:11153,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11153,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11156,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11156,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11157,1
    - Dst: torrent::remove_web_seed_iter
      Src: /src/libtorrent/src/torrent.cpp:11158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11159
      start: 11151
    functionDepth: 2
    functionLinenumber: 11151
    functionLinenumberEnd: 11159
    functionName: torrent::remove_web_seed_conn
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - begin
    - torrent::remove_web_seed_iter
    - end
    - TORRENT_ASSERT
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void torrent::remove_web_seed_conn(peer_connection* p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11163,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:11163,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:11164,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:11164,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11167,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11167,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11168,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:11170,1
    - Dst: value_or
      Src: /src/libtorrent/src/torrent.cpp:11170,1
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:11170,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - p
    - retry
    argTypes:
    - peer_connection*
    - boost::optional<seconds32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11172
      start: 11161
    functionDepth: 1
    functionLinenumber: 11161
    functionLinenumberEnd: 11172
    functionName: torrent::retry_web_seed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - seconds32
    - begin
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - settings
    - libtorrent::aux::time_now32
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void torrent::retry_web_seed(peer_connection* p, boost::optional<seconds32>
      const retry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:11177,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11178,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:11179,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11180,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11181,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11182,1
    - Dst: external_address
      Src: /src/libtorrent/src/torrent.cpp:11184,1
    - Dst: listen_port
      Src: /src/libtorrent/src/torrent.cpp:11185,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11188
      start: 11174
    functionDepth: 1
    functionLinenumber: 11174
    functionLinenumberEnd: 11188
    functionName: torrent::get_peer_list_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 5
    functionsReached:
    - torrent::is_finished
    - external_address
    - listen_port
    - settings
    - torrent::is_paused
    linkageType: ''
    returnType: torrent_state
    signature: torrent_state torrent::get_peer_list_state()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11192,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:11192,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11193,1
    - Dst: torrent::want_peers
      Src: /src/libtorrent/src/torrent.cpp:11193,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:11195,1
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:11196,1
    - Dst: connect_one_peer
      Src: /src/libtorrent/src/torrent.cpp:11197,1
    - Dst: session_time
      Src: /src/libtorrent/src/torrent.cpp:11197,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:11198,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:11199,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:11203,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:11204,1
    - Dst: torrent::connect_to_peer
      Src: /src/libtorrent/src/torrent.cpp:11208,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:11210,1
    - Dst: inc_failcount
      Src: /src/libtorrent/src/torrent.cpp:11211,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:11212,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:11215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11218
      start: 11190
    functionDepth: 4
    functionLinenumber: 11190
    functionLinenumberEnd: 11218
    functionName: torrent::try_connect_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_want_peers
    - connect_one_peer
    - torrent::connect_to_peer
    - is_single_thread
    - torrent::get_peer_list_state
    - session_time
    - TORRENT_ASSERT
    - torrent::inc_stats_counter
    - torrent::peers_erased
    - torrent::want_peers
    - inc_failcount
    - torrent::need_peer_list
    linkageType: ''
    returnType: bool
    signature: bool torrent::try_connect_peer()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11223,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:11223,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11225,1
    - Dst: info_hash
      Src: /src/libtorrent/src/torrent.cpp:11225,1
    - Dst: access
      Src: /src/libtorrent/src/torrent.cpp:11229,1
    - Dst: address
      Src: /src/libtorrent/src/torrent.cpp:11229,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11231,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11232,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11232,1
    - Dst: torrent::notify_extension_add_peer
      Src: /src/libtorrent/src/torrent.cpp:11236,1
    - Dst: get_port_filter
      Src: /src/libtorrent/src/torrent.cpp:11241,1
    - Dst: port
      Src: /src/libtorrent/src/torrent.cpp:11241,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11243,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11244,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11244,1
    - Dst: torrent::notify_extension_add_peer
      Src: /src/libtorrent/src/torrent.cpp:11247,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11255,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/torrent.cpp:11255,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11257,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11258,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11258,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11264,1
    - Dst: port
      Src: /src/libtorrent/src/torrent.cpp:11264,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11266,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11267,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11267,1
    - Dst: torrent::notify_extension_add_peer
      Src: /src/libtorrent/src/torrent.cpp:11270,1
    - Dst: session
      Src: /src/libtorrent/src/torrent.cpp:11282,1
    - Dst: address
      Src: /src/libtorrent/src/torrent.cpp:11282,1
    - Dst: port
      Src: /src/libtorrent/src/torrent.cpp:11282,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:11286,1
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:11289,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:11290,1
    - Dst: torrent::add_peer
      Src: /src/libtorrent/src/torrent.cpp:11291,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:11292,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:11296,1
    - Dst: torrent::notify_extension_add_peer
      Src: /src/libtorrent/src/torrent.cpp:11298,1
    - Dst: torrent::notify_extension_add_peer
      Src: /src/libtorrent/src/torrent.cpp:11307,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:11310,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:11311,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - ' adr'
    - source
    - flags
    argTypes:
    - tcp::endpoint
    - peer_source_flags_t
    - pex_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11313
      start: 11220
    functionDepth: 4
    functionLinenumber: 11220
    functionLinenumberEnd: 11313
    functionName: torrent::add_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 6
    functionsReached:
    - torrent::update_want_peers
    - torrent::get_peer_list_state
    - torrent::peers_erased
    - alerts
    - torrent::add_peer
    - is_single_thread
    - torrent::notify_extension_add_peer
    - address
    - access
    - info_hash
    - session
    - TORRENT_ASSERT
    - is_i2p
    - port
    - torrent::state_updated
    - torrent_file
    - torrent::get_handle
    - get_port_filter
    - settings
    - torrent::need_peer_list
    linkageType: ''
    returnType: torrent_peer
    signature: "torrent_peer * torrent::add_peer(tcp::endpoint const& adr\n\t\t, peer_source_flags_t
      const source, pex_flags_t flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11317,1
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:11320,1
    - Dst: torrent::ban_peer
      Src: /src/libtorrent/src/torrent.cpp:11321,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:11322,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:11324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tp
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11326
      start: 11315
    functionDepth: 4
    functionLinenumber: 11315
    functionLinenumberEnd: 11326
    functionName: torrent::ban_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - torrent::update_want_peers
    - torrent::ban_peer
    - torrent::inc_stats_counter
    - settings
    - torrent::need_peer_list
    linkageType: ''
    returnType: bool
    signature: bool torrent::ban_peer(torrent_peer* tp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11333,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11338,1
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:11342,1
    - Dst: torrent::set_seed
      Src: /src/libtorrent/src/torrent.cpp:11343,1
    - Dst: torrent::update_auto_sequential
      Src: /src/libtorrent/src/torrent.cpp:11344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - torrent_peer*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11345
      start: 11328
    functionDepth: 2
    functionLinenumber: 11328
    functionLinenumberEnd: 11345
    functionName: torrent::set_seed
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - torrent::update_auto_sequential
    - torrent::need_peer_list
    - torrent::set_seed
    linkageType: ''
    returnType: void
    signature: void torrent::set_seed(torrent_peer* p, bool const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:11349,1
    - Dst: set_failcount
      Src: /src/libtorrent/src/torrent.cpp:11350,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:11351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11352
      start: 11347
    functionDepth: 4
    functionLinenumber: 11347
    functionLinenumberEnd: 11352
    functionName: torrent::clear_failcount
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::update_want_peers
    - torrent::need_peer_list
    - set_failcount
    linkageType: ''
    returnType: void
    signature: void torrent::clear_failcount(torrent_peer* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:11356,1
    - Dst: torrent::find_peers
      Src: /src/libtorrent/src/torrent.cpp:11357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11358
      start: 11354
    functionDepth: 1
    functionLinenumber: 11354
    functionLinenumberEnd: 11358
    functionName: torrent::find_peers
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::need_peer_list
    - torrent::find_peers
    linkageType: ''
    returnType: std::pair<peer_list::iterator, peer_list::iterator>
    signature: std::pair<peer_list::iterator, peer_list::iterator> torrent::find_peers(address
      const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::need_peer_list
      Src: /src/libtorrent/src/torrent.cpp:11363,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:11364,1
    - Dst: torrent::update_peer_port
      Src: /src/libtorrent/src/torrent.cpp:11365,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:11366,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:11367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - port
    - p
    - src
    argTypes:
    - int
    - torrent_peer*
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11368
      start: 11360
    functionDepth: 4
    functionLinenumber: 11360
    functionLinenumberEnd: 11368
    functionName: torrent::update_peer_port
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::update_want_peers
    - torrent::get_peer_list_state
    - torrent::update_peer_port
    - torrent::peers_erased
    - torrent::need_peer_list
    linkageType: ''
    returnType: void
    signature: "void torrent::update_peer_port(int const port, torrent_peer* p\n\t\t,
      peer_source_flags_t const src)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11375,1
    - Dst: is_hashing
      Src: /src/libtorrent/src/torrent.cpp:11375,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11380,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:11385,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:11389,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/torrent.cpp:11391,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/torrent.cpp:11391,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11394,1
    - Dst: started_hash_job
      Src: /src/libtorrent/src/torrent.cpp:11397,1
    - Dst: torrent::on_piece_verified
      Src: /src/libtorrent/src/torrent.cpp:11398,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:11398,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/torrent.cpp:11398,1
    - Dst: disk_thread
      Src: /src/libtorrent/src/torrent.cpp:11403,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:11404,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:11404,1
    - Dst: torrent::on_piece_verified
      Src: /src/libtorrent/src/torrent.cpp:11406,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:11406,1
    - Dst: started_hash_job
      Src: /src/libtorrent/src/torrent.cpp:11407,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/torrent.cpp:11408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11409
      start: 11372
    functionDepth: 6
    functionLinenumber: 11372
    functionLinenumberEnd: 11409
    functionName: torrent::verify_piece
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - shared_from_this
    - std::move
    - disk_thread
    - is_hashing
    - started_hash_job
    - torrent::on_piece_verified
    - TORRENT_ASSERT
    - aux::vector::resize
    - settings
    - deferred_submit_jobs
    - sha1_hash
    - torrent_file
    linkageType: ''
    returnType: void
    signature: void torrent::verify_piece(piece_index_t const piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:11413,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:11413,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11413,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11417
      start: 11411
    functionDepth: 0
    functionLinenumber: 11411
    functionLinenumberEnd: 11417
    functionName: torrent::find_tracker
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 5
    functionsReached:
    - begin
    - end
    - std::find_if
    linkageType: ''
    returnType: aux::announce_entry
    signature: aux::announce_entry * torrent::find_tracker(std::string const& url)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:11425,1
    - Dst: apply_ip_filter
      Src: /src/libtorrent/src/torrent.cpp:11427,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11429,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11432,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11432,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent.cpp:11433,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:11437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11438
      start: 11419
    functionDepth: 2
    functionLinenumber: 11419
    functionLinenumberEnd: 11438
    functionName: torrent::ip_filter_updated
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - torrent::get_peer_list_state
    - torrent::get_handle
    - local_endpoint
    - torrent::peers_erased
    - apply_ip_filter
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::ip_filter_updated()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_filter::add_rule
      Src: /src/libtorrent/src/torrent.cpp:11446,1
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:11448,1
    - Dst: apply_port_filter
      Src: /src/libtorrent/src/torrent.cpp:11450,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11452,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11455,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11455,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:11459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11460
      start: 11441
    functionDepth: 2
    functionLinenumber: 11441
    functionLinenumberEnd: 11460
    functionName: torrent::privileged_port_updated
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - port_filter::add_rule
    - torrent::get_peer_list_state
    - torrent::get_handle
    - torrent::peers_erased
    - apply_port_filter
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::privileged_port_updated()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent::get_peer_list_state
      Src: /src/libtorrent/src/torrent.cpp:11466,1
    - Dst: apply_port_filter
      Src: /src/libtorrent/src/torrent.cpp:11468,1
    - Dst: get_port_filter
      Src: /src/libtorrent/src/torrent.cpp:11468,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11470,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11473,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11473,1
    - Dst: torrent::peers_erased
      Src: /src/libtorrent/src/torrent.cpp:11477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11478
      start: 11462
    functionDepth: 2
    functionLinenumber: 11462
    functionLinenumberEnd: 11478
    functionName: torrent::port_filter_updated
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::get_peer_list_state
    - torrent::get_handle
    - get_port_filter
    - torrent::peers_erased
    - apply_port_filter
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::port_filter_updated()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:11485,1
    - Dst: clear_peer
      Src: /src/libtorrent/src/torrent.cpp:11489,1
    - Dst: check_peers
      Src: /src/libtorrent/src/torrent.cpp:11492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<torrent_peer*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11494
      start: 11483
    functionDepth: 1
    functionLinenumber: 11483
    functionLinenumberEnd: 11494
    functionName: torrent::peers_erased
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 11
    functionsReached:
    - has_picker
    - check_peers
    - clear_peer
    linkageType: ''
    returnType: void
    signature: void torrent::peers_erased(std::vector<torrent_peer*> const& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11500,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:11500,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:11501,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:11503,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:11507,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:11507,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:11508,1
    - Dst: torrent::file_progress
      Src: /src/libtorrent/src/torrent.cpp:11511,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:11512,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent.cpp:11513,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:11515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' fp'
    argTypes:
    - aux::vector<float, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11519
      start: 11498
    functionDepth: 1
    functionLinenumber: 11498
    functionLinenumberEnd: 11519
    functionName: torrent::file_progress_float
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::file_progress
    - files
    - is_single_thread
    - valid_metadata
    - num_files
    - TORRENT_ASSERT
    - resize
    - torrent::is_seed
    - clear
    - file_range
    linkageType: ''
    returnType: void
    signature: void torrent::file_progress_float(aux::vector<float, file_index_t>&
      fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent::file_progress
      Src: /src/libtorrent/src/torrent.cpp:11526,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11527,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11527,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:11527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11528
      start: 11523
    functionDepth: 0
    functionLinenumber: 11523
    functionLinenumberEnd: 11528
    functionName: torrent::post_file_progress
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::file_progress
    - std::move
    - torrent::get_handle
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::post_file_progress(file_progress_flags_t const flags)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11533,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:11533,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:11534,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:11536,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:11543,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:11545,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:11545,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:11546,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent.cpp:11547,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11548,1
    - Dst: num_have
      Src: /src/libtorrent/src/torrent.cpp:11552,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent.cpp:11552,1
    - Dst: clear
      Src: /src/libtorrent/src/torrent.cpp:11555,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent.cpp:11556,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent.cpp:11556,1
    - Dst: export_progress
      Src: /src/libtorrent/src/torrent.cpp:11560,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:11566,1
    - Dst: torrent::get_download_queue
      Src: /src/libtorrent/src/torrent.cpp:11569,1
    - Dst: files
      Src: /src/libtorrent/src/torrent.cpp:11571,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:11574,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:11580,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:11580,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:11581,1
    - Dst: file_index_at_offset
      Src: /src/libtorrent/src/torrent.cpp:11582,1
    - Dst: blocks_for_piece
      Src: /src/libtorrent/src/torrent.cpp:11584,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11587,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:11587,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11588,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:11588,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:11588,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:11589,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:11590,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11591,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent.cpp:11591,1
    - Dst: file_offset
      Src: /src/libtorrent/src/torrent.cpp:11592,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11592,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11596,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:11596,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:11598,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/torrent.cpp:11612,1
    - Dst: auto*::downloading_piece_progress
      Src: /src/libtorrent/src/torrent.cpp:11613,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11616,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:11616,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:11621,1
    - Dst: file_offset
      Src: /src/libtorrent/src/torrent.cpp:11626,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11626,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:11628,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11632,1
    - Dst: file_offset
      Src: /src/libtorrent/src/torrent.cpp:11632,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11632,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent.cpp:11633,1
    - Dst: file_offset
      Src: /src/libtorrent/src/torrent.cpp:11633,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11633,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11635,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11635,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11639,1
    - Dst: file_offset
      Src: /src/libtorrent/src/torrent.cpp:11639,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11639,1
    - Dst: file_offset
      Src: /src/libtorrent/src/torrent.cpp:11640,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11640,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:11643,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11651,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent.cpp:11651,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:11651,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent.cpp:11652,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:11653,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11657,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent.cpp:11657,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:11659,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11661,1
    - Dst: end_file
      Src: /src/libtorrent/src/torrent.cpp:11661,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 2
    argNames:
    - ' fp'
    - flags
    argTypes:
    - aux::vector<std::int64_t, file_index_t>
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11664
      start: 11530
    functionDepth: 2
    functionLinenumber: 11530
    functionLinenumberEnd: 11664
    functionName: torrent::file_progress
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - block_size
    - valid_metadata
    - empty
    - std::min
    - torrent::is_seed
    - file_size
    - torrent::get_download_queue
    - blocks_for_piece
    - file_offset
    - num_have
    - is_single_thread
    - end_file
    - clear
    - file_range
    - static_cast<peer_connection*>
    - total_size
    - export_progress
    - files
    - num_files
    - TORRENT_ASSERT
    - has_picker
    - have_piece
    - auto*::downloading_piece_progress
    - file_index_at_offset
    - std::int64_t
    - piece_length
    - resize
    linkageType: ''
    returnType: void
    signature: "void torrent::file_progress(aux::vector<std::int64_t, file_index_t>&
      fp\n\t\t, file_progress_flags_t const flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_peer_prio
      Src: /src/libtorrent/src/torrent.cpp:11668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11669
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11669
    functionName: torrent::new_external_ip
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - clear_peer_prio
    linkageType: ''
    returnType: void
    signature: void torrent::new_external_ip()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_downloading_state
      Src: /src/libtorrent/src/torrent.cpp:11677,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:11680,1
    - Dst: torrent::auto_managed
      Src: /src/libtorrent/src/torrent.cpp:11682,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:11683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11686
      start: 11671
    functionDepth: 4
    functionLinenumber: 11671
    functionLinenumberEnd: 11686
    functionName: torrent::stop_when_ready
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - torrent::pause
    - torrent::auto_managed
    - torrent::debug_log
    - is_downloading_state
    linkageType: ''
    returnType: void
    signature: void torrent::stop_when_ready(bool const b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11690,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:11690,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11691,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11697,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:11697,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11698,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:11698,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11701,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:11701,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11703,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:11703,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11708,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11710,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11710,1
    - Dst: static_cast<torrent_status::state_t>
      Src: /src/libtorrent/src/torrent.cpp:11711,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11715,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11717,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11718,1
    - Dst: is_downloading_state
      Src: /src/libtorrent/src/torrent.cpp:11722,1
    - Dst: is_downloading_state
      Src: /src/libtorrent/src/torrent.cpp:11723,1
    - Dst: torrent::update_gauge
      Src: /src/libtorrent/src/torrent.cpp:11730,1
    - Dst: torrent::update_want_peers
      Src: /src/libtorrent/src/torrent.cpp:11731,1
    - Dst: torrent::update_want_tick
      Src: /src/libtorrent/src/torrent.cpp:11732,1
    - Dst: torrent::update_state_list
      Src: /src/libtorrent/src/torrent.cpp:11733,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:11735,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:11738,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:11744,1
    - Dst: torrent::auto_managed
      Src: /src/libtorrent/src/torrent.cpp:11750,1
    - Dst: torrent::pause
      Src: /src/libtorrent/src/torrent.cpp:11751,1
    - Dst: on_state
      Src: /src/libtorrent/src/torrent.cpp:11758,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:11758,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - torrent_status::state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11761
      start: 11688
    functionDepth: 4
    functionLinenumber: 11688
    functionLinenumberEnd: 11761
    functionName: torrent::set_state
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 10
    functionsReached:
    - torrent::update_want_peers
    - torrent::update_state_list
    - state
    - static_cast<torrent_status::state_t>
    - torrent::is_finished
    - is_single_thread
    - torrent::get_handle
    - torrent::debug_log
    - TORRENT_ASSERT
    - torrent::update_want_tick
    - torrent::is_seed
    - is_downloading_state
    - torrent::pause
    - torrent::update_gauge
    - torrent::auto_managed
    - torrent::state_updated
    - alerts
    - on_state
    linkageType: ''
    returnType: void
    signature: void torrent::set_state(torrent_status::state_t const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_add_peer
      Src: /src/libtorrent/src/torrent.cpp:11769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' ip'
    - src
    - flags
    argTypes:
    - tcp::endpoint
    - peer_source_flags_t
    - add_peer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11771
      start: 11764
    functionDepth: 0
    functionLinenumber: 11764
    functionLinenumberEnd: 11771
    functionName: torrent::notify_extension_add_peer
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - on_add_peer
    linkageType: ''
    returnType: void
    signature: "void torrent::notify_extension_add_peer(tcp::endpoint const& ip\n\t\t,
      peer_source_flags_t const src, add_peer_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11780,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/torrent.cpp:11780,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11784,1
    - Dst: is_posting_torrent_updates
      Src: /src/libtorrent/src/torrent.cpp:11784,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/torrent.cpp:11789,1
    - Dst: in_list
      Src: /src/libtorrent/src/torrent.cpp:11793,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11796,1
    - Dst: find
      Src: /src/libtorrent/src/torrent.cpp:11796,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:11796,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11796,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11802,1
    - Dst: find
      Src: /src/libtorrent/src/torrent.cpp:11802,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent.cpp:11802,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11802,1
    - Dst: end
      Src: /src/libtorrent/src/torrent.cpp:11802,1
    - Dst: insert
      Src: /src/libtorrent/src/torrent.cpp:11805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11806
      start: 11774
    functionDepth: 1
    functionLinenumber: 11774
    functionLinenumberEnd: 11806
    functionName: torrent::state_updated
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 32
    functionsReached:
    - shared_from_this
    - torrent_list
    - begin
    - insert
    - end
    - find
    - TORRENT_ASSERT
    - is_posting_torrent_updates
    - in_list
    linkageType: ''
    returnType: void
    signature: void torrent::state_updated()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/torrent.cpp:11811,1
    - Dst: torrent::status
      Src: /src/libtorrent/src/torrent.cpp:11812,1
    - Dst: std::vector::front
      Src: /src/libtorrent/src/torrent.cpp:11812,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:11813,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent.cpp:11813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flags
    argTypes:
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11814
      start: 11808
    functionDepth: 1
    functionLinenumber: 11808
    functionLinenumberEnd: 11814
    functionName: torrent::post_status
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::resize
    - std::vector::front
    - torrent::status
    - alerts
    linkageType: ''
    returnType: void
    signature: void torrent::post_status(status_flags_t const flags)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:11820,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:11822,1
    - Dst: info_hash
      Src: /src/libtorrent/src/torrent.cpp:11823,1
    - Dst: info_hash
      Src: /src/libtorrent/src/torrent.cpp:11825,1
    - Dst: torrent::name
      Src: /src/libtorrent/src/torrent.cpp:11832,1
    - Dst: torrent::save_path
      Src: /src/libtorrent/src/torrent.cpp:11835,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/torrent.cpp:11845,1
    - Dst: message
      Src: /src/libtorrent/src/torrent.cpp:11845,1
    - Dst: torrent::resolve_filename
      Src: /src/libtorrent/src/torrent.cpp:11846,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:11862,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:11862,1
    - Dst: torrent::priority
      Src: /src/libtorrent/src/torrent.cpp:11876,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:11879,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:11881,1
    - Dst: torrent::num_seeds
      Src: /src/libtorrent/src/torrent.cpp:11882,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/torrent.cpp:11883,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11884,1
    - Dst: torrent::seed_rank
      Src: /src/libtorrent/src/torrent.cpp:11885,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:11885,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:11892,1
    - Dst: torrent::finished_time
      Src: /src/libtorrent/src/torrent.cpp:11892,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:11893,1
    - Dst: torrent::active_time
      Src: /src/libtorrent/src/torrent.cpp:11893,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:11894,1
    - Dst: torrent::seeding_time
      Src: /src/libtorrent/src/torrent.cpp:11894,1
    - Dst: seconds32
      Src: /src/libtorrent/src/torrent.cpp:11896,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:11899,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:11899,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:11901,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/torrent.cpp:11901,1
    - Dst: torrent::finished_time
      Src: /src/libtorrent/src/torrent.cpp:11904,1
    - Dst: torrent::active_time
      Src: /src/libtorrent/src/torrent.cpp:11905,1
    - Dst: torrent::seeding_time
      Src: /src/libtorrent/src/torrent.cpp:11906,1
    - Dst: static_cast<storage_mode_t>
      Src: /src/libtorrent/src/torrent.cpp:11911,1
    - Dst: is_torrent_paused
      Src: /src/libtorrent/src/torrent.cpp:11916,1
    - Dst: torrent::is_seed
      Src: /src/libtorrent/src/torrent.cpp:11920,1
    - Dst: torrent::is_finished
      Src: /src/libtorrent/src/torrent.cpp:11921,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:11927,1
    - Dst: torrent::bytes_done
      Src: /src/libtorrent/src/torrent.cpp:11928,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11929,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11930,1
    - Dst: total_payload_download
      Src: /src/libtorrent/src/torrent.cpp:11933,1
    - Dst: total_payload_upload
      Src: /src/libtorrent/src/torrent.cpp:11934,1
    - Dst: total_payload_download
      Src: /src/libtorrent/src/torrent.cpp:11937,1
    - Dst: total_protocol_download
      Src: /src/libtorrent/src/torrent.cpp:11938,1
    - Dst: total_payload_upload
      Src: /src/libtorrent/src/torrent.cpp:11939,1
    - Dst: total_protocol_upload
      Src: /src/libtorrent/src/torrent.cpp:11940,1
    - Dst: download_rate
      Src: /src/libtorrent/src/torrent.cpp:11947,1
    - Dst: upload_rate
      Src: /src/libtorrent/src/torrent.cpp:11948,1
    - Dst: download_payload_rate
      Src: /src/libtorrent/src/torrent.cpp:11949,1
    - Dst: upload_payload_rate
      Src: /src/libtorrent/src/torrent.cpp:11950,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:11952,1
    - Dst: expiry
      Src: /src/libtorrent/src/torrent.cpp:11952,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:11953,1
    - Dst: expiry
      Src: /src/libtorrent/src/torrent.cpp:11955,1
    - Dst: torrent_status*::next_announce::count
      Src: /src/libtorrent/src/torrent.cpp:11957,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:11958,1
    - Dst: seconds
      Src: /src/libtorrent/src/torrent.cpp:11961,1
    - Dst: torrent_status*::current_tracker::clear
      Src: /src/libtorrent/src/torrent.cpp:11964,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:11967,1
    - Dst: end_index
      Src: /src/libtorrent/src/torrent.cpp:11967,1
    - Dst: has_v1
      Src: /src/libtorrent/src/torrent.cpp:11979,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent.cpp:11980,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/torrent.cpp:11988,1
    - Dst: endpoints::begin
      Src: /src/libtorrent/src/torrent.cpp:11988,1
    - Dst: endpoints::end
      Src: /src/libtorrent/src/torrent.cpp:11988,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:12010,1
    - Dst: queue_position
      Src: /src/libtorrent/src/torrent.cpp:12014,1
    - Dst: static_cast<torrent_status::state_t>
      Src: /src/libtorrent/src/torrent.cpp:12020,1
    - Dst: torrent::flags
      Src: /src/libtorrent/src/torrent.cpp:12021,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/torrent.cpp:12036,1
    - Dst: block_size
      Src: /src/libtorrent/src/torrent.cpp:12047,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:12072,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:12073,1
    - Dst: torrent_status*::pieces::resize
      Src: /src/libtorrent/src/torrent.cpp:12075,1
    - Dst: torrent_status*::pieces::range
      Src: /src/libtorrent/src/torrent.cpp:12076,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:12077,1
    - Dst: torrent_status*::pieces::set_bit
      Src: /src/libtorrent/src/torrent.cpp:12077,1
    - Dst: torrent_status*::pieces::resize
      Src: /src/libtorrent/src/torrent.cpp:12081,1
    - Dst: torrent_status*::pieces::resize
      Src: /src/libtorrent/src/torrent.cpp:12085,1
    - Dst: num_have
      Src: /src/libtorrent/src/torrent.cpp:12088,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:12096,1
    - Dst: has_picker
      Src: /src/libtorrent/src/torrent.cpp:12098,1
    - Dst: piece_range
      Src: /src/libtorrent/src/torrent.cpp:12100,1
    - Dst: have_piece
      Src: /src/libtorrent/src/torrent.cpp:12101,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent.cpp:12105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12107,1
    - Dst: torrent::num_seeds
      Src: /src/libtorrent/src/torrent.cpp:12110,1
    - Dst: get
      Src: /src/libtorrent/src/torrent.cpp:12111,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent.cpp:12113,1
    - Dst: distributed_copies
      Src: /src/libtorrent/src/torrent.cpp:12114,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 166
    argCount: 2
    argNames:
    - st
    - flags
    argTypes:
    - torrent_status*
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12130
      start: 11816
    functionDepth: 3
    functionLinenumber: 11816
    functionLinenumberEnd: 12130
    functionName: torrent::status
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - static_cast<storage_mode_t>
    - has_v2
    - total_payload_download
    - valid_metadata
    - seconds
    - torrent::bytes_done
    - queue_position
    - torrent::name
    - block_size
    - torrent::is_seed
    - download_payload_rate
    - piece_range
    - has_v1
    - total_payload_upload
    - num_have
    - torrent_status*::next_announce::count
    - torrent::flags
    - torrent::is_finished
    - message
    - total_protocol_upload
    - endpoints::begin
    - torrent::seed_rank
    - download_rate
    - num_pieces
    - is_torrent_paused
    - num_peers
    - torrent::is_paused
    - distributed_copies
    - seconds32
    - info_hash
    - num_connect_candidates
    - torrent::num_seeds
    - expiry
    - TORRENT_ASSERT
    - has_picker
    - torrent_status*::pieces::range
    - upload_payload_rate
    - torrent::resolve_filename
    - have_piece
    - convert_from_native
    - end_index
    - upload_rate
    - torrent_status*::pieces::resize
    - torrent::seeding_time
    - torrent_status*::current_tracker::clear
    - static_cast<torrent_status::state_t>
    - std::tie
    - total_seconds
    - torrent::priority
    - torrent::get_handle
    - torrent::active_time
    - torrent_status*::pieces::set_bit
    - total_protocol_download
    - endpoints::end
    - std::any_of
    - settings
    - libtorrent::aux::time_now32
    - get
    - torrent::finished_time
    - torrent::save_path
    linkageType: ''
    returnType: void
    signature: void torrent::status(torrent_status* st, status_flags_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_classes
      Src: /src/libtorrent/src/torrent.cpp:12135,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:12137,1
    - Dst: class_at
      Src: /src/libtorrent/src/torrent.cpp:12137,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:12138,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent.cpp:12139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12142
      start: 12132
    functionDepth: 0
    functionLinenumber: 12132
    functionLinenumberEnd: 12142
    functionName: torrent::priority
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - num_classes
    - peer_classes
    - class_at
    - std::max
    linkageType: ''
    returnType: int
    signature: int torrent::priority() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent::setup_peer_class
      Src: /src/libtorrent/src/torrent.cpp:12151,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/torrent.cpp:12153,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12154,1
    - Dst: torrent::state_updated
      Src: /src/libtorrent/src/torrent.cpp:12158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - prio
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12159
      start: 12145
    functionDepth: 2
    functionLinenumber: 12145
    functionLinenumberEnd: 12159
    functionName: torrent::set_priority
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - torrent::setup_peer_class
    - peer_classes
    - torrent::state_updated
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void torrent::set_priority(int const prio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12164,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:12164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12166,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:12166,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12167,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:12167,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:12167,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent.cpp:12169,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent.cpp:12172,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:12175,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:12176,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent.cpp:12176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - b
    - reason
    argTypes:
    - int
    - waste_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12177
      start: 12162
    functionDepth: 1
    functionLinenumber: 12162
    functionLinenumberEnd: 12177
    functionName: torrent::add_redundant_bytes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - is_single_thread
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - torrent::inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void torrent::add_redundant_bytes(int const b, waste_reason const reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12181,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:12181,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12182,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent.cpp:12183,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent.cpp:12186,1
    - Dst: torrent::inc_stats_counter
      Src: /src/libtorrent/src/torrent.cpp:12189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12190
      start: 12179
    functionDepth: 1
    functionLinenumber: 12179
    functionLinenumberEnd: 12190
    functionName: torrent::add_failed_bytes
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - torrent::inc_stats_counter
    - is_single_thread
    - libtorrent::aux::max
    linkageType: ''
    returnType: void
    signature: void torrent::add_failed_bytes(int const b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12195,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:12195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12199
      start: 12193
    functionDepth: 1
    functionLinenumber: 12193
    functionLinenumberEnd: 12199
    functionName: torrent::num_seeds
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: int
    signature: int torrent::num_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12204,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:12204,1
    - Dst: num_peers
      Src: /src/libtorrent/src/torrent.cpp:12207,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12213
      start: 12202
    functionDepth: 1
    functionLinenumber: 12202
    functionLinenumberEnd: 12213
    functionName: torrent::num_downloaders
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - num_peers
    linkageType: ''
    returnType: int
    signature: int torrent::num_downloaders() const
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent.cpp:12219,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/torrent.cpp:12219,1
    - Dst: has_v1
      Src: /src/libtorrent/src/torrent.cpp:12230,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent.cpp:12231,1
    - Dst: torrent::should_log
      Src: /src/libtorrent/src/torrent.cpp:12238,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:12240,1
    - Dst: value
      Src: /src/libtorrent/src/torrent.cpp:12240,1
    - Dst: message
      Src: /src/libtorrent/src/torrent.cpp:12241,1
    - Dst: operation_name
      Src: /src/libtorrent/src/torrent.cpp:12241,1
    - Dst: c_str
      Src: /src/libtorrent/src/torrent.cpp:12241,1
    - Dst: torrent::find_tracker
      Src: /src/libtorrent/src/torrent.cpp:12247,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent.cpp:12253,1
    - Dst: aux::announce_entry*::endpoints::begin
      Src: /src/libtorrent/src/torrent.cpp:12253,1
    - Dst: aux::announce_entry*::endpoints::end
      Src: /src/libtorrent/src/torrent.cpp:12253,1
    - Dst: aux::announce_entry*::endpoints::end
      Src: /src/libtorrent/src/torrent.cpp:12256,1
    - Dst: failed
      Src: /src/libtorrent/src/torrent.cpp:12262,1
    - Dst: settings
      Src: /src/libtorrent/src/torrent.cpp:12262,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:12269,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:12270,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/torrent.cpp:12270,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:12277,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:12278,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/torrent.cpp:12278,1
    - Dst: torrent::debug_log
      Src: /src/libtorrent/src/torrent.cpp:12285,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/torrent.cpp:12286,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/torrent.cpp:12286,1
    - Dst: outgoing_socket::get_local_endpoint
      Src: /src/libtorrent/src/torrent.cpp:12286,1
    - Dst: data
      Src: /src/libtorrent/src/torrent.cpp:12290,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:12293,1
    - Dst: http_category
      Src: /src/libtorrent/src/torrent.cpp:12293,1
    - Dst: all_of
      Src: /src/libtorrent/src/torrent.cpp:12297,1
    - Dst: aux::announce_entry*::endpoints::begin
      Src: /src/libtorrent/src/torrent.cpp:12297,1
    - Dst: aux::announce_entry*::endpoints::end
      Src: /src/libtorrent/src/torrent.cpp:12297,1
    - Dst: is_working
      Src: /src/libtorrent/src/torrent.cpp:12301,1
    - Dst: torrent::deprioritize_tracker
      Src: /src/libtorrent/src/torrent.cpp:12306,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:12309,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:12312,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:12312,1
    - Dst: torrent::find_tracker
      Src: /src/libtorrent/src/torrent.cpp:12318,1
    - Dst: error_code
      Src: /src/libtorrent/src/torrent.cpp:12321,1
    - Dst: http_category
      Src: /src/libtorrent/src/torrent.cpp:12321,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:12330,1
    - Dst: aux::announce_entry*::find_endpoint
      Src: /src/libtorrent/src/torrent.cpp:12336,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:12343,1
    - Dst: torrent::get_handle
      Src: /src/libtorrent/src/torrent.cpp:12343,1
    - Dst: torrent::is_paused
      Src: /src/libtorrent/src/torrent.cpp:12350,1
    - Dst: state
      Src: /src/libtorrent/src/torrent.cpp:12350,1
    - Dst: torrent::announce_with_tracker
      Src: /src/libtorrent/src/torrent.cpp:12353,1
    - Dst: torrent::update_tracker_timer
      Src: /src/libtorrent/src/torrent.cpp:12357,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/torrent.cpp:12357,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 5
    argNames:
    - ' r'
    - ' ec'
    - op
    - ' msg'
    - retry_interval
    argTypes:
    - tracker_request
    - error_code
    - operation_t
    - std::string
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12359
      start: 12215
    functionDepth: 3
    functionLinenumber: 12215
    functionLinenumberEnd: 12359
    functionName: torrent::tracker_request_error
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 0
    functionsReached:
    - http_category
    - has_v2
    - aux::announce_entry*::endpoints::begin
    - outgoing_socket::get_local_endpoint
    - torrent::announce_with_tracker
    - all_of
    - value
    - torrent::find_tracker
    - has_v1
    - alerts
    - data
    - torrent::update_tracker_timer
    - is_single_thread
    - message
    - print_endpoint
    - aux::announce_entry*::endpoints::end
    - torrent::is_paused
    - failed
    - operation_name
    - is_working
    - TORRENT_ASSERT
    - torrent::deprioritize_tracker
    - url::c_str
    - std::find_if
    - state
    - torrent::should_log
    - aux::announce_entry*::find_endpoint
    - c_str
    - error_code
    - torrent::get_handle
    - torrent::debug_log
    - settings
    - libtorrent::aux::time_now32
    linkageType: ''
    returnType: void
    signature: "void torrent::tracker_request_error(tracker_request const& r\n\t\t,
      error_code const& ec, operation_t const op, std::string const& msg\n\t\t, seconds32
      const retry_interval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:12364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12365
      start: 12362
    functionDepth: 0
    functionLinenumber: 12362
    functionLinenumberEnd: 12365
    functionName: torrent::should_log
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 27
    functionsReached:
    - alerts
    linkageType: ''
    returnType: bool
    signature: bool torrent::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:12370,1
    - Dst: va_start
      Src: /src/libtorrent/src/torrent.cpp:12373,1
    - Dst: alerts
      Src: /src/libtorrent/src/torrent.cpp:12374,1
    - Dst: const_cast<torrent*>
      Src: /src/libtorrent/src/torrent.cpp:12375,1
    - Dst: va_end
      Src: /src/libtorrent/src/torrent.cpp:12376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12378
      start: 12368
    functionDepth: 0
    functionLinenumber: 12368
    functionLinenumberEnd: 12378
    functionName: torrent::debug_log
    functionSourceFile: /src/libtorrent/src/torrent.cpp
    functionUses: 47
    functionsReached:
    - va_start
    - const_cast<torrent*>
    - alerts
    - va_end
    linkageType: ''
    returnType: void
    signature: void torrent::debug_log(char const* fmt, ...) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::disk_job_pool::disk_job_pool
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::disk_job_pool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: disk_job_pool::~disk_job_pool()
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::~disk_job_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/disk_job_pool.cpp:56,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/disk_job_pool.cpp:57,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/disk_job_pool.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - job_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::disk_job_pool::allocate_job
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - set_next_size
    - construct
    - std::unique_lock::unlock
    linkageType: ''
    returnType: mmap_disk_job
    signature: mmap_disk_job * disk_job_pool::allocate_job(job_action_t const type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_pool.cpp:72,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_pool.cpp:75,1
    - Dst: destroy
      Src: /src/libtorrent/src/disk_job_pool.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - j
    argTypes:
    - mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::disk_job_pool::free_job
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - destroy
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::free_job(mmap_disk_job* j)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/libtorrent/src/disk_job_pool.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - j
    - num
    argTypes:
    - mmap_disk_job**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::disk_job_pool::free_jobs
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::free_jobs(mmap_disk_job** j, int const num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::disk_job_pool::disk_job_pool
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::disk_job_pool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: disk_job_pool::~disk_job_pool()
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::~disk_job_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/disk_job_pool.cpp:56,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/disk_job_pool.cpp:57,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/disk_job_pool.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - job_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::disk_job_pool::allocate_job
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - set_next_size
    - construct
    - std::unique_lock::unlock
    linkageType: ''
    returnType: mmap_disk_job
    signature: mmap_disk_job * disk_job_pool::allocate_job(job_action_t const type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_pool.cpp:72,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_pool.cpp:75,1
    - Dst: destroy
      Src: /src/libtorrent/src/disk_job_pool.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - j
    argTypes:
    - mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::disk_job_pool::free_job
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - destroy
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::free_job(mmap_disk_job* j)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/libtorrent/src/disk_job_pool.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - j
    - num
    argTypes:
    - mmap_disk_job**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::disk_job_pool::free_jobs
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::free_jobs(mmap_disk_job** j, int const num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::disk_job_pool::disk_job_pool
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::disk_job_pool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: disk_job_pool::~disk_job_pool()
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::~disk_job_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/disk_job_pool.cpp:56,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/disk_job_pool.cpp:57,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/disk_job_pool.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - job_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::disk_job_pool::allocate_job
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - set_next_size
    - construct
    - std::unique_lock::unlock
    linkageType: ''
    returnType: mmap_disk_job
    signature: mmap_disk_job * disk_job_pool::allocate_job(job_action_t const type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_pool.cpp:72,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_pool.cpp:75,1
    - Dst: destroy
      Src: /src/libtorrent/src/disk_job_pool.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - j
    argTypes:
    - mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::disk_job_pool::free_job
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - destroy
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::free_job(mmap_disk_job* j)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/libtorrent/src/disk_job_pool.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - j
    - num
    argTypes:
    - mmap_disk_job**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::disk_job_pool::free_jobs
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::free_jobs(mmap_disk_job** j, int const num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::disk_job_pool::disk_job_pool
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::disk_job_pool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: disk_job_pool::~disk_job_pool()
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::~disk_job_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/libtorrent/src/disk_job_pool.cpp:56,1
    - Dst: set_next_size
      Src: /src/libtorrent/src/disk_job_pool.cpp:57,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/disk_job_pool.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - job_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::disk_job_pool::allocate_job
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - set_next_size
    - construct
    - std::unique_lock::unlock
    linkageType: ''
    returnType: mmap_disk_job
    signature: mmap_disk_job * disk_job_pool::allocate_job(job_action_t const type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_pool.cpp:72,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_pool.cpp:75,1
    - Dst: destroy
      Src: /src/libtorrent/src/disk_job_pool.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - j
    argTypes:
    - mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::disk_job_pool::free_job
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - destroy
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::free_job(mmap_disk_job* j)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/libtorrent/src/disk_job_pool.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - j
    - num
    argTypes:
    - mmap_disk_job**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::disk_job_pool::free_jobs
    functionSourceFile: /src/libtorrent/src/disk_job_pool.cpp
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: void
    signature: void disk_job_pool::free_jobs(mmap_disk_job** j, int const num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: libtorrent::smart_ban_plugin
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smart_ban_plugin(torrent& t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:83,1
    - Dst: libtorrent::piece_block
      Src: /src/libtorrent/src/smart_ban.cpp:83,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:84,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:87,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:88,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:89,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/smart_ban.cpp:89,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/smart_ban.cpp:92,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:93,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:99,1
    - Dst: storage
      Src: /src/libtorrent/src/smart_ban.cpp:99,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/smart_ban.cpp:100,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/smart_ban.cpp:101,1
    - Dst: auto::second::peer::address
      Src: /src/libtorrent/src/smart_ban.cpp:101,1
    - Dst: erase
      Src: /src/libtorrent/src/smart_ban.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:106,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:109,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:114,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:120,1
    - Dst: libtorrent::piece_block
      Src: /src/libtorrent/src/smart_ban.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:121,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:121,1
    - Dst: is_seed
      Src: /src/libtorrent/src/smart_ban.cpp:124,1
    - Dst: std::map<piece_block, block_entry>
      Src: /src/libtorrent/src/smart_ban.cpp:126,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 129
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::debug_log
    - libtorrent::min
    - libtorrent::size
    - auto::second::peer::address
    - libtorrent::bind
    - erase
    - libtorrent::session
    - storage
    - TORRENT_ASSERT
    - std::map<piece_block, block_entry>
    - libtorrent::end
    - libtorrent::piece_block
    - is_seed
    - libtorrent::shared_from_this
    - should_log
    - torrent_file
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t const p) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_aborted
      Src: /src/libtorrent/src/smart_ban.cpp:138,1
    - Dst: picker
      Src: /src/libtorrent/src/smart_ban.cpp:141,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/smart_ban.cpp:143,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:144,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:154,1
    - Dst: storage
      Src: /src/libtorrent/src/smart_ban.cpp:154,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/smart_ban.cpp:155,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/smart_ban.cpp:156,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/smart_ban.cpp:156,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: libtorrent::on_piece_failed
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::bind
    - libtorrent::session
    - picker
    - storage
    - TORRENT_ASSERT
    - libtorrent::address
    - libtorrent::shared_from_this
    - libtorrent::is_aborted
    - torrent_file
    linkageType: ''
    returnType: void
    signature: void on_piece_failed(piece_index_t const p) override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:182,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:182,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/smart_ban.cpp:188,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/smart_ban.cpp:188,1
    - Dst: libtorrent::find_peers
      Src: /src/libtorrent/src/smart_ban.cpp:190,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/smart_ban.cpp:196,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:198,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:200,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:211,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:217,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:218,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:220,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:222,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:223,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:224,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/smart_ban.cpp:225,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:225,1
    - Dst: ban_peer
      Src: /src/libtorrent/src/smart_ban.cpp:228,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/smart_ban.cpp:229,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/smart_ban.cpp:237,1
    - Dst: std::pair<const piece_block, block_entry>
      Src: /src/libtorrent/src/smart_ban.cpp:237,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:240,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:246,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:247,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:249,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:251,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:252,1
    - Dst: libtorrent::print_address
      Src: /src/libtorrent/src/smart_ban.cpp:253,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - b
    - a
    - buffer
    - block_size
    - ' error'
    argTypes:
    - piece_block
    - address
    - disk_buffer_holder
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 256
    functionName: libtorrent::on_read_failed_block
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::debug_log
    - peer_info::client::c_str
    - ban_peer
    - libtorrent::insert
    - torrent_peer*::connection::get_peer_info
    - hasher::final
    - libtorrent::print_address
    - libtorrent::find_peers
    - torrent_peer*::connection::disconnect
    - libtorrent::end
    - lower_bound
    - torrent_peer*::ip
    - disk_buffer_holder::data
    - libtorrent::aux::to_hex
    - TORRENT_ASSERT
    - libtorrent::print_endpoint
    - libtorrent::session
    - std::pair<const piece_block, block_entry>
    - hasher::update
    - should_log
    linkageType: ''
    returnType: void
    signature: "void on_read_failed_block(piece_block const b, address const a\n\t\t\t,
      disk_buffer_holder buffer, int const block_size\n\t\t\t, storage_error const&
      error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:262,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:262,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/smart_ban.cpp:268,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/smart_ban.cpp:268,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/smart_ban.cpp:269,1
    - Dst: libtorrent::find_peers
      Src: /src/libtorrent/src/smart_ban.cpp:274,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:285,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:291,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:292,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:294,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:296,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:297,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:298,1
    - Dst: libtorrent::print_address
      Src: /src/libtorrent/src/smart_ban.cpp:299,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:299,1
    - Dst: ban_peer
      Src: /src/libtorrent/src/smart_ban.cpp:302,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/smart_ban.cpp:303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - b
    - ' a'
    - buffer
    - block_size
    - ' error'
    argTypes:
    - std::pair<piece_block, block_entry>
    - address
    - disk_buffer_holder
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 305
    functionName: libtorrent::on_read_ok_block
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - torrent_peer*::ip
    - hasher::final
    - libtorrent::debug_log
    - peer_info::client::c_str
    - libtorrent::print_address
    - libtorrent::aux::to_hex
    - libtorrent::find_peers
    - ban_peer
    - libtorrent::session
    - TORRENT_ASSERT
    - torrent_peer*::connection::get_peer_info
    - torrent_peer*::connection::disconnect
    - hasher::update
    - should_log
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void on_read_ok_block(std::pair<piece_block, block_entry> const b\n\t\t\t,
      address const& a, disk_buffer_holder buffer, int const block_size\n\t\t\t, storage_error
      const& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: '& operator=(smart_ban_plugin const&)'
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: smart_ban_plugin
    signature: smart_ban_plugin & operator=(smart_ban_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: libtorrent::smart_ban_plugin
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smart_ban_plugin(torrent& t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:83,1
    - Dst: libtorrent::piece_block
      Src: /src/libtorrent/src/smart_ban.cpp:83,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:84,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:87,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:88,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:89,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/smart_ban.cpp:89,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/smart_ban.cpp:92,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:93,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:99,1
    - Dst: storage
      Src: /src/libtorrent/src/smart_ban.cpp:99,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/smart_ban.cpp:100,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/smart_ban.cpp:101,1
    - Dst: auto::second::peer::address
      Src: /src/libtorrent/src/smart_ban.cpp:101,1
    - Dst: erase
      Src: /src/libtorrent/src/smart_ban.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:106,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:109,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:114,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:120,1
    - Dst: libtorrent::piece_block
      Src: /src/libtorrent/src/smart_ban.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:121,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:121,1
    - Dst: is_seed
      Src: /src/libtorrent/src/smart_ban.cpp:124,1
    - Dst: std::map<piece_block, block_entry>
      Src: /src/libtorrent/src/smart_ban.cpp:126,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 129
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::debug_log
    - libtorrent::min
    - libtorrent::size
    - auto::second::peer::address
    - libtorrent::bind
    - erase
    - libtorrent::session
    - storage
    - TORRENT_ASSERT
    - std::map<piece_block, block_entry>
    - libtorrent::end
    - libtorrent::piece_block
    - is_seed
    - libtorrent::shared_from_this
    - should_log
    - torrent_file
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t const p) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_aborted
      Src: /src/libtorrent/src/smart_ban.cpp:138,1
    - Dst: picker
      Src: /src/libtorrent/src/smart_ban.cpp:141,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/smart_ban.cpp:143,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:144,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:154,1
    - Dst: storage
      Src: /src/libtorrent/src/smart_ban.cpp:154,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/smart_ban.cpp:155,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/smart_ban.cpp:156,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/smart_ban.cpp:156,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: libtorrent::on_piece_failed
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::bind
    - libtorrent::session
    - picker
    - storage
    - TORRENT_ASSERT
    - libtorrent::address
    - libtorrent::shared_from_this
    - libtorrent::is_aborted
    - torrent_file
    linkageType: ''
    returnType: void
    signature: void on_piece_failed(piece_index_t const p) override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:182,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:182,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/smart_ban.cpp:188,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/smart_ban.cpp:188,1
    - Dst: libtorrent::find_peers
      Src: /src/libtorrent/src/smart_ban.cpp:190,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/smart_ban.cpp:196,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:198,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:200,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:211,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:217,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:218,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:220,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:222,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:223,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:224,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/smart_ban.cpp:225,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:225,1
    - Dst: ban_peer
      Src: /src/libtorrent/src/smart_ban.cpp:228,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/smart_ban.cpp:229,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/smart_ban.cpp:237,1
    - Dst: std::pair<const piece_block, block_entry>
      Src: /src/libtorrent/src/smart_ban.cpp:237,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:240,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:246,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:247,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:249,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:251,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:252,1
    - Dst: libtorrent::print_address
      Src: /src/libtorrent/src/smart_ban.cpp:253,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - b
    - a
    - buffer
    - block_size
    - ' error'
    argTypes:
    - piece_block
    - address
    - disk_buffer_holder
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 256
    functionName: libtorrent::on_read_failed_block
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::debug_log
    - peer_info::client::c_str
    - ban_peer
    - libtorrent::insert
    - torrent_peer*::connection::get_peer_info
    - hasher::final
    - libtorrent::print_address
    - libtorrent::find_peers
    - torrent_peer*::connection::disconnect
    - libtorrent::end
    - lower_bound
    - torrent_peer*::ip
    - disk_buffer_holder::data
    - libtorrent::aux::to_hex
    - TORRENT_ASSERT
    - libtorrent::print_endpoint
    - libtorrent::session
    - std::pair<const piece_block, block_entry>
    - hasher::update
    - should_log
    linkageType: ''
    returnType: void
    signature: "void on_read_failed_block(piece_block const b, address const a\n\t\t\t,
      disk_buffer_holder buffer, int const block_size\n\t\t\t, storage_error const&
      error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:262,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:262,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/smart_ban.cpp:268,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/smart_ban.cpp:268,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/smart_ban.cpp:269,1
    - Dst: libtorrent::find_peers
      Src: /src/libtorrent/src/smart_ban.cpp:274,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:285,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:291,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:292,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:294,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:296,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:297,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:298,1
    - Dst: libtorrent::print_address
      Src: /src/libtorrent/src/smart_ban.cpp:299,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:299,1
    - Dst: ban_peer
      Src: /src/libtorrent/src/smart_ban.cpp:302,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/smart_ban.cpp:303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - b
    - ' a'
    - buffer
    - block_size
    - ' error'
    argTypes:
    - std::pair<piece_block, block_entry>
    - address
    - disk_buffer_holder
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 305
    functionName: libtorrent::on_read_ok_block
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - torrent_peer*::ip
    - hasher::final
    - libtorrent::debug_log
    - peer_info::client::c_str
    - libtorrent::print_address
    - libtorrent::aux::to_hex
    - libtorrent::find_peers
    - ban_peer
    - libtorrent::session
    - TORRENT_ASSERT
    - torrent_peer*::connection::get_peer_info
    - torrent_peer*::connection::disconnect
    - hasher::update
    - should_log
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void on_read_ok_block(std::pair<piece_block, block_entry> const b\n\t\t\t,
      address const& a, disk_buffer_holder buffer, int const block_size\n\t\t\t, storage_error
      const& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: '& operator=(smart_ban_plugin const&)'
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: smart_ban_plugin
    signature: smart_ban_plugin & operator=(smart_ban_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: libtorrent::smart_ban_plugin
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smart_ban_plugin(torrent& t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:83,1
    - Dst: libtorrent::piece_block
      Src: /src/libtorrent/src/smart_ban.cpp:83,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:84,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:87,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:88,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:89,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/smart_ban.cpp:89,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/smart_ban.cpp:92,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:93,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:99,1
    - Dst: storage
      Src: /src/libtorrent/src/smart_ban.cpp:99,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/smart_ban.cpp:100,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/smart_ban.cpp:101,1
    - Dst: auto::second::peer::address
      Src: /src/libtorrent/src/smart_ban.cpp:101,1
    - Dst: erase
      Src: /src/libtorrent/src/smart_ban.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:106,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:109,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:114,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:120,1
    - Dst: libtorrent::piece_block
      Src: /src/libtorrent/src/smart_ban.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:121,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:121,1
    - Dst: is_seed
      Src: /src/libtorrent/src/smart_ban.cpp:124,1
    - Dst: std::map<piece_block, block_entry>
      Src: /src/libtorrent/src/smart_ban.cpp:126,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 129
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::debug_log
    - libtorrent::min
    - libtorrent::size
    - auto::second::peer::address
    - libtorrent::bind
    - erase
    - libtorrent::session
    - storage
    - TORRENT_ASSERT
    - std::map<piece_block, block_entry>
    - libtorrent::end
    - libtorrent::piece_block
    - is_seed
    - libtorrent::shared_from_this
    - should_log
    - torrent_file
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t const p) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_aborted
      Src: /src/libtorrent/src/smart_ban.cpp:138,1
    - Dst: picker
      Src: /src/libtorrent/src/smart_ban.cpp:141,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/smart_ban.cpp:143,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:144,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:154,1
    - Dst: storage
      Src: /src/libtorrent/src/smart_ban.cpp:154,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/smart_ban.cpp:155,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/smart_ban.cpp:156,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/smart_ban.cpp:156,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: libtorrent::on_piece_failed
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::bind
    - libtorrent::session
    - picker
    - storage
    - TORRENT_ASSERT
    - libtorrent::address
    - libtorrent::shared_from_this
    - libtorrent::is_aborted
    - torrent_file
    linkageType: ''
    returnType: void
    signature: void on_piece_failed(piece_index_t const p) override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:182,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:182,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/smart_ban.cpp:188,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/smart_ban.cpp:188,1
    - Dst: libtorrent::find_peers
      Src: /src/libtorrent/src/smart_ban.cpp:190,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/smart_ban.cpp:196,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:198,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:200,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:211,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:217,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:218,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:220,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:222,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:223,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:224,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/smart_ban.cpp:225,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:225,1
    - Dst: ban_peer
      Src: /src/libtorrent/src/smart_ban.cpp:228,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/smart_ban.cpp:229,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/smart_ban.cpp:237,1
    - Dst: std::pair<const piece_block, block_entry>
      Src: /src/libtorrent/src/smart_ban.cpp:237,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:240,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:246,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:247,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:249,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:251,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:252,1
    - Dst: libtorrent::print_address
      Src: /src/libtorrent/src/smart_ban.cpp:253,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - b
    - a
    - buffer
    - block_size
    - ' error'
    argTypes:
    - piece_block
    - address
    - disk_buffer_holder
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 256
    functionName: libtorrent::on_read_failed_block
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::debug_log
    - peer_info::client::c_str
    - ban_peer
    - libtorrent::insert
    - torrent_peer*::connection::get_peer_info
    - hasher::final
    - libtorrent::print_address
    - libtorrent::find_peers
    - torrent_peer*::connection::disconnect
    - libtorrent::end
    - lower_bound
    - torrent_peer*::ip
    - disk_buffer_holder::data
    - libtorrent::aux::to_hex
    - TORRENT_ASSERT
    - libtorrent::print_endpoint
    - libtorrent::session
    - std::pair<const piece_block, block_entry>
    - hasher::update
    - should_log
    linkageType: ''
    returnType: void
    signature: "void on_read_failed_block(piece_block const b, address const a\n\t\t\t,
      disk_buffer_holder buffer, int const block_size\n\t\t\t, storage_error const&
      error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:262,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:262,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/smart_ban.cpp:268,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/smart_ban.cpp:268,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/smart_ban.cpp:269,1
    - Dst: libtorrent::find_peers
      Src: /src/libtorrent/src/smart_ban.cpp:274,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:285,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:291,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:292,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:294,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:296,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:297,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:298,1
    - Dst: libtorrent::print_address
      Src: /src/libtorrent/src/smart_ban.cpp:299,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:299,1
    - Dst: ban_peer
      Src: /src/libtorrent/src/smart_ban.cpp:302,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/smart_ban.cpp:303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - b
    - ' a'
    - buffer
    - block_size
    - ' error'
    argTypes:
    - std::pair<piece_block, block_entry>
    - address
    - disk_buffer_holder
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 305
    functionName: libtorrent::on_read_ok_block
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - torrent_peer*::ip
    - hasher::final
    - libtorrent::debug_log
    - peer_info::client::c_str
    - libtorrent::print_address
    - libtorrent::aux::to_hex
    - libtorrent::find_peers
    - ban_peer
    - libtorrent::session
    - TORRENT_ASSERT
    - torrent_peer*::connection::get_peer_info
    - torrent_peer*::connection::disconnect
    - hasher::update
    - should_log
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void on_read_ok_block(std::pair<piece_block, block_entry> const b\n\t\t\t,
      address const& a, disk_buffer_holder buffer, int const block_size\n\t\t\t, storage_error
      const& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: '& operator=(smart_ban_plugin const&)'
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: smart_ban_plugin
    signature: smart_ban_plugin & operator=(smart_ban_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: libtorrent::smart_ban_plugin
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smart_ban_plugin(torrent& t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:83,1
    - Dst: libtorrent::piece_block
      Src: /src/libtorrent/src/smart_ban.cpp:83,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:84,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:87,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:88,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:89,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/smart_ban.cpp:89,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/smart_ban.cpp:92,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:93,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:99,1
    - Dst: storage
      Src: /src/libtorrent/src/smart_ban.cpp:99,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/smart_ban.cpp:100,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/smart_ban.cpp:101,1
    - Dst: auto::second::peer::address
      Src: /src/libtorrent/src/smart_ban.cpp:101,1
    - Dst: erase
      Src: /src/libtorrent/src/smart_ban.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:106,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:109,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:114,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:120,1
    - Dst: libtorrent::piece_block
      Src: /src/libtorrent/src/smart_ban.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:121,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:121,1
    - Dst: is_seed
      Src: /src/libtorrent/src/smart_ban.cpp:124,1
    - Dst: std::map<piece_block, block_entry>
      Src: /src/libtorrent/src/smart_ban.cpp:126,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 129
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::debug_log
    - libtorrent::min
    - libtorrent::size
    - auto::second::peer::address
    - libtorrent::bind
    - erase
    - libtorrent::session
    - storage
    - TORRENT_ASSERT
    - std::map<piece_block, block_entry>
    - libtorrent::end
    - libtorrent::piece_block
    - is_seed
    - libtorrent::shared_from_this
    - should_log
    - torrent_file
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t const p) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_aborted
      Src: /src/libtorrent/src/smart_ban.cpp:138,1
    - Dst: picker
      Src: /src/libtorrent/src/smart_ban.cpp:141,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/smart_ban.cpp:143,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:144,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:154,1
    - Dst: storage
      Src: /src/libtorrent/src/smart_ban.cpp:154,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/smart_ban.cpp:155,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/smart_ban.cpp:156,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/src/smart_ban.cpp:156,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/smart_ban.cpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: libtorrent::on_piece_failed
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::bind
    - libtorrent::session
    - picker
    - storage
    - TORRENT_ASSERT
    - libtorrent::address
    - libtorrent::shared_from_this
    - libtorrent::is_aborted
    - torrent_file
    linkageType: ''
    returnType: void
    signature: void on_piece_failed(piece_index_t const p) override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:182,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:182,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/smart_ban.cpp:188,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/smart_ban.cpp:188,1
    - Dst: libtorrent::find_peers
      Src: /src/libtorrent/src/smart_ban.cpp:190,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/smart_ban.cpp:196,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/smart_ban.cpp:198,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/smart_ban.cpp:200,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:211,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:217,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:218,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:220,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:222,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:223,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:224,1
    - Dst: libtorrent::print_endpoint
      Src: /src/libtorrent/src/smart_ban.cpp:225,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:225,1
    - Dst: ban_peer
      Src: /src/libtorrent/src/smart_ban.cpp:228,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/smart_ban.cpp:229,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/smart_ban.cpp:237,1
    - Dst: std::pair<const piece_block, block_entry>
      Src: /src/libtorrent/src/smart_ban.cpp:237,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:240,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:246,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:247,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:249,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:251,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:252,1
    - Dst: libtorrent::print_address
      Src: /src/libtorrent/src/smart_ban.cpp:253,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - b
    - a
    - buffer
    - block_size
    - ' error'
    argTypes:
    - piece_block
    - address
    - disk_buffer_holder
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 256
    functionName: libtorrent::on_read_failed_block
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::debug_log
    - peer_info::client::c_str
    - ban_peer
    - libtorrent::insert
    - torrent_peer*::connection::get_peer_info
    - hasher::final
    - libtorrent::print_address
    - libtorrent::find_peers
    - torrent_peer*::connection::disconnect
    - libtorrent::end
    - lower_bound
    - torrent_peer*::ip
    - disk_buffer_holder::data
    - libtorrent::aux::to_hex
    - TORRENT_ASSERT
    - libtorrent::print_endpoint
    - libtorrent::session
    - std::pair<const piece_block, block_entry>
    - hasher::update
    - should_log
    linkageType: ''
    returnType: void
    signature: "void on_read_failed_block(piece_block const b, address const a\n\t\t\t,
      disk_buffer_holder buffer, int const block_size\n\t\t\t, storage_error const&
      error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/smart_ban.cpp:262,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/src/smart_ban.cpp:262,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/smart_ban.cpp:268,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/smart_ban.cpp:268,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/smart_ban.cpp:269,1
    - Dst: libtorrent::find_peers
      Src: /src/libtorrent/src/smart_ban.cpp:274,1
    - Dst: should_log
      Src: /src/libtorrent/src/smart_ban.cpp:285,1
    - Dst: torrent_peer*::connection::get_peer_info
      Src: /src/libtorrent/src/smart_ban.cpp:291,1
    - Dst: peer_info::client::c_str
      Src: /src/libtorrent/src/smart_ban.cpp:292,1
    - Dst: libtorrent::debug_log
      Src: /src/libtorrent/src/smart_ban.cpp:294,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/smart_ban.cpp:296,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:297,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/smart_ban.cpp:298,1
    - Dst: libtorrent::print_address
      Src: /src/libtorrent/src/smart_ban.cpp:299,1
    - Dst: torrent_peer*::ip
      Src: /src/libtorrent/src/smart_ban.cpp:299,1
    - Dst: ban_peer
      Src: /src/libtorrent/src/smart_ban.cpp:302,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/smart_ban.cpp:303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - b
    - ' a'
    - buffer
    - block_size
    - ' error'
    argTypes:
    - std::pair<piece_block, block_entry>
    - address
    - disk_buffer_holder
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 305
    functionName: libtorrent::on_read_ok_block
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - torrent_peer*::ip
    - hasher::final
    - libtorrent::debug_log
    - peer_info::client::c_str
    - libtorrent::print_address
    - libtorrent::aux::to_hex
    - libtorrent::find_peers
    - ban_peer
    - libtorrent::session
    - TORRENT_ASSERT
    - torrent_peer*::connection::get_peer_info
    - torrent_peer*::connection::disconnect
    - hasher::update
    - should_log
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void on_read_ok_block(std::pair<piece_block, block_entry> const b\n\t\t\t,
      address const& a, disk_buffer_holder buffer, int const block_size\n\t\t\t, storage_error
      const& error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: '& operator=(smart_ban_plugin const&)'
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: smart_ban_plugin
    signature: smart_ban_plugin & operator=(smart_ban_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::native_handle
      Src: /src/libtorrent/src/smart_ban.cpp:324,1
    - Dst: std::make_shared<smart_ban_plugin>
      Src: /src/libtorrent/src/smart_ban.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: libtorrent::create_smart_ban_plugin
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<smart_ban_plugin>
    - libtorrent::native_handle
    linkageType: ''
    returnType: std::shared_ptr<torrent_plugin>
    signature: std::shared_ptr<torrent_plugin> create_smart_ban_plugin(torrent_handle
      const& th, client_data_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::native_handle
      Src: /src/libtorrent/src/smart_ban.cpp:324,1
    - Dst: std::make_shared<smart_ban_plugin>
      Src: /src/libtorrent/src/smart_ban.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: libtorrent::create_smart_ban_plugin
    functionSourceFile: /src/libtorrent/src/smart_ban.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<smart_ban_plugin>
    - libtorrent::native_handle
    linkageType: ''
    returnType: std::shared_ptr<torrent_plugin>
    signature: std::shared_ptr<torrent_plugin> create_smart_ban_plugin(torrent_handle
      const& th, client_data_t)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::hex_to_int
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_to_int(char in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::is_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::hex_to_int
    linkageType: ''
    returnType: bool
    signature: bool is_hex(span<char const> in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/hex.cpp:61,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/hex.cpp:61,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:63,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::from_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 21
    functionsReached:
    - span<char const>::begin
    - libtorrent::aux::hex_to_int
    - span<char const>::end
    linkageType: ''
    returnType: bool
    signature: bool from_hex(span<char const> in, char* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/hex.cpp:82,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/hex.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - in
    - len
    - out
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 88
    functionsReached:
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: void to_hex(char const* in, int const len, char* out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/hex.cpp:90,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/hex.cpp:93,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hex.cpp:93,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 89
    functionsReached:
    - libtorrent::aux::to_hex
    - span<char const>::data
    - std::size_t
    - std::string::resize
    - span<char const>::size
    - span<char const>::empty
    linkageType: ''
    returnType: std::string
    signature: std::string to_hex(span<char const> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 90
    functionsReached:
    - span<char const>::data
    - span<char const>::size
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void to_hex(span<char const> in, char* out)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::hex_to_int
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_to_int(char in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::is_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::hex_to_int
    linkageType: ''
    returnType: bool
    signature: bool is_hex(span<char const> in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/hex.cpp:61,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/hex.cpp:61,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:63,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::from_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 21
    functionsReached:
    - span<char const>::begin
    - libtorrent::aux::hex_to_int
    - span<char const>::end
    linkageType: ''
    returnType: bool
    signature: bool from_hex(span<char const> in, char* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/hex.cpp:82,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/hex.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - in
    - len
    - out
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 90
    functionsReached:
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: void to_hex(char const* in, int const len, char* out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/hex.cpp:90,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/hex.cpp:93,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hex.cpp:93,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 91
    functionsReached:
    - libtorrent::aux::to_hex
    - span<char const>::data
    - std::size_t
    - std::string::resize
    - span<char const>::size
    - span<char const>::empty
    linkageType: ''
    returnType: std::string
    signature: std::string to_hex(span<char const> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 92
    functionsReached:
    - span<char const>::data
    - span<char const>::size
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void to_hex(span<char const> in, char* out)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::hex_to_int
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_to_int(char in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::is_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::hex_to_int
    linkageType: ''
    returnType: bool
    signature: bool is_hex(span<char const> in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/hex.cpp:61,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/hex.cpp:61,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:63,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::from_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 21
    functionsReached:
    - span<char const>::begin
    - libtorrent::aux::hex_to_int
    - span<char const>::end
    linkageType: ''
    returnType: bool
    signature: bool from_hex(span<char const> in, char* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/hex.cpp:82,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/hex.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - in
    - len
    - out
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 92
    functionsReached:
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: void to_hex(char const* in, int const len, char* out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/hex.cpp:90,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/hex.cpp:93,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hex.cpp:93,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 93
    functionsReached:
    - libtorrent::aux::to_hex
    - span<char const>::data
    - std::size_t
    - std::string::resize
    - span<char const>::size
    - span<char const>::empty
    linkageType: ''
    returnType: std::string
    signature: std::string to_hex(span<char const> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 94
    functionsReached:
    - span<char const>::data
    - span<char const>::size
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void to_hex(span<char const> in, char* out)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::hex_to_int
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_to_int(char in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::is_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::hex_to_int
    linkageType: ''
    returnType: bool
    signature: bool is_hex(span<char const> in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/hex.cpp:61,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/hex.cpp:61,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:63,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/hex.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::from_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 21
    functionsReached:
    - span<char const>::begin
    - libtorrent::aux::hex_to_int
    - span<char const>::end
    linkageType: ''
    returnType: bool
    signature: bool from_hex(span<char const> in, char* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/hex.cpp:82,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/hex.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - in
    - len
    - out
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 94
    functionsReached:
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: void to_hex(char const* in, int const len, char* out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/hex.cpp:90,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:92,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/hex.cpp:93,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hex.cpp:93,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 95
    functionsReached:
    - libtorrent::aux::to_hex
    - span<char const>::data
    - std::size_t
    - std::string::resize
    - span<char const>::size
    - span<char const>::empty
    linkageType: ''
    returnType: std::string
    signature: std::string to_hex(span<char const> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:100,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/hex.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - span<char const>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: libtorrent::aux::to_hex
    functionSourceFile: /src/libtorrent/src/hex.cpp
    functionUses: 96
    functionsReached:
    - span<char const>::data
    - span<char const>::size
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: void
    signature: void to_hex(span<char const> in, char* out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/generate_peer_id.cpp:45,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: std::copy
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: peer_id::begin
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: url_random
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: libtorrent::aux::span
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::generate_peer_id
    functionSourceFile: /src/libtorrent/src/generate_peer_id.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::get_str
    - std::string::length
    - libtorrent::aux::span
    - peer_id::size
    - std::string::begin
    - std::string::end
    - std::copy
    - peer_id::begin
    - url_random
    - std::string::resize
    - std::size_t
    - std::ptrdiff_t
    - std::string::size
    linkageType: ''
    returnType: peer_id
    signature: peer_id generate_peer_id(session_settings const& sett)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/generate_peer_id.cpp:45,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: std::copy
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: peer_id::begin
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: url_random
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: libtorrent::aux::span
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::generate_peer_id
    functionSourceFile: /src/libtorrent/src/generate_peer_id.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::get_str
    - std::string::length
    - libtorrent::aux::span
    - peer_id::size
    - std::string::begin
    - std::string::end
    - std::copy
    - peer_id::begin
    - url_random
    - std::string::resize
    - std::size_t
    - std::ptrdiff_t
    - std::string::size
    linkageType: ''
    returnType: peer_id
    signature: peer_id generate_peer_id(session_settings const& sett)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/generate_peer_id.cpp:45,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: std::copy
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: peer_id::begin
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: url_random
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: libtorrent::aux::span
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::generate_peer_id
    functionSourceFile: /src/libtorrent/src/generate_peer_id.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::get_str
    - std::string::length
    - libtorrent::aux::span
    - peer_id::size
    - std::string::begin
    - std::string::end
    - std::copy
    - peer_id::begin
    - url_random
    - std::string::resize
    - std::size_t
    - std::ptrdiff_t
    - std::string::size
    linkageType: ''
    returnType: peer_id
    signature: peer_id generate_peer_id(session_settings const& sett)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/src/generate_peer_id.cpp:45,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:46,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:47,1
    - Dst: std::copy
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: peer_id::begin
      Src: /src/libtorrent/src/generate_peer_id.cpp:50,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: peer_id::size
      Src: /src/libtorrent/src/generate_peer_id.cpp:51,1
    - Dst: url_random
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: libtorrent::aux::span
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/generate_peer_id.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::generate_peer_id
    functionSourceFile: /src/libtorrent/src/generate_peer_id.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::get_str
    - std::string::length
    - libtorrent::aux::span
    - peer_id::size
    - std::string::begin
    - std::string::end
    - std::copy
    - peer_id::begin
    - url_random
    - std::string::resize
    - std::size_t
    - std::ptrdiff_t
    - std::string::size
    linkageType: ''
    returnType: peer_id
    signature: peer_id generate_peer_id(session_settings const& sett)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::array::back
      Src: /src/libtorrent/src/string_util.cpp:55,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/string_util.cpp:61,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/string_util.cpp:61,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/string_util.cpp:62,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/string_util.cpp:68,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/string_util.cpp:68,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/string_util.cpp:68,1
    - Dst: std::array::back
      Src: /src/libtorrent/src/string_util.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 70
    functionName: libtorrent::to_string
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 14
    functionsReached:
    - std::array::data
    - std::memmove
    - std::array::back
    - libtorrent::aux::max
    - std::uint64_t
    - std::size_t
    linkageType: ''
    returnType: std::array<char, 4 + std::numeric_limits<std::int64_t>::digits10>
    signature: std::array<char, 4 + std::numeric_limits<std::int64_t>::digits10> to_string(std::int64_t
      const n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: libtorrent::is_alpha
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_alpha(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: libtorrent::is_print
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_print(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::is_space
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_space(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: libtorrent::to_lower
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char to_lower(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:95,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/string_util.cpp:99,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/string_util.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: libtorrent::string_begins_no_case
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::to_lower
    linkageType: ''
    returnType: bool
    signature: bool string_begins_no_case(char const* s1, char const* s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:108,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:108,1
    - Dst: equal
      Src: /src/libtorrent/src/string_util.cpp:109,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/string_util.cpp:109,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/string_util.cpp:109,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/string_util.cpp:109,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/string_util.cpp:111,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/string_util.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: libtorrent::string_equal_no_case
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 2
    functionsReached:
    - string_view::end
    - equal
    - string_view::size
    - libtorrent::to_lower
    - string_view::begin
    linkageType: ''
    returnType: bool
    signature: bool string_equal_no_case(string_view s1, string_view s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::generate
      Src: /src/libtorrent/src/string_util.cpp:123,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/string_util.cpp:123,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/string_util.cpp:123,1
    - Dst: libtorrent::random
      Src: /src/libtorrent/src/string_util.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dest
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: libtorrent::url_random
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::random
    - span<char>::end
    - span<char>::begin
    - std::generate
    linkageType: ''
    returnType: void
    signature: void url_random(span<char> dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: equal
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: string_view::rbegin
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: string_view::rend
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: string_view::rbegin
      Src: /src/libtorrent/src/string_util.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: libtorrent::string_ends_with
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - string_view::rbegin
    - equal
    - string_view::size
    - string_view::rend
    linkageType: ''
    returnType: bool
    signature: bool string_ends_with(string_view s1, string_view s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:134,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/string_util.cpp:134,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:135,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/string_util.cpp:135,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:136,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/string_util.cpp:136,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/string_util.cpp:136,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:137,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/string_util.cpp:137,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/string_util.cpp:137,1
    - Dst: libtorrent::search
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/string_util.cpp:142,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/string_util.cpp:143,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/string_util.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - target
    argTypes:
    - span<char const>
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: libtorrent::search
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::search
    - libtorrent::aux::max
    - span<char const>::end
    - TORRENT_ASSERT
    - span<char const>::begin
    - span<char const>::size
    - span<char const>::empty
    linkageType: ''
    returnType: int
    signature: int search(span<char const> src, span<char const> target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:148,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:149,1
    - Dst: char::char
      Src: /src/libtorrent/src/string_util.cpp:149,1
    - Dst: std::copy
      Src: /src/libtorrent/src/string_util.cpp:150,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/string_util.cpp:150,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/string_util.cpp:150,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:150,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: libtorrent::allocate_string_copy
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - string_view::data
    - string_view::empty
    - std::copy
    - string_view::size
    - char::char
    linkageType: ''
    returnType: char
    signature: char * allocate_string_copy(string_view str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/libtorrent/src/string_util.cpp:162,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/string_util.cpp:165,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/string_util.cpp:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<listen_interface_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 184
    functionName: libtorrent::print_listen_interfaces
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - make_address_v6
    - std::string::empty
    - libtorrent::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string print_listen_interfaces(std::vector<listen_interface_t>
      const& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:189,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:189,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/string_util.cpp:189,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/string_util.cpp:190,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:192,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:192,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/string_util.cpp:192,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/string_util.cpp:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: libtorrent::strip_string
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - string_view::back
    - string_view::remove_suffix
    - string_view::empty
    - libtorrent::is_space
    - string_view::front
    - string_view::remove_prefix
    linkageType: ''
    returnType: string_view
    signature: string_view strip_string(string_view in)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:206,1
    - Dst: std::tie
      Src: /src/libtorrent/src/string_util.cpp:209,1
    - Dst: libtorrent::split_string_quotes
      Src: /src/libtorrent/src/string_util.cpp:209,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:211,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:212,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/string_util.cpp:212,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/string_util.cpp:212,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:213,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:213,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:214,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/string_util.cpp:221,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/string_util.cpp:223,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:225,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:228,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:232,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:232,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:234,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:234,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/string_util.cpp:239,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:240,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:240,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:243,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:246,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:246,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:251,1
    - Dst: libtorrent::is_digit
      Src: /src/libtorrent/src/string_util.cpp:251,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/string_util.cpp:254,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/string_util.cpp:254,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:256,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/string_util.cpp:260,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/string_util.cpp:260,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:263,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/string_util.cpp:267,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/string_util.cpp:267,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:268,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:280,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:281,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 51
    argCount: 2
    argNames:
    - ' in'
    - ' err'
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 285
    functionName: libtorrent::parse_listen_interfaces
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - string_view::back
    - string_view::substr
    - std::tie
    - std::vector::emplace_back
    - libtorrent::find_first_of
    - libtorrent::emplace_back
    - std::string::empty
    - std::string::c_str
    - libtorrent::split_string_quotes
    - TORRENT_ASSERT
    - string_view::empty
    - libtorrent::is_digit
    - string_view::size
    - string_view::front
    - std::atoi
    - libtorrent::strip_string
    - string_view::remove_prefix
    - std::string::size
    linkageType: ''
    returnType: std::vector<listen_interface_t>
    signature: "std::vector<listen_interface_t> parse_listen_interfaces(std::string
      const& in\n\t\t, std::vector<std::string>& err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/string_util.cpp:293,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:298,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:301,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:302,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/string_util.cpp:305,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:306,1
    - Dst: find_last_of
      Src: /src/libtorrent/src/string_util.cpp:308,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/string_util.cpp:312,1
    - Dst: substr
      Src: /src/libtorrent/src/string_util.cpp:312,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:317,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:325,1
    - Dst: substr
      Src: /src/libtorrent/src/string_util.cpp:325,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - ' in'
    - ' out'
    argTypes:
    - std::string
    - std::vector<std::pair<std::string, int>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 330
    functionName: libtorrent::parse_comma_separated_string_port
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::size
    - libtorrent::find_first_of
    - substr
    - libtorrent::emplace_back
    - find_last_of
    - std::atoi
    - libtorrent::is_space
    linkageType: ''
    returnType: void
    signature: "void parse_comma_separated_string_port(std::string const& in\n\t\t,
      std::vector<std::pair<std::string, int>>& out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/string_util.cpp:334,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:339,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:342,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:343,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/string_util.cpp:346,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:347,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:352,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/string_util.cpp:355,1
    - Dst: substr
      Src: /src/libtorrent/src/string_util.cpp:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' in'
    - ' out'
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 358
    functionName: libtorrent::parse_comma_separated_string
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::size
    - libtorrent::find_first_of
    - substr
    - libtorrent::push_back
    - libtorrent::is_space
    linkageType: ''
    returnType: void
    signature: void parse_comma_separated_string(std::string const& in, std::vector<std::string>&
      out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find
      Src: /src/libtorrent/src/string_util.cpp:362,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:364,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - last
    - sep
    argTypes:
    - string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: libtorrent::split_string
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 2
    functionsReached:
    - string_view::substr
    - string_view::find
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> split_string(string_view last,
      char const sep)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:369,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:374,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:381,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:390,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - last
    - sep
    argTypes:
    - string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 391
    functionName: libtorrent::split_string_quotes
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 1
    functionsReached:
    - string_view::substr
    - string_view::empty
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> split_string_quotes(string_view
      last, char const sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/string_util.cpp:395,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:395,1
    - Dst: libtorrent::front
      Src: /src/libtorrent/src/string_util.cpp:395,1
    - Dst: erase
      Src: /src/libtorrent/src/string_util.cpp:396,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/string_util.cpp:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: libtorrent::ltrim
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::front
    - erase
    - libtorrent::empty
    - libtorrent::begin
    - libtorrent::is_space
    linkageType: ''
    returnType: void
    signature: void ltrim(std::string& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/string_util.cpp:406,1
    - Dst: libtorrent::parse_url_components
      Src: /src/libtorrent/src/string_util.cpp:407,1
    - Dst: libtorrent::string_ends_with
      Src: /src/libtorrent/src/string_util.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: libtorrent::is_i2p_url
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::parse_url_components
    - libtorrent::string_ends_with
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool is_i2p_url(std::string const& url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::array::back
      Src: /src/libtorrent/src/string_util.cpp:55,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/string_util.cpp:61,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/string_util.cpp:61,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/string_util.cpp:62,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/string_util.cpp:68,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/string_util.cpp:68,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/string_util.cpp:68,1
    - Dst: std::array::back
      Src: /src/libtorrent/src/string_util.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 70
    functionName: libtorrent::to_string
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 15
    functionsReached:
    - std::array::data
    - std::memmove
    - std::array::back
    - libtorrent::aux::max
    - std::uint64_t
    - std::size_t
    linkageType: ''
    returnType: std::array<char, 4 + std::numeric_limits<std::int64_t>::digits10>
    signature: std::array<char, 4 + std::numeric_limits<std::int64_t>::digits10> to_string(std::int64_t
      const n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: libtorrent::is_alpha
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_alpha(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: libtorrent::is_print
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_print(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::is_space
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_space(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: libtorrent::to_lower
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char to_lower(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:95,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/string_util.cpp:99,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/string_util.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: libtorrent::string_begins_no_case
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::to_lower
    linkageType: ''
    returnType: bool
    signature: bool string_begins_no_case(char const* s1, char const* s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:108,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:108,1
    - Dst: equal
      Src: /src/libtorrent/src/string_util.cpp:109,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/string_util.cpp:109,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/string_util.cpp:109,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/string_util.cpp:109,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/string_util.cpp:111,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/string_util.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: libtorrent::string_equal_no_case
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 2
    functionsReached:
    - string_view::end
    - equal
    - string_view::size
    - libtorrent::to_lower
    - string_view::begin
    linkageType: ''
    returnType: bool
    signature: bool string_equal_no_case(string_view s1, string_view s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::generate
      Src: /src/libtorrent/src/string_util.cpp:123,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/string_util.cpp:123,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/string_util.cpp:123,1
    - Dst: libtorrent::random
      Src: /src/libtorrent/src/string_util.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dest
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: libtorrent::url_random
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::random
    - span<char>::end
    - span<char>::begin
    - std::generate
    linkageType: ''
    returnType: void
    signature: void url_random(span<char> dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: equal
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: string_view::rbegin
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: string_view::rend
      Src: /src/libtorrent/src/string_util.cpp:129,1
    - Dst: string_view::rbegin
      Src: /src/libtorrent/src/string_util.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: libtorrent::string_ends_with
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 1
    functionsReached:
    - string_view::rbegin
    - equal
    - string_view::size
    - string_view::rend
    linkageType: ''
    returnType: bool
    signature: bool string_ends_with(string_view s1, string_view s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:134,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/string_util.cpp:134,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:135,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/string_util.cpp:135,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:136,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/string_util.cpp:136,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/string_util.cpp:136,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:137,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/string_util.cpp:137,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/string_util.cpp:137,1
    - Dst: libtorrent::search
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/string_util.cpp:139,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/string_util.cpp:142,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/string_util.cpp:143,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/string_util.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - target
    argTypes:
    - span<char const>
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: libtorrent::search
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - libtorrent::search
    - libtorrent::aux::max
    - span<char const>::end
    - TORRENT_ASSERT
    - span<char const>::begin
    - span<char const>::size
    - span<char const>::empty
    linkageType: ''
    returnType: int
    signature: int search(span<char const> src, span<char const> target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:148,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:149,1
    - Dst: char::char
      Src: /src/libtorrent/src/string_util.cpp:149,1
    - Dst: std::copy
      Src: /src/libtorrent/src/string_util.cpp:150,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/string_util.cpp:150,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/string_util.cpp:150,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:150,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: libtorrent::allocate_string_copy
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - string_view::data
    - string_view::empty
    - std::copy
    - string_view::size
    - char::char
    linkageType: ''
    returnType: char
    signature: char * allocate_string_copy(string_view str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/libtorrent/src/string_util.cpp:162,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/string_util.cpp:165,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/string_util.cpp:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<listen_interface_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 184
    functionName: libtorrent::print_listen_interfaces
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - make_address_v6
    - std::string::empty
    - libtorrent::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string print_listen_interfaces(std::vector<listen_interface_t>
      const& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:189,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:189,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/string_util.cpp:189,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/string_util.cpp:190,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:192,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:192,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/string_util.cpp:192,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/string_util.cpp:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: libtorrent::strip_string
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 1
    functionsReached:
    - string_view::back
    - string_view::remove_suffix
    - string_view::empty
    - libtorrent::is_space
    - string_view::front
    - string_view::remove_prefix
    linkageType: ''
    returnType: string_view
    signature: string_view strip_string(string_view in)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:206,1
    - Dst: std::tie
      Src: /src/libtorrent/src/string_util.cpp:209,1
    - Dst: libtorrent::split_string_quotes
      Src: /src/libtorrent/src/string_util.cpp:209,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:211,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:212,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/string_util.cpp:212,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/string_util.cpp:212,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:213,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:213,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:214,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/string_util.cpp:221,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/string_util.cpp:223,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:225,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:228,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:232,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:232,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:234,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:234,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/string_util.cpp:239,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:240,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:240,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:243,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:246,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:246,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/string_util.cpp:251,1
    - Dst: libtorrent::is_digit
      Src: /src/libtorrent/src/string_util.cpp:251,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/string_util.cpp:254,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/string_util.cpp:254,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:256,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/string_util.cpp:260,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/string_util.cpp:260,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:263,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/string_util.cpp:267,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/string_util.cpp:267,1
    - Dst: libtorrent::strip_string
      Src: /src/libtorrent/src/string_util.cpp:268,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/string_util.cpp:280,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:281,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 51
    argCount: 2
    argNames:
    - ' in'
    - ' err'
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 285
    functionName: libtorrent::parse_listen_interfaces
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - string_view::back
    - string_view::substr
    - std::tie
    - std::vector::emplace_back
    - libtorrent::find_first_of
    - libtorrent::emplace_back
    - std::string::empty
    - std::string::c_str
    - libtorrent::split_string_quotes
    - TORRENT_ASSERT
    - string_view::empty
    - libtorrent::is_digit
    - string_view::size
    - string_view::front
    - std::atoi
    - libtorrent::strip_string
    - string_view::remove_prefix
    - std::string::size
    linkageType: ''
    returnType: std::vector<listen_interface_t>
    signature: "std::vector<listen_interface_t> parse_listen_interfaces(std::string
      const& in\n\t\t, std::vector<std::string>& err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/string_util.cpp:293,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:298,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:301,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:302,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/string_util.cpp:305,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:306,1
    - Dst: find_last_of
      Src: /src/libtorrent/src/string_util.cpp:308,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/string_util.cpp:312,1
    - Dst: substr
      Src: /src/libtorrent/src/string_util.cpp:312,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:317,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/string_util.cpp:325,1
    - Dst: substr
      Src: /src/libtorrent/src/string_util.cpp:325,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - ' in'
    - ' out'
    argTypes:
    - std::string
    - std::vector<std::pair<std::string, int>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 330
    functionName: libtorrent::parse_comma_separated_string_port
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::size
    - libtorrent::find_first_of
    - substr
    - libtorrent::emplace_back
    - find_last_of
    - std::atoi
    - libtorrent::is_space
    linkageType: ''
    returnType: void
    signature: "void parse_comma_separated_string_port(std::string const& in\n\t\t,
      std::vector<std::pair<std::string, int>>& out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/string_util.cpp:334,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:339,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:342,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:343,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/string_util.cpp:346,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/string_util.cpp:347,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:352,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/string_util.cpp:355,1
    - Dst: substr
      Src: /src/libtorrent/src/string_util.cpp:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' in'
    - ' out'
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 358
    functionName: libtorrent::parse_comma_separated_string
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::size
    - libtorrent::find_first_of
    - substr
    - libtorrent::push_back
    - libtorrent::is_space
    linkageType: ''
    returnType: void
    signature: void parse_comma_separated_string(std::string const& in, std::vector<std::string>&
      out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find
      Src: /src/libtorrent/src/string_util.cpp:362,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:364,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - last
    - sep
    argTypes:
    - string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: libtorrent::split_string
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 2
    functionsReached:
    - string_view::substr
    - string_view::find
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> split_string(string_view last,
      char const sep)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/string_util.cpp:369,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:374,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:381,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:390,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/string_util.cpp:390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - last
    - sep
    argTypes:
    - string_view
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 391
    functionName: libtorrent::split_string_quotes
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 2
    functionsReached:
    - string_view::substr
    - string_view::empty
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> split_string_quotes(string_view
      last, char const sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/string_util.cpp:395,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/string_util.cpp:395,1
    - Dst: libtorrent::front
      Src: /src/libtorrent/src/string_util.cpp:395,1
    - Dst: erase
      Src: /src/libtorrent/src/string_util.cpp:396,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/string_util.cpp:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: libtorrent::ltrim
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::front
    - erase
    - libtorrent::empty
    - libtorrent::begin
    - libtorrent::is_space
    linkageType: ''
    returnType: void
    signature: void ltrim(std::string& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/string_util.cpp:406,1
    - Dst: libtorrent::parse_url_components
      Src: /src/libtorrent/src/string_util.cpp:407,1
    - Dst: libtorrent::string_ends_with
      Src: /src/libtorrent/src/string_util.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: libtorrent::is_i2p_url
    functionSourceFile: /src/libtorrent/src/string_util.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::parse_url_components
    - libtorrent::string_ends_with
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool is_i2p_url(std::string const& url)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: string_view::data
      Src: /src/libtorrent/src/xml_parse.cpp:44,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/xml_parse.cpp:45,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/xml_parse.cpp:45,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:54,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:54,1
    - Dst: libtorrent::string_begins_no_case
      Src: /src/libtorrent/src/xml_parse.cpp:61,1
    - Dst: libtorrent::string_begins_no_case
      Src: /src/libtorrent/src/xml_parse.cpp:66,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:71,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:75,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:75,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/xml_parse.cpp:80,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/xml_parse.cpp:94,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:100,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:100,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:104,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:104,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/xml_parse.cpp:104,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:110,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:110,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/xml_parse.cpp:110,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/xml_parse.cpp:113,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/xml_parse.cpp:113,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:116,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:116,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:121,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/xml_parse.cpp:130,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/xml_parse.cpp:134,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/xml_parse.cpp:135,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:144,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:144,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/xml_parse.cpp:149,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:153,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:163,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:166,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:166,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 83
    argCount: 2
    argNames:
    - input
    - callback
    argTypes:
    - string_view
    - std::function<void(int, string_view, string_view)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 169
    functionName: libtorrent::xml_parse
    functionSourceFile: /src/libtorrent/src/xml_parse.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - string_view::data
    - std::memcmp
    - callback
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - string_view::size
    - std::size_t
    - libtorrent::is_space
    - libtorrent::string_begins_no_case
    linkageType: ''
    returnType: void
    signature: "void xml_parse(string_view input\n\t\t, std::function<void(int, string_view,
      string_view)> callback)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: string_view::data
      Src: /src/libtorrent/src/xml_parse.cpp:44,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/xml_parse.cpp:45,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/xml_parse.cpp:45,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:54,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:54,1
    - Dst: libtorrent::string_begins_no_case
      Src: /src/libtorrent/src/xml_parse.cpp:61,1
    - Dst: libtorrent::string_begins_no_case
      Src: /src/libtorrent/src/xml_parse.cpp:66,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:71,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:75,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:75,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/xml_parse.cpp:80,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/xml_parse.cpp:94,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:100,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:100,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:104,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:104,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/xml_parse.cpp:104,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:110,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:110,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/xml_parse.cpp:110,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/xml_parse.cpp:113,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/xml_parse.cpp:113,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:116,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:116,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:121,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/xml_parse.cpp:130,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/xml_parse.cpp:134,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/xml_parse.cpp:135,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:144,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:144,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/xml_parse.cpp:149,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:153,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:163,1
    - Dst: callback
      Src: /src/libtorrent/src/xml_parse.cpp:166,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/xml_parse.cpp:166,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 83
    argCount: 2
    argNames:
    - input
    - callback
    argTypes:
    - string_view
    - std::function<void(int, string_view, string_view)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 169
    functionName: libtorrent::xml_parse
    functionSourceFile: /src/libtorrent/src/xml_parse.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - string_view::data
    - std::memcmp
    - callback
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - string_view::size
    - std::size_t
    - libtorrent::is_space
    - libtorrent::string_begins_no_case
    linkageType: ''
    returnType: void
    signature: "void xml_parse(string_view input\n\t\t, std::function<void(int, string_view,
      string_view)> callback)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::strchr
      Src: /src/libtorrent/src/torrent_info.cpp:109,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/torrent_info.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: libtorrent::valid_path_character
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::strchr
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: bool valid_path_character(std::int32_t const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/torrent_info.cpp:122,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/torrent_info.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: libtorrent::filter_path_character
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find
    - std::array::end
    - std::array::begin
    - static_cast<char>
    - std::strchr
    linkageType: ''
    returnType: bool
    signature: bool filter_path_character(std::int32_t const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::strchr
      Src: /src/libtorrent/src/torrent_info.cpp:109,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/torrent_info.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: libtorrent::valid_path_character
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::strchr
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: bool valid_path_character(std::int32_t const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/torrent_info.cpp:122,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/torrent_info.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: libtorrent::filter_path_character
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find
    - std::array::end
    - std::array::begin
    - static_cast<char>
    - std::strchr
    linkageType: ''
    returnType: bool
    signature: bool filter_path_character(std::int32_t const c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:132,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:135,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:135,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:139,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent_info.cpp:145,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:145,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: append_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 168
    functionName: libtorrent::aux::verify_encoding
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - string_view::substr
    - std::tie
    - append_utf8_codepoint
    - parse_utf8_codepoint
    - libtorrent::aux::size
    - std::min
    - string_view::empty
    - string_view::size
    - std::size_t
    - libtorrent::aux::empty
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: bool verify_encoding(std::string& target)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:177,1
    - Dst: libtorrent::aux::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:186,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:192,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/torrent_info.cpp:215,1
    - Dst: strrchr
      Src: /src/libtorrent/src/torrent_info.cpp:216,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent_info.cpp:216,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:218,1
    - Dst: std::string::data
      Src: /src/libtorrent/src/torrent_info.cpp:218,1
    - Dst: std::transform
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: libtorrent::aux::find
      Src: /src/libtorrent/src/torrent_info.cpp:221,1
    - Dst: string_view
      Src: /src/libtorrent/src/torrent_info.cpp:225,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:241,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:241,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: filter_path_character
      Src: /src/libtorrent/src/torrent_info.cpp:246,1
    - Dst: valid_path_character
      Src: /src/libtorrent/src/torrent_info.cpp:251,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:265,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:266,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:287,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:288,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:288,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:297,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:298,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:320,1
    - Dst: libtorrent::aux::resize
      Src: /src/libtorrent/src/torrent_info.cpp:323,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:325,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:335,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:335,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:340,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 77
    argCount: 3
    argNames:
    - ' path'
    - element
    - force_element
    argTypes:
    - std::string
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::sanitize_append_path_element
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::reserve
    - libtorrent::aux::find
    - std::string::data
    - filter_path_character
    - push_back
    - libtorrent::aux::erase
    - aux::numeric_cast<std::size_t>
    - std::string::end
    - string_view::empty
    - std::size_t
    - string_view::to_string
    - libtorrent::aux::resize
    - valid_path_character
    - std::string
    - parse_utf8_codepoint
    - libtorrent::aux::size
    - std::string::begin
    - TORRENT_ASSERT
    - libtorrent::aux::max
    - libtorrent::aux::empty
    - string_view::substr
    - std::transform
    - std::tie
    - strrchr
    - std::string::c_str
    - string_view::size
    - string_view
    - libtorrent::aux::end
    linkageType: ''
    returnType: void
    signature: void sanitize_append_path_element(std::string& path, string_view element,
      bool const force_element)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:132,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:135,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:135,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:139,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent_info.cpp:145,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:145,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: append_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 168
    functionName: libtorrent::aux::verify_encoding
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - string_view::substr
    - std::tie
    - append_utf8_codepoint
    - parse_utf8_codepoint
    - libtorrent::aux::size
    - std::min
    - string_view::empty
    - string_view::size
    - std::size_t
    - libtorrent::aux::empty
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: bool verify_encoding(std::string& target)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:177,1
    - Dst: libtorrent::aux::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:186,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:192,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/torrent_info.cpp:215,1
    - Dst: strrchr
      Src: /src/libtorrent/src/torrent_info.cpp:216,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent_info.cpp:216,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:218,1
    - Dst: std::string::data
      Src: /src/libtorrent/src/torrent_info.cpp:218,1
    - Dst: std::transform
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: libtorrent::aux::find
      Src: /src/libtorrent/src/torrent_info.cpp:221,1
    - Dst: string_view
      Src: /src/libtorrent/src/torrent_info.cpp:225,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:241,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:241,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: filter_path_character
      Src: /src/libtorrent/src/torrent_info.cpp:246,1
    - Dst: valid_path_character
      Src: /src/libtorrent/src/torrent_info.cpp:251,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:265,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:266,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:287,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:288,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:288,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:297,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:298,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:320,1
    - Dst: libtorrent::aux::resize
      Src: /src/libtorrent/src/torrent_info.cpp:323,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:325,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:335,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:335,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:340,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 77
    argCount: 3
    argNames:
    - ' path'
    - element
    - force_element
    argTypes:
    - std::string
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::sanitize_append_path_element
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::reserve
    - libtorrent::aux::find
    - std::string::data
    - filter_path_character
    - push_back
    - libtorrent::aux::erase
    - aux::numeric_cast<std::size_t>
    - std::string::end
    - string_view::empty
    - std::size_t
    - string_view::to_string
    - libtorrent::aux::resize
    - valid_path_character
    - std::string
    - parse_utf8_codepoint
    - libtorrent::aux::size
    - std::string::begin
    - TORRENT_ASSERT
    - libtorrent::aux::max
    - libtorrent::aux::empty
    - string_view::substr
    - std::transform
    - std::tie
    - strrchr
    - std::string::c_str
    - string_view::size
    - string_view
    - libtorrent::aux::end
    linkageType: ''
    returnType: void
    signature: void sanitize_append_path_element(std::string& path, string_view element,
      bool const force_element)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:349,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' dict'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: libtorrent::get_file_attributes
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node::string_value
    - dict_find_string
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t get_file_attributes(bdecode_node const& dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:372,1
    - Dst: list_at
      Src: /src/libtorrent/src/torrent_info.cpp:375,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:376,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: libtorrent::path_length
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - list_size
    - list_at
    - bdecode_node::type
    - bdecode_node::string_length
    linkageType: ''
    returnType: int
    signature: int path_length(bdecode_node const& p, error_code& ec)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:391,1
    - Dst: libtorrent::get_file_attributes
      Src: /src/libtorrent/src/torrent_info.cpp:393,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:404,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:417,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:417,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:424,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:426,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:426,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:428,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:429,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:431,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:432,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:437,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:439,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:440,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:441,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:441,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:446,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/torrent_info.cpp:447,1
    - Dst: add_file_borrow
      Src: /src/libtorrent/src/torrent_info.cpp:454,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 7
    argNames:
    - ' dict'
    - ' files'
    - ' path'
    - name
    - info_offset
    - info_buffer
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - string_view
    - std::ptrdiff_t
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 457
    functionName: libtorrent::extract_single_file2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - sha256_hash
    - test_piece_size
    - libtorrent::get_file_attributes
    - static_cast<std::size_t>
    - bdecode_node::string_length
    - add_file_borrow
    - dict_find_int_value
    - bdecode_node::type
    - bdecode_node::list_size
    - libtorrent::aux::sanitize_append_path_element
    - std::time_t
    - bdecode_node::string_offset
    - bdecode_node::list_at
    - dict_find_string
    - libtorrent::path_length
    - std::string::empty
    - dict_find_list
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool extract_single_file2(bdecode_node const& dict, file_storage&
      files\n\t\t, std::string const& path, string_view const name\n\t\t, std::ptrdiff_t
      const info_offset, char const* info_buffer\n\t\t, error_code& ec)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:468,1
    - Dst: libtorrent::get_file_attributes
      Src: /src/libtorrent/src/torrent_info.cpp:474,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:479,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:485,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:492,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:492,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:501,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:502,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:503,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:509,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:510,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:510,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:512,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:512,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:513,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:515,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:515,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:516,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:524,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:525,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:527,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:531,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:533,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:535,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:538,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:539,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:539,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:540,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:540,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:541,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:543,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:543,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/torrent_info.cpp:551,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/torrent_info.cpp:552,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/torrent_info.cpp:562,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:565,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:567,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:568,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:573,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:575,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:575,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:577,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:578,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:580,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:581,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:593,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/torrent_info.cpp:593,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: add_file_borrow
      Src: /src/libtorrent/src/torrent_info.cpp:600,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 7
    argNames:
    - ' dict'
    - ' files'
    - ' root_dir'
    - info_offset
    - info_buffer
    - top_level
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - std::ptrdiff_t
    - char*
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 603
    functionName: libtorrent::extract_single_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - libtorrent::get_file_attributes
    - static_cast<std::size_t>
    - bdecode_node::string_length
    - add_file_borrow
    - dict_find_int_value
    - std::string::length
    - bdecode_node::list_size
    - libtorrent::combine_path
    - string_view::empty
    - std::size_t
    - std::string::substr
    - libtorrent::aux::sanitize_append_path_element
    - bdecode_node::string_value
    - std::time_t
    - bdecode_node::string_offset
    - std::snprintf
    - bdecode_node::list_at
    - libtorrent::aux::max
    - dict_find_string
    - libtorrent::path_length
    - std::string::size
    - std::string::empty
    - dict_find_list
    - string_view::size
    - std::string::find
    - string_view::front
    - string_view::remove_prefix
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool extract_single_file(bdecode_node const& dict, file_storage& files\n\t\t,
      std::string const& root_dir, std::ptrdiff_t const info_offset\n\t\t, char const*
      info_buffer, bool const top_level, error_code& ec)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:610,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:626,1
    - Dst: dict_at_node
      Src: /src/libtorrent/src/torrent_info.cpp:628,1
    - Dst: auto::second::type
      Src: /src/libtorrent/src/torrent_info.cpp:629,1
    - Dst: auto::first::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:629,1
    - Dst: auto::first::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:635,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:636,1
    - Dst: auto::first::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:636,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:637,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:637,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:638,1
    - Dst: auto::second::dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: auto::second::dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:641,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:643,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:644,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:648,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/torrent_info.cpp:648,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: libtorrent::extract_single_file2
      Src: /src/libtorrent/src/torrent_info.cpp:655,1
    - Dst: auto::second::dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:655,1
    - Dst: libtorrent::extract_files2
      Src: /src/libtorrent/src/torrent_info.cpp:663,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 8
    argNames:
    - ' tree'
    - ' target'
    - ' root_dir'
    - info_offset
    - info_buffer
    - has_files
    - depth
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - ptrdiff_t
    - char*
    - bool
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 671
    functionName: libtorrent::extract_files2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - auto::first::string_value
    - libtorrent::type
    - auto::first::string_length
    - libtorrent::empty
    - libtorrent::extract_files2
    - auto::second::dict_size
    - static_cast<size_t>
    - std::string::length
    - auto::second::dict_at
    - string_view::empty
    - libtorrent::extract_single_file2
    - auto::second::type
    - std::string::substr
    - libtorrent::aux::sanitize_append_path_element
    - std::string
    - dict_at_node
    - std::string::size
    - string_view::size
    - auto::first::string_offset
    - string_view::front
    - dict_size
    - string_view::remove_prefix
    linkageType: ''
    returnType: bool
    signature: "bool extract_files2(bdecode_node const& tree, file_storage& target\n\t\t,
      std::string const& root_dir, ptrdiff_t const info_offset\n\t\t, char const*
      info_buffer\n\t\t, bool const has_files, int const depth, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:679,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent_info.cpp:684,1
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:684,1
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:686,1
    - Dst: libtorrent::extract_single_file
      Src: /src/libtorrent/src/torrent_info.cpp:688,1
    - Dst: list_at
      Src: /src/libtorrent/src/torrent_info.cpp:688,1
    - Dst: sanitize_symlinks
      Src: /src/libtorrent/src/torrent_info.cpp:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - ' list'
    - ' target'
    - ' root_dir'
    - info_offset
    - info_buffer
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - std::ptrdiff_t
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 695
    functionName: libtorrent::extract_files
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - list_size
    - libtorrent::type
    - reserve
    - sanitize_symlinks
    - list_at
    - libtorrent::extract_single_file
    linkageType: ''
    returnType: bool
    signature: "bool extract_files(bdecode_node const& list, file_storage& target\n\t\t,
      std::string const& root_dir, std::ptrdiff_t info_offset\n\t\t, char const* info_buffer,
      error_code& ec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/torrent_info.cpp:700,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/torrent_info.cpp:702,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/torrent_info.cpp:702,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/torrent_info.cpp:704,1
    - Dst: c_str
      Src: /src/libtorrent/src/torrent_info.cpp:704,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:706,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:708,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:708,1
    - Dst: std::fseek
      Src: /src/libtorrent/src/torrent_info.cpp:712,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:712,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:714,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:714,1
    - Dst: std::ftell
      Src: /src/libtorrent/src/torrent_info.cpp:717,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:717,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:720,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:720,1
    - Dst: std::fseek
      Src: /src/libtorrent/src/torrent_info.cpp:728,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:728,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:730,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:730,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:733,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:733,1
    - Dst: std::fread
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:736,1
    - Dst: std::feof
      Src: /src/libtorrent/src/torrent_info.cpp:738,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:738,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:740,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:743,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:743,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ' filename'
    - ' v'
    - ' ec'
    argTypes:
    - std::string
    - std::vector<char>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 747
    functionName: libtorrent::load_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - std::fread
    - libtorrent::size
    - c_str
    - aux::file_pointer::file
    - libtorrent::assign
    - libtorrent::data
    - ::_wfopen
    - generic_category
    - resize
    - std::fopen
    - libtorrent::convert_to_native_path_string
    - std::size_t
    - std::feof
    - std::fseek
    - std::ftell
    linkageType: ''
    returnType: int
    signature: "int load_file(std::string const& filename, std::vector<char>& v\n\t\t,
      error_code& ec, int const max_buffer_size = 80000000)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:349,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' dict'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: libtorrent::get_file_attributes
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - bdecode_node::string_value
    - dict_find_string
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t get_file_attributes(bdecode_node const& dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:372,1
    - Dst: list_at
      Src: /src/libtorrent/src/torrent_info.cpp:375,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:376,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: libtorrent::path_length
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - list_size
    - list_at
    - bdecode_node::type
    - bdecode_node::string_length
    linkageType: ''
    returnType: int
    signature: int path_length(bdecode_node const& p, error_code& ec)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:391,1
    - Dst: libtorrent::get_file_attributes
      Src: /src/libtorrent/src/torrent_info.cpp:393,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:404,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:417,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:417,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:424,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:426,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:426,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:428,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:429,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:431,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:432,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:437,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:439,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:440,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:441,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:441,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:446,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/torrent_info.cpp:447,1
    - Dst: add_file_borrow
      Src: /src/libtorrent/src/torrent_info.cpp:454,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 7
    argNames:
    - ' dict'
    - ' files'
    - ' path'
    - name
    - info_offset
    - info_buffer
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - string_view
    - std::ptrdiff_t
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 457
    functionName: libtorrent::extract_single_file2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::type
    - sha256_hash
    - test_piece_size
    - libtorrent::get_file_attributes
    - static_cast<std::size_t>
    - bdecode_node::string_length
    - add_file_borrow
    - dict_find_int_value
    - bdecode_node::type
    - bdecode_node::list_size
    - libtorrent::aux::sanitize_append_path_element
    - std::time_t
    - bdecode_node::string_offset
    - bdecode_node::list_at
    - dict_find_string
    - libtorrent::path_length
    - std::string::empty
    - dict_find_list
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool extract_single_file2(bdecode_node const& dict, file_storage&
      files\n\t\t, std::string const& path, string_view const name\n\t\t, std::ptrdiff_t
      const info_offset, char const* info_buffer\n\t\t, error_code& ec)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:468,1
    - Dst: libtorrent::get_file_attributes
      Src: /src/libtorrent/src/torrent_info.cpp:474,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:479,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:485,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:492,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:492,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:501,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:502,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:503,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:509,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:510,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:510,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:512,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:512,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:513,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:515,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:515,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:516,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:524,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:525,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:527,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:531,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:533,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:535,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:538,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:539,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:539,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:540,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:540,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:541,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:543,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:543,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/torrent_info.cpp:551,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/torrent_info.cpp:552,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/torrent_info.cpp:562,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:565,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:567,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:568,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:573,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:575,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:575,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:577,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:578,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:580,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:581,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:593,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/torrent_info.cpp:593,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: add_file_borrow
      Src: /src/libtorrent/src/torrent_info.cpp:600,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 7
    argNames:
    - ' dict'
    - ' files'
    - ' root_dir'
    - info_offset
    - info_buffer
    - top_level
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - std::ptrdiff_t
    - char*
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 603
    functionName: libtorrent::extract_single_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::type
    - libtorrent::get_file_attributes
    - static_cast<std::size_t>
    - bdecode_node::string_length
    - add_file_borrow
    - dict_find_int_value
    - std::string::length
    - bdecode_node::list_size
    - libtorrent::combine_path
    - string_view::empty
    - std::size_t
    - std::string::substr
    - libtorrent::aux::sanitize_append_path_element
    - bdecode_node::string_value
    - std::time_t
    - bdecode_node::string_offset
    - std::snprintf
    - bdecode_node::list_at
    - libtorrent::aux::max
    - dict_find_string
    - libtorrent::path_length
    - std::string::size
    - std::string::empty
    - dict_find_list
    - string_view::size
    - std::string::find
    - string_view::front
    - string_view::remove_prefix
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool extract_single_file(bdecode_node const& dict, file_storage& files\n\t\t,
      std::string const& root_dir, std::ptrdiff_t const info_offset\n\t\t, char const*
      info_buffer, bool const top_level, error_code& ec)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:610,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:626,1
    - Dst: dict_at_node
      Src: /src/libtorrent/src/torrent_info.cpp:628,1
    - Dst: auto::second::type
      Src: /src/libtorrent/src/torrent_info.cpp:629,1
    - Dst: auto::first::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:629,1
    - Dst: auto::first::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:635,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:636,1
    - Dst: auto::first::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:636,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:637,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:637,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:638,1
    - Dst: auto::second::dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: auto::second::dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:641,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:643,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:644,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:648,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/torrent_info.cpp:648,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: libtorrent::extract_single_file2
      Src: /src/libtorrent/src/torrent_info.cpp:655,1
    - Dst: auto::second::dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:655,1
    - Dst: libtorrent::extract_files2
      Src: /src/libtorrent/src/torrent_info.cpp:663,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 8
    argNames:
    - ' tree'
    - ' target'
    - ' root_dir'
    - info_offset
    - info_buffer
    - has_files
    - depth
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - ptrdiff_t
    - char*
    - bool
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 671
    functionName: libtorrent::extract_files2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - auto::first::string_value
    - libtorrent::type
    - auto::first::string_length
    - libtorrent::empty
    - libtorrent::extract_files2
    - auto::second::dict_size
    - static_cast<size_t>
    - std::string::length
    - auto::second::dict_at
    - string_view::empty
    - libtorrent::extract_single_file2
    - auto::second::type
    - std::string::substr
    - libtorrent::aux::sanitize_append_path_element
    - std::string
    - dict_at_node
    - std::string::size
    - string_view::size
    - auto::first::string_offset
    - string_view::front
    - dict_size
    - string_view::remove_prefix
    linkageType: ''
    returnType: bool
    signature: "bool extract_files2(bdecode_node const& tree, file_storage& target\n\t\t,
      std::string const& root_dir, ptrdiff_t const info_offset\n\t\t, char const*
      info_buffer\n\t\t, bool const has_files, int const depth, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:679,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent_info.cpp:684,1
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:684,1
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:686,1
    - Dst: libtorrent::extract_single_file
      Src: /src/libtorrent/src/torrent_info.cpp:688,1
    - Dst: list_at
      Src: /src/libtorrent/src/torrent_info.cpp:688,1
    - Dst: sanitize_symlinks
      Src: /src/libtorrent/src/torrent_info.cpp:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - ' list'
    - ' target'
    - ' root_dir'
    - info_offset
    - info_buffer
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - std::ptrdiff_t
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 695
    functionName: libtorrent::extract_files
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - list_size
    - libtorrent::type
    - reserve
    - sanitize_symlinks
    - list_at
    - libtorrent::extract_single_file
    linkageType: ''
    returnType: bool
    signature: "bool extract_files(bdecode_node const& list, file_storage& target\n\t\t,
      std::string const& root_dir, std::ptrdiff_t info_offset\n\t\t, char const* info_buffer,
      error_code& ec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/torrent_info.cpp:700,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/torrent_info.cpp:702,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/torrent_info.cpp:702,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/torrent_info.cpp:704,1
    - Dst: c_str
      Src: /src/libtorrent/src/torrent_info.cpp:704,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:706,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:708,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:708,1
    - Dst: std::fseek
      Src: /src/libtorrent/src/torrent_info.cpp:712,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:712,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:714,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:714,1
    - Dst: std::ftell
      Src: /src/libtorrent/src/torrent_info.cpp:717,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:717,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:720,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:720,1
    - Dst: std::fseek
      Src: /src/libtorrent/src/torrent_info.cpp:728,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:728,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:730,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:730,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:733,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:733,1
    - Dst: std::fread
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:736,1
    - Dst: std::feof
      Src: /src/libtorrent/src/torrent_info.cpp:738,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:738,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:740,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:743,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:743,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ' filename'
    - ' v'
    - ' ec'
    argTypes:
    - std::string
    - std::vector<char>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 747
    functionName: libtorrent::load_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - std::fread
    - libtorrent::size
    - c_str
    - aux::file_pointer::file
    - libtorrent::assign
    - libtorrent::data
    - ::_wfopen
    - generic_category
    - resize
    - std::fopen
    - libtorrent::convert_to_native_path_string
    - std::size_t
    - std::feof
    - std::fseek
    - std::ftell
    linkageType: ''
    returnType: int
    signature: "int load_file(std::string const& filename, std::vector<char>& v\n\t\t,
      error_code& ec, int const max_buffer_size = 80000000)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:754,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:755,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:756,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/torrent_info.cpp:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - url_
    - type_
    - auth_
    - extra_headers_
    argTypes:
    - std::string
    - type_t
    - std::string
    - headers_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: libtorrent::web_seed_entry::web_seed_entry
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: "void web_seed_entry::web_seed_entry(std::string url_, type_t type_\n\t\t,
      std::string auth_\n\t\t, headers_t extra_headers_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: all_path_hashes
      Src: /src/libtorrent/src/torrent_info.cpp:776,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:777,1
    - Dst: file_path_hash
      Src: /src/libtorrent/src/torrent_info.cpp:781,1
    - Dst: std::unordered_set::insert
      Src: /src/libtorrent/src/torrent_info.cpp:782,1
    - Dst: libtorrent::torrent_info::resolve_duplicate_filenames_slow
      Src: /src/libtorrent/src/torrent_info.cpp:787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 791
    functionName: libtorrent::torrent_info::resolve_duplicate_filenames
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - all_path_hashes
    - file_path_hash
    - file_range
    - std::unordered_set::insert
    - libtorrent::torrent_info::resolve_duplicate_filenames_slow
    linkageType: ''
    returnType: void
    signature: void torrent_info::resolve_duplicate_filenames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_byte
      Src: /src/libtorrent/src/torrent_info.cpp:799,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/torrent_info.cpp:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' crc'
    - str
    argTypes:
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: libtorrent::process_string_lowercase
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_lower
    - process_byte
    linkageType: ''
    returnType: void
    signature: void process_string_lowercase(CRC& crc, string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_byte
      Src: /src/libtorrent/src/torrent_info.cpp:799,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/torrent_info.cpp:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' crc'
    - str
    argTypes:
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: libtorrent::process_string_lowercase
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_lower
    - process_byte
    linkageType: ''
    returnType: void
    signature: void process_string_lowercase(CRC& crc, string_view str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: paths
      Src: /src/libtorrent/src/torrent_info.cpp:817,1
    - Dst: std::unordered_multimap::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:818,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:818,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:818,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent_info.cpp:818,1
    - Dst: name
      Src: /src/libtorrent/src/torrent_info.cpp:824,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/torrent_info.cpp:826,1
    - Dst: name
      Src: /src/libtorrent/src/torrent_info.cpp:826,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:832,1
    - Dst: auto::process_byte
      Src: /src/libtorrent/src/torrent_info.cpp:832,1
    - Dst: std::unordered_multimap::insert
      Src: /src/libtorrent/src/torrent_info.cpp:837,1
    - Dst: auto::checksum
      Src: /src/libtorrent/src/torrent_info.cpp:837,1
    - Dst: auto::process_byte
      Src: /src/libtorrent/src/torrent_info.cpp:838,1
    - Dst: to_lower
      Src: /src/libtorrent/src/torrent_info.cpp:838,1
    - Dst: std::unordered_multimap::insert
      Src: /src/libtorrent/src/torrent_info.cpp:841,1
    - Dst: auto::checksum
      Src: /src/libtorrent/src/torrent_info.cpp:841,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:841,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:849,1
    - Dst: file_path_hash
      Src: /src/libtorrent/src/torrent_info.cpp:853,1
    - Dst: std::unordered_multimap::equal_range
      Src: /src/libtorrent/src/torrent_info.cpp:854,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent_info.cpp:855,1
    - Dst: combine_path
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: name
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: substr
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent_info.cpp:859,1
    - Dst: string_equal_no_case
      Src: /src/libtorrent/src/torrent_info.cpp:860,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent_info.cpp:860,1
    - Dst: std::unordered_multimap::insert
      Src: /src/libtorrent/src/torrent_info.cpp:865,1
    - Dst: file_flags
      Src: /src/libtorrent/src/torrent_info.cpp:873,1
    - Dst: file_flags
      Src: /src/libtorrent/src/torrent_info.cpp:874,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:875,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:875,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent_info.cpp:878,1
    - Dst: remove_extension
      Src: /src/libtorrent/src/torrent_info.cpp:879,1
    - Dst: extension
      Src: /src/libtorrent/src/torrent_info.cpp:880,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/torrent_info.cpp:886,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent_info.cpp:886,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/torrent_info.cpp:890,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/src/torrent_info.cpp:891,1
    - Dst: std::unordered_multimap::find
      Src: /src/libtorrent/src/torrent_info.cpp:892,1
    - Dst: std::unordered_multimap::end
      Src: /src/libtorrent/src/torrent_info.cpp:892,1
    - Dst: std::unordered_multimap::insert
      Src: /src/libtorrent/src/torrent_info.cpp:894,1
    - Dst: libtorrent::torrent_info::copy_on_write
      Src: /src/libtorrent/src/torrent_info.cpp:905,1
    - Dst: libtorrent::torrent_info::rename_file
      Src: /src/libtorrent/src/torrent_info.cpp:906,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 908
    functionName: libtorrent::torrent_info::resolve_duplicate_filenames_slow
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - paths
    - empty
    - std::unordered_multimap::find
    - std::unordered_multimap::reserve
    - file_size
    - substr
    - auto::process_byte
    - string_equal_no_case
    - libtorrent::torrent_info::rename_file
    - file_path_hash
    - aux::numeric_cast<std::size_t>
    - extension
    - libtorrent::torrent_info::copy_on_write
    - file_path
    - std::size_t
    - std::unordered_multimap::end
    - file_range
    - file_flags
    - std::unordered_multimap::insert
    - num_files
    - std::snprintf
    - auto::checksum
    - process_string_lowercase
    - size
    - to_lower
    - std::find_if
    - combine_path
    - name
    - remove_extension
    - std::string::c_str
    - boost::crc_optimal::checksum
    - std::unordered_multimap::equal_range
    linkageType: ''
    returnType: void
    signature: void torrent_info::resolve_duplicate_filenames_slow()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:914,1
    - Dst: is_loaded
      Src: /src/libtorrent/src/torrent_info.cpp:914,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:917,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent_info.cpp:917,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent_info.cpp:917,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent_info.cpp:919,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent_info.cpp:919,1
    - Dst: libtorrent::torrent_info::copy_on_write
      Src: /src/libtorrent/src/torrent_info.cpp:920,1
    - Dst: set_num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:922,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:922,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:923,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 924
    functionName: libtorrent::torrent_info::remap_files
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - total_size
    - is_loaded
    - set_num_pieces
    - libtorrent::torrent_info::copy_on_write
    - set_piece_length
    - TORRENT_ASSERT
    - num_pieces
    - piece_length
    linkageType: ''
    returnType: void
    signature: void torrent_info::remap_files(file_storage const& f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/torrent_info.cpp:932,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent_info.cpp:936,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:936,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/torrent_info.cpp:936,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:939,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:945,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:946,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' torrent_file'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 951
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - aux::throw_ex<system_error>
    - std::vector::empty
    - libtorrent::torrent_info::parse_torrent_file
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(entry const& torrent_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' torrent_file'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 957
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(bdecode_node const& torrent_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(span<char const> buffer, from_span_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 965
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(std::string const& filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:971,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' torrent_file'
    - ' cfg'
    argTypes:
    - bdecode_node
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 975
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(bdecode_node const& torrent_file\n\t\t,
      load_torrent_limits const& cfg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:981,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:983,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:985,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - ' cfg'
    argTypes:
    - span<char const>
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 989
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - aux::throw_ex<system_error>
    - bdecode
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(span<char const> buffer\n\t\t, load_torrent_limits
      const& cfg, from_span_t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/libtorrent/src/torrent_info.cpp:996,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:997,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:999,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:1001,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:1003,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:1004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' filename'
    - ' cfg'
    argTypes:
    - std::string
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1007
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - load_file
    - bdecode
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(std::string const& filename\n\t\t,
      load_torrent_limits const& cfg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1012,1
    - Dst: is_loaded
      Src: /src/libtorrent/src/torrent_info.cpp:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1014
    functionName: '& torrent_info::orig_files() const'
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_loaded
    linkageType: ''
    returnType: file_storage
    signature: file_storage & torrent_info::orig_files() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1018,1
    - Dst: is_loaded
      Src: /src/libtorrent/src/torrent_info.cpp:1018,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent_info.cpp:1019,1
    - Dst: libtorrent::torrent_info::copy_on_write
      Src: /src/libtorrent/src/torrent_info.cpp:1020,1
    - Dst: libtorrent::torrent_info::rename_file
      Src: /src/libtorrent/src/torrent_info.cpp:1021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - ' new_filename'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1022
    functionName: libtorrent::torrent_info::rename_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - is_loaded
    - libtorrent::torrent_info::copy_on_write
    - TORRENT_ASSERT
    - file_path
    - libtorrent::torrent_info::rename_file
    linkageType: ''
    returnType: void
    signature: void torrent_info::rename_file(file_index_t index, std::string const&
      new_filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' torrent_file'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1029
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(bdecode_node const& torrent_file\n\t\t,
      error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:1034,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - ' ec'
    argTypes:
    - span<char const>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1039
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - bdecode
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(span<char const> buffer\n\t\t, error_code&
      ec, from_span_t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/libtorrent/src/torrent_info.cpp:1044,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:1047,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:1049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' filename'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1052
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - load_file
    - bdecode
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(std::string const& filename, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' info_hash'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1060
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(info_hash_t const& info_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1062
    functionName: torrent_info::~torrent_info()
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::~torrent_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pl
    argTypes:
    - aux::vector<aux::vector<char>, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: libtorrent::torrent_info::set_piece_layers
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::set_piece_layers(aux::vector<aux::vector<char>,
      file_index_t> pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_hash
      Src: /src/libtorrent/src/torrent_info.cpp:1072,1
    - Dst: hash_for_piece_ptr
      Src: /src/libtorrent/src/torrent_info.cpp:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1072
    functionName: libtorrent::torrent_info::hash_for_piece
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - sha1_hash
    - hash_for_piece_ptr
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash torrent_info::hash_for_piece(piece_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1076,1
    - Dst: is_loaded
      Src: /src/libtorrent/src/torrent_info.cpp:1076,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent_info.cpp:1080,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/torrent_info.cpp:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1081
    functionName: libtorrent::torrent_info::copy_on_write
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - file_storage::file_storage
    - reset
    - is_loaded
    linkageType: ''
    returnType: void
    signature: void torrent_info::copy_on_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1088,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1089,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1091
    functionName: libtorrent::torrent_info::swap
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void torrent_info::swap(torrent_info& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:1095,1
    - Dst: char::char
      Src: /src/libtorrent/src/torrent_info.cpp:1095,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/torrent_info.cpp:1096,1
    - Dst: boost::shared_array::get
      Src: /src/libtorrent/src/torrent_info.cpp:1096,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1096,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1098
    functionName: libtorrent::torrent_info::metadata
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - std::size_t
    - char::char
    - boost::shared_array::get
    - get
    linkageType: ''
    returnType: boost::shared_array<char>
    signature: boost::shared_array<char> torrent_info::metadata() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:1109,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1109,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1114,1
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1114,1
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1115,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1117
    functionName: libtorrent::torrent_info::ssl_cert
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - dict_find_string_value
    - TORRENT_ASSERT
    - type
    - get
    - bdecode
    linkageType: ''
    returnType: string_view
    signature: string_view torrent_info::ssl_cert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_info::parse_info_section
      Src: /src/libtorrent/src/torrent_info.cpp:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' info'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1123
    functionName: libtorrent::torrent_info::parse_info_section
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::torrent_info::parse_info_section
    linkageType: ''
    returnType: bool
    signature: bool torrent_info::parse_info_section(bdecode_node const& info, error_code&
      ec)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1129,1
    - Dst: data_section
      Src: /src/libtorrent/src/torrent_info.cpp:1136,1
    - Dst: hasher
      Src: /src/libtorrent/src/torrent_info.cpp:1137,1
    - Dst: hasher256
      Src: /src/libtorrent/src/torrent_info.cpp:1138,1
    - Dst: data_section
      Src: /src/libtorrent/src/torrent_info.cpp:1139,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:1139,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/torrent_info.cpp:1145,1
    - Dst: auto::size
      Src: /src/libtorrent/src/torrent_info.cpp:1145,1
    - Dst: auto::size
      Src: /src/libtorrent/src/torrent_info.cpp:1152,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent_info.cpp:1153,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1153,1
    - Dst: char::char
      Src: /src/libtorrent/src/torrent_info.cpp:1153,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/torrent_info.cpp:1154,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1154,1
    - Dst: auto::data
      Src: /src/libtorrent/src/torrent_info.cpp:1154,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1154,1
    - Dst: data_offset
      Src: /src/libtorrent/src/torrent_info.cpp:1161,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:1164,1
    - Dst: has_soft_error
      Src: /src/libtorrent/src/torrent_info.cpp:1168,1
    - Dst: v2::clear
      Src: /src/libtorrent/src/torrent_info.cpp:1185,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:1189,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1205,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent_info.cpp:1205,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1208,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1209,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1214,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:1219,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1219,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:1220,1
    - Dst: has_v1
      Src: /src/libtorrent/src/torrent_info.cpp:1222,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/torrent_info.cpp:1223,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/torrent_info.cpp:1225,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1235,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/torrent_info.cpp:1237,1
    - Dst: extract_files2
      Src: /src/libtorrent/src/torrent_info.cpp:1240,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1241,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1244,1
    - Dst: file_storage::sanitize_symlinks
      Src: /src/libtorrent/src/torrent_info.cpp:1248,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1249,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1257,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1264,1
    - Dst: dict_find
      Src: /src/libtorrent/src/torrent_info.cpp:1273,1
    - Dst: extract_single_file
      Src: /src/libtorrent/src/torrent_info.cpp:1277,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1278,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1281,1
    - Dst: v1::clear
      Src: /src/libtorrent/src/torrent_info.cpp:1290,1
    - Dst: extract_files
      Src: /src/libtorrent/src/torrent_info.cpp:1295,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1296,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1299,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1304,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1308,1
    - Dst: file_storage::name
      Src: /src/libtorrent/src/torrent_info.cpp:1311,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1315,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1320,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1324,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1324,1
    - Dst: file_storage::remove_tail_padding
      Src: /src/libtorrent/src/torrent_info.cpp:1326,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/src/torrent_info.cpp:1329,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1332,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/src/torrent_info.cpp:1342,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1342,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1346,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1350,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/src/torrent_info.cpp:1350,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1350,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1351,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1354,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:1354,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1355,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1359,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1363,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1370,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1376,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1376,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1380,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:1384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1385,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:1385,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1386,1
    - Dst: static_cast<std::int32_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1387,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1389,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:1392,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1396,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1399,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1401,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1404,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1406,1
    - Dst: static_cast<std::int32_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1406,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1407,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1411,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1414,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1416,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1418,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1420,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/torrent_info.cpp:1420,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:1420,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1421,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1426,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/src/torrent_info.cpp:1429,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1433,1
    - Dst: libtorrent::torrent_info::swap
      Src: /src/libtorrent/src/torrent_info.cpp:1439,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1441,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent_info.cpp:1441,1
    - Dst: libtorrent::torrent_info::v2
      Src: /src/libtorrent/src/torrent_info.cpp:1441,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 168
    argCount: 3
    argNames:
    - ' info'
    - ' ec'
    - max_pieces
    argTypes:
    - bdecode_node
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1443
    functionName: libtorrent::torrent_info::parse_info_section
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - extract_single_file
    - file_storage::set_piece_length
    - has_v2
    - bdecode_node::string_length
    - has_soft_error
    - file_storage::remove_tail_padding
    - emplace_back
    - has_v1
    - extract_files2
    - dict_find_int_value
    - push_back
    - reset
    - auto::empty
    - hasher
    - aux::numeric_cast<std::size_t>
    - file_storage::piece_length
    - bdecode_node::type
    - bdecode_node::list_size
    - dict_find
    - v1::clear
    - hasher256
    - type
    - data_section
    - char::char
    - libtorrent::aux::files_compatible
    - libtorrent::aux::sanitize_append_path_element
    - bdecode_node::string_value
    - libtorrent::aux::to_hex
    - extract_files
    - bdecode_node::string_offset
    - v2::clear
    - std::int32_t
    - set_piece_length
    - file_storage::sanitize_symlinks
    - bdecode_node::list_at
    - libtorrent::aux::max
    - auto::size
    - TORRENT_ASSERT
    - dict_find_string
    - file_storage::set_num_pieces
    - static_cast<std::int32_t>
    - file_storage::name
    - auto::data
    - std::memcpy
    - file_storage::total_size
    - data_offset
    - std::string::empty
    - file_storage::num_pieces
    - dict_find_dict
    - dict_find_list
    - file_storage::num_files
    - libtorrent::torrent_info::swap
    - libtorrent::torrent_info::v2
    - get
    linkageType: ''
    returnType: bool
    signature: "bool torrent_info::parse_info_section(bdecode_node const& info\n\t\t,
      error_code& ec, int const max_pieces)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1449,1
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent_info.cpp:1456,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:1457,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:1459,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1459,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent_info.cpp:1461,1
    - Dst: root
      Src: /src/libtorrent/src/torrent_info.cpp:1461,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:1464,1
    - Dst: dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:1466,1
    - Dst: auto::first::size
      Src: /src/libtorrent/src/torrent_info.cpp:1467,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1467,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1467,1
    - Dst: auto::second::type
      Src: /src/libtorrent/src/torrent_info.cpp:1468,1
    - Dst: auto::second::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1469,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1469,1
    - Dst: std::set::find
      Src: /src/libtorrent/src/torrent_info.cpp:1476,1
    - Dst: std::set::end
      Src: /src/libtorrent/src/torrent_info.cpp:1476,1
    - Dst: std::map::emplace
      Src: /src/libtorrent/src/torrent_info.cpp:1483,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/torrent_info.cpp:1483,1
    - Dst: auto::second::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1483,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:1486,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1486,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:1488,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:1490,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1490,1
    - Dst: std::map::find
      Src: /src/libtorrent/src/torrent_info.cpp:1493,1
    - Dst: root
      Src: /src/libtorrent/src/torrent_info.cpp:1493,1
    - Dst: std::map::end
      Src: /src/libtorrent/src/torrent_info.cpp:1494,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1496,1
    - Dst: auto::second::size
      Src: /src/libtorrent/src/torrent_info.cpp:1498,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1498,1
    - Dst: auto::size
      Src: /src/libtorrent/src/torrent_info.cpp:1505,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1505,1
    - Dst: assign
      Src: /src/libtorrent/src/torrent_info.cpp:1511,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/torrent_info.cpp:1511,1
    - Dst: auto::end
      Src: /src/libtorrent/src/torrent_info.cpp:1511,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - ' e'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1516
    functionName: libtorrent::torrent_info::parse_piece_layers
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - dict_at
    - sha256_hash
    - test_piece_size
    - static_cast<std::size_t>
    - file_size
    - assign
    - auto::begin
    - std::set::insert
    - auto::second::string_value
    - auto::second::string_length
    - orig_files
    - auto::second::type
    - type
    - file_range
    - std::set::find
    - num_files
    - auto::size
    - std::map::end
    - std::map::find
    - auto::second::size
    - file_num_pieces
    - root
    - std::map::emplace
    - piece_length
    - resize
    - std::set::end
    - auto::end
    - auto::first::size
    - dict_size
    linkageType: ''
    returnType: bool
    signature: bool torrent_info::parse_piece_layers(bdecode_node const& e, error_code&
      ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_info.cpp:1520,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent_info.cpp:1520,1
    - Dst: end_index
      Src: /src/libtorrent/src/torrent_info.cpp:1521,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/torrent_info.cpp:1522,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:1524,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1524,1
    - Dst: root_ptr
      Src: /src/libtorrent/src/torrent_info.cpp:1526,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1531
    functionName: libtorrent::torrent_info::piece_layer
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - root_ptr
    - test_piece_size
    - TORRENT_ASSERT_PRECOND
    - piece_length
    - file_size
    - pad_file_at
    - file_index_t
    - end_index
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> torrent_info::piece_layer(file_index_t f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/torrent_info.cpp:1535,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/torrent_info.cpp:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1539
    functionName: libtorrent::torrent_info::free_piece_layers
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void torrent_info::free_piece_layers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1542
    functionName: libtorrent::torrent_info::internal_set_creator
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void torrent_info::internal_set_creator(string_view const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1545
    functionName: libtorrent::torrent_info::internal_set_creation_date
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::internal_set_creation_date(std::time_t const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1548
    functionName: libtorrent::torrent_info::internal_set_comment
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void torrent_info::internal_set_comment(string_view const s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1552,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:1555,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1555,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1555,1
    - Dst: bdecode_node
      Src: /src/libtorrent/src/torrent_info.cpp:1557,1
    - Dst: dict_find
      Src: /src/libtorrent/src/torrent_info.cpp:1559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1560
    functionName: libtorrent::torrent_info::info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node
    - dict_find
    - type
    - get
    - bdecode
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node torrent_info::info(char const* key) const
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1565,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/torrent_info.cpp:1571,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1574,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/src/torrent_info.cpp:1577,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1577,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent_info.cpp:1581,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1581,1
    - Dst: auto::trackers::size
      Src: /src/libtorrent/src/torrent_info.cpp:1581,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1583,1
    - Dst: libtorrent::torrent_info::parse_info_section
      Src: /src/libtorrent/src/torrent_info.cpp:1592,1
    - Dst: libtorrent::torrent_info::resolve_duplicate_filenames
      Src: /src/libtorrent/src/torrent_info.cpp:1593,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent_info.cpp:1595,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/torrent_info.cpp:1600,1
    - Dst: libtorrent::torrent_info::parse_piece_layers
      Src: /src/libtorrent/src/torrent_info.cpp:1601,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1603,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1605,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1611,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1614,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1616,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1619,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1622,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1623,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1627,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1630,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1632,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1634,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1636,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/torrent_info.cpp:1636,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1637,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1637,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1643,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent_info.cpp:1646,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1646,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1647,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1649,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1650,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1651,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/torrent_info.cpp:1653,1
    - Dst: ltrim
      Src: /src/libtorrent/src/torrent_info.cpp:1654,1
    - Dst: announce_entry::url::empty
      Src: /src/libtorrent/src/torrent_info.cpp:1655,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/torrent_info.cpp:1656,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/torrent_info.cpp:1660,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1662,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1666,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/torrent_info.cpp:1669,1
    - Dst: std::stable_sort
      Src: /src/libtorrent/src/torrent_info.cpp:1670,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1670,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1670,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1676,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1678,1
    - Dst: ltrim
      Src: /src/libtorrent/src/torrent_info.cpp:1681,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/torrent_info.cpp:1683,1
    - Dst: announce_entry::url::empty
      Src: /src/libtorrent/src/torrent_info.cpp:1685,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1685,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1688,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1691,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1693,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1694,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1695,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1696,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1697,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1699,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1700,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1701,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:1706,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:1709,1
    - Dst: dict_find
      Src: /src/libtorrent/src/torrent_info.cpp:1713,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1714,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1715,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/src/torrent_info.cpp:1717,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1717,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1719,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/torrent_info.cpp:1720,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1721,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1721,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1723,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1727,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1729,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1730,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1731,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/src/torrent_info.cpp:1732,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1732,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1734,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/torrent_info.cpp:1735,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent_info.cpp:1736,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1737,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1737,1
    - Dst: dict_find
      Src: /src/libtorrent/src/torrent_info.cpp:1742,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1743,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1744,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1746,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/src/torrent_info.cpp:1746,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1746,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1749,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1753,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1755,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1756,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1756,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/src/torrent_info.cpp:1757,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1757,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent_info.cpp:1758,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1759,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1759,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1763,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1764,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1764,1
    - Dst: libtorrent::aux::verify_encoding
      Src: /src/libtorrent/src/torrent_info.cpp:1765,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1767,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1768,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1768,1
    - Dst: libtorrent::aux::verify_encoding
      Src: /src/libtorrent/src/torrent_info.cpp:1769,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 125
    argCount: 3
    argNames:
    - ' torrent_file'
    - ' ec'
    - piece_limit
    argTypes:
    - bdecode_node
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1562
    functionDepth: 3
    functionLinenumber: 1562
    functionLinenumberEnd: 1772
    functionName: libtorrent::torrent_info::parse_torrent_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::torrent_info::resolve_duplicate_filenames
    - ltrim
    - std::move
    - begin
    - has_v2
    - empty
    - bdecode_node::string_length
    - emplace_back
    - libtorrent::aux::random_shuffle
    - std::stable_sort
    - libtorrent::torrent_info::parse_info_section
    - bdecode_node::string_ptr
    - parse_magnet_uri
    - push_back
    - dict_find_int_value
    - libtorrent::aux::verify_encoding
    - bdecode_node::type
    - aux::numeric_cast<std::size_t>
    - std::uint8_t
    - dict_find_string_value
    - bdecode_node::list_size
    - end
    - dict_find
    - bdecode_node::list_string_value_at
    - type
    - bdecode_node::string_value
    - maybe_url_encode
    - std::time_t
    - num_files
    - set_piece_length
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - reserve
    - libtorrent::torrent_info::parse_piece_layers
    - dict_find_string
    - is_i2p_url
    - size
    - ensure_trailing_slash
    - auto::trackers::size
    - dict_find_dict
    - dict_find_list
    - announce_entry::url::empty
    - std::set::insert
    linkageType: ''
    returnType: bool
    signature: "bool torrent_info::parse_torrent_file(bdecode_node const& torrent_file\n\t\t,
      error_code& ec, int const piece_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_info::add_tracker
      Src: /src/libtorrent/src/torrent_info.cpp:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' url'
    - tier
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1774
    functionDepth: 0
    functionLinenumber: 1774
    functionLinenumberEnd: 1777
    functionName: libtorrent::torrent_info::add_tracker
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::torrent_info::add_tracker
    linkageType: ''
    returnType: void
    signature: void torrent_info::add_tracker(std::string const& url, int const tier)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_info.cpp:1782,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1782,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent_info.cpp:1783,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1783,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1783,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1785,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/torrent_info.cpp:1788,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1790,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent_info.cpp:1792,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1792,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' url'
    - tier
    - source
    argTypes:
    - std::string
    - int
    - announce_entry::tracker_source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1779
    functionDepth: 1
    functionLinenumber: 1779
    functionLinenumberEnd: 1795
    functionName: libtorrent::torrent_info::add_tracker
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - begin
    - std::uint8_t
    - empty
    - end
    - TORRENT_ASSERT_PRECOND
    - std::sort
    - std::find_if
    linkageType: ''
    returnType: void
    signature: "void torrent_info::add_tracker(std::string const& url, int const tier\n\t\t,
      announce_entry::tracker_source const source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/torrent_info.cpp:1799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1797
    functionDepth: 1
    functionLinenumber: 1797
    functionLinenumberEnd: 1800
    functionName: libtorrent::torrent_info::clear_trackers
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void torrent_info::clear_trackers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t_
    argTypes:
    - web_seed_entry::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1807
    functionName: libtorrent::filter_web_seed_type
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void filter_web_seed_type(web_seed_entry::type_t t_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - web_seed_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1809
    functionName: operator() (web_seed_entry const& w)
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::push_back
    linkageType: ''
    returnType: void
    signature: void operator() (web_seed_entry const& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t_
    argTypes:
    - web_seed_entry::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1807
    functionName: libtorrent::filter_web_seed_type
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void filter_web_seed_type(web_seed_entry::type_t t_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - web_seed_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1809
    functionName: operator() (web_seed_entry const& w)
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::push_back
    linkageType: ''
    returnType: void
    signature: void operator() (web_seed_entry const& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/src/torrent_info.cpp:1817,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1817,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1817,1
    - Dst: filter_web_seed_type
      Src: /src/libtorrent/src/torrent_info.cpp:1818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1819
    functionName: libtorrent::torrent_info::url_seeds
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - begin
    - filter_web_seed_type
    - end
    - std::for_each
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> torrent_info::url_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/src/torrent_info.cpp:1823,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1823,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1823,1
    - Dst: filter_web_seed_type
      Src: /src/libtorrent/src/torrent_info.cpp:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1821
    functionDepth: 0
    functionLinenumber: 1821
    functionLinenumberEnd: 1825
    functionName: libtorrent::torrent_info::http_seeds
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - begin
    - filter_web_seed_type
    - end
    - std::for_each
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> torrent_info::http_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' url'
    - ' ext_auth'
    - ' ext_headers'
    argTypes:
    - std::string
    - std::string
    - web_seed_entry::headers_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1834
    functionName: libtorrent::torrent_info::add_url_seed
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void torrent_info::add_url_seed(std::string const& url\n\t\t, std::string
      const& ext_auth\n\t\t, web_seed_entry::headers_t const& ext_headers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' url'
    - ' auth'
    - ' extra_headers'
    argTypes:
    - std::string
    - std::string
    - web_seed_entry::headers_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1836
    functionDepth: 0
    functionLinenumber: 1836
    functionLinenumberEnd: 1842
    functionName: libtorrent::torrent_info::add_http_seed
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void torrent_info::add_http_seed(std::string const& url\n\t\t, std::string
      const& auth\n\t\t, web_seed_entry::headers_t const& extra_headers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seeds
    argTypes:
    - std::vector<web_seed_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1844
    functionDepth: 0
    functionLinenumber: 1844
    functionLinenumberEnd: 1847
    functionName: libtorrent::torrent_info::set_web_seeds
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void torrent_info::set_web_seeds(std::vector<web_seed_entry> seeds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:1853,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1853,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1853,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1856,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1856,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1863
    functionName: libtorrent::torrent_info::similar_torrents
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::emplace_back
    - std::vector::reserve
    - get
    - size
    linkageType: ''
    returnType: std::vector<sha1_hash>
    signature: std::vector<sha1_hash> torrent_info::similar_torrents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:1869,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1869,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1869,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1872,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1872,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1872,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1879
    functionName: libtorrent::torrent_info::collections
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - aux::numeric_cast<std::size_t>
    - std::vector::emplace_back
    - std::vector::reserve
    - get
    - size
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> torrent_info::collections() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:1884,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1886,1
    - Dst: file_name
      Src: /src/libtorrent/src/torrent_info.cpp:1886,1
    - Dst: owns_name
      Src: /src/libtorrent/src/torrent_info.cpp:1887,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1890,1
    - Dst: file_name
      Src: /src/libtorrent/src/torrent_info.cpp:1890,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1890,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1891,1
    - Dst: file_name
      Src: /src/libtorrent/src/torrent_info.cpp:1891,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1891,1
    - Dst: file_name
      Src: /src/libtorrent/src/torrent_info.cpp:1896,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1897,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/torrent_info.cpp:1897,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:1897,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1882
    functionDepth: 1
    functionLinenumber: 1882
    functionLinenumberEnd: 1902
    functionName: libtorrent::torrent_info::check_invariant
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - string_view::data
    - get
    - TORRENT_ASSERT
    - string_view::size
    - file_name
    - owns_name
    - file_range
    linkageType: ''
    returnType: void
    signature: void torrent_info::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_best
      Src: /src/libtorrent/src/torrent_info.cpp:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1908
    functionName: libtorrent::torrent_info::info_hash
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - get_best
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash torrent_info::info_hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_v1
      Src: /src/libtorrent/src/torrent_info.cpp:1910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1910
    functionName: libtorrent::torrent_info::v1
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - has_v1
    linkageType: ''
    returnType: bool
    signature: bool torrent_info::v1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent_info.cpp:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1911
    functionDepth: 0
    functionLinenumber: 1911
    functionLinenumberEnd: 1911
    functionName: libtorrent::torrent_info::v2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - has_v2
    linkageType: ''
    returnType: bool
    signature: bool torrent_info::v2() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::strchr
      Src: /src/libtorrent/src/torrent_info.cpp:109,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/torrent_info.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: libtorrent::valid_path_character
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::strchr
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: bool valid_path_character(std::int32_t const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/torrent_info.cpp:122,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/torrent_info.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: libtorrent::filter_path_character
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find
    - std::array::end
    - std::array::begin
    - static_cast<char>
    - std::strchr
    linkageType: ''
    returnType: bool
    signature: bool filter_path_character(std::int32_t const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::strchr
      Src: /src/libtorrent/src/torrent_info.cpp:109,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/torrent_info.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: libtorrent::valid_path_character
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::strchr
    - static_cast<char>
    linkageType: ''
    returnType: bool
    signature: bool valid_path_character(std::int32_t const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/torrent_info.cpp:118,1
    - Dst: std::strchr
      Src: /src/libtorrent/src/torrent_info.cpp:122,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/torrent_info.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: libtorrent::filter_path_character
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find
    - std::array::end
    - std::array::begin
    - static_cast<char>
    - std::strchr
    linkageType: ''
    returnType: bool
    signature: bool filter_path_character(std::int32_t const c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:132,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:135,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:135,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:139,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent_info.cpp:145,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:145,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: append_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 168
    functionName: libtorrent::aux::verify_encoding
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 4
    functionsReached:
    - string_view::substr
    - std::tie
    - append_utf8_codepoint
    - parse_utf8_codepoint
    - libtorrent::aux::size
    - std::min
    - string_view::empty
    - string_view::size
    - std::size_t
    - libtorrent::aux::empty
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: bool verify_encoding(std::string& target)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:177,1
    - Dst: libtorrent::aux::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:186,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:192,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/torrent_info.cpp:215,1
    - Dst: strrchr
      Src: /src/libtorrent/src/torrent_info.cpp:216,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent_info.cpp:216,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:218,1
    - Dst: std::string::data
      Src: /src/libtorrent/src/torrent_info.cpp:218,1
    - Dst: std::transform
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: libtorrent::aux::find
      Src: /src/libtorrent/src/torrent_info.cpp:221,1
    - Dst: string_view
      Src: /src/libtorrent/src/torrent_info.cpp:225,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:241,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:241,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: filter_path_character
      Src: /src/libtorrent/src/torrent_info.cpp:246,1
    - Dst: valid_path_character
      Src: /src/libtorrent/src/torrent_info.cpp:251,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:265,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:266,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:287,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:288,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:288,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:297,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:298,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:320,1
    - Dst: libtorrent::aux::resize
      Src: /src/libtorrent/src/torrent_info.cpp:323,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:325,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:335,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:335,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:340,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 77
    argCount: 3
    argNames:
    - ' path'
    - element
    - force_element
    argTypes:
    - std::string
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::sanitize_append_path_element
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::reserve
    - libtorrent::aux::find
    - std::string::data
    - filter_path_character
    - push_back
    - libtorrent::aux::erase
    - aux::numeric_cast<std::size_t>
    - std::string::end
    - string_view::empty
    - std::size_t
    - string_view::to_string
    - libtorrent::aux::resize
    - valid_path_character
    - std::string
    - parse_utf8_codepoint
    - libtorrent::aux::size
    - std::string::begin
    - TORRENT_ASSERT
    - libtorrent::aux::max
    - libtorrent::aux::empty
    - string_view::substr
    - std::transform
    - std::tie
    - strrchr
    - std::string::c_str
    - string_view::size
    - string_view
    - libtorrent::aux::end
    linkageType: ''
    returnType: void
    signature: void sanitize_append_path_element(std::string& path, string_view element,
      bool const force_element)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:132,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:135,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:135,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:139,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent_info.cpp:145,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:145,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: std::min
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:156,1
    - Dst: append_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 168
    functionName: libtorrent::aux::verify_encoding
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 4
    functionsReached:
    - string_view::substr
    - std::tie
    - append_utf8_codepoint
    - parse_utf8_codepoint
    - libtorrent::aux::size
    - std::min
    - string_view::empty
    - string_view::size
    - std::size_t
    - libtorrent::aux::empty
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: bool verify_encoding(std::string& target)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:177,1
    - Dst: libtorrent::aux::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:184,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:186,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:192,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/torrent_info.cpp:215,1
    - Dst: strrchr
      Src: /src/libtorrent/src/torrent_info.cpp:216,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent_info.cpp:216,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:218,1
    - Dst: std::string::data
      Src: /src/libtorrent/src/torrent_info.cpp:218,1
    - Dst: std::transform
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/torrent_info.cpp:220,1
    - Dst: libtorrent::aux::find
      Src: /src/libtorrent/src/torrent_info.cpp:221,1
    - Dst: string_view
      Src: /src/libtorrent/src/torrent_info.cpp:225,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:241,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:241,1
    - Dst: std::tie
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: parse_utf8_codepoint
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/torrent_info.cpp:244,1
    - Dst: filter_path_character
      Src: /src/libtorrent/src/torrent_info.cpp:246,1
    - Dst: valid_path_character
      Src: /src/libtorrent/src/torrent_info.cpp:251,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:265,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:266,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:287,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:288,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:288,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:297,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:298,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:307,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:313,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/src/torrent_info.cpp:320,1
    - Dst: libtorrent::aux::resize
      Src: /src/libtorrent/src/torrent_info.cpp:323,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:325,1
    - Dst: libtorrent::aux::erase
      Src: /src/libtorrent/src/torrent_info.cpp:335,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/src/torrent_info.cpp:335,1
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/src/torrent_info.cpp:340,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 77
    argCount: 3
    argNames:
    - ' path'
    - element
    - force_element
    argTypes:
    - std::string
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 341
    functionName: libtorrent::aux::sanitize_append_path_element
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::reserve
    - libtorrent::aux::find
    - std::string::data
    - filter_path_character
    - push_back
    - libtorrent::aux::erase
    - aux::numeric_cast<std::size_t>
    - std::string::end
    - string_view::empty
    - std::size_t
    - string_view::to_string
    - libtorrent::aux::resize
    - valid_path_character
    - std::string
    - parse_utf8_codepoint
    - libtorrent::aux::size
    - std::string::begin
    - TORRENT_ASSERT
    - libtorrent::aux::max
    - libtorrent::aux::empty
    - string_view::substr
    - std::transform
    - std::tie
    - strrchr
    - std::string::c_str
    - string_view::size
    - string_view
    - libtorrent::aux::end
    linkageType: ''
    returnType: void
    signature: void sanitize_append_path_element(std::string& path, string_view element,
      bool const force_element)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:349,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' dict'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: libtorrent::get_file_attributes
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 4
    functionsReached:
    - bdecode_node::string_value
    - dict_find_string
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t get_file_attributes(bdecode_node const& dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:372,1
    - Dst: list_at
      Src: /src/libtorrent/src/torrent_info.cpp:375,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:376,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: libtorrent::path_length
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 4
    functionsReached:
    - list_size
    - list_at
    - bdecode_node::type
    - bdecode_node::string_length
    linkageType: ''
    returnType: int
    signature: int path_length(bdecode_node const& p, error_code& ec)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:391,1
    - Dst: libtorrent::get_file_attributes
      Src: /src/libtorrent/src/torrent_info.cpp:393,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:404,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:417,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:417,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:424,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:426,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:426,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:428,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:429,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:431,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:432,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:437,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:439,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:440,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:441,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:441,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:446,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/torrent_info.cpp:447,1
    - Dst: add_file_borrow
      Src: /src/libtorrent/src/torrent_info.cpp:454,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 7
    argNames:
    - ' dict'
    - ' files'
    - ' path'
    - name
    - info_offset
    - info_buffer
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - string_view
    - std::ptrdiff_t
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 457
    functionName: libtorrent::extract_single_file2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::type
    - sha256_hash
    - test_piece_size
    - libtorrent::get_file_attributes
    - static_cast<std::size_t>
    - bdecode_node::string_length
    - add_file_borrow
    - dict_find_int_value
    - bdecode_node::type
    - bdecode_node::list_size
    - libtorrent::aux::sanitize_append_path_element
    - std::time_t
    - bdecode_node::string_offset
    - bdecode_node::list_at
    - dict_find_string
    - libtorrent::path_length
    - std::string::empty
    - dict_find_list
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool extract_single_file2(bdecode_node const& dict, file_storage&
      files\n\t\t, std::string const& path, string_view const name\n\t\t, std::ptrdiff_t
      const info_offset, char const* info_buffer\n\t\t, error_code& ec)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:468,1
    - Dst: libtorrent::get_file_attributes
      Src: /src/libtorrent/src/torrent_info.cpp:474,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:479,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:485,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:492,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:492,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:501,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:502,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:503,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:509,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:510,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:510,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:512,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:512,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:513,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:515,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:515,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:516,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:524,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:525,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:527,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:531,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:533,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:535,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:538,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:539,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:539,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:540,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:540,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:541,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:543,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:543,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/torrent_info.cpp:551,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/torrent_info.cpp:552,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/torrent_info.cpp:562,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:565,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:567,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:568,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:573,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:575,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:575,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:577,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:578,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:580,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:581,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:593,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/torrent_info.cpp:593,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: add_file_borrow
      Src: /src/libtorrent/src/torrent_info.cpp:600,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 7
    argNames:
    - ' dict'
    - ' files'
    - ' root_dir'
    - info_offset
    - info_buffer
    - top_level
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - std::ptrdiff_t
    - char*
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 603
    functionName: libtorrent::extract_single_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::type
    - libtorrent::get_file_attributes
    - static_cast<std::size_t>
    - bdecode_node::string_length
    - add_file_borrow
    - dict_find_int_value
    - std::string::length
    - bdecode_node::list_size
    - libtorrent::combine_path
    - string_view::empty
    - std::size_t
    - std::string::substr
    - libtorrent::aux::sanitize_append_path_element
    - bdecode_node::string_value
    - std::time_t
    - bdecode_node::string_offset
    - std::snprintf
    - bdecode_node::list_at
    - libtorrent::aux::max
    - dict_find_string
    - libtorrent::path_length
    - std::string::size
    - std::string::empty
    - dict_find_list
    - string_view::size
    - std::string::find
    - string_view::front
    - string_view::remove_prefix
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool extract_single_file(bdecode_node const& dict, file_storage& files\n\t\t,
      std::string const& root_dir, std::ptrdiff_t const info_offset\n\t\t, char const*
      info_buffer, bool const top_level, error_code& ec)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:610,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:626,1
    - Dst: dict_at_node
      Src: /src/libtorrent/src/torrent_info.cpp:628,1
    - Dst: auto::second::type
      Src: /src/libtorrent/src/torrent_info.cpp:629,1
    - Dst: auto::first::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:629,1
    - Dst: auto::first::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:635,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:636,1
    - Dst: auto::first::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:636,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:637,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:637,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:638,1
    - Dst: auto::second::dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: auto::second::dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:641,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:643,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:644,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:648,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/torrent_info.cpp:648,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: libtorrent::extract_single_file2
      Src: /src/libtorrent/src/torrent_info.cpp:655,1
    - Dst: auto::second::dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:655,1
    - Dst: libtorrent::extract_files2
      Src: /src/libtorrent/src/torrent_info.cpp:663,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 8
    argNames:
    - ' tree'
    - ' target'
    - ' root_dir'
    - info_offset
    - info_buffer
    - has_files
    - depth
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - ptrdiff_t
    - char*
    - bool
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 671
    functionName: libtorrent::extract_files2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - auto::first::string_value
    - libtorrent::type
    - auto::first::string_length
    - libtorrent::empty
    - libtorrent::extract_files2
    - auto::second::dict_size
    - static_cast<size_t>
    - std::string::length
    - auto::second::dict_at
    - string_view::empty
    - libtorrent::extract_single_file2
    - auto::second::type
    - std::string::substr
    - libtorrent::aux::sanitize_append_path_element
    - std::string
    - dict_at_node
    - std::string::size
    - string_view::size
    - auto::first::string_offset
    - string_view::front
    - dict_size
    - string_view::remove_prefix
    linkageType: ''
    returnType: bool
    signature: "bool extract_files2(bdecode_node const& tree, file_storage& target\n\t\t,
      std::string const& root_dir, ptrdiff_t const info_offset\n\t\t, char const*
      info_buffer\n\t\t, bool const has_files, int const depth, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:679,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent_info.cpp:684,1
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:684,1
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:686,1
    - Dst: libtorrent::extract_single_file
      Src: /src/libtorrent/src/torrent_info.cpp:688,1
    - Dst: list_at
      Src: /src/libtorrent/src/torrent_info.cpp:688,1
    - Dst: sanitize_symlinks
      Src: /src/libtorrent/src/torrent_info.cpp:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - ' list'
    - ' target'
    - ' root_dir'
    - info_offset
    - info_buffer
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - std::ptrdiff_t
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 695
    functionName: libtorrent::extract_files
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - list_size
    - libtorrent::type
    - reserve
    - sanitize_symlinks
    - list_at
    - libtorrent::extract_single_file
    linkageType: ''
    returnType: bool
    signature: "bool extract_files(bdecode_node const& list, file_storage& target\n\t\t,
      std::string const& root_dir, std::ptrdiff_t info_offset\n\t\t, char const* info_buffer,
      error_code& ec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/torrent_info.cpp:700,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/torrent_info.cpp:702,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/torrent_info.cpp:702,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/torrent_info.cpp:704,1
    - Dst: c_str
      Src: /src/libtorrent/src/torrent_info.cpp:704,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:706,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:708,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:708,1
    - Dst: std::fseek
      Src: /src/libtorrent/src/torrent_info.cpp:712,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:712,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:714,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:714,1
    - Dst: std::ftell
      Src: /src/libtorrent/src/torrent_info.cpp:717,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:717,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:720,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:720,1
    - Dst: std::fseek
      Src: /src/libtorrent/src/torrent_info.cpp:728,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:728,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:730,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:730,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:733,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:733,1
    - Dst: std::fread
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:736,1
    - Dst: std::feof
      Src: /src/libtorrent/src/torrent_info.cpp:738,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:738,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:740,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:743,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:743,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ' filename'
    - ' v'
    - ' ec'
    argTypes:
    - std::string
    - std::vector<char>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 747
    functionName: libtorrent::load_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - std::fread
    - libtorrent::size
    - c_str
    - aux::file_pointer::file
    - libtorrent::assign
    - libtorrent::data
    - ::_wfopen
    - generic_category
    - resize
    - std::fopen
    - libtorrent::convert_to_native_path_string
    - std::size_t
    - std::feof
    - std::fseek
    - std::ftell
    linkageType: ''
    returnType: int
    signature: "int load_file(std::string const& filename, std::vector<char>& v\n\t\t,
      error_code& ec, int const max_buffer_size = 80000000)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:349,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' dict'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: libtorrent::get_file_attributes
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 6
    functionsReached:
    - bdecode_node::string_value
    - dict_find_string
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t get_file_attributes(bdecode_node const& dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:372,1
    - Dst: list_at
      Src: /src/libtorrent/src/torrent_info.cpp:375,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:376,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: libtorrent::path_length
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 6
    functionsReached:
    - list_size
    - list_at
    - bdecode_node::type
    - bdecode_node::string_length
    linkageType: ''
    returnType: int
    signature: int path_length(bdecode_node const& p, error_code& ec)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:391,1
    - Dst: libtorrent::get_file_attributes
      Src: /src/libtorrent/src/torrent_info.cpp:393,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:404,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:417,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:417,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:424,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:426,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:426,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:428,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:429,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:431,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:432,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:437,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:439,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:440,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:441,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:441,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:446,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/torrent_info.cpp:447,1
    - Dst: add_file_borrow
      Src: /src/libtorrent/src/torrent_info.cpp:454,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 7
    argNames:
    - ' dict'
    - ' files'
    - ' path'
    - name
    - info_offset
    - info_buffer
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - string_view
    - std::ptrdiff_t
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 457
    functionName: libtorrent::extract_single_file2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::type
    - sha256_hash
    - test_piece_size
    - libtorrent::get_file_attributes
    - static_cast<std::size_t>
    - bdecode_node::string_length
    - add_file_borrow
    - dict_find_int_value
    - bdecode_node::type
    - bdecode_node::list_size
    - libtorrent::aux::sanitize_append_path_element
    - std::time_t
    - bdecode_node::string_offset
    - bdecode_node::list_at
    - dict_find_string
    - libtorrent::path_length
    - std::string::empty
    - dict_find_list
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool extract_single_file2(bdecode_node const& dict, file_storage&
      files\n\t\t, std::string const& path, string_view const name\n\t\t, std::ptrdiff_t
      const info_offset, char const* info_buffer\n\t\t, error_code& ec)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:468,1
    - Dst: libtorrent::get_file_attributes
      Src: /src/libtorrent/src/torrent_info.cpp:474,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:479,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:485,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:492,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:492,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:501,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:502,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:503,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:509,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:510,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:510,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:512,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:512,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:513,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:515,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:515,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:516,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:524,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:525,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:527,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:529,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:531,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:533,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:535,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:538,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:539,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:539,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:540,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:540,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:541,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:543,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:543,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/torrent_info.cpp:551,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/torrent_info.cpp:552,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/torrent_info.cpp:562,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:565,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:567,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:568,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:573,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:575,1
    - Dst: libtorrent::path_length
      Src: /src/libtorrent/src/torrent_info.cpp:575,1
    - Dst: std::string::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:577,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:578,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:580,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:581,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:593,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/torrent_info.cpp:593,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:594,1
    - Dst: add_file_borrow
      Src: /src/libtorrent/src/torrent_info.cpp:600,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 7
    argNames:
    - ' dict'
    - ' files'
    - ' root_dir'
    - info_offset
    - info_buffer
    - top_level
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - std::ptrdiff_t
    - char*
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 603
    functionName: libtorrent::extract_single_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::type
    - libtorrent::get_file_attributes
    - static_cast<std::size_t>
    - bdecode_node::string_length
    - add_file_borrow
    - dict_find_int_value
    - std::string::length
    - bdecode_node::list_size
    - libtorrent::combine_path
    - string_view::empty
    - std::size_t
    - std::string::substr
    - libtorrent::aux::sanitize_append_path_element
    - bdecode_node::string_value
    - std::time_t
    - bdecode_node::string_offset
    - std::snprintf
    - bdecode_node::list_at
    - libtorrent::aux::max
    - dict_find_string
    - libtorrent::path_length
    - std::string::size
    - std::string::empty
    - dict_find_list
    - string_view::size
    - std::string::find
    - string_view::front
    - string_view::remove_prefix
    - std::string::reserve
    linkageType: ''
    returnType: bool
    signature: "bool extract_single_file(bdecode_node const& dict, file_storage& files\n\t\t,
      std::string const& root_dir, std::ptrdiff_t const info_offset\n\t\t, char const*
      info_buffer, bool const top_level, error_code& ec)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:610,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:626,1
    - Dst: dict_at_node
      Src: /src/libtorrent/src/torrent_info.cpp:628,1
    - Dst: auto::second::type
      Src: /src/libtorrent/src/torrent_info.cpp:629,1
    - Dst: auto::first::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:629,1
    - Dst: auto::first::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:635,1
    - Dst: static_cast<size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:636,1
    - Dst: auto::first::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:636,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/torrent_info.cpp:637,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/torrent_info.cpp:637,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/torrent_info.cpp:638,1
    - Dst: auto::second::dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: auto::second::dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/torrent_info.cpp:640,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:641,1
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:643,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:644,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:648,1
    - Dst: std::string::length
      Src: /src/libtorrent/src/torrent_info.cpp:648,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:649,1
    - Dst: libtorrent::extract_single_file2
      Src: /src/libtorrent/src/torrent_info.cpp:655,1
    - Dst: auto::second::dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:655,1
    - Dst: libtorrent::extract_files2
      Src: /src/libtorrent/src/torrent_info.cpp:663,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 8
    argNames:
    - ' tree'
    - ' target'
    - ' root_dir'
    - info_offset
    - info_buffer
    - has_files
    - depth
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - ptrdiff_t
    - char*
    - bool
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 671
    functionName: libtorrent::extract_files2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 4
    functionsReached:
    - auto::first::string_value
    - libtorrent::type
    - auto::first::string_length
    - libtorrent::empty
    - libtorrent::extract_files2
    - auto::second::dict_size
    - static_cast<size_t>
    - std::string::length
    - auto::second::dict_at
    - string_view::empty
    - libtorrent::extract_single_file2
    - auto::second::type
    - std::string::substr
    - libtorrent::aux::sanitize_append_path_element
    - std::string
    - dict_at_node
    - std::string::size
    - string_view::size
    - auto::first::string_offset
    - string_view::front
    - dict_size
    - string_view::remove_prefix
    linkageType: ''
    returnType: bool
    signature: "bool extract_files2(bdecode_node const& tree, file_storage& target\n\t\t,
      std::string const& root_dir, ptrdiff_t const info_offset\n\t\t, char const*
      info_buffer\n\t\t, bool const has_files, int const depth, error_code& ec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/torrent_info.cpp:679,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent_info.cpp:684,1
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:684,1
    - Dst: list_size
      Src: /src/libtorrent/src/torrent_info.cpp:686,1
    - Dst: libtorrent::extract_single_file
      Src: /src/libtorrent/src/torrent_info.cpp:688,1
    - Dst: list_at
      Src: /src/libtorrent/src/torrent_info.cpp:688,1
    - Dst: sanitize_symlinks
      Src: /src/libtorrent/src/torrent_info.cpp:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - ' list'
    - ' target'
    - ' root_dir'
    - info_offset
    - info_buffer
    - ' ec'
    argTypes:
    - bdecode_node
    - file_storage
    - std::string
    - std::ptrdiff_t
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 695
    functionName: libtorrent::extract_files
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - list_size
    - libtorrent::type
    - reserve
    - sanitize_symlinks
    - list_at
    - libtorrent::extract_single_file
    linkageType: ''
    returnType: bool
    signature: "bool extract_files(bdecode_node const& list, file_storage& target\n\t\t,
      std::string const& root_dir, std::ptrdiff_t info_offset\n\t\t, char const* info_buffer,
      error_code& ec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/torrent_info.cpp:700,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/torrent_info.cpp:702,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/torrent_info.cpp:702,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/torrent_info.cpp:704,1
    - Dst: c_str
      Src: /src/libtorrent/src/torrent_info.cpp:704,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:706,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:708,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:708,1
    - Dst: std::fseek
      Src: /src/libtorrent/src/torrent_info.cpp:712,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:712,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:714,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:714,1
    - Dst: std::ftell
      Src: /src/libtorrent/src/torrent_info.cpp:717,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:717,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:720,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:720,1
    - Dst: std::fseek
      Src: /src/libtorrent/src/torrent_info.cpp:728,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:728,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:730,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:730,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:733,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:733,1
    - Dst: std::fread
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:735,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:736,1
    - Dst: std::feof
      Src: /src/libtorrent/src/torrent_info.cpp:738,1
    - Dst: aux::file_pointer::file
      Src: /src/libtorrent/src/torrent_info.cpp:738,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:740,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/torrent_info.cpp:743,1
    - Dst: generic_category
      Src: /src/libtorrent/src/torrent_info.cpp:743,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ' filename'
    - ' v'
    - ' ec'
    argTypes:
    - std::string
    - std::vector<char>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 747
    functionName: libtorrent::load_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - std::fread
    - libtorrent::size
    - c_str
    - aux::file_pointer::file
    - libtorrent::assign
    - libtorrent::data
    - ::_wfopen
    - generic_category
    - resize
    - std::fopen
    - libtorrent::convert_to_native_path_string
    - std::size_t
    - std::feof
    - std::fseek
    - std::ftell
    linkageType: ''
    returnType: int
    signature: "int load_file(std::string const& filename, std::vector<char>& v\n\t\t,
      error_code& ec, int const max_buffer_size = 80000000)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:754,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:755,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:756,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/torrent_info.cpp:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - url_
    - type_
    - auth_
    - extra_headers_
    argTypes:
    - std::string
    - type_t
    - std::string
    - headers_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: libtorrent::web_seed_entry::web_seed_entry
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: "void web_seed_entry::web_seed_entry(std::string url_, type_t type_\n\t\t,
      std::string auth_\n\t\t, headers_t extra_headers_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: all_path_hashes
      Src: /src/libtorrent/src/torrent_info.cpp:776,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:777,1
    - Dst: file_path_hash
      Src: /src/libtorrent/src/torrent_info.cpp:781,1
    - Dst: std::unordered_set::insert
      Src: /src/libtorrent/src/torrent_info.cpp:782,1
    - Dst: libtorrent::torrent_info::resolve_duplicate_filenames_slow
      Src: /src/libtorrent/src/torrent_info.cpp:787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 791
    functionName: libtorrent::torrent_info::resolve_duplicate_filenames
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - all_path_hashes
    - file_path_hash
    - file_range
    - std::unordered_set::insert
    - libtorrent::torrent_info::resolve_duplicate_filenames_slow
    linkageType: ''
    returnType: void
    signature: void torrent_info::resolve_duplicate_filenames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_byte
      Src: /src/libtorrent/src/torrent_info.cpp:799,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/torrent_info.cpp:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' crc'
    - str
    argTypes:
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: libtorrent::process_string_lowercase
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_lower
    - process_byte
    linkageType: ''
    returnType: void
    signature: void process_string_lowercase(CRC& crc, string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_byte
      Src: /src/libtorrent/src/torrent_info.cpp:799,1
    - Dst: libtorrent::to_lower
      Src: /src/libtorrent/src/torrent_info.cpp:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' crc'
    - str
    argTypes:
    - CRC
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: libtorrent::process_string_lowercase
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_lower
    - process_byte
    linkageType: ''
    returnType: void
    signature: void process_string_lowercase(CRC& crc, string_view str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: paths
      Src: /src/libtorrent/src/torrent_info.cpp:817,1
    - Dst: std::unordered_multimap::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:818,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:818,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:818,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent_info.cpp:818,1
    - Dst: name
      Src: /src/libtorrent/src/torrent_info.cpp:824,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/torrent_info.cpp:826,1
    - Dst: name
      Src: /src/libtorrent/src/torrent_info.cpp:826,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:832,1
    - Dst: auto::process_byte
      Src: /src/libtorrent/src/torrent_info.cpp:832,1
    - Dst: std::unordered_multimap::insert
      Src: /src/libtorrent/src/torrent_info.cpp:837,1
    - Dst: auto::checksum
      Src: /src/libtorrent/src/torrent_info.cpp:837,1
    - Dst: auto::process_byte
      Src: /src/libtorrent/src/torrent_info.cpp:838,1
    - Dst: to_lower
      Src: /src/libtorrent/src/torrent_info.cpp:838,1
    - Dst: std::unordered_multimap::insert
      Src: /src/libtorrent/src/torrent_info.cpp:841,1
    - Dst: auto::checksum
      Src: /src/libtorrent/src/torrent_info.cpp:841,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:841,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:849,1
    - Dst: file_path_hash
      Src: /src/libtorrent/src/torrent_info.cpp:853,1
    - Dst: std::unordered_multimap::equal_range
      Src: /src/libtorrent/src/torrent_info.cpp:854,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent_info.cpp:855,1
    - Dst: combine_path
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: name
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: substr
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:858,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent_info.cpp:859,1
    - Dst: string_equal_no_case
      Src: /src/libtorrent/src/torrent_info.cpp:860,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent_info.cpp:860,1
    - Dst: std::unordered_multimap::insert
      Src: /src/libtorrent/src/torrent_info.cpp:865,1
    - Dst: file_flags
      Src: /src/libtorrent/src/torrent_info.cpp:873,1
    - Dst: file_flags
      Src: /src/libtorrent/src/torrent_info.cpp:874,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:875,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:875,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent_info.cpp:878,1
    - Dst: remove_extension
      Src: /src/libtorrent/src/torrent_info.cpp:879,1
    - Dst: extension
      Src: /src/libtorrent/src/torrent_info.cpp:880,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/torrent_info.cpp:886,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/torrent_info.cpp:886,1
    - Dst: process_string_lowercase
      Src: /src/libtorrent/src/torrent_info.cpp:890,1
    - Dst: boost::crc_optimal::checksum
      Src: /src/libtorrent/src/torrent_info.cpp:891,1
    - Dst: std::unordered_multimap::find
      Src: /src/libtorrent/src/torrent_info.cpp:892,1
    - Dst: std::unordered_multimap::end
      Src: /src/libtorrent/src/torrent_info.cpp:892,1
    - Dst: std::unordered_multimap::insert
      Src: /src/libtorrent/src/torrent_info.cpp:894,1
    - Dst: libtorrent::torrent_info::copy_on_write
      Src: /src/libtorrent/src/torrent_info.cpp:905,1
    - Dst: libtorrent::torrent_info::rename_file
      Src: /src/libtorrent/src/torrent_info.cpp:906,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 908
    functionName: libtorrent::torrent_info::resolve_duplicate_filenames_slow
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - paths
    - empty
    - std::unordered_multimap::find
    - std::unordered_multimap::reserve
    - file_size
    - substr
    - auto::process_byte
    - string_equal_no_case
    - libtorrent::torrent_info::rename_file
    - file_path_hash
    - aux::numeric_cast<std::size_t>
    - extension
    - libtorrent::torrent_info::copy_on_write
    - file_path
    - std::size_t
    - std::unordered_multimap::end
    - file_range
    - file_flags
    - std::unordered_multimap::insert
    - num_files
    - std::snprintf
    - auto::checksum
    - process_string_lowercase
    - size
    - to_lower
    - std::find_if
    - combine_path
    - name
    - remove_extension
    - std::string::c_str
    - boost::crc_optimal::checksum
    - std::unordered_multimap::equal_range
    linkageType: ''
    returnType: void
    signature: void torrent_info::resolve_duplicate_filenames_slow()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:914,1
    - Dst: is_loaded
      Src: /src/libtorrent/src/torrent_info.cpp:914,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:917,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent_info.cpp:917,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent_info.cpp:917,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent_info.cpp:919,1
    - Dst: total_size
      Src: /src/libtorrent/src/torrent_info.cpp:919,1
    - Dst: libtorrent::torrent_info::copy_on_write
      Src: /src/libtorrent/src/torrent_info.cpp:920,1
    - Dst: set_num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:922,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:922,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:923,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 924
    functionName: libtorrent::torrent_info::remap_files
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - total_size
    - is_loaded
    - set_num_pieces
    - libtorrent::torrent_info::copy_on_write
    - set_piece_length
    - TORRENT_ASSERT
    - num_pieces
    - piece_length
    linkageType: ''
    returnType: void
    signature: void torrent_info::remap_files(file_storage const& f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/torrent_info.cpp:932,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/torrent_info.cpp:936,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:936,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/torrent_info.cpp:936,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:939,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:945,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:946,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' torrent_file'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 928
    functionDepth: 4
    functionLinenumber: 928
    functionLinenumberEnd: 951
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - aux::throw_ex<system_error>
    - std::vector::empty
    - libtorrent::torrent_info::parse_torrent_file
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(entry const& torrent_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' torrent_file'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 957
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(bdecode_node const& torrent_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(span<char const> buffer, from_span_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 965
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(std::string const& filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:971,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' torrent_file'
    - ' cfg'
    argTypes:
    - bdecode_node
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 967
    functionDepth: 4
    functionLinenumber: 967
    functionLinenumberEnd: 975
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(bdecode_node const& torrent_file\n\t\t,
      load_torrent_limits const& cfg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:981,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:983,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:985,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - ' cfg'
    argTypes:
    - span<char const>
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 977
    functionDepth: 4
    functionLinenumber: 977
    functionLinenumberEnd: 989
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - aux::throw_ex<system_error>
    - bdecode
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(span<char const> buffer\n\t\t, load_torrent_limits
      const& cfg, from_span_t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/libtorrent/src/torrent_info.cpp:996,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:997,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:999,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:1001,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:1003,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/torrent_info.cpp:1004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' filename'
    - ' cfg'
    argTypes:
    - std::string
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 1007
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - load_file
    - bdecode
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(std::string const& filename\n\t\t,
      load_torrent_limits const& cfg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1012,1
    - Dst: is_loaded
      Src: /src/libtorrent/src/torrent_info.cpp:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1014
    functionName: '& torrent_info::orig_files() const'
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_loaded
    linkageType: ''
    returnType: file_storage
    signature: file_storage & torrent_info::orig_files() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1018,1
    - Dst: is_loaded
      Src: /src/libtorrent/src/torrent_info.cpp:1018,1
    - Dst: file_path
      Src: /src/libtorrent/src/torrent_info.cpp:1019,1
    - Dst: libtorrent::torrent_info::copy_on_write
      Src: /src/libtorrent/src/torrent_info.cpp:1020,1
    - Dst: libtorrent::torrent_info::rename_file
      Src: /src/libtorrent/src/torrent_info.cpp:1021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - ' new_filename'
    argTypes:
    - file_index_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1022
    functionName: libtorrent::torrent_info::rename_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 4
    functionsReached:
    - is_loaded
    - libtorrent::torrent_info::copy_on_write
    - TORRENT_ASSERT
    - file_path
    - libtorrent::torrent_info::rename_file
    linkageType: ''
    returnType: void
    signature: void torrent_info::rename_file(file_index_t index, std::string const&
      new_filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' torrent_file'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1024
    functionDepth: 4
    functionLinenumber: 1024
    functionLinenumberEnd: 1029
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(bdecode_node const& torrent_file\n\t\t,
      error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:1034,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - ' ec'
    argTypes:
    - span<char const>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1039
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - bdecode
    linkageType: ''
    returnType: void
    signature: "void torrent_info::torrent_info(span<char const> buffer\n\t\t, error_code&
      ec, from_span_t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/libtorrent/src/torrent_info.cpp:1044,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:1047,1
    - Dst: libtorrent::torrent_info::parse_torrent_file
      Src: /src/libtorrent/src/torrent_info.cpp:1049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' filename'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1041
    functionDepth: 4
    functionLinenumber: 1041
    functionLinenumberEnd: 1052
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::torrent_info::parse_torrent_file
    - load_file
    - bdecode
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(std::string const& filename, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' info_hash'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1060
    functionName: libtorrent::torrent_info::torrent_info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::torrent_info(info_hash_t const& info_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1062
    functionName: torrent_info::~torrent_info()
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::~torrent_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pl
    argTypes:
    - aux::vector<aux::vector<char>, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: libtorrent::torrent_info::set_piece_layers
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::set_piece_layers(aux::vector<aux::vector<char>,
      file_index_t> pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_hash
      Src: /src/libtorrent/src/torrent_info.cpp:1072,1
    - Dst: hash_for_piece_ptr
      Src: /src/libtorrent/src/torrent_info.cpp:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1072
    functionName: libtorrent::torrent_info::hash_for_piece
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - sha1_hash
    - hash_for_piece_ptr
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash torrent_info::hash_for_piece(piece_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1076,1
    - Dst: is_loaded
      Src: /src/libtorrent/src/torrent_info.cpp:1076,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent_info.cpp:1080,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/torrent_info.cpp:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1081
    functionName: libtorrent::torrent_info::copy_on_write
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - file_storage::file_storage
    - reset
    - is_loaded
    linkageType: ''
    returnType: void
    signature: void torrent_info::copy_on_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1088,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1089,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1091
    functionName: libtorrent::torrent_info::swap
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void torrent_info::swap(torrent_info& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:1095,1
    - Dst: char::char
      Src: /src/libtorrent/src/torrent_info.cpp:1095,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/torrent_info.cpp:1096,1
    - Dst: boost::shared_array::get
      Src: /src/libtorrent/src/torrent_info.cpp:1096,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1096,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/torrent_info.cpp:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1098
    functionName: libtorrent::torrent_info::metadata
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - std::size_t
    - char::char
    - boost::shared_array::get
    - get
    linkageType: ''
    returnType: boost::shared_array<char>
    signature: boost::shared_array<char> torrent_info::metadata() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:1109,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1109,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1114,1
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1114,1
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1115,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1117
    functionName: libtorrent::torrent_info::ssl_cert
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - dict_find_string_value
    - TORRENT_ASSERT
    - type
    - get
    - bdecode
    linkageType: ''
    returnType: string_view
    signature: string_view torrent_info::ssl_cert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_info::parse_info_section
      Src: /src/libtorrent/src/torrent_info.cpp:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' info'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1123
    functionName: libtorrent::torrent_info::parse_info_section
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::torrent_info::parse_info_section
    linkageType: ''
    returnType: bool
    signature: bool torrent_info::parse_info_section(bdecode_node const& info, error_code&
      ec)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1129,1
    - Dst: data_section
      Src: /src/libtorrent/src/torrent_info.cpp:1136,1
    - Dst: hasher
      Src: /src/libtorrent/src/torrent_info.cpp:1137,1
    - Dst: hasher256
      Src: /src/libtorrent/src/torrent_info.cpp:1138,1
    - Dst: data_section
      Src: /src/libtorrent/src/torrent_info.cpp:1139,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:1139,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/torrent_info.cpp:1145,1
    - Dst: auto::size
      Src: /src/libtorrent/src/torrent_info.cpp:1145,1
    - Dst: auto::size
      Src: /src/libtorrent/src/torrent_info.cpp:1152,1
    - Dst: reset
      Src: /src/libtorrent/src/torrent_info.cpp:1153,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1153,1
    - Dst: char::char
      Src: /src/libtorrent/src/torrent_info.cpp:1153,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/torrent_info.cpp:1154,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1154,1
    - Dst: auto::data
      Src: /src/libtorrent/src/torrent_info.cpp:1154,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1154,1
    - Dst: data_offset
      Src: /src/libtorrent/src/torrent_info.cpp:1161,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:1164,1
    - Dst: has_soft_error
      Src: /src/libtorrent/src/torrent_info.cpp:1168,1
    - Dst: v2::clear
      Src: /src/libtorrent/src/torrent_info.cpp:1185,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:1189,1
    - Dst: file_storage::set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1205,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/torrent_info.cpp:1205,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1208,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1209,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1214,1
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/src/torrent_info.cpp:1219,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1219,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/torrent_info.cpp:1220,1
    - Dst: has_v1
      Src: /src/libtorrent/src/torrent_info.cpp:1222,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/torrent_info.cpp:1223,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/torrent_info.cpp:1225,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1235,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/torrent_info.cpp:1237,1
    - Dst: extract_files2
      Src: /src/libtorrent/src/torrent_info.cpp:1240,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1241,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1244,1
    - Dst: file_storage::sanitize_symlinks
      Src: /src/libtorrent/src/torrent_info.cpp:1248,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1249,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1257,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1264,1
    - Dst: dict_find
      Src: /src/libtorrent/src/torrent_info.cpp:1273,1
    - Dst: extract_single_file
      Src: /src/libtorrent/src/torrent_info.cpp:1277,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1278,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1281,1
    - Dst: v1::clear
      Src: /src/libtorrent/src/torrent_info.cpp:1290,1
    - Dst: extract_files
      Src: /src/libtorrent/src/torrent_info.cpp:1295,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1296,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1299,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1304,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1308,1
    - Dst: file_storage::name
      Src: /src/libtorrent/src/torrent_info.cpp:1311,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1315,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1320,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1324,1
    - Dst: file_storage::num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1324,1
    - Dst: file_storage::remove_tail_padding
      Src: /src/libtorrent/src/torrent_info.cpp:1326,1
    - Dst: libtorrent::aux::files_compatible
      Src: /src/libtorrent/src/torrent_info.cpp:1329,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1332,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/src/torrent_info.cpp:1342,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1342,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1346,1
    - Dst: file_storage::set_num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1350,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/src/torrent_info.cpp:1350,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1350,1
    - Dst: file_storage::piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1351,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1354,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:1354,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1355,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1359,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1363,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1370,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1376,1
    - Dst: file_storage::num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1376,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1380,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:1384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1385,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/torrent_info.cpp:1385,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1386,1
    - Dst: static_cast<std::int32_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1387,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1389,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:1392,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1396,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1399,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1401,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1404,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1406,1
    - Dst: static_cast<std::int32_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1406,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1407,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1411,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1414,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1416,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1418,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1420,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/torrent_info.cpp:1420,1
    - Dst: bdecode_node::string_offset
      Src: /src/libtorrent/src/torrent_info.cpp:1420,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1421,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1426,1
    - Dst: file_storage::total_size
      Src: /src/libtorrent/src/torrent_info.cpp:1429,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1433,1
    - Dst: libtorrent::torrent_info::swap
      Src: /src/libtorrent/src/torrent_info.cpp:1439,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1441,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent_info.cpp:1441,1
    - Dst: libtorrent::torrent_info::v2
      Src: /src/libtorrent/src/torrent_info.cpp:1441,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 168
    argCount: 3
    argNames:
    - ' info'
    - ' ec'
    - max_pieces
    argTypes:
    - bdecode_node
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1443
    functionName: libtorrent::torrent_info::parse_info_section
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - extract_single_file
    - file_storage::set_piece_length
    - has_v2
    - bdecode_node::string_length
    - has_soft_error
    - file_storage::remove_tail_padding
    - emplace_back
    - has_v1
    - extract_files2
    - dict_find_int_value
    - push_back
    - reset
    - auto::empty
    - hasher
    - aux::numeric_cast<std::size_t>
    - file_storage::piece_length
    - bdecode_node::type
    - bdecode_node::list_size
    - dict_find
    - v1::clear
    - hasher256
    - type
    - data_section
    - char::char
    - libtorrent::aux::files_compatible
    - libtorrent::aux::sanitize_append_path_element
    - bdecode_node::string_value
    - libtorrent::aux::to_hex
    - extract_files
    - bdecode_node::string_offset
    - v2::clear
    - std::int32_t
    - set_piece_length
    - file_storage::sanitize_symlinks
    - bdecode_node::list_at
    - libtorrent::aux::max
    - auto::size
    - TORRENT_ASSERT
    - dict_find_string
    - file_storage::set_num_pieces
    - static_cast<std::int32_t>
    - file_storage::name
    - auto::data
    - std::memcpy
    - file_storage::total_size
    - data_offset
    - std::string::empty
    - file_storage::num_pieces
    - dict_find_dict
    - dict_find_list
    - file_storage::num_files
    - libtorrent::torrent_info::swap
    - libtorrent::torrent_info::v2
    - get
    linkageType: ''
    returnType: bool
    signature: "bool torrent_info::parse_info_section(bdecode_node const& info\n\t\t,
      error_code& ec, int const max_pieces)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1449,1
    - Dst: orig_files
      Src: /src/libtorrent/src/torrent_info.cpp:1456,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:1457,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:1459,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1459,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent_info.cpp:1461,1
    - Dst: root
      Src: /src/libtorrent/src/torrent_info.cpp:1461,1
    - Dst: dict_size
      Src: /src/libtorrent/src/torrent_info.cpp:1464,1
    - Dst: dict_at
      Src: /src/libtorrent/src/torrent_info.cpp:1466,1
    - Dst: auto::first::size
      Src: /src/libtorrent/src/torrent_info.cpp:1467,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1467,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1467,1
    - Dst: auto::second::type
      Src: /src/libtorrent/src/torrent_info.cpp:1468,1
    - Dst: auto::second::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1469,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1469,1
    - Dst: std::set::find
      Src: /src/libtorrent/src/torrent_info.cpp:1476,1
    - Dst: std::set::end
      Src: /src/libtorrent/src/torrent_info.cpp:1476,1
    - Dst: std::map::emplace
      Src: /src/libtorrent/src/torrent_info.cpp:1483,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/torrent_info.cpp:1483,1
    - Dst: auto::second::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1483,1
    - Dst: resize
      Src: /src/libtorrent/src/torrent_info.cpp:1486,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1486,1
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:1488,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:1490,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1490,1
    - Dst: std::map::find
      Src: /src/libtorrent/src/torrent_info.cpp:1493,1
    - Dst: root
      Src: /src/libtorrent/src/torrent_info.cpp:1493,1
    - Dst: std::map::end
      Src: /src/libtorrent/src/torrent_info.cpp:1494,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/torrent_info.cpp:1496,1
    - Dst: auto::second::size
      Src: /src/libtorrent/src/torrent_info.cpp:1498,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1498,1
    - Dst: auto::size
      Src: /src/libtorrent/src/torrent_info.cpp:1505,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1505,1
    - Dst: assign
      Src: /src/libtorrent/src/torrent_info.cpp:1511,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/torrent_info.cpp:1511,1
    - Dst: auto::end
      Src: /src/libtorrent/src/torrent_info.cpp:1511,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - ' e'
    - ' ec'
    argTypes:
    - bdecode_node
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1516
    functionName: libtorrent::torrent_info::parse_piece_layers
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - dict_at
    - sha256_hash
    - test_piece_size
    - static_cast<std::size_t>
    - file_size
    - assign
    - auto::begin
    - std::set::insert
    - auto::second::string_value
    - auto::second::string_length
    - orig_files
    - auto::second::type
    - type
    - file_range
    - std::set::find
    - num_files
    - auto::size
    - std::map::end
    - std::map::find
    - auto::second::size
    - file_num_pieces
    - root
    - std::map::emplace
    - piece_length
    - resize
    - std::set::end
    - auto::end
    - auto::first::size
    - dict_size
    linkageType: ''
    returnType: bool
    signature: bool torrent_info::parse_piece_layers(bdecode_node const& e, error_code&
      ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_info.cpp:1520,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/torrent_info.cpp:1520,1
    - Dst: end_index
      Src: /src/libtorrent/src/torrent_info.cpp:1521,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/torrent_info.cpp:1522,1
    - Dst: file_size
      Src: /src/libtorrent/src/torrent_info.cpp:1524,1
    - Dst: piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1524,1
    - Dst: root_ptr
      Src: /src/libtorrent/src/torrent_info.cpp:1526,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/torrent_info.cpp:1528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1531
    functionName: libtorrent::torrent_info::piece_layer
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - root_ptr
    - test_piece_size
    - TORRENT_ASSERT_PRECOND
    - piece_length
    - file_size
    - pad_file_at
    - file_index_t
    - end_index
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> torrent_info::piece_layer(file_index_t f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/torrent_info.cpp:1535,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/torrent_info.cpp:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1539
    functionName: libtorrent::torrent_info::free_piece_layers
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void torrent_info::free_piece_layers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1542
    functionName: libtorrent::torrent_info::internal_set_creator
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void torrent_info::internal_set_creator(string_view const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1545
    functionName: libtorrent::torrent_info::internal_set_creation_date
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info::internal_set_creation_date(std::time_t const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/src/torrent_info.cpp:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1548
    functionName: libtorrent::torrent_info::internal_set_comment
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void torrent_info::internal_set_comment(string_view const s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1552,1
    - Dst: bdecode
      Src: /src/libtorrent/src/torrent_info.cpp:1555,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1555,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1555,1
    - Dst: bdecode_node
      Src: /src/libtorrent/src/torrent_info.cpp:1557,1
    - Dst: dict_find
      Src: /src/libtorrent/src/torrent_info.cpp:1559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1560
    functionName: libtorrent::torrent_info::info
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node
    - dict_find
    - type
    - get
    - bdecode
    linkageType: ''
    returnType: bdecode_node
    signature: bdecode_node torrent_info::info(char const* key) const
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/torrent_info.cpp:1565,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/torrent_info.cpp:1571,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/torrent_info.cpp:1574,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/src/torrent_info.cpp:1577,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1577,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent_info.cpp:1581,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1581,1
    - Dst: auto::trackers::size
      Src: /src/libtorrent/src/torrent_info.cpp:1581,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1583,1
    - Dst: libtorrent::torrent_info::parse_info_section
      Src: /src/libtorrent/src/torrent_info.cpp:1592,1
    - Dst: libtorrent::torrent_info::resolve_duplicate_filenames
      Src: /src/libtorrent/src/torrent_info.cpp:1593,1
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent_info.cpp:1595,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/torrent_info.cpp:1600,1
    - Dst: libtorrent::torrent_info::parse_piece_layers
      Src: /src/libtorrent/src/torrent_info.cpp:1601,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1603,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/torrent_info.cpp:1605,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1611,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1614,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1616,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1619,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1622,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1623,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1627,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1630,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1632,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1634,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1636,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/torrent_info.cpp:1636,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1637,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1637,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1643,1
    - Dst: reserve
      Src: /src/libtorrent/src/torrent_info.cpp:1646,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1646,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1647,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1649,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1650,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1651,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/torrent_info.cpp:1653,1
    - Dst: ltrim
      Src: /src/libtorrent/src/torrent_info.cpp:1654,1
    - Dst: announce_entry::url::empty
      Src: /src/libtorrent/src/torrent_info.cpp:1655,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/torrent_info.cpp:1656,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/torrent_info.cpp:1660,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1662,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1666,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/torrent_info.cpp:1669,1
    - Dst: std::stable_sort
      Src: /src/libtorrent/src/torrent_info.cpp:1670,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1670,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1670,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1676,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1678,1
    - Dst: ltrim
      Src: /src/libtorrent/src/torrent_info.cpp:1681,1
    - Dst: is_i2p_url
      Src: /src/libtorrent/src/torrent_info.cpp:1683,1
    - Dst: announce_entry::url::empty
      Src: /src/libtorrent/src/torrent_info.cpp:1685,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1685,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/torrent_info.cpp:1688,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1691,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1693,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1694,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1695,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1696,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1697,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1699,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1700,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1701,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/torrent_info.cpp:1706,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/torrent_info.cpp:1709,1
    - Dst: dict_find
      Src: /src/libtorrent/src/torrent_info.cpp:1713,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1714,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1715,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/src/torrent_info.cpp:1717,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1717,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1719,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/torrent_info.cpp:1720,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1721,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1721,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1723,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1727,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1729,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1730,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1731,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/src/torrent_info.cpp:1732,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1732,1
    - Dst: num_files
      Src: /src/libtorrent/src/torrent_info.cpp:1734,1
    - Dst: ensure_trailing_slash
      Src: /src/libtorrent/src/torrent_info.cpp:1735,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent_info.cpp:1736,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1737,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1737,1
    - Dst: dict_find
      Src: /src/libtorrent/src/torrent_info.cpp:1742,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1743,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1744,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1746,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/src/torrent_info.cpp:1746,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1746,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1749,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/torrent_info.cpp:1753,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/torrent_info.cpp:1755,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/torrent_info.cpp:1756,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/torrent_info.cpp:1756,1
    - Dst: maybe_url_encode
      Src: /src/libtorrent/src/torrent_info.cpp:1757,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1757,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/torrent_info.cpp:1758,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1759,1
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1759,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1763,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1764,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1764,1
    - Dst: libtorrent::aux::verify_encoding
      Src: /src/libtorrent/src/torrent_info.cpp:1765,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1767,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1768,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/torrent_info.cpp:1768,1
    - Dst: libtorrent::aux::verify_encoding
      Src: /src/libtorrent/src/torrent_info.cpp:1769,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 125
    argCount: 3
    argNames:
    - ' torrent_file'
    - ' ec'
    - piece_limit
    argTypes:
    - bdecode_node
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1562
    functionDepth: 3
    functionLinenumber: 1562
    functionLinenumberEnd: 1772
    functionName: libtorrent::torrent_info::parse_torrent_file
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 14
    functionsReached:
    - libtorrent::torrent_info::resolve_duplicate_filenames
    - ltrim
    - std::move
    - begin
    - has_v2
    - empty
    - bdecode_node::string_length
    - emplace_back
    - libtorrent::aux::random_shuffle
    - std::stable_sort
    - libtorrent::torrent_info::parse_info_section
    - bdecode_node::string_ptr
    - parse_magnet_uri
    - push_back
    - dict_find_int_value
    - libtorrent::aux::verify_encoding
    - bdecode_node::type
    - aux::numeric_cast<std::size_t>
    - std::uint8_t
    - dict_find_string_value
    - bdecode_node::list_size
    - end
    - dict_find
    - bdecode_node::list_string_value_at
    - type
    - bdecode_node::string_value
    - maybe_url_encode
    - std::time_t
    - num_files
    - set_piece_length
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - reserve
    - libtorrent::torrent_info::parse_piece_layers
    - dict_find_string
    - is_i2p_url
    - size
    - ensure_trailing_slash
    - auto::trackers::size
    - dict_find_dict
    - dict_find_list
    - announce_entry::url::empty
    - std::set::insert
    linkageType: ''
    returnType: bool
    signature: "bool torrent_info::parse_torrent_file(bdecode_node const& torrent_file\n\t\t,
      error_code& ec, int const piece_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_info::add_tracker
      Src: /src/libtorrent/src/torrent_info.cpp:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' url'
    - tier
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1774
    functionDepth: 0
    functionLinenumber: 1774
    functionLinenumberEnd: 1777
    functionName: libtorrent::torrent_info::add_tracker
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::torrent_info::add_tracker
    linkageType: ''
    returnType: void
    signature: void torrent_info::add_tracker(std::string const& url, int const tier)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/torrent_info.cpp:1782,1
    - Dst: empty
      Src: /src/libtorrent/src/torrent_info.cpp:1782,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/torrent_info.cpp:1783,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1783,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1783,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1785,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/torrent_info.cpp:1788,1
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1790,1
    - Dst: std::sort
      Src: /src/libtorrent/src/torrent_info.cpp:1792,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1792,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' url'
    - tier
    - source
    argTypes:
    - std::string
    - int
    - announce_entry::tracker_source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1779
    functionDepth: 1
    functionLinenumber: 1779
    functionLinenumberEnd: 1795
    functionName: libtorrent::torrent_info::add_tracker
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - begin
    - std::uint8_t
    - empty
    - end
    - TORRENT_ASSERT_PRECOND
    - std::sort
    - std::find_if
    linkageType: ''
    returnType: void
    signature: "void torrent_info::add_tracker(std::string const& url, int const tier\n\t\t,
      announce_entry::tracker_source const source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/torrent_info.cpp:1799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1797
    functionDepth: 1
    functionLinenumber: 1797
    functionLinenumberEnd: 1800
    functionName: libtorrent::torrent_info::clear_trackers
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void torrent_info::clear_trackers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t_
    argTypes:
    - web_seed_entry::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1807
    functionName: libtorrent::filter_web_seed_type
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void filter_web_seed_type(web_seed_entry::type_t t_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - web_seed_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1809
    functionName: operator() (web_seed_entry const& w)
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void operator() (web_seed_entry const& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t_
    argTypes:
    - web_seed_entry::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1807
    functionName: libtorrent::filter_web_seed_type
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void filter_web_seed_type(web_seed_entry::type_t t_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' w'
    argTypes:
    - web_seed_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1809
    functionName: operator() (web_seed_entry const& w)
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void operator() (web_seed_entry const& w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/src/torrent_info.cpp:1817,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1817,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1817,1
    - Dst: filter_web_seed_type
      Src: /src/libtorrent/src/torrent_info.cpp:1818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1819
    functionName: libtorrent::torrent_info::url_seeds
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - begin
    - filter_web_seed_type
    - end
    - std::for_each
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> torrent_info::url_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/libtorrent/src/torrent_info.cpp:1823,1
    - Dst: begin
      Src: /src/libtorrent/src/torrent_info.cpp:1823,1
    - Dst: end
      Src: /src/libtorrent/src/torrent_info.cpp:1823,1
    - Dst: filter_web_seed_type
      Src: /src/libtorrent/src/torrent_info.cpp:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1821
    functionDepth: 0
    functionLinenumber: 1821
    functionLinenumberEnd: 1825
    functionName: libtorrent::torrent_info::http_seeds
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - begin
    - filter_web_seed_type
    - end
    - std::for_each
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> torrent_info::http_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' url'
    - ' ext_auth'
    - ' ext_headers'
    argTypes:
    - std::string
    - std::string
    - web_seed_entry::headers_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1834
    functionName: libtorrent::torrent_info::add_url_seed
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void torrent_info::add_url_seed(std::string const& url\n\t\t, std::string
      const& ext_auth\n\t\t, web_seed_entry::headers_t const& ext_headers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' url'
    - ' auth'
    - ' extra_headers'
    argTypes:
    - std::string
    - std::string
    - web_seed_entry::headers_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1836
    functionDepth: 0
    functionLinenumber: 1836
    functionLinenumberEnd: 1842
    functionName: libtorrent::torrent_info::add_http_seed
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: "void torrent_info::add_http_seed(std::string const& url\n\t\t, std::string
      const& auth\n\t\t, web_seed_entry::headers_t const& extra_headers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/torrent_info.cpp:1846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seeds
    argTypes:
    - std::vector<web_seed_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1844
    functionDepth: 0
    functionLinenumber: 1844
    functionLinenumberEnd: 1847
    functionName: libtorrent::torrent_info::set_web_seeds
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void torrent_info::set_web_seeds(std::vector<web_seed_entry> seeds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:1853,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1853,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1853,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1856,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1856,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1863
    functionName: libtorrent::torrent_info::similar_torrents
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::emplace_back
    - std::vector::reserve
    - get
    - size
    linkageType: ''
    returnType: std::vector<sha1_hash>
    signature: std::vector<sha1_hash> torrent_info::similar_torrents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/torrent_info.cpp:1869,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1869,1
    - Dst: size
      Src: /src/libtorrent/src/torrent_info.cpp:1869,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/torrent_info.cpp:1872,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1872,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/torrent_info.cpp:1872,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/torrent_info.cpp:1875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1879
    functionName: libtorrent::torrent_info::collections
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - aux::numeric_cast<std::size_t>
    - std::vector::emplace_back
    - std::vector::reserve
    - get
    - size
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> torrent_info::collections() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_range
      Src: /src/libtorrent/src/torrent_info.cpp:1884,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1886,1
    - Dst: file_name
      Src: /src/libtorrent/src/torrent_info.cpp:1886,1
    - Dst: owns_name
      Src: /src/libtorrent/src/torrent_info.cpp:1887,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1890,1
    - Dst: file_name
      Src: /src/libtorrent/src/torrent_info.cpp:1890,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1890,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1891,1
    - Dst: file_name
      Src: /src/libtorrent/src/torrent_info.cpp:1891,1
    - Dst: get
      Src: /src/libtorrent/src/torrent_info.cpp:1891,1
    - Dst: file_name
      Src: /src/libtorrent/src/torrent_info.cpp:1896,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1897,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/torrent_info.cpp:1897,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/torrent_info.cpp:1897,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_info.cpp:1901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1882
    functionDepth: 1
    functionLinenumber: 1882
    functionLinenumberEnd: 1902
    functionName: libtorrent::torrent_info::check_invariant
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - string_view::data
    - get
    - TORRENT_ASSERT
    - string_view::size
    - file_name
    - owns_name
    - file_range
    linkageType: ''
    returnType: void
    signature: void torrent_info::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_best
      Src: /src/libtorrent/src/torrent_info.cpp:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1908
    functionName: libtorrent::torrent_info::info_hash
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - get_best
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash torrent_info::info_hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_v1
      Src: /src/libtorrent/src/torrent_info.cpp:1910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1910
    functionName: libtorrent::torrent_info::v1
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - has_v1
    linkageType: ''
    returnType: bool
    signature: bool torrent_info::v1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_v2
      Src: /src/libtorrent/src/torrent_info.cpp:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1911
    functionDepth: 0
    functionLinenumber: 1911
    functionLinenumberEnd: 1911
    functionName: libtorrent::torrent_info::v2
    functionSourceFile: /src/libtorrent/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - has_v2
    linkageType: ''
    returnType: bool
    signature: bool torrent_info::v2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: libtorrent::libtorrent_error_category::name
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * libtorrent_error_category::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 302
    functionName: libtorrent::libtorrent_error_category::message
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string libtorrent_error_category::message(int ev) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: libtorrent::libtorrent_category
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & libtorrent_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/error_code.cpp:317,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 341
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: libtorrent::http_category
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & http_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/error_code.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: libtorrent::errors::make_error_code
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - libtorrent_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/error_code.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: libtorrent::errors::make_error_code
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - libtorrent_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: category
      Src: /src/libtorrent/src/error_code.cpp:366,1
    - Dst: value
      Src: /src/libtorrent/src/error_code.cpp:366,1
    - Dst: libtorrent::message
      Src: /src/libtorrent/src/error_code.cpp:367,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/src/error_code.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: libtorrent::print_error
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - value
    - std::stringstream::str
    - libtorrent::message
    - category
    linkageType: ''
    returnType: std::string
    signature: std::string print_error(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: libtorrent::libtorrent_error_category::name
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * libtorrent_error_category::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 302
    functionName: libtorrent::libtorrent_error_category::message
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string libtorrent_error_category::message(int ev) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: libtorrent::libtorrent_category
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & libtorrent_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/error_code.cpp:317,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 341
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: libtorrent::http_category
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & http_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/error_code.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: libtorrent::errors::make_error_code
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - libtorrent_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/error_code.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: libtorrent::errors::make_error_code
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - libtorrent_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: category
      Src: /src/libtorrent/src/error_code.cpp:366,1
    - Dst: value
      Src: /src/libtorrent/src/error_code.cpp:366,1
    - Dst: libtorrent::message
      Src: /src/libtorrent/src/error_code.cpp:367,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/src/error_code.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: libtorrent::print_error
    functionSourceFile: /src/libtorrent/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - value
    - std::stringstream::str
    - libtorrent::message
    - category
    linkageType: ''
    returnType: std::string
    signature: std::string print_error(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: libtorrent::ip_filter::ip_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_filter::ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: libtorrent::ip_filter::ip_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_filter::ip_filter(ip_filter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: libtorrent::ip_filter::ip_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_filter::ip_filter(ip_filter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ip_filter::~ip_filter()
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_filter::~ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ip_filter::empty
      Src: /src/libtorrent/src/ip_filter.cpp:48,1
    - Dst: libtorrent::ip_filter::empty
      Src: /src/libtorrent/src/ip_filter.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: libtorrent::ip_filter::empty
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::ip_filter::empty
    linkageType: ''
    returnType: bool
    signature: bool ip_filter::empty() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_filter.cpp:52,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:54,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_filter.cpp:54,1
    - Dst: libtorrent::ip_filter::add_rule
      Src: /src/libtorrent/src/ip_filter.cpp:55,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_filter.cpp:55,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_filter.cpp:55,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_filter.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:59,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_filter.cpp:59,1
    - Dst: libtorrent::ip_filter::add_rule
      Src: /src/libtorrent/src/ip_filter.cpp:60,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_filter.cpp:60,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_filter.cpp:60,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ip_filter.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' first'
    - ' last'
    - flags
    argTypes:
    - address
    - address
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: libtorrent::ip_filter::add_rule
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - is_v6
    - libtorrent::ip_filter::add_rule
    - to_v4
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - to_v6
    - is_v4
    linkageType: ''
    returnType: void
    signature: void ip_filter::add_rule(address const& first, address const& last,
      std::uint32_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_filter.cpp:68,1
    - Dst: libtorrent::ip_filter::access
      Src: /src/libtorrent/src/ip_filter.cpp:69,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_filter.cpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:70,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_filter.cpp:70,1
    - Dst: libtorrent::ip_filter::access
      Src: /src/libtorrent/src/ip_filter.cpp:71,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_filter.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: libtorrent::ip_filter::access
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - is_v6
    - libtorrent::ip_filter::access
    - to_v4
    - TORRENT_ASSERT
    - to_v6
    - is_v4
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t ip_filter::access(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/ip_filter.cpp:76,1
    - Dst: libtorrent::ip_filter::export_filter
      Src: /src/libtorrent/src/ip_filter.cpp:76,1
    - Dst: libtorrent::ip_filter::export_filter
      Src: /src/libtorrent/src/ip_filter.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: libtorrent::ip_filter::export_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - std::make_tuple
    - libtorrent::ip_filter::export_filter
    linkageType: ''
    returnType: ip_filter::filter_tuple_t
    signature: ip_filter::filter_tuple_t ip_filter::export_filter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::port_filter::port_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void port_filter::port_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::port_filter::port_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void port_filter::port_filter(port_filter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::port_filter::port_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void port_filter::port_filter(port_filter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: port_filter::~port_filter()
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void port_filter::~port_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::port_filter::add_rule
      Src: /src/libtorrent/src/ip_filter.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - first
    - last
    - flags
    argTypes:
    - std::uint16_t
    - std::uint16_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: libtorrent::port_filter::add_rule
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::port_filter::add_rule
    linkageType: ''
    returnType: void
    signature: void port_filter::add_rule(std::uint16_t first, std::uint16_t last,
      std::uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::port_filter::access
      Src: /src/libtorrent/src/ip_filter.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::port_filter::access
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::port_filter::access
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t port_filter::access(std::uint16_t port) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: Addr::begin
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: Addr::end
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: static_cast<typename Addr::value_type>
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::zero
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 4
    functionsReached:
    - std::fill
    - static_cast<typename Addr::value_type>
    - Addr::end
    - Addr::begin
    linkageType: ''
    returnType: Addr
    signature: Addr zero()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Addr::size
      Src: /src/libtorrent/src/ip_filter.cpp:111,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/ip_filter.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::plus_one
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - std::size_t
    - Addr::size
    linkageType: ''
    returnType: Addr
    signature: Addr plus_one(Addr const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Addr::size
      Src: /src/libtorrent/src/ip_filter.cpp:128,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/ip_filter.cpp:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::minus_one
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - Addr::size
    linkageType: ''
    returnType: Addr
    signature: Addr minus_one(Addr const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    - Dst: Addr::begin
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    - Dst: Addr::end
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::max_addr
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::fill
    - Addr::end
    - Addr::begin
    linkageType: ''
    returnType: Addr
    signature: Addr max_addr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    - Dst: zero<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: libtorrent::aux::filter_impl<Addr>::filter_impl
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - range
    - insert
    - zero<Addr>
    linkageType: ''
    returnType: void
    signature: void filter_impl<Addr>::filter_impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:175,1
    - Dst: size
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: zero<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: libtorrent::aux::filter_impl<Addr>::empty
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - range
    - zero<Addr>
    - size
    linkageType: ''
    returnType: bool
    signature: bool filter_impl<Addr>::empty() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:182,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:183,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:185,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:186,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:190,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:191,1
    - Dst: std::prev
      Src: /src/libtorrent/src/ip_filter.cpp:194,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:198,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:198,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:200,1
    - Dst: std::prev
      Src: /src/libtorrent/src/ip_filter.cpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:205,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:206,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:206,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_filter.cpp:208,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:208,1
    - Dst: const_cast<Addr&>
      Src: /src/libtorrent/src/ip_filter.cpp:215,1
    - Dst: const_cast<std::uint32_t&>
      Src: /src/libtorrent/src/ip_filter.cpp:216,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:220,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:223,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:225,1
    - Dst: max_addr<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:226,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: plus_one
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:233,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_filter.cpp:233,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:234,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:234,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - first
    - last
    - flags
    argTypes:
    - Addr
    - Addr
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 235
    functionName: libtorrent::aux::filter_impl<Addr>::add_rule
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - plus_one
    - const_cast<std::uint32_t&>
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - erase
    - insert
    - end
    - std::prev
    - minus_one
    - TORRENT_ASSERT
    - range
    - std::next
    - upper_bound
    - const_cast<Addr&>
    - max_addr<Addr>
    linkageType: ''
    returnType: void
    signature: void filter_impl<Addr>::add_rule(Addr first, Addr last, std::uint32_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:240,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:240,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:241,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:243,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:243,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: libtorrent::aux::filter_impl<Addr>::access
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - end
    - TORRENT_ASSERT
    - std::next
    - upper_bound
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t filter_impl<Addr>::access(Addr const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/ip_filter.cpp:254,1
    - Dst: size
      Src: /src/libtorrent/src/ip_filter.cpp:254,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:256,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:257,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:260,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:265,1
    - Dst: max_addr<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:265,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:267,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:267,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/ip_filter.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: libtorrent::aux::filter_impl<Addr>::export_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - begin
    - end
    - minus_one
    - std::vector::reserve
    - ExternalAddressType
    - size
    - max_addr<Addr>
    linkageType: ''
    returnType: std::vector<ip_range<ExternalAddressType>>
    signature: std::vector<ip_range<ExternalAddressType>> filter_impl<Addr>::export_filter()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: Addr::begin
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: Addr::end
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: static_cast<typename Addr::value_type>
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::zero
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 4
    functionsReached:
    - std::fill
    - static_cast<typename Addr::value_type>
    - Addr::end
    - Addr::begin
    linkageType: ''
    returnType: Addr
    signature: Addr zero()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Addr::size
      Src: /src/libtorrent/src/ip_filter.cpp:111,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/ip_filter.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::plus_one
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - std::size_t
    - Addr::size
    linkageType: ''
    returnType: Addr
    signature: Addr plus_one(Addr const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Addr::size
      Src: /src/libtorrent/src/ip_filter.cpp:128,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/ip_filter.cpp:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::minus_one
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - Addr::size
    linkageType: ''
    returnType: Addr
    signature: Addr minus_one(Addr const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    - Dst: Addr::begin
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    - Dst: Addr::end
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::max_addr
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::fill
    - Addr::end
    - Addr::begin
    linkageType: ''
    returnType: Addr
    signature: Addr max_addr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    - Dst: zero<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: libtorrent::aux::filter_impl<Addr>::filter_impl
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - range
    - insert
    - zero<Addr>
    linkageType: ''
    returnType: void
    signature: void filter_impl<Addr>::filter_impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:175,1
    - Dst: size
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: zero<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: libtorrent::aux::filter_impl<Addr>::empty
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 4
    functionsReached:
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - range
    - zero<Addr>
    - size
    linkageType: ''
    returnType: bool
    signature: bool filter_impl<Addr>::empty() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:182,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:183,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:185,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:186,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:190,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:191,1
    - Dst: std::prev
      Src: /src/libtorrent/src/ip_filter.cpp:194,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:198,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:198,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:200,1
    - Dst: std::prev
      Src: /src/libtorrent/src/ip_filter.cpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:205,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:206,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:206,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_filter.cpp:208,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:208,1
    - Dst: const_cast<Addr&>
      Src: /src/libtorrent/src/ip_filter.cpp:215,1
    - Dst: const_cast<std::uint32_t&>
      Src: /src/libtorrent/src/ip_filter.cpp:216,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:220,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:223,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:225,1
    - Dst: max_addr<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:226,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: plus_one
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:233,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_filter.cpp:233,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:234,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:234,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - first
    - last
    - flags
    argTypes:
    - Addr
    - Addr
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 235
    functionName: libtorrent::aux::filter_impl<Addr>::add_rule
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - plus_one
    - const_cast<std::uint32_t&>
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - erase
    - insert
    - end
    - std::prev
    - minus_one
    - TORRENT_ASSERT
    - range
    - std::next
    - upper_bound
    - const_cast<Addr&>
    - max_addr<Addr>
    linkageType: ''
    returnType: void
    signature: void filter_impl<Addr>::add_rule(Addr first, Addr last, std::uint32_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:240,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:240,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:241,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:243,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:243,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: libtorrent::aux::filter_impl<Addr>::access
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - end
    - TORRENT_ASSERT
    - std::next
    - upper_bound
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t filter_impl<Addr>::access(Addr const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/ip_filter.cpp:254,1
    - Dst: size
      Src: /src/libtorrent/src/ip_filter.cpp:254,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:256,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:257,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:260,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:265,1
    - Dst: max_addr<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:265,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:267,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:267,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/ip_filter.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: libtorrent::aux::filter_impl<Addr>::export_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - begin
    - end
    - minus_one
    - std::vector::reserve
    - ExternalAddressType
    - size
    - max_addr<Addr>
    linkageType: ''
    returnType: std::vector<ip_range<ExternalAddressType>>
    signature: std::vector<ip_range<ExternalAddressType>> filter_impl<Addr>::export_filter()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: libtorrent::ip_filter::ip_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_filter::ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: libtorrent::ip_filter::ip_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_filter::ip_filter(ip_filter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: libtorrent::ip_filter::ip_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_filter::ip_filter(ip_filter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ip_filter::~ip_filter()
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_filter::~ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ip_filter::empty
      Src: /src/libtorrent/src/ip_filter.cpp:48,1
    - Dst: libtorrent::ip_filter::empty
      Src: /src/libtorrent/src/ip_filter.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: libtorrent::ip_filter::empty
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::ip_filter::empty
    linkageType: ''
    returnType: bool
    signature: bool ip_filter::empty() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_filter.cpp:52,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:54,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_filter.cpp:54,1
    - Dst: libtorrent::ip_filter::add_rule
      Src: /src/libtorrent/src/ip_filter.cpp:55,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_filter.cpp:55,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_filter.cpp:55,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_filter.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:59,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_filter.cpp:59,1
    - Dst: libtorrent::ip_filter::add_rule
      Src: /src/libtorrent/src/ip_filter.cpp:60,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_filter.cpp:60,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_filter.cpp:60,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ip_filter.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' first'
    - ' last'
    - flags
    argTypes:
    - address
    - address
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: libtorrent::ip_filter::add_rule
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 2
    functionsReached:
    - is_v6
    - libtorrent::ip_filter::add_rule
    - to_v4
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - to_v6
    - is_v4
    linkageType: ''
    returnType: void
    signature: void ip_filter::add_rule(address const& first, address const& last,
      std::uint32_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_filter.cpp:68,1
    - Dst: libtorrent::ip_filter::access
      Src: /src/libtorrent/src/ip_filter.cpp:69,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_filter.cpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:70,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_filter.cpp:70,1
    - Dst: libtorrent::ip_filter::access
      Src: /src/libtorrent/src/ip_filter.cpp:71,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_filter.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: libtorrent::ip_filter::access
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 2
    functionsReached:
    - is_v6
    - libtorrent::ip_filter::access
    - to_v4
    - TORRENT_ASSERT
    - to_v6
    - is_v4
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t ip_filter::access(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/ip_filter.cpp:76,1
    - Dst: libtorrent::ip_filter::export_filter
      Src: /src/libtorrent/src/ip_filter.cpp:76,1
    - Dst: libtorrent::ip_filter::export_filter
      Src: /src/libtorrent/src/ip_filter.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: libtorrent::ip_filter::export_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 2
    functionsReached:
    - std::make_tuple
    - libtorrent::ip_filter::export_filter
    linkageType: ''
    returnType: ip_filter::filter_tuple_t
    signature: ip_filter::filter_tuple_t ip_filter::export_filter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::port_filter::port_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void port_filter::port_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::port_filter::port_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void port_filter::port_filter(port_filter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::port_filter::port_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void port_filter::port_filter(port_filter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: port_filter::~port_filter()
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void port_filter::~port_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::port_filter::add_rule
      Src: /src/libtorrent/src/ip_filter.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - first
    - last
    - flags
    argTypes:
    - std::uint16_t
    - std::uint16_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: libtorrent::port_filter::add_rule
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::port_filter::add_rule
    linkageType: ''
    returnType: void
    signature: void port_filter::add_rule(std::uint16_t first, std::uint16_t last,
      std::uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::port_filter::access
      Src: /src/libtorrent/src/ip_filter.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::port_filter::access
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::port_filter::access
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t port_filter::access(std::uint16_t port) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: Addr::begin
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: Addr::end
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: static_cast<typename Addr::value_type>
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::zero
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 4
    functionsReached:
    - std::fill
    - static_cast<typename Addr::value_type>
    - Addr::end
    - Addr::begin
    linkageType: ''
    returnType: Addr
    signature: Addr zero()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Addr::size
      Src: /src/libtorrent/src/ip_filter.cpp:111,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/ip_filter.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::plus_one
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - std::size_t
    - Addr::size
    linkageType: ''
    returnType: Addr
    signature: Addr plus_one(Addr const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Addr::size
      Src: /src/libtorrent/src/ip_filter.cpp:128,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/ip_filter.cpp:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::minus_one
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - Addr::size
    linkageType: ''
    returnType: Addr
    signature: Addr minus_one(Addr const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    - Dst: Addr::begin
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    - Dst: Addr::end
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::max_addr
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::fill
    - Addr::end
    - Addr::begin
    linkageType: ''
    returnType: Addr
    signature: Addr max_addr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    - Dst: zero<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: libtorrent::aux::filter_impl<Addr>::filter_impl
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - range
    - insert
    - zero<Addr>
    linkageType: ''
    returnType: void
    signature: void filter_impl<Addr>::filter_impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:175,1
    - Dst: size
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: zero<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: libtorrent::aux::filter_impl<Addr>::empty
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 7
    functionsReached:
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - range
    - zero<Addr>
    - size
    linkageType: ''
    returnType: bool
    signature: bool filter_impl<Addr>::empty() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:182,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:183,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:185,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:186,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:190,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:191,1
    - Dst: std::prev
      Src: /src/libtorrent/src/ip_filter.cpp:194,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:198,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:198,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:200,1
    - Dst: std::prev
      Src: /src/libtorrent/src/ip_filter.cpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:205,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:206,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:206,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_filter.cpp:208,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:208,1
    - Dst: const_cast<Addr&>
      Src: /src/libtorrent/src/ip_filter.cpp:215,1
    - Dst: const_cast<std::uint32_t&>
      Src: /src/libtorrent/src/ip_filter.cpp:216,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:220,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:223,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:225,1
    - Dst: max_addr<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:226,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: plus_one
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:233,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_filter.cpp:233,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:234,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:234,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - first
    - last
    - flags
    argTypes:
    - Addr
    - Addr
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 235
    functionName: libtorrent::aux::filter_impl<Addr>::add_rule
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - plus_one
    - const_cast<std::uint32_t&>
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - erase
    - insert
    - end
    - std::prev
    - minus_one
    - TORRENT_ASSERT
    - range
    - std::next
    - upper_bound
    - const_cast<Addr&>
    - max_addr<Addr>
    linkageType: ''
    returnType: void
    signature: void filter_impl<Addr>::add_rule(Addr first, Addr last, std::uint32_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:240,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:240,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:241,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:243,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:243,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: libtorrent::aux::filter_impl<Addr>::access
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - end
    - TORRENT_ASSERT
    - std::next
    - upper_bound
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t filter_impl<Addr>::access(Addr const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/ip_filter.cpp:254,1
    - Dst: size
      Src: /src/libtorrent/src/ip_filter.cpp:254,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:256,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:257,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:260,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:265,1
    - Dst: max_addr<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:265,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:267,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:267,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/ip_filter.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: libtorrent::aux::filter_impl<Addr>::export_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - begin
    - end
    - minus_one
    - std::vector::reserve
    - ExternalAddressType
    - size
    - max_addr<Addr>
    linkageType: ''
    returnType: std::vector<ip_range<ExternalAddressType>>
    signature: std::vector<ip_range<ExternalAddressType>> filter_impl<Addr>::export_filter()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: Addr::begin
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: Addr::end
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    - Dst: static_cast<typename Addr::value_type>
      Src: /src/libtorrent/src/ip_filter.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::zero
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 4
    functionsReached:
    - std::fill
    - static_cast<typename Addr::value_type>
    - Addr::end
    - Addr::begin
    linkageType: ''
    returnType: Addr
    signature: Addr zero()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Addr::size
      Src: /src/libtorrent/src/ip_filter.cpp:111,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/ip_filter.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::plus_one
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - std::size_t
    - Addr::size
    linkageType: ''
    returnType: Addr
    signature: Addr plus_one(Addr const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Addr::size
      Src: /src/libtorrent/src/ip_filter.cpp:128,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/ip_filter.cpp:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::minus_one
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - Addr::size
    linkageType: ''
    returnType: Addr
    signature: Addr minus_one(Addr const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    - Dst: Addr::begin
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    - Dst: Addr::end
      Src: /src/libtorrent/src/ip_filter.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::max_addr
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::fill
    - Addr::end
    - Addr::begin
    linkageType: ''
    returnType: Addr
    signature: Addr max_addr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    - Dst: zero<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: libtorrent::aux::filter_impl<Addr>::filter_impl
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - range
    - insert
    - zero<Addr>
    linkageType: ''
    returnType: void
    signature: void filter_impl<Addr>::filter_impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:175,1
    - Dst: size
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    - Dst: zero<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: libtorrent::aux::filter_impl<Addr>::empty
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 10
    functionsReached:
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - range
    - zero<Addr>
    - size
    linkageType: ''
    returnType: bool
    signature: bool filter_impl<Addr>::empty() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:182,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:183,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:185,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:186,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:190,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:191,1
    - Dst: std::prev
      Src: /src/libtorrent/src/ip_filter.cpp:194,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:198,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:198,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:200,1
    - Dst: std::prev
      Src: /src/libtorrent/src/ip_filter.cpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:205,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:206,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:206,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_filter.cpp:208,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:208,1
    - Dst: const_cast<Addr&>
      Src: /src/libtorrent/src/ip_filter.cpp:215,1
    - Dst: const_cast<std::uint32_t&>
      Src: /src/libtorrent/src/ip_filter.cpp:216,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:220,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:223,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:224,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:225,1
    - Dst: max_addr<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:226,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:228,1
    - Dst: insert
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: range
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: plus_one
      Src: /src/libtorrent/src/ip_filter.cpp:230,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:233,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_filter.cpp:233,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:234,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:234,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - first
    - last
    - flags
    argTypes:
    - Addr
    - Addr
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 235
    functionName: libtorrent::aux::filter_impl<Addr>::add_rule
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - plus_one
    - const_cast<std::uint32_t&>
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - erase
    - insert
    - end
    - std::prev
    - minus_one
    - TORRENT_ASSERT
    - range
    - std::next
    - upper_bound
    - const_cast<Addr&>
    - max_addr<Addr>
    linkageType: ''
    returnType: void
    signature: void filter_impl<Addr>::add_rule(Addr first, Addr last, std::uint32_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:240,1
    - Dst: libtorrent::aux::filter_impl<Addr>::empty
      Src: /src/libtorrent/src/ip_filter.cpp:240,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/ip_filter.cpp:241,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:242,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:243,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:243,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:244,1
    - Dst: std::next
      Src: /src/libtorrent/src/ip_filter.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: libtorrent::aux::filter_impl<Addr>::access
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::aux::filter_impl<Addr>::empty
    - end
    - TORRENT_ASSERT
    - std::next
    - upper_bound
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t filter_impl<Addr>::access(Addr const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/ip_filter.cpp:254,1
    - Dst: size
      Src: /src/libtorrent/src/ip_filter.cpp:254,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_filter.cpp:256,1
    - Dst: end
      Src: /src/libtorrent/src/ip_filter.cpp:257,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:260,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:265,1
    - Dst: max_addr<Addr>
      Src: /src/libtorrent/src/ip_filter.cpp:265,1
    - Dst: ExternalAddressType
      Src: /src/libtorrent/src/ip_filter.cpp:267,1
    - Dst: minus_one
      Src: /src/libtorrent/src/ip_filter.cpp:267,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/ip_filter.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: libtorrent::aux::filter_impl<Addr>::export_filter
    functionSourceFile: /src/libtorrent/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - begin
    - end
    - minus_one
    - std::vector::reserve
    - ExternalAddressType
    - size
    - max_addr<Addr>
    linkageType: ''
    returnType: std::vector<ip_range<ExternalAddressType>>
    signature: std::vector<ip_range<ExternalAddressType>> filter_impl<Addr>::export_filter()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/libtorrent/src/platform_util.cpp:89,1
    - Dst: static_cast<rlim_t>
      Src: /src/libtorrent/src/platform_util.cpp:92,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/platform_util.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: libtorrent::max_open_files
    functionSourceFile: /src/libtorrent/src/platform_util.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<rlim_t>
    - getrlimit
    linkageType: ''
    returnType: int
    signature: int max_open_files()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/platform_util.cpp:105,1
    - Dst: pthread_set_name_np
      Src: /src/libtorrent/src/platform_util.cpp:108,1
    - Dst: pthread_self
      Src: /src/libtorrent/src/platform_util.cpp:108,1
    - Dst: pthread_setname_np
      Src: /src/libtorrent/src/platform_util.cpp:110,1
    - Dst: pthread_self
      Src: /src/libtorrent/src/platform_util.cpp:110,1
    - Dst: aux::get_library_procedure<aux::kernel32, SetThreadDescription_t>
      Src: /src/libtorrent/src/platform_util.cpp:116,1
    - Dst: SetThreadDescription
      Src: /src/libtorrent/src/platform_util.cpp:125,1
    - Dst: GetCurrentThread
      Src: /src/libtorrent/src/platform_util.cpp:125,1
    - Dst: rename_thread
      Src: /src/libtorrent/src/platform_util.cpp:129,1
    - Dst: find_thread
      Src: /src/libtorrent/src/platform_util.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: libtorrent::set_thread_name
    functionSourceFile: /src/libtorrent/src/platform_util.cpp
    functionUses: 0
    functionsReached:
    - rename_thread
    - pthread_setname_np
    - aux::get_library_procedure<aux::kernel32, SetThreadDescription_t>
    - SetThreadDescription
    - find_thread
    - pthread_self
    - pthread_set_name_np
    - GetCurrentThread
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_thread_name(char const* name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/libtorrent/src/platform_util.cpp:89,1
    - Dst: static_cast<rlim_t>
      Src: /src/libtorrent/src/platform_util.cpp:92,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/platform_util.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: libtorrent::max_open_files
    functionSourceFile: /src/libtorrent/src/platform_util.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<rlim_t>
    - getrlimit
    linkageType: ''
    returnType: int
    signature: int max_open_files()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/platform_util.cpp:105,1
    - Dst: pthread_set_name_np
      Src: /src/libtorrent/src/platform_util.cpp:108,1
    - Dst: pthread_self
      Src: /src/libtorrent/src/platform_util.cpp:108,1
    - Dst: pthread_setname_np
      Src: /src/libtorrent/src/platform_util.cpp:110,1
    - Dst: pthread_self
      Src: /src/libtorrent/src/platform_util.cpp:110,1
    - Dst: aux::get_library_procedure<aux::kernel32, SetThreadDescription_t>
      Src: /src/libtorrent/src/platform_util.cpp:116,1
    - Dst: SetThreadDescription
      Src: /src/libtorrent/src/platform_util.cpp:125,1
    - Dst: GetCurrentThread
      Src: /src/libtorrent/src/platform_util.cpp:125,1
    - Dst: rename_thread
      Src: /src/libtorrent/src/platform_util.cpp:129,1
    - Dst: find_thread
      Src: /src/libtorrent/src/platform_util.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: libtorrent::set_thread_name
    functionSourceFile: /src/libtorrent/src/platform_util.cpp
    functionUses: 0
    functionsReached:
    - rename_thread
    - pthread_setname_np
    - aux::get_library_procedure<aux::kernel32, SetThreadDescription_t>
    - SetThreadDescription
    - find_thread
    - pthread_self
    - pthread_set_name_np
    - GetCurrentThread
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_thread_name(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::div_round_up
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int div_round_up(int numerator, int denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: libtorrent::ut_metadata_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ut_metadata_plugin(torrent& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/ut_metadata.cpp:109,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:110,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:112,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:115,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:117,1
    - Dst: hasher
      Src: /src/libtorrent/src/ut_metadata.cpp:117,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:118,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:122,1
    - Dst: hasher256
      Src: /src/libtorrent/src/ut_metadata.cpp:122,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: libtorrent::metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - hasher
    - valid_metadata
    - TORRENT_ASSERT
    - libtorrent::empty
    - hasher256
    - torrent_file
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> metadata() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/src/ut_metadata.cpp:142,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::metadata
    - is_seed
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:148,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:150,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:151,1
    - Dst: libtorrent::div_round_up
      Src: /src/libtorrent/src/ut_metadata.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: libtorrent::metadata_size
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - valid_metadata
    - libtorrent::div_round_up
    - resize
    linkageType: ''
    returnType: void
    signature: void metadata_size(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: '& operator=(ut_metadata_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_metadata_plugin
    signature: ut_metadata_plugin & operator=(ut_metadata_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: libtorrent::metadata_piece
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void metadata_piece()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - metadata_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: operator<(metadata_piece const& rhs) const
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(metadata_piece const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_metadata.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' t'
    - ' pc'
    - ' tp'
    argTypes:
    - torrent
    - bt_peer_connection
    - ut_metadata_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: libtorrent::ut_metadata_peer_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: "void ut_metadata_peer_plugin(torrent& t, bt_peer_connection& pc\n\t\t\t,
      ut_metadata_plugin& tp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:202,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - valid_metadata
    - libtorrent::metadata
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry& h) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_metadata.cpp:210,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/ut_metadata.cpp:211,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:214,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:218,1
    - Dst: libtorrent::metadata_size
      Src: /src/libtorrent/src/ut_metadata.cpp:220,1
    - Dst: libtorrent::set_has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:222,1
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - dict_find_int_value
    - libtorrent::maybe_send_request
    - dict_find_dict
    - bdecode_node::dict_find_int_value
    - libtorrent::set_has_metadata
    - libtorrent::metadata_size
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const& h) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:230,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/ut_metadata.cpp:230,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:235,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:236,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:237,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:244,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:250,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:251,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:255,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:255,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:256,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/ut_metadata.cpp:256,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:257,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:257,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:260,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/ut_metadata.cpp:261,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:262,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:265,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:265,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_metadata.cpp:273,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_metadata.cpp:276,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_metadata.cpp:277,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_metadata.cpp:278,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_metadata.cpp:280,1
    - Dst: libtorrent::append_const_send_buffer
      Src: /src/libtorrent/src/ut_metadata.cpp:285,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/ut_metadata.cpp:286,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ut_metadata.cpp:286,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:289,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - type
    - piece
    argTypes:
    - msg_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 291
    functionName: libtorrent::write_metadata_packet
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::min
    - libtorrent::append_const_send_buffer
    - send_buffer
    - libtorrent::bencode
    - valid_metadata
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - libtorrent::span
    - libtorrent::metadata
    - libtorrent::aux::write_uint8
    - libtorrent::stats_counters
    - libtorrent::associated_torrent
    - peer_log
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void write_metadata_packet(msg_t const type, int const piece)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:302,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:305,1
    - Dst: libtorrent::packet_finished
      Src: /src/libtorrent/src/ut_metadata.cpp:309,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_metadata.cpp:312,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/ut_metadata.cpp:313,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:316,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:319,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/ut_metadata.cpp:323,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/ut_metadata.cpp:324,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:328,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:331,1
    - Dst: msg_t
      Src: /src/libtorrent/src/ut_metadata.cpp:334,1
    - Dst: int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:334,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:335,1
    - Dst: int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:335,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:338,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:339,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:346,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:347,1
    - Dst: should_log
      Src: /src/libtorrent/src/ut_metadata.cpp:350,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:352,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:354,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:355,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:356,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:359,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/src/ut_metadata.cpp:362,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:363,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_metadata.cpp:364,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/ut_metadata.cpp:365,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:367,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/ut_metadata.cpp:372,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:372,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:373,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:376,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:379,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:385,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/src/ut_metadata.cpp:386,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:387,1
    - Dst: received_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:389,1
    - Dst: std::max
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: minutes
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/ut_metadata.cpp:395,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:395,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:396,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:398,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:399,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:404,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 3
    argNames:
    - length
    - extended_msg
    - body
    argTypes:
    - int
    - int
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 407
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - bdecode_node::data_section
    - libtorrent::write_metadata_packet
    - libtorrent::packet_finished
    - valid_metadata
    - libtorrent::send_buffer_size
    - std::max
    - minutes
    - libtorrent::push_back
    - libtorrent::aux::time_now
    - libtorrent::stats_counters
    - int_value
    - bdecode_node::type
    - msg_t
    - libtorrent::maybe_send_request
    - received_metadata
    - bdecode_node::dict_find_int
    - libtorrent::metadata
    - libtorrent::end
    - span<char const>::subspan
    - libtorrent::size
    - erase
    - libtorrent::begin
    - disconnect
    - libtorrent::find
    - libtorrent::bdecode
    - bdecode_node::dict_find_int_value
    - should_log
    - peer_log
    linkageType: ''
    returnType: bool
    signature: "bool on_extended(int const length\n\t\t\t, int const extended_msg,
      span<char const> body) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:411,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/ut_metadata.cpp:412,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/src/ut_metadata.cpp:413,1
    - Dst: libtorrent::front
      Src: /src/libtorrent/src/ut_metadata.cpp:415,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:416,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:416,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 419
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::front
    - libtorrent::maybe_send_request
    - libtorrent::write_metadata_packet
    - erase
    - libtorrent::empty
    - libtorrent::send_buffer_size
    - libtorrent::begin
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_disconnecting
      Src: /src/libtorrent/src/ut_metadata.cpp:423,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:429,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_metadata.cpp:431,1
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:432,1
    - Dst: metadata_request
      Src: /src/libtorrent/src/ut_metadata.cpp:434,1
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:434,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/ut_metadata.cpp:437,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: libtorrent::maybe_send_request
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::has_metadata
    - libtorrent::size
    - libtorrent::write_metadata_packet
    - valid_metadata
    - metadata_request
    - libtorrent::push_back
    - libtorrent::is_disconnecting
    linkageType: ''
    returnType: void
    signature: void maybe_send_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:444,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: libtorrent::has_metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::has_metadata
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: bool
    signature: bool has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/ut_metadata.cpp:449,1
    - Dst: libtorrent::random
      Src: /src/libtorrent/src/ut_metadata.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' now'
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: libtorrent::failed_hash_check
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::random
    - seconds
    linkageType: ''
    returnType: void
    signature: void failed_hash_check(time_point const& now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: '& operator=(ut_metadata_peer_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_metadata_peer_plugin
    signature: ut_metadata_peer_plugin & operator=(ut_metadata_peer_plugin const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/ut_metadata.cpp:479,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/ut_metadata.cpp:481,1
    - Dst: native_handle
      Src: /src/libtorrent/src/ut_metadata.cpp:481,1
    - Dst: std::make_shared<ut_metadata_peer_plugin>
      Src: /src/libtorrent/src/ut_metadata.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' pc'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: libtorrent::ut_metadata_plugin::new_connection
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<ut_metadata_peer_plugin>
    - native_handle
    - static_cast<bt_peer_connection*>
    - type
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: "std::shared_ptr<peer_plugin> ut_metadata_plugin::new_connection(\n\t\tpeer_connection_handle
      const& pc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/ut_metadata.cpp:490,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:491,1
    - Dst: end
      Src: /src/libtorrent/src/ut_metadata.cpp:491,1
    - Dst: empty
      Src: /src/libtorrent/src/ut_metadata.cpp:493,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:497,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:498,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:501,1
    - Dst: source::lock
      Src: /src/libtorrent/src/ut_metadata.cpp:505,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:506,1
    - Dst: min_time
      Src: /src/libtorrent/src/ut_metadata.cpp:507,1
    - Dst: auto::m_pc::is_disconnecting
      Src: /src/libtorrent/src/ut_metadata.cpp:509,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/ut_metadata.cpp:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - has_metadata
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 522
    functionName: libtorrent::ut_metadata_plugin::metadata_request
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - auto::m_pc::is_disconnecting
    - std::min_element
    - begin
    - total_seconds
    - empty
    - end
    - resize
    - source::lock
    - min_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: int
    signature: int ut_metadata_plugin::metadata_request(bool const has_metadata)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:527,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:530,1
    - Dst: add_redundant_bytes
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: empty
      Src: /src/libtorrent/src/ut_metadata.cpp:537,1
    - Dst: session
      Src: /src/libtorrent/src/ut_metadata.cpp:540,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:543,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:550,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:551,1
    - Dst: div_round_up
      Src: /src/libtorrent/src/ut_metadata.cpp:551,1
    - Dst: end_index
      Src: /src/libtorrent/src/ut_metadata.cpp:554,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:557,1
    - Dst: end_index
      Src: /src/libtorrent/src/ut_metadata.cpp:563,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:566,1
    - Dst: metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:568,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:574,1
    - Dst: metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:574,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/ut_metadata.cpp:582,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/ut_metadata.cpp:583,1
    - Dst: all_of
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: end
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/ut_metadata.cpp:586,1
    - Dst: set_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:590,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:592,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:594,1
    - Dst: size
      Src: /src/libtorrent/src/ut_metadata.cpp:601,1
    - Dst: source::lock
      Src: /src/libtorrent/src/ut_metadata.cpp:605,1
    - Dst: auto::failed_hash_check
      Src: /src/libtorrent/src/ut_metadata.cpp:608,1
    - Dst: minutes
      Src: /src/libtorrent/src/ut_metadata.cpp:608,1
    - Dst: clear
      Src: /src/libtorrent/src/ut_metadata.cpp:617,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/ut_metadata.cpp:618,1
    - Dst: clear
      Src: /src/libtorrent/src/ut_metadata.cpp:621,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/ut_metadata.cpp:622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - ' source'
    - buf
    - piece
    - total_size
    argTypes:
    - ut_metadata_peer_plugin
    - span<char const>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 625
    functionName: libtorrent::ut_metadata_plugin::received_metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - valid_metadata
    - empty
    - m_pc::peer_log
    - shrink_to_fit
    - span<char const>::size
    - minutes
    - all_of
    - libtorrent::aux::time_now
    - aux::numeric_cast<std::size_t>
    - end
    - clear
    - set_metadata
    - shared_from_this
    - session
    - libtorrent::aux::max
    - source::lock
    - end_index
    - size
    - std::memcpy
    - span<char const>::data
    - auto::failed_hash_check
    - metadata
    - add_redundant_bytes
    - resize
    - div_round_up
    linkageType: ''
    returnType: bool
    signature: "bool ut_metadata_plugin::received_metadata(ut_metadata_peer_plugin&
      source\n\t\t, span<char const> buf, int const piece, int const total_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::div_round_up
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int div_round_up(int numerator, int denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: libtorrent::ut_metadata_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ut_metadata_plugin(torrent& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/ut_metadata.cpp:109,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:110,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:112,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:115,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:117,1
    - Dst: hasher
      Src: /src/libtorrent/src/ut_metadata.cpp:117,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:118,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:122,1
    - Dst: hasher256
      Src: /src/libtorrent/src/ut_metadata.cpp:122,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: libtorrent::metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 4
    functionsReached:
    - hasher
    - valid_metadata
    - TORRENT_ASSERT
    - libtorrent::empty
    - hasher256
    - torrent_file
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> metadata() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/src/ut_metadata.cpp:142,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::metadata
    - is_seed
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:148,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:150,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:151,1
    - Dst: libtorrent::div_round_up
      Src: /src/libtorrent/src/ut_metadata.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: libtorrent::metadata_size
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 1
    functionsReached:
    - valid_metadata
    - libtorrent::div_round_up
    - resize
    linkageType: ''
    returnType: void
    signature: void metadata_size(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: '& operator=(ut_metadata_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_metadata_plugin
    signature: ut_metadata_plugin & operator=(ut_metadata_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: libtorrent::metadata_piece
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void metadata_piece()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - metadata_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: operator<(metadata_piece const& rhs) const
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(metadata_piece const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_metadata.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' t'
    - ' pc'
    - ' tp'
    argTypes:
    - torrent
    - bt_peer_connection
    - ut_metadata_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: libtorrent::ut_metadata_peer_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: "void ut_metadata_peer_plugin(torrent& t, bt_peer_connection& pc\n\t\t\t,
      ut_metadata_plugin& tp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:202,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - valid_metadata
    - libtorrent::metadata
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry& h) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_metadata.cpp:210,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/ut_metadata.cpp:211,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:214,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:218,1
    - Dst: libtorrent::metadata_size
      Src: /src/libtorrent/src/ut_metadata.cpp:220,1
    - Dst: libtorrent::set_has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:222,1
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - dict_find_int_value
    - libtorrent::maybe_send_request
    - dict_find_dict
    - bdecode_node::dict_find_int_value
    - libtorrent::set_has_metadata
    - libtorrent::metadata_size
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const& h) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:230,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/ut_metadata.cpp:230,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:235,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:236,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:237,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:244,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:250,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:251,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:255,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:255,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:256,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/ut_metadata.cpp:256,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:257,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:257,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:260,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/ut_metadata.cpp:261,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:262,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:265,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:265,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_metadata.cpp:273,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_metadata.cpp:276,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_metadata.cpp:277,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_metadata.cpp:278,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_metadata.cpp:280,1
    - Dst: libtorrent::append_const_send_buffer
      Src: /src/libtorrent/src/ut_metadata.cpp:285,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/ut_metadata.cpp:286,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ut_metadata.cpp:286,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:289,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - type
    - piece
    argTypes:
    - msg_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 291
    functionName: libtorrent::write_metadata_packet
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - libtorrent::min
    - libtorrent::append_const_send_buffer
    - send_buffer
    - libtorrent::bencode
    - valid_metadata
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - libtorrent::span
    - libtorrent::metadata
    - libtorrent::aux::write_uint8
    - libtorrent::stats_counters
    - libtorrent::associated_torrent
    - peer_log
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void write_metadata_packet(msg_t const type, int const piece)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:302,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:305,1
    - Dst: libtorrent::packet_finished
      Src: /src/libtorrent/src/ut_metadata.cpp:309,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_metadata.cpp:312,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/ut_metadata.cpp:313,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:316,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:319,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/ut_metadata.cpp:323,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/ut_metadata.cpp:324,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:328,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:331,1
    - Dst: msg_t
      Src: /src/libtorrent/src/ut_metadata.cpp:334,1
    - Dst: int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:334,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:335,1
    - Dst: int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:335,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:338,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:339,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:346,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:347,1
    - Dst: should_log
      Src: /src/libtorrent/src/ut_metadata.cpp:350,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:352,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:354,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:355,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:356,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:359,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/src/ut_metadata.cpp:362,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:363,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_metadata.cpp:364,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/ut_metadata.cpp:365,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:367,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/ut_metadata.cpp:372,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:372,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:373,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:376,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:379,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:385,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/src/ut_metadata.cpp:386,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:387,1
    - Dst: received_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:389,1
    - Dst: std::max
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: minutes
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/ut_metadata.cpp:395,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:395,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:396,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:398,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:399,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:404,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 3
    argNames:
    - length
    - extended_msg
    - body
    argTypes:
    - int
    - int
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 407
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - bdecode_node::data_section
    - libtorrent::write_metadata_packet
    - libtorrent::packet_finished
    - valid_metadata
    - libtorrent::send_buffer_size
    - std::max
    - minutes
    - libtorrent::push_back
    - libtorrent::aux::time_now
    - libtorrent::stats_counters
    - int_value
    - bdecode_node::type
    - msg_t
    - libtorrent::maybe_send_request
    - received_metadata
    - bdecode_node::dict_find_int
    - libtorrent::metadata
    - libtorrent::end
    - span<char const>::subspan
    - libtorrent::size
    - erase
    - libtorrent::begin
    - disconnect
    - libtorrent::find
    - libtorrent::bdecode
    - bdecode_node::dict_find_int_value
    - should_log
    - peer_log
    linkageType: ''
    returnType: bool
    signature: "bool on_extended(int const length\n\t\t\t, int const extended_msg,
      span<char const> body) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:411,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/ut_metadata.cpp:412,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/src/ut_metadata.cpp:413,1
    - Dst: libtorrent::front
      Src: /src/libtorrent/src/ut_metadata.cpp:415,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:416,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:416,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 419
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::front
    - libtorrent::maybe_send_request
    - libtorrent::write_metadata_packet
    - erase
    - libtorrent::empty
    - libtorrent::send_buffer_size
    - libtorrent::begin
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_disconnecting
      Src: /src/libtorrent/src/ut_metadata.cpp:423,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:429,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_metadata.cpp:431,1
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:432,1
    - Dst: metadata_request
      Src: /src/libtorrent/src/ut_metadata.cpp:434,1
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:434,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/ut_metadata.cpp:437,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: libtorrent::maybe_send_request
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::has_metadata
    - libtorrent::size
    - libtorrent::write_metadata_packet
    - valid_metadata
    - metadata_request
    - libtorrent::push_back
    - libtorrent::is_disconnecting
    linkageType: ''
    returnType: void
    signature: void maybe_send_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:444,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: libtorrent::has_metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::has_metadata
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: bool
    signature: bool has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/ut_metadata.cpp:449,1
    - Dst: libtorrent::random
      Src: /src/libtorrent/src/ut_metadata.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' now'
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: libtorrent::failed_hash_check
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::random
    - seconds
    linkageType: ''
    returnType: void
    signature: void failed_hash_check(time_point const& now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: '& operator=(ut_metadata_peer_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_metadata_peer_plugin
    signature: ut_metadata_peer_plugin & operator=(ut_metadata_peer_plugin const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/ut_metadata.cpp:479,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/ut_metadata.cpp:481,1
    - Dst: native_handle
      Src: /src/libtorrent/src/ut_metadata.cpp:481,1
    - Dst: std::make_shared<ut_metadata_peer_plugin>
      Src: /src/libtorrent/src/ut_metadata.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' pc'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: libtorrent::ut_metadata_plugin::new_connection
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<ut_metadata_peer_plugin>
    - native_handle
    - static_cast<bt_peer_connection*>
    - type
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: "std::shared_ptr<peer_plugin> ut_metadata_plugin::new_connection(\n\t\tpeer_connection_handle
      const& pc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/ut_metadata.cpp:490,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:491,1
    - Dst: end
      Src: /src/libtorrent/src/ut_metadata.cpp:491,1
    - Dst: empty
      Src: /src/libtorrent/src/ut_metadata.cpp:493,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:497,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:498,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:501,1
    - Dst: source::lock
      Src: /src/libtorrent/src/ut_metadata.cpp:505,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:506,1
    - Dst: min_time
      Src: /src/libtorrent/src/ut_metadata.cpp:507,1
    - Dst: auto::m_pc::is_disconnecting
      Src: /src/libtorrent/src/ut_metadata.cpp:509,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/ut_metadata.cpp:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - has_metadata
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 522
    functionName: libtorrent::ut_metadata_plugin::metadata_request
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - auto::m_pc::is_disconnecting
    - std::min_element
    - begin
    - total_seconds
    - empty
    - end
    - resize
    - source::lock
    - min_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: int
    signature: int ut_metadata_plugin::metadata_request(bool const has_metadata)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:527,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:530,1
    - Dst: add_redundant_bytes
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: empty
      Src: /src/libtorrent/src/ut_metadata.cpp:537,1
    - Dst: session
      Src: /src/libtorrent/src/ut_metadata.cpp:540,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:543,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:550,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:551,1
    - Dst: div_round_up
      Src: /src/libtorrent/src/ut_metadata.cpp:551,1
    - Dst: end_index
      Src: /src/libtorrent/src/ut_metadata.cpp:554,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:557,1
    - Dst: end_index
      Src: /src/libtorrent/src/ut_metadata.cpp:563,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:566,1
    - Dst: metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:568,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:574,1
    - Dst: metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:574,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/ut_metadata.cpp:582,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/ut_metadata.cpp:583,1
    - Dst: all_of
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: end
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/ut_metadata.cpp:586,1
    - Dst: set_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:590,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:592,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:594,1
    - Dst: size
      Src: /src/libtorrent/src/ut_metadata.cpp:601,1
    - Dst: source::lock
      Src: /src/libtorrent/src/ut_metadata.cpp:605,1
    - Dst: auto::failed_hash_check
      Src: /src/libtorrent/src/ut_metadata.cpp:608,1
    - Dst: minutes
      Src: /src/libtorrent/src/ut_metadata.cpp:608,1
    - Dst: clear
      Src: /src/libtorrent/src/ut_metadata.cpp:617,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/ut_metadata.cpp:618,1
    - Dst: clear
      Src: /src/libtorrent/src/ut_metadata.cpp:621,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/ut_metadata.cpp:622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - ' source'
    - buf
    - piece
    - total_size
    argTypes:
    - ut_metadata_peer_plugin
    - span<char const>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 625
    functionName: libtorrent::ut_metadata_plugin::received_metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - valid_metadata
    - empty
    - m_pc::peer_log
    - shrink_to_fit
    - span<char const>::size
    - minutes
    - all_of
    - libtorrent::aux::time_now
    - aux::numeric_cast<std::size_t>
    - end
    - clear
    - set_metadata
    - shared_from_this
    - session
    - libtorrent::aux::max
    - source::lock
    - end_index
    - size
    - std::memcpy
    - span<char const>::data
    - auto::failed_hash_check
    - metadata
    - add_redundant_bytes
    - resize
    - div_round_up
    linkageType: ''
    returnType: bool
    signature: "bool ut_metadata_plugin::received_metadata(ut_metadata_peer_plugin&
      source\n\t\t, span<char const> buf, int const piece, int const total_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::div_round_up
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int div_round_up(int numerator, int denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: libtorrent::ut_metadata_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ut_metadata_plugin(torrent& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/ut_metadata.cpp:109,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:110,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:112,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:115,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:117,1
    - Dst: hasher
      Src: /src/libtorrent/src/ut_metadata.cpp:117,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:118,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:122,1
    - Dst: hasher256
      Src: /src/libtorrent/src/ut_metadata.cpp:122,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: libtorrent::metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 8
    functionsReached:
    - hasher
    - valid_metadata
    - TORRENT_ASSERT
    - libtorrent::empty
    - hasher256
    - torrent_file
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> metadata() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/src/ut_metadata.cpp:142,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::metadata
    - is_seed
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:148,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:150,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:151,1
    - Dst: libtorrent::div_round_up
      Src: /src/libtorrent/src/ut_metadata.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: libtorrent::metadata_size
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 2
    functionsReached:
    - valid_metadata
    - libtorrent::div_round_up
    - resize
    linkageType: ''
    returnType: void
    signature: void metadata_size(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: '& operator=(ut_metadata_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_metadata_plugin
    signature: ut_metadata_plugin & operator=(ut_metadata_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: libtorrent::metadata_piece
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void metadata_piece()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - metadata_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: operator<(metadata_piece const& rhs) const
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(metadata_piece const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_metadata.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' t'
    - ' pc'
    - ' tp'
    argTypes:
    - torrent
    - bt_peer_connection
    - ut_metadata_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: libtorrent::ut_metadata_peer_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: "void ut_metadata_peer_plugin(torrent& t, bt_peer_connection& pc\n\t\t\t,
      ut_metadata_plugin& tp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:202,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - valid_metadata
    - libtorrent::metadata
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry& h) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_metadata.cpp:210,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/ut_metadata.cpp:211,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:214,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:218,1
    - Dst: libtorrent::metadata_size
      Src: /src/libtorrent/src/ut_metadata.cpp:220,1
    - Dst: libtorrent::set_has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:222,1
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - dict_find_int_value
    - libtorrent::maybe_send_request
    - dict_find_dict
    - bdecode_node::dict_find_int_value
    - libtorrent::set_has_metadata
    - libtorrent::metadata_size
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const& h) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:230,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/ut_metadata.cpp:230,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:235,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:236,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:237,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:244,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:250,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:251,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:255,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:255,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:256,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/ut_metadata.cpp:256,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:257,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:257,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:260,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/ut_metadata.cpp:261,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:262,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:265,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:265,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_metadata.cpp:273,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_metadata.cpp:276,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_metadata.cpp:277,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_metadata.cpp:278,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_metadata.cpp:280,1
    - Dst: libtorrent::append_const_send_buffer
      Src: /src/libtorrent/src/ut_metadata.cpp:285,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/ut_metadata.cpp:286,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ut_metadata.cpp:286,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:289,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - type
    - piece
    argTypes:
    - msg_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 291
    functionName: libtorrent::write_metadata_packet
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - libtorrent::min
    - libtorrent::append_const_send_buffer
    - send_buffer
    - libtorrent::bencode
    - valid_metadata
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - libtorrent::span
    - libtorrent::metadata
    - libtorrent::aux::write_uint8
    - libtorrent::stats_counters
    - libtorrent::associated_torrent
    - peer_log
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void write_metadata_packet(msg_t const type, int const piece)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:302,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:305,1
    - Dst: libtorrent::packet_finished
      Src: /src/libtorrent/src/ut_metadata.cpp:309,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_metadata.cpp:312,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/ut_metadata.cpp:313,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:316,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:319,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/ut_metadata.cpp:323,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/ut_metadata.cpp:324,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:328,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:331,1
    - Dst: msg_t
      Src: /src/libtorrent/src/ut_metadata.cpp:334,1
    - Dst: int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:334,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:335,1
    - Dst: int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:335,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:338,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:339,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:346,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:347,1
    - Dst: should_log
      Src: /src/libtorrent/src/ut_metadata.cpp:350,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:352,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:354,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:355,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:356,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:359,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/src/ut_metadata.cpp:362,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:363,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_metadata.cpp:364,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/ut_metadata.cpp:365,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:367,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/ut_metadata.cpp:372,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:372,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:373,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:376,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:379,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:385,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/src/ut_metadata.cpp:386,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:387,1
    - Dst: received_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:389,1
    - Dst: std::max
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: minutes
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/ut_metadata.cpp:395,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:395,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:396,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:398,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:399,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:404,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 3
    argNames:
    - length
    - extended_msg
    - body
    argTypes:
    - int
    - int
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 407
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - bdecode_node::data_section
    - libtorrent::write_metadata_packet
    - libtorrent::packet_finished
    - valid_metadata
    - libtorrent::send_buffer_size
    - std::max
    - minutes
    - libtorrent::push_back
    - libtorrent::aux::time_now
    - libtorrent::stats_counters
    - int_value
    - bdecode_node::type
    - msg_t
    - libtorrent::maybe_send_request
    - received_metadata
    - bdecode_node::dict_find_int
    - libtorrent::metadata
    - libtorrent::end
    - span<char const>::subspan
    - libtorrent::size
    - erase
    - libtorrent::begin
    - disconnect
    - libtorrent::find
    - libtorrent::bdecode
    - bdecode_node::dict_find_int_value
    - should_log
    - peer_log
    linkageType: ''
    returnType: bool
    signature: "bool on_extended(int const length\n\t\t\t, int const extended_msg,
      span<char const> body) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:411,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/ut_metadata.cpp:412,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/src/ut_metadata.cpp:413,1
    - Dst: libtorrent::front
      Src: /src/libtorrent/src/ut_metadata.cpp:415,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:416,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:416,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 419
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::front
    - libtorrent::maybe_send_request
    - libtorrent::write_metadata_packet
    - erase
    - libtorrent::empty
    - libtorrent::send_buffer_size
    - libtorrent::begin
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_disconnecting
      Src: /src/libtorrent/src/ut_metadata.cpp:423,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:429,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_metadata.cpp:431,1
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:432,1
    - Dst: metadata_request
      Src: /src/libtorrent/src/ut_metadata.cpp:434,1
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:434,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/ut_metadata.cpp:437,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: libtorrent::maybe_send_request
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::has_metadata
    - libtorrent::size
    - libtorrent::write_metadata_packet
    - valid_metadata
    - metadata_request
    - libtorrent::push_back
    - libtorrent::is_disconnecting
    linkageType: ''
    returnType: void
    signature: void maybe_send_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:444,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: libtorrent::has_metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::has_metadata
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: bool
    signature: bool has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/ut_metadata.cpp:449,1
    - Dst: libtorrent::random
      Src: /src/libtorrent/src/ut_metadata.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' now'
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: libtorrent::failed_hash_check
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::random
    - seconds
    linkageType: ''
    returnType: void
    signature: void failed_hash_check(time_point const& now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: '& operator=(ut_metadata_peer_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_metadata_peer_plugin
    signature: ut_metadata_peer_plugin & operator=(ut_metadata_peer_plugin const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/ut_metadata.cpp:479,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/ut_metadata.cpp:481,1
    - Dst: native_handle
      Src: /src/libtorrent/src/ut_metadata.cpp:481,1
    - Dst: std::make_shared<ut_metadata_peer_plugin>
      Src: /src/libtorrent/src/ut_metadata.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' pc'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: libtorrent::ut_metadata_plugin::new_connection
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<ut_metadata_peer_plugin>
    - native_handle
    - static_cast<bt_peer_connection*>
    - type
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: "std::shared_ptr<peer_plugin> ut_metadata_plugin::new_connection(\n\t\tpeer_connection_handle
      const& pc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/ut_metadata.cpp:490,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:491,1
    - Dst: end
      Src: /src/libtorrent/src/ut_metadata.cpp:491,1
    - Dst: empty
      Src: /src/libtorrent/src/ut_metadata.cpp:493,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:497,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:498,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:501,1
    - Dst: source::lock
      Src: /src/libtorrent/src/ut_metadata.cpp:505,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:506,1
    - Dst: min_time
      Src: /src/libtorrent/src/ut_metadata.cpp:507,1
    - Dst: auto::m_pc::is_disconnecting
      Src: /src/libtorrent/src/ut_metadata.cpp:509,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/ut_metadata.cpp:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - has_metadata
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 522
    functionName: libtorrent::ut_metadata_plugin::metadata_request
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - auto::m_pc::is_disconnecting
    - std::min_element
    - begin
    - total_seconds
    - empty
    - end
    - resize
    - source::lock
    - min_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: int
    signature: int ut_metadata_plugin::metadata_request(bool const has_metadata)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:527,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:530,1
    - Dst: add_redundant_bytes
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: empty
      Src: /src/libtorrent/src/ut_metadata.cpp:537,1
    - Dst: session
      Src: /src/libtorrent/src/ut_metadata.cpp:540,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:543,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:550,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:551,1
    - Dst: div_round_up
      Src: /src/libtorrent/src/ut_metadata.cpp:551,1
    - Dst: end_index
      Src: /src/libtorrent/src/ut_metadata.cpp:554,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:557,1
    - Dst: end_index
      Src: /src/libtorrent/src/ut_metadata.cpp:563,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:566,1
    - Dst: metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:568,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:574,1
    - Dst: metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:574,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/ut_metadata.cpp:582,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/ut_metadata.cpp:583,1
    - Dst: all_of
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: end
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/ut_metadata.cpp:586,1
    - Dst: set_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:590,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:592,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:594,1
    - Dst: size
      Src: /src/libtorrent/src/ut_metadata.cpp:601,1
    - Dst: source::lock
      Src: /src/libtorrent/src/ut_metadata.cpp:605,1
    - Dst: auto::failed_hash_check
      Src: /src/libtorrent/src/ut_metadata.cpp:608,1
    - Dst: minutes
      Src: /src/libtorrent/src/ut_metadata.cpp:608,1
    - Dst: clear
      Src: /src/libtorrent/src/ut_metadata.cpp:617,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/ut_metadata.cpp:618,1
    - Dst: clear
      Src: /src/libtorrent/src/ut_metadata.cpp:621,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/ut_metadata.cpp:622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - ' source'
    - buf
    - piece
    - total_size
    argTypes:
    - ut_metadata_peer_plugin
    - span<char const>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 625
    functionName: libtorrent::ut_metadata_plugin::received_metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - valid_metadata
    - empty
    - m_pc::peer_log
    - shrink_to_fit
    - span<char const>::size
    - minutes
    - all_of
    - libtorrent::aux::time_now
    - aux::numeric_cast<std::size_t>
    - end
    - clear
    - set_metadata
    - shared_from_this
    - session
    - libtorrent::aux::max
    - source::lock
    - end_index
    - size
    - std::memcpy
    - span<char const>::data
    - auto::failed_hash_check
    - metadata
    - add_redundant_bytes
    - resize
    - div_round_up
    linkageType: ''
    returnType: bool
    signature: "bool ut_metadata_plugin::received_metadata(ut_metadata_peer_plugin&
      source\n\t\t, span<char const> buf, int const piece, int const total_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::div_round_up
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int div_round_up(int numerator, int denominator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: libtorrent::ut_metadata_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ut_metadata_plugin(torrent& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/ut_metadata.cpp:109,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:110,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:112,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:115,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:117,1
    - Dst: hasher
      Src: /src/libtorrent/src/ut_metadata.cpp:117,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:118,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:122,1
    - Dst: hasher256
      Src: /src/libtorrent/src/ut_metadata.cpp:122,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: libtorrent::metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 12
    functionsReached:
    - hasher
    - valid_metadata
    - TORRENT_ASSERT
    - libtorrent::empty
    - hasher256
    - torrent_file
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> metadata() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/src/ut_metadata.cpp:142,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::metadata
    - is_seed
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:148,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:150,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:151,1
    - Dst: libtorrent::div_round_up
      Src: /src/libtorrent/src/ut_metadata.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: libtorrent::metadata_size
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 3
    functionsReached:
    - valid_metadata
    - libtorrent::div_round_up
    - resize
    linkageType: ''
    returnType: void
    signature: void metadata_size(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: '& operator=(ut_metadata_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_metadata_plugin
    signature: ut_metadata_plugin & operator=(ut_metadata_plugin const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: libtorrent::metadata_piece
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void metadata_piece()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - metadata_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: operator<(metadata_piece const& rhs) const
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(metadata_piece const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/src/ut_metadata.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' t'
    - ' pc'
    - ' tp'
    argTypes:
    - torrent
    - bt_peer_connection
    - ut_metadata_plugin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: libtorrent::ut_metadata_peer_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min_time
    linkageType: ''
    returnType: void
    signature: "void ut_metadata_peer_plugin(torrent& t, bt_peer_connection& pc\n\t\t\t,
      ut_metadata_plugin& tp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:202,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - valid_metadata
    - libtorrent::metadata
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry& h) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/ut_metadata.cpp:210,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/ut_metadata.cpp:211,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:214,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:218,1
    - Dst: libtorrent::metadata_size
      Src: /src/libtorrent/src/ut_metadata.cpp:220,1
    - Dst: libtorrent::set_has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:222,1
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - dict_find_int_value
    - libtorrent::maybe_send_request
    - dict_find_dict
    - bdecode_node::dict_find_int_value
    - libtorrent::set_has_metadata
    - libtorrent::metadata_size
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const& h) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:230,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/ut_metadata.cpp:230,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:235,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:236,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:237,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:244,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:250,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:251,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:255,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:255,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:256,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/ut_metadata.cpp:256,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:257,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:257,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:260,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/ut_metadata.cpp:261,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:262,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ut_metadata.cpp:265,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:265,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/ut_metadata.cpp:273,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/src/ut_metadata.cpp:276,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_metadata.cpp:277,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/src/ut_metadata.cpp:278,1
    - Dst: send_buffer
      Src: /src/libtorrent/src/ut_metadata.cpp:280,1
    - Dst: libtorrent::append_const_send_buffer
      Src: /src/libtorrent/src/ut_metadata.cpp:285,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/ut_metadata.cpp:286,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ut_metadata.cpp:286,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:289,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - type
    - piece
    argTypes:
    - msg_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 291
    functionName: libtorrent::write_metadata_packet
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 9
    functionsReached:
    - static_cast<int>
    - libtorrent::min
    - libtorrent::append_const_send_buffer
    - send_buffer
    - libtorrent::bencode
    - valid_metadata
    - TORRENT_ASSERT
    - libtorrent::aux::write_uint32
    - libtorrent::span
    - libtorrent::metadata
    - libtorrent::aux::write_uint8
    - libtorrent::stats_counters
    - libtorrent::associated_torrent
    - peer_log
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void write_metadata_packet(msg_t const type, int const piece)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:302,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:305,1
    - Dst: libtorrent::packet_finished
      Src: /src/libtorrent/src/ut_metadata.cpp:309,1
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/ut_metadata.cpp:312,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/ut_metadata.cpp:313,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:316,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:319,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/ut_metadata.cpp:323,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/ut_metadata.cpp:324,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:328,1
    - Dst: disconnect
      Src: /src/libtorrent/src/ut_metadata.cpp:331,1
    - Dst: msg_t
      Src: /src/libtorrent/src/ut_metadata.cpp:334,1
    - Dst: int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:334,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:335,1
    - Dst: int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:335,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:338,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:339,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:346,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:347,1
    - Dst: should_log
      Src: /src/libtorrent/src/ut_metadata.cpp:350,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:352,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:354,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:355,1
    - Dst: libtorrent::metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:356,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:359,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/src/ut_metadata.cpp:362,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:363,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_metadata.cpp:364,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/ut_metadata.cpp:365,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:367,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/ut_metadata.cpp:372,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:372,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:373,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:376,1
    - Dst: peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:379,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:385,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/src/ut_metadata.cpp:386,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/ut_metadata.cpp:387,1
    - Dst: received_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:388,1
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:389,1
    - Dst: std::max
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: minutes
      Src: /src/libtorrent/src/ut_metadata.cpp:394,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/ut_metadata.cpp:395,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:395,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:396,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/ut_metadata.cpp:398,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:399,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/src/ut_metadata.cpp:404,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 3
    argNames:
    - length
    - extended_msg
    - body
    argTypes:
    - int
    - int
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 407
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - bdecode_node::data_section
    - libtorrent::write_metadata_packet
    - libtorrent::packet_finished
    - valid_metadata
    - libtorrent::send_buffer_size
    - std::max
    - minutes
    - libtorrent::push_back
    - libtorrent::aux::time_now
    - libtorrent::stats_counters
    - int_value
    - bdecode_node::type
    - msg_t
    - libtorrent::maybe_send_request
    - received_metadata
    - bdecode_node::dict_find_int
    - libtorrent::metadata
    - libtorrent::end
    - span<char const>::subspan
    - libtorrent::size
    - erase
    - libtorrent::begin
    - disconnect
    - libtorrent::find
    - libtorrent::bdecode
    - bdecode_node::dict_find_int_value
    - should_log
    - peer_log
    linkageType: ''
    returnType: bool
    signature: "bool on_extended(int const length\n\t\t\t, int const extended_msg,
      span<char const> body) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::maybe_send_request
      Src: /src/libtorrent/src/ut_metadata.cpp:411,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/ut_metadata.cpp:412,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/src/ut_metadata.cpp:413,1
    - Dst: libtorrent::front
      Src: /src/libtorrent/src/ut_metadata.cpp:415,1
    - Dst: erase
      Src: /src/libtorrent/src/ut_metadata.cpp:416,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/ut_metadata.cpp:416,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 419
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::front
    - libtorrent::maybe_send_request
    - libtorrent::write_metadata_packet
    - erase
    - libtorrent::empty
    - libtorrent::send_buffer_size
    - libtorrent::begin
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_disconnecting
      Src: /src/libtorrent/src/ut_metadata.cpp:423,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:429,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/ut_metadata.cpp:431,1
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:432,1
    - Dst: metadata_request
      Src: /src/libtorrent/src/ut_metadata.cpp:434,1
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:434,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/ut_metadata.cpp:437,1
    - Dst: libtorrent::write_metadata_packet
      Src: /src/libtorrent/src/ut_metadata.cpp:438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: libtorrent::maybe_send_request
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 12
    functionsReached:
    - libtorrent::has_metadata
    - libtorrent::size
    - libtorrent::write_metadata_packet
    - valid_metadata
    - metadata_request
    - libtorrent::push_back
    - libtorrent::is_disconnecting
    linkageType: ''
    returnType: void
    signature: void maybe_send_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:444,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: libtorrent::has_metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::has_metadata
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: bool
    signature: bool has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/ut_metadata.cpp:449,1
    - Dst: libtorrent::random
      Src: /src/libtorrent/src/ut_metadata.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' now'
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: libtorrent::failed_hash_check
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::random
    - seconds
    linkageType: ''
    returnType: void
    signature: void failed_hash_check(time_point const& now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: '& operator=(ut_metadata_peer_plugin const&)'
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ut_metadata_peer_plugin
    signature: ut_metadata_peer_plugin & operator=(ut_metadata_peer_plugin const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/ut_metadata.cpp:479,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/ut_metadata.cpp:481,1
    - Dst: native_handle
      Src: /src/libtorrent/src/ut_metadata.cpp:481,1
    - Dst: std::make_shared<ut_metadata_peer_plugin>
      Src: /src/libtorrent/src/ut_metadata.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' pc'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: libtorrent::ut_metadata_plugin::new_connection
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<ut_metadata_peer_plugin>
    - native_handle
    - static_cast<bt_peer_connection*>
    - type
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: "std::shared_ptr<peer_plugin> ut_metadata_plugin::new_connection(\n\t\tpeer_connection_handle
      const& pc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/ut_metadata.cpp:490,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:491,1
    - Dst: end
      Src: /src/libtorrent/src/ut_metadata.cpp:491,1
    - Dst: empty
      Src: /src/libtorrent/src/ut_metadata.cpp:493,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:497,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:498,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:501,1
    - Dst: source::lock
      Src: /src/libtorrent/src/ut_metadata.cpp:505,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:506,1
    - Dst: min_time
      Src: /src/libtorrent/src/ut_metadata.cpp:507,1
    - Dst: auto::m_pc::is_disconnecting
      Src: /src/libtorrent/src/ut_metadata.cpp:509,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/ut_metadata.cpp:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - has_metadata
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 522
    functionName: libtorrent::ut_metadata_plugin::metadata_request
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - auto::m_pc::is_disconnecting
    - std::min_element
    - begin
    - total_seconds
    - empty
    - end
    - resize
    - source::lock
    - min_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: int
    signature: int ut_metadata_plugin::metadata_request(bool const has_metadata)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:527,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:530,1
    - Dst: add_redundant_bytes
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:533,1
    - Dst: empty
      Src: /src/libtorrent/src/ut_metadata.cpp:537,1
    - Dst: session
      Src: /src/libtorrent/src/ut_metadata.cpp:540,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:543,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:550,1
    - Dst: resize
      Src: /src/libtorrent/src/ut_metadata.cpp:551,1
    - Dst: div_round_up
      Src: /src/libtorrent/src/ut_metadata.cpp:551,1
    - Dst: end_index
      Src: /src/libtorrent/src/ut_metadata.cpp:554,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:557,1
    - Dst: end_index
      Src: /src/libtorrent/src/ut_metadata.cpp:563,1
    - Dst: m_pc::peer_log
      Src: /src/libtorrent/src/ut_metadata.cpp:566,1
    - Dst: metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:568,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:574,1
    - Dst: metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:574,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ut_metadata.cpp:580,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/ut_metadata.cpp:582,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/ut_metadata.cpp:583,1
    - Dst: all_of
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: begin
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: end
      Src: /src/libtorrent/src/ut_metadata.cpp:585,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/ut_metadata.cpp:586,1
    - Dst: set_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:590,1
    - Dst: valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:592,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ut_metadata.cpp:594,1
    - Dst: size
      Src: /src/libtorrent/src/ut_metadata.cpp:601,1
    - Dst: source::lock
      Src: /src/libtorrent/src/ut_metadata.cpp:605,1
    - Dst: auto::failed_hash_check
      Src: /src/libtorrent/src/ut_metadata.cpp:608,1
    - Dst: minutes
      Src: /src/libtorrent/src/ut_metadata.cpp:608,1
    - Dst: clear
      Src: /src/libtorrent/src/ut_metadata.cpp:617,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/ut_metadata.cpp:618,1
    - Dst: clear
      Src: /src/libtorrent/src/ut_metadata.cpp:621,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/ut_metadata.cpp:622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - ' source'
    - buf
    - piece
    - total_size
    argTypes:
    - ut_metadata_peer_plugin
    - span<char const>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 625
    functionName: libtorrent::ut_metadata_plugin::received_metadata
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - valid_metadata
    - empty
    - m_pc::peer_log
    - shrink_to_fit
    - span<char const>::size
    - minutes
    - all_of
    - libtorrent::aux::time_now
    - aux::numeric_cast<std::size_t>
    - end
    - clear
    - set_metadata
    - shared_from_this
    - session
    - libtorrent::aux::max
    - source::lock
    - end_index
    - size
    - std::memcpy
    - span<char const>::data
    - auto::failed_hash_check
    - metadata
    - add_redundant_bytes
    - resize
    - div_round_up
    linkageType: ''
    returnType: bool
    signature: "bool ut_metadata_plugin::received_metadata(ut_metadata_peer_plugin&
      source\n\t\t, span<char const> buf, int const piece, int const total_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::native_handle
      Src: /src/libtorrent/src/ut_metadata.cpp:633,1
    - Dst: torrent*::valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:635,1
    - Dst: torrent*::torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:635,1
    - Dst: std::make_shared<ut_metadata_plugin>
      Src: /src/libtorrent/src/ut_metadata.cpp:636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: libtorrent::create_ut_metadata_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - torrent*::valid_metadata
    - std::make_shared<ut_metadata_plugin>
    - libtorrent::native_handle
    - torrent*::torrent_file
    linkageType: ''
    returnType: std::shared_ptr<torrent_plugin>
    signature: std::shared_ptr<torrent_plugin> create_ut_metadata_plugin(torrent_handle
      const& th, client_data_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::native_handle
      Src: /src/libtorrent/src/ut_metadata.cpp:633,1
    - Dst: torrent*::valid_metadata
      Src: /src/libtorrent/src/ut_metadata.cpp:635,1
    - Dst: torrent*::torrent_file
      Src: /src/libtorrent/src/ut_metadata.cpp:635,1
    - Dst: std::make_shared<ut_metadata_plugin>
      Src: /src/libtorrent/src/ut_metadata.cpp:636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: libtorrent::create_ut_metadata_plugin
    functionSourceFile: /src/libtorrent/src/ut_metadata.cpp
    functionUses: 0
    functionsReached:
    - torrent*::valid_metadata
    - std::make_shared<ut_metadata_plugin>
    - libtorrent::native_handle
    - torrent*::torrent_file
    linkageType: ''
    returnType: std::shared_ptr<torrent_plugin>
    signature: std::shared_ptr<torrent_plugin> create_ut_metadata_plugin(torrent_handle
      const& th, client_data_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::int64_t
      Src: /src/libtorrent/src/stat.cpp:40,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stat.cpp:41,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/stat.cpp:42,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/stat.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tick_interval_ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: libtorrent::stat_channel::second_tick
    functionSourceFile: /src/libtorrent/src/stat.cpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - TORRENT_ASSERT
    - std::int32_t
    linkageType: ''
    returnType: void
    signature: void stat_channel::second_tick(int tick_interval_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::int64_t
      Src: /src/libtorrent/src/stat.cpp:40,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stat.cpp:41,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/stat.cpp:42,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/stat.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tick_interval_ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: libtorrent::stat_channel::second_tick
    functionSourceFile: /src/libtorrent/src/stat.cpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - TORRENT_ASSERT
    - std::int32_t
    linkageType: ''
    returnType: void
    signature: void stat_channel::second_tick(int tick_interval_ms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gcry_check_version
      Src: /src/libtorrent/src/session_impl.cpp:153,1
    - Dst: gcry_control
      Src: /src/libtorrent/src/session_impl.cpp:155,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_impl.cpp:156,1
    - Dst: gcry_strerror
      Src: /src/libtorrent/src/session_impl.cpp:156,1
    - Dst: gcry_control
      Src: /src/libtorrent/src/session_impl.cpp:157,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_impl.cpp:158,1
    - Dst: gcry_strerror
      Src: /src/libtorrent/src/session_impl.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: gcrypt_setup
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - gcry_strerror
    - gcry_check_version
    - std::fprintf
    - gcry_control
    linkageType: ''
    returnType: void
    signature: void gcrypt_setup()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gcry_check_version
      Src: /src/libtorrent/src/session_impl.cpp:153,1
    - Dst: gcry_control
      Src: /src/libtorrent/src/session_impl.cpp:155,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_impl.cpp:156,1
    - Dst: gcry_strerror
      Src: /src/libtorrent/src/session_impl.cpp:156,1
    - Dst: gcry_control
      Src: /src/libtorrent/src/session_impl.cpp:157,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_impl.cpp:158,1
    - Dst: gcry_strerror
      Src: /src/libtorrent/src/session_impl.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: gcrypt_setup
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - gcry_strerror
    - gcry_check_version
    - std::fprintf
    - gcry_control
    linkageType: ''
    returnType: void
    signature: void gcrypt_setup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libtorrent/src/session_impl.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: boost::throw_exception
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void throw_exception(std::exception const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libtorrent/src/session_impl.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: boost::throw_exception
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void throw_exception(std::exception const& e)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:214,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:215,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:215,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:216,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:217,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:217,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:218,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:219,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:219,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:220,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:221,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:221,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:222,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:223,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:223,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:224,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:225,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:225,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:226,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:227,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:227,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:228,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:229,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:229,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:230,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:231,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:231,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:232,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:233,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:233,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:234,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:235,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:235,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:236,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:237,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:237,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:238,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:239,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:239,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:240,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:241,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:241,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:242,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:243,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:243,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:244,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:245,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:245,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:246,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:247,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:247,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:248,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:249,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:249,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 2
    argNames:
    - ' sett'
    - ' s'
    argTypes:
    - settings_pack
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 250
    functionName: apply_deprecated_dht_settings
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - bdecode_node::int_value
    - set_int
    - set_bool
    - dict_find_int
    linkageType: ''
    returnType: void
    signature: void apply_deprecated_dht_settings(settings_pack& sett, bdecode_node
      const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::partition
      Src: /src/libtorrent/src/session_impl.cpp:256,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:256,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:256,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:259,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:259,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:259,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:266,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:269,1
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' eps'
    - ' sockets'
    argTypes:
    - std::vector<listen_endpoint_t>
    - std::vector<std::shared_ptr<listen_socket_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 282
    functionName: partition_listen_sockets
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 7
    functionsReached:
    - std::partition
    - begin
    - erase
    - end
    - local_endpoint::address
    - std::find_if
    linkageType: ''
    returnType: std::vector<std::shared_ptr<listen_socket_t>>::iterator
    signature: "std::vector<std::shared_ptr<listen_socket_t>>::iterator partition_listen_sockets(\n\t\tstd::vector<listen_endpoint_t>&
      eps\n\t\t, std::vector<std::shared_ptr<listen_socket_t>>& sockets)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::partition
      Src: /src/libtorrent/src/session_impl.cpp:292,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:292,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:292,1
    - Dst: addr::is_unspecified
      Src: /src/libtorrent/src/session_impl.cpp:293,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:294,1
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:295,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:295,1
    - Dst: addr::is_v4
      Src: /src/libtorrent/src/session_impl.cpp:298,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/src/session_impl.cpp:303,1
    - Dst: device::empty
      Src: /src/libtorrent/src/session_impl.cpp:305,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/session_impl.cpp:307,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:307,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:307,1
    - Dst: interface_address::is_loopback
      Src: /src/libtorrent/src/session_impl.cpp:332,1
    - Dst: is_link_local
      Src: /src/libtorrent/src/session_impl.cpp:333,1
    - Dst: is_global
      Src: /src/libtorrent/src/session_impl.cpp:335,1
    - Dst: has_any_internet_route
      Src: /src/libtorrent/src/session_impl.cpp:337,1
    - Dst: has_internet_route
      Src: /src/libtorrent/src/session_impl.cpp:338,1
    - Dst: family
      Src: /src/libtorrent/src/session_impl.cpp:338,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_impl.cpp:340,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 22
    argCount: 3
    argNames:
    - ifs
    - routes
    - ' eps'
    argTypes:
    - span<ip_interface const>
    - span<ip_route const>
    - std::vector<listen_endpoint_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 345
    functionName: expand_unspecified_address
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 6
    functionsReached:
    - std::partition
    - begin
    - addr::is_v4
    - has_any_internet_route
    - erase
    - end
    - is_global
    - interface_address::is_v4
    - is_link_local
    - has_internet_route
    - family
    - std::any_of
    - emplace_back
    - addr::is_unspecified
    - interface_address::is_loopback
    - device::empty
    linkageType: ''
    returnType: void
    signature: "void expand_unspecified_address(span<ip_interface const> const ifs\n\t\t,
      span<ip_route const> const routes\n\t\t, std::vector<listen_endpoint_t>& eps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: device::empty
      Src: /src/libtorrent/src/session_impl.cpp:352,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:353,1
    - Dst: span<ip_interface const>::begin
      Src: /src/libtorrent/src/session_impl.cpp:353,1
    - Dst: span<ip_interface const>::end
      Src: /src/libtorrent/src/session_impl.cpp:353,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/src/session_impl.cpp:355,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:357,1
    - Dst: span<ip_interface const>::begin
      Src: /src/libtorrent/src/session_impl.cpp:357,1
    - Dst: span<ip_interface const>::end
      Src: /src/libtorrent/src/session_impl.cpp:357,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/src/session_impl.cpp:360,1
    - Dst: span<ip_interface const>::end
      Src: /src/libtorrent/src/session_impl.cpp:363,1
    - Dst: build_netmask
      Src: /src/libtorrent/src/session_impl.cpp:367,1
    - Dst: addr::is_v4
      Src: /src/libtorrent/src/session_impl.cpp:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ifs
    - ' eps'
    argTypes:
    - span<ip_interface const>
    - std::vector<listen_endpoint_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 374
    functionName: expand_devices
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - span<ip_interface const>::end
    - build_netmask
    - addr::is_v4
    - span<ip_interface const>::begin
    - match_addr_mask
    - device::empty
    - std::find_if
    linkageType: ''
    returnType: void
    signature: "void expand_devices(span<ip_interface const> const ifs\n\t\t, std::vector<listen_endpoint_t>&
      eps)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/src/session_impl.cpp:381,1
    - Dst: is_v4
      Src: /src/libtorrent/src/session_impl.cpp:381,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:383,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:384,1
    - Dst: to_v6
      Src: /src/libtorrent/src/session_impl.cpp:384,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:387,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:388,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/src/session_impl.cpp:389,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 391
    functionName: listen_socket_t::can_route
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - address
    - to_v6
    - is_v4
    - match_addr_mask
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_t::can_route(address const& addr) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/session_impl.cpp:397,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/session_impl.cpp:398,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/session_impl.cpp:439,1
    - Dst: make_address_v4
      Src: /src/libtorrent/src/session_impl.cpp:440,1
    - Dst: add_rule
      Src: /src/libtorrent/src/session_impl.cpp:442,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/session_impl.cpp:450,1
    - Dst: make_address_v6
      Src: /src/libtorrent/src/session_impl.cpp:451,1
    - Dst: add_rule
      Src: /src/libtorrent/src/session_impl.cpp:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - unlimited_local
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 455
    functionName: session_impl::init_peer_class_filter
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - add_rule
    - make_address_v6
    - make_address_v4
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void session_impl::init_peer_class_filter(bool unlimited_local)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:465,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/session_impl.cpp:469,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:469,1
    - Dst: info_hash_t::v1::data
      Src: /src/libtorrent/src/session_impl.cpp:469,1
    - Dst: session_impl*::find_torrent
      Src: /src/libtorrent/src/session_impl.cpp:476,1
    - Dst: std::shared_ptr::is_ssl_torrent
      Src: /src/libtorrent/src/session_impl.cpp:482,1
    - Dst: std::shared_ptr::ssl_ctx
      Src: /src/libtorrent/src/session_impl.cpp:486,1
    - Dst: libtorrent::ssl::set_context
      Src: /src/libtorrent/src/session_impl.cpp:490,1
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/src/session_impl.cpp:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - stream_handle
    - ' name'
    - si
    argTypes:
    - ssl::stream_handle_type
    - std::string
    - session_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 492
    functionName: ssl_server_name_callback_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl*::find_torrent
    - libtorrent::aux::from_hex
    - c_str
    - info_hash_t::v1::data
    - std::shared_ptr::ssl_ctx
    - libtorrent::ssl::get_handle
    - std::shared_ptr::is_ssl_torrent
    - libtorrent::ssl::set_context
    - size
    linkageType: ''
    returnType: bool
    signature: bool ssl_server_name_callback_impl(ssl::stream_handle_type stream_handle,
      std::string const& name, session_impl* si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/libtorrent/src/session_impl.cpp:497,1
    - Dst: reinterpret_cast<session_impl*>
      Src: /src/libtorrent/src/session_impl.cpp:498,1
    - Dst: ssl_server_name_callback_impl
      Src: /src/libtorrent/src/session_impl.cpp:499,1
    - Dst: std::string
      Src: /src/libtorrent/src/session_impl.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: ssl_server_name_callback
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ssl_server_name_callback_impl
    - std::string
    - SSL_get_servername
    - reinterpret_cast<session_impl*>
    linkageType: ''
    returnType: int
    signature: int ssl_server_name_callback(SSL* s, int*, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<session_impl*>
      Src: /src/libtorrent/src/session_impl.cpp:506,1
    - Dst: ssl_server_name_callback_impl
      Src: /src/libtorrent/src/session_impl.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - stream_handle
    - ' name'
    - arg
    argTypes:
    - ssl::stream_handle_type
    - std::string
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: ssl_server_name_callback
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ssl_server_name_callback_impl
    - reinterpret_cast<session_impl*>
    linkageType: ''
    returnType: bool
    signature: bool ssl_server_name_callback(ssl::stream_handle_type stream_handle,
      std::string const& name, void* arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:465,1
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/src/session_impl.cpp:469,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:469,1
    - Dst: info_hash_t::v1::data
      Src: /src/libtorrent/src/session_impl.cpp:469,1
    - Dst: session_impl*::find_torrent
      Src: /src/libtorrent/src/session_impl.cpp:476,1
    - Dst: std::shared_ptr::is_ssl_torrent
      Src: /src/libtorrent/src/session_impl.cpp:482,1
    - Dst: std::shared_ptr::ssl_ctx
      Src: /src/libtorrent/src/session_impl.cpp:486,1
    - Dst: libtorrent::ssl::set_context
      Src: /src/libtorrent/src/session_impl.cpp:490,1
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/src/session_impl.cpp:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - stream_handle
    - ' name'
    - si
    argTypes:
    - ssl::stream_handle_type
    - std::string
    - session_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 492
    functionName: ssl_server_name_callback_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - session_impl*::find_torrent
    - libtorrent::aux::from_hex
    - c_str
    - info_hash_t::v1::data
    - std::shared_ptr::ssl_ctx
    - libtorrent::ssl::get_handle
    - std::shared_ptr::is_ssl_torrent
    - libtorrent::ssl::set_context
    - size
    linkageType: ''
    returnType: bool
    signature: bool ssl_server_name_callback_impl(ssl::stream_handle_type stream_handle,
      std::string const& name, session_impl* si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/libtorrent/src/session_impl.cpp:497,1
    - Dst: reinterpret_cast<session_impl*>
      Src: /src/libtorrent/src/session_impl.cpp:498,1
    - Dst: ssl_server_name_callback_impl
      Src: /src/libtorrent/src/session_impl.cpp:499,1
    - Dst: std::string
      Src: /src/libtorrent/src/session_impl.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: ssl_server_name_callback
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ssl_server_name_callback_impl
    - std::string
    - SSL_get_servername
    - reinterpret_cast<session_impl*>
    linkageType: ''
    returnType: int
    signature: int ssl_server_name_callback(SSL* s, int*, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<session_impl*>
      Src: /src/libtorrent/src/session_impl.cpp:506,1
    - Dst: ssl_server_name_callback_impl
      Src: /src/libtorrent/src/session_impl.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - stream_handle
    - ' name'
    - arg
    argTypes:
    - ssl::stream_handle_type
    - std::string
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: ssl_server_name_callback
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ssl_server_name_callback_impl
    - reinterpret_cast<session_impl*>
    linkageType: ''
    returnType: bool
    signature: bool ssl_server_name_callback(ssl::stream_handle_type stream_handle,
      std::string const& name, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:524,1
    - Dst: static_cast<unsigned int>
      Src: /src/libtorrent/src/session_impl.cpp:525,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:525,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:532,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:533,1
    - Dst: make_work_guard
      Src: /src/libtorrent/src/session_impl.cpp:541,1
    - Dst: time_now
      Src: /src/libtorrent/src/session_impl.cpp:545,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/session_impl.cpp:547,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:554,1
    - Dst: session_impl::incoming_connection
      Src: /src/libtorrent/src/session_impl.cpp:555,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:555,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:560,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:561,1
    - Dst: session_impl::validate_settings
      Src: /src/libtorrent/src/session_impl.cpp:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - ' ioc'
    - ' pack'
    - disk_io_constructor
    - flags
    argTypes:
    - io_context
    - settings_pack
    - disk_io_constructor_type
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 574
    functionName: session_impl::session_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - std::bind
    - std::move
    - session_impl::validate_settings
    - static_cast<unsigned int>
    - get_int
    - milliseconds
    - session_impl::incoming_connection
    - make_work_guard
    linkageType: ''
    returnType: void
    signature: "void session_impl::session_impl(io_context& ioc, settings_pack const&
      pack\n\t\t, disk_io_constructor_type disk_io_constructor\n\t\t, session_flags_t
      const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:586,1
    - Dst: code
      Src: /src/libtorrent/src/session_impl.cpp:586,1
    - Dst: what
      Src: /src/libtorrent/src/session_impl.cpp:586,1
    - Dst: pause
      Src: /src/libtorrent/src/session_impl.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - system_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: catch
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - pause
    - code
    - what
    - alerts
    linkageType: ''
    returnType: void
    signature: void catch (system_error const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:589,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:589,1
    - Dst: what
      Src: /src/libtorrent/src/session_impl.cpp:589,1
    - Dst: pause
      Src: /src/libtorrent/src/session_impl.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 591
    functionName: catch
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - pause
    - error_code
    - what
    - alerts
    linkageType: ''
    returnType: void
    signature: void catch (std::exception const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:592,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:592,1
    - Dst: pause
      Src: /src/libtorrent/src/session_impl.cpp:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 594
    functionName: catch
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - pause
    - error_code
    - alerts
    linkageType: ''
    returnType: void
    signature: void catch (...)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:604,1
    - Dst: set_default_verify_paths
      Src: /src/libtorrent/src/session_impl.cpp:609,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:611,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:611,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/session_impl.cpp:612,1
    - Dst: X509_STORE_new
      Src: /src/libtorrent/src/session_impl.cpp:617,1
    - Dst: CertOpenSystemStoreA
      Src: /src/libtorrent/src/session_impl.cpp:620,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/libtorrent/src/session_impl.cpp:625,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/session_impl.cpp:627,1
    - Dst: d2i_X509
      Src: /src/libtorrent/src/session_impl.cpp:628,1
    - Dst: X509_STORE_add_cert
      Src: /src/libtorrent/src/session_impl.cpp:631,1
    - Dst: X509_free
      Src: /src/libtorrent/src/session_impl.cpp:632,1
    - Dst: CertFreeCertificateContext
      Src: /src/libtorrent/src/session_impl.cpp:634,1
    - Dst: CertCloseStore
      Src: /src/libtorrent/src/session_impl.cpp:635,1
    - Dst: native_handle
      Src: /src/libtorrent/src/session_impl.cpp:639,1
    - Dst: SSL_CTX_set_cert_store
      Src: /src/libtorrent/src/session_impl.cpp:640,1
    - Dst: load_verify_file
      Src: /src/libtorrent/src/session_impl.cpp:643,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:645,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:645,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/session_impl.cpp:646,1
    - Dst: add_verify_path
      Src: /src/libtorrent/src/session_impl.cpp:648,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:650,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:650,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/session_impl.cpp:651,1
    - Dst: set_verify_mode
      Src: /src/libtorrent/src/session_impl.cpp:656,1
    - Dst: libtorrent::ssl::set_server_name_callback
      Src: /src/libtorrent/src/session_impl.cpp:657,1
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/src/session_impl.cpp:657,1
    - Dst: new_peer_class
      Src: /src/libtorrent/src/session_impl.cpp:665,1
    - Dst: new_peer_class
      Src: /src/libtorrent/src/session_impl.cpp:666,1
    - Dst: new_peer_class
      Src: /src/libtorrent/src/session_impl.cpp:667,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:669,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:672,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:674,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:675,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:676,1
    - Dst: session_impl::init_peer_class_filter
      Src: /src/libtorrent/src/session_impl.cpp:678,1
    - Dst: add
      Src: /src/libtorrent/src/session_impl.cpp:681,1
    - Dst: add
      Src: /src/libtorrent/src/session_impl.cpp:682,1
    - Dst: add
      Src: /src/libtorrent/src/session_impl.cpp:683,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:687,1
    - Dst: max_open_files
      Src: /src/libtorrent/src/session_impl.cpp:693,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:697,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:697,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:698,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:699,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:702,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:704,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:705,1
    - Dst: post
      Src: /src/libtorrent/src/session_impl.cpp:710,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:710,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 711
    functionName: session_impl::start_session
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - wrap
    - add_verify_path
    - max_open_files
    - std::min
    - error_code::clear
    - std::max
    - libtorrent::ssl::get_handle
    - set_int
    - CertOpenSystemStoreA
    - new_peer_class
    - reinterpret_cast<unsigned char const*>
    - session_impl::should_log
    - at
    - SSL_CTX_set_cert_store
    - get_int
    - error_code::message
    - CertFreeCertificateContext
    - load_verify_file
    - set_default_verify_paths
    - X509_free
    - add
    - CertEnumCertificatesInStore
    - d2i_X509
    - session_impl::init_peer_class_filter
    - libtorrent::ssl::set_server_name_callback
    - TORRENT_ASSERT
    - X509_STORE_new
    - set_verify_mode
    - CertCloseStore
    - post
    - X509_STORE_add_cert
    - native_handle
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::start_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thread_started
      Src: /src/libtorrent/src/session_impl.cpp:717,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:719,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:719,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:722,1
    - Dst: async_inc_threads
      Src: /src/libtorrent/src/session_impl.cpp:730,1
    - Dst: add_outstanding_async
      Src: /src/libtorrent/src/session_impl.cpp:731,1
    - Dst: post
      Src: /src/libtorrent/src/session_impl.cpp:733,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:733,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:733,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:736,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:737,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:738,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/session_impl.cpp:738,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:738,1
    - Dst: expires_after
      Src: /src/libtorrent/src/session_impl.cpp:739,1
    - Dst: seconds
      Src: /src/libtorrent/src/session_impl.cpp:739,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:740,1
    - Dst: async_wait
      Src: /src/libtorrent/src/session_impl.cpp:741,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:742,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:745,1
    - Dst: session_impl::recalculate_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:749,1
    - Dst: run_all_updates
      Src: /src/libtorrent/src/session_impl.cpp:752,1
    - Dst: session_impl::reopen_listen_sockets
      Src: /src/libtorrent/src/session_impl.cpp:753,1
    - Dst: session_impl::check_invariant
      Src: /src/libtorrent/src/session_impl.cpp:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 758
    functionName: session_impl::init
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - wrap
    - seconds
    - async_inc_threads
    - run_all_updates
    - std::max
    - thread_started
    - ADD_OUTSTANDING_ASYNC
    - session_impl::recalculate_unchoke_slots
    - is_single_thread
    - session_impl::check_invariant
    - expires_after
    - get_int
    - async_wait
    - TORRENT_ASSERT
    - add_outstanding_async
    - size
    - post
    - error_code
    - session_impl::reopen_listen_sockets
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::init()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:764,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:764,1
    - Dst: dict
      Src: /src/libtorrent/src/session_impl.cpp:768,1
    - Dst: dict
      Src: /src/libtorrent/src/session_impl.cpp:772,1
    - Dst: save_settings_to_dict
      Src: /src/libtorrent/src/session_impl.cpp:773,1
    - Dst: non_default_settings
      Src: /src/libtorrent/src/session_impl.cpp:773,1
    - Dst: libtorrent::dht::save_dht_settings
      Src: /src/libtorrent/src/session_impl.cpp:779,1
    - Dst: session_impl::get_dht_settings
      Src: /src/libtorrent/src/session_impl.cpp:779,1
    - Dst: libtorrent::dht::save_dht_state
      Src: /src/libtorrent/src/session_impl.cpp:784,1
    - Dst: state
      Src: /src/libtorrent/src/session_impl.cpp:784,1
    - Dst: session_impl::save_state
      Src: /src/libtorrent/src/session_impl.cpp:791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - eptr
    - flags
    argTypes:
    - entry*
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 794
    functionName: session_impl::save_state
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - non_default_settings
    - state
    - save_settings_to_dict
    - libtorrent::dht::save_dht_settings
    - libtorrent::dht::save_dht_state
    - is_single_thread
    - dict
    - TORRENT_ASSERT
    - session_impl::save_state
    - session_impl::get_dht_settings
    linkageType: ''
    returnType: void
    signature: void session_impl::save_state(entry* eptr, save_state_flags_t const
      flags) const
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:799,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:799,1
    - Dst: bdecode_node*::type
      Src: /src/libtorrent/src/session_impl.cpp:802,1
    - Dst: bdecode_node*::dict_find_dict
      Src: /src/libtorrent/src/session_impl.cpp:808,1
    - Dst: libtorrent::dht::read_dht_state
      Src: /src/libtorrent/src/session_impl.cpp:811,1
    - Dst: bdecode_node*::dict_find_dict
      Src: /src/libtorrent/src/session_impl.cpp:821,1
    - Dst: bulk_set
      Src: /src/libtorrent/src/session_impl.cpp:824,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:827,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:828,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:828,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:829,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:830,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:830,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:831,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:832,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:832,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:833,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:834,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:834,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/session_impl.cpp:835,1
    - Dst: set_str
      Src: /src/libtorrent/src/session_impl.cpp:836,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/session_impl.cpp:836,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/session_impl.cpp:837,1
    - Dst: set_str
      Src: /src/libtorrent/src/session_impl.cpp:838,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/session_impl.cpp:838,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/session_impl.cpp:839,1
    - Dst: set_str
      Src: /src/libtorrent/src/session_impl.cpp:840,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/session_impl.cpp:840,1
    - Dst: bdecode_node*::dict_find_dict
      Src: /src/libtorrent/src/session_impl.cpp:846,1
    - Dst: bulk_set
      Src: /src/libtorrent/src/session_impl.cpp:849,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:852,1
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:853,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:853,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:854,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:855,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:855,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:856,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:857,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:857,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/session_impl.cpp:858,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:859,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/session_impl.cpp:859,1
    - Dst: bdecode_node*::dict_find_dict
      Src: /src/libtorrent/src/session_impl.cpp:870,1
    - Dst: load_pack_from_dict
      Src: /src/libtorrent/src/session_impl.cpp:874,1
    - Dst: settings_pack::clear
      Src: /src/libtorrent/src/session_impl.cpp:878,1
    - Dst: settings_pack::clear
      Src: /src/libtorrent/src/session_impl.cpp:879,1
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:881,1
    - Dst: bdecode_node*::dict_find_dict
      Src: /src/libtorrent/src/session_impl.cpp:898,1
    - Dst: apply_deprecated_dht_settings
      Src: /src/libtorrent/src/session_impl.cpp:902,1
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:903,1
    - Dst: session_impl::start_dht
      Src: /src/libtorrent/src/session_impl.cpp:908,1
    - Dst: session_impl::update_proxy
      Src: /src/libtorrent/src/session_impl.cpp:911,1
    - Dst: session_impl::load_state
      Src: /src/libtorrent/src/session_impl.cpp:918,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 81
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - bdecode_node*
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 922
    functionName: session_impl::load_state
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - bdecode_node*::type
    - settings_pack::clear
    - set_int
    - session_impl::apply_settings_pack_impl
    - bdecode_node::int_value
    - is_single_thread
    - set_bool
    - bdecode_node::dict_find_int
    - session_impl::update_proxy
    - session_impl::load_state
    - libtorrent::dht::read_dht_state
    - bdecode_node::string_value
    - load_pack_from_dict
    - TORRENT_ASSERT
    - bulk_set
    - session_impl::start_dht
    - apply_deprecated_dht_settings
    - bdecode_node::dict_find_string
    - bdecode_node*::dict_find_dict
    - set_str
    linkageType: ''
    returnType: void
    signature: "void session_impl::load_state(bdecode_node const* e\n\t\t, save_state_flags_t
      const flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:927,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:927,1
    - Dst: non_default_settings
      Src: /src/libtorrent/src/session_impl.cpp:931,1
    - Dst: session_impl::get_dht_settings
      Src: /src/libtorrent/src/session_impl.cpp:937,1
    - Dst: state
      Src: /src/libtorrent/src/session_impl.cpp:942,1
    - Dst: session_impl::save_state
      Src: /src/libtorrent/src/session_impl.cpp:950,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:952,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:952,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - flags
    argTypes:
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 962
    functionName: session_impl::session_state
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - non_default_settings
    - state
    - std::move
    - is_single_thread
    - TORRENT_ASSERT
    - session_impl::save_state
    - session_impl::get_dht_settings
    linkageType: ''
    returnType: session_params
    signature: session_params session_impl::session_state(save_state_flags_t const
      flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proxy_settings
      Src: /src/libtorrent/src/session_impl.cpp:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 967
    functionName: session_impl::proxy
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - proxy_settings
    linkageType: ''
    returnType: proxy_settings
    signature: proxy_settings session_impl::proxy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:973,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:973,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:974,1
    - Dst: session_impl::add_ses_extension
      Src: /src/libtorrent/src/session_impl.cpp:976,1
    - Dst: std::make_shared<session_plugin_wrapper>
      Src: /src/libtorrent/src/session_impl.cpp:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ext
    argTypes:
    - ext_function_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 977
    functionName: session_impl::add_extension
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - session_impl::add_ses_extension
    - is_single_thread
    - std::make_shared<session_plugin_wrapper>
    linkageType: ''
    returnType: void
    signature: void session_impl::add_extension(ext_function_t ext)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/session_impl.cpp:984,1
    - Dst: std::shared_ptr<plugin>::implemented_features
      Src: /src/libtorrent/src/session_impl.cpp:986,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:988,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:991,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:993,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:995,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:997,1
    - Dst: session_impl::add_extension
      Src: /src/libtorrent/src/session_impl.cpp:999,1
    - Dst: std::shared_ptr<plugin>::added
      Src: /src/libtorrent/src/session_impl.cpp:1001,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 1002
    functionName: session_impl::add_ses_extension
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - TORRENT_ASSERT_VAL
    - std::shared_ptr<plugin>::added
    - session_impl::add_extension
    - std::shared_ptr<plugin>::implemented_features
    linkageType: ''
    returnType: void
    signature: void session_impl::add_ses_extension(std::shared_ptr<plugin> ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1008,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:1008,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1012,1
    - Dst: abort_all_requests
      Src: /src/libtorrent/src/session_impl.cpp:1015,1
    - Dst: set_session_paused
      Src: /src/libtorrent/src/session_impl.cpp:1020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1022
    functionName: session_impl::pause
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - set_session_paused
    - is_single_thread
    - TORRENT_ASSERT
    - abort_all_requests
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::pause()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1026,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:1026,1
    - Dst: set_session_paused
      Src: /src/libtorrent/src/session_impl.cpp:1033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1035
    functionName: session_impl::resume
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - set_session_paused
    linkageType: ''
    returnType: void
    signature: void session_impl::resume()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1039,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:1039,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1043,1
    - Dst: set_notify_function
      Src: /src/libtorrent/src/session_impl.cpp:1048,1
    - Dst: session_impl::abort
      Src: /src/libtorrent/src/session_impl.cpp:1053,1
    - Dst: session_impl::abort
      Src: /src/libtorrent/src/session_impl.cpp:1060,1
    - Dst: cancel
      Src: /src/libtorrent/src/session_impl.cpp:1062,1
    - Dst: cancel
      Src: /src/libtorrent/src/session_impl.cpp:1070,1
    - Dst: close
      Src: /src/libtorrent/src/session_impl.cpp:1073,1
    - Dst: session_impl::stop_ip_notifier
      Src: /src/libtorrent/src/session_impl.cpp:1075,1
    - Dst: session_impl::stop_lsd
      Src: /src/libtorrent/src/session_impl.cpp:1076,1
    - Dst: session_impl::stop_upnp
      Src: /src/libtorrent/src/session_impl.cpp:1077,1
    - Dst: session_impl::stop_natpmp
      Src: /src/libtorrent/src/session_impl.cpp:1078,1
    - Dst: session_impl::stop_dht
      Src: /src/libtorrent/src/session_impl.cpp:1080,1
    - Dst: cancel
      Src: /src/libtorrent/src/session_impl.cpp:1081,1
    - Dst: cancel
      Src: /src/libtorrent/src/session_impl.cpp:1083,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:1087,1
    - Dst: close
      Src: /src/libtorrent/src/session_impl.cpp:1090,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1091,1
    - Dst: is_open
      Src: /src/libtorrent/src/session_impl.cpp:1097,1
    - Dst: close
      Src: /src/libtorrent/src/session_impl.cpp:1099,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1100,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1105,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:1105,1
    - Dst: session_impl::abort
      Src: /src/libtorrent/src/session_impl.cpp:1110,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:1112,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:1113,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:1114,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:1115,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1118,1
    - Dst: stop
      Src: /src/libtorrent/src/session_impl.cpp:1120,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1123,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:1123,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:1126,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:1126,1
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:1128,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/session_impl.cpp:1130,1
    - Dst: sock::close
      Src: /src/libtorrent/src/session_impl.cpp:1138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1139,1
    - Dst: udp_sock::sock::close
      Src: /src/libtorrent/src/session_impl.cpp:1146,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:1157,1
    - Dst: post
      Src: /src/libtorrent/src/session_impl.cpp:1159,1
    - Dst: make_handler
      Src: /src/libtorrent/src/session_impl.cpp:1159,1
    - Dst: session_impl::abort_stage2
      Src: /src/libtorrent/src/session_impl.cpp:1159,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1162
    functionName: session_impl::abort
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::stop_dht
    - std::move
    - begin
    - empty
    - session_impl::stop_lsd
    - cancel
    - session_impl::stop_natpmp
    - close
    - session_impl::stop_upnp
    - is_open
    - is_single_thread
    - end
    - clear
    - session_impl::abort_stage2
    - set_notify_function
    - TORRENT_ASSERT
    - set_value
    - sock::close
    - size
    - peer_connection*::disconnect
    - make_handler
    - session_impl::stop_ip_notifier
    - post
    - udp_sock::sock::close
    - stop
    - session_impl::abort
    - get
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::abort() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/session_impl.cpp:1166,1
    - Dst: close
      Src: /src/libtorrent/src/session_impl.cpp:1167,1
    - Dst: session_impl::abort
      Src: /src/libtorrent/src/session_impl.cpp:1172,1
    - Dst: reset
      Src: /src/libtorrent/src/session_impl.cpp:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1176
    functionName: session_impl::abort_stage2
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::abort
    - reset
    - close
    linkageType: ''
    returnType: void
    signature: void session_impl::abort_stage2() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/session_impl.cpp:1180,1
    - Dst: peer_connection*::self
      Src: /src/libtorrent/src/session_impl.cpp:1180,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1181
    functionName: session_impl::has_connection
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::self
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool session_impl::has_connection(peer_connection* p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1185,1
    - Dst: reserve
      Src: /src/libtorrent/src/session_impl.cpp:1189,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:1189,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:1189,1
    - Dst: insert
      Src: /src/libtorrent/src/session_impl.cpp:1190,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/session_impl.cpp:1192,1
    - Dst: capacity
      Src: /src/libtorrent/src/session_impl.cpp:1192,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:1192,1
    - Dst: capacity
      Src: /src/libtorrent/src/session_impl.cpp:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - std::shared_ptr<peer_connection>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1194
    functionName: session_impl::insert_peer
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_VAL
    - insert
    - TORRENT_ASSERT
    - reserve
    - capacity
    - size
    linkageType: ''
    returnType: void
    signature: void session_impl::insert_peer(std::shared_ptr<peer_connection> const&
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port_filter_updated
      Src: /src/libtorrent/src/session_impl.cpp:1202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - port_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1203
    functionName: session_impl::set_port_filter
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - port_filter_updated
    linkageType: ''
    returnType: void
    signature: void session_impl::set_port_filter(port_filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:1209,1
    - Dst: session_impl::set_ip_filter
      Src: /src/libtorrent/src/session_impl.cpp:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::shared_ptr<ip_filter>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1215
    functionName: session_impl::set_ip_filter
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - session_impl::set_ip_filter
    linkageType: ''
    returnType: void
    signature: void session_impl::set_ip_filter(std::shared_ptr<ip_filter> f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1219,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:1219,1
    - Dst: std::make_shared<ip_filter>
      Src: /src/libtorrent/src/session_impl.cpp:1220,1
    - Dst: add_rule
      Src: /src/libtorrent/src/session_impl.cpp:1221,1
    - Dst: session_impl::set_ip_filter
      Src: /src/libtorrent/src/session_impl.cpp:1223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1217
    functionDepth: 2
    functionLinenumber: 1217
    functionLinenumberEnd: 1224
    functionName: session_impl::ban_ip
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - is_single_thread
    - session_impl::set_ip_filter
    - TORRENT_ASSERT
    - add_rule
    - std::make_shared<ip_filter>
    linkageType: ''
    returnType: void
    signature: void session_impl::ban_ip(address addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1228,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:1228,1
    - Dst: std::make_shared<ip_filter>
      Src: /src/libtorrent/src/session_impl.cpp:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1231
    functionName: '& session_impl::get_ip_filter()'
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - std::make_shared<ip_filter>
    linkageType: ''
    returnType: ip_filter
    signature: ip_filter & session_impl::get_ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1235,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1237
    functionName: '& session_impl::get_port_filter() const'
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: port_filter
    signature: port_filter & session_impl::get_port_filter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1241,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:1241,1
    - Dst: new_peer_class
      Src: /src/libtorrent/src/session_impl.cpp:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1243
    functionName: session_impl::create_peer_class
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - new_peer_class
    linkageType: ''
    returnType: peer_class_t
    signature: peer_class_t session_impl::create_peer_class(char const* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1247,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:1247,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_impl.cpp:1249,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1249,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1250,1
    - Dst: decref
      Src: /src/libtorrent/src/session_impl.cpp:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cid
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1252
    functionName: session_impl::delete_peer_class
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - at
    - is_single_thread
    - decref
    - TORRENT_ASSERT_PRECOND
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void session_impl::delete_peer_class(peer_class_t const cid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1257,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_impl.cpp:1259,1
    - Dst: peer_class_info::label::resize
      Src: /src/libtorrent/src/session_impl.cpp:1266,1
    - Dst: url_random
      Src: /src/libtorrent/src/session_impl.cpp:1267,1
    - Dst: span<char>
      Src: /src/libtorrent/src/session_impl.cpp:1267,1
    - Dst: peer_class*::get_info
      Src: /src/libtorrent/src/session_impl.cpp:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - cid
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1278
    functionName: session_impl::get_peer_class
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - at
    - TORRENT_ASSERT_PRECOND
    - url_random
    - peer_class_info::label::resize
    - peer_class*::get_info
    linkageType: ''
    returnType: peer_class_info
    signature: peer_class_info session_impl::get_peer_class(peer_class_t const cid)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1283
    functionName: make_announce_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t make_announce_port(std::uint16_t const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1283
    functionName: make_announce_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t make_announce_port(std::uint16_t const p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1327,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_impl.cpp:1329,1
    - Dst: peer_class*::set_info
      Src: /src/libtorrent/src/session_impl.cpp:1332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cid
    - ' pci'
    argTypes:
    - peer_class_t
    - peer_class_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1333
    functionName: session_impl::set_peer_class
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - at
    - TORRENT_ASSERT_PRECOND
    - peer_class*::set_info
    linkageType: ''
    returnType: void
    signature: void session_impl::set_peer_class(peer_class_t const cid, peer_class_info
      const& pci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - ip_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1339
    functionName: session_impl::set_peer_class_filter
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_impl::set_peer_class_filter(ip_filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1344
    functionName: '& session_impl::get_peer_class_filter() const'
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_filter
    signature: ip_filter & session_impl::get_peer_class_filter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - peer_class_type_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1349
    functionName: session_impl::set_peer_class_type_filter
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_impl::set_peer_class_type_filter(peer_class_type_filter
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1354
    functionName: session_impl::get_peer_class_type_filter
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_class_type_filter
    signature: peer_class_type_filter session_impl::get_peer_class_type_filter()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/libtorrent/src/session_impl.cpp:1358,1
    - Dst: apply
      Src: /src/libtorrent/src/session_impl.cpp:1375,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/session_impl.cpp:1383,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1383,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1385,1
    - Dst: peer_class_set*::add_class
      Src: /src/libtorrent/src/session_impl.cpp:1386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - s
    - ' a'
    - st
    argTypes:
    - peer_class_set*
    - address
    - socket_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1388
    functionName: session_impl::set_peer_classes
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - access
    - at
    - TORRENT_ASSERT_PRECOND
    - apply
    - peer_class_set*::add_class
    linkageType: ''
    returnType: void
    signature: void session_impl::set_peer_classes(peer_class_set* s, address const&
      a, socket_type_t const st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_classes
      Src: /src/libtorrent/src/session_impl.cpp:1392,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1395,1
    - Dst: class_at
      Src: /src/libtorrent/src/session_impl.cpp:1395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' set'
    argTypes:
    - peer_class_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1400
    functionName: session_impl::ignore_unchoke_slots_set
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - num_classes
    - at
    - class_at
    linkageType: ''
    returnType: bool
    signature: bool session_impl::ignore_unchoke_slots_set(peer_class_set const& set)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1406
    functionName: session_impl::get_bandwidth_manager
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bandwidth_manager
    signature: bandwidth_manager * session_impl::get_bandwidth_manager(int channel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/session_impl.cpp:1412,1
    - Dst: make_handler
      Src: /src/libtorrent/src/session_impl.cpp:1412,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:1413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1415
    functionName: session_impl::deferred_submit_jobs
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_handler
    - wrap
    linkageType: ''
    returnType: void
    signature: void session_impl::deferred_submit_jobs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1419,1
    - Dst: submit_jobs
      Src: /src/libtorrent/src/session_impl.cpp:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1422
    functionName: session_impl::submit_disk_jobs
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - submit_jobs
    linkageType: ''
    returnType: void
    signature: void session_impl::submit_disk_jobs()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_classes
      Src: /src/libtorrent/src/session_impl.cpp:1432,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1436,1
    - Dst: class_at
      Src: /src/libtorrent/src/session_impl.cpp:1436,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1437,1
    - Dst: bandwidth_channel*::throttle
      Src: /src/libtorrent/src/session_impl.cpp:1441,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - ' set'
    - channel
    - dst
    - max
    argTypes:
    - peer_class_set
    - int
    - bandwidth_channel**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1447
    functionName: session_impl::copy_pertinent_channels
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - num_classes
    - bandwidth_channel*::throttle
    - at
    - TORRENT_ASSERT
    - class_at
    linkageType: ''
    returnType: int
    signature: "int session_impl::copy_pertinent_channels(peer_class_set const& set\n\t\t,
      int channel, bandwidth_channel** dst, int const max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bandwidth_channel*::use_quota
      Src: /src/libtorrent/src/session_impl.cpp:1451,1
    - Dst: bandwidth_channel*::throttle
      Src: /src/libtorrent/src/session_impl.cpp:1452,1
    - Dst: bandwidth_channel*::throttle
      Src: /src/libtorrent/src/session_impl.cpp:1452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ch
    - amount
    argTypes:
    - bandwidth_channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1453
    functionName: session_impl::use_quota_overhead
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - bandwidth_channel*::throttle
    - bandwidth_channel*::use_quota
    linkageType: ''
    returnType: bool
    signature: bool session_impl::use_quota_overhead(bandwidth_channel* ch, int amount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_classes
      Src: /src/libtorrent/src/session_impl.cpp:1458,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:1461,1
    - Dst: class_at
      Src: /src/libtorrent/src/session_impl.cpp:1461,1
    - Dst: session_impl::use_quota_overhead
      Src: /src/libtorrent/src/session_impl.cpp:1465,1
    - Dst: session_impl::use_quota_overhead
      Src: /src/libtorrent/src/session_impl.cpp:1468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ' set'
    - amount_down
    - amount_up
    argTypes:
    - peer_class_set
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1472
    functionName: session_impl::use_quota_overhead
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - num_classes
    - at
    - class_at
    - session_impl::use_quota_overhead
    linkageType: ''
    returnType: int
    signature: int session_impl::use_quota_overhead(peer_class_set& set, int const
      amount_down, int const amount_up)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pack
    argTypes:
    - std::shared_ptr<settings_pack>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1479
    functionName: session_impl::apply_settings_pack
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::apply_settings_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_impl::apply_settings_pack(std::shared_ptr<settings_pack>
      pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/src/session_impl.cpp:1488,1
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:1488,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_impl.cpp:1493,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:1493,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/src/session_impl.cpp:1498,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:1498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1501
    functionName: session_impl::get_settings
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - get_int
    - settings_pack::set_bool
    - settings_pack::set_str
    - get_bool
    - settings_pack::set_int
    linkageType: ''
    returnType: settings_pack
    signature: settings_pack session_impl::get_settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - Pack
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1506
    functionName: get_setting_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int get_setting_impl(Pack const& p, int name, int*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - Pack
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1510
    functionName: get_setting_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_bool
    linkageType: ''
    returnType: bool
    signature: bool get_setting_impl(Pack const& p, int name, bool*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - Pack
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1514
    functionName: get_setting_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_str
    linkageType: ''
    returnType: std::string
    signature: std::string get_setting_impl(Pack const& p, int name, std::string*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_setting_impl
      Src: /src/libtorrent/src/session_impl.cpp:1519,1
    - Dst: static_cast<Type*>
      Src: /src/libtorrent/src/session_impl.cpp:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - Pack
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1520
    functionName: get_setting
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_setting_impl
    - static_cast<Type*>
    linkageType: ''
    returnType: Type
    signature: Type get_setting(Pack const& p, int name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_val
      Src: /src/libtorrent/src/session_impl.cpp:1525,1
    - Dst: get_setting
      Src: /src/libtorrent/src/session_impl.cpp:1526,1
    - Dst: get_setting
      Src: /src/libtorrent/src/session_impl.cpp:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' pack'
    - ' sett'
    - name
    argTypes:
    - settings_pack
    - aux::session_settings
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1523
    functionDepth: 2
    functionLinenumber: 1523
    functionLinenumberEnd: 1527
    functionName: setting_changed
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - has_val
    - get_setting
    linkageType: ''
    returnType: bool
    signature: bool setting_changed(settings_pack const& pack, aux::session_settings
      const& sett, int name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - Pack
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1506
    functionName: get_setting_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int get_setting_impl(Pack const& p, int name, int*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - Pack
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1510
    functionName: get_setting_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_bool
    linkageType: ''
    returnType: bool
    signature: bool get_setting_impl(Pack const& p, int name, bool*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - Pack
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1514
    functionName: get_setting_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_str
    linkageType: ''
    returnType: std::string
    signature: std::string get_setting_impl(Pack const& p, int name, std::string*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_setting_impl
      Src: /src/libtorrent/src/session_impl.cpp:1519,1
    - Dst: static_cast<Type*>
      Src: /src/libtorrent/src/session_impl.cpp:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - name
    argTypes:
    - Pack
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1520
    functionName: get_setting
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_setting_impl
    - static_cast<Type*>
    linkageType: ''
    returnType: Type
    signature: Type get_setting(Pack const& p, int name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_val
      Src: /src/libtorrent/src/session_impl.cpp:1525,1
    - Dst: get_setting
      Src: /src/libtorrent/src/session_impl.cpp:1526,1
    - Dst: get_setting
      Src: /src/libtorrent/src/session_impl.cpp:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' pack'
    - ' sett'
    - name
    argTypes:
    - settings_pack
    - aux::session_settings
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1523
    functionDepth: 2
    functionLinenumber: 1523
    functionLinenumberEnd: 1527
    functionName: setting_changed
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - has_val
    - get_setting
    linkageType: ''
    returnType: bool
    signature: bool setting_changed(settings_pack const& pack, aux::session_settings
      const& sett, int name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:1533,1
    - Dst: TORRENT_ASSERT_PRECOND_MSG
      Src: /src/libtorrent/src/session_impl.cpp:1534,1
    - Dst: name_for_setting
      Src: /src/libtorrent/src/session_impl.cpp:1534,1
    - Dst: TORRENT_ASSERT_PRECOND_MSG
      Src: /src/libtorrent/src/session_impl.cpp:1535,1
    - Dst: name_for_setting
      Src: /src/libtorrent/src/session_impl.cpp:1535,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1538,1
    - Dst: name_for_setting
      Src: /src/libtorrent/src/session_impl.cpp:1538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - int_name
    - min
    - max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1540
    functionName: session_impl::validate_setting
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::session_log
    - get_int
    - name_for_setting
    - TORRENT_ASSERT_PRECOND_MSG
    linkageType: ''
    returnType: void
    signature: void session_impl::validate_setting(int const int_name, int const min,
      int const max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1544,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1545,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1546,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1547,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1548,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1549,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1550,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1551,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1552,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1553,1
    - Dst: session_impl::validate_setting
      Src: /src/libtorrent/src/session_impl.cpp:1554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1542
    functionDepth: 2
    functionLinenumber: 1542
    functionLinenumberEnd: 1555
    functionName: session_impl::validate_settings
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::validate_setting
    linkageType: ''
    returnType: void
    signature: void session_impl::validate_settings()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setting_changed
      Src: /src/libtorrent/src/session_impl.cpp:1561,1
    - Dst: setting_changed
      Src: /src/libtorrent/src/session_impl.cpp:1562,1
    - Dst: setting_changed
      Src: /src/libtorrent/src/session_impl.cpp:1563,1
    - Dst: setting_changed
      Src: /src/libtorrent/src/session_impl.cpp:1565,1
    - Dst: setting_changed
      Src: /src/libtorrent/src/session_impl.cpp:1570,1
    - Dst: setting_changed
      Src: /src/libtorrent/src/session_impl.cpp:1571,1
    - Dst: setting_changed
      Src: /src/libtorrent/src/session_impl.cpp:1572,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1576,1
    - Dst: apply_pack
      Src: /src/libtorrent/src/session_impl.cpp:1580,1
    - Dst: session_impl::validate_settings
      Src: /src/libtorrent/src/session_impl.cpp:1583,1
    - Dst: settings_updated
      Src: /src/libtorrent/src/session_impl.cpp:1586,1
    - Dst: session_impl::update_listen_interfaces
      Src: /src/libtorrent/src/session_impl.cpp:1592,1
    - Dst: session_impl::reopen_listen_sockets
      Src: /src/libtorrent/src/session_impl.cpp:1596,1
    - Dst: update_want_peers
      Src: /src/libtorrent/src/session_impl.cpp:1602,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1558
    functionDepth: 3
    functionLinenumber: 1558
    functionLinenumberEnd: 1604
    functionName: session_impl::apply_settings_pack_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - session_impl::validate_settings
    - setting_changed
    - apply_pack
    - update_want_peers
    - settings_updated
    - session_impl::update_listen_interfaces
    - session_impl::reopen_listen_sockets
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::apply_settings_pack_impl(settings_pack const& pack)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:1609,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_impl.cpp:1610,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1613,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1615,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:1616,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1616,1
    - Dst: std::make_shared<listen_socket_t>
      Src: /src/libtorrent/src/session_impl.cpp:1625,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1627,1
    - Dst: std::make_shared<tcp::acceptor>
      Src: /src/libtorrent/src/session_impl.cpp:1642,1
    - Dst: auto::sock::open
      Src: /src/libtorrent/src/session_impl.cpp:1643,1
    - Dst: tcp::endpoint::protocol
      Src: /src/libtorrent/src/session_impl.cpp:1643,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1648,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1650,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1651,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:1655,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:1656,1
    - Dst: auto::sock::set_option
      Src: /src/libtorrent/src/session_impl.cpp:1665,1
    - Dst: exclusive_address_use
      Src: /src/libtorrent/src/session_impl.cpp:1665,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1667,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1669,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:1670,1
    - Dst: auto::sock::set_option
      Src: /src/libtorrent/src/session_impl.cpp:1679,1
    - Dst: tcp::acceptor::reuse_address
      Src: /src/libtorrent/src/session_impl.cpp:1679,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1681,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1683,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:1684,1
    - Dst: is_v6
      Src: /src/libtorrent/src/session_impl.cpp:1690,1
    - Dst: auto::sock::set_option
      Src: /src/libtorrent/src/session_impl.cpp:1693,1
    - Dst: boost::asio::ip::v6_only
      Src: /src/libtorrent/src/session_impl.cpp:1693,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1695,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1697,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:1698,1
    - Dst: auto::sock::set_option
      Src: /src/libtorrent/src/session_impl.cpp:1704,1
    - Dst: v6_protection_level
      Src: /src/libtorrent/src/session_impl.cpp:1704,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1706,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1708,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:1709,1
    - Dst: device::empty
      Src: /src/libtorrent/src/session_impl.cpp:1715,1
    - Dst: bind_device
      Src: /src/libtorrent/src/session_impl.cpp:1720,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1720,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1722,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1724,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1725,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1725,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:1728,1
    - Dst: auto::sock::bind
      Src: /src/libtorrent/src/session_impl.cpp:1732,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:1735,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/session_impl.cpp:1737,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1739,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1741,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:1743,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1744,1
    - Dst: category
      Src: /src/libtorrent/src/session_impl.cpp:1745,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:1745,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1745,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:1749,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1751,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1751,1
    - Dst: auto::sock::bind
      Src: /src/libtorrent/src/session_impl.cpp:1752,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:1755,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:1756,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1757,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1760,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:1761,1
    - Dst: auto::sock::bind
      Src: /src/libtorrent/src/session_impl.cpp:1762,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1771,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1773,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:1775,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1776,1
    - Dst: category
      Src: /src/libtorrent/src/session_impl.cpp:1777,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:1777,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1777,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:1780,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:1782,1
    - Dst: auto::sock::reset
      Src: /src/libtorrent/src/session_impl.cpp:1785,1
    - Dst: auto::sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:1788,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1793,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1795,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1796,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:1799,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:1801,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:1807,1
    - Dst: auto::local_endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1807,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1807,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1808,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1810,1
    - Dst: auto::sock::listen
      Src: /src/libtorrent/src/session_impl.cpp:1812,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:1812,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1818,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1820,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1821,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1821,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:1824,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:1826,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:1837,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1837,1
    - Dst: std::make_shared<session_udp_socket>
      Src: /src/libtorrent/src/session_impl.cpp:1839,1
    - Dst: auto::udp_sock::sock::open
      Src: /src/libtorrent/src/session_impl.cpp:1840,1
    - Dst: udp::endpoint::protocol
      Src: /src/libtorrent/src/session_impl.cpp:1840,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1844,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1846,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1847,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1847,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:1852,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:1853,1
    - Dst: device::empty
      Src: /src/libtorrent/src/session_impl.cpp:1860,1
    - Dst: bind_device
      Src: /src/libtorrent/src/session_impl.cpp:1862,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1862,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1864,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1866,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1867,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1867,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:1870,1
    - Dst: auto::udp_sock::sock::bind
      Src: /src/libtorrent/src/session_impl.cpp:1873,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:1875,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/session_impl.cpp:1877,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1879,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1881,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:1883,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1884,1
    - Dst: category
      Src: /src/libtorrent/src/session_impl.cpp:1885,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:1885,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1885,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:1889,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1891,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1891,1
    - Dst: auto::udp_sock::sock::bind
      Src: /src/libtorrent/src/session_impl.cpp:1892,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:1895,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:1896,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1897,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:1900,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:1901,1
    - Dst: auto::udp_sock::sock::bind
      Src: /src/libtorrent/src/session_impl.cpp:1902,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1909,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1911,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:1912,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1912,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:1916,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:1917,1
    - Dst: auto::udp_sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:1927,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:1928,1
    - Dst: auto::address
      Src: /src/libtorrent/src/session_impl.cpp:1928,1
    - Dst: auto::port
      Src: /src/libtorrent/src/session_impl.cpp:1928,1
    - Dst: set_socket_buffer_size
      Src: /src/libtorrent/src/session_impl.cpp:1934,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:1937,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:1938,1
    - Dst: auto::udp_sock::sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:1938,1
    - Dst: auto::udp_sock::sock::set_proxy_settings
      Src: /src/libtorrent/src/session_impl.cpp:1946,1
    - Dst: session_impl::proxy
      Src: /src/libtorrent/src/session_impl.cpp:1946,1
    - Dst: get_resolver
      Src: /src/libtorrent/src/session_impl.cpp:1946,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:1947,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:1949,1
    - Dst: auto::udp_sock::sock::async_read
      Src: /src/libtorrent/src/session_impl.cpp:1950,1
    - Dst: libtorrent::aux::make_handler
      Src: /src/libtorrent/src/session_impl.cpp:1950,1
    - Dst: session_impl::on_udp_packet
      Src: /src/libtorrent/src/session_impl.cpp:1951,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:1955,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1957,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:1958,1
    - Dst: auto::tcp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:1959,1
    - Dst: auto::udp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:1959,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 162
    argCount: 2
    argNames:
    - ' lep'
    - ' ec'
    argTypes:
    - listen_endpoint_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1963
    functionName: session_impl::setup_listener
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::protocol
    - libtorrent::aux::make_handler
    - tcp::endpoint::address
    - category
    - std::make_shared<session_udp_socket>
    - bind_device
    - auto::sock::bind
    - auto::tcp_external_port
    - get_bool
    - tcp::acceptor::reuse_address
    - value
    - tcp::endpoint::port
    - ADD_OUTSTANDING_ASYNC
    - session_impl::should_log
    - exclusive_address_use
    - std::uint16_t
    - message
    - auto::address
    - print_endpoint
    - get_int
    - std::make_shared<tcp::acceptor>
    - auto::udp_sock::sock::set_proxy_settings
    - error_code::message
    - should_post
    - clear
    - auto::udp_external_port
    - auto::udp_sock::sock::open
    - auto::port
    - is_v6
    - boost::asio::ip::v6_only
    - auto::udp_sock::sock::async_read
    - emplace_alert
    - get_resolver
    - TORRENT_ASSERT_VAL
    - std::make_shared<listen_socket_t>
    - TORRENT_ASSERT
    - auto::sock::set_option
    - auto::sock::local_endpoint
    - auto::sock::reset
    - auto::local_endpoint::port
    - session_impl::on_udp_packet
    - udp::endpoint::port
    - device::c_str
    - v6_protection_level
    - device::empty
    - session_impl::proxy
    - udp::endpoint::protocol
    - error_code
    - auto::sock::listen
    - auto::udp_sock::local_endpoint
    - set_socket_buffer_size
    - local_endpoint
    - settings
    - auto::udp_sock::sock::bind
    - session_impl::session_log
    - auto::sock::open
    - auto::udp_sock::sock::local_endpoint
    linkageType: ''
    returnType: std::shared_ptr<listen_socket_t>
    signature: "std::shared_ptr<listen_socket_t> session_impl::setup_listener(\n\t\tlisten_endpoint_t
      const& lep, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:1967,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1969,1
    - Dst: what
      Src: /src/libtorrent/src/session_impl.cpp:1969,1
    - Dst: session_impl::abort
      Src: /src/libtorrent/src/session_impl.cpp:1971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 1972
    functionName: session_impl::on_exception
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::abort
    - session_impl::session_log
    - TORRENT_UNUSED
    - what
    linkageType: ''
    returnType: void
    signature: void session_impl::on_exception(std::exception const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:1976,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1978,1
    - Dst: category
      Src: /src/libtorrent/src/session_impl.cpp:1979,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:1979,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1979,1
    - Dst: session_impl::abort
      Src: /src/libtorrent/src/session_impl.cpp:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 1982
    functionName: session_impl::on_error
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - message
    - category
    - value
    - session_impl::abort
    - session_impl::session_log
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void session_impl::on_error(error_code const& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1988,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:1990,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:1990,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:1990,1
    - Dst: async_wait
      Src: /src/libtorrent/src/session_impl.cpp:1993,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:1994,1
    - Dst: session_impl::reopen_network_sockets
      Src: /src/libtorrent/src/session_impl.cpp:1995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1984
    functionDepth: 1
    functionLinenumber: 1984
    functionLinenumberEnd: 1996
    functionName: session_impl::on_ip_change
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - wrap
    - async_wait
    - message
    - value
    - session_impl::reopen_network_sockets
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::on_ip_change(error_code const& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/session_impl.cpp:2011,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:2011,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_impl.cpp:2014,1
    - Dst: interface_address::is_loopback
      Src: /src/libtorrent/src/session_impl.cpp:2030,1
    - Dst: is_link_local
      Src: /src/libtorrent/src/session_impl.cpp:2031,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_impl.cpp:2033,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' iface'
    - flags
    - ifs
    - ' eps'
    argTypes:
    - listen_interface_t
    - listen_socket_flags_t
    - span<ip_interface const>
    - std::vector<listen_endpoint_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2001
    functionDepth: 0
    functionLinenumber: 2001
    functionLinenumberEnd: 2037
    functionName: interface_to_endpoints
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - is_link_local
    - emplace_back
    - make_address
    - interface_address::is_loopback
    - device::c_str
    linkageType: ''
    returnType: void
    signature: "void interface_to_endpoints(listen_interface_t const& iface\n\t\t,
      listen_socket_flags_t flags\n\t\t, span<ip_interface const> const ifs\n\t\t,
      std::vector<listen_endpoint_t>& eps)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2042,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2045,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:2045,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2047,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2060,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:2061,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:2067,1
    - Dst: random
      Src: /src/libtorrent/src/session_impl.cpp:2068,1
    - Dst: front
      Src: /src/libtorrent/src/session_impl.cpp:2069,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/session_impl.cpp:2070,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/session_impl.cpp:2072,1
    - Dst: enum_net_interfaces
      Src: /src/libtorrent/src/session_impl.cpp:2076,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2077,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2079,1
    - Dst: enum_routes
      Src: /src/libtorrent/src/session_impl.cpp:2082,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2083,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2085,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2096,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:2097,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2099,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2101,1
    - Dst: interface_to_endpoints
      Src: /src/libtorrent/src/session_impl.cpp:2114,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_impl.cpp:2117,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2120,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/session_impl.cpp:2133,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/src/session_impl.cpp:2133,1
    - Dst: expand_unspecified_address
      Src: /src/libtorrent/src/session_impl.cpp:2135,1
    - Dst: expand_devices
      Src: /src/libtorrent/src/session_impl.cpp:2137,1
    - Dst: partition_listen_sockets
      Src: /src/libtorrent/src/session_impl.cpp:2140,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2142,1
    - Dst: delete_socket
      Src: /src/libtorrent/src/session_impl.cpp:2146,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:2150,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2152,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2153,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:2154,1
    - Dst: sock::close
      Src: /src/libtorrent/src/session_impl.cpp:2157,1
    - Dst: udp_sock::sock::close
      Src: /src/libtorrent/src/session_impl.cpp:2158,1
    - Dst: natpmp_mapper::close
      Src: /src/libtorrent/src/session_impl.cpp:2159,1
    - Dst: upnp_mapper::close
      Src: /src/libtorrent/src/session_impl.cpp:2160,1
    - Dst: lsd::close
      Src: /src/libtorrent/src/session_impl.cpp:2161,1
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:2162,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:2167,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:2169,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/session_impl.cpp:2170,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:2170,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2170,1
    - Dst: session_impl::setup_listener
      Src: /src/libtorrent/src/session_impl.cpp:2181,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_impl.cpp:2185,1
    - Dst: new_socket
      Src: /src/libtorrent/src/session_impl.cpp:2192,1
    - Dst: back
      Src: /src/libtorrent/src/session_impl.cpp:2192,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2196,1
    - Dst: async_accept
      Src: /src/libtorrent/src/session_impl.cpp:2197,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:2203,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:2205,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2207,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2208,1
    - Dst: listen_endpoint_t::device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:2209,1
    - Dst: what
      Src: /src/libtorrent/src/session_impl.cpp:2210,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:2216,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2219,1
    - Dst: span<std::shared_ptr<listen_socket_t>>
      Src: /src/libtorrent/src/session_impl.cpp:2224,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2229,1
    - Dst: sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2236,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2244,1
    - Dst: udp_sock::sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2251,1
    - Dst: udp_sock::sock::is_open
      Src: /src/libtorrent/src/session_impl.cpp:2252,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2259,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2266,1
    - Dst: session_impl::update_peer_dscp
      Src: /src/libtorrent/src/session_impl.cpp:2268,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/session_impl.cpp:2271,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:2273,1
    - Dst: session_impl::start_natpmp
      Src: /src/libtorrent/src/session_impl.cpp:2276,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:2279,1
    - Dst: session_impl::start_upnp
      Src: /src/libtorrent/src/session_impl.cpp:2282,1
    - Dst: session_impl::remap_ports
      Src: /src/libtorrent/src/session_impl.cpp:2288,1
    - Dst: session_impl::remap_ports
      Src: /src/libtorrent/src/session_impl.cpp:2295,1
    - Dst: session_impl::update_lsd
      Src: /src/libtorrent/src/session_impl.cpp:2298,1
    - Dst: session_impl::open_new_incoming_i2p_connection
      Src: /src/libtorrent/src/session_impl.cpp:2301,1
    - Dst: enable_all_trackers
      Src: /src/libtorrent/src/session_impl.cpp:2312,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 104
    argCount: 1
    argNames:
    - map_ports
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2039
    functionDepth: 2
    functionLinenumber: 2039
    functionLinenumberEnd: 2313
    functionName: session_impl::reopen_listen_sockets
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - begin
    - std::vector::emplace_back
    - partition_listen_sockets
    - empty
    - span<std::shared_ptr<listen_socket_t>>
    - udp_sock::sock::is_open
    - error_code::clear
    - session_impl::start_upnp
    - enum_routes
    - get_bool
    - emplace_back
    - new_socket
    - sock::local_endpoint
    - udp_sock::sock::local_endpoint
    - session_impl::setup_listener
    - upnp_mapper::close
    - session_impl::should_log
    - auto::empty
    - expand_devices
    - interface_to_endpoints
    - expand_unspecified_address
    - is_single_thread
    - lsd::close
    - end
    - front
    - print_endpoint
    - get_int
    - back
    - should_post
    - session_impl::open_new_incoming_i2p_connection
    - what
    - session_impl::start_natpmp
    - emplace_alert
    - erase
    - session_impl::update_peer_dscp
    - TORRENT_ASSERT
    - sock::close
    - address_v4::any
    - set_value
    - session_impl::update_lsd
    - listen_endpoint_t::device::c_str
    - natpmp_mapper::close
    - size
    - device::c_str
    - random
    - TORRENT_UNUSED
    - async_accept
    - std::vector::empty
    - session_impl::remap_ports
    - delete_socket
    - udp_sock::sock::close
    - std::any_of
    - enable_all_trackers
    - enum_net_interfaces
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::reopen_listen_sockets(bool const map_ports)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:2203,1
    - Dst: should_log
      Src: /src/libtorrent/src/session_impl.cpp:2205,1
    - Dst: session_log
      Src: /src/libtorrent/src/session_impl.cpp:2207,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2208,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:2209,1
    - Dst: what
      Src: /src/libtorrent/src/session_impl.cpp:2210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2201
    functionDepth: 1
    functionLinenumber: 2201
    functionLinenumberEnd: 2213
    functionName: catch
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_log
    - print_endpoint
    - should_log
    - what
    - TORRENT_UNUSED
    - device::c_str
    linkageType: ''
    returnType: void
    signature: void catch (std::exception const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::reopen_listen_sockets
      Src: /src/libtorrent/src/session_impl.cpp:2317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - reopen_network_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2315
    functionDepth: 3
    functionLinenumber: 2315
    functionLinenumberEnd: 2318
    functionName: session_impl::reopen_network_sockets
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::reopen_listen_sockets
    linkageType: ''
    returnType: void
    signature: void session_impl::reopen_network_sockets(reopen_network_flags_t const
      options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: delete_mapping
      Src: /src/libtorrent/src/session_impl.cpp:2325,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:2328,1
    - Dst: address::is_v6
      Src: /src/libtorrent/src/session_impl.cpp:2331,1
    - Dst: is_local
      Src: /src/libtorrent/src/session_impl.cpp:2331,1
    - Dst: EndpointType
      Src: /src/libtorrent/src/session_impl.cpp:2335,1
    - Dst: add_mapping
      Src: /src/libtorrent/src/session_impl.cpp:2336,1
    - Dst: port
      Src: /src/libtorrent/src/session_impl.cpp:2336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ' m'
    - protocol
    - ' ep'
    - ' map_handle'
    - ' device'
    argTypes:
    - MapProtocol
    - ProtoType
    - EndpointType
    - port_mapping_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2322
    functionDepth: 0
    functionLinenumber: 2322
    functionLinenumberEnd: 2337
    functionName: map_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - is_local
    - add_mapping
    - address::is_v6
    - port
    - delete_mapping
    - address
    - EndpointType
    linkageType: ''
    returnType: void
    signature: "void map_port(MapProtocol& m, ProtoType protocol, EndpointType const&
      ep\n\t\t\t, port_mapping_t& map_handle, std::string const& device)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: delete_mapping
      Src: /src/libtorrent/src/session_impl.cpp:2325,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:2328,1
    - Dst: address::is_v6
      Src: /src/libtorrent/src/session_impl.cpp:2331,1
    - Dst: is_local
      Src: /src/libtorrent/src/session_impl.cpp:2331,1
    - Dst: EndpointType
      Src: /src/libtorrent/src/session_impl.cpp:2335,1
    - Dst: add_mapping
      Src: /src/libtorrent/src/session_impl.cpp:2336,1
    - Dst: port
      Src: /src/libtorrent/src/session_impl.cpp:2336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ' m'
    - protocol
    - ' ep'
    - ' map_handle'
    - ' device'
    argTypes:
    - MapProtocol
    - ProtoType
    - EndpointType
    - port_mapping_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2322
    functionDepth: 0
    functionLinenumber: 2322
    functionLinenumberEnd: 2337
    functionName: map_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - is_local
    - add_mapping
    - address::is_v6
    - port
    - delete_mapping
    - address
    - EndpointType
    linkageType: ''
    returnType: void
    signature: "void map_port(MapProtocol& m, ProtoType protocol, EndpointType const&
      ep\n\t\t\t, port_mapping_t& map_handle, std::string const& device)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2343,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2343,1
    - Dst: udp_sock::sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2344,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2344,1
    - Dst: map_port
      Src: /src/libtorrent/src/session_impl.cpp:2348,1
    - Dst: map_port
      Src: /src/libtorrent/src/session_impl.cpp:2350,1
    - Dst: make_tcp
      Src: /src/libtorrent/src/session_impl.cpp:2350,1
    - Dst: map_port
      Src: /src/libtorrent/src/session_impl.cpp:2355,1
    - Dst: map_port
      Src: /src/libtorrent/src/session_impl.cpp:2357,1
    - Dst: make_tcp
      Src: /src/libtorrent/src/session_impl.cpp:2357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - mask
    - ' s'
    argTypes:
    - remap_port_mask_t
    - listen_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2360
    functionName: session_impl::remap_ports
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - map_port
    - local_endpoint
    - sock::local_endpoint
    - udp_sock::sock::local_endpoint
    - make_tcp
    linkageType: ''
    returnType: void
    signature: "void session_impl::remap_ports(remap_port_mask_t const mask\n\t\t,
      listen_socket_t& s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:2369,1
    - Dst: close
      Src: /src/libtorrent/src/session_impl.cpp:2372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2375,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2377,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2378,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2379,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2380,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2381,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2382,1
    - Dst: open
      Src: /src/libtorrent/src/session_impl.cpp:2384,1
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:2384,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2385,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:2387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2362
    functionDepth: 1
    functionLinenumber: 2362
    functionLinenumberEnd: 2389
    functionName: session_impl::update_i2p_bridge
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - std::bind
    - open
    - TORRENT_ASSERT
    - get_int
    - close
    linkageType: ''
    returnType: void
    signature: void session_impl::update_i2p_bridge()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:2394,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:2394,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2394,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:2397,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2400,1
    - Dst: udp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' local_address'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2392
    functionDepth: 0
    functionLinenumber: 2392
    functionLinenumberEnd: 2404
    functionName: session_impl::external_udp_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - begin
    - udp_external_port
    - end
    - local_endpoint::address
    - std::find_if
    linkageType: ''
    returnType: int
    signature: int session_impl::external_udp_port(address const& local_address) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2412,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2413,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:2416,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2417,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:2417,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:2417,1
    - Dst: session_impl::open_new_incoming_i2p_connection
      Src: /src/libtorrent/src/session_impl.cpp:2424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2408
    functionDepth: 1
    functionLinenumber: 2408
    functionLinenumberEnd: 2425
    functionName: session_impl::on_i2p_open
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::should_log
    - emplace_alert
    - message
    - should_post
    - value
    - session_impl::open_new_incoming_i2p_connection
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::on_i2p_open(error_code const& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/src/session_impl.cpp:2430,1
    - Dst: emplace
      Src: /src/libtorrent/src/session_impl.cpp:2433,1
    - Dst: instantiate_connection
      Src: /src/libtorrent/src/session_impl.cpp:2434,1
    - Dst: session_impl::proxy
      Src: /src/libtorrent/src/session_impl.cpp:2434,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2437,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/session_impl.cpp:2438,1
    - Dst: set_command
      Src: /src/libtorrent/src/session_impl.cpp:2439,1
    - Dst: set_session_id
      Src: /src/libtorrent/src/session_impl.cpp:2440,1
    - Dst: session_id
      Src: /src/libtorrent/src/session_impl.cpp:2440,1
    - Dst: async_connect
      Src: /src/libtorrent/src/session_impl.cpp:2442,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2442,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:2443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2444
    functionName: session_impl::open_new_incoming_i2p_connection
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - set_session_id
    - is_open
    - async_connect
    - session_id
    - set_command
    - emplace
    - boost::get<i2p_stream>
    - local_endpoint
    - instantiate_connection
    - session_impl::proxy
    linkageType: ''
    returnType: void
    signature: void session_impl::open_new_incoming_i2p_connection()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2448,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2452,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2454,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:2459,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2460,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:2460,1
    - Dst: session_impl::incoming_connection
      Src: /src/libtorrent/src/session_impl.cpp:2464,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:2464,1
    - Dst: reset
      Src: /src/libtorrent/src/session_impl.cpp:2465,1
    - Dst: session_impl::open_new_incoming_i2p_connection
      Src: /src/libtorrent/src/session_impl.cpp:2466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2446
    functionDepth: 2
    functionLinenumber: 2446
    functionLinenumberEnd: 2467
    functionName: session_impl::on_i2p_accept
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::should_log
    - reset
    - emplace_alert
    - std::move
    - message
    - COMPLETE_ASYNC
    - should_post
    - session_impl::open_new_incoming_i2p_connection
    - session_impl::incoming_connection
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::on_i2p_accept(error_code const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<utp_socket_interface>::lock
      Src: /src/libtorrent/src/session_impl.cpp:2477,1
    - Dst: std::static_pointer_cast<aux::listen_socket_t>
      Src: /src/libtorrent/src/session_impl.cpp:2484,1
    - Dst: auto::sock::send_hostname
      Src: /src/libtorrent/src/session_impl.cpp:2486,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2492,1
    - Dst: auto::sock::async_write
      Src: /src/libtorrent/src/session_impl.cpp:2493,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:2493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - sock
    - hostname
    - port
    - p
    - ' ec'
    - flags
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - char*
    - int
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2496
    functionName: session_impl::send_udp_packet_hostname
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - auto::sock::async_write
    - std::bind
    - auto::sock::send_hostname
    - std::static_pointer_cast<aux::listen_socket_t>
    - std::weak_ptr<utp_socket_interface>::lock
    linkageType: ''
    returnType: void
    signature: "void session_impl::send_udp_packet_hostname(std::weak_ptr<utp_socket_interface>
      sock\n\t\t, char const* hostname\n\t\t, int const port\n\t\t, span<char const>
      p\n\t\t, error_code& ec\n\t\t, udp_send_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<utp_socket_interface>::lock
      Src: /src/libtorrent/src/session_impl.cpp:2504,1
    - Dst: std::static_pointer_cast<aux::listen_socket_t>
      Src: /src/libtorrent/src/session_impl.cpp:2511,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2516,1
    - Dst: auto::sock::is_closed
      Src: /src/libtorrent/src/session_impl.cpp:2516,1
    - Dst: auto::sock::get_proxy_settings
      Src: /src/libtorrent/src/session_impl.cpp:2517,1
    - Dst: auto::sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2518,1
    - Dst: protocol
      Src: /src/libtorrent/src/session_impl.cpp:2518,1
    - Dst: auto::sock::send
      Src: /src/libtorrent/src/session_impl.cpp:2520,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2525,1
    - Dst: auto::sock::async_write
      Src: /src/libtorrent/src/session_impl.cpp:2526,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:2526,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 5
    argNames:
    - sock
    - ' ep'
    - p
    - ' ec'
    - flags
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2498
    functionDepth: 1
    functionLinenumber: 2498
    functionLinenumberEnd: 2529
    functionName: session_impl::send_udp_packet
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - protocol
    - auto::sock::is_closed
    - auto::sock::async_write
    - std::bind
    - auto::sock::send
    - TORRENT_ASSERT
    - auto::sock::local_endpoint
    - std::static_pointer_cast<aux::listen_socket_t>
    - auto::sock::get_proxy_settings
    - std::weak_ptr<utp_socket_interface>::lock
    linkageType: ''
    returnType: void
    signature: "void session_impl::send_udp_packet(std::weak_ptr<utp_socket_interface>
      sock\n\t\t, udp::endpoint const& ep\n\t\t, span<char const> p\n\t\t, error_code&
      ec\n\t\t, udp_send_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2533,1
    - Dst: std::weak_ptr<session_udp_socket>::lock
      Src: /src/libtorrent/src/session_impl.cpp:2536,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:2542,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:2543,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2543,1
    - Dst: TORRENT_SSL_PEERS
      Src: /src/libtorrent/src/session_impl.cpp:2549,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2550,1
    - Dst: writable
      Src: /src/libtorrent/src/session_impl.cpp:2554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - sock
    - ' ec'
    argTypes:
    - std::weak_ptr<session_udp_socket>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2531
    functionDepth: 1
    functionLinenumber: 2531
    functionLinenumberEnd: 2555
    functionName: session_impl::on_udp_writeable
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_SSL_PEERS
    - std::weak_ptr<session_udp_socket>::lock
    - begin
    - end
    - writable
    - COMPLETE_ASYNC
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void session_impl::on_udp_writeable(std::weak_ptr<session_udp_socket>
      sock, error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:2733,1
    - Dst: code
      Src: /src/libtorrent/src/session_impl.cpp:2733,1
    - Dst: what
      Src: /src/libtorrent/src/session_impl.cpp:2733,1
    - Dst: pause
      Src: /src/libtorrent/src/session_impl.cpp:2734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - system_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2732
    functionDepth: 0
    functionLinenumber: 2732
    functionLinenumberEnd: 2735
    functionName: catch
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - pause
    - code
    - what
    - alerts
    linkageType: ''
    returnType: void
    signature: void catch (system_error const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:2736,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:2736,1
    - Dst: what
      Src: /src/libtorrent/src/session_impl.cpp:2736,1
    - Dst: pause
      Src: /src/libtorrent/src/session_impl.cpp:2737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2735
    functionDepth: 0
    functionLinenumber: 2735
    functionLinenumberEnd: 2738
    functionName: catch
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - pause
    - error_code
    - what
    - alerts
    linkageType: ''
    returnType: void
    signature: void catch (std::exception const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:2739,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:2739,1
    - Dst: pause
      Src: /src/libtorrent/src/session_impl.cpp:2740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2738
    functionDepth: 0
    functionLinenumber: 2738
    functionLinenumberEnd: 2741
    functionName: catch
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - pause
    - error_code
    - alerts
    linkageType: ''
    returnType: void
    signature: void catch (...)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2747,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:2748,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:2749,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2751,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:2751,1
    - Dst: std::weak_ptr<tcp::acceptor>::lock
      Src: /src/libtorrent/src/session_impl.cpp:2752,1
    - Dst: std::shared_ptr::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2762,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:2764,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2766,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2767,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:2767,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:2773,1
    - Dst: async_accept
      Src: /src/libtorrent/src/session_impl.cpp:2775,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:2782,1
    - Dst: async_accept
      Src: /src/libtorrent/src/session_impl.cpp:2784,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2794,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/session_impl.cpp:2797,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:2797,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2797,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:2799,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:2799,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2801,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2802,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:2803,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2805,1
    - Dst: disconnect_peers
      Src: /src/libtorrent/src/session_impl.cpp:2807,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:2810,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:2811,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:2811,1
    - Dst: async_accept
      Src: /src/libtorrent/src/session_impl.cpp:2814,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2816,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2818,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:2818,1
    - Dst: async_accept
      Src: /src/libtorrent/src/session_impl.cpp:2824,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:2831,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:2832,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:2835,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:2835,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2835,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2838,1
    - Dst: socket_type
      Src: /src/libtorrent/src/session_impl.cpp:2849,1
    - Dst: ssl_stream<tcp::socket>
      Src: /src/libtorrent/src/session_impl.cpp:2849,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/src/session_impl.cpp:2849,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:2849,1
    - Dst: socket_type
      Src: /src/libtorrent/src/session_impl.cpp:2854,1
    - Dst: libtorrent::broadcast_socket::broadcast_socket
      Src: /src/libtorrent/src/session_impl.cpp:2854,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:2854,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2859,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/session_impl.cpp:2859,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2865,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/session_impl.cpp:2865,1
    - Dst: emplace
      Src: /src/libtorrent/src/session_impl.cpp:2869,1
    - Dst: std::make_unique<socket_type>
      Src: /src/libtorrent/src/session_impl.cpp:2869,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:2869,1
    - Dst: auto::get
      Src: /src/libtorrent/src/session_impl.cpp:2871,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2874,1
    - Dst: boost::get<ssl_stream<tcp::socket>>
      Src: /src/libtorrent/src/session_impl.cpp:2875,1
    - Dst: session_impl::ssl_handshake
      Src: /src/libtorrent/src/session_impl.cpp:2876,1
    - Dst: session_impl::incoming_connection
      Src: /src/libtorrent/src/session_impl.cpp:2881,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:2881,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 4
    argNames:
    - s
    - ' e'
    - listen_socket
    - ssl
    argTypes:
    - true_tcp_socket
    - error_code
    - std::weak_ptr<tcp::acceptor>
    - transport
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2744
    functionDepth: 2
    functionLinenumber: 2744
    functionLinenumberEnd: 2883
    functionName: session_impl::on_accept_connection
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - boost::get<ssl_stream<tcp::socket>>
    - std::move
    - begin
    - tcp::endpoint::address
    - auto::get
    - libtorrent::broadcast_socket::broadcast_socket
    - std::max
    - socket_type
    - get_bool
    - value
    - set_int
    - ADD_OUTSTANDING_ASYNC
    - session_impl::should_log
    - is_ssl
    - std::weak_ptr<tcp::acceptor>::lock
    - is_single_thread
    - message
    - end
    - emplace
    - print_endpoint
    - get_int
    - inc_stats_counter
    - ssl_stream<tcp::socket>
    - num_peers
    - should_post
    - disconnect_peers
    - COMPLETE_ASYNC
    - emplace_alert
    - session_impl::ssl_handshake
    - TORRENT_ASSERT
    - size
    - std::find_if
    - std::max_element
    - async_accept
    - std::shared_ptr::local_endpoint
    - std::make_unique<socket_type>
    - torrent_handle
    - session_impl::incoming_connection
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: "void session_impl::on_accept_connection(true_tcp_socket s, error_code
      const& e\n\t\t, std::weak_ptr<tcp::acceptor> listen_socket, transport const
      ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2889,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/session_impl.cpp:2889,1
    - Dst: emplace
      Src: /src/libtorrent/src/session_impl.cpp:2894,1
    - Dst: std::make_unique<socket_type>
      Src: /src/libtorrent/src/session_impl.cpp:2894,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:2894,1
    - Dst: auto::get
      Src: /src/libtorrent/src/session_impl.cpp:2895,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2899,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/session_impl.cpp:2900,1
    - Dst: session_impl::ssl_handshake
      Src: /src/libtorrent/src/session_impl.cpp:2901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2887
    functionDepth: 1
    functionLinenumber: 2887
    functionLinenumberEnd: 2902
    functionName: session_impl::on_incoming_utp_ssl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::make_unique<socket_type>
    - std::move
    - is_ssl
    - boost::get<ssl_stream<utp_stream>>
    - auto::get
    - session_impl::ssl_handshake
    - emplace
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void session_impl::on_incoming_utp_ssl(socket_type s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:2912,1
    - Dst: find
      Src: /src/libtorrent/src/session_impl.cpp:2914,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:2918,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:2920,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2921,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/session_impl.cpp:2921,1
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:2922,1
    - Dst: socket_type::remote_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2925,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:2929,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2931,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2932,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:2932,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/session_impl.cpp:2932,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2938,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2940,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:2940,1
    - Dst: peer_id
      Src: /src/libtorrent/src/session_impl.cpp:2941,1
    - Dst: session_impl::incoming_connection
      Src: /src/libtorrent/src/session_impl.cpp:2946,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:2946,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' ec'
    - sock
    argTypes:
    - error_code
    - socket_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2910
    functionDepth: 1
    functionLinenumber: 2910
    functionLinenumberEnd: 2947
    functionName: session_impl::ssl_handshake
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - session_impl::should_log
    - std::move
    - is_ssl
    - socket_type::remote_endpoint
    - session_impl::session_log
    - emplace_alert
    - erase
    - message
    - end
    - socket_type_name
    - find
    - print_endpoint
    - TORRENT_ASSERT
    - torrent_handle
    - peer_id
    - should_post
    - session_impl::incoming_connection
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void session_impl::ssl_handshake(error_code const& ec, socket_type*
      sock)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:2953,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:2953,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2958,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2966,1
    - Dst: socket_type::remote_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:2973,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:2978,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2980,1
    - Dst: print_error
      Src: /src/libtorrent/src/session_impl.cpp:2982,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:2988,1
    - Dst: is_utp
      Src: /src/libtorrent/src/session_impl.cpp:2989,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:2992,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:2994,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:2995,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:2995,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:3000,1
    - Dst: boost::get<tcp::socket>
      Src: /src/libtorrent/src/session_impl.cpp:3001,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3004,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:3006,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:3007,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:3007,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3014,1
    - Dst: socket_type::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:3016,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:3020,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3022,1
    - Dst: print_error
      Src: /src/libtorrent/src/session_impl.cpp:3023,1
    - Dst: session_impl::verify_incoming_interface
      Src: /src/libtorrent/src/session_impl.cpp:3029,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:3029,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:3032,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3034,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:3035,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:3038,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:3039,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:3039,1
    - Dst: session_impl::verify_bound_address
      Src: /src/libtorrent/src/session_impl.cpp:3043,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:3043,1
    - Dst: is_utp
      Src: /src/libtorrent/src/session_impl.cpp:3043,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:3048,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3050,1
    - Dst: print_error
      Src: /src/libtorrent/src/session_impl.cpp:3051,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:3058,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3060,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:3061,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:3064,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:3065,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:3065,1
    - Dst: is_local
      Src: /src/libtorrent/src/session_impl.cpp:3075,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:3075,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:3076,1
    - Dst: access
      Src: /src/libtorrent/src/session_impl.cpp:3083,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:3083,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3086,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:3088,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:3089,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:3089,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3096,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3102,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3105,1
    - Dst: session_impl::set_peer_classes
      Src: /src/libtorrent/src/session_impl.cpp:3113,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:3113,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/session_impl.cpp:3113,1
    - Dst: peer_class_set::num_classes
      Src: /src/libtorrent/src/session_impl.cpp:3115,1
    - Dst: peer_class_set::class_at
      Src: /src/libtorrent/src/session_impl.cpp:3117,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:3118,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:3119,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3124,1
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:3129,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3129,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:3133,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:3135,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:3135,1
    - Dst: peer_id
      Src: /src/libtorrent/src/session_impl.cpp:3135,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/session_impl.cpp:3136,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:3137,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:3141,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3143,1
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:3144,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3144,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3145,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:3157,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/session_impl.cpp:3159,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:3159,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3159,1
    - Dst: is_torrent_paused
      Src: /src/libtorrent/src/session_impl.cpp:3161,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3165,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3171,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:3173,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:3174,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/session_impl.cpp:3174,1
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:3180,1
    - Dst: std::weak_ptr<torrent>
      Src: /src/libtorrent/src/session_impl.cpp:3182,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:3183,1
    - Dst: libtorrent::aux::generate_peer_id
      Src: /src/libtorrent/src/session_impl.cpp:3186,1
    - Dst: std::make_shared<bt_peer_connection>
      Src: /src/libtorrent/src/session_impl.cpp:3190,1
    - Dst: std::shared_ptr::is_disconnecting
      Src: /src/libtorrent/src/session_impl.cpp:3192,1
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:3197,1
    - Dst: std::shared_ptr::peer_exceeds_limit
      Src: /src/libtorrent/src/session_impl.cpp:3198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3200,1
    - Dst: reserve
      Src: /src/libtorrent/src/session_impl.cpp:3203,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3203,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3203,1
    - Dst: insert
      Src: /src/libtorrent/src/session_impl.cpp:3204,1
    - Dst: std::shared_ptr::start
      Src: /src/libtorrent/src/session_impl.cpp:3205,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 109
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 2951
    functionDepth: 2
    functionLinenumber: 2951
    functionLinenumberEnd: 3207
    functionName: session_impl::incoming_connection
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 4
    functionsReached:
    - is_local
    - peer_class_set::class_at
    - std::move
    - begin
    - tcp::endpoint::address
    - libtorrent::aux::generate_peer_id
    - empty
    - std::shared_ptr::start
    - socket_type_idx
    - get_bool
    - socket_type::local_endpoint
    - session_impl::should_log
    - std::make_shared<bt_peer_connection>
    - std::weak_ptr<torrent>
    - peer_class_set::num_classes
    - at
    - is_single_thread
    - end
    - get_int
    - is_torrent_paused
    - inc_stats_counter
    - should_post
    - session_impl::set_peer_classes
    - socket_type::remote_endpoint
    - std::shared_ptr::peer_exceeds_limit
    - std::shared_ptr::is_disconnecting
    - access
    - emplace_alert
    - TORRENT_ASSERT
    - set_value
    - reserve
    - boost::get<tcp::socket>
    - is_utp
    - print_error
    - num_connections
    - session_impl::verify_incoming_interface
    - size
    - error_code
    - insert
    - torrent_handle
    - peer_id
    - std::any_of
    - session_impl::verify_bound_address
    - get
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::incoming_connection(socket_type s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3211,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:3211,1
    - Dst: peer_connection*::self
      Src: /src/libtorrent/src/session_impl.cpp:3212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3214,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/session_impl.cpp:3214,1
    - Dst: find
      Src: /src/libtorrent/src/session_impl.cpp:3216,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3218,1
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:3220,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3222,1
    - Dst: std::find
      Src: /src/libtorrent/src/session_impl.cpp:3222,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:3222,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3223,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3223,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/session_impl.cpp:3228,1
    - Dst: capacity
      Src: /src/libtorrent/src/session_impl.cpp:3228,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3228,1
    - Dst: capacity
      Src: /src/libtorrent/src/session_impl.cpp:3229,1
    - Dst: std::shared_ptr::use_count
      Src: /src/libtorrent/src/session_impl.cpp:3230,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:3231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3233
      start: 3209
    functionDepth: 1
    functionLinenumber: 3209
    functionLinenumberEnd: 3233
    functionName: session_impl::close_connection
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - peer_connection*::self
    - begin
    - TORRENT_ASSERT_VAL
    - is_single_thread
    - erase
    - end
    - std::find
    - find
    - TORRENT_ASSERT
    - size
    - std::shared_ptr::use_count
    - capacity
    - peer_connection*::is_disconnecting
    linkageType: ''
    returnType: void
    signature: void session_impl::close_connection(peer_connection* p) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::generate_peer_id
      Src: /src/libtorrent/src/session_impl.cpp:3238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3236
    functionDepth: 2
    functionLinenumber: 3236
    functionLinenumberEnd: 3239
    functionName: session_impl::deprecated_get_peer_id
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::generate_peer_id
    linkageType: ''
    returnType: peer_id
    signature: peer_id session_impl::deprecated_get_peer_id() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3244,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3245,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3242
    functionDepth: 1
    functionLinenumber: 3242
    functionLinenumberEnd: 3257
    functionName: session_impl::next_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - session_impl::session_log
    linkageType: ''
    returnType: int
    signature: int session_impl::next_port() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3261,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:3264,1
    - Dst: throttle
      Src: /src/libtorrent/src/session_impl.cpp:3266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - c
    - channel
    argTypes:
    - peer_class_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3259
    functionDepth: 2
    functionLinenumber: 3259
    functionLinenumberEnd: 3267
    functionName: session_impl::rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - at
    - throttle
    linkageType: ''
    returnType: int
    signature: int session_impl::rate_limit(peer_class_t c, int channel) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3269
    functionDepth: 3
    functionLinenumber: 3269
    functionLinenumberEnd: 3272
    functionName: session_impl::upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::rate_limit
    linkageType: ''
    returnType: int
    signature: int session_impl::upload_rate_limit(peer_class_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3274
    functionDepth: 3
    functionLinenumber: 3274
    functionLinenumberEnd: 3277
    functionName: session_impl::download_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::rate_limit
    linkageType: ''
    returnType: int
    signature: int session_impl::download_rate_limit(peer_class_t c) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3281,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:3281,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3282,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3283,1
    - Dst: at
      Src: /src/libtorrent/src/session_impl.cpp:3287,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:3290,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:3290,1
    - Dst: throttle
      Src: /src/libtorrent/src/session_impl.cpp:3291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - c
    - channel
    - limit
    argTypes:
    - peer_class_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3279
    functionDepth: 2
    functionLinenumber: 3279
    functionLinenumberEnd: 3292
    functionName: session_impl::set_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - at
    - is_single_thread
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - std::min
    - throttle
    linkageType: ''
    returnType: void
    signature: void session_impl::set_rate_limit(peer_class_t c, int channel, int
      limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::set_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - limit
    argTypes:
    - peer_class_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3297
      start: 3294
    functionDepth: 3
    functionLinenumber: 3294
    functionLinenumberEnd: 3297
    functionName: session_impl::set_upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::set_rate_limit
    linkageType: ''
    returnType: void
    signature: void session_impl::set_upload_rate_limit(peer_class_t c, int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::set_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - limit
    argTypes:
    - peer_class_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3302
      start: 3299
    functionDepth: 3
    functionLinenumber: 3299
    functionLinenumberEnd: 3302
    functionName: session_impl::set_download_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::set_rate_limit
    linkageType: ''
    returnType: void
    signature: void session_impl::set_download_rate_limit(peer_class_t c, int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3307,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:3307,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/session_impl.cpp:3308,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:3308,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3308,1
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:3310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3305
    functionDepth: 1
    functionLinenumber: 3305
    functionLinenumberEnd: 3311
    functionName: session_impl::has_peer
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - begin
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - std::any_of
    - get
    linkageType: ''
    returnType: bool
    signature: bool session_impl::has_peer(peer_connection const* p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::has_peer
      Src: /src/libtorrent/src/session_impl.cpp:3316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3313
    functionDepth: 0
    functionLinenumber: 3313
    functionLinenumberEnd: 3318
    functionName: session_impl::any_torrent_has_peer
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::has_peer
    linkageType: ''
    returnType: bool
    signature: bool session_impl::any_torrent_has_peer(peer_connection const* p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/session_impl.cpp:3322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - t
    - pos
    argTypes:
    - torrent*
    - queue_position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3320
    functionDepth: 1
    functionLinenumber: 3320
    functionLinenumberEnd: 3323
    functionName: session_impl::verify_queue_position
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool session_impl::verify_queue_position(torrent const* t, queue_position_t
      const pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3328,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3329,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3330,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3332,1
    - Dst: session_impl::sent_bytes
      Src: /src/libtorrent/src/session_impl.cpp:3335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - bytes_payload
    - bytes_protocol
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3326
    functionDepth: 1
    functionLinenumber: 3326
    functionLinenumberEnd: 3336
    functionName: session_impl::sent_bytes
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - inc_stats_counter
    - session_impl::sent_bytes
    linkageType: ''
    returnType: void
    signature: void session_impl::sent_bytes(int bytes_payload, int bytes_protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3340,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3341,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3342,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3344,1
    - Dst: session_impl::received_bytes
      Src: /src/libtorrent/src/session_impl.cpp:3347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - bytes_payload
    - bytes_protocol
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3338
    functionDepth: 1
    functionLinenumber: 3338
    functionLinenumberEnd: 3348
    functionName: session_impl::received_bytes
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - session_impl::received_bytes
    - inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void session_impl::received_bytes(int bytes_payload, int bytes_protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3352,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:3360,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3361,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3363,1
    - Dst: session_impl::trancieve_ip_packet
      Src: /src/libtorrent/src/session_impl.cpp:3366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bytes
    - ipv6
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3350
    functionDepth: 1
    functionLinenumber: 3350
    functionLinenumberEnd: 3367
    functionName: session_impl::trancieve_ip_packet
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - inc_stats_counter
    - std::max
    - session_impl::trancieve_ip_packet
    linkageType: ''
    returnType: void
    signature: void session_impl::trancieve_ip_packet(int bytes, bool ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3372,1
    - Dst: session_impl::sent_syn
      Src: /src/libtorrent/src/session_impl.cpp:3375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ipv6
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3376
      start: 3369
    functionDepth: 1
    functionLinenumber: 3369
    functionLinenumberEnd: 3376
    functionName: session_impl::sent_syn
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - inc_stats_counter
    - session_impl::sent_syn
    linkageType: ''
    returnType: void
    signature: void session_impl::sent_syn(bool ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3381,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3383,1
    - Dst: session_impl::received_synack
      Src: /src/libtorrent/src/session_impl.cpp:3386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ipv6
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3387
      start: 3378
    functionDepth: 1
    functionLinenumber: 3378
    functionLinenumberEnd: 3387
    functionName: session_impl::received_synack
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - inc_stats_counter
    - session_impl::received_synack
    linkageType: ''
    returnType: void
    signature: void session_impl::received_synack(bool ipv6)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:3391,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3392,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3394,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:3394,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/session_impl.cpp:3396,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3399,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/session_impl.cpp:3401,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:3401,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3401,1
    - Dst: use_count
      Src: /src/libtorrent/src/session_impl.cpp:3402,1
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:3403,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3403,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3404,1
    - Dst: post
      Src: /src/libtorrent/src/session_impl.cpp:3411,1
    - Dst: make_handler
      Src: /src/libtorrent/src/session_impl.cpp:3411,1
    - Dst: session_impl::abort_stage2
      Src: /src/libtorrent/src/session_impl.cpp:3411,1
    - Dst: num_sockets
      Src: /src/libtorrent/src/session_impl.cpp:3426,1
    - Dst: num_sockets
      Src: /src/libtorrent/src/session_impl.cpp:3428,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3430,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3431,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_impl.cpp:3438,1
    - Dst: num_sockets
      Src: /src/libtorrent/src/session_impl.cpp:3439,1
    - Dst: num_sockets
      Src: /src/libtorrent/src/session_impl.cpp:3441,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3445,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:3452,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3453,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:3453,1
    - Dst: session_impl::abort
      Src: /src/libtorrent/src/session_impl.cpp:3455,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:3458,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3459,1
    - Dst: expires_at
      Src: /src/libtorrent/src/session_impl.cpp:3460,1
    - Dst: async_wait
      Src: /src/libtorrent/src/session_impl.cpp:3461,1
    - Dst: libtorrent::aux::make_handler
      Src: /src/libtorrent/src/session_impl.cpp:3461,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:3462,1
    - Dst: update_quotas
      Src: /src/libtorrent/src/session_impl.cpp:3464,1
    - Dst: update_quotas
      Src: /src/libtorrent/src/session_impl.cpp:3465,1
    - Dst: tick
      Src: /src/libtorrent/src/session_impl.cpp:3469,1
    - Dst: tick
      Src: /src/libtorrent/src/session_impl.cpp:3471,1
    - Dst: seconds
      Src: /src/libtorrent/src/session_impl.cpp:3475,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3480,1
    - Dst: session_impl::update_dht_announce_interval
      Src: /src/libtorrent/src/session_impl.cpp:3481,1
    - Dst: decay
      Src: /src/libtorrent/src/session_impl.cpp:3484,1
    - Dst: decay
      Src: /src/libtorrent/src/session_impl.cpp:3486,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/session_impl.cpp:3489,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/session_impl.cpp:3489,1
    - Dst: session_time
      Src: /src/libtorrent/src/session_impl.cpp:3492,1
    - Dst: hours
      Src: /src/libtorrent/src/session_impl.cpp:3501,1
    - Dst: step_session_time
      Src: /src/libtorrent/src/session_impl.cpp:3506,1
    - Dst: session_impl::on_tick
      Src: /src/libtorrent/src/session_impl.cpp:3513,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3520,1
    - Dst: session_impl::set_upload_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3523,1
    - Dst: session_impl::set_download_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3524,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/session_impl.cpp:3532,1
    - Dst: is_utp
      Src: /src/libtorrent/src/session_impl.cpp:3534,1
    - Dst: get_socket
      Src: /src/libtorrent/src/session_impl.cpp:3534,1
    - Dst: download_queue
      Src: /src/libtorrent/src/session_impl.cpp:3536,1
    - Dst: upload_queue
      Src: /src/libtorrent/src/session_impl.cpp:3539,1
    - Dst: upload_rate
      Src: /src/libtorrent/src/session_impl.cpp:3544,1
    - Dst: download_rate
      Src: /src/libtorrent/src/session_impl.cpp:3544,1
    - Dst: session_impl::set_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3554,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:3562,1
    - Dst: session_impl::set_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3563,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:3576,1
    - Dst: session_impl::recalculate_auto_managed_torrents
      Src: /src/libtorrent/src/session_impl.cpp:3577,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:3584,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3584,1
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:3586,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/session_impl.cpp:3590,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3593,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/session_impl.cpp:3595,1
    - Dst: peer_connection*::get_socket
      Src: /src/libtorrent/src/session_impl.cpp:3595,1
    - Dst: peer_connection*::connected_time
      Src: /src/libtorrent/src/session_impl.cpp:3597,1
    - Dst: seconds
      Src: /src/libtorrent/src/session_impl.cpp:3597,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/session_impl.cpp:3598,1
    - Dst: std::printf
      Src: /src/libtorrent/src/session_impl.cpp:3606,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3613,1
    - Dst: want_tick
      Src: /src/libtorrent/src/session_impl.cpp:3613,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3614,1
    - Dst: is_aborted
      Src: /src/libtorrent/src/session_impl.cpp:3614,1
    - Dst: second_tick
      Src: /src/libtorrent/src/session_impl.cpp:3616,1
    - Dst: want_tick
      Src: /src/libtorrent/src/session_impl.cpp:3622,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:3626,1
    - Dst: session_impl::upload_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3628,1
    - Dst: session_impl::download_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:3629,1
    - Dst: download_ip_overhead
      Src: /src/libtorrent/src/session_impl.cpp:3632,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:3633,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:3635,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:3635,1
    - Dst: upload_ip_overhead
      Src: /src/libtorrent/src/session_impl.cpp:3640,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:3641,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:3643,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:3643,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:3649,1
    - Dst: upload_rate
      Src: /src/libtorrent/src/session_impl.cpp:3649,1
    - Dst: second_tick
      Src: /src/libtorrent/src/session_impl.cpp:3652,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3665,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:3666,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3666,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3667,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3668,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3670,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3672,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3676,1
    - Dst: is_paused
      Src: /src/libtorrent/src/session_impl.cpp:3676,1
    - Dst: is_auto_managed
      Src: /src/libtorrent/src/session_impl.cpp:3676,1
    - Dst: scrape_tracker
      Src: /src/libtorrent/src/session_impl.cpp:3680,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3683,1
    - Dst: session_impl::try_connect_more_peers
      Src: /src/libtorrent/src/session_impl.cpp:3694,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3700,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:3702,1
    - Dst: session_impl::recalculate_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:3703,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:3713,1
    - Dst: session_impl::recalculate_optimistic_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:3714,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3723,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3727,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:3729,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3729,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:3730,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:3731,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3731,1
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:3732,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3732,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/session_impl.cpp:3736,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:3736,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3736,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:3738,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:3738,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3740,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:3740,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:3741,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:3741,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:3742,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3742,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/session_impl.cpp:3743,1
    - Dst: disconnect_peers
      Src: /src/libtorrent/src/session_impl.cpp:3744,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:3745,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:3755,1
    - Dst: session_impl::max_connections
      Src: /src/libtorrent/src/session_impl.cpp:3755,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:3756,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:3757,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:3760,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:3760,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:3760,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3761,1
    - Dst: num_connect_candidates
      Src: /src/libtorrent/src/session_impl.cpp:3762,1
    - Dst: disconnect_peers
      Src: /src/libtorrent/src/session_impl.cpp:3763,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 158
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3768
      start: 3389
    functionDepth: 4
    functionLinenumber: 3389
    functionLinenumberEnd: 3768
    functionName: session_impl::on_tick
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - tick
    - upload_ip_overhead
    - session_impl::max_connections
    - std::max
    - get_bool
    - session_impl::should_log
    - num_peers
    - disconnect_peers
    - COMPLETE_ASYNC
    - is_paused
    - decay
    - num_connect_candidates
    - TORRENT_ASSERT
    - is_utp
    - want_tick
    - session_impl::download_rate_limit
    - std::max_element
    - step_session_time
    - std::fprintf
    - second_tick
    - session_impl::set_rate_limit
    - get
    - session_time
    - wrap
    - peer_connection*::connected_time
    - libtorrent::aux::time_now
    - ADD_OUTSTANDING_ASYNC
    - message
    - end
    - download_rate
    - inc_stats_counter
    - should_post
    - get_socket
    - std::printf
    - expires_at
    - make_handler
    - peer_connection*::disconnect
    - session_impl::set_upload_rate_limit
    - error_code
    - torrent_handle
    - session_impl::try_connect_more_peers
    - settings
    - session_impl::on_tick
    - libtorrent::aux::make_handler
    - empty
    - session_impl::recalculate_auto_managed_torrents
    - std::min
    - session_impl::update_dht_announce_interval
    - session_impl::recalculate_unchoke_slots
    - session_impl::recalculate_optimistic_unchoke_slots
    - peer_connection*::get_socket
    - use_count
    - session_impl::abort_stage2
    - async_wait
    - erase
    - is_i2p
    - total_milliseconds
    - num_connections
    - upload_rate
    - upload_queue
    - update_quotas
    - in_handshake
    - num_sockets
    - session_impl::abort
    - session_impl::session_log
    - peer_connection*::associated_torrent
    - begin
    - seconds
    - scrape_tracker
    - aux::numeric_cast<int>
    - session_impl::set_download_rate_limit
    - is_aborted
    - is_single_thread
    - session_impl::upload_rate_limit
    - get_int
    - emplace_alert
    - is_auto_managed
    - std::remove_if
    - libtorrent::aux::max
    - size
    - hours
    - post
    - download_queue
    - download_ip_overhead
    linkageType: ''
    returnType: void
    signature: void session_impl::on_tick(error_code const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:3772,1
    - Dst: libtorrent::aux::log2p1
      Src: /src/libtorrent/src/session_impl.cpp:3772,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/session_impl.cpp:3772,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3770
    functionDepth: 1
    functionLinenumber: 3770
    functionLinenumberEnd: 3774
    functionName: session_impl::received_buffer
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - libtorrent::aux::log2p1
    - inc_stats_counter
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void session_impl::received_buffer(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:3778,1
    - Dst: libtorrent::aux::log2p1
      Src: /src/libtorrent/src/session_impl.cpp:3778,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/session_impl.cpp:3778,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3780
      start: 3776
    functionDepth: 1
    functionLinenumber: 3776
    functionLinenumberEnd: 3780
    functionName: session_impl::sent_buffer
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - libtorrent::aux::log2p1
    - inc_stats_counter
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void session_impl::sent_buffer(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/session_impl.cpp:3784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::weak_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3782
    functionDepth: 0
    functionLinenumber: 3782
    functionLinenumberEnd: 3785
    functionName: session_impl::prioritize_connections
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void session_impl::prioritize_connections(std::weak_ptr<torrent> t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3791,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:3791,1
    - Dst: add_node
      Src: /src/libtorrent/src/session_impl.cpp:3793,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3794,1
    - Dst: random
      Src: /src/libtorrent/src/session_impl.cpp:3795,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/session_impl.cpp:3795,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3795,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:3797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3798
      start: 3789
    functionDepth: 1
    functionLinenumber: 3789
    functionLinenumberEnd: 3798
    functionName: session_impl::add_dht_node
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - is_single_thread
    - add_node
    - std::uint32_t
    - TORRENT_ASSERT
    - size
    - random
    linkageType: ''
    returnType: void
    signature: void session_impl::add_dht_node(udp::endpoint const& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:3802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3803
      start: 3800
    functionDepth: 0
    functionLinenumber: 3800
    functionLinenumberEnd: 3803
    functionName: session_impl::has_dht
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool session_impl::has_dht() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3807,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3810,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:3811,1
    - Dst: std::weak_ptr<torrent>::lock
      Src: /src/libtorrent/src/session_impl.cpp:3813,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:3814,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3815,1
    - Dst: std::shared_ptr::name
      Src: /src/libtorrent/src/session_impl.cpp:3815,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3821,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:3823,1
    - Dst: expires_after
      Src: /src/libtorrent/src/session_impl.cpp:3824,1
    - Dst: seconds
      Src: /src/libtorrent/src/session_impl.cpp:3824,1
    - Dst: async_wait
      Src: /src/libtorrent/src/session_impl.cpp:3825,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:3826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::weak_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3828
      start: 3805
    functionDepth: 1
    functionLinenumber: 3805
    functionLinenumberEnd: 3828
    functionName: session_impl::prioritize_dht
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - push_back
    - session_impl::should_log
    - wrap
    - async_wait
    - seconds
    - std::weak_ptr<torrent>::lock
    - expires_after
    - TORRENT_ASSERT
    - std::shared_ptr::name
    - session_impl::session_log
    - size
    linkageType: ''
    returnType: void
    signature: void session_impl::prioritize_dht(std::weak_ptr<torrent> t)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:3832,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3833,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:3833,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:3837,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3839,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:3840,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:3840,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:3849,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:3856,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3860,1
    - Dst: session_impl::update_dht_announce_interval
      Src: /src/libtorrent/src/session_impl.cpp:3862,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3864,1
    - Dst: front
      Src: /src/libtorrent/src/session_impl.cpp:3869,1
    - Dst: pop_front
      Src: /src/libtorrent/src/session_impl.cpp:3870,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3871,1
    - Dst: std::shared_ptr::dht_announce
      Src: /src/libtorrent/src/session_impl.cpp:3875,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3879,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3881,1
    - Dst: session_impl::dht_announce
      Src: /src/libtorrent/src/session_impl.cpp:3883,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3887,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3830
    functionDepth: 1
    functionLinenumber: 3830
    functionLinenumberEnd: 3889
    functionName: session_impl::on_dht_announce
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::should_log
    - std::shared_ptr::dht_announce
    - session_impl::session_log
    - is_single_thread
    - message
    - empty
    - front
    - TORRENT_ASSERT
    - size
    - session_impl::dht_announce
    - clear
    - pop_front
    - value
    - COMPLETE_ASYNC
    - session_impl::update_dht_announce_interval
    linkageType: ''
    returnType: void
    signature: void session_impl::on_dht_announce(error_code const& e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:3894,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:3895,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3896,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:3896,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:3901,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:3903,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:3903,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:3904,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3904,1
    - Dst: expires_after
      Src: /src/libtorrent/src/session_impl.cpp:3905,1
    - Dst: seconds
      Src: /src/libtorrent/src/session_impl.cpp:3905,1
    - Dst: async_wait
      Src: /src/libtorrent/src/session_impl.cpp:3906,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:3907,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:3909,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3911,1
    - Dst: lsd_announce
      Src: /src/libtorrent/src/session_impl.cpp:3913,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:3915,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3892
    functionDepth: 1
    functionLinenumber: 3892
    functionLinenumberEnd: 3917
    functionName: session_impl::on_lsd_announce
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - lsd_announce
    - wrap
    - async_wait
    - is_single_thread
    - seconds
    - empty
    - expires_after
    - TORRENT_ASSERT
    - get_int
    - inc_stats_counter
    - std::max
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void session_impl::on_lsd_announce(error_code const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3924,1
    - Dst: state
      Src: /src/libtorrent/src/session_impl.cpp:3924,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3925,1
    - Dst: is_auto_managed
      Src: /src/libtorrent/src/session_impl.cpp:3925,1
    - Dst: session_impl::pause
      Src: /src/libtorrent/src/session_impl.cpp:3928,1
    - Dst: session_impl::resume
      Src: /src/libtorrent/src/session_impl.cpp:3932,1
    - Dst: should_check_files
      Src: /src/libtorrent/src/session_impl.cpp:3933,1
    - Dst: start_checking
      Src: /src/libtorrent/src/session_impl.cpp:3934,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' list'
    - ' limit'
    argTypes:
    - std::vector<torrent*>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3919
    functionDepth: 2
    functionLinenumber: 3919
    functionLinenumberEnd: 3938
    functionName: session_impl::auto_manage_checking_torrents
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::resume
    - state
    - is_auto_managed
    - TORRENT_ASSERT
    - session_impl::pause
    - start_checking
    - should_check_files
    linkageType: ''
    returnType: void
    signature: "void session_impl::auto_manage_checking_torrents(std::vector<torrent*>&
      list\n\t\t, int& limit)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:3946,1
    - Dst: state
      Src: /src/libtorrent/src/session_impl.cpp:3946,1
    - Dst: is_inactive
      Src: /src/libtorrent/src/session_impl.cpp:3950,1
    - Dst: set_announce_to_dht
      Src: /src/libtorrent/src/session_impl.cpp:3952,1
    - Dst: set_announce_to_trackers
      Src: /src/libtorrent/src/session_impl.cpp:3953,1
    - Dst: set_announce_to_lsd
      Src: /src/libtorrent/src/session_impl.cpp:3954,1
    - Dst: is_torrent_paused
      Src: /src/libtorrent/src/session_impl.cpp:3958,1
    - Dst: log_to_all_peers
      Src: /src/libtorrent/src/session_impl.cpp:3959,1
    - Dst: set_paused
      Src: /src/libtorrent/src/session_impl.cpp:3961,1
    - Dst: set_announce_to_dht
      Src: /src/libtorrent/src/session_impl.cpp:3967,1
    - Dst: set_announce_to_trackers
      Src: /src/libtorrent/src/session_impl.cpp:3968,1
    - Dst: set_announce_to_lsd
      Src: /src/libtorrent/src/session_impl.cpp:3969,1
    - Dst: is_torrent_paused
      Src: /src/libtorrent/src/session_impl.cpp:3974,1
    - Dst: log_to_all_peers
      Src: /src/libtorrent/src/session_impl.cpp:3975,1
    - Dst: set_paused
      Src: /src/libtorrent/src/session_impl.cpp:3977,1
    - Dst: is_torrent_paused
      Src: /src/libtorrent/src/session_impl.cpp:3982,1
    - Dst: log_to_all_peers
      Src: /src/libtorrent/src/session_impl.cpp:3983,1
    - Dst: set_paused
      Src: /src/libtorrent/src/session_impl.cpp:3986,1
    - Dst: set_announce_to_dht
      Src: /src/libtorrent/src/session_impl.cpp:3988,1
    - Dst: set_announce_to_trackers
      Src: /src/libtorrent/src/session_impl.cpp:3989,1
    - Dst: set_announce_to_lsd
      Src: /src/libtorrent/src/session_impl.cpp:3990,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 6
    argNames:
    - ' list'
    - ' dht_limit'
    - ' tracker_limit'
    - ' lsd_limit'
    - ' hard_limit'
    - type_limit
    argTypes:
    - std::vector<torrent*>
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3992
      start: 3940
    functionDepth: 1
    functionLinenumber: 3940
    functionLinenumberEnd: 3992
    functionName: session_impl::auto_manage_torrents
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - state
    - is_inactive
    - set_announce_to_trackers
    - set_paused
    - TORRENT_ASSERT
    - is_torrent_paused
    - log_to_all_peers
    - set_announce_to_lsd
    - set_announce_to_dht
    linkageType: ''
    returnType: void
    signature: "void session_impl::auto_manage_torrents(std::vector<torrent*>& list\n\t\t,
      int& dht_limit, int& tracker_limit\n\t\t, int& lsd_limit, int& hard_limit, int
      type_limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:3996,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:3997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3999
      start: 3994
    functionDepth: 1
    functionLinenumber: 3994
    functionLinenumberEnd: 3999
    functionName: session_impl::get_int_setting
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::max
    - settings
    linkageType: ''
    returnType: int
    signature: int session_impl::get_int_setting(int n) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/session_impl.cpp:4005,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/session_impl.cpp:4013,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/session_impl.cpp:4015,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/session_impl.cpp:4017,1
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:4021,1
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:4022,1
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:4023,1
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:4024,1
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:4025,1
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:4026,1
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:4027,1
    - Dst: std::partial_sort
      Src: /src/libtorrent/src/session_impl.cpp:4037,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4037,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4037,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:4038,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_impl.cpp:4038,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/session_impl.cpp:4038,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/session_impl.cpp:4040,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/session_impl.cpp:4040,1
    - Dst: std::partial_sort
      Src: /src/libtorrent/src/session_impl.cpp:4042,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4042,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4042,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:4043,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_impl.cpp:4043,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/session_impl.cpp:4043,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/session_impl.cpp:4045,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/session_impl.cpp:4045,1
    - Dst: std::partial_sort
      Src: /src/libtorrent/src/session_impl.cpp:4047,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4047,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4047,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:4048,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_impl.cpp:4048,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/session_impl.cpp:4048,1
    - Dst: seed_rank
      Src: /src/libtorrent/src/session_impl.cpp:4050,1
    - Dst: seed_rank
      Src: /src/libtorrent/src/session_impl.cpp:4050,1
    - Dst: session_impl::auto_manage_checking_torrents
      Src: /src/libtorrent/src/session_impl.cpp:4053,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:4055,1
    - Dst: session_impl::auto_manage_torrents
      Src: /src/libtorrent/src/session_impl.cpp:4057,1
    - Dst: session_impl::auto_manage_torrents
      Src: /src/libtorrent/src/session_impl.cpp:4059,1
    - Dst: session_impl::auto_manage_torrents
      Src: /src/libtorrent/src/session_impl.cpp:4064,1
    - Dst: session_impl::auto_manage_torrents
      Src: /src/libtorrent/src/session_impl.cpp:4066,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4069
      start: 4001
    functionDepth: 3
    functionLinenumber: 4001
    functionLinenumberEnd: 4069
    functionName: session_impl::recalculate_auto_managed_torrents
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - time_now
    - std::partial_sort
    - std::vector::size
    - torrent_list
    - session_impl::auto_manage_torrents
    - session_impl::get_int_setting
    - std::vector::begin
    - seed_rank
    - std::min
    - sequence_number
    - settings
    - std::vector::end
    - session_impl::auto_manage_checking_torrents
    linkageType: ''
    returnType: void
    signature: void session_impl::recalculate_auto_managed_torrents()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tp
    argTypes:
    - std::shared_ptr<peer_connection>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4080
      start: 4078
    functionDepth: 0
    functionLinenumber: 4078
    functionLinenumberEnd: 4080
    functionName: opt_unchoke_candidate
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void opt_unchoke_candidate(std::shared_ptr<peer_connection> const*
      tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ps'
    argTypes:
    - std::vector<std::shared_ptr<plugin>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4096
      start: 4094
    functionDepth: 0
    functionLinenumber: 4094
    functionLinenumberEnd: 4096
    functionName: last_optimistic_unchoke_cmp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void last_optimistic_unchoke_cmp(std::vector<std::shared_ptr<plugin>>&
      ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:4106,1
    - Dst: get_unchoke_priority
      Src: /src/libtorrent/src/session_impl.cpp:4109,1
    - Dst: peer_connection_handle
      Src: /src/libtorrent/src/session_impl.cpp:4109,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:4110,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:4115,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:4116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' peer'
    argTypes:
    - opt_unchoke_candidate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4101
    functionDepth: 1
    functionLinenumber: 4101
    functionLinenumberEnd: 4118
    functionName: get_ext_priority
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_unchoke_priority
    - libtorrent::aux::max
    - std::min
    - peer_connection_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_ext_priority(opt_unchoke_candidate const& peer) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4123,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4124,1
    - Dst: get_ext_priority
      Src: /src/libtorrent/src/session_impl.cpp:4133,1
    - Dst: get_ext_priority
      Src: /src/libtorrent/src/session_impl.cpp:4133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' l'
    - ' r'
    argTypes:
    - opt_unchoke_candidate
    - opt_unchoke_candidate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4135
      start: 4120
    functionDepth: 2
    functionLinenumber: 4120
    functionLinenumberEnd: 4135
    functionName: "operator()(opt_unchoke_candidate const& l\n\t\t\t\t, opt_unchoke_candidate
      const& r) const"
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - peer_info_struct
    - get_ext_priority
    linkageType: ''
    returnType: bool
    signature: "bool operator()(opt_unchoke_candidate const& l\n\t\t\t\t, opt_unchoke_candidate
      const& r) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tp
    argTypes:
    - std::shared_ptr<peer_connection>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4080
      start: 4078
    functionDepth: 0
    functionLinenumber: 4078
    functionLinenumberEnd: 4080
    functionName: opt_unchoke_candidate
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void opt_unchoke_candidate(std::shared_ptr<peer_connection> const*
      tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ps'
    argTypes:
    - std::vector<std::shared_ptr<plugin>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4096
      start: 4094
    functionDepth: 0
    functionLinenumber: 4094
    functionLinenumberEnd: 4096
    functionName: last_optimistic_unchoke_cmp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void last_optimistic_unchoke_cmp(std::vector<std::shared_ptr<plugin>>&
      ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:4106,1
    - Dst: get_unchoke_priority
      Src: /src/libtorrent/src/session_impl.cpp:4109,1
    - Dst: peer_connection_handle
      Src: /src/libtorrent/src/session_impl.cpp:4109,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:4110,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:4115,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:4116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' peer'
    argTypes:
    - opt_unchoke_candidate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4101
    functionDepth: 1
    functionLinenumber: 4101
    functionLinenumberEnd: 4118
    functionName: get_ext_priority
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_unchoke_priority
    - libtorrent::aux::max
    - std::min
    - peer_connection_handle
    - TORRENT_UNUSED
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_ext_priority(opt_unchoke_candidate const& peer) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4123,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4124,1
    - Dst: get_ext_priority
      Src: /src/libtorrent/src/session_impl.cpp:4133,1
    - Dst: get_ext_priority
      Src: /src/libtorrent/src/session_impl.cpp:4133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' l'
    - ' r'
    argTypes:
    - opt_unchoke_candidate
    - opt_unchoke_candidate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4135
      start: 4120
    functionDepth: 2
    functionLinenumber: 4120
    functionLinenumberEnd: 4135
    functionName: "operator()(opt_unchoke_candidate const& l\n\t\t\t\t, opt_unchoke_candidate
      const& r) const"
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - peer_info_struct
    - get_ext_priority
    linkageType: ''
    returnType: bool
    signature: "bool operator()(opt_unchoke_candidate const& l\n\t\t\t\t, opt_unchoke_candidate
      const& r) const"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4143,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:4143,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:4147,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:4148,1
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:4166,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4167,1
    - Dst: peer_connection*::peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4168,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/session_impl.cpp:4174,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4177,1
    - Dst: torrent*::is_paused
      Src: /src/libtorrent/src/session_impl.cpp:4182,1
    - Dst: peer_connection*::is_connecting
      Src: /src/libtorrent/src/session_impl.cpp:4184,1
    - Dst: peer_connection*::is_disconnecting
      Src: /src/libtorrent/src/session_impl.cpp:4185,1
    - Dst: peer_connection*::is_peer_interested
      Src: /src/libtorrent/src/session_impl.cpp:4186,1
    - Dst: torrent*::free_upload_slots
      Src: /src/libtorrent/src/session_impl.cpp:4187,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/session_impl.cpp:4188,1
    - Dst: peer_connection*::ignore_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:4189,1
    - Dst: torrent*::valid_metadata
      Src: /src/libtorrent/src/session_impl.cpp:4190,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/session_impl.cpp:4192,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:4199,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:4201,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_impl.cpp:4202,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_impl.cpp:4203,1
    - Dst: std::partial_sort
      Src: /src/libtorrent/src/session_impl.cpp:4206,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4206,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4207,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/session_impl.cpp:4208,1
    - Dst: last_optimistic_unchoke_cmp
      Src: /src/libtorrent/src/session_impl.cpp:4210,1
    - Dst: last_optimistic_unchoke_cmp
      Src: /src/libtorrent/src/session_impl.cpp:4212,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4218,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4221,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4223,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/session_impl.cpp:4224,1
    - Dst: auto*::peer_log
      Src: /src/libtorrent/src/session_impl.cpp:4228,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4232,1
    - Dst: torrent_peer*::connection::is_choked
      Src: /src/libtorrent/src/session_impl.cpp:4232,1
    - Dst: std::find
      Src: /src/libtorrent/src/session_impl.cpp:4237,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:4237,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/session_impl.cpp:4237,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4238,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/session_impl.cpp:4238,1
    - Dst: std::vector::erase
      Src: /src/libtorrent/src/session_impl.cpp:4239,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4243,1
    - Dst: auto*::is_choked
      Src: /src/libtorrent/src/session_impl.cpp:4243,1
    - Dst: auto*::associated_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4244,1
    - Dst: std::shared_ptr::unchoke_peer
      Src: /src/libtorrent/src/session_impl.cpp:4245,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4246,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:4250,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_impl.cpp:4251,1
    - Dst: session_time
      Src: /src/libtorrent/src/session_impl.cpp:4251,1
    - Dst: auto*::peer_log
      Src: /src/libtorrent/src/session_impl.cpp:4253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4263,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/session_impl.cpp:4264,1
    - Dst: auto*::associated_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4265,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:4267,1
    - Dst: std::shared_ptr::choke_peer
      Src: /src/libtorrent/src/session_impl.cpp:4268,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4139
    functionDepth: 1
    functionLinenumber: 4139
    functionLinenumberEnd: 4278
    functionName: session_impl::recalculate_optimistic_unchoke_slots
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - peer_connection*::associated_torrent
    - std::vector::size
    - auto*::associated_torrent
    - std::vector::emplace_back
    - last_optimistic_unchoke_cmp
    - session_time
    - std::vector::begin
    - std::max
    - std::vector::end
    - auto*::peer_log
    - std::partial_sort
    - std::uint16_t
    - is_single_thread
    - std::find
    - get_int
    - std::shared_ptr::choke_peer
    - auto*::is_choked
    - inc_stats_counter
    - torrent*::is_paused
    - torrent*::valid_metadata
    - peer_connection*::is_peer_interested
    - peer_connection*::is_disconnecting
    - static_cast<peer_connection*>
    - std::shared_ptr::unchoke_peer
    - peer_connection*::ignore_unchoke_slots
    - TORRENT_ASSERT
    - torrent_peer*::connection::is_choked
    - peer_connection*::peer_info_struct
    - peer_connection*::is_connecting
    - std::vector::erase
    - std::vector::push_back
    - torrent*::free_upload_slots
    - peer_info_struct
    - settings
    - peer_connection*::is_choked
    - get
    linkageType: ''
    returnType: void
    signature: void session_impl::recalculate_optimistic_unchoke_slots()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:4284,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:4284,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:4289,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:4320,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:4320,1
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:4321,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:4321,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:4326,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:4333,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:4333,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:4339,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:4339,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:4342,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:4345,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:4350,1
    - Dst: front
      Src: /src/libtorrent/src/session_impl.cpp:4352,1
    - Dst: lock
      Src: /src/libtorrent/src/session_impl.cpp:4352,1
    - Dst: front
      Src: /src/libtorrent/src/session_impl.cpp:4353,1
    - Dst: front
      Src: /src/libtorrent/src/session_impl.cpp:4354,1
    - Dst: torrent*::want_peers
      Src: /src/libtorrent/src/session_impl.cpp:4356,1
    - Dst: pop_front
      Src: /src/libtorrent/src/session_impl.cpp:4357,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:4363,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:4365,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:4366,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4370,1
    - Dst: torrent*::want_peers_finished
      Src: /src/libtorrent/src/session_impl.cpp:4370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4378,1
    - Dst: torrent*::want_peers_download
      Src: /src/libtorrent/src/session_impl.cpp:4378,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4384,1
    - Dst: torrent*::want_peers
      Src: /src/libtorrent/src/session_impl.cpp:4384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4385,1
    - Dst: torrent*::is_torrent_paused
      Src: /src/libtorrent/src/session_impl.cpp:4385,1
    - Dst: torrent*::try_connect_peer
      Src: /src/libtorrent/src/session_impl.cpp:4387,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:4391,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:4399,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:4399,1
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:4404,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:4404,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4406
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4406
    functionName: session_impl::try_connect_more_peers
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - torrent*::is_torrent_paused
    - torrent*::try_connect_peer
    - torrent*::want_peers_finished
    - torrent*::want_peers
    - empty
    - libtorrent::aux::max
    - front
    - std::min
    - get_int
    - TORRENT_ASSERT
    - inc_stats_counter
    - lock
    - get_bool
    - pop_front
    - num_connections
    - torrent*::want_peers_download
    - size
    linkageType: ''
    returnType: void
    signature: void session_impl::try_connect_more_peers()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4410,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:4410,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/session_impl.cpp:4412,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:4417,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:4418,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:4420,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:4420,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:4429,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:4429,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4432,1
    - Dst: std::shared_ptr::associated_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4434,1
    - Dst: std::shared_ptr::peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4435,1
    - Dst: std::shared_ptr::ignore_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:4437,1
    - Dst: torrent*::is_paused
      Src: /src/libtorrent/src/session_impl.cpp:4438,1
    - Dst: std::shared_ptr::reset_choke_counters
      Src: /src/libtorrent/src/session_impl.cpp:4440,1
    - Dst: std::shared_ptr::is_peer_interested
      Src: /src/libtorrent/src/session_impl.cpp:4444,1
    - Dst: std::shared_ptr::is_disconnecting
      Src: /src/libtorrent/src/session_impl.cpp:4445,1
    - Dst: std::shared_ptr::is_connecting
      Src: /src/libtorrent/src/session_impl.cpp:4446,1
    - Dst: std::shared_ptr::is_choked
      Src: /src/libtorrent/src/session_impl.cpp:4450,1
    - Dst: std::shared_ptr::reset_choke_counters
      Src: /src/libtorrent/src/session_impl.cpp:4452,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:4457,1
    - Dst: torrent*::choke_peer
      Src: /src/libtorrent/src/session_impl.cpp:4464,1
    - Dst: std::shared_ptr::reset_choke_counters
      Src: /src/libtorrent/src/session_impl.cpp:4465,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/session_impl.cpp:4469,1
    - Dst: std::shared_ptr::get
      Src: /src/libtorrent/src/session_impl.cpp:4469,1
    - Dst: unchoke_sort
      Src: /src/libtorrent/src/session_impl.cpp:4472,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:4475,1
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:4477,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:4478,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:4482,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:4487,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:4489,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:4492,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_impl.cpp:4493,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:4501,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4509,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4510,1
    - Dst: std::shared_ptr::ignore_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:4510,1
    - Dst: std::shared_ptr::reset_choke_counters
      Src: /src/libtorrent/src/session_impl.cpp:4513,1
    - Dst: std::shared_ptr::associated_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4515,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4516,1
    - Dst: std::shared_ptr::is_choked
      Src: /src/libtorrent/src/session_impl.cpp:4521,1
    - Dst: torrent*::unchoke_peer
      Src: /src/libtorrent/src/session_impl.cpp:4523,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4529,1
    - Dst: std::shared_ptr::peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4529,1
    - Dst: std::shared_ptr::peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4530,1
    - Dst: std::shared_ptr::peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4536,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:4537,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4543,1
    - Dst: std::shared_ptr::peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4543,1
    - Dst: std::shared_ptr::is_choked
      Src: /src/libtorrent/src/session_impl.cpp:4544,1
    - Dst: std::shared_ptr::peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:4544,1
    - Dst: torrent*::choke_peer
      Src: /src/libtorrent/src/session_impl.cpp:4545,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4548
      start: 4408
    functionDepth: 2
    functionLinenumber: 4408
    functionLinenumberEnd: 4548
    functionName: session_impl::recalculate_unchoke_slots
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - std::vector::size
    - begin
    - std::max
    - std::shared_ptr::peer_info_struct
    - torrent*::choke_peer
    - std::shared_ptr::ignore_unchoke_slots
    - libtorrent::aux::time_now
    - session_impl::should_log
    - is_single_thread
    - end
    - get_int
    - inc_stats_counter
    - torrent*::is_paused
    - std::shared_ptr::is_disconnecting
    - std::shared_ptr::associated_torrent
    - std::shared_ptr::is_connecting
    - std::shared_ptr::reset_choke_counters
    - unchoke_sort
    - libtorrent::aux::max
    - torrent*::unchoke_peer
    - TORRENT_ASSERT
    - set_value
    - std::shared_ptr::is_choked
    - size
    - std::shared_ptr::is_peer_interested
    - std::vector::push_back
    - session_impl::get_int_setting
    - settings
    - session_impl::session_log
    - std::shared_ptr::get
    linkageType: ''
    returnType: void
    signature: void session_impl::recalculate_unchoke_slots()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_unknown_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4557,1
    - Dst: peer_connection_handle
      Src: /src/libtorrent/src/session_impl.cpp:4557,1
    - Dst: peer_connection*::self
      Src: /src/libtorrent/src/session_impl.cpp:4557,1
    - Dst: session_impl::add_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4560,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4560,1
    - Dst: torrent_handle::native_handle
      Src: /src/libtorrent/src/session_impl.cpp:4562,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:4566,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:4567,1
    - Dst: std::shared_ptr<torrent>
      Src: /src/libtorrent/src/session_impl.cpp:4569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' info_hash'
    - pc
    argTypes:
    - info_hash_t
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4570
      start: 4550
    functionDepth: 1
    functionLinenumber: 4550
    functionLinenumberEnd: 4570
    functionName: session_impl::delay_load_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::native_handle
    - std::shared_ptr<torrent>
    - peer_connection*::self
    - std::move
    - session_impl::add_torrent
    - peer_connection_handle
    - on_unknown_torrent
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::shared_ptr<torrent>
    signature: "std::shared_ptr<torrent> session_impl::delay_load_torrent(info_hash_t
      const& info_hash\n\t\t, peer_connection* pc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4576,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:4576,1
    - Dst: for_each
      Src: /src/libtorrent/src/session_impl.cpp:4579,1
    - Dst: find
      Src: /src/libtorrent/src/session_impl.cpp:4581,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4586,1
    - Dst: torrent*::shared_from_this
      Src: /src/libtorrent/src/session_impl.cpp:4589,1
    - Dst: std::weak_ptr<torrent>
      Src: /src/libtorrent/src/session_impl.cpp:4590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' info_hash'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4591
      start: 4574
    functionDepth: 1
    functionLinenumber: 4574
    functionLinenumberEnd: 4591
    functionName: session_impl::find_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - for_each
    - std::weak_ptr<torrent>
    - is_single_thread
    - find
    - TORRENT_ASSERT
    - torrent*::shared_from_this
    linkageType: ''
    returnType: std::weak_ptr<torrent>
    signature: std::weak_ptr<torrent> session_impl::find_torrent(info_hash_t const&
      info_hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/session_impl.cpp:4595,1
    - Dst: added
      Src: /src/libtorrent/src/session_impl.cpp:4596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ih'
    - ' t'
    argTypes:
    - info_hash_t
    - std::shared_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4597
      start: 4593
    functionDepth: 2
    functionLinenumber: 4593
    functionLinenumberEnd: 4597
    functionName: session_impl::insert_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - insert
    - added
    linkageType: ''
    returnType: void
    signature: void session_impl::insert_torrent(info_hash_t const& ih, std::shared_ptr<torrent>
      const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:4602,1
    - Dst: insert
      Src: /src/libtorrent/src/session_impl.cpp:4603,1
    - Dst: info_hash
      Src: /src/libtorrent/src/session_impl.cpp:4603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' t'
    - ' old_ih'
    argTypes:
    - std::shared_ptr<torrent>
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4604
      start: 4599
    functionDepth: 0
    functionLinenumber: 4599
    functionLinenumberEnd: 4604
    functionName: session_impl::update_torrent_info_hash
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - erase
    - insert
    - info_hash
    linkageType: ''
    returnType: void
    signature: "void session_impl::update_torrent_info_hash(std::shared_ptr<torrent>
      const& t\n\t\t, info_hash_t const& old_ih)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: torrent*::queue_position
      Src: /src/libtorrent/src/session_impl.cpp:4608,1
    - Dst: end_index
      Src: /src/libtorrent/src/session_impl.cpp:4614,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:4617,1
    - Dst: torrent*::set_queue_position_impl
      Src: /src/libtorrent/src/session_impl.cpp:4618,1
    - Dst: insert
      Src: /src/libtorrent/src/session_impl.cpp:4622,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:4622,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/session_impl.cpp:4622,1
    - Dst: end_index
      Src: /src/libtorrent/src/session_impl.cpp:4623,1
    - Dst: set_queue_position_impl
      Src: /src/libtorrent/src/session_impl.cpp:4625,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4632,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4633,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4634,1
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:4635,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:4635,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/session_impl.cpp:4635,1
    - Dst: torrent*::set_queue_position_impl
      Src: /src/libtorrent/src/session_impl.cpp:4636,1
    - Dst: end_index
      Src: /src/libtorrent/src/session_impl.cpp:4637,1
    - Dst: set_queue_position_impl
      Src: /src/libtorrent/src/session_impl.cpp:4639,1
    - Dst: std::swap
      Src: /src/libtorrent/src/session_impl.cpp:4648,1
    - Dst: set_queue_position_impl
      Src: /src/libtorrent/src/session_impl.cpp:4649,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4651,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:4656,1
    - Dst: prev
      Src: /src/libtorrent/src/session_impl.cpp:4656,1
    - Dst: end_index
      Src: /src/libtorrent/src/session_impl.cpp:4656,1
    - Dst: next
      Src: /src/libtorrent/src/session_impl.cpp:4659,1
    - Dst: set_queue_position_impl
      Src: /src/libtorrent/src/session_impl.cpp:4660,1
    - Dst: torrent*::set_queue_position_impl
      Src: /src/libtorrent/src/session_impl.cpp:4663,1
    - Dst: session_impl::trigger_auto_manage
      Src: /src/libtorrent/src/session_impl.cpp:4666,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - me
    - p
    argTypes:
    - torrent*
    - queue_position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4667
      start: 4606
    functionDepth: 1
    functionLinenumber: 4606
    functionLinenumberEnd: 4667
    functionName: session_impl::set_queue_position
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - begin
    - set_queue_position_impl
    - prev
    - erase
    - insert
    - TORRENT_ASSERT
    - std::swap
    - std::min
    - session_impl::trigger_auto_manage
    - next
    - torrent*::queue_position
    - torrent*::set_queue_position_impl
    - end_index
    linkageType: ''
    returnType: void
    signature: void session_impl::set_queue_position(torrent* me, queue_position_t
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_obfuscated
      Src: /src/libtorrent/src/session_impl.cpp:4676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' info_hash'
    - ' xor_mask'
    argTypes:
    - sha1_hash
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4677
      start: 4670
    functionDepth: 0
    functionLinenumber: 4670
    functionLinenumberEnd: 4677
    functionName: session_impl::find_encrypted_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - find_obfuscated
    linkageType: ''
    returnType: torrent
    signature: "torrent * session_impl::find_encrypted_torrent(sha1_hash const& info_hash\n\t\t,
      sha1_hash const& xor_mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent_file
      Src: /src/libtorrent/src/session_impl.cpp:4688,1
    - Dst: std::find
      Src: /src/libtorrent/src/session_impl.cpp:4689,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:4689,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:4689,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:4689,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/session_impl.cpp:4690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' collection'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4693
      start: 4681
    functionDepth: 1
    functionLinenumber: 4681
    functionLinenumberEnd: 4693
    functionName: session_impl::find_collection
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - begin
    - end
    - std::find
    - torrent_file
    linkageType: ''
    returnType: std::vector<std::shared_ptr<torrent>>
    signature: "std::vector<std::shared_ptr<torrent>> session_impl::find_collection(\n\t\tstd::string
      const& collection) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4704,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4704,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4705,1
    - Dst: is_finished
      Src: /src/libtorrent/src/session_impl.cpp:4709,1
    - Dst: is_finished
      Src: /src/libtorrent/src/session_impl.cpp:4709,1
    - Dst: is_finished
      Src: /src/libtorrent/src/session_impl.cpp:4710,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4712,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::shared_ptr<torrent>
    - std::shared_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4713
      start: 4699
    functionDepth: 2
    functionLinenumber: 4699
    functionLinenumberEnd: 4713
    functionName: compare_disconnect_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - is_finished
    - num_peers
    linkageType: ''
    returnType: bool
    signature: "bool compare_disconnect_torrent(std::shared_ptr<torrent> const& lhs\n\t\t,
      std::shared_ptr<torrent> const& rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4704,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4704,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4705,1
    - Dst: is_finished
      Src: /src/libtorrent/src/session_impl.cpp:4709,1
    - Dst: is_finished
      Src: /src/libtorrent/src/session_impl.cpp:4709,1
    - Dst: is_finished
      Src: /src/libtorrent/src/session_impl.cpp:4710,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4712,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:4712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::shared_ptr<torrent>
    - std::shared_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4713
      start: 4699
    functionDepth: 2
    functionLinenumber: 4699
    functionLinenumberEnd: 4713
    functionName: compare_disconnect_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - is_finished
    - num_peers
    linkageType: ''
    returnType: bool
    signature: "bool compare_disconnect_torrent(std::shared_ptr<torrent> const& lhs\n\t\t,
      std::shared_ptr<torrent> const& rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/session_impl.cpp:4719,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:4719,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:4719,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4722,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:4722,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:4723,1
    - Dst: std::shared_ptr<torrent>
      Src: /src/libtorrent/src/session_impl.cpp:4723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4726
      start: 4717
    functionDepth: 1
    functionLinenumber: 4717
    functionLinenumberEnd: 4726
    functionName: session_impl::find_disconnect_candidate_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<torrent>
    - std::min_element
    - begin
    - end
    - TORRENT_ASSERT
    linkageType: ''
    returnType: std::weak_ptr<torrent>
    signature: std::weak_ptr<torrent> session_impl::find_disconnect_candidate_torrent()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:4731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4729
    functionDepth: 0
    functionLinenumber: 4729
    functionLinenumberEnd: 4732
    functionName: session_impl::should_log
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 12
    functionsReached:
    - should_post
    linkageType: ''
    returnType: bool
    signature: bool session_impl::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:4737,1
    - Dst: va_start
      Src: /src/libtorrent/src/session_impl.cpp:4740,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4741,1
    - Dst: va_end
      Src: /src/libtorrent/src/session_impl.cpp:4742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4744
      start: 4735
    functionDepth: 0
    functionLinenumber: 4735
    functionLinenumberEnd: 4744
    functionName: session_impl::session_log
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 21
    functionsReached:
    - va_start
    - emplace_alert
    - should_post
    - va_end
    linkageType: ''
    returnType: void
    signature: void session_impl::session_log(char const* fmt, ...) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_aborted
      Src: /src/libtorrent/src/session_impl.cpp:4753,1
    - Dst: session_impl::status
      Src: /src/libtorrent/src/session_impl.cpp:4755,1
    - Dst: pred
      Src: /src/libtorrent/src/session_impl.cpp:4756,1
    - Dst: std::vector<torrent_status>*::push_back
      Src: /src/libtorrent/src/session_impl.cpp:4757,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - ret
    - ' pred'
    - flags
    argTypes:
    - std::vector<torrent_status>*
    - std::function<bool(torrent_status const&)>
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4759
      start: 4747
    functionDepth: 1
    functionLinenumber: 4747
    functionLinenumberEnd: 4759
    functionName: session_impl::get_torrent_status
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - is_aborted
    - std::move
    - std::vector<torrent_status>*::push_back
    - pred
    - session_impl::status
    linkageType: ''
    returnType: void
    signature: "void session_impl::get_torrent_status(std::vector<torrent_status>*
      ret\n\t\t, std::function<bool(torrent_status const&)> const& pred\n\t\t, status_flags_t
      const flags) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle::m_torrent::lock
      Src: /src/libtorrent/src/session_impl.cpp:4766,1
    - Dst: auto::status
      Src: /src/libtorrent/src/session_impl.cpp:4768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ret
    - flags
    argTypes:
    - std::vector<torrent_status>*
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4770
      start: 4761
    functionDepth: 0
    functionLinenumber: 4761
    functionLinenumberEnd: 4770
    functionName: session_impl::refresh_torrent_status
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - auto::status
    - handle::m_torrent::lock
    linkageType: ''
    returnType: void
    signature: "void session_impl::refresh_torrent_status(std::vector<torrent_status>*
      ret\n\t\t, status_flags_t const flags) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4776,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:4776,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/session_impl.cpp:4786,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:4786,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4796,1
    - Dst: in_list
      Src: /src/libtorrent/src/session_impl.cpp:4796,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/session_impl.cpp:4797,1
    - Dst: session_impl::status
      Src: /src/libtorrent/src/session_impl.cpp:4802,1
    - Dst: std::vector::back
      Src: /src/libtorrent/src/session_impl.cpp:4802,1
    - Dst: clear_in_state_update
      Src: /src/libtorrent/src/session_impl.cpp:4803,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:4805,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4811,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - flags
    argTypes:
    - status_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4812
      start: 4772
    functionDepth: 1
    functionLinenumber: 4772
    functionLinenumberEnd: 4812
    functionName: session_impl::post_torrent_updates
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - clear_in_state_update
    - emplace_alert
    - std::vector::back
    - std::move
    - std::vector::emplace_back
    - is_single_thread
    - session_impl::status
    - TORRENT_ASSERT
    - std::vector::reserve
    - clear
    - in_list
    - size
    linkageType: ''
    returnType: void
    signature: void session_impl::post_torrent_updates(status_flags_t const flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4819,1
    - Dst: update_stats_counters
      Src: /src/libtorrent/src/session_impl.cpp:4821,1
    - Dst: update_stats_counters
      Src: /src/libtorrent/src/session_impl.cpp:4825,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:4828,1
    - Dst: queue_size
      Src: /src/libtorrent/src/session_impl.cpp:4829,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:4830,1
    - Dst: queue_size
      Src: /src/libtorrent/src/session_impl.cpp:4831,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:4833,1
    - Dst: queued_bytes
      Src: /src/libtorrent/src/session_impl.cpp:4834,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:4835,1
    - Dst: queued_bytes
      Src: /src/libtorrent/src/session_impl.cpp:4836,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4839
      start: 4814
    functionDepth: 0
    functionLinenumber: 4814
    functionLinenumberEnd: 4839
    functionName: session_impl::post_session_stats
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - queue_size
    - emplace_alert
    - queued_bytes
    - set_value
    - update_stats_counters
    linkageType: ''
    returnType: void
    signature: void session_impl::post_session_stats()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dht_status
      Src: /src/libtorrent/src/session_impl.cpp:4846,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_impl.cpp:4848,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4852,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4859,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4860,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4865
      start: 4841
    functionDepth: 0
    functionLinenumber: 4841
    functionLinenumberEnd: 4865
    functionName: session_impl::post_dht_stats
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - std::move
    - dht_status
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void session_impl::post_dht_stats()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_aborted
      Src: /src/libtorrent/src/session_impl.cpp:4873,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/session_impl.cpp:4874,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:4874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4877
      start: 4867
    functionDepth: 0
    functionLinenumber: 4867
    functionLinenumberEnd: 4877
    functionName: session_impl::get_torrents
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - is_aborted
    - std::vector::push_back
    - torrent_handle
    linkageType: ''
    returnType: std::vector<torrent_handle>
    signature: std::vector<torrent_handle> session_impl::get_torrents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:4881,1
    - Dst: session_impl::find_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' info_hash'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4882
      start: 4879
    functionDepth: 2
    functionLinenumber: 4879
    functionLinenumberEnd: 4882
    functionName: session_impl::find_torrent_handle
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::find_torrent
    - torrent_handle
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle session_impl::find_torrent_handle(info_hash_t const&
      info_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::add_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4888,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - params
    argTypes:
    - add_torrent_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4889
      start: 4884
    functionDepth: 0
    functionLinenumber: 4884
    functionLinenumberEnd: 4889
    functionName: session_impl::async_add_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - session_impl::add_torrent
    linkageType: ''
    returnType: void
    signature: void session_impl::async_add_torrent(add_torrent_params* params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4897,1
    - Dst: get_handle
      Src: /src/libtorrent/src/session_impl.cpp:4898,1
    - Dst: session_impl::add_extension
      Src: /src/libtorrent/src/session_impl.cpp:4899,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' torrent_ptr'
    - userdata
    argTypes:
    - std::shared_ptr<torrent>
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4901
      start: 4892
    functionDepth: 1
    functionLinenumber: 4892
    functionLinenumberEnd: 4901
    functionName: session_impl::add_extensions_to_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - new_torrent
    - session_impl::add_extension
    - std::move
    - get_handle
    linkageType: ''
    returnType: void
    signature: "void session_impl::add_extensions_to_torrent(\n\t\tstd::shared_ptr<torrent>
      const& torrent_ptr, client_data_t const userdata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::scope_end
      Src: /src/libtorrent/src/session_impl.cpp:4911,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/src/session_impl.cpp:4911,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4924,1
    - Dst: std::tie
      Src: /src/libtorrent/src/session_impl.cpp:4932,1
    - Dst: session_impl::add_torrent_impl
      Src: /src/libtorrent/src/session_impl.cpp:4932,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4932,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4940,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4940,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4944,1
    - Dst: info_hash_t::has_v1
      Src: /src/libtorrent/src/session_impl.cpp:4944,1
    - Dst: info_hash_t::has_v2
      Src: /src/libtorrent/src/session_impl.cpp:4944,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:4947,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4948,1
    - Dst: auto::disarm
      Src: /src/libtorrent/src/session_impl.cpp:4955,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4956,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4956,1
    - Dst: std::shared_ptr::set_ip_filter
      Src: /src/libtorrent/src/session_impl.cpp:4960,1
    - Dst: std::shared_ptr::start
      Src: /src/libtorrent/src/session_impl.cpp:4961,1
    - Dst: std::shared_ptr::add_extension
      Src: /src/libtorrent/src/session_impl.cpp:4967,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4967,1
    - Dst: session_impl::add_extensions_to_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4970,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:4973,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/session_impl.cpp:4973,1
    - Dst: session_impl::insert_torrent
      Src: /src/libtorrent/src/session_impl.cpp:4974,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:4976,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:4976,1
    - Dst: auto::disarm
      Src: /src/libtorrent/src/session_impl.cpp:4979,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:4988,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:4989,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:4990,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/session_impl.cpp:4993,1
    - Dst: torrent_list
      Src: /src/libtorrent/src/session_impl.cpp:4995,1
    - Dst: session_impl::trigger_auto_manage
      Src: /src/libtorrent/src/session_impl.cpp:5005,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - ' params'
    - ' ec'
    argTypes:
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5010
      start: 4904
    functionDepth: 3
    functionLinenumber: 4904
    functionLinenumberEnd: 5010
    functionName: session_impl::add_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - std::shared_ptr::set_ip_filter
    - std::shared_ptr::start
    - std::shared_ptr::abort
    - libtorrent::aux::scope_end
    - session_impl::add_extensions_to_torrent
    - session_impl::trigger_auto_manage
    - should_post
    - emplace_alert
    - torrent_list
    - auto::disarm
    - std::shared_ptr::add_extension
    - info_hash_t::has_v2
    - TORRENT_ASSERT
    - session_impl::insert_torrent
    - std::shared_ptr::torrent_file
    - session_impl::add_torrent_impl
    - std::tie
    - settings
    - info_hash_t::has_v1
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle session_impl::add_torrent(add_torrent_params&& params\n\t\t,
      error_code& ec)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:5015,1
    - Dst: save_path::empty
      Src: /src/libtorrent/src/session_impl.cpp:5015,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/session_impl.cpp:5021,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/session_impl.cpp:5021,1
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/src/session_impl.cpp:5023,1
    - Dst: ptr_t
      Src: /src/libtorrent/src/session_impl.cpp:5024,1
    - Dst: url::clear
      Src: /src/libtorrent/src/session_impl.cpp:5025,1
    - Dst: ti::is_valid
      Src: /src/libtorrent/src/session_impl.cpp:5029,1
    - Dst: ptr_t
      Src: /src/libtorrent/src/session_impl.cpp:5032,1
    - Dst: ti::is_valid
      Src: /src/libtorrent/src/session_impl.cpp:5035,1
    - Dst: ti::num_files
      Src: /src/libtorrent/src/session_impl.cpp:5035,1
    - Dst: ptr_t
      Src: /src/libtorrent/src/session_impl.cpp:5038,1
    - Dst: info_hashes::has_v1
      Src: /src/libtorrent/src/session_impl.cpp:5042,1
    - Dst: ti::info_hashes
      Src: /src/libtorrent/src/session_impl.cpp:5042,1
    - Dst: info_hashes::has_v2
      Src: /src/libtorrent/src/session_impl.cpp:5043,1
    - Dst: ti::info_hashes
      Src: /src/libtorrent/src/session_impl.cpp:5043,1
    - Dst: ptr_t
      Src: /src/libtorrent/src/session_impl.cpp:5047,1
    - Dst: session_impl::add_dht_node_name
      Src: /src/libtorrent/src/session_impl.cpp:5053,1
    - Dst: ti::nodes
      Src: /src/libtorrent/src/session_impl.cpp:5057,1
    - Dst: session_impl::add_dht_node_name
      Src: /src/libtorrent/src/session_impl.cpp:5058,1
    - Dst: is_aborted
      Src: /src/libtorrent/src/session_impl.cpp:5064,1
    - Dst: ptr_t
      Src: /src/libtorrent/src/session_impl.cpp:5067,1
    - Dst: ti::info_hashes
      Src: /src/libtorrent/src/session_impl.cpp:5074,1
    - Dst: info_hashes::get_best
      Src: /src/libtorrent/src/session_impl.cpp:5076,1
    - Dst: info_hashes::has_v1
      Src: /src/libtorrent/src/session_impl.cpp:5080,1
    - Dst: info_hashes::has_v2
      Src: /src/libtorrent/src/session_impl.cpp:5080,1
    - Dst: ptr_t
      Src: /src/libtorrent/src/session_impl.cpp:5083,1
    - Dst: session_impl::find_torrent
      Src: /src/libtorrent/src/session_impl.cpp:5087,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:5092,1
    - Dst: ptr_t
      Src: /src/libtorrent/src/session_impl.cpp:5095,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:5101,1
    - Dst: reserve
      Src: /src/libtorrent/src/session_impl.cpp:5104,1
    - Dst: std::make_shared<torrent>
      Src: /src/libtorrent/src/session_impl.cpp:5109,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:5109,1
    - Dst: std::shared_ptr::set_queue_position
      Src: /src/libtorrent/src/session_impl.cpp:5110,1
    - Dst: end_index
      Src: /src/libtorrent/src/session_impl.cpp:5110,1
    - Dst: code
      Src: /src/libtorrent/src/session_impl.cpp:5114,1
    - Dst: ptr_t
      Src: /src/libtorrent/src/session_impl.cpp:5115,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:5120,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 2
    argNames:
    - ' params'
    - ' ec'
    argTypes:
    - add_torrent_params
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5121
      start: 5012
    functionDepth: 2
    functionLinenumber: 5012
    functionLinenumberEnd: 5121
    functionName: session_impl::add_torrent_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - ti::num_files
    - std::move
    - info_hashes::has_v2
    - url::clear
    - session_impl::add_dht_node_name
    - parse_magnet_uri
    - is_aborted
    - save_path::empty
    - ti::nodes
    - ti::info_hashes
    - info_hashes::get_best
    - session_impl::find_torrent
    - info_hashes::has_v1
    - TORRENT_ASSERT
    - reserve
    - string_begins_no_case
    - ti::is_valid
    - ptr_t
    - end_index
    - size
    - url::c_str
    - code
    - std::make_shared<torrent>
    - std::shared_ptr::set_queue_position
    linkageType: ''
    returnType: std::tuple<std::shared_ptr<torrent>, info_hash_t, bool>
    signature: std::tuple<std::shared_ptr<torrent>, info_hash_t, bool> session_impl::add_torrent_impl(add_torrent_params&&
      params, error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:5125,1
    - Dst: parse_comma_separated_string
      Src: /src/libtorrent/src/session_impl.cpp:5128,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/session_impl.cpp:5131,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:5131,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:5133,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/session_impl.cpp:5134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5137
      start: 5123
    functionDepth: 1
    functionLinenumber: 5123
    functionLinenumberEnd: 5137
    functionName: session_impl::update_outgoing_interfaces
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - parse_comma_separated_string
    - get_str
    - empty
    - std::string::empty
    - std::string::c_str
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::update_outgoing_interfaces()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/src/session_impl.cpp:5142,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:5143,1
    - Dst: set_option
      Src: /src/libtorrent/src/session_impl.cpp:5146,1
    - Dst: exclusive_address_use
      Src: /src/libtorrent/src/session_impl.cpp:5146,1
    - Dst: set_option
      Src: /src/libtorrent/src/session_impl.cpp:5148,1
    - Dst: tcp::acceptor::reuse_address
      Src: /src/libtorrent/src/session_impl.cpp:5148,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:5157,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:5158,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_impl.cpp:5158,1
    - Dst: session_impl::next_port
      Src: /src/libtorrent/src/session_impl.cpp:5158,1
    - Dst: is_utp
      Src: /src/libtorrent/src/session_impl.cpp:5161,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/session_impl.cpp:5169,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/session_impl.cpp:5171,1
    - Dst: boost::get<utp_stream>
      Src: /src/libtorrent/src/session_impl.cpp:5176,1
    - Dst: is_v4
      Src: /src/libtorrent/src/session_impl.cpp:5184,1
    - Dst: is_v4
      Src: /src/libtorrent/src/session_impl.cpp:5184,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/session_impl.cpp:5188,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/src/session_impl.cpp:5191,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5191,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_impl.cpp:5197,1
    - Dst: random
      Src: /src/libtorrent/src/session_impl.cpp:5198,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/session_impl.cpp:5198,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_impl.cpp:5198,1
    - Dst: assign
      Src: /src/libtorrent/src/session_impl.cpp:5205,1
    - Dst: generic_category
      Src: /src/libtorrent/src/session_impl.cpp:5205,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:5209,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:5211,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5214,1
    - Dst: bind_socket_to_device
      Src: /src/libtorrent/src/session_impl.cpp:5214,1
    - Dst: is_v4
      Src: /src/libtorrent/src/session_impl.cpp:5215,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/session_impl.cpp:5215,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/session_impl.cpp:5215,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:5216,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/session_impl.cpp:5216,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5222,1
    - Dst: is_v6
      Src: /src/libtorrent/src/session_impl.cpp:5224,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5225,1
    - Dst: address_v6::any
      Src: /src/libtorrent/src/session_impl.cpp:5225,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5227,1
    - Dst: address_v4::any
      Src: /src/libtorrent/src/session_impl.cpp:5227,1
    - Dst: bind
      Src: /src/libtorrent/src/session_impl.cpp:5230,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - ' s'
    - ' remote_address'
    - ' ec'
    argTypes:
    - socket_type
    - address
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5232
      start: 5139
    functionDepth: 3
    functionLinenumber: 5139
    functionLinenumberEnd: 5232
    functionName: session_impl::bind_outgoing_socket
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - boost::get<utp_stream>
    - tcp::endpoint::address
    - empty
    - std::uint32_t
    - assign
    - tcp::acceptor::reuse_address
    - set_option
    - bind
    - tcp::endpoint::port
    - exclusive_address_use
    - bind_socket_to_device
    - std::uint16_t
    - rand_v6
    - local_endpoint::address
    - get_int
    - clear
    - is_v6
    - session_impl::next_port
    - generic_category
    - address_v4::any
    - is_utp
    - address_v4
    - size
    - random
    - rand_v4
    - std::vector::push_back
    - std::vector::empty
    - boost::get<ssl_stream<utp_stream>>
    - c_str
    - address_v6::any
    - match_addr_mask
    - is_v4
    linkageType: ''
    returnType: tcp::endpoint
    signature: "tcp::endpoint session_impl::bind_outgoing_socket(socket_type& s\n\t\t,
      address const& remote_address, error_code& ec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:5237,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:5237,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5237,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5239,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5243
      start: 5235
    functionDepth: 0
    functionLinenumber: 5235
    functionLinenumberEnd: 5243
    functionName: session_impl::verify_incoming_interface
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - begin
    - local_endpoint::address
    - end
    - std::find_if
    linkageType: ''
    returnType: bool
    signature: bool session_impl::verify_incoming_interface(address const& addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:5256,1
    - Dst: make_address
      Src: /src/libtorrent/src/session_impl.cpp:5265,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:5265,1
    - Dst: device_for_address
      Src: /src/libtorrent/src/session_impl.cpp:5272,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/session_impl.cpp:5276,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/session_impl.cpp:5278,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:5278,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ' addr'
    - utp
    - ' ec'
    argTypes:
    - address
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5280
      start: 5253
    functionDepth: 1
    functionLinenumber: 5253
    functionLinenumberEnd: 5280
    functionName: session_impl::verify_bound_address
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - device_for_address
    - c_str
    - begin
    - std::string::empty
    - end
    - std::any_of
    - make_address
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: "bool session_impl::verify_bound_address(address const& addr, bool
      utp\n\t\t, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/session_impl.cpp:5284,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:5284,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5286
      start: 5282
    functionDepth: 0
    functionLinenumber: 5282
    functionLinenumberEnd: 5286
    functionName: session_impl::has_lsd
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::any_of
    - begin
    linkageType: ''
    returnType: bool
    signature: bool session_impl::has_lsd() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_torrent::lock
      Src: /src/libtorrent/src/session_impl.cpp:5293,1
    - Dst: std::shared_ptr::is_added
      Src: /src/libtorrent/src/session_impl.cpp:5295,1
    - Dst: session_impl::remove_torrent_impl
      Src: /src/libtorrent/src/session_impl.cpp:5297,1
    - Dst: std::shared_ptr::abort
      Src: /src/libtorrent/src/session_impl.cpp:5299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' h'
    - options
    argTypes:
    - torrent_handle
    - remove_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5300
      start: 5288
    functionDepth: 1
    functionLinenumber: 5288
    functionLinenumberEnd: 5300
    functionName: session_impl::remove_torrent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::is_added
    - m_torrent::lock
    - session_impl::remove_torrent_impl
    - std::shared_ptr::abort
    linkageType: ''
    returnType: void
    signature: "void session_impl::remove_torrent(const torrent_handle& h\n\t\t, remove_flags_t
      const options)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/libtorrent/src/session_impl.cpp:5305,1
    - Dst: std::shared_ptr<torrent>::info_hash
      Src: /src/libtorrent/src/session_impl.cpp:5305,1
    - Dst: delete_files
      Src: /src/libtorrent/src/session_impl.cpp:5310,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:5312,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:5313,1
    - Dst: get_handle
      Src: /src/libtorrent/src/session_impl.cpp:5313,1
    - Dst: error_code
      Src: /src/libtorrent/src/session_impl.cpp:5314,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/session_impl.cpp:5314,1
    - Dst: std::shared_ptr<torrent>::update_gauge
      Src: /src/libtorrent/src/session_impl.cpp:5318,1
    - Dst: std::shared_ptr<torrent>::removed
      Src: /src/libtorrent/src/session_impl.cpp:5319,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:5322,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:5325,1
    - Dst: session_impl::trigger_auto_manage
      Src: /src/libtorrent/src/session_impl.cpp:5329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - tptr
    - options
    argTypes:
    - std::shared_ptr<torrent>
    - remove_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5330
      start: 5302
    functionDepth: 1
    functionLinenumber: 5302
    functionLinenumberEnd: 5330
    functionName: session_impl::remove_torrent_impl
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr<torrent>::info_hash
    - emplace_alert
    - error_code
    - erase
    - std::shared_ptr<torrent>::update_gauge
    - size
    - session_impl::trigger_auto_manage
    - std::shared_ptr<torrent>::removed
    - should_post
    - delete_files
    - get_handle
    - torrent_file
    linkageType: ''
    returnType: void
    signature: "void session_impl::remove_torrent_impl(std::shared_ptr<torrent> tptr\n\t\t,
      remove_flags_t const options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_listen_interfaces
      Src: /src/libtorrent/src/session_impl.cpp:5342,1
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:5343,1
    - Dst: auto::erase
      Src: /src/libtorrent/src/session_impl.cpp:5346,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/session_impl.cpp:5346,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/session_impl.cpp:5346,1
    - Dst: auto::end
      Src: /src/libtorrent/src/session_impl.cpp:5346,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:5347,1
    - Dst: auto::end
      Src: /src/libtorrent/src/session_impl.cpp:5347,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:5349,1
    - Dst: set_str
      Src: /src/libtorrent/src/session_impl.cpp:5355,1
    - Dst: print_listen_interfaces
      Src: /src/libtorrent/src/session_impl.cpp:5356,1
    - Dst: std::transform
      Src: /src/libtorrent/src/session_impl.cpp:5361,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/session_impl.cpp:5361,1
    - Dst: auto::end
      Src: /src/libtorrent/src/session_impl.cpp:5361,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_impl.cpp:5362,1
    - Dst: auto::insert
      Src: /src/libtorrent/src/session_impl.cpp:5365,1
    - Dst: auto::end
      Src: /src/libtorrent/src/session_impl.cpp:5365,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/session_impl.cpp:5365,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/session_impl.cpp:5365,1
    - Dst: set_str
      Src: /src/libtorrent/src/session_impl.cpp:5367,1
    - Dst: print_listen_interfaces
      Src: /src/libtorrent/src/session_impl.cpp:5368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5369
      start: 5334
    functionDepth: 0
    functionLinenumber: 5334
    functionLinenumberEnd: 5369
    functionName: session_impl::update_ssl_listen
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - std::bind
    - std::transform
    - std::vector::begin
    - std::remove_if
    - get_int
    - auto::end
    - auto::erase
    - std::back_inserter
    - print_listen_interfaces
    - auto::insert
    - std::vector::end
    - auto::begin
    - parse_listen_interfaces
    - set_str
    linkageType: ''
    returnType: void
    signature: void session_impl::update_ssl_listen()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:5376,1
    - Dst: parse_listen_interfaces
      Src: /src/libtorrent/src/session_impl.cpp:5378,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:5382,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:5387,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:5389,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/session_impl.cpp:5389,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:5390,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:5391,1
    - Dst: print_listen_interfaces
      Src: /src/libtorrent/src/session_impl.cpp:5392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5395
      start: 5372
    functionDepth: 1
    functionLinenumber: 5372
    functionLinenumberEnd: 5395
    functionName: session_impl::update_listen_interfaces
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_str
    - session_impl::should_log
    - emplace_alert
    - std::string::c_str
    - print_listen_interfaces
    - session_impl::session_log
    - size
    - parse_listen_interfaces
    linkageType: ''
    returnType: void
    signature: void session_impl::update_listen_interfaces()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5399,1
    - Dst: privileged_port_updated
      Src: /src/libtorrent/src/session_impl.cpp:5404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5397
    functionDepth: 0
    functionLinenumber: 5397
    functionLinenumberEnd: 5406
    functionName: session_impl::update_privileged_ports
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - privileged_port_updated
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_privileged_ports()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::update_auto_sequential
      Src: /src/libtorrent/src/session_impl.cpp:5411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5412
      start: 5408
    functionDepth: 1
    functionLinenumber: 5408
    functionLinenumberEnd: 5412
    functionName: session_impl::update_auto_sequential
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::update_auto_sequential
    linkageType: ''
    returnType: void
    signature: void session_impl::update_auto_sequential()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::update_max_failcount
      Src: /src/libtorrent/src/session_impl.cpp:5417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5418
      start: 5414
    functionDepth: 0
    functionLinenumber: 5414
    functionLinenumberEnd: 5418
    functionName: session_impl::update_max_failcount
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::update_max_failcount
    linkageType: ''
    returnType: void
    signature: void session_impl::update_max_failcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:5422,1
    - Dst: set_cache_timeout
      Src: /src/libtorrent/src/session_impl.cpp:5423,1
    - Dst: seconds
      Src: /src/libtorrent/src/session_impl.cpp:5423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5424
      start: 5420
    functionDepth: 0
    functionLinenumber: 5420
    functionLinenumberEnd: 5424
    functionName: session_impl::update_resolver_cache_timeout
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - seconds
    - set_cache_timeout
    linkageType: ''
    returnType: void
    signature: void session_impl::update_resolver_cache_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: udp_sock::sock::set_proxy_settings
      Src: /src/libtorrent/src/session_impl.cpp:5429,1
    - Dst: session_impl::proxy
      Src: /src/libtorrent/src/session_impl.cpp:5429,1
    - Dst: get_resolver
      Src: /src/libtorrent/src/session_impl.cpp:5429,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:5430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5431
      start: 5426
    functionDepth: 1
    functionLinenumber: 5426
    functionLinenumberEnd: 5431
    functionName: session_impl::update_proxy
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_resolver
    - settings
    - udp_sock::sock::set_proxy_settings
    - session_impl::proxy
    linkageType: ''
    returnType: void
    signature: void session_impl::update_proxy()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5435,1
    - Dst: session_impl::start_ip_notifier
      Src: /src/libtorrent/src/session_impl.cpp:5436,1
    - Dst: session_impl::stop_ip_notifier
      Src: /src/libtorrent/src/session_impl.cpp:5438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5439
      start: 5433
    functionDepth: 1
    functionLinenumber: 5433
    functionLinenumberEnd: 5439
    functionName: session_impl::update_ip_notifier
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::start_ip_notifier
    - session_impl::stop_ip_notifier
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_ip_notifier()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5443,1
    - Dst: session_impl::start_upnp
      Src: /src/libtorrent/src/session_impl.cpp:5444,1
    - Dst: session_impl::stop_upnp
      Src: /src/libtorrent/src/session_impl.cpp:5446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5447
      start: 5441
    functionDepth: 1
    functionLinenumber: 5441
    functionLinenumberEnd: 5447
    functionName: session_impl::update_upnp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::start_upnp
    - session_impl::stop_upnp
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_upnp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5451,1
    - Dst: session_impl::start_natpmp
      Src: /src/libtorrent/src/session_impl.cpp:5452,1
    - Dst: session_impl::stop_natpmp
      Src: /src/libtorrent/src/session_impl.cpp:5454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5455
      start: 5449
    functionDepth: 1
    functionLinenumber: 5449
    functionLinenumberEnd: 5455
    functionName: session_impl::update_natpmp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::stop_natpmp
    - session_impl::start_natpmp
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_natpmp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5459,1
    - Dst: session_impl::start_lsd
      Src: /src/libtorrent/src/session_impl.cpp:5460,1
    - Dst: session_impl::stop_lsd
      Src: /src/libtorrent/src/session_impl.cpp:5462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5463
      start: 5457
    functionDepth: 1
    functionLinenumber: 5457
    functionLinenumberEnd: 5463
    functionName: session_impl::update_lsd
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::start_lsd
    - session_impl::stop_lsd
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_lsd()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5468,1
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:5470,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:5471,1
    - Dst: session_impl::update_dht_bootstrap_nodes
      Src: /src/libtorrent/src/session_impl.cpp:5476,1
    - Dst: session_impl::start_dht
      Src: /src/libtorrent/src/session_impl.cpp:5480,1
    - Dst: session_impl::stop_dht
      Src: /src/libtorrent/src/session_impl.cpp:5484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5465
    functionDepth: 1
    functionLinenumber: 5465
    functionLinenumberEnd: 5486
    functionName: session_impl::update_dht
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::update_dht_bootstrap_nodes
    - get_str
    - session_impl::stop_dht
    - empty
    - session_impl::start_dht
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_dht()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5491,1
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:5493,1
    - Dst: parse_comma_separated_string_port
      Src: /src/libtorrent/src/session_impl.cpp:5495,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:5498,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_impl.cpp:5498,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:5500,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:5500,1
    - Dst: session_impl::add_dht_router
      Src: /src/libtorrent/src/session_impl.cpp:5504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5488
    functionDepth: 1
    functionLinenumber: 5488
    functionLinenumberEnd: 5506
    functionName: session_impl::update_dht_bootstrap_nodes
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_str
    - std::vector::empty
    - c_str
    - empty
    - session_impl::add_dht_router
    - get_bool
    - parse_comma_separated_string_port
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::update_dht_bootstrap_nodes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_inactivity_tick
      Src: /src/libtorrent/src/session_impl.cpp:5513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5515
      start: 5508
    functionDepth: 0
    functionLinenumber: 5508
    functionLinenumberEnd: 5515
    functionName: session_impl::update_count_slow
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - on_inactivity_tick
    linkageType: ''
    returnType: void
    signature: void session_impl::update_count_slow()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::listen_port
      Src: /src/libtorrent/src/session_impl.cpp:5521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5522
      start: 5519
    functionDepth: 1
    functionLinenumber: 5519
    functionLinenumberEnd: 5522
    functionName: session_impl::listen_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::listen_port
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t session_impl::listen_port() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:5526,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_impl.cpp:5539,1
    - Dst: listen_socket_t*::tcp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:5539,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_impl.cpp:5547,1
    - Dst: tcp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:5547,1
    - Dst: front
      Src: /src/libtorrent/src/session_impl.cpp:5551,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_impl.cpp:5553,1
    - Dst: listen_socket_t*::tcp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:5553,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - sock
    argTypes:
    - listen_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5555
      start: 5524
    functionDepth: 0
    functionLinenumber: 5524
    functionLinenumberEnd: 5555
    functionName: session_impl::listen_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - listen_socket_t*::tcp_external_port
    - std::uint16_t
    - empty
    - front
    - tcp_external_port
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t session_impl::listen_port(listen_socket_t* sock) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::ssl_listen_port
      Src: /src/libtorrent/src/session_impl.cpp:5561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5562
      start: 5559
    functionDepth: 1
    functionLinenumber: 5559
    functionLinenumberEnd: 5562
    functionName: session_impl::ssl_listen_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::ssl_listen_port
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t session_impl::ssl_listen_port() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_impl.cpp:5570,1
    - Dst: listen_socket_t*::tcp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:5570,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:5573,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5574,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/session_impl.cpp:5581,1
    - Dst: tcp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:5581,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:5584,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - sock
    argTypes:
    - listen_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5587
      start: 5564
    functionDepth: 1
    functionLinenumber: 5564
    functionLinenumberEnd: 5587
    functionName: session_impl::ssl_listen_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - listen_socket_t*::tcp_external_port
    - std::uint16_t
    - get_int
    - tcp_external_port
    - get_bool
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t session_impl::ssl_listen_port(listen_socket_t* sock)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:5591,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:5594,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:5594,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5594,1
    - Dst: external_address::external_address
      Src: /src/libtorrent/src/session_impl.cpp:5598,1
    - Dst: auto::external_address::external_address
      Src: /src/libtorrent/src/session_impl.cpp:5599,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5601,1
    - Dst: auto::get
      Src: /src/libtorrent/src/session_impl.cpp:5602,1
    - Dst: auto::udp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:5604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ssl
    - ' s'
    argTypes:
    - transport
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5605
      start: 5589
    functionDepth: 0
    functionLinenumber: 5589
    functionLinenumberEnd: 5605
    functionName: session_impl::get_listen_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - begin
    - auto::get
    - end
    - external_address::external_address
    - auto::udp_external_port
    - get
    - auto::external_address::external_address
    - std::find_if
    linkageType: ''
    returnType: int
    signature: int session_impl::get_listen_port(transport const ssl, aux::listen_socket_handle
      const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:5609,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:5609,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5609,1
    - Dst: external_address::external_address
      Src: /src/libtorrent/src/session_impl.cpp:5613,1
    - Dst: is_v4
      Src: /src/libtorrent/src/session_impl.cpp:5616,1
    - Dst: is_v4
      Src: /src/libtorrent/src/session_impl.cpp:5616,1
    - Dst: is_unspecified
      Src: /src/libtorrent/src/session_impl.cpp:5616,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5618,1
    - Dst: tcp_external_port
      Src: /src/libtorrent/src/session_impl.cpp:5619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ssl
    - ' local_addr'
    argTypes:
    - transport
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5621
      start: 5607
    functionDepth: 0
    functionLinenumber: 5607
    functionLinenumberEnd: 5621
    functionName: session_impl::listen_port
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - begin
    - is_unspecified
    - end
    - external_address::external_address
    - tcp_external_port
    - is_v4
    - std::find_if
    linkageType: ''
    returnType: int
    signature: int session_impl::listen_port(transport const ssl, address const& local_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lsd::announce
      Src: /src/libtorrent/src/session_impl.cpp:5628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' ih'
    - port
    argTypes:
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5630
      start: 5623
    functionDepth: 0
    functionLinenumber: 5623
    functionLinenumberEnd: 5630
    functionName: session_impl::announce_lsd
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - lsd::announce
    linkageType: ''
    returnType: void
    signature: void session_impl::announce_lsd(sha1_hash const& ih, int port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/session_impl.cpp:5634,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:5635,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:5635,1
    - Dst: session_impl::find_torrent
      Src: /src/libtorrent/src/session_impl.cpp:5639,1
    - Dst: info_hash_t
      Src: /src/libtorrent/src/session_impl.cpp:5639,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/session_impl.cpp:5642,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/session_impl.cpp:5642,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5643,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/session_impl.cpp:5645,1
    - Dst: std::shared_ptr::add_peer
      Src: /src/libtorrent/src/session_impl.cpp:5648,1
    - Dst: pex_flags_t
      Src: /src/libtorrent/src/session_impl.cpp:5648,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:5650,1
    - Dst: std::shared_ptr::debug_log
      Src: /src/libtorrent/src/session_impl.cpp:5652,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:5653,1
    - Dst: std::shared_ptr::do_connect_boost
      Src: /src/libtorrent/src/session_impl.cpp:5656,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:5658,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:5659,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/session_impl.cpp:5659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ' peer'
    - ' ih'
    argTypes:
    - tcp::endpoint
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5660
      start: 5632
    functionDepth: 2
    functionLinenumber: 5632
    functionLinenumberEnd: 5660
    functionName: session_impl::on_lsd_peer
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::should_log
    - std::shared_ptr::do_connect_boost
    - info_hash_t
    - emplace_alert
    - session_impl::find_torrent
    - is_single_thread
    - std::shared_ptr::add_peer
    - std::shared_ptr::debug_log
    - TORRENT_ASSERT
    - pex_flags_t
    - inc_stats_counter
    - get_bool
    - should_post
    - std::shared_ptr::get_handle
    - address
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: void
    signature: void session_impl::on_lsd_peer(tcp::endpoint const& peer, sha1_hash
      const& ih)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/session_impl.cpp:5666,1
    - Dst: is_local
      Src: /src/libtorrent/src/session_impl.cpp:5666,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5666,1
    - Dst: std::make_shared<natpmp>
      Src: /src/libtorrent/src/session_impl.cpp:5675,1
    - Dst: listen_socket_handle
      Src: /src/libtorrent/src/session_impl.cpp:5675,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5677,1
    - Dst: std::strncpy
      Src: /src/libtorrent/src/session_impl.cpp:5679,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:5679,1
    - Dst: natpmp_mapper::start
      Src: /src/libtorrent/src/session_impl.cpp:5681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::shared_ptr<aux::listen_socket_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5683
      start: 5662
    functionDepth: 0
    functionLinenumber: 5662
    functionLinenumberEnd: 5683
    functionName: session_impl::start_natpmp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - is_v6
    - is_local
    - natpmp_mapper::start
    - listen_socket_handle
    - std::make_shared<natpmp>
    - local_endpoint::address
    - std::strncpy
    - device::c_str
    linkageType: ''
    returnType: void
    signature: void session_impl::start_natpmp(std::shared_ptr<aux::listen_socket_t>
      const& s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:5691,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:5691,1
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:5693,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:5699,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:5701,1
    - Dst: listen_socket_t*::local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5702,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:5702,1
    - Dst: is_unspecified
      Src: /src/libtorrent/src/session_impl.cpp:5707,1
    - Dst: listen_socket_t*::external_address::cast_vote
      Src: /src/libtorrent/src/session_impl.cpp:5711,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:5711,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:5720,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:5722,1
    - Dst: listen_socket_t*::local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:5723,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 7
    argNames:
    - mapping
    - ' external_ip'
    - port
    - proto
    - ' ec'
    - transport
    - ' ls'
    argTypes:
    - port_mapping_t
    - address
    - int
    - portmap_protocol
    - error_code
    - portmap_transport
    - listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5725
      start: 5685
    functionDepth: 2
    functionLinenumber: 5685
    functionLinenumberEnd: 5725
    functionName: session_impl::on_port_mapping
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - is_unspecified
    - is_single_thread
    - TORRENT_ASSERT
    - listen_socket_t*::external_address::cast_vote
    - should_post
    - listen_socket_t*::local_endpoint::address
    - get
    - address
    linkageType: ''
    returnType: void
    signature: "void session_impl::on_port_mapping(port_mapping_t const mapping\n\t\t,
      address const& external_ip, int port\n\t\t, portmap_protocol const proto, error_code
      const& ec\n\t\t, portmap_transport const transport\n\t\t, listen_socket_handle
      const& ls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:5731,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:5731,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:5737,1
    - Dst: download_rate
      Src: /src/libtorrent/src/session_impl.cpp:5774,1
    - Dst: total_upload
      Src: /src/libtorrent/src/session_impl.cpp:5775,1
    - Dst: upload_rate
      Src: /src/libtorrent/src/session_impl.cpp:5776,1
    - Dst: total_download
      Src: /src/libtorrent/src/session_impl.cpp:5777,1
    - Dst: transfer_rate
      Src: /src/libtorrent/src/session_impl.cpp:5780,1
    - Dst: total_transfer
      Src: /src/libtorrent/src/session_impl.cpp:5781,1
    - Dst: transfer_rate
      Src: /src/libtorrent/src/session_impl.cpp:5782,1
    - Dst: total_transfer
      Src: /src/libtorrent/src/session_impl.cpp:5783,1
    - Dst: transfer_rate
      Src: /src/libtorrent/src/session_impl.cpp:5786,1
    - Dst: transfer_rate
      Src: /src/libtorrent/src/session_impl.cpp:5788,1
    - Dst: dht_status
      Src: /src/libtorrent/src/session_impl.cpp:5808,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5820,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5821,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5822,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5823,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5824,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5825,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5826,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5827,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5828,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5829,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5830,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/session_impl.cpp:5831,1
    - Dst: std::accumulate
      Src: /src/libtorrent/src/session_impl.cpp:5841,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:5841,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:5841,1
    - Dst: num_known_peers
      Src: /src/libtorrent/src/session_impl.cpp:5843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5846
      start: 5728
    functionDepth: 1
    functionLinenumber: 5728
    functionLinenumberEnd: 5846
    functionName: session_impl::status
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - total_transfer
    - total_upload
    - dht_status
    - begin
    - is_single_thread
    - std::accumulate
    - end
    - TORRENT_ASSERT
    - download_rate
    - std::uint64_t
    - total_download
    - num_known_peers
    - transfer_rate
    - size
    - upload_rate
    linkageType: ''
    returnType: session_status
    signature: session_status session_impl::status() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::stop_dht
      Src: /src/libtorrent/src/session_impl.cpp:5855,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:5857,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:5863,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:5872,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:5878,1
    - Dst: m_dht_storage_constructor
      Src: /src/libtorrent/src/session_impl.cpp:5883,1
    - Dst: std::make_shared<dht::dht_tracker>
      Src: /src/libtorrent/src/session_impl.cpp:5884,1
    - Dst: static_cast<dht::dht_observer*>
      Src: /src/libtorrent/src/session_impl.cpp:5885,1
    - Dst: send_udp_packet_listen
      Src: /src/libtorrent/src/session_impl.cpp:5892,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:5896,1
    - Dst: new_socket
      Src: /src/libtorrent/src/session_impl.cpp:5903,1
    - Dst: add_router_node
      Src: /src/libtorrent/src/session_impl.cpp:5909,1
    - Dst: add_node
      Src: /src/libtorrent/src/session_impl.cpp:5914,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:5916,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/session_impl.cpp:5917,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:5922,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:5923,1
    - Dst: start
      Src: /src/libtorrent/src/session_impl.cpp:5926,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5927
      start: 5851
    functionDepth: 1
    functionLinenumber: 5851
    functionLinenumberEnd: 5927
    functionName: session_impl::start_dht
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<dht::dht_tracker>
    - start
    - session_impl::stop_dht
    - send_udp_packet_listen
    - std::move
    - emplace_alert
    - add_router_node
    - static_cast<dht::dht_observer*>
    - shrink_to_fit
    - m_dht_storage_constructor
    - get_bool
    - clear
    - new_socket
    - should_post
    - session_impl::session_log
    - add_node
    linkageType: ''
    returnType: void
    signature: void session_impl::start_dht()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:5932,1
    - Dst: stop
      Src: /src/libtorrent/src/session_impl.cpp:5937,1
    - Dst: reset
      Src: /src/libtorrent/src/session_impl.cpp:5938,1
    - Dst: reset
      Src: /src/libtorrent/src/session_impl.cpp:5941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5942
      start: 5929
    functionDepth: 1
    functionLinenumber: 5929
    functionLinenumberEnd: 5942
    functionName: session_impl::stop_dht
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 3
    functionsReached:
    - stop
    - reset
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::stop_dht()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5951,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5952,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5953,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5954,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5955,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5956,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5957,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5958,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5959,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5960,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5961,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5962,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5963,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5964,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5965,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5966,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5967,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5968,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5969,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5970,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5971,1
    - Dst: session_impl::update_dht_upload_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:5974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - dht::dht_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5976
      start: 5945
    functionDepth: 1
    functionLinenumber: 5945
    functionLinenumberEnd: 5976
    functionName: session_impl::set_dht_settings
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::update_dht_upload_rate_limit
    - SET_BOOL
    - SET_INT
    linkageType: ''
    returnType: void
    signature: void session_impl::set_dht_settings(dht::dht_settings const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5949
      start: 5948
    functionDepth: 0
    functionLinenumber: 5948
    functionLinenumberEnd: 5949
    functionName: SET_BOOL
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOOL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5950
      start: 5949
    functionDepth: 0
    functionLinenumber: 5949
    functionLinenumberEnd: 5950
    functionName: SET_INT
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5987,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5988,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5989,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5990,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5991,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5992,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:5993,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5994,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5995,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5996,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5997,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5998,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:5999,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:6000,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:6001,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:6002,1
    - Dst: SET_BOOL
      Src: /src/libtorrent/src/session_impl.cpp:6003,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:6004,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:6005,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:6006,1
    - Dst: SET_INT
      Src: /src/libtorrent/src/session_impl.cpp:6007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6012
      start: 5978
    functionDepth: 0
    functionLinenumber: 5978
    functionLinenumberEnd: 6012
    functionName: session_impl::get_dht_settings
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - SET_BOOL
    - SET_INT
    linkageType: ''
    returnType: dht::dht_settings
    signature: dht::dht_settings session_impl::get_dht_settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5984
      start: 5982
    functionDepth: 0
    functionLinenumber: 5982
    functionLinenumberEnd: 5984
    functionName: SET_BOOL
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOOL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5986
      start: 5984
    functionDepth: 0
    functionLinenumber: 5984
    functionLinenumberEnd: 5986
    functionName: SET_INT
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - dht::dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6018
      start: 6015
    functionDepth: 0
    functionLinenumber: 6015
    functionLinenumberEnd: 6018
    functionName: session_impl::set_dht_state
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_impl::set_dht_state(dht::dht_state&& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - dht::dht_storage_constructor_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6023
      start: 6020
    functionDepth: 0
    functionLinenumber: 6020
    functionLinenumberEnd: 6023
    functionName: session_impl::set_dht_storage
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void session_impl::set_dht_storage(dht::dht_storage_constructor_type
      sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::save_dht_state
      Src: /src/libtorrent/src/session_impl.cpp:6028,1
    - Dst: state
      Src: /src/libtorrent/src/session_impl.cpp:6028,1
    - Dst: entry
      Src: /src/libtorrent/src/session_impl.cpp:6028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6029
      start: 6026
    functionDepth: 1
    functionLinenumber: 6026
    functionLinenumberEnd: 6029
    functionName: session_impl::dht_state
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::dht::save_dht_state
    - entry
    linkageType: ''
    returnType: entry
    signature: entry session_impl::dht_state() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_bool
      Src: /src/libtorrent/src/session_impl.cpp:6033,1
    - Dst: bencode
      Src: /src/libtorrent/src/session_impl.cpp:6035,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/session_impl.cpp:6035,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/session_impl.cpp:6039,1
    - Dst: bdecode
      Src: /src/libtorrent/src/session_impl.cpp:6039,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/session_impl.cpp:6039,1
    - Dst: libtorrent::dht::read_dht_state
      Src: /src/libtorrent/src/session_impl.cpp:6041,1
    - Dst: session_impl::start_dht
      Src: /src/libtorrent/src/session_impl.cpp:6042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' startup_state'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6031
    functionDepth: 1
    functionLinenumber: 6031
    functionLinenumberEnd: 6043
    functionName: session_impl::start_dht_deprecated
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - libtorrent::dht::read_dht_state
    - std::vector::empty
    - set_bool
    - std::back_inserter
    - session_impl::start_dht
    - bdecode
    - bencode
    linkageType: ''
    returnType: void
    signature: void session_impl::start_dht_deprecated(entry const& startup_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:6048,1
    - Dst: async_resolve
      Src: /src/libtorrent/src/session_impl.cpp:6049,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - std::pair<std::string, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6052
      start: 6046
    functionDepth: 1
    functionLinenumber: 6046
    functionLinenumberEnd: 6052
    functionName: session_impl::add_dht_node_name
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_resolve
    linkageType: ''
    returnType: void
    signature: void session_impl::add_dht_node_name(std::pair<std::string, int> const&
      node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:6057,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6061,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6062,1
    - Dst: session_impl::add_dht_node
      Src: /src/libtorrent/src/session_impl.cpp:6070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ' e'
    - ' addresses'
    - port
    argTypes:
    - error_code
    - std::vector<address>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6072
      start: 6054
    functionDepth: 1
    functionLinenumber: 6054
    functionLinenumberEnd: 6072
    functionName: session_impl::on_dht_name_lookup
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - COMPLETE_ASYNC
    - emplace_alert
    - should_post
    - session_impl::add_dht_node
    linkageType: ''
    returnType: void
    signature: "void session_impl::on_dht_name_lookup(error_code const& e\n\t\t, std::vector<address>
      const& addresses, int port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:6076,1
    - Dst: async_resolve
      Src: /src/libtorrent/src/session_impl.cpp:6078,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - std::pair<std::string, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6081
      start: 6074
    functionDepth: 1
    functionLinenumber: 6074
    functionLinenumberEnd: 6081
    functionName: session_impl::add_dht_router
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_resolve
    linkageType: ''
    returnType: void
    signature: void session_impl::add_dht_router(std::pair<std::string, int> const&
      node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:6086,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6091,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6092,1
    - Dst: session_impl::start_dht
      Src: /src/libtorrent/src/session_impl.cpp:6095,1
    - Dst: add_router_node
      Src: /src/libtorrent/src/session_impl.cpp:6104,1
    - Dst: push_back
      Src: /src/libtorrent/src/session_impl.cpp:6105,1
    - Dst: session_impl::start_dht
      Src: /src/libtorrent/src/session_impl.cpp:6108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - ' e'
    - ' addresses'
    - port
    argTypes:
    - error_code
    - std::vector<address>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6109
      start: 6083
    functionDepth: 1
    functionLinenumber: 6083
    functionLinenumberEnd: 6109
    functionName: session_impl::on_dht_router_name_lookup
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - emplace_alert
    - session_impl::start_dht
    - should_post
    - add_router_node
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: "void session_impl::on_dht_router_name_lookup(error_code const& e\n\t\t,
      std::vector<address> const& addresses, int port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:6115,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/session_impl.cpp:6115,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6116,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:6116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - target
    - ' i'
    argTypes:
    - sha1_hash
    - dht::item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6117
      start: 6112
    functionDepth: 1
    functionLinenumber: 6112
    functionLinenumberEnd: 6117
    functionName: session_impl::get_immutable_callback
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - value
    - emplace_alert
    - is_mutable
    linkageType: ''
    returnType: void
    signature: "void session_impl::get_immutable_callback(sha1_hash target\n\t\t,
      dht::item const& i)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_item
      Src: /src/libtorrent/src/session_impl.cpp:6122,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6124
      start: 6119
    functionDepth: 0
    functionLinenumber: 6119
    functionLinenumberEnd: 6124
    functionName: session_impl::dht_get_immutable_item
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - get_item
    linkageType: ''
    returnType: void
    signature: void session_impl::dht_get_immutable_item(sha1_hash const& target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:6130,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/session_impl.cpp:6130,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6131,1
    - Dst: pk
      Src: /src/libtorrent/src/session_impl.cpp:6131,1
    - Dst: sig
      Src: /src/libtorrent/src/session_impl.cpp:6132,1
    - Dst: seq
      Src: /src/libtorrent/src/session_impl.cpp:6132,1
    - Dst: salt
      Src: /src/libtorrent/src/session_impl.cpp:6133,1
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:6133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' i'
    - authoritative
    argTypes:
    - dht::item
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6134
      start: 6127
    functionDepth: 1
    functionLinenumber: 6127
    functionLinenumberEnd: 6134
    functionName: session_impl::get_mutable_callback
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - salt
    - emplace_alert
    - pk
    - sig
    - is_mutable
    - TORRENT_ASSERT
    - seq
    - value
    linkageType: ''
    returnType: void
    signature: "void session_impl::get_mutable_callback(dht::item const& i\n\t\t,
      bool const authoritative)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_item
      Src: /src/libtorrent/src/session_impl.cpp:6143,1
    - Dst: libtorrent::dht::public_key
      Src: /src/libtorrent/src/session_impl.cpp:6143,1
    - Dst: std::array<char, 32>::data
      Src: /src/libtorrent/src/session_impl.cpp:6143,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6143,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - salt
    argTypes:
    - std::array<char, 32>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6145
      start: 6139
    functionDepth: 1
    functionLinenumber: 6139
    functionLinenumberEnd: 6145
    functionName: session_impl::dht_get_mutable_item
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - libtorrent::dht::public_key
    - get_item
    - std::array<char, 32>::data
    linkageType: ''
    returnType: void
    signature: "void session_impl::dht_get_mutable_item(std::array<char, 32> key\n\t\t,
      std::string salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6151,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' alerts'
    - target
    - num
    argTypes:
    - aux::alert_manager
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6149
    functionDepth: 0
    functionLinenumber: 6149
    functionLinenumberEnd: 6153
    functionName: on_dht_put_immutable_item
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: void on_dht_put_immutable_item(aux::alert_manager& alerts, sha1_hash
      target, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6157,1
    - Dst: sig
      Src: /src/libtorrent/src/session_impl.cpp:6159,1
    - Dst: pk
      Src: /src/libtorrent/src/session_impl.cpp:6160,1
    - Dst: seq
      Src: /src/libtorrent/src/session_impl.cpp:6161,1
    - Dst: salt
      Src: /src/libtorrent/src/session_impl.cpp:6162,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6163,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' alerts'
    - ' i'
    - num
    argTypes:
    - aux::alert_manager
    - dht::item
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6166
      start: 6155
    functionDepth: 0
    functionLinenumber: 6155
    functionLinenumberEnd: 6166
    functionName: on_dht_put_mutable_item
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - salt
    - emplace_alert
    - std::move
    - pk
    - sig
    - seq
    - should_post
    linkageType: ''
    returnType: void
    signature: void on_dht_put_mutable_item(aux::alert_manager& alerts, dht::item
      const& i, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:6172,1
    - Dst: sig
      Src: /src/libtorrent/src/session_impl.cpp:6173,1
    - Dst: pk
      Src: /src/libtorrent/src/session_impl.cpp:6174,1
    - Dst: seq
      Src: /src/libtorrent/src/session_impl.cpp:6175,1
    - Dst: salt
      Src: /src/libtorrent/src/session_impl.cpp:6176,1
    - Dst: cb
      Src: /src/libtorrent/src/session_impl.cpp:6177,1
    - Dst: assign
      Src: /src/libtorrent/src/session_impl.cpp:6178,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' i'
    - cb
    argTypes:
    - dht::item
    - "std::function<void(entry&, std::array<char, 64>&\n\t\t\t\t, std::int64_t&,
      std::string const&)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6179
      start: 6168
    functionDepth: 0
    functionLinenumber: 6168
    functionLinenumberEnd: 6179
    functionName: put_mutable_callback
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - cb
    - salt
    - std::move
    - pk
    - sig
    - assign
    - seq
    - value
    linkageType: ''
    returnType: void
    signature: "void put_mutable_callback(dht::item& i\n\t\t\t, std::function<void(entry&,
      std::array<char, 64>&\n\t\t\t\t, std::int64_t&, std::string const&)> cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6183,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' alerts'
    - info_hash
    - ' peers'
    argTypes:
    - aux::alert_manager
    - sha1_hash
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6181
    functionDepth: 0
    functionLinenumber: 6181
    functionLinenumberEnd: 6185
    functionName: on_dht_get_peers
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: void on_dht_get_peers(aux::alert_manager& alerts, sha1_hash info_hash,
      std::vector<tcp::endpoint> const& peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: message::type
      Src: /src/libtorrent/src/session_impl.cpp:6189,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6190,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' alerts'
    - userdata
    - ' msg'
    argTypes:
    - aux::alert_manager
    - client_data_t
    - dht::msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6193
      start: 6187
    functionDepth: 1
    functionLinenumber: 6187
    functionLinenumberEnd: 6193
    functionName: on_direct_response
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - message::type
    - emplace_alert
    linkageType: ''
    returnType: void
    signature: void on_direct_response(aux::alert_manager& alerts, client_data_t userdata,
      dht::msg const& msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6151,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' alerts'
    - target
    - num
    argTypes:
    - aux::alert_manager
    - sha1_hash
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6149
    functionDepth: 0
    functionLinenumber: 6149
    functionLinenumberEnd: 6153
    functionName: on_dht_put_immutable_item
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: void on_dht_put_immutable_item(aux::alert_manager& alerts, sha1_hash
      target, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6157,1
    - Dst: sig
      Src: /src/libtorrent/src/session_impl.cpp:6159,1
    - Dst: pk
      Src: /src/libtorrent/src/session_impl.cpp:6160,1
    - Dst: seq
      Src: /src/libtorrent/src/session_impl.cpp:6161,1
    - Dst: salt
      Src: /src/libtorrent/src/session_impl.cpp:6162,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6163,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' alerts'
    - ' i'
    - num
    argTypes:
    - aux::alert_manager
    - dht::item
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6166
      start: 6155
    functionDepth: 0
    functionLinenumber: 6155
    functionLinenumberEnd: 6166
    functionName: on_dht_put_mutable_item
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - salt
    - emplace_alert
    - std::move
    - pk
    - sig
    - seq
    - should_post
    linkageType: ''
    returnType: void
    signature: void on_dht_put_mutable_item(aux::alert_manager& alerts, dht::item
      const& i, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/src/session_impl.cpp:6172,1
    - Dst: sig
      Src: /src/libtorrent/src/session_impl.cpp:6173,1
    - Dst: pk
      Src: /src/libtorrent/src/session_impl.cpp:6174,1
    - Dst: seq
      Src: /src/libtorrent/src/session_impl.cpp:6175,1
    - Dst: salt
      Src: /src/libtorrent/src/session_impl.cpp:6176,1
    - Dst: cb
      Src: /src/libtorrent/src/session_impl.cpp:6177,1
    - Dst: assign
      Src: /src/libtorrent/src/session_impl.cpp:6178,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' i'
    - cb
    argTypes:
    - dht::item
    - "std::function<void(entry&, std::array<char, 64>&\n\t\t\t\t, std::int64_t&,
      std::string const&)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6179
      start: 6168
    functionDepth: 0
    functionLinenumber: 6168
    functionLinenumberEnd: 6179
    functionName: put_mutable_callback
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - cb
    - salt
    - std::move
    - pk
    - sig
    - assign
    - seq
    - value
    linkageType: ''
    returnType: void
    signature: "void put_mutable_callback(dht::item& i\n\t\t\t, std::function<void(entry&,
      std::array<char, 64>&\n\t\t\t\t, std::int64_t&, std::string const&)> cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6183,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' alerts'
    - info_hash
    - ' peers'
    argTypes:
    - aux::alert_manager
    - sha1_hash
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6181
    functionDepth: 0
    functionLinenumber: 6181
    functionLinenumberEnd: 6185
    functionName: on_dht_get_peers
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: void on_dht_get_peers(aux::alert_manager& alerts, sha1_hash info_hash,
      std::vector<tcp::endpoint> const& peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: message::type
      Src: /src/libtorrent/src/session_impl.cpp:6189,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6190,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' alerts'
    - userdata
    - ' msg'
    argTypes:
    - aux::alert_manager
    - client_data_t
    - dht::msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6193
      start: 6187
    functionDepth: 1
    functionLinenumber: 6187
    functionLinenumberEnd: 6193
    functionName: on_direct_response
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - message::type
    - emplace_alert
    linkageType: ''
    returnType: void
    signature: void on_direct_response(aux::alert_manager& alerts, client_data_t userdata,
      dht::msg const& msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: put_item
      Src: /src/libtorrent/src/session_impl.cpp:6200,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6200,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session_impl.cpp:6200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' data'
    - target
    argTypes:
    - entry
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6202
      start: 6197
    functionDepth: 0
    functionLinenumber: 6197
    functionLinenumberEnd: 6202
    functionName: session_impl::dht_put_immutable_item
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - put_item
    - std::bind
    - std::ref
    linkageType: ''
    returnType: void
    signature: void session_impl::dht_put_immutable_item(entry const& data, sha1_hash
      target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: put_item
      Src: /src/libtorrent/src/session_impl.cpp:6210,1
    - Dst: libtorrent::dht::public_key
      Src: /src/libtorrent/src/session_impl.cpp:6210,1
    - Dst: std::array<char, 32>::data
      Src: /src/libtorrent/src/session_impl.cpp:6210,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6211,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session_impl.cpp:6211,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6212,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - key
    - cb
    - salt
    argTypes:
    - std::array<char, 32>
    - "std::function<void(entry&, std::array<char,64>&\n\t\t, std::int64_t&, std::string
      const&)>"
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6213
      start: 6204
    functionDepth: 1
    functionLinenumber: 6204
    functionLinenumberEnd: 6213
    functionName: session_impl::dht_put_mutable_item
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::move
    - put_item
    - std::ref
    - libtorrent::dht::public_key
    - std::array<char, 32>::data
    linkageType: ''
    returnType: void
    signature: "void session_impl::dht_put_mutable_item(std::array<char, 32> key\n\t\t,
      std::function<void(entry&, std::array<char,64>&\n\t\t, std::int64_t&, std::string
      const&)> cb\n\t\t, std::string salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::get_peers
      Src: /src/libtorrent/src/session_impl.cpp:6218,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6218,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session_impl.cpp:6218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' info_hash'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6219
      start: 6215
    functionDepth: 0
    functionLinenumber: 6215
    functionLinenumberEnd: 6219
    functionName: session_impl::dht_get_peers
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::get_peers
    - std::bind
    - std::ref
    linkageType: ''
    returnType: void
    signature: void session_impl::dht_get_peers(sha1_hash const& info_hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::announce
      Src: /src/libtorrent/src/session_impl.cpp:6224,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6224,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session_impl.cpp:6224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' info_hash'
    - port
    - flags
    argTypes:
    - sha1_hash
    - int
    - dht::announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6225
      start: 6221
    functionDepth: 0
    functionLinenumber: 6221
    functionLinenumberEnd: 6225
    functionName: session_impl::dht_announce
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - session_impl::announce
    - std::ref
    linkageType: ''
    returnType: void
    signature: void session_impl::dht_announce(sha1_hash const& info_hash, int port,
      dht::announce_flags_t const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes
      Src: /src/libtorrent/src/session_impl.cpp:6230,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6232
      start: 6227
    functionDepth: 0
    functionLinenumber: 6227
    functionLinenumberEnd: 6232
    functionName: session_impl::dht_live_nodes
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - live_nodes
    linkageType: ''
    returnType: void
    signature: void session_impl::dht_live_nodes(sha1_hash const& nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sample_infohashes
      Src: /src/libtorrent/src/session_impl.cpp:6237,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6242,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6243,1
    - Dst: std::move
      Src: /src/libtorrent/src/session_impl.cpp:6243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ep'
    - ' target'
    argTypes:
    - udp::endpoint
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6234
    functionDepth: 0
    functionLinenumber: 6234
    functionLinenumberEnd: 6245
    functionName: session_impl::dht_sample_infohashes
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - sample_infohashes
    - std::move
    - emplace_alert
    linkageType: ''
    returnType: void
    signature: void session_impl::dht_sample_infohashes(udp::endpoint const& ep, sha1_hash
      const& target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: direct_request
      Src: /src/libtorrent/src/session_impl.cpp:6250,1
    - Dst: std::bind
      Src: /src/libtorrent/src/session_impl.cpp:6250,1
    - Dst: std::ref
      Src: /src/libtorrent/src/session_impl.cpp:6250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - userdata
    argTypes:
    - udp::endpoint
    - entry
    - client_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6251
      start: 6247
    functionDepth: 0
    functionLinenumber: 6247
    functionLinenumberEnd: 6251
    functionName: session_impl::dht_direct_request
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - direct_request
    - std::ref
    linkageType: ''
    returnType: void
    signature: void session_impl::dht_direct_request(udp::endpoint const& ep, entry&
      e, client_data_t userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:6257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6258
      start: 6255
    functionDepth: 0
    functionLinenumber: 6255
    functionLinenumberEnd: 6258
    functionName: session_impl::is_listening
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool session_impl::is_listening() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_alert_mask
      Src: /src/libtorrent/src/session_impl.cpp:6264,1
    - Dst: set_notify_function
      Src: /src/libtorrent/src/session_impl.cpp:6265,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:6272,1
    - Dst: panic
      Src: /src/libtorrent/src/session_impl.cpp:6275,1
    - Dst: session_impl::abort
      Src: /src/libtorrent/src/session_impl.cpp:6276,1
    - Dst: clear
      Src: /src/libtorrent/src/session_impl.cpp:6278,1
    - Dst: session_impl::abort_stage2
      Src: /src/libtorrent/src/session_impl.cpp:6282,1
    - Dst: fopen
      Src: /src/libtorrent/src/session_impl.cpp:6285,1
    - Dst: min_time
      Src: /src/libtorrent/src/session_impl.cpp:6288,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:6289,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:6292,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_impl.cpp:6293,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_impl.cpp:6297,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/session_impl.cpp:6298,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/session_impl.cpp:6299,1
    - Dst: fclose
      Src: /src/libtorrent/src/session_impl.cpp:6306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6309
      start: 6260
    functionDepth: 1
    functionLinenumber: 6260
    functionLinenumberEnd: 6309
    functionName: session_impl::~session_impl()
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - set_alert_mask
    - session_impl::abort_stage2
    - total_microseconds
    - set_notify_function
    - empty
    - std::fprintf
    - panic
    - clear
    - min_time
    - fopen
    - session_impl::abort
    - fclose
    linkageType: ''
    returnType: void
    signature: void session_impl::~session_impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6315
      start: 6312
    functionDepth: 0
    functionLinenumber: 6312
    functionLinenumberEnd: 6315
    functionName: session_impl::max_connections
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int session_impl::max_connections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6320
      start: 6317
    functionDepth: 0
    functionLinenumber: 6317
    functionLinenumberEnd: 6320
    functionName: session_impl::max_uploads
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int session_impl::max_uploads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_impl.cpp:6326,1
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:6327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes_per_second
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6328
      start: 6322
    functionDepth: 4
    functionLinenumber: 6322
    functionLinenumberEnd: 6328
    functionName: session_impl::set_local_download_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - session_impl::apply_settings_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_impl::set_local_download_rate_limit(int bytes_per_second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_impl.cpp:6334,1
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:6335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes_per_second
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6336
      start: 6330
    functionDepth: 4
    functionLinenumber: 6330
    functionLinenumberEnd: 6336
    functionName: session_impl::set_local_upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - session_impl::apply_settings_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_impl::set_local_upload_rate_limit(int bytes_per_second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_impl.cpp:6342,1
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:6343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes_per_second
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6344
      start: 6338
    functionDepth: 4
    functionLinenumber: 6338
    functionLinenumberEnd: 6344
    functionName: session_impl::set_download_rate_limit_depr
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - session_impl::apply_settings_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_impl::set_download_rate_limit_depr(int bytes_per_second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_impl.cpp:6350,1
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:6351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes_per_second
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6352
      start: 6346
    functionDepth: 4
    functionLinenumber: 6346
    functionLinenumberEnd: 6352
    functionName: session_impl::set_upload_rate_limit_depr
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - session_impl::apply_settings_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_impl::set_upload_rate_limit_depr(int bytes_per_second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_impl.cpp:6358,1
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:6359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6360
      start: 6354
    functionDepth: 4
    functionLinenumber: 6354
    functionLinenumberEnd: 6360
    functionName: session_impl::set_max_connections
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - session_impl::apply_settings_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_impl::set_max_connections(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/src/session_impl.cpp:6366,1
    - Dst: session_impl::apply_settings_pack_impl
      Src: /src/libtorrent/src/session_impl.cpp:6367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6362
    functionDepth: 4
    functionLinenumber: 6362
    functionLinenumberEnd: 6368
    functionName: session_impl::set_max_uploads
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - settings_pack::set_int
    - session_impl::apply_settings_pack_impl
    linkageType: ''
    returnType: void
    signature: void session_impl::set_max_uploads(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::upload_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:6372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6373
      start: 6370
    functionDepth: 4
    functionLinenumber: 6370
    functionLinenumberEnd: 6373
    functionName: session_impl::local_upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::upload_rate_limit
    linkageType: ''
    returnType: int
    signature: int session_impl::local_upload_rate_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::download_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:6377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6378
      start: 6375
    functionDepth: 4
    functionLinenumber: 6375
    functionLinenumberEnd: 6378
    functionName: session_impl::local_download_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::download_rate_limit
    linkageType: ''
    returnType: int
    signature: int session_impl::local_download_rate_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::upload_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:6382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6383
      start: 6380
    functionDepth: 4
    functionLinenumber: 6380
    functionLinenumberEnd: 6383
    functionName: session_impl::upload_rate_limit_depr
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::upload_rate_limit
    linkageType: ''
    returnType: int
    signature: int session_impl::upload_rate_limit_depr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::download_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:6387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6388
      start: 6385
    functionDepth: 4
    functionLinenumber: 6385
    functionLinenumberEnd: 6388
    functionName: session_impl::download_rate_limit_depr
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::download_rate_limit
    linkageType: ''
    returnType: int
    signature: int session_impl::download_rate_limit_depr() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6396,1
    - Dst: set_traffic_class
      Src: /src/libtorrent/src/session_impl.cpp:6402,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:6405,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:6407,1
    - Dst: sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:6408,1
    - Dst: sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:6409,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/session_impl.cpp:6409,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:6409,1
    - Dst: set_traffic_class
      Src: /src/libtorrent/src/session_impl.cpp:6417,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:6420,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:6422,1
    - Dst: udp_sock::sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:6423,1
    - Dst: udp_sock::sock::local_port
      Src: /src/libtorrent/src/session_impl.cpp:6424,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/session_impl.cpp:6425,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:6425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6430
      start: 6394
    functionDepth: 1
    functionLinenumber: 6394
    functionLinenumberEnd: 6430
    functionName: session_impl::update_peer_dscp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::should_log
    - udp_sock::sock::local_port
    - std::uint32_t
    - get_int
    - error_code::message
    - sock::local_endpoint
    - set_traffic_class
    - udp_sock::sock::local_endpoint
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::update_peer_dscp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/libtorrent/src/session_impl.cpp:6435,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/session_impl.cpp:6436,1
    - Dst: std::find
      Src: /src/libtorrent/src/session_impl.cpp:6437,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/session_impl.cpp:6437,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/session_impl.cpp:6438,1
    - Dst: set_str
      Src: /src/libtorrent/src/session_impl.cpp:6440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6441
      start: 6432
    functionDepth: 0
    functionLinenumber: 6432
    functionLinenumberEnd: 6441
    functionName: session_impl::update_user_agent
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - std::find
    - std::string::begin
    - std::string::end
    - set_str
    linkageType: ''
    returnType: void
    signature: void session_impl::update_user_agent()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::get_int_setting
      Src: /src/libtorrent/src/session_impl.cpp:6445,1
    - Dst: set_value
      Src: /src/libtorrent/src/session_impl.cpp:6447,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6450,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6453,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6454,1
    - Dst: torrent_handle
      Src: /src/libtorrent/src/session_impl.cpp:6454,1
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:6458,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:6461,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/session_impl.cpp:6467,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/session_impl.cpp:6468,1
    - Dst: is_choked
      Src: /src/libtorrent/src/session_impl.cpp:6469,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/session_impl.cpp:6470,1
    - Dst: ignore_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:6471,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/session_impl.cpp:6475,1
    - Dst: auto::unchoke_peer
      Src: /src/libtorrent/src/session_impl.cpp:6476,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6484
      start: 6443
    functionDepth: 2
    functionLinenumber: 6443
    functionLinenumberEnd: 6484
    functionName: session_impl::update_unchoke_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ignore_unchoke_slots
    - emplace_alert
    - associated_torrent
    - session_impl::get_int_setting
    - is_disconnecting
    - torrent_handle
    - libtorrent::aux::max
    - is_connecting
    - set_value
    - get_int
    - is_choked
    - in_handshake
    - should_post
    - settings
    - auto::unchoke_peer
    linkageType: ''
    returnType: void
    signature: void session_impl::update_unchoke_limit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6488,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6490
      start: 6486
    functionDepth: 0
    functionLinenumber: 6486
    functionLinenumberEnd: 6490
    functionName: session_impl::update_connection_speed
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - set_int
    linkageType: ''
    returnType: void
    signature: void session_impl::update_connection_speed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::set_alert_queue_size_limit
      Src: /src/libtorrent/src/session_impl.cpp:6494,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6495
      start: 6492
    functionDepth: 1
    functionLinenumber: 6492
    functionLinenumberEnd: 6495
    functionName: session_impl::update_alert_queue_size
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::set_alert_queue_size_limit
    - get_int
    linkageType: ''
    returnType: void
    signature: void session_impl::update_alert_queue_size()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: settings
      Src: /src/libtorrent/src/session_impl.cpp:6499,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6503
      start: 6497
    functionDepth: 1
    functionLinenumber: 6497
    functionLinenumberEnd: 6503
    functionName: session_impl::preemptive_unchoke
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - settings
    linkageType: ''
    returnType: bool
    signature: bool session_impl::preemptive_unchoke() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6508,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:6508,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6510,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:6510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6513
      start: 6505
    functionDepth: 1
    functionLinenumber: 6505
    functionLinenumberEnd: 6513
    functionName: session_impl::update_dht_upload_rate_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - get_int
    - set_int
    - libtorrent::aux::max
    linkageType: ''
    returnType: void
    signature: void session_impl::update_dht_upload_rate_limit()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6517,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6518,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6519,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6521
      start: 6515
    functionDepth: 0
    functionLinenumber: 6515
    functionLinenumberEnd: 6521
    functionName: session_impl::update_disk_threads
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - set_int
    linkageType: ''
    returnType: void
    signature: void session_impl::update_disk_threads()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:6526,1
    - Dst: type
      Src: /src/libtorrent/src/session_impl.cpp:6529,1
    - Dst: ignore_stats
      Src: /src/libtorrent/src/session_impl.cpp:6532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6534
      start: 6523
    functionDepth: 1
    functionLinenumber: 6523
    functionLinenumberEnd: 6534
    functionName: session_impl::update_report_web_seed_downloads
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - ignore_stats
    - get_bool
    - type
    linkageType: ''
    returnType: void
    signature: void session_impl::update_report_web_seed_downloads()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/session_impl.cpp:6542,1
    - Dst: seconds
      Src: /src/libtorrent/src/session_impl.cpp:6542,1
    - Dst: post
      Src: /src/libtorrent/src/session_impl.cpp:6550,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:6550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6551
      start: 6536
    functionDepth: 2
    functionLinenumber: 6536
    functionLinenumberEnd: 6551
    functionName: session_impl::trigger_auto_manage
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 3
    functionsReached:
    - post
    - time_now
    - seconds
    - wrap
    linkageType: ''
    returnType: void
    signature: void session_impl::trigger_auto_manage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:6555,1
    - Dst: session_impl::recalculate_auto_managed_torrents
      Src: /src/libtorrent/src/session_impl.cpp:6564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6566
      start: 6553
    functionDepth: 4
    functionLinenumber: 6553
    functionLinenumberEnd: 6566
    functionName: session_impl::on_trigger_auto_manage
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - session_impl::recalculate_auto_managed_torrents
    linkageType: ''
    returnType: void
    signature: void session_impl::on_trigger_auto_manage()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_socket_buffer_size
      Src: /src/libtorrent/src/session_impl.cpp:6573,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:6575,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:6577,1
    - Dst: udp_sock::sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:6578,1
    - Dst: udp_sock::sock::local_port
      Src: /src/libtorrent/src/session_impl.cpp:6579,1
    - Dst: print_error
      Src: /src/libtorrent/src/session_impl.cpp:6579,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/session_impl.cpp:6582,1
    - Dst: set_socket_buffer_size
      Src: /src/libtorrent/src/session_impl.cpp:6583,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:6585,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:6587,1
    - Dst: sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:6588,1
    - Dst: sock::local_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:6589,1
    - Dst: print_error
      Src: /src/libtorrent/src/session_impl.cpp:6589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6593
      start: 6568
    functionDepth: 2
    functionLinenumber: 6568
    functionLinenumberEnd: 6593
    functionName: session_impl::update_socket_buffer_size
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::should_log
    - udp_sock::sock::local_port
    - set_socket_buffer_size
    - error_code::clear
    - sock::local_endpoint
    - print_error
    - udp_sock::sock::local_endpoint
    - session_impl::session_log
    linkageType: ''
    returnType: void
    signature: void session_impl::update_socket_buffer_size()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:6601,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:6606,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:6611,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/session_impl.cpp:6616,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:6617,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6617,1
    - Dst: std::max
      Src: /src/libtorrent/src/session_impl.cpp:6618,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:6618,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:6620,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:6625,1
    - Dst: expires_after
      Src: /src/libtorrent/src/session_impl.cpp:6628,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/session_impl.cpp:6628,1
    - Dst: async_wait
      Src: /src/libtorrent/src/session_impl.cpp:6629,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:6630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6632
      start: 6595
    functionDepth: 1
    functionLinenumber: 6595
    functionLinenumberEnd: 6632
    functionName: session_impl::update_dht_announce_interval
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - wrap
    - async_wait
    - empty
    - expires_after
    - std::min
    - get_int
    - milliseconds
    - std::max
    - session_impl::session_log
    - size
    linkageType: ''
    returnType: void
    signature: void session_impl::update_dht_announce_interval()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6637,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6638,1
    - Dst: session_impl::set_download_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:6639,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6641
      start: 6635
    functionDepth: 4
    functionLinenumber: 6635
    functionLinenumberEnd: 6641
    functionName: session_impl::update_local_download_rate
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - set_int
    - session_impl::set_download_rate_limit
    linkageType: ''
    returnType: void
    signature: void session_impl::update_local_download_rate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6645,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6646,1
    - Dst: session_impl::set_upload_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:6647,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6649
      start: 6643
    functionDepth: 4
    functionLinenumber: 6643
    functionLinenumberEnd: 6649
    functionName: session_impl::update_local_upload_rate
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::set_upload_rate_limit
    - get_int
    - set_int
    linkageType: ''
    returnType: void
    signature: void session_impl::update_local_upload_rate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6654,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6655,1
    - Dst: session_impl::set_download_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:6656,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6658
      start: 6652
    functionDepth: 4
    functionLinenumber: 6652
    functionLinenumberEnd: 6658
    functionName: session_impl::update_download_rate
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - set_int
    - session_impl::set_download_rate_limit
    linkageType: ''
    returnType: void
    signature: void session_impl::update_download_rate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6662,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6663,1
    - Dst: session_impl::set_upload_rate_limit
      Src: /src/libtorrent/src/session_impl.cpp:6664,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6666
      start: 6660
    functionDepth: 4
    functionLinenumber: 6660
    functionLinenumberEnd: 6666
    functionName: session_impl::update_upload_rate
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::set_upload_rate_limit
    - get_int
    - set_int
    linkageType: ''
    returnType: void
    signature: void session_impl::update_upload_rate()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6670,1
    - Dst: max_open_files
      Src: /src/libtorrent/src/session_impl.cpp:6672,1
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6674,1
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:6676,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6676,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:6677,1
    - Dst: num_connections
      Src: /src/libtorrent/src/session_impl.cpp:6682,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6682,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6685,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:6685,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6688,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:6688,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:6697,1
    - Dst: num_peers
      Src: /src/libtorrent/src/session_impl.cpp:6714,1
    - Dst: std::min
      Src: /src/libtorrent/src/session_impl.cpp:6725,1
    - Dst: disconnect_peers
      Src: /src/libtorrent/src/session_impl.cpp:6727,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6730
      start: 6668
    functionDepth: 1
    functionLinenumber: 6668
    functionLinenumberEnd: 6730
    functionName: session_impl::update_connections_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - empty
    - max_open_files
    - std::min
    - get_int
    - num_peers
    - num_connections
    - set_int
    - disconnect_peers
    - size
    linkageType: ''
    returnType: void
    signature: void session_impl::update_connections_limit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_alert_mask
      Src: /src/libtorrent/src/session_impl.cpp:6734,1
    - Dst: alert_category_t
      Src: /src/libtorrent/src/session_impl.cpp:6734,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/session_impl.cpp:6735,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:6735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6736
      start: 6732
    functionDepth: 0
    functionLinenumber: 6732
    functionLinenumberEnd: 6736
    functionName: session_impl::update_alert_mask
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - set_alert_mask
    - alert_category_t
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void session_impl::update_alert_mask()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:6741,1
    - Dst: set_verify_mode
      Src: /src/libtorrent/src/session_impl.cpp:6747,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:6750,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/session_impl.cpp:6750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6753
      start: 6738
    functionDepth: 1
    functionLinenumber: 6738
    functionLinenumberEnd: 6753
    functionName: session_impl::update_validate_https
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - error_code::message
    - set_verify_mode
    - session_impl::session_log
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_validate_https()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_all
      Src: /src/libtorrent/src/session_impl.cpp:6757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alerts
    argTypes:
    - std::vector<alert*>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6758
      start: 6755
    functionDepth: 0
    functionLinenumber: 6755
    functionLinenumberEnd: 6758
    functionName: session_impl::pop_alerts
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - get_all
    linkageType: ''
    returnType: void
    signature: void session_impl::pop_alerts(std::vector<alert*>* alerts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:6763,1
    - Dst: allow
      Src: /src/libtorrent/src/session_impl.cpp:6766,1
    - Dst: allow
      Src: /src/libtorrent/src/session_impl.cpp:6768,1
    - Dst: disallow
      Src: /src/libtorrent/src/session_impl.cpp:6774,1
    - Dst: disallow
      Src: /src/libtorrent/src/session_impl.cpp:6776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6779
      start: 6761
    functionDepth: 0
    functionLinenumber: 6761
    functionLinenumberEnd: 6779
    functionName: session_impl::update_rate_limit_utp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - allow
    - disallow
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_rate_limit_utp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::init_peer_class_filter
      Src: /src/libtorrent/src/session_impl.cpp:6783,1
    - Dst: get_bool
      Src: /src/libtorrent/src/session_impl.cpp:6784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6785
      start: 6781
    functionDepth: 2
    functionLinenumber: 6781
    functionLinenumberEnd: 6785
    functionName: session_impl::update_ignore_rate_limits_on_local_network
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::init_peer_class_filter
    - get_bool
    linkageType: ''
    returnType: void
    signature: void session_impl::update_ignore_rate_limits_on_local_network()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:6794,1
    - Dst: session_impl::pop_alerts
      Src: /src/libtorrent/src/session_impl.cpp:6796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6799
      start: 6789
    functionDepth: 1
    functionLinenumber: 6789
    functionLinenumberEnd: 6799
    functionName: session_impl::pop_alerts
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::pop_alerts
    - size
    linkageType: ''
    returnType: void
    signature: void session_impl::pop_alerts()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:6803,1
    - Dst: session_impl::pop_alerts
      Src: /src/libtorrent/src/session_impl.cpp:6805,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:6806,1
    - Dst: empty
      Src: /src/libtorrent/src/session_impl.cpp:6810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6815
      start: 6801
    functionDepth: 1
    functionLinenumber: 6801
    functionLinenumberEnd: 6815
    functionName: session_impl::pop_alert
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - session_impl::pop_alerts
    - empty
    - size
    linkageType: ''
    returnType: alert
    signature: alert * session_impl::pop_alert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::wait_for_alert
      Src: /src/libtorrent/src/session_impl.cpp:6821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_wait
    argTypes:
    - time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6822
      start: 6819
    functionDepth: 0
    functionLinenumber: 6819
    functionLinenumberEnd: 6822
    functionName: session_impl::wait_for_alert
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::wait_for_alert
    linkageType: ''
    returnType: alert
    signature: alert * session_impl::wait_for_alert(time_duration max_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_int
      Src: /src/libtorrent/src/session_impl.cpp:6827,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/session_impl.cpp:6828,1
    - Dst: session_impl::set_alert_queue_size_limit
      Src: /src/libtorrent/src/session_impl.cpp:6828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue_size_limit_
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6829
      start: 6825
    functionDepth: 1
    functionLinenumber: 6825
    functionLinenumberEnd: 6829
    functionName: session_impl::set_alert_queue_size_limit
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - session_impl::set_alert_queue_size_limit
    - set_int
    - std::size_t
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t session_impl::set_alert_queue_size_limit(std::size_t queue_size_limit_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_ip_notifier
      Src: /src/libtorrent/src/session_impl.cpp:6838,1
    - Dst: async_wait
      Src: /src/libtorrent/src/session_impl.cpp:6839,1
    - Dst: wrap
      Src: /src/libtorrent/src/session_impl.cpp:6840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6841
      start: 6832
    functionDepth: 0
    functionLinenumber: 6832
    functionLinenumberEnd: 6841
    functionName: session_impl::start_ip_notifier
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - create_ip_notifier
    - async_wait
    - wrap
    linkageType: ''
    returnType: void
    signature: void session_impl::start_ip_notifier()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<lsd>
      Src: /src/libtorrent/src/session_impl.cpp:6853,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:6853,1
    - Dst: lsd::start
      Src: /src/libtorrent/src/session_impl.cpp:6856,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:6859,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:6860,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:6860,1
    - Dst: lsd::reset
      Src: /src/libtorrent/src/session_impl.cpp:6861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6864
      start: 6843
    functionDepth: 0
    functionLinenumber: 6843
    functionLinenumberEnd: 6864
    functionName: session_impl::start_lsd
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - emplace_alert
    - std::make_shared<lsd>
    - lsd::start
    - local_endpoint::address
    - should_post
    - lsd::reset
    linkageType: ''
    returnType: void
    signature: void session_impl::start_lsd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::start_natpmp
      Src: /src/libtorrent/src/session_impl.cpp:6871,1
    - Dst: session_impl::remap_ports
      Src: /src/libtorrent/src/session_impl.cpp:6872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6874
      start: 6866
    functionDepth: 2
    functionLinenumber: 6866
    functionLinenumberEnd: 6874
    functionName: session_impl::start_natpmp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 3
    functionsReached:
    - session_impl::start_natpmp
    - session_impl::remap_ports
    linkageType: ''
    returnType: void
    signature: void session_impl::start_natpmp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::start_upnp
      Src: /src/libtorrent/src/session_impl.cpp:6881,1
    - Dst: session_impl::remap_ports
      Src: /src/libtorrent/src/session_impl.cpp:6882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6884
      start: 6876
    functionDepth: 2
    functionLinenumber: 6876
    functionLinenumberEnd: 6884
    functionName: session_impl::start_upnp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 3
    functionsReached:
    - session_impl::start_upnp
    - session_impl::remap_ports
    linkageType: ''
    returnType: void
    signature: void session_impl::start_upnp()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/session_impl.cpp:6891,1
    - Dst: std::make_shared<upnp>
      Src: /src/libtorrent/src/session_impl.cpp:6905,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:6906,1
    - Dst: netmask::to_v4
      Src: /src/libtorrent/src/session_impl.cpp:6906,1
    - Dst: listen_socket_handle
      Src: /src/libtorrent/src/session_impl.cpp:6907,1
    - Dst: upnp_mapper::start
      Src: /src/libtorrent/src/session_impl.cpp:6908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::shared_ptr<aux::listen_socket_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6910
      start: 6886
    functionDepth: 0
    functionLinenumber: 6886
    functionLinenumberEnd: 6910
    functionName: session_impl::start_upnp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 3
    functionsReached:
    - is_v6
    - upnp_mapper::start
    - listen_socket_handle
    - local_endpoint::address
    - netmask::to_v4
    - std::make_shared<upnp>
    linkageType: ''
    returnType: void
    signature: void session_impl::start_upnp(std::shared_ptr<aux::listen_socket_t>
      const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:6919,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/src/session_impl.cpp:6919,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/session_impl.cpp:6920,1
    - Dst: upnp_mapper::add_mapping
      Src: /src/libtorrent/src/session_impl.cpp:6920,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/session_impl.cpp:6922,1
    - Dst: natpmp_mapper::add_mapping
      Src: /src/libtorrent/src/session_impl.cpp:6922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - t
    - external_port
    - local_port
    argTypes:
    - portmap_protocol
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6926
      start: 6912
    functionDepth: 0
    functionLinenumber: 6912
    functionLinenumberEnd: 6926
    functionName: session_impl::add_port_mapping
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - upnp_mapper::add_mapping
    - natpmp_mapper::add_mapping
    - local_endpoint::address
    - static_cast<std::uint16_t>
    linkageType: ''
    returnType: std::vector<port_mapping_t>
    signature: "std::vector<port_mapping_t> session_impl::add_port_mapping(portmap_protocol
      const t\n\t\t, int const external_port\n\t\t, int const local_port)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upnp_mapper::delete_mapping
      Src: /src/libtorrent/src/session_impl.cpp:6932,1
    - Dst: natpmp_mapper::delete_mapping
      Src: /src/libtorrent/src/session_impl.cpp:6933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6935
      start: 6928
    functionDepth: 0
    functionLinenumber: 6928
    functionLinenumberEnd: 6935
    functionName: session_impl::delete_port_mapping
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - upnp_mapper::delete_mapping
    - natpmp_mapper::delete_mapping
    linkageType: ''
    returnType: void
    signature: void session_impl::delete_port_mapping(port_mapping_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/session_impl.cpp:6941,1
    - Dst: reset
      Src: /src/libtorrent/src/session_impl.cpp:6942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6943
      start: 6937
    functionDepth: 0
    functionLinenumber: 6937
    functionLinenumberEnd: 6943
    functionName: session_impl::stop_ip_notifier
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - reset
    - cancel
    linkageType: ''
    returnType: void
    signature: void session_impl::stop_ip_notifier()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lsd::close
      Src: /src/libtorrent/src/session_impl.cpp:6950,1
    - Dst: lsd::reset
      Src: /src/libtorrent/src/session_impl.cpp:6951,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6953
      start: 6945
    functionDepth: 0
    functionLinenumber: 6945
    functionLinenumberEnd: 6953
    functionName: session_impl::stop_lsd
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - lsd::close
    - lsd::reset
    linkageType: ''
    returnType: void
    signature: void session_impl::stop_lsd()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen_port_mapping
      Src: /src/libtorrent/src/session_impl.cpp:6959,1
    - Dst: listen_port_mapping
      Src: /src/libtorrent/src/session_impl.cpp:6960,1
    - Dst: natpmp_mapper::close
      Src: /src/libtorrent/src/session_impl.cpp:6962,1
    - Dst: natpmp_mapper::reset
      Src: /src/libtorrent/src/session_impl.cpp:6963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6965
      start: 6955
    functionDepth: 0
    functionLinenumber: 6955
    functionLinenumberEnd: 6965
    functionName: session_impl::stop_natpmp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - natpmp_mapper::reset
    - listen_port_mapping
    - natpmp_mapper::close
    linkageType: ''
    returnType: void
    signature: void session_impl::stop_natpmp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen_port_mapping
      Src: /src/libtorrent/src/session_impl.cpp:6972,1
    - Dst: listen_port_mapping
      Src: /src/libtorrent/src/session_impl.cpp:6973,1
    - Dst: upnp_mapper::close
      Src: /src/libtorrent/src/session_impl.cpp:6974,1
    - Dst: upnp_mapper::reset
      Src: /src/libtorrent/src/session_impl.cpp:6975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6977
      start: 6967
    functionDepth: 0
    functionLinenumber: 6967
    functionLinenumberEnd: 6977
    functionName: session_impl::stop_upnp
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - upnp_mapper::close
    - listen_port_mapping
    - upnp_mapper::reset
    linkageType: ''
    returnType: void
    signature: void session_impl::stop_upnp()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: external_address::external_address
      Src: /src/libtorrent/src/session_impl.cpp:6986,1
    - Dst: address::is_v6
      Src: /src/libtorrent/src/session_impl.cpp:6987,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:6987,1
    - Dst: address::is_v6
      Src: /src/libtorrent/src/session_impl.cpp:6988,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:6989,1
    - Dst: is_local
      Src: /src/libtorrent/src/session_impl.cpp:6990,1
    - Dst: address::is_v6
      Src: /src/libtorrent/src/session_impl.cpp:6990,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:6990,1
    - Dst: is_local
      Src: /src/libtorrent/src/session_impl.cpp:6991,1
    - Dst: address::is_v6
      Src: /src/libtorrent/src/session_impl.cpp:6991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6995
      start: 6979
    functionDepth: 0
    functionLinenumber: 6979
    functionLinenumberEnd: 6995
    functionName: session_impl::external_address
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - is_local
    - local_endpoint::address
    - address::is_v6
    - external_address::external_address
    - address
    linkageType: ''
    returnType: external_ip
    signature: external_ip session_impl::external_address() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_sock::lock
      Src: /src/libtorrent/src/session_impl.cpp:7001,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7002,1
    - Dst: session_impl::set_external_address
      Src: /src/libtorrent/src/session_impl.cpp:7004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' iface'
    - ' ip'
    - ' source'
    argTypes:
    - aux::listen_socket_handle
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7005
      start: 6998
    functionDepth: 1
    functionLinenumber: 6998
    functionLinenumberEnd: 7005
    functionName: session_impl::set_external_address
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - m_sock::lock
    - session_impl::set_external_address
    linkageType: ''
    returnType: void
    signature: "void session_impl::set_external_address(aux::listen_socket_handle
      const& iface\n\t\t, address const& ip, address const& source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7009,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:7010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' ih'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7011
      start: 7007
    functionDepth: 0
    functionLinenumber: 7007
    functionLinenumberEnd: 7011
    functionName: session_impl::get_peers
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: void session_impl::get_peers(sha1_hash const& ih)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7016,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:7017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' ih'
    - ' addr'
    - port
    argTypes:
    - sha1_hash
    - address
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7018
      start: 7013
    functionDepth: 0
    functionLinenumber: 7013
    functionLinenumberEnd: 7018
    functionName: session_impl::announce
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: "void session_impl::announce(sha1_hash const& ih, address const& addr\n\t\t,
      int port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7023,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:7024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' target'
    - ' sent_target'
    - ' ep'
    argTypes:
    - sha1_hash
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7025
      start: 7020
    functionDepth: 0
    functionLinenumber: 7020
    functionLinenumberEnd: 7025
    functionName: session_impl::outgoing_get_peers
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: "void session_impl::outgoing_get_peers(sha1_hash const& target\n\t\t,
      sha1_hash const& sent_target, udp::endpoint const& ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7031
      start: 7028
    functionDepth: 0
    functionLinenumber: 7028
    functionLinenumberEnd: 7031
    functionName: session_impl::should_log
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 16
    functionsReached:
    - should_post
    linkageType: ''
    returnType: bool
    signature: bool session_impl::should_log(module_t) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7036,1
    - Dst: va_start
      Src: /src/libtorrent/src/session_impl.cpp:7039,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:7040,1
    - Dst: static_cast<dht_log_alert::dht_module_t>
      Src: /src/libtorrent/src/session_impl.cpp:7041,1
    - Dst: va_end
      Src: /src/libtorrent/src/session_impl.cpp:7042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - m
    - fmt
    argTypes:
    - module_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7043
      start: 7034
    functionDepth: 0
    functionLinenumber: 7034
    functionLinenumberEnd: 7043
    functionName: session_impl::log
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<dht_log_alert::dht_module_t>
    - emplace_alert
    - va_start
    - should_post
    - va_end
    linkageType: ''
    returnType: void
    signature: void session_impl::log(module_t m, char const* fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7048,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:7053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dir
    - pkt
    - ' node'
    argTypes:
    - message_direction_t
    - span<char const>
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7054
      start: 7045
    functionDepth: 0
    functionLinenumber: 7045
    functionLinenumberEnd: 7054
    functionName: session_impl::log_packet
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: "void session_impl::log_packet(message_direction_t dir, span<char const>
      pkt\n\t\t, udp::endpoint const& node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7059
      start: 7056
    functionDepth: 0
    functionLinenumber: 7056
    functionLinenumberEnd: 7059
    functionName: session_impl::should_log_portmap
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - should_post
    linkageType: ''
    returnType: bool
    signature: bool session_impl::should_log_portmap(portmap_transport) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:7064,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7065,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:7066,1
    - Dst: listen_socket_t*::local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:7067,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:7067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - transport
    - msg
    - ' ls'
    argTypes:
    - portmap_transport
    - char*
    - listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7068
      start: 7061
    functionDepth: 0
    functionLinenumber: 7061
    functionLinenumberEnd: 7068
    functionName: session_impl::log_portmap
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - should_post
    - listen_socket_t*::local_endpoint::address
    - get
    - address
    linkageType: ''
    returnType: void
    signature: "void session_impl::log_portmap(portmap_transport transport, char const*
      msg\n\t\t, listen_socket_handle const& ls) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7073
      start: 7070
    functionDepth: 0
    functionLinenumber: 7070
    functionLinenumberEnd: 7073
    functionName: session_impl::should_log_lsd
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - should_post
    linkageType: ''
    returnType: bool
    signature: bool session_impl::should_log_lsd() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7077,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:7078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7079
      start: 7075
    functionDepth: 0
    functionLinenumber: 7075
    functionLinenumberEnd: 7079
    functionName: session_impl::log_lsd
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: void session_impl::log_lsd(char const* msg) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_impl::on_dht_request
      Src: /src/libtorrent/src/session_impl.cpp:7088,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:7093,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:7094,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:7095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - query
    - ' request'
    - ' response'
    argTypes:
    - string_view
    - dht::msg
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7098
      start: 7082
    functionDepth: 1
    functionLinenumber: 7082
    functionLinenumberEnd: 7098
    functionName: session_impl::on_dht_request
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - session_impl::on_dht_request
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: "bool session_impl::on_dht_request(string_view query\n\t\t, dht::msg
      const& request, entry& response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/session_impl.cpp:7104,1
    - Dst: begin
      Src: /src/libtorrent/src/session_impl.cpp:7104,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:7104,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/src/session_impl.cpp:7106,1
    - Dst: address
      Src: /src/libtorrent/src/session_impl.cpp:7106,1
    - Dst: end
      Src: /src/libtorrent/src/session_impl.cpp:7108,1
    - Dst: session_impl::set_external_address
      Src: /src/libtorrent/src/session_impl.cpp:7109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' local_endpoint'
    - ' ip'
    - source_type
    - ' source'
    argTypes:
    - tcp::endpoint
    - address
    - ip_source_t
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7110
      start: 7100
    functionDepth: 0
    functionLinenumber: 7100
    functionLinenumberEnd: 7110
    functionName: session_impl::set_external_address
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - session_impl::set_external_address
    - begin
    - end
    - local_endpoint::address
    - address
    - std::find_if
    linkageType: ''
    returnType: void
    signature: "void session_impl::set_external_address(\n\t\ttcp::endpoint const&
      local_endpoint, address const& ip\n\t\t, ip_source_t const source_type, address
      const& source)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: external_address::cast_vote
      Src: /src/libtorrent/src/session_impl.cpp:7115,1
    - Dst: session_impl::should_log
      Src: /src/libtorrent/src/session_impl.cpp:7118,1
    - Dst: session_impl::session_log
      Src: /src/libtorrent/src/session_impl.cpp:7120,1
    - Dst: device::empty
      Src: /src/libtorrent/src/session_impl.cpp:7121,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/session_impl.cpp:7121,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/session_impl.cpp:7121,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7122,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/session_impl.cpp:7123,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7124,1
    - Dst: should_post
      Src: /src/libtorrent/src/session_impl.cpp:7128,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/session_impl.cpp:7129,1
    - Dst: new_external_ip
      Src: /src/libtorrent/src/session_impl.cpp:7133,1
    - Dst: update_node_id
      Src: /src/libtorrent/src/session_impl.cpp:7140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - ' sock'
    - ' ip'
    - source_type
    - ' source'
    argTypes:
    - std::shared_ptr<listen_socket_t>
    - address
    - ip_source_t
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7142
      start: 7112
    functionDepth: 2
    functionLinenumber: 7112
    functionLinenumberEnd: 7142
    functionName: session_impl::set_external_address
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 2
    functionsReached:
    - session_impl::should_log
    - external_address::cast_vote
    - print_address
    - emplace_alert
    - new_external_ip
    - print_endpoint
    - device::c_str
    - static_cast<std::uint8_t>
    - should_post
    - session_impl::session_log
    - update_node_id
    - device::empty
    linkageType: ''
    returnType: void
    signature: "void session_impl::set_external_address(std::shared_ptr<listen_socket_t>
      const& sock\n\t\t, address const& ip, ip_source_t const source_type, address
      const& source)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7147,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/session_impl.cpp:7147,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:7149,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:7150,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7151,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/session_impl.cpp:7151,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:7155,1
    - Dst: end_index
      Src: /src/libtorrent/src/session_impl.cpp:7158,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7163,1
    - Dst: in_list
      Src: /src/libtorrent/src/session_impl.cpp:7163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7169,1
    - Dst: queue_position
      Src: /src/libtorrent/src/session_impl.cpp:7169,1
    - Dst: aux::array::fill
      Src: /src/libtorrent/src/session_impl.cpp:7177,1
    - Dst: want_peers_download
      Src: /src/libtorrent/src/session_impl.cpp:7189,1
    - Dst: want_peers_finished
      Src: /src/libtorrent/src/session_impl.cpp:7190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7191,1
    - Dst: want_peers_download
      Src: /src/libtorrent/src/session_impl.cpp:7191,1
    - Dst: want_peers_finished
      Src: /src/libtorrent/src/session_impl.cpp:7191,1
    - Dst: current_stats_state
      Src: /src/libtorrent/src/session_impl.cpp:7193,1
    - Dst: queue_position
      Src: /src/libtorrent/src/session_impl.cpp:7199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7202,1
    - Dst: std::unordered_set::insert
      Src: /src/libtorrent/src/session_impl.cpp:7208,1
    - Dst: queue_position
      Src: /src/libtorrent/src/session_impl.cpp:7208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7215,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7219,1
    - Dst: std::unordered_set::size
      Src: /src/libtorrent/src/session_impl.cpp:7219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7221,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:7221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7222,1
    - Dst: size
      Src: /src/libtorrent/src/session_impl.cpp:7222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7232,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/session_impl.cpp:7233,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/session_impl.cpp:7235,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7236,1
    - Dst: std::unordered_set::find
      Src: /src/libtorrent/src/session_impl.cpp:7236,1
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:7236,1
    - Dst: std::unordered_set::end
      Src: /src/libtorrent/src/session_impl.cpp:7236,1
    - Dst: std::unordered_set::insert
      Src: /src/libtorrent/src/session_impl.cpp:7237,1
    - Dst: get
      Src: /src/libtorrent/src/session_impl.cpp:7237,1
    - Dst: ignore_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:7242,1
    - Dst: is_choked
      Src: /src/libtorrent/src/session_impl.cpp:7244,1
    - Dst: is_choked
      Src: /src/libtorrent/src/session_impl.cpp:7247,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:7253,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:7254,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7257,1
    - Dst: is_choked
      Src: /src/libtorrent/src/session_impl.cpp:7257,1
    - Dst: ignore_unchoke_slots
      Src: /src/libtorrent/src/session_impl.cpp:7263,1
    - Dst: is_choked
      Src: /src/libtorrent/src/session_impl.cpp:7265,1
    - Dst: is_choked
      Src: /src/libtorrent/src/session_impl.cpp:7268,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:7274,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/session_impl.cpp:7275,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7278,1
    - Dst: is_choked
      Src: /src/libtorrent/src/session_impl.cpp:7278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7282,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7284,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:7287,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7289,1
    - Dst: get_int
      Src: /src/libtorrent/src/session_impl.cpp:7289,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/session_impl.cpp:7298,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/session_impl.cpp:7299,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/session_impl.cpp:7300,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/session_impl.cpp:7304,1
    - Dst: debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7314,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:7314,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:7322,1
    - Dst: debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7323,1
    - Dst: interval::count
      Src: /src/libtorrent/src/session_impl.cpp:7328,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7329,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7330,1
    - Dst: debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7334,1
    - Dst: hostname::c_str
      Src: /src/libtorrent/src/session_impl.cpp:7334,1
    - Dst: pid::is_all_zeros
      Src: /src/libtorrent/src/session_impl.cpp:7335,1
    - Dst: to_hex
      Src: /src/libtorrent/src/session_impl.cpp:7335,1
    - Dst: debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7339,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7339,1
    - Dst: address_v4
      Src: /src/libtorrent/src/session_impl.cpp:7339,1
    - Dst: debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7343,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7343,1
    - Dst: address_v6
      Src: /src/libtorrent/src/session_impl.cpp:7343,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:7351,1
    - Dst: debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7352,1
    - Dst: operation_name
      Src: /src/libtorrent/src/session_impl.cpp:7353,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:7353,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:7353,1
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:7358,1
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:7363,1
    - Dst: va_start
      Src: /src/libtorrent/src/session_impl.cpp:7366,1
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:7367,1
    - Dst: va_end
      Src: /src/libtorrent/src/session_impl.cpp:7368,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7372
      start: 7145
    functionDepth: 1
    functionLinenumber: 7145
    functionLinenumberEnd: 7372
    functionName: session_impl::check_invariant
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 1
    functionsReached:
    - ignore_unchoke_slots
    - std::unordered_set::find
    - queue_position
    - associated_torrent
    - alerts
    - interval::count
    - is_single_thread
    - to_hex
    - message
    - std::unordered_set::end
    - get_int
    - current_stats_state
    - std::unordered_set::size
    - va_end
    - want_peers_finished
    - debug_log
    - operation_name
    - print_address
    - TORRENT_ASSERT_VAL
    - aux::array::fill
    - is_disconnecting
    - libtorrent::aux::max
    - hostname::c_str
    - TORRENT_ASSERT
    - is_choked
    - end_index
    - address_v4
    - std::unordered_set::insert
    - size
    - TORRENT_UNUSED
    - pid::is_all_zeros
    - address_v6
    - c_str
    - va_start
    - want_peers_download
    - peer_info_struct
    - in_list
    - get
    linkageType: ''
    returnType: void
    signature: void session_impl::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - session_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7310
      start: 7310
    functionDepth: 0
    functionLinenumber: 7310
    functionLinenumberEnd: 7310
    functionName: tracker_logger::tracker_logger
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_logger::tracker_logger(session_interface& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracker_logger::debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7314,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:7314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7315
      start: 7311
    functionDepth: 1
    functionLinenumber: 7311
    functionLinenumberEnd: 7315
    functionName: tracker_logger::tracker_warning
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - tracker_logger::debug_log
    - c_str
    linkageType: ''
    returnType: void
    signature: "void tracker_logger::tracker_warning(tracker_request const&\n\t\t\t,
      std::string const& str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:7322,1
    - Dst: tracker_logger::debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7323,1
    - Dst: interval::count
      Src: /src/libtorrent/src/session_impl.cpp:7328,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7329,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7330,1
    - Dst: tracker_logger::debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7334,1
    - Dst: hostname::c_str
      Src: /src/libtorrent/src/session_impl.cpp:7334,1
    - Dst: pid::is_all_zeros
      Src: /src/libtorrent/src/session_impl.cpp:7335,1
    - Dst: to_hex
      Src: /src/libtorrent/src/session_impl.cpp:7335,1
    - Dst: tracker_logger::debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7339,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7339,1
    - Dst: address_v4
      Src: /src/libtorrent/src/session_impl.cpp:7339,1
    - Dst: tracker_logger::debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7343,1
    - Dst: print_address
      Src: /src/libtorrent/src/session_impl.cpp:7343,1
    - Dst: address_v6
      Src: /src/libtorrent/src/session_impl.cpp:7343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ' tracker_ip'
    - ' tracker_ips'
    - ' resp'
    argTypes:
    - libtorrent::address
    - std::list<address>
    - struct tracker_response
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7345
      start: 7317
    functionDepth: 1
    functionLinenumber: 7317
    functionLinenumberEnd: 7345
    functionName: tracker_logger::tracker_response
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - print_address
    - address_v6
    - to_hex
    - pid::is_all_zeros
    - hostname::c_str
    - tracker_logger::debug_log
    - address_v4
    - TORRENT_UNUSED
    - interval::count
    linkageType: ''
    returnType: void
    signature: "void tracker_logger::tracker_response(tracker_request const&\n\t\t\t,
      libtorrent::address const& tracker_ip\n\t\t\t, std::list<address> const& tracker_ips\n\t\t\t,
      struct tracker_response const& resp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/session_impl.cpp:7351,1
    - Dst: tracker_logger::debug_log
      Src: /src/libtorrent/src/session_impl.cpp:7352,1
    - Dst: operation_name
      Src: /src/libtorrent/src/session_impl.cpp:7353,1
    - Dst: message
      Src: /src/libtorrent/src/session_impl.cpp:7353,1
    - Dst: c_str
      Src: /src/libtorrent/src/session_impl.cpp:7353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' ec'
    - op
    - ' str'
    - retry_interval
    argTypes:
    - error_code
    - operation_t
    - std::string
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7354
      start: 7347
    functionDepth: 1
    functionLinenumber: 7347
    functionLinenumberEnd: 7354
    functionName: tracker_logger::tracker_request_error
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - message
    - tracker_logger::debug_log
    - operation_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void tracker_logger::tracker_request_error(tracker_request const&\n\t\t\t,
      error_code const& ec, operation_t const op, std::string const& str\n\t\t\t,
      seconds32 const retry_interval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:7358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7359
      start: 7356
    functionDepth: 0
    functionLinenumber: 7356
    functionLinenumberEnd: 7359
    functionName: tracker_logger::should_log
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 0
    functionsReached:
    - alerts
    linkageType: ''
    returnType: bool
    signature: bool tracker_logger::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:7363,1
    - Dst: va_start
      Src: /src/libtorrent/src/session_impl.cpp:7366,1
    - Dst: alerts
      Src: /src/libtorrent/src/session_impl.cpp:7367,1
    - Dst: va_end
      Src: /src/libtorrent/src/session_impl.cpp:7368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7370
      start: 7361
    functionDepth: 0
    functionLinenumber: 7361
    functionLinenumberEnd: 7370
    functionName: tracker_logger::debug_log
    functionSourceFile: /src/libtorrent/src/session_impl.cpp
    functionUses: 3
    functionsReached:
    - va_start
    - alerts
    - va_end
    linkageType: ''
    returnType: void
    signature: void tracker_logger::debug_log(const char* fmt, ...) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:41,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:41,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:42,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:42,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bloom_filter.cpp:43,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bloom_filter.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k
    - bits
    - len
    argTypes:
    - std::uint8_t*
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: libtorrent::has_bits
    functionSourceFile: /src/libtorrent/src/bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint32_t>
    - std::uint32_t
    linkageType: ''
    returnType: bool
    signature: bool has_bits(std::uint8_t const* k, std::uint8_t const* bits, int
      const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:51,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:51,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:52,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:52,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bloom_filter.cpp:53,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bloom_filter.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - k
    - bits
    - len
    argTypes:
    - std::uint8_t*
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: libtorrent::set_bits
    functionSourceFile: /src/libtorrent/src/bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint32_t>
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void set_bits(std::uint8_t const* k, std::uint8_t* bits, int const
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bits
    - len
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: libtorrent::count_zero_bits
    functionSourceFile: /src/libtorrent/src/bloom_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_zero_bits(std::uint8_t const* bits, int const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:41,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:41,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:42,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:42,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bloom_filter.cpp:43,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bloom_filter.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k
    - bits
    - len
    argTypes:
    - std::uint8_t*
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: libtorrent::has_bits
    functionSourceFile: /src/libtorrent/src/bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint32_t>
    - std::uint32_t
    linkageType: ''
    returnType: bool
    signature: bool has_bits(std::uint8_t const* k, std::uint8_t const* bits, int
      const len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:51,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:51,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:52,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/bloom_filter.cpp:52,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bloom_filter.cpp:53,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/bloom_filter.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - k
    - bits
    - len
    argTypes:
    - std::uint8_t*
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: libtorrent::set_bits
    functionSourceFile: /src/libtorrent/src/bloom_filter.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::uint32_t>
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void set_bits(std::uint8_t const* k, std::uint8_t* bits, int const
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bits
    - len
    argTypes:
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: libtorrent::count_zero_bits
    functionSourceFile: /src/libtorrent/src/bloom_filter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_zero_bits(std::uint8_t const* bits, int const len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::settings_updated
      Src: /src/libtorrent/src/posix_disk_io.cpp:70,1
    - Dst: set_settings
      Src: /src/libtorrent/src/posix_disk_io.cpp:75,1
    - Dst: new_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:83,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:83,1
    - Dst: std::make_unique<posix_storage>
      Src: /src/libtorrent/src/posix_disk_io.cpp:84,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:86,1
    - Dst: libtorrent::storage_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:87,1
    - Dst: libtorrent::reset
      Src: /src/libtorrent/src/posix_disk_io.cpp:92,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/src/posix_disk_io.cpp:93,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:102,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:102,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:112,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:114,1
    - Dst: read
      Src: /src/libtorrent/src/posix_disk_io.cpp:116,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:120,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:120,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:122,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:123,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:124,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:125,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:129,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:129,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/posix_disk_io.cpp:137,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:139,1
    - Dst: write
      Src: /src/libtorrent/src/posix_disk_io.cpp:142,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:146,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:146,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:148,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:149,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:150,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:162,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/posix_disk_io.cpp:165,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:167,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:167,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:178,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:180,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:181,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_disk_io.cpp:185,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/posix_disk_io.cpp:185,1
    - Dst: std::max
      Src: /src/libtorrent/src/posix_disk_io.cpp:188,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:193,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:194,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:196,1
    - Dst: std::max
      Src: /src/libtorrent/src/posix_disk_io.cpp:196,1
    - Dst: posix_storage*::read
      Src: /src/libtorrent/src/posix_disk_io.cpp:197,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: hasher256
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/posix_disk_io.cpp:206,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/posix_disk_io.cpp:206,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:210,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:210,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:212,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:213,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:214,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:215,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:216,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:225,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:227,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:227,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:237,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:239,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:241,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:244,1
    - Dst: posix_storage*::read
      Src: /src/libtorrent/src/posix_disk_io.cpp:245,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/posix_disk_io.cpp:247,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:247,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/posix_disk_io.cpp:249,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:253,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:253,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:255,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:256,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:257,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:258,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:259,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:270,1
    - Dst: std::tie
      Src: /src/libtorrent/src/posix_disk_io.cpp:273,1
    - Dst: posix_storage*::move_storage
      Src: /src/libtorrent/src/posix_disk_io.cpp:273,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:279,1
    - Dst: posix_storage*::release_files
      Src: /src/libtorrent/src/posix_disk_io.cpp:280,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:282,1
    - Dst: handler
      Src: /src/libtorrent/src/posix_disk_io.cpp:282,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:289,1
    - Dst: posix_storage*::delete_files
      Src: /src/libtorrent/src/posix_disk_io.cpp:290,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:299,1
    - Dst: posix_storage*::initialize
      Src: /src/libtorrent/src/posix_disk_io.cpp:307,1
    - Dst: posix_storage*::verify_resume_data
      Src: /src/libtorrent/src/posix_disk_io.cpp:310,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:311,1
    - Dst: get_bool
      Src: /src/libtorrent/src/posix_disk_io.cpp:313,1
    - Dst: libtorrent::aux::contains_resume_data
      Src: /src/libtorrent/src/posix_disk_io.cpp:316,1
    - Dst: posix_storage*::has_any_file
      Src: /src/libtorrent/src/posix_disk_io.cpp:321,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:341,1
    - Dst: posix_storage*::rename_file
      Src: /src/libtorrent/src/posix_disk_io.cpp:343,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:345,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:345,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:351,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:351,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:359,1
    - Dst: posix_storage*::set_file_priority
      Src: /src/libtorrent/src/posix_disk_io.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:363,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:363,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 149
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 395
    functionName: libtorrent::disk_interface
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - libtorrent::settings_updated
    - write
    - hasher256::final
    - libtorrent::empty
    - std::max
    - get_bool
    - hasher256::update
    - libtorrent::move
    - posix_storage*::initialize
    - hasher::final
    - libtorrent::aux::contains_resume_data
    - allocate_buffer
    - libtorrent::emplace_back
    - span::first
    - hasher256
    - inc_stats_counter
    - sha1_hash
    - posix_storage*::verify_resume_data
    - posix_storage*::has_any_file
    - disk_buffer_holder::data
    - libtorrent::storage_holder
    - time_now
    - libtorrent::min
    - posix_storage*::files
    - libtorrent::size
    - posix_storage*::delete_files
    - set_settings
    - TORRENT_ASSERT
    - posix_storage*::read
    - std::make_unique<posix_storage>
    - handler
    - libtorrent::disk_buffer_holder
    - end_index
    - libtorrent::get
    - posix_storage*::release_files
    - const_cast<char*>
    - posix_storage*::rename_file
    - std::tie
    - post
    - read
    - libtorrent::total_microseconds
    - libtorrent::add
    - hasher::update
    - posix_storage*::set_file_priority
    - posix_storage*::move_storage
    - libtorrent::reset
    - new_index
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT disk_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::settings_updated
      Src: /src/libtorrent/src/posix_disk_io.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: libtorrent::posix_disk_io
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::settings_updated
    linkageType: ''
    returnType: void
    signature: void posix_disk_io(io_context& ios, settings_interface const& sett,
      counters& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_settings
      Src: /src/libtorrent/src/posix_disk_io.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: libtorrent::settings_updated
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 2
    functionsReached:
    - set_settings
    linkageType: ''
    returnType: void
    signature: void settings_updated() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:83,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:83,1
    - Dst: std::make_unique<posix_storage>
      Src: /src/libtorrent/src/posix_disk_io.cpp:84,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:86,1
    - Dst: libtorrent::storage_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: libtorrent::new_torrent
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::emplace_back
    - std::make_unique<posix_storage>
    - libtorrent::move
    - new_index
    - end_index
    - libtorrent::storage_holder
    linkageType: ''
    returnType: storage_holder
    signature: "storage_holder new_torrent(storage_params const& params\n\t\t\t, std::shared_ptr<void>
      const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reset
      Src: /src/libtorrent/src/posix_disk_io.cpp:92,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/src/posix_disk_io.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: libtorrent::remove_torrent
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::add
    - libtorrent::reset
    linkageType: ''
    returnType: void
    signature: void remove_torrent(storage_index_t const idx) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: libtorrent::abort
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort(bool) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:102,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:102,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:112,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:114,1
    - Dst: read
      Src: /src/libtorrent/src/posix_disk_io.cpp:116,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:120,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:120,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:122,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:123,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:124,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:125,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:129,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - storage
    - ' r'
    - handler
    argTypes:
    - storage_index_t
    - peer_request
    - std::function<void(disk_buffer_holder block, storage_error const& se)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 130
    functionName: libtorrent::async_read
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - time_now
    - post
    - allocate_buffer
    - read
    - libtorrent::total_microseconds
    - inc_stats_counter
    - libtorrent::disk_buffer_holder
    - libtorrent::move
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void async_read(storage_index_t storage, peer_request const& r\n\t\t\t,
      std::function<void(disk_buffer_holder block, storage_error const& se)> handler\n\t\t\t,
      disk_job_flags_t) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/posix_disk_io.cpp:137,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:139,1
    - Dst: write
      Src: /src/libtorrent/src/posix_disk_io.cpp:142,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:146,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:146,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:148,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:149,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:150,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - storage
    - ' r'
    - buf
    - handler
    argTypes:
    - storage_index_t
    - peer_request
    - char*
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 156
    functionName: libtorrent::async_write
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - time_now
    - post
    - write
    - libtorrent::total_microseconds
    - inc_stats_counter
    - libtorrent::move
    - const_cast<char*>
    linkageType: ''
    returnType: bool
    signature: "bool async_write(storage_index_t storage, peer_request const& r\n\t\t\t,
      char const* buf, std::shared_ptr<disk_observer>\n\t\t\t, std::function<void(storage_error
      const&)> handler\n\t\t\t, disk_job_flags_t) override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:162,1
    - Dst: span<sha256_hash>::empty
      Src: /src/libtorrent/src/posix_disk_io.cpp:165,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:167,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:167,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:178,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:180,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:181,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_disk_io.cpp:185,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/posix_disk_io.cpp:185,1
    - Dst: std::max
      Src: /src/libtorrent/src/posix_disk_io.cpp:188,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:193,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:194,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:196,1
    - Dst: std::max
      Src: /src/libtorrent/src/posix_disk_io.cpp:196,1
    - Dst: posix_storage*::read
      Src: /src/libtorrent/src/posix_disk_io.cpp:197,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: hasher256
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/posix_disk_io.cpp:206,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/posix_disk_io.cpp:206,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:210,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:210,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:212,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:213,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:214,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:215,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:216,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - storage
    - piece
    - block_hashes
    - flags
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - span<sha256_hash>
    - disk_job_flags_t
    - std::function<void(piece_index_t, sha1_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 220
    functionName: libtorrent::async_hash
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::max
    - libtorrent::move
    - hasher::final
    - allocate_buffer
    - span::first
    - hasher256
    - inc_stats_counter
    - sha1_hash
    - disk_buffer_holder::data
    - time_now
    - libtorrent::min
    - posix_storage*::files
    - posix_storage*::read
    - TORRENT_ASSERT
    - libtorrent::disk_buffer_holder
    - libtorrent::get
    - span<sha256_hash>::empty
    - post
    - span<sha256_hash>::size
    - libtorrent::total_microseconds
    - hasher::update
    linkageType: ''
    returnType: void
    signature: "void async_hash(storage_index_t storage, piece_index_t const piece\n\t\t\t,
      span<sha256_hash> block_hashes, disk_job_flags_t flags\n\t\t\t, std::function<void(piece_index_t,
      sha1_hash const&, storage_error const&)> handler) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:225,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:227,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:227,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:237,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:239,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:241,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:244,1
    - Dst: posix_storage*::read
      Src: /src/libtorrent/src/posix_disk_io.cpp:245,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/posix_disk_io.cpp:247,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:247,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/posix_disk_io.cpp:249,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:253,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:253,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:255,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:256,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:257,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:258,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:259,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - storage
    - piece
    - offset
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - int
    - std::function<void(piece_index_t, sha256_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 263
    functionName: libtorrent::async_hash2
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - time_now
    - libtorrent::min
    - posix_storage*::files
    - post
    - allocate_buffer
    - span::first
    - hasher256::final
    - posix_storage*::read
    - libtorrent::total_microseconds
    - libtorrent::get
    - inc_stats_counter
    - hasher256::update
    - libtorrent::disk_buffer_holder
    - libtorrent::move
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void async_hash2(storage_index_t storage, piece_index_t const piece,
      int offset, disk_job_flags_t\n\t\t\t, std::function<void(piece_index_t, sha256_hash
      const&, storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:270,1
    - Dst: std::tie
      Src: /src/libtorrent/src/posix_disk_io.cpp:273,1
    - Dst: posix_storage*::move_storage
      Src: /src/libtorrent/src/posix_disk_io.cpp:273,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - storage
    - p
    - flags
    - handler
    argTypes:
    - storage_index_t
    - std::string
    - move_flags_t
    - std::function<void(status_t, std::string const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: libtorrent::async_move_storage
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::tie
    - post
    - posix_storage*::move_storage
    - libtorrent::get
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void async_move_storage(storage_index_t const storage, std::string
      p\n\t\t\t, move_flags_t const flags\n\t\t\t, std::function<void(status_t, std::string
      const&, storage_error const&)> handler) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:279,1
    - Dst: posix_storage*::release_files
      Src: /src/libtorrent/src/posix_disk_io.cpp:280,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:282,1
    - Dst: handler
      Src: /src/libtorrent/src/posix_disk_io.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - storage
    - handler
    argTypes:
    - storage_index_t
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: libtorrent::async_release_files
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - handler
    - posix_storage*::release_files
    - libtorrent::get
    linkageType: ''
    returnType: void
    signature: void async_release_files(storage_index_t storage, std::function<void()>
      handler) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:289,1
    - Dst: posix_storage*::delete_files
      Src: /src/libtorrent/src/posix_disk_io.cpp:290,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - storage
    - options
    - handler
    argTypes:
    - storage_index_t
    - remove_flags_t
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: libtorrent::async_delete_files
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - posix_storage*::delete_files
    - post
    - libtorrent::get
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void async_delete_files(storage_index_t storage, remove_flags_t const
      options\n\t\t\t, std::function<void(storage_error const&)> handler) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:299,1
    - Dst: posix_storage*::initialize
      Src: /src/libtorrent/src/posix_disk_io.cpp:307,1
    - Dst: posix_storage*::verify_resume_data
      Src: /src/libtorrent/src/posix_disk_io.cpp:310,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:311,1
    - Dst: get_bool
      Src: /src/libtorrent/src/posix_disk_io.cpp:313,1
    - Dst: libtorrent::aux::contains_resume_data
      Src: /src/libtorrent/src/posix_disk_io.cpp:316,1
    - Dst: posix_storage*::has_any_file
      Src: /src/libtorrent/src/posix_disk_io.cpp:321,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - storage
    - resume_data
    - links
    - handler
    argTypes:
    - storage_index_t
    - add_torrent_params*
    - aux::vector<std::string, file_index_t>
    - std::function<void(status_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 334
    functionName: libtorrent::async_check_files
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - posix_storage*::initialize
    - h
    - libtorrent::aux::contains_resume_data
    - post
    - posix_storage*::has_any_file
    - get_bool
    - libtorrent::get
    - libtorrent::move
    - posix_storage*::verify_resume_data
    linkageType: ''
    returnType: void
    signature: "void async_check_files(storage_index_t storage\n\t\t\t, add_torrent_params
      const* resume_data\n\t\t\t, aux::vector<std::string, file_index_t> links\n\t\t\t,
      std::function<void(status_t, storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:341,1
    - Dst: posix_storage*::rename_file
      Src: /src/libtorrent/src/posix_disk_io.cpp:343,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:345,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - storage
    - idx
    - name
    - handler
    argTypes:
    - storage_index_t
    - file_index_t
    - std::string
    - std::function<void(std::string const&, file_index_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: libtorrent::async_rename_file
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - posix_storage*::rename_file
    - post
    - libtorrent::get
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void async_rename_file(storage_index_t const storage\n\t\t\t, file_index_t
      const idx\n\t\t\t, std::string name\n\t\t\t, std::function<void(std::string
      const&, file_index_t, storage_error const&)> handler) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:351,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: libtorrent::async_stop_torrent
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_stop_torrent(storage_index_t, std::function<void()> handler)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:359,1
    - Dst: posix_storage*::set_file_priority
      Src: /src/libtorrent/src/posix_disk_io.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:363,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - storage
    - prio
    - handler
    argTypes:
    - storage_index_t
    - aux::vector<download_priority_t, file_index_t>
    - "std::function<void(storage_error const&\n\t\t\t\t, aux::vector<download_priority_t,
      file_index_t>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: libtorrent::async_set_file_priority
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - post
    - posix_storage*::set_file_priority
    - libtorrent::get
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void async_set_file_priority(storage_index_t const storage\n\t\t\t,
      aux::vector<download_priority_t, file_index_t> prio\n\t\t\t, std::function<void(storage_error
      const&\n\t\t\t\t, aux::vector<download_priority_t, file_index_t>)> handler)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - index
    - handler
    argTypes:
    - piece_index_t
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: libtorrent::async_clear_piece
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_clear_piece(storage_index_t, piece_index_t index\n\t\t\t,
      std::function<void(piece_index_t)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: libtorrent::update_stats_counters
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_stats_counters(counters&) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: libtorrent::get_status
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> get_status(storage_index_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    functionName: libtorrent::submit_jobs
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void submit_jobs() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<posix_disk_io>
      Src: /src/libtorrent/src/posix_disk_io.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: "std::unique_ptr<disk_interface> posix_disk_io_constructor(\n\t\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<posix_disk_io>
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT std::unique_ptr<disk_interface> posix_disk_io_constructor(\n\t\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::settings_updated
      Src: /src/libtorrent/src/posix_disk_io.cpp:70,1
    - Dst: set_settings
      Src: /src/libtorrent/src/posix_disk_io.cpp:75,1
    - Dst: new_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:83,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:83,1
    - Dst: std::make_unique<posix_storage>
      Src: /src/libtorrent/src/posix_disk_io.cpp:84,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:86,1
    - Dst: libtorrent::storage_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:87,1
    - Dst: libtorrent::reset
      Src: /src/libtorrent/src/posix_disk_io.cpp:92,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/src/posix_disk_io.cpp:93,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:102,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:102,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:112,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:114,1
    - Dst: read
      Src: /src/libtorrent/src/posix_disk_io.cpp:116,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:120,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:120,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:122,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:123,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:124,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:125,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:129,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:129,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/posix_disk_io.cpp:137,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:139,1
    - Dst: write
      Src: /src/libtorrent/src/posix_disk_io.cpp:142,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:146,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:146,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:148,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:149,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:150,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:162,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/posix_disk_io.cpp:165,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:167,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:167,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:178,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:180,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:181,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_disk_io.cpp:185,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/posix_disk_io.cpp:185,1
    - Dst: std::max
      Src: /src/libtorrent/src/posix_disk_io.cpp:188,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:193,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:194,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:196,1
    - Dst: std::max
      Src: /src/libtorrent/src/posix_disk_io.cpp:196,1
    - Dst: posix_storage*::read
      Src: /src/libtorrent/src/posix_disk_io.cpp:197,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: hasher256
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/posix_disk_io.cpp:206,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/posix_disk_io.cpp:206,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:210,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:210,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:212,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:213,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:214,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:215,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:216,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:225,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:227,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:227,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:237,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:239,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:241,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:244,1
    - Dst: posix_storage*::read
      Src: /src/libtorrent/src/posix_disk_io.cpp:245,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/posix_disk_io.cpp:247,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:247,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/posix_disk_io.cpp:249,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:253,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:253,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:255,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:256,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:257,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:258,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:259,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:270,1
    - Dst: std::tie
      Src: /src/libtorrent/src/posix_disk_io.cpp:273,1
    - Dst: posix_storage*::move_storage
      Src: /src/libtorrent/src/posix_disk_io.cpp:273,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:279,1
    - Dst: posix_storage*::release_files
      Src: /src/libtorrent/src/posix_disk_io.cpp:280,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:282,1
    - Dst: handler
      Src: /src/libtorrent/src/posix_disk_io.cpp:282,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:289,1
    - Dst: posix_storage*::delete_files
      Src: /src/libtorrent/src/posix_disk_io.cpp:290,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:299,1
    - Dst: posix_storage*::initialize
      Src: /src/libtorrent/src/posix_disk_io.cpp:307,1
    - Dst: posix_storage*::verify_resume_data
      Src: /src/libtorrent/src/posix_disk_io.cpp:310,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:311,1
    - Dst: get_bool
      Src: /src/libtorrent/src/posix_disk_io.cpp:313,1
    - Dst: libtorrent::aux::contains_resume_data
      Src: /src/libtorrent/src/posix_disk_io.cpp:316,1
    - Dst: posix_storage*::has_any_file
      Src: /src/libtorrent/src/posix_disk_io.cpp:321,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:341,1
    - Dst: posix_storage*::rename_file
      Src: /src/libtorrent/src/posix_disk_io.cpp:343,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:345,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:345,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:351,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:351,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:359,1
    - Dst: posix_storage*::set_file_priority
      Src: /src/libtorrent/src/posix_disk_io.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:363,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:363,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 149
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 395
    functionName: libtorrent::disk_interface
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - libtorrent::settings_updated
    - write
    - hasher256::final
    - libtorrent::empty
    - std::max
    - get_bool
    - hasher256::update
    - libtorrent::move
    - posix_storage*::initialize
    - hasher::final
    - libtorrent::aux::contains_resume_data
    - allocate_buffer
    - libtorrent::emplace_back
    - span::first
    - hasher256
    - inc_stats_counter
    - sha1_hash
    - posix_storage*::verify_resume_data
    - posix_storage*::has_any_file
    - disk_buffer_holder::data
    - libtorrent::storage_holder
    - time_now
    - libtorrent::min
    - posix_storage*::files
    - libtorrent::size
    - posix_storage*::delete_files
    - set_settings
    - TORRENT_ASSERT
    - posix_storage*::read
    - std::make_unique<posix_storage>
    - handler
    - libtorrent::disk_buffer_holder
    - end_index
    - libtorrent::get
    - posix_storage*::release_files
    - const_cast<char*>
    - posix_storage*::rename_file
    - std::tie
    - post
    - read
    - libtorrent::total_microseconds
    - libtorrent::add
    - hasher::update
    - posix_storage*::set_file_priority
    - posix_storage*::move_storage
    - libtorrent::reset
    - new_index
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT disk_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::settings_updated
      Src: /src/libtorrent/src/posix_disk_io.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: libtorrent::posix_disk_io
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::settings_updated
    linkageType: ''
    returnType: void
    signature: void posix_disk_io(io_context& ios, settings_interface const& sett,
      counters& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_settings
      Src: /src/libtorrent/src/posix_disk_io.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: libtorrent::settings_updated
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 4
    functionsReached:
    - set_settings
    linkageType: ''
    returnType: void
    signature: void settings_updated() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:83,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:83,1
    - Dst: std::make_unique<posix_storage>
      Src: /src/libtorrent/src/posix_disk_io.cpp:84,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:85,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:86,1
    - Dst: libtorrent::storage_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: libtorrent::new_torrent
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::emplace_back
    - std::make_unique<posix_storage>
    - libtorrent::move
    - new_index
    - end_index
    - libtorrent::storage_holder
    linkageType: ''
    returnType: storage_holder
    signature: "storage_holder new_torrent(storage_params const& params\n\t\t\t, std::shared_ptr<void>
      const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reset
      Src: /src/libtorrent/src/posix_disk_io.cpp:92,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/src/posix_disk_io.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: libtorrent::remove_torrent
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::add
    - libtorrent::reset
    linkageType: ''
    returnType: void
    signature: void remove_torrent(storage_index_t const idx) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: libtorrent::abort
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort(bool) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:102,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:102,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:108,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:112,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:114,1
    - Dst: read
      Src: /src/libtorrent/src/posix_disk_io.cpp:116,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:120,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:120,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:122,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:123,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:124,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:125,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:128,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:129,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - storage
    - ' r'
    - handler
    argTypes:
    - storage_index_t
    - peer_request
    - std::function<void(disk_buffer_holder block, storage_error const& se)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 130
    functionName: libtorrent::async_read
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - time_now
    - post
    - allocate_buffer
    - read
    - libtorrent::total_microseconds
    - inc_stats_counter
    - libtorrent::disk_buffer_holder
    - libtorrent::move
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void async_read(storage_index_t storage, peer_request const& r\n\t\t\t,
      std::function<void(disk_buffer_holder block, storage_error const& se)> handler\n\t\t\t,
      disk_job_flags_t) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/posix_disk_io.cpp:137,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:139,1
    - Dst: write
      Src: /src/libtorrent/src/posix_disk_io.cpp:142,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:146,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:146,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:148,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:149,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:150,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:151,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - storage
    - ' r'
    - buf
    - handler
    argTypes:
    - storage_index_t
    - peer_request
    - char*
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 156
    functionName: libtorrent::async_write
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - time_now
    - post
    - write
    - libtorrent::total_microseconds
    - inc_stats_counter
    - libtorrent::move
    - const_cast<char*>
    linkageType: ''
    returnType: bool
    signature: "bool async_write(storage_index_t storage, peer_request const& r\n\t\t\t,
      char const* buf, std::shared_ptr<disk_observer>\n\t\t\t, std::function<void(storage_error
      const&)> handler\n\t\t\t, disk_job_flags_t) override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:162,1
    - Dst: span<sha256_hash>::empty
      Src: /src/libtorrent/src/posix_disk_io.cpp:165,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:167,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:167,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:173,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:178,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:180,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:181,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_disk_io.cpp:185,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/posix_disk_io.cpp:185,1
    - Dst: std::max
      Src: /src/libtorrent/src/posix_disk_io.cpp:188,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:193,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:194,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:196,1
    - Dst: std::max
      Src: /src/libtorrent/src/posix_disk_io.cpp:196,1
    - Dst: posix_storage*::read
      Src: /src/libtorrent/src/posix_disk_io.cpp:197,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:201,1
    - Dst: hasher256
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:203,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/posix_disk_io.cpp:206,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/posix_disk_io.cpp:206,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:210,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:210,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:212,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:213,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:214,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:215,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:216,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - storage
    - piece
    - block_hashes
    - flags
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - span<sha256_hash>
    - disk_job_flags_t
    - std::function<void(piece_index_t, sha1_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 220
    functionName: libtorrent::async_hash
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::max
    - libtorrent::move
    - hasher::final
    - allocate_buffer
    - span::first
    - hasher256
    - inc_stats_counter
    - sha1_hash
    - disk_buffer_holder::data
    - time_now
    - libtorrent::min
    - posix_storage*::files
    - posix_storage*::read
    - TORRENT_ASSERT
    - libtorrent::disk_buffer_holder
    - libtorrent::get
    - span<sha256_hash>::empty
    - post
    - span<sha256_hash>::size
    - libtorrent::total_microseconds
    - hasher::update
    linkageType: ''
    returnType: void
    signature: "void async_hash(storage_index_t storage, piece_index_t const piece\n\t\t\t,
      span<sha256_hash> block_hashes, disk_job_flags_t flags\n\t\t\t, std::function<void(piece_index_t,
      sha1_hash const&, storage_error const&)> handler) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:225,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/posix_disk_io.cpp:227,1
    - Dst: allocate_buffer
      Src: /src/libtorrent/src/posix_disk_io.cpp:227,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:233,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:237,1
    - Dst: posix_storage*::files
      Src: /src/libtorrent/src/posix_disk_io.cpp:239,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/posix_disk_io.cpp:241,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/posix_disk_io.cpp:244,1
    - Dst: posix_storage*::read
      Src: /src/libtorrent/src/posix_disk_io.cpp:245,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/posix_disk_io.cpp:247,1
    - Dst: span::first
      Src: /src/libtorrent/src/posix_disk_io.cpp:247,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/posix_disk_io.cpp:249,1
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/src/posix_disk_io.cpp:253,1
    - Dst: time_now
      Src: /src/libtorrent/src/posix_disk_io.cpp:253,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:255,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:256,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:257,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:258,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/posix_disk_io.cpp:259,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - storage
    - piece
    - offset
    - handler
    argTypes:
    - storage_index_t
    - piece_index_t
    - int
    - std::function<void(piece_index_t, sha256_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 263
    functionName: libtorrent::async_hash2
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - time_now
    - libtorrent::min
    - posix_storage*::files
    - post
    - allocate_buffer
    - span::first
    - hasher256::final
    - posix_storage*::read
    - libtorrent::total_microseconds
    - libtorrent::get
    - inc_stats_counter
    - hasher256::update
    - libtorrent::disk_buffer_holder
    - libtorrent::move
    - disk_buffer_holder::data
    linkageType: ''
    returnType: void
    signature: "void async_hash2(storage_index_t storage, piece_index_t const piece,
      int offset, disk_job_flags_t\n\t\t\t, std::function<void(piece_index_t, sha256_hash
      const&, storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:270,1
    - Dst: std::tie
      Src: /src/libtorrent/src/posix_disk_io.cpp:273,1
    - Dst: posix_storage*::move_storage
      Src: /src/libtorrent/src/posix_disk_io.cpp:273,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - storage
    - p
    - flags
    - handler
    argTypes:
    - storage_index_t
    - std::string
    - move_flags_t
    - std::function<void(status_t, std::string const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: libtorrent::async_move_storage
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - std::tie
    - post
    - posix_storage*::move_storage
    - libtorrent::get
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void async_move_storage(storage_index_t const storage, std::string
      p\n\t\t\t, move_flags_t const flags\n\t\t\t, std::function<void(status_t, std::string
      const&, storage_error const&)> handler) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:279,1
    - Dst: posix_storage*::release_files
      Src: /src/libtorrent/src/posix_disk_io.cpp:280,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:282,1
    - Dst: handler
      Src: /src/libtorrent/src/posix_disk_io.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - storage
    - handler
    argTypes:
    - storage_index_t
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: libtorrent::async_release_files
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - handler
    - posix_storage*::release_files
    - libtorrent::get
    linkageType: ''
    returnType: void
    signature: void async_release_files(storage_index_t storage, std::function<void()>
      handler) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:289,1
    - Dst: posix_storage*::delete_files
      Src: /src/libtorrent/src/posix_disk_io.cpp:290,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - storage
    - options
    - handler
    argTypes:
    - storage_index_t
    - remove_flags_t
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: libtorrent::async_delete_files
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - posix_storage*::delete_files
    - post
    - libtorrent::get
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void async_delete_files(storage_index_t storage, remove_flags_t const
      options\n\t\t\t, std::function<void(storage_error const&)> handler) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:299,1
    - Dst: posix_storage*::initialize
      Src: /src/libtorrent/src/posix_disk_io.cpp:307,1
    - Dst: posix_storage*::verify_resume_data
      Src: /src/libtorrent/src/posix_disk_io.cpp:310,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:311,1
    - Dst: get_bool
      Src: /src/libtorrent/src/posix_disk_io.cpp:313,1
    - Dst: libtorrent::aux::contains_resume_data
      Src: /src/libtorrent/src/posix_disk_io.cpp:316,1
    - Dst: posix_storage*::has_any_file
      Src: /src/libtorrent/src/posix_disk_io.cpp:321,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - storage
    - resume_data
    - links
    - handler
    argTypes:
    - storage_index_t
    - add_torrent_params*
    - aux::vector<std::string, file_index_t>
    - std::function<void(status_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 334
    functionName: libtorrent::async_check_files
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - posix_storage*::initialize
    - h
    - libtorrent::aux::contains_resume_data
    - post
    - posix_storage*::has_any_file
    - get_bool
    - libtorrent::get
    - libtorrent::move
    - posix_storage*::verify_resume_data
    linkageType: ''
    returnType: void
    signature: "void async_check_files(storage_index_t storage\n\t\t\t, add_torrent_params
      const* resume_data\n\t\t\t, aux::vector<std::string, file_index_t> links\n\t\t\t,
      std::function<void(status_t, storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:341,1
    - Dst: posix_storage*::rename_file
      Src: /src/libtorrent/src/posix_disk_io.cpp:343,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:344,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:345,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - storage
    - idx
    - name
    - handler
    argTypes:
    - storage_index_t
    - file_index_t
    - std::string
    - std::function<void(std::string const&, file_index_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: libtorrent::async_rename_file
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - posix_storage*::rename_file
    - post
    - libtorrent::get
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void async_rename_file(storage_index_t const storage\n\t\t\t, file_index_t
      const idx\n\t\t\t, std::string name\n\t\t\t, std::function<void(std::string
      const&, file_index_t, storage_error const&)> handler) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:351,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: libtorrent::async_stop_torrent
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_stop_torrent(storage_index_t, std::function<void()> handler)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/src/posix_disk_io.cpp:359,1
    - Dst: posix_storage*::set_file_priority
      Src: /src/libtorrent/src/posix_disk_io.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:362,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:363,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - storage
    - prio
    - handler
    argTypes:
    - storage_index_t
    - aux::vector<download_priority_t, file_index_t>
    - "std::function<void(storage_error const&\n\t\t\t\t, aux::vector<download_priority_t,
      file_index_t>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: libtorrent::async_set_file_priority
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - post
    - posix_storage*::set_file_priority
    - libtorrent::get
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void async_set_file_priority(storage_index_t const storage\n\t\t\t,
      aux::vector<download_priority_t, file_index_t> prio\n\t\t\t, std::function<void(storage_error
      const&\n\t\t\t\t, aux::vector<download_priority_t, file_index_t>)> handler)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    - Dst: h
      Src: /src/libtorrent/src/posix_disk_io.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - index
    - handler
    argTypes:
    - piece_index_t
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: libtorrent::async_clear_piece
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_clear_piece(storage_index_t, piece_index_t index\n\t\t\t,
      std::function<void(piece_index_t)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: libtorrent::update_stats_counters
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_stats_counters(counters&) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: libtorrent::get_status
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> get_status(storage_index_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    functionName: libtorrent::submit_jobs
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void submit_jobs() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<posix_disk_io>
      Src: /src/libtorrent/src/posix_disk_io.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ios'
    - ' sett'
    - ' cnt'
    argTypes:
    - io_context
    - settings_interface
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: "std::unique_ptr<disk_interface> posix_disk_io_constructor(\n\t\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
    functionSourceFile: /src/libtorrent/src/posix_disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<posix_disk_io>
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: "TORRENT_EXPORT std::unique_ptr<disk_interface> posix_disk_io_constructor(\n\t\tio_context&
      ios, settings_interface const& sett, counters& cnt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/src/pe_crypto.cpp:68,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/pe_crypto.cpp:68,1
    - Dst: mp::export_bits
      Src: /src/libtorrent/src/pe_crypto.cpp:69,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/pe_crypto.cpp:80,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/pe_crypto.cpp:80,1
    - Dst: std::memset
      Src: /src/libtorrent/src/pe_crypto.cpp:84,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/pe_crypto.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: libtorrent::export_key
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - aux::numeric_cast<std::size_t>
    - std::memmove
    - mp::export_bits
    - std::memset
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: std::array<char, 96>
    signature: std::array<char, 96> export_key(key_t const& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/pe_crypto.cpp:96,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/pe_crypto.cpp:96,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/pe_crypto.cpp:96,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/pe_crypto.cpp:97,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/pe_crypto.cpp:97,1
    - Dst: mp::import_bits
      Src: /src/libtorrent/src/pe_crypto.cpp:100,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/pe_crypto.cpp:100,1
    - Dst: aux::array::end
      Src: /src/libtorrent/src/pe_crypto.cpp:100,1
    - Dst: mp::powm
      Src: /src/libtorrent/src/pe_crypto.cpp:103,1
    - Dst: key_t
      Src: /src/libtorrent/src/pe_crypto.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: libtorrent::dh_key_exchange::dh_key_exchange
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - aux::array::data
    - static_cast<std::ptrdiff_t>
    - key_t
    - reinterpret_cast<char*>
    - aux::array::begin
    - aux::array::end
    - mp::powm
    - aux::array::size
    - libtorrent::aux::random_bytes
    - mp::import_bits
    linkageType: ''
    returnType: void
    signature: void dh_key_exchange::dh_key_exchange()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:109,1
    - Dst: mp::import_bits
      Src: /src/libtorrent/src/pe_crypto.cpp:111,1
    - Dst: libtorrent::dh_key_exchange::compute_secret
      Src: /src/libtorrent/src/pe_crypto.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - remote_pubkey
    argTypes:
    - std::uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: libtorrent::dh_key_exchange::compute_secret
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - mp::import_bits
    - libtorrent::dh_key_exchange::compute_secret
    linkageType: ''
    returnType: void
    signature: void dh_key_exchange::compute_secret(std::uint8_t const* remote_pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mp::powm
      Src: /src/libtorrent/src/pe_crypto.cpp:118,1
    - Dst: mp::export_bits
      Src: /src/libtorrent/src/pe_crypto.cpp:121,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/src/pe_crypto.cpp:121,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/pe_crypto.cpp:121,1
    - Dst: hasher
      Src: /src/libtorrent/src/pe_crypto.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' remote_pubkey'
    argTypes:
    - key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: libtorrent::dh_key_exchange::compute_secret
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 1
    functionsReached:
    - std::array::data
    - hasher
    - mp::export_bits
    - mp::powm
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: void
    signature: void dh_key_exchange::compute_secret(key_t const& remote_pubkey)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:132,1
    - Dst: empty
      Src: /src/libtorrent/src/pe_crypto.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:133,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:133,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:135,1
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/pe_crypto.cpp:141,1
    - Dst: span<span<char>>::size
      Src: /src/libtorrent/src/pe_crypto.cpp:141,1
    - Dst: span<span<char>>::size
      Src: /src/libtorrent/src/pe_crypto.cpp:145,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:148,1
    - Dst: data
      Src: /src/libtorrent/src/pe_crypto.cpp:152,1
    - Dst: span<char>::span<char>
      Src: /src/libtorrent/src/pe_crypto.cpp:151,1
    - Dst: span<char>::span<char>
      Src: /src/libtorrent/src/pe_crypto.cpp:157,1
    - Dst: span::first
      Src: /src/libtorrent/src/pe_crypto.cpp:161,1
    - Dst: span::empty
      Src: /src/libtorrent/src/pe_crypto.cpp:170,1
    - Dst: std::tie
      Src: /src/libtorrent/src/pe_crypto.cpp:172,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:173,1
    - Dst: libtorrent::encryption_handler::encrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:173,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:176,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:184,1
    - Dst: pop_front
      Src: /src/libtorrent/src/pe_crypto.cpp:189,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:193,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:202,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:207,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:215,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - iovec
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 216
    functionName: libtorrent::encryption_handler::encrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 1
    functionsReached:
    - span<span<char>>::size
    - std::tie
    - span::first
    - empty
    - libtorrent::encryption_handler::encrypt
    - front
    - TORRENT_ASSERT
    - span<char>::span<char>
    - span::empty
    - pop_front
    - std::make_tuple
    - TORRENT_ALLOCA
    - size
    - data
    linkageType: ''
    returnType: std::tuple<int, span<span<char const>>>
    signature: "std::tuple<int, span<span<char const>>> encryption_handler::encrypt(\n\t\tspan<span<char>>
      iovec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:221,1
    - Dst: is_recv_plaintext
      Src: /src/libtorrent/src/pe_crypto.cpp:221,1
    - Dst: crypto_packet_finished
      Src: /src/libtorrent/src/pe_crypto.cpp:223,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/pe_crypto.cpp:225,1
    - Dst: std::tie
      Src: /src/libtorrent/src/pe_crypto.cpp:228,1
    - Dst: libtorrent::encryption_handler::decrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:228,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:230,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:231,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/pe_crypto.cpp:232,1
    - Dst: crypto_cut
      Src: /src/libtorrent/src/pe_crypto.cpp:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' recv_buffer'
    - ' bytes_transferred'
    argTypes:
    - aux::crypto_receive_buffer
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: libtorrent::encryption_handler::decrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 1
    functionsReached:
    - mutable_buffer
    - crypto_packet_finished
    - std::tie
    - libtorrent::encryption_handler::decrypt
    - TORRENT_ASSERT
    - crypto_cut
    - is_recv_plaintext
    - std::size_t
    linkageType: ''
    returnType: int
    signature: "int encryption_handler::decrypt(aux::crypto_receive_buffer& recv_buffer\n\t\t,
      std::size_t& bytes_transferred)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/pe_crypto.cpp:245,1
    - Dst: std::prev
      Src: /src/libtorrent/src/pe_crypto.cpp:247,1
    - Dst: end
      Src: /src/libtorrent/src/pe_crypto.cpp:247,1
    - Dst: begin
      Src: /src/libtorrent/src/pe_crypto.cpp:248,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:250,1
    - Dst: back
      Src: /src/libtorrent/src/pe_crypto.cpp:251,1
    - Dst: push_back
      Src: /src/libtorrent/src/pe_crypto.cpp:257,1
    - Dst: barrier
      Src: /src/libtorrent/src/pe_crypto.cpp:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - crypto
    - pending_encryption
    argTypes:
    - std::shared_ptr<crypto_plugin>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 260
    functionName: libtorrent::encryption_handler::switch_send_crypto
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - empty
    - end
    - std::prev
    - TORRENT_ASSERT
    - back
    - barrier
    linkageType: ''
    returnType: bool
    signature: "bool encryption_handler::switch_send_crypto(std::shared_ptr<crypto_plugin>
      crypto\n\t\t, int pending_encryption)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/pe_crypto.cpp:272,1
    - Dst: std::shared_ptr<crypto_plugin>::decrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:272,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:273,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/pe_crypto.cpp:273,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:275,1
    - Dst: crypto_reset
      Src: /src/libtorrent/src/pe_crypto.cpp:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - crypto
    - ' recv_buffer'
    argTypes:
    - std::shared_ptr<crypto_plugin>
    - aux::crypto_receive_buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 278
    functionName: libtorrent::encryption_handler::switch_recv_crypto
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - std::tie
    - TORRENT_ASSERT
    - std::shared_ptr<crypto_plugin>::decrypt
    - crypto_reset
    linkageType: ''
    returnType: void
    signature: "void encryption_handler::switch_recv_crypto(std::shared_ptr<crypto_plugin>
      crypto\n\t\t, aux::crypto_receive_buffer& recv_buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: libtorrent::rc4_handler::rc4_handler
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rc4_handler::rc4_handler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc4_init
      Src: /src/libtorrent/src/pe_crypto.cpp:293,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/pe_crypto.cpp:293,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/pe_crypto.cpp:293,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/pe_crypto.cpp:294,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/pe_crypto.cpp:294,1
    - Dst: libtorrent::rc4_handler::decrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: libtorrent::rc4_handler::set_incoming_key
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - span<char const>::data
    - libtorrent::rc4_handler::decrypt
    - std::size_t
    - span<char const>::size
    - rc4_init
    linkageType: ''
    returnType: void
    signature: void rc4_handler::set_incoming_key(span<char const> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc4_init
      Src: /src/libtorrent/src/pe_crypto.cpp:304,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/pe_crypto.cpp:304,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/pe_crypto.cpp:304,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/pe_crypto.cpp:305,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/pe_crypto.cpp:305,1
    - Dst: libtorrent::rc4_handler::encrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: libtorrent::rc4_handler::set_outgoing_key
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - span<char const>::data
    - libtorrent::rc4_handler::encrypt
    - std::size_t
    - span<char const>::size
    - rc4_init
    linkageType: ''
    returnType: void
    signature: void rc4_handler::set_outgoing_key(span<char const> key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:316,1
    - Dst: span<span<char>>::empty
      Src: /src/libtorrent/src/pe_crypto.cpp:317,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:317,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/pe_crypto.cpp:322,1
    - Dst: data
      Src: /src/libtorrent/src/pe_crypto.cpp:322,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:323,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:326,1
    - Dst: rc4_encrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:329,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/pe_crypto.cpp:329,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - bufs
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 332
    functionName: libtorrent::rc4_handler::encrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 1
    functionsReached:
    - rc4_encrypt
    - std::uint32_t
    - TORRENT_ASSERT
    - span<span<char>>::empty
    - std::make_tuple
    - size
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: std::tuple<int, span<span<char const>>>
    signature: std::tuple<int, span<span<char const>>> rc4_handler::encrypt(span<span<char>>
      bufs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:336,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/pe_crypto.cpp:341,1
    - Dst: data
      Src: /src/libtorrent/src/pe_crypto.cpp:341,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:342,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:344,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:345,1
    - Dst: rc4_encrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:348,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/pe_crypto.cpp:348,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bufs
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 351
    functionName: libtorrent::rc4_handler::decrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 1
    functionsReached:
    - rc4_encrypt
    - std::uint32_t
    - TORRENT_ASSERT
    - std::make_tuple
    - size
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> rc4_handler::decrypt(span<span<char>> bufs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:364,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:365,1
    - Dst: rc4*::buf::data
      Src: /src/libtorrent/src/pe_crypto.cpp:374,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/pe_crypto.cpp:375,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/pe_crypto.cpp:375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - in
    - len
    - state
    argTypes:
    - unsigned char*
    - std::size_t
    - rc4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 392
    functionName: libtorrent::rc4_init
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::array::data
    - std::memcpy
    - rc4*::buf::data
    linkageType: ''
    returnType: void
    signature: void rc4_init(const unsigned char* in, std::size_t len, rc4 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:399,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:400,1
    - Dst: rc4*::buf::data
      Src: /src/libtorrent/src/pe_crypto.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - out
    - outlen
    - state
    argTypes:
    - unsigned char*
    - std::size_t
    - rc4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 416
    functionName: libtorrent::rc4_encrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - rc4*::buf::data
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t rc4_encrypt(unsigned char *out, std::size_t outlen, rc4
      *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/src/pe_crypto.cpp:68,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/pe_crypto.cpp:68,1
    - Dst: mp::export_bits
      Src: /src/libtorrent/src/pe_crypto.cpp:69,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/pe_crypto.cpp:80,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/pe_crypto.cpp:80,1
    - Dst: std::memset
      Src: /src/libtorrent/src/pe_crypto.cpp:84,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/pe_crypto.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: libtorrent::export_key
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - aux::numeric_cast<std::size_t>
    - std::memmove
    - mp::export_bits
    - std::memset
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: std::array<char, 96>
    signature: std::array<char, 96> export_key(key_t const& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/pe_crypto.cpp:96,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/pe_crypto.cpp:96,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/pe_crypto.cpp:96,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/pe_crypto.cpp:97,1
    - Dst: aux::array::size
      Src: /src/libtorrent/src/pe_crypto.cpp:97,1
    - Dst: mp::import_bits
      Src: /src/libtorrent/src/pe_crypto.cpp:100,1
    - Dst: aux::array::begin
      Src: /src/libtorrent/src/pe_crypto.cpp:100,1
    - Dst: aux::array::end
      Src: /src/libtorrent/src/pe_crypto.cpp:100,1
    - Dst: mp::powm
      Src: /src/libtorrent/src/pe_crypto.cpp:103,1
    - Dst: key_t
      Src: /src/libtorrent/src/pe_crypto.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: libtorrent::dh_key_exchange::dh_key_exchange
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - aux::array::data
    - static_cast<std::ptrdiff_t>
    - key_t
    - reinterpret_cast<char*>
    - aux::array::begin
    - aux::array::end
    - mp::powm
    - aux::array::size
    - libtorrent::aux::random_bytes
    - mp::import_bits
    linkageType: ''
    returnType: void
    signature: void dh_key_exchange::dh_key_exchange()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:109,1
    - Dst: mp::import_bits
      Src: /src/libtorrent/src/pe_crypto.cpp:111,1
    - Dst: libtorrent::dh_key_exchange::compute_secret
      Src: /src/libtorrent/src/pe_crypto.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - remote_pubkey
    argTypes:
    - std::uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: libtorrent::dh_key_exchange::compute_secret
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - mp::import_bits
    - libtorrent::dh_key_exchange::compute_secret
    linkageType: ''
    returnType: void
    signature: void dh_key_exchange::compute_secret(std::uint8_t const* remote_pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mp::powm
      Src: /src/libtorrent/src/pe_crypto.cpp:118,1
    - Dst: mp::export_bits
      Src: /src/libtorrent/src/pe_crypto.cpp:121,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/src/pe_crypto.cpp:121,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/pe_crypto.cpp:121,1
    - Dst: hasher
      Src: /src/libtorrent/src/pe_crypto.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' remote_pubkey'
    argTypes:
    - key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: libtorrent::dh_key_exchange::compute_secret
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 2
    functionsReached:
    - std::array::data
    - hasher
    - mp::export_bits
    - mp::powm
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: void
    signature: void dh_key_exchange::compute_secret(key_t const& remote_pubkey)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:132,1
    - Dst: empty
      Src: /src/libtorrent/src/pe_crypto.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:133,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:133,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:135,1
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/pe_crypto.cpp:141,1
    - Dst: span<span<char>>::size
      Src: /src/libtorrent/src/pe_crypto.cpp:141,1
    - Dst: span<span<char>>::size
      Src: /src/libtorrent/src/pe_crypto.cpp:145,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:148,1
    - Dst: data
      Src: /src/libtorrent/src/pe_crypto.cpp:152,1
    - Dst: span<char>::span<char>
      Src: /src/libtorrent/src/pe_crypto.cpp:151,1
    - Dst: span<char>::span<char>
      Src: /src/libtorrent/src/pe_crypto.cpp:157,1
    - Dst: span::first
      Src: /src/libtorrent/src/pe_crypto.cpp:161,1
    - Dst: span::empty
      Src: /src/libtorrent/src/pe_crypto.cpp:170,1
    - Dst: std::tie
      Src: /src/libtorrent/src/pe_crypto.cpp:172,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:173,1
    - Dst: libtorrent::encryption_handler::encrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:173,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:176,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:184,1
    - Dst: pop_front
      Src: /src/libtorrent/src/pe_crypto.cpp:189,1
    - Dst: front
      Src: /src/libtorrent/src/pe_crypto.cpp:193,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:202,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:207,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:215,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - iovec
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 216
    functionName: libtorrent::encryption_handler::encrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 2
    functionsReached:
    - span<span<char>>::size
    - std::tie
    - span::first
    - empty
    - libtorrent::encryption_handler::encrypt
    - front
    - TORRENT_ASSERT
    - span<char>::span<char>
    - span::empty
    - pop_front
    - std::make_tuple
    - TORRENT_ALLOCA
    - size
    - data
    linkageType: ''
    returnType: std::tuple<int, span<span<char const>>>
    signature: "std::tuple<int, span<span<char const>>> encryption_handler::encrypt(\n\t\tspan<span<char>>
      iovec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:221,1
    - Dst: is_recv_plaintext
      Src: /src/libtorrent/src/pe_crypto.cpp:221,1
    - Dst: crypto_packet_finished
      Src: /src/libtorrent/src/pe_crypto.cpp:223,1
    - Dst: mutable_buffer
      Src: /src/libtorrent/src/pe_crypto.cpp:225,1
    - Dst: std::tie
      Src: /src/libtorrent/src/pe_crypto.cpp:228,1
    - Dst: libtorrent::encryption_handler::decrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:228,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:230,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:231,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/pe_crypto.cpp:232,1
    - Dst: crypto_cut
      Src: /src/libtorrent/src/pe_crypto.cpp:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' recv_buffer'
    - ' bytes_transferred'
    argTypes:
    - aux::crypto_receive_buffer
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: libtorrent::encryption_handler::decrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 2
    functionsReached:
    - mutable_buffer
    - crypto_packet_finished
    - std::tie
    - libtorrent::encryption_handler::decrypt
    - TORRENT_ASSERT
    - crypto_cut
    - is_recv_plaintext
    - std::size_t
    linkageType: ''
    returnType: int
    signature: "int encryption_handler::decrypt(aux::crypto_receive_buffer& recv_buffer\n\t\t,
      std::size_t& bytes_transferred)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/pe_crypto.cpp:245,1
    - Dst: std::prev
      Src: /src/libtorrent/src/pe_crypto.cpp:247,1
    - Dst: end
      Src: /src/libtorrent/src/pe_crypto.cpp:247,1
    - Dst: begin
      Src: /src/libtorrent/src/pe_crypto.cpp:248,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:250,1
    - Dst: back
      Src: /src/libtorrent/src/pe_crypto.cpp:251,1
    - Dst: push_back
      Src: /src/libtorrent/src/pe_crypto.cpp:257,1
    - Dst: barrier
      Src: /src/libtorrent/src/pe_crypto.cpp:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - crypto
    - pending_encryption
    argTypes:
    - std::shared_ptr<crypto_plugin>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 260
    functionName: libtorrent::encryption_handler::switch_send_crypto
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - empty
    - end
    - std::prev
    - TORRENT_ASSERT
    - back
    - barrier
    linkageType: ''
    returnType: bool
    signature: "bool encryption_handler::switch_send_crypto(std::shared_ptr<crypto_plugin>
      crypto\n\t\t, int pending_encryption)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/pe_crypto.cpp:272,1
    - Dst: std::shared_ptr<crypto_plugin>::decrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:272,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:273,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/pe_crypto.cpp:273,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:274,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:275,1
    - Dst: crypto_reset
      Src: /src/libtorrent/src/pe_crypto.cpp:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - crypto
    - ' recv_buffer'
    argTypes:
    - std::shared_ptr<crypto_plugin>
    - aux::crypto_receive_buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 278
    functionName: libtorrent::encryption_handler::switch_recv_crypto
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - std::tie
    - TORRENT_ASSERT
    - std::shared_ptr<crypto_plugin>::decrypt
    - crypto_reset
    linkageType: ''
    returnType: void
    signature: "void encryption_handler::switch_recv_crypto(std::shared_ptr<crypto_plugin>
      crypto\n\t\t, aux::crypto_receive_buffer& recv_buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: libtorrent::rc4_handler::rc4_handler
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rc4_handler::rc4_handler()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc4_init
      Src: /src/libtorrent/src/pe_crypto.cpp:293,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/pe_crypto.cpp:293,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/pe_crypto.cpp:293,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/pe_crypto.cpp:294,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/pe_crypto.cpp:294,1
    - Dst: libtorrent::rc4_handler::decrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: libtorrent::rc4_handler::set_incoming_key
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - span<char const>::data
    - libtorrent::rc4_handler::decrypt
    - std::size_t
    - span<char const>::size
    - rc4_init
    linkageType: ''
    returnType: void
    signature: void rc4_handler::set_incoming_key(span<char const> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc4_init
      Src: /src/libtorrent/src/pe_crypto.cpp:304,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/pe_crypto.cpp:304,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/pe_crypto.cpp:304,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/pe_crypto.cpp:305,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/pe_crypto.cpp:305,1
    - Dst: libtorrent::rc4_handler::encrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: libtorrent::rc4_handler::set_outgoing_key
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - span<char const>::data
    - libtorrent::rc4_handler::encrypt
    - std::size_t
    - span<char const>::size
    - rc4_init
    linkageType: ''
    returnType: void
    signature: void rc4_handler::set_outgoing_key(span<char const> key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:316,1
    - Dst: span<span<char>>::empty
      Src: /src/libtorrent/src/pe_crypto.cpp:317,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:317,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/pe_crypto.cpp:322,1
    - Dst: data
      Src: /src/libtorrent/src/pe_crypto.cpp:322,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:323,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:326,1
    - Dst: rc4_encrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:329,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/pe_crypto.cpp:329,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - bufs
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 332
    functionName: libtorrent::rc4_handler::encrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 2
    functionsReached:
    - rc4_encrypt
    - std::uint32_t
    - TORRENT_ASSERT
    - span<span<char>>::empty
    - std::make_tuple
    - size
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: std::tuple<int, span<span<char const>>>
    signature: std::tuple<int, span<span<char const>>> rc4_handler::encrypt(span<span<char>>
      bufs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:336,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/pe_crypto.cpp:341,1
    - Dst: data
      Src: /src/libtorrent/src/pe_crypto.cpp:341,1
    - Dst: size
      Src: /src/libtorrent/src/pe_crypto.cpp:342,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:344,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:345,1
    - Dst: rc4_encrypt
      Src: /src/libtorrent/src/pe_crypto.cpp:348,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/pe_crypto.cpp:348,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/pe_crypto.cpp:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bufs
    argTypes:
    - span<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 351
    functionName: libtorrent::rc4_handler::decrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 2
    functionsReached:
    - rc4_encrypt
    - std::uint32_t
    - TORRENT_ASSERT
    - std::make_tuple
    - size
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> rc4_handler::decrypt(span<span<char>> bufs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:364,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:365,1
    - Dst: rc4*::buf::data
      Src: /src/libtorrent/src/pe_crypto.cpp:374,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/pe_crypto.cpp:375,1
    - Dst: aux::array::data
      Src: /src/libtorrent/src/pe_crypto.cpp:375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - in
    - len
    - state
    argTypes:
    - unsigned char*
    - std::size_t
    - rc4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 392
    functionName: libtorrent::rc4_init
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::array::data
    - std::memcpy
    - rc4*::buf::data
    linkageType: ''
    returnType: void
    signature: void rc4_init(const unsigned char* in, std::size_t len, rc4 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:399,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/pe_crypto.cpp:400,1
    - Dst: rc4*::buf::data
      Src: /src/libtorrent/src/pe_crypto.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - out
    - outlen
    - state
    argTypes:
    - unsigned char*
    - std::size_t
    - rc4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 416
    functionName: libtorrent::rc4_encrypt
    functionSourceFile: /src/libtorrent/src/pe_crypto.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - rc4*::buf::data
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t rc4_encrypt(unsigned char *out, std::size_t outlen, rc4
      *state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: initialized
      Src: /src/libtorrent/src/timestamp_history.cpp:49,1
    - Dst: fill
      Src: /src/libtorrent/src/timestamp_history.cpp:51,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:62,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:68,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - sample
    - step
    argTypes:
    - std::uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::timestamp_history::add_sample
    functionSourceFile: /src/libtorrent/src/timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - fill
    - initialized
    - compare_less_wrap
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t timestamp_history::add_sample(std::uint32_t sample, bool
      step)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/timestamp_history.cpp:97,1
    - Dst: initialized
      Src: /src/libtorrent/src/timestamp_history.cpp:97,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/timestamp_history.cpp:98,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - change
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::timestamp_history::adjust_base
    functionSourceFile: /src/libtorrent/src/timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::numeric_cast<std::uint32_t>
    - initialized
    - compare_less_wrap
    linkageType: ''
    returnType: void
    signature: void timestamp_history::adjust_base(int change)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: initialized
      Src: /src/libtorrent/src/timestamp_history.cpp:49,1
    - Dst: fill
      Src: /src/libtorrent/src/timestamp_history.cpp:51,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:62,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:68,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - sample
    - step
    argTypes:
    - std::uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::timestamp_history::add_sample
    functionSourceFile: /src/libtorrent/src/timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - fill
    - initialized
    - compare_less_wrap
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t timestamp_history::add_sample(std::uint32_t sample, bool
      step)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/timestamp_history.cpp:97,1
    - Dst: initialized
      Src: /src/libtorrent/src/timestamp_history.cpp:97,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/timestamp_history.cpp:98,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - change
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::timestamp_history::adjust_base
    functionSourceFile: /src/libtorrent/src/timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::numeric_cast<std::uint32_t>
    - initialized
    - compare_less_wrap
    linkageType: ''
    returnType: void
    signature: void timestamp_history::adjust_base(int change)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: initialized
      Src: /src/libtorrent/src/timestamp_history.cpp:49,1
    - Dst: fill
      Src: /src/libtorrent/src/timestamp_history.cpp:51,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:62,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:68,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - sample
    - step
    argTypes:
    - std::uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::timestamp_history::add_sample
    functionSourceFile: /src/libtorrent/src/timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - fill
    - initialized
    - compare_less_wrap
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t timestamp_history::add_sample(std::uint32_t sample, bool
      step)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/timestamp_history.cpp:97,1
    - Dst: initialized
      Src: /src/libtorrent/src/timestamp_history.cpp:97,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/timestamp_history.cpp:98,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - change
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::timestamp_history::adjust_base
    functionSourceFile: /src/libtorrent/src/timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::numeric_cast<std::uint32_t>
    - initialized
    - compare_less_wrap
    linkageType: ''
    returnType: void
    signature: void timestamp_history::adjust_base(int change)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: initialized
      Src: /src/libtorrent/src/timestamp_history.cpp:49,1
    - Dst: fill
      Src: /src/libtorrent/src/timestamp_history.cpp:51,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:62,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:68,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - sample
    - step
    argTypes:
    - std::uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::timestamp_history::add_sample
    functionSourceFile: /src/libtorrent/src/timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - fill
    - initialized
    - compare_less_wrap
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t timestamp_history::add_sample(std::uint32_t sample, bool
      step)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/timestamp_history.cpp:97,1
    - Dst: initialized
      Src: /src/libtorrent/src/timestamp_history.cpp:97,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/timestamp_history.cpp:98,1
    - Dst: compare_less_wrap
      Src: /src/libtorrent/src/timestamp_history.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - change
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::timestamp_history::adjust_base
    functionSourceFile: /src/libtorrent/src/timestamp_history.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::numeric_cast<std::uint32_t>
    - initialized
    - compare_less_wrap
    linkageType: ''
    returnType: void
    signature: void timestamp_history::adjust_base(int change)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/directory.cpp:43,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::back
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/directory.cpp:53,1
    - Dst: std::string::back
      Src: /src/libtorrent/src/directory.cpp:53,1
    - Dst: std::string::pop_back
      Src: /src/libtorrent/src/directory.cpp:54,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/directory.cpp:57,1
    - Dst: FindFirstFileW
      Src: /src/libtorrent/src/directory.cpp:60,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/directory.cpp:60,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: ::opendir
      Src: /src/libtorrent/src/directory.cpp:68,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/directory.cpp:68,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:71,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:71,1
    - Dst: libtorrent::aux::directory::next
      Src: /src/libtorrent/src/directory.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::directory::directory
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - std::string::append
    - libtorrent::aux::directory::next
    - FindFirstFileW
    - std::string::empty
    - std::string::pop_back
    - assign
    - convert_to_native_path_string
    - clear
    - GetLastError
    - std::string::back
    - ::opendir
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void directory::directory(std::string const& path, error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/libtorrent/src/directory.cpp:84,1
    - Dst: ::closedir
      Src: /src/libtorrent/src/directory.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: directory::~directory()
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - FindClose
    - ::closedir
    linkageType: ''
    returnType: void
    signature: void directory::~directory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native_path
      Src: /src/libtorrent/src/directory.cpp:93,1
    - Dst: convert_from_native_path
      Src: /src/libtorrent/src/directory.cpp:95,1
    - Dst: c_str
      Src: /src/libtorrent/src/directory.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::directory::file
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - convert_from_native_path
    linkageType: ''
    returnType: std::string
    signature: std::string directory::file() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/directory.cpp:101,1
    - Dst: FindNextFileW
      Src: /src/libtorrent/src/directory.cpp:103,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/directory.cpp:106,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:108,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:108,1
    - Dst: ::readdir
      Src: /src/libtorrent/src/directory.cpp:113,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:119,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::directory::next
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 1
    functionsReached:
    - system_category
    - FindNextFileW
    - assign
    - clear
    - ::readdir
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void directory::next(error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/directory.cpp:43,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::back
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/directory.cpp:53,1
    - Dst: std::string::back
      Src: /src/libtorrent/src/directory.cpp:53,1
    - Dst: std::string::pop_back
      Src: /src/libtorrent/src/directory.cpp:54,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/directory.cpp:57,1
    - Dst: FindFirstFileW
      Src: /src/libtorrent/src/directory.cpp:60,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/directory.cpp:60,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: ::opendir
      Src: /src/libtorrent/src/directory.cpp:68,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/directory.cpp:68,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:71,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:71,1
    - Dst: libtorrent::aux::directory::next
      Src: /src/libtorrent/src/directory.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::directory::directory
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - std::string::append
    - libtorrent::aux::directory::next
    - FindFirstFileW
    - std::string::empty
    - std::string::pop_back
    - assign
    - convert_to_native_path_string
    - clear
    - GetLastError
    - std::string::back
    - ::opendir
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void directory::directory(std::string const& path, error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/libtorrent/src/directory.cpp:84,1
    - Dst: ::closedir
      Src: /src/libtorrent/src/directory.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: directory::~directory()
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - FindClose
    - ::closedir
    linkageType: ''
    returnType: void
    signature: void directory::~directory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native_path
      Src: /src/libtorrent/src/directory.cpp:93,1
    - Dst: convert_from_native_path
      Src: /src/libtorrent/src/directory.cpp:95,1
    - Dst: c_str
      Src: /src/libtorrent/src/directory.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::directory::file
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - convert_from_native_path
    linkageType: ''
    returnType: std::string
    signature: std::string directory::file() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/directory.cpp:101,1
    - Dst: FindNextFileW
      Src: /src/libtorrent/src/directory.cpp:103,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/directory.cpp:106,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:108,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:108,1
    - Dst: ::readdir
      Src: /src/libtorrent/src/directory.cpp:113,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:119,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::directory::next
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - FindNextFileW
    - assign
    - clear
    - ::readdir
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void directory::next(error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/directory.cpp:43,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::back
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/directory.cpp:53,1
    - Dst: std::string::back
      Src: /src/libtorrent/src/directory.cpp:53,1
    - Dst: std::string::pop_back
      Src: /src/libtorrent/src/directory.cpp:54,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/directory.cpp:57,1
    - Dst: FindFirstFileW
      Src: /src/libtorrent/src/directory.cpp:60,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/directory.cpp:60,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: ::opendir
      Src: /src/libtorrent/src/directory.cpp:68,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/directory.cpp:68,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:71,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:71,1
    - Dst: libtorrent::aux::directory::next
      Src: /src/libtorrent/src/directory.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::directory::directory
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - std::string::append
    - libtorrent::aux::directory::next
    - FindFirstFileW
    - std::string::empty
    - std::string::pop_back
    - assign
    - convert_to_native_path_string
    - clear
    - GetLastError
    - std::string::back
    - ::opendir
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void directory::directory(std::string const& path, error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/libtorrent/src/directory.cpp:84,1
    - Dst: ::closedir
      Src: /src/libtorrent/src/directory.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: directory::~directory()
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - FindClose
    - ::closedir
    linkageType: ''
    returnType: void
    signature: void directory::~directory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native_path
      Src: /src/libtorrent/src/directory.cpp:93,1
    - Dst: convert_from_native_path
      Src: /src/libtorrent/src/directory.cpp:95,1
    - Dst: c_str
      Src: /src/libtorrent/src/directory.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::directory::file
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - convert_from_native_path
    linkageType: ''
    returnType: std::string
    signature: std::string directory::file() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/directory.cpp:101,1
    - Dst: FindNextFileW
      Src: /src/libtorrent/src/directory.cpp:103,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/directory.cpp:106,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:108,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:108,1
    - Dst: ::readdir
      Src: /src/libtorrent/src/directory.cpp:113,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:119,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::directory::next
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 3
    functionsReached:
    - system_category
    - FindNextFileW
    - assign
    - clear
    - ::readdir
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void directory::next(error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/directory.cpp:43,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::back
      Src: /src/libtorrent/src/directory.cpp:49,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/directory.cpp:53,1
    - Dst: std::string::back
      Src: /src/libtorrent/src/directory.cpp:53,1
    - Dst: std::string::pop_back
      Src: /src/libtorrent/src/directory.cpp:54,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/directory.cpp:57,1
    - Dst: FindFirstFileW
      Src: /src/libtorrent/src/directory.cpp:60,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/directory.cpp:60,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:63,1
    - Dst: ::opendir
      Src: /src/libtorrent/src/directory.cpp:68,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/directory.cpp:68,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:71,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:71,1
    - Dst: libtorrent::aux::directory::next
      Src: /src/libtorrent/src/directory.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::directory::directory
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - std::string::append
    - libtorrent::aux::directory::next
    - FindFirstFileW
    - std::string::empty
    - std::string::pop_back
    - assign
    - convert_to_native_path_string
    - clear
    - GetLastError
    - std::string::back
    - ::opendir
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void directory::directory(std::string const& path, error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/libtorrent/src/directory.cpp:84,1
    - Dst: ::closedir
      Src: /src/libtorrent/src/directory.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: directory::~directory()
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - FindClose
    - ::closedir
    linkageType: ''
    returnType: void
    signature: void directory::~directory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_from_native_path
      Src: /src/libtorrent/src/directory.cpp:93,1
    - Dst: convert_from_native_path
      Src: /src/libtorrent/src/directory.cpp:95,1
    - Dst: c_str
      Src: /src/libtorrent/src/directory.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::directory::file
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 0
    functionsReached:
    - c_str
    - convert_from_native_path
    linkageType: ''
    returnType: std::string
    signature: std::string directory::file() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/directory.cpp:101,1
    - Dst: FindNextFileW
      Src: /src/libtorrent/src/directory.cpp:103,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/directory.cpp:106,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:108,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:108,1
    - Dst: ::readdir
      Src: /src/libtorrent/src/directory.cpp:113,1
    - Dst: assign
      Src: /src/libtorrent/src/directory.cpp:119,1
    - Dst: system_category
      Src: /src/libtorrent/src/directory.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::directory::next
    functionSourceFile: /src/libtorrent/src/directory.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - FindNextFileW
    - assign
    - clear
    - ::readdir
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void directory::next(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pb'
    argTypes:
    - pending_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: pending_block_in_buffer
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pending_block_in_buffer(pending_block const& pb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pb'
    argTypes:
    - pending_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: pending_block_in_buffer
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pending_block_in_buffer(pending_block const& pb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:126,1
    - Dst: std::shared_ptr::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: peer_connection::is_single_thread
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::is_single_thread
    - lock
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::is_single_thread() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection.cpp:137,1
    - Dst: aux::clamp_assign<std::uint16_t>
      Src: /src/libtorrent/src/peer_connection.cpp:141,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:141,1
    - Dst: make_work_guard
      Src: /src/libtorrent/src/peer_connection.cpp:145,1
    - Dst: tor::expired
      Src: /src/libtorrent/src/peer_connection.cpp:147,1
    - Dst: tor::expired
      Src: /src/libtorrent/src/peer_connection.cpp:151,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:169,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/peer_connection.cpp:170,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/peer_connection.cpp:170,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:171,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:174,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:174,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:177,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:179,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:191,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:193,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:196,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:196,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:197,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:199,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:202,1
    - Dst: socket_type_name
      Src: /src/libtorrent/src/peer_connection.cpp:203,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/peer_connection.cpp:205,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:206,1
    - Dst: std::shared_ptr::inc_num_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:212,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - peer_connection_args
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 217
    functionName: peer_connection::peer_connection
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - remote_endpoint
    - socket_type_idx
    - std::shared_ptr::inc_num_connecting
    - peer_connection::peer_log
    - socket_type_name
    - print_endpoint
    - get_int
    - inc_stats_counter
    - aux::clamp_assign<std::uint16_t>
    - TORRENT_ASSERT
    - tor::expired
    - static_cast<void*>
    - lock
    - static_cast<std::uint8_t>
    - make_work_guard
    - std::shared_ptr::info_hash
    - peer_connection::should_log
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void peer_connection::peer_connection(peer_connection_args& pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:230,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:232,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/peer_connection.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: catch
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - disconnect
    - make_error_code
    - peer_log
    linkageType: ''
    returnType: void
    signature: void catch (std::bad_alloc const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:237,1
    - Dst: code
      Src: /src/libtorrent/src/peer_connection.cpp:238,1
    - Dst: code
      Src: /src/libtorrent/src/peer_connection.cpp:239,1
    - Dst: what
      Src: /src/libtorrent/src/peer_connection.cpp:240,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:242,1
    - Dst: code
      Src: /src/libtorrent/src/peer_connection.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - system_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: catch
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - code
    - what
    - peer_log
    - disconnect
    linkageType: ''
    returnType: void
    signature: void catch (system_error const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:245,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:247,1
    - Dst: what
      Src: /src/libtorrent/src/peer_connection.cpp:247,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:249,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/peer_connection.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: catch
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - make_error_code
    - peer_log
    - what
    - disconnect
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void catch (std::exception const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:256,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:256,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 266
    functionName: peer_connection::timeout
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - get_int
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: int
    signature: int peer_connection::timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:270,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:272,1
    - Dst: what
      Src: /src/libtorrent/src/peer_connection.cpp:273,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:275,1
    - Dst: error_code
      Src: /src/libtorrent/src/peer_connection.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: peer_connection::on_exception
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - error_code
    - peer_connection::peer_log
    - peer_connection::disconnect
    - what
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void peer_connection::on_exception(std::exception const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: peer_connection::on_error
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::disconnect
    linkageType: ''
    returnType: void
    signature: void peer_connection::on_error(error_code const& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:285,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:285,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:286,1
    - Dst: num_classes
      Src: /src/libtorrent/src/peer_connection.cpp:288,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/peer_connection.cpp:290,1
    - Dst: class_at
      Src: /src/libtorrent/src/peer_connection.cpp:290,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:294,1
    - Dst: std::shared_ptr::num_classes
      Src: /src/libtorrent/src/peer_connection.cpp:298,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/peer_connection.cpp:300,1
    - Dst: std::shared_ptr::class_at
      Src: /src/libtorrent/src/peer_connection.cpp:300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 305
    functionName: peer_connection::get_priority
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - std::shared_ptr::num_classes
    - associated_torrent
    - num_classes
    - peer_classes
    - std::shared_ptr::class_at
    - TORRENT_ASSERT
    - class_at
    linkageType: ''
    returnType: int
    signature: int peer_connection::get_priority(int const channel) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:309,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:309,1
    - Dst: total_payload_download
      Src: /src/libtorrent/src/peer_connection.cpp:310,1
    - Dst: total_payload_upload
      Src: /src/libtorrent/src/peer_connection.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: peer_connection::reset_choke_counters
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - total_payload_upload
    - total_payload_download
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: void
    signature: void peer_connection::reset_choke_counters()
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:316,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:316,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:317,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:318,1
    - Dst: non_blocking
      Src: /src/libtorrent/src/peer_connection.cpp:323,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:326,1
    - Dst: remote_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:329,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:332,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:335,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:338,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:341,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:343,1
    - Dst: libtorrent::aux::set_traffic_class
      Src: /src/libtorrent/src/peer_connection.cpp:344,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:346,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:348,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/peer_connection.cpp:349,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:356,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:358,1
    - Dst: print_address
      Src: /src/libtorrent/src/peer_connection.cpp:359,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:359,1
    - Dst: set_peer_classes
      Src: /src/libtorrent/src/peer_connection.cpp:363,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:363,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/peer_connection.cpp:363,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:366,1
    - Dst: num_classes
      Src: /src/libtorrent/src/peer_connection.cpp:369,1
    - Dst: peer_classes
      Src: /src/libtorrent/src/peer_connection.cpp:371,1
    - Dst: class_at
      Src: /src/libtorrent/src/peer_connection.cpp:371,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:374,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/peer_connection.cpp:375,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:379,1
    - Dst: peer_connection::init
      Src: /src/libtorrent/src/peer_connection.cpp:381,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:384,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:386,1
    - Dst: libtorrent::aux::set_traffic_class
      Src: /src/libtorrent/src/peer_connection.cpp:388,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:390,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:392,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/peer_connection.cpp:393,1
    - Dst: libtorrent::aux::set_socket_buffer_size
      Src: /src/libtorrent/src/peer_connection.cpp:402,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:404,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:406,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:407,1
    - Dst: print_error
      Src: /src/libtorrent/src/peer_connection.cpp:408,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:416,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:418,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/peer_connection.cpp:419,1
    - Dst: open
      Src: /src/libtorrent/src/peer_connection.cpp:423,1
    - Dst: protocol
      Src: /src/libtorrent/src/peer_connection.cpp:423,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:426,1
    - Dst: bind_outgoing_socket
      Src: /src/libtorrent/src/peer_connection.cpp:430,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:431,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:433,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:435,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:436,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/peer_connection.cpp:437,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:440,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:444,1
    - Dst: libtorrent::aux::set_socket_buffer_size
      Src: /src/libtorrent/src/peer_connection.cpp:450,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:452,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:454,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:455,1
    - Dst: print_error
      Src: /src/libtorrent/src/peer_connection.cpp:456,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:462,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:464,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:465,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/peer_connection.cpp:468,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:470,1
    - Dst: async_connect
      Src: /src/libtorrent/src/peer_connection.cpp:471,1
    - Dst: auto::wrap
      Src: /src/libtorrent/src/peer_connection.cpp:472,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:473,1
    - Dst: peer_connection::sent_syn
      Src: /src/libtorrent/src/peer_connection.cpp:475,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/peer_connection.cpp:475,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:477,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:479,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:480,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:480,1
    - Dst: pid
      Src: /src/libtorrent/src/peer_connection.cpp:480,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/peer_connection.cpp:480,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:483,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:485,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:486,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:486,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 489
    functionName: peer_connection::start
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 5
    functionsReached:
    - set_peer_classes
    - std::shared_ptr::ready_for_connections
    - libtorrent::aux::set_socket_buffer_size
    - libtorrent::aux::is_v6
    - num_classes
    - remote_endpoint
    - async_connect
    - remote
    - socket_type_idx
    - peer_connection::disconnect
    - self
    - std::shared_ptr::get_handle
    - libtorrent::aux::time_now
    - pid
    - bind_outgoing_socket
    - ADD_OUTSTANDING_ASYNC
    - peer_connection::is_single_thread
    - peer_classes
    - peer_connection::peer_log
    - libtorrent::aux::set_traffic_class
    - print_endpoint
    - auto::wrap
    - get_int
    - error_code::message
    - class_at
    - address
    - protocol
    - print_address
    - peer_connection::init
    - open
    - libtorrent::aux::is_v4
    - non_blocking
    - TORRENT_ASSERT
    - peer_connection::sent_syn
    - lock
    - print_error
    - TORRENT_UNUSED
    - std::string::c_str
    - std::shared_ptr::alerts
    - peer_connection::should_log
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void peer_connection::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:493,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:493,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:502,1
    - Dst: post
      Src: /src/libtorrent/src/peer_connection.cpp:503,1
    - Dst: auto::wrap
      Src: /src/libtorrent/src/peer_connection.cpp:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 506
    functionName: peer_connection::update_interest
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - post
    - auto::wrap
    - TORRENT_ASSERT
    - self
    linkageType: ''
    returnType: void
    signature: void peer_connection::update_interest()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:510,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:511,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:514,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:520,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:523,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:527,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:530,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:536,1
    - Dst: std::shared_ptr::need_picker
      Src: /src/libtorrent/src/peer_connection.cpp:538,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:539,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/peer_connection.cpp:540,1
    - Dst: std::shared_ptr::piece_priority
      Src: /src/libtorrent/src/peer_connection.cpp:544,1
    - Dst: have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:545,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:549,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:550,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:559,1
    - Dst: peer_connection::send_not_interested
      Src: /src/libtorrent/src/peer_connection.cpp:562,1
    - Dst: std::shared_ptr::peer_is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:563,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:565,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:565,1
    - Dst: is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:565,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:567,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 568
    functionName: peer_connection::do_update_interest
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::is_single_thread
    - std::shared_ptr::ready_for_connections
    - std::shared_ptr::picker
    - std::shared_ptr::peer_is_interesting
    - empty
    - peer_connection::peer_log
    - peer_connection::send_not_interested
    - std::shared_ptr::is_upload_only
    - in_handshake
    - TORRENT_ASSERT
    - num_pieces
    - std::shared_ptr::need_picker
    - lock
    - have_piece
    - peer_connection::disconnect_if_redundant
    - std::shared_ptr::piece_priority
    - is_interesting
    linkageType: ''
    returnType: void
    signature: void peer_connection::do_update_interest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts
      Src: /src/libtorrent/src/peer_connection.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: peer_connection::should_log
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 2
    functionsReached:
    - alerts
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::should_log(peer_log_alert::direction_t) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - direction
    - event
    argTypes:
    - peer_log_alert::direction_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: peer_connection::peer_log
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 5
    functionsReached:
    - peer_connection::peer_log
    linkageType: ''
    returnType: void
    signature: "void peer_connection::peer_log(peer_log_alert::direction_t direction\n\t\t,
      char const* event) const noexcept"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:586,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:586,1
    - Dst: alerts
      Src: /src/libtorrent/src/peer_connection.cpp:588,1
    - Dst: va_start
      Src: /src/libtorrent/src/peer_connection.cpp:591,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:594,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:595,1
    - Dst: alerts
      Src: /src/libtorrent/src/peer_connection.cpp:597,1
    - Dst: va_end
      Src: /src/libtorrent/src/peer_connection.cpp:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - direction
    - event
    - fmt
    argTypes:
    - peer_log_alert::direction_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 603
    functionName: peer_connection::peer_log
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 5
    functionsReached:
    - peer_connection::is_single_thread
    - va_start
    - TORRENT_ASSERT
    - lock
    - va_end
    - std::shared_ptr::get_handle
    - alerts
    linkageType: ''
    returnType: void
    signature: "void peer_connection::peer_log(peer_log_alert::direction_t direction\n\t\t,
      char const* event, char const* fmt, ...) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:609,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:609,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:610,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - std::shared_ptr<peer_plugin>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: peer_connection::add_extension
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - push_back
    - std::move
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: void
    signature: void peer_connection::add_extension(std::shared_ptr<peer_plugin> ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:615,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:615,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_connection.cpp:616,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:616,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:616,1
    - Dst: type
      Src: /src/libtorrent/src/peer_connection.cpp:617,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:618,1
    - Dst: auto::get
      Src: /src/libtorrent/src/peer_connection.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 619
    functionName: peer_connection::find_plugin
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - begin
    - auto::get
    - end
    - TORRENT_ASSERT
    - type
    - std::find_if
    linkageType: ''
    returnType: peer_plugin
    signature: peer_plugin * peer_connection::find_plugin(string_view type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:624,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:624,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:627,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:628,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:630,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:633,1
    - Dst: std::shared_ptr::super_seeding
      Src: /src/libtorrent/src/peer_connection.cpp:639,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:642,1
    - Dst: upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:648,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:651,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:656,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:659,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:661,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:668,1
    - Dst: peer_connection::has_piece
      Src: /src/libtorrent/src/peer_connection.cpp:672,1
    - Dst: write_allow_fast
      Src: /src/libtorrent/src/peer_connection.cpp:674,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:675,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:675,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:675,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:676,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:677,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:678,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_connection.cpp:680,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_connection.cpp:681,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:683,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:684,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:690,1
    - Dst: is_v4
      Src: /src/libtorrent/src/peer_connection.cpp:691,1
    - Dst: to_v4
      Src: /src/libtorrent/src/peer_connection.cpp:693,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/peer_connection.cpp:694,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/peer_connection.cpp:694,1
    - Dst: address_v4::bytes_type::data
      Src: /src/libtorrent/src/peer_connection.cpp:694,1
    - Dst: address_v4::bytes_type::size
      Src: /src/libtorrent/src/peer_connection.cpp:694,1
    - Dst: to_v6
      Src: /src/libtorrent/src/peer_connection.cpp:698,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/peer_connection.cpp:699,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/peer_connection.cpp:699,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/peer_connection.cpp:699,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/src/peer_connection.cpp:699,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/peer_connection.cpp:701,1
    - Dst: peer_connection::associated_info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:701,1
    - Dst: hasher
      Src: /src/libtorrent/src/peer_connection.cpp:703,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/peer_connection.cpp:708,1
    - Dst: sha1_hash::size
      Src: /src/libtorrent/src/peer_connection.cpp:709,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:712,1
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/src/peer_connection.cpp:713,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:713,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:714,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:714,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:714,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:715,1
    - Dst: peer_connection::has_piece
      Src: /src/libtorrent/src/peer_connection.cpp:723,1
    - Dst: write_allow_fast
      Src: /src/libtorrent/src/peer_connection.cpp:725,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:726,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_connection.cpp:728,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_connection.cpp:729,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:731,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:732,1
    - Dst: hasher
      Src: /src/libtorrent/src/peer_connection.cpp:736,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 738
    functionName: peer_connection::send_allowed_set
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::associated_info_hash
    - libtorrent::aux::read_uint32
    - begin
    - reinterpret_cast<char*>
    - empty
    - std::uint32_t
    - push_back
    - peer_connection::is_single_thread
    - address_v6::bytes_type::data
    - hasher
    - write_allow_fast
    - peer_connection::peer_log
    - end
    - std::find
    - to_v4
    - get_int
    - std::shared_ptr::super_seeding
    - address
    - address_v4::bytes_type::size
    - upload_only
    - std::string::append
    - TORRENT_ASSERT
    - reserve
    - lock
    - std::string::assign
    - std::shared_ptr::valid_metadata
    - sha1_hash::data
    - to_v6
    - std::shared_ptr::torrent_file
    - address_v4::bytes_type::data
    - peer_connection::has_piece
    - sha1_hash::size
    - address_v6::bytes_type::size
    - is_v4
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_allowed_set()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:742,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:742,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:743,1
    - Dst: resize
      Src: /src/libtorrent/src/peer_connection.cpp:744,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:744,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:745,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:752,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/peer_connection.cpp:752,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:752,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:752,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:754,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:758,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/peer_connection.cpp:759,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:759,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:759,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:761,1
    - Dst: on_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 765
    functionName: peer_connection::on_metadata_impl
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - count
    - peer_connection::is_single_thread
    - begin
    - associated_torrent
    - erase
    - end
    - std::remove_if
    - on_metadata
    - TORRENT_ASSERT
    - resize
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: void
    signature: void peer_connection::on_metadata_impl()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:769,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:769,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:772,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:773,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:774,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:774,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:775,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:775,1
    - Dst: resize
      Src: /src/libtorrent/src/peer_connection.cpp:777,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:777,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:781,1
    - Dst: set_all
      Src: /src/libtorrent/src/peer_connection.cpp:782,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:786,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:792,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:792,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:794,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:797,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/peer_connection.cpp:798,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:801,1
    - Dst: all_set
      Src: /src/libtorrent/src/peer_connection.cpp:801,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:802,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:802,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:802,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:803,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:803,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:803,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/peer_connection.cpp:806,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:807,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:807,1
    - Dst: std::shared_ptr::peer_has_all
      Src: /src/libtorrent/src/peer_connection.cpp:809,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:812,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:813,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:813,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:815,1
    - Dst: peer_connection::send_not_interested
      Src: /src/libtorrent/src/peer_connection.cpp:815,1
    - Dst: std::shared_ptr::peer_is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:816,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:817,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:821,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:821,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:824,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:826,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:826,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:826,1
    - Dst: std::shared_ptr::peer_has
      Src: /src/libtorrent/src/peer_connection.cpp:827,1
    - Dst: range
      Src: /src/libtorrent/src/peer_connection.cpp:829,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:833,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:834,1
    - Dst: std::shared_ptr::peer_is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:837,1
    - Dst: peer_connection::send_not_interested
      Src: /src/libtorrent/src/peer_connection.cpp:838,1
    - Dst: peer_connection::update_interest
      Src: /src/libtorrent/src/peer_connection.cpp:842,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 844
    functionName: peer_connection::init
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr::has_picker
    - count
    - std::shared_ptr::ready_for_connections
    - peer_connection::is_seed
    - peer_connection::disconnect_if_redundant
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - std::shared_ptr::peer_has
    - std::shared_ptr::have_piece
    - std::shared_ptr::is_upload_only
    - TORRENT_ASSERT
    - range
    - static_cast<void*>
    - lock
    - std::shared_ptr::peer_has_all
    - std::shared_ptr::valid_metadata
    - size
    - std::shared_ptr::torrent_file
    - all_set
    - peer_connection::update_interest
    - set_all
    - std::shared_ptr::picker
    - std::shared_ptr::peer_is_interesting
    - std::shared_ptr::set_seed
    - peer_connection::send_not_interested
    - resize
    - peer_info_struct
    linkageType: ''
    returnType: void
    signature: void peer_connection::init()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:848,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/peer_connection.cpp:849,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/peer_connection.cpp:849,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:852,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:853,1
    - Dst: peer_connection::set_endgame
      Src: /src/libtorrent/src/peer_connection.cpp:863,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:866,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:868,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:871,1
    - Dst: peer_connection::ignore_unchoke_slots
      Src: /src/libtorrent/src/peer_connection.cpp:872,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:873,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:876,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:878,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:880,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:881,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:884,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:887,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:892,1
    - Dst: std::shared_ptr::dec_num_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:893,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:898,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:902,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:904,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:904,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:905,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:905,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 906
    functionName: peer_connection::~peer_connection()
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::ignore_unchoke_slots
    - peer_connection::set_endgame
    - empty
    - peer_connection::peer_log
    - socket_type_idx
    - TORRENT_ASSERT
    - inc_stats_counter
    - lock
    - static_cast<std::uint8_t>
    - clear
    - std::shared_ptr::dec_num_connecting
    linkageType: ''
    returnType: void
    signature: void peer_connection::~peer_connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:909,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 909
    functionName: peer_connection::on_parole
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_info_struct
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::on_parole() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:913,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:913,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:916,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:917,1
    - Dst: std::shared_ptr::is_sequential_download
      Src: /src/libtorrent/src/peer_connection.cpp:920,1
    - Dst: std::shared_ptr::num_have
      Src: /src/libtorrent/src/peer_connection.cpp:924,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:924,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:945,1
    - Dst: std::shared_ptr::num_time_critical_pieces
      Src: /src/libtorrent/src/peer_connection.cpp:946,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:951,1
    - Dst: peer_connection::on_parole
      Src: /src/libtorrent/src/peer_connection.cpp:954,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:959,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 962
    functionName: peer_connection::picker_options
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - std::shared_ptr::num_time_critical_pieces
    - TORRENT_ASSERT
    - std::shared_ptr::is_sequential_download
    - get_int
    - lock
    - get_bool
    - peer_connection::on_parole
    - std::shared_ptr::num_have
    linkageType: ''
    returnType: picker_options_t
    signature: picker_options_t peer_connection::picker_options() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:966,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:966,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:967,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:967,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:970,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/peer_connection.cpp:970,1
    - Dst: session_time
      Src: /src/libtorrent/src/peer_connection.cpp:970,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:971,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:972,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:973,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:973,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:974,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/peer_connection.cpp:974,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:976,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 978
    functionName: peer_connection::fast_reconnect
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - std::uint16_t
    - TORRENT_ASSERT
    - get_int
    - peer_info_struct
    - session_time
    linkageType: ''
    returnType: void
    signature: void peer_connection::fast_reconnect(bool r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:982,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:982,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:984,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:987,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:988,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:992,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:992,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:992,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:993,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:993,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:996,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:996,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:996,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:997,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:997,1
    - Dst: peer_connection::has_piece
      Src: /src/libtorrent/src/peer_connection.cpp:999,1
    - Dst: peer_connection::update_interest
      Src: /src/libtorrent/src/peer_connection.cpp:1005,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1006,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:1009,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1012,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1013,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 1015
    functionName: peer_connection::received_piece
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::update_interest
    - peer_connection::is_single_thread
    - begin
    - erase
    - peer_connection::peer_log
    - end
    - in_handshake
    - std::find
    - peer_connection::has_piece
    - TORRENT_ASSERT
    - is_disconnecting
    - peer_connection::disconnect_if_redundant
    - lock
    linkageType: ''
    returnType: void
    signature: void peer_connection::received_piece(piece_index_t const index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1019,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1019,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:1021,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:1025,1
    - Dst: peer_connection::has_piece
      Src: /src/libtorrent/src/peer_connection.cpp:1026,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1029,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1030,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:1035,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1038,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1039,1
    - Dst: write_have
      Src: /src/libtorrent/src/peer_connection.cpp:1041,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1043,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1046
    functionName: peer_connection::announce_piece
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - peer_connection::has_piece
    - in_handshake
    - TORRENT_ASSERT
    - write_have
    - peer_connection::disconnect_if_redundant
    - lock
    - get_bool
    linkageType: ''
    returnType: void
    signature: void peer_connection::announce_piece(piece_index_t const index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1050,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1050,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1052,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1053,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1054,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:1054,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1055,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:1055,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1056,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:1056,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1060
    functionName: peer_connection::has_piece
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 3
    functionsReached:
    - peer_connection::is_single_thread
    - empty
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::has_piece(piece_index_t const i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1064,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1066
    functionName: '& peer_connection::request_queue() const'
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: std::vector<pending_block>
    signature: std::vector<pending_block> & peer_connection::request_queue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1070,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1072
    functionName: '& peer_connection::download_queue() const'
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: std::vector<pending_block>
    signature: std::vector<pending_block> & peer_connection::download_queue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1076,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1078
    functionName: '& peer_connection::upload_queue() const'
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: std::vector<peer_request>
    signature: std::vector<peer_request> & peer_connection::upload_queue() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1082,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1082,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1083,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1084,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:1090,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:1090,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:1090,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:1094,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:1094,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:1094,1
    - Dst: total_payload_upload
      Src: /src/libtorrent/src/peer_connection.cpp:1095,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/peer_connection.cpp:1101,1
    - Dst: std::shared_ptr::statistics
      Src: /src/libtorrent/src/peer_connection.cpp:1106,1
    - Dst: transfer_rate
      Src: /src/libtorrent/src/peer_connection.cpp:1111,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/peer_connection.cpp:1120,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:1121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - extra_bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1122
    functionName: peer_connection::download_queue_time
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - total_payload_upload
    - peer_connection::is_single_thread
    - stats_counters
    - std::shared_ptr::statistics
    - seconds
    - TORRENT_ASSERT
    - milliseconds
    - lock
    - std::shared_ptr::block_size
    - get
    - transfer_rate
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: time_duration
    signature: time_duration peer_connection::download_queue_time(int const extra_bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1126,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1126,1
    - Dst: peer_connection::add_stat
      Src: /src/libtorrent/src/peer_connection.cpp:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - downloaded
    - uploaded
    argTypes:
    - std::int64_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1128
    functionName: peer_connection::add_stat
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - peer_connection::add_stat
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: void
    signature: void peer_connection::add_stat(std::int64_t const downloaded, std::int64_t
      const uploaded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:1132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1133,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:1134,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1137,1
    - Dst: has_v2
      Src: /src/libtorrent/src/peer_connection.cpp:1137,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1137,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:1138,1
    - Dst: has_v2
      Src: /src/libtorrent/src/peer_connection.cpp:1138,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1140
    functionName: peer_connection::associated_info_hash
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - associated_torrent
    - has_v2
    - std::shared_ptr::info_hash
    - TORRENT_ASSERT
    - peer_info_struct
    - get
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash peer_connection::associated_info_hash() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1144,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1144,1
    - Dst: peer_connection::received_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:1145,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1147,1
    - Dst: std::shared_ptr::received_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bytes_payload
    - bytes_protocol
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1150
    functionName: peer_connection::received_bytes
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::is_single_thread
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::received_bytes
    - peer_connection::received_bytes
    linkageType: ''
    returnType: void
    signature: void peer_connection::received_bytes(int const bytes_payload, int const
      bytes_protocol)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1154,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1154,1
    - Dst: peer_connection::sent_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:1155,1
    - Dst: sent_payload
      Src: /src/libtorrent/src/peer_connection.cpp:1161,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:1165,1
    - Dst: time_now
      Src: /src/libtorrent/src/peer_connection.cpp:1165,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1167,1
    - Dst: std::shared_ptr::sent_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:1169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - bytes_payload
    - bytes_protocol
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1170
    functionName: peer_connection::sent_bytes
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - time_now
    - std::shared_ptr::sent_bytes
    - peer_connection::is_single_thread
    - sent_payload
    - set
    - TORRENT_ASSERT
    - lock
    - peer_connection::sent_bytes
    linkageType: ''
    returnType: void
    signature: void peer_connection::sent_bytes(int const bytes_payload, int const
      bytes_protocol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1174,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1174,1
    - Dst: peer_connection::trancieve_ip_packet
      Src: /src/libtorrent/src/peer_connection.cpp:1175,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1177,1
    - Dst: std::shared_ptr::trancieve_ip_packet
      Src: /src/libtorrent/src/peer_connection.cpp:1179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bytes
    - ipv6
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1180
    functionName: peer_connection::trancieve_ip_packet
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::trancieve_ip_packet
    - peer_connection::is_single_thread
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::trancieve_ip_packet
    linkageType: ''
    returnType: void
    signature: void peer_connection::trancieve_ip_packet(int const bytes, bool const
      ipv6)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1184,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1184,1
    - Dst: peer_connection::sent_syn
      Src: /src/libtorrent/src/peer_connection.cpp:1185,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1187,1
    - Dst: std::shared_ptr::sent_syn
      Src: /src/libtorrent/src/peer_connection.cpp:1189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ipv6
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: peer_connection::sent_syn
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 2
    functionsReached:
    - peer_connection::is_single_thread
    - TORRENT_ASSERT
    - peer_connection::sent_syn
    - lock
    - std::shared_ptr::sent_syn
    linkageType: ''
    returnType: void
    signature: void peer_connection::sent_syn(bool const ipv6)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1194,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1194,1
    - Dst: peer_connection::received_synack
      Src: /src/libtorrent/src/peer_connection.cpp:1195,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1197,1
    - Dst: std::shared_ptr::received_synack
      Src: /src/libtorrent/src/peer_connection.cpp:1199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ipv6
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1200
    functionName: peer_connection::received_synack
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::is_single_thread
    - TORRENT_ASSERT
    - std::shared_ptr::received_synack
    - lock
    - peer_connection::received_synack
    linkageType: ''
    returnType: void
    signature: void peer_connection::received_synack(bool const ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/peer_connection.cpp:1206,1
    - Dst: auto::destination
      Src: /src/libtorrent/src/peer_connection.cpp:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1208
    functionName: '& peer_connection::destination() const'
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - boost::get<i2p_stream>
    - auto::destination
    linkageType: ''
    returnType: std::string
    signature: std::string & peer_connection::destination() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/peer_connection.cpp:1213,1
    - Dst: auto::local_i2p_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1215
    functionName: '& peer_connection::local_i2p_endpoint() const'
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - auto::local_i2p_endpoint
    - boost::get<i2p_stream>
    linkageType: ''
    returnType: std::string
    signature: std::string & peer_connection::local_i2p_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1220,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1222
    functionName: '& peer_connection::get_bitfield() const'
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: typed_bitfield<piece_index_t>
    signature: typed_bitfield<piece_index_t> & peer_connection::get_bitfield() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1226,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1226,1
    - Dst: on_piece_pass
      Src: /src/libtorrent/src/peer_connection.cpp:1234,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1239
    functionName: peer_connection::received_valid_data
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - on_piece_pass
    - peer_connection::is_single_thread
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void peer_connection::received_valid_data(piece_index_t const index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1245,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1245,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:1247,1
    - Dst: on_piece_failed
      Src: /src/libtorrent/src/peer_connection.cpp:1252,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:1255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - index
    - single_peer
    argTypes:
    - piece_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1258
    functionName: peer_connection::received_invalid_data
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - on_piece_failed
    - peer_connection::is_single_thread
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::received_invalid_data(piece_index_t const index,
      bool single_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1264,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1264,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1265,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1268,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:1268,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:1269,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:1271,1
    - Dst: end_piece
      Src: /src/libtorrent/src/peer_connection.cpp:1272,1
    - Dst: piece_length
      Src: /src/libtorrent/src/peer_connection.cpp:1274,1
    - Dst: std::shared_ptr::to_req
      Src: /src/libtorrent/src/peer_connection.cpp:1275,1
    - Dst: piece_block
      Src: /src/libtorrent/src/peer_connection.cpp:1275,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:1275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1276
    functionName: peer_connection::validate_piece_request
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - piece_block
    - std::shared_ptr::to_req
    - TORRENT_ASSERT
    - piece_length
    - lock
    - std::shared_ptr::block_size
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - std::shared_ptr::torrent_file
    - end_piece
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::validate_piece_request(peer_request const& p)
      const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1280,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1280,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1287,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1288,1
    - Dst: expired
      Src: /src/libtorrent/src/peer_connection.cpp:1288,1
    - Dst: find_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:1289,1
    - Dst: std::weak_ptr::lock
      Src: /src/libtorrent/src/peer_connection.cpp:1290,1
    - Dst: std::shared_ptr::is_aborted
      Src: /src/libtorrent/src/peer_connection.cpp:1292,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1295,1
    - Dst: std::shared_ptr::reset
      Src: /src/libtorrent/src/peer_connection.cpp:1297,1
    - Dst: delay_load_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:1302,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:1304,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1306,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/peer_connection.cpp:1308,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:1308,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:1317,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1319,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/peer_connection.cpp:1321,1
    - Dst: get_best
      Src: /src/libtorrent/src/peer_connection.cpp:1321,1
    - Dst: for_each
      Src: /src/libtorrent/src/peer_connection.cpp:1326,1
    - Dst: libtorrent::dht::verify_secret_id
      Src: /src/libtorrent/src/peer_connection.cpp:1328,1
    - Dst: ban_ip
      Src: /src/libtorrent/src/peer_connection.cpp:1334,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:1334,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:1338,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1343,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:1343,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1343,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1343,1
    - Dst: std::shared_ptr::is_paused
      Src: /src/libtorrent/src/peer_connection.cpp:1345,1
    - Dst: std::shared_ptr::is_auto_managed
      Src: /src/libtorrent/src/peer_connection.cpp:1346,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:1347,1
    - Dst: std::shared_ptr::is_aborted
      Src: /src/libtorrent/src/peer_connection.cpp:1348,1
    - Dst: std::shared_ptr::resume
      Src: /src/libtorrent/src/peer_connection.cpp:1350,1
    - Dst: std::shared_ptr::is_paused
      Src: /src/libtorrent/src/peer_connection.cpp:1353,1
    - Dst: std::shared_ptr::is_aborted
      Src: /src/libtorrent/src/peer_connection.cpp:1353,1
    - Dst: std::shared_ptr::graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:1353,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1361,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:1363,1
    - Dst: aux::is_i2p
      Src: /src/libtorrent/src/peer_connection.cpp:1368,1
    - Dst: std::shared_ptr::is_i2p
      Src: /src/libtorrent/src/peer_connection.cpp:1369,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:1370,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1375,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:1377,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1382,1
    - Dst: expired
      Src: /src/libtorrent/src/peer_connection.cpp:1382,1
    - Dst: std::shared_ptr::attach_peer
      Src: /src/libtorrent/src/peer_connection.cpp:1386,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:1394,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:1396,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:1397,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:1397,1
    - Dst: pid
      Src: /src/libtorrent/src/peer_connection.cpp:1397,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/peer_connection.cpp:1397,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:1400,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:1400,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:1401,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1403,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1404,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:1404,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:1411,1
    - Dst: find_disconnect_candidate_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:1420,1
    - Dst: std::weak_ptr::lock
      Src: /src/libtorrent/src/peer_connection.cpp:1421,1
    - Dst: std::shared_ptr::num_peers
      Src: /src/libtorrent/src/peer_connection.cpp:1425,1
    - Dst: std::shared_ptr::num_peers
      Src: /src/libtorrent/src/peer_connection.cpp:1425,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:1427,1
    - Dst: std::shared_ptr::find_lowest_ranking_peer
      Src: /src/libtorrent/src/peer_connection.cpp:1431,1
    - Dst: peer_connection*::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:1434,1
    - Dst: peer_disconnected_other
      Src: /src/libtorrent/src/peer_connection.cpp:1435,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:1439,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:1445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1450,1
    - Dst: expired
      Src: /src/libtorrent/src/peer_connection.cpp:1450,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:1455,1
    - Dst: peer_connection::init
      Src: /src/libtorrent/src/peer_connection.cpp:1455,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1457,1
    - Dst: expired
      Src: /src/libtorrent/src/peer_connection.cpp:1457,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1462,1
    - Dst: clear_all
      Src: /src/libtorrent/src/peer_connection.cpp:1463,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1464,1
    - Dst: expired
      Src: /src/libtorrent/src/peer_connection.cpp:1464,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 82
    argCount: 1
    argNames:
    - ' ih'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1278
    functionDepth: 3
    functionLinenumber: 1278
    functionLinenumberEnd: 1465
    functionName: peer_connection::attach_to_torrent
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - for_each
    - std::shared_ptr::resume
    - peer_disconnected_other
    - std::shared_ptr::ready_for_connections
    - expired
    - remote
    - delay_load_torrent
    - socket_type_idx
    - find_disconnect_candidate_torrent
    - peer_connection::disconnect
    - get_bool
    - std::shared_ptr::get_handle
    - pid
    - std::shared_ptr::is_auto_managed
    - ban_ip
    - peer_connection::is_single_thread
    - std::weak_ptr::lock
    - peer_connection::peer_log
    - std::shared_ptr::find_lowest_ranking_peer
    - get_int
    - aux::is_i2p
    - address
    - std::shared_ptr::num_peers
    - peer_connection::init
    - libtorrent::aux::to_hex
    - std::shared_ptr::is_aborted
    - get_best
    - libtorrent::dht::verify_secret_id
    - TORRENT_ASSERT
    - find_torrent
    - peer_connection*::disconnect
    - std::shared_ptr::graceful_pause
    - clear_all
    - std::shared_ptr::info_hash
    - std::shared_ptr::alerts
    - std::shared_ptr::attach_peer
    - peer_connection::should_log
    - peer_info_struct
    - std::shared_ptr::is_paused
    - std::shared_ptr::is_i2p
    - std::shared_ptr::reset
    linkageType: ''
    returnType: void
    signature: void peer_connection::attach_to_torrent(info_hash_t const& ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1469,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1469,1
    - Dst: rank
      Src: /src/libtorrent/src/peer_connection.cpp:1471,1
    - Dst: external_address
      Src: /src/libtorrent/src/peer_connection.cpp:1471,1
    - Dst: listen_port
      Src: /src/libtorrent/src/peer_connection.cpp:1471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1472
    functionName: peer_connection::peer_rank
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - external_address
    - rank
    - listen_port
    - TORRENT_ASSERT
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t peer_connection::peer_rank() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1482,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1482,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1488
    functionName: peer_connection::incoming_keepalive
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - peer_connection::peer_log
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_keepalive()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1496,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1496,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1500,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1503
    functionName: peer_connection::set_endgame
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - inc_stats_counter
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: void
    signature: void peer_connection::set_endgame(bool b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1507,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1507,1
    - Dst: on_choke
      Src: /src/libtorrent/src/peer_connection.cpp:1513,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1516,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1519,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1522,1
    - Dst: peer_connection::set_endgame
      Src: /src/libtorrent/src/peer_connection.cpp:1525,1
    - Dst: peer_connection::clear_request_queue
      Src: /src/libtorrent/src/peer_connection.cpp:1527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1505
    functionDepth: 2
    functionLinenumber: 1505
    functionLinenumberEnd: 1528
    functionName: peer_connection::incoming_choke
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - peer_connection::set_endgame
    - on_choke
    - peer_connection::peer_log
    - is_disconnecting
    - TORRENT_ASSERT
    - inc_stats_counter
    - peer_connection::clear_request_queue
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_choke()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1532,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1532,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1533,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1534,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:1535,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:1537,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1542,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1542,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:1546,1
    - Dst: abort_download
      Src: /src/libtorrent/src/peer_connection.cpp:1549,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1549,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:1551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1554
    functionName: peer_connection::clear_request_queue
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr::has_picker
    - peer_connection::is_single_thread
    - std::shared_ptr::picker
    - TORRENT_ASSERT
    - peer_info_struct
    - lock
    - clear
    - abort_download
    linkageType: ''
    returnType: void
    signature: void peer_connection::clear_request_queue()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1558,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:1559,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1560,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:1561,1
    - Dst: back
      Src: /src/libtorrent/src/peer_connection.cpp:1563,1
    - Dst: abort_download
      Src: /src/libtorrent/src/peer_connection.cpp:1565,1
    - Dst: std::shared_ptr::to_req
      Src: /src/libtorrent/src/peer_connection.cpp:1566,1
    - Dst: pop_back
      Src: /src/libtorrent/src/peer_connection.cpp:1568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1556
    functionDepth: 1
    functionLinenumber: 1556
    functionLinenumberEnd: 1570
    functionName: peer_connection::clear_download_queue
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - std::shared_ptr::picker
    - empty
    - peer_info_struct
    - lock
    - back
    - abort_download
    - std::shared_ptr::to_req
    linkageType: ''
    returnType: void
    signature: void peer_connection::clear_download_queue()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1578,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1578,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1581,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1582,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1585,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1586,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:1586,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:1586,1
    - Dst: on_reject
      Src: /src/libtorrent/src/peer_connection.cpp:1592,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1596,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:1598,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:1600,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:1602,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:1604,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:1604,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1607,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1608,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_connection.cpp:1613,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:1614,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:1614,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:1623,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:1627,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1628,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:1632,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1633,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1636,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1636,1
    - Dst: insert
      Src: /src/libtorrent/src/peer_connection.cpp:1641,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:1641,1
    - Dst: std::shared_ptr::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:1643,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:1645,1
    - Dst: abort_download
      Src: /src/libtorrent/src/peer_connection.cpp:1646,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:1646,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:1649,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1655,1
    - Dst: has_peer_choked
      Src: /src/libtorrent/src/peer_connection.cpp:1659,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:1664,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:1664,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:1664,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:1665,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:1665,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:1669,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:1669,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:1669,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:1670,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:1670,1
    - Dst: peer_connection::check_graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:1673,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1674,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:1676,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:1676,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/peer_connection.cpp:1678,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1679,1
    - Dst: peer_connection::send_block_requests
      Src: /src/libtorrent/src/peer_connection.cpp:1682,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 53
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1576
    functionDepth: 2
    functionLinenumber: 1576
    functionLinenumberEnd: 1683
    functionName: peer_connection::incoming_reject_request
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - empty
    - std::uint32_t
    - std::min
    - std::shared_ptr::is_seed
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - end
    - on_reject
    - std::find
    - peer_connection::check_graceful_pause
    - inc_stats_counter
    - peer_connection::send_block_requests
    - erase
    - is_disconnecting
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::block_size
    - has_peer_choked
    - size
    - std::shared_ptr::torrent_file
    - std::find_if
    - peer_connection::check_invariant
    - request_a_block
    - std::shared_ptr::picker
    - insert
    - peer_info_struct
    - abort_download
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_reject_request(peer_request const& r)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1691,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1691,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1695,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1696,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1698,1
    - Dst: on_suggest
      Src: /src/libtorrent/src/peer_connection.cpp:1704,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1708,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:1709,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1712,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1713,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:1718,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:1720,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1723,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1724,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:1724,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:1731,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:1739,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:1739,1
    - Dst: resize
      Src: /src/libtorrent/src/peer_connection.cpp:1740,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:1740,1
    - Dst: insert
      Src: /src/libtorrent/src/peer_connection.cpp:1742,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:1742,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1745,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1746,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:1746,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1689
    functionDepth: 1
    functionLinenumber: 1689
    functionLinenumberEnd: 1748
    functionName: peer_connection::incoming_suggest
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - on_suggest
    - peer_connection::is_single_thread
    - std::shared_ptr::have_piece
    - begin
    - peer_connection::peer_log
    - insert
    - is_disconnecting
    - TORRENT_ASSERT
    - get_int
    - resize
    - lock
    - std::shared_ptr::valid_metadata
    - end_index
    - piece_index_t
    - size
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_suggest(piece_index_t const index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1756,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1756,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1759,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1760,1
    - Dst: on_unchoke
      Src: /src/libtorrent/src/peer_connection.cpp:1765,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1770,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1773,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:1776,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:1776,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1777,1
    - Dst: is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:1779,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/peer_connection.cpp:1781,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1782,1
    - Dst: peer_connection::send_block_requests
      Src: /src/libtorrent/src/peer_connection.cpp:1783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1785
    functionName: peer_connection::incoming_unchoke
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - on_unchoke
    - request_a_block
    - peer_connection::is_single_thread
    - peer_connection::send_block_requests
    - peer_connection::peer_log
    - is_disconnecting
    - set
    - TORRENT_ASSERT
    - inc_stats_counter
    - lock
    - is_interesting
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_unchoke()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1793,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1793,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1797,1
    - Dst: on_interested
      Src: /src/libtorrent/src/peer_connection.cpp:1802,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1807,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1811,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1814,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:1819,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1820,1
    - Dst: std::shared_ptr::graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:1822,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1825,1
    - Dst: is_choked
      Src: /src/libtorrent/src/peer_connection.cpp:1831,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1842,1
    - Dst: write_unchoke
      Src: /src/libtorrent/src/peer_connection.cpp:1844,1
    - Dst: peer_connection::maybe_unchoke_this_peer
      Src: /src/libtorrent/src/peer_connection.cpp:1848,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1791
    functionDepth: 1
    functionLinenumber: 1791
    functionLinenumberEnd: 1849
    functionName: peer_connection::incoming_interested
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - write_unchoke
    - std::shared_ptr::graceful_pause
    - peer_connection::is_single_thread
    - on_interested
    - peer_connection::peer_log
    - is_disconnecting
    - TORRENT_ASSERT
    - inc_stats_counter
    - lock
    - peer_connection::disconnect_if_redundant
    - peer_connection::maybe_unchoke_this_peer
    - is_choked
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_interested()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1853,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1853,1
    - Dst: peer_connection::ignore_unchoke_slots
      Src: /src/libtorrent/src/peer_connection.cpp:1854,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1857,1
    - Dst: peer_connection::send_unchoke
      Src: /src/libtorrent/src/peer_connection.cpp:1861,1
    - Dst: preemptive_unchoke
      Src: /src/libtorrent/src/peer_connection.cpp:1863,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1868,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1869,1
    - Dst: std::shared_ptr::unchoke_peer
      Src: /src/libtorrent/src/peer_connection.cpp:1871,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1876,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:1880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1883
    functionName: peer_connection::maybe_unchoke_this_peer
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::ignore_unchoke_slots
    - std::shared_ptr::unchoke_peer
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - TORRENT_ASSERT
    - preemptive_unchoke
    - get_int
    - peer_connection::send_unchoke
    - lock
    linkageType: ''
    returnType: void
    signature: void peer_connection::maybe_unchoke_this_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1876,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:1880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1881
    functionName: if
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 115
    functionsReached:
    - get_int
    - peer_log
    linkageType: ''
    returnType: else
    signature: else if (should_log(peer_log_alert::info))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1891,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1891,1
    - Dst: on_not_interested
      Src: /src/libtorrent/src/peer_connection.cpp:1897,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1902,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1906,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:1907,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:1907,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1911,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1913,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1914,1
    - Dst: peer_connection::choke_this_peer
      Src: /src/libtorrent/src/peer_connection.cpp:1916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1889
    functionDepth: 1
    functionLinenumber: 1889
    functionLinenumberEnd: 1917
    functionName: peer_connection::incoming_not_interested
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::choke_this_peer
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - is_disconnecting
    - set
    - TORRENT_ASSERT
    - inc_stats_counter
    - lock
    - on_not_interested
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_not_interested()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1921,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1921,1
    - Dst: is_choked
      Src: /src/libtorrent/src/peer_connection.cpp:1922,1
    - Dst: peer_connection::ignore_unchoke_slots
      Src: /src/libtorrent/src/peer_connection.cpp:1923,1
    - Dst: peer_connection::send_choke
      Src: /src/libtorrent/src/peer_connection.cpp:1925,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1929,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1930,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:1935,1
    - Dst: std::shared_ptr::trigger_optimistic_unchoke
      Src: /src/libtorrent/src/peer_connection.cpp:1936,1
    - Dst: std::shared_ptr::choke_peer
      Src: /src/libtorrent/src/peer_connection.cpp:1938,1
    - Dst: std::shared_ptr::trigger_unchoke
      Src: /src/libtorrent/src/peer_connection.cpp:1939,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1940
    functionName: peer_connection::choke_this_peer
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::ignore_unchoke_slots
    - peer_connection::is_single_thread
    - TORRENT_ASSERT
    - std::shared_ptr::choke_peer
    - peer_connection::send_choke
    - lock
    - inc_stats_counter
    - std::shared_ptr::trigger_unchoke
    - is_choked
    - std::shared_ptr::trigger_optimistic_unchoke
    linkageType: ''
    returnType: void
    signature: void peer_connection::choke_this_peer()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1948,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:1948,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:1951,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:1952,1
    - Dst: on_have
      Src: /src/libtorrent/src/peer_connection.cpp:1957,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1961,1
    - Dst: peer_connection::incoming_have_none
      Src: /src/libtorrent/src/peer_connection.cpp:1965,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:1970,1
    - Dst: is_choked
      Src: /src/libtorrent/src/peer_connection.cpp:1971,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/peer_connection.cpp:1972,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:1972,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:1972,1
    - Dst: peer_connection::send_piece_suggestions
      Src: /src/libtorrent/src/peer_connection.cpp:1975,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:1979,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1980,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:1983,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:1985,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:1985,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:1987,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:1987,1
    - Dst: resize
      Src: /src/libtorrent/src/peer_connection.cpp:1993,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:1993,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:2004,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:2004,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2007,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2008,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2008,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2010,1
    - Dst: std::shared_ptr::super_seeding
      Src: /src/libtorrent/src/peer_connection.cpp:2015,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:2017,1
    - Dst: super_seeded_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2027,1
    - Dst: peer_connection::superseed_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2029,1
    - Dst: std::shared_ptr::get_piece_to_super_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2029,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2037,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2039,1
    - Dst: set_bit
      Src: /src/libtorrent/src/peer_connection.cpp:2044,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2054,1
    - Dst: std::shared_ptr::peer_has
      Src: /src/libtorrent/src/peer_connection.cpp:2056,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2061,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2064,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/peer_connection.cpp:2065,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2068,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:2068,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2069,1
    - Dst: all_set
      Src: /src/libtorrent/src/peer_connection.cpp:2069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2070,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:2070,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2070,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2071,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2071,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2071,1
    - Dst: std::shared_ptr::seen_complete
      Src: /src/libtorrent/src/peer_connection.cpp:2073,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2074,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2075,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2075,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:2078,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:2079,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:2079,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:2081,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2087,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:2088,1
    - Dst: is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:2089,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:2090,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:2090,1
    - Dst: std::shared_ptr::peer_is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:2091,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:2093,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:2094,1
    - Dst: std::shared_ptr::super_seeding
      Src: /src/libtorrent/src/peer_connection.cpp:2101,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:2102,1
    - Dst: super_seeded_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2103,1
    - Dst: std::shared_ptr::num_peers
      Src: /src/libtorrent/src/peer_connection.cpp:2103,1
    - Dst: super_seeded_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2107,1
    - Dst: peer_connection::has_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2108,1
    - Dst: peer_connection::superseed_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2109,1
    - Dst: std::shared_ptr::get_piece_to_super_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2109,1
    - Dst: get_bitfield
      Src: /src/libtorrent/src/peer_connection.cpp:2109,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 73
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 1946
    functionDepth: 2
    functionLinenumber: 1946
    functionLinenumberEnd: 2114
    functionName: peer_connection::incoming_have
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::superseed_piece
    - std::shared_ptr::has_picker
    - count
    - std::shared_ptr::ready_for_connections
    - begin
    - std::shared_ptr::get_piece_to_super_seed
    - peer_connection::is_seed
    - peer_connection::disconnect
    - peer_connection::disconnect_if_redundant
    - get_bool
    - is_interesting
    - std::shared_ptr::seen_complete
    - get_bitfield
    - peer_connection::is_single_thread
    - peer_connection::incoming_have_none
    - peer_connection::peer_log
    - end
    - std::shared_ptr::peer_has
    - get_int
    - std::shared_ptr::super_seeding
    - set_bit
    - std::shared_ptr::num_peers
    - std::shared_ptr::have_piece
    - is_disconnecting
    - std::shared_ptr::is_upload_only
    - TORRENT_ASSERT
    - peer_connection::send_piece_suggestions
    - static_cast<void*>
    - lock
    - is_choked
    - std::shared_ptr::valid_metadata
    - end_index
    - piece_index_t
    - size
    - std::shared_ptr::torrent_file
    - all_set
    - std::shared_ptr::picker
    - std::shared_ptr::peer_is_interesting
    - std::shared_ptr::set_seed
    - peer_connection::has_piece
    - on_have
    - resize
    - std::any_of
    - peer_info_struct
    - super_seeded_piece
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_have(piece_index_t const index)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2122,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2122,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:2125,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2126,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2129,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2132,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2133,1
    - Dst: on_dont_have
      Src: /src/libtorrent/src/peer_connection.cpp:2141,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:2145,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2148,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2149,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:2153,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:2153,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2155,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2162,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2164,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2169,1
    - Dst: clear_bit
      Src: /src/libtorrent/src/peer_connection.cpp:2170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2171,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2179,1
    - Dst: std::shared_ptr::peer_lost
      Src: /src/libtorrent/src/peer_connection.cpp:2181,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2186,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2120
    functionDepth: 2
    functionLinenumber: 2120
    functionLinenumberEnd: 2188
    functionName: peer_connection::incoming_dont_have
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - std::shared_ptr::set_seed
    - is_disconnecting
    - clear_bit
    - std::shared_ptr::peer_lost
    - TORRENT_ASSERT
    - peer_connection::is_seed
    - on_dont_have
    - lock
    - peer_connection::disconnect
    - std::shared_ptr::valid_metadata
    - end_index
    - piece_index_t
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_dont_have(piece_index_t const index)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2196,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2196,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:2199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2200,1
    - Dst: on_bitfield
      Src: /src/libtorrent/src/peer_connection.cpp:2205,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:2209,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:2212,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/peer_connection.cpp:2215,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/peer_connection.cpp:2215,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2215,1
    - Dst: range
      Src: /src/libtorrent/src/peer_connection.cpp:2216,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/peer_connection.cpp:2217,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2217,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2218,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/peer_connection.cpp:2219,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2225,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2226,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2226,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:2229,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2231,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2232,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2233,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2236,1
    - Dst: std::shared_ptr::peer_lost
      Src: /src/libtorrent/src/peer_connection.cpp:2245,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:2254,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2257,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2258,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/peer_connection.cpp:2259,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:2262,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2263,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2264,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2264,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2264,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2264,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:2267,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:2268,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:2268,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2273,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2273,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:2275,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2276,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2276,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2277,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2280,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/peer_connection.cpp:2281,1
    - Dst: set_all
      Src: /src/libtorrent/src/peer_connection.cpp:2284,1
    - Dst: std::shared_ptr::peer_has_all
      Src: /src/libtorrent/src/peer_connection.cpp:2286,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2287,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2287,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2289,1
    - Dst: all_set
      Src: /src/libtorrent/src/peer_connection.cpp:2289,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2290,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:2290,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2291,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2291,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2291,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:2294,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:2295,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:2295,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:2299,1
    - Dst: std::shared_ptr::peer_is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:2300,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:2302,1
    - Dst: std::shared_ptr::peer_has
      Src: /src/libtorrent/src/peer_connection.cpp:2309,1
    - Dst: peer_connection::update_interest
      Src: /src/libtorrent/src/peer_connection.cpp:2314,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2194
    functionDepth: 2
    functionLinenumber: 2194
    functionLinenumberEnd: 2315
    functionName: peer_connection::incoming_bitfield
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::shared_ptr::has_picker
    - count
    - std::shared_ptr::ready_for_connections
    - peer_connection::is_seed
    - peer_connection::disconnect
    - peer_connection::disconnect_if_redundant
    - peer_connection::is_single_thread
    - aux::numeric_cast<std::size_t>
    - peer_connection::peer_log
    - on_bitfield
    - std::shared_ptr::peer_has
    - std::size_t
    - is_disconnecting
    - std::shared_ptr::peer_lost
    - std::shared_ptr::is_upload_only
    - TORRENT_ASSERT
    - range
    - static_cast<void*>
    - lock
    - std::string::resize
    - std::shared_ptr::peer_has_all
    - std::shared_ptr::valid_metadata
    - size
    - std::shared_ptr::torrent_file
    - all_set
    - peer_connection::update_interest
    - set_all
    - std::shared_ptr::picker
    - std::shared_ptr::peer_is_interesting
    - std::shared_ptr::set_seed
    - std::string::c_str
    - peer_connection::should_log
    - peer_info_struct
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_bitfield(typed_bitfield<piece_index_t>
      const& bits)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2319,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2324,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:2325,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:2327,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2334,1
    - Dst: has_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2334,1
    - Dst: std::shared_ptr::share_mode
      Src: /src/libtorrent/src/peer_connection.cpp:2338,1
    - Dst: upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:2341,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:2341,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2342,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2345,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2347,1
    - Dst: upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:2351,1
    - Dst: std::shared_ptr::are_files_checked
      Src: /src/libtorrent/src/peer_connection.cpp:2354,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2355,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2358,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2360,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2317
    functionDepth: 2
    functionLinenumber: 2317
    functionLinenumberEnd: 2365
    functionName: peer_connection::disconnect_if_redundant
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 7
    functionsReached:
    - peer_connection::can_disconnect
    - upload_only
    - has_metadata
    - peer_connection::is_single_thread
    - std::shared_ptr::share_mode
    - std::shared_ptr::are_files_checked
    - peer_connection::peer_log
    - std::shared_ptr::is_upload_only
    - TORRENT_ASSERT
    - lock
    - peer_connection::disconnect
    - get_bool
    - std::shared_ptr::valid_metadata
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::disconnect_if_redundant()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2369,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2369,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2373,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:2376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2367
    functionDepth: 1
    functionLinenumber: 2367
    functionLinenumberEnd: 2379
    functionName: peer_connection::can_disconnect
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - peer_connection::can_disconnect
    - peer_connection::is_single_thread
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::can_disconnect(error_code const& ec) const
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2387,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2387,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:2390,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2391,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2392,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2394,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:2398,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2399,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2401,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2402,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:2402,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:2402,1
    - Dst: std::shared_ptr::super_seeding
      Src: /src/libtorrent/src/peer_connection.cpp:2406,1
    - Dst: super_seeded_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2407,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2409,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/peer_connection.cpp:2410,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:2413,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2415,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2419,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2420,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2421,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2422,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2423,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:2427,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2429,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2434,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:2435,1
    - Dst: std::shared_ptr::user_have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2436,1
    - Dst: peer_connection::incoming_have_none
      Src: /src/libtorrent/src/peer_connection.cpp:2444,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:2445,1
    - Dst: on_request
      Src: /src/libtorrent/src/peer_connection.cpp:2450,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:2452,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2455,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2457,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2461,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:2463,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2467,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:2467,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2469,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2475,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2476,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:2478,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:2483,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2483,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:2484,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:2485,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2485,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:2490,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2492,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2495,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2496,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2497,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2498,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2501,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2503,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:2504,1
    - Dst: std::shared_ptr::user_have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2505,1
    - Dst: peer_connection::incoming_interested
      Src: /src/libtorrent/src/peer_connection.cpp:2510,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:2516,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2517,1
    - Dst: std::shared_ptr::user_have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2518,1
    - Dst: std::shared_ptr::is_predictive_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2520,1
    - Dst: std::shared_ptr::seed_mode
      Src: /src/libtorrent/src/peer_connection.cpp:2522,1
    - Dst: piece_size
      Src: /src/libtorrent/src/peer_connection.cpp:2524,1
    - Dst: piece_size
      Src: /src/libtorrent/src/peer_connection.cpp:2526,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2527,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2529,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:2532,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2534,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2538,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/peer_connection.cpp:2539,1
    - Dst: std::shared_ptr::user_have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2540,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2541,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:2545,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/peer_connection.cpp:2546,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2549,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2554,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:2555,1
    - Dst: std::shared_ptr::user_have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2556,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2567,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2569,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2573,1
    - Dst: write_choke
      Src: /src/libtorrent/src/peer_connection.cpp:2575,1
    - Dst: piece_length
      Src: /src/libtorrent/src/peer_connection.cpp:2584,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2584,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2584,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2589,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2591,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2598,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2600,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:2601,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:2605,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:2605,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:2605,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2606,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2608,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:2618,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2619,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2621,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:2621,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2622,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:2622,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2623,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2623,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2624,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2625,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:2627,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2629,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2631,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:2631,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:2635,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:2635,1
    - Dst: peer_connection::fill_send_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:2636,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 102
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2385
    functionDepth: 2
    functionLinenumber: 2385
    functionLinenumberEnd: 2638
    functionName: peer_connection::incoming_request
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::can_disconnect
    - begin
    - peer_connection::incoming_interested
    - std::uint32_t
    - seconds
    - empty
    - peer_connection::disconnect
    - std::shared_ptr::get_handle
    - libtorrent::aux::time_now
    - push_back
    - peer_connection::is_single_thread
    - std::shared_ptr::is_predictive_piece
    - peer_connection::incoming_have_none
    - peer_connection::peer_log
    - end
    - std::find
    - set
    - get_int
    - write_reject_request
    - inc_stats_counter
    - num_pieces
    - std::shared_ptr::super_seeding
    - write_choke
    - piece_size
    - std::shared_ptr::have_piece
    - is_disconnecting
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - lock
    - on_request
    - std::shared_ptr::block_size
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - size
    - std::shared_ptr::torrent_file
    - std::shared_ptr::seed_mode
    - peer_connection::fill_send_buffer
    - std::shared_ptr::alerts
    - peer_connection::should_log
    - piece_length
    - std::shared_ptr::user_have_piece
    - super_seeded_piece
    - get
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_request(peer_request const& r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2643,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2643,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2644,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:2644,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:2648,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:2649,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:2651,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2641
    functionDepth: 1
    functionLinenumber: 2641
    functionLinenumberEnd: 2654
    functionName: peer_connection::reject_piece
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - begin
    - erase
    - empty
    - end
    - TORRENT_ASSERT
    - write_reject_request
    - inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void peer_connection::reject_piece(piece_index_t const index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2658,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2658,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:2659,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:2659,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/peer_connection.cpp:2660,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:2663,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2665,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2665,1
    - Dst: std::shared_ptr::state_updated
      Src: /src/libtorrent/src/peer_connection.cpp:2670,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:2673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2656
    functionDepth: 1
    functionLinenumber: 2656
    functionLinenumberEnd: 2675
    functionName: peer_connection::incoming_piece_fragment
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - associated_torrent
    - TORRENT_ASSERT_VAL
    - set
    - TORRENT_ASSERT
    - peer_connection::check_invariant
    - std::shared_ptr::block_size
    - libtorrent::aux::time_now
    - std::shared_ptr::state_updated
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_piece_fragment(int const bytes)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2679,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2679,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:2681,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:2684,1
    - Dst: span::end
      Src: /src/libtorrent/src/peer_connection.cpp:2685,1
    - Dst: span::begin
      Src: /src/libtorrent/src/peer_connection.cpp:2685,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2686,1
    - Dst: associated_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:2689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2690,1
    - Dst: peer_connection::validate_piece_request
      Src: /src/libtorrent/src/peer_connection.cpp:2692,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2695,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2696,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:2698,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2702,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2718,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:2719,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2723,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:2725,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:2729,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2730,1
    - Dst: insert
      Src: /src/libtorrent/src/peer_connection.cpp:2732,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2732,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2735,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2737,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:2737,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2741,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2744,1
    - Dst: front
      Src: /src/libtorrent/src/peer_connection.cpp:2744,1
    - Dst: front
      Src: /src/libtorrent/src/peer_connection.cpp:2745,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2677
    functionDepth: 2
    functionLinenumber: 2677
    functionLinenumberEnd: 2749
    functionName: peer_connection::start_receive_piece
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::validate_piece_request
    - associated_torrent
    - begin
    - empty
    - peer_connection::disconnect
    - std::shared_ptr::get_handle
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - end
    - front
    - inc_stats_counter
    - span::begin
    - span::end
    - erase
    - TORRENT_ASSERT
    - std::shared_ptr::block_size
    - peer_connection::check_invariant
    - insert
    - std::shared_ptr::alerts
    - get
    linkageType: ''
    returnType: void
    signature: void peer_connection::start_receive_piece(peer_request const& r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/libtorrent/src/peer_connection.cpp:2755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' t_'
    argTypes:
    - std::shared_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2754
    functionDepth: 0
    functionLinenumber: 2754
    functionLinenumberEnd: 2755
    functionName: check_postcondition
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: "void check_postcondition(std::shared_ptr<torrent> const& t_\n\t\t\t,
      bool init_check = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/libtorrent/src/peer_connection.cpp:2757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2757
    functionDepth: 0
    functionLinenumber: 2757
    functionLinenumberEnd: 2757
    functionName: ~check_postcondition()
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: void ~check_postcondition()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2761,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2763,1
    - Dst: torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:2764,1
    - Dst: block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2764,1
    - Dst: block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2764,1
    - Dst: picker
      Src: /src/libtorrent/src/peer_connection.cpp:2767,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2770,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:2770,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2759
    functionDepth: 2
    functionLinenumber: 2759
    functionLinenumberEnd: 2775
    functionName: check
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 24
    functionsReached:
    - static_cast<int>
    - begin
    - block_size
    - end
    - picker
    - TORRENT_ASSERT
    - is_seed
    - torrent_file
    linkageType: ''
    returnType: void
    signature: void check()
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2788,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:2788,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:2791,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2792,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/peer_connection.cpp:2799,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:2800,1
    - Dst: peer_connection::incoming_have_none
      Src: /src/libtorrent/src/peer_connection.cpp:2808,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:2809,1
    - Dst: peer_connection::update_desired_queue_size
      Src: /src/libtorrent/src/peer_connection.cpp:2815,1
    - Dst: on_piece
      Src: /src/libtorrent/src/peer_connection.cpp:2820,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2823,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:2830,1
    - Dst: std::shared_ptr::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:2835,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:2840,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2842,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2843,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:2843,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:2843,1
    - Dst: statistics
      Src: /src/libtorrent/src/peer_connection.cpp:2843,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:2844,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2850,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2852,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:2852,1
    - Dst: peer_connection::incoming_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:2856,1
    - Dst: std::shared_ptr::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:2862,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2865,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:2868,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:2870,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2870,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:2871,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2872,1
    - Dst: std::shared_ptr::add_redundant_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:2874,1
    - Dst: time_now
      Src: /src/libtorrent/src/peer_connection.cpp:2878,1
    - Dst: std::shared_ptr::need_picker
      Src: /src/libtorrent/src/peer_connection.cpp:2880,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:2882,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:2884,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:2885,1
    - Dst: peer_connection::validate_piece_request
      Src: /src/libtorrent/src/peer_connection.cpp:2885,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_connection.cpp:2887,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:2887,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:2888,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/peer_connection.cpp:2888,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:2890,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2892,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2894,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:2894,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2899,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/peer_connection.cpp:2902,1
    - Dst: std::shared_ptr::add_redundant_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:2905,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:2914,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/peer_connection.cpp:2920,1
    - Dst: is_downloaded
      Src: /src/libtorrent/src/peer_connection.cpp:2924,1
    - Dst: std::shared_ptr::add_redundant_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:2932,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:2934,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:2935,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2936,1
    - Dst: add_sample
      Src: /src/libtorrent/src/peer_connection.cpp:2940,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/peer_connection.cpp:2940,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:2940,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:2942,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2944,1
    - Dst: mean
      Src: /src/libtorrent/src/peer_connection.cpp:2945,1
    - Dst: avg_deviation
      Src: /src/libtorrent/src/peer_connection.cpp:2945,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:2952,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:2953,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/peer_connection.cpp:2955,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2956,1
    - Dst: peer_connection::send_block_requests
      Src: /src/libtorrent/src/peer_connection.cpp:2957,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:2963,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:2963,1
    - Dst: peer_connection::request_timeout
      Src: /src/libtorrent/src/peer_connection.cpp:2963,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2967,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:2969,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:2969,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:2975,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:2976,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:2976,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:2976,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:2978,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:2979,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2980,1
    - Dst: std::shared_ptr::is_deleted
      Src: /src/libtorrent/src/peer_connection.cpp:2982,1
    - Dst: async_write
      Src: /src/libtorrent/src/peer_connection.cpp:2984,1
    - Dst: std::shared_ptr::storage
      Src: /src/libtorrent/src/peer_connection.cpp:2984,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:2984,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:2985,1
    - Dst: wrap
      Src: /src/libtorrent/src/peer_connection.cpp:2986,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/peer_connection.cpp:2987,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:2998,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3001,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3005,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:3009,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:3013,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:3015,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:3015,1
    - Dst: add_sample
      Src: /src/libtorrent/src/peer_connection.cpp:3019,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/peer_connection.cpp:3019,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:3019,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:3021,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3023,1
    - Dst: mean
      Src: /src/libtorrent/src/peer_connection.cpp:3024,1
    - Dst: avg_deviation
      Src: /src/libtorrent/src/peer_connection.cpp:3024,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:3031,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:3032,1
    - Dst: is_piece_finished
      Src: /src/libtorrent/src/peer_connection.cpp:3034,1
    - Dst: num_peers
      Src: /src/libtorrent/src/peer_connection.cpp:3036,1
    - Dst: mark_as_writing
      Src: /src/libtorrent/src/peer_connection.cpp:3039,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:3039,1
    - Dst: std::shared_ptr::info_hashes
      Src: /src/libtorrent/src/peer_connection.cpp:3043,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3045,1
    - Dst: async_hash2
      Src: /src/libtorrent/src/peer_connection.cpp:3046,1
    - Dst: std::shared_ptr::storage
      Src: /src/libtorrent/src/peer_connection.cpp:3046,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:3047,1
    - Dst: wrap
      Src: /src/libtorrent/src/peer_connection.cpp:3049,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/peer_connection.cpp:3051,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3055,1
    - Dst: num_peers
      Src: /src/libtorrent/src/peer_connection.cpp:3055,1
    - Dst: std::shared_ptr::cancel_block
      Src: /src/libtorrent/src/peer_connection.cpp:3057,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:3060,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3064,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3066,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3069,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/peer_connection.cpp:3070,1
    - Dst: torrent_peer*::connection::statistics
      Src: /src/libtorrent/src/peer_connection.cpp:3080,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/peer_connection.cpp:3081,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:3081,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:3085,1
    - Dst: std::shared_ptr::predicted_have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:3088,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3096,1
    - Dst: num_peers
      Src: /src/libtorrent/src/peer_connection.cpp:3096,1
    - Dst: std::shared_ptr::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:3100,1
    - Dst: piece_info
      Src: /src/libtorrent/src/peer_connection.cpp:3105,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/peer_connection.cpp:3106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3108,1
    - Dst: is_piece_finished
      Src: /src/libtorrent/src/peer_connection.cpp:3108,1
    - Dst: is_piece_finished
      Src: /src/libtorrent/src/peer_connection.cpp:3114,1
    - Dst: std::shared_ptr::verify_piece
      Src: /src/libtorrent/src/peer_connection.cpp:3119,1
    - Dst: peer_connection::check_graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:3122,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:3124,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/peer_connection.cpp:3126,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3127,1
    - Dst: peer_connection::send_block_requests
      Src: /src/libtorrent/src/peer_connection.cpp:3128,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 147
    argCount: 2
    argNames:
    - ' p'
    - data
    argTypes:
    - peer_request
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3129
      start: 2786
    functionDepth: 3
    functionLinenumber: 2786
    functionLinenumberEnd: 3129
    functionName: peer_connection::incoming_piece
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - wrap
    - std::vector::size
    - begin
    - peer_connection::validate_piece_request
    - mark_as_writing
    - empty
    - std::uint32_t
    - std::shared_ptr::check_invariant
    - std::shared_ptr::predicted_have_piece
    - std::shared_ptr::verify_piece
    - self
    - mean
    - deferred_submit_jobs
    - async_hash2
    - std::shared_ptr::get_handle
    - peer_connection::request_timeout
    - std::shared_ptr::is_seed
    - peer_connection::is_single_thread
    - add_sample
    - statistics
    - peer_connection::incoming_have_none
    - peer_connection::peer_log
    - end
    - peer_connection::check_graceful_pause
    - set
    - get_int
    - blocks_in_piece
    - inc_stats_counter
    - piece_info
    - peer_connection::incoming_reject_request
    - num_peers
    - libtorrent::aux::has_block
    - address
    - std::shared_ptr::is_deleted
    - on_piece
    - is_downloaded
    - time_now
    - peer_connection::send_block_requests
    - libtorrent::aux::is_v4
    - TORRENT_ASSERT_VAL
    - erase
    - is_disconnecting
    - torrent_peer*::connection::statistics
    - std::shared_ptr::add_redundant_bytes
    - TORRENT_ASSERT
    - avg_deviation
    - std::shared_ptr::need_picker
    - std::shared_ptr::storage
    - lock
    - std::shared_ptr::cancel_block
    - std::shared_ptr::block_size
    - total_milliseconds
    - size
    - peer_connection::check_invariant
    - peer_connection::update_desired_queue_size
    - std::find_if
    - is_piece_finished
    - async_write
    - request_a_block
    - std::shared_ptr::info_hashes
    - std::shared_ptr::picker
    - total_seconds
    - std::shared_ptr::alerts
    - peer_connection::should_log
    - std::int64_t
    - peer_info_struct
    - get
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_piece(peer_request const& p, char const*
      data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3138,1
    - Dst: std::shared_ptr::graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:3139,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3144,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:3146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3131
    functionDepth: 0
    functionLinenumber: 3131
    functionLinenumberEnd: 3147
    functionName: peer_connection::check_graceful_pause
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 2
    functionsReached:
    - std::shared_ptr::graceful_pause
    - lock
    - peer_connection::peer_log
    - peer_connection::disconnect
    linkageType: ''
    returnType: void
    signature: void peer_connection::check_graceful_pause()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3152,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3152,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:3154,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3156,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3157,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:3157,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:3157,1
    - Dst: ec::message
      Src: /src/libtorrent/src/peer_connection.cpp:3157,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3164,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3171,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:3179,1
    - Dst: peer_connection::setup_receive
      Src: /src/libtorrent/src/peer_connection.cpp:3185,1
    - Dst: std::shared_ptr<torrent>::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:3187,1
    - Dst: std::shared_ptr<torrent>::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:3196,1
    - Dst: std::shared_ptr<torrent>::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3197,1
    - Dst: std::shared_ptr<torrent>::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:3203,1
    - Dst: std::shared_ptr<torrent>::cancel_block
      Src: /src/libtorrent/src/peer_connection.cpp:3205,1
    - Dst: std::shared_ptr<torrent>::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3206,1
    - Dst: std::shared_ptr<torrent>::has_storage
      Src: /src/libtorrent/src/peer_connection.cpp:3209,1
    - Dst: async_clear_piece
      Src: /src/libtorrent/src/peer_connection.cpp:3214,1
    - Dst: std::shared_ptr<torrent>::storage
      Src: /src/libtorrent/src/peer_connection.cpp:3214,1
    - Dst: std::shared_ptr<torrent>::wrap
      Src: /src/libtorrent/src/peer_connection.cpp:3216,1
    - Dst: std::shared_ptr<torrent>::on_piece_fail_sync
      Src: /src/libtorrent/src/peer_connection.cpp:3223,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/peer_connection.cpp:3225,1
    - Dst: std::shared_ptr<torrent>::update_gauge
      Src: /src/libtorrent/src/peer_connection.cpp:3227,1
    - Dst: std::shared_ptr<torrent>::handle_disk_error
      Src: /src/libtorrent/src/peer_connection.cpp:3229,1
    - Dst: std::shared_ptr<torrent>::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:3233,1
    - Dst: std::shared_ptr<torrent>::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3235,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3237,1
    - Dst: num_peers
      Src: /src/libtorrent/src/peer_connection.cpp:3237,1
    - Dst: mark_as_finished
      Src: /src/libtorrent/src/peer_connection.cpp:3241,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:3241,1
    - Dst: std::shared_ptr<torrent>::maybe_done_flushing
      Src: /src/libtorrent/src/peer_connection.cpp:3243,1
    - Dst: std::shared_ptr<torrent>::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:3245,1
    - Dst: std::shared_ptr<torrent>::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:3247,1
    - Dst: std::shared_ptr<torrent>::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:3247,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:3248,1
    - Dst: pid
      Src: /src/libtorrent/src/peer_connection.cpp:3248,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:3252,1
    - Dst: std::shared_ptr<torrent>::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:3257,1
    - Dst: get_download_queue
      Src: /src/libtorrent/src/peer_connection.cpp:3259,1
    - Dst: blocks_for_piece
      Src: /src/libtorrent/src/peer_connection.cpp:3264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3265,1
    - Dst: std::shared_ptr<torrent>::is_aborted
      Src: /src/libtorrent/src/peer_connection.cpp:3270,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 3
    argNames:
    - ' error'
    - ' p'
    - t
    argTypes:
    - storage_error
    - peer_request
    - std::shared_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3271
      start: 3149
    functionDepth: 3
    functionLinenumber: 3149
    functionLinenumberEnd: 3271
    functionName: peer_connection::on_disk_write_complete
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::shared_ptr<torrent>::picker
    - std::shared_ptr<torrent>::has_picker
    - std::uint32_t
    - remote
    - peer_connection::disconnect
    - peer_connection::disconnect_if_redundant
    - deferred_submit_jobs
    - blocks_for_piece
    - std::shared_ptr<torrent>::on_piece_fail_sync
    - mark_as_finished
    - pid
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - inc_stats_counter
    - num_peers
    - get_download_queue
    - std::shared_ptr<torrent>::storage
    - std::shared_ptr<torrent>::maybe_done_flushing
    - std::shared_ptr<torrent>::update_gauge
    - std::shared_ptr<torrent>::is_aborted
    - TORRENT_ASSERT
    - peer_connection::setup_receive
    - std::shared_ptr<torrent>::cancel_block
    - std::shared_ptr<torrent>::has_storage
    - async_clear_piece
    - std::shared_ptr<torrent>::get_handle
    - std::shared_ptr<torrent>::block_size
    - peer_connection::should_log
    - ec::message
    - peer_info_struct
    - std::shared_ptr<torrent>::alerts
    - std::shared_ptr<torrent>::wrap
    - std::shared_ptr<torrent>::handle_disk_error
    linkageType: ''
    returnType: void
    signature: "void peer_connection::on_disk_write_complete(storage_error const&
      error\n\t\t, peer_request const& p, std::shared_ptr<torrent> t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3279,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3279,1
    - Dst: on_cancel
      Src: /src/libtorrent/src/peer_connection.cpp:3285,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:3288,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3291,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3292,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:3292,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:3292,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:3295,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3295,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3295,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3297,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3299,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:3300,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:3302,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3303,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:3305,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3277
    functionDepth: 1
    functionLinenumber: 3277
    functionLinenumberEnd: 3318
    functionName: peer_connection::incoming_cancel
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::is_single_thread
    - begin
    - on_cancel
    - peer_connection::peer_log
    - std::uint32_t
    - is_disconnecting
    - std::find
    - end
    - TORRENT_ASSERT
    - erase
    - empty
    - inc_stats_counter
    - write_reject_request
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_cancel(peer_request const& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3326,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3326,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3330,1
    - Dst: add_dht_node
      Src: /src/libtorrent/src/peer_connection.cpp:3333,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:3333,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/peer_connection.cpp:3333,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:3335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - listen_port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3324
    functionDepth: 1
    functionLinenumber: 3324
    functionLinenumberEnd: 3337
    functionName: peer_connection::incoming_dht_port
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - std::uint16_t
    - peer_connection::peer_log
    - add_dht_node
    - TORRENT_ASSERT
    - address
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_dht_port(int const listen_port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3345,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3345,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3348,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3353,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3356,1
    - Dst: on_have_all
      Src: /src/libtorrent/src/peer_connection.cpp:3362,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:3365,1
    - Dst: std::shared_ptr::peer_lost
      Src: /src/libtorrent/src/peer_connection.cpp:3368,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3373,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/peer_connection.cpp:3374,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/peer_connection.cpp:3377,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:3384,1
    - Dst: std::shared_ptr::peer_is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:3388,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:3390,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3394,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:3394,1
    - Dst: set_all
      Src: /src/libtorrent/src/peer_connection.cpp:3395,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:3396,1
    - Dst: std::shared_ptr::peer_has_all
      Src: /src/libtorrent/src/peer_connection.cpp:3398,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:3401,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3402,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:3402,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3405,1
    - Dst: all_set
      Src: /src/libtorrent/src/peer_connection.cpp:3405,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3406,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:3406,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:3406,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3407,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:3407,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:3407,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:3410,1
    - Dst: peer_connection::send_not_interested
      Src: /src/libtorrent/src/peer_connection.cpp:3410,1
    - Dst: std::shared_ptr::peer_is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:3411,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:3413,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3343
    functionDepth: 3
    functionLinenumber: 3343
    functionLinenumberEnd: 3414
    functionName: peer_connection::incoming_have_all
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::has_picker
    - count
    - std::shared_ptr::ready_for_connections
    - empty
    - peer_connection::disconnect_if_redundant
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - is_disconnecting
    - std::shared_ptr::peer_lost
    - std::shared_ptr::is_upload_only
    - TORRENT_ASSERT
    - on_have_all
    - lock
    - static_cast<void*>
    - std::shared_ptr::peer_has_all
    - size
    - std::shared_ptr::torrent_file
    - all_set
    - set_all
    - std::shared_ptr::picker
    - std::shared_ptr::peer_is_interesting
    - std::shared_ptr::set_seed
    - peer_connection::send_not_interested
    - peer_info_struct
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_have_all()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3422,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3422,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3426,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3429,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3430,1
    - Dst: on_have_none
      Src: /src/libtorrent/src/peer_connection.cpp:3435,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:3438,1
    - Dst: std::shared_ptr::peer_lost
      Src: /src/libtorrent/src/peer_connection.cpp:3441,1
    - Dst: std::shared_ptr::set_seed
      Src: /src/libtorrent/src/peer_connection.cpp:3443,1
    - Dst: clear_all
      Src: /src/libtorrent/src/peer_connection.cpp:3447,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3450,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:3450,1
    - Dst: peer_connection::send_not_interested
      Src: /src/libtorrent/src/peer_connection.cpp:3456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3458,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:3458,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:3458,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:3459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3460
      start: 3420
    functionDepth: 3
    functionLinenumber: 3420
    functionLinenumberEnd: 3460
    functionName: peer_connection::incoming_have_none
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 3
    functionsReached:
    - peer_connection::is_single_thread
    - std::shared_ptr::ready_for_connections
    - clear_all
    - peer_connection::peer_log
    - std::shared_ptr::set_seed
    - is_disconnecting
    - std::shared_ptr::peer_lost
    - peer_connection::send_not_interested
    - TORRENT_ASSERT
    - peer_connection::is_seed
    - on_have_none
    - empty
    - lock
    - peer_connection::disconnect_if_redundant
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_have_none()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3468,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3468,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3471,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3472,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3475,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3476,1
    - Dst: on_allowed_fast
      Src: /src/libtorrent/src/peer_connection.cpp:3482,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:3485,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:3487,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3490,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3491,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:3496,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:3498,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3501,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3502,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:3502,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:3509,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:3515,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:3519,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:3521,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:3522,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:3523,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3524,1
    - Dst: std::shared_ptr::peer_is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:3526,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3528
      start: 3466
    functionDepth: 1
    functionLinenumber: 3466
    functionLinenumberEnd: 3528
    functionName: peer_connection::incoming_allowed_fast
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - std::shared_ptr::has_picker
    - peer_connection::is_single_thread
    - std::shared_ptr::have_piece
    - std::shared_ptr::picker
    - std::shared_ptr::peer_is_interesting
    - peer_connection::peer_log
    - on_allowed_fast
    - is_disconnecting
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::valid_metadata
    - end_index
    - piece_index_t
    - size
    linkageType: ''
    returnType: void
    signature: void peer_connection::incoming_allowed_fast(piece_index_t const index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3532,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3532,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3533,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3530
    functionDepth: 1
    functionLinenumber: 3530
    functionLinenumberEnd: 3538
    functionName: '& peer_connection::allowed_fast()'
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - lock
    linkageType: ''
    returnType: std::vector<piece_index_t>
    signature: std::vector<piece_index_t> & peer_connection::allowed_fast()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3542,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3542,1
    - Dst: has_peer_choked
      Src: /src/libtorrent/src/peer_connection.cpp:3543,1
    - Dst: is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:3543,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:3544,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:3544,1
    - Dst: peer_connection::on_parole
      Src: /src/libtorrent/src/peer_connection.cpp:3546,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3548,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3549,1
    - Dst: std::shared_ptr::upload_mode
      Src: /src/libtorrent/src/peer_connection.cpp:3550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3556
      start: 3540
    functionDepth: 1
    functionLinenumber: 3540
    functionLinenumberEnd: 3556
    functionName: peer_connection::can_request_time_critical
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - std::shared_ptr::upload_mode
    - TORRENT_ASSERT
    - lock
    - is_interesting
    - peer_connection::on_parole
    - has_peer_choked
    - size
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::can_request_time_critical() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3560,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3560,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_connection.cpp:3561,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3561,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3562,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/peer_connection.cpp:3562,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3563,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3565,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3567,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:3567,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3568,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3568,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3571,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:3573,1
    - Dst: insert
      Src: /src/libtorrent/src/peer_connection.cpp:3574,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3574,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/peer_connection.cpp:3576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3579
      start: 3558
    functionDepth: 1
    functionLinenumber: 3558
    functionLinenumberEnd: 3579
    functionName: peer_connection::make_time_critical
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::has_picker
    - peer_connection::is_single_thread
    - begin
    - std::shared_ptr::picker
    - erase
    - insert
    - end
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - lock
    - libtorrent::aux::has_block
    - std::find_if
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::make_time_critical(piece_block const& block)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3584,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3584,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3587,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3588,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3590,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3591,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:3591,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3593,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3594,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3595,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:3595,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3596,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:3596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3597,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3597,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3597,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3598,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:3598,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3599,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_connection.cpp:3599,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3599,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3599,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/peer_connection.cpp:3600,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3600,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3601,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:3601,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3601,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3601,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3602,1
    - Dst: std::shared_ptr::upload_mode
      Src: /src/libtorrent/src/peer_connection.cpp:3604,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3607,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3609,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3616,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3618,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/peer_connection.cpp:3631,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3631,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3631,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3635,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3637,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/peer_connection.cpp:3642,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3642,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3642,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3646,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3648,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3654,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:3654,1
    - Dst: peer_connection::picker_options
      Src: /src/libtorrent/src/peer_connection.cpp:3655,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3658,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3660,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:3665,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:3667,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:3667,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:3668,1
    - Dst: pid
      Src: /src/libtorrent/src/peer_connection.cpp:3668,1
    - Dst: insert
      Src: /src/libtorrent/src/peer_connection.cpp:3675,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3675,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:3681,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 2
    argNames:
    - ' block'
    - flags
    argTypes:
    - piece_block
    - request_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3684
      start: 3581
    functionDepth: 2
    functionLinenumber: 3581
    functionLinenumberEnd: 3684
    functionName: peer_connection::add_request
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - begin
    - remote
    - std::shared_ptr::get_handle
    - pid
    - push_back
    - peer_connection::picker_options
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - end
    - std::find
    - libtorrent::aux::has_block
    - std::shared_ptr::have_piece
    - std::shared_ptr::upload_mode
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::valid_metadata
    - std::shared_ptr::torrent_file
    - std::find_if
    - std::shared_ptr::picker
    - insert
    - std::shared_ptr::alerts
    - peer_info_struct
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: "bool peer_connection::add_request(piece_block const& block\n\t\t,
      request_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3688,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3688,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3691,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3695,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:3695,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3698,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:3701,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3703,1
    - Dst: back
      Src: /src/libtorrent/src/peer_connection.cpp:3703,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:3703,1
    - Dst: pop_back
      Src: /src/libtorrent/src/peer_connection.cpp:3704,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:3717,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:3719,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:3719,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:3720,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3721,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3722,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:3722,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3733,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3735,1
    - Dst: write_cancel
      Src: /src/libtorrent/src/peer_connection.cpp:3737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3739
      start: 3686
    functionDepth: 1
    functionLinenumber: 3686
    functionLinenumberEnd: 3739
    functionName: peer_connection::cancel_all_requests
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - peer_connection::is_single_thread
    - pop_back
    - std::shared_ptr::picker
    - peer_connection::peer_log
    - empty
    - write_cancel
    - TORRENT_ASSERT
    - std::min
    - peer_info_struct
    - lock
    - back
    - std::shared_ptr::block_size
    - std::shared_ptr::valid_metadata
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: void
    signature: void peer_connection::cancel_all_requests()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3743,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3743,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3746,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3750,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:3750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3752,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3753,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3754,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:3754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3755,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:3755,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3756,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:3756,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3760,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_connection.cpp:3762,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3762,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3762,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/peer_connection.cpp:3763,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3764,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_connection.cpp:3766,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3766,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3767,1
    - Dst: libtorrent::aux::has_block
      Src: /src/libtorrent/src/peer_connection.cpp:3767,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3772,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3774,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3777,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:3777,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:3778,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:3784,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:3786,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:3786,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:3787,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3788,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3789,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:3789,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:3793,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:3793,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3803,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:3805,1
    - Dst: write_cancel
      Src: /src/libtorrent/src/peer_connection.cpp:3807,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - ' block'
    - force
    argTypes:
    - piece_block
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3808
      start: 3741
    functionDepth: 1
    functionLinenumber: 3741
    functionLinenumberEnd: 3808
    functionName: peer_connection::cancel_request
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::shared_ptr::has_picker
    - peer_connection::is_single_thread
    - begin
    - std::shared_ptr::picker
    - erase
    - peer_connection::peer_log
    - end
    - write_cancel
    - TORRENT_ASSERT
    - std::min
    - peer_info_struct
    - lock
    - std::shared_ptr::block_size
    - libtorrent::aux::has_block
    - std::shared_ptr::valid_metadata
    - std::shared_ptr::torrent_file
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void peer_connection::cancel_request(piece_block const& block, bool
      const force)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3812,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3812,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3815,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:3815,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3819,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3827,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:3830,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/peer_connection.cpp:3831,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3834,1
    - Dst: write_choke
      Src: /src/libtorrent/src/peer_connection.cpp:3836,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3837,1
    - Dst: peer_connection::ignore_unchoke_slots
      Src: /src/libtorrent/src/peer_connection.cpp:3838,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3839,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:3842,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:3842,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3847,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3847,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_connection.cpp:3849,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3849,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3849,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3850,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3856,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:3857,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:3858,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:3860,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3861,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3864
      start: 3810
    functionDepth: 1
    functionLinenumber: 3810
    functionLinenumberEnd: 3864
    functionName: peer_connection::send_choke
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - write_choke
    - peer_connection::ignore_unchoke_slots
    - peer_connection::is_single_thread
    - begin
    - erase
    - peer_connection::peer_log
    - end
    - std::find
    - empty
    - is_connecting
    - TORRENT_ASSERT
    - shrink_to_fit
    - set
    - inc_stats_counter
    - write_reject_request
    - clear
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::send_choke()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3868,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3868,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3872,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:3873,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:3875,1
    - Dst: peer_connection::send_piece_suggestions
      Src: /src/libtorrent/src/peer_connection.cpp:3880,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:3883,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:3883,1
    - Dst: write_unchoke
      Src: /src/libtorrent/src/peer_connection.cpp:3884,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3885,1
    - Dst: peer_connection::ignore_unchoke_slots
      Src: /src/libtorrent/src/peer_connection.cpp:3886,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3887,1
    - Dst: total_payload_upload
      Src: /src/libtorrent/src/peer_connection.cpp:3890,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3896
      start: 3866
    functionDepth: 1
    functionLinenumber: 3866
    functionLinenumberEnd: 3896
    functionName: peer_connection::send_unchoke
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - write_unchoke
    - total_payload_upload
    - peer_connection::ignore_unchoke_slots
    - peer_connection::is_single_thread
    - std::shared_ptr::ready_for_connections
    - peer_connection::peer_log
    - set
    - TORRENT_ASSERT
    - get_int
    - peer_connection::send_piece_suggestions
    - inc_stats_counter
    - lock
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::send_unchoke()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3900,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3900,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3902,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:3903,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3907,1
    - Dst: write_interested
      Src: /src/libtorrent/src/peer_connection.cpp:3909,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3914
      start: 3898
    functionDepth: 1
    functionLinenumber: 3898
    functionLinenumberEnd: 3914
    functionName: peer_connection::send_interested
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - std::shared_ptr::ready_for_connections
    - write_interested
    - peer_connection::peer_log
    - TORRENT_ASSERT
    - inc_stats_counter
    - lock
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_interested()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3918,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3918,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3921,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:3925,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3929,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:3930,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:3934,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:3934,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:3935,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:3940,1
    - Dst: write_not_interested
      Src: /src/libtorrent/src/peer_connection.cpp:3943,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:3946,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3948,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3951
      start: 3916
    functionDepth: 3
    functionLinenumber: 3916
    functionLinenumberEnd: 3951
    functionName: peer_connection::send_not_interested
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 4
    functionsReached:
    - peer_connection::is_single_thread
    - std::shared_ptr::ready_for_connections
    - peer_connection::peer_log
    - set
    - TORRENT_ASSERT
    - peer_connection::should_log
    - inc_stats_counter
    - peer_connection::disconnect_if_redundant
    - lock
    - write_not_interested
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_not_interested()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3955,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3955,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:3956,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:3959,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:3961,1
    - Dst: write_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:3966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3953
    functionDepth: 1
    functionLinenumber: 3953
    functionLinenumberEnd: 3967
    functionName: peer_connection::send_upload_only
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - write_upload_only
    - peer_connection::peer_log
    - in_handshake
    - TORRENT_ASSERT
    - peer_connection::should_log
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_upload_only(bool const enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:3971,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3972,1
    - Dst: std::shared_ptr::get_suggest_pieces
      Src: /src/libtorrent/src/peer_connection.cpp:3974,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3980,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:3981,1
    - Dst: peer_connection::send_suggest
      Src: /src/libtorrent/src/peer_connection.cpp:3983,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:3985,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:3986,1
    - Dst: end_index
      Src: /src/libtorrent/src/peer_connection.cpp:3988,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:3989,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3989,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:3990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3992
      start: 3969
    functionDepth: 1
    functionLinenumber: 3969
    functionLinenumberEnd: 3992
    functionName: peer_connection::send_piece_suggestions
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 2
    functionsReached:
    - begin
    - erase
    - end
    - std::shared_ptr::get_suggest_pieces
    - TORRENT_ASSERT
    - get_int
    - lock
    - end_index
    - peer_connection::send_suggest
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_piece_suggestions(int const num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:3996,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:3996,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:3997,1
    - Dst: peer_connection::has_piece
      Src: /src/libtorrent/src/peer_connection.cpp:4000,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:4005,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4006,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4007,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:4007,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4008,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:4008,1
    - Dst: write_suggest
      Src: /src/libtorrent/src/peer_connection.cpp:4012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 3994
    functionDepth: 2
    functionLinenumber: 3994
    functionLinenumberEnd: 4013
    functionName: peer_connection::send_suggest
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::is_single_thread
    - std::shared_ptr::have_piece
    - peer_connection::has_piece
    - in_handshake
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::torrent_file
    - write_suggest
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_suggest(piece_index_t const piece)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/src/peer_connection.cpp:4019,1
    - Dst: defer
      Src: /src/libtorrent/src/peer_connection.cpp:4020,1
    - Dst: std::weak_ptr::lock
      Src: /src/libtorrent/src/peer_connection.cpp:4022,1
    - Dst: std::shared_ptr::send_block_requests_impl
      Src: /src/libtorrent/src/peer_connection.cpp:4029,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4015
    functionDepth: 1
    functionLinenumber: 4015
    functionLinenumberEnd: 4032
    functionName: peer_connection::send_block_requests
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 3
    functionsReached:
    - std::weak_ptr::lock
    - shared_from_this
    - defer
    - std::shared_ptr::send_block_requests_impl
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_block_requests()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4036,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:4036,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:4039,1
    - Dst: std::shared_ptr::graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:4046,1
    - Dst: std::shared_ptr::state
      Src: /src/libtorrent/src/peer_connection.cpp:4049,1
    - Dst: std::shared_ptr::state
      Src: /src/libtorrent/src/peer_connection.cpp:4050,1
    - Dst: std::shared_ptr::state
      Src: /src/libtorrent/src/peer_connection.cpp:4051,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:4054,1
    - Dst: std::shared_ptr::upload_mode
      Src: /src/libtorrent/src/peer_connection.cpp:4055,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4057,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4059,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:4060,1
    - Dst: front
      Src: /src/libtorrent/src/peer_connection.cpp:4063,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:4065,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:4065,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:4071,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:4075,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:4077,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:4077,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:4081,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:4082,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:4082,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:4083,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4084,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4085,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:4085,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4092,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4093,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4095,1
    - Dst: peer_connection::validate_piece_request
      Src: /src/libtorrent/src/peer_connection.cpp:4095,1
    - Dst: std::shared_ptr::to_req
      Src: /src/libtorrent/src/peer_connection.cpp:4095,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/peer_connection.cpp:4096,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:4096,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:4097,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:4100,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:4107,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4109,1
    - Dst: front
      Src: /src/libtorrent/src/peer_connection.cpp:4113,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:4114,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:4115,1
    - Dst: front
      Src: /src/libtorrent/src/peer_connection.cpp:4117,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:4118,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:4118,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4119,1
    - Dst: peer_connection::validate_piece_request
      Src: /src/libtorrent/src/peer_connection.cpp:4119,1
    - Dst: std::shared_ptr::to_req
      Src: /src/libtorrent/src/peer_connection.cpp:4119,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4121,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4122,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/peer_connection.cpp:4124,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:4124,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_connection.cpp:4125,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:4128,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:4129,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:4129,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:4130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4132,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:4132,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:4137,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4142,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:4143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4150,1
    - Dst: peer_connection::validate_piece_request
      Src: /src/libtorrent/src/peer_connection.cpp:4150,1
    - Dst: write_request
      Src: /src/libtorrent/src/peer_connection.cpp:4156,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:4159,1
    - Dst: write_request
      Src: /src/libtorrent/src/peer_connection.cpp:4163,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:4164,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:4164,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:4168,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4170,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:4172,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:4172,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:4172,1
    - Dst: statistics
      Src: /src/libtorrent/src/peer_connection.cpp:4172,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:4173,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:4178,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:4178,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4180,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:4186,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:4186,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4034
    functionDepth: 2
    functionLinenumber: 4034
    functionLinenumberEnd: 4188
    functionName: peer_connection::send_block_requests_impl
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::shared_ptr::has_picker
    - begin
    - peer_connection::validate_piece_request
    - aux::numeric_cast<std::uint32_t>
    - empty
    - std::uint32_t
    - std::min
    - libtorrent::aux::time_now
    - push_back
    - peer_connection::is_single_thread
    - statistics
    - peer_connection::peer_log
    - front
    - set
    - inc_stats_counter
    - write_request
    - erase
    - std::shared_ptr::upload_mode
    - is_disconnecting
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::block_size
    - std::shared_ptr::to_req
    - size
    - std::shared_ptr::torrent_file
    - peer_connection::check_invariant
    - std::shared_ptr::graceful_pause
    - std::shared_ptr::state
    - std::shared_ptr::picker
    - peer_connection::should_log
    - peer_info_struct
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_block_requests_impl()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4192,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:4192,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4193,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:4196,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4198,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:4199,1
    - Dst: print_error
      Src: /src/libtorrent/src/peer_connection.cpp:4199,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:4203,1
    - Dst: session_log
      Src: /src/libtorrent/src/peer_connection.cpp:4204,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:4204,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4207,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:4209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4210,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4213,1
    - Dst: std::shared_ptr::dec_num_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:4214,1
    - Dst: is_utp
      Src: /src/libtorrent/src/peer_connection.cpp:4221,1
    - Dst: peer_connection::fast_reconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4228,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4229,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/peer_connection.cpp:4233,1
    - Dst: post
      Src: /src/libtorrent/src/peer_connection.cpp:4238,1
    - Dst: std::weak_ptr::lock
      Src: /src/libtorrent/src/peer_connection.cpp:4240,1
    - Dst: std::weak_ptr::lock
      Src: /src/libtorrent/src/peer_connection.cpp:4241,1
    - Dst: std::shared_ptr::peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:4244,1
    - Dst: std::shared_ptr::connect_to_peer
      Src: /src/libtorrent/src/peer_connection.cpp:4245,1
    - Dst: peer_connection::fast_reconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4253,1
    - Dst: is_utp
      Src: /src/libtorrent/src/peer_connection.cpp:4256,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:4257,1
    - Dst: std::shared_ptr::find_introducer
      Src: /src/libtorrent/src/peer_connection.cpp:4263,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:4263,1
    - Dst: bt_peer_connection*::write_holepunch_msg
      Src: /src/libtorrent/src/peer_connection.cpp:4265,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:4265,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4269,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4270
      start: 4190
    functionDepth: 2
    functionLinenumber: 4190
    functionLinenumberEnd: 4270
    functionName: peer_connection::connect_failed
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - remote
    - std::shared_ptr::find_introducer
    - peer_connection::disconnect
    - std::shared_ptr::peer_info_struct
    - get_bool
    - bt_peer_connection*::write_holepunch_msg
    - session_log
    - peer_connection::is_single_thread
    - std::shared_ptr::connect_to_peer
    - std::weak_ptr::lock
    - peer_connection::peer_log
    - print_endpoint
    - inc_stats_counter
    - shared_from_this
    - TORRENT_ASSERT
    - lock
    - is_utp
    - print_error
    - peer_connection::fast_reconnect
    - post
    - peer_connection::should_log
    - std::shared_ptr::dec_num_connecting
    linkageType: ''
    returnType: void
    signature: void peer_connection::connect_failed(error_code const& e)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4278,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:4278,1
    - Dst: set_close_reason
      Src: /src/libtorrent/src/peer_connection.cpp:4285,1
    - Dst: error_to_close_reason
      Src: /src/libtorrent/src/peer_connection.cpp:4285,1
    - Dst: get_close_reason
      Src: /src/libtorrent/src/peer_connection.cpp:4286,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4290,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:4297,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:4300,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4304,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:4305,1
    - Dst: print_error
      Src: /src/libtorrent/src/peer_connection.cpp:4305,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:4308,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:4309,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:4310,1
    - Dst: connected_time
      Src: /src/libtorrent/src/peer_connection.cpp:4310,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:4310,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4312,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4317,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:4318,1
    - Dst: what
      Src: /src/libtorrent/src/peer_connection.cpp:4318,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:4326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4330,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4337,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4347,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4348,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4351,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4353,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4355,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4357,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4359,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4361,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4363,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4365,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4367,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4369,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4371,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4373,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4375,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4381,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4385,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4390,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4393,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4396,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4399,1
    - Dst: is_utp
      Src: /src/libtorrent/src/peer_connection.cpp:4403,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4403,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4404,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4406,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4407,1
    - Dst: type
      Src: /src/libtorrent/src/peer_connection.cpp:4410,1
    - Dst: static_cast<bt_peer_connection*>
      Src: /src/libtorrent/src/peer_connection.cpp:4412,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/peer_connection.cpp:4413,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4413,1
    - Dst: auto*::rc4_encrypted
      Src: /src/libtorrent/src/peer_connection.cpp:4415,1
    - Dst: auto*::supports_encryption
      Src: /src/libtorrent/src/peer_connection.cpp:4415,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4416,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4427,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4432,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:4436,1
    - Dst: std::shared_ptr::ban_peer
      Src: /src/libtorrent/src/peer_connection.cpp:4440,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4444,1
    - Dst: std::shared_ptr::dec_num_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:4445,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:4450,1
    - Dst: on_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4455,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:4460,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:4463,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:4464,1
    - Dst: category
      Src: /src/libtorrent/src/peer_connection.cpp:4474,1
    - Dst: socks_category
      Src: /src/libtorrent/src/peer_connection.cpp:4474,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:4475,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:4477,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:4477,1
    - Dst: pid
      Src: /src/libtorrent/src/peer_connection.cpp:4478,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:4481,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:4483,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:4484,1
    - Dst: pid
      Src: /src/libtorrent/src/peer_connection.cpp:4484,1
    - Dst: socket_type_idx
      Src: /src/libtorrent/src/peer_connection.cpp:4484,1
    - Dst: peer_connection::downloading_piece_progress
      Src: /src/libtorrent/src/peer_connection.cpp:4492,1
    - Dst: std::shared_ptr::add_redundant_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:4497,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:4501,1
    - Dst: peer_connection::clear_download_queue
      Src: /src/libtorrent/src/peer_connection.cpp:4503,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:4504,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4505,1
    - Dst: back
      Src: /src/libtorrent/src/peer_connection.cpp:4507,1
    - Dst: abort_download
      Src: /src/libtorrent/src/peer_connection.cpp:4509,1
    - Dst: pop_back
      Src: /src/libtorrent/src/peer_connection.cpp:4510,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:4515,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:4516,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:4522,1
    - Dst: std::shared_ptr::remove_peer
      Src: /src/libtorrent/src/peer_connection.cpp:4524,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:4524,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4532,1
    - Dst: peer_connection::ignore_unchoke_slots
      Src: /src/libtorrent/src/peer_connection.cpp:4533,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4534,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4539,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4539,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4540,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4540,1
    - Dst: close_connection
      Src: /src/libtorrent/src/peer_connection.cpp:4541,1
    - Dst: async_shutdown
      Src: /src/libtorrent/src/peer_connection.cpp:4544,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:4544,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 153
    argCount: 3
    argNames:
    - ' ec'
    - op
    - error
    argTypes:
    - error_code
    - operation_t
    - disconnect_severity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4545
      start: 4275
    functionDepth: 2
    functionLinenumber: 4275
    functionLinenumberEnd: 4545
    functionName: peer_connection::disconnect
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 25
    functionsReached:
    - static_cast<int>
    - std::shared_ptr::has_picker
    - peer_connection::clear_download_queue
    - peer_connection::ignore_unchoke_slots
    - pop_back
    - socks_category
    - seconds
    - empty
    - category
    - remote
    - socket_type_idx
    - self
    - auto*::supports_encryption
    - std::shared_ptr::get_handle
    - libtorrent::aux::time_now
    - std::shared_ptr::ban_peer
    - pid
    - get_close_reason
    - set_close_reason
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - abort_download
    - get_int
    - inc_stats_counter
    - back
    - clear
    - type
    - close_connection
    - auto*::rc4_encrypted
    - on_disconnect
    - TORRENT_ASSERT
    - std::shared_ptr::add_redundant_bytes
    - std::shared_ptr::remove_peer
    - lock
    - is_utp
    - print_error
    - peer_connection::check_invariant
    - std::shared_ptr::picker
    - peer_connection::downloading_piece_progress
    - std::shared_ptr::alerts
    - in_handshake
    - is_connecting
    - error_to_close_reason
    - peer_connection::should_log
    - peer_info_struct
    - static_cast<bt_peer_connection*>
    - async_shutdown
    - std::shared_ptr::dec_num_connecting
    - connected_time
    - what
    linkageType: ''
    returnType: void
    signature: "void peer_connection::disconnect(error_code const& ec\n\t\t, operation_t
      const op, disconnect_severity_t const error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4549,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:4549,1
    - Dst: num_classes
      Src: /src/libtorrent/src/peer_connection.cpp:4550,1
    - Dst: ignore_unchoke_slots_set
      Src: /src/libtorrent/src/peer_connection.cpp:4552,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:4553,1
    - Dst: ignore_unchoke_slots_set
      Src: /src/libtorrent/src/peer_connection.cpp:4554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4556
      start: 4547
    functionDepth: 1
    functionLinenumber: 4547
    functionLinenumberEnd: 4556
    functionName: peer_connection::ignore_unchoke_slots
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 6
    functionsReached:
    - peer_connection::is_single_thread
    - num_classes
    - ignore_unchoke_slots_set
    - TORRENT_ASSERT
    - lock
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::ignore_unchoke_slots() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4560,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:4560,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/peer_connection.cpp:4561,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:4561,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:4562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4563
      start: 4558
    functionDepth: 1
    functionLinenumber: 4558
    functionLinenumberEnd: 4563
    functionName: peer_connection::on_local_network
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::is_local
    - address
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::on_local_network() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avg_deviation
      Src: /src/libtorrent/src/peer_connection.cpp:4567,1
    - Dst: mean
      Src: /src/libtorrent/src/peer_connection.cpp:4568,1
    - Dst: num_samples
      Src: /src/libtorrent/src/peer_connection.cpp:4571,1
    - Dst: num_samples
      Src: /src/libtorrent/src/peer_connection.cpp:4573,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:4574,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:4585,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:4586,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_connection.cpp:4591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4592
      start: 4565
    functionDepth: 0
    functionLinenumber: 4565
    functionLinenumberEnd: 4592
    functionName: peer_connection::request_timeout
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - std::min
    - avg_deviation
    - get_int
    - std::max
    - mean
    - num_samples
    linkageType: ''
    returnType: int
    signature: int peer_connection::request_timeout() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4735,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:4735,1
    - Dst: is_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:4737,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:4738,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:4740,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:4742,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:4743,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:4744,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4747,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:4749,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4750,1
    - Dst: write_bitfield
      Src: /src/libtorrent/src/peer_connection.cpp:4755,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4760,1
    - Dst: peer_connection::has_piece
      Src: /src/libtorrent/src/peer_connection.cpp:4760,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4763,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:4764,1
    - Dst: write_have
      Src: /src/libtorrent/src/peer_connection.cpp:4766,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:4768,1
    - Dst: std::swap
      Src: /src/libtorrent/src/peer_connection.cpp:4772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - replace_piece
    - new_piece
    argTypes:
    - piece_index_t
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4777
      start: 4732
    functionDepth: 2
    functionLinenumber: 4732
    functionLinenumberEnd: 4777
    functionName: peer_connection::superseed_piece
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - peer_connection::has_piece
    - in_handshake
    - is_connecting
    - TORRENT_ASSERT
    - std::swap
    - write_have
    - lock
    - piece_index_t
    - write_bitfield
    linkageType: ''
    returnType: void
    signature: "void peer_connection::superseed_piece(piece_index_t const replace_piece\n\t\t,
      piece_index_t const new_piece)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4783,1
    - Dst: aux::clamp_assign<std::uint16_t>
      Src: /src/libtorrent/src/peer_connection.cpp:4786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4780
    functionDepth: 0
    functionLinenumber: 4780
    functionLinenumberEnd: 4787
    functionName: peer_connection::max_out_request_queue
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::peer_log
    - aux::clamp_assign<std::uint16_t>
    linkageType: ''
    returnType: void
    signature: void peer_connection::max_out_request_queue(int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4789
    functionDepth: 0
    functionLinenumber: 4789
    functionLinenumberEnd: 4792
    functionName: peer_connection::max_out_request_queue
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peer_connection::max_out_request_queue() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4796,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:4796,1
    - Dst: statistics
      Src: /src/libtorrent/src/peer_connection.cpp:4807,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:4810,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:4823,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:4824,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4826,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/peer_connection.cpp:4828,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4794
    functionDepth: 1
    functionLinenumber: 4794
    functionLinenumberEnd: 4845
    functionName: peer_connection::update_desired_queue_size
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::is_single_thread
    - std::uint16_t
    - statistics
    - peer_connection::peer_log
    - TORRENT_ASSERT
    - get_int
    - lock
    - std::shared_ptr::block_size
    linkageType: ''
    returnType: void
    signature: void peer_connection::update_desired_queue_size()
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4849,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:4849,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:4850,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:4857,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:4861,1
    - Dst: use_quota_overhead
      Src: /src/libtorrent/src/peer_connection.cpp:4863,1
    - Dst: download_ip_overhead
      Src: /src/libtorrent/src/peer_connection.cpp:4863,1
    - Dst: upload_ip_overhead
      Src: /src/libtorrent/src/peer_connection.cpp:4864,1
    - Dst: use_quota_overhead
      Src: /src/libtorrent/src/peer_connection.cpp:4865,1
    - Dst: download_ip_overhead
      Src: /src/libtorrent/src/peer_connection.cpp:4865,1
    - Dst: upload_ip_overhead
      Src: /src/libtorrent/src/peer_connection.cpp:4866,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:4869,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:4874,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:4874,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:4883,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4886,1
    - Dst: std::shared_ptr::dec_num_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:4887,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4890,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4896,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:4897,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:4898,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:4898,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:4907,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/peer_connection.cpp:4908,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:4909,1
    - Dst: peer_connection::send_block_requests
      Src: /src/libtorrent/src/peer_connection.cpp:4911,1
    - Dst: std::shared_ptr::super_seeding
      Src: /src/libtorrent/src/peer_connection.cpp:4915,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:4916,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:4918,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:4918,1
    - Dst: peer_connection::superseed_piece
      Src: /src/libtorrent/src/peer_connection.cpp:4922,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:4922,1
    - Dst: std::shared_ptr::get_piece_to_super_seed
      Src: /src/libtorrent/src/peer_connection.cpp:4922,1
    - Dst: on_tick
      Src: /src/libtorrent/src/peer_connection.cpp:4926,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:4927,1
    - Dst: tick
      Src: /src/libtorrent/src/peer_connection.cpp:4932,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:4934,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:4939,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:4943,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/peer_connection.cpp:4947,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/peer_connection.cpp:4951,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:4955,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4956,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4959,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:4960,1
    - Dst: peer_connection::connect_failed
      Src: /src/libtorrent/src/peer_connection.cpp:4962,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:4979,1
    - Dst: peer_connection::timeout
      Src: /src/libtorrent/src/peer_connection.cpp:4979,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4980,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:4983,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:4984,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:4986,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:4991,1
    - Dst: is_i2p
      Src: /src/libtorrent/src/peer_connection.cpp:4993,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:4997,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:4998,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5001,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5002,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:5004,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_connection.cpp:5012,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_connection.cpp:5012,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:5012,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:5013,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:5014,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5018,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:5022,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5023,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:5024,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5027,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5028,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:5030,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:5037,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:5038,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5039,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5040,1
    - Dst: num_connections
      Src: /src/libtorrent/src/peer_connection.cpp:5044,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5045,1
    - Dst: std::shared_ptr::num_peers
      Src: /src/libtorrent/src/peer_connection.cpp:5046,1
    - Dst: std::shared_ptr::max_connections
      Src: /src/libtorrent/src/peer_connection.cpp:5047,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:5058,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:5061,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5063,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5064,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5064,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:5067,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5072,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:5074,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5074,1
    - Dst: peer_connection::request_timeout
      Src: /src/libtorrent/src/peer_connection.cpp:5074,1
    - Dst: peer_connection::snub_peer
      Src: /src/libtorrent/src/peer_connection.cpp:5076,1
    - Dst: peer_connection::keep_alive
      Src: /src/libtorrent/src/peer_connection.cpp:5080,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/peer_connection.cpp:5091,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:5095,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5097,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/peer_connection.cpp:5100,1
    - Dst: last_payload_downloaded
      Src: /src/libtorrent/src/peer_connection.cpp:5104,1
    - Dst: last_payload_uploaded
      Src: /src/libtorrent/src/peer_connection.cpp:5105,1
    - Dst: peer_connection::second_tick
      Src: /src/libtorrent/src/peer_connection.cpp:5107,1
    - Dst: upload_payload_rate
      Src: /src/libtorrent/src/peer_connection.cpp:5109,1
    - Dst: upload_payload_rate
      Src: /src/libtorrent/src/peer_connection.cpp:5111,1
    - Dst: download_payload_rate
      Src: /src/libtorrent/src/peer_connection.cpp:5113,1
    - Dst: download_payload_rate
      Src: /src/libtorrent/src/peer_connection.cpp:5115,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:5117,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:5119,1
    - Dst: peer_connection::update_desired_queue_size
      Src: /src/libtorrent/src/peer_connection.cpp:5121,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5123,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5124,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5126,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:5126,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5130,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5132,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:5134,1
    - Dst: seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5134,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:5141,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5143,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5145,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:5145,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:5145,1
    - Dst: peer_connection::snub_peer
      Src: /src/libtorrent/src/peer_connection.cpp:5150,1
    - Dst: peer_connection::fill_send_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:5153,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 114
    argCount: 1
    argNames:
    - tick_interval_ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5154
      start: 4847
    functionDepth: 3
    functionLinenumber: 4847
    functionLinenumberEnd: 5154
    functionName: peer_connection::second_tick
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::can_disconnect
    - peer_connection::superseed_piece
    - tick
    - std::shared_ptr::ready_for_connections
    - std::shared_ptr::get_piece_to_super_seed
    - empty
    - seconds
    - upload_ip_overhead
    - peer_connection::disconnect
    - std::max
    - get_bool
    - download_payload_rate
    - std::shared_ptr::get_handle
    - libtorrent::aux::time_now
    - peer_connection::request_timeout
    - peer_connection::is_single_thread
    - is_ssl
    - peer_connection::peer_log
    - set
    - get_int
    - inc_stats_counter
    - on_tick
    - std::shared_ptr::super_seeding
    - peer_connection::timeout
    - std::shared_ptr::num_peers
    - peer_connection::send_block_requests
    - use_quota_overhead
    - is_disconnecting
    - std::shared_ptr::is_upload_only
    - peer_connection::second_tick
    - TORRENT_ASSERT
    - peer_connection::snub_peer
    - upload_payload_rate
    - lock
    - is_i2p
    - peer_connection::keep_alive
    - num_connections
    - piece_index_t
    - last_payload_downloaded
    - size
    - peer_connection::update_desired_queue_size
    - last_payload_uploaded
    - request_a_block
    - total_seconds
    - peer_connection::fill_send_buffer
    - std::shared_ptr::alerts
    - in_handshake
    - peer_connection::connect_failed
    - peer_connection::should_log
    - std::shared_ptr::max_connections
    - get
    - std::shared_ptr::dec_num_connecting
    - download_ip_overhead
    linkageType: ''
    returnType: void
    signature: void peer_connection::second_tick(int const tick_interval_ms)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5158,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5158,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:5161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5162,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5168,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5170,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:5170,1
    - Dst: peer_connection::on_parole
      Src: /src/libtorrent/src/peer_connection.cpp:5176,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:5178,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:5179,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5183,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:5185,1
    - Dst: back
      Src: /src/libtorrent/src/peer_connection.cpp:5185,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:5185,1
    - Dst: pop_back
      Src: /src/libtorrent/src/peer_connection.cpp:5186,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5190,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5190,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5194,1
    - Dst: piece_info
      Src: /src/libtorrent/src/peer_connection.cpp:5210,1
    - Dst: blocks_in_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5211,1
    - Dst: peer_connection::send_block_requests
      Src: /src/libtorrent/src/peer_connection.cpp:5220,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5224,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5226,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:5226,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_connection.cpp:5227,1
    - Dst: pid
      Src: /src/libtorrent/src/peer_connection.cpp:5227,1
    - Dst: request_a_block
      Src: /src/libtorrent/src/peer_connection.cpp:5236,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:5237,1
    - Dst: abort_download
      Src: /src/libtorrent/src/peer_connection.cpp:5247,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:5247,1
    - Dst: peer_connection::send_block_requests
      Src: /src/libtorrent/src/peer_connection.cpp:5250,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5251
      start: 5156
    functionDepth: 2
    functionLinenumber: 5156
    functionLinenumberEnd: 5251
    functionName: peer_connection::snub_peer
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr::has_picker
    - pop_back
    - empty
    - remote
    - std::shared_ptr::get_handle
    - pid
    - peer_connection::is_single_thread
    - blocks_in_piece
    - inc_stats_counter
    - piece_info
    - back
    - peer_connection::send_block_requests
    - TORRENT_ASSERT
    - lock
    - size
    - request_a_block
    - std::shared_ptr::picker
    - std::shared_ptr::alerts
    - peer_info_struct
    - peer_connection::on_parole
    - abort_download
    linkageType: ''
    returnType: void
    signature: void peer_connection::snub_peer()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5255,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5255,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:5263,1
    - Dst: std::shared_ptr::is_aborted
      Src: /src/libtorrent/src/peer_connection.cpp:5264,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5264,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/peer_connection.cpp:5269,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5270,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5272,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5274,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5276,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5278,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:5282,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5284,1
    - Dst: settings
      Src: /src/libtorrent/src/peer_connection.cpp:5287,1
    - Dst: settings
      Src: /src/libtorrent/src/peer_connection.cpp:5288,1
    - Dst: settings
      Src: /src/libtorrent/src/peer_connection.cpp:5289,1
    - Dst: std::shared_ptr::is_deleted
      Src: /src/libtorrent/src/peer_connection.cpp:5294,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5298,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:5301,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:5302,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5310,1
    - Dst: send_buffer_size
      Src: /src/libtorrent/src/peer_connection.cpp:5311,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5313,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:5313,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5316,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:5316,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5317,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:5317,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5317,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5318,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:5318,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5320,1
    - Dst: std::shared_ptr::seed_mode
      Src: /src/libtorrent/src/peer_connection.cpp:5322,1
    - Dst: std::shared_ptr::verified_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5325,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:5326,1
    - Dst: std::shared_ptr::verifying_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5330,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5338,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:5339,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:5344,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:5347,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/peer_connection.cpp:5348,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:5348,1
    - Dst: async_hash
      Src: /src/libtorrent/src/peer_connection.cpp:5351,1
    - Dst: std::shared_ptr::storage
      Src: /src/libtorrent/src/peer_connection.cpp:5351,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:5352,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection.cpp:5352,1
    - Dst: wrap
      Src: /src/libtorrent/src/peer_connection.cpp:5354,1
    - Dst: std::shared_ptr::verifying
      Src: /src/libtorrent/src/peer_connection.cpp:5356,1
    - Dst: std::shared_ptr::have_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5360,1
    - Dst: std::shared_ptr::is_predictive_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5367,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5370,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:5372,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:5372,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:5372,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:5374,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5379,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:5380,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:5380,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:5380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5389,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:5389,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5390,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:5390,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5391,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:5391,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5394,1
    - Dst: async_read
      Src: /src/libtorrent/src/peer_connection.cpp:5398,1
    - Dst: std::shared_ptr::storage
      Src: /src/libtorrent/src/peer_connection.cpp:5398,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:5399,1
    - Dst: wrap
      Src: /src/libtorrent/src/peer_connection.cpp:5400,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection.cpp:5400,1
    - Dst: time_now
      Src: /src/libtorrent/src/peer_connection.cpp:5400,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:5403,1
    - Dst: time_now
      Src: /src/libtorrent/src/peer_connection.cpp:5403,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_connection.cpp:5404,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:5404,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5406,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:5407,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/peer_connection.cpp:5411,1
    - Dst: std::shared_ptr::share_mode
      Src: /src/libtorrent/src/peer_connection.cpp:5414,1
    - Dst: std::shared_ptr::recalc_share_mode
      Src: /src/libtorrent/src/peer_connection.cpp:5415,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5417
      start: 5253
    functionDepth: 2
    functionLinenumber: 5253
    functionLinenumberEnd: 5417
    functionName: peer_connection::fill_send_buffer
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - wrap
    - std::move
    - std::shared_ptr::ready_for_connections
    - begin
    - empty
    - std::uint32_t
    - aux::vector::resize
    - get_bool
    - std::shared_ptr::verifying_piece
    - self
    - deferred_submit_jobs
    - peer_connection::is_single_thread
    - std::shared_ptr::is_predictive_piece
    - std::shared_ptr::share_mode
    - std::shared_ptr::recalc_share_mode
    - peer_connection::peer_log
    - set
    - get_int
    - write_reject_request
    - inc_stats_counter
    - std::shared_ptr::verifying
    - clear
    - std::shared_ptr::is_deleted
    - async_hash
    - time_now
    - std::shared_ptr::have_piece
    - std::shared_ptr::is_aborted
    - erase
    - TORRENT_ASSERT
    - std::shared_ptr::storage
    - async_read
    - lock
    - std::shared_ptr::verified_piece
    - std::shared_ptr::valid_metadata
    - piece_index_t
    - size
    - std::shared_ptr::torrent_file
    - std::shared_ptr::seed_mode
    - std::shared_ptr::info_hash
    - std::int64_t
    - peer_connection::should_log
    - settings
    - send_buffer_size
    linkageType: ''
    returnType: void
    signature: void peer_connection::fill_send_buffer()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5425,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5425,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:5428,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5430,1
    - Dst: std::shared_ptr::is_aborted
      Src: /src/libtorrent/src/peer_connection.cpp:5433,1
    - Dst: std::shared_ptr::handle_disk_error
      Src: /src/libtorrent/src/peer_connection.cpp:5437,1
    - Dst: std::shared_ptr::leave_seed_mode
      Src: /src/libtorrent/src/peer_connection.cpp:5438,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:5453,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:5454,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:5456,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:5459,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:5460,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:5464,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5466,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5466,1
    - Dst: std::shared_ptr::need_hash_picker
      Src: /src/libtorrent/src/peer_connection.cpp:5468,1
    - Dst: std::shared_ptr::get_hash_picker
      Src: /src/libtorrent/src/peer_connection.cpp:5469,1
    - Dst: libtorrent::unknown
      Src: /src/libtorrent/src/peer_connection.cpp:5470,1
    - Dst: auto::set_block_hash
      Src: /src/libtorrent/src/peer_connection.cpp:5473,1
    - Dst: std::shared_ptr::set_error
      Src: /src/libtorrent/src/peer_connection.cpp:5491,1
    - Dst: std::shared_ptr::pause
      Src: /src/libtorrent/src/peer_connection.cpp:5492,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5499,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:5500,1
    - Dst: std::shared_ptr::leave_seed_mode
      Src: /src/libtorrent/src/peer_connection.cpp:5503,1
    - Dst: std::shared_ptr::seed_mode
      Src: /src/libtorrent/src/peer_connection.cpp:5507,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5509,1
    - Dst: std::shared_ptr::verifying_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5509,1
    - Dst: std::shared_ptr::verified
      Src: /src/libtorrent/src/peer_connection.cpp:5510,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5514,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:5515,1
    - Dst: std::shared_ptr::seed_mode
      Src: /src/libtorrent/src/peer_connection.cpp:5517,1
    - Dst: std::shared_ptr::all_verified
      Src: /src/libtorrent/src/peer_connection.cpp:5517,1
    - Dst: std::shared_ptr::leave_seed_mode
      Src: /src/libtorrent/src/peer_connection.cpp:5518,1
    - Dst: peer_connection::fill_send_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:5523,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 4
    argNames:
    - piece
    - ' piece_hash'
    - ' block_hashes'
    - ' error'
    argTypes:
    - piece_index_t
    - sha1_hash
    - aux::vector<sha256_hash>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5524
      start: 5421
    functionDepth: 3
    functionLinenumber: 5421
    functionLinenumberEnd: 5524
    functionName: peer_connection::on_seed_mode_hashed
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - get_bool
    - std::shared_ptr::need_hash_picker
    - std::shared_ptr::verifying_piece
    - std::shared_ptr::verified
    - std::shared_ptr::pause
    - peer_connection::is_single_thread
    - auto::set_block_hash
    - std::shared_ptr::set_error
    - peer_connection::peer_log
    - std::shared_ptr::handle_disk_error
    - std::shared_ptr::all_verified
    - libtorrent::unknown
    - std::shared_ptr::is_aborted
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::get_hash_picker
    - size
    - std::shared_ptr::torrent_file
    - std::shared_ptr::seed_mode
    - peer_connection::fill_send_buffer
    - std::shared_ptr::info_hash
    - std::shared_ptr::leave_seed_mode
    linkageType: ''
    returnType: void
    signature: "void peer_connection::on_seed_mode_hashed(piece_index_t const piece\n\t\t,
      sha1_hash const& piece_hash, aux::vector<sha256_hash> const& block_hashes\n\t\t,
      storage_error const& error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: associated_torrent
      Src: /src/libtorrent/src/peer_connection.cpp:5531,1
    - Dst: auto::picker
      Src: /src/libtorrent/src/peer_connection.cpp:5534,1
    - Dst: auto::need_hash_picker
      Src: /src/libtorrent/src/peer_connection.cpp:5536,1
    - Dst: auto::get_hash_picker
      Src: /src/libtorrent/src/peer_connection.cpp:5537,1
    - Dst: auto::piece_failed
      Src: /src/libtorrent/src/peer_connection.cpp:5544,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5545,1
    - Dst: auto::verify_block_hashes
      Src: /src/libtorrent/src/peer_connection.cpp:5548,1
    - Dst: auto::need_picker
      Src: /src/libtorrent/src/peer_connection.cpp:5552,1
    - Dst: auto::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:5553,1
    - Dst: auto::picker
      Src: /src/libtorrent/src/peer_connection.cpp:5558,1
    - Dst: auto::get_hash_picker
      Src: /src/libtorrent/src/peer_connection.cpp:5559,1
    - Dst: auto::picker
      Src: /src/libtorrent/src/peer_connection.cpp:5560,1
    - Dst: auto::piece_passed
      Src: /src/libtorrent/src/peer_connection.cpp:5562,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/peer_connection.cpp:5568,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - ' error'
    - ' r'
    - ' hash'
    argTypes:
    - storage_error
    - peer_request
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5571
      start: 5528
    functionDepth: 1
    functionLinenumber: 5528
    functionLinenumberEnd: 5571
    functionName: peer_connection::on_hash2_complete
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - auto::get_hash_picker
    - auto::need_picker
    - associated_torrent
    - auto::verify_block_hashes
    - auto::torrent_file
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - auto::piece_failed
    - auto::need_hash_picker
    - auto::picker
    - auto::piece_passed
    linkageType: ''
    returnType: void
    signature: "void peer_connection::on_hash2_complete(storage_error const& error\n\t\t,
      peer_request const& r, sha256_hash const& hash)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5578,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5578,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5579,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/peer_connection.cpp:5585,1
    - Dst: time_now
      Src: /src/libtorrent/src/peer_connection.cpp:5585,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:5588,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5590,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:5592,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:5592,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:5592,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/peer_connection.cpp:5593,1
    - Dst: disk_buffer_holder::data
      Src: /src/libtorrent/src/peer_connection.cpp:5593,1
    - Dst: ec::message
      Src: /src/libtorrent/src/peer_connection.cpp:5594,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:5600,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:5605,1
    - Dst: write_dont_have
      Src: /src/libtorrent/src/peer_connection.cpp:5609,1
    - Dst: write_reject_request
      Src: /src/libtorrent/src/peer_connection.cpp:5610,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5611,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5612,1
    - Dst: std::shared_ptr::resolve_filename
      Src: /src/libtorrent/src/peer_connection.cpp:5613,1
    - Dst: file
      Src: /src/libtorrent/src/peer_connection.cpp:5613,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:5614,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:5617,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5626,1
    - Dst: std::shared_ptr::add_suggest_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5632,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:5639,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5644,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:5646,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:5646,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_connection.cpp:5646,1
    - Dst: blend_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:5649,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5654,1
    - Dst: std::shared_ptr::add_suggest_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5656,1
    - Dst: write_piece
      Src: /src/libtorrent/src/peer_connection.cpp:5658,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection.cpp:5658,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - buffer
    - ' error'
    - ' r'
    - issue_time
    argTypes:
    - disk_buffer_holder
    - storage_error
    - peer_request
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5659
      start: 5574
    functionDepth: 2
    functionLinenumber: 5574
    functionLinenumberEnd: 5659
    functionName: peer_connection::on_disk_read_complete
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - write_dont_have
    - std::move
    - std::uint32_t
    - std::shared_ptr::resolve_filename
    - peer_connection::disconnect
    - std::shared_ptr::get_handle
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - get_int
    - write_reject_request
    - file
    - disk_buffer_holder::data
    - time_now
    - TORRENT_ASSERT
    - static_cast<void*>
    - lock
    - blend_stats_counter
    - std::shared_ptr::add_suggest_piece
    - total_microseconds
    - std::shared_ptr::alerts
    - peer_connection::should_log
    - ec::message
    - write_piece
    linkageType: ''
    returnType: void
    signature: "void peer_connection::on_disk_read_complete(disk_buffer_holder buffer\n\t\t,
      storage_error const& error\n\t\t, peer_request const& r, time_point const issue_time)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5663,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5663,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5665,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5670,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:5670,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5672,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:5676,1
    - Dst: is_disconnecting
      Src: /src/libtorrent/src/peer_connection.cpp:5679,1
    - Dst: peer_connection::setup_send
      Src: /src/libtorrent/src/peer_connection.cpp:5682,1
    - Dst: peer_connection::setup_receive
      Src: /src/libtorrent/src/peer_connection.cpp:5686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - channel
    - amount
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5688
      start: 5661
    functionDepth: 1
    functionLinenumber: 5661
    functionLinenumberEnd: 5688
    functionName: peer_connection::assign_bandwidth
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - peer_connection::setup_send
    - peer_connection::peer_log
    - is_disconnecting
    - TORRENT_ASSERT
    - peer_connection::setup_receive
    - peer_connection::check_invariant
    linkageType: ''
    returnType: void
    signature: void peer_connection::assign_bandwidth(int const channel, int const
      amount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5695,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5695,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_connection.cpp:5697,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5697,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/peer_connection.cpp:5701,1
    - Dst: download_rate
      Src: /src/libtorrent/src/peer_connection.cpp:5701,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_connection.cpp:5702,1
    - Dst: packet_bytes_remaining
      Src: /src/libtorrent/src/peer_connection.cpp:5703,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/peer_connection.cpp:5708,1
    - Dst: upload_rate
      Src: /src/libtorrent/src/peer_connection.cpp:5708,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_connection.cpp:5709,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5713
      start: 5693
    functionDepth: 1
    functionLinenumber: 5693
    functionLinenumberEnd: 5713
    functionName: peer_connection::wanted_transfer
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - packet_bytes_remaining
    - TORRENT_ASSERT
    - get_int
    - std::int64_t
    - download_rate
    - std::max
    - size
    - upload_rate
    linkageType: ''
    returnType: int
    signature: int peer_connection::wanted_transfer(int const channel)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5717,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5717,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:5723,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_connection.cpp:5725,1
    - Dst: peer_connection::wanted_transfer
      Src: /src/libtorrent/src/peer_connection.cpp:5725,1
    - Dst: peer_connection::get_priority
      Src: /src/libtorrent/src/peer_connection.cpp:5733,1
    - Dst: num_classes
      Src: /src/libtorrent/src/peer_connection.cpp:5735,1
    - Dst: std::shared_ptr::num_classes
      Src: /src/libtorrent/src/peer_connection.cpp:5735,1
    - Dst: copy_pertinent_channels
      Src: /src/libtorrent/src/peer_connection.cpp:5742,1
    - Dst: subspan
      Src: /src/libtorrent/src/peer_connection.cpp:5743,1
    - Dst: copy_pertinent_channels
      Src: /src/libtorrent/src/peer_connection.cpp:5746,1
    - Dst: subspan
      Src: /src/libtorrent/src/peer_connection.cpp:5747,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5755,1
    - Dst: std::set::count
      Src: /src/libtorrent/src/peer_connection.cpp:5755,1
    - Dst: std::set::insert
      Src: /src/libtorrent/src/peer_connection.cpp:5756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5760,1
    - Dst: get_bandwidth_manager
      Src: /src/libtorrent/src/peer_connection.cpp:5762,1
    - Dst: aux::bandwidth_manager*::request_bandwidth
      Src: /src/libtorrent/src/peer_connection.cpp:5764,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:5764,1
    - Dst: data
      Src: /src/libtorrent/src/peer_connection.cpp:5765,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:5772,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5774,1
    - Dst: peer_connection::wanted_transfer
      Src: /src/libtorrent/src/peer_connection.cpp:5777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - channel
    - bytes
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5788
      start: 5715
    functionDepth: 2
    functionLinenumber: 5715
    functionLinenumberEnd: 5788
    functionName: peer_connection::request_bandwidth
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 2
    functionsReached:
    - aux::bandwidth_manager*::request_bandwidth
    - peer_connection::is_single_thread
    - std::shared_ptr::num_classes
    - copy_pertinent_channels
    - get_bandwidth_manager
    - num_classes
    - peer_connection::peer_log
    - peer_connection::get_priority
    - subspan
    - TORRENT_ASSERT
    - peer_connection::wanted_transfer
    - std::set::count
    - peer_connection::should_log
    - std::max
    - lock
    - self
    - std::set::insert
    - data
    linkageType: ''
    returnType: int
    signature: int peer_connection::request_bandwidth(int const channel, int bytes)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5792,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5792,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5794,1
    - Dst: peer_connection::request_bandwidth
      Src: /src/libtorrent/src/peer_connection.cpp:5797,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5804,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5805,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:5814,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5814,1
    - Dst: build_mutable_iovec
      Src: /src/libtorrent/src/peer_connection.cpp:5815,1
    - Dst: std::tie
      Src: /src/libtorrent/src/peer_connection.cpp:5818,1
    - Dst: hit_send_barrier
      Src: /src/libtorrent/src/peer_connection.cpp:5818,1
    - Dst: span::rbegin
      Src: /src/libtorrent/src/peer_connection.cpp:5819,1
    - Dst: span::rend
      Src: /src/libtorrent/src/peer_connection.cpp:5819,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/peer_connection.cpp:5823,1
    - Dst: auto::data
      Src: /src/libtorrent/src/peer_connection.cpp:5823,1
    - Dst: prepend_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:5824,1
    - Dst: span<char>
      Src: /src/libtorrent/src/peer_connection.cpp:5824,1
    - Dst: auto::size
      Src: /src/libtorrent/src/peer_connection.cpp:5824,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_connection.cpp:5825,1
    - Dst: auto::size
      Src: /src/libtorrent/src/peer_connection.cpp:5825,1
    - Dst: set_send_barrier
      Src: /src/libtorrent/src/peer_connection.cpp:5827,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5831,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5838,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:5843,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5846,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5851,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5852,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:5854,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5866,1
    - Dst: std::shared_ptr::alerts
      Src: /src/libtorrent/src/peer_connection.cpp:5868,1
    - Dst: std::shared_ptr::get_handle
      Src: /src/libtorrent/src/peer_connection.cpp:5868,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:5876,1
    - Dst: peer_connection::can_write
      Src: /src/libtorrent/src/peer_connection.cpp:5880,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:5883,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:5885,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5887,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5891,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5893,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5897,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5901,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:5909,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:5910,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5914,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5916,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5918,1
    - Dst: build_iovec
      Src: /src/libtorrent/src/peer_connection.cpp:5920,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/peer_connection.cpp:5921,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5924,1
    - Dst: async_write_some
      Src: /src/libtorrent/src/peer_connection.cpp:5939,1
    - Dst: write_handler_type
      Src: /src/libtorrent/src/peer_connection.cpp:5939,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:5939,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:5942,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:5942,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5943
      start: 5790
    functionDepth: 3
    functionLinenumber: 5790
    functionLinenumberEnd: 5943
    functionName: peer_connection::setup_send
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - span::rbegin
    - static_cast<int>
    - empty
    - peer_connection::can_write
    - std::min
    - span::rend
    - set_send_barrier
    - self
    - std::shared_ptr::get_handle
    - libtorrent::aux::time_now
    - ADD_OUTSTANDING_ASYNC
    - span<char>
    - peer_connection::is_single_thread
    - build_mutable_iovec
    - peer_connection::peer_log
    - set
    - prepend_buffer
    - get_int
    - inc_stats_counter
    - hit_send_barrier
    - write_handler_type
    - build_iovec
    - TORRENT_ASSERT
    - auto::size
    - lock
    - peer_connection::request_bandwidth
    - size
    - const_cast<char*>
    - auto::data
    - std::tie
    - std::shared_ptr::alerts
    - peer_connection::should_log
    - async_write_some
    linkageType: ''
    returnType: void
    signature: void peer_connection::setup_send()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5947,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5947,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5952,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:5954,1
    - Dst: peer_connection::setup_receive
      Src: /src/libtorrent/src/peer_connection.cpp:5956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5957
      start: 5945
    functionDepth: 1
    functionLinenumber: 5945
    functionLinenumberEnd: 5957
    functionName: peer_connection::on_disk
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - TORRENT_ASSERT
    - inc_stats_counter
    - peer_connection::setup_receive
    linkageType: ''
    returnType: void
    signature: void peer_connection::on_disk()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:5961,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:5961,1
    - Dst: capacity
      Src: /src/libtorrent/src/peer_connection.cpp:5966,1
    - Dst: max_receive
      Src: /src/libtorrent/src/peer_connection.cpp:5967,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_connection.cpp:5969,1
    - Dst: max_receive
      Src: /src/libtorrent/src/peer_connection.cpp:5973,1
    - Dst: peer_connection::request_bandwidth
      Src: /src/libtorrent/src/peer_connection.cpp:5974,1
    - Dst: peer_connection::can_read
      Src: /src/libtorrent/src/peer_connection.cpp:5984,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:5987,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:5989,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:5994,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6004,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:6008,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_connection.cpp:6012,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6013,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6016,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/peer_connection.cpp:6020,1
    - Dst: async_read_some
      Src: /src/libtorrent/src/peer_connection.cpp:6033,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:6033,1
    - Dst: span::data
      Src: /src/libtorrent/src/peer_connection.cpp:6033,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/peer_connection.cpp:6033,1
    - Dst: span::size
      Src: /src/libtorrent/src/peer_connection.cpp:6033,1
    - Dst: read_handler_type
      Src: /src/libtorrent/src/peer_connection.cpp:6033,1
    - Dst: self
      Src: /src/libtorrent/src/peer_connection.cpp:6033,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6034
      start: 5959
    functionDepth: 3
    functionLinenumber: 5959
    functionLinenumberEnd: 6034
    functionName: peer_connection::setup_receive
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 3
    functionsReached:
    - span::size
    - max_receive
    - std::min
    - async_read_some
    - self
    - ADD_OUTSTANDING_ASYNC
    - read_handler_type
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - get_int
    - std::size_t
    - peer_connection::can_read
    - span::data
    - TORRENT_ASSERT
    - reserve
    - capacity
    - peer_connection::request_bandwidth
    - peer_connection::should_log
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void peer_connection::setup_receive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6036
    functionDepth: 0
    functionLinenumber: 6036
    functionLinenumberEnd: 6043
    functionName: peer_connection::downloading_piece_progress
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - peer_connection::peer_log
    linkageType: ''
    returnType: piece_block_progress
    signature: piece_block_progress peer_connection::downloading_piece_progress()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6047,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6047,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:6049,1
    - Dst: space_in_last_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:6050,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/peer_connection.cpp:6050,1
    - Dst: append
      Src: /src/libtorrent/src/peer_connection.cpp:6053,1
    - Dst: span<char const>::first
      Src: /src/libtorrent/src/peer_connection.cpp:6053,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/peer_connection.cpp:6057,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6058,1
    - Dst: span<char const>::subspan
      Src: /src/libtorrent/src/peer_connection.cpp:6059,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/peer_connection.cpp:6061,1
    - Dst: std::max
      Src: /src/libtorrent/src/peer_connection.cpp:6064,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/peer_connection.cpp:6064,1
    - Dst: append_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:6065,1
    - Dst: std::move
      Src: /src/libtorrent/src/peer_connection.cpp:6065,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/peer_connection.cpp:6065,1
    - Dst: peer_connection::setup_send
      Src: /src/libtorrent/src/peer_connection.cpp:6067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6068
      start: 6045
    functionDepth: 4
    functionLinenumber: 6045
    functionLinenumberEnd: 6068
    functionName: peer_connection::send_buffer
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::is_single_thread
    - std::move
    - append
    - append_buffer
    - peer_connection::setup_send
    - space_in_last_buffer
    - span<char const>::first
    - TORRENT_ASSERT
    - std::min
    - std::max
    - span<char const>::size
    - span<char const>::subspan
    - span<char const>::empty
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void peer_connection::send_buffer(span<char const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6077,1
    - Dst: received
      Src: /src/libtorrent/src/peer_connection.cpp:6078,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6081,1
    - Dst: received_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:6085,1
    - Dst: peer_connection::trancieve_ip_packet
      Src: /src/libtorrent/src/peer_connection.cpp:6088,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/peer_connection.cpp:6088,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - bytes_transferred
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6094
      start: 6074
    functionDepth: 2
    functionLinenumber: 6074
    functionLinenumberEnd: 6094
    functionName: peer_connection::account_received_bytes
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::trancieve_ip_packet
    - libtorrent::aux::is_v6
    - peer_connection::peer_log
    - TORRENT_ASSERT
    - received_buffer
    - received
    linkageType: ''
    returnType: void
    signature: void peer_connection::account_received_bytes(int const bytes_transferred)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6099,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6099,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/peer_connection.cpp:6100,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:6103,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6105,1
    - Dst: print_error
      Src: /src/libtorrent/src/peer_connection.cpp:6107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6114,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6116,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:6118,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:6125,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6127,1
    - Dst: print_error
      Src: /src/libtorrent/src/peer_connection.cpp:6129,1
    - Dst: on_receive
      Src: /src/libtorrent/src/peer_connection.cpp:6132,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6133,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:6137,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:6137,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/peer_connection.cpp:6140,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6148,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6156,1
    - Dst: max_receive
      Src: /src/libtorrent/src/peer_connection.cpp:6156,1
    - Dst: max_receive
      Src: /src/libtorrent/src/peer_connection.cpp:6157,1
    - Dst: peer_connection::account_received_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:6158,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_connection.cpp:6161,1
    - Dst: peer_connection::check_graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:6163,1
    - Dst: available
      Src: /src/libtorrent/src/peer_connection.cpp:6171,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6174,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6179,1
    - Dst: peer_connection::request_bandwidth
      Src: /src/libtorrent/src/peer_connection.cpp:6183,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_connection.cpp:6189,1
    - Dst: read_some
      Src: /src/libtorrent/src/peer_connection.cpp:6190,1
    - Dst: libtorrent::aux::receive_buffer::mutable_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:6191,1
    - Dst: span::data
      Src: /src/libtorrent/src/peer_connection.cpp:6191,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/peer_connection.cpp:6191,1
    - Dst: span::size
      Src: /src/libtorrent/src/peer_connection.cpp:6191,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:6197,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6199,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/peer_connection.cpp:6200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6204,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6210,1
    - Dst: peer_connection::account_received_bytes
      Src: /src/libtorrent/src/peer_connection.cpp:6216,1
    - Dst: advance_pos
      Src: /src/libtorrent/src/peer_connection.cpp:6228,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6229,1
    - Dst: on_receive
      Src: /src/libtorrent/src/peer_connection.cpp:6230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/peer_connection.cpp:6230,1
    - Dst: normalize
      Src: /src/libtorrent/src/peer_connection.cpp:6239,1
    - Dst: max_receive
      Src: /src/libtorrent/src/peer_connection.cpp:6241,1
    - Dst: get_int
      Src: /src/libtorrent/src/peer_connection.cpp:6246,1
    - Dst: grow
      Src: /src/libtorrent/src/peer_connection.cpp:6247,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6249,1
    - Dst: capacity
      Src: /src/libtorrent/src/peer_connection.cpp:6250,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6254,1
    - Dst: pos_at_end
      Src: /src/libtorrent/src/peer_connection.cpp:6254,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6255,1
    - Dst: packet_size
      Src: /src/libtorrent/src/peer_connection.cpp:6255,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:6257,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:6259,1
    - Dst: std::shared_ptr::seen_complete
      Src: /src/libtorrent/src/peer_connection.cpp:6260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6264,1
    - Dst: peer_connection::setup_receive
      Src: /src/libtorrent/src/peer_connection.cpp:6267,1
    - Dst: peer_connection::send_block_requests_impl
      Src: /src/libtorrent/src/peer_connection.cpp:6272,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 81
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6274
      start: 6096
    functionDepth: 4
    functionLinenumber: 6096
    functionLinenumberEnd: 6274
    functionName: peer_connection::on_receive_data
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::account_received_bytes
    - packet_size
    - span::size
    - max_receive
    - std::min
    - peer_connection::is_seed
    - peer_connection::disconnect
    - deferred_submit_jobs
    - std::shared_ptr::seen_complete
    - libtorrent::aux::time_now
    - pos_at_end
    - peer_connection::is_single_thread
    - peer_connection::send_block_requests_impl
    - peer_connection::peer_log
    - peer_connection::check_graceful_pause
    - set
    - on_receive
    - read_some
    - libtorrent::aux::receive_buffer::mutable_buffer
    - inc_stats_counter
    - std::size_t
    - error_code::message
    - get_int
    - grow
    - advance_pos
    - COMPLETE_ASYNC
    - normalize
    - span::data
    - TORRENT_ASSERT
    - reserve
    - lock
    - peer_connection::request_bandwidth
    - print_error
    - capacity
    - peer_connection::setup_receive
    - available
    - peer_connection::should_log
    linkageType: ''
    returnType: void
    signature: "void peer_connection::on_receive_data(error_code const& error\n\t\t,
      std::size_t bytes_transferred)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6278,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6278,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:6281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6276
    functionDepth: 1
    functionLinenumber: 6276
    functionLinenumberEnd: 6285
    functionName: peer_connection::can_write
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - empty
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::can_write() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6289,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6289,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:6292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6308
      start: 6287
    functionDepth: 1
    functionLinenumber: 6287
    functionLinenumberEnd: 6308
    functionName: peer_connection::can_read
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - lock
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::can_read()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6312,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6312,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/peer_connection.cpp:6313,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:6319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6320,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:6323,1
    - Dst: std::shared_ptr::dec_num_connecting
      Src: /src/libtorrent/src/peer_connection.cpp:6324,1
    - Dst: peer_connection::connect_failed
      Src: /src/libtorrent/src/peer_connection.cpp:6332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6336,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:6338,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:6341,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:6341,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:6344,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6347,1
    - Dst: get_str
      Src: /src/libtorrent/src/peer_connection.cpp:6353,1
    - Dst: verify_bound_address
      Src: /src/libtorrent/src/peer_connection.cpp:6355,1
    - Dst: address
      Src: /src/libtorrent/src/peer_connection.cpp:6355,1
    - Dst: is_utp
      Src: /src/libtorrent/src/peer_connection.cpp:6356,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6360,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6363,1
    - Dst: error_code
      Src: /src/libtorrent/src/peer_connection.cpp:6363,1
    - Dst: generic_category
      Src: /src/libtorrent/src/peer_connection.cpp:6364,1
    - Dst: is_utp
      Src: /src/libtorrent/src/peer_connection.cpp:6370,1
    - Dst: peer_connection::received_synack
      Src: /src/libtorrent/src/peer_connection.cpp:6378,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/peer_connection.cpp:6378,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:6381,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6383,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:6384,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6391,1
    - Dst: non_blocking
      Src: /src/libtorrent/src/peer_connection.cpp:6393,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6396,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_connection.cpp:6400,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6402,1
    - Dst: on_connected
      Src: /src/libtorrent/src/peer_connection.cpp:6409,1
    - Dst: on_connected
      Src: /src/libtorrent/src/peer_connection.cpp:6413,1
    - Dst: peer_connection::send_block_requests_impl
      Src: /src/libtorrent/src/peer_connection.cpp:6418,1
    - Dst: peer_connection::setup_receive
      Src: /src/libtorrent/src/peer_connection.cpp:6421,1
    - Dst: peer_connection::setup_send
      Src: /src/libtorrent/src/peer_connection.cpp:6422,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6423
      start: 6310
    functionDepth: 4
    functionLinenumber: 6310
    functionLinenumberEnd: 6423
    functionName: peer_connection::on_connection_complete
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::is_v6
    - on_connected
    - peer_connection::disconnect
    - libtorrent::aux::time_now
    - peer_connection::is_single_thread
    - peer_connection::send_block_requests_impl
    - peer_connection::peer_log
    - set
    - print_endpoint
    - inc_stats_counter
    - address
    - verify_bound_address
    - peer_connection::received_synack
    - COMPLETE_ASYNC
    - get_str
    - non_blocking
    - TORRENT_ASSERT
    - generic_category
    - lock
    - is_utp
    - peer_connection::setup_receive
    - error_code
    - peer_connection::connect_failed
    - peer_connection::should_log
    - local_endpoint
    - std::shared_ptr::dec_num_connecting
    - peer_connection::setup_send
    linkageType: ''
    returnType: void
    signature: void peer_connection::on_connection_complete(error_code const& e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6432,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6432,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/peer_connection.cpp:6433,1
    - Dst: sent_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:6434,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6437,1
    - Dst: deferred_submit_jobs
      Src: /src/libtorrent/src/peer_connection.cpp:6443,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:6446,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6448,1
    - Dst: print_error
      Src: /src/libtorrent/src/peer_connection.cpp:6449,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/peer_connection.cpp:6455,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6460,1
    - Dst: pop_front
      Src: /src/libtorrent/src/peer_connection.cpp:6462,1
    - Dst: time_now
      Src: /src/libtorrent/src/peer_connection.cpp:6464,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6478,1
    - Dst: peer_connection::trancieve_ip_packet
      Src: /src/libtorrent/src/peer_connection.cpp:6481,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/peer_connection.cpp:6481,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6487,1
    - Dst: peer_connection::should_log
      Src: /src/libtorrent/src/peer_connection.cpp:6494,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6496,1
    - Dst: message
      Src: /src/libtorrent/src/peer_connection.cpp:6497,1
    - Dst: peer_connection::disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6500,1
    - Dst: clear
      Src: /src/libtorrent/src/peer_connection.cpp:6507,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6511,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6512,1
    - Dst: set
      Src: /src/libtorrent/src/peer_connection.cpp:6514,1
    - Dst: last_payload_uploaded
      Src: /src/libtorrent/src/peer_connection.cpp:6517,1
    - Dst: last_protocol_uploaded
      Src: /src/libtorrent/src/peer_connection.cpp:6518,1
    - Dst: on_sent
      Src: /src/libtorrent/src/peer_connection.cpp:6520,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6522,1
    - Dst: last_payload_uploaded
      Src: /src/libtorrent/src/peer_connection.cpp:6522,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6523,1
    - Dst: last_protocol_uploaded
      Src: /src/libtorrent/src/peer_connection.cpp:6523,1
    - Dst: last_payload_uploaded
      Src: /src/libtorrent/src/peer_connection.cpp:6524,1
    - Dst: last_protocol_uploaded
      Src: /src/libtorrent/src/peer_connection.cpp:6525,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6526,1
    - Dst: peer_connection::fill_send_buffer
      Src: /src/libtorrent/src/peer_connection.cpp:6529,1
    - Dst: peer_connection::setup_send
      Src: /src/libtorrent/src/peer_connection.cpp:6531,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6532
      start: 6429
    functionDepth: 4
    functionLinenumber: 6429
    functionLinenumberEnd: 6532
    functionName: peer_connection::on_send_data
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::is_v6
    - peer_connection::disconnect
    - deferred_submit_jobs
    - peer_connection::is_single_thread
    - peer_connection::peer_log
    - message
    - set
    - inc_stats_counter
    - clear
    - pop_front
    - COMPLETE_ASYNC
    - sent_buffer
    - time_now
    - TORRENT_ASSERT
    - on_sent
    - print_error
    - last_protocol_uploaded
    - peer_connection::trancieve_ip_packet
    - last_payload_uploaded
    - peer_connection::fill_send_buffer
    - peer_connection::should_log
    - peer_connection::setup_send
    linkageType: ''
    returnType: void
    signature: "void peer_connection::on_send_data(error_code const& error\n\t\t,
      std::size_t const bytes_transferred)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6537
      start: 6537
    functionDepth: 0
    functionLinenumber: 6537
    functionLinenumberEnd: 6537
    functionName: peer_count_t
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_count_t()
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6547,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6547,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6548,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6549,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6550,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6550,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6550,1
    - Dst: peer_connection::check_invariant
      Src: /src/libtorrent/src/peer_connection.cpp:6552,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6560,1
    - Dst: get_bandwidth_manager
      Src: /src/libtorrent/src/peer_connection.cpp:6560,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:6564,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:6568,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:6569,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:6569,1
    - Dst: std::shared_ptr::is_finished
      Src: /src/libtorrent/src/peer_connection.cpp:6575,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6576,1
    - Dst: is_interesting
      Src: /src/libtorrent/src/peer_connection.cpp:6576,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:6577,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6578,1
    - Dst: upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:6578,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6583,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:6583,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6584,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_connection.cpp:6584,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6588,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:6590,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:6600,1
    - Dst: std::shared_ptr::block_size
      Src: /src/libtorrent/src/peer_connection.cpp:6605,1
    - Dst: last_piece
      Src: /src/libtorrent/src/peer_connection.cpp:6606,1
    - Dst: piece_size
      Src: /src/libtorrent/src/peer_connection.cpp:6607,1
    - Dst: last_piece
      Src: /src/libtorrent/src/peer_connection.cpp:6607,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:6608,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:6609,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6611,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6612,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:6614,1
    - Dst: std::shared_ptr::to_req
      Src: /src/libtorrent/src/peer_connection.cpp:6620,1
    - Dst: std::shared_ptr::to_req
      Src: /src/libtorrent/src/peer_connection.cpp:6624,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/peer_connection.cpp:6631,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6635,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6640,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:6640,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6641,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/peer_connection.cpp:6641,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6641,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6642,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:6642,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6643,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6644,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6645,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6652,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6652,1
    - Dst: std::transform
      Src: /src/libtorrent/src/peer_connection.cpp:6656,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:6656,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:6656,1
    - Dst: inserter
      Src: /src/libtorrent/src/peer_connection.cpp:6657,1
    - Dst: std::set::begin
      Src: /src/libtorrent/src/peer_connection.cpp:6657,1
    - Dst: std::bind
      Src: /src/libtorrent/src/peer_connection.cpp:6657,1
    - Dst: std::transform
      Src: /src/libtorrent/src/peer_connection.cpp:6658,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_connection.cpp:6658,1
    - Dst: end
      Src: /src/libtorrent/src/peer_connection.cpp:6658,1
    - Dst: inserter
      Src: /src/libtorrent/src/peer_connection.cpp:6659,1
    - Dst: std::set::begin
      Src: /src/libtorrent/src/peer_connection.cpp:6659,1
    - Dst: std::bind
      Src: /src/libtorrent/src/peer_connection.cpp:6659,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6660,1
    - Dst: std::set::size
      Src: /src/libtorrent/src/peer_connection.cpp:6660,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6660,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6660,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6665,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6671,1
    - Dst: is_choked
      Src: /src/libtorrent/src/peer_connection.cpp:6671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6674,1
    - Dst: count
      Src: /src/libtorrent/src/peer_connection.cpp:6674,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6681,1
    - Dst: any_torrent_has_peer
      Src: /src/libtorrent/src/peer_connection.cpp:6681,1
    - Dst: std::shared_ptr::info_hash
      Src: /src/libtorrent/src/peer_connection.cpp:6686,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:6687,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_connection.cpp:6687,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6688,1
    - Dst: has_v2
      Src: /src/libtorrent/src/peer_connection.cpp:6688,1
    - Dst: std::shared_ptr::ready_for_connections
      Src: /src/libtorrent/src/peer_connection.cpp:6690,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6691,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/peer_connection.cpp:6691,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6691,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:6694,1
    - Dst: std::shared_ptr::share_mode
      Src: /src/libtorrent/src/peer_connection.cpp:6696,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6701,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6702,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6703,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6704,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6705,1
    - Dst: peer_connection::can_disconnect
      Src: /src/libtorrent/src/peer_connection.cpp:6706,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:6709,1
    - Dst: upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:6710,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:6712,1
    - Dst: has_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:6713,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6715,1
    - Dst: std::shared_ptr::graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:6715,1
    - Dst: std::shared_ptr::has_error
      Src: /src/libtorrent/src/peer_connection.cpp:6715,1
    - Dst: upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:6717,1
    - Dst: std::shared_ptr::are_files_checked
      Src: /src/libtorrent/src/peer_connection.cpp:6721,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:6722,1
    - Dst: has_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:6723,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6725,1
    - Dst: get_bool
      Src: /src/libtorrent/src/peer_connection.cpp:6729,1
    - Dst: std::shared_ptr::is_upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:6732,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6733,1
    - Dst: std::shared_ptr::graceful_pause
      Src: /src/libtorrent/src/peer_connection.cpp:6733,1
    - Dst: std::shared_ptr::has_error
      Src: /src/libtorrent/src/peer_connection.cpp:6733,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:6734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6735,1
    - Dst: upload_only
      Src: /src/libtorrent/src/peer_connection.cpp:6735,1
    - Dst: std::shared_ptr::has_picker
      Src: /src/libtorrent/src/peer_connection.cpp:6739,1
    - Dst: std::shared_ptr::begin
      Src: /src/libtorrent/src/peer_connection.cpp:6742,1
    - Dst: std::shared_ptr::end
      Src: /src/libtorrent/src/peer_connection.cpp:6742,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6745,1
    - Dst: has_peer
      Src: /src/libtorrent/src/peer_connection.cpp:6745,1
    - Dst: request_queue
      Src: /src/libtorrent/src/peer_connection.cpp:6747,1
    - Dst: request_queue
      Src: /src/libtorrent/src/peer_connection.cpp:6748,1
    - Dst: download_queue
      Src: /src/libtorrent/src/peer_connection.cpp:6756,1
    - Dst: download_queue
      Src: /src/libtorrent/src/peer_connection.cpp:6757,1
    - Dst: std::map::begin
      Src: /src/libtorrent/src/peer_connection.cpp:6765,1
    - Dst: std::map::end
      Src: /src/libtorrent/src/peer_connection.cpp:6766,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:6775,1
    - Dst: std::shared_ptr::picker
      Src: /src/libtorrent/src/peer_connection.cpp:6776,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6777,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6830,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6836,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6836,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:6841,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:6841,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:6842,1
    - Dst: peer_connection::timeout
      Src: /src/libtorrent/src/peer_connection.cpp:6842,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:6845,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6852,1
    - Dst: write_keepalive
      Src: /src/libtorrent/src/peer_connection.cpp:6855,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6860,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6860,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:6864,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6865,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:6866,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6872,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6872,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:6874,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6882,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6882,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:6884,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6887
      start: 6545
    functionDepth: 3
    functionLinenumber: 6545
    functionLinenumberEnd: 6887
    functionName: peer_connection::check_invariant
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 8
    functionsReached:
    - peer_connection::can_disconnect
    - any_torrent_has_peer
    - std::shared_ptr::has_picker
    - count
    - has_metadata
    - write_keepalive
    - std::shared_ptr::ready_for_connections
    - begin
    - std::shared_ptr::are_files_checked
    - has_v2
    - std::shared_ptr::begin
    - empty
    - peer_connection::is_seed
    - peer_connection::disconnect_if_redundant
    - get_bool
    - is_interesting
    - libtorrent::aux::time_now
    - std::shared_ptr::end
    - peer_connection::is_single_thread
    - std::shared_ptr::share_mode
    - peer_connection::peer_log
    - end
    - std::map::begin
    - last_piece
    - std::set::begin
    - std::set::size
    - peer_connection::timeout
    - upload_only
    - std::shared_ptr::is_finished
    - std::shared_ptr::is_upload_only
    - TORRENT_ASSERT
    - std::map::end
    - request_queue
    - lock
    - std::shared_ptr::block_size
    - inserter
    - is_choked
    - std::shared_ptr::valid_metadata
    - has_peer
    - std::shared_ptr::to_req
    - size
    - std::shared_ptr::torrent_file
    - peer_connection::check_invariant
    - piece_index_t
    - std::bind
    - std::transform
    - std::shared_ptr::graceful_pause
    - get_bandwidth_manager
    - std::shared_ptr::picker
    - total_seconds
    - std::shared_ptr::info_hash
    - download_queue
    - in_handshake
    - peer_info_struct
    - std::fprintf
    - piece_size
    - get
    - std::shared_ptr::has_error
    linkageType: ''
    returnType: void
    signature: void peer_connection::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6832
      start: 6826
    functionDepth: 0
    functionLinenumber: 6826
    functionLinenumberEnd: 6832
    functionName: peer_connection::set_holepunch_mode
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - peer_connection::peer_log
    linkageType: ''
    returnType: void
    signature: void peer_connection::set_holepunch_mode()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6836,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6836,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/peer_connection.cpp:6841,1
    - Dst: get
      Src: /src/libtorrent/src/peer_connection.cpp:6841,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/peer_connection.cpp:6842,1
    - Dst: peer_connection::timeout
      Src: /src/libtorrent/src/peer_connection.cpp:6842,1
    - Dst: in_handshake
      Src: /src/libtorrent/src/peer_connection.cpp:6845,1
    - Dst: peer_connection::peer_log
      Src: /src/libtorrent/src/peer_connection.cpp:6852,1
    - Dst: write_keepalive
      Src: /src/libtorrent/src/peer_connection.cpp:6855,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6856
      start: 6834
    functionDepth: 2
    functionLinenumber: 6834
    functionLinenumberEnd: 6856
    functionName: peer_connection::keep_alive
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 1
    functionsReached:
    - write_keepalive
    - peer_connection::is_single_thread
    - total_seconds
    - peer_connection::peer_log
    - in_handshake
    - TORRENT_ASSERT
    - get
    - libtorrent::aux::time_now
    - peer_connection::timeout
    linkageType: ''
    returnType: void
    signature: void peer_connection::keep_alive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6860,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6860,1
    - Dst: lock
      Src: /src/libtorrent/src/peer_connection.cpp:6864,1
    - Dst: size
      Src: /src/libtorrent/src/peer_connection.cpp:6865,1
    - Dst: std::shared_ptr::valid_metadata
      Src: /src/libtorrent/src/peer_connection.cpp:6866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6867
      start: 6858
    functionDepth: 1
    functionLinenumber: 6858
    functionLinenumberEnd: 6867
    functionName: peer_connection::is_seed
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 7
    functionsReached:
    - peer_connection::is_single_thread
    - TORRENT_ASSERT
    - lock
    - std::shared_ptr::valid_metadata
    - size
    linkageType: ''
    returnType: bool
    signature: bool peer_connection::is_seed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6872,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6872,1
    - Dst: peer_connection::is_seed
      Src: /src/libtorrent/src/peer_connection.cpp:6874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - u
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6877
      start: 6870
    functionDepth: 1
    functionLinenumber: 6870
    functionLinenumberEnd: 6877
    functionName: peer_connection::set_share_mode
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - peer_connection::is_single_thread
    - peer_connection::is_seed
    linkageType: ''
    returnType: void
    signature: void peer_connection::set_share_mode(bool u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_connection.cpp:6882,1
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/src/peer_connection.cpp:6882,1
    - Dst: peer_connection::disconnect_if_redundant
      Src: /src/libtorrent/src/peer_connection.cpp:6884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - u
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6885
      start: 6880
    functionDepth: 3
    functionLinenumber: 6880
    functionLinenumberEnd: 6885
    functionName: peer_connection::set_upload_only
    functionSourceFile: /src/libtorrent/src/peer_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - peer_connection::disconnect_if_redundant
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: void
    signature: void peer_connection::set_upload_only(bool u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:45,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pe
    - blk
    - prio
    argTypes:
    - std::shared_ptr<bandwidth_socket>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::bw_request::bw_request
    functionSourceFile: /src/libtorrent/src/bandwidth_queue_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: "void bw_request::bw_request(std::shared_ptr<bandwidth_socket> pe\n\t\t,
      int blk, int prio)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:56,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:58,1
    - Dst: throttle
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:64,1
    - Dst: std::min
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:66,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:66,1
    - Dst: use_quota
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::bw_request::assign_bandwidth
    functionSourceFile: /src/libtorrent/src/bandwidth_queue_entry.cpp
    functionUses: 0
    functionsReached:
    - use_quota
    - TORRENT_ASSERT
    - std::min
    - std::int64_t
    - throttle
    linkageType: ''
    returnType: int
    signature: int bw_request::assign_bandwidth()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:45,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pe
    - blk
    - prio
    argTypes:
    - std::shared_ptr<bandwidth_socket>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::bw_request::bw_request
    functionSourceFile: /src/libtorrent/src/bandwidth_queue_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: "void bw_request::bw_request(std::shared_ptr<bandwidth_socket> pe\n\t\t,
      int blk, int prio)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:56,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:58,1
    - Dst: throttle
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:64,1
    - Dst: std::min
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:66,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:66,1
    - Dst: use_quota
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::bw_request::assign_bandwidth
    functionSourceFile: /src/libtorrent/src/bandwidth_queue_entry.cpp
    functionUses: 0
    functionsReached:
    - use_quota
    - TORRENT_ASSERT
    - std::min
    - std::int64_t
    - throttle
    linkageType: ''
    returnType: int
    signature: int bw_request::assign_bandwidth()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:45,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pe
    - blk
    - prio
    argTypes:
    - std::shared_ptr<bandwidth_socket>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::bw_request::bw_request
    functionSourceFile: /src/libtorrent/src/bandwidth_queue_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: "void bw_request::bw_request(std::shared_ptr<bandwidth_socket> pe\n\t\t,
      int blk, int prio)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:56,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:58,1
    - Dst: throttle
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:64,1
    - Dst: std::min
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:66,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:66,1
    - Dst: use_quota
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::bw_request::assign_bandwidth
    functionSourceFile: /src/libtorrent/src/bandwidth_queue_entry.cpp
    functionUses: 0
    functionsReached:
    - use_quota
    - TORRENT_ASSERT
    - std::min
    - std::int64_t
    - throttle
    linkageType: ''
    returnType: int
    signature: int bw_request::assign_bandwidth()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:45,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pe
    - blk
    - prio
    argTypes:
    - std::shared_ptr<bandwidth_socket>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::bw_request::bw_request
    functionSourceFile: /src/libtorrent/src/bandwidth_queue_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: "void bw_request::bw_request(std::shared_ptr<bandwidth_socket> pe\n\t\t,
      int blk, int prio)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:56,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:58,1
    - Dst: throttle
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:64,1
    - Dst: std::min
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:66,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:66,1
    - Dst: use_quota
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_queue_entry.cpp:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::bw_request::assign_bandwidth
    functionSourceFile: /src/libtorrent/src/bandwidth_queue_entry.cpp
    functionUses: 0
    functionsReached:
    - use_quota
    - TORRENT_ASSERT
    - std::min
    - std::int64_t
    - throttle
    linkageType: ''
    returnType: int
    signature: int bw_request::assign_bandwidth()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: libtorrent::stat_cache::stat_cache
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stat_cache::stat_cache()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: stat_cache::~stat_cache()
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stat_cache::~stat_cache()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_cache::set_cache_impl
      Src: /src/libtorrent/src/stat_cache.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - size
    argTypes:
    - file_index_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: libtorrent::stat_cache::set_cache
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::stat_cache::set_cache_impl
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_cache(file_index_t const i, std::int64_t const
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/stat_cache.cpp:53,1
    - Dst: resize
      Src: /src/libtorrent/src/stat_cache.cpp:54,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/stat_cache.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - size
    argTypes:
    - file_index_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: libtorrent::stat_cache::set_cache_impl
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_cache_impl(file_index_t const i, std::int64_t
      const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_cache::set_error_impl
      Src: /src/libtorrent/src/stat_cache.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - ' ec'
    argTypes:
    - file_index_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::stat_cache::set_error
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::stat_cache::set_error_impl
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_error(file_index_t const i, error_code const&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/stat_cache.cpp:66,1
    - Dst: resize
      Src: /src/libtorrent/src/stat_cache.cpp:67,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/stat_cache.cpp:67,1
    - Dst: libtorrent::stat_cache::add_error
      Src: /src/libtorrent/src/stat_cache.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - ' ec'
    argTypes:
    - file_index_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: libtorrent::stat_cache::set_error_impl
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::stat_cache::add_error
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_error_impl(file_index_t const i, error_code const&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/stat_cache.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: libtorrent::stat_cache::set_dirty
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_dirty(file_index_t const i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: file_flags
      Src: /src/libtorrent/src/stat_cache.cpp:87,1
    - Dst: assign
      Src: /src/libtorrent/src/stat_cache.cpp:89,1
    - Dst: boost::system::system_category
      Src: /src/libtorrent/src/stat_cache.cpp:89,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stat_cache.cpp:94,1
    - Dst: end_file
      Src: /src/libtorrent/src/stat_cache.cpp:94,1
    - Dst: end_index
      Src: /src/libtorrent/src/stat_cache.cpp:95,1
    - Dst: resize
      Src: /src/libtorrent/src/stat_cache.cpp:95,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/stat_cache.cpp:95,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/stat_cache.cpp:100,1
    - Dst: file_path
      Src: /src/libtorrent/src/stat_cache.cpp:107,1
    - Dst: stat_file
      Src: /src/libtorrent/src/stat_cache.cpp:108,1
    - Dst: libtorrent::stat_cache::set_error_impl
      Src: /src/libtorrent/src/stat_cache.cpp:111,1
    - Dst: libtorrent::stat_cache::set_cache_impl
      Src: /src/libtorrent/src/stat_cache.cpp:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - i
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - file_index_t
    - file_storage
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 121
    functionName: libtorrent::stat_cache::get_filesize
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - stat_file
    - TORRENT_ASSERT
    - end_file
    - file_path
    - resize
    - assign
    - std::size_t
    - libtorrent::stat_cache::set_error_impl
    - libtorrent::stat_cache::set_cache_impl
    - end_index
    - file_flags
    - boost::system::system_category
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t stat_cache::get_filesize(file_index_t const i, file_storage
      const& fs\n\t\t, std::string const& save_path, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/stat_cache.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_files
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: libtorrent::stat_cache::reserve
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void stat_cache::reserve(int num_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_cache::clear
      Src: /src/libtorrent/src/stat_cache.cpp:132,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/stat_cache.cpp:133,1
    - Dst: libtorrent::stat_cache::clear
      Src: /src/libtorrent/src/stat_cache.cpp:134,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/stat_cache.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: libtorrent::stat_cache::clear
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::stat_cache::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void stat_cache::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/stat_cache.cpp:140,1
    - Dst: begin
      Src: /src/libtorrent/src/stat_cache.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/src/stat_cache.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/src/stat_cache.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/stat_cache.cpp:141,1
    - Dst: push_back
      Src: /src/libtorrent/src/stat_cache.cpp:142,1
    - Dst: size
      Src: /src/libtorrent/src/stat_cache.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: libtorrent::stat_cache::add_error
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - size
    linkageType: ''
    returnType: int
    signature: int stat_cache::add_error(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: libtorrent::stat_cache::stat_cache
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stat_cache::stat_cache()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: stat_cache::~stat_cache()
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stat_cache::~stat_cache()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_cache::set_cache_impl
      Src: /src/libtorrent/src/stat_cache.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - size
    argTypes:
    - file_index_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: libtorrent::stat_cache::set_cache
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::stat_cache::set_cache_impl
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_cache(file_index_t const i, std::int64_t const
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/stat_cache.cpp:53,1
    - Dst: resize
      Src: /src/libtorrent/src/stat_cache.cpp:54,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/stat_cache.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - size
    argTypes:
    - file_index_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: libtorrent::stat_cache::set_cache_impl
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_cache_impl(file_index_t const i, std::int64_t
      const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_cache::set_error_impl
      Src: /src/libtorrent/src/stat_cache.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - ' ec'
    argTypes:
    - file_index_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::stat_cache::set_error
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::stat_cache::set_error_impl
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_error(file_index_t const i, error_code const&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/stat_cache.cpp:66,1
    - Dst: resize
      Src: /src/libtorrent/src/stat_cache.cpp:67,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/stat_cache.cpp:67,1
    - Dst: libtorrent::stat_cache::add_error
      Src: /src/libtorrent/src/stat_cache.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - ' ec'
    argTypes:
    - file_index_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: libtorrent::stat_cache::set_error_impl
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - libtorrent::stat_cache::add_error
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_error_impl(file_index_t const i, error_code const&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/stat_cache.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: libtorrent::stat_cache::set_dirty
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - end_index
    linkageType: ''
    returnType: void
    signature: void stat_cache::set_dirty(file_index_t const i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: file_flags
      Src: /src/libtorrent/src/stat_cache.cpp:87,1
    - Dst: assign
      Src: /src/libtorrent/src/stat_cache.cpp:89,1
    - Dst: boost::system::system_category
      Src: /src/libtorrent/src/stat_cache.cpp:89,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/stat_cache.cpp:94,1
    - Dst: end_file
      Src: /src/libtorrent/src/stat_cache.cpp:94,1
    - Dst: end_index
      Src: /src/libtorrent/src/stat_cache.cpp:95,1
    - Dst: resize
      Src: /src/libtorrent/src/stat_cache.cpp:95,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/stat_cache.cpp:95,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/stat_cache.cpp:100,1
    - Dst: file_path
      Src: /src/libtorrent/src/stat_cache.cpp:107,1
    - Dst: stat_file
      Src: /src/libtorrent/src/stat_cache.cpp:108,1
    - Dst: libtorrent::stat_cache::set_error_impl
      Src: /src/libtorrent/src/stat_cache.cpp:111,1
    - Dst: libtorrent::stat_cache::set_cache_impl
      Src: /src/libtorrent/src/stat_cache.cpp:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - i
    - ' fs'
    - ' save_path'
    - ' ec'
    argTypes:
    - file_index_t
    - file_storage
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 121
    functionName: libtorrent::stat_cache::get_filesize
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - stat_file
    - TORRENT_ASSERT
    - end_file
    - file_path
    - resize
    - assign
    - std::size_t
    - libtorrent::stat_cache::set_error_impl
    - libtorrent::stat_cache::set_cache_impl
    - end_index
    - file_flags
    - boost::system::system_category
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t stat_cache::get_filesize(file_index_t const i, file_storage
      const& fs\n\t\t, std::string const& save_path, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/src/stat_cache.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_files
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: libtorrent::stat_cache::reserve
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void stat_cache::reserve(int num_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_cache::clear
      Src: /src/libtorrent/src/stat_cache.cpp:132,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/stat_cache.cpp:133,1
    - Dst: libtorrent::stat_cache::clear
      Src: /src/libtorrent/src/stat_cache.cpp:134,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/stat_cache.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: libtorrent::stat_cache::clear
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::stat_cache::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void stat_cache::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/stat_cache.cpp:140,1
    - Dst: begin
      Src: /src/libtorrent/src/stat_cache.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/src/stat_cache.cpp:140,1
    - Dst: end
      Src: /src/libtorrent/src/stat_cache.cpp:141,1
    - Dst: begin
      Src: /src/libtorrent/src/stat_cache.cpp:141,1
    - Dst: push_back
      Src: /src/libtorrent/src/stat_cache.cpp:142,1
    - Dst: size
      Src: /src/libtorrent/src/stat_cache.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: libtorrent::stat_cache::add_error
    functionSourceFile: /src/libtorrent/src/stat_cache.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - size
    linkageType: ''
    returnType: int
    signature: int stat_cache::add_error(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: get_size
      Src: /src/libtorrent/src/mmap.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mode
    - file_size
    - ' fh'
    argTypes:
    - open_mode_t
    - std::int64_t
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::memory_map_size
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - get_size
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t memory_map_size(open_mode_t const mode\n\t\t, std::int64_t
      const file_size, file_handle const& fh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: get_size
      Src: /src/libtorrent/src/mmap.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mode
    - file_size
    - ' fh'
    argTypes:
    - open_mode_t
    - std::int64_t
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::memory_map_size
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - get_size
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t memory_map_size(open_mode_t const mode\n\t\t, std::int64_t
      const file_size, file_handle const& fh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::mmap_prot
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mmap_prot(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::mmap_flags
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: int
    signature: int mmap_flags(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::mmap_prot
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mmap_prot(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::mmap_flags
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: int
    signature: int mmap_flags(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::map_protect
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int map_protect(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::map_protect
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int map_protect(open_mode_t const m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:126,1
    - Dst: CreateFileMapping
      Src: /src/libtorrent/src/mmap.cpp:127,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:127,1
    - Dst: map_protect
      Src: /src/libtorrent/src/mmap.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:134,1
    - Dst: throw_ex<system_error>
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - file
    - mode
    - size
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 140
    functionName: libtorrent::aux::file_mapping_handle::file_mapping_handle
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - throw_ex<system_error>
    - std::move
    - error_code
    - TORRENT_ASSERT
    - CreateFileMapping
    - GetLastError
    - fd
    - map_protect
    linkageType: ''
    returnType: void
    signature: "void file_mapping_handle::file_mapping_handle(file_handle file, open_mode_t
      const mode\n\t, std::int64_t const size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: file_mapping_handle::~file_mapping_handle()
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::~file_mapping_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fm'
    argTypes:
    - file_mapping_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::file_mapping_handle::file_mapping_handle
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::file_mapping_handle(file_mapping_handle&&
      fm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:152,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' fm'
    argTypes:
    - file_mapping_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: '& file_mapping_handle::operator=(file_mapping_handle&& fm) &'
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - close
    linkageType: ''
    returnType: file_mapping_handle
    signature: file_mapping_handle & file_mapping_handle::operator=(file_mapping_handle&&
      fm) &
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/libtorrent/src/mmap.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::file_mapping_handle::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::close()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memory_map_size
      Src: /src/libtorrent/src/mmap.cpp:173,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:174,1
    - Dst: mmap
      Src: /src/libtorrent/src/mmap.cpp:176,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:176,1
    - Dst: mmap_prot
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: mmap_flags
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:179,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:207,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - file
    - mode
    - file_size
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 210
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ::madvise
    - mmap_flags
    - std::move
    - memory_map_size
    - error_code
    - mmap_prot
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - throw_ex<storage_error>
    - mmap
    - fd
    linkageType: ''
    returnType: void
    signature: void file_mapping::file_mapping(file_handle file, open_mode_t const
      mode, std::int64_t const file_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/libtorrent/src/mmap.cpp:215,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: libtorrent::aux::file_mapping::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - munmap
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void file_mapping::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::map_access
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD map_access(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::map_access
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD map_access(open_mode_t const m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_map_size
      Src: /src/libtorrent/src/mmap.cpp:231,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:232,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:233,1
    - Dst: MapViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: handle
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: map_access
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - file
    - mode
    - file_size
    - open_unmap_lock
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - map_access
    - std::move
    - memory_map_size
    - error_code
    - static_cast<std::size_t>
    - handle
    - throw_ex<storage_error>
    - MapViewOfFile
    - GetLastError
    linkageType: ''
    returnType: void
    signature: "void file_mapping::file_mapping(file_handle file, open_mode_t const
      mode\n\t, std::int64_t const file_size\n\t, std::shared_ptr<std::mutex> open_unmap_lock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FlushViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:248,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::file_mapping::flush
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - FlushViewOfFile
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void file_mapping::flush()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_mapping::flush
      Src: /src/libtorrent/src/mmap.cpp:254,1
    - Dst: UnmapViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::file_mapping::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_mapping::flush
    - UnmapViewOfFile
    linkageType: ''
    returnType: void
    signature: void file_mapping::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_mapping
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_mapping::file_mapping(file_mapping&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:273,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_mapping
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: '& file_mapping::operator=(file_mapping&& rhs) &'
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - close
    linkageType: ''
    returnType: file_mapping
    signature: file_mapping & file_mapping::operator=(file_mapping&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: file_mapping::~file_mapping()
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_mapping::~file_mapping()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<byte*>
      Src: /src/libtorrent/src/mmap.cpp:285,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:285,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:286,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:286,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:300,1
    - Dst: ::msync
      Src: /src/libtorrent/src/mmap.cpp:303,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:305,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - span<byte const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 308
    functionName: libtorrent::aux::file_mapping::dont_need
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - ::madvise
    - TORRENT_UNUSED
    - static_cast<std::size_t>
    - span<byte const>::size
    - const_cast<byte*>
    - span<byte const>::data
    - ::msync
    linkageType: ''
    returnType: void
    signature: void file_mapping::dont_need(span<byte const> range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlushViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: const_cast<byte*>
      Src: /src/libtorrent/src/mmap.cpp:317,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:317,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:318,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:318,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:320,1
    - Dst: ::sync_file_range
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: static_cast<const byte*>
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: ::msync
      Src: /src/libtorrent/src/mmap.cpp:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - range
    argTypes:
    - span<byte const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 331
    functionName: libtorrent::aux::file_mapping::page_out
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - ::madvise
    - ::sync_file_range
    - FlushViewOfFile
    - static_cast<std::size_t>
    - static_cast<const byte*>
    - span<byte const>::size
    - fd
    - const_cast<byte*>
    - span<byte const>::data
    - ::msync
    linkageType: ''
    returnType: void
    signature: void file_mapping::page_out(span<byte const> range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: get_size
      Src: /src/libtorrent/src/mmap.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mode
    - file_size
    - ' fh'
    argTypes:
    - open_mode_t
    - std::int64_t
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::memory_map_size
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - get_size
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t memory_map_size(open_mode_t const mode\n\t\t, std::int64_t
      const file_size, file_handle const& fh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: get_size
      Src: /src/libtorrent/src/mmap.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mode
    - file_size
    - ' fh'
    argTypes:
    - open_mode_t
    - std::int64_t
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::memory_map_size
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - get_size
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t memory_map_size(open_mode_t const mode\n\t\t, std::int64_t
      const file_size, file_handle const& fh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::mmap_prot
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mmap_prot(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::mmap_flags
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: int
    signature: int mmap_flags(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::mmap_prot
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mmap_prot(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::mmap_flags
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: int
    signature: int mmap_flags(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::map_protect
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int map_protect(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::map_protect
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int map_protect(open_mode_t const m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:126,1
    - Dst: CreateFileMapping
      Src: /src/libtorrent/src/mmap.cpp:127,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:127,1
    - Dst: map_protect
      Src: /src/libtorrent/src/mmap.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:134,1
    - Dst: throw_ex<system_error>
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - file
    - mode
    - size
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 140
    functionName: libtorrent::aux::file_mapping_handle::file_mapping_handle
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - throw_ex<system_error>
    - std::move
    - error_code
    - TORRENT_ASSERT
    - CreateFileMapping
    - GetLastError
    - fd
    - map_protect
    linkageType: ''
    returnType: void
    signature: "void file_mapping_handle::file_mapping_handle(file_handle file, open_mode_t
      const mode\n\t, std::int64_t const size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: file_mapping_handle::~file_mapping_handle()
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::~file_mapping_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fm'
    argTypes:
    - file_mapping_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::file_mapping_handle::file_mapping_handle
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::file_mapping_handle(file_mapping_handle&&
      fm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:152,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' fm'
    argTypes:
    - file_mapping_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: '& file_mapping_handle::operator=(file_mapping_handle&& fm) &'
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - close
    linkageType: ''
    returnType: file_mapping_handle
    signature: file_mapping_handle & file_mapping_handle::operator=(file_mapping_handle&&
      fm) &
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/libtorrent/src/mmap.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::file_mapping_handle::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::close()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memory_map_size
      Src: /src/libtorrent/src/mmap.cpp:173,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:174,1
    - Dst: mmap
      Src: /src/libtorrent/src/mmap.cpp:176,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:176,1
    - Dst: mmap_prot
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: mmap_flags
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:179,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:207,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - file
    - mode
    - file_size
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 210
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ::madvise
    - mmap_flags
    - std::move
    - memory_map_size
    - error_code
    - mmap_prot
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - throw_ex<storage_error>
    - mmap
    - fd
    linkageType: ''
    returnType: void
    signature: void file_mapping::file_mapping(file_handle file, open_mode_t const
      mode, std::int64_t const file_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/libtorrent/src/mmap.cpp:215,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: libtorrent::aux::file_mapping::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - munmap
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void file_mapping::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::map_access
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD map_access(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::map_access
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD map_access(open_mode_t const m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_map_size
      Src: /src/libtorrent/src/mmap.cpp:231,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:232,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:233,1
    - Dst: MapViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: handle
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: map_access
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - file
    - mode
    - file_size
    - open_unmap_lock
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - map_access
    - std::move
    - memory_map_size
    - error_code
    - static_cast<std::size_t>
    - handle
    - throw_ex<storage_error>
    - MapViewOfFile
    - GetLastError
    linkageType: ''
    returnType: void
    signature: "void file_mapping::file_mapping(file_handle file, open_mode_t const
      mode\n\t, std::int64_t const file_size\n\t, std::shared_ptr<std::mutex> open_unmap_lock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FlushViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:248,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::file_mapping::flush
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 1
    functionsReached:
    - FlushViewOfFile
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void file_mapping::flush()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_mapping::flush
      Src: /src/libtorrent/src/mmap.cpp:254,1
    - Dst: UnmapViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::file_mapping::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_mapping::flush
    - UnmapViewOfFile
    linkageType: ''
    returnType: void
    signature: void file_mapping::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_mapping
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_mapping::file_mapping(file_mapping&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:273,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_mapping
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: '& file_mapping::operator=(file_mapping&& rhs) &'
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - close
    linkageType: ''
    returnType: file_mapping
    signature: file_mapping & file_mapping::operator=(file_mapping&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: file_mapping::~file_mapping()
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_mapping::~file_mapping()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<byte*>
      Src: /src/libtorrent/src/mmap.cpp:285,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:285,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:286,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:286,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:300,1
    - Dst: ::msync
      Src: /src/libtorrent/src/mmap.cpp:303,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:305,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - span<byte const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 308
    functionName: libtorrent::aux::file_mapping::dont_need
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - ::madvise
    - TORRENT_UNUSED
    - static_cast<std::size_t>
    - span<byte const>::size
    - const_cast<byte*>
    - span<byte const>::data
    - ::msync
    linkageType: ''
    returnType: void
    signature: void file_mapping::dont_need(span<byte const> range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlushViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: const_cast<byte*>
      Src: /src/libtorrent/src/mmap.cpp:317,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:317,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:318,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:318,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:320,1
    - Dst: ::sync_file_range
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: static_cast<const byte*>
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: ::msync
      Src: /src/libtorrent/src/mmap.cpp:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - range
    argTypes:
    - span<byte const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 331
    functionName: libtorrent::aux::file_mapping::page_out
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - ::madvise
    - ::sync_file_range
    - FlushViewOfFile
    - static_cast<std::size_t>
    - static_cast<const byte*>
    - span<byte const>::size
    - fd
    - const_cast<byte*>
    - span<byte const>::data
    - ::msync
    linkageType: ''
    returnType: void
    signature: void file_mapping::page_out(span<byte const> range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: get_size
      Src: /src/libtorrent/src/mmap.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mode
    - file_size
    - ' fh'
    argTypes:
    - open_mode_t
    - std::int64_t
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::memory_map_size
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - get_size
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t memory_map_size(open_mode_t const mode\n\t\t, std::int64_t
      const file_size, file_handle const& fh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: get_size
      Src: /src/libtorrent/src/mmap.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mode
    - file_size
    - ' fh'
    argTypes:
    - open_mode_t
    - std::int64_t
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::memory_map_size
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - get_size
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t memory_map_size(open_mode_t const mode\n\t\t, std::int64_t
      const file_size, file_handle const& fh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::mmap_prot
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mmap_prot(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::mmap_flags
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: int
    signature: int mmap_flags(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::mmap_prot
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mmap_prot(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::mmap_flags
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: int
    signature: int mmap_flags(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::map_protect
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int map_protect(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::map_protect
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int map_protect(open_mode_t const m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:126,1
    - Dst: CreateFileMapping
      Src: /src/libtorrent/src/mmap.cpp:127,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:127,1
    - Dst: map_protect
      Src: /src/libtorrent/src/mmap.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:134,1
    - Dst: throw_ex<system_error>
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - file
    - mode
    - size
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 140
    functionName: libtorrent::aux::file_mapping_handle::file_mapping_handle
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - throw_ex<system_error>
    - std::move
    - error_code
    - TORRENT_ASSERT
    - CreateFileMapping
    - GetLastError
    - fd
    - map_protect
    linkageType: ''
    returnType: void
    signature: "void file_mapping_handle::file_mapping_handle(file_handle file, open_mode_t
      const mode\n\t, std::int64_t const size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: file_mapping_handle::~file_mapping_handle()
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::~file_mapping_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fm'
    argTypes:
    - file_mapping_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::file_mapping_handle::file_mapping_handle
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::file_mapping_handle(file_mapping_handle&&
      fm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:152,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' fm'
    argTypes:
    - file_mapping_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: '& file_mapping_handle::operator=(file_mapping_handle&& fm) &'
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - close
    linkageType: ''
    returnType: file_mapping_handle
    signature: file_mapping_handle & file_mapping_handle::operator=(file_mapping_handle&&
      fm) &
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/libtorrent/src/mmap.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::file_mapping_handle::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::close()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memory_map_size
      Src: /src/libtorrent/src/mmap.cpp:173,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:174,1
    - Dst: mmap
      Src: /src/libtorrent/src/mmap.cpp:176,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:176,1
    - Dst: mmap_prot
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: mmap_flags
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:179,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:207,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - file
    - mode
    - file_size
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 210
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ::madvise
    - mmap_flags
    - std::move
    - memory_map_size
    - error_code
    - mmap_prot
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - throw_ex<storage_error>
    - mmap
    - fd
    linkageType: ''
    returnType: void
    signature: void file_mapping::file_mapping(file_handle file, open_mode_t const
      mode, std::int64_t const file_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/libtorrent/src/mmap.cpp:215,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: libtorrent::aux::file_mapping::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - munmap
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void file_mapping::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::map_access
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD map_access(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::map_access
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD map_access(open_mode_t const m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_map_size
      Src: /src/libtorrent/src/mmap.cpp:231,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:232,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:233,1
    - Dst: MapViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: handle
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: map_access
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - file
    - mode
    - file_size
    - open_unmap_lock
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - map_access
    - std::move
    - memory_map_size
    - error_code
    - static_cast<std::size_t>
    - handle
    - throw_ex<storage_error>
    - MapViewOfFile
    - GetLastError
    linkageType: ''
    returnType: void
    signature: "void file_mapping::file_mapping(file_handle file, open_mode_t const
      mode\n\t, std::int64_t const file_size\n\t, std::shared_ptr<std::mutex> open_unmap_lock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FlushViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:248,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::file_mapping::flush
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 2
    functionsReached:
    - FlushViewOfFile
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void file_mapping::flush()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_mapping::flush
      Src: /src/libtorrent/src/mmap.cpp:254,1
    - Dst: UnmapViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::file_mapping::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_mapping::flush
    - UnmapViewOfFile
    linkageType: ''
    returnType: void
    signature: void file_mapping::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_mapping
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_mapping::file_mapping(file_mapping&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:273,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_mapping
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: '& file_mapping::operator=(file_mapping&& rhs) &'
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - close
    linkageType: ''
    returnType: file_mapping
    signature: file_mapping & file_mapping::operator=(file_mapping&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: file_mapping::~file_mapping()
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_mapping::~file_mapping()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<byte*>
      Src: /src/libtorrent/src/mmap.cpp:285,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:285,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:286,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:286,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:300,1
    - Dst: ::msync
      Src: /src/libtorrent/src/mmap.cpp:303,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:305,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - span<byte const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 308
    functionName: libtorrent::aux::file_mapping::dont_need
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - ::madvise
    - TORRENT_UNUSED
    - static_cast<std::size_t>
    - span<byte const>::size
    - const_cast<byte*>
    - span<byte const>::data
    - ::msync
    linkageType: ''
    returnType: void
    signature: void file_mapping::dont_need(span<byte const> range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlushViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: const_cast<byte*>
      Src: /src/libtorrent/src/mmap.cpp:317,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:317,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:318,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:318,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:320,1
    - Dst: ::sync_file_range
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: static_cast<const byte*>
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: ::msync
      Src: /src/libtorrent/src/mmap.cpp:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - range
    argTypes:
    - span<byte const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 331
    functionName: libtorrent::aux::file_mapping::page_out
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - ::madvise
    - ::sync_file_range
    - FlushViewOfFile
    - static_cast<std::size_t>
    - static_cast<const byte*>
    - span<byte const>::size
    - fd
    - const_cast<byte*>
    - span<byte const>::data
    - ::msync
    linkageType: ''
    returnType: void
    signature: void file_mapping::page_out(span<byte const> range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: get_size
      Src: /src/libtorrent/src/mmap.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mode
    - file_size
    - ' fh'
    argTypes:
    - open_mode_t
    - std::int64_t
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::memory_map_size
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - get_size
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t memory_map_size(open_mode_t const mode\n\t\t, std::int64_t
      const file_size, file_handle const& fh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/mmap.cpp:77,1
    - Dst: get_size
      Src: /src/libtorrent/src/mmap.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mode
    - file_size
    - ' fh'
    argTypes:
    - open_mode_t
    - std::int64_t
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::memory_map_size
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - get_size
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: "std::int64_t memory_map_size(open_mode_t const mode\n\t\t, std::int64_t
      const file_size, file_handle const& fh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::mmap_prot
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mmap_prot(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::mmap_flags
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: int
    signature: int mmap_flags(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::mmap_prot
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mmap_prot(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::mmap_flags
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    linkageType: ''
    returnType: int
    signature: int mmap_flags(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::map_protect
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int map_protect(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::map_protect
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int map_protect(open_mode_t const m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:126,1
    - Dst: CreateFileMapping
      Src: /src/libtorrent/src/mmap.cpp:127,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:127,1
    - Dst: map_protect
      Src: /src/libtorrent/src/mmap.cpp:129,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:134,1
    - Dst: throw_ex<system_error>
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/mmap.cpp:139,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - file
    - mode
    - size
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 140
    functionName: libtorrent::aux::file_mapping_handle::file_mapping_handle
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - throw_ex<system_error>
    - std::move
    - error_code
    - TORRENT_ASSERT
    - CreateFileMapping
    - GetLastError
    - fd
    - map_protect
    linkageType: ''
    returnType: void
    signature: "void file_mapping_handle::file_mapping_handle(file_handle file, open_mode_t
      const mode\n\t, std::int64_t const size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: file_mapping_handle::~file_mapping_handle()
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::~file_mapping_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' fm'
    argTypes:
    - file_mapping_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::file_mapping_handle::file_mapping_handle
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::file_mapping_handle(file_mapping_handle&&
      fm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:152,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' fm'
    argTypes:
    - file_mapping_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: '& file_mapping_handle::operator=(file_mapping_handle&& fm) &'
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - close
    linkageType: ''
    returnType: file_mapping_handle
    signature: file_mapping_handle & file_mapping_handle::operator=(file_mapping_handle&&
      fm) &
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/libtorrent/src/mmap.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::file_mapping_handle::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void file_mapping_handle::close()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memory_map_size
      Src: /src/libtorrent/src/mmap.cpp:173,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:174,1
    - Dst: mmap
      Src: /src/libtorrent/src/mmap.cpp:176,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:176,1
    - Dst: mmap_prot
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: mmap_flags
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:179,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:184,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:207,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - file
    - mode
    - file_size
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 210
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - ::madvise
    - mmap_flags
    - std::move
    - memory_map_size
    - error_code
    - mmap_prot
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - throw_ex<storage_error>
    - mmap
    - fd
    linkageType: ''
    returnType: void
    signature: void file_mapping::file_mapping(file_handle file, open_mode_t const
      mode, std::int64_t const file_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/libtorrent/src/mmap.cpp:215,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: libtorrent::aux::file_mapping::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - munmap
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void file_mapping::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::map_access
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD map_access(open_mode_t const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - open_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::map_access
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD map_access(open_mode_t const m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_map_size
      Src: /src/libtorrent/src/mmap.cpp:231,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:232,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:233,1
    - Dst: MapViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: handle
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: map_access
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:235,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: error_code
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/mmap.cpp:240,1
    - Dst: system_category
      Src: /src/libtorrent/src/mmap.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - file
    - mode
    - file_size
    - open_unmap_lock
    argTypes:
    - file_handle
    - open_mode_t
    - std::int64_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - system_category
    - map_access
    - std::move
    - memory_map_size
    - error_code
    - static_cast<std::size_t>
    - handle
    - throw_ex<storage_error>
    - MapViewOfFile
    - GetLastError
    linkageType: ''
    returnType: void
    signature: "void file_mapping::file_mapping(file_handle file, open_mode_t const
      mode\n\t, std::int64_t const file_size\n\t, std::shared_ptr<std::mutex> open_unmap_lock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FlushViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:248,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::file_mapping::flush
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 3
    functionsReached:
    - FlushViewOfFile
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void file_mapping::flush()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_mapping::flush
      Src: /src/libtorrent/src/mmap.cpp:254,1
    - Dst: UnmapViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: libtorrent::aux::file_mapping::close
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_mapping::flush
    - UnmapViewOfFile
    linkageType: ''
    returnType: void
    signature: void file_mapping::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/mmap.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_mapping
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: libtorrent::aux::file_mapping::file_mapping
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: void file_mapping::file_mapping(file_mapping&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:273,1
    - Dst: std::move
      Src: /src/libtorrent/src/mmap.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_mapping
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: '& file_mapping::operator=(file_mapping&& rhs) &'
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - close
    linkageType: ''
    returnType: file_mapping
    signature: file_mapping & file_mapping::operator=(file_mapping&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/mmap.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: file_mapping::~file_mapping()
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void file_mapping::~file_mapping()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<byte*>
      Src: /src/libtorrent/src/mmap.cpp:285,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:285,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:286,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:286,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:300,1
    - Dst: ::msync
      Src: /src/libtorrent/src/mmap.cpp:303,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:305,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/mmap.cpp:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - span<byte const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 308
    functionName: libtorrent::aux::file_mapping::dont_need
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - ::madvise
    - TORRENT_UNUSED
    - static_cast<std::size_t>
    - span<byte const>::size
    - const_cast<byte*>
    - span<byte const>::data
    - ::msync
    linkageType: ''
    returnType: void
    signature: void file_mapping::dont_need(span<byte const> range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlushViewOfFile
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:314,1
    - Dst: const_cast<byte*>
      Src: /src/libtorrent/src/mmap.cpp:317,1
    - Dst: span<byte const>::data
      Src: /src/libtorrent/src/mmap.cpp:317,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/mmap.cpp:318,1
    - Dst: span<byte const>::size
      Src: /src/libtorrent/src/mmap.cpp:318,1
    - Dst: ::madvise
      Src: /src/libtorrent/src/mmap.cpp:320,1
    - Dst: ::sync_file_range
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: fd
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: static_cast<const byte*>
      Src: /src/libtorrent/src/mmap.cpp:323,1
    - Dst: ::msync
      Src: /src/libtorrent/src/mmap.cpp:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - range
    argTypes:
    - span<byte const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 331
    functionName: libtorrent::aux::file_mapping::page_out
    functionSourceFile: /src/libtorrent/src/mmap.cpp
    functionUses: 0
    functionsReached:
    - ::madvise
    - ::sync_file_range
    - FlushViewOfFile
    - static_cast<std::size_t>
    - static_cast<const byte*>
    - span<byte const>::size
    - fd
    - const_cast<byte*>
    - span<byte const>::data
    - ::msync
    linkageType: ''
    returnType: void
    signature: void file_mapping::page_out(span<byte const> range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/piece_picker.cpp:74,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:74,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:74,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' c'
    - v
    argTypes:
    - C
    - V
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: contains
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 6
    functionsReached:
    - end
    - std::find
    - begin
    linkageType: ''
    returnType: bool
    signature: bool contains(C const& c, V v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/piece_picker.cpp:74,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:74,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:74,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' c'
    - v
    argTypes:
    - C
    - V
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: contains
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 6
    functionsReached:
    - end
    - std::find
    - begin
    linkageType: ''
    returnType: bool
    signature: bool contains(C const& c, V v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_priority_boundaries::begin
      Src: /src/libtorrent/src/piece_picker.cpp:98,1
    - Dst: m_pieces::begin
      Src: /src/libtorrent/src/piece_picker.cpp:99,1
    - Dst: m_pieces::end
      Src: /src/libtorrent/src/piece_picker.cpp:99,1
    - Dst: m_priority_boundaries::end
      Src: /src/libtorrent/src/piece_picker.cpp:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - piece_picker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: libtorrent::print_pieces
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - m_pieces::end
    - m_priority_boundaries::end
    - m_priority_boundaries::begin
    - m_pieces::begin
    linkageType: ''
    returnType: void
    signature: void print_pieces(piece_picker const& p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_priority_boundaries::begin
      Src: /src/libtorrent/src/piece_picker.cpp:98,1
    - Dst: m_pieces::begin
      Src: /src/libtorrent/src/piece_picker.cpp:99,1
    - Dst: m_pieces::end
      Src: /src/libtorrent/src/piece_picker.cpp:99,1
    - Dst: m_priority_boundaries::end
      Src: /src/libtorrent/src/piece_picker.cpp:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - piece_picker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: libtorrent::print_pieces
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - m_pieces::end
    - m_priority_boundaries::end
    - m_priority_boundaries::begin
    - m_pieces::begin
    linkageType: ''
    returnType: void
    signature: void print_pieces(piece_picker const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:149,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:151,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:152,1
    - Dst: libtorrent::piece_picker::check_invariant
      Src: /src/libtorrent/src/piece_picker.cpp:157,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - total_size
    - piece_size
    argTypes:
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: libtorrent::piece_picker::piece_picker
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - end_index
    - libtorrent::piece_picker::check_invariant
    - libtorrent::piece_picker::resize
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_picker(std::int64_t const total_size, int
      const piece_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:166,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:172,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:172,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:174,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:174,1
    - Dst: system_error
      Src: /src/libtorrent/src/piece_picker.cpp:182,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:186,1
    - Dst: piece_pos
      Src: /src/libtorrent/src/piece_picker.cpp:186,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:187,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:188,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:190,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:191,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:192,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:204,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:205,1
    - Dst: have_peers::clear
      Src: /src/libtorrent/src/piece_picker.cpp:207,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:211,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:211,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:212,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:212,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:212,1
    - Dst: rend
      Src: /src/libtorrent/src/piece_picker.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:215,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:216,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:216,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:216,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/piece_picker.cpp:219,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/piece_picker.cpp:220,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:220,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:222,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:222,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - total_size
    - piece_size
    argTypes:
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 223
    functionName: libtorrent::piece_picker::resize
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - aux::numeric_cast<std::uint16_t>
    - have_peers::clear
    - begin
    - block_size
    - system_error
    - libtorrent::piece_picker::blocks_per_piece
    - prio_index_t
    - piece_pos
    - end
    - clear
    - auto::filtered
    - auto::have
    - TORRENT_ASSERT
    - end_index
    - piece_index_t
    - state
    - rend
    - libtorrent::piece_picker::resize
    linkageType: ''
    returnType: void
    signature: void piece_picker::resize(std::int64_t const total_size, int const
      piece_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:231,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:234,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:235,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:235,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:243,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/piece_picker.cpp:245,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - index
    - ' st'
    argTypes:
    - piece_index_t
    - piece_picker::downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 249
    functionName: libtorrent::piece_picker::piece_info
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - std::uint16_t
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_info(piece_index_t const index, piece_picker::downloading_piece&
      st) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:256,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:257,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: libtorrent::piece_picker::piece_stats
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - downloading
    - libtorrent::piece_picker::have
    - priority
    linkageType: ''
    returnType: piece_picker::piece_stats_t
    signature: piece_picker::piece_stats_t piece_picker::piece_stats(piece_index_t
      const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:266,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:267,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:267,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:269,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:274,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:277,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:279,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:279,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/piece_picker.cpp:279,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:280,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:280,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/piece_picker.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/piece_picker.cpp:285,1
    - Dst: pop_back
      Src: /src/libtorrent/src/piece_picker.cpp:286,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/piece_picker.cpp:293,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:293,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:294,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:295,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:295,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:297,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:298,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/piece_picker.cpp:298,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/piece_picker.cpp:299,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:300,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:300,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:301,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:301,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:306,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:306,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:306,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:309,1
    - Dst: peers::clear
      Src: /src/libtorrent/src/piece_picker.cpp:326,1
    - Dst: insert
      Src: /src/libtorrent/src/piece_picker.cpp:329,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:333,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 339
    functionName: libtorrent::piece_picker::add_download_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - begin
    - block_size
    - empty
    - libtorrent::piece_picker::blocks_per_piece
    - libtorrent::piece_picker::check_piece_state
    - std::uint16_t
    - end
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - std::size_t
    - back
    - peers::clear
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - end_index
    - piece_index_t
    - size
    - insert
    - libtorrent::piece_picker::resize
    - libtorrent::piece_picker::update_piece_state
    - std::lower_bound
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>::iterator
    signature: std::vector<piece_picker::downloading_piece>::iterator piece_picker::add_download_piece(piece_index_t
      const piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:344,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:347,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:348,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:349,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:349,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:351,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:356,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:358,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:358,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:359,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:362,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:362,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - i
    argTypes:
    - std::vector<downloading_piece>::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 367
    functionName: libtorrent::piece_picker::erase_download_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - state
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - erase
    - TORRENT_ASSERT
    - size
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::erase_download_piece(std::vector<downloading_piece>::iterator
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:372,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/piece_picker.cpp:377,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/piece_picker.cpp:377,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:377,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: libtorrent::piece_picker::get_download_queue
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::vector::insert
    - std::vector::end
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>
    signature: std::vector<piece_picker::downloading_piece> piece_picker::get_download_queue()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/libtorrent/src/piece_picker.cpp:383,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:383,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: libtorrent::piece_picker::get_download_queue_size
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::accumulate
    - end
    - size
    - begin
    linkageType: ''
    returnType: int
    signature: int piece_picker::get_download_queue_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:390,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:391,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:392,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - partial
    - full
    - finished
    - zero_prio
    argTypes:
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: libtorrent::piece_picker::get_download_queue_sizes
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: "void piece_picker::get_download_queue_sizes(int* partial\n\t\t, int*
      full, int* finished, int* zero_prio) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:399,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:400,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:400,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:400,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' dp'
    argTypes:
    - downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: libtorrent::piece_picker::mutable_blocks_for_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::piece_picker::blocks_per_piece
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_in_piece
    - size
    linkageType: ''
    returnType: span<piece_picker::block_info>
    signature: "span<piece_picker::block_info> piece_picker::mutable_blocks_for_piece(\n\t\tdownloading_piece
      const& dp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<piece_picker*>
      Src: /src/libtorrent/src/piece_picker.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dp'
    argTypes:
    - downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: libtorrent::piece_picker::blocks_for_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - const_cast<piece_picker*>
    linkageType: ''
    returnType: span<piece_picker::block_info const>
    signature: "span<piece_picker::block_info const> piece_picker::blocks_for_piece(\n\t\tdownloading_piece
      const& dp) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: categories
      Src: /src/libtorrent/src/piece_picker.cpp:414,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:416,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:417,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:417,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:421,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:422,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:422,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:423,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:423,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:424,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:428,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:429,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/piece_picker.cpp:430,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 434
    functionName: libtorrent::piece_picker::check_piece_state
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - static_cast<peer_connection*>
    - begin
    - empty
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_per_piece
    - size
    - libtorrent::piece_picker::blocks_for_piece
    - categories
    linkageType: ''
    returnType: void
    signature: void piece_picker::check_piece_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:439,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:439,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:442,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:443,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:444,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - picked
    - ' bits'
    argTypes:
    - span<piece_block const>
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 446
    functionName: libtorrent::piece_picker::verify_pick
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - filtered
    - TORRENT_ASSERT
    - num_pieces
    - libtorrent::piece_picker::have
    - size
    linkageType: ''
    returnType: void
    signature: "void piece_picker::verify_pick(span<piece_block const> const picked\n\t\t,
      typed_bitfield<piece_index_t> const& bits) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:452,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:453,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:453,1
    - Dst: range
      Src: /src/libtorrent/src/piece_picker.cpp:454,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - range_start
    - range_end
    - prio
    argTypes:
    - prio_index_t
    - prio_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 459
    functionName: libtorrent::piece_picker::verify_priority
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - range
    - end_index
    - priority
    linkageType: ''
    returnType: void
    signature: "void piece_picker::verify_priority(prio_index_t const range_start\n\t\t,
      prio_index_t const range_end\n\t\t, int const prio) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:465,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:468,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:468,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:471,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' have'
    - p
    argTypes:
    - typed_bitfield<piece_index_t>
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 474
    functionName: libtorrent::piece_picker::check_peer_invariant
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - have_peers::count
    - end_index
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::check_peer_invariant(typed_bitfield<piece_index_t>
      const& have\n\t\t, torrent_peer const* p) const"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:478,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:479,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:480,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:481,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:481,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:483,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:484,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:484,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:485,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:486,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:486,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:487,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:488,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:488,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:490,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:499,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:503,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:506,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:506,1
    - Dst: torrent*::torrent_file
      Src: /src/libtorrent/src/piece_picker.cpp:506,1
    - Dst: categories
      Src: /src/libtorrent/src/piece_picker.cpp:508,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:512,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:512,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:513,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:518,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:520,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:521,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:527,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:532,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:537,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:542,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:548,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:548,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:553,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:554,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:556,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:560,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:560,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:561,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:562,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:563,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:567,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:567,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:570,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:571,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:572,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:574,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:575,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:576,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:579,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:580,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:580,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:581,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:581,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:582,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:582,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:583,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:584,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:589,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:589,1
    - Dst: libtorrent::piece_picker::verify_priority
      Src: /src/libtorrent/src/piece_picker.cpp:594,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:598,1
    - Dst: back
      Src: /src/libtorrent/src/piece_picker.cpp:598,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:598,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:604,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:605,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:605,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:605,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:607,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:608,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:609,1
    - Dst: rend
      Src: /src/libtorrent/src/piece_picker.cpp:611,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:611,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:611,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:612,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:612,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:613,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:613,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:614,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:615,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:616,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:620,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:620,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:631,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:631,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:635,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:636,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:638,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:640,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:640,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:652,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:665,1
    - Dst: have_peers::size
      Src: /src/libtorrent/src/piece_picker.cpp:665,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:671,1
    - Dst: torrent*::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:672,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:672,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:676,1
    - Dst: torrent*::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:676,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:678,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:680,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:682,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:682,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:688,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:691,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:695,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:700,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:700,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:703,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:703,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:704,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:708,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:712,1
    - Dst: std::count
      Src: /src/libtorrent/src/piece_picker.cpp:712,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:712,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:712,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/piece_picker.cpp:716,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:717,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:718,1
    - Dst: has_index
      Src: /src/libtorrent/src/piece_picker.cpp:719,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/piece_picker.cpp:721,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:722,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:723,1
    - Dst: has_index
      Src: /src/libtorrent/src/piece_picker.cpp:724,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/piece_picker.cpp:726,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:727,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:728,1
    - Dst: has_index
      Src: /src/libtorrent/src/piece_picker.cpp:729,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/piece_picker.cpp:731,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:732,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:733,1
    - Dst: has_index
      Src: /src/libtorrent/src/piece_picker.cpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:736,1
    - Dst: auto::download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:736,1
    - Dst: auto::download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:740,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:742,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:746,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:749,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:752,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:755,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:758,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:759,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:760,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:761,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:762,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:763,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:769,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:769,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 168
    argCount: 1
    argNames:
    - t
    argTypes:
    - torrent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 773
    functionName: libtorrent::piece_picker::check_invariant
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::piece_picker::blocks_in_piece
    - begin
    - downloading
    - empty
    - auto::download_queue
    - libtorrent::piece_picker::check_piece_state
    - libtorrent::piece_picker::verify_priority
    - end
    - filtered
    - num_pieces
    - reverse
    - back
    - auto::filtered
    - auto::have
    - has_index
    - std::count
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - libtorrent::piece_picker::have
    - priority
    - end_index
    - piece_index_t
    - size
    - torrent*::have_piece
    - torrent*::torrent_file
    - num_pad_bytes
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - std::count_if
    - rend
    - libtorrent::piece_picker::blocks_for_piece
    - have_peers::size
    - categories
    linkageType: ''
    returnType: void
    signature: void piece_picker::check_invariant(torrent const* t) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:778,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:779,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/piece_picker.cpp:781,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:788,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:789,1
    - Dst: std::vector<piece_pos>::const_iterator::have
      Src: /src/libtorrent/src/piece_picker.cpp:793,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:806,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:810,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/piece_picker.cpp:811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 812
    functionName: libtorrent::piece_picker::distributed_copies
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::vector<piece_pos>::const_iterator::have
    - begin
    - std::make_pair
    - end
    - TORRENT_ASSERT
    - num_pieces
    linkageType: ''
    returnType: std::pair<int, int>
    signature: std::pair<int, int> piece_picker::distributed_copies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:816,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:817,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:817,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prio
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 819
    functionName: libtorrent::piece_picker::priority_begin
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - prio_index_t
    - size
    linkageType: ''
    returnType: prio_index_t
    signature: prio_index_t piece_picker::priority_begin(int const prio) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:823,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:824,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prio
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 826
    functionName: libtorrent::piece_picker::priority_end
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - size
    linkageType: ''
    returnType: prio_index_t
    signature: prio_index_t piece_picker::priority_end(int const prio) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:830,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:831,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:831,1
    - Dst: libtorrent::piece_picker::priority_begin
      Src: /src/libtorrent/src/piece_picker.cpp:832,1
    - Dst: libtorrent::piece_picker::priority_end
      Src: /src/libtorrent/src/piece_picker.cpp:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prio
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 833
    functionName: libtorrent::piece_picker::priority_range
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - size
    - libtorrent::piece_picker::priority_begin
    - libtorrent::piece_picker::priority_end
    linkageType: ''
    returnType: std::pair<prio_index_t, prio_index_t>
    signature: std::pair<prio_index_t, prio_index_t> piece_picker::priority_range(int
      const prio) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:837,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:839,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:839,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:840,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:840,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:842,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:843,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:846,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:847,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:847,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:849,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:849,1
    - Dst: libtorrent::piece_picker::priority_range
      Src: /src/libtorrent/src/piece_picker.cpp:851,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:854,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:855,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/piece_picker.cpp:855,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:855,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:856,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:864,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:866,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:866,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:870,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:870,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:882,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:885,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:891,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:892,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:892,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:894,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:896,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:896,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:896,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:901,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 904
    functionName: libtorrent::piece_picker::add
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - print_pieces
    - prev
    - aux::numeric_cast<std::uint32_t>
    - filtered
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - libtorrent::piece_picker::resize
    - libtorrent::piece_picker::priority_range
    - priority
    - prio_index_t
    - end_index
    - piece_index_t
    - size
    - random
    linkageType: ''
    returnType: void
    signature: void piece_picker::add(piece_index_t index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:908,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:909,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:915,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:915,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:919,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:921,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:921,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:927,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:934,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:934,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:935,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:935,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:935,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:938,1
    - Dst: pop_back
      Src: /src/libtorrent/src/piece_picker.cpp:941,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:942,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:942,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:944,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - priority
    - elem_index
    argTypes:
    - int
    - prio_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 946
    functionName: libtorrent::piece_picker::remove
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - pop_back
    - print_pieces
    - prev
    - TORRENT_ASSERT
    - priority
    - end_index
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::remove(int priority, prio_index_t elem_index)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:952,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:953,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:954,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:954,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:959,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:960,1
    - Dst: libtorrent::piece_picker::priority_begin
      Src: /src/libtorrent/src/piece_picker.cpp:960,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:961,1
    - Dst: libtorrent::piece_picker::priority_end
      Src: /src/libtorrent/src/piece_picker.cpp:961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:966,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:966,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:968,1
    - Dst: libtorrent::piece_picker::remove
      Src: /src/libtorrent/src/piece_picker.cpp:974,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:978,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:979,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:979,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:991,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:993,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1001,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1001,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1007,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1011,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1011,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1013,1
    - Dst: libtorrent::piece_picker::shuffle
      Src: /src/libtorrent/src/piece_picker.cpp:1015,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1017,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1019,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1019,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1028,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1030,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1031,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1031,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1038,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1038,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1045,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1049,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1049,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1051,1
    - Dst: libtorrent::piece_picker::shuffle
      Src: /src/libtorrent/src/piece_picker.cpp:1053,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1055,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1057,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1057,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 2
    argNames:
    - priority
    - elem_index
    argTypes:
    - int
    - prio_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 1059
    functionName: libtorrent::piece_picker::update
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::remove
    - libtorrent::piece_picker::shuffle
    - libtorrent::piece_picker::priority_end
    - print_pieces
    - libtorrent::piece_picker::priority_begin
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - libtorrent::piece_picker::resize
    - priority
    - end_index
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::update(int priority, prio_index_t elem_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1067,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1068,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1069,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1070,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1070,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1071,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1071,1
    - Dst: libtorrent::piece_picker::priority_range
      Src: /src/libtorrent/src/piece_picker.cpp:1073,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:1075,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/piece_picker.cpp:1075,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1075,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1076,1
    - Dst: std::swap
      Src: /src/libtorrent/src/piece_picker.cpp:1084,1
    - Dst: std::swap
      Src: /src/libtorrent/src/piece_picker.cpp:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - priority
    - elem_index
    argTypes:
    - int
    - prio_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1086
    functionName: libtorrent::piece_picker::shuffle
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - aux::numeric_cast<std::uint32_t>
    - TORRENT_ASSERT
    - std::swap
    - libtorrent::piece_picker::priority_range
    - prio_index_t
    - priority
    - end_index
    - random
    linkageType: ''
    returnType: void
    signature: void piece_picker::shuffle(int const priority, prio_index_t const elem_index)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1093,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1099,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1105,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1106,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1106,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1107,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1107,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1112,1
    - Dst: span<int const>::empty
      Src: /src/libtorrent/src/piece_picker.cpp:1115,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1124,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1129,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1141,1
    - Dst: span<int const>::empty
      Src: /src/libtorrent/src/piece_picker.cpp:1144,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1146,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1148,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1151,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1156,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1157,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - index
    - blocks
    argTypes:
    - piece_index_t
    - span<int const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1163
    functionName: libtorrent::piece_picker::restore_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - span<int const>::empty
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - libtorrent::piece_picker::add
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_per_piece
    - libtorrent::piece_picker::update
    - priority
    - libtorrent::piece_picker::update_piece_state
    - size
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::restore_piece(piece_index_t const index, span<int
      const> const blocks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1180,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1181,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1183,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1183,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1184,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - peer
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1189
    functionName: libtorrent::piece_picker::inc_refcount_all
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::vector<piece_pos>::iterator::have_peers::count
    - begin
    - std::vector<piece_pos>::iterator::have_peers::insert
    - end
    - TORRENT_ASSERT
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void piece_picker::inc_refcount_all(const torrent_peer* peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1208,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1211,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1211,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1212,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1215,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1224,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1224,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1225,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - peer
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1235
    functionName: libtorrent::piece_picker::dec_refcount_all
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::vector<piece_pos>::iterator::have_peers::count
    - begin
    - end
    - TORRENT_ASSERT
    - std::vector<piece_pos>::iterator::have_peers::erase
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void piece_picker::dec_refcount_all(const torrent_peer* peer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1250,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1250,1
    - Dst: have_peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1251,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1253,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1256,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1259,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1262,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - index
    - peer
    argTypes:
    - piece_index_t
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1237
    functionDepth: 3
    functionLinenumber: 1237
    functionLinenumberEnd: 1265
    functionName: libtorrent::piece_picker::inc_refcount
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::update
    - libtorrent::piece_picker::add
    - TORRENT_ASSERT
    - priority
    - have_peers::insert
    - have_peers::count
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::inc_refcount(piece_index_t const index\n\t\t, const
      torrent_peer* peer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1284
    functionName: libtorrent::piece_picker::break_one_seed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void piece_picker::break_one_seed()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1301,1
    - Dst: libtorrent::piece_picker::break_one_seed
      Src: /src/libtorrent/src/piece_picker.cpp:1306,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1309,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1312,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1312,1
    - Dst: have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1313,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1315,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1318,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - index
    - peer
    argTypes:
    - piece_index_t
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1286
    functionDepth: 3
    functionLinenumber: 1286
    functionLinenumberEnd: 1322
    functionName: libtorrent::piece_picker::dec_refcount
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - have_peers::erase
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - priority
    - have_peers::count
    - libtorrent::piece_picker::break_one_seed
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::dec_refcount(piece_index_t const index\n\t\t, const
      torrent_peer* peer)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: none_set
      Src: /src/libtorrent/src/piece_picker.cpp:1336,1
    - Dst: all_set
      Src: /src/libtorrent/src/piece_picker.cpp:1338,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1338,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1338,1
    - Dst: libtorrent::piece_picker::inc_refcount_all
      Src: /src/libtorrent/src/piece_picker.cpp:1340,1
    - Dst: std::min
      Src: /src/libtorrent/src/piece_picker.cpp:1344,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1344,1
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/piece_picker.cpp:1350,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1359,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1361,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1361,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1378,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1381,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1381,1
    - Dst: have_peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1382,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1384,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1386,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1388,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1389,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1395,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1397,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1397,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1402,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1402,1
    - Dst: have_peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1403,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1405,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 2
    argNames:
    - ' bitmask'
    - peer
    argTypes:
    - typed_bitfield<piece_index_t>
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1324
    functionDepth: 3
    functionLinenumber: 1324
    functionLinenumberEnd: 1417
    functionName: libtorrent::piece_picker::inc_refcount
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - all_set
    - none_set
    - begin
    - libtorrent::piece_picker::update
    - end
    - libtorrent::piece_picker::add
    - std::min
    - size
    - TORRENT_ASSERT
    - priority
    - have_peers::insert
    - have_peers::count
    - TORRENT_ALLOCA
    - piece_index_t
    - libtorrent::piece_picker::inc_refcount_all
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::inc_refcount(typed_bitfield<piece_index_t> const&
      bitmask\n\t\t, const torrent_peer* peer)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1425,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1425,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1425,1
    - Dst: none_set
      Src: /src/libtorrent/src/piece_picker.cpp:1432,1
    - Dst: all_set
      Src: /src/libtorrent/src/piece_picker.cpp:1434,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1434,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1434,1
    - Dst: libtorrent::piece_picker::dec_refcount_all
      Src: /src/libtorrent/src/piece_picker.cpp:1436,1
    - Dst: std::min
      Src: /src/libtorrent/src/piece_picker.cpp:1440,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1440,1
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/piece_picker.cpp:1446,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1455,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1457,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1457,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1478,1
    - Dst: libtorrent::piece_picker::break_one_seed
      Src: /src/libtorrent/src/piece_picker.cpp:1483,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1487,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1487,1
    - Dst: have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1488,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1492,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1494,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1500,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1502,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1509,1
    - Dst: libtorrent::piece_picker::break_one_seed
      Src: /src/libtorrent/src/piece_picker.cpp:1514,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1518,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1518,1
    - Dst: have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1519,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1521,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1524,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 2
    argNames:
    - ' bitmask'
    - peer
    argTypes:
    - typed_bitfield<piece_index_t>
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1419
    functionDepth: 3
    functionLinenumber: 1419
    functionLinenumberEnd: 1534
    functionName: libtorrent::piece_picker::dec_refcount
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - all_set
    - none_set
    - have_peers::erase
    - begin
    - libtorrent::piece_picker::update
    - end
    - libtorrent::piece_picker::break_one_seed
    - TORRENT_ASSERT
    - std::min
    - libtorrent::piece_picker::dec_refcount_all
    - priority
    - have_peers::count
    - TORRENT_ALLOCA
    - piece_index_t
    - size
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::dec_refcount(typed_bitfield<piece_index_t> const&
      bitmask\n\t\t, const torrent_peer* peer)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1538,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:1539,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1539,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1539,1
    - Dst: std::fill
      Src: /src/libtorrent/src/piece_picker.cpp:1548,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1548,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1548,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1548,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1551,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1553,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1554,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1554,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1560,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1570,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1571,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1573,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1573,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1576,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1582,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1583,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1583,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1586,1
    - Dst: libtorrent::piece_picker::priority_begin
      Src: /src/libtorrent/src/piece_picker.cpp:1588,1
    - Dst: prio_index_t::diff_type
      Src: /src/libtorrent/src/piece_picker.cpp:1589,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1589,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1597,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/piece_picker.cpp:1598,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1613,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1536
    functionDepth: 2
    functionLinenumber: 1536
    functionLinenumberEnd: 1615
    functionName: libtorrent::piece_picker::update_pieces
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - prio_index_t::diff_type
    - begin
    - std::fill
    - print_pieces
    - empty
    - end
    - libtorrent::piece_picker::priority_begin
    - TORRENT_ASSERT
    - prio_index_t
    - libtorrent::piece_picker::resize
    - priority
    - libtorrent::aux::random_shuffle
    - piece_index_t
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::update_pieces() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1620,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1623,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1626,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1627,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1627,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1629,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1632,1
    - Dst: libtorrent::piece_picker::account_have
      Src: /src/libtorrent/src/piece_picker.cpp:1635,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1637,1
    - Dst: libtorrent::piece_picker::piece_flushed
      Src: /src/libtorrent/src/piece_picker.cpp:1639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1640
    functionName: libtorrent::piece_picker::piece_passed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::piece_flushed
    - TORRENT_ASSERT
    - libtorrent::piece_picker::account_have
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_passed(piece_index_t const index)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1652,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1657,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1660,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1662,1
    - Dst: libtorrent::piece_picker::account_lost
      Src: /src/libtorrent/src/piece_picker.cpp:1666,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1668,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:1672,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1675,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1676,1
    - Dst: set_not_have
      Src: /src/libtorrent/src/piece_picker.cpp:1680,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1683,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1683,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1642
    functionDepth: 2
    functionLinenumber: 1642
    functionLinenumberEnd: 1684
    functionName: libtorrent::piece_picker::we_dont_have
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - set_not_have
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - libtorrent::piece_picker::add
    - filtered
    - libtorrent::piece_picker::have
    - next
    - priority
    - end_index
    - piece_index_t
    - libtorrent::piece_picker::account_lost
    linkageType: ''
    returnType: void
    signature: void piece_picker::we_dont_have(piece_index_t const index)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1699,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1700,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1700,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1702,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1704,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:1706,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1708,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1709,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1709,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1710,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1712,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1714,1
    - Dst: libtorrent::piece_picker::account_have
      Src: /src/libtorrent/src/piece_picker.cpp:1723,1
    - Dst: set_have
      Src: /src/libtorrent/src/piece_picker.cpp:1726,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1727,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1730,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1731,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1732,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1732,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1737,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1737,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1738,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:1738,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1738,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1741,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1744,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1744,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1745,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1746,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1746,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1747,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:1747,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1747,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1749,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1749,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1752,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1753,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1753,1
    - Dst: libtorrent::piece_picker::remove
      Src: /src/libtorrent/src/piece_picker.cpp:1756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1757,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1757,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1690
    functionDepth: 2
    functionLinenumber: 1690
    functionLinenumberEnd: 1758
    functionName: libtorrent::piece_picker::piece_flushed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::piece_picker::erase_download_piece
    - begin
    - downloading
    - libtorrent::piece_picker::account_have
    - libtorrent::piece_picker::remove
    - prev
    - end
    - filtered
    - num_pieces
    - auto::filtered
    - set_have
    - auto::have
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - priority
    - end_index
    - piece_index_t
    - size
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_flushed(piece_index_t const index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1767,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1768,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1768,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1769,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1770,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1771,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1778,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1780,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1782,1
    - Dst: set_have
      Src: /src/libtorrent/src/piece_picker.cpp:1785,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:1786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1760
    functionDepth: 2
    functionLinenumber: 1760
    functionLinenumberEnd: 1788
    functionName: libtorrent::piece_picker::we_have_all
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - state
    - num_pieces
    - libtorrent::piece_picker::resize
    - prio_index_t
    - clear
    - end_index
    - set_have
    linkageType: ''
    returnType: void
    signature: void piece_picker::we_have_all()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1802,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/piece_picker.cpp:1807,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1809,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1810,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1810,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1817,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1819,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1824,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1828,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1830,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1831,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1836,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1837,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1838,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:1841,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1844,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1845,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1845,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1846,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1846,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1856,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1858,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1858,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1859,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1860,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1865,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1865,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1866,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1867,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:1871,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1874,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1875,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1880,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1881,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/piece_picker.cpp:1883,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1884,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1888,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1889,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:1892,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1894,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1894,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1895,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1895,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1896,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 2
    argNames:
    - index
    - new_piece_priority
    argTypes:
    - piece_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1790
    functionDepth: 3
    functionLinenumber: 1790
    functionLinenumberEnd: 1900
    functionName: libtorrent::piece_picker::set_piece_priority
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - download_priority_t
    - downloading
    - prev
    - end
    - filtered
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - libtorrent::piece_picker::have
    - priority
    - next
    - static_cast<std::uint8_t>
    - end_index
    - piece_index_t
    - size
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::update_piece_state
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::set_piece_priority(piece_index_t const index\n\t\t,
      download_priority_t const new_piece_priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/piece_picker.cpp:1904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1902
    functionDepth: 0
    functionLinenumber: 1902
    functionLinenumberEnd: 1905
    functionName: libtorrent::piece_picker::piece_priority
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t piece_picker::piece_priority(piece_index_t const
      index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1909,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1909,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1910,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1911,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1912,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/piece_picker.cpp:1914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<download_priority_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1907
    functionDepth: 2
    functionLinenumber: 1907
    functionLinenumberEnd: 1916
    functionName: libtorrent::piece_picker::piece_priorities
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - download_priority_t
    - begin
    - end
    - libtorrent::piece_picker::resize
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_priorities(std::vector<download_priority_t>&
      pieces) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/piece_picker.cpp:1923,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/piece_picker.cpp:1924,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/piece_picker.cpp:1924,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' dst'
    - ' src'
    - num_blocks
    argTypes:
    - std::vector<piece_block>
    - std::vector<piece_block>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1929
    functionName: libtorrent::append_blocks
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::size
    - erase
    - libtorrent::insert
    - libtorrent::empty
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: int
    signature: "int append_blocks(std::vector<piece_block>& dst, std::vector<piece_block>&
      src\n\t\t\t, int const num_blocks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/piece_picker.cpp:1923,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/piece_picker.cpp:1924,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/piece_picker.cpp:1924,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' dst'
    - ' src'
    - num_blocks
    argTypes:
    - std::vector<piece_block>
    - std::vector<piece_block>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1929
    functionName: libtorrent::append_blocks
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::size
    - erase
    - libtorrent::insert
    - libtorrent::empty
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: int
    signature: "int append_blocks(std::vector<piece_block>& dst, std::vector<piece_block>&
      src\n\t\t\t, int const num_blocks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - downloading_piece*
    - downloading_piece*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1947
    functionName: libtorrent::piece_picker::partial_compare_rarest_first
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::partial_compare_rarest_first(downloading_piece
      const* lhs\n\t\t, downloading_piece const* rhs) const"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1986,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1997,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1999,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2018,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2019,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2019,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2019,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2021,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:2021,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2052,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2054,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2056,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2056,1
    - Dst: std::sort
      Src: /src/libtorrent/src/piece_picker.cpp:2072,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2072,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2072,1
    - Dst: std::bind
      Src: /src/libtorrent/src/piece_picker.cpp:2073,1
    - Dst: libtorrent::piece_picker::add_blocks_downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2081,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/piece_picker.cpp:2085,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/piece_picker.cpp:2086,1
    - Dst: append_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2090,1
    - Dst: append_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2094,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:2099,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2103,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2104,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2108,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/piece_picker.cpp:2115,1
    - Dst: libtorrent::piece_picker::update_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:2122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2123,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2125,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2126,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2126,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2128,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2132,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:2142,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2144,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2146,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2150,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2162,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2164,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2168,1
    - Dst: libtorrent::piece_picker::update_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:2179,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2180,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2188,1
    - Dst: libtorrent::piece_picker::priority_begin
      Src: /src/libtorrent/src/piece_picker.cpp:2190,1
    - Dst: libtorrent::piece_picker::priority_end
      Src: /src/libtorrent/src/piece_picker.cpp:2191,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:2192,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2194,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2196,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2200,1
    - Dst: libtorrent::piece_picker::extent_for
      Src: /src/libtorrent/src/piece_picker.cpp:2221,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2223,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2224,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2228,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:2236,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2236,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:2243,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2243,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2248,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2250,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2254,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2268,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:2268,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/piece_picker.cpp:2268,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2268,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2275,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:2275,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2277,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2279,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2279,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2286,1
    - Dst: libtorrent::piece_picker::can_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2286,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2287,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2287,1
    - Dst: libtorrent::piece_picker::expand_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2289,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:2293,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/piece_picker.cpp:2300,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2302,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2302,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2303,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:2303,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2304,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2311,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2311,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2312,1
    - Dst: auto::end
      Src: /src/libtorrent/src/piece_picker.cpp:2319,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2325,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2333,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2333,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2343,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2344,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2345,1
    - Dst: append_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2349,1
    - Dst: append_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2353,1
    - Dst: std::min
      Src: /src/libtorrent/src/piece_picker.cpp:2375,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2376,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2377,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2387,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2398,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2398,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2401,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2401,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2408,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2408,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2417,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2429,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2429,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2437,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:2438,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/piece_picker.cpp:2438,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2440,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2441,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2444,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2446,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2449,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2450,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2453,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/piece_picker.cpp:2456,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:2459,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:2459,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/piece_picker.cpp:2459,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/piece_picker.cpp:2459,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2477,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2481,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2484,1
    - Dst: std::find
      Src: /src/libtorrent/src/piece_picker.cpp:2486,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2486,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2486,1
    - Dst: piece_block
      Src: /src/libtorrent/src/piece_picker.cpp:2487,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2488,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2490,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2493,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2494,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2496,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2500,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2501,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2501,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2502,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2504,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2505,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/piece_picker.cpp:2508,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:2512,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2514,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2515,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:2518,1
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2519,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2521,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2524,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2526,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2526,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2527,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 286
    argCount: 9
    argNames:
    - ' pieces'
    - ' interesting_blocks'
    - num_blocks
    - prefer_contiguous_blocks
    - peer
    - options
    - ' suggested_pieces'
    - num_peers
    - ' pc'
    argTypes:
    - typed_bitfield<piece_index_t>
    - std::vector<piece_block>
    - int
    - int
    - torrent_peer*
    - picker_options_t
    - std::vector<piece_index_t>
    - int
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 1978
    functionDepth: 3
    functionLinenumber: 1978
    functionLinenumberEnd: 2532
    functionName: libtorrent::piece_picker::pick_pieces
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - append_blocks
    - std::vector::size
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::priority_end
    - begin
    - downloading
    - aux::numeric_cast<std::uint32_t>
    - std::vector::emplace_back
    - empty
    - libtorrent::piece_picker::expand_piece
    - libtorrent::piece_picker::verify_pick
    - libtorrent::piece_picker::priority_begin
    - std::uint32_t
    - libtorrent::piece_picker::blocks_per_piece
    - std::min
    - TORRENT_ASSERT_FAIL
    - emplace_back
    - libtorrent::piece_picker::update_pieces
    - push_back
    - prev
    - end
    - std::find
    - filtered
    - libtorrent::piece_picker::add_blocks
    - piece_block
    - inc_stats_counter
    - libtorrent::piece_picker::can_pick
    - contains
    - libtorrent::piece_picker::extent_for
    - libtorrent::piece_picker::have_piece
    - erase
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - priority
    - libtorrent::piece_picker::piece_priority
    - libtorrent::piece_picker::add_blocks_downloading
    - end_index
    - piece_index_t
    - size
    - random
    - std::bind
    - std::vector::push_back
    - std::vector::empty
    - libtorrent::piece_picker::is_piece_free
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - auto::end
    - libtorrent::piece_picker::blocks_for_piece
    - std::fprintf
    - std::sort
    linkageType: ''
    returnType: picker_flags_t
    signature: "picker_flags_t piece_picker::pick_pieces(typed_bitfield<piece_index_t>
      const& pieces\n\t\t, std::vector<piece_block>& interesting_blocks, int num_blocks\n\t\t,
      int prefer_contiguous_blocks, torrent_peer* peer\n\t\t, picker_options_t options,
      std::vector<piece_index_t> const& suggested_pieces\n\t\t, int num_peers\n\t\t,
      counters& pc\n\t\t) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2536,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2536,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2537,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2537,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2541
    functionName: libtorrent::piece_picker::is_piece_flushed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_piece_flushed(piece_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2545,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2545,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2546,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2546,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:2547,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2547,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2543
    functionDepth: 1
    functionLinenumber: 2543
    functionLinenumberEnd: 2551
    functionName: libtorrent::piece_picker::blocks_in_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_per_piece
    - next
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: int
    signature: int piece_picker::blocks_in_piece(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2557,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - piece
    - ' bitmask'
    argTypes:
    - piece_index_t
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2559
    functionName: libtorrent::piece_picker::is_piece_free
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::piece_picker::have
    - filtered
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::is_piece_free(piece_index_t const piece\n\t\t,
      typed_bitfield<piece_index_t> const& bitmask) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2565,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2568,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - piece
    - ' bitmask'
    argTypes:
    - piece_index_t
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2570
    functionName: libtorrent::piece_picker::can_pick
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - downloading
    - libtorrent::piece_picker::have
    - filtered
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::can_pick(piece_index_t const piece\n\t\t, typed_bitfield<piece_index_t>
      const& bitmask) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2577,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/piece_picker.cpp:2577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2573
    functionDepth: 1
    functionLinenumber: 2573
    functionLinenumberEnd: 2579
    functionName: libtorrent::piece_picker::check_peers
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<torrent_peer*>
    linkageType: ''
    returnType: void
    signature: void piece_picker::check_peers()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - peer
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2588
    functionName: libtorrent::piece_picker::clear_peer
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_picker::clear_peer(torrent_peer* peer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2606,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2609,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2610,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/piece_picker.cpp:2637,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - ' p'
    - num_blocks_in_piece
    - peer
    argTypes:
    - piece_picker::downloading_piece
    - int
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2596
    functionDepth: 1
    functionLinenumber: 2596
    functionLinenumberEnd: 2639
    functionName: libtorrent::piece_picker::requested_from
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::make_tuple
    - libtorrent::piece_picker::blocks_for_piece
    linkageType: ''
    returnType: std::tuple<bool, bool, int, int>
    signature: "std::tuple<bool, bool, int, int> piece_picker::requested_from(\n\t\tpiece_picker::downloading_piece
      const& p\n\t\t, int const num_blocks_in_piece, torrent_peer* peer) const"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2650,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2650,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:2653,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2655,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2660,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:2660,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2668,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2668,1
    - Dst: libtorrent::piece_picker::add_blocks_downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2670,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2676,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2676,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:2676,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2682,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2685,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2685,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2686,1
    - Dst: libtorrent::piece_picker::expand_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2692,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:2696,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:2703,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2705,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:2705,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2706,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2706,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:2706,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2707,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2707,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2710,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2710,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2711,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2720,1
    - Dst: std::max
      Src: /src/libtorrent/src/piece_picker.cpp:2722,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 10
    argNames:
    - piece
    - ' pieces'
    - ' interesting_blocks'
    - ' backup_blocks'
    - ' backup_blocks2'
    - num_blocks
    - prefer_contiguous_blocks
    - peer
    - ' ignore'
    - options
    argTypes:
    - piece_index_t
    - typed_bitfield<piece_index_t>
    - std::vector<piece_block>
    - std::vector<piece_block>
    - std::vector<piece_block>
    - int
    - int
    - torrent_peer*
    - std::vector<piece_index_t>
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2641
    functionDepth: 2
    functionLinenumber: 2641
    functionLinenumberEnd: 2723
    functionName: libtorrent::piece_picker::add_blocks
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::is_piece_free
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - block_size
    - libtorrent::piece_picker::expand_piece
    - libtorrent::piece_picker::verify_pick
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - std::max
    - priority
    - libtorrent::piece_picker::add_blocks_downloading
    - contains
    - emplace_back
    linkageType: ''
    returnType: int
    signature: "int piece_picker::add_blocks(piece_index_t piece\n\t\t, typed_bitfield<piece_index_t>
      const& pieces\n\t\t, std::vector<piece_block>& interesting_blocks\n\t\t, std::vector<piece_block>&
      backup_blocks\n\t\t, std::vector<piece_block>& backup_blocks2\n\t\t, int num_blocks,
      int prefer_contiguous_blocks\n\t\t, torrent_peer* peer, std::vector<piece_index_t>&
      ignore\n\t\t, picker_options_t const options) const"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2734,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2734,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2740,1
    - Dst: std::tie
      Src: /src/libtorrent/src/piece_picker.cpp:2751,1
    - Dst: libtorrent::piece_picker::requested_from
      Src: /src/libtorrent/src/piece_picker.cpp:2752,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2762,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2773,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2781,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2783,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2793,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2797,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2813,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2816,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 9
    argNames:
    - ' dp'
    - ' pieces'
    - ' interesting_blocks'
    - ' backup_blocks'
    - ' backup_blocks2'
    - num_blocks
    - prefer_contiguous_blocks
    - peer
    - options
    argTypes:
    - downloading_piece
    - typed_bitfield<piece_index_t>
    - std::vector<piece_block>
    - std::vector<piece_block>
    - std::vector<piece_block>
    - int
    - int
    - torrent_peer*
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2725
    functionDepth: 2
    functionLinenumber: 2725
    functionLinenumberEnd: 2819
    functionName: libtorrent::piece_picker::add_blocks_downloading
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - std::tie
    - libtorrent::piece_picker::verify_pick
    - filtered
    - TORRENT_ASSERT
    - libtorrent::piece_picker::requested_from
    - libtorrent::piece_picker::blocks_for_piece
    - emplace_back
    - size
    linkageType: ''
    returnType: int
    signature: "int piece_picker::add_blocks_downloading(downloading_piece const&
      dp\n\t\t, typed_bitfield<piece_index_t> const& pieces\n\t\t, std::vector<piece_block>&
      interesting_blocks\n\t\t, std::vector<piece_block>& backup_blocks\n\t\t, std::vector<piece_block>&
      backup_blocks2\n\t\t, int num_blocks, int prefer_contiguous_blocks\n\t\t, torrent_peer*
      peer, picker_options_t const options) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:2825,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2829,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2837,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2837,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2837,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2841,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2841,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2842,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2842,1
    - Dst: libtorrent::piece_picker::can_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2845,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:2845,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2848,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2848,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:2849,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2853,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2853,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2857,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2857,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2859,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2859,1
    - Dst: libtorrent::piece_picker::can_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2860,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - piece
    - contiguous_blocks
    - ' have'
    - options
    argTypes:
    - piece_index_t
    - int
    - typed_bitfield<piece_index_t>
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2821
    functionDepth: 2
    functionLinenumber: 2821
    functionLinenumberEnd: 2863
    functionName: libtorrent::piece_picker::expand_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - prev
    - libtorrent::piece_picker::blocks_per_piece
    - TORRENT_ASSERT
    - libtorrent::piece_picker::can_pick
    - next
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: "index_range<piece_index_t> piece_picker::expand_piece(piece_index_t
      const piece, int const contiguous_blocks\n\t\t, typed_bitfield<piece_index_t>
      const& have, picker_options_t const options) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2870,1
    - Dst: categories
      Src: /src/libtorrent/src/piece_picker.cpp:2874,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2875,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2875,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2875,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2879,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2880,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2880,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2881,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2881,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2882,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2884,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2887,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2889,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2865
    functionDepth: 2
    functionLinenumber: 2865
    functionLinenumberEnd: 2896
    functionName: libtorrent::piece_picker::is_piece_finished
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_per_piece
    - libtorrent::piece_picker::blocks_for_piece
    - categories
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_piece_finished(piece_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2901,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2904,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2905,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2898
    functionDepth: 1
    functionLinenumber: 2898
    functionLinenumberEnd: 2907
    functionName: libtorrent::piece_picker::is_hashing
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_hashing(piece_index_t const piece) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2911,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2911,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2912,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2912,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2915,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2917,1
    - Dst: categories
      Src: /src/libtorrent/src/piece_picker.cpp:2921,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2922,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2922,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2922,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2926,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2927,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2909
    functionDepth: 1
    functionLinenumber: 2909
    functionLinenumberEnd: 2929
    functionName: libtorrent::piece_picker::have_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - end_index
    - piece_index_t
    - categories
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::have_piece(piece_index_t const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2934,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/piece_picker.cpp:2941,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2942,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2942,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2943,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - queue
    - index
    argTypes:
    - download_queue_t
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2931
    functionDepth: 1
    functionLinenumber: 2931
    functionLinenumberEnd: 2946
    functionName: libtorrent::piece_picker::find_dl_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 13
    functionsReached:
    - TORRENT_ASSERT
    - end
    - std::lower_bound
    - begin
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>::iterator
    signature: "std::vector<piece_picker::downloading_piece>::iterator piece_picker::find_dl_piece(\n\t\tdownload_queue_t
      const queue, piece_index_t const index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<piece_picker*>
      Src: /src/libtorrent/src/piece_picker.cpp:2951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - queue
    - index
    argTypes:
    - download_queue_t
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 2952
    functionName: libtorrent::piece_picker::find_dl_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 13
    functionsReached:
    - const_cast<piece_picker*>
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>::const_iterator
    signature: "std::vector<piece_picker::downloading_piece>::const_iterator piece_picker::find_dl_piece(\n\t\tdownload_queue_t
      const queue, piece_index_t const index) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2962,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:2964,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2965,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2971,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:2981,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2987,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:2988,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2994,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3006,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3006,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3006,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3011,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:3011,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3014,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3014,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:3015,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/piece_picker.cpp:3024,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3024,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:3024,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3025,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3025,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3026,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3026,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3026,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3028,1
    - Dst: insert
      Src: /src/libtorrent/src/piece_picker.cpp:3028,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3032,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:3032,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3033,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - dp
    argTypes:
    - std::vector<piece_picker::downloading_piece>::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 2954
    functionDepth: 3
    functionLinenumber: 2954
    functionLinenumberEnd: 3037
    functionName: libtorrent::piece_picker::update_piece_state
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - state
    - libtorrent::piece_picker::blocks_in_piece
    - begin
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - erase
    - end
    - filtered
    - insert
    - TORRENT_ASSERT
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::update
    - reverse
    - priority
    - std::lower_bound
    - size
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>::iterator
    signature: "std::vector<piece_picker::downloading_piece>::iterator piece_picker::update_piece_state(\n\t\tstd::vector<piece_picker::downloading_piece>::iterator
      dp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3041,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3042,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3043,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3043,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3045,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3047,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3049,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3049,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3051,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3039
    functionDepth: 2
    functionLinenumber: 3039
    functionLinenumberEnd: 3054
    functionName: libtorrent::piece_picker::is_requested
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_requested(piece_block const block) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3059,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3060,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3060,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3064,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3066,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3067,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3067,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3056
    functionDepth: 2
    functionLinenumber: 3056
    functionLinenumberEnd: 3073
    functionName: libtorrent::piece_picker::is_downloaded
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_downloaded(piece_block const block) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3077,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3078,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3079,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3079,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3083,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3085,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3086,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3086,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3088,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3075
    functionDepth: 2
    functionLinenumber: 3075
    functionLinenumberEnd: 3091
    functionName: libtorrent::piece_picker::is_finished
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_finished(piece_block const block) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3095,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:3096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3093
    functionDepth: 0
    functionLinenumber: 3093
    functionLinenumberEnd: 3097
    functionName: libtorrent::piece_picker::extent_for
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::piece_picker::blocks_per_piece
    - static_cast<int>
    linkageType: ''
    returnType: piece_extent_t
    signature: piece_extent_t piece_picker::extent_for(piece_index_t const p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3101,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:3102,1
    - Dst: std::min
      Src: /src/libtorrent/src/piece_picker.cpp:3103,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - piece_extent_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3099
    functionDepth: 0
    functionLinenumber: 3099
    functionLinenumberEnd: 3105
    functionName: libtorrent::piece_picker::extent_for
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::piece_picker::blocks_per_piece
    - static_cast<int>
    - num_pieces
    - std::min
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: index_range<piece_index_t> piece_picker::extent_for(piece_extent_t
      const e) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3111,1
    - Dst: libtorrent::piece_picker::extent_for
      Src: /src/libtorrent/src/piece_picker.cpp:3113,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:3116,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:3119,1
    - Dst: libtorrent::piece_picker::extent_for
      Src: /src/libtorrent/src/piece_picker.cpp:3126,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:3130,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:3137,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3145,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:3146,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3107
    functionDepth: 1
    functionLinenumber: 3107
    functionLinenumberEnd: 3152
    functionName: libtorrent::piece_picker::record_downloading_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - libtorrent::piece_picker::extent_for
    - libtorrent::piece_picker::blocks_per_piece
    - libtorrent::piece_picker::have
    - libtorrent::piece_picker::piece_priority
    - contains
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::record_downloading_piece(piece_index_t const p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3166,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3167,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3168,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3168,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3169,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:3169,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3172,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3178,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3178,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:3181,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3185,1
    - Dst: libtorrent::piece_picker::record_downloading_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3196,1
    - Dst: libtorrent::piece_picker::add_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3198,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3209,1
    - Dst: peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:3209,1
    - Dst: peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:3210,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3216,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3223,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3223,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3224,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3224,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3224,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3225,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3227,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:3234,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3239,1
    - Dst: make_reverse
      Src: /src/libtorrent/src/piece_picker.cpp:3240,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3244,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3252,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:3258,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3260,1
    - Dst: unreverse
      Src: /src/libtorrent/src/piece_picker.cpp:3262,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3267,1
    - Dst: peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:3267,1
    - Dst: peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:3268,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 3
    argNames:
    - block
    - peer
    - options
    argTypes:
    - piece_block
    - torrent_peer*
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3156
    functionDepth: 4
    functionLinenumber: 3156
    functionLinenumberEnd: 3272
    functionName: libtorrent::piece_picker::mark_as_downloading
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::add_download_piece
    - libtorrent::piece_picker::record_downloading_piece
    - peers::count
    - end
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - reverse
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - priority
    - unreverse
    - make_reverse
    - end_index
    - size
    - state
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - peers::insert
    - libtorrent::piece_picker::update_piece_state
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::mark_as_downloading(piece_block const block\n\t\t,
      torrent_peer* peer, picker_options_t const options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3276,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3277,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3278,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3279,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3279,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3282,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3284,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3285,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3285,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3285,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3287,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3289,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3290,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3274
    functionDepth: 2
    functionLinenumber: 3274
    functionLinenumberEnd: 3293
    functionName: libtorrent::piece_picker::num_peers
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - downloading
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - end_index
    - size
    linkageType: ''
    returnType: int
    signature: int piece_picker::num_peers(piece_block const block) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3297,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:3300,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3300,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:3301,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:3302,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' avail'
    argTypes:
    - aux::vector<int, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3304
      start: 3295
    functionDepth: 2
    functionLinenumber: 3295
    functionLinenumberEnd: 3304
    functionName: libtorrent::piece_picker::get_availability
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::resize
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::get_availability(aux::vector<int, piece_index_t>&
      avail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3306
    functionDepth: 0
    functionLinenumber: 3306
    functionLinenumberEnd: 3309
    functionName: libtorrent::piece_picker::get_availability
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int piece_picker::get_availability(piece_index_t const piece) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3321,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/piece_picker.cpp:3321,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3323,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3324,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3325,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3326,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3326,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3331,1
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3334,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3336,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3337,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3337,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:3339,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3342,1
    - Dst: libtorrent::piece_picker::add_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3344,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3345,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3347,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3348,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3348,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3351,1
    - Dst: peers::clear
      Src: /src/libtorrent/src/piece_picker.cpp:3359,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3363,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3367,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3367,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3368,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3368,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3368,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3369,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3373,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3373,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3384,1
    - Dst: peers::clear
      Src: /src/libtorrent/src/piece_picker.cpp:3390,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3393,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - block
    - peer
    argTypes:
    - piece_block
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3311
    functionDepth: 4
    functionLinenumber: 3311
    functionLinenumberEnd: 3396
    functionName: libtorrent::piece_picker::mark_as_writing
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - peers::clear
    - state
    - libtorrent::piece_picker::blocks_in_piece
    - downloading
    - libtorrent::piece_picker::have_piece
    - libtorrent::piece_picker::update
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::add_download_piece
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - TORRENT_ASSERT
    - priority
    - static_cast<torrent_peer*>
    - libtorrent::piece_picker::update_piece_state
    - end_index
    - size
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::mark_as_writing(piece_block const block, torrent_peer*
      peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3401,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3404,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3404,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3405,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3407,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3407,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3408,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3408,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3408,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3418
      start: 3398
    functionDepth: 2
    functionLinenumber: 3398
    functionLinenumberEnd: 3418
    functionName: libtorrent::piece_picker::started_hash_job
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - downloading
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: void
    signature: void piece_picker::started_hash_job(piece_index_t piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3422,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3423,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3423,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3428,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3429,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3429,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3430,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3430,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3430,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3420
    functionDepth: 2
    functionLinenumber: 3420
    functionLinenumberEnd: 3441
    functionName: libtorrent::piece_picker::completed_hash_job
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - downloading
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: void
    signature: void piece_picker::completed_hash_job(piece_index_t piece)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3452,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3459,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3461,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3462,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3464,1
    - Dst: libtorrent::piece_picker::account_lost
      Src: /src/libtorrent/src/piece_picker.cpp:3471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3476
      start: 3447
    functionDepth: 2
    functionLinenumber: 3447
    functionLinenumberEnd: 3476
    functionName: libtorrent::piece_picker::lock_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::account_lost
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::lock_piece(piece_index_t const piece)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3488,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3495,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3497,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3498,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3500,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3503,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3503,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3504,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3505,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3506,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3508,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3509,1
    - Dst: libtorrent::piece_picker::account_lost
      Src: /src/libtorrent/src/piece_picker.cpp:3522,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3530,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3535,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3536,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3537,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:3541,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3542,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3483
    functionDepth: 4
    functionLinenumber: 3483
    functionLinenumberEnd: 3544
    functionName: libtorrent::piece_picker::write_failed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - priority
    - libtorrent::piece_picker::update_piece_state
    - size
    - libtorrent::piece_picker::account_lost
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::write_failed(piece_block const block)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3555,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3557,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3560,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3562,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3562,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3564,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3564,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3564,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3565,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3570,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3572,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3579,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3583,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3584,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3585,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:3589,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3590,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3595,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - block
    - peer
    argTypes:
    - piece_block
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3546
    functionDepth: 4
    functionLinenumber: 3546
    functionLinenumberEnd: 3601
    functionName: libtorrent::piece_picker::mark_as_canceled
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - priority
    - libtorrent::piece_picker::update_piece_state
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::mark_as_canceled(piece_block const block, torrent_peer*
      peer)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3606,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3614,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/piece_picker.cpp:3614,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3615,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3619,1
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3622,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3628,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3629,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3629,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:3631,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3632,1
    - Dst: libtorrent::piece_picker::add_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3634,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3635,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3637,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3638,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3638,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3639,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3643,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3644,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3648,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3656,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3656,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3657,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3657,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3657,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3658,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3660,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3664,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3676,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3682,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3686,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3688,1
    - Dst: libtorrent::piece_picker::piece_flushed
      Src: /src/libtorrent/src/piece_picker.cpp:3692,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3696,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - block
    - peer
    argTypes:
    - piece_block
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3603
    functionDepth: 4
    functionLinenumber: 3603
    functionLinenumberEnd: 3698
    functionName: libtorrent::piece_picker::mark_as_finished
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::have_piece
    - libtorrent::piece_picker::update
    - download_queue
    - libtorrent::piece_picker::find_dl_piece
    - end
    - libtorrent::piece_picker::add_download_piece
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - TORRENT_ASSERT
    - libtorrent::piece_picker::piece_flushed
    - priority
    - static_cast<torrent_peer*>
    - libtorrent::piece_picker::update_piece_state
    - size
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::mark_as_finished(piece_block const block, torrent_peer*
      peer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3702,1
    - Dst: libtorrent::piece_picker::piece_size
      Src: /src/libtorrent/src/piece_picker.cpp:3702,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3703,1
    - Dst: find
      Src: /src/libtorrent/src/piece_picker.cpp:3703,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3703,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3706,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3707,1
    - Dst: libtorrent::piece_picker::piece_size
      Src: /src/libtorrent/src/piece_picker.cpp:3707,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3711,1
    - Dst: count
      Src: /src/libtorrent/src/piece_picker.cpp:3711,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:3715,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:3718,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:3721,1
    - Dst: libtorrent::piece_picker::piece_size
      Src: /src/libtorrent/src/piece_picker.cpp:3728,1
    - Dst: libtorrent::piece_picker::piece_flushed
      Src: /src/libtorrent/src/piece_picker.cpp:3731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - piece
    - bytes
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3700
    functionDepth: 3
    functionLinenumber: 3700
    functionLinenumberEnd: 3733
    functionName: libtorrent::piece_picker::set_pad_bytes
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - count
    - libtorrent::piece_picker::piece_size
    - end
    - find
    - filtered
    - TORRENT_ASSERT
    - libtorrent::piece_picker::piece_flushed
    - libtorrent::piece_picker::have
    linkageType: ''
    returnType: void
    signature: void piece_picker::set_pad_bytes(piece_index_t const piece, int const
      bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/piece_picker.cpp:3737,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3735
    functionDepth: 0
    functionLinenumber: 3735
    functionLinenumberEnd: 3740
    functionName: libtorrent::piece_picker::pad_bytes_in_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 4
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int piece_picker::pad_bytes_in_piece(piece_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3744,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:3745,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/piece_picker.cpp:3749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3752
      start: 3742
    functionDepth: 0
    functionLinenumber: 3742
    functionLinenumberEnd: 3752
    functionName: libtorrent::piece_picker::piece_size
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - num_pieces
    - std::int64_t
    linkageType: ''
    returnType: int
    signature: int piece_picker::piece_size(piece_index_t const p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:3756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3754
    functionDepth: 1
    functionLinenumber: 3754
    functionLinenumberEnd: 3760
    functionName: libtorrent::piece_picker::blocks_per_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT
    - block_size
    linkageType: ''
    returnType: int
    signature: int piece_picker::blocks_per_piece() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3765,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3766,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/piece_picker.cpp:3767,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/piece_picker.cpp:3767,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/piece_picker.cpp:3771,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/piece_picker.cpp:3771,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3775,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3776,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3776,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3777,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3780,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/piece_picker.cpp:3782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3762
    functionDepth: 2
    functionLinenumber: 3762
    functionLinenumberEnd: 3785
    functionName: libtorrent::piece_picker::get_downloaders
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - std::vector::push_back
    - aux::numeric_cast<std::size_t>
    - std::vector::resize
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - std::vector::reserve
    - libtorrent::piece_picker::blocks_for_piece
    - std::size_t
    linkageType: ''
    returnType: std::vector<torrent_peer*>
    signature: std::vector<torrent_peer*> piece_picker::get_downloaders(piece_index_t
      const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3789,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3792,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3794,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3795,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3801,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/piece_picker.cpp:3801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3803
      start: 3787
    functionDepth: 2
    functionLinenumber: 3787
    functionLinenumberEnd: 3803
    functionName: libtorrent::piece_picker::get_downloader
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - static_cast<torrent_peer*>
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * piece_picker::get_downloader(piece_block const block)
      const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3816,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3818,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3819,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3821,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3824,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3825,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3825,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3827,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3829,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3830,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3835,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3838,1
    - Dst: peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:3838,1
    - Dst: peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:3839,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3841,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3844,1
    - Dst: peers::size
      Src: /src/libtorrent/src/piece_picker.cpp:3844,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3846,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3846,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3856,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3863,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3863,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3865,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3866,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:3869,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3870,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3875,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - block
    - peer
    argTypes:
    - piece_block
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3876
      start: 3807
    functionDepth: 4
    functionLinenumber: 3807
    functionLinenumberEnd: 3876
    functionName: libtorrent::piece_picker::abort_download
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - libtorrent::piece_picker::update_piece_state
    - peers::erase
    - peers::size
    - priority
    - peers::count
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::abort_download(piece_block const block, torrent_peer*
      peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:3880,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:3880,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3880,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3881,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:3882,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3884,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3885,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3886,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3888
      start: 3878
    functionDepth: 1
    functionLinenumber: 3878
    functionLinenumberEnd: 3888
    functionName: libtorrent::piece_picker::want
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - num_pad_bytes
    - TORRENT_ASSERT
    - num_pieces
    - libtorrent::piece_picker::piece_priority
    - piece_index_t
    linkageType: ''
    returnType: piece_count
    signature: piece_count piece_picker::want() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3892,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:3892,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3892,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:3893,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:3893,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3893,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3897,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3898,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3899,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3890
    functionDepth: 2
    functionLinenumber: 3890
    functionLinenumberEnd: 3901
    functionName: libtorrent::piece_picker::have_want
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::have_piece
    - TORRENT_ASSERT
    - num_pieces
    - libtorrent::piece_picker::piece_priority
    - piece_index_t
    linkageType: ''
    returnType: piece_count
    signature: piece_count piece_picker::have_want() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3905,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:3905,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3905,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3909,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3910,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3911,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3911,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3903
    functionDepth: 2
    functionLinenumber: 3903
    functionLinenumberEnd: 3913
    functionName: libtorrent::piece_picker::have
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 17
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have_piece
    - num_pieces
    - piece_index_t
    linkageType: ''
    returnType: piece_count
    signature: piece_count piece_picker::have() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3917,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:3918,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3920,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3921,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3922,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3915
    functionDepth: 1
    functionLinenumber: 3915
    functionLinenumberEnd: 3924
    functionName: libtorrent::piece_picker::all_pieces
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - num_pad_bytes
    - num_pieces
    - TORRENT_ASSERT
    linkageType: ''
    returnType: piece_count
    signature: piece_count piece_picker::all_pieces() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3930,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:3930,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3931,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:3932,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3934,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3936,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3943,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:3943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3926
    functionDepth: 3
    functionLinenumber: 3926
    functionLinenumberEnd: 3944
    functionName: libtorrent::piece_picker::account_have
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - num_pad_bytes
    - filtered
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - libtorrent::piece_picker::have
    linkageType: ''
    returnType: void
    signature: void piece_picker::account_have(piece_index_t const index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3948,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3951,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:3952,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3955,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:3955,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3958,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3960,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3946
    functionDepth: 1
    functionLinenumber: 3946
    functionLinenumberEnd: 3965
    functionName: libtorrent::piece_picker::account_lost
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - num_pad_bytes
    - filtered
    linkageType: ''
    returnType: void
    signature: void piece_picker::account_lost(piece_index_t const index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:149,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:151,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:152,1
    - Dst: libtorrent::piece_picker::check_invariant
      Src: /src/libtorrent/src/piece_picker.cpp:157,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - total_size
    - piece_size
    argTypes:
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: libtorrent::piece_picker::piece_picker
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - end_index
    - libtorrent::piece_picker::check_invariant
    - libtorrent::piece_picker::resize
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_picker(std::int64_t const total_size, int
      const piece_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:166,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:172,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:172,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:174,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:174,1
    - Dst: system_error
      Src: /src/libtorrent/src/piece_picker.cpp:182,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:186,1
    - Dst: piece_pos
      Src: /src/libtorrent/src/piece_picker.cpp:186,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:187,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:188,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:190,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:191,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:192,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:204,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:205,1
    - Dst: have_peers::clear
      Src: /src/libtorrent/src/piece_picker.cpp:207,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:211,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:211,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:212,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:212,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:212,1
    - Dst: rend
      Src: /src/libtorrent/src/piece_picker.cpp:215,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:215,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:216,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:216,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:216,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/piece_picker.cpp:219,1
    - Dst: aux::numeric_cast<std::uint16_t>
      Src: /src/libtorrent/src/piece_picker.cpp:220,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:220,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:222,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:222,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - total_size
    - piece_size
    argTypes:
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 223
    functionName: libtorrent::piece_picker::resize
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 11
    functionsReached:
    - static_cast<int>
    - aux::numeric_cast<std::uint16_t>
    - have_peers::clear
    - begin
    - block_size
    - system_error
    - libtorrent::piece_picker::blocks_per_piece
    - prio_index_t
    - piece_pos
    - end
    - clear
    - auto::filtered
    - auto::have
    - TORRENT_ASSERT
    - end_index
    - piece_index_t
    - state
    - rend
    - libtorrent::piece_picker::resize
    linkageType: ''
    returnType: void
    signature: void piece_picker::resize(std::int64_t const total_size, int const
      piece_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:231,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:234,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:235,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:235,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:243,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/piece_picker.cpp:245,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - index
    - ' st'
    argTypes:
    - piece_index_t
    - piece_picker::downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 249
    functionName: libtorrent::piece_picker::piece_info
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - std::uint16_t
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_info(piece_index_t const index, piece_picker::downloading_piece&
      st) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:256,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:257,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: libtorrent::piece_picker::piece_stats
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - downloading
    - libtorrent::piece_picker::have
    - priority
    linkageType: ''
    returnType: piece_picker::piece_stats_t
    signature: piece_picker::piece_stats_t piece_picker::piece_stats(piece_index_t
      const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:266,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:267,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:267,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:269,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:274,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:277,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:279,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:279,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/piece_picker.cpp:279,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:280,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:280,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/piece_picker.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/piece_picker.cpp:285,1
    - Dst: pop_back
      Src: /src/libtorrent/src/piece_picker.cpp:286,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/piece_picker.cpp:293,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:293,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:294,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:295,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:295,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:297,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:298,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/piece_picker.cpp:298,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/piece_picker.cpp:299,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:300,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:300,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:301,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:301,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:306,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:306,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:306,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:309,1
    - Dst: peers::clear
      Src: /src/libtorrent/src/piece_picker.cpp:326,1
    - Dst: insert
      Src: /src/libtorrent/src/piece_picker.cpp:329,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:333,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 339
    functionName: libtorrent::piece_picker::add_download_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - pop_back
    - begin
    - block_size
    - empty
    - libtorrent::piece_picker::blocks_per_piece
    - libtorrent::piece_picker::check_piece_state
    - std::uint16_t
    - end
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - std::size_t
    - back
    - peers::clear
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - end_index
    - piece_index_t
    - size
    - insert
    - libtorrent::piece_picker::resize
    - libtorrent::piece_picker::update_piece_state
    - std::lower_bound
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>::iterator
    signature: std::vector<piece_picker::downloading_piece>::iterator piece_picker::add_download_piece(piece_index_t
      const piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:344,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:347,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:348,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:349,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:349,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:351,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:356,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:358,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:358,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:359,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:362,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:362,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - i
    argTypes:
    - std::vector<downloading_piece>::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 367
    functionName: libtorrent::piece_picker::erase_download_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 6
    functionsReached:
    - push_back
    - state
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - erase
    - TORRENT_ASSERT
    - size
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::erase_download_piece(std::vector<downloading_piece>::iterator
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:372,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/piece_picker.cpp:377,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/piece_picker.cpp:377,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:377,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: libtorrent::piece_picker::get_download_queue
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::vector::insert
    - std::vector::end
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>
    signature: std::vector<piece_picker::downloading_piece> piece_picker::get_download_queue()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/libtorrent/src/piece_picker.cpp:383,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:383,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: libtorrent::piece_picker::get_download_queue_size
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::accumulate
    - end
    - size
    - begin
    linkageType: ''
    returnType: int
    signature: int piece_picker::get_download_queue_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:390,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:391,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:392,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - partial
    - full
    - finished
    - zero_prio
    argTypes:
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: libtorrent::piece_picker::get_download_queue_sizes
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: "void piece_picker::get_download_queue_sizes(int* partial\n\t\t, int*
      full, int* finished, int* zero_prio) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:399,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:400,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:400,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:400,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' dp'
    argTypes:
    - downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: libtorrent::piece_picker::mutable_blocks_for_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::piece_picker::blocks_per_piece
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_in_piece
    - size
    linkageType: ''
    returnType: span<piece_picker::block_info>
    signature: "span<piece_picker::block_info> piece_picker::mutable_blocks_for_piece(\n\t\tdownloading_piece
      const& dp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<piece_picker*>
      Src: /src/libtorrent/src/piece_picker.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dp'
    argTypes:
    - downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: libtorrent::piece_picker::blocks_for_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 12
    functionsReached:
    - const_cast<piece_picker*>
    linkageType: ''
    returnType: span<piece_picker::block_info const>
    signature: "span<piece_picker::block_info const> piece_picker::blocks_for_piece(\n\t\tdownloading_piece
      const& dp) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: categories
      Src: /src/libtorrent/src/piece_picker.cpp:414,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:416,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:417,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:417,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:421,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:422,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:422,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:423,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:423,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:424,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:428,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:429,1
    - Dst: static_cast<peer_connection*>
      Src: /src/libtorrent/src/piece_picker.cpp:430,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 434
    functionName: libtorrent::piece_picker::check_piece_state
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 12
    functionsReached:
    - static_cast<peer_connection*>
    - begin
    - empty
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_per_piece
    - size
    - libtorrent::piece_picker::blocks_for_piece
    - categories
    linkageType: ''
    returnType: void
    signature: void piece_picker::check_piece_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:439,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:439,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:442,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:443,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:444,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - picked
    - ' bits'
    argTypes:
    - span<piece_block const>
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 446
    functionName: libtorrent::piece_picker::verify_pick
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - filtered
    - TORRENT_ASSERT
    - num_pieces
    - libtorrent::piece_picker::have
    - size
    linkageType: ''
    returnType: void
    signature: "void piece_picker::verify_pick(span<piece_block const> const picked\n\t\t,
      typed_bitfield<piece_index_t> const& bits) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:452,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:453,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:453,1
    - Dst: range
      Src: /src/libtorrent/src/piece_picker.cpp:454,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - range_start
    - range_end
    - prio
    argTypes:
    - prio_index_t
    - prio_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 459
    functionName: libtorrent::piece_picker::verify_priority
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - range
    - end_index
    - priority
    linkageType: ''
    returnType: void
    signature: "void piece_picker::verify_priority(prio_index_t const range_start\n\t\t,
      prio_index_t const range_end\n\t\t, int const prio) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:465,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:468,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:468,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:471,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' have'
    - p
    argTypes:
    - typed_bitfield<piece_index_t>
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 474
    functionName: libtorrent::piece_picker::check_peer_invariant
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - have_peers::count
    - end_index
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::check_peer_invariant(typed_bitfield<piece_index_t>
      const& have\n\t\t, torrent_peer const* p) const"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:478,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:479,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:480,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:481,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:481,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:483,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:484,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:484,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:485,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:486,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:486,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:487,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:488,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:488,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:489,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:490,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:499,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:503,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:506,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:506,1
    - Dst: torrent*::torrent_file
      Src: /src/libtorrent/src/piece_picker.cpp:506,1
    - Dst: categories
      Src: /src/libtorrent/src/piece_picker.cpp:508,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:512,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:512,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:513,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:518,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:520,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:521,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:527,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:532,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:537,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:542,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:548,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:548,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:553,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:554,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:556,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:560,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:560,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:561,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:562,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:563,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:567,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:567,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:570,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:571,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:572,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:574,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:575,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:576,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:579,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:579,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:580,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:580,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:581,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:581,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:582,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:582,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:583,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:584,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:589,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:589,1
    - Dst: libtorrent::piece_picker::verify_priority
      Src: /src/libtorrent/src/piece_picker.cpp:594,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:598,1
    - Dst: back
      Src: /src/libtorrent/src/piece_picker.cpp:598,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:598,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:604,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:605,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:605,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:605,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:607,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:608,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:609,1
    - Dst: rend
      Src: /src/libtorrent/src/piece_picker.cpp:611,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:611,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:611,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:612,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:612,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:613,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:613,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:614,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:615,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:616,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:620,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:620,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:631,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:631,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:635,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:636,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:638,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:640,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:640,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:652,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:665,1
    - Dst: have_peers::size
      Src: /src/libtorrent/src/piece_picker.cpp:665,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:671,1
    - Dst: torrent*::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:672,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:672,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:676,1
    - Dst: torrent*::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:676,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:678,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:680,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:682,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:682,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:688,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:689,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:691,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:695,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:700,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:700,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:703,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:703,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:704,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:708,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:712,1
    - Dst: std::count
      Src: /src/libtorrent/src/piece_picker.cpp:712,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:712,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:712,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/piece_picker.cpp:716,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:717,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:718,1
    - Dst: has_index
      Src: /src/libtorrent/src/piece_picker.cpp:719,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/piece_picker.cpp:721,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:722,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:723,1
    - Dst: has_index
      Src: /src/libtorrent/src/piece_picker.cpp:724,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/piece_picker.cpp:726,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:727,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:728,1
    - Dst: has_index
      Src: /src/libtorrent/src/piece_picker.cpp:729,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/piece_picker.cpp:731,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:732,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:733,1
    - Dst: has_index
      Src: /src/libtorrent/src/piece_picker.cpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:736,1
    - Dst: auto::download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:736,1
    - Dst: auto::download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:740,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:742,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:746,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:749,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:752,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:755,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:758,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:759,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:760,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:761,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:762,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:763,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:769,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:769,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 168
    argCount: 1
    argNames:
    - t
    argTypes:
    - torrent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 773
    functionName: libtorrent::piece_picker::check_invariant
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - libtorrent::piece_picker::blocks_in_piece
    - begin
    - downloading
    - empty
    - auto::download_queue
    - libtorrent::piece_picker::check_piece_state
    - libtorrent::piece_picker::verify_priority
    - end
    - filtered
    - num_pieces
    - reverse
    - back
    - auto::filtered
    - auto::have
    - has_index
    - std::count
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - libtorrent::piece_picker::have
    - priority
    - end_index
    - piece_index_t
    - size
    - torrent*::have_piece
    - torrent*::torrent_file
    - num_pad_bytes
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - std::count_if
    - rend
    - libtorrent::piece_picker::blocks_for_piece
    - have_peers::size
    - categories
    linkageType: ''
    returnType: void
    signature: void piece_picker::check_invariant(torrent const* t) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:778,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:779,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/piece_picker.cpp:781,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:788,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:789,1
    - Dst: std::vector<piece_pos>::const_iterator::have
      Src: /src/libtorrent/src/piece_picker.cpp:793,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:806,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:810,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/piece_picker.cpp:811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 812
    functionName: libtorrent::piece_picker::distributed_copies
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - std::vector<piece_pos>::const_iterator::have
    - begin
    - std::make_pair
    - end
    - TORRENT_ASSERT
    - num_pieces
    linkageType: ''
    returnType: std::pair<int, int>
    signature: std::pair<int, int> piece_picker::distributed_copies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:816,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:817,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:817,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prio
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 819
    functionName: libtorrent::piece_picker::priority_begin
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - prio_index_t
    - size
    linkageType: ''
    returnType: prio_index_t
    signature: prio_index_t piece_picker::priority_begin(int const prio) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:823,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:824,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prio
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 826
    functionName: libtorrent::piece_picker::priority_end
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - size
    linkageType: ''
    returnType: prio_index_t
    signature: prio_index_t piece_picker::priority_end(int const prio) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:830,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:831,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:831,1
    - Dst: libtorrent::piece_picker::priority_begin
      Src: /src/libtorrent/src/piece_picker.cpp:832,1
    - Dst: libtorrent::piece_picker::priority_end
      Src: /src/libtorrent/src/piece_picker.cpp:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prio
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 833
    functionName: libtorrent::piece_picker::priority_range
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - size
    - libtorrent::piece_picker::priority_begin
    - libtorrent::piece_picker::priority_end
    linkageType: ''
    returnType: std::pair<prio_index_t, prio_index_t>
    signature: std::pair<prio_index_t, prio_index_t> piece_picker::priority_range(int
      const prio) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:837,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:839,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:839,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:840,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:840,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:842,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:843,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:846,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:847,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:847,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:849,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:849,1
    - Dst: libtorrent::piece_picker::priority_range
      Src: /src/libtorrent/src/piece_picker.cpp:851,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:854,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:855,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/piece_picker.cpp:855,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:855,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:856,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:864,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:866,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:866,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:870,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:870,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:882,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:885,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:891,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:892,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:892,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:894,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:896,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:896,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:896,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:901,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 904
    functionName: libtorrent::piece_picker::add
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 9
    functionsReached:
    - static_cast<int>
    - push_back
    - print_pieces
    - prev
    - aux::numeric_cast<std::uint32_t>
    - filtered
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - libtorrent::piece_picker::resize
    - libtorrent::piece_picker::priority_range
    - priority
    - prio_index_t
    - end_index
    - piece_index_t
    - size
    - random
    linkageType: ''
    returnType: void
    signature: void piece_picker::add(piece_index_t index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:908,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:909,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:915,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:915,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:919,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:921,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:921,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:927,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:934,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:934,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:935,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:935,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:935,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:938,1
    - Dst: pop_back
      Src: /src/libtorrent/src/piece_picker.cpp:941,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:942,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:942,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:944,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - priority
    - elem_index
    argTypes:
    - int
    - prio_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 946
    functionName: libtorrent::piece_picker::remove
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - pop_back
    - print_pieces
    - prev
    - TORRENT_ASSERT
    - priority
    - end_index
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::remove(int priority, prio_index_t elem_index)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:952,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:953,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:954,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:954,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:959,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:960,1
    - Dst: libtorrent::piece_picker::priority_begin
      Src: /src/libtorrent/src/piece_picker.cpp:960,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:961,1
    - Dst: libtorrent::piece_picker::priority_end
      Src: /src/libtorrent/src/piece_picker.cpp:961,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:966,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:966,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:968,1
    - Dst: libtorrent::piece_picker::remove
      Src: /src/libtorrent/src/piece_picker.cpp:974,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:978,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:979,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:979,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:991,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:993,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1001,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1001,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1007,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1011,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1011,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1013,1
    - Dst: libtorrent::piece_picker::shuffle
      Src: /src/libtorrent/src/piece_picker.cpp:1015,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1017,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1019,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1019,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1028,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1030,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1031,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1031,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1038,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1038,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1045,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1049,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1049,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1051,1
    - Dst: libtorrent::piece_picker::shuffle
      Src: /src/libtorrent/src/piece_picker.cpp:1053,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1055,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1057,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1057,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 2
    argNames:
    - priority
    - elem_index
    argTypes:
    - int
    - prio_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 950
    functionDepth: 4
    functionLinenumber: 950
    functionLinenumberEnd: 1059
    functionName: libtorrent::piece_picker::update
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 13
    functionsReached:
    - libtorrent::piece_picker::remove
    - libtorrent::piece_picker::shuffle
    - libtorrent::piece_picker::priority_end
    - print_pieces
    - libtorrent::piece_picker::priority_begin
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - libtorrent::piece_picker::resize
    - priority
    - end_index
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::update(int priority, prio_index_t elem_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1067,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1068,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1069,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1070,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1070,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1071,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1071,1
    - Dst: libtorrent::piece_picker::priority_range
      Src: /src/libtorrent/src/piece_picker.cpp:1073,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:1075,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/piece_picker.cpp:1075,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1075,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1076,1
    - Dst: std::swap
      Src: /src/libtorrent/src/piece_picker.cpp:1084,1
    - Dst: std::swap
      Src: /src/libtorrent/src/piece_picker.cpp:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - priority
    - elem_index
    argTypes:
    - int
    - prio_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1086
    functionName: libtorrent::piece_picker::shuffle
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - aux::numeric_cast<std::uint32_t>
    - TORRENT_ASSERT
    - std::swap
    - libtorrent::piece_picker::priority_range
    - prio_index_t
    - priority
    - end_index
    - random
    linkageType: ''
    returnType: void
    signature: void piece_picker::shuffle(int const priority, prio_index_t const elem_index)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1093,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1099,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1105,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1106,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1106,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1107,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1107,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1112,1
    - Dst: span<int const>::empty
      Src: /src/libtorrent/src/piece_picker.cpp:1115,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1124,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1129,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1141,1
    - Dst: span<int const>::empty
      Src: /src/libtorrent/src/piece_picker.cpp:1144,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1146,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1148,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1151,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1156,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1157,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - index
    - blocks
    argTypes:
    - piece_index_t
    - span<int const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1163
    functionName: libtorrent::piece_picker::restore_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - span<int const>::empty
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - libtorrent::piece_picker::add
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_per_piece
    - libtorrent::piece_picker::update
    - priority
    - libtorrent::piece_picker::update_piece_state
    - size
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::restore_piece(piece_index_t const index, span<int
      const> const blocks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1180,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1181,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1183,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1183,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1184,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - peer
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1189
    functionName: libtorrent::piece_picker::inc_refcount_all
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - std::vector<piece_pos>::iterator::have_peers::count
    - begin
    - std::vector<piece_pos>::iterator::have_peers::insert
    - end
    - TORRENT_ASSERT
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void piece_picker::inc_refcount_all(const torrent_peer* peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1208,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1211,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1211,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1212,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1215,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1224,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1224,1
    - Dst: std::vector<piece_pos>::iterator::have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1225,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - peer
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1235
    functionName: libtorrent::piece_picker::dec_refcount_all
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - std::vector<piece_pos>::iterator::have_peers::count
    - begin
    - end
    - TORRENT_ASSERT
    - std::vector<piece_pos>::iterator::have_peers::erase
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void piece_picker::dec_refcount_all(const torrent_peer* peer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1250,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1250,1
    - Dst: have_peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1251,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1253,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1256,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1259,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1262,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - index
    - peer
    argTypes:
    - piece_index_t
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1237
    functionDepth: 3
    functionLinenumber: 1237
    functionLinenumberEnd: 1265
    functionName: libtorrent::piece_picker::inc_refcount
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::update
    - libtorrent::piece_picker::add
    - TORRENT_ASSERT
    - priority
    - have_peers::insert
    - have_peers::count
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::inc_refcount(piece_index_t const index\n\t\t, const
      torrent_peer* peer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1284
    functionName: libtorrent::piece_picker::break_one_seed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void piece_picker::break_one_seed()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1301,1
    - Dst: libtorrent::piece_picker::break_one_seed
      Src: /src/libtorrent/src/piece_picker.cpp:1306,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1309,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1312,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1312,1
    - Dst: have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1313,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1315,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1318,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - index
    - peer
    argTypes:
    - piece_index_t
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1286
    functionDepth: 3
    functionLinenumber: 1286
    functionLinenumberEnd: 1322
    functionName: libtorrent::piece_picker::dec_refcount
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - have_peers::erase
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - priority
    - have_peers::count
    - libtorrent::piece_picker::break_one_seed
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::dec_refcount(piece_index_t const index\n\t\t, const
      torrent_peer* peer)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: none_set
      Src: /src/libtorrent/src/piece_picker.cpp:1336,1
    - Dst: all_set
      Src: /src/libtorrent/src/piece_picker.cpp:1338,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1338,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1338,1
    - Dst: libtorrent::piece_picker::inc_refcount_all
      Src: /src/libtorrent/src/piece_picker.cpp:1340,1
    - Dst: std::min
      Src: /src/libtorrent/src/piece_picker.cpp:1344,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1344,1
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/piece_picker.cpp:1350,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1359,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1361,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1361,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1378,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1381,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1381,1
    - Dst: have_peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1382,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1384,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1386,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1388,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1389,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1395,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1397,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1397,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1402,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1402,1
    - Dst: have_peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1403,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1405,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 2
    argNames:
    - ' bitmask'
    - peer
    argTypes:
    - typed_bitfield<piece_index_t>
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1324
    functionDepth: 3
    functionLinenumber: 1324
    functionLinenumberEnd: 1417
    functionName: libtorrent::piece_picker::inc_refcount
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - all_set
    - none_set
    - begin
    - libtorrent::piece_picker::update
    - end
    - libtorrent::piece_picker::add
    - std::min
    - size
    - TORRENT_ASSERT
    - priority
    - have_peers::insert
    - have_peers::count
    - TORRENT_ALLOCA
    - piece_index_t
    - libtorrent::piece_picker::inc_refcount_all
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::inc_refcount(typed_bitfield<piece_index_t> const&
      bitmask\n\t\t, const torrent_peer* peer)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1425,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1425,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1425,1
    - Dst: none_set
      Src: /src/libtorrent/src/piece_picker.cpp:1432,1
    - Dst: all_set
      Src: /src/libtorrent/src/piece_picker.cpp:1434,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1434,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1434,1
    - Dst: libtorrent::piece_picker::dec_refcount_all
      Src: /src/libtorrent/src/piece_picker.cpp:1436,1
    - Dst: std::min
      Src: /src/libtorrent/src/piece_picker.cpp:1440,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1440,1
    - Dst: TORRENT_ALLOCA
      Src: /src/libtorrent/src/piece_picker.cpp:1446,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1455,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1457,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1457,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1474,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1478,1
    - Dst: libtorrent::piece_picker::break_one_seed
      Src: /src/libtorrent/src/piece_picker.cpp:1483,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1487,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1487,1
    - Dst: have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1488,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1490,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1492,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1494,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1500,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1502,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1509,1
    - Dst: libtorrent::piece_picker::break_one_seed
      Src: /src/libtorrent/src/piece_picker.cpp:1514,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1518,1
    - Dst: have_peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:1518,1
    - Dst: have_peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:1519,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/piece_picker.cpp:1521,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1524,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 2
    argNames:
    - ' bitmask'
    - peer
    argTypes:
    - typed_bitfield<piece_index_t>
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1419
    functionDepth: 3
    functionLinenumber: 1419
    functionLinenumberEnd: 1534
    functionName: libtorrent::piece_picker::dec_refcount
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - all_set
    - none_set
    - have_peers::erase
    - begin
    - libtorrent::piece_picker::update
    - end
    - libtorrent::piece_picker::break_one_seed
    - TORRENT_ASSERT
    - std::min
    - libtorrent::piece_picker::dec_refcount_all
    - priority
    - have_peers::count
    - TORRENT_ALLOCA
    - piece_index_t
    - size
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void piece_picker::dec_refcount(typed_bitfield<piece_index_t> const&
      bitmask\n\t\t, const torrent_peer* peer)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1538,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:1539,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1539,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1539,1
    - Dst: std::fill
      Src: /src/libtorrent/src/piece_picker.cpp:1548,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1548,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1548,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1548,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1551,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1553,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1554,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1554,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1560,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1570,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1571,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1573,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1573,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1576,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1582,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1583,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1583,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1586,1
    - Dst: libtorrent::piece_picker::priority_begin
      Src: /src/libtorrent/src/piece_picker.cpp:1588,1
    - Dst: prio_index_t::diff_type
      Src: /src/libtorrent/src/piece_picker.cpp:1589,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1589,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1597,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/piece_picker.cpp:1598,1
    - Dst: print_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1613,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1536
    functionDepth: 2
    functionLinenumber: 1536
    functionLinenumberEnd: 1615
    functionName: libtorrent::piece_picker::update_pieces
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - prio_index_t::diff_type
    - begin
    - std::fill
    - print_pieces
    - empty
    - end
    - libtorrent::piece_picker::priority_begin
    - TORRENT_ASSERT
    - prio_index_t
    - libtorrent::piece_picker::resize
    - priority
    - libtorrent::aux::random_shuffle
    - piece_index_t
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::update_pieces() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1620,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1623,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1626,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1627,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1627,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1629,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1632,1
    - Dst: libtorrent::piece_picker::account_have
      Src: /src/libtorrent/src/piece_picker.cpp:1635,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1637,1
    - Dst: libtorrent::piece_picker::piece_flushed
      Src: /src/libtorrent/src/piece_picker.cpp:1639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1617
    functionDepth: 4
    functionLinenumber: 1617
    functionLinenumberEnd: 1640
    functionName: libtorrent::piece_picker::piece_passed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::piece_flushed
    - TORRENT_ASSERT
    - libtorrent::piece_picker::account_have
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_passed(piece_index_t const index)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1652,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1657,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1660,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1662,1
    - Dst: libtorrent::piece_picker::account_lost
      Src: /src/libtorrent/src/piece_picker.cpp:1666,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1668,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:1672,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1675,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1676,1
    - Dst: set_not_have
      Src: /src/libtorrent/src/piece_picker.cpp:1680,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1683,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1683,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1642
    functionDepth: 3
    functionLinenumber: 1642
    functionLinenumberEnd: 1684
    functionName: libtorrent::piece_picker::we_dont_have
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - set_not_have
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - libtorrent::piece_picker::add
    - filtered
    - libtorrent::piece_picker::have
    - next
    - priority
    - end_index
    - piece_index_t
    - libtorrent::piece_picker::account_lost
    linkageType: ''
    returnType: void
    signature: void piece_picker::we_dont_have(piece_index_t const index)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1699,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1700,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1700,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1702,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1704,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:1706,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1708,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1709,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1709,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1710,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1712,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1714,1
    - Dst: libtorrent::piece_picker::account_have
      Src: /src/libtorrent/src/piece_picker.cpp:1723,1
    - Dst: set_have
      Src: /src/libtorrent/src/piece_picker.cpp:1726,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1727,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1730,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1731,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1732,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1732,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1737,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1737,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1738,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:1738,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1738,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1741,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1744,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1744,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1745,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1746,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:1746,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1747,1
    - Dst: auto::have
      Src: /src/libtorrent/src/piece_picker.cpp:1747,1
    - Dst: auto::filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1747,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1749,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1749,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1752,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1753,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1753,1
    - Dst: libtorrent::piece_picker::remove
      Src: /src/libtorrent/src/piece_picker.cpp:1756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1757,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1757,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1690
    functionDepth: 4
    functionLinenumber: 1690
    functionLinenumberEnd: 1758
    functionName: libtorrent::piece_picker::piece_flushed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - libtorrent::piece_picker::erase_download_piece
    - begin
    - downloading
    - libtorrent::piece_picker::account_have
    - libtorrent::piece_picker::remove
    - prev
    - end
    - filtered
    - num_pieces
    - auto::filtered
    - set_have
    - auto::have
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - priority
    - end_index
    - piece_index_t
    - size
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_flushed(piece_index_t const index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1767,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1768,1
    - Dst: prio_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1768,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1769,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1770,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1771,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1778,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:1780,1
    - Dst: clear
      Src: /src/libtorrent/src/piece_picker.cpp:1782,1
    - Dst: set_have
      Src: /src/libtorrent/src/piece_picker.cpp:1785,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:1786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1760
    functionDepth: 2
    functionLinenumber: 1760
    functionLinenumberEnd: 1788
    functionName: libtorrent::piece_picker::we_have_all
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - state
    - num_pieces
    - libtorrent::piece_picker::resize
    - prio_index_t
    - clear
    - end_index
    - set_have
    linkageType: ''
    returnType: void
    signature: void piece_picker::we_have_all()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1802,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/piece_picker.cpp:1807,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1809,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1810,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1810,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1817,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1819,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1824,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1828,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1830,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1831,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1836,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1837,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1838,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:1841,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1844,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1845,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1845,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:1846,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:1846,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:1856,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1858,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1858,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1859,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1860,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1865,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1865,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1866,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1867,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:1871,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:1874,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:1875,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1880,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1881,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/piece_picker.cpp:1883,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:1884,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:1888,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:1889,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:1892,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1894,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1894,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:1895,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1895,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:1896,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 2
    argNames:
    - index
    - new_piece_priority
    argTypes:
    - piece_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1790
    functionDepth: 4
    functionLinenumber: 1790
    functionLinenumberEnd: 1900
    functionName: libtorrent::piece_picker::set_piece_priority
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - download_priority_t
    - downloading
    - prev
    - end
    - filtered
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - libtorrent::piece_picker::have
    - priority
    - next
    - static_cast<std::uint8_t>
    - end_index
    - piece_index_t
    - size
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::update_piece_state
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::set_piece_priority(piece_index_t const index\n\t\t,
      download_priority_t const new_piece_priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/piece_picker.cpp:1904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1902
    functionDepth: 0
    functionLinenumber: 1902
    functionLinenumberEnd: 1905
    functionName: libtorrent::piece_picker::piece_priority
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 4
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t piece_picker::piece_priority(piece_index_t const
      index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:1909,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1909,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1910,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:1911,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:1912,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/piece_picker.cpp:1914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<download_priority_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1907
    functionDepth: 2
    functionLinenumber: 1907
    functionLinenumberEnd: 1916
    functionName: libtorrent::piece_picker::piece_priorities
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - download_priority_t
    - begin
    - end
    - libtorrent::piece_picker::resize
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::piece_priorities(std::vector<download_priority_t>&
      pieces) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/piece_picker.cpp:1923,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/piece_picker.cpp:1924,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/piece_picker.cpp:1924,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' dst'
    - ' src'
    - num_blocks
    argTypes:
    - std::vector<piece_block>
    - std::vector<piece_block>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1929
    functionName: libtorrent::append_blocks
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::size
    - erase
    - libtorrent::insert
    - libtorrent::empty
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: int
    signature: "int append_blocks(std::vector<piece_block>& dst, std::vector<piece_block>&
      src\n\t\t\t, int const num_blocks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/piece_picker.cpp:1923,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/piece_picker.cpp:1924,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/piece_picker.cpp:1924,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1926,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/piece_picker.cpp:1927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' dst'
    - ' src'
    - num_blocks
    argTypes:
    - std::vector<piece_block>
    - std::vector<piece_block>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1929
    functionName: libtorrent::append_blocks
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::size
    - erase
    - libtorrent::insert
    - libtorrent::empty
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: int
    signature: "int append_blocks(std::vector<piece_block>& dst, std::vector<piece_block>&
      src\n\t\t\t, int const num_blocks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - downloading_piece*
    - downloading_piece*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1947
    functionName: libtorrent::piece_picker::partial_compare_rarest_first
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::partial_compare_rarest_first(downloading_piece
      const* lhs\n\t\t, downloading_piece const* rhs) const"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:1986,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:1997,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:1999,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2018,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2019,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2019,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2019,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2021,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:2021,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2052,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2054,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2056,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2056,1
    - Dst: std::sort
      Src: /src/libtorrent/src/piece_picker.cpp:2072,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2072,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2072,1
    - Dst: std::bind
      Src: /src/libtorrent/src/piece_picker.cpp:2073,1
    - Dst: libtorrent::piece_picker::add_blocks_downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2081,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/piece_picker.cpp:2085,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/piece_picker.cpp:2086,1
    - Dst: append_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2090,1
    - Dst: append_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2094,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:2099,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2103,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2104,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2108,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/piece_picker.cpp:2115,1
    - Dst: libtorrent::piece_picker::update_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:2122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2123,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2125,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2126,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2126,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2128,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2132,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:2142,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2144,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2146,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2150,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2162,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2164,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2168,1
    - Dst: libtorrent::piece_picker::update_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:2179,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2180,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2188,1
    - Dst: libtorrent::piece_picker::priority_begin
      Src: /src/libtorrent/src/piece_picker.cpp:2190,1
    - Dst: libtorrent::piece_picker::priority_end
      Src: /src/libtorrent/src/piece_picker.cpp:2191,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:2192,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2194,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2196,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2200,1
    - Dst: libtorrent::piece_picker::extent_for
      Src: /src/libtorrent/src/piece_picker.cpp:2221,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2223,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2224,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2228,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:2236,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2236,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:2243,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2243,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2248,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2250,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2254,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2268,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:2268,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/piece_picker.cpp:2268,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2268,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2275,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:2275,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2277,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2279,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2279,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2286,1
    - Dst: libtorrent::piece_picker::can_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2286,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2287,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2287,1
    - Dst: libtorrent::piece_picker::expand_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2289,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:2293,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/piece_picker.cpp:2300,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2302,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2302,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2303,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:2303,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2304,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2311,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2311,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2312,1
    - Dst: auto::end
      Src: /src/libtorrent/src/piece_picker.cpp:2319,1
    - Dst: libtorrent::piece_picker::add_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2325,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2333,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2333,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2343,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2344,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2345,1
    - Dst: append_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2349,1
    - Dst: append_blocks
      Src: /src/libtorrent/src/piece_picker.cpp:2353,1
    - Dst: std::min
      Src: /src/libtorrent/src/piece_picker.cpp:2375,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2376,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2377,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2387,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2388,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2398,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2398,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2401,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2401,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2408,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2408,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2417,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2429,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2429,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/piece_picker.cpp:2437,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:2438,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/piece_picker.cpp:2438,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2440,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2441,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2444,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2446,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2449,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2450,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2453,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/piece_picker.cpp:2456,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:2459,1
    - Dst: random
      Src: /src/libtorrent/src/piece_picker.cpp:2459,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/piece_picker.cpp:2459,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/piece_picker.cpp:2459,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:2477,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2481,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2484,1
    - Dst: std::find
      Src: /src/libtorrent/src/piece_picker.cpp:2486,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2486,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2486,1
    - Dst: piece_block
      Src: /src/libtorrent/src/piece_picker.cpp:2487,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2488,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2490,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2493,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2494,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2496,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2500,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2501,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2501,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2502,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2504,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/piece_picker.cpp:2505,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/piece_picker.cpp:2508,1
    - Dst: empty
      Src: /src/libtorrent/src/piece_picker.cpp:2512,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2514,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2515,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:2518,1
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2519,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2521,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2524,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2526,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2526,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2527,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 286
    argCount: 9
    argNames:
    - ' pieces'
    - ' interesting_blocks'
    - num_blocks
    - prefer_contiguous_blocks
    - peer
    - options
    - ' suggested_pieces'
    - num_peers
    - ' pc'
    argTypes:
    - typed_bitfield<piece_index_t>
    - std::vector<piece_block>
    - int
    - int
    - torrent_peer*
    - picker_options_t
    - std::vector<piece_index_t>
    - int
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 1978
    functionDepth: 3
    functionLinenumber: 1978
    functionLinenumberEnd: 2532
    functionName: libtorrent::piece_picker::pick_pieces
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - append_blocks
    - std::vector::size
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::priority_end
    - begin
    - downloading
    - aux::numeric_cast<std::uint32_t>
    - std::vector::emplace_back
    - empty
    - libtorrent::piece_picker::expand_piece
    - libtorrent::piece_picker::verify_pick
    - libtorrent::piece_picker::priority_begin
    - std::uint32_t
    - libtorrent::piece_picker::blocks_per_piece
    - std::min
    - TORRENT_ASSERT_FAIL
    - emplace_back
    - libtorrent::piece_picker::update_pieces
    - push_back
    - prev
    - end
    - std::find
    - filtered
    - libtorrent::piece_picker::add_blocks
    - piece_block
    - inc_stats_counter
    - libtorrent::piece_picker::can_pick
    - contains
    - libtorrent::piece_picker::extent_for
    - libtorrent::piece_picker::have_piece
    - erase
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - priority
    - libtorrent::piece_picker::piece_priority
    - libtorrent::piece_picker::add_blocks_downloading
    - end_index
    - piece_index_t
    - size
    - random
    - std::bind
    - std::vector::push_back
    - std::vector::empty
    - libtorrent::piece_picker::is_piece_free
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - auto::end
    - libtorrent::piece_picker::blocks_for_piece
    - std::fprintf
    - std::sort
    linkageType: ''
    returnType: picker_flags_t
    signature: "picker_flags_t piece_picker::pick_pieces(typed_bitfield<piece_index_t>
      const& pieces\n\t\t, std::vector<piece_block>& interesting_blocks, int num_blocks\n\t\t,
      int prefer_contiguous_blocks, torrent_peer* peer\n\t\t, picker_options_t options,
      std::vector<piece_index_t> const& suggested_pieces\n\t\t, int num_peers\n\t\t,
      counters& pc\n\t\t) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2536,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2536,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2537,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2537,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2534
    functionDepth: 3
    functionLinenumber: 2534
    functionLinenumberEnd: 2541
    functionName: libtorrent::piece_picker::is_piece_flushed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_piece_flushed(piece_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2545,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2545,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2546,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2546,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:2547,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2547,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2543
    functionDepth: 1
    functionLinenumber: 2543
    functionLinenumberEnd: 2551
    functionName: libtorrent::piece_picker::blocks_in_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 20
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_per_piece
    - next
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: int
    signature: int piece_picker::blocks_in_piece(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2557,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - piece
    - ' bitmask'
    argTypes:
    - piece_index_t
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2553
    functionDepth: 3
    functionLinenumber: 2553
    functionLinenumberEnd: 2559
    functionName: libtorrent::piece_picker::is_piece_free
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::piece_picker::have
    - filtered
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::is_piece_free(piece_index_t const piece\n\t\t,
      typed_bitfield<piece_index_t> const& bitmask) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2565,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2568,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - piece
    - ' bitmask'
    argTypes:
    - piece_index_t
    - typed_bitfield<piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2561
    functionDepth: 3
    functionLinenumber: 2561
    functionLinenumberEnd: 2570
    functionName: libtorrent::piece_picker::can_pick
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - downloading
    - libtorrent::piece_picker::have
    - filtered
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::can_pick(piece_index_t const piece\n\t\t, typed_bitfield<piece_index_t>
      const& bitmask) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2577,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/piece_picker.cpp:2577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2573
    functionDepth: 1
    functionLinenumber: 2573
    functionLinenumberEnd: 2579
    functionName: libtorrent::piece_picker::check_peers
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<torrent_peer*>
    linkageType: ''
    returnType: void
    signature: void piece_picker::check_peers()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - peer
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2588
    functionName: libtorrent::piece_picker::clear_peer
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_picker::clear_peer(torrent_peer* peer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2606,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2609,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2610,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/piece_picker.cpp:2637,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - ' p'
    - num_blocks_in_piece
    - peer
    argTypes:
    - piece_picker::downloading_piece
    - int
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2596
    functionDepth: 1
    functionLinenumber: 2596
    functionLinenumberEnd: 2639
    functionName: libtorrent::piece_picker::requested_from
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - std::make_tuple
    - libtorrent::piece_picker::blocks_for_piece
    linkageType: ''
    returnType: std::tuple<bool, bool, int, int>
    signature: "std::tuple<bool, bool, int, int> piece_picker::requested_from(\n\t\tpiece_picker::downloading_piece
      const& p\n\t\t, int const num_blocks_in_piece, torrent_peer* peer) const"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2650,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2650,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:2653,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2655,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2660,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:2660,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2668,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2668,1
    - Dst: libtorrent::piece_picker::add_blocks_downloading
      Src: /src/libtorrent/src/piece_picker.cpp:2670,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2676,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2676,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:2676,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2682,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2685,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2685,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2686,1
    - Dst: libtorrent::piece_picker::expand_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2692,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:2696,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:2703,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2705,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:2705,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2706,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2706,1
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:2706,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2707,1
    - Dst: libtorrent::piece_picker::is_piece_free
      Src: /src/libtorrent/src/piece_picker.cpp:2707,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2710,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2710,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2711,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2720,1
    - Dst: std::max
      Src: /src/libtorrent/src/piece_picker.cpp:2722,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 10
    argNames:
    - piece
    - ' pieces'
    - ' interesting_blocks'
    - ' backup_blocks'
    - ' backup_blocks2'
    - num_blocks
    - prefer_contiguous_blocks
    - peer
    - ' ignore'
    - options
    argTypes:
    - piece_index_t
    - typed_bitfield<piece_index_t>
    - std::vector<piece_block>
    - std::vector<piece_block>
    - std::vector<piece_block>
    - int
    - int
    - torrent_peer*
    - std::vector<piece_index_t>
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2641
    functionDepth: 3
    functionLinenumber: 2641
    functionLinenumberEnd: 2723
    functionName: libtorrent::piece_picker::add_blocks
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::is_piece_free
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - block_size
    - libtorrent::piece_picker::expand_piece
    - libtorrent::piece_picker::verify_pick
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - std::max
    - priority
    - libtorrent::piece_picker::add_blocks_downloading
    - contains
    - emplace_back
    linkageType: ''
    returnType: int
    signature: "int piece_picker::add_blocks(piece_index_t piece\n\t\t, typed_bitfield<piece_index_t>
      const& pieces\n\t\t, std::vector<piece_block>& interesting_blocks\n\t\t, std::vector<piece_block>&
      backup_blocks\n\t\t, std::vector<piece_block>& backup_blocks2\n\t\t, int num_blocks,
      int prefer_contiguous_blocks\n\t\t, torrent_peer* peer, std::vector<piece_index_t>&
      ignore\n\t\t, picker_options_t const options) const"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2734,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2734,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2740,1
    - Dst: std::tie
      Src: /src/libtorrent/src/piece_picker.cpp:2751,1
    - Dst: libtorrent::piece_picker::requested_from
      Src: /src/libtorrent/src/piece_picker.cpp:2752,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2762,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2773,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2781,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2783,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2793,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/piece_picker.cpp:2797,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:2813,1
    - Dst: libtorrent::piece_picker::verify_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2816,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 9
    argNames:
    - ' dp'
    - ' pieces'
    - ' interesting_blocks'
    - ' backup_blocks'
    - ' backup_blocks2'
    - num_blocks
    - prefer_contiguous_blocks
    - peer
    - options
    argTypes:
    - downloading_piece
    - typed_bitfield<piece_index_t>
    - std::vector<piece_block>
    - std::vector<piece_block>
    - std::vector<piece_block>
    - int
    - int
    - torrent_peer*
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2725
    functionDepth: 2
    functionLinenumber: 2725
    functionLinenumberEnd: 2819
    functionName: libtorrent::piece_picker::add_blocks_downloading
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - std::tie
    - libtorrent::piece_picker::verify_pick
    - filtered
    - TORRENT_ASSERT
    - libtorrent::piece_picker::requested_from
    - libtorrent::piece_picker::blocks_for_piece
    - emplace_back
    - size
    linkageType: ''
    returnType: int
    signature: "int piece_picker::add_blocks_downloading(downloading_piece const&
      dp\n\t\t, typed_bitfield<piece_index_t> const& pieces\n\t\t, std::vector<piece_block>&
      interesting_blocks\n\t\t, std::vector<piece_block>& backup_blocks\n\t\t, std::vector<piece_block>&
      backup_blocks2\n\t\t, int num_blocks, int prefer_contiguous_blocks\n\t\t, torrent_peer*
      peer, picker_options_t const options) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:2825,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2829,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2837,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2837,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2837,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2841,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2841,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2842,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2842,1
    - Dst: libtorrent::piece_picker::can_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2845,1
    - Dst: prev
      Src: /src/libtorrent/src/piece_picker.cpp:2845,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2848,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2848,1
    - Dst: next
      Src: /src/libtorrent/src/piece_picker.cpp:2849,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2853,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2853,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2857,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:2857,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2859,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2859,1
    - Dst: libtorrent::piece_picker::can_pick
      Src: /src/libtorrent/src/piece_picker.cpp:2860,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - piece
    - contiguous_blocks
    - ' have'
    - options
    argTypes:
    - piece_index_t
    - int
    - typed_bitfield<piece_index_t>
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2821
    functionDepth: 2
    functionLinenumber: 2821
    functionLinenumberEnd: 2863
    functionName: libtorrent::piece_picker::expand_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - prev
    - libtorrent::piece_picker::blocks_per_piece
    - TORRENT_ASSERT
    - libtorrent::piece_picker::can_pick
    - next
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: "index_range<piece_index_t> piece_picker::expand_piece(piece_index_t
      const piece, int const contiguous_blocks\n\t\t, typed_bitfield<piece_index_t>
      const& have, picker_options_t const options) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2870,1
    - Dst: categories
      Src: /src/libtorrent/src/piece_picker.cpp:2874,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2875,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2875,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2875,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2879,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2880,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2880,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2881,1
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2881,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2882,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2884,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2887,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2889,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2865
    functionDepth: 2
    functionLinenumber: 2865
    functionLinenumberEnd: 2896
    functionName: libtorrent::piece_picker::is_piece_finished
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_per_piece
    - libtorrent::piece_picker::blocks_for_piece
    - categories
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_piece_finished(piece_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2901,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2904,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2905,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2898
    functionDepth: 2
    functionLinenumber: 2898
    functionLinenumberEnd: 2907
    functionName: libtorrent::piece_picker::is_hashing
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_hashing(piece_index_t const piece) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2911,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:2911,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2912,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:2912,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:2915,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:2917,1
    - Dst: categories
      Src: /src/libtorrent/src/piece_picker.cpp:2921,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2922,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2922,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2922,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2926,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2927,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2909
    functionDepth: 3
    functionLinenumber: 2909
    functionLinenumberEnd: 2929
    functionName: libtorrent::piece_picker::have_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - end_index
    - piece_index_t
    - categories
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::have_piece(piece_index_t const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2934,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/piece_picker.cpp:2941,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:2942,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2942,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2943,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:2945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - queue
    - index
    argTypes:
    - download_queue_t
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2931
    functionDepth: 1
    functionLinenumber: 2931
    functionLinenumberEnd: 2946
    functionName: libtorrent::piece_picker::find_dl_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 42
    functionsReached:
    - TORRENT_ASSERT
    - end
    - std::lower_bound
    - begin
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>::iterator
    signature: "std::vector<piece_picker::downloading_piece>::iterator piece_picker::find_dl_piece(\n\t\tdownload_queue_t
      const queue, piece_index_t const index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<piece_picker*>
      Src: /src/libtorrent/src/piece_picker.cpp:2951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - queue
    - index
    argTypes:
    - download_queue_t
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 2952
    functionName: libtorrent::piece_picker::find_dl_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 42
    functionsReached:
    - const_cast<piece_picker*>
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>::const_iterator
    signature: "std::vector<piece_picker::downloading_piece>::const_iterator piece_picker::find_dl_piece(\n\t\tdownload_queue_t
      const queue, piece_index_t const index) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:2962,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:2964,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2965,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:2971,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:2981,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2987,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:2988,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:2994,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3006,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3006,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3006,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3011,1
    - Dst: erase
      Src: /src/libtorrent/src/piece_picker.cpp:3011,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3014,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3014,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:3015,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/piece_picker.cpp:3024,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3024,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:3024,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3025,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3025,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3026,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3026,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3026,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3028,1
    - Dst: insert
      Src: /src/libtorrent/src/piece_picker.cpp:3028,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3032,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:3032,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3033,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - dp
    argTypes:
    - std::vector<piece_picker::downloading_piece>::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 2954
    functionDepth: 3
    functionLinenumber: 2954
    functionLinenumberEnd: 3037
    functionName: libtorrent::piece_picker::update_piece_state
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 12
    functionsReached:
    - state
    - libtorrent::piece_picker::blocks_in_piece
    - begin
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - erase
    - end
    - filtered
    - insert
    - TORRENT_ASSERT
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::update
    - reverse
    - priority
    - std::lower_bound
    - size
    linkageType: ''
    returnType: std::vector<piece_picker::downloading_piece>::iterator
    signature: "std::vector<piece_picker::downloading_piece>::iterator piece_picker::update_piece_state(\n\t\tstd::vector<piece_picker::downloading_piece>::iterator
      dp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3041,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3042,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3043,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3043,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3045,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3047,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3049,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3049,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3051,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3039
    functionDepth: 2
    functionLinenumber: 3039
    functionLinenumberEnd: 3054
    functionName: libtorrent::piece_picker::is_requested
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_requested(piece_block const block) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3058,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3059,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3060,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3060,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3064,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3066,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3067,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3067,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3056
    functionDepth: 2
    functionLinenumber: 3056
    functionLinenumberEnd: 3073
    functionName: libtorrent::piece_picker::is_downloaded
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_downloaded(piece_block const block) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3077,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3078,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3079,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3079,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3083,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3085,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3086,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3086,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3088,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3075
    functionDepth: 2
    functionLinenumber: 3075
    functionLinenumberEnd: 3091
    functionName: libtorrent::piece_picker::is_finished
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::is_finished(piece_block const block) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3095,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:3096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3093
    functionDepth: 0
    functionLinenumber: 3093
    functionLinenumberEnd: 3097
    functionName: libtorrent::piece_picker::extent_for
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::piece_picker::blocks_per_piece
    - static_cast<int>
    linkageType: ''
    returnType: piece_extent_t
    signature: piece_extent_t piece_picker::extent_for(piece_index_t const p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3101,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:3102,1
    - Dst: std::min
      Src: /src/libtorrent/src/piece_picker.cpp:3103,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - piece_extent_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3099
    functionDepth: 0
    functionLinenumber: 3099
    functionLinenumberEnd: 3105
    functionName: libtorrent::piece_picker::extent_for
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::piece_picker::blocks_per_piece
    - static_cast<int>
    - num_pieces
    - std::min
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: index_range<piece_index_t> piece_picker::extent_for(piece_extent_t
      const e) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::blocks_per_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3111,1
    - Dst: libtorrent::piece_picker::extent_for
      Src: /src/libtorrent/src/piece_picker.cpp:3113,1
    - Dst: contains
      Src: /src/libtorrent/src/piece_picker.cpp:3116,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:3119,1
    - Dst: libtorrent::piece_picker::extent_for
      Src: /src/libtorrent/src/piece_picker.cpp:3126,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:3130,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:3137,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3145,1
    - Dst: push_back
      Src: /src/libtorrent/src/piece_picker.cpp:3146,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3107
    functionDepth: 3
    functionLinenumber: 3107
    functionLinenumberEnd: 3152
    functionName: libtorrent::piece_picker::record_downloading_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - libtorrent::piece_picker::extent_for
    - libtorrent::piece_picker::blocks_per_piece
    - libtorrent::piece_picker::have
    - libtorrent::piece_picker::piece_priority
    - contains
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::record_downloading_piece(piece_index_t const p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3166,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3167,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3168,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3168,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3169,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:3169,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3172,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3178,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3178,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:3181,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3185,1
    - Dst: libtorrent::piece_picker::record_downloading_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3196,1
    - Dst: libtorrent::piece_picker::add_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3198,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3201,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3209,1
    - Dst: peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:3209,1
    - Dst: peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:3210,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3216,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3223,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3223,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3224,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3224,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3224,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3225,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3227,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:3234,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3239,1
    - Dst: make_reverse
      Src: /src/libtorrent/src/piece_picker.cpp:3240,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3244,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3252,1
    - Dst: reverse
      Src: /src/libtorrent/src/piece_picker.cpp:3258,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3260,1
    - Dst: unreverse
      Src: /src/libtorrent/src/piece_picker.cpp:3262,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3267,1
    - Dst: peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:3267,1
    - Dst: peers::insert
      Src: /src/libtorrent/src/piece_picker.cpp:3268,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 3
    argNames:
    - block
    - peer
    - options
    argTypes:
    - piece_block
    - torrent_peer*
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3156
    functionDepth: 4
    functionLinenumber: 3156
    functionLinenumberEnd: 3272
    functionName: libtorrent::piece_picker::mark_as_downloading
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::add_download_piece
    - libtorrent::piece_picker::record_downloading_piece
    - peers::count
    - end
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - reverse
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have
    - priority
    - unreverse
    - make_reverse
    - end_index
    - size
    - state
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - peers::insert
    - libtorrent::piece_picker::update_piece_state
    linkageType: ''
    returnType: bool
    signature: "bool piece_picker::mark_as_downloading(piece_block const block\n\t\t,
      torrent_peer* peer, picker_options_t const options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3276,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3277,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3278,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3279,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3279,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3282,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3284,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3284,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3285,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3285,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3285,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3287,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3289,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3290,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3290,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3274
    functionDepth: 2
    functionLinenumber: 3274
    functionLinenumberEnd: 3293
    functionName: libtorrent::piece_picker::num_peers
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - downloading
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - end_index
    - size
    linkageType: ''
    returnType: int
    signature: int piece_picker::num_peers(piece_block const block) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3297,1
    - Dst: libtorrent::piece_picker::resize
      Src: /src/libtorrent/src/piece_picker.cpp:3300,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3300,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:3301,1
    - Dst: begin
      Src: /src/libtorrent/src/piece_picker.cpp:3302,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' avail'
    argTypes:
    - aux::vector<int, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3304
      start: 3295
    functionDepth: 2
    functionLinenumber: 3295
    functionLinenumberEnd: 3304
    functionName: libtorrent::piece_picker::get_availability
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::resize
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::get_availability(aux::vector<int, piece_index_t>&
      avail) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3306
    functionDepth: 0
    functionLinenumber: 3306
    functionLinenumberEnd: 3309
    functionName: libtorrent::piece_picker::get_availability
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int piece_picker::get_availability(piece_index_t const piece) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3321,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/piece_picker.cpp:3321,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3323,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3324,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3325,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3326,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3326,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3331,1
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3334,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3336,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3337,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3337,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:3339,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3342,1
    - Dst: libtorrent::piece_picker::add_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3344,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3345,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3347,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3348,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3348,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3349,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3351,1
    - Dst: peers::clear
      Src: /src/libtorrent/src/piece_picker.cpp:3359,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3363,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3367,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3367,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3368,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3368,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3368,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3369,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3373,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3373,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3374,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3384,1
    - Dst: peers::clear
      Src: /src/libtorrent/src/piece_picker.cpp:3390,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3393,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - block
    - peer
    argTypes:
    - piece_block
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3311
    functionDepth: 4
    functionLinenumber: 3311
    functionLinenumberEnd: 3396
    functionName: libtorrent::piece_picker::mark_as_writing
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - peers::clear
    - state
    - libtorrent::piece_picker::blocks_in_piece
    - downloading
    - libtorrent::piece_picker::have_piece
    - libtorrent::piece_picker::update
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::add_download_piece
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - TORRENT_ASSERT
    - priority
    - static_cast<torrent_peer*>
    - libtorrent::piece_picker::update_piece_state
    - end_index
    - size
    linkageType: ''
    returnType: bool
    signature: bool piece_picker::mark_as_writing(piece_block const block, torrent_peer*
      peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3401,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3404,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3404,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3405,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3407,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3407,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3408,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3408,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3408,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3418
      start: 3398
    functionDepth: 2
    functionLinenumber: 3398
    functionLinenumberEnd: 3418
    functionName: libtorrent::piece_picker::started_hash_job
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - downloading
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: void
    signature: void piece_picker::started_hash_job(piece_index_t piece)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3422,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3423,1
    - Dst: end_index
      Src: /src/libtorrent/src/piece_picker.cpp:3423,1
    - Dst: downloading
      Src: /src/libtorrent/src/piece_picker.cpp:3428,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3429,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3429,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3430,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3430,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3430,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3420
    functionDepth: 2
    functionLinenumber: 3420
    functionLinenumberEnd: 3441
    functionName: libtorrent::piece_picker::completed_hash_job
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - downloading
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: void
    signature: void piece_picker::completed_hash_job(piece_index_t piece)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3452,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3459,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3461,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3462,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3464,1
    - Dst: libtorrent::piece_picker::account_lost
      Src: /src/libtorrent/src/piece_picker.cpp:3471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3476
      start: 3447
    functionDepth: 2
    functionLinenumber: 3447
    functionLinenumberEnd: 3476
    functionName: libtorrent::piece_picker::lock_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - libtorrent::piece_picker::account_lost
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::lock_piece(piece_index_t const piece)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3488,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3495,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3497,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3498,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3500,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3503,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3503,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3504,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3505,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3506,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3508,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3509,1
    - Dst: libtorrent::piece_picker::account_lost
      Src: /src/libtorrent/src/piece_picker.cpp:3522,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3530,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3535,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3536,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3537,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:3541,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3542,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3483
    functionDepth: 4
    functionLinenumber: 3483
    functionLinenumberEnd: 3544
    functionName: libtorrent::piece_picker::write_failed
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - priority
    - libtorrent::piece_picker::update_piece_state
    - size
    - libtorrent::piece_picker::account_lost
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::write_failed(piece_block const block)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3555,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3557,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3560,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3562,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3562,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3564,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3564,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3564,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3565,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3570,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3572,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3579,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3583,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3584,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3585,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:3589,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3590,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3595,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - block
    - peer
    argTypes:
    - piece_block
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3546
    functionDepth: 4
    functionLinenumber: 3546
    functionLinenumberEnd: 3601
    functionName: libtorrent::piece_picker::mark_as_canceled
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - priority
    - libtorrent::piece_picker::update_piece_state
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::mark_as_canceled(piece_block const block, torrent_peer*
      peer)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3606,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3614,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/piece_picker.cpp:3614,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3615,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3619,1
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3622,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3628,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3629,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3629,1
    - Dst: state
      Src: /src/libtorrent/src/piece_picker.cpp:3631,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3632,1
    - Dst: libtorrent::piece_picker::add_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3634,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3635,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3637,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3638,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3638,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3639,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3643,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3644,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3648,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3656,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3656,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3657,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3657,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3657,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3658,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3660,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3664,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3676,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3682,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3686,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3688,1
    - Dst: libtorrent::piece_picker::piece_flushed
      Src: /src/libtorrent/src/piece_picker.cpp:3692,1
    - Dst: libtorrent::piece_picker::check_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3696,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - block
    - peer
    argTypes:
    - piece_block
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3603
    functionDepth: 4
    functionLinenumber: 3603
    functionLinenumberEnd: 3698
    functionName: libtorrent::piece_picker::mark_as_finished
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - state
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::have_piece
    - libtorrent::piece_picker::update
    - download_queue
    - libtorrent::piece_picker::find_dl_piece
    - end
    - libtorrent::piece_picker::add_download_piece
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - TORRENT_ASSERT
    - libtorrent::piece_picker::piece_flushed
    - priority
    - static_cast<torrent_peer*>
    - libtorrent::piece_picker::update_piece_state
    - size
    - libtorrent::piece_picker::check_piece_state
    linkageType: ''
    returnType: void
    signature: void piece_picker::mark_as_finished(piece_block const block, torrent_peer*
      peer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3702,1
    - Dst: libtorrent::piece_picker::piece_size
      Src: /src/libtorrent/src/piece_picker.cpp:3702,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3703,1
    - Dst: find
      Src: /src/libtorrent/src/piece_picker.cpp:3703,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3703,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3706,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3707,1
    - Dst: libtorrent::piece_picker::piece_size
      Src: /src/libtorrent/src/piece_picker.cpp:3707,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3711,1
    - Dst: count
      Src: /src/libtorrent/src/piece_picker.cpp:3711,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:3715,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:3718,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:3721,1
    - Dst: libtorrent::piece_picker::piece_size
      Src: /src/libtorrent/src/piece_picker.cpp:3728,1
    - Dst: libtorrent::piece_picker::piece_flushed
      Src: /src/libtorrent/src/piece_picker.cpp:3731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - piece
    - bytes
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3700
    functionDepth: 3
    functionLinenumber: 3700
    functionLinenumberEnd: 3733
    functionName: libtorrent::piece_picker::set_pad_bytes
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - count
    - libtorrent::piece_picker::piece_size
    - end
    - find
    - filtered
    - TORRENT_ASSERT
    - libtorrent::piece_picker::piece_flushed
    - libtorrent::piece_picker::have
    linkageType: ''
    returnType: void
    signature: void piece_picker::set_pad_bytes(piece_index_t const piece, int const
      bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/piece_picker.cpp:3737,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3735
    functionDepth: 0
    functionLinenumber: 3735
    functionLinenumberEnd: 3740
    functionName: libtorrent::piece_picker::pad_bytes_in_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 10
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int piece_picker::pad_bytes_in_piece(piece_index_t const index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3744,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/piece_picker.cpp:3745,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/piece_picker.cpp:3749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3752
      start: 3742
    functionDepth: 0
    functionLinenumber: 3742
    functionLinenumberEnd: 3752
    functionName: libtorrent::piece_picker::piece_size
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - num_pieces
    - std::int64_t
    linkageType: ''
    returnType: int
    signature: int piece_picker::piece_size(piece_index_t const p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/libtorrent/src/piece_picker.cpp:3756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3754
    functionDepth: 1
    functionLinenumber: 3754
    functionLinenumberEnd: 3760
    functionName: libtorrent::piece_picker::blocks_per_piece
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 24
    functionsReached:
    - TORRENT_ASSERT
    - block_size
    linkageType: ''
    returnType: int
    signature: int piece_picker::blocks_per_piece() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3765,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3766,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/piece_picker.cpp:3767,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/piece_picker.cpp:3767,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/piece_picker.cpp:3771,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/piece_picker.cpp:3771,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3775,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3776,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3776,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3777,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3780,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/piece_picker.cpp:3782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3762
    functionDepth: 2
    functionLinenumber: 3762
    functionLinenumberEnd: 3785
    functionName: libtorrent::piece_picker::get_downloaders
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::blocks_in_piece
    - std::vector::push_back
    - aux::numeric_cast<std::size_t>
    - std::vector::resize
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - TORRENT_ASSERT
    - std::vector::reserve
    - libtorrent::piece_picker::blocks_for_piece
    - std::size_t
    linkageType: ''
    returnType: std::vector<torrent_peer*>
    signature: std::vector<torrent_peer*> piece_picker::get_downloaders(piece_index_t
      const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3789,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3792,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3794,1
    - Dst: libtorrent::piece_picker::blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3795,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3796,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3801,1
    - Dst: static_cast<torrent_peer*>
      Src: /src/libtorrent/src/piece_picker.cpp:3801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - block
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3803
      start: 3787
    functionDepth: 2
    functionLinenumber: 3787
    functionLinenumberEnd: 3803
    functionName: libtorrent::piece_picker::get_downloader
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - TORRENT_ASSERT
    - libtorrent::piece_picker::blocks_for_piece
    - static_cast<torrent_peer*>
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * piece_picker::get_downloader(piece_block const block)
      const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3816,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3818,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3819,1
    - Dst: download_queue
      Src: /src/libtorrent/src/piece_picker.cpp:3821,1
    - Dst: libtorrent::piece_picker::find_dl_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3824,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3825,1
    - Dst: end
      Src: /src/libtorrent/src/piece_picker.cpp:3825,1
    - Dst: libtorrent::piece_picker::mutable_blocks_for_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3827,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3829,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3830,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3835,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3838,1
    - Dst: peers::count
      Src: /src/libtorrent/src/piece_picker.cpp:3838,1
    - Dst: peers::erase
      Src: /src/libtorrent/src/piece_picker.cpp:3839,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3841,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3844,1
    - Dst: peers::size
      Src: /src/libtorrent/src/piece_picker.cpp:3844,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3846,1
    - Dst: libtorrent::piece_picker::blocks_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3846,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3856,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3863,1
    - Dst: size
      Src: /src/libtorrent/src/piece_picker.cpp:3863,1
    - Dst: libtorrent::piece_picker::erase_download_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3865,1
    - Dst: priority
      Src: /src/libtorrent/src/piece_picker.cpp:3866,1
    - Dst: libtorrent::piece_picker::add
      Src: /src/libtorrent/src/piece_picker.cpp:3869,1
    - Dst: libtorrent::piece_picker::update
      Src: /src/libtorrent/src/piece_picker.cpp:3870,1
    - Dst: libtorrent::piece_picker::update_piece_state
      Src: /src/libtorrent/src/piece_picker.cpp:3875,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - block
    - peer
    argTypes:
    - piece_block
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3876
      start: 3807
    functionDepth: 4
    functionLinenumber: 3807
    functionLinenumberEnd: 3876
    functionName: libtorrent::piece_picker::abort_download
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::erase_download_piece
    - libtorrent::piece_picker::blocks_in_piece
    - libtorrent::piece_picker::find_dl_piece
    - download_queue
    - end
    - libtorrent::piece_picker::add
    - libtorrent::piece_picker::mutable_blocks_for_piece
    - libtorrent::piece_picker::update
    - TORRENT_ASSERT
    - libtorrent::piece_picker::update_piece_state
    - peers::erase
    - peers::size
    - priority
    - peers::count
    - size
    linkageType: ''
    returnType: void
    signature: void piece_picker::abort_download(piece_block const block, torrent_peer*
      peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:3880,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:3880,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3880,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3881,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:3882,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3884,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3885,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3886,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3888
      start: 3878
    functionDepth: 1
    functionLinenumber: 3878
    functionLinenumberEnd: 3888
    functionName: libtorrent::piece_picker::want
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - num_pad_bytes
    - TORRENT_ASSERT
    - num_pieces
    - libtorrent::piece_picker::piece_priority
    - piece_index_t
    linkageType: ''
    returnType: piece_count
    signature: piece_count piece_picker::want() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3892,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:3892,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3892,1
    - Dst: libtorrent::piece_picker::piece_priority
      Src: /src/libtorrent/src/piece_picker.cpp:3893,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:3893,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3893,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3897,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3898,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3899,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3890
    functionDepth: 2
    functionLinenumber: 3890
    functionLinenumberEnd: 3901
    functionName: libtorrent::piece_picker::have_want
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_picker::have_piece
    - TORRENT_ASSERT
    - num_pieces
    - libtorrent::piece_picker::piece_priority
    - piece_index_t
    linkageType: ''
    returnType: piece_count
    signature: piece_count piece_picker::have_want() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_picker::have_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3905,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/piece_picker.cpp:3905,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3905,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3909,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3910,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3911,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3911,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3903
    functionDepth: 2
    functionLinenumber: 3903
    functionLinenumberEnd: 3913
    functionName: libtorrent::piece_picker::have
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 35
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::have_piece
    - num_pieces
    - piece_index_t
    linkageType: ''
    returnType: piece_count
    signature: piece_count piece_picker::have() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3917,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:3918,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3920,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3921,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3922,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/piece_picker.cpp:3922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3915
    functionDepth: 1
    functionLinenumber: 3915
    functionLinenumberEnd: 3924
    functionName: libtorrent::piece_picker::all_pieces
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 0
    functionsReached:
    - num_pad_bytes
    - num_pieces
    - TORRENT_ASSERT
    linkageType: ''
    returnType: piece_count
    signature: piece_count piece_picker::all_pieces() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3930,1
    - Dst: libtorrent::piece_picker::have
      Src: /src/libtorrent/src/piece_picker.cpp:3930,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3931,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:3932,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3934,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3936,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3943,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:3943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3926
    functionDepth: 3
    functionLinenumber: 3926
    functionLinenumberEnd: 3944
    functionName: libtorrent::piece_picker::account_have
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 4
    functionsReached:
    - num_pad_bytes
    - filtered
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - libtorrent::piece_picker::have
    linkageType: ''
    returnType: void
    signature: void piece_picker::account_have(piece_index_t const index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3948,1
    - Dst: libtorrent::piece_picker::pad_bytes_in_piece
      Src: /src/libtorrent/src/piece_picker.cpp:3951,1
    - Dst: filtered
      Src: /src/libtorrent/src/piece_picker.cpp:3952,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3955,1
    - Dst: num_pad_bytes
      Src: /src/libtorrent/src/piece_picker.cpp:3955,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3958,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3960,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/piece_picker.cpp:3963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3946
    functionDepth: 1
    functionLinenumber: 3946
    functionLinenumberEnd: 3965
    functionName: libtorrent::piece_picker::account_lost
    functionSourceFile: /src/libtorrent/src/piece_picker.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::piece_picker::pad_bytes_in_piece
    - num_pad_bytes
    - filtered
    linkageType: ''
    returnType: void
    signature: void piece_picker::account_lost(piece_index_t const index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/libtorrent/src/ssl.cpp:54,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: ERR_get_error
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: BIO_new_mem_buf
      Src: /src/libtorrent/src/ssl.cpp:62,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ssl.cpp:63,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/ssl.cpp:63,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/ssl.cpp:64,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/libtorrent/src/ssl.cpp:67,1
    - Dst: BIO_free
      Src: /src/libtorrent/src/ssl.cpp:68,1
    - Dst: X509_STORE_free
      Src: /src/libtorrent/src/ssl.cpp:72,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: ERR_get_error
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: X509_STORE_add_cert
      Src: /src/libtorrent/src/ssl.cpp:78,1
    - Dst: X509_free
      Src: /src/libtorrent/src/ssl.cpp:79,1
    - Dst: SSL_CTX_set_cert_store
      Src: /src/libtorrent/src/ssl.cpp:82,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: unsigned
      Src: /src/libtorrent/src/ssl.cpp:87,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/ssl.cpp:87,1
    - Dst: gnutls_certificate_set_x509_trust_mem
      Src: /src/libtorrent/src/ssl.cpp:90,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:92,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - nc
    - pem
    - ec
    argTypes:
    - native_context_type
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 94
    functionName: libtorrent::ssl::set_trust_certificate
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - X509_STORE_new
    - const_cast<char*>
    - X509_free
    - string_view::data
    - error_code
    - PEM_read_bio_X509_AUX
    - SSL_CTX_set_cert_store
    - reinterpret_cast<unsigned char*>
    - ERR_get_error
    - X509_STORE_add_cert
    - gnutls_certificate_set_x509_trust_mem
    - string_view::size
    - BIO_free
    - boost::asio::gnutls::error::get_ssl_category
    - X509_STORE_free
    - BIO_new_mem_buf
    - unsigned
    linkageType: ''
    returnType: void
    signature: void set_trust_certificate(native_context_type nc, string_view pem,
      error_code &ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ssl.cpp:99,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/libtorrent/src/ssl.cpp:106,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/libtorrent/src/ssl.cpp:107,1
    - Dst: context_handle_type::set_server_name_callback
      Src: /src/libtorrent/src/ssl.cpp:114,1
    - Dst: cb
      Src: /src/libtorrent/src/ssl.cpp:117,1
    - Dst: context_handle_type::set_server_name_callback
      Src: /src/libtorrent/src/ssl.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - c
    - cb
    - arg
    - ' ec'
    argTypes:
    - context_handle_type
    - server_name_callback_type
    - void*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: libtorrent::ssl::set_server_name_callback
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - cb
    - SSL_CTX_set_tlsext_servername_arg
    - SSL_CTX_set_tlsext_servername_callback
    - context_handle_type::set_server_name_callback
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_server_name_callback(context_handle_type c, server_name_callback_type
      cb, void* arg, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ssl.cpp:128,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/libtorrent/src/ssl.cpp:134,1
    - Dst: c_str
      Src: /src/libtorrent/src/ssl.cpp:134,1
    - Dst: stream_handle_type::set_host_name
      Src: /src/libtorrent/src/ssl.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - ' name'
    - ' ec'
    argTypes:
    - stream_handle_type
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: libtorrent::ssl::set_host_name
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - c_str
    - SSL_set_tlsext_host_name
    - stream_handle_type::set_host_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_host_name(stream_handle_type s, std::string const& name, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_SSL_CTX
      Src: /src/libtorrent/src/ssl.cpp:147,1
    - Dst: SSL_set_verify
      Src: /src/libtorrent/src/ssl.cpp:148,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/libtorrent/src/ssl.cpp:149,1
    - Dst: SSL_CTX_get_verify_callback
      Src: /src/libtorrent/src/ssl.cpp:150,1
    - Dst: stream_handle_type::set_context
      Src: /src/libtorrent/src/ssl.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - stream_handle_type
    - context_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: libtorrent::ssl::set_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - SSL_set_verify
    - SSL_CTX_get_verify_callback
    - SSL_CTX_get_verify_mode
    - SSL_set_SSL_CTX
    - stream_handle_type::set_context
    linkageType: ''
    returnType: void
    signature: void set_context(stream_handle_type s, context_handle_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::get_context
      Src: /src/libtorrent/src/ssl.cpp:158,1
    - Dst: context_handle_type::native_handle
      Src: /src/libtorrent/src/ssl.cpp:162,1
    - Dst: context_handle_type::native_handle
      Src: /src/libtorrent/src/ssl.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - stream_handle_type
    - context_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: libtorrent::ssl::has_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::ssl::get_context
    - context_handle_type::native_handle
    linkageType: ''
    returnType: bool
    signature: bool has_context(stream_handle_type s, context_handle_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/libtorrent/src/ssl.cpp:169,1
    - Dst: stream_handle_type::get_context
      Src: /src/libtorrent/src/ssl.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - stream_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: libtorrent::ssl::get_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - stream_handle_type::get_context
    - SSL_get_SSL_CTX
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_context(stream_handle_type s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libtorrent/src/ssl.cpp:183,1
    - Dst: OPENSSL_init_crypto
      Src: /src/libtorrent/src/ssl.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: libtorrent::ssl::lifecycle
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/libtorrent/src/ssl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ~lifecycle()
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_cleanup_all_ex_data
    linkageType: ''
    returnType: void
    signature: void ~lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libtorrent/src/ssl.cpp:183,1
    - Dst: OPENSSL_init_crypto
      Src: /src/libtorrent/src/ssl.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: libtorrent::ssl::lifecycle
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/libtorrent/src/ssl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ~lifecycle()
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_cleanup_all_ex_data
    linkageType: ''
    returnType: void
    signature: void ~lifecycle()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/libtorrent/src/ssl.cpp:54,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: ERR_get_error
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: BIO_new_mem_buf
      Src: /src/libtorrent/src/ssl.cpp:62,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ssl.cpp:63,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/ssl.cpp:63,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/ssl.cpp:64,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/libtorrent/src/ssl.cpp:67,1
    - Dst: BIO_free
      Src: /src/libtorrent/src/ssl.cpp:68,1
    - Dst: X509_STORE_free
      Src: /src/libtorrent/src/ssl.cpp:72,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: ERR_get_error
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: X509_STORE_add_cert
      Src: /src/libtorrent/src/ssl.cpp:78,1
    - Dst: X509_free
      Src: /src/libtorrent/src/ssl.cpp:79,1
    - Dst: SSL_CTX_set_cert_store
      Src: /src/libtorrent/src/ssl.cpp:82,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: unsigned
      Src: /src/libtorrent/src/ssl.cpp:87,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/ssl.cpp:87,1
    - Dst: gnutls_certificate_set_x509_trust_mem
      Src: /src/libtorrent/src/ssl.cpp:90,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:92,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - nc
    - pem
    - ec
    argTypes:
    - native_context_type
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 94
    functionName: libtorrent::ssl::set_trust_certificate
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - X509_STORE_new
    - const_cast<char*>
    - X509_free
    - string_view::data
    - error_code
    - PEM_read_bio_X509_AUX
    - SSL_CTX_set_cert_store
    - reinterpret_cast<unsigned char*>
    - ERR_get_error
    - X509_STORE_add_cert
    - gnutls_certificate_set_x509_trust_mem
    - string_view::size
    - BIO_free
    - boost::asio::gnutls::error::get_ssl_category
    - X509_STORE_free
    - BIO_new_mem_buf
    - unsigned
    linkageType: ''
    returnType: void
    signature: void set_trust_certificate(native_context_type nc, string_view pem,
      error_code &ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ssl.cpp:99,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/libtorrent/src/ssl.cpp:106,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/libtorrent/src/ssl.cpp:107,1
    - Dst: context_handle_type::set_server_name_callback
      Src: /src/libtorrent/src/ssl.cpp:114,1
    - Dst: cb
      Src: /src/libtorrent/src/ssl.cpp:117,1
    - Dst: context_handle_type::set_server_name_callback
      Src: /src/libtorrent/src/ssl.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - c
    - cb
    - arg
    - ' ec'
    argTypes:
    - context_handle_type
    - server_name_callback_type
    - void*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: libtorrent::ssl::set_server_name_callback
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - cb
    - SSL_CTX_set_tlsext_servername_arg
    - SSL_CTX_set_tlsext_servername_callback
    - context_handle_type::set_server_name_callback
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_server_name_callback(context_handle_type c, server_name_callback_type
      cb, void* arg, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ssl.cpp:128,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/libtorrent/src/ssl.cpp:134,1
    - Dst: c_str
      Src: /src/libtorrent/src/ssl.cpp:134,1
    - Dst: stream_handle_type::set_host_name
      Src: /src/libtorrent/src/ssl.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - ' name'
    - ' ec'
    argTypes:
    - stream_handle_type
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: libtorrent::ssl::set_host_name
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - c_str
    - SSL_set_tlsext_host_name
    - stream_handle_type::set_host_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_host_name(stream_handle_type s, std::string const& name, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_SSL_CTX
      Src: /src/libtorrent/src/ssl.cpp:147,1
    - Dst: SSL_set_verify
      Src: /src/libtorrent/src/ssl.cpp:148,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/libtorrent/src/ssl.cpp:149,1
    - Dst: SSL_CTX_get_verify_callback
      Src: /src/libtorrent/src/ssl.cpp:150,1
    - Dst: stream_handle_type::set_context
      Src: /src/libtorrent/src/ssl.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - stream_handle_type
    - context_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: libtorrent::ssl::set_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - SSL_set_verify
    - SSL_CTX_get_verify_callback
    - SSL_CTX_get_verify_mode
    - SSL_set_SSL_CTX
    - stream_handle_type::set_context
    linkageType: ''
    returnType: void
    signature: void set_context(stream_handle_type s, context_handle_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::get_context
      Src: /src/libtorrent/src/ssl.cpp:158,1
    - Dst: context_handle_type::native_handle
      Src: /src/libtorrent/src/ssl.cpp:162,1
    - Dst: context_handle_type::native_handle
      Src: /src/libtorrent/src/ssl.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - stream_handle_type
    - context_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: libtorrent::ssl::has_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::ssl::get_context
    - context_handle_type::native_handle
    linkageType: ''
    returnType: bool
    signature: bool has_context(stream_handle_type s, context_handle_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/libtorrent/src/ssl.cpp:169,1
    - Dst: stream_handle_type::get_context
      Src: /src/libtorrent/src/ssl.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - stream_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: libtorrent::ssl::get_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - stream_handle_type::get_context
    - SSL_get_SSL_CTX
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_context(stream_handle_type s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libtorrent/src/ssl.cpp:183,1
    - Dst: OPENSSL_init_crypto
      Src: /src/libtorrent/src/ssl.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: libtorrent::ssl::lifecycle
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/libtorrent/src/ssl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ~lifecycle()
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_cleanup_all_ex_data
    linkageType: ''
    returnType: void
    signature: void ~lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libtorrent/src/ssl.cpp:183,1
    - Dst: OPENSSL_init_crypto
      Src: /src/libtorrent/src/ssl.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: libtorrent::ssl::lifecycle
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/libtorrent/src/ssl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ~lifecycle()
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_cleanup_all_ex_data
    linkageType: ''
    returnType: void
    signature: void ~lifecycle()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/libtorrent/src/ssl.cpp:54,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: ERR_get_error
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: BIO_new_mem_buf
      Src: /src/libtorrent/src/ssl.cpp:62,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ssl.cpp:63,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/ssl.cpp:63,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/ssl.cpp:64,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/libtorrent/src/ssl.cpp:67,1
    - Dst: BIO_free
      Src: /src/libtorrent/src/ssl.cpp:68,1
    - Dst: X509_STORE_free
      Src: /src/libtorrent/src/ssl.cpp:72,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: ERR_get_error
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: X509_STORE_add_cert
      Src: /src/libtorrent/src/ssl.cpp:78,1
    - Dst: X509_free
      Src: /src/libtorrent/src/ssl.cpp:79,1
    - Dst: SSL_CTX_set_cert_store
      Src: /src/libtorrent/src/ssl.cpp:82,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: unsigned
      Src: /src/libtorrent/src/ssl.cpp:87,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/ssl.cpp:87,1
    - Dst: gnutls_certificate_set_x509_trust_mem
      Src: /src/libtorrent/src/ssl.cpp:90,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:92,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - nc
    - pem
    - ec
    argTypes:
    - native_context_type
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 94
    functionName: libtorrent::ssl::set_trust_certificate
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - X509_STORE_new
    - const_cast<char*>
    - X509_free
    - string_view::data
    - error_code
    - PEM_read_bio_X509_AUX
    - SSL_CTX_set_cert_store
    - reinterpret_cast<unsigned char*>
    - ERR_get_error
    - X509_STORE_add_cert
    - gnutls_certificate_set_x509_trust_mem
    - string_view::size
    - BIO_free
    - boost::asio::gnutls::error::get_ssl_category
    - X509_STORE_free
    - BIO_new_mem_buf
    - unsigned
    linkageType: ''
    returnType: void
    signature: void set_trust_certificate(native_context_type nc, string_view pem,
      error_code &ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ssl.cpp:99,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/libtorrent/src/ssl.cpp:106,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/libtorrent/src/ssl.cpp:107,1
    - Dst: context_handle_type::set_server_name_callback
      Src: /src/libtorrent/src/ssl.cpp:114,1
    - Dst: cb
      Src: /src/libtorrent/src/ssl.cpp:117,1
    - Dst: context_handle_type::set_server_name_callback
      Src: /src/libtorrent/src/ssl.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - c
    - cb
    - arg
    - ' ec'
    argTypes:
    - context_handle_type
    - server_name_callback_type
    - void*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: libtorrent::ssl::set_server_name_callback
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - cb
    - SSL_CTX_set_tlsext_servername_arg
    - SSL_CTX_set_tlsext_servername_callback
    - context_handle_type::set_server_name_callback
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_server_name_callback(context_handle_type c, server_name_callback_type
      cb, void* arg, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ssl.cpp:128,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/libtorrent/src/ssl.cpp:134,1
    - Dst: c_str
      Src: /src/libtorrent/src/ssl.cpp:134,1
    - Dst: stream_handle_type::set_host_name
      Src: /src/libtorrent/src/ssl.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - ' name'
    - ' ec'
    argTypes:
    - stream_handle_type
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: libtorrent::ssl::set_host_name
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - c_str
    - SSL_set_tlsext_host_name
    - stream_handle_type::set_host_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_host_name(stream_handle_type s, std::string const& name, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_SSL_CTX
      Src: /src/libtorrent/src/ssl.cpp:147,1
    - Dst: SSL_set_verify
      Src: /src/libtorrent/src/ssl.cpp:148,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/libtorrent/src/ssl.cpp:149,1
    - Dst: SSL_CTX_get_verify_callback
      Src: /src/libtorrent/src/ssl.cpp:150,1
    - Dst: stream_handle_type::set_context
      Src: /src/libtorrent/src/ssl.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - stream_handle_type
    - context_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: libtorrent::ssl::set_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - SSL_set_verify
    - SSL_CTX_get_verify_callback
    - SSL_CTX_get_verify_mode
    - SSL_set_SSL_CTX
    - stream_handle_type::set_context
    linkageType: ''
    returnType: void
    signature: void set_context(stream_handle_type s, context_handle_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::get_context
      Src: /src/libtorrent/src/ssl.cpp:158,1
    - Dst: context_handle_type::native_handle
      Src: /src/libtorrent/src/ssl.cpp:162,1
    - Dst: context_handle_type::native_handle
      Src: /src/libtorrent/src/ssl.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - stream_handle_type
    - context_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: libtorrent::ssl::has_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::ssl::get_context
    - context_handle_type::native_handle
    linkageType: ''
    returnType: bool
    signature: bool has_context(stream_handle_type s, context_handle_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/libtorrent/src/ssl.cpp:169,1
    - Dst: stream_handle_type::get_context
      Src: /src/libtorrent/src/ssl.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - stream_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: libtorrent::ssl::get_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 3
    functionsReached:
    - stream_handle_type::get_context
    - SSL_get_SSL_CTX
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_context(stream_handle_type s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libtorrent/src/ssl.cpp:183,1
    - Dst: OPENSSL_init_crypto
      Src: /src/libtorrent/src/ssl.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: libtorrent::ssl::lifecycle
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/libtorrent/src/ssl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ~lifecycle()
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_cleanup_all_ex_data
    linkageType: ''
    returnType: void
    signature: void ~lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libtorrent/src/ssl.cpp:183,1
    - Dst: OPENSSL_init_crypto
      Src: /src/libtorrent/src/ssl.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: libtorrent::ssl::lifecycle
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/libtorrent/src/ssl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ~lifecycle()
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_cleanup_all_ex_data
    linkageType: ''
    returnType: void
    signature: void ~lifecycle()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/libtorrent/src/ssl.cpp:54,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: ERR_get_error
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:57,1
    - Dst: BIO_new_mem_buf
      Src: /src/libtorrent/src/ssl.cpp:62,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ssl.cpp:63,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/ssl.cpp:63,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/ssl.cpp:64,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/libtorrent/src/ssl.cpp:67,1
    - Dst: BIO_free
      Src: /src/libtorrent/src/ssl.cpp:68,1
    - Dst: X509_STORE_free
      Src: /src/libtorrent/src/ssl.cpp:72,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: ERR_get_error
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:73,1
    - Dst: X509_STORE_add_cert
      Src: /src/libtorrent/src/ssl.cpp:78,1
    - Dst: X509_free
      Src: /src/libtorrent/src/ssl.cpp:79,1
    - Dst: SSL_CTX_set_cert_store
      Src: /src/libtorrent/src/ssl.cpp:82,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: const_cast<char*>
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/ssl.cpp:86,1
    - Dst: unsigned
      Src: /src/libtorrent/src/ssl.cpp:87,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/ssl.cpp:87,1
    - Dst: gnutls_certificate_set_x509_trust_mem
      Src: /src/libtorrent/src/ssl.cpp:90,1
    - Dst: error_code
      Src: /src/libtorrent/src/ssl.cpp:92,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/src/ssl.cpp:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - nc
    - pem
    - ec
    argTypes:
    - native_context_type
    - string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 94
    functionName: libtorrent::ssl::set_trust_certificate
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - X509_STORE_new
    - const_cast<char*>
    - X509_free
    - string_view::data
    - error_code
    - PEM_read_bio_X509_AUX
    - SSL_CTX_set_cert_store
    - reinterpret_cast<unsigned char*>
    - ERR_get_error
    - X509_STORE_add_cert
    - gnutls_certificate_set_x509_trust_mem
    - string_view::size
    - BIO_free
    - boost::asio::gnutls::error::get_ssl_category
    - X509_STORE_free
    - BIO_new_mem_buf
    - unsigned
    linkageType: ''
    returnType: void
    signature: void set_trust_certificate(native_context_type nc, string_view pem,
      error_code &ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ssl.cpp:99,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/libtorrent/src/ssl.cpp:106,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/libtorrent/src/ssl.cpp:107,1
    - Dst: context_handle_type::set_server_name_callback
      Src: /src/libtorrent/src/ssl.cpp:114,1
    - Dst: cb
      Src: /src/libtorrent/src/ssl.cpp:117,1
    - Dst: context_handle_type::set_server_name_callback
      Src: /src/libtorrent/src/ssl.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - c
    - cb
    - arg
    - ' ec'
    argTypes:
    - context_handle_type
    - server_name_callback_type
    - void*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: libtorrent::ssl::set_server_name_callback
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - cb
    - SSL_CTX_set_tlsext_servername_arg
    - SSL_CTX_set_tlsext_servername_callback
    - context_handle_type::set_server_name_callback
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_server_name_callback(context_handle_type c, server_name_callback_type
      cb, void* arg, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/ssl.cpp:128,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/libtorrent/src/ssl.cpp:134,1
    - Dst: c_str
      Src: /src/libtorrent/src/ssl.cpp:134,1
    - Dst: stream_handle_type::set_host_name
      Src: /src/libtorrent/src/ssl.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - ' name'
    - ' ec'
    argTypes:
    - stream_handle_type
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: libtorrent::ssl::set_host_name
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - c_str
    - SSL_set_tlsext_host_name
    - stream_handle_type::set_host_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void set_host_name(stream_handle_type s, std::string const& name, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_SSL_CTX
      Src: /src/libtorrent/src/ssl.cpp:147,1
    - Dst: SSL_set_verify
      Src: /src/libtorrent/src/ssl.cpp:148,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/libtorrent/src/ssl.cpp:149,1
    - Dst: SSL_CTX_get_verify_callback
      Src: /src/libtorrent/src/ssl.cpp:150,1
    - Dst: stream_handle_type::set_context
      Src: /src/libtorrent/src/ssl.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - stream_handle_type
    - context_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: libtorrent::ssl::set_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 2
    functionsReached:
    - SSL_set_verify
    - SSL_CTX_get_verify_callback
    - SSL_CTX_get_verify_mode
    - SSL_set_SSL_CTX
    - stream_handle_type::set_context
    linkageType: ''
    returnType: void
    signature: void set_context(stream_handle_type s, context_handle_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::get_context
      Src: /src/libtorrent/src/ssl.cpp:158,1
    - Dst: context_handle_type::native_handle
      Src: /src/libtorrent/src/ssl.cpp:162,1
    - Dst: context_handle_type::native_handle
      Src: /src/libtorrent/src/ssl.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - stream_handle_type
    - context_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: libtorrent::ssl::has_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::ssl::get_context
    - context_handle_type::native_handle
    linkageType: ''
    returnType: bool
    signature: bool has_context(stream_handle_type s, context_handle_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/libtorrent/src/ssl.cpp:169,1
    - Dst: stream_handle_type::get_context
      Src: /src/libtorrent/src/ssl.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - stream_handle_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: libtorrent::ssl::get_context
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 4
    functionsReached:
    - stream_handle_type::get_context
    - SSL_get_SSL_CTX
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_context(stream_handle_type s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libtorrent/src/ssl.cpp:183,1
    - Dst: OPENSSL_init_crypto
      Src: /src/libtorrent/src/ssl.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: libtorrent::ssl::lifecycle
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/libtorrent/src/ssl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ~lifecycle()
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_cleanup_all_ex_data
    linkageType: ''
    returnType: void
    signature: void ~lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libtorrent/src/ssl.cpp:183,1
    - Dst: OPENSSL_init_crypto
      Src: /src/libtorrent/src/ssl.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: libtorrent::ssl::lifecycle
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/libtorrent/src/ssl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ~lifecycle()
    functionSourceFile: /src/libtorrent/src/ssl.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_cleanup_all_ex_data
    linkageType: ''
    returnType: void
    signature: void ~lifecycle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: announce_entry::~announce_entry()
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::~announce_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry(announce_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::announce_endpoint::announce_endpoint
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_endpoint::announce_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:100,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: libtorrent::announce_infohash::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void announce_infohash::reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/announce_entry.cpp:113,1
    - Dst: std::min
      Src: /src/libtorrent/src/announce_entry.cpp:114,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/announce_entry.cpp:114,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/announce_entry.cpp:118,1
    - Dst: is_working
      Src: /src/libtorrent/src/announce_entry.cpp:119,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/announce_entry.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - backoff_ratio
    - retry_interval
    argTypes:
    - int
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: libtorrent::announce_infohash::failed
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - TORRENT_ASSERT
    - std::max
    - duration_cast<seconds32>
    - libtorrent::aux::time_now32
    - is_working
    linkageType: ''
    returnType: void
    signature: void announce_infohash::failed(int const backoff_ratio, seconds32 const
      retry_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/announce_entry.cpp:125,1
    - Dst: seconds
      Src: /src/libtorrent/src/announce_entry.cpp:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 3
    argNames:
    - now
    - is_seed
    - fail_limit
    argTypes:
    - time_point
    - bool
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: libtorrent::announce_infohash::can_announce
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - seconds
    linkageType: ''
    returnType: bool
    signature: bool announce_infohash::can_announce(time_point now, bool is_seed,
      std::uint8_t fail_limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_endpoint::reset
      Src: /src/libtorrent/src/announce_entry.cpp:140,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:143,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: libtorrent::announce_endpoint::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::min
    - libtorrent::announce_endpoint::reset
    linkageType: ''
    returnType: void
    signature: void announce_endpoint::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_entry::reset
      Src: /src/libtorrent/src/announce_entry.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: libtorrent::announce_entry::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::announce_entry::reset
    linkageType: ''
    returnType: void
    signature: void announce_entry::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/announce_entry.cpp:155,1
    - Dst: std::begin
      Src: /src/libtorrent/src/announce_entry.cpp:155,1
    - Dst: std::end
      Src: /src/libtorrent/src/announce_entry.cpp:155,1
    - Dst: libtorrent::announce_endpoint::can_announce
      Src: /src/libtorrent/src/announce_entry.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - now
    - is_seed
    - fail_limit
    argTypes:
    - time_point
    - bool
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: libtorrent::announce_endpoint::can_announce
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 1
    functionsReached:
    - std::begin
    - libtorrent::announce_endpoint::can_announce
    - std::end
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: bool announce_endpoint::can_announce(time_point now, bool is_seed,
      std::uint8_t fail_limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/announce_entry.cpp:161,1
    - Dst: std::begin
      Src: /src/libtorrent/src/announce_entry.cpp:161,1
    - Dst: std::end
      Src: /src/libtorrent/src/announce_entry.cpp:161,1
    - Dst: libtorrent::announce_endpoint::is_working
      Src: /src/libtorrent/src/announce_entry.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: libtorrent::announce_endpoint::is_working
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 1
    functionsReached:
    - std::begin
    - std::end
    - std::any_of
    - libtorrent::announce_endpoint::is_working
    linkageType: ''
    returnType: bool
    signature: bool announce_endpoint::is_working() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/announce_entry.cpp:167,1
    - Dst: is_space
      Src: /src/libtorrent/src/announce_entry.cpp:167,1
    - Dst: erase
      Src: /src/libtorrent/src/announce_entry.cpp:168,1
    - Dst: begin
      Src: /src/libtorrent/src/announce_entry.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: libtorrent::announce_entry::trim
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - is_space
    - empty
    - erase
    - begin
    linkageType: ''
    returnType: void
    signature: void announce_entry::trim()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/announce_entry.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/announce_entry.cpp:174,1
    - Dst: end
      Src: /src/libtorrent/src/announce_entry.cpp:174,1
    - Dst: libtorrent::announce_entry::can_announce
      Src: /src/libtorrent/src/announce_entry.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - now
    - is_seed
    argTypes:
    - time_point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: libtorrent::announce_entry::can_announce
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::announce_entry::can_announce
    - end
    - std::any_of
    - begin
    linkageType: ''
    returnType: bool
    signature: bool announce_entry::can_announce(time_point now, bool is_seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/announce_entry.cpp:180,1
    - Dst: begin
      Src: /src/libtorrent/src/announce_entry.cpp:180,1
    - Dst: end
      Src: /src/libtorrent/src/announce_entry.cpp:180,1
    - Dst: libtorrent::announce_entry::is_working
      Src: /src/libtorrent/src/announce_entry.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: libtorrent::announce_entry::is_working
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::announce_entry::is_working
    - end
    - std::any_of
    - begin
    linkageType: ''
    returnType: bool
    signature: bool announce_entry::is_working() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/announce_entry.cpp:198,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/src/announce_entry.cpp:198,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/announce_entry.cpp:202,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/announce_entry.cpp:206,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:234,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:235,1
    - Dst: std::max
      Src: /src/libtorrent/src/announce_entry.cpp:247,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:248,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/announce_entry.cpp:248,1
    - Dst: libtorrent::is_working
      Src: /src/libtorrent/src/announce_entry.cpp:252,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/announce_entry.cpp:252,1
    - Dst: seconds
      Src: /src/libtorrent/src/announce_entry.cpp:263,1
    - Dst: libtorrent::reset
      Src: /src/libtorrent/src/announce_entry.cpp:272,1
    - Dst: libtorrent::reset
      Src: /src/libtorrent/src/announce_entry.cpp:278,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/announce_entry.cpp:285,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 288
    functionName: libtorrent::namespace
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::is_working
    - get_local_endpoint
    - seconds
    - libtorrent::to_string
    - libtorrent::local_endpoint
    - libtorrent::end
    - std::max
    - duration_cast<seconds32>
    - libtorrent::begin
    - libtorrent::aux::time_now32
    - libtorrent::reset
    - TORRENT_UNUSED
    - std::find_if
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_2_END
    signature: TORRENT_VERSION_NAMESPACE_2_END namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: libtorrent::announce_infohash::announce_infohash
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_infohash::announce_infohash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/announce_entry.cpp:198,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/announce_entry.cpp:198,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/announce_entry.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - completed
    argTypes:
    - aux::listen_socket_handle
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: libtorrent::announce_endpoint::announce_endpoint
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - local_endpoint
    - get_local_endpoint
    linkageType: ''
    returnType: void
    signature: void announce_endpoint::announce_endpoint(aux::listen_socket_handle
      const& s, bool const completed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/announce_entry.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - u
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - string_view::to_string
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry(string_view u)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - lt::announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry(lt::announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: announce_entry::~announce_entry()
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::~announce_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry(announce_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:234,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: libtorrent::announce_infohash::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void announce_infohash::reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/announce_entry.cpp:247,1
    - Dst: std::min
      Src: /src/libtorrent/src/announce_entry.cpp:248,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/announce_entry.cpp:248,1
    - Dst: is_working
      Src: /src/libtorrent/src/announce_entry.cpp:252,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/announce_entry.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - backoff_ratio
    - retry_interval
    argTypes:
    - int
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 254
    functionName: libtorrent::announce_infohash::failed
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - std::max
    - duration_cast<seconds32>
    - libtorrent::aux::time_now32
    - is_working
    linkageType: ''
    returnType: void
    signature: void announce_infohash::failed(int const backoff_ratio, seconds32 const
      retry_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/announce_entry.cpp:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 3
    argNames:
    - now
    - is_seed
    - fail_limit
    argTypes:
    - time_point
    - bool
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 267
    functionName: libtorrent::announce_infohash::can_announce
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: bool
    signature: bool announce_infohash::can_announce(time_point now, bool is_seed,
      std::uint8_t fail_limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_endpoint::reset
      Src: /src/libtorrent/src/announce_entry.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: libtorrent::announce_endpoint::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::announce_endpoint::reset
    linkageType: ''
    returnType: void
    signature: void announce_endpoint::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_entry::reset
      Src: /src/libtorrent/src/announce_entry.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: libtorrent::announce_entry::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::announce_entry::reset
    linkageType: ''
    returnType: void
    signature: void announce_entry::reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: end
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: end
      Src: /src/libtorrent/src/announce_entry.cpp:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: libtorrent::announce_entry::find_endpoint
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::find_if
    linkageType: ''
    returnType: announce_endpoint
    signature: announce_endpoint * announce_entry::find_endpoint(aux::listen_socket_handle
      const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: announce_entry::~announce_entry()
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::~announce_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry(announce_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::announce_endpoint::announce_endpoint
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_endpoint::announce_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:100,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: libtorrent::announce_infohash::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void announce_infohash::reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/announce_entry.cpp:113,1
    - Dst: std::min
      Src: /src/libtorrent/src/announce_entry.cpp:114,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/announce_entry.cpp:114,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/announce_entry.cpp:118,1
    - Dst: is_working
      Src: /src/libtorrent/src/announce_entry.cpp:119,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/announce_entry.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - backoff_ratio
    - retry_interval
    argTypes:
    - int
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: libtorrent::announce_infohash::failed
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - TORRENT_ASSERT
    - std::max
    - duration_cast<seconds32>
    - libtorrent::aux::time_now32
    - is_working
    linkageType: ''
    returnType: void
    signature: void announce_infohash::failed(int const backoff_ratio, seconds32 const
      retry_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/announce_entry.cpp:125,1
    - Dst: seconds
      Src: /src/libtorrent/src/announce_entry.cpp:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 3
    argNames:
    - now
    - is_seed
    - fail_limit
    argTypes:
    - time_point
    - bool
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: libtorrent::announce_infohash::can_announce
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - seconds
    linkageType: ''
    returnType: bool
    signature: bool announce_infohash::can_announce(time_point now, bool is_seed,
      std::uint8_t fail_limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_endpoint::reset
      Src: /src/libtorrent/src/announce_entry.cpp:140,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:143,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: libtorrent::announce_endpoint::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::min
    - libtorrent::announce_endpoint::reset
    linkageType: ''
    returnType: void
    signature: void announce_endpoint::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_entry::reset
      Src: /src/libtorrent/src/announce_entry.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: libtorrent::announce_entry::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::announce_entry::reset
    linkageType: ''
    returnType: void
    signature: void announce_entry::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/announce_entry.cpp:155,1
    - Dst: std::begin
      Src: /src/libtorrent/src/announce_entry.cpp:155,1
    - Dst: std::end
      Src: /src/libtorrent/src/announce_entry.cpp:155,1
    - Dst: libtorrent::announce_endpoint::can_announce
      Src: /src/libtorrent/src/announce_entry.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - now
    - is_seed
    - fail_limit
    argTypes:
    - time_point
    - bool
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: libtorrent::announce_endpoint::can_announce
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 2
    functionsReached:
    - std::begin
    - libtorrent::announce_endpoint::can_announce
    - std::end
    - std::any_of
    linkageType: ''
    returnType: bool
    signature: bool announce_endpoint::can_announce(time_point now, bool is_seed,
      std::uint8_t fail_limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/announce_entry.cpp:161,1
    - Dst: std::begin
      Src: /src/libtorrent/src/announce_entry.cpp:161,1
    - Dst: std::end
      Src: /src/libtorrent/src/announce_entry.cpp:161,1
    - Dst: libtorrent::announce_endpoint::is_working
      Src: /src/libtorrent/src/announce_entry.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: libtorrent::announce_endpoint::is_working
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 2
    functionsReached:
    - std::begin
    - std::end
    - std::any_of
    - libtorrent::announce_endpoint::is_working
    linkageType: ''
    returnType: bool
    signature: bool announce_endpoint::is_working() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/announce_entry.cpp:167,1
    - Dst: is_space
      Src: /src/libtorrent/src/announce_entry.cpp:167,1
    - Dst: erase
      Src: /src/libtorrent/src/announce_entry.cpp:168,1
    - Dst: begin
      Src: /src/libtorrent/src/announce_entry.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: libtorrent::announce_entry::trim
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - is_space
    - empty
    - erase
    - begin
    linkageType: ''
    returnType: void
    signature: void announce_entry::trim()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/announce_entry.cpp:174,1
    - Dst: begin
      Src: /src/libtorrent/src/announce_entry.cpp:174,1
    - Dst: end
      Src: /src/libtorrent/src/announce_entry.cpp:174,1
    - Dst: libtorrent::announce_entry::can_announce
      Src: /src/libtorrent/src/announce_entry.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - now
    - is_seed
    argTypes:
    - time_point
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: libtorrent::announce_entry::can_announce
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::announce_entry::can_announce
    - end
    - std::any_of
    - begin
    linkageType: ''
    returnType: bool
    signature: bool announce_entry::can_announce(time_point now, bool is_seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_of
      Src: /src/libtorrent/src/announce_entry.cpp:180,1
    - Dst: begin
      Src: /src/libtorrent/src/announce_entry.cpp:180,1
    - Dst: end
      Src: /src/libtorrent/src/announce_entry.cpp:180,1
    - Dst: libtorrent::announce_entry::is_working
      Src: /src/libtorrent/src/announce_entry.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: libtorrent::announce_entry::is_working
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::announce_entry::is_working
    - end
    - std::any_of
    - begin
    linkageType: ''
    returnType: bool
    signature: bool announce_entry::is_working() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/announce_entry.cpp:198,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/src/announce_entry.cpp:198,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/announce_entry.cpp:202,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/announce_entry.cpp:206,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:234,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:235,1
    - Dst: std::max
      Src: /src/libtorrent/src/announce_entry.cpp:247,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:248,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/announce_entry.cpp:248,1
    - Dst: libtorrent::is_working
      Src: /src/libtorrent/src/announce_entry.cpp:252,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/announce_entry.cpp:252,1
    - Dst: seconds
      Src: /src/libtorrent/src/announce_entry.cpp:263,1
    - Dst: libtorrent::reset
      Src: /src/libtorrent/src/announce_entry.cpp:272,1
    - Dst: libtorrent::reset
      Src: /src/libtorrent/src/announce_entry.cpp:278,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/announce_entry.cpp:285,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 288
    functionName: libtorrent::namespace
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    - libtorrent::is_working
    - get_local_endpoint
    - seconds
    - libtorrent::to_string
    - libtorrent::local_endpoint
    - libtorrent::end
    - std::max
    - duration_cast<seconds32>
    - libtorrent::begin
    - libtorrent::aux::time_now32
    - libtorrent::reset
    - TORRENT_UNUSED
    - std::find_if
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_2_END
    signature: TORRENT_VERSION_NAMESPACE_2_END namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: libtorrent::announce_infohash::announce_infohash
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_infohash::announce_infohash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/announce_entry.cpp:198,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/announce_entry.cpp:198,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/announce_entry.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - completed
    argTypes:
    - aux::listen_socket_handle
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: libtorrent::announce_endpoint::announce_endpoint
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_UNUSED
    - local_endpoint
    - get_local_endpoint
    linkageType: ''
    returnType: void
    signature: void announce_endpoint::announce_endpoint(aux::listen_socket_handle
      const& s, bool const completed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/announce_entry.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - u
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - string_view::to_string
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry(string_view u)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - lt::announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry(lt::announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: announce_entry::~announce_entry()
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::~announce_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: libtorrent::announce_entry::announce_entry
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce_entry::announce_entry(announce_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:234,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/announce_entry.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: libtorrent::announce_infohash::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void announce_infohash::reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/announce_entry.cpp:247,1
    - Dst: std::min
      Src: /src/libtorrent/src/announce_entry.cpp:248,1
    - Dst: duration_cast<seconds32>
      Src: /src/libtorrent/src/announce_entry.cpp:248,1
    - Dst: is_working
      Src: /src/libtorrent/src/announce_entry.cpp:252,1
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/src/announce_entry.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - backoff_ratio
    - retry_interval
    argTypes:
    - int
    - seconds32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 254
    functionName: libtorrent::announce_infohash::failed
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - std::max
    - duration_cast<seconds32>
    - libtorrent::aux::time_now32
    - is_working
    linkageType: ''
    returnType: void
    signature: void announce_infohash::failed(int const backoff_ratio, seconds32 const
      retry_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/announce_entry.cpp:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 3
    argNames:
    - now
    - is_seed
    - fail_limit
    argTypes:
    - time_point
    - bool
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 267
    functionName: libtorrent::announce_infohash::can_announce
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - seconds
    linkageType: ''
    returnType: bool
    signature: bool announce_infohash::can_announce(time_point now, bool is_seed,
      std::uint8_t fail_limit) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_endpoint::reset
      Src: /src/libtorrent/src/announce_entry.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: libtorrent::announce_endpoint::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::announce_endpoint::reset
    linkageType: ''
    returnType: void
    signature: void announce_endpoint::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_entry::reset
      Src: /src/libtorrent/src/announce_entry.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: libtorrent::announce_entry::reset
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::announce_entry::reset
    linkageType: ''
    returnType: void
    signature: void announce_entry::reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: end
      Src: /src/libtorrent/src/announce_entry.cpp:283,1
    - Dst: end
      Src: /src/libtorrent/src/announce_entry.cpp:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: libtorrent::announce_entry::find_endpoint
    functionSourceFile: /src/libtorrent/src/announce_entry.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::find_if
    linkageType: ''
    returnType: announce_endpoint
    signature: announce_endpoint * announce_entry::find_endpoint(aux::listen_socket_handle
      const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::file_view_pool::file_view_pool
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool::file_view_pool(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: file_view_pool::~file_view_pool()
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool::~file_view_pool()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:86,1
    - Dst: is_complete
      Src: /src/libtorrent/src/file_view_pool.cpp:86,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:87,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:89,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:91,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: begin
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:98,1
    - Dst: auto::waiters::push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:101,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:104,1
    - Dst: wait_open_entry::cond::wait
      Src: /src/libtorrent/src/file_view_pool.cpp:108,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:113,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file_view_pool.cpp:117,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:121,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:132,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:135,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/file_view_pool.cpp:137,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:140,1
    - Dst: relocate
      Src: /src/libtorrent/src/file_view_pool.cpp:141,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:141,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:145,1
    - Dst: back
      Src: /src/libtorrent/src/file_view_pool.cpp:145,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:150,1
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:154,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:160,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:163,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:167,1
    - Dst: libtorrent::aux::file_view_pool::open_file_impl
      Src: /src/libtorrent/src/file_view_pool.cpp:171,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:173,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:177,1
    - Dst: std::tie
      Src: /src/libtorrent/src/file_view_pool.cpp:189,1
    - Dst: insert
      Src: /src/libtorrent/src/file_view_pool.cpp:189,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:195,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:195,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:199,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:201,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:202,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:206,1
    - Dst: relocate
      Src: /src/libtorrent/src/file_view_pool.cpp:207,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:207,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:212,1
    - Dst: back
      Src: /src/libtorrent/src/file_view_pool.cpp:212,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:214,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:214,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:219,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:219,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:220,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:225,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:225,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:226,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:226,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:232,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:232,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:233,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:233,1
    - Dst: code
      Src: /src/libtorrent/src/file_view_pool.cpp:234,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:239,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:239,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:240,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:240,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 6
    argNames:
    - st
    - ' p'
    - file_index
    - ' fs'
    - m
    - open_unmap_lock
    argTypes:
    - storage_index_t
    - std::string
    - file_index_t
    - file_storage
    - open_mode_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 244
    functionName: libtorrent::aux::file_view_pool::open_file
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - std::move
    - begin
    - relocate
    - auto::waiters::push_back
    - throw_ex<storage_error>
    - libtorrent::aux::time_now
    - push_back
    - end
    - back
    - wait_open_entry::cond::wait
    - libtorrent::aux::file_view_pool::notify_file_open
    - modify
    - TORRENT_ASSERT
    - libtorrent::aux::file_view_pool::remove_oldest
    - libtorrent::aux::file_view_pool::open_file_impl
    - size
    - std::unique_lock::unlock
    - std::find_if
    - std::tie
    - std::unique_lock::owns_lock
    - insert
    - find
    - storage_error
    - code
    - is_complete
    - libtorrent::dht::item_target_id
    - get
    linkageType: ''
    returnType: std::shared_ptr<file_mapping>
    signature: "std::shared_ptr<file_mapping> file_view_pool::open_file(storage_index_t
      st, std::string const& p\n\t\t, file_index_t const file_index, file_storage
      const& fs\n\t\t, open_mode_t const m\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:248,1
    - Dst: waiters::empty
      Src: /src/libtorrent/src/file_view_pool.cpp:251,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:253,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:258,1
    - Dst: s_iterator_to
      Src: /src/libtorrent/src/file_view_pool.cpp:258,1
    - Dst: cond::notify_all
      Src: /src/libtorrent/src/file_view_pool.cpp:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' ofe'
    - mapping
    argTypes:
    - opening_file_entry
    - std::shared_ptr<file_mapping>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::file_view_pool::notify_file_open
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 1
    functionsReached:
    - s_iterator_to
    - erase
    - cond::notify_all
    - libtorrent::storage_error
    - waiters::empty
    - libtorrent::dht::item_target_id
    linkageType: ''
    returnType: void
    signature: "void file_view_pool::notify_file_open(opening_file_entry& ofe\n\t\t,
      std::shared_ptr<file_mapping> mapping\n\t\t, lt::storage_error const& se = lt::storage_error())"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_path
      Src: /src/libtorrent/src/file_view_pool.cpp:275,1
    - Dst: file_entry
      Src: /src/libtorrent/src/file_view_pool.cpp:281,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_view_pool.cpp:281,1
    - Dst: error_code
      Src: /src/libtorrent/src/file_view_pool.cpp:298,1
    - Dst: system_category
      Src: /src/libtorrent/src/file_view_pool.cpp:298,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/file_view_pool.cpp:308,1
    - Dst: create_directories
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: parent_path
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file_view_pool.cpp:315,1
    - Dst: file_entry
      Src: /src/libtorrent/src/file_view_pool.cpp:318,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_view_pool.cpp:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - ' p'
    - file_index
    - ' fs'
    - m
    - file_key
    - open_unmap_lock
    argTypes:
    - std::string
    - file_index_t
    - file_storage
    - open_mode_t
    - file_id
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 324
    functionName: libtorrent::aux::file_view_pool::open_file_impl
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 1
    functionsReached:
    - system_category
    - create_directories
    - file_entry
    - error_code
    - parent_path
    - file_path
    - throw_ex<storage_error>
    - file_size
    - ec::clear
    linkageType: ''
    returnType: file_view_pool::file_entry
    signature: "file_view_pool::file_entry file_view_pool::open_file_impl(std::string
      const& p\n\t\t, file_index_t const file_index, file_storage const& fs\n\t\t,
      open_mode_t const m, file_id const file_key\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - has_mapping
    argTypes:
    - open_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: libtorrent::aux::to_file_open_mode
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: file_open_mode_t
    signature: file_open_mode_t to_file_open_mode(open_mode_t const mode, bool const
      has_mapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:342,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:343,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_view_pool.cpp:343,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:344,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/file_view_pool.cpp:344,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:348,1
    - Dst: to_file_open_mode
      Src: /src/libtorrent/src/file_view_pool.cpp:349,1
    - Dst: auto::mapping::has_memory_map
      Src: /src/libtorrent/src/file_view_pool.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_view_pool::get_status
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - auto::mapping::has_memory_map
    - std::vector::push_back
    - libtorrent::aux::max
    - to_file_open_mode
    - upper_bound
    - file_index_t
    - get
    - lower_bound
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> file_view_pool::get_status(storage_index_t
      const st) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:358,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:359,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:362,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:363,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:363,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:366,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:366,1
    - Dst: pop_front
      Src: /src/libtorrent/src/file_view_pool.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 372
    functionName: libtorrent::aux::file_view_pool::remove_oldest
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - front
    - pop_front
    - libtorrent::dht::item_target_id
    - get
    - size
    linkageType: ''
    returnType: std::shared_ptr<file_mapping>
    signature: std::shared_ptr<file_mapping> file_view_pool::remove_oldest(std::unique_lock<std::mutex>&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:378,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:379,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:380,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:382,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:383,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - file_index
    argTypes:
    - storage_index_t
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 388
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - erase
    - end
    - find
    - std::unique_lock::unlock
    - get
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release(storage_index_t const st, file_index_t
      file_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:396,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/src/file_view_pool.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::unlock
    - std::move
    - clear
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:410,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:411,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_view_pool.cpp:411,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:412,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/file_view_pool.cpp:412,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/file_view_pool.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:415,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:417,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - erase
    - libtorrent::aux::max
    - upper_bound
    - file_index_t
    - get
    - std::unique_lock::unlock
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release(storage_index_t const st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:429,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:433,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:436,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/file_view_pool.cpp:437,1
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::file_view_pool::resize
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::vector::emplace_back
    - size
    - libtorrent::aux::file_view_pool::remove_oldest
    linkageType: ''
    returnType: void
    signature: void file_view_pool::resize(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: libtorrent::aux::file_view_pool::close_oldest
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_view_pool::remove_oldest
    linkageType: ''
    returnType: void
    signature: void file_view_pool::close_oldest()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:456,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:457,1
    - Dst: std::prev
      Src: /src/libtorrent/src/file_view_pool.cpp:459,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:459,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:462,1
    - Dst: std::shared_ptr::flush
      Src: /src/libtorrent/src/file_view_pool.cpp:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 467
    functionName: libtorrent::aux::file_view_pool::flush_next_file
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::flush
    - end
    - std::prev
    - modify
    - get
    - size
    linkageType: ''
    returnType: void
    signature: void file_view_pool::flush_next_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:473,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:474,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:475,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - st
    - file_index
    - bytes
    argTypes:
    - storage_index_t
    - file_index_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: libtorrent::aux::file_view_pool::record_file_write
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - get
    - end
    - find
    - modify
    linkageType: ''
    returnType: void
    signature: "void file_view_pool::record_file_write(storage_index_t const st\n\t\t,
      file_index_t const file_index, uint64_t const bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::file_view_pool::file_view_pool
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool::file_view_pool(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: file_view_pool::~file_view_pool()
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool::~file_view_pool()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:86,1
    - Dst: is_complete
      Src: /src/libtorrent/src/file_view_pool.cpp:86,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:87,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:89,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:91,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: begin
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:98,1
    - Dst: auto::waiters::push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:101,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:104,1
    - Dst: wait_open_entry::cond::wait
      Src: /src/libtorrent/src/file_view_pool.cpp:108,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:113,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file_view_pool.cpp:117,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:121,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:132,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:135,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/file_view_pool.cpp:137,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:140,1
    - Dst: relocate
      Src: /src/libtorrent/src/file_view_pool.cpp:141,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:141,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:145,1
    - Dst: back
      Src: /src/libtorrent/src/file_view_pool.cpp:145,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:150,1
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:154,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:160,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:163,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:167,1
    - Dst: libtorrent::aux::file_view_pool::open_file_impl
      Src: /src/libtorrent/src/file_view_pool.cpp:171,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:173,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:177,1
    - Dst: std::tie
      Src: /src/libtorrent/src/file_view_pool.cpp:189,1
    - Dst: insert
      Src: /src/libtorrent/src/file_view_pool.cpp:189,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:195,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:195,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:199,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:201,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:202,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:206,1
    - Dst: relocate
      Src: /src/libtorrent/src/file_view_pool.cpp:207,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:207,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:212,1
    - Dst: back
      Src: /src/libtorrent/src/file_view_pool.cpp:212,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:214,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:214,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:219,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:219,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:220,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:225,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:225,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:226,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:226,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:232,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:232,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:233,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:233,1
    - Dst: code
      Src: /src/libtorrent/src/file_view_pool.cpp:234,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:239,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:239,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:240,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:240,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 6
    argNames:
    - st
    - ' p'
    - file_index
    - ' fs'
    - m
    - open_unmap_lock
    argTypes:
    - storage_index_t
    - std::string
    - file_index_t
    - file_storage
    - open_mode_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 244
    functionName: libtorrent::aux::file_view_pool::open_file
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - std::move
    - begin
    - relocate
    - auto::waiters::push_back
    - throw_ex<storage_error>
    - libtorrent::aux::time_now
    - push_back
    - end
    - back
    - wait_open_entry::cond::wait
    - libtorrent::aux::file_view_pool::notify_file_open
    - modify
    - TORRENT_ASSERT
    - libtorrent::aux::file_view_pool::remove_oldest
    - libtorrent::aux::file_view_pool::open_file_impl
    - size
    - std::unique_lock::unlock
    - std::find_if
    - std::tie
    - std::unique_lock::owns_lock
    - insert
    - find
    - storage_error
    - code
    - is_complete
    - libtorrent::dht::item_target_id
    - get
    linkageType: ''
    returnType: std::shared_ptr<file_mapping>
    signature: "std::shared_ptr<file_mapping> file_view_pool::open_file(storage_index_t
      st, std::string const& p\n\t\t, file_index_t const file_index, file_storage
      const& fs\n\t\t, open_mode_t const m\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:248,1
    - Dst: waiters::empty
      Src: /src/libtorrent/src/file_view_pool.cpp:251,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:253,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:258,1
    - Dst: s_iterator_to
      Src: /src/libtorrent/src/file_view_pool.cpp:258,1
    - Dst: cond::notify_all
      Src: /src/libtorrent/src/file_view_pool.cpp:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' ofe'
    - mapping
    argTypes:
    - opening_file_entry
    - std::shared_ptr<file_mapping>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::file_view_pool::notify_file_open
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 2
    functionsReached:
    - s_iterator_to
    - erase
    - cond::notify_all
    - libtorrent::storage_error
    - waiters::empty
    - libtorrent::dht::item_target_id
    linkageType: ''
    returnType: void
    signature: "void file_view_pool::notify_file_open(opening_file_entry& ofe\n\t\t,
      std::shared_ptr<file_mapping> mapping\n\t\t, lt::storage_error const& se = lt::storage_error())"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_path
      Src: /src/libtorrent/src/file_view_pool.cpp:275,1
    - Dst: file_entry
      Src: /src/libtorrent/src/file_view_pool.cpp:281,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_view_pool.cpp:281,1
    - Dst: error_code
      Src: /src/libtorrent/src/file_view_pool.cpp:298,1
    - Dst: system_category
      Src: /src/libtorrent/src/file_view_pool.cpp:298,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/file_view_pool.cpp:308,1
    - Dst: create_directories
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: parent_path
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file_view_pool.cpp:315,1
    - Dst: file_entry
      Src: /src/libtorrent/src/file_view_pool.cpp:318,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_view_pool.cpp:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - ' p'
    - file_index
    - ' fs'
    - m
    - file_key
    - open_unmap_lock
    argTypes:
    - std::string
    - file_index_t
    - file_storage
    - open_mode_t
    - file_id
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 324
    functionName: libtorrent::aux::file_view_pool::open_file_impl
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 2
    functionsReached:
    - system_category
    - create_directories
    - file_entry
    - error_code
    - parent_path
    - file_path
    - throw_ex<storage_error>
    - file_size
    - ec::clear
    linkageType: ''
    returnType: file_view_pool::file_entry
    signature: "file_view_pool::file_entry file_view_pool::open_file_impl(std::string
      const& p\n\t\t, file_index_t const file_index, file_storage const& fs\n\t\t,
      open_mode_t const m, file_id const file_key\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - has_mapping
    argTypes:
    - open_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: libtorrent::aux::to_file_open_mode
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: file_open_mode_t
    signature: file_open_mode_t to_file_open_mode(open_mode_t const mode, bool const
      has_mapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:342,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:343,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_view_pool.cpp:343,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:344,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/file_view_pool.cpp:344,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:348,1
    - Dst: to_file_open_mode
      Src: /src/libtorrent/src/file_view_pool.cpp:349,1
    - Dst: auto::mapping::has_memory_map
      Src: /src/libtorrent/src/file_view_pool.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_view_pool::get_status
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - auto::mapping::has_memory_map
    - std::vector::push_back
    - libtorrent::aux::max
    - to_file_open_mode
    - upper_bound
    - file_index_t
    - get
    - lower_bound
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> file_view_pool::get_status(storage_index_t
      const st) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:358,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:359,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:362,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:363,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:363,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:366,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:366,1
    - Dst: pop_front
      Src: /src/libtorrent/src/file_view_pool.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 372
    functionName: libtorrent::aux::file_view_pool::remove_oldest
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - front
    - pop_front
    - libtorrent::dht::item_target_id
    - get
    - size
    linkageType: ''
    returnType: std::shared_ptr<file_mapping>
    signature: std::shared_ptr<file_mapping> file_view_pool::remove_oldest(std::unique_lock<std::mutex>&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:378,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:379,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:380,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:382,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:383,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - file_index
    argTypes:
    - storage_index_t
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 388
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - erase
    - end
    - find
    - std::unique_lock::unlock
    - get
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release(storage_index_t const st, file_index_t
      file_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:396,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/src/file_view_pool.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::unlock
    - std::move
    - clear
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:410,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:411,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_view_pool.cpp:411,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:412,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/file_view_pool.cpp:412,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/file_view_pool.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:415,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:417,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - erase
    - libtorrent::aux::max
    - upper_bound
    - file_index_t
    - get
    - std::unique_lock::unlock
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release(storage_index_t const st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:429,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:433,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:436,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/file_view_pool.cpp:437,1
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::file_view_pool::resize
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::vector::emplace_back
    - size
    - libtorrent::aux::file_view_pool::remove_oldest
    linkageType: ''
    returnType: void
    signature: void file_view_pool::resize(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: libtorrent::aux::file_view_pool::close_oldest
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_view_pool::remove_oldest
    linkageType: ''
    returnType: void
    signature: void file_view_pool::close_oldest()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:456,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:457,1
    - Dst: std::prev
      Src: /src/libtorrent/src/file_view_pool.cpp:459,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:459,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:462,1
    - Dst: std::shared_ptr::flush
      Src: /src/libtorrent/src/file_view_pool.cpp:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 467
    functionName: libtorrent::aux::file_view_pool::flush_next_file
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::flush
    - end
    - std::prev
    - modify
    - get
    - size
    linkageType: ''
    returnType: void
    signature: void file_view_pool::flush_next_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:473,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:474,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:475,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - st
    - file_index
    - bytes
    argTypes:
    - storage_index_t
    - file_index_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: libtorrent::aux::file_view_pool::record_file_write
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - get
    - end
    - find
    - modify
    linkageType: ''
    returnType: void
    signature: "void file_view_pool::record_file_write(storage_index_t const st\n\t\t,
      file_index_t const file_index, uint64_t const bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::file_view_pool::file_view_pool
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool::file_view_pool(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: file_view_pool::~file_view_pool()
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool::~file_view_pool()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:86,1
    - Dst: is_complete
      Src: /src/libtorrent/src/file_view_pool.cpp:86,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:87,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:89,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:91,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: begin
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:98,1
    - Dst: auto::waiters::push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:101,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:104,1
    - Dst: wait_open_entry::cond::wait
      Src: /src/libtorrent/src/file_view_pool.cpp:108,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:113,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file_view_pool.cpp:117,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:121,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:132,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:135,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/file_view_pool.cpp:137,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:140,1
    - Dst: relocate
      Src: /src/libtorrent/src/file_view_pool.cpp:141,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:141,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:145,1
    - Dst: back
      Src: /src/libtorrent/src/file_view_pool.cpp:145,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:150,1
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:154,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:160,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:163,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:167,1
    - Dst: libtorrent::aux::file_view_pool::open_file_impl
      Src: /src/libtorrent/src/file_view_pool.cpp:171,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:173,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:177,1
    - Dst: std::tie
      Src: /src/libtorrent/src/file_view_pool.cpp:189,1
    - Dst: insert
      Src: /src/libtorrent/src/file_view_pool.cpp:189,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:195,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:195,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:199,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:201,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:202,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:206,1
    - Dst: relocate
      Src: /src/libtorrent/src/file_view_pool.cpp:207,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:207,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:212,1
    - Dst: back
      Src: /src/libtorrent/src/file_view_pool.cpp:212,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:214,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:214,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:219,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:219,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:220,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:225,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:225,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:226,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:226,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:232,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:232,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:233,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:233,1
    - Dst: code
      Src: /src/libtorrent/src/file_view_pool.cpp:234,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:239,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:239,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:240,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:240,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 6
    argNames:
    - st
    - ' p'
    - file_index
    - ' fs'
    - m
    - open_unmap_lock
    argTypes:
    - storage_index_t
    - std::string
    - file_index_t
    - file_storage
    - open_mode_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 244
    functionName: libtorrent::aux::file_view_pool::open_file
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - std::move
    - begin
    - relocate
    - auto::waiters::push_back
    - throw_ex<storage_error>
    - libtorrent::aux::time_now
    - push_back
    - end
    - back
    - wait_open_entry::cond::wait
    - libtorrent::aux::file_view_pool::notify_file_open
    - modify
    - TORRENT_ASSERT
    - libtorrent::aux::file_view_pool::remove_oldest
    - libtorrent::aux::file_view_pool::open_file_impl
    - size
    - std::unique_lock::unlock
    - std::find_if
    - std::tie
    - std::unique_lock::owns_lock
    - insert
    - find
    - storage_error
    - code
    - is_complete
    - libtorrent::dht::item_target_id
    - get
    linkageType: ''
    returnType: std::shared_ptr<file_mapping>
    signature: "std::shared_ptr<file_mapping> file_view_pool::open_file(storage_index_t
      st, std::string const& p\n\t\t, file_index_t const file_index, file_storage
      const& fs\n\t\t, open_mode_t const m\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:248,1
    - Dst: waiters::empty
      Src: /src/libtorrent/src/file_view_pool.cpp:251,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:253,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:258,1
    - Dst: s_iterator_to
      Src: /src/libtorrent/src/file_view_pool.cpp:258,1
    - Dst: cond::notify_all
      Src: /src/libtorrent/src/file_view_pool.cpp:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' ofe'
    - mapping
    argTypes:
    - opening_file_entry
    - std::shared_ptr<file_mapping>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::file_view_pool::notify_file_open
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 3
    functionsReached:
    - s_iterator_to
    - erase
    - cond::notify_all
    - libtorrent::storage_error
    - waiters::empty
    - libtorrent::dht::item_target_id
    linkageType: ''
    returnType: void
    signature: "void file_view_pool::notify_file_open(opening_file_entry& ofe\n\t\t,
      std::shared_ptr<file_mapping> mapping\n\t\t, lt::storage_error const& se = lt::storage_error())"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_path
      Src: /src/libtorrent/src/file_view_pool.cpp:275,1
    - Dst: file_entry
      Src: /src/libtorrent/src/file_view_pool.cpp:281,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_view_pool.cpp:281,1
    - Dst: error_code
      Src: /src/libtorrent/src/file_view_pool.cpp:298,1
    - Dst: system_category
      Src: /src/libtorrent/src/file_view_pool.cpp:298,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/file_view_pool.cpp:308,1
    - Dst: create_directories
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: parent_path
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file_view_pool.cpp:315,1
    - Dst: file_entry
      Src: /src/libtorrent/src/file_view_pool.cpp:318,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_view_pool.cpp:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - ' p'
    - file_index
    - ' fs'
    - m
    - file_key
    - open_unmap_lock
    argTypes:
    - std::string
    - file_index_t
    - file_storage
    - open_mode_t
    - file_id
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 324
    functionName: libtorrent::aux::file_view_pool::open_file_impl
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 3
    functionsReached:
    - system_category
    - create_directories
    - file_entry
    - error_code
    - parent_path
    - file_path
    - throw_ex<storage_error>
    - file_size
    - ec::clear
    linkageType: ''
    returnType: file_view_pool::file_entry
    signature: "file_view_pool::file_entry file_view_pool::open_file_impl(std::string
      const& p\n\t\t, file_index_t const file_index, file_storage const& fs\n\t\t,
      open_mode_t const m, file_id const file_key\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - has_mapping
    argTypes:
    - open_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: libtorrent::aux::to_file_open_mode
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: file_open_mode_t
    signature: file_open_mode_t to_file_open_mode(open_mode_t const mode, bool const
      has_mapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:342,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:343,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_view_pool.cpp:343,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:344,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/file_view_pool.cpp:344,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:348,1
    - Dst: to_file_open_mode
      Src: /src/libtorrent/src/file_view_pool.cpp:349,1
    - Dst: auto::mapping::has_memory_map
      Src: /src/libtorrent/src/file_view_pool.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_view_pool::get_status
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - auto::mapping::has_memory_map
    - std::vector::push_back
    - libtorrent::aux::max
    - to_file_open_mode
    - upper_bound
    - file_index_t
    - get
    - lower_bound
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> file_view_pool::get_status(storage_index_t
      const st) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:358,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:359,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:362,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:363,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:363,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:366,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:366,1
    - Dst: pop_front
      Src: /src/libtorrent/src/file_view_pool.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 372
    functionName: libtorrent::aux::file_view_pool::remove_oldest
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 7
    functionsReached:
    - std::move
    - front
    - pop_front
    - libtorrent::dht::item_target_id
    - get
    - size
    linkageType: ''
    returnType: std::shared_ptr<file_mapping>
    signature: std::shared_ptr<file_mapping> file_view_pool::remove_oldest(std::unique_lock<std::mutex>&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:378,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:379,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:380,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:382,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:383,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - file_index
    argTypes:
    - storage_index_t
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 388
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - erase
    - end
    - find
    - std::unique_lock::unlock
    - get
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release(storage_index_t const st, file_index_t
      file_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:396,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/src/file_view_pool.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::unlock
    - std::move
    - clear
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:410,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:411,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_view_pool.cpp:411,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:412,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/file_view_pool.cpp:412,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/file_view_pool.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:415,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:417,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - erase
    - libtorrent::aux::max
    - upper_bound
    - file_index_t
    - get
    - std::unique_lock::unlock
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release(storage_index_t const st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:429,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:433,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:436,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/file_view_pool.cpp:437,1
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::file_view_pool::resize
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::vector::emplace_back
    - size
    - libtorrent::aux::file_view_pool::remove_oldest
    linkageType: ''
    returnType: void
    signature: void file_view_pool::resize(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: libtorrent::aux::file_view_pool::close_oldest
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_view_pool::remove_oldest
    linkageType: ''
    returnType: void
    signature: void file_view_pool::close_oldest()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:456,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:457,1
    - Dst: std::prev
      Src: /src/libtorrent/src/file_view_pool.cpp:459,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:459,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:462,1
    - Dst: std::shared_ptr::flush
      Src: /src/libtorrent/src/file_view_pool.cpp:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 467
    functionName: libtorrent::aux::file_view_pool::flush_next_file
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::flush
    - end
    - std::prev
    - modify
    - get
    - size
    linkageType: ''
    returnType: void
    signature: void file_view_pool::flush_next_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:473,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:474,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:475,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - st
    - file_index
    - bytes
    argTypes:
    - storage_index_t
    - file_index_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: libtorrent::aux::file_view_pool::record_file_write
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - get
    - end
    - find
    - modify
    linkageType: ''
    returnType: void
    signature: "void file_view_pool::record_file_write(storage_index_t const st\n\t\t,
      file_index_t const file_index, uint64_t const bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::file_view_pool::file_view_pool
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool::file_view_pool(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: file_view_pool::~file_view_pool()
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool::~file_view_pool()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:86,1
    - Dst: is_complete
      Src: /src/libtorrent/src/file_view_pool.cpp:86,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:87,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:89,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:91,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: begin
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:93,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:98,1
    - Dst: auto::waiters::push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:101,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:104,1
    - Dst: wait_open_entry::cond::wait
      Src: /src/libtorrent/src/file_view_pool.cpp:108,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:113,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file_view_pool.cpp:117,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:121,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:132,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:135,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/file_view_pool.cpp:137,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:140,1
    - Dst: relocate
      Src: /src/libtorrent/src/file_view_pool.cpp:141,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:141,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:145,1
    - Dst: back
      Src: /src/libtorrent/src/file_view_pool.cpp:145,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:150,1
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:154,1
    - Dst: push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:160,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:163,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:167,1
    - Dst: libtorrent::aux::file_view_pool::open_file_impl
      Src: /src/libtorrent/src/file_view_pool.cpp:171,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:173,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:177,1
    - Dst: std::tie
      Src: /src/libtorrent/src/file_view_pool.cpp:189,1
    - Dst: insert
      Src: /src/libtorrent/src/file_view_pool.cpp:189,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:195,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:195,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:199,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:201,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:202,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:206,1
    - Dst: relocate
      Src: /src/libtorrent/src/file_view_pool.cpp:207,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:207,1
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:212,1
    - Dst: back
      Src: /src/libtorrent/src/file_view_pool.cpp:212,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:214,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:214,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:219,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:219,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:220,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:225,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:225,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:226,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:226,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:232,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:232,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:233,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:233,1
    - Dst: code
      Src: /src/libtorrent/src/file_view_pool.cpp:234,1
    - Dst: std::unique_lock::owns_lock
      Src: /src/libtorrent/src/file_view_pool.cpp:239,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/file_view_pool.cpp:239,1
    - Dst: libtorrent::aux::file_view_pool::notify_file_open
      Src: /src/libtorrent/src/file_view_pool.cpp:240,1
    - Dst: storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:240,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 6
    argNames:
    - st
    - ' p'
    - file_index
    - ' fs'
    - m
    - open_unmap_lock
    argTypes:
    - storage_index_t
    - std::string
    - file_index_t
    - file_storage
    - open_mode_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 244
    functionName: libtorrent::aux::file_view_pool::open_file
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - std::move
    - begin
    - relocate
    - auto::waiters::push_back
    - throw_ex<storage_error>
    - libtorrent::aux::time_now
    - push_back
    - end
    - back
    - wait_open_entry::cond::wait
    - libtorrent::aux::file_view_pool::notify_file_open
    - modify
    - TORRENT_ASSERT
    - libtorrent::aux::file_view_pool::remove_oldest
    - libtorrent::aux::file_view_pool::open_file_impl
    - size
    - std::unique_lock::unlock
    - std::find_if
    - std::tie
    - std::unique_lock::owns_lock
    - insert
    - find
    - storage_error
    - code
    - is_complete
    - libtorrent::dht::item_target_id
    - get
    linkageType: ''
    returnType: std::shared_ptr<file_mapping>
    signature: "std::shared_ptr<file_mapping> file_view_pool::open_file(storage_index_t
      st, std::string const& p\n\t\t, file_index_t const file_index, file_storage
      const& fs\n\t\t, open_mode_t const m\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::storage_error
      Src: /src/libtorrent/src/file_view_pool.cpp:248,1
    - Dst: waiters::empty
      Src: /src/libtorrent/src/file_view_pool.cpp:251,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:253,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:258,1
    - Dst: s_iterator_to
      Src: /src/libtorrent/src/file_view_pool.cpp:258,1
    - Dst: cond::notify_all
      Src: /src/libtorrent/src/file_view_pool.cpp:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' ofe'
    - mapping
    argTypes:
    - opening_file_entry
    - std::shared_ptr<file_mapping>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::file_view_pool::notify_file_open
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 4
    functionsReached:
    - s_iterator_to
    - erase
    - cond::notify_all
    - libtorrent::storage_error
    - waiters::empty
    - libtorrent::dht::item_target_id
    linkageType: ''
    returnType: void
    signature: "void file_view_pool::notify_file_open(opening_file_entry& ofe\n\t\t,
      std::shared_ptr<file_mapping> mapping\n\t\t, lt::storage_error const& se = lt::storage_error())"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_path
      Src: /src/libtorrent/src/file_view_pool.cpp:275,1
    - Dst: file_entry
      Src: /src/libtorrent/src/file_view_pool.cpp:281,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_view_pool.cpp:281,1
    - Dst: error_code
      Src: /src/libtorrent/src/file_view_pool.cpp:298,1
    - Dst: system_category
      Src: /src/libtorrent/src/file_view_pool.cpp:298,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/file_view_pool.cpp:308,1
    - Dst: create_directories
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: parent_path
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: file_path
      Src: /src/libtorrent/src/file_view_pool.cpp:309,1
    - Dst: throw_ex<storage_error>
      Src: /src/libtorrent/src/file_view_pool.cpp:315,1
    - Dst: file_entry
      Src: /src/libtorrent/src/file_view_pool.cpp:318,1
    - Dst: file_size
      Src: /src/libtorrent/src/file_view_pool.cpp:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - ' p'
    - file_index
    - ' fs'
    - m
    - file_key
    - open_unmap_lock
    argTypes:
    - std::string
    - file_index_t
    - file_storage
    - open_mode_t
    - file_id
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 324
    functionName: libtorrent::aux::file_view_pool::open_file_impl
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - create_directories
    - file_entry
    - error_code
    - parent_path
    - file_path
    - throw_ex<storage_error>
    - file_size
    - ec::clear
    linkageType: ''
    returnType: file_view_pool::file_entry
    signature: "file_view_pool::file_entry file_view_pool::open_file_impl(std::string
      const& p\n\t\t, file_index_t const file_index, file_storage const& fs\n\t\t,
      open_mode_t const m, file_id const file_key\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - has_mapping
    argTypes:
    - open_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: libtorrent::aux::to_file_open_mode
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: file_open_mode_t
    signature: file_open_mode_t to_file_open_mode(open_mode_t const mode, bool const
      has_mapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:342,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:343,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_view_pool.cpp:343,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:344,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/file_view_pool.cpp:344,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/file_view_pool.cpp:348,1
    - Dst: to_file_open_mode
      Src: /src/libtorrent/src/file_view_pool.cpp:349,1
    - Dst: auto::mapping::has_memory_map
      Src: /src/libtorrent/src/file_view_pool.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: libtorrent::aux::file_view_pool::get_status
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - auto::mapping::has_memory_map
    - std::vector::push_back
    - libtorrent::aux::max
    - to_file_open_mode
    - upper_bound
    - file_index_t
    - get
    - lower_bound
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> file_view_pool::get_status(storage_index_t
      const st) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:358,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:359,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/src/file_view_pool.cpp:362,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:363,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:363,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:366,1
    - Dst: front
      Src: /src/libtorrent/src/file_view_pool.cpp:366,1
    - Dst: pop_front
      Src: /src/libtorrent/src/file_view_pool.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 372
    functionName: libtorrent::aux::file_view_pool::remove_oldest
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 10
    functionsReached:
    - std::move
    - front
    - pop_front
    - libtorrent::dht::item_target_id
    - get
    - size
    linkageType: ''
    returnType: std::shared_ptr<file_mapping>
    signature: std::shared_ptr<file_mapping> file_view_pool::remove_oldest(std::unique_lock<std::mutex>&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:378,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:379,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:380,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:382,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:383,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - file_index
    argTypes:
    - storage_index_t
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 388
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - erase
    - end
    - find
    - std::unique_lock::unlock
    - get
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release(storage_index_t const st, file_index_t
      file_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:396,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:397,1
    - Dst: clear
      Src: /src/libtorrent/src/file_view_pool.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::unlock
    - std::move
    - clear
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:410,1
    - Dst: lower_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:411,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/file_view_pool.cpp:411,1
    - Dst: upper_bound
      Src: /src/libtorrent/src/file_view_pool.cpp:412,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/file_view_pool.cpp:412,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/file_view_pool.cpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/src/file_view_pool.cpp:415,1
    - Dst: erase
      Src: /src/libtorrent/src/file_view_pool.cpp:417,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/file_view_pool.cpp:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - storage_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::file_view_pool::release
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - erase
    - libtorrent::aux::max
    - upper_bound
    - file_index_t
    - get
    - std::unique_lock::unlock
    - lower_bound
    linkageType: ''
    returnType: void
    signature: void file_view_pool::release(storage_index_t const st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/file_view_pool.cpp:429,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:433,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:436,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/file_view_pool.cpp:437,1
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::file_view_pool::resize
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::vector::emplace_back
    - size
    - libtorrent::aux::file_view_pool::remove_oldest
    linkageType: ''
    returnType: void
    signature: void file_view_pool::resize(int const size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::file_view_pool::remove_oldest
      Src: /src/libtorrent/src/file_view_pool.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: libtorrent::aux::file_view_pool::close_oldest
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_view_pool::remove_oldest
    linkageType: ''
    returnType: void
    signature: void file_view_pool::close_oldest()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:456,1
    - Dst: size
      Src: /src/libtorrent/src/file_view_pool.cpp:457,1
    - Dst: std::prev
      Src: /src/libtorrent/src/file_view_pool.cpp:459,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:459,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:462,1
    - Dst: std::shared_ptr::flush
      Src: /src/libtorrent/src/file_view_pool.cpp:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 467
    functionName: libtorrent::aux::file_view_pool::flush_next_file
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::flush
    - end
    - std::prev
    - modify
    - get
    - size
    linkageType: ''
    returnType: void
    signature: void file_view_pool::flush_next_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/file_view_pool.cpp:473,1
    - Dst: find
      Src: /src/libtorrent/src/file_view_pool.cpp:474,1
    - Dst: end
      Src: /src/libtorrent/src/file_view_pool.cpp:475,1
    - Dst: modify
      Src: /src/libtorrent/src/file_view_pool.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - st
    - file_index
    - bytes
    argTypes:
    - storage_index_t
    - file_index_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: libtorrent::aux::file_view_pool::record_file_write
    functionSourceFile: /src/libtorrent/src/file_view_pool.cpp
    functionUses: 0
    functionsReached:
    - get
    - end
    - find
    - modify
    linkageType: ''
    returnType: void
    signature: "void file_view_pool::record_file_write(storage_index_t const st\n\t\t,
      file_index_t const file_index, uint64_t const bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upnp_category
      Src: /src/libtorrent/src/upnp.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: libtorrent::upnp_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - upnp_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upnp_category
      Src: /src/libtorrent/src/upnp.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: libtorrent::upnp_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - upnp_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: upnp::rootdevice::rootdevice()
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::rootdevice()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: upnp::rootdevice::~rootdevice()
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::~rootdevice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: upnp::rootdevice::~rootdevice()
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::~rootdevice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: upnp::rootdevice::rootdevice(rootdevice const&)
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::rootdevice(rootdevice const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: upnp::rootdevice::rootdevice(rootdevice&&) noexcept
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::rootdevice(rootdevice&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/upnp.cpp:125,1
    - Dst: std::move
      Src: /src/libtorrent/src/upnp.cpp:129,1
    - Dst: set_verify_mode
      Src: /src/libtorrent/src/upnp.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' ios'
    - ' settings'
    - ' cb'
    - listen_address
    - netmask
    - listen_device
    - ls
    argTypes:
    - io_context
    - aux::session_settings
    - aux::portmap_callback
    - address_v4
    - address_v4
    - std::string
    - listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: libtorrent::upnp::upnp
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - set_verify_mode
    linkageType: ''
    returnType: void
    signature: "void upnp::upnp(io_context& ios\n\t, aux::session_settings const&
      settings\n\t, aux::portmap_callback& cb\n\t, address_v4 const listen_address\n\t,
      address_v4 const netmask\n\t, std::string listen_device\n\t, listen_socket_handle
      ls)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:138,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:138,1
    - Dst: libtorrent::upnp::open_multicast_socket
      Src: /src/libtorrent/src/upnp.cpp:141,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:143,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:145,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:146,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:146,1
    - Dst: libtorrent::upnp::open_unicast_socket
      Src: /src/libtorrent/src/upnp.cpp:152,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:154,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:156,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:157,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:157,1
    - Dst: reserve
      Src: /src/libtorrent/src/upnp.cpp:163,1
    - Dst: libtorrent::upnp::discover_device_impl
      Src: /src/libtorrent/src/upnp.cpp:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: libtorrent::upnp::start
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::upnp::open_multicast_socket
    - libtorrent::upnp::open_unicast_socket
    - is_single_thread
    - TORRENT_ASSERT
    - reserve
    - error_code::message
    - libtorrent::upnp::log
    - libtorrent::upnp::discover_device_impl
    - libtorrent::upnp::should_log
    - convert_from_native
    linkageType: ''
    returnType: void
    signature: void upnp::start()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket::open
      Src: /src/libtorrent/src/upnp.cpp:177,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/upnp.cpp:177,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:179,1
    - Dst: udp::socket::reuse_address
      Src: /src/libtorrent/src/upnp.cpp:179,1
    - Dst: socket::bind
      Src: /src/libtorrent/src/upnp.cpp:181,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/upnp.cpp:181,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:183,1
    - Dst: join_group
      Src: /src/libtorrent/src/upnp.cpp:183,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:185,1
    - Dst: hops
      Src: /src/libtorrent/src/upnp.cpp:185,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:187,1
    - Dst: enable_loopback
      Src: /src/libtorrent/src/upnp.cpp:187,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:189,1
    - Dst: outbound_interface
      Src: /src/libtorrent/src/upnp.cpp:189,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:192,1
    - Dst: socket::async_receive_from
      Src: /src/libtorrent/src/upnp.cpp:193,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:193,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:194,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:194,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ' s'
    - ' ec'
    argTypes:
    - aux::socket_package
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 195
    functionName: libtorrent::upnp::open_multicast_socket
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - hops
    - rand_v4
    - enable_loopback
    - socket::bind
    - outbound_interface
    - udp::socket::reuse_address
    - std::ref
    - socket::open
    - socket::async_receive_from
    - local_endpoint
    - both_sides_from_store_buffer
    - socket::set_option
    - self
    - join_group
    linkageType: ''
    returnType: void
    signature: void upnp::open_multicast_socket(aux::socket_package& s, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket::open
      Src: /src/libtorrent/src/upnp.cpp:199,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/upnp.cpp:199,1
    - Dst: socket::bind
      Src: /src/libtorrent/src/upnp.cpp:201,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/upnp.cpp:201,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:204,1
    - Dst: socket::async_receive_from
      Src: /src/libtorrent/src/upnp.cpp:205,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:205,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:206,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:206,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' ec'
    argTypes:
    - aux::socket_package
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: libtorrent::upnp::open_unicast_socket
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - rand_v4
    - socket::bind
    - std::ref
    - socket::open
    - socket::async_receive_from
    - local_endpoint
    - both_sides_from_store_buffer
    - self
    linkageType: ''
    returnType: void
    signature: void upnp::open_unicast_socket(aux::socket_package& s, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: upnp::~upnp()
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::~upnp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_log_portmap
      Src: /src/libtorrent/src/upnp.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: libtorrent::upnp::should_log
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - should_log_portmap
    linkageType: ''
    returnType: bool
    signature: bool upnp::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:220,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:220,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:221,1
    - Dst: va_start
      Src: /src/libtorrent/src/upnp.cpp:223,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/upnp.cpp:225,1
    - Dst: va_end
      Src: /src/libtorrent/src/upnp.cpp:226,1
    - Dst: log_portmap
      Src: /src/libtorrent/src/upnp.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: libtorrent::upnp::log
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - log_portmap
    - va_start
    - is_single_thread
    - TORRENT_ASSERT
    - va_end
    - libtorrent::upnp::should_log
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void upnp::log(char const* fmt, ...) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:233,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:233,1
    - Dst: socket::send_to
      Src: /src/libtorrent/src/upnp.cpp:249,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:249,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/upnp.cpp:250,1
    - Dst: socket::send_to
      Src: /src/libtorrent/src/upnp.cpp:251,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:251,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/upnp.cpp:252,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:257,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:259,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:260,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:260,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:261,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:261,1
    - Dst: libtorrent::upnp::disable
      Src: /src/libtorrent/src/upnp.cpp:264,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:268,1
    - Dst: expires_after
      Src: /src/libtorrent/src/upnp.cpp:270,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:270,1
    - Dst: async_wait
      Src: /src/libtorrent/src/upnp.cpp:271,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:271,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:272,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 277
    functionName: libtorrent::upnp::discover_device_impl
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - libtorrent::upnp::disable
    - socket::send_to
    - async_wait
    - is_single_thread
    - seconds
    - expires_after
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - local_endpoint
    - libtorrent::upnp::log
    - error_code::message
    - self
    - libtorrent::upnp::should_log
    - convert_from_native
    linkageType: ''
    returnType: void
    signature: void upnp::discover_device_impl()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:283,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:283,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:285,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:288,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:290,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:293,1
    - Dst: c_str
      Src: /src/libtorrent/src/upnp.cpp:293,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/upnp.cpp:299,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:299,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:299,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:302,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:304,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:304,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:305,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:308,1
    - Dst: push_back
      Src: /src/libtorrent/src/upnp.cpp:312,1
    - Dst: global_mapping_t
      Src: /src/libtorrent/src/upnp.cpp:312,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:313,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:321,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:321,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:326,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:329,1
    - Dst: mapping::resize
      Src: /src/libtorrent/src/upnp.cpp:330,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:330,1
    - Dst: service_namespace::empty
      Src: /src/libtorrent/src/upnp.cpp:339,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - p
    - external_port
    - local_ep
    - ' device'
    argTypes:
    - portmap_protocol
    - int
    - tcp::endpoint
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 343
    functionName: libtorrent::upnp::add_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - begin
    - c_str
    - const_cast<rootdevice&>
    - is_single_thread
    - end
    - service_namespace::empty
    - print_endpoint
    - TORRENT_ASSERT
    - libtorrent::upnp::update_map
    - mapping::resize
    - libtorrent::upnp::log
    - global_mapping_t
    - libtorrent::upnp::should_log
    - mapping::end_index
    - size
    - std::find_if
    linkageType: ''
    returnType: port_mapping_t
    signature: "port_mapping_t upnp::add_mapping(portmap_protocol const p, int const
      external_port\n\t, tcp::endpoint const local_ep, std::string const& device)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:347,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:347,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:349,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:354,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:356,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:359,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/upnp.cpp:360,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:369,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:372,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:372,1
    - Dst: service_namespace::empty
      Src: /src/libtorrent/src/upnp.cpp:375,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 377
    functionName: libtorrent::upnp::delete_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - const_cast<rootdevice&>
    - is_single_thread
    - service_namespace::empty
    - print_endpoint
    - TORRENT_ASSERT
    - libtorrent::upnp::update_map
    - libtorrent::upnp::log
    - libtorrent::upnp::should_log
    - mapping::end_index
    - end_index
    - device::c_str
    linkageType: ''
    returnType: void
    signature: void upnp::delete_mapping(port_mapping_t const mapping)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:384,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:385,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:385,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - index
    - ' local_ep'
    - ' external_port'
    - ' protocol'
    argTypes:
    - port_mapping_t
    - tcp::endpoint
    - int
    - portmap_protocol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: libtorrent::upnp::get_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - end_index
    linkageType: ''
    returnType: bool
    signature: "bool upnp::get_mapping(port_mapping_t const index\n\t, tcp::endpoint&
      local_ep\n\t, int& external_port\n\t, portmap_protocol& protocol) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:397,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:397,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:398,1
    - Dst: empty
      Src: /src/libtorrent/src/upnp.cpp:406,1
    - Dst: libtorrent::upnp::discover_device_impl
      Src: /src/libtorrent/src/upnp.cpp:408,1
    - Dst: empty
      Src: /src/libtorrent/src/upnp.cpp:412,1
    - Dst: libtorrent::upnp::disable
      Src: /src/libtorrent/src/upnp.cpp:414,1
    - Dst: control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:420,1
    - Dst: libtorrent::upnp::connect
      Src: /src/libtorrent/src/upnp.cpp:429,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:429,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 431
    functionName: libtorrent::upnp::resend_request
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::upnp::disable
    - const_cast<rootdevice&>
    - libtorrent::upnp::connect
    - is_single_thread
    - empty
    - TORRENT_ASSERT
    - control_url::empty
    - libtorrent::upnp::discover_device_impl
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void upnp::resend_request(error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:435,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:439,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:439,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:441,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/upnp.cpp:442,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:444,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:444,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:445,1
    - Dst: http_connect_handler
      Src: /src/libtorrent/src/upnp.cpp:446,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:447,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:448,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:453,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:453,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/upnp.cpp:457,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:459,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:459,1
    - Dst: what
      Src: /src/libtorrent/src/upnp.cpp:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - rootdevice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 463
    functionName: libtorrent::upnp::connect
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - std::make_shared<http_connection>
    - TORRENT_UNUSED
    - upnp_connection::close
    - hostname_filter_handler
    - seconds
    - upnp_connection::get
    - std::ref
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    - self
    - http_connect_handler
    - http_filter_handler
    - what
    - url::c_str
    linkageType: ''
    returnType: void
    signature: void upnp::connect(rootdevice& d)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:467,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:467,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:468,1
    - Dst: scope_end
      Src: /src/libtorrent/src/upnp.cpp:504,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:505,1
    - Dst: socket::async_receive_from
      Src: /src/libtorrent/src/upnp.cpp:506,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:506,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:507,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:507,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:507,1
    - Dst: get_bool
      Src: /src/libtorrent/src/upnp.cpp:512,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/src/upnp.cpp:513,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/upnp.cpp:513,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:516,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:518,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:519,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:520,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:521,1
    - Dst: http_parser::incoming
      Src: /src/libtorrent/src/upnp.cpp:529,1
    - Dst: buffer::data
      Src: /src/libtorrent/src/upnp.cpp:529,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/upnp.cpp:529,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:533,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:535,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:536,1
    - Dst: http_parser::status_code
      Src: /src/libtorrent/src/upnp.cpp:542,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/upnp.cpp:542,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:545,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/upnp.cpp:547,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:549,1
    - Dst: http_parser::status_code
      Src: /src/libtorrent/src/upnp.cpp:550,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:550,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:554,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/upnp.cpp:555,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:555,1
    - Dst: http_parser::header_finished
      Src: /src/libtorrent/src/upnp.cpp:562,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:565,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:567,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:568,1
    - Dst: http_parser::header
      Src: /src/libtorrent/src/upnp.cpp:574,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/upnp.cpp:575,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:578,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:580,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:581,1
    - Dst: find
      Src: /src/libtorrent/src/upnp.cpp:590,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:592,1
    - Dst: std::tie
      Src: /src/libtorrent/src/upnp.cpp:598,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/upnp.cpp:599,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:605,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:607,1
    - Dst: rootdevice::url::c_str
      Src: /src/libtorrent/src/upnp.cpp:608,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:608,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:608,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:608,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:620,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:622,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/upnp.cpp:623,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:623,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:632,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:634,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:634,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:641,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:643,1
    - Dst: rootdevice::url::c_str
      Src: /src/libtorrent/src/upnp.cpp:644,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:644,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:648,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:651,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:653,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:654,1
    - Dst: rootdevice::url::c_str
      Src: /src/libtorrent/src/upnp.cpp:654,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:660,1
    - Dst: rootdevice::mapping::empty
      Src: /src/libtorrent/src/upnp.cpp:660,1
    - Dst: rootdevice::mapping::push_back
      Src: /src/libtorrent/src/upnp.cpp:669,1
    - Dst: std::tie
      Src: /src/libtorrent/src/upnp.cpp:671,1
    - Dst: insert
      Src: /src/libtorrent/src/upnp.cpp:671,1
    - Dst: libtorrent::upnp::try_map_upnp
      Src: /src/libtorrent/src/upnp.cpp:676,1
    - Dst: expires_after
      Src: /src/libtorrent/src/upnp.cpp:681,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:681,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:682,1
    - Dst: async_wait
      Src: /src/libtorrent/src/upnp.cpp:683,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:683,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:683,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 93
    argCount: 3
    argNames:
    - ' s'
    - ' ec'
    - len
    argTypes:
    - aux::socket_package
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 684
    functionName: libtorrent::upnp::on_reply
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - rootdevice::mapping::empty
    - seconds
    - libtorrent::upnp::log
    - self
    - get_bool
    - ADD_OUTSTANDING_ASYNC
    - parse_url_components
    - libtorrent::upnp::try_map_upnp
    - udp::endpoint::address
    - is_single_thread
    - buffer::data
    - end
    - print_endpoint
    - expires_after
    - error_code::message
    - http_parser::header
    - COMPLETE_ASYNC
    - scope_end
    - async_wait
    - TORRENT_ASSERT
    - socket::async_receive_from
    - http_parser::incoming
    - http_parser::header_finished
    - convert_from_native
    - http_parser::status_code
    - size
    - std::ptrdiff_t
    - std::bind
    - rootdevice::mapping::push_back
    - http_parser::method
    - std::tie
    - insert
    - std::string::empty
    - std::string::c_str
    - find
    - std::ref
    - both_sides_from_store_buffer
    - match_addr_mask
    - libtorrent::upnp::should_log
    - rootdevice::url::c_str
    linkageType: ''
    returnType: void
    signature: void upnp::on_reply(aux::socket_package& s, error_code const& ec, std::size_t
      const len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:688,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:688,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:689,1
    - Dst: libtorrent::upnp::try_map_upnp
      Src: /src/libtorrent/src/upnp.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 694
    functionName: libtorrent::upnp::map_timer
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - COMPLETE_ASYNC
    - libtorrent::upnp::try_map_upnp
    linkageType: ''
    returnType: void
    signature: void upnp::map_timer(error_code const& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:698,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:698,1
    - Dst: empty
      Src: /src/libtorrent/src/upnp.cpp:699,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:701,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:701,1
    - Dst: auto::control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:703,1
    - Dst: libtorrent::upnp::connect
      Src: /src/libtorrent/src/upnp.cpp:707,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 710
    functionName: libtorrent::upnp::try_map_upnp
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 2
    functionsReached:
    - auto::control_url::empty
    - begin
    - const_cast<rootdevice&>
    - libtorrent::upnp::connect
    - is_single_thread
    - empty
    - end
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void upnp::try_map_upnp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:715,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:715,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:716,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:717,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:718,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:721,1
    - Dst: path::c_str
      Src: /src/libtorrent/src/upnp.cpp:727,1
    - Dst: hostname::c_str
      Src: /src/libtorrent/src/upnp.cpp:727,1
    - Dst: strlen
      Src: /src/libtorrent/src/upnp.cpp:728,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:728,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' d'
    - soap
    - soap_action
    argTypes:
    - upnp::rootdevice
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 736
    functionName: libtorrent::upnp::post
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - service_namespace::c_str
    - is_single_thread
    - std::snprintf
    - path::c_str
    - hostname::c_str
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    - strlen
    linkageType: ''
    returnType: void
    signature: "void upnp::post(upnp::rootdevice const& d, char const* soap\n\t, char
      const* soap_action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/upnp.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - rootdevice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: libtorrent::upnp::lease_duration
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int upnp::lease_duration(rootdevice const& d) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:748,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:748,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:754,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:756,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:756,1
    - Dst: print_address
      Src: /src/libtorrent/src/upnp.cpp:764,1
    - Dst: socket
      Src: /src/libtorrent/src/upnp.cpp:764,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:767,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:780,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:781,1
    - Dst: local_ep::port
      Src: /src/libtorrent/src/upnp.cpp:782,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/upnp.cpp:783,1
    - Dst: get_bool
      Src: /src/libtorrent/src/upnp.cpp:784,1
    - Dst: get_str
      Src: /src/libtorrent/src/upnp.cpp:785,1
    - Dst: libtorrent::upnp::lease_duration
      Src: /src/libtorrent/src/upnp.cpp:786,1
    - Dst: libtorrent::upnp::post
      Src: /src/libtorrent/src/upnp.cpp:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' c'
    - ' d'
    - i
    argTypes:
    - http_connection
    - rootdevice
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 789
    functionName: libtorrent::upnp::create_port_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - get_str
    - print_address
    - libtorrent::upnp::lease_duration
    - service_namespace::c_str
    - local_ep::port
    - libtorrent::upnp::post
    - is_single_thread
    - std::snprintf
    - std::string::c_str
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    - socket
    - get_bool
    linkageType: ''
    returnType: void
    signature: "void upnp::create_port_mapping(http_connection& c, rootdevice& d\n\t,
      port_mapping_t const i)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:793,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:793,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:794,1
    - Dst: prev
      Src: /src/libtorrent/src/upnp.cpp:795,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:795,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:797,1
    - Dst: generate_next
      Src: /src/libtorrent/src/upnp.cpp:797,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/upnp.cpp:801,1
    - Dst: mapping::begin
      Src: /src/libtorrent/src/upnp.cpp:801,1
    - Dst: mapping::end
      Src: /src/libtorrent/src/upnp.cpp:801,1
    - Dst: mapping::end
      Src: /src/libtorrent/src/upnp.cpp:803,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:805,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:805,1
    - Dst: mapping::begin
      Src: /src/libtorrent/src/upnp.cpp:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' d'
    - i
    argTypes:
    - rootdevice
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 807
    functionName: libtorrent::upnp::next
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - generate_next
    - static_cast<int>
    - mapping::end
    - prev
    - is_single_thread
    - TORRENT_ASSERT
    - libtorrent::upnp::update_map
    - end_index
    - mapping::begin
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void upnp::next(rootdevice& d, port_mapping_t const i)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:811,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:811,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:812,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:813,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:813,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:814,1
    - Dst: mapping::size
      Src: /src/libtorrent/src/upnp.cpp:814,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:814,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:815,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:820,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:830,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:830,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:833,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:837,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:838,1
    - Dst: service_namespace::empty
      Src: /src/libtorrent/src/upnp.cpp:838,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:841,1
    - Dst: hostname::c_str
      Src: /src/libtorrent/src/upnp.cpp:841,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:849,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:853,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/upnp.cpp:854,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:856,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:856,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:857,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:858,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:858,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:858,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:859,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:860,1
    - Dst: local_ep::address
      Src: /src/libtorrent/src/upnp.cpp:866,1
    - Dst: upnp_connection::start
      Src: /src/libtorrent/src/upnp.cpp:867,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:868,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:872,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/upnp.cpp:873,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:875,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:875,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:876,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:877,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:877,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:877,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:878,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:879,1
    - Dst: local_ep::address
      Src: /src/libtorrent/src/upnp.cpp:884,1
    - Dst: upnp_connection::start
      Src: /src/libtorrent/src/upnp.cpp:885,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:886,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/upnp.cpp:890,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:890,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - ' d'
    - i
    argTypes:
    - rootdevice
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 809
    functionDepth: 3
    functionLinenumber: 809
    functionLinenumberEnd: 891
    functionName: libtorrent::upnp::update_map
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - seconds
    - libtorrent::upnp::log
    - self
    - libtorrent::aux::time_now
    - std::make_shared<http_connection>
    - is_single_thread
    - upnp_connection::close
    - mapping::size
    - libtorrent::upnp::next
    - http_filter_handler
    - hostname_filter_handler
    - hostname::c_str
    - TORRENT_ASSERT
    - upnp_connection::start
    - mapping::end_index
    - size
    - std::bind
    - service_namespace::empty
    - std::ref
    - local_ep::address
    linkageType: ''
    returnType: void
    signature: void upnp::update_map(rootdevice& d, port_mapping_t const i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:895,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:895,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:897,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:901,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:903,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:903,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:911,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:919,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:921,1
    - Dst: libtorrent::upnp::post
      Src: /src/libtorrent/src/upnp.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' d'
    - i
    argTypes:
    - rootdevice
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 925
    functionName: libtorrent::upnp::delete_port_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - libtorrent::upnp::post
    - service_namespace::c_str
    - is_single_thread
    - std::snprintf
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    linkageType: ''
    returnType: void
    signature: void upnp::delete_port_mapping(rootdevice& d, port_mapping_t const
      i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tag_stack::push_back
      Src: /src/libtorrent/src/upnp.cpp:931,1
    - Dst: tag_stack::empty
      Src: /src/libtorrent/src/upnp.cpp:935,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:937,1
    - Dst: tag_stack::back
      Src: /src/libtorrent/src/upnp.cpp:937,1
    - Dst: tag_stack::pop_back
      Src: /src/libtorrent/src/upnp.cpp:939,1
    - Dst: tag_stack::empty
      Src: /src/libtorrent/src/upnp.cpp:944,1
    - Dst: libtorrent::top_tags
      Src: /src/libtorrent/src/upnp.cpp:947,1
    - Dst: service_type::empty
      Src: /src/libtorrent/src/upnp.cpp:948,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:950,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:951,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:952,1
    - Dst: service_type::assign
      Src: /src/libtorrent/src/upnp.cpp:954,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:954,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:954,1
    - Dst: control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:958,1
    - Dst: libtorrent::top_tags
      Src: /src/libtorrent/src/upnp.cpp:959,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/upnp.cpp:959,1
    - Dst: control_url::assign
      Src: /src/libtorrent/src/upnp.cpp:962,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:962,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:962,1
    - Dst: model::empty
      Src: /src/libtorrent/src/upnp.cpp:964,1
    - Dst: libtorrent::top_tags
      Src: /src/libtorrent/src/upnp.cpp:964,1
    - Dst: model::assign
      Src: /src/libtorrent/src/upnp.cpp:966,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:966,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:966,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:968,1
    - Dst: tag_stack::back
      Src: /src/libtorrent/src/upnp.cpp:968,1
    - Dst: url_base::assign
      Src: /src/libtorrent/src/upnp.cpp:970,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:970,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:970,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 30
    argCount: 3
    argNames:
    - type
    - str
    - ' state'
    argTypes:
    - int
    - string_view
    - parse_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 973
    functionName: libtorrent::find_control_url
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - model::empty
    - tag_stack::back
    - string_view::end
    - libtorrent::string_equal_no_case
    - control_url::assign
    - tag_stack::pop_back
    - tag_stack::push_back
    - tag_stack::empty
    - service_type::assign
    - string_view::size
    - control_url::empty
    - service_type::empty
    - model::assign
    - libtorrent::top_tags
    - string_view::begin
    - url_base::assign
    linkageType: ''
    returnType: void
    signature: void find_control_url(int const type, string_view str, parse_state&
      state)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:979,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:979,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:982,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:983,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:985,1
    - Dst: upnp_connection::reset
      Src: /src/libtorrent/src/upnp.cpp:986,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:994,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:996,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:997,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:997,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:997,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1004,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1007,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1008,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1014,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1017,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1019,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1020,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1020,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1020,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1028,1
    - Dst: xml_parse
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: auto::data
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: auto::size
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: parse_state::control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:1030,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1033,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1034,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1041,1
    - Dst: service_namespace::empty
      Src: /src/libtorrent/src/upnp.cpp:1041,1
    - Dst: parse_state::model::empty
      Src: /src/libtorrent/src/upnp.cpp:1043,1
    - Dst: parse_state::url_base::empty
      Src: /src/libtorrent/src/upnp.cpp:1045,1
    - Dst: parse_state::control_url::substr
      Src: /src/libtorrent/src/upnp.cpp:1045,1
    - Dst: parse_state::url_base::size
      Src: /src/libtorrent/src/upnp.cpp:1048,1
    - Dst: parse_state::control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:1049,1
    - Dst: parse_state::url_base::erase
      Src: /src/libtorrent/src/upnp.cpp:1051,1
    - Dst: parse_state::url_base::end
      Src: /src/libtorrent/src/upnp.cpp:1051,1
    - Dst: control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:1059,1
    - Dst: std::tie
      Src: /src/libtorrent/src/upnp.cpp:1061,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/upnp.cpp:1062,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:1065,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1069,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1071,1
    - Dst: control_url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1073,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:1073,1
    - Dst: parse_state::url_base::c_str
      Src: /src/libtorrent/src/upnp.cpp:1074,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1074,1
    - Dst: std::tie
      Src: /src/libtorrent/src/upnp.cpp:1078,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/upnp.cpp:1079,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1085,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1087,1
    - Dst: control_url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1088,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1088,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:1088,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:1095,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/upnp.cpp:1096,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1098,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:1098,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1099,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1100,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:1100,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1100,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:1101,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:1102,1
    - Dst: upnp_connection::start
      Src: /src/libtorrent/src/upnp.cpp:1107,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:1107,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 4
    argNames:
    - ' e'
    - ' p'
    - ' d'
    - ' c'
    argTypes:
    - error_code
    - libtorrent::http_parser
    - rootdevice
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1108
    functionName: libtorrent::upnp::on_upnp_xml
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - parse_state::model::empty
    - seconds
    - header_finished
    - libtorrent::upnp::log
    - self
    - parse_state::url_base::empty
    - parse_url_components
    - std::make_shared<http_connection>
    - parse_state::url_base::c_str
    - is_single_thread
    - upnp_connection::close
    - message
    - parse_state::url_base::erase
    - std::size_t
    - control_url::empty
    - error_code::message
    - get_body
    - http_filter_handler
    - hostname_filter_handler
    - service_namespace::c_str
    - control_url::c_str
    - TORRENT_ASSERT
    - auto::size
    - upnp_connection::start
    - xml_parse
    - parse_state::control_url::substr
    - convert_from_native
    - parse_state::url_base::end
    - url::c_str
    - auto::data
    - std::bind
    - std::tie
    - parse_state::url_base::size
    - service_namespace::empty
    - std::ref
    - upnp_connection::reset
    - status_code
    - parse_state::control_url::empty
    - libtorrent::upnp::should_log
    - upnp_connection::get
    linkageType: ''
    returnType: void
    signature: "void upnp::on_upnp_xml(error_code const& e\n\t, libtorrent::http_parser
      const& p, rootdevice& d\n\t, http_connection& c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1112,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1114,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1118,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1120,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:1128,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:1133,1
    - Dst: libtorrent::upnp::post
      Src: /src/libtorrent/src/upnp.cpp:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - rootdevice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1137
    functionName: libtorrent::upnp::get_ip_address
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::upnp::post
    - service_namespace::c_str
    - is_single_thread
    - std::snprintf
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    linkageType: ''
    returnType: void
    signature: void upnp::get_ip_address(rootdevice& d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1141,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1141,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:1145,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:1145,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/upnp.cpp:1150,1
    - Dst: port_mapping_t
      Src: /src/libtorrent/src/upnp.cpp:1150,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:1150,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:1150,1
    - Dst: address
      Src: /src/libtorrent/src/upnp.cpp:1151,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1158,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1159,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1160,1
    - Dst: socket::close
      Src: /src/libtorrent/src/upnp.cpp:1162,1
    - Dst: socket::close
      Src: /src/libtorrent/src/upnp.cpp:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1164
    functionName: libtorrent::upnp::disable
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - begin
    - is_single_thread
    - end
    - port_mapping_t
    - cancel
    - TORRENT_ASSERT
    - socket::close
    - on_port_mapping
    - address
    linkageType: ''
    returnType: void
    signature: void upnp::disable(error_code const& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::atoi
      Src: /src/libtorrent/src/upnp.cpp:1175,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/upnp.cpp:1175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - type
    - string
    - ' state'
    argTypes:
    - int
    - string_view
    - error_code_parse_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1178
    functionName: libtorrent::find_error_code
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - std::atoi
    - string_view::to_string
    linkageType: ''
    returnType: void
    signature: void find_error_code(int const type, string_view string, error_code_parse_state&
      state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find_error_code
      Src: /src/libtorrent/src/upnp.cpp:1182,1
    - Dst: ip_address::assign
      Src: /src/libtorrent/src/upnp.cpp:1191,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:1191,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:1191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - type
    - string
    - ' state'
    argTypes:
    - int
    - string_view
    - ip_address_parse_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1194
    functionName: libtorrent::find_ip_address
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - string_view::begin
    - ip_address::assign
    - libtorrent::find_error_code
    - string_view::end
    linkageType: ''
    returnType: void
    signature: void find_ip_address(int const type, string_view string, ip_address_parse_state&
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1229
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/upnp.cpp:1236,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1246
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 2
    functionsReached:
    - std::snprintf
    - std::lower_bound
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1252
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1259
    functionName: libtorrent::upnp_category
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & upnp_category()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1265,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1265,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1268,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:1269,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:1271,1
    - Dst: upnp_connection::reset
      Src: /src/libtorrent/src/upnp.cpp:1272,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1280,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1282,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1283,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1283,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1286,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1286,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1290,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1293,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1295,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1295,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1299,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1302,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1304,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1305,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1305,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1308,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1308,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1321,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1323,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1325,1
    - Dst: std::string
      Src: /src/libtorrent/src/upnp.cpp:1326,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1326,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/upnp.cpp:1326,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1326,1
    - Dst: xml_parse
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1335,1
    - Dst: ip_address_parse_state::ip_address::empty
      Src: /src/libtorrent/src/upnp.cpp:1339,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1342,1
    - Dst: ip_address_parse_state::ip_address::c_str
      Src: /src/libtorrent/src/upnp.cpp:1342,1
    - Dst: make_address
      Src: /src/libtorrent/src/upnp.cpp:1344,1
    - Dst: ip_address_parse_state::ip_address::c_str
      Src: /src/libtorrent/src/upnp.cpp:1344,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1349,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1353,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1353,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - ' e'
    - ' p'
    - ' d'
    - ' c'
    argTypes:
    - error_code
    - libtorrent::http_parser
    - rootdevice
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1261
    functionDepth: 4
    functionLinenumber: 1261
    functionLinenumberEnd: 1354
    functionName: libtorrent::upnp::on_upnp_get_ip_address_response
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - ip_address_parse_state::ip_address::empty
    - static_cast<std::size_t>
    - header_finished
    - ip_address_parse_state::ip_address::c_str
    - libtorrent::upnp::log
    - libtorrent::upnp::update_map
    - num_mappings
    - is_single_thread
    - upnp_connection::close
    - message
    - std::size_t
    - make_address
    - get_body
    - std::string
    - span::data
    - TORRENT_ASSERT
    - xml_parse
    - convert_from_native
    - std::bind
    - std::ref
    - upnp_connection::reset
    - status_code
    - libtorrent::upnp::should_log
    - upnp_connection::get
    linkageType: ''
    returnType: void
    signature: "void upnp::on_upnp_get_ip_address_response(error_code const& e\n\t,
      libtorrent::http_parser const& p, rootdevice& d\n\t, http_connection& c)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1360,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1363,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:1364,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:1366,1
    - Dst: upnp_connection::reset
      Src: /src/libtorrent/src/upnp.cpp:1367,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1373,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1375,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1376,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1376,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1402,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1405,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:1407,1
    - Dst: header
      Src: /src/libtorrent/src/upnp.cpp:1411,1
    - Dst: empty
      Src: /src/libtorrent/src/upnp.cpp:1412,1
    - Dst: find_first_of
      Src: /src/libtorrent/src/upnp.cpp:1413,1
    - Dst: find_first_of
      Src: /src/libtorrent/src/upnp.cpp:1414,1
    - Dst: find_first_of
      Src: /src/libtorrent/src/upnp.cpp:1415,1
    - Dst: find_first_of
      Src: /src/libtorrent/src/upnp.cpp:1416,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1420,1
    - Dst: c_str
      Src: /src/libtorrent/src/upnp.cpp:1421,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:1423,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1431,1
    - Dst: xml_parse
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1437,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1449,1
    - Dst: libtorrent::upnp::return_error
      Src: /src/libtorrent/src/upnp.cpp:1454,1
    - Dst: random
      Src: /src/libtorrent/src/upnp.cpp:1461,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1464,1
    - Dst: libtorrent::upnp::return_error
      Src: /src/libtorrent/src/upnp.cpp:1469,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1473,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1475,1
    - Dst: std::string
      Src: /src/libtorrent/src/upnp.cpp:1476,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1476,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/upnp.cpp:1476,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1476,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/upnp.cpp:1482,1
    - Dst: error_code
      Src: /src/libtorrent/src/upnp.cpp:1482,1
    - Dst: get_int
      Src: /src/libtorrent/src/upnp.cpp:1484,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/upnp.cpp:1486,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:1487,1
    - Dst: get_int
      Src: /src/libtorrent/src/upnp.cpp:1488,1
    - Dst: expiry
      Src: /src/libtorrent/src/upnp.cpp:1489,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:1492,1
    - Dst: expires_at
      Src: /src/libtorrent/src/upnp.cpp:1493,1
    - Dst: async_wait
      Src: /src/libtorrent/src/upnp.cpp:1494,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1494,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:1494,1
    - Dst: max_time
      Src: /src/libtorrent/src/upnp.cpp:1499,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:1504,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 5
    argNames:
    - ' e'
    - ' p'
    - ' d'
    - mapping
    - ' c'
    argTypes:
    - error_code
    - libtorrent::http_parser
    - rootdevice
    - port_mapping_t
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1356
    functionDepth: 4
    functionLinenumber: 1356
    functionLinenumberEnd: 1505
    functionName: libtorrent::upnp::on_upnp_map_response
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - empty
    - seconds
    - static_cast<std::size_t>
    - max_time
    - header_finished
    - libtorrent::upnp::log
    - self
    - libtorrent::upnp::update_map
    - libtorrent::aux::time_now
    - ADD_OUTSTANDING_ASYNC
    - is_single_thread
    - upnp_connection::close
    - message
    - get_int
    - libtorrent::upnp::next
    - header
    - std::size_t
    - get_body
    - async_wait
    - std::string
    - span::data
    - expiry
    - TORRENT_ASSERT
    - expires_at
    - xml_parse
    - convert_from_native
    - libtorrent::upnp::return_error
    - random
    - std::bind
    - c_str
    - error_code
    - std::ref
    - upnp_connection::reset
    - libtorrent::upnp::should_log
    - on_port_mapping
    - find_first_of
    - upnp_connection::get
    linkageType: ''
    returnType: void
    signature: "void upnp::on_upnp_map_response(error_code const& e\n\t, libtorrent::http_parser
      const& p, rootdevice& d, port_mapping_t const mapping\n\t, http_connection&
      c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1509,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1509,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/upnp.cpp:1513,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:1518,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/upnp.cpp:1525,1
    - Dst: address
      Src: /src/libtorrent/src/upnp.cpp:1525,1
    - Dst: error_code
      Src: /src/libtorrent/src/upnp.cpp:1525,1
    - Dst: upnp_category
      Src: /src/libtorrent/src/upnp.cpp:1525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mapping
    - code
    argTypes:
    - port_mapping_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1527
    functionName: libtorrent::upnp::return_error
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - error_code
    - is_single_thread
    - TORRENT_ASSERT
    - upnp_category
    - on_port_mapping
    - address
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void upnp::return_error(port_mapping_t const mapping, int const code)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1534,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1534,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1537,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:1538,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:1540,1
    - Dst: upnp_connection::reset
      Src: /src/libtorrent/src/upnp.cpp:1541,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1547,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1549,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1550,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1550,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1554,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1557,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1560,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1563,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1565,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1566,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1566,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1573,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1575,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1576,1
    - Dst: std::string
      Src: /src/libtorrent/src/upnp.cpp:1577,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1577,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/upnp.cpp:1577,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1577,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1583,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1585,1
    - Dst: xml_parse
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/upnp.cpp:1591,1
    - Dst: address
      Src: /src/libtorrent/src/upnp.cpp:1591,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1591,1
    - Dst: error_code
      Src: /src/libtorrent/src/upnp.cpp:1592,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1592,1
    - Dst: http_category
      Src: /src/libtorrent/src/upnp.cpp:1592,1
    - Dst: error_code
      Src: /src/libtorrent/src/upnp.cpp:1593,1
    - Dst: upnp_category
      Src: /src/libtorrent/src/upnp.cpp:1593,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:1600,1
    - Dst: all_of
      Src: /src/libtorrent/src/upnp.cpp:1601,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:1601,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:1601,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:1606,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - ' e'
    - ' p'
    - ' d'
    - mapping
    - ' c'
    argTypes:
    - error_code
    - libtorrent::http_parser
    - rootdevice
    - port_mapping_t
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1529
    functionDepth: 3
    functionLinenumber: 1529
    functionLinenumberEnd: 1607
    functionName: libtorrent::upnp::on_upnp_unmap_response
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - http_category
    - begin
    - static_cast<std::size_t>
    - header_finished
    - upnp_category
    - libtorrent::upnp::log
    - all_of
    - is_single_thread
    - upnp_connection::close
    - message
    - end
    - libtorrent::upnp::next
    - std::size_t
    - get_body
    - address
    - std::string
    - span::data
    - TORRENT_ASSERT
    - xml_parse
    - mapping::end_index
    - convert_from_native
    - std::bind
    - error_code
    - std::ref
    - upnp_connection::reset
    - status_code
    - libtorrent::upnp::should_log
    - on_port_mapping
    - upnp_connection::get
    linkageType: ''
    returnType: void
    signature: "void upnp::on_upnp_unmap_response(error_code const& e\n\t, libtorrent::http_parser
      const& p, rootdevice& d\n\t, port_mapping_t const mapping\n\t, http_connection&
      c)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1611,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1611,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:1612,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/upnp.cpp:1617,1
    - Dst: max_time
      Src: /src/libtorrent/src/upnp.cpp:1618,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:1622,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1623,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:1625,1
    - Dst: max_time
      Src: /src/libtorrent/src/upnp.cpp:1627,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1633,1
    - Dst: max_time
      Src: /src/libtorrent/src/upnp.cpp:1641,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:1643,1
    - Dst: expires_at
      Src: /src/libtorrent/src/upnp.cpp:1644,1
    - Dst: async_wait
      Src: /src/libtorrent/src/upnp.cpp:1645,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1645,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:1645,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1609
    functionDepth: 4
    functionLinenumber: 1609
    functionLinenumberEnd: 1647
    functionName: libtorrent::upnp::on_expire
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - const_cast<rootdevice&>
    - is_single_thread
    - TORRENT_ASSERT
    - max_time
    - expires_at
    - self
    - libtorrent::upnp::update_map
    - end_index
    - COMPLETE_ASYNC
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void upnp::on_expire(error_code const& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1651,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1651,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1653,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1654,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1655,1
    - Dst: socket::close
      Src: /src/libtorrent/src/upnp.cpp:1658,1
    - Dst: socket::close
      Src: /src/libtorrent/src/upnp.cpp:1659,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:1663,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1664,1
    - Dst: control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:1665,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:1675,1
    - Dst: mapping::data
      Src: /src/libtorrent/src/upnp.cpp:1675,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1677,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1677,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1649
    functionDepth: 4
    functionLinenumber: 1649
    functionLinenumberEnd: 1679
    functionName: libtorrent::upnp::close
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - num_mappings
    - mapping::data
    - const_cast<rootdevice&>
    - is_single_thread
    - cancel
    - TORRENT_ASSERT
    - control_url::empty
    - socket::close
    - libtorrent::upnp::update_map
    linkageType: ''
    returnType: void
    signature: void upnp::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upnp_category
      Src: /src/libtorrent/src/upnp.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: libtorrent::upnp_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - upnp_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upnp_category
      Src: /src/libtorrent/src/upnp.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: libtorrent::upnp_errors::make_error_code
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - upnp_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(error_code_enum e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: upnp::rootdevice::rootdevice()
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::rootdevice()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: upnp::rootdevice::~rootdevice()
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::~rootdevice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: upnp::rootdevice::~rootdevice()
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::~rootdevice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: upnp::rootdevice::rootdevice(rootdevice const&)
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::rootdevice(rootdevice const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: upnp::rootdevice::rootdevice(rootdevice&&) noexcept
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::rootdevice::rootdevice(rootdevice&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/upnp.cpp:125,1
    - Dst: std::move
      Src: /src/libtorrent/src/upnp.cpp:129,1
    - Dst: set_verify_mode
      Src: /src/libtorrent/src/upnp.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' ios'
    - ' settings'
    - ' cb'
    - listen_address
    - netmask
    - listen_device
    - ls
    argTypes:
    - io_context
    - aux::session_settings
    - aux::portmap_callback
    - address_v4
    - address_v4
    - std::string
    - listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: libtorrent::upnp::upnp
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - set_verify_mode
    linkageType: ''
    returnType: void
    signature: "void upnp::upnp(io_context& ios\n\t, aux::session_settings const&
      settings\n\t, aux::portmap_callback& cb\n\t, address_v4 const listen_address\n\t,
      address_v4 const netmask\n\t, std::string listen_device\n\t, listen_socket_handle
      ls)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:138,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:138,1
    - Dst: libtorrent::upnp::open_multicast_socket
      Src: /src/libtorrent/src/upnp.cpp:141,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:143,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:145,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:146,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:146,1
    - Dst: libtorrent::upnp::open_unicast_socket
      Src: /src/libtorrent/src/upnp.cpp:152,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:154,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:156,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:157,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:157,1
    - Dst: reserve
      Src: /src/libtorrent/src/upnp.cpp:163,1
    - Dst: libtorrent::upnp::discover_device_impl
      Src: /src/libtorrent/src/upnp.cpp:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: libtorrent::upnp::start
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::upnp::open_multicast_socket
    - libtorrent::upnp::open_unicast_socket
    - is_single_thread
    - TORRENT_ASSERT
    - reserve
    - error_code::message
    - libtorrent::upnp::log
    - libtorrent::upnp::discover_device_impl
    - libtorrent::upnp::should_log
    - convert_from_native
    linkageType: ''
    returnType: void
    signature: void upnp::start()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket::open
      Src: /src/libtorrent/src/upnp.cpp:177,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/upnp.cpp:177,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:179,1
    - Dst: udp::socket::reuse_address
      Src: /src/libtorrent/src/upnp.cpp:179,1
    - Dst: socket::bind
      Src: /src/libtorrent/src/upnp.cpp:181,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/upnp.cpp:181,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:183,1
    - Dst: join_group
      Src: /src/libtorrent/src/upnp.cpp:183,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:185,1
    - Dst: hops
      Src: /src/libtorrent/src/upnp.cpp:185,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:187,1
    - Dst: enable_loopback
      Src: /src/libtorrent/src/upnp.cpp:187,1
    - Dst: socket::set_option
      Src: /src/libtorrent/src/upnp.cpp:189,1
    - Dst: outbound_interface
      Src: /src/libtorrent/src/upnp.cpp:189,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:192,1
    - Dst: socket::async_receive_from
      Src: /src/libtorrent/src/upnp.cpp:193,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:193,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:194,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:194,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ' s'
    - ' ec'
    argTypes:
    - aux::socket_package
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 195
    functionName: libtorrent::upnp::open_multicast_socket
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - hops
    - rand_v4
    - enable_loopback
    - socket::bind
    - outbound_interface
    - udp::socket::reuse_address
    - std::ref
    - socket::open
    - socket::async_receive_from
    - local_endpoint
    - both_sides_from_store_buffer
    - socket::set_option
    - self
    - join_group
    linkageType: ''
    returnType: void
    signature: void upnp::open_multicast_socket(aux::socket_package& s, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket::open
      Src: /src/libtorrent/src/upnp.cpp:199,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/upnp.cpp:199,1
    - Dst: socket::bind
      Src: /src/libtorrent/src/upnp.cpp:201,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/upnp.cpp:201,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:204,1
    - Dst: socket::async_receive_from
      Src: /src/libtorrent/src/upnp.cpp:205,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:205,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:206,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:206,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' ec'
    argTypes:
    - aux::socket_package
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: libtorrent::upnp::open_unicast_socket
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - rand_v4
    - socket::bind
    - std::ref
    - socket::open
    - socket::async_receive_from
    - local_endpoint
    - both_sides_from_store_buffer
    - self
    linkageType: ''
    returnType: void
    signature: void upnp::open_unicast_socket(aux::socket_package& s, error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: upnp::~upnp()
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void upnp::~upnp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: should_log_portmap
      Src: /src/libtorrent/src/upnp.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: libtorrent::upnp::should_log
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 11
    functionsReached:
    - should_log_portmap
    linkageType: ''
    returnType: bool
    signature: bool upnp::should_log() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:220,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:220,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:221,1
    - Dst: va_start
      Src: /src/libtorrent/src/upnp.cpp:223,1
    - Dst: std::vsnprintf
      Src: /src/libtorrent/src/upnp.cpp:225,1
    - Dst: va_end
      Src: /src/libtorrent/src/upnp.cpp:226,1
    - Dst: log_portmap
      Src: /src/libtorrent/src/upnp.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: libtorrent::upnp::log
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 16
    functionsReached:
    - log_portmap
    - va_start
    - is_single_thread
    - TORRENT_ASSERT
    - va_end
    - libtorrent::upnp::should_log
    - std::vsnprintf
    linkageType: ''
    returnType: void
    signature: void upnp::log(char const* fmt, ...) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:233,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:233,1
    - Dst: socket::send_to
      Src: /src/libtorrent/src/upnp.cpp:249,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:249,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/upnp.cpp:250,1
    - Dst: socket::send_to
      Src: /src/libtorrent/src/upnp.cpp:251,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:251,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/upnp.cpp:252,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:257,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:259,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:260,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:260,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:261,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:261,1
    - Dst: libtorrent::upnp::disable
      Src: /src/libtorrent/src/upnp.cpp:264,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:268,1
    - Dst: expires_after
      Src: /src/libtorrent/src/upnp.cpp:270,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:270,1
    - Dst: async_wait
      Src: /src/libtorrent/src/upnp.cpp:271,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:271,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:272,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 277
    functionName: libtorrent::upnp::discover_device_impl
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 3
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - libtorrent::upnp::disable
    - socket::send_to
    - async_wait
    - is_single_thread
    - seconds
    - expires_after
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - local_endpoint
    - libtorrent::upnp::log
    - error_code::message
    - self
    - libtorrent::upnp::should_log
    - convert_from_native
    linkageType: ''
    returnType: void
    signature: void upnp::discover_device_impl()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:283,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:283,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:285,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:288,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:290,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:293,1
    - Dst: c_str
      Src: /src/libtorrent/src/upnp.cpp:293,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/upnp.cpp:299,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:299,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:299,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:302,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:304,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:304,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:305,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:308,1
    - Dst: push_back
      Src: /src/libtorrent/src/upnp.cpp:312,1
    - Dst: global_mapping_t
      Src: /src/libtorrent/src/upnp.cpp:312,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:313,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:321,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:321,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:326,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:329,1
    - Dst: mapping::resize
      Src: /src/libtorrent/src/upnp.cpp:330,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:330,1
    - Dst: service_namespace::empty
      Src: /src/libtorrent/src/upnp.cpp:339,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - p
    - external_port
    - local_ep
    - ' device'
    argTypes:
    - portmap_protocol
    - int
    - tcp::endpoint
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 343
    functionName: libtorrent::upnp::add_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - push_back
    - begin
    - c_str
    - const_cast<rootdevice&>
    - is_single_thread
    - end
    - service_namespace::empty
    - print_endpoint
    - TORRENT_ASSERT
    - libtorrent::upnp::update_map
    - mapping::resize
    - libtorrent::upnp::log
    - global_mapping_t
    - libtorrent::upnp::should_log
    - mapping::end_index
    - size
    - std::find_if
    linkageType: ''
    returnType: port_mapping_t
    signature: "port_mapping_t upnp::add_mapping(portmap_protocol const p, int const
      external_port\n\t, tcp::endpoint const local_ep, std::string const& device)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:347,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:347,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:349,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:354,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:356,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:359,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/upnp.cpp:360,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:369,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:372,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:372,1
    - Dst: service_namespace::empty
      Src: /src/libtorrent/src/upnp.cpp:375,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 377
    functionName: libtorrent::upnp::delete_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - const_cast<rootdevice&>
    - is_single_thread
    - service_namespace::empty
    - print_endpoint
    - TORRENT_ASSERT
    - libtorrent::upnp::update_map
    - libtorrent::upnp::log
    - libtorrent::upnp::should_log
    - mapping::end_index
    - end_index
    - device::c_str
    linkageType: ''
    returnType: void
    signature: void upnp::delete_mapping(port_mapping_t const mapping)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:384,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:384,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:385,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:385,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - index
    - ' local_ep'
    - ' external_port'
    - ' protocol'
    argTypes:
    - port_mapping_t
    - tcp::endpoint
    - int
    - portmap_protocol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: libtorrent::upnp::get_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - end_index
    linkageType: ''
    returnType: bool
    signature: "bool upnp::get_mapping(port_mapping_t const index\n\t, tcp::endpoint&
      local_ep\n\t, int& external_port\n\t, portmap_protocol& protocol) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:397,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:397,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:398,1
    - Dst: empty
      Src: /src/libtorrent/src/upnp.cpp:406,1
    - Dst: libtorrent::upnp::discover_device_impl
      Src: /src/libtorrent/src/upnp.cpp:408,1
    - Dst: empty
      Src: /src/libtorrent/src/upnp.cpp:412,1
    - Dst: libtorrent::upnp::disable
      Src: /src/libtorrent/src/upnp.cpp:414,1
    - Dst: control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:420,1
    - Dst: libtorrent::upnp::connect
      Src: /src/libtorrent/src/upnp.cpp:429,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:429,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 431
    functionName: libtorrent::upnp::resend_request
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::upnp::disable
    - const_cast<rootdevice&>
    - libtorrent::upnp::connect
    - is_single_thread
    - empty
    - TORRENT_ASSERT
    - control_url::empty
    - libtorrent::upnp::discover_device_impl
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void upnp::resend_request(error_code const& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:435,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:439,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:439,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:441,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/upnp.cpp:442,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:444,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:444,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:445,1
    - Dst: http_connect_handler
      Src: /src/libtorrent/src/upnp.cpp:446,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:447,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:448,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:453,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:453,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/upnp.cpp:457,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:459,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:459,1
    - Dst: what
      Src: /src/libtorrent/src/upnp.cpp:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - rootdevice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 463
    functionName: libtorrent::upnp::connect
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 3
    functionsReached:
    - std::bind
    - std::make_shared<http_connection>
    - TORRENT_UNUSED
    - upnp_connection::close
    - hostname_filter_handler
    - seconds
    - upnp_connection::get
    - std::ref
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    - self
    - http_connect_handler
    - http_filter_handler
    - what
    - url::c_str
    linkageType: ''
    returnType: void
    signature: void upnp::connect(rootdevice& d)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:467,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:467,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:468,1
    - Dst: scope_end
      Src: /src/libtorrent/src/upnp.cpp:504,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:505,1
    - Dst: socket::async_receive_from
      Src: /src/libtorrent/src/upnp.cpp:506,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/upnp.cpp:506,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:507,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:507,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:507,1
    - Dst: get_bool
      Src: /src/libtorrent/src/upnp.cpp:512,1
    - Dst: match_addr_mask
      Src: /src/libtorrent/src/upnp.cpp:513,1
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/src/upnp.cpp:513,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:516,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:518,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:519,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:520,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:521,1
    - Dst: http_parser::incoming
      Src: /src/libtorrent/src/upnp.cpp:529,1
    - Dst: buffer::data
      Src: /src/libtorrent/src/upnp.cpp:529,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/upnp.cpp:529,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:533,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:535,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:536,1
    - Dst: http_parser::status_code
      Src: /src/libtorrent/src/upnp.cpp:542,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/upnp.cpp:542,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:545,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/upnp.cpp:547,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:549,1
    - Dst: http_parser::status_code
      Src: /src/libtorrent/src/upnp.cpp:550,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:550,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:554,1
    - Dst: http_parser::method
      Src: /src/libtorrent/src/upnp.cpp:555,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:555,1
    - Dst: http_parser::header_finished
      Src: /src/libtorrent/src/upnp.cpp:562,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:565,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:567,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:568,1
    - Dst: http_parser::header
      Src: /src/libtorrent/src/upnp.cpp:574,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/upnp.cpp:575,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:578,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:580,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:581,1
    - Dst: find
      Src: /src/libtorrent/src/upnp.cpp:590,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:592,1
    - Dst: std::tie
      Src: /src/libtorrent/src/upnp.cpp:598,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/upnp.cpp:599,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:605,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:607,1
    - Dst: rootdevice::url::c_str
      Src: /src/libtorrent/src/upnp.cpp:608,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:608,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:608,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:608,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:620,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:622,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/upnp.cpp:623,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:623,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:632,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:634,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/upnp.cpp:634,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:641,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:643,1
    - Dst: rootdevice::url::c_str
      Src: /src/libtorrent/src/upnp.cpp:644,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:644,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:648,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:651,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:653,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:654,1
    - Dst: rootdevice::url::c_str
      Src: /src/libtorrent/src/upnp.cpp:654,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:660,1
    - Dst: rootdevice::mapping::empty
      Src: /src/libtorrent/src/upnp.cpp:660,1
    - Dst: rootdevice::mapping::push_back
      Src: /src/libtorrent/src/upnp.cpp:669,1
    - Dst: std::tie
      Src: /src/libtorrent/src/upnp.cpp:671,1
    - Dst: insert
      Src: /src/libtorrent/src/upnp.cpp:671,1
    - Dst: libtorrent::upnp::try_map_upnp
      Src: /src/libtorrent/src/upnp.cpp:676,1
    - Dst: expires_after
      Src: /src/libtorrent/src/upnp.cpp:681,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:681,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:682,1
    - Dst: async_wait
      Src: /src/libtorrent/src/upnp.cpp:683,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:683,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:683,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 93
    argCount: 3
    argNames:
    - ' s'
    - ' ec'
    - len
    argTypes:
    - aux::socket_package
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 684
    functionName: libtorrent::upnp::on_reply
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - rootdevice::mapping::empty
    - seconds
    - libtorrent::upnp::log
    - self
    - get_bool
    - ADD_OUTSTANDING_ASYNC
    - parse_url_components
    - libtorrent::upnp::try_map_upnp
    - udp::endpoint::address
    - is_single_thread
    - buffer::data
    - end
    - print_endpoint
    - expires_after
    - error_code::message
    - http_parser::header
    - COMPLETE_ASYNC
    - scope_end
    - async_wait
    - TORRENT_ASSERT
    - socket::async_receive_from
    - http_parser::incoming
    - http_parser::header_finished
    - convert_from_native
    - http_parser::status_code
    - size
    - std::ptrdiff_t
    - std::bind
    - rootdevice::mapping::push_back
    - http_parser::method
    - std::tie
    - insert
    - std::string::empty
    - std::string::c_str
    - find
    - std::ref
    - both_sides_from_store_buffer
    - match_addr_mask
    - libtorrent::upnp::should_log
    - rootdevice::url::c_str
    linkageType: ''
    returnType: void
    signature: void upnp::on_reply(aux::socket_package& s, error_code const& ec, std::size_t
      const len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:688,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:688,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:689,1
    - Dst: libtorrent::upnp::try_map_upnp
      Src: /src/libtorrent/src/upnp.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 694
    functionName: libtorrent::upnp::map_timer
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - COMPLETE_ASYNC
    - libtorrent::upnp::try_map_upnp
    linkageType: ''
    returnType: void
    signature: void upnp::map_timer(error_code const& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:698,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:698,1
    - Dst: empty
      Src: /src/libtorrent/src/upnp.cpp:699,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:701,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:701,1
    - Dst: auto::control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:703,1
    - Dst: libtorrent::upnp::connect
      Src: /src/libtorrent/src/upnp.cpp:707,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 710
    functionName: libtorrent::upnp::try_map_upnp
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 4
    functionsReached:
    - auto::control_url::empty
    - begin
    - const_cast<rootdevice&>
    - libtorrent::upnp::connect
    - is_single_thread
    - empty
    - end
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void upnp::try_map_upnp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:715,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:715,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:716,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:717,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:718,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:721,1
    - Dst: path::c_str
      Src: /src/libtorrent/src/upnp.cpp:727,1
    - Dst: hostname::c_str
      Src: /src/libtorrent/src/upnp.cpp:727,1
    - Dst: strlen
      Src: /src/libtorrent/src/upnp.cpp:728,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:728,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' d'
    - soap
    - soap_action
    argTypes:
    - upnp::rootdevice
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 736
    functionName: libtorrent::upnp::post
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 3
    functionsReached:
    - service_namespace::c_str
    - is_single_thread
    - std::snprintf
    - path::c_str
    - hostname::c_str
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    - strlen
    linkageType: ''
    returnType: void
    signature: "void upnp::post(upnp::rootdevice const& d, char const* soap\n\t, char
      const* soap_action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/upnp.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - rootdevice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: libtorrent::upnp::lease_duration
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int upnp::lease_duration(rootdevice const& d) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:748,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:748,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:754,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:756,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:756,1
    - Dst: print_address
      Src: /src/libtorrent/src/upnp.cpp:764,1
    - Dst: socket
      Src: /src/libtorrent/src/upnp.cpp:764,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:767,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:780,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:781,1
    - Dst: local_ep::port
      Src: /src/libtorrent/src/upnp.cpp:782,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/upnp.cpp:783,1
    - Dst: get_bool
      Src: /src/libtorrent/src/upnp.cpp:784,1
    - Dst: get_str
      Src: /src/libtorrent/src/upnp.cpp:785,1
    - Dst: libtorrent::upnp::lease_duration
      Src: /src/libtorrent/src/upnp.cpp:786,1
    - Dst: libtorrent::upnp::post
      Src: /src/libtorrent/src/upnp.cpp:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' c'
    - ' d'
    - i
    argTypes:
    - http_connection
    - rootdevice
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 789
    functionName: libtorrent::upnp::create_port_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - get_str
    - print_address
    - libtorrent::upnp::lease_duration
    - service_namespace::c_str
    - local_ep::port
    - libtorrent::upnp::post
    - is_single_thread
    - std::snprintf
    - std::string::c_str
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    - socket
    - get_bool
    linkageType: ''
    returnType: void
    signature: "void upnp::create_port_mapping(http_connection& c, rootdevice& d\n\t,
      port_mapping_t const i)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:793,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:793,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:794,1
    - Dst: prev
      Src: /src/libtorrent/src/upnp.cpp:795,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:795,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:797,1
    - Dst: generate_next
      Src: /src/libtorrent/src/upnp.cpp:797,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/upnp.cpp:801,1
    - Dst: mapping::begin
      Src: /src/libtorrent/src/upnp.cpp:801,1
    - Dst: mapping::end
      Src: /src/libtorrent/src/upnp.cpp:801,1
    - Dst: mapping::end
      Src: /src/libtorrent/src/upnp.cpp:803,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:805,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:805,1
    - Dst: mapping::begin
      Src: /src/libtorrent/src/upnp.cpp:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' d'
    - i
    argTypes:
    - rootdevice
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 791
    functionDepth: 4
    functionLinenumber: 791
    functionLinenumberEnd: 807
    functionName: libtorrent::upnp::next
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 3
    functionsReached:
    - generate_next
    - static_cast<int>
    - mapping::end
    - prev
    - is_single_thread
    - TORRENT_ASSERT
    - libtorrent::upnp::update_map
    - end_index
    - mapping::begin
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void upnp::next(rootdevice& d, port_mapping_t const i)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:811,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:811,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:812,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:813,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:813,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:814,1
    - Dst: mapping::size
      Src: /src/libtorrent/src/upnp.cpp:814,1
    - Dst: size
      Src: /src/libtorrent/src/upnp.cpp:814,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:815,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:820,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:830,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:830,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:833,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:837,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:838,1
    - Dst: service_namespace::empty
      Src: /src/libtorrent/src/upnp.cpp:838,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:841,1
    - Dst: hostname::c_str
      Src: /src/libtorrent/src/upnp.cpp:841,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:849,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:853,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/upnp.cpp:854,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:856,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:856,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:857,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:858,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:858,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:858,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:859,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:860,1
    - Dst: local_ep::address
      Src: /src/libtorrent/src/upnp.cpp:866,1
    - Dst: upnp_connection::start
      Src: /src/libtorrent/src/upnp.cpp:867,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:868,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:872,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/upnp.cpp:873,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:875,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:875,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:876,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:877,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:877,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:877,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:878,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:879,1
    - Dst: local_ep::address
      Src: /src/libtorrent/src/upnp.cpp:884,1
    - Dst: upnp_connection::start
      Src: /src/libtorrent/src/upnp.cpp:885,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:886,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/upnp.cpp:890,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:890,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - ' d'
    - i
    argTypes:
    - rootdevice
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 809
    functionDepth: 3
    functionLinenumber: 809
    functionLinenumberEnd: 891
    functionName: libtorrent::upnp::update_map
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 10
    functionsReached:
    - static_cast<int>
    - seconds
    - libtorrent::upnp::log
    - self
    - libtorrent::aux::time_now
    - std::make_shared<http_connection>
    - is_single_thread
    - upnp_connection::close
    - mapping::size
    - libtorrent::upnp::next
    - http_filter_handler
    - hostname_filter_handler
    - hostname::c_str
    - TORRENT_ASSERT
    - upnp_connection::start
    - mapping::end_index
    - size
    - std::bind
    - service_namespace::empty
    - std::ref
    - local_ep::address
    linkageType: ''
    returnType: void
    signature: void upnp::update_map(rootdevice& d, port_mapping_t const i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:895,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:895,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:897,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:901,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:903,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:903,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:911,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:919,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:921,1
    - Dst: libtorrent::upnp::post
      Src: /src/libtorrent/src/upnp.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' d'
    - i
    argTypes:
    - rootdevice
    - port_mapping_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 925
    functionName: libtorrent::upnp::delete_port_mapping
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - to_string
    - libtorrent::upnp::post
    - service_namespace::c_str
    - is_single_thread
    - std::snprintf
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    linkageType: ''
    returnType: void
    signature: void upnp::delete_port_mapping(rootdevice& d, port_mapping_t const
      i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tag_stack::push_back
      Src: /src/libtorrent/src/upnp.cpp:931,1
    - Dst: tag_stack::empty
      Src: /src/libtorrent/src/upnp.cpp:935,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:937,1
    - Dst: tag_stack::back
      Src: /src/libtorrent/src/upnp.cpp:937,1
    - Dst: tag_stack::pop_back
      Src: /src/libtorrent/src/upnp.cpp:939,1
    - Dst: tag_stack::empty
      Src: /src/libtorrent/src/upnp.cpp:944,1
    - Dst: libtorrent::top_tags
      Src: /src/libtorrent/src/upnp.cpp:947,1
    - Dst: service_type::empty
      Src: /src/libtorrent/src/upnp.cpp:948,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:950,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:951,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:952,1
    - Dst: service_type::assign
      Src: /src/libtorrent/src/upnp.cpp:954,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:954,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:954,1
    - Dst: control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:958,1
    - Dst: libtorrent::top_tags
      Src: /src/libtorrent/src/upnp.cpp:959,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/upnp.cpp:959,1
    - Dst: control_url::assign
      Src: /src/libtorrent/src/upnp.cpp:962,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:962,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:962,1
    - Dst: model::empty
      Src: /src/libtorrent/src/upnp.cpp:964,1
    - Dst: libtorrent::top_tags
      Src: /src/libtorrent/src/upnp.cpp:964,1
    - Dst: model::assign
      Src: /src/libtorrent/src/upnp.cpp:966,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:966,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:966,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/upnp.cpp:968,1
    - Dst: tag_stack::back
      Src: /src/libtorrent/src/upnp.cpp:968,1
    - Dst: url_base::assign
      Src: /src/libtorrent/src/upnp.cpp:970,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:970,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:970,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 30
    argCount: 3
    argNames:
    - type
    - str
    - ' state'
    argTypes:
    - int
    - string_view
    - parse_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 973
    functionName: libtorrent::find_control_url
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - model::empty
    - tag_stack::back
    - string_view::end
    - libtorrent::string_equal_no_case
    - control_url::assign
    - tag_stack::pop_back
    - tag_stack::push_back
    - tag_stack::empty
    - service_type::assign
    - string_view::size
    - control_url::empty
    - service_type::empty
    - model::assign
    - libtorrent::top_tags
    - string_view::begin
    - url_base::assign
    linkageType: ''
    returnType: void
    signature: void find_control_url(int const type, string_view str, parse_state&
      state)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:979,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:979,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:982,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:983,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:985,1
    - Dst: upnp_connection::reset
      Src: /src/libtorrent/src/upnp.cpp:986,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:994,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:996,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:997,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:997,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:997,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1004,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1007,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1008,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1014,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1017,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1019,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1020,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1020,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1020,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1028,1
    - Dst: xml_parse
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: auto::data
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: auto::size
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1029,1
    - Dst: parse_state::control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:1030,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1033,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1034,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1041,1
    - Dst: service_namespace::empty
      Src: /src/libtorrent/src/upnp.cpp:1041,1
    - Dst: parse_state::model::empty
      Src: /src/libtorrent/src/upnp.cpp:1043,1
    - Dst: parse_state::url_base::empty
      Src: /src/libtorrent/src/upnp.cpp:1045,1
    - Dst: parse_state::control_url::substr
      Src: /src/libtorrent/src/upnp.cpp:1045,1
    - Dst: parse_state::url_base::size
      Src: /src/libtorrent/src/upnp.cpp:1048,1
    - Dst: parse_state::control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:1049,1
    - Dst: parse_state::url_base::erase
      Src: /src/libtorrent/src/upnp.cpp:1051,1
    - Dst: parse_state::url_base::end
      Src: /src/libtorrent/src/upnp.cpp:1051,1
    - Dst: control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:1059,1
    - Dst: std::tie
      Src: /src/libtorrent/src/upnp.cpp:1061,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/upnp.cpp:1062,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:1065,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1069,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1071,1
    - Dst: control_url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1073,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:1073,1
    - Dst: parse_state::url_base::c_str
      Src: /src/libtorrent/src/upnp.cpp:1074,1
    - Dst: url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1074,1
    - Dst: std::tie
      Src: /src/libtorrent/src/upnp.cpp:1078,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/upnp.cpp:1079,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1085,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1087,1
    - Dst: control_url::c_str
      Src: /src/libtorrent/src/upnp.cpp:1088,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1088,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/upnp.cpp:1088,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:1095,1
    - Dst: std::make_shared<http_connection>
      Src: /src/libtorrent/src/upnp.cpp:1096,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1098,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:1098,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1099,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1100,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:1100,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1100,1
    - Dst: http_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:1101,1
    - Dst: hostname_filter_handler
      Src: /src/libtorrent/src/upnp.cpp:1102,1
    - Dst: upnp_connection::start
      Src: /src/libtorrent/src/upnp.cpp:1107,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:1107,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 4
    argNames:
    - ' e'
    - ' p'
    - ' d'
    - ' c'
    argTypes:
    - error_code
    - libtorrent::http_parser
    - rootdevice
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1108
    functionName: libtorrent::upnp::on_upnp_xml
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - parse_state::model::empty
    - seconds
    - header_finished
    - libtorrent::upnp::log
    - self
    - parse_state::url_base::empty
    - parse_url_components
    - std::make_shared<http_connection>
    - parse_state::url_base::c_str
    - is_single_thread
    - upnp_connection::close
    - message
    - parse_state::url_base::erase
    - std::size_t
    - control_url::empty
    - error_code::message
    - get_body
    - http_filter_handler
    - hostname_filter_handler
    - service_namespace::c_str
    - control_url::c_str
    - TORRENT_ASSERT
    - auto::size
    - upnp_connection::start
    - xml_parse
    - parse_state::control_url::substr
    - convert_from_native
    - parse_state::url_base::end
    - url::c_str
    - auto::data
    - std::bind
    - std::tie
    - parse_state::url_base::size
    - service_namespace::empty
    - std::ref
    - upnp_connection::reset
    - status_code
    - parse_state::control_url::empty
    - libtorrent::upnp::should_log
    - upnp_connection::get
    linkageType: ''
    returnType: void
    signature: "void upnp::on_upnp_xml(error_code const& e\n\t, libtorrent::http_parser
      const& p, rootdevice& d\n\t, http_connection& c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1112,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1114,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1118,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1120,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:1128,1
    - Dst: service_namespace::c_str
      Src: /src/libtorrent/src/upnp.cpp:1133,1
    - Dst: libtorrent::upnp::post
      Src: /src/libtorrent/src/upnp.cpp:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - rootdevice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1137
    functionName: libtorrent::upnp::get_ip_address
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::upnp::post
    - service_namespace::c_str
    - is_single_thread
    - std::snprintf
    - TORRENT_ASSERT
    - libtorrent::upnp::log
    linkageType: ''
    returnType: void
    signature: void upnp::get_ip_address(rootdevice& d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1141,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1141,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:1145,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:1145,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/upnp.cpp:1150,1
    - Dst: port_mapping_t
      Src: /src/libtorrent/src/upnp.cpp:1150,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:1150,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:1150,1
    - Dst: address
      Src: /src/libtorrent/src/upnp.cpp:1151,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1158,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1159,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1160,1
    - Dst: socket::close
      Src: /src/libtorrent/src/upnp.cpp:1162,1
    - Dst: socket::close
      Src: /src/libtorrent/src/upnp.cpp:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1164
    functionName: libtorrent::upnp::disable
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - begin
    - is_single_thread
    - end
    - port_mapping_t
    - cancel
    - TORRENT_ASSERT
    - socket::close
    - on_port_mapping
    - address
    linkageType: ''
    returnType: void
    signature: void upnp::disable(error_code const& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::atoi
      Src: /src/libtorrent/src/upnp.cpp:1175,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/upnp.cpp:1175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - type
    - string
    - ' state'
    argTypes:
    - int
    - string_view
    - error_code_parse_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1178
    functionName: libtorrent::find_error_code
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - std::atoi
    - string_view::to_string
    linkageType: ''
    returnType: void
    signature: void find_error_code(int const type, string_view string, error_code_parse_state&
      state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find_error_code
      Src: /src/libtorrent/src/upnp.cpp:1182,1
    - Dst: ip_address::assign
      Src: /src/libtorrent/src/upnp.cpp:1191,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/upnp.cpp:1191,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/upnp.cpp:1191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - type
    - string
    - ' state'
    argTypes:
    - int
    - string_view
    - ip_address_parse_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1194
    functionName: libtorrent::find_ip_address
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - string_view::begin
    - ip_address::assign
    - libtorrent::find_error_code
    - string_view::end
    linkageType: ''
    returnType: void
    signature: void find_ip_address(int const type, string_view string, ip_address_parse_state&
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1229
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/upnp.cpp:1236,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/upnp.cpp:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1246
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 2
    functionsReached:
    - std::snprintf
    - std::lower_bound
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1252
    functionName: libtorrent::override
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOST_SYSTEM_NOEXCEPT
    signature: BOOST_SYSTEM_NOEXCEPT override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1259
    functionName: libtorrent::upnp_category
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & upnp_category()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1265,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1265,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1268,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:1269,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:1271,1
    - Dst: upnp_connection::reset
      Src: /src/libtorrent/src/upnp.cpp:1272,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1280,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1282,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1283,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1283,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1286,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1286,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1290,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1293,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1295,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1295,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1299,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1302,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1304,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1305,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1305,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1308,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1308,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1321,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1323,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1325,1
    - Dst: std::string
      Src: /src/libtorrent/src/upnp.cpp:1326,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1326,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/upnp.cpp:1326,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1326,1
    - Dst: xml_parse
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1331,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1335,1
    - Dst: ip_address_parse_state::ip_address::empty
      Src: /src/libtorrent/src/upnp.cpp:1339,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1342,1
    - Dst: ip_address_parse_state::ip_address::c_str
      Src: /src/libtorrent/src/upnp.cpp:1342,1
    - Dst: make_address
      Src: /src/libtorrent/src/upnp.cpp:1344,1
    - Dst: ip_address_parse_state::ip_address::c_str
      Src: /src/libtorrent/src/upnp.cpp:1344,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1349,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1353,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1353,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - ' e'
    - ' p'
    - ' d'
    - ' c'
    argTypes:
    - error_code
    - libtorrent::http_parser
    - rootdevice
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1261
    functionDepth: 4
    functionLinenumber: 1261
    functionLinenumberEnd: 1354
    functionName: libtorrent::upnp::on_upnp_get_ip_address_response
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - ip_address_parse_state::ip_address::empty
    - static_cast<std::size_t>
    - header_finished
    - ip_address_parse_state::ip_address::c_str
    - libtorrent::upnp::log
    - libtorrent::upnp::update_map
    - num_mappings
    - is_single_thread
    - upnp_connection::close
    - message
    - std::size_t
    - make_address
    - get_body
    - std::string
    - span::data
    - TORRENT_ASSERT
    - xml_parse
    - convert_from_native
    - std::bind
    - std::ref
    - upnp_connection::reset
    - status_code
    - libtorrent::upnp::should_log
    - upnp_connection::get
    linkageType: ''
    returnType: void
    signature: "void upnp::on_upnp_get_ip_address_response(error_code const& e\n\t,
      libtorrent::http_parser const& p, rootdevice& d\n\t, http_connection& c)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1360,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1363,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:1364,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:1366,1
    - Dst: upnp_connection::reset
      Src: /src/libtorrent/src/upnp.cpp:1367,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1373,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1375,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1376,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1376,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1402,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1405,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:1407,1
    - Dst: header
      Src: /src/libtorrent/src/upnp.cpp:1411,1
    - Dst: empty
      Src: /src/libtorrent/src/upnp.cpp:1412,1
    - Dst: find_first_of
      Src: /src/libtorrent/src/upnp.cpp:1413,1
    - Dst: find_first_of
      Src: /src/libtorrent/src/upnp.cpp:1414,1
    - Dst: find_first_of
      Src: /src/libtorrent/src/upnp.cpp:1415,1
    - Dst: find_first_of
      Src: /src/libtorrent/src/upnp.cpp:1416,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1420,1
    - Dst: c_str
      Src: /src/libtorrent/src/upnp.cpp:1421,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:1423,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1431,1
    - Dst: xml_parse
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1432,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1437,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1449,1
    - Dst: libtorrent::upnp::return_error
      Src: /src/libtorrent/src/upnp.cpp:1454,1
    - Dst: random
      Src: /src/libtorrent/src/upnp.cpp:1461,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1464,1
    - Dst: libtorrent::upnp::return_error
      Src: /src/libtorrent/src/upnp.cpp:1469,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1473,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1475,1
    - Dst: std::string
      Src: /src/libtorrent/src/upnp.cpp:1476,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1476,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/upnp.cpp:1476,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1476,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/upnp.cpp:1482,1
    - Dst: error_code
      Src: /src/libtorrent/src/upnp.cpp:1482,1
    - Dst: get_int
      Src: /src/libtorrent/src/upnp.cpp:1484,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/upnp.cpp:1486,1
    - Dst: seconds
      Src: /src/libtorrent/src/upnp.cpp:1487,1
    - Dst: get_int
      Src: /src/libtorrent/src/upnp.cpp:1488,1
    - Dst: expiry
      Src: /src/libtorrent/src/upnp.cpp:1489,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:1492,1
    - Dst: expires_at
      Src: /src/libtorrent/src/upnp.cpp:1493,1
    - Dst: async_wait
      Src: /src/libtorrent/src/upnp.cpp:1494,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1494,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:1494,1
    - Dst: max_time
      Src: /src/libtorrent/src/upnp.cpp:1499,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:1504,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 5
    argNames:
    - ' e'
    - ' p'
    - ' d'
    - mapping
    - ' c'
    argTypes:
    - error_code
    - libtorrent::http_parser
    - rootdevice
    - port_mapping_t
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1356
    functionDepth: 4
    functionLinenumber: 1356
    functionLinenumberEnd: 1505
    functionName: libtorrent::upnp::on_upnp_map_response
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - empty
    - seconds
    - static_cast<std::size_t>
    - max_time
    - header_finished
    - libtorrent::upnp::log
    - self
    - libtorrent::upnp::update_map
    - libtorrent::aux::time_now
    - ADD_OUTSTANDING_ASYNC
    - is_single_thread
    - upnp_connection::close
    - message
    - get_int
    - libtorrent::upnp::next
    - header
    - std::size_t
    - get_body
    - async_wait
    - std::string
    - span::data
    - expiry
    - TORRENT_ASSERT
    - expires_at
    - xml_parse
    - convert_from_native
    - libtorrent::upnp::return_error
    - random
    - std::bind
    - c_str
    - error_code
    - std::ref
    - upnp_connection::reset
    - libtorrent::upnp::should_log
    - on_port_mapping
    - find_first_of
    - upnp_connection::get
    linkageType: ''
    returnType: void
    signature: "void upnp::on_upnp_map_response(error_code const& e\n\t, libtorrent::http_parser
      const& p, rootdevice& d, port_mapping_t const mapping\n\t, http_connection&
      c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1509,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1509,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/upnp.cpp:1513,1
    - Dst: to_string
      Src: /src/libtorrent/src/upnp.cpp:1518,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/upnp.cpp:1525,1
    - Dst: address
      Src: /src/libtorrent/src/upnp.cpp:1525,1
    - Dst: error_code
      Src: /src/libtorrent/src/upnp.cpp:1525,1
    - Dst: upnp_category
      Src: /src/libtorrent/src/upnp.cpp:1525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mapping
    - code
    argTypes:
    - port_mapping_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1527
    functionName: libtorrent::upnp::return_error
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 2
    functionsReached:
    - to_string
    - error_code
    - is_single_thread
    - TORRENT_ASSERT
    - upnp_category
    - on_port_mapping
    - address
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void upnp::return_error(port_mapping_t const mapping, int const code)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1534,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1534,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1537,1
    - Dst: upnp_connection::get
      Src: /src/libtorrent/src/upnp.cpp:1538,1
    - Dst: upnp_connection::close
      Src: /src/libtorrent/src/upnp.cpp:1540,1
    - Dst: upnp_connection::reset
      Src: /src/libtorrent/src/upnp.cpp:1541,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1547,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1549,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1550,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1550,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1554,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1557,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1560,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1563,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1565,1
    - Dst: convert_from_native
      Src: /src/libtorrent/src/upnp.cpp:1566,1
    - Dst: message
      Src: /src/libtorrent/src/upnp.cpp:1566,1
    - Dst: libtorrent::upnp::should_log
      Src: /src/libtorrent/src/upnp.cpp:1573,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1575,1
    - Dst: libtorrent::upnp::log
      Src: /src/libtorrent/src/upnp.cpp:1576,1
    - Dst: std::string
      Src: /src/libtorrent/src/upnp.cpp:1577,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1577,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/upnp.cpp:1577,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1577,1
    - Dst: header_finished
      Src: /src/libtorrent/src/upnp.cpp:1583,1
    - Dst: get_body
      Src: /src/libtorrent/src/upnp.cpp:1585,1
    - Dst: xml_parse
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: span::data
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: span::size
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: std::ref
      Src: /src/libtorrent/src/upnp.cpp:1586,1
    - Dst: on_port_mapping
      Src: /src/libtorrent/src/upnp.cpp:1591,1
    - Dst: address
      Src: /src/libtorrent/src/upnp.cpp:1591,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1591,1
    - Dst: error_code
      Src: /src/libtorrent/src/upnp.cpp:1592,1
    - Dst: status_code
      Src: /src/libtorrent/src/upnp.cpp:1592,1
    - Dst: http_category
      Src: /src/libtorrent/src/upnp.cpp:1592,1
    - Dst: error_code
      Src: /src/libtorrent/src/upnp.cpp:1593,1
    - Dst: upnp_category
      Src: /src/libtorrent/src/upnp.cpp:1593,1
    - Dst: mapping::end_index
      Src: /src/libtorrent/src/upnp.cpp:1600,1
    - Dst: all_of
      Src: /src/libtorrent/src/upnp.cpp:1601,1
    - Dst: begin
      Src: /src/libtorrent/src/upnp.cpp:1601,1
    - Dst: end
      Src: /src/libtorrent/src/upnp.cpp:1601,1
    - Dst: libtorrent::upnp::next
      Src: /src/libtorrent/src/upnp.cpp:1606,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - ' e'
    - ' p'
    - ' d'
    - mapping
    - ' c'
    argTypes:
    - error_code
    - libtorrent::http_parser
    - rootdevice
    - port_mapping_t
    - http_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1529
    functionDepth: 3
    functionLinenumber: 1529
    functionLinenumberEnd: 1607
    functionName: libtorrent::upnp::on_upnp_unmap_response
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - span::size
    - http_category
    - begin
    - static_cast<std::size_t>
    - header_finished
    - upnp_category
    - libtorrent::upnp::log
    - all_of
    - is_single_thread
    - upnp_connection::close
    - message
    - end
    - libtorrent::upnp::next
    - std::size_t
    - get_body
    - address
    - std::string
    - span::data
    - TORRENT_ASSERT
    - xml_parse
    - mapping::end_index
    - convert_from_native
    - std::bind
    - error_code
    - std::ref
    - upnp_connection::reset
    - status_code
    - libtorrent::upnp::should_log
    - on_port_mapping
    - upnp_connection::get
    linkageType: ''
    returnType: void
    signature: "void upnp::on_upnp_unmap_response(error_code const& e\n\t, libtorrent::http_parser
      const& p, rootdevice& d\n\t, port_mapping_t const mapping\n\t, http_connection&
      c)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1611,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1611,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:1612,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/upnp.cpp:1617,1
    - Dst: max_time
      Src: /src/libtorrent/src/upnp.cpp:1618,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:1622,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1623,1
    - Dst: end_index
      Src: /src/libtorrent/src/upnp.cpp:1625,1
    - Dst: max_time
      Src: /src/libtorrent/src/upnp.cpp:1627,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1633,1
    - Dst: max_time
      Src: /src/libtorrent/src/upnp.cpp:1641,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/upnp.cpp:1643,1
    - Dst: expires_at
      Src: /src/libtorrent/src/upnp.cpp:1644,1
    - Dst: async_wait
      Src: /src/libtorrent/src/upnp.cpp:1645,1
    - Dst: std::bind
      Src: /src/libtorrent/src/upnp.cpp:1645,1
    - Dst: self
      Src: /src/libtorrent/src/upnp.cpp:1645,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1609
    functionDepth: 4
    functionLinenumber: 1609
    functionLinenumberEnd: 1647
    functionName: libtorrent::upnp::on_expire
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - const_cast<rootdevice&>
    - is_single_thread
    - TORRENT_ASSERT
    - max_time
    - expires_at
    - self
    - libtorrent::upnp::update_map
    - end_index
    - COMPLETE_ASYNC
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void upnp::on_expire(error_code const& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1651,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/upnp.cpp:1651,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1653,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1654,1
    - Dst: cancel
      Src: /src/libtorrent/src/upnp.cpp:1655,1
    - Dst: socket::close
      Src: /src/libtorrent/src/upnp.cpp:1658,1
    - Dst: socket::close
      Src: /src/libtorrent/src/upnp.cpp:1659,1
    - Dst: const_cast<rootdevice&>
      Src: /src/libtorrent/src/upnp.cpp:1663,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/upnp.cpp:1664,1
    - Dst: control_url::empty
      Src: /src/libtorrent/src/upnp.cpp:1665,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/upnp.cpp:1675,1
    - Dst: mapping::data
      Src: /src/libtorrent/src/upnp.cpp:1675,1
    - Dst: num_mappings
      Src: /src/libtorrent/src/upnp.cpp:1677,1
    - Dst: libtorrent::upnp::update_map
      Src: /src/libtorrent/src/upnp.cpp:1677,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1649
    functionDepth: 4
    functionLinenumber: 1649
    functionLinenumberEnd: 1679
    functionName: libtorrent::upnp::close
    functionSourceFile: /src/libtorrent/src/upnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - num_mappings
    - mapping::data
    - const_cast<rootdevice&>
    - is_single_thread
    - cancel
    - TORRENT_ASSERT
    - control_url::empty
    - socket::close
    - libtorrent::upnp::update_map
    linkageType: ''
    returnType: void
    signature: void upnp::close()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_from_wstring
      Src: /src/libtorrent/src/path.cpp:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::convert_from_native_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_from_wstring
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_native_path(wchar_t const* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_from_native
      Src: /src/libtorrent/src/path.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::convert_from_native_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_native_path(char const* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/src/path.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator()(void* ptr) const noexcept
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void operator()(void* ptr) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<T, free_function>
      Src: /src/libtorrent/src/path.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::make_free_holder
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<T, free_function>
    linkageType: ''
    returnType: std::unique_ptr<T, free_function>
    signature: std::unique_ptr<T, free_function> make_free_holder(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:140,1
    - Dst: time_t
      Src: /src/libtorrent/src/path.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: libtorrent::file_time_to_posix
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - time_t
    - std::uint64_t
    linkageType: ''
    returnType: time_t
    signature: time_t file_time_to_posix(FILETIME f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:151,1
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:152,1
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ' s'
    - file_size
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - LARGE_INTEGER
    - DWORD
    - FILETIME
    - FILETIME
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::file_time_to_posix
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, LARGE_INTEGER file_size, DWORD
      file_attributes, FILETIME creation_time, FILETIME last_access, FILETIME last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LONG>
      Src: /src/libtorrent/src/path.cpp:164,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - ' s'
    - file_size_low
    - file_size_high
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - DWORD
    - DWORD
    - DWORD
    - FILETIME
    - FILETIME
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - static_cast<LONG>
    - libtorrent::fill_file_status
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, DWORD file_size_low, DWORD file_size_high,
      DWORD file_attributes, FILETIME creation_time, FILETIME last_access, FILETIME
      last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: libtorrent::to_file_time
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILETIME
    signature: FILETIME to_file_time(LARGE_INTEGER i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' s'
    - file_size
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - LARGE_INTEGER
    - DWORD
    - LARGE_INTEGER
    - LARGE_INTEGER
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::fill_file_status
    - libtorrent::to_file_time
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, LARGE_INTEGER file_size, DWORD
      file_attributes, LARGE_INTEGER creation_time, LARGE_INTEGER last_access, LARGE_INTEGER
      last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/src/path.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator()(void* ptr) const noexcept
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void operator()(void* ptr) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<T, free_function>
      Src: /src/libtorrent/src/path.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::make_free_holder
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<T, free_function>
    linkageType: ''
    returnType: std::unique_ptr<T, free_function>
    signature: std::unique_ptr<T, free_function> make_free_holder(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:140,1
    - Dst: time_t
      Src: /src/libtorrent/src/path.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: libtorrent::file_time_to_posix
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - time_t
    - std::uint64_t
    linkageType: ''
    returnType: time_t
    signature: time_t file_time_to_posix(FILETIME f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:151,1
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:152,1
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ' s'
    - file_size
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - LARGE_INTEGER
    - DWORD
    - FILETIME
    - FILETIME
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_time_to_posix
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, LARGE_INTEGER file_size, DWORD
      file_attributes, FILETIME creation_time, FILETIME last_access, FILETIME last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LONG>
      Src: /src/libtorrent/src/path.cpp:164,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - ' s'
    - file_size_low
    - file_size_high
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - DWORD
    - DWORD
    - DWORD
    - FILETIME
    - FILETIME
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 3
    functionsReached:
    - static_cast<LONG>
    - libtorrent::fill_file_status
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, DWORD file_size_low, DWORD file_size_high,
      DWORD file_attributes, FILETIME creation_time, FILETIME last_access, FILETIME
      last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: libtorrent::to_file_time
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FILETIME
    signature: FILETIME to_file_time(LARGE_INTEGER i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' s'
    - file_size
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - LARGE_INTEGER
    - DWORD
    - LARGE_INTEGER
    - LARGE_INTEGER
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::fill_file_status
    - libtorrent::to_file_time
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, LARGE_INTEGER file_size, DWORD
      file_attributes, LARGE_INTEGER creation_time, LARGE_INTEGER last_access, LARGE_INTEGER
      last_write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::complete
      Src: /src/libtorrent/src/path.cpp:194,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/path.cpp:195,1
    - Dst: std::replace
      Src: /src/libtorrent/src/path.cpp:197,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/path.cpp:197,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/path.cpp:197,1
    - Dst: libtorrent::convert_to_wstring
      Src: /src/libtorrent/src/path.cpp:199,1
    - Dst: libtorrent::convert_to_wstring
      Src: /src/libtorrent/src/path.cpp:201,1
    - Dst: libtorrent::convert_to_native
      Src: /src/libtorrent/src/path.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: libtorrent::convert_to_native_path_string
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::convert_to_native
    - libtorrent::complete
    - std::replace
    - std::string::begin
    - std::string::end
    - libtorrent::convert_to_wstring
    - std::string::substr
    linkageType: ''
    returnType: native_path_string
    signature: native_path_string convert_to_native_path_string(std::string const&
      path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:211,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:212,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/path.cpp:216,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:216,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:218,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:218,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:218,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:219,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/path.cpp:235,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:235,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:240,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:240,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:240,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:241,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/libtorrent/src/path.cpp:249,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/libtorrent/src/path.cpp:250,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:253,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:253,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:254,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/path.cpp:255,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/path.cpp:258,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:260,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/path.cpp:266,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:266,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:270,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:270,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:270,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:271,1
    - Dst: GetFileInformationByHandle
      Src: /src/libtorrent/src/path.cpp:276,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:278,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:278,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:279,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/path.cpp:280,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/path.cpp:283,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:285,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:291,1
    - Dst: ::lstat
      Src: /src/libtorrent/src/path.cpp:300,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:300,1
    - Dst: libtorrent::stat
      Src: /src/libtorrent/src/path.cpp:302,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:302,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:305,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:305,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:315,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:316,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:317,1
    - Dst: S_ISREG
      Src: /src/libtorrent/src/path.cpp:319,1
    - Dst: S_ISDIR
      Src: /src/libtorrent/src/path.cpp:320,1
    - Dst: S_ISLNK
      Src: /src/libtorrent/src/path.cpp:321,1
    - Dst: S_ISFIFO
      Src: /src/libtorrent/src/path.cpp:322,1
    - Dst: S_ISCHR
      Src: /src/libtorrent/src/path.cpp:323,1
    - Dst: S_ISBLK
      Src: /src/libtorrent/src/path.cpp:324,1
    - Dst: S_ISSOCK
      Src: /src/libtorrent/src/path.cpp:325,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 4
    argNames:
    - ' inf'
    - s
    - ' ec'
    - flags
    argTypes:
    - std::string
    - file_status*
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 328
    functionName: libtorrent::stat_file
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 6
    functionsReached:
    - ::lstat
    - GetLastError
    - native_path_string::c_str
    - CreateFile2
    - libtorrent::assign
    - libtorrent::fill_file_status
    - CreateFileW
    - libtorrent::stat
    - S_ISFIFO
    - libtorrent::convert_to_native_path_string
    - libtorrent::clear
    - CloseHandle
    - S_ISREG
    - TORRENT_ASSERT
    - S_ISSOCK
    - S_ISCHR
    - system_category
    - GetFileAttributesExW
    - S_ISLNK
    - S_ISBLK
    - GetFileInformationByHandle
    - GetFileInformationByHandleEx
    - std::uint64_t
    - S_ISDIR
    linkageType: ''
    returnType: void
    signature: "void stat_file(std::string const& inf, file_status* s\n\t\t, error_code&
      ec, int const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:332,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:334,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:335,1
    - Dst: RenameFunction_
      Src: /src/libtorrent/src/path.cpp:345,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:345,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:345,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:347,1
    - Dst: generic_category
      Src: /src/libtorrent/src/path.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' ec'
    argTypes:
    - std::string
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 350
    functionName: libtorrent::rename
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::assign
    - generic_category
    - libtorrent::convert_to_native_path_string
    - RenameFunction_
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void rename(std::string const& inf, std::string const& newf, error_code&
      ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:354,1
    - Dst: libtorrent::is_directory
      Src: /src/libtorrent/src/path.cpp:355,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:358,1
    - Dst: libtorrent::is_root_path
      Src: /src/libtorrent/src/path.cpp:359,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/path.cpp:364,1
    - Dst: libtorrent::has_parent_path
      Src: /src/libtorrent/src/path.cpp:367,1
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/src/path.cpp:369,1
    - Dst: libtorrent::parent_path
      Src: /src/libtorrent/src/path.cpp:369,1
    - Dst: libtorrent::create_directory
      Src: /src/libtorrent/src/path.cpp:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 373
    functionName: libtorrent::create_directories
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::clear
    - libtorrent::create_directory
    - libtorrent::is_directory
    - libtorrent::stat_file
    - libtorrent::parent_path
    - libtorrent::is_root_path
    - libtorrent::create_directories
    - libtorrent::has_parent_path
    linkageType: ''
    returnType: void
    signature: void create_directories(std::string const& f, error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:377,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:379,1
    - Dst: CreateDirectoryW
      Src: /src/libtorrent/src/path.cpp:381,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:381,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:382,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:383,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:383,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:383,1
    - Dst: ::mkdir
      Src: /src/libtorrent/src/path.cpp:385,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:385,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:387,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: libtorrent::create_directory
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::clear
    - system_category
    - libtorrent::assign
    - libtorrent::convert_to_native_path_string
    - CreateDirectoryW
    - ::mkdir
    - GetLastError
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void create_directory(std::string const& f, error_code& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:394,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:395,1
    - Dst: CreateHardLinkW
      Src: /src/libtorrent/src/path.cpp:399,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:399,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:399,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:402,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:406,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:411,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:411,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:411,1
    - Dst: libtorrent::link
      Src: /src/libtorrent/src/path.cpp:419,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:419,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:419,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:423,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:439,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:439,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/path.cpp:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - ' file'
    - ' link'
    - ' ec'
    argTypes:
    - std::string
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 451
    functionName: libtorrent::hard_link
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::clear
    - system_category
    - libtorrent::assign
    - libtorrent::link
    - CreateHardLinkW
    - libtorrent::convert_to_native_path_string
    - libtorrent::aux::copy_file
    - GetLastError
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: "void hard_link(std::string const& file, std::string const& link\n\t\t,
      error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:455,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/path.cpp:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 462
    functionName: libtorrent::is_directory
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::clear
    - libtorrent::stat_file
    linkageType: ''
    returnType: bool
    signature: bool is_directory(std::string const& f, error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:466,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/path.cpp:468,1
    - Dst: substr
      Src: /src/libtorrent/src/path.cpp:474,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 477
    functionName: libtorrent::extension
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - substr
    - static_cast<std::size_t>
    - libtorrent::size
    linkageType: ''
    returnType: std::string
    signature: std::string extension(std::string const& f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:481,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:481,1
    - Dst: std::max
      Src: /src/libtorrent/src/path.cpp:483,1
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:483,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:483,1
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:485,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:485,1
    - Dst: substr
      Src: /src/libtorrent/src/path.cpp:488,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/path.cpp:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: libtorrent::remove_extension
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - c_str
    - std::max
    - std::strrchr
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string remove_extension(std::string const& f)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:493,1
    - Dst: libtorrent::is_alpha
      Src: /src/libtorrent/src/path.cpp:500,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:501,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:504,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:509,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 22
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 524
    functionName: libtorrent::is_root_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::empty
    - libtorrent::is_alpha
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool is_root_path(std::string const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:528,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:529,1
    - Dst: defined
      Src: /src/libtorrent/src/path.cpp:530,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:531,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:533,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:533,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:535,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:536,1
    - Dst: defined
      Src: /src/libtorrent/src/path.cpp:537,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:538,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:540,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:540,1
    - Dst: compare
      Src: /src/libtorrent/src/path.cpp:541,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 542
    functionName: libtorrent::path_equal
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - defined
    - compare
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool path_equal(std::string const& lhs, std::string const& rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:550,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:550,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/path.cpp:551,1
    - Dst: first::empty
      Src: /src/libtorrent/src/path.cpp:551,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:552,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:552,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/path.cpp:554,1
    - Dst: first::empty
      Src: /src/libtorrent/src/path.cpp:554,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/path.cpp:556,1
    - Dst: first::empty
      Src: /src/libtorrent/src/path.cpp:557,1
    - Dst: auto::first::compare
      Src: /src/libtorrent/src/path.cpp:558,1
    - Dst: auto::first::compare
      Src: /src/libtorrent/src/path.cpp:561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - lhs
    - lfile
    - rhs
    - rfile
    argTypes:
    - string_view
    - string_view
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 565
    functionName: libtorrent::path_compare
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::lsplit_path
    - auto::first::empty
    - first::empty
    - auto::first::compare
    linkageType: ''
    returnType: int
    signature: "int path_compare(string_view const lhs, string_view const lfile\n\t\t,
      string_view const rhs, string_view const rfile)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:569,1
    - Dst: libtorrent::is_root_path
      Src: /src/libtorrent/src/path.cpp:570,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:572,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:574,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:574,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:577,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 583
    functionName: libtorrent::has_parent_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::is_root_path
    - libtorrent::empty
    - std::size_t
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool has_parent_path(std::string const& f)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:587,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:594,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:596,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:596,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:601,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:601,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:603,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:607,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:607,1
    - Dst: std::string
      Src: /src/libtorrent/src/path.cpp:608,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:608,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:608,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 609
    functionName: libtorrent::parent_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::size
    - c_str
    - std::string
    - libtorrent::empty
    - std::size_t
    linkageType: ''
    returnType: std::string
    signature: std::string parent_path(std::string const& f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:613,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:614,1
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:615,1
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:617,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:622,1
    - Dst: std::string
      Src: /src/libtorrent/src/path.cpp:635,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:635,1
    - Dst: std::string
      Src: /src/libtorrent/src/path.cpp:638,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:638,1
    - Dst: std::string
      Src: /src/libtorrent/src/path.cpp:641,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 642
    functionName: libtorrent::filename
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - c_str
    - std::string
    - libtorrent::empty
    - std::size_t
    - std::strrchr
    linkageType: ''
    returnType: std::string
    signature: std::string filename(std::string const& f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:646,1
    - Dst: libtorrent::is_complete
      Src: /src/libtorrent/src/path.cpp:646,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:647,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:649,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:649,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:649,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:652,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:656,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:657,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:660,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/path.cpp:664,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:664,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' branch'
    - leaf
    argTypes:
    - std::string
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 665
    functionName: libtorrent::append_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - string_view::data
    - libtorrent::size
    - libtorrent::assign
    - libtorrent::append
    - TORRENT_ASSERT
    - libtorrent::empty
    - string_view::empty
    - string_view::size
    - libtorrent::is_complete
    linkageType: ''
    returnType: void
    signature: void append_path(std::string& branch, string_view leaf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:669,1
    - Dst: libtorrent::is_complete
      Src: /src/libtorrent/src/path.cpp:669,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:670,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/path.cpp:670,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:671,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/path.cpp:671,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:675,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:675,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:678,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:681,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:681,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/path.cpp:682,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/path.cpp:683,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/path.cpp:683,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:684,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:684,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:686,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:686,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/path.cpp:687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 689
    functionName: libtorrent::combine_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 15
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - string_view::data
    - std::snprintf
    - TORRENT_ASSERT
    - string_view::empty
    - string_view::size
    - std::string::resize
    - string_view::to_string
    - libtorrent::is_complete
    linkageType: ''
    returnType: std::string
    signature: std::string combine_path(string_view lhs, string_view rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:694,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/path.cpp:694,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/path.cpp:695,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:696,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/path.cpp:696,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/path.cpp:697,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:702,1
    - Dst: std::tie
      Src: /src/libtorrent/src/path.cpp:708,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/path.cpp:708,1
    - Dst: std::tie
      Src: /src/libtorrent/src/path.cpp:709,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/path.cpp:709,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/path.cpp:722,1
    - Dst: std::count
      Src: /src/libtorrent/src/path.cpp:722,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/path.cpp:723,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/path.cpp:723,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:723,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/path.cpp:728,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - base
    - target
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 730
    functionName: libtorrent::lexically_relative
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - string_view::back
    - libtorrent::split_string
    - string_view::end
    - std::tie
    - string_view::remove_suffix
    - std::count
    - string_view::empty
    - string_view::to_string
    - string_view::begin
    linkageType: ''
    returnType: std::string
    signature: std::string lexically_relative(string_view base, string_view target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentDir_
      Src: /src/libtorrent/src/path.cpp:739,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/path.cpp:741,1
    - Dst: error_code
      Src: /src/libtorrent/src/path.cpp:741,1
    - Dst: generic_category
      Src: /src/libtorrent/src/path.cpp:741,1
    - Dst: libtorrent::make_free_holder
      Src: /src/libtorrent/src/path.cpp:742,1
    - Dst: libtorrent::convert_from_native_path
      Src: /src/libtorrent/src/path.cpp:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 745
    functionName: libtorrent::current_working_directory
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 6
    functionsReached:
    - aux::throw_ex<system_error>
    - libtorrent::make_free_holder
    - error_code
    - GetCurrentDir_
    - libtorrent::convert_from_native_path
    - generic_category
    linkageType: ''
    returnType: std::string
    signature: std::string current_working_directory()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/src/path.cpp:751,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:751,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:755,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:761,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/path.cpp:769,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/path.cpp:776,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/path.cpp:805,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 1
    argNames:
    - f
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 807
    functionName: libtorrent::canonicalize_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - string_view::size
    - std::string::resize
    - string_view::data
    - std::memcmp
    linkageType: ''
    returnType: std::string
    signature: std::string canonicalize_path(string_view f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/path.cpp:812,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 809
    functionDepth: 4
    functionLinenumber: 809
    functionLinenumberEnd: 822
    functionName: libtorrent::exists
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::stat_file
    linkageType: ''
    returnType: bool
    signature: bool exists(std::string const& f, error_code& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:826,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:827,1
    - Dst: native_path_string::empty
      Src: /src/libtorrent/src/path.cpp:832,1
    - Dst: native_path_string::back
      Src: /src/libtorrent/src/path.cpp:833,1
    - Dst: native_path_string::back
      Src: /src/libtorrent/src/path.cpp:834,1
    - Dst: native_path_string::pop_back
      Src: /src/libtorrent/src/path.cpp:835,1
    - Dst: DeleteFileW
      Src: /src/libtorrent/src/path.cpp:837,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:837,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:839,1
    - Dst: RemoveDirectoryW
      Src: /src/libtorrent/src/path.cpp:841,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:841,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:844,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:844,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:844,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/src/path.cpp:848,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:848,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:850,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:850,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ' inf'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 854
    functionName: libtorrent::remove
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - system_category
    - native_path_string::pop_back
    - RemoveDirectoryW
    - libtorrent::assign
    - libtorrent::aux::packet_buffer::remove
    - native_path_string::c_str
    - libtorrent::convert_to_native_path_string
    - DeleteFileW
    - GetLastError
    - native_path_string::back
    - native_path_string::empty
    linkageType: ''
    returnType: void
    signature: void remove(std::string const& inf, error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:858,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/path.cpp:861,1
    - Dst: aux::directory::done
      Src: /src/libtorrent/src/path.cpp:866,1
    - Dst: aux::directory::next
      Src: /src/libtorrent/src/path.cpp:866,1
    - Dst: aux::directory::file
      Src: /src/libtorrent/src/path.cpp:869,1
    - Dst: libtorrent::remove_all
      Src: /src/libtorrent/src/path.cpp:871,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/path.cpp:871,1
    - Dst: libtorrent::remove
      Src: /src/libtorrent/src/path.cpp:875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 856
    functionDepth: 4
    functionLinenumber: 856
    functionLinenumberEnd: 876
    functionName: libtorrent::remove_all
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::clear
    - libtorrent::remove_all
    - aux::directory::done
    - libtorrent::combine_path
    - libtorrent::stat_file
    - aux::directory::next
    - aux::directory::file
    - libtorrent::remove
    linkageType: ''
    returnType: void
    signature: void remove_all(std::string const& f, error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:880,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/path.cpp:881,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/path.cpp:881,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/path.cpp:883,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/path.cpp:883,1
    - Dst: string_view::find_last_of
      Src: /src/libtorrent/src/path.cpp:886,1
    - Dst: string_view::find_last_of
      Src: /src/libtorrent/src/path.cpp:888,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:891,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 892
    functionName: libtorrent::rsplit_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - string_view::back
    - string_view::remove_suffix
    - string_view::find_last_of
    - string_view::empty
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> rsplit_path(string_view p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:896,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/path.cpp:898,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/path.cpp:898,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/path.cpp:900,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/path.cpp:900,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/path.cpp:903,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/path.cpp:905,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:908,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 909
    functionName: libtorrent::lsplit_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - string_view::substr
    - string_view::find_first_of
    - string_view::empty
    - string_view::front
    - string_view::remove_prefix
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> lsplit_path(string_view p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:913,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/path.cpp:915,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/path.cpp:917,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/path.cpp:920,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/path.cpp:922,1
    - Dst: std::string::size_type
      Src: /src/libtorrent/src/path.cpp:922,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/path.cpp:924,1
    - Dst: std::string::size_type
      Src: /src/libtorrent/src/path.cpp:924,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:927,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:927,1
    - Dst: libtorrent::is_complete
      Src: /src/libtorrent/src/path.cpp:932,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/path.cpp:932,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:933,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/path.cpp:935,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/src/path.cpp:935,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:940,1
    - Dst: libtorrent::is_alpha
      Src: /src/libtorrent/src/path.cpp:944,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:945,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:949,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 2
    argNames:
    - p
    - pos
    argTypes:
    - string_view
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 911
    functionDepth: 4
    functionLinenumber: 911
    functionLinenumberEnd: 957
    functionName: libtorrent::lsplit_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached:
    - std::string::size_type
    - string_view::substr
    - libtorrent::lsplit_path
    - libtorrent::size
    - libtorrent::find_first_of
    - libtorrent::is_alpha
    - libtorrent::combine_path
    - libtorrent::to_string
    - string_view::empty
    - libtorrent::empty
    - libtorrent::current_working_directory
    - string_view::front
    - libtorrent::is_complete
    - string_view::remove_prefix
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> lsplit_path(string_view p, std::size_t
      pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_complete
      Src: /src/libtorrent/src/path.cpp:932,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/path.cpp:932,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:933,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/path.cpp:935,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/src/path.cpp:935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 930
    functionDepth: 4
    functionLinenumber: 930
    functionLinenumberEnd: 936
    functionName: libtorrent::complete
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::lsplit_path
    - libtorrent::combine_path
    - libtorrent::current_working_directory
    - string_view::to_string
    - libtorrent::is_complete
    linkageType: ''
    returnType: std::string
    signature: std::string complete(string_view f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:940,1
    - Dst: libtorrent::is_alpha
      Src: /src/libtorrent/src/path.cpp:944,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:945,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:949,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 1
    argNames:
    - f
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 956
    functionName: libtorrent::is_complete
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 4
    functionsReached:
    - string_view::empty
    - libtorrent::is_alpha
    - string_view::size
    linkageType: ''
    returnType: bool
    signature: bool is_complete(string_view f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_from_wstring
      Src: /src/libtorrent/src/path.cpp:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::convert_from_native_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::convert_from_wstring
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_native_path(wchar_t const* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_from_native
      Src: /src/libtorrent/src/path.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::convert_from_native_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::convert_from_native
    linkageType: ''
    returnType: std::string
    signature: std::string convert_from_native_path(char const* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/src/path.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator()(void* ptr) const noexcept
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void operator()(void* ptr) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<T, free_function>
      Src: /src/libtorrent/src/path.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::make_free_holder
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<T, free_function>
    linkageType: ''
    returnType: std::unique_ptr<T, free_function>
    signature: std::unique_ptr<T, free_function> make_free_holder(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:140,1
    - Dst: time_t
      Src: /src/libtorrent/src/path.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: libtorrent::file_time_to_posix
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached:
    - time_t
    - std::uint64_t
    linkageType: ''
    returnType: time_t
    signature: time_t file_time_to_posix(FILETIME f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:151,1
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:152,1
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ' s'
    - file_size
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - LARGE_INTEGER
    - DWORD
    - FILETIME
    - FILETIME
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::file_time_to_posix
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, LARGE_INTEGER file_size, DWORD
      file_attributes, FILETIME creation_time, FILETIME last_access, FILETIME last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LONG>
      Src: /src/libtorrent/src/path.cpp:164,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - ' s'
    - file_size_low
    - file_size_high
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - DWORD
    - DWORD
    - DWORD
    - FILETIME
    - FILETIME
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 6
    functionsReached:
    - static_cast<LONG>
    - libtorrent::fill_file_status
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, DWORD file_size_low, DWORD file_size_high,
      DWORD file_attributes, FILETIME creation_time, FILETIME last_access, FILETIME
      last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: libtorrent::to_file_time
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: FILETIME
    signature: FILETIME to_file_time(LARGE_INTEGER i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' s'
    - file_size
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - LARGE_INTEGER
    - DWORD
    - LARGE_INTEGER
    - LARGE_INTEGER
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::fill_file_status
    - libtorrent::to_file_time
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, LARGE_INTEGER file_size, DWORD
      file_attributes, LARGE_INTEGER creation_time, LARGE_INTEGER last_access, LARGE_INTEGER
      last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/libtorrent/src/path.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator()(void* ptr) const noexcept
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void operator()(void* ptr) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<T, free_function>
      Src: /src/libtorrent/src/path.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: libtorrent::make_free_holder
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<T, free_function>
    linkageType: ''
    returnType: std::unique_ptr<T, free_function>
    signature: std::unique_ptr<T, free_function> make_free_holder(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:140,1
    - Dst: time_t
      Src: /src/libtorrent/src/path.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: libtorrent::file_time_to_posix
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 3
    functionsReached:
    - time_t
    - std::uint64_t
    linkageType: ''
    returnType: time_t
    signature: time_t file_time_to_posix(FILETIME f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:151,1
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:152,1
    - Dst: libtorrent::file_time_to_posix
      Src: /src/libtorrent/src/path.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ' s'
    - file_size
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - LARGE_INTEGER
    - DWORD
    - FILETIME
    - FILETIME
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::file_time_to_posix
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, LARGE_INTEGER file_size, DWORD
      file_attributes, FILETIME creation_time, FILETIME last_access, FILETIME last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LONG>
      Src: /src/libtorrent/src/path.cpp:164,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - ' s'
    - file_size_low
    - file_size_high
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - DWORD
    - DWORD
    - DWORD
    - FILETIME
    - FILETIME
    - FILETIME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 8
    functionsReached:
    - static_cast<LONG>
    - libtorrent::fill_file_status
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, DWORD file_size_low, DWORD file_size_high,
      DWORD file_attributes, FILETIME creation_time, FILETIME last_access, FILETIME
      last_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: libtorrent::to_file_time
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: FILETIME
    signature: FILETIME to_file_time(LARGE_INTEGER i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    - Dst: libtorrent::to_file_time
      Src: /src/libtorrent/src/path.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' s'
    - file_size
    - file_attributes
    - creation_time
    - last_access
    - last_write
    argTypes:
    - file_status
    - LARGE_INTEGER
    - DWORD
    - LARGE_INTEGER
    - LARGE_INTEGER
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: libtorrent::fill_file_status
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::fill_file_status
    - libtorrent::to_file_time
    linkageType: ''
    returnType: void
    signature: void fill_file_status(file_status & s, LARGE_INTEGER file_size, DWORD
      file_attributes, LARGE_INTEGER creation_time, LARGE_INTEGER last_access, LARGE_INTEGER
      last_write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::complete
      Src: /src/libtorrent/src/path.cpp:194,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/path.cpp:195,1
    - Dst: std::replace
      Src: /src/libtorrent/src/path.cpp:197,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/path.cpp:197,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/path.cpp:197,1
    - Dst: libtorrent::convert_to_wstring
      Src: /src/libtorrent/src/path.cpp:199,1
    - Dst: libtorrent::convert_to_wstring
      Src: /src/libtorrent/src/path.cpp:201,1
    - Dst: libtorrent::convert_to_native
      Src: /src/libtorrent/src/path.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: libtorrent::convert_to_native_path_string
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 13
    functionsReached:
    - libtorrent::convert_to_native
    - libtorrent::complete
    - std::replace
    - std::string::begin
    - std::string::end
    - libtorrent::convert_to_wstring
    - std::string::substr
    linkageType: ''
    returnType: native_path_string
    signature: native_path_string convert_to_native_path_string(std::string const&
      path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:211,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:212,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/path.cpp:216,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:216,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:218,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:218,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:218,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:219,1
    - Dst: CreateFile2
      Src: /src/libtorrent/src/path.cpp:235,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:235,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:240,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:240,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:240,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:241,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/libtorrent/src/path.cpp:249,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/libtorrent/src/path.cpp:250,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:253,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:253,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:254,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/path.cpp:255,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/path.cpp:258,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:260,1
    - Dst: CreateFileW
      Src: /src/libtorrent/src/path.cpp:266,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:266,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:270,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:270,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:270,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:271,1
    - Dst: GetFileInformationByHandle
      Src: /src/libtorrent/src/path.cpp:276,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:278,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:278,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:278,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:279,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/path.cpp:280,1
    - Dst: CloseHandle
      Src: /src/libtorrent/src/path.cpp:283,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:285,1
    - Dst: libtorrent::fill_file_status
      Src: /src/libtorrent/src/path.cpp:291,1
    - Dst: ::lstat
      Src: /src/libtorrent/src/path.cpp:300,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:300,1
    - Dst: libtorrent::stat
      Src: /src/libtorrent/src/path.cpp:302,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:302,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:305,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:305,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:315,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:316,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/path.cpp:317,1
    - Dst: S_ISREG
      Src: /src/libtorrent/src/path.cpp:319,1
    - Dst: S_ISDIR
      Src: /src/libtorrent/src/path.cpp:320,1
    - Dst: S_ISLNK
      Src: /src/libtorrent/src/path.cpp:321,1
    - Dst: S_ISFIFO
      Src: /src/libtorrent/src/path.cpp:322,1
    - Dst: S_ISCHR
      Src: /src/libtorrent/src/path.cpp:323,1
    - Dst: S_ISBLK
      Src: /src/libtorrent/src/path.cpp:324,1
    - Dst: S_ISSOCK
      Src: /src/libtorrent/src/path.cpp:325,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 4
    argNames:
    - ' inf'
    - s
    - ' ec'
    - flags
    argTypes:
    - std::string
    - file_status*
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 328
    functionName: libtorrent::stat_file
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 10
    functionsReached:
    - ::lstat
    - GetLastError
    - native_path_string::c_str
    - CreateFile2
    - libtorrent::assign
    - libtorrent::fill_file_status
    - CreateFileW
    - libtorrent::stat
    - S_ISFIFO
    - libtorrent::convert_to_native_path_string
    - libtorrent::clear
    - CloseHandle
    - S_ISREG
    - TORRENT_ASSERT
    - S_ISSOCK
    - S_ISCHR
    - system_category
    - GetFileAttributesExW
    - S_ISLNK
    - S_ISBLK
    - GetFileInformationByHandle
    - GetFileInformationByHandleEx
    - std::uint64_t
    - S_ISDIR
    linkageType: ''
    returnType: void
    signature: "void stat_file(std::string const& inf, file_status* s\n\t\t, error_code&
      ec, int const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:332,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:334,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:335,1
    - Dst: RenameFunction_
      Src: /src/libtorrent/src/path.cpp:345,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:345,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:345,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:347,1
    - Dst: generic_category
      Src: /src/libtorrent/src/path.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' inf'
    - ' newf'
    - ' ec'
    argTypes:
    - std::string
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 350
    functionName: libtorrent::rename
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::assign
    - generic_category
    - libtorrent::convert_to_native_path_string
    - RenameFunction_
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void rename(std::string const& inf, std::string const& newf, error_code&
      ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:354,1
    - Dst: libtorrent::is_directory
      Src: /src/libtorrent/src/path.cpp:355,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:358,1
    - Dst: libtorrent::is_root_path
      Src: /src/libtorrent/src/path.cpp:359,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/path.cpp:364,1
    - Dst: libtorrent::has_parent_path
      Src: /src/libtorrent/src/path.cpp:367,1
    - Dst: libtorrent::create_directories
      Src: /src/libtorrent/src/path.cpp:369,1
    - Dst: libtorrent::parent_path
      Src: /src/libtorrent/src/path.cpp:369,1
    - Dst: libtorrent::create_directory
      Src: /src/libtorrent/src/path.cpp:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 352
    functionDepth: 5
    functionLinenumber: 352
    functionLinenumberEnd: 373
    functionName: libtorrent::create_directories
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::clear
    - libtorrent::create_directory
    - libtorrent::is_directory
    - libtorrent::stat_file
    - libtorrent::parent_path
    - libtorrent::is_root_path
    - libtorrent::create_directories
    - libtorrent::has_parent_path
    linkageType: ''
    returnType: void
    signature: void create_directories(std::string const& f, error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:377,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:379,1
    - Dst: CreateDirectoryW
      Src: /src/libtorrent/src/path.cpp:381,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:381,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:382,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:383,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:383,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:383,1
    - Dst: ::mkdir
      Src: /src/libtorrent/src/path.cpp:385,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:385,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:387,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: libtorrent::create_directory
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::clear
    - system_category
    - libtorrent::assign
    - libtorrent::convert_to_native_path_string
    - CreateDirectoryW
    - ::mkdir
    - GetLastError
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: void create_directory(std::string const& f, error_code& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:394,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:395,1
    - Dst: CreateHardLinkW
      Src: /src/libtorrent/src/path.cpp:399,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:399,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:399,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:402,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:406,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:411,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:411,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:411,1
    - Dst: libtorrent::link
      Src: /src/libtorrent/src/path.cpp:419,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:419,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:419,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:423,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:439,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:439,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/path.cpp:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - ' file'
    - ' link'
    - ' ec'
    argTypes:
    - std::string
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 451
    functionName: libtorrent::hard_link
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::clear
    - system_category
    - libtorrent::assign
    - libtorrent::link
    - CreateHardLinkW
    - libtorrent::convert_to_native_path_string
    - libtorrent::aux::copy_file
    - GetLastError
    - native_path_string::c_str
    linkageType: ''
    returnType: void
    signature: "void hard_link(std::string const& file, std::string const& link\n\t\t,
      error_code& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:455,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/path.cpp:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 462
    functionName: libtorrent::is_directory
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::clear
    - libtorrent::stat_file
    linkageType: ''
    returnType: bool
    signature: bool is_directory(std::string const& f, error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:466,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/path.cpp:468,1
    - Dst: substr
      Src: /src/libtorrent/src/path.cpp:474,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 477
    functionName: libtorrent::extension
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - substr
    - static_cast<std::size_t>
    - libtorrent::size
    linkageType: ''
    returnType: std::string
    signature: std::string extension(std::string const& f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:481,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:481,1
    - Dst: std::max
      Src: /src/libtorrent/src/path.cpp:483,1
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:483,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:483,1
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:485,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:485,1
    - Dst: substr
      Src: /src/libtorrent/src/path.cpp:488,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/path.cpp:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: libtorrent::remove_extension
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - c_str
    - std::max
    - std::strrchr
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string remove_extension(std::string const& f)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:493,1
    - Dst: libtorrent::is_alpha
      Src: /src/libtorrent/src/path.cpp:500,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:501,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:504,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:509,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 22
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 524
    functionName: libtorrent::is_root_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::empty
    - libtorrent::is_alpha
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool is_root_path(std::string const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:528,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:529,1
    - Dst: defined
      Src: /src/libtorrent/src/path.cpp:530,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:531,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:533,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:533,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:535,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:536,1
    - Dst: defined
      Src: /src/libtorrent/src/path.cpp:537,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:538,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:540,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:540,1
    - Dst: compare
      Src: /src/libtorrent/src/path.cpp:541,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 542
    functionName: libtorrent::path_equal
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - defined
    - compare
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool path_equal(std::string const& lhs, std::string const& rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:550,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:550,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/path.cpp:551,1
    - Dst: first::empty
      Src: /src/libtorrent/src/path.cpp:551,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:552,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:552,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/path.cpp:554,1
    - Dst: first::empty
      Src: /src/libtorrent/src/path.cpp:554,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/path.cpp:556,1
    - Dst: first::empty
      Src: /src/libtorrent/src/path.cpp:557,1
    - Dst: auto::first::compare
      Src: /src/libtorrent/src/path.cpp:558,1
    - Dst: auto::first::compare
      Src: /src/libtorrent/src/path.cpp:561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - lhs
    - lfile
    - rhs
    - rfile
    argTypes:
    - string_view
    - string_view
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 565
    functionName: libtorrent::path_compare
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::lsplit_path
    - auto::first::empty
    - first::empty
    - auto::first::compare
    linkageType: ''
    returnType: int
    signature: "int path_compare(string_view const lhs, string_view const lfile\n\t\t,
      string_view const rhs, string_view const rfile)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:569,1
    - Dst: libtorrent::is_root_path
      Src: /src/libtorrent/src/path.cpp:570,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:572,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:574,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:574,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:577,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 583
    functionName: libtorrent::has_parent_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::is_root_path
    - libtorrent::empty
    - std::size_t
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool has_parent_path(std::string const& f)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:587,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:594,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:596,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:596,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:601,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:601,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:603,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:607,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:607,1
    - Dst: std::string
      Src: /src/libtorrent/src/path.cpp:608,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:608,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:608,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 609
    functionName: libtorrent::parent_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::size
    - c_str
    - std::string
    - libtorrent::empty
    - std::size_t
    linkageType: ''
    returnType: std::string
    signature: std::string parent_path(std::string const& f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:613,1
    - Dst: c_str
      Src: /src/libtorrent/src/path.cpp:614,1
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:615,1
    - Dst: std::strrchr
      Src: /src/libtorrent/src/path.cpp:617,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:622,1
    - Dst: std::string
      Src: /src/libtorrent/src/path.cpp:635,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:635,1
    - Dst: std::string
      Src: /src/libtorrent/src/path.cpp:638,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/path.cpp:638,1
    - Dst: std::string
      Src: /src/libtorrent/src/path.cpp:641,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 642
    functionName: libtorrent::filename
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - c_str
    - std::string
    - libtorrent::empty
    - std::size_t
    - std::strrchr
    linkageType: ''
    returnType: std::string
    signature: std::string filename(std::string const& f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:646,1
    - Dst: libtorrent::is_complete
      Src: /src/libtorrent/src/path.cpp:646,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:647,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:649,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:649,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:649,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:652,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:656,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:657,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:660,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/path.cpp:664,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:664,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' branch'
    - leaf
    argTypes:
    - std::string
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 665
    functionName: libtorrent::append_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - string_view::data
    - libtorrent::size
    - libtorrent::assign
    - libtorrent::append
    - TORRENT_ASSERT
    - libtorrent::empty
    - string_view::empty
    - string_view::size
    - libtorrent::is_complete
    linkageType: ''
    returnType: void
    signature: void append_path(std::string& branch, string_view leaf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/path.cpp:669,1
    - Dst: libtorrent::is_complete
      Src: /src/libtorrent/src/path.cpp:669,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:670,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/path.cpp:670,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:671,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/path.cpp:671,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:675,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:675,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:678,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:681,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:681,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/path.cpp:682,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/path.cpp:683,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/path.cpp:683,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:684,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:684,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:686,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:686,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/path.cpp:687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 689
    functionName: libtorrent::combine_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 18
    functionsReached:
    - aux::numeric_cast<std::size_t>
    - string_view::data
    - std::snprintf
    - TORRENT_ASSERT
    - string_view::empty
    - string_view::size
    - std::string::resize
    - string_view::to_string
    - libtorrent::is_complete
    linkageType: ''
    returnType: std::string
    signature: std::string combine_path(string_view lhs, string_view rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:694,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/path.cpp:694,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/path.cpp:695,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:696,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/path.cpp:696,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/path.cpp:697,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:702,1
    - Dst: std::tie
      Src: /src/libtorrent/src/path.cpp:708,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/path.cpp:708,1
    - Dst: std::tie
      Src: /src/libtorrent/src/path.cpp:709,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/path.cpp:709,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/path.cpp:722,1
    - Dst: std::count
      Src: /src/libtorrent/src/path.cpp:722,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/path.cpp:723,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/path.cpp:723,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:723,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/path.cpp:728,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - base
    - target
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 730
    functionName: libtorrent::lexically_relative
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - string_view::back
    - libtorrent::split_string
    - string_view::end
    - std::tie
    - string_view::remove_suffix
    - std::count
    - string_view::empty
    - string_view::to_string
    - string_view::begin
    linkageType: ''
    returnType: std::string
    signature: std::string lexically_relative(string_view base, string_view target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentDir_
      Src: /src/libtorrent/src/path.cpp:739,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/path.cpp:741,1
    - Dst: error_code
      Src: /src/libtorrent/src/path.cpp:741,1
    - Dst: generic_category
      Src: /src/libtorrent/src/path.cpp:741,1
    - Dst: libtorrent::make_free_holder
      Src: /src/libtorrent/src/path.cpp:742,1
    - Dst: libtorrent::convert_from_native_path
      Src: /src/libtorrent/src/path.cpp:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 745
    functionName: libtorrent::current_working_directory
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 8
    functionsReached:
    - aux::throw_ex<system_error>
    - libtorrent::make_free_holder
    - error_code
    - GetCurrentDir_
    - libtorrent::convert_from_native_path
    - generic_category
    linkageType: ''
    returnType: std::string
    signature: std::string current_working_directory()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/src/path.cpp:751,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:751,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/path.cpp:755,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:761,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/path.cpp:769,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/path.cpp:776,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/path.cpp:805,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 1
    argNames:
    - f
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 807
    functionName: libtorrent::canonicalize_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - string_view::size
    - std::string::resize
    - string_view::data
    - std::memcmp
    linkageType: ''
    returnType: std::string
    signature: std::string canonicalize_path(string_view f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/path.cpp:812,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 809
    functionDepth: 4
    functionLinenumber: 809
    functionLinenumberEnd: 822
    functionName: libtorrent::exists
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::stat_file
    linkageType: ''
    returnType: bool
    signature: bool exists(std::string const& f, error_code& ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:826,1
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/path.cpp:827,1
    - Dst: native_path_string::empty
      Src: /src/libtorrent/src/path.cpp:832,1
    - Dst: native_path_string::back
      Src: /src/libtorrent/src/path.cpp:833,1
    - Dst: native_path_string::back
      Src: /src/libtorrent/src/path.cpp:834,1
    - Dst: native_path_string::pop_back
      Src: /src/libtorrent/src/path.cpp:835,1
    - Dst: DeleteFileW
      Src: /src/libtorrent/src/path.cpp:837,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:837,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:839,1
    - Dst: RemoveDirectoryW
      Src: /src/libtorrent/src/path.cpp:841,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:841,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:844,1
    - Dst: GetLastError
      Src: /src/libtorrent/src/path.cpp:844,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:844,1
    - Dst: libtorrent::aux::packet_buffer::remove
      Src: /src/libtorrent/src/path.cpp:848,1
    - Dst: native_path_string::c_str
      Src: /src/libtorrent/src/path.cpp:848,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/path.cpp:850,1
    - Dst: system_category
      Src: /src/libtorrent/src/path.cpp:850,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ' inf'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 854
    functionName: libtorrent::remove
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::clear
    - system_category
    - native_path_string::pop_back
    - RemoveDirectoryW
    - libtorrent::assign
    - libtorrent::aux::packet_buffer::remove
    - native_path_string::c_str
    - libtorrent::convert_to_native_path_string
    - DeleteFileW
    - GetLastError
    - native_path_string::back
    - native_path_string::empty
    linkageType: ''
    returnType: void
    signature: void remove(std::string const& inf, error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/path.cpp:858,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/path.cpp:861,1
    - Dst: aux::directory::done
      Src: /src/libtorrent/src/path.cpp:866,1
    - Dst: aux::directory::next
      Src: /src/libtorrent/src/path.cpp:866,1
    - Dst: aux::directory::file
      Src: /src/libtorrent/src/path.cpp:869,1
    - Dst: libtorrent::remove_all
      Src: /src/libtorrent/src/path.cpp:871,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/path.cpp:871,1
    - Dst: libtorrent::remove
      Src: /src/libtorrent/src/path.cpp:875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ' f'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 856
    functionDepth: 4
    functionLinenumber: 856
    functionLinenumberEnd: 876
    functionName: libtorrent::remove_all
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::clear
    - libtorrent::remove_all
    - aux::directory::done
    - libtorrent::combine_path
    - libtorrent::stat_file
    - aux::directory::next
    - aux::directory::file
    - libtorrent::remove
    linkageType: ''
    returnType: void
    signature: void remove_all(std::string const& f, error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:880,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/path.cpp:881,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/path.cpp:881,1
    - Dst: string_view::back
      Src: /src/libtorrent/src/path.cpp:883,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/src/path.cpp:883,1
    - Dst: string_view::find_last_of
      Src: /src/libtorrent/src/path.cpp:886,1
    - Dst: string_view::find_last_of
      Src: /src/libtorrent/src/path.cpp:888,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:891,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 892
    functionName: libtorrent::rsplit_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - string_view::back
    - string_view::remove_suffix
    - string_view::find_last_of
    - string_view::empty
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> rsplit_path(string_view p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:896,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/path.cpp:898,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/path.cpp:898,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/path.cpp:900,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/path.cpp:900,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/path.cpp:903,1
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/src/path.cpp:905,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:908,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 909
    functionName: libtorrent::lsplit_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 4
    functionsReached:
    - string_view::substr
    - string_view::find_first_of
    - string_view::empty
    - string_view::front
    - string_view::remove_prefix
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> lsplit_path(string_view p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:913,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/path.cpp:915,1
    - Dst: string_view::front
      Src: /src/libtorrent/src/path.cpp:917,1
    - Dst: string_view::remove_prefix
      Src: /src/libtorrent/src/path.cpp:920,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/path.cpp:922,1
    - Dst: std::string::size_type
      Src: /src/libtorrent/src/path.cpp:922,1
    - Dst: libtorrent::find_first_of
      Src: /src/libtorrent/src/path.cpp:924,1
    - Dst: std::string::size_type
      Src: /src/libtorrent/src/path.cpp:924,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:927,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/path.cpp:927,1
    - Dst: libtorrent::is_complete
      Src: /src/libtorrent/src/path.cpp:932,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/path.cpp:932,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:933,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/path.cpp:935,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/src/path.cpp:935,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/path.cpp:940,1
    - Dst: libtorrent::is_alpha
      Src: /src/libtorrent/src/path.cpp:944,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:945,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/path.cpp:949,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 2
    argNames:
    - p
    - pos
    argTypes:
    - string_view
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 911
    functionDepth: 4
    functionLinenumber: 911
    functionLinenumberEnd: 957
    functionName: libtorrent::lsplit_path
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 5
    functionsReached:
    - std::string::size_type
    - string_view::substr
    - libtorrent::lsplit_path
    - libtorrent::size
    - libtorrent::find_first_of
    - libtorrent::is_alpha
    - libtorrent::combine_path
    - libtorrent::to_string
    - string_view::empty
    - libtorrent::empty
    - libtorrent::current_working_directory
    - string_view::front
    - libtorrent::is_complete
    - string_view::remove_prefix
    linkageType: ''
    returnType: std::pair<string_view, string_view>
    signature: std::pair<string_view, string_view> lsplit_path(string_view p, std::size_t
      pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_complete
      Src: /src/libtorrent/src/path.cpp:932,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/path.cpp:932,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/path.cpp:933,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/path.cpp:935,1
    - Dst: libtorrent::current_working_directory
      Src: /src/libtorrent/src/path.cpp:935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 930
    functionDepth: 4
    functionLinenumber: 930
    functionLinenumberEnd: 936
    functionName: libtorrent::complete
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::lsplit_path
    - libtorrent::combine_path
    - libtorrent::current_working_directory
    - string_view::to_string
    - libtorrent::is_complete
    linkageType: ''
    returnType: std::string
    signature: std::string complete(string_view f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/path.cpp:940,1
    - Dst: libtorrent::is_alpha
      Src: /src/libtorrent/src/path.cpp:944,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:945,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/path.cpp:949,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 1
    argNames:
    - f
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 956
    functionName: libtorrent::is_complete
    functionSourceFile: /src/libtorrent/src/path.cpp
    functionUses: 8
    functionsReached:
    - string_view::empty
    - libtorrent::is_alpha
    - string_view::size
    linkageType: ''
    returnType: bool
    signature: bool is_complete(string_view f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRetain
      Src: /src/libtorrent/src/ip_notifier.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::CFRefRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRetain
    linkageType: ''
    returnType: void
    signature: void CFRefRetain(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/libtorrent/src/ip_notifier.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::aux::CFRefRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void CFRefRelease(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::release
      Src: /src/libtorrent/src/ip_notifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~CFRef()
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::release
    linkageType: ''
    returnType: void
    signature: void ~CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::release
      Src: /src/libtorrent/src/ip_notifier.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '& operator=(CFRef&& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::retain
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::release
      Src: /src/libtorrent/src/ip_notifier.cpp:95,1
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: '& operator=(CFRef const& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::release
    - libtorrent::aux::retain
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(T h) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(T h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(std::nullptr_t) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(std::nullptr_t) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/libtorrent/src/ip_notifier.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::retain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached:
    - Retain
    linkageType: ''
    returnType: void
    signature: void retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/libtorrent/src/ip_notifier.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::release
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 3
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_retain
      Src: /src/libtorrent/src/ip_notifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::CFDispatchRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_retain
    linkageType: ''
    returnType: void
    signature: void CFDispatchRetain(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_release
      Src: /src/libtorrent/src/ip_notifier.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::CFDispatchRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_release
    linkageType: ''
    returnType: void
    signature: void CFDispatchRelease(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_error_code
    - std::move
    - cb1
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::local_endpoint
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: netlink
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: libtorrent::aux::set_option
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    - Dst: libtorrent::no_enobufs
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::local_endpoint
    - libtorrent::aux::set_option
    - netlink
    - libtorrent::no_enobufs
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:156,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:158,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::m_buf::data
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/ip_notifier.cpp:175,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/ip_notifier.cpp:176,1
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:187,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:189,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - len
    - cb
    argTypes:
    - int
    - std::function<void(error_code const& ec)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: libtorrent::aux::on_notify
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached:
    - cb
    - reinterpret_cast<nlmsghdr const*>
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - libtorrent::aux::nlmsg_ok
    - error_code
    - libtorrent::aux::m_buf::data
    - libtorrent::aux::nlmsg_next
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void on_notify(int len, std::function<void(error_code const& ec)> cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:209,1
    - Dst: SCNetworkReachabilityCreateWithAddress
      Src: /src/libtorrent/src/ip_notifier.cpp:215,1
    - Dst: reinterpret_cast<sockaddr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:216,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:218,1
    - Dst: SCNetworkReachabilitySetCallback
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCNetworkReachabilityCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::create_reachability
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - SCNetworkReachabilityCreateWithAddress
    - SCNetworkReachabilitySetCallback
    - reinterpret_cast<sockaddr const*>
    - TORRENT_ASSERT
    - CFRef::get
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCNetworkReachabilityRef>
    signature: "CFRef<SCNetworkReachabilityRef> create_reachability(SCNetworkReachabilityCallBack
      callback\n\t, void* context_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:232,1
    - Dst: libtorrent::aux::create_reachability
      Src: /src/libtorrent/src/ip_notifier.cpp:233,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:236,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:240,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - post
    - error_code
    - SCNetworkReachabilitySetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - libtorrent::aux::create_reachability
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:261,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:263,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::get
    - SCNetworkReachabilitySetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreateMutable
      Src: /src/libtorrent/src/ip_notifier.cpp:287,1
    - Dst: SCDynamicStoreKeyCreateNetworkInterfaceEntity
      Src: /src/libtorrent/src/ip_notifier.cpp:291,1
    - Dst: CFArrayAppendValue
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: libtorrent::aux::create_keys_array
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - SCDynamicStoreKeyCreateNetworkInterfaceEntity
    - CFArrayAppendValue
    - CFRef::get
    - CFArrayCreateMutable
    linkageType: ''
    returnType: CFRef<CFMutableArrayRef>
    signature: CFRef<CFMutableArrayRef> create_keys_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:305,1
    - Dst: SCDynamicStoreCreate
      Src: /src/libtorrent/src/ip_notifier.cpp:314,1
    - Dst: CFSTR
      Src: /src/libtorrent/src/ip_notifier.cpp:315,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:320,1
    - Dst: libtorrent::aux::create_keys_array
      Src: /src/libtorrent/src/ip_notifier.cpp:322,1
    - Dst: SCDynamicStoreSetNotificationKeys
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCDynamicStoreCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::create_dynamic_store
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - SCDynamicStoreSetNotificationKeys
    - SCDynamicStoreCreate
    - CFSTR
    - CFRef::get
    - TORRENT_ASSERT
    - libtorrent::aux::create_keys_array
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCDynamicStoreRef>
    signature: CFRef<SCDynamicStoreRef> create_dynamic_store(SCDynamicStoreCallBack
      callback, void* context_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:332,1
    - Dst: libtorrent::aux::create_dynamic_store
      Src: /src/libtorrent/src/ip_notifier.cpp:333,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:340,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - libtorrent::aux::create_dynamic_store
    - post
    - error_code
    - SCDynamicStoreSetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:363,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::get
    - SCDynamicStoreSetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NotifyUnicastIpAddressChange
      Src: /src/libtorrent/src/ip_notifier.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - NotifyUnicastIpAddressChange
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& operator=(ip_change_notifier_impl&&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelMibChangeNotify2
      Src: /src/libtorrent/src/ip_notifier.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CancelMibChangeNotify2
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - make_error_code
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:427,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 5
    functionsReached:
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:439,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: libtorrent::aux::address_change_cb
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::move
    - post
    - error_code
    - static_cast<ip_change_notifier_impl*>
    linkageType: ''
    returnType: void
    signature: void address_change_cb(void* ctx, MIB_UNICASTIPADDRESS_ROW*, MIB_NOTIFICATION_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:462,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRetain
      Src: /src/libtorrent/src/ip_notifier.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::CFRefRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRetain
    linkageType: ''
    returnType: void
    signature: void CFRefRetain(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/libtorrent/src/ip_notifier.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::aux::CFRefRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void CFRefRelease(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::release
      Src: /src/libtorrent/src/ip_notifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~CFRef()
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::release
    linkageType: ''
    returnType: void
    signature: void ~CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::release
      Src: /src/libtorrent/src/ip_notifier.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '& operator=(CFRef&& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::retain
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::release
      Src: /src/libtorrent/src/ip_notifier.cpp:95,1
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: '& operator=(CFRef const& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::release
    - libtorrent::aux::retain
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(T h) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(T h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(std::nullptr_t) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(std::nullptr_t) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/libtorrent/src/ip_notifier.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::retain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached:
    - Retain
    linkageType: ''
    returnType: void
    signature: void retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/libtorrent/src/ip_notifier.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::release
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_retain
      Src: /src/libtorrent/src/ip_notifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::CFDispatchRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_retain
    linkageType: ''
    returnType: void
    signature: void CFDispatchRetain(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_release
      Src: /src/libtorrent/src/ip_notifier.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::CFDispatchRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_release
    linkageType: ''
    returnType: void
    signature: void CFDispatchRelease(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_error_code
    - std::move
    - cb1
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::local_endpoint
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: netlink
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: libtorrent::aux::set_option
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    - Dst: libtorrent::no_enobufs
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::local_endpoint
    - libtorrent::aux::set_option
    - netlink
    - libtorrent::no_enobufs
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:156,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:158,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::m_buf::data
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/ip_notifier.cpp:175,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/ip_notifier.cpp:176,1
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:187,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:189,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - len
    - cb
    argTypes:
    - int
    - std::function<void(error_code const& ec)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: libtorrent::aux::on_notify
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached:
    - cb
    - reinterpret_cast<nlmsghdr const*>
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - libtorrent::aux::nlmsg_ok
    - error_code
    - libtorrent::aux::m_buf::data
    - libtorrent::aux::nlmsg_next
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void on_notify(int len, std::function<void(error_code const& ec)> cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:209,1
    - Dst: SCNetworkReachabilityCreateWithAddress
      Src: /src/libtorrent/src/ip_notifier.cpp:215,1
    - Dst: reinterpret_cast<sockaddr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:216,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:218,1
    - Dst: SCNetworkReachabilitySetCallback
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCNetworkReachabilityCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::create_reachability
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 1
    functionsReached:
    - SCNetworkReachabilityCreateWithAddress
    - SCNetworkReachabilitySetCallback
    - reinterpret_cast<sockaddr const*>
    - TORRENT_ASSERT
    - CFRef::get
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCNetworkReachabilityRef>
    signature: "CFRef<SCNetworkReachabilityRef> create_reachability(SCNetworkReachabilityCallBack
      callback\n\t, void* context_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:232,1
    - Dst: libtorrent::aux::create_reachability
      Src: /src/libtorrent/src/ip_notifier.cpp:233,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:236,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:240,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - post
    - error_code
    - SCNetworkReachabilitySetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - libtorrent::aux::create_reachability
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:261,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:263,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::get
    - SCNetworkReachabilitySetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreateMutable
      Src: /src/libtorrent/src/ip_notifier.cpp:287,1
    - Dst: SCDynamicStoreKeyCreateNetworkInterfaceEntity
      Src: /src/libtorrent/src/ip_notifier.cpp:291,1
    - Dst: CFArrayAppendValue
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: libtorrent::aux::create_keys_array
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 1
    functionsReached:
    - SCDynamicStoreKeyCreateNetworkInterfaceEntity
    - CFArrayAppendValue
    - CFRef::get
    - CFArrayCreateMutable
    linkageType: ''
    returnType: CFRef<CFMutableArrayRef>
    signature: CFRef<CFMutableArrayRef> create_keys_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:305,1
    - Dst: SCDynamicStoreCreate
      Src: /src/libtorrent/src/ip_notifier.cpp:314,1
    - Dst: CFSTR
      Src: /src/libtorrent/src/ip_notifier.cpp:315,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:320,1
    - Dst: libtorrent::aux::create_keys_array
      Src: /src/libtorrent/src/ip_notifier.cpp:322,1
    - Dst: SCDynamicStoreSetNotificationKeys
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCDynamicStoreCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::create_dynamic_store
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 1
    functionsReached:
    - SCDynamicStoreSetNotificationKeys
    - SCDynamicStoreCreate
    - CFSTR
    - CFRef::get
    - TORRENT_ASSERT
    - libtorrent::aux::create_keys_array
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCDynamicStoreRef>
    signature: CFRef<SCDynamicStoreRef> create_dynamic_store(SCDynamicStoreCallBack
      callback, void* context_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:332,1
    - Dst: libtorrent::aux::create_dynamic_store
      Src: /src/libtorrent/src/ip_notifier.cpp:333,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:340,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - libtorrent::aux::create_dynamic_store
    - post
    - error_code
    - SCDynamicStoreSetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:363,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::get
    - SCDynamicStoreSetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NotifyUnicastIpAddressChange
      Src: /src/libtorrent/src/ip_notifier.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - NotifyUnicastIpAddressChange
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& operator=(ip_change_notifier_impl&&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelMibChangeNotify2
      Src: /src/libtorrent/src/ip_notifier.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CancelMibChangeNotify2
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - make_error_code
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:427,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached:
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:439,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: libtorrent::aux::address_change_cb
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::move
    - post
    - error_code
    - static_cast<ip_change_notifier_impl*>
    linkageType: ''
    returnType: void
    signature: void address_change_cb(void* ctx, MIB_UNICASTIPADDRESS_ROW*, MIB_NOTIFICATION_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:462,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ip_change_notifier_impl>
      Src: /src/libtorrent/src/ip_notifier.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: libtorrent::aux::create_ip_notifier
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ip_change_notifier_impl>
    linkageType: ''
    returnType: std::unique_ptr<ip_change_notifier>
    signature: std::unique_ptr<ip_change_notifier> create_ip_notifier(io_context&
      ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRetain
      Src: /src/libtorrent/src/ip_notifier.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::CFRefRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRetain
    linkageType: ''
    returnType: void
    signature: void CFRefRetain(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/libtorrent/src/ip_notifier.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::aux::CFRefRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void CFRefRelease(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~CFRef()
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: void
    signature: void ~CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '& operator=(CFRef&& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::retain
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:95,1
    - Dst: retain
      Src: /src/libtorrent/src/ip_notifier.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: '& operator=(CFRef const& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    - retain
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(T h) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(T h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(std::nullptr_t) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(std::nullptr_t) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/libtorrent/src/ip_notifier.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::retain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 5
    functionsReached:
    - Retain
    linkageType: ''
    returnType: void
    signature: void retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/libtorrent/src/ip_notifier.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::release
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_retain
      Src: /src/libtorrent/src/ip_notifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::CFDispatchRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_retain
    linkageType: ''
    returnType: void
    signature: void CFDispatchRetain(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_release
      Src: /src/libtorrent/src/ip_notifier.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::CFDispatchRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_release
    linkageType: ''
    returnType: void
    signature: void CFDispatchRelease(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_error_code
    - std::move
    - cb1
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::local_endpoint
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: netlink
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: libtorrent::aux::set_option
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    - Dst: libtorrent::no_enobufs
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::local_endpoint
    - libtorrent::aux::set_option
    - netlink
    - libtorrent::no_enobufs
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:156,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:158,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::m_buf::data
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/ip_notifier.cpp:175,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/ip_notifier.cpp:176,1
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:187,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:189,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - len
    - cb
    argTypes:
    - int
    - std::function<void(error_code const& ec)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: libtorrent::aux::on_notify
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - cb
    - reinterpret_cast<nlmsghdr const*>
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - libtorrent::aux::nlmsg_ok
    - error_code
    - libtorrent::aux::m_buf::data
    - libtorrent::aux::nlmsg_next
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void on_notify(int len, std::function<void(error_code const& ec)> cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:209,1
    - Dst: SCNetworkReachabilityCreateWithAddress
      Src: /src/libtorrent/src/ip_notifier.cpp:215,1
    - Dst: reinterpret_cast<sockaddr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:216,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:218,1
    - Dst: SCNetworkReachabilitySetCallback
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCNetworkReachabilityCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::create_reachability
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached:
    - SCNetworkReachabilityCreateWithAddress
    - SCNetworkReachabilitySetCallback
    - reinterpret_cast<sockaddr const*>
    - TORRENT_ASSERT
    - CFRef::get
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCNetworkReachabilityRef>
    signature: "CFRef<SCNetworkReachabilityRef> create_reachability(SCNetworkReachabilityCallBack
      callback\n\t, void* context_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:232,1
    - Dst: libtorrent::aux::create_reachability
      Src: /src/libtorrent/src/ip_notifier.cpp:233,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:236,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:240,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - post
    - error_code
    - SCNetworkReachabilitySetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - libtorrent::aux::create_reachability
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:261,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:263,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::get
    - SCNetworkReachabilitySetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreateMutable
      Src: /src/libtorrent/src/ip_notifier.cpp:287,1
    - Dst: SCDynamicStoreKeyCreateNetworkInterfaceEntity
      Src: /src/libtorrent/src/ip_notifier.cpp:291,1
    - Dst: CFArrayAppendValue
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: libtorrent::aux::create_keys_array
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached:
    - SCDynamicStoreKeyCreateNetworkInterfaceEntity
    - CFArrayAppendValue
    - CFRef::get
    - CFArrayCreateMutable
    linkageType: ''
    returnType: CFRef<CFMutableArrayRef>
    signature: CFRef<CFMutableArrayRef> create_keys_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:305,1
    - Dst: SCDynamicStoreCreate
      Src: /src/libtorrent/src/ip_notifier.cpp:314,1
    - Dst: CFSTR
      Src: /src/libtorrent/src/ip_notifier.cpp:315,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:320,1
    - Dst: libtorrent::aux::create_keys_array
      Src: /src/libtorrent/src/ip_notifier.cpp:322,1
    - Dst: SCDynamicStoreSetNotificationKeys
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCDynamicStoreCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::create_dynamic_store
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 2
    functionsReached:
    - SCDynamicStoreSetNotificationKeys
    - SCDynamicStoreCreate
    - CFSTR
    - CFRef::get
    - TORRENT_ASSERT
    - libtorrent::aux::create_keys_array
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCDynamicStoreRef>
    signature: CFRef<SCDynamicStoreRef> create_dynamic_store(SCDynamicStoreCallBack
      callback, void* context_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:332,1
    - Dst: libtorrent::aux::create_dynamic_store
      Src: /src/libtorrent/src/ip_notifier.cpp:333,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:340,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - libtorrent::aux::create_dynamic_store
    - post
    - error_code
    - SCDynamicStoreSetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:363,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::get
    - SCDynamicStoreSetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NotifyUnicastIpAddressChange
      Src: /src/libtorrent/src/ip_notifier.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - NotifyUnicastIpAddressChange
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& operator=(ip_change_notifier_impl&&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelMibChangeNotify2
      Src: /src/libtorrent/src/ip_notifier.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CancelMibChangeNotify2
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - make_error_code
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:427,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 13
    functionsReached:
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:439,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: libtorrent::aux::address_change_cb
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::move
    - post
    - error_code
    - static_cast<ip_change_notifier_impl*>
    linkageType: ''
    returnType: void
    signature: void address_change_cb(void* ctx, MIB_UNICASTIPADDRESS_ROW*, MIB_NOTIFICATION_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:462,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRetain
      Src: /src/libtorrent/src/ip_notifier.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::CFRefRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRetain
    linkageType: ''
    returnType: void
    signature: void CFRefRetain(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/libtorrent/src/ip_notifier.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::aux::CFRefRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void CFRefRelease(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~CFRef()
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: void
    signature: void ~CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '& operator=(CFRef&& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::retain
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:95,1
    - Dst: retain
      Src: /src/libtorrent/src/ip_notifier.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: '& operator=(CFRef const& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    - retain
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(T h) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(T h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(std::nullptr_t) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(std::nullptr_t) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/libtorrent/src/ip_notifier.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::retain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - Retain
    linkageType: ''
    returnType: void
    signature: void retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/libtorrent/src/ip_notifier.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::release
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_retain
      Src: /src/libtorrent/src/ip_notifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::CFDispatchRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_retain
    linkageType: ''
    returnType: void
    signature: void CFDispatchRetain(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_release
      Src: /src/libtorrent/src/ip_notifier.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::CFDispatchRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_release
    linkageType: ''
    returnType: void
    signature: void CFDispatchRelease(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_error_code
    - std::move
    - cb1
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::local_endpoint
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: netlink
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: libtorrent::aux::set_option
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    - Dst: libtorrent::no_enobufs
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::local_endpoint
    - libtorrent::aux::set_option
    - netlink
    - libtorrent::no_enobufs
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:156,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:158,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::m_buf::data
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/ip_notifier.cpp:175,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/ip_notifier.cpp:176,1
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:187,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:189,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - len
    - cb
    argTypes:
    - int
    - std::function<void(error_code const& ec)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: libtorrent::aux::on_notify
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 8
    functionsReached:
    - cb
    - reinterpret_cast<nlmsghdr const*>
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - libtorrent::aux::nlmsg_ok
    - error_code
    - libtorrent::aux::m_buf::data
    - libtorrent::aux::nlmsg_next
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void on_notify(int len, std::function<void(error_code const& ec)> cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:209,1
    - Dst: SCNetworkReachabilityCreateWithAddress
      Src: /src/libtorrent/src/ip_notifier.cpp:215,1
    - Dst: reinterpret_cast<sockaddr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:216,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:218,1
    - Dst: SCNetworkReachabilitySetCallback
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCNetworkReachabilityCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::create_reachability
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 3
    functionsReached:
    - SCNetworkReachabilityCreateWithAddress
    - SCNetworkReachabilitySetCallback
    - reinterpret_cast<sockaddr const*>
    - TORRENT_ASSERT
    - CFRef::get
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCNetworkReachabilityRef>
    signature: "CFRef<SCNetworkReachabilityRef> create_reachability(SCNetworkReachabilityCallBack
      callback\n\t, void* context_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:232,1
    - Dst: libtorrent::aux::create_reachability
      Src: /src/libtorrent/src/ip_notifier.cpp:233,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:236,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:240,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - post
    - error_code
    - SCNetworkReachabilitySetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - libtorrent::aux::create_reachability
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:261,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:263,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::get
    - SCNetworkReachabilitySetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreateMutable
      Src: /src/libtorrent/src/ip_notifier.cpp:287,1
    - Dst: SCDynamicStoreKeyCreateNetworkInterfaceEntity
      Src: /src/libtorrent/src/ip_notifier.cpp:291,1
    - Dst: CFArrayAppendValue
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: libtorrent::aux::create_keys_array
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 3
    functionsReached:
    - SCDynamicStoreKeyCreateNetworkInterfaceEntity
    - CFArrayAppendValue
    - CFRef::get
    - CFArrayCreateMutable
    linkageType: ''
    returnType: CFRef<CFMutableArrayRef>
    signature: CFRef<CFMutableArrayRef> create_keys_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:305,1
    - Dst: SCDynamicStoreCreate
      Src: /src/libtorrent/src/ip_notifier.cpp:314,1
    - Dst: CFSTR
      Src: /src/libtorrent/src/ip_notifier.cpp:315,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:320,1
    - Dst: libtorrent::aux::create_keys_array
      Src: /src/libtorrent/src/ip_notifier.cpp:322,1
    - Dst: SCDynamicStoreSetNotificationKeys
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCDynamicStoreCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::create_dynamic_store
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 3
    functionsReached:
    - SCDynamicStoreSetNotificationKeys
    - SCDynamicStoreCreate
    - CFSTR
    - CFRef::get
    - TORRENT_ASSERT
    - libtorrent::aux::create_keys_array
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCDynamicStoreRef>
    signature: CFRef<SCDynamicStoreRef> create_dynamic_store(SCDynamicStoreCallBack
      callback, void* context_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:332,1
    - Dst: libtorrent::aux::create_dynamic_store
      Src: /src/libtorrent/src/ip_notifier.cpp:333,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:340,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - libtorrent::aux::create_dynamic_store
    - post
    - error_code
    - SCDynamicStoreSetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:363,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 16
    functionsReached:
    - libtorrent::aux::get
    - SCDynamicStoreSetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NotifyUnicastIpAddressChange
      Src: /src/libtorrent/src/ip_notifier.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - NotifyUnicastIpAddressChange
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& operator=(ip_change_notifier_impl&&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelMibChangeNotify2
      Src: /src/libtorrent/src/ip_notifier.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CancelMibChangeNotify2
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - make_error_code
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:427,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 16
    functionsReached:
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:439,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: libtorrent::aux::address_change_cb
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::move
    - post
    - error_code
    - static_cast<ip_change_notifier_impl*>
    linkageType: ''
    returnType: void
    signature: void address_change_cb(void* ctx, MIB_UNICASTIPADDRESS_ROW*, MIB_NOTIFICATION_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:462,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ip_change_notifier_impl>
      Src: /src/libtorrent/src/ip_notifier.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: libtorrent::aux::create_ip_notifier
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ip_change_notifier_impl>
    linkageType: ''
    returnType: std::unique_ptr<ip_change_notifier>
    signature: std::unique_ptr<ip_change_notifier> create_ip_notifier(io_context&
      ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRetain
      Src: /src/libtorrent/src/ip_notifier.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::CFRefRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRetain
    linkageType: ''
    returnType: void
    signature: void CFRefRetain(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/libtorrent/src/ip_notifier.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::aux::CFRefRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void CFRefRelease(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~CFRef()
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: void
    signature: void ~CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '& operator=(CFRef&& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::retain
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:95,1
    - Dst: retain
      Src: /src/libtorrent/src/ip_notifier.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: '& operator=(CFRef const& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    - retain
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(T h) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(T h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(std::nullptr_t) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(std::nullptr_t) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/libtorrent/src/ip_notifier.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::retain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 7
    functionsReached:
    - Retain
    linkageType: ''
    returnType: void
    signature: void retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/libtorrent/src/ip_notifier.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::release
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_retain
      Src: /src/libtorrent/src/ip_notifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::CFDispatchRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_retain
    linkageType: ''
    returnType: void
    signature: void CFDispatchRetain(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_release
      Src: /src/libtorrent/src/ip_notifier.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::CFDispatchRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_release
    linkageType: ''
    returnType: void
    signature: void CFDispatchRelease(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_error_code
    - std::move
    - cb1
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::local_endpoint
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: netlink
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: libtorrent::aux::set_option
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    - Dst: libtorrent::no_enobufs
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::local_endpoint
    - libtorrent::aux::set_option
    - netlink
    - libtorrent::no_enobufs
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:156,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:158,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 17
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::m_buf::data
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/ip_notifier.cpp:175,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/ip_notifier.cpp:176,1
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:187,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:189,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - len
    - cb
    argTypes:
    - int
    - std::function<void(error_code const& ec)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: libtorrent::aux::on_notify
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached:
    - cb
    - reinterpret_cast<nlmsghdr const*>
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - libtorrent::aux::nlmsg_ok
    - error_code
    - libtorrent::aux::m_buf::data
    - libtorrent::aux::nlmsg_next
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void on_notify(int len, std::function<void(error_code const& ec)> cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:209,1
    - Dst: SCNetworkReachabilityCreateWithAddress
      Src: /src/libtorrent/src/ip_notifier.cpp:215,1
    - Dst: reinterpret_cast<sockaddr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:216,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:218,1
    - Dst: SCNetworkReachabilitySetCallback
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCNetworkReachabilityCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::create_reachability
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached:
    - SCNetworkReachabilityCreateWithAddress
    - SCNetworkReachabilitySetCallback
    - reinterpret_cast<sockaddr const*>
    - TORRENT_ASSERT
    - CFRef::get
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCNetworkReachabilityRef>
    signature: "CFRef<SCNetworkReachabilityRef> create_reachability(SCNetworkReachabilityCallBack
      callback\n\t, void* context_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:232,1
    - Dst: libtorrent::aux::create_reachability
      Src: /src/libtorrent/src/ip_notifier.cpp:233,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:236,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:240,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - post
    - error_code
    - SCNetworkReachabilitySetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - libtorrent::aux::create_reachability
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:261,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:263,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 18
    functionsReached:
    - libtorrent::aux::get
    - SCNetworkReachabilitySetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreateMutable
      Src: /src/libtorrent/src/ip_notifier.cpp:287,1
    - Dst: SCDynamicStoreKeyCreateNetworkInterfaceEntity
      Src: /src/libtorrent/src/ip_notifier.cpp:291,1
    - Dst: CFArrayAppendValue
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: libtorrent::aux::create_keys_array
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached:
    - SCDynamicStoreKeyCreateNetworkInterfaceEntity
    - CFArrayAppendValue
    - CFRef::get
    - CFArrayCreateMutable
    linkageType: ''
    returnType: CFRef<CFMutableArrayRef>
    signature: CFRef<CFMutableArrayRef> create_keys_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:305,1
    - Dst: SCDynamicStoreCreate
      Src: /src/libtorrent/src/ip_notifier.cpp:314,1
    - Dst: CFSTR
      Src: /src/libtorrent/src/ip_notifier.cpp:315,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:320,1
    - Dst: libtorrent::aux::create_keys_array
      Src: /src/libtorrent/src/ip_notifier.cpp:322,1
    - Dst: SCDynamicStoreSetNotificationKeys
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCDynamicStoreCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::create_dynamic_store
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 4
    functionsReached:
    - SCDynamicStoreSetNotificationKeys
    - SCDynamicStoreCreate
    - CFSTR
    - CFRef::get
    - TORRENT_ASSERT
    - libtorrent::aux::create_keys_array
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCDynamicStoreRef>
    signature: CFRef<SCDynamicStoreRef> create_dynamic_store(SCDynamicStoreCallBack
      callback, void* context_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:332,1
    - Dst: libtorrent::aux::create_dynamic_store
      Src: /src/libtorrent/src/ip_notifier.cpp:333,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:340,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - libtorrent::aux::create_dynamic_store
    - post
    - error_code
    - SCDynamicStoreSetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:363,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 19
    functionsReached:
    - libtorrent::aux::get
    - SCDynamicStoreSetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NotifyUnicastIpAddressChange
      Src: /src/libtorrent/src/ip_notifier.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - NotifyUnicastIpAddressChange
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& operator=(ip_change_notifier_impl&&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelMibChangeNotify2
      Src: /src/libtorrent/src/ip_notifier.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CancelMibChangeNotify2
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - make_error_code
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:427,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 19
    functionsReached:
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:439,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: libtorrent::aux::address_change_cb
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::move
    - post
    - error_code
    - static_cast<ip_change_notifier_impl*>
    linkageType: ''
    returnType: void
    signature: void address_change_cb(void* ctx, MIB_UNICASTIPADDRESS_ROW*, MIB_NOTIFICATION_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:462,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRetain
      Src: /src/libtorrent/src/ip_notifier.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::CFRefRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRetain
    linkageType: ''
    returnType: void
    signature: void CFRefRetain(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/libtorrent/src/ip_notifier.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::aux::CFRefRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void CFRefRelease(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~CFRef()
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: void
    signature: void ~CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '& operator=(CFRef&& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::retain
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:95,1
    - Dst: retain
      Src: /src/libtorrent/src/ip_notifier.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: '& operator=(CFRef const& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    - retain
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(T h) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(T h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(std::nullptr_t) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(std::nullptr_t) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/libtorrent/src/ip_notifier.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::retain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 8
    functionsReached:
    - Retain
    linkageType: ''
    returnType: void
    signature: void retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/libtorrent/src/ip_notifier.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::release
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_retain
      Src: /src/libtorrent/src/ip_notifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::CFDispatchRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_retain
    linkageType: ''
    returnType: void
    signature: void CFDispatchRetain(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_release
      Src: /src/libtorrent/src/ip_notifier.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::CFDispatchRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_release
    linkageType: ''
    returnType: void
    signature: void CFDispatchRelease(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_error_code
    - std::move
    - cb1
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::local_endpoint
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: netlink
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: libtorrent::aux::set_option
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    - Dst: libtorrent::no_enobufs
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::local_endpoint
    - libtorrent::aux::set_option
    - netlink
    - libtorrent::no_enobufs
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:156,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:158,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::m_buf::data
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/ip_notifier.cpp:175,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/ip_notifier.cpp:176,1
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:187,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:189,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - len
    - cb
    argTypes:
    - int
    - std::function<void(error_code const& ec)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: libtorrent::aux::on_notify
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 12
    functionsReached:
    - cb
    - reinterpret_cast<nlmsghdr const*>
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - libtorrent::aux::nlmsg_ok
    - error_code
    - libtorrent::aux::m_buf::data
    - libtorrent::aux::nlmsg_next
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void on_notify(int len, std::function<void(error_code const& ec)> cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:209,1
    - Dst: SCNetworkReachabilityCreateWithAddress
      Src: /src/libtorrent/src/ip_notifier.cpp:215,1
    - Dst: reinterpret_cast<sockaddr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:216,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:218,1
    - Dst: SCNetworkReachabilitySetCallback
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCNetworkReachabilityCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::create_reachability
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 5
    functionsReached:
    - SCNetworkReachabilityCreateWithAddress
    - SCNetworkReachabilitySetCallback
    - reinterpret_cast<sockaddr const*>
    - TORRENT_ASSERT
    - CFRef::get
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCNetworkReachabilityRef>
    signature: "CFRef<SCNetworkReachabilityRef> create_reachability(SCNetworkReachabilityCallBack
      callback\n\t, void* context_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:232,1
    - Dst: libtorrent::aux::create_reachability
      Src: /src/libtorrent/src/ip_notifier.cpp:233,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:236,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:240,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - post
    - error_code
    - SCNetworkReachabilitySetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - libtorrent::aux::create_reachability
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:261,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:263,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 21
    functionsReached:
    - libtorrent::aux::get
    - SCNetworkReachabilitySetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreateMutable
      Src: /src/libtorrent/src/ip_notifier.cpp:287,1
    - Dst: SCDynamicStoreKeyCreateNetworkInterfaceEntity
      Src: /src/libtorrent/src/ip_notifier.cpp:291,1
    - Dst: CFArrayAppendValue
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: libtorrent::aux::create_keys_array
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 5
    functionsReached:
    - SCDynamicStoreKeyCreateNetworkInterfaceEntity
    - CFArrayAppendValue
    - CFRef::get
    - CFArrayCreateMutable
    linkageType: ''
    returnType: CFRef<CFMutableArrayRef>
    signature: CFRef<CFMutableArrayRef> create_keys_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:305,1
    - Dst: SCDynamicStoreCreate
      Src: /src/libtorrent/src/ip_notifier.cpp:314,1
    - Dst: CFSTR
      Src: /src/libtorrent/src/ip_notifier.cpp:315,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:320,1
    - Dst: libtorrent::aux::create_keys_array
      Src: /src/libtorrent/src/ip_notifier.cpp:322,1
    - Dst: SCDynamicStoreSetNotificationKeys
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCDynamicStoreCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::create_dynamic_store
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 5
    functionsReached:
    - SCDynamicStoreSetNotificationKeys
    - SCDynamicStoreCreate
    - CFSTR
    - CFRef::get
    - TORRENT_ASSERT
    - libtorrent::aux::create_keys_array
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCDynamicStoreRef>
    signature: CFRef<SCDynamicStoreRef> create_dynamic_store(SCDynamicStoreCallBack
      callback, void* context_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:332,1
    - Dst: libtorrent::aux::create_dynamic_store
      Src: /src/libtorrent/src/ip_notifier.cpp:333,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:340,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - libtorrent::aux::create_dynamic_store
    - post
    - error_code
    - SCDynamicStoreSetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:363,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 22
    functionsReached:
    - libtorrent::aux::get
    - SCDynamicStoreSetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NotifyUnicastIpAddressChange
      Src: /src/libtorrent/src/ip_notifier.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - NotifyUnicastIpAddressChange
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& operator=(ip_change_notifier_impl&&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelMibChangeNotify2
      Src: /src/libtorrent/src/ip_notifier.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CancelMibChangeNotify2
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - make_error_code
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:427,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 22
    functionsReached:
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:439,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: libtorrent::aux::address_change_cb
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::move
    - post
    - error_code
    - static_cast<ip_change_notifier_impl*>
    linkageType: ''
    returnType: void
    signature: void address_change_cb(void* ctx, MIB_UNICASTIPADDRESS_ROW*, MIB_NOTIFICATION_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:462,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ip_change_notifier_impl>
      Src: /src/libtorrent/src/ip_notifier.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: libtorrent::aux::create_ip_notifier
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ip_change_notifier_impl>
    linkageType: ''
    returnType: std::unique_ptr<ip_change_notifier>
    signature: std::unique_ptr<ip_change_notifier> create_ip_notifier(io_context&
      ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRetain
      Src: /src/libtorrent/src/ip_notifier.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::CFRefRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRetain
    linkageType: ''
    returnType: void
    signature: void CFRefRetain(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/libtorrent/src/ip_notifier.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::aux::CFRefRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void CFRefRelease(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~CFRef()
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: void
    signature: void ~CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '& operator=(CFRef&& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::retain
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:95,1
    - Dst: retain
      Src: /src/libtorrent/src/ip_notifier.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: '& operator=(CFRef const& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    - retain
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(T h) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(T h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(std::nullptr_t) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(std::nullptr_t) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/libtorrent/src/ip_notifier.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::retain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 9
    functionsReached:
    - Retain
    linkageType: ''
    returnType: void
    signature: void retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/libtorrent/src/ip_notifier.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::release
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_retain
      Src: /src/libtorrent/src/ip_notifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::CFDispatchRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_retain
    linkageType: ''
    returnType: void
    signature: void CFDispatchRetain(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_release
      Src: /src/libtorrent/src/ip_notifier.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::CFDispatchRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_release
    linkageType: ''
    returnType: void
    signature: void CFDispatchRelease(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_error_code
    - std::move
    - cb1
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::local_endpoint
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: netlink
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: libtorrent::aux::set_option
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    - Dst: libtorrent::no_enobufs
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::local_endpoint
    - libtorrent::aux::set_option
    - netlink
    - libtorrent::no_enobufs
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:156,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:158,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 23
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::m_buf::data
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/ip_notifier.cpp:175,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/ip_notifier.cpp:176,1
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:187,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:189,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - len
    - cb
    argTypes:
    - int
    - std::function<void(error_code const& ec)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: libtorrent::aux::on_notify
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 14
    functionsReached:
    - cb
    - reinterpret_cast<nlmsghdr const*>
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - libtorrent::aux::nlmsg_ok
    - error_code
    - libtorrent::aux::m_buf::data
    - libtorrent::aux::nlmsg_next
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void on_notify(int len, std::function<void(error_code const& ec)> cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:209,1
    - Dst: SCNetworkReachabilityCreateWithAddress
      Src: /src/libtorrent/src/ip_notifier.cpp:215,1
    - Dst: reinterpret_cast<sockaddr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:216,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:218,1
    - Dst: SCNetworkReachabilitySetCallback
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCNetworkReachabilityCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::create_reachability
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - SCNetworkReachabilityCreateWithAddress
    - SCNetworkReachabilitySetCallback
    - reinterpret_cast<sockaddr const*>
    - TORRENT_ASSERT
    - CFRef::get
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCNetworkReachabilityRef>
    signature: "CFRef<SCNetworkReachabilityRef> create_reachability(SCNetworkReachabilityCallBack
      callback\n\t, void* context_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:232,1
    - Dst: libtorrent::aux::create_reachability
      Src: /src/libtorrent/src/ip_notifier.cpp:233,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:236,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:240,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - post
    - error_code
    - SCNetworkReachabilitySetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - libtorrent::aux::create_reachability
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:261,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:263,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 24
    functionsReached:
    - libtorrent::aux::get
    - SCNetworkReachabilitySetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreateMutable
      Src: /src/libtorrent/src/ip_notifier.cpp:287,1
    - Dst: SCDynamicStoreKeyCreateNetworkInterfaceEntity
      Src: /src/libtorrent/src/ip_notifier.cpp:291,1
    - Dst: CFArrayAppendValue
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: libtorrent::aux::create_keys_array
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - SCDynamicStoreKeyCreateNetworkInterfaceEntity
    - CFArrayAppendValue
    - CFRef::get
    - CFArrayCreateMutable
    linkageType: ''
    returnType: CFRef<CFMutableArrayRef>
    signature: CFRef<CFMutableArrayRef> create_keys_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:305,1
    - Dst: SCDynamicStoreCreate
      Src: /src/libtorrent/src/ip_notifier.cpp:314,1
    - Dst: CFSTR
      Src: /src/libtorrent/src/ip_notifier.cpp:315,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:320,1
    - Dst: libtorrent::aux::create_keys_array
      Src: /src/libtorrent/src/ip_notifier.cpp:322,1
    - Dst: SCDynamicStoreSetNotificationKeys
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCDynamicStoreCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::create_dynamic_store
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - SCDynamicStoreSetNotificationKeys
    - SCDynamicStoreCreate
    - CFSTR
    - CFRef::get
    - TORRENT_ASSERT
    - libtorrent::aux::create_keys_array
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCDynamicStoreRef>
    signature: CFRef<SCDynamicStoreRef> create_dynamic_store(SCDynamicStoreCallBack
      callback, void* context_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:332,1
    - Dst: libtorrent::aux::create_dynamic_store
      Src: /src/libtorrent/src/ip_notifier.cpp:333,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:340,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - libtorrent::aux::create_dynamic_store
    - post
    - error_code
    - SCDynamicStoreSetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:363,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 25
    functionsReached:
    - libtorrent::aux::get
    - SCDynamicStoreSetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NotifyUnicastIpAddressChange
      Src: /src/libtorrent/src/ip_notifier.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - NotifyUnicastIpAddressChange
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& operator=(ip_change_notifier_impl&&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelMibChangeNotify2
      Src: /src/libtorrent/src/ip_notifier.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CancelMibChangeNotify2
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - make_error_code
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:427,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 25
    functionsReached:
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:439,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: libtorrent::aux::address_change_cb
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::move
    - post
    - error_code
    - static_cast<ip_change_notifier_impl*>
    linkageType: ''
    returnType: void
    signature: void address_change_cb(void* ctx, MIB_UNICASTIPADDRESS_ROW*, MIB_NOTIFICATION_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:462,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRetain
      Src: /src/libtorrent/src/ip_notifier.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::CFRefRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRetain
    linkageType: ''
    returnType: void
    signature: void CFRefRetain(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/libtorrent/src/ip_notifier.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::aux::CFRefRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void CFRefRelease(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(T h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~CFRef()
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: void
    signature: void ~CFRef()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef&& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '& operator=(CFRef&& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef&& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::retain
      Src: /src/libtorrent/src/ip_notifier.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::CFRef
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::retain
    linkageType: ''
    returnType: void
    signature: void CFRef(CFRef const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:95,1
    - Dst: retain
      Src: /src/libtorrent/src/ip_notifier.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CFRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: '& operator=(CFRef const& rhs) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    - retain
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(CFRef const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(T h) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(T h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/libtorrent/src/ip_notifier.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(std::nullptr_t) &'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - release
    linkageType: ''
    returnType: CFRef
    signature: CFRef & operator=(std::nullptr_t) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/libtorrent/src/ip_notifier.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::retain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 10
    functionsReached:
    - Retain
    linkageType: ''
    returnType: void
    signature: void retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/libtorrent/src/ip_notifier.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::release
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 6
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_retain
      Src: /src/libtorrent/src/ip_notifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::CFDispatchRetain
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_retain
    linkageType: ''
    returnType: void
    signature: void CFDispatchRetain(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_release
      Src: /src/libtorrent/src/ip_notifier.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - dispatch_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::CFDispatchRelease
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - dispatch_release
    linkageType: ''
    returnType: void
    signature: void CFDispatchRelease(dispatch_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:127,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - make_error_code
    - std::move
    - cb1
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::local_endpoint
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: netlink
      Src: /src/libtorrent/src/ip_notifier.cpp:141,1
    - Dst: libtorrent::aux::set_option
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    - Dst: libtorrent::no_enobufs
      Src: /src/libtorrent/src/ip_notifier.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::local_endpoint
    - libtorrent::aux::set_option
    - netlink
    - libtorrent::no_enobufs
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:155,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:156,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:158,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 26
    functionsReached:
    - libtorrent::aux::cancel
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<nlmsghdr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::m_buf::data
      Src: /src/libtorrent/src/ip_notifier.cpp:174,1
    - Dst: libtorrent::aux::nlmsg_ok
      Src: /src/libtorrent/src/ip_notifier.cpp:175,1
    - Dst: libtorrent::aux::nlmsg_next
      Src: /src/libtorrent/src/ip_notifier.cpp:176,1
    - Dst: async_receive
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/ip_notifier.cpp:186,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:187,1
    - Dst: cb1
      Src: /src/libtorrent/src/ip_notifier.cpp:189,1
    - Dst: libtorrent::aux::on_notify
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:190,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - len
    - cb
    argTypes:
    - int
    - std::function<void(error_code const& ec)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: libtorrent::aux::on_notify
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 16
    functionsReached:
    - cb
    - reinterpret_cast<nlmsghdr const*>
    - async_receive
    - libtorrent::aux::on_notify
    - std::move
    - libtorrent::aux::nlmsg_ok
    - error_code
    - libtorrent::aux::m_buf::data
    - libtorrent::aux::nlmsg_next
    - cb1
    - both_sides_from_store_buffer
    linkageType: ''
    returnType: void
    signature: void on_notify(int len, std::function<void(error_code const& ec)> cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:209,1
    - Dst: SCNetworkReachabilityCreateWithAddress
      Src: /src/libtorrent/src/ip_notifier.cpp:215,1
    - Dst: reinterpret_cast<sockaddr const*>
      Src: /src/libtorrent/src/ip_notifier.cpp:216,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:218,1
    - Dst: SCNetworkReachabilitySetCallback
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:223,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCNetworkReachabilityCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libtorrent::aux::create_reachability
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 7
    functionsReached:
    - SCNetworkReachabilityCreateWithAddress
    - SCNetworkReachabilitySetCallback
    - reinterpret_cast<sockaddr const*>
    - TORRENT_ASSERT
    - CFRef::get
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCNetworkReachabilityRef>
    signature: "CFRef<SCNetworkReachabilityRef> create_reachability(SCNetworkReachabilityCallBack
      callback\n\t, void* context_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:232,1
    - Dst: libtorrent::aux::create_reachability
      Src: /src/libtorrent/src/ip_notifier.cpp:233,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:236,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:240,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:242,1
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:247,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - post
    - error_code
    - SCNetworkReachabilitySetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - libtorrent::aux::create_reachability
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:261,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:263,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCNetworkReachabilitySetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 27
    functionsReached:
    - libtorrent::aux::get
    - SCNetworkReachabilitySetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreateMutable
      Src: /src/libtorrent/src/ip_notifier.cpp:287,1
    - Dst: SCDynamicStoreKeyCreateNetworkInterfaceEntity
      Src: /src/libtorrent/src/ip_notifier.cpp:291,1
    - Dst: CFArrayAppendValue
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 301
    functionName: libtorrent::aux::create_keys_array
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 7
    functionsReached:
    - SCDynamicStoreKeyCreateNetworkInterfaceEntity
    - CFArrayAppendValue
    - CFRef::get
    - CFArrayCreateMutable
    linkageType: ''
    returnType: CFRef<CFMutableArrayRef>
    signature: CFRef<CFMutableArrayRef> create_keys_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_notifier.cpp:305,1
    - Dst: SCDynamicStoreCreate
      Src: /src/libtorrent/src/ip_notifier.cpp:314,1
    - Dst: CFSTR
      Src: /src/libtorrent/src/ip_notifier.cpp:315,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:320,1
    - Dst: libtorrent::aux::create_keys_array
      Src: /src/libtorrent/src/ip_notifier.cpp:322,1
    - Dst: SCDynamicStoreSetNotificationKeys
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: CFRef::get
      Src: /src/libtorrent/src/ip_notifier.cpp:323,1
    - Dst: libtorrent::aux::CFRef
      Src: /src/libtorrent/src/ip_notifier.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - callback
    - context_info
    argTypes:
    - SCDynamicStoreCallBack
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: libtorrent::aux::create_dynamic_store
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 7
    functionsReached:
    - SCDynamicStoreSetNotificationKeys
    - SCDynamicStoreCreate
    - CFSTR
    - CFRef::get
    - TORRENT_ASSERT
    - libtorrent::aux::create_keys_array
    - libtorrent::aux::CFRef
    linkageType: ''
    returnType: CFRef<SCDynamicStoreRef>
    signature: CFRef<SCDynamicStoreRef> create_dynamic_store(SCDynamicStoreCallBack
      callback, void* context_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_queue_create
      Src: /src/libtorrent/src/ip_notifier.cpp:332,1
    - Dst: libtorrent::aux::create_dynamic_store
      Src: /src/libtorrent/src/ip_notifier.cpp:333,1
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:340,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:342,1
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:347,1
    - Dst: libtorrent::aux::cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - libtorrent::aux::cancel
    - std::move
    - libtorrent::aux::create_dynamic_store
    - post
    - error_code
    - SCDynamicStoreSetDispatchQueue
    - static_cast<ip_change_notifier_impl*>
    - dispatch_queue_create
    - libtorrent::aux::get
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/ip_notifier.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:361,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:363,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreSetDispatchQueue
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/src/ip_notifier.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 28
    functionsReached:
    - libtorrent::aux::get
    - SCDynamicStoreSetDispatchQueue
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NotifyUnicastIpAddressChange
      Src: /src/libtorrent/src/ip_notifier.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - NotifyUnicastIpAddressChange
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: '& operator=(ip_change_notifier_impl const&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(ip_change_notifier_impl&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& operator=(ip_change_notifier_impl&&)'
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_change_notifier_impl
    signature: ip_change_notifier_impl & operator=(ip_change_notifier_impl&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelMibChangeNotify2
      Src: /src/libtorrent/src/ip_notifier.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: ~ip_change_notifier_impl() override
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - CancelMibChangeNotify2
    linkageType: ''
    returnType: void
    signature: void ~ip_change_notifier_impl() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:414,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - make_error_code
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:427,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 28
    functionsReached:
    - cb
    - make_error_code
    - std::move
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ip_change_notifier_impl*>
      Src: /src/libtorrent/src/ip_notifier.cpp:435,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:439,1
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/ip_notifier.cpp:441,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    - Dst: error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: libtorrent::aux::address_change_cb
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::move
    - post
    - error_code
    - static_cast<ip_change_notifier_impl*>
    linkageType: ''
    returnType: void
    signature: void address_change_cb(void* ctx, MIB_UNICASTIPADDRESS_ROW*, MIB_NOTIFICATION_TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: libtorrent::aux::ip_change_notifier_impl
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ip_change_notifier_impl(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/ip_notifier.cpp:462,1
    - Dst: cb
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/ip_notifier.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(error_code const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: libtorrent::aux::async_wait
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - post
    - cb
    - make_error_code
    linkageType: ''
    returnType: void
    signature: void async_wait(std::function<void(error_code const&)> cb) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::aux::cancel
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cancel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ip_change_notifier_impl>
      Src: /src/libtorrent/src/ip_notifier.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: libtorrent::aux::create_ip_notifier
    functionSourceFile: /src/libtorrent/src/ip_notifier.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ip_change_notifier_impl>
    linkageType: ''
    returnType: std::unique_ptr<ip_change_notifier>
    signature: std::unique_ptr<ip_change_notifier> create_ip_notifier(io_context&
      ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:43,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - layer
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: libtorrent::merkle_layer_start
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_layer_start(int const layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:50,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:51,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:52,1
    - Dst: libtorrent::merkle_layer_start
      Src: /src/libtorrent/src/merkle.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - layer
    - offset
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: libtorrent::merkle_to_flat_index
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::merkle_layer_start
    linkageType: ''
    returnType: int
    signature: int merkle_to_flat_index(int const layer, int const offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: libtorrent::merkle_get_parent
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_get_parent(int const tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: libtorrent::merkle_get_sibling
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_get_sibling(int const tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: libtorrent::merkle_get_first_child
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int merkle_get_first_child(int const tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree_node
    - depth
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: libtorrent::merkle_get_first_child
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int merkle_get_first_child(int const tree_node, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:84,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:85,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/merkle.cpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - leafs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: libtorrent::merkle_num_nodes
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::max
    linkageType: ''
    returnType: int
    signature: int merkle_num_nodes(int const leafs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num_leafs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: libtorrent::merkle_first_leaf
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_first_leaf(int num_leafs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:105,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/merkle.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - blocks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: libtorrent::merkle_num_leafs
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::max
    linkageType: ''
    returnType: int
    signature: int merkle_num_leafs(int const blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - leaves
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: libtorrent::merkle_num_layers
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_num_layers(int leaves)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::merkle_fill_tree
      Src: /src/libtorrent/src/merkle.cpp:127,1
    - Dst: libtorrent::merkle_num_nodes
      Src: /src/libtorrent/src/merkle.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - num_leafs
    argTypes:
    - span<sha256_hash>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: libtorrent::merkle_fill_tree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::merkle_num_nodes
    - libtorrent::merkle_fill_tree
    linkageType: ''
    returnType: void
    signature: void merkle_fill_tree(span<sha256_hash> tree, int const num_leafs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:133,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:138,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:142,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:143,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/merkle.cpp:144,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:146,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - tree
    - num_leafs
    - level_start
    argTypes:
    - span<sha256_hash>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: libtorrent::merkle_fill_tree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - hasher256::update
    - libtorrent::merkle_get_parent
    - hasher256::final
    linkageType: ''
    returnType: void
    signature: void merkle_fill_tree(span<sha256_hash> tree, int const num_leafs,
      int level_start)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/merkle.cpp:154,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:154,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:156,1
    - Dst: libtorrent::merkle_first_leaf
      Src: /src/libtorrent/src/merkle.cpp:164,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:167,1
    - Dst: libtorrent::merkle_get_first_child
      Src: /src/libtorrent/src/merkle.cpp:172,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:173,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:174,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:177,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:178,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/merkle.cpp:179,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:182,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:185,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:187,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:191,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:192,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:194,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:197,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:199,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:202,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - tree
    argTypes:
    - span<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 205
    functionName: libtorrent::merkle_fill_partial_tree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - is_all_zeros
    - libtorrent::merkle_get_parent
    - hasher256::final
    - libtorrent::merkle_first_leaf
    - span<sha256_hash>::size
    - TORRENT_ASSERT
    - aux::numeric_cast<int>
    - hasher256::update
    - libtorrent::merkle_get_first_child
    linkageType: ''
    returnType: void
    signature: void merkle_fill_partial_tree(span<sha256_hash> tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:211,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:212,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:214,1
    - Dst: libtorrent::merkle_get_layer
      Src: /src/libtorrent/src/merkle.cpp:214,1
    - Dst: libtorrent::merkle_get_layer
      Src: /src/libtorrent/src/merkle.cpp:214,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:220,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tree
    - num_leafs
    - level_start
    argTypes:
    - span<sha256_hash>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: libtorrent::merkle_clear_tree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::merkle_get_parent
    - TORRENT_ASSERT
    - span<sha256_hash>::size
    - libtorrent::merkle_get_layer
    linkageType: ''
    returnType: void
    signature: void merkle_clear_tree(span<sha256_hash> tree, int const num_leafs,
      int level_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/merkle.cpp:232,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:232,1
    - Dst: libtorrent::merkle_root_scratch
      Src: /src/libtorrent/src/merkle.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - leaves
    - ' pad'
    argTypes:
    - span<sha256_hash const>
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: libtorrent::merkle_root
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::merkle_root_scratch
    - span<sha256_hash const>::size
    - libtorrent::merkle_num_leafs
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_root(span<sha256_hash const> const leaves, sha256_hash
      const& pad)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:243,1
    - Dst: resize
      Src: /src/libtorrent/src/merkle.cpp:245,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle.cpp:245,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:245,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:246,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:253,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle.cpp:255,1
    - Dst: hasher256
      Src: /src/libtorrent/src/merkle.cpp:255,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:260,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle.cpp:264,1
    - Dst: hasher256
      Src: /src/libtorrent/src/merkle.cpp:264,1
    - Dst: hasher256
      Src: /src/libtorrent/src/merkle.cpp:272,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/merkle.cpp:275,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/merkle.cpp:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - leaves
    - num_leafs
    - pad
    - ' scratch_space'
    argTypes:
    - span<sha256_hash const>
    - int
    - sha256_hash
    - std::vector<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 280
    functionName: libtorrent::merkle_root_scratch
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 6
    functionsReached:
    - span<sha256_hash const>::size
    - libtorrent::data
    - TORRENT_ASSERT
    - hasher256
    - libtorrent::span
    - resize
    - std::size_t
    linkageType: ''
    returnType: sha256_hash
    signature: "sha256_hash merkle_root_scratch(span<sha256_hash const> leaves\n\t\t,
      int num_leafs, sha256_hash pad\n\t\t, std::vector<sha256_hash>& scratch_space)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: libtorrent::merkle_get_layer
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_get_layer(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::merkle_get_layer
      Src: /src/libtorrent/src/merkle.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: libtorrent::merkle_get_layer_offset
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::merkle_get_layer
    linkageType: ''
    returnType: int
    signature: int merkle_get_layer_offset(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:303,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:308,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:309,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/merkle.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - blocks
    - pieces
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: libtorrent::merkle_pad
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - hasher256::update
    - hasher256::final
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_pad(int blocks, int pieces)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:322,1
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle.cpp:325,1
    - Dst: libtorrent::merkle_get_sibling
      Src: /src/libtorrent/src/merkle.cpp:332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:333,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:333,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/merkle.cpp:335,1
    - Dst: hasher256
      Src: /src/libtorrent/src/merkle.cpp:336,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:337,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:339,1
    - Dst: libtorrent::merkle_get_sibling
      Src: /src/libtorrent/src/merkle.cpp:350,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:351,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:352,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:353,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - target_tree
    - target_node_idx
    - ' node'
    - uncle_hashes
    argTypes:
    - span<sha256_hash>
    - int
    - sha256_hash
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 356
    functionName: libtorrent::merkle_validate_and_insert_proofs
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - is_all_zeros
    - libtorrent::min
    - libtorrent::merkle_get_sibling
    - libtorrent::merkle_get_parent
    - TORRENT_ASSERT
    - hasher256
    - span<sha256_hash const>::empty
    linkageType: ''
    returnType: bool
    signature: "bool merkle_validate_and_insert_proofs(span<sha256_hash> target_tree\n\t\t,
      int const target_node_idx, sha256_hash const& node, span<sha256_hash const>
      uncle_hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:362,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:363,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/merkle.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' left'
    - ' right'
    - ' parent'
    argTypes:
    - sha256_hash
    - sha256_hash
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::merkle_validate_node
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - hasher256::update
    - hasher256::final
    linkageType: ''
    returnType: bool
    signature: "bool merkle_validate_node(sha256_hash const& left, sha256_hash const&
      right\n\t\t, sha256_hash const& parent)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:371,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:371,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:371,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:372,1
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle.cpp:373,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:376,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:379,1
    - Dst: libtorrent::merkle_get_first_child
      Src: /src/libtorrent/src/merkle.cpp:380,1
    - Dst: libtorrent::merkle_validate_node
      Src: /src/libtorrent/src/merkle.cpp:382,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/merkle.cpp:388,1
    - Dst: libtorrent::set_bit
      Src: /src/libtorrent/src/merkle.cpp:390,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/merkle.cpp:393,1
    - Dst: libtorrent::set_bit
      Src: /src/libtorrent/src/merkle.cpp:394,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - src
    - dst
    - ' root'
    - ' verified_leafs'
    argTypes:
    - span<sha256_hash const>
    - span<sha256_hash>
    - sha256_hash
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 398
    functionName: libtorrent::merkle_validate_copy
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - is_all_zeros
    - span<sha256_hash const>::size
    - libtorrent::size
    - TORRENT_ASSERT
    - span<sha256_hash>::size
    - libtorrent::merkle_validate_node
    - span<sha256_hash const>::empty
    - libtorrent::set_bit
    - libtorrent::merkle_get_first_child
    linkageType: ''
    returnType: void
    signature: "void merkle_validate_copy(span<sha256_hash const> const src\n\t\t,
      span<sha256_hash> const dst, sha256_hash const& root\n\t\t, bitfield& verified_leafs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:402,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:403,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:404,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:405,1
    - Dst: libtorrent::merkle_first_leaf
      Src: /src/libtorrent/src/merkle.cpp:407,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:408,1
    - Dst: libtorrent::merkle_validate_node
      Src: /src/libtorrent/src/merkle.cpp:412,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tree
    argTypes:
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 417
    functionName: libtorrent::merkle_validate_single_layer
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - span<sha256_hash const>::size
    - libtorrent::merkle_get_parent
    - libtorrent::merkle_first_leaf
    - TORRENT_ASSERT
    - libtorrent::merkle_validate_node
    linkageType: ''
    returnType: bool
    signature: bool merkle_validate_single_layer(span<sha256_hash const> tree)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:425,1
    - Dst: libtorrent::merkle_get_sibling
      Src: /src/libtorrent/src/merkle.cpp:426,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/merkle.cpp:430,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:432,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle.cpp:433,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:437,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:442,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:444,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/merkle.cpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:447,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:448,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/merkle.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:449,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle.cpp:451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - tree
    - block_index
    - num_valid_leafs
    argTypes:
    - span<sha256_hash const>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 452
    functionName: libtorrent::merkle_find_known_subtree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - is_all_zeros
    - libtorrent::min
    - span<sha256_hash const>::size
    - libtorrent::merkle_get_sibling
    - libtorrent::merkle_num_leafs
    - libtorrent::merkle_get_parent
    - TORRENT_ASSERT
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: "std::tuple<int, int, int> merkle_find_known_subtree(span<sha256_hash
      const> const tree\n\t\t, int const block_index, int const num_valid_leafs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:43,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - layer
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: libtorrent::merkle_layer_start
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_layer_start(int const layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:50,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:51,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:52,1
    - Dst: libtorrent::merkle_layer_start
      Src: /src/libtorrent/src/merkle.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - layer
    - offset
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: libtorrent::merkle_to_flat_index
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::merkle_layer_start
    linkageType: ''
    returnType: int
    signature: int merkle_to_flat_index(int const layer, int const offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: libtorrent::merkle_get_parent
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_get_parent(int const tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: libtorrent::merkle_get_sibling
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_get_sibling(int const tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: libtorrent::merkle_get_first_child
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int merkle_get_first_child(int const tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree_node
    - depth
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: libtorrent::merkle_get_first_child
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int merkle_get_first_child(int const tree_node, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:84,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:85,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/merkle.cpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - leafs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: libtorrent::merkle_num_nodes
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::max
    linkageType: ''
    returnType: int
    signature: int merkle_num_nodes(int const leafs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num_leafs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: libtorrent::merkle_first_leaf
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_first_leaf(int num_leafs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:105,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/merkle.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - blocks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: libtorrent::merkle_num_leafs
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::max
    linkageType: ''
    returnType: int
    signature: int merkle_num_leafs(int const blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - leaves
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: libtorrent::merkle_num_layers
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_num_layers(int leaves)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::merkle_fill_tree
      Src: /src/libtorrent/src/merkle.cpp:127,1
    - Dst: libtorrent::merkle_num_nodes
      Src: /src/libtorrent/src/merkle.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - num_leafs
    argTypes:
    - span<sha256_hash>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: libtorrent::merkle_fill_tree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::merkle_num_nodes
    - libtorrent::merkle_fill_tree
    linkageType: ''
    returnType: void
    signature: void merkle_fill_tree(span<sha256_hash> tree, int const num_leafs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:133,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:138,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:142,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:143,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/merkle.cpp:144,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:146,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - tree
    - num_leafs
    - level_start
    argTypes:
    - span<sha256_hash>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: libtorrent::merkle_fill_tree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - hasher256::update
    - libtorrent::merkle_get_parent
    - hasher256::final
    linkageType: ''
    returnType: void
    signature: void merkle_fill_tree(span<sha256_hash> tree, int const num_leafs,
      int level_start)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/merkle.cpp:154,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:154,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:156,1
    - Dst: libtorrent::merkle_first_leaf
      Src: /src/libtorrent/src/merkle.cpp:164,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:167,1
    - Dst: libtorrent::merkle_get_first_child
      Src: /src/libtorrent/src/merkle.cpp:172,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:173,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:174,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:177,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:178,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/merkle.cpp:179,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:182,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:185,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:187,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:191,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:192,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:194,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:197,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:199,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:202,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - tree
    argTypes:
    - span<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 205
    functionName: libtorrent::merkle_fill_partial_tree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - is_all_zeros
    - libtorrent::merkle_get_parent
    - hasher256::final
    - libtorrent::merkle_first_leaf
    - span<sha256_hash>::size
    - TORRENT_ASSERT
    - aux::numeric_cast<int>
    - hasher256::update
    - libtorrent::merkle_get_first_child
    linkageType: ''
    returnType: void
    signature: void merkle_fill_partial_tree(span<sha256_hash> tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:211,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:212,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:214,1
    - Dst: libtorrent::merkle_get_layer
      Src: /src/libtorrent/src/merkle.cpp:214,1
    - Dst: libtorrent::merkle_get_layer
      Src: /src/libtorrent/src/merkle.cpp:214,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:220,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tree
    - num_leafs
    - level_start
    argTypes:
    - span<sha256_hash>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: libtorrent::merkle_clear_tree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::merkle_get_parent
    - TORRENT_ASSERT
    - span<sha256_hash>::size
    - libtorrent::merkle_get_layer
    linkageType: ''
    returnType: void
    signature: void merkle_clear_tree(span<sha256_hash> tree, int const num_leafs,
      int level_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/merkle.cpp:232,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:232,1
    - Dst: libtorrent::merkle_root_scratch
      Src: /src/libtorrent/src/merkle.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - leaves
    - ' pad'
    argTypes:
    - span<sha256_hash const>
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: libtorrent::merkle_root
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::merkle_root_scratch
    - span<sha256_hash const>::size
    - libtorrent::merkle_num_leafs
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_root(span<sha256_hash const> const leaves, sha256_hash
      const& pad)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:243,1
    - Dst: resize
      Src: /src/libtorrent/src/merkle.cpp:245,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle.cpp:245,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:245,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:246,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:253,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle.cpp:255,1
    - Dst: hasher256
      Src: /src/libtorrent/src/merkle.cpp:255,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:260,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/merkle.cpp:264,1
    - Dst: hasher256
      Src: /src/libtorrent/src/merkle.cpp:264,1
    - Dst: hasher256
      Src: /src/libtorrent/src/merkle.cpp:272,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/merkle.cpp:275,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/merkle.cpp:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - leaves
    - num_leafs
    - pad
    - ' scratch_space'
    argTypes:
    - span<sha256_hash const>
    - int
    - sha256_hash
    - std::vector<sha256_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 280
    functionName: libtorrent::merkle_root_scratch
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 7
    functionsReached:
    - span<sha256_hash const>::size
    - libtorrent::data
    - TORRENT_ASSERT
    - hasher256
    - libtorrent::span
    - resize
    - std::size_t
    linkageType: ''
    returnType: sha256_hash
    signature: "sha256_hash merkle_root_scratch(span<sha256_hash const> leaves\n\t\t,
      int num_leafs, sha256_hash pad\n\t\t, std::vector<sha256_hash>& scratch_space)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: libtorrent::merkle_get_layer
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int merkle_get_layer(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::merkle_get_layer
      Src: /src/libtorrent/src/merkle.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: libtorrent::merkle_get_layer_offset
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::merkle_get_layer
    linkageType: ''
    returnType: int
    signature: int merkle_get_layer_offset(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:303,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:308,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:309,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/merkle.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - blocks
    - pieces
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: libtorrent::merkle_pad
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - hasher256::update
    - hasher256::final
    linkageType: ''
    returnType: sha256_hash
    signature: sha256_hash merkle_pad(int blocks, int pieces)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:322,1
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle.cpp:325,1
    - Dst: libtorrent::merkle_get_sibling
      Src: /src/libtorrent/src/merkle.cpp:332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:333,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:333,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/merkle.cpp:335,1
    - Dst: hasher256
      Src: /src/libtorrent/src/merkle.cpp:336,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:337,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:339,1
    - Dst: libtorrent::merkle_get_sibling
      Src: /src/libtorrent/src/merkle.cpp:350,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:351,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/merkle.cpp:352,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:353,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - target_tree
    - target_node_idx
    - ' node'
    - uncle_hashes
    argTypes:
    - span<sha256_hash>
    - int
    - sha256_hash
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 356
    functionName: libtorrent::merkle_validate_and_insert_proofs
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - is_all_zeros
    - libtorrent::min
    - libtorrent::merkle_get_sibling
    - libtorrent::merkle_get_parent
    - TORRENT_ASSERT
    - hasher256
    - span<sha256_hash const>::empty
    linkageType: ''
    returnType: bool
    signature: "bool merkle_validate_and_insert_proofs(span<sha256_hash> target_tree\n\t\t,
      int const target_node_idx, sha256_hash const& node, span<sha256_hash const>
      uncle_hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:362,1
    - Dst: hasher256::update
      Src: /src/libtorrent/src/merkle.cpp:363,1
    - Dst: hasher256::final
      Src: /src/libtorrent/src/merkle.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' left'
    - ' right'
    - ' parent'
    argTypes:
    - sha256_hash
    - sha256_hash
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: libtorrent::merkle_validate_node
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 2
    functionsReached:
    - hasher256::update
    - hasher256::final
    linkageType: ''
    returnType: bool
    signature: "bool merkle_validate_node(sha256_hash const& left, sha256_hash const&
      right\n\t\t, sha256_hash const& parent)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:371,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:371,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:371,1
    - Dst: span<sha256_hash>::size
      Src: /src/libtorrent/src/merkle.cpp:372,1
    - Dst: span<sha256_hash const>::empty
      Src: /src/libtorrent/src/merkle.cpp:373,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:376,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:379,1
    - Dst: libtorrent::merkle_get_first_child
      Src: /src/libtorrent/src/merkle.cpp:380,1
    - Dst: libtorrent::merkle_validate_node
      Src: /src/libtorrent/src/merkle.cpp:382,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/merkle.cpp:388,1
    - Dst: libtorrent::set_bit
      Src: /src/libtorrent/src/merkle.cpp:390,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/merkle.cpp:393,1
    - Dst: libtorrent::set_bit
      Src: /src/libtorrent/src/merkle.cpp:394,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - src
    - dst
    - ' root'
    - ' verified_leafs'
    argTypes:
    - span<sha256_hash const>
    - span<sha256_hash>
    - sha256_hash
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 398
    functionName: libtorrent::merkle_validate_copy
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - is_all_zeros
    - span<sha256_hash const>::size
    - libtorrent::size
    - TORRENT_ASSERT
    - span<sha256_hash>::size
    - libtorrent::merkle_validate_node
    - span<sha256_hash const>::empty
    - libtorrent::set_bit
    - libtorrent::merkle_get_first_child
    linkageType: ''
    returnType: void
    signature: "void merkle_validate_copy(span<sha256_hash const> const src\n\t\t,
      span<sha256_hash> const dst, sha256_hash const& root\n\t\t, bitfield& verified_leafs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:402,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:403,1
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:404,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:405,1
    - Dst: libtorrent::merkle_first_leaf
      Src: /src/libtorrent/src/merkle.cpp:407,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:408,1
    - Dst: libtorrent::merkle_validate_node
      Src: /src/libtorrent/src/merkle.cpp:412,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tree
    argTypes:
    - span<sha256_hash const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 417
    functionName: libtorrent::merkle_validate_single_layer
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - span<sha256_hash const>::size
    - libtorrent::merkle_get_parent
    - libtorrent::merkle_first_leaf
    - TORRENT_ASSERT
    - libtorrent::merkle_validate_node
    linkageType: ''
    returnType: bool
    signature: bool merkle_validate_single_layer(span<sha256_hash const> tree)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: span<sha256_hash const>::size
      Src: /src/libtorrent/src/merkle.cpp:425,1
    - Dst: libtorrent::merkle_get_sibling
      Src: /src/libtorrent/src/merkle.cpp:426,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/merkle.cpp:430,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:432,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle.cpp:433,1
    - Dst: libtorrent::merkle_get_parent
      Src: /src/libtorrent/src/merkle.cpp:437,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/merkle.cpp:441,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:442,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:443,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:444,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/merkle.cpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:447,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:448,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/merkle.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/merkle.cpp:449,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/merkle.cpp:451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - tree
    - block_index
    - num_valid_leafs
    argTypes:
    - span<sha256_hash const>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 452
    functionName: libtorrent::merkle_find_known_subtree
    functionSourceFile: /src/libtorrent/src/merkle.cpp
    functionUses: 0
    functionsReached:
    - is_all_zeros
    - libtorrent::min
    - span<sha256_hash const>::size
    - libtorrent::merkle_get_sibling
    - libtorrent::merkle_num_leafs
    - libtorrent::merkle_get_parent
    - TORRENT_ASSERT
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: "std::tuple<int, int, int> merkle_find_known_subtree(span<sha256_hash
      const> const tree\n\t\t, int const block_index, int const num_valid_leafs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::abort
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort(bool) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::settings_updated
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_updated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disabled_disk_io.cpp:80,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disabled_disk_io.cpp:81,1
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:83,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:83,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:84,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/disabled_disk_io.cpp:84,1
    - Dst: libtorrent::m_zero_buffer::get
      Src: /src/libtorrent/src/disabled_disk_io.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' r'
    - handler
    argTypes:
    - peer_request
    - std::function<void(disk_buffer_holder, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: libtorrent::async_read
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - post
    - TORRENT_ASSERT
    - libtorrent::m_zero_buffer::get
    - libtorrent::disk_buffer_holder
    - libtorrent::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void async_read(storage_index_t, peer_request const& r\n\t\t, std::function<void(disk_buffer_holder,
      storage_error const&)> handler\n\t\t, disk_job_flags_t) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disabled_disk_io.cpp:95,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disabled_disk_io.cpp:96,1
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:98,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:98,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' r'
    - handler
    argTypes:
    - peer_request
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: libtorrent::async_write
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - post
    - TORRENT_ASSERT
    - libtorrent::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: "bool async_write(storage_index_t\n\t\t, peer_request const& r\n\t\t,
      char const*, std::shared_ptr<disk_observer>\n\t\t, std::function<void(storage_error
      const&)> handler\n\t\t, disk_job_flags_t) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:107,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:107,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - piece
    - handler
    argTypes:
    - piece_index_t
    - std::function<void(piece_index_t, sha1_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: libtorrent::async_hash
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_hash(storage_index_t\n\t\t, piece_index_t piece, span<sha256_hash>,
      disk_job_flags_t\n\t\t, std::function<void(piece_index_t, sha1_hash const&,
      storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:114,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:114,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - piece
    - handler
    argTypes:
    - piece_index_t
    - std::function<void(piece_index_t, sha256_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: libtorrent::async_hash2
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_hash2(storage_index_t, piece_index_t piece, int\n\t\t,
      disk_job_flags_t\n\t\t, std::function<void(piece_index_t, sha256_hash const&,
      storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:121,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:121,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:122,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - handler
    argTypes:
    - std::string
    - std::function<void(status_t, std::string const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: libtorrent::async_move_storage
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_move_storage(storage_index_t\n\t\t, std::string p, move_flags_t\n\t\t,
      std::function<void(status_t, std::string const&, storage_error const&)> handler)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:127,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:127,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: libtorrent::async_release_files
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: void async_release_files(storage_index_t, std::function<void()> handler)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:133,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:133,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: libtorrent::async_delete_files
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_delete_files(storage_index_t\n\t\t, remove_flags_t, std::function<void(storage_error
      const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:141,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:141,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void(status_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: libtorrent::async_check_files
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_check_files(storage_index_t\n\t\t, add_torrent_params const*\n\t\t,
      aux::vector<std::string, file_index_t>\n\t\t, std::function<void(status_t, storage_error
      const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:148,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:148,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:148,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:149,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - index
    - name
    - handler
    argTypes:
    - file_index_t
    - std::string
    - std::function<void(std::string const&, file_index_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: libtorrent::async_rename_file
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_rename_file(storage_index_t\n\t\t, file_index_t index,
      std::string name\n\t\t, std::function<void(std::string const&, file_index_t,
      storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:154,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:154,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: libtorrent::async_stop_torrent
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: void async_stop_torrent(storage_index_t, std::function<void()> handler)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:162,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:162,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:162,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:163,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - prio
    - handler
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    - "std::function<void(storage_error const&\n\t\t\t, aux::vector<download_priority_t,
      file_index_t>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: libtorrent::async_set_file_priority
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_set_file_priority(storage_index_t\n\t\t, aux::vector<download_priority_t,
      file_index_t> prio\n\t\t, std::function<void(storage_error const&\n\t\t\t, aux::vector<download_priority_t,
      file_index_t>)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:169,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:169,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - index
    - handler
    argTypes:
    - piece_index_t
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: libtorrent::async_clear_piece
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_clear_piece(storage_index_t\n\t\t, piece_index_t const
      index, std::function<void(piece_index_t)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_value
      Src: /src/libtorrent/src/disabled_disk_io.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: libtorrent::update_stats_counters
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - set_value
    linkageType: ''
    returnType: void
    signature: void update_stats_counters(counters& c) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: libtorrent::free_disk_buffer
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_disk_buffer(char*) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: libtorrent::get_status
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> get_status(storage_index_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: libtorrent::submit_jobs
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void submit_jobs() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::abort
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort(bool) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::settings_updated
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_updated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disabled_disk_io.cpp:80,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disabled_disk_io.cpp:81,1
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:83,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:83,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:84,1
    - Dst: libtorrent::disk_buffer_holder
      Src: /src/libtorrent/src/disabled_disk_io.cpp:84,1
    - Dst: libtorrent::m_zero_buffer::get
      Src: /src/libtorrent/src/disabled_disk_io.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' r'
    - handler
    argTypes:
    - peer_request
    - std::function<void(disk_buffer_holder, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: libtorrent::async_read
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - post
    - TORRENT_ASSERT
    - libtorrent::m_zero_buffer::get
    - libtorrent::disk_buffer_holder
    - libtorrent::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void async_read(storage_index_t, peer_request const& r\n\t\t, std::function<void(disk_buffer_holder,
      storage_error const&)> handler\n\t\t, disk_job_flags_t) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disabled_disk_io.cpp:95,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disabled_disk_io.cpp:96,1
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:98,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:98,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' r'
    - handler
    argTypes:
    - peer_request
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: libtorrent::async_write
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - h
    - post
    - TORRENT_ASSERT
    - libtorrent::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: "bool async_write(storage_index_t\n\t\t, peer_request const& r\n\t\t,
      char const*, std::shared_ptr<disk_observer>\n\t\t, std::function<void(storage_error
      const&)> handler\n\t\t, disk_job_flags_t) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:107,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:107,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - piece
    - handler
    argTypes:
    - piece_index_t
    - std::function<void(piece_index_t, sha1_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: libtorrent::async_hash
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_hash(storage_index_t\n\t\t, piece_index_t piece, span<sha256_hash>,
      disk_job_flags_t\n\t\t, std::function<void(piece_index_t, sha1_hash const&,
      storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:114,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:114,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - piece
    - handler
    argTypes:
    - piece_index_t
    - std::function<void(piece_index_t, sha256_hash const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: libtorrent::async_hash2
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_hash2(storage_index_t, piece_index_t piece, int\n\t\t,
      disk_job_flags_t\n\t\t, std::function<void(piece_index_t, sha256_hash const&,
      storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:121,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:121,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:121,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:122,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - handler
    argTypes:
    - std::string
    - std::function<void(status_t, std::string const&, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: libtorrent::async_move_storage
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_move_storage(storage_index_t\n\t\t, std::string p, move_flags_t\n\t\t,
      std::function<void(status_t, std::string const&, storage_error const&)> handler)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:127,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:127,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: libtorrent::async_release_files
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: void async_release_files(storage_index_t, std::function<void()> handler)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:133,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:133,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void(storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: libtorrent::async_delete_files
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_delete_files(storage_index_t\n\t\t, remove_flags_t, std::function<void(storage_error
      const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:141,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:141,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void(status_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: libtorrent::async_check_files
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_check_files(storage_index_t\n\t\t, add_torrent_params const*\n\t\t,
      aux::vector<std::string, file_index_t>\n\t\t, std::function<void(status_t, storage_error
      const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:148,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:148,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:148,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:149,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - index
    - name
    - handler
    argTypes:
    - file_index_t
    - std::string
    - std::function<void(std::string const&, file_index_t, storage_error const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: libtorrent::async_rename_file
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_rename_file(storage_index_t\n\t\t, file_index_t index,
      std::string name\n\t\t, std::function<void(std::string const&, file_index_t,
      storage_error const&)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:154,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:154,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: libtorrent::async_stop_torrent
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: void async_stop_torrent(storage_index_t, std::function<void()> handler)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:162,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:162,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:162,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:163,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - prio
    - handler
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    - "std::function<void(storage_error const&\n\t\t\t, aux::vector<download_priority_t,
      file_index_t>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: libtorrent::async_set_file_priority
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_set_file_priority(storage_index_t\n\t\t, aux::vector<download_priority_t,
      file_index_t> prio\n\t\t, std::function<void(storage_error const&\n\t\t\t, aux::vector<download_priority_t,
      file_index_t>)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: post
      Src: /src/libtorrent/src/disabled_disk_io.cpp:169,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/disabled_disk_io.cpp:169,1
    - Dst: h
      Src: /src/libtorrent/src/disabled_disk_io.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - index
    - handler
    argTypes:
    - piece_index_t
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: libtorrent::async_clear_piece
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - post
    - libtorrent::move
    - h
    linkageType: ''
    returnType: void
    signature: "void async_clear_piece(storage_index_t\n\t\t, piece_index_t const
      index, std::function<void(piece_index_t)> handler) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_value
      Src: /src/libtorrent/src/disabled_disk_io.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: libtorrent::update_stats_counters
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - set_value
    linkageType: ''
    returnType: void
    signature: void update_stats_counters(counters& c) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: libtorrent::free_disk_buffer
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_disk_buffer(char*) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: libtorrent::get_status
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<open_file_state>
    signature: std::vector<open_file_state> get_status(storage_index_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: libtorrent::submit_jobs
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void submit_jobs() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<disabled_disk_io>
      Src: /src/libtorrent/src/disabled_disk_io.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ios'
    - ' cnt'
    argTypes:
    - io_context
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: disabled_disk_io_constructor
    functionSourceFile: /src/libtorrent/src/disabled_disk_io.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<disabled_disk_io>
    linkageType: ''
    returnType: std::unique_ptr<disk_interface>
    signature: "std::unique_ptr<disk_interface> disabled_disk_io_constructor(\n\tio_context&
      ios, settings_interface const&, counters& cnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ip_voter.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: libtorrent::ip_voter::ip_voter
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void ip_voter::ip_voter()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ip_voter.cpp:53,1
    - Dst: minutes
      Src: /src/libtorrent/src/ip_voter.cpp:61,1
    - Dst: empty
      Src: /src/libtorrent/src/ip_voter.cpp:67,1
    - Dst: size
      Src: /src/libtorrent/src/ip_voter.cpp:70,1
    - Dst: std::partial_sort
      Src: /src/libtorrent/src/ip_voter.cpp:79,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:79,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:80,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:80,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:88,1
    - Dst: clear
      Src: /src/libtorrent/src/ip_voter.cpp:93,1
    - Dst: clear
      Src: /src/libtorrent/src/ip_voter.cpp:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 99
    functionName: libtorrent::ip_voter::maybe_rotate
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - std::partial_sort
    - begin
    - empty
    - end
    - libtorrent::aux::time_now
    - minutes
    - clear
    - size
    linkageType: ''
    returnType: bool
    signature: bool ip_voter::maybe_rotate()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_unspecified
      Src: /src/libtorrent/src/ip_voter.cpp:104,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ip_voter.cpp:105,1
    - Dst: is_loopback
      Src: /src/libtorrent/src/ip_voter.cpp:106,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_voter.cpp:111,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_voter.cpp:111,1
    - Dst: hash_address
      Src: /src/libtorrent/src/ip_voter.cpp:115,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/ip_voter.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:118,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:119,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:121,1
    - Dst: find
      Src: /src/libtorrent/src/ip_voter.cpp:124,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:124,1
    - Dst: size
      Src: /src/libtorrent/src/ip_voter.cpp:126,1
    - Dst: random
      Src: /src/libtorrent/src/ip_voter.cpp:128,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:128,1
    - Dst: std::stable_sort
      Src: /src/libtorrent/src/ip_voter.cpp:135,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:135,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:135,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_voter.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:139,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_voter.cpp:141,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:142,1
    - Dst: auto::add_vote
      Src: /src/libtorrent/src/ip_voter.cpp:146,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:146,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:149,1
    - Dst: std::min_element
      Src: /src/libtorrent/src/ip_voter.cpp:151,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:151,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:151,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:152,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:152,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:154,1
    - Dst: address
      Src: /src/libtorrent/src/ip_voter.cpp:156,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - ' ip'
    - source_type
    - ' source'
    argTypes:
    - address
    - aux::ip_source_t
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 166
    functionName: libtorrent::ip_voter::cast_vote
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::ip_voter::maybe_rotate
    - emplace_back
    - hash_address
    - std::stable_sort
    - libtorrent::aux::is_local
    - auto::add_vote
    - end
    - address
    - is_unspecified
    - erase
    - TORRENT_ASSERT
    - size
    - random
    - std::find_if
    - std::min_element
    - find
    - is_loopback
    - is_v4
    linkageType: ''
    returnType: bool
    signature: "bool ip_voter::cast_vote(address const& ip\n\t\t, aux::ip_source_t
      const source_type, address const& source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/ip_voter.cpp:172,1
    - Dst: set
      Src: /src/libtorrent/src/ip_voter.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' k'
    - type
    argTypes:
    - sha1_hash
    - aux::ip_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: "ip_voter::external_ip_t::add_vote(sha1_hash const& k\n\t\t, aux::ip_source_t
      const type)"
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - find
    - set
    linkageType: ''
    returnType: bool
    signature: "bool ip_voter::external_ip_t::add_vote(sha1_hash const& k\n\t\t, aux::ip_source_t
      const type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::ensure_v6
      Src: /src/libtorrent/src/ip_voter.cpp:180,1
    - Dst: libtorrent::aux::ensure_v6
      Src: /src/libtorrent/src/ip_voter.cpp:180,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:182,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_voter.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:183,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_voter.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:184,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_voter.cpp:184,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:185,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_voter.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' local4'
    - ' global4'
    - ' local6'
    - ' global6'
    argTypes:
    - address
    - address
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: libtorrent::external_ip::external_ip
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_v6
    - libtorrent::aux::ensure_v6
    - is_v4
    linkageType: ''
    returnType: void
    signature: "void external_ip::external_ip(address const& local4, address const&
      global4\n\t\t, address const& local6, address const& global6)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ip_voter.cpp:190,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_voter.cpp:190,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_voter.cpp:191,1
    - Dst: address_v4
      Src: /src/libtorrent/src/ip_voter.cpp:191,1
    - Dst: address_v6
      Src: /src/libtorrent/src/ip_voter.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: libtorrent::external_ip::external_address
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - libtorrent::aux::is_local
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address external_ip::external_address(address const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ip_voter.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: libtorrent::ip_voter::ip_voter
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void ip_voter::ip_voter()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/ip_voter.cpp:53,1
    - Dst: minutes
      Src: /src/libtorrent/src/ip_voter.cpp:61,1
    - Dst: empty
      Src: /src/libtorrent/src/ip_voter.cpp:67,1
    - Dst: size
      Src: /src/libtorrent/src/ip_voter.cpp:70,1
    - Dst: std::partial_sort
      Src: /src/libtorrent/src/ip_voter.cpp:79,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:79,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:80,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:80,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:88,1
    - Dst: clear
      Src: /src/libtorrent/src/ip_voter.cpp:93,1
    - Dst: clear
      Src: /src/libtorrent/src/ip_voter.cpp:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 99
    functionName: libtorrent::ip_voter::maybe_rotate
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 1
    functionsReached:
    - std::partial_sort
    - begin
    - empty
    - end
    - libtorrent::aux::time_now
    - minutes
    - clear
    - size
    linkageType: ''
    returnType: bool
    signature: bool ip_voter::maybe_rotate()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_unspecified
      Src: /src/libtorrent/src/ip_voter.cpp:104,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ip_voter.cpp:105,1
    - Dst: is_loopback
      Src: /src/libtorrent/src/ip_voter.cpp:106,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_voter.cpp:111,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_voter.cpp:111,1
    - Dst: hash_address
      Src: /src/libtorrent/src/ip_voter.cpp:115,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/ip_voter.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:118,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:119,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:121,1
    - Dst: find
      Src: /src/libtorrent/src/ip_voter.cpp:124,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:124,1
    - Dst: size
      Src: /src/libtorrent/src/ip_voter.cpp:126,1
    - Dst: random
      Src: /src/libtorrent/src/ip_voter.cpp:128,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:128,1
    - Dst: std::stable_sort
      Src: /src/libtorrent/src/ip_voter.cpp:135,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:135,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:135,1
    - Dst: erase
      Src: /src/libtorrent/src/ip_voter.cpp:139,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:139,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/ip_voter.cpp:141,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:142,1
    - Dst: auto::add_vote
      Src: /src/libtorrent/src/ip_voter.cpp:146,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:146,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:149,1
    - Dst: std::min_element
      Src: /src/libtorrent/src/ip_voter.cpp:151,1
    - Dst: begin
      Src: /src/libtorrent/src/ip_voter.cpp:151,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:151,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:152,1
    - Dst: end
      Src: /src/libtorrent/src/ip_voter.cpp:152,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:154,1
    - Dst: address
      Src: /src/libtorrent/src/ip_voter.cpp:156,1
    - Dst: libtorrent::ip_voter::maybe_rotate
      Src: /src/libtorrent/src/ip_voter.cpp:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - ' ip'
    - source_type
    - ' source'
    argTypes:
    - address
    - aux::ip_source_t
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 166
    functionName: libtorrent::ip_voter::cast_vote
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::ip_voter::maybe_rotate
    - emplace_back
    - hash_address
    - std::stable_sort
    - libtorrent::aux::is_local
    - auto::add_vote
    - end
    - address
    - is_unspecified
    - erase
    - TORRENT_ASSERT
    - size
    - random
    - std::find_if
    - std::min_element
    - find
    - is_loopback
    - is_v4
    linkageType: ''
    returnType: bool
    signature: "bool ip_voter::cast_vote(address const& ip\n\t\t, aux::ip_source_t
      const source_type, address const& source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/ip_voter.cpp:172,1
    - Dst: set
      Src: /src/libtorrent/src/ip_voter.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' k'
    - type
    argTypes:
    - sha1_hash
    - aux::ip_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: "ip_voter::external_ip_t::add_vote(sha1_hash const& k\n\t\t, aux::ip_source_t
      const type)"
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - find
    - set
    linkageType: ''
    returnType: bool
    signature: "bool ip_voter::external_ip_t::add_vote(sha1_hash const& k\n\t\t, aux::ip_source_t
      const type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::ensure_v6
      Src: /src/libtorrent/src/ip_voter.cpp:180,1
    - Dst: libtorrent::aux::ensure_v6
      Src: /src/libtorrent/src/ip_voter.cpp:180,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:182,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_voter.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:183,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_voter.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:184,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_voter.cpp:184,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ip_voter.cpp:185,1
    - Dst: is_v4
      Src: /src/libtorrent/src/ip_voter.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' local4'
    - ' global4'
    - ' local6'
    - ' global6'
    argTypes:
    - address
    - address
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: libtorrent::external_ip::external_ip
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_v6
    - libtorrent::aux::ensure_v6
    - is_v4
    linkageType: ''
    returnType: void
    signature: "void external_ip::external_ip(address const& local4, address const&
      global4\n\t\t, address const& local6, address const& global6)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ip_voter.cpp:190,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_voter.cpp:190,1
    - Dst: is_v6
      Src: /src/libtorrent/src/ip_voter.cpp:191,1
    - Dst: address_v4
      Src: /src/libtorrent/src/ip_voter.cpp:191,1
    - Dst: address_v6
      Src: /src/libtorrent/src/ip_voter.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: libtorrent::external_ip::external_address
    functionSourceFile: /src/libtorrent/src/ip_voter.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - libtorrent::aux::is_local
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address external_ip::external_address(address const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/ip_helpers.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' host'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: libtorrent::aux::is_ip_address
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - make_address
    linkageType: ''
    returnType: bool
    signature: bool is_ip_address(std::string const& host)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:52,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:55,1
    - Dst: address_v6::to_bytes
      Src: /src/libtorrent/src/ip_helpers.cpp:56,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:60,1
    - Dst: address_v4::is_multicast
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    - Dst: address_v4::is_unspecified
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::is_global
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::aux::is_v6
    - to_v4
    - address_v4::is_multicast
    - address_v6::to_bytes
    - address_v4::is_unspecified
    - libtorrent::aux::is_local
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_global(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:67,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:69,1
    - Dst: address_v6::is_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:70,1
    - Dst: address_v6::is_multicast_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:71,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:73,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/ip_helpers.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::is_link_local
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - address_v6::is_link_local
    - address_v6::is_multicast_link_local
    - libtorrent::aux::is_v6
    - to_v4
    - address_v4::to_uint
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_link_local(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:82,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:89,1
    - Dst: address_v6::is_loopback
      Src: /src/libtorrent/src/ip_helpers.cpp:90,1
    - Dst: address_v6::is_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:91,1
    - Dst: address_v6::is_site_local
      Src: /src/libtorrent/src/ip_helpers.cpp:92,1
    - Dst: address_v6::is_multicast_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:93,1
    - Dst: address_v6::is_multicast_site_local
      Src: /src/libtorrent/src/ip_helpers.cpp:94,1
    - Dst: address_v6::to_bytes
      Src: /src/libtorrent/src/ip_helpers.cpp:96,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:98,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/ip_helpers.cpp:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::is_local
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 17
    functionsReached:
    - address_v6::is_loopback
    - libtorrent::aux::is_v6
    - address_v6::is_link_local
    - address_v6::is_multicast_link_local
    - to_v4
    - address_v6::is_site_local
    - address_v4::to_uint
    - address_v6::to_bytes
    - address_v6::is_multicast_site_local
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_local(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:115,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:117,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/ip_helpers.cpp:118,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/ip_helpers.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::is_teredo
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - to_v6
    - address_v6::bytes_type::data
    - libtorrent::aux::is_v6
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool is_teredo(address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:125,1
    - Dst: address_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::ensure_v6
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 2
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address ensure_v6(address const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/ip_helpers.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' host'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: libtorrent::aux::is_ip_address
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - make_address
    linkageType: ''
    returnType: bool
    signature: bool is_ip_address(std::string const& host)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:52,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:55,1
    - Dst: address_v6::to_bytes
      Src: /src/libtorrent/src/ip_helpers.cpp:56,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:60,1
    - Dst: address_v4::is_multicast
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    - Dst: address_v4::is_unspecified
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::is_global
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::aux::is_v6
    - to_v4
    - address_v4::is_multicast
    - address_v6::to_bytes
    - address_v4::is_unspecified
    - libtorrent::aux::is_local
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_global(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:67,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:69,1
    - Dst: address_v6::is_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:70,1
    - Dst: address_v6::is_multicast_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:71,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:73,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/ip_helpers.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::is_link_local
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - address_v6::is_link_local
    - address_v6::is_multicast_link_local
    - libtorrent::aux::is_v6
    - to_v4
    - address_v4::to_uint
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_link_local(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:82,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:89,1
    - Dst: address_v6::is_loopback
      Src: /src/libtorrent/src/ip_helpers.cpp:90,1
    - Dst: address_v6::is_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:91,1
    - Dst: address_v6::is_site_local
      Src: /src/libtorrent/src/ip_helpers.cpp:92,1
    - Dst: address_v6::is_multicast_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:93,1
    - Dst: address_v6::is_multicast_site_local
      Src: /src/libtorrent/src/ip_helpers.cpp:94,1
    - Dst: address_v6::to_bytes
      Src: /src/libtorrent/src/ip_helpers.cpp:96,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:98,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/ip_helpers.cpp:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::is_local
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 18
    functionsReached:
    - address_v6::is_loopback
    - libtorrent::aux::is_v6
    - address_v6::is_link_local
    - address_v6::is_multicast_link_local
    - to_v4
    - address_v6::is_site_local
    - address_v4::to_uint
    - address_v6::to_bytes
    - address_v6::is_multicast_site_local
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_local(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:115,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:117,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/ip_helpers.cpp:118,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/ip_helpers.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::is_teredo
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - to_v6
    - address_v6::bytes_type::data
    - libtorrent::aux::is_v6
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool is_teredo(address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:125,1
    - Dst: address_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::ensure_v6
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 2
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address ensure_v6(address const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/ip_helpers.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' host'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: libtorrent::aux::is_ip_address
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - make_address
    linkageType: ''
    returnType: bool
    signature: bool is_ip_address(std::string const& host)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:52,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:55,1
    - Dst: address_v6::to_bytes
      Src: /src/libtorrent/src/ip_helpers.cpp:56,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:60,1
    - Dst: address_v4::is_multicast
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    - Dst: address_v4::is_unspecified
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::is_global
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::aux::is_v6
    - to_v4
    - address_v4::is_multicast
    - address_v6::to_bytes
    - address_v4::is_unspecified
    - libtorrent::aux::is_local
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_global(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:67,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:69,1
    - Dst: address_v6::is_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:70,1
    - Dst: address_v6::is_multicast_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:71,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:73,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/ip_helpers.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::is_link_local
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - address_v6::is_link_local
    - address_v6::is_multicast_link_local
    - libtorrent::aux::is_v6
    - to_v4
    - address_v4::to_uint
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_link_local(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:82,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:89,1
    - Dst: address_v6::is_loopback
      Src: /src/libtorrent/src/ip_helpers.cpp:90,1
    - Dst: address_v6::is_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:91,1
    - Dst: address_v6::is_site_local
      Src: /src/libtorrent/src/ip_helpers.cpp:92,1
    - Dst: address_v6::is_multicast_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:93,1
    - Dst: address_v6::is_multicast_site_local
      Src: /src/libtorrent/src/ip_helpers.cpp:94,1
    - Dst: address_v6::to_bytes
      Src: /src/libtorrent/src/ip_helpers.cpp:96,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:98,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/ip_helpers.cpp:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::is_local
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 19
    functionsReached:
    - address_v6::is_loopback
    - libtorrent::aux::is_v6
    - address_v6::is_link_local
    - address_v6::is_multicast_link_local
    - to_v4
    - address_v6::is_site_local
    - address_v4::to_uint
    - address_v6::to_bytes
    - address_v6::is_multicast_site_local
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_local(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:115,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:117,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/ip_helpers.cpp:118,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/ip_helpers.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::is_teredo
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - to_v6
    - address_v6::bytes_type::data
    - libtorrent::aux::is_v6
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool is_teredo(address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:125,1
    - Dst: address_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::ensure_v6
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 2
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address ensure_v6(address const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/src/ip_helpers.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' host'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: libtorrent::aux::is_ip_address
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - make_address
    linkageType: ''
    returnType: bool
    signature: bool is_ip_address(std::string const& host)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:52,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:55,1
    - Dst: address_v6::to_bytes
      Src: /src/libtorrent/src/ip_helpers.cpp:56,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:60,1
    - Dst: address_v4::is_multicast
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    - Dst: address_v4::is_unspecified
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/ip_helpers.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::is_global
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::aux::is_v6
    - to_v4
    - address_v4::is_multicast
    - address_v6::to_bytes
    - address_v4::is_unspecified
    - libtorrent::aux::is_local
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_global(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:67,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:69,1
    - Dst: address_v6::is_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:70,1
    - Dst: address_v6::is_multicast_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:71,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:73,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/ip_helpers.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::is_link_local
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - address_v6::is_link_local
    - address_v6::is_multicast_link_local
    - libtorrent::aux::is_v6
    - to_v4
    - address_v4::to_uint
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_link_local(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:82,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:89,1
    - Dst: address_v6::is_loopback
      Src: /src/libtorrent/src/ip_helpers.cpp:90,1
    - Dst: address_v6::is_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:91,1
    - Dst: address_v6::is_site_local
      Src: /src/libtorrent/src/ip_helpers.cpp:92,1
    - Dst: address_v6::is_multicast_link_local
      Src: /src/libtorrent/src/ip_helpers.cpp:93,1
    - Dst: address_v6::is_multicast_site_local
      Src: /src/libtorrent/src/ip_helpers.cpp:94,1
    - Dst: address_v6::to_bytes
      Src: /src/libtorrent/src/ip_helpers.cpp:96,1
    - Dst: to_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:98,1
    - Dst: address_v4::to_uint
      Src: /src/libtorrent/src/ip_helpers.cpp:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::is_local
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 20
    functionsReached:
    - address_v6::is_loopback
    - libtorrent::aux::is_v6
    - address_v6::is_link_local
    - address_v6::is_multicast_link_local
    - to_v4
    - address_v6::is_site_local
    - address_v4::to_uint
    - address_v6::to_bytes
    - address_v6::is_multicast_site_local
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool is_local(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:115,1
    - Dst: to_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:117,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/ip_helpers.cpp:118,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/ip_helpers.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::is_teredo
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 0
    functionsReached:
    - to_v6
    - address_v6::bytes_type::data
    - libtorrent::aux::is_v6
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool is_teredo(address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/src/ip_helpers.cpp:125,1
    - Dst: address_v6
      Src: /src/libtorrent/src/ip_helpers.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::ensure_v6
    functionSourceFile: /src/libtorrent/src/ip_helpers.cpp
    functionUses: 2
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address ensure_v6(address const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - http_status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: libtorrent::is_ok_status
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ok_status(int http_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - http_status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: libtorrent::is_redirect
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_redirect(int http_status)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/libtorrent/src/http_parser.cpp:70,1
    - Dst: std::tie
      Src: /src/libtorrent/src/http_parser.cpp:74,1
    - Dst: libtorrent::parse_url_components
      Src: /src/libtorrent/src/http_parser.cpp:75,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_parser.cpp:89,1
    - Dst: std::string::find_first_of
      Src: /src/libtorrent/src/http_parser.cpp:99,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/http_parser.cpp:101,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_parser.cpp:112,1
    - Dst: std::string::find_last_of
      Src: /src/libtorrent/src/http_parser.cpp:118,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/http_parser.cpp:126,1
    - Dst: libtorrent::ensure_trailing_slash
      Src: /src/libtorrent/src/http_parser.cpp:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - referrer
    - location
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 135
    functionName: libtorrent::resolve_redirect_location
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - std::string::find_last_of
    - std::tie
    - libtorrent::ensure_trailing_slash
    - std::string::empty
    - libtorrent::parse_url_components
    - std::string::find_first_of
    - std::string::resize
    - std::string::find
    linkageType: ''
    returnType: std::string
    signature: "std::string resolve_redirect_location(std::string referrer\n\t\t,
      std::string location)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/http_parser.cpp:143,1
    - Dst: find
      Src: /src/libtorrent/src/http_parser.cpp:145,1
    - Dst: std::string
      Src: /src/libtorrent/src/http_parser.cpp:145,1
    - Dst: end
      Src: /src/libtorrent/src/http_parser.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: '& http_parser::header(string_view const key) const'
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string & http_parser::header(string_view const key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/http_parser.cpp:156,1
    - Dst: find
      Src: /src/libtorrent/src/http_parser.cpp:158,1
    - Dst: std::string
      Src: /src/libtorrent/src/http_parser.cpp:158,1
    - Dst: end
      Src: /src/libtorrent/src/http_parser.cpp:160,1
    - Dst: std::atol
      Src: /src/libtorrent/src/http_parser.cpp:161,1
    - Dst: auto::second::c_str
      Src: /src/libtorrent/src/http_parser.cpp:161,1
    - Dst: seconds32
      Src: /src/libtorrent/src/http_parser.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: libtorrent::http_parser::header_duration
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - std::atol
    - seconds32
    - auto::second::c_str
    - end
    - std::string
    - find
    linkageType: ''
    returnType: boost::optional<seconds32>
    signature: boost::optional<seconds32> http_parser::header_duration(string_view
      const key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: http_parser::~http_parser()
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_parser::~http_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: libtorrent::http_parser::http_parser
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_parser::http_parser(int const flags)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:173,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/http_parser.cpp:173,1
    - Dst: size
      Src: /src/libtorrent/src/http_parser.cpp:173,1
    - Dst: size
      Src: /src/libtorrent/src/http_parser.cpp:175,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/http_parser.cpp:178,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:187,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:193,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:194,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:194,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:195,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:195,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:197,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/http_parser.cpp:199,1
    - Dst: size
      Src: /src/libtorrent/src/http_parser.cpp:199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:215,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/http_parser.cpp:218,1
    - Dst: data
      Src: /src/libtorrent/src/http_parser.cpp:218,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:221,1
    - Dst: substr
      Src: /src/libtorrent/src/http_parser.cpp:222,1
    - Dst: atoi
      Src: /src/libtorrent/src/http_parser.cpp:224,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:224,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:225,1
    - Dst: std::transform
      Src: /src/libtorrent/src/http_parser.cpp:234,1
    - Dst: begin
      Src: /src/libtorrent/src/http_parser.cpp:234,1
    - Dst: end
      Src: /src/libtorrent/src/http_parser.cpp:234,1
    - Dst: begin
      Src: /src/libtorrent/src/http_parser.cpp:234,1
    - Dst: clear
      Src: /src/libtorrent/src/http_parser.cpp:237,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:238,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:239,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:243,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:248,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:249,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:249,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:250,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:250,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:253,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/http_parser.cpp:259,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_parser.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:282,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:282,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_parser.cpp:287,1
    - Dst: std::transform
      Src: /src/libtorrent/src/http_parser.cpp:288,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/http_parser.cpp:288,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/http_parser.cpp:288,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/http_parser.cpp:288,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/http_parser.cpp:291,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_parser.cpp:294,1
    - Dst: insert
      Src: /src/libtorrent/src/http_parser.cpp:295,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/http_parser.cpp:295,1
    - Dst: std::strtoll
      Src: /src/libtorrent/src/http_parser.cpp:299,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_parser.cpp:299,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:301,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/http_parser.cpp:310,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_parser.cpp:310,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_parser.cpp:315,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/http_parser.cpp:321,1
    - Dst: std::strtoll
      Src: /src/libtorrent/src/http_parser.cpp:323,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:325,1
    - Dst: std::strtoll
      Src: /src/libtorrent/src/http_parser.cpp:336,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:338,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/http_parser.cpp:358,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_parser.cpp:358,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:361,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/http_parser.cpp:361,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:362,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:362,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:363,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:363,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/http_parser.cpp:365,1
    - Dst: data
      Src: /src/libtorrent/src/http_parser.cpp:365,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:382,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:382,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/http_parser.cpp:384,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/http_parser.cpp:387,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_parser.cpp:388,1
    - Dst: libtorrent::http_parser::parse_chunk_header
      Src: /src/libtorrent/src/http_parser.cpp:391,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:394,1
    - Dst: push_back
      Src: /src/libtorrent/src/http_parser.cpp:404,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/http_parser.cpp:432,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/http_parser.cpp:438,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:448,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:449,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:453,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/http_parser.cpp:455,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 177
    argCount: 2
    argNames:
    - recv_buffer
    - ' error'
    argTypes:
    - span<char const>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 466
    functionName: libtorrent::http_parser::incoming
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::strtoll
    - std::get<0>
    - span<char const>::size
    - substr
    - read_until
    - data
    - push_back
    - std::make_pair
    - end
    - std::find
    - atoi
    - std::string::end
    - aux::numeric_cast<std::ptrdiff_t>
    - clear
    - std::string::substr
    - span<char const>
    - libtorrent::aux::max
    - span<char const>::end
    - TORRENT_ASSERT
    - std::string::begin
    - string_begins_no_case
    - std::string::assign
    - libtorrent::http_parser::parse_chunk_header
    - std::get<1>
    - size
    - std::string::size
    - std::transform
    - span<char const>::data
    - insert
    - std::string::c_str
    - std::string::find
    linkageType: ''
    returnType: std::tuple<int, int>
    signature: "std::tuple<int, int> http_parser::incoming(\n\t\tspan<char const>
      recv_buffer, bool& error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:474,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:480,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:481,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:484,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:484,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:485,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:485,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:486,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:495,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/http_parser.cpp:504,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:524,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:524,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:531,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:531,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:534,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/http_parser.cpp:540,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_parser.cpp:544,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:550,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:553,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:553,1
    - Dst: insert
      Src: /src/libtorrent/src/http_parser.cpp:558,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_parser.cpp:563,1
    - Dst: std::transform
      Src: /src/libtorrent/src/http_parser.cpp:564,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/http_parser.cpp:564,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/http_parser.cpp:564,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/http_parser.cpp:564,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/http_parser.cpp:567,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_parser.cpp:570,1
    - Dst: std::map::insert
      Src: /src/libtorrent/src/http_parser.cpp:571,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/http_parser.cpp:571,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:574,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:574,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 3
    argNames:
    - buf
    - chunk_size
    - header_size
    argTypes:
    - span<char const>
    - std::int64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 577
    functionName: libtorrent::http_parser::parse_chunk_header
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 1
    functionsReached:
    - std::transform
    - std::make_pair
    - std::map::insert
    - span<char const>::data
    - insert
    - std::find
    - libtorrent::aux::max
    - span<char const>::end
    - TORRENT_ASSERT
    - std::string::begin
    - std::string::end
    - libtorrent::aux::hex_to_int
    - std::string::find
    - std::string::assign
    - std::string::substr
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: "bool http_parser::parse_chunk_header(span<char const> buf\n\t\t, std::int64_t*
      chunk_size, int* header_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/http_parser.cpp:584,1
    - Dst: std::min
      Src: /src/libtorrent/src/http_parser.cpp:585,1
    - Dst: back
      Src: /src/libtorrent/src/http_parser.cpp:585,1
    - Dst: std::min
      Src: /src/libtorrent/src/http_parser.cpp:586,1
    - Dst: subspan
      Src: /src/libtorrent/src/http_parser.cpp:588,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_parser.cpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: libtorrent::http_parser::get_body
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - empty
    - aux::numeric_cast<std::ptrdiff_t>
    - subspan
    - std::min
    - back
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> http_parser::get_body() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/http_parser.cpp:593,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/http_parser.cpp:602,1
    - Dst: clear
      Src: /src/libtorrent/src/http_parser.cpp:603,1
    - Dst: clear
      Src: /src/libtorrent/src/http_parser.cpp:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 609
    functionName: libtorrent::http_parser::reset
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - span<char const>
    - clear
    linkageType: ''
    returnType: void
    signature: void http_parser::reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_parser.cpp:613,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/http_parser.cpp:618,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_parser.cpp:622,1
    - Dst: chunks
      Src: /src/libtorrent/src/http_parser.cpp:623,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/http_parser.cpp:627,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:628,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/http_parser.cpp:631,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/http_parser.cpp:631,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/http_parser.cpp:633,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_parser.cpp:634,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_parser.cpp:635,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/http_parser.cpp:640,1
    - Dst: span::data
      Src: /src/libtorrent/src/http_parser.cpp:640,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_parser.cpp:640,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_parser.cpp:640,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_parser.cpp:644,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/http_parser.cpp:646,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/http_parser.cpp:646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 647
    functionName: libtorrent::http_parser::collapse_chunk_headers
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - chunks
    - body_start
    - chunked_encoding
    - span<char>::first
    - span::size
    - std::memmove
    - aux::numeric_cast<std::ptrdiff_t>
    - libtorrent::aux::max
    - span::data
    - std::size_t
    - span<char>::subspan
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: span<char>
    signature: span<char> http_parser::collapse_chunk_headers(span<char> buffer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - http_status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: libtorrent::is_ok_status
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ok_status(int http_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - http_status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: libtorrent::is_redirect
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_redirect(int http_status)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/libtorrent/src/http_parser.cpp:70,1
    - Dst: std::tie
      Src: /src/libtorrent/src/http_parser.cpp:74,1
    - Dst: libtorrent::parse_url_components
      Src: /src/libtorrent/src/http_parser.cpp:75,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_parser.cpp:89,1
    - Dst: std::string::find_first_of
      Src: /src/libtorrent/src/http_parser.cpp:99,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/http_parser.cpp:101,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_parser.cpp:112,1
    - Dst: std::string::find_last_of
      Src: /src/libtorrent/src/http_parser.cpp:118,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/http_parser.cpp:126,1
    - Dst: libtorrent::ensure_trailing_slash
      Src: /src/libtorrent/src/http_parser.cpp:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - referrer
    - location
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 135
    functionName: libtorrent::resolve_redirect_location
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - std::string::find_last_of
    - std::tie
    - libtorrent::ensure_trailing_slash
    - std::string::empty
    - libtorrent::parse_url_components
    - std::string::find_first_of
    - std::string::resize
    - std::string::find
    linkageType: ''
    returnType: std::string
    signature: "std::string resolve_redirect_location(std::string referrer\n\t\t,
      std::string location)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/http_parser.cpp:143,1
    - Dst: find
      Src: /src/libtorrent/src/http_parser.cpp:145,1
    - Dst: std::string
      Src: /src/libtorrent/src/http_parser.cpp:145,1
    - Dst: end
      Src: /src/libtorrent/src/http_parser.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: '& http_parser::header(string_view const key) const'
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string & http_parser::header(string_view const key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/http_parser.cpp:156,1
    - Dst: find
      Src: /src/libtorrent/src/http_parser.cpp:158,1
    - Dst: std::string
      Src: /src/libtorrent/src/http_parser.cpp:158,1
    - Dst: end
      Src: /src/libtorrent/src/http_parser.cpp:160,1
    - Dst: std::atol
      Src: /src/libtorrent/src/http_parser.cpp:161,1
    - Dst: auto::second::c_str
      Src: /src/libtorrent/src/http_parser.cpp:161,1
    - Dst: seconds32
      Src: /src/libtorrent/src/http_parser.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: libtorrent::http_parser::header_duration
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - std::atol
    - seconds32
    - auto::second::c_str
    - end
    - std::string
    - find
    linkageType: ''
    returnType: boost::optional<seconds32>
    signature: boost::optional<seconds32> http_parser::header_duration(string_view
      const key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: http_parser::~http_parser()
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_parser::~http_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: libtorrent::http_parser::http_parser
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_parser::http_parser(int const flags)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:173,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/http_parser.cpp:173,1
    - Dst: size
      Src: /src/libtorrent/src/http_parser.cpp:173,1
    - Dst: size
      Src: /src/libtorrent/src/http_parser.cpp:175,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/http_parser.cpp:178,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:187,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:193,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:194,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:194,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:195,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:195,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:197,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/http_parser.cpp:199,1
    - Dst: size
      Src: /src/libtorrent/src/http_parser.cpp:199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:215,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/http_parser.cpp:218,1
    - Dst: data
      Src: /src/libtorrent/src/http_parser.cpp:218,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:221,1
    - Dst: substr
      Src: /src/libtorrent/src/http_parser.cpp:222,1
    - Dst: atoi
      Src: /src/libtorrent/src/http_parser.cpp:224,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:224,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:225,1
    - Dst: std::transform
      Src: /src/libtorrent/src/http_parser.cpp:234,1
    - Dst: begin
      Src: /src/libtorrent/src/http_parser.cpp:234,1
    - Dst: end
      Src: /src/libtorrent/src/http_parser.cpp:234,1
    - Dst: begin
      Src: /src/libtorrent/src/http_parser.cpp:234,1
    - Dst: clear
      Src: /src/libtorrent/src/http_parser.cpp:237,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:238,1
    - Dst: read_until
      Src: /src/libtorrent/src/http_parser.cpp:239,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:243,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:248,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:249,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:249,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:250,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:250,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:253,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/http_parser.cpp:259,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_parser.cpp:264,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:282,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:282,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_parser.cpp:287,1
    - Dst: std::transform
      Src: /src/libtorrent/src/http_parser.cpp:288,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/http_parser.cpp:288,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/http_parser.cpp:288,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/http_parser.cpp:288,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/http_parser.cpp:291,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_parser.cpp:294,1
    - Dst: insert
      Src: /src/libtorrent/src/http_parser.cpp:295,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/http_parser.cpp:295,1
    - Dst: std::strtoll
      Src: /src/libtorrent/src/http_parser.cpp:299,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_parser.cpp:299,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:301,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/http_parser.cpp:310,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_parser.cpp:310,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_parser.cpp:315,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/http_parser.cpp:321,1
    - Dst: std::strtoll
      Src: /src/libtorrent/src/http_parser.cpp:323,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:325,1
    - Dst: std::strtoll
      Src: /src/libtorrent/src/http_parser.cpp:336,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:338,1
    - Dst: string_begins_no_case
      Src: /src/libtorrent/src/http_parser.cpp:358,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/http_parser.cpp:358,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:361,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/http_parser.cpp:361,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:362,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:362,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:363,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:363,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/http_parser.cpp:365,1
    - Dst: data
      Src: /src/libtorrent/src/http_parser.cpp:365,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:370,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:382,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:382,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/http_parser.cpp:384,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/http_parser.cpp:387,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_parser.cpp:388,1
    - Dst: libtorrent::http_parser::parse_chunk_header
      Src: /src/libtorrent/src/http_parser.cpp:391,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:394,1
    - Dst: push_back
      Src: /src/libtorrent/src/http_parser.cpp:404,1
    - Dst: std::get<1>
      Src: /src/libtorrent/src/http_parser.cpp:432,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/http_parser.cpp:438,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:448,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:449,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:453,1
    - Dst: std::get<0>
      Src: /src/libtorrent/src/http_parser.cpp:455,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 177
    argCount: 2
    argNames:
    - recv_buffer
    - ' error'
    argTypes:
    - span<char const>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 466
    functionName: libtorrent::http_parser::incoming
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::strtoll
    - std::get<0>
    - span<char const>::size
    - substr
    - read_until
    - data
    - push_back
    - std::make_pair
    - end
    - std::find
    - atoi
    - std::string::end
    - aux::numeric_cast<std::ptrdiff_t>
    - clear
    - std::string::substr
    - span<char const>
    - libtorrent::aux::max
    - span<char const>::end
    - TORRENT_ASSERT
    - std::string::begin
    - string_begins_no_case
    - std::string::assign
    - libtorrent::http_parser::parse_chunk_header
    - std::get<1>
    - size
    - std::string::size
    - std::transform
    - span<char const>::data
    - insert
    - std::string::c_str
    - std::string::find
    linkageType: ''
    returnType: std::tuple<int, int>
    signature: "std::tuple<int, int> http_parser::incoming(\n\t\tspan<char const>
      recv_buffer, bool& error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:474,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:480,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:481,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:482,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:484,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:484,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:485,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:485,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:486,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:495,1
    - Dst: libtorrent::aux::hex_to_int
      Src: /src/libtorrent/src/http_parser.cpp:504,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:524,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:524,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:531,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:531,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:534,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/http_parser.cpp:540,1
    - Dst: std::string::find
      Src: /src/libtorrent/src/http_parser.cpp:544,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:550,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_parser.cpp:553,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/http_parser.cpp:553,1
    - Dst: insert
      Src: /src/libtorrent/src/http_parser.cpp:558,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_parser.cpp:563,1
    - Dst: std::transform
      Src: /src/libtorrent/src/http_parser.cpp:564,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/http_parser.cpp:564,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/http_parser.cpp:564,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/http_parser.cpp:564,1
    - Dst: std::string::size
      Src: /src/libtorrent/src/http_parser.cpp:567,1
    - Dst: std::string::substr
      Src: /src/libtorrent/src/http_parser.cpp:570,1
    - Dst: std::map::insert
      Src: /src/libtorrent/src/http_parser.cpp:571,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/http_parser.cpp:571,1
    - Dst: std::find
      Src: /src/libtorrent/src/http_parser.cpp:574,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/http_parser.cpp:574,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 3
    argNames:
    - buf
    - chunk_size
    - header_size
    argTypes:
    - span<char const>
    - std::int64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 577
    functionName: libtorrent::http_parser::parse_chunk_header
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 2
    functionsReached:
    - std::transform
    - std::make_pair
    - std::map::insert
    - span<char const>::data
    - insert
    - std::find
    - libtorrent::aux::max
    - span<char const>::end
    - TORRENT_ASSERT
    - std::string::begin
    - std::string::end
    - libtorrent::aux::hex_to_int
    - std::string::find
    - std::string::assign
    - std::string::substr
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: "bool http_parser::parse_chunk_header(span<char const> buf\n\t\t, std::int64_t*
      chunk_size, int* header_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/http_parser.cpp:584,1
    - Dst: std::min
      Src: /src/libtorrent/src/http_parser.cpp:585,1
    - Dst: back
      Src: /src/libtorrent/src/http_parser.cpp:585,1
    - Dst: std::min
      Src: /src/libtorrent/src/http_parser.cpp:586,1
    - Dst: subspan
      Src: /src/libtorrent/src/http_parser.cpp:588,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_parser.cpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: libtorrent::http_parser::get_body
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - empty
    - aux::numeric_cast<std::ptrdiff_t>
    - subspan
    - std::min
    - back
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> http_parser::get_body() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/http_parser.cpp:593,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/http_parser.cpp:602,1
    - Dst: clear
      Src: /src/libtorrent/src/http_parser.cpp:603,1
    - Dst: clear
      Src: /src/libtorrent/src/http_parser.cpp:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 609
    functionName: libtorrent::http_parser::reset
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - span<char const>
    - clear
    linkageType: ''
    returnType: void
    signature: void http_parser::reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunked_encoding
      Src: /src/libtorrent/src/http_parser.cpp:613,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/http_parser.cpp:618,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_parser.cpp:622,1
    - Dst: chunks
      Src: /src/libtorrent/src/http_parser.cpp:623,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/http_parser.cpp:627,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/http_parser.cpp:628,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/http_parser.cpp:631,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/http_parser.cpp:631,1
    - Dst: span<char>::subspan
      Src: /src/libtorrent/src/http_parser.cpp:633,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_parser.cpp:634,1
    - Dst: aux::numeric_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/http_parser.cpp:635,1
    - Dst: std::memmove
      Src: /src/libtorrent/src/http_parser.cpp:640,1
    - Dst: span::data
      Src: /src/libtorrent/src/http_parser.cpp:640,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_parser.cpp:640,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_parser.cpp:640,1
    - Dst: span::size
      Src: /src/libtorrent/src/http_parser.cpp:644,1
    - Dst: span<char>::first
      Src: /src/libtorrent/src/http_parser.cpp:646,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/http_parser.cpp:646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 647
    functionName: libtorrent::http_parser::collapse_chunk_headers
    functionSourceFile: /src/libtorrent/src/http_parser.cpp
    functionUses: 0
    functionsReached:
    - chunks
    - body_start
    - chunked_encoding
    - span<char>::first
    - span::size
    - std::memmove
    - aux::numeric_cast<std::ptrdiff_t>
    - libtorrent::aux::max
    - span::data
    - std::size_t
    - span<char>::subspan
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: span<char>
    signature: span<char> http_parser::collapse_chunk_headers(span<char> buffer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/udp_socket.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' ios'
    - ls
    - ' alerts'
    - ' res'
    - send_local_ep
    argTypes:
    - io_context
    - aux::listen_socket_handle
    - aux::alert_manager
    - aux::resolver_interface
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: libtorrent::socks5
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void socks5(io_context& ios, aux::listen_socket_handle ls\n\t\t, aux::alert_manager&
      alerts, aux::resolver_interface& res, bool const send_local_ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: libtorrent::active
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: libtorrent::target
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/udp_socket.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::self
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<socks5>
    signature: std::shared_ptr<socks5> self()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/src/udp_socket.cpp:167,1
    - Dst: libtorrent::dont_fragment
      Src: /src/libtorrent/src/udp_socket.cpp:167,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:168,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/udp_socket.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' sock'
    - df
    argTypes:
    - udp::socket
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: libtorrent::set_dont_frag
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dont_fragment
    - error_code::message
    - TORRENT_ASSERT_VAL
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void set_dont_frag(udp::socket& sock, bool const df)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/src/udp_socket.cpp:175,1
    - Dst: libtorrent::dont_fragment
      Src: /src/libtorrent/src/udp_socket.cpp:175,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:176,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/udp_socket.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: ~set_dont_frag()
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dont_fragment
    - error_code::message
    - TORRENT_ASSERT_VAL
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void ~set_dont_frag()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: libtorrent::set_dont_frag
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dont_frag(udp::socket&, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::receive_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:191,1
    - Dst: std::move
      Src: /src/libtorrent/src/udp_socket.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ios'
    - ls
    argTypes:
    - io_context
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: libtorrent::udp_socket::udp_socket
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - receive_buffer::receive_buffer
    linkageType: ''
    returnType: void
    signature: void udp_socket::udp_socket(io_context& ios, aux::listen_socket_handle
      ls)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: span<packet>::size
      Src: /src/libtorrent/src/udp_socket.cpp:199,1
    - Dst: receive_from
      Src: /src/libtorrent/src/udp_socket.cpp:205,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:205,1
    - Dst: span<char>
      Src: /src/libtorrent/src/udp_socket.cpp:229,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:233,1
    - Dst: libtorrent::udp_socket::active_socks5
      Src: /src/libtorrent/src/udp_socket.cpp:236,1
    - Dst: target
      Src: /src/libtorrent/src/udp_socket.cpp:239,1
    - Dst: libtorrent::udp_socket::unwrap
      Src: /src/libtorrent/src/udp_socket.cpp:241,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 30
    argCount: 2
    argNames:
    - pkts
    - ' ec'
    argTypes:
    - span<packet>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 268
    functionName: libtorrent::udp_socket::read
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - target
    - libtorrent::udp_socket::active_socks5
    - receive_from
    - both_sides_from_store_buffer
    - span<packet>::size
    - libtorrent::udp_socket::unwrap
    - data
    linkageType: ''
    returnType: int
    signature: int udp_socket::read(span<packet> pkts, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: active
      Src: /src/libtorrent/src/udp_socket.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: libtorrent::udp_socket::active_socks5
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 1
    functionsReached:
    - active
    linkageType: ''
    returnType: bool
    signature: bool udp_socket::active_socks5() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:278,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:278,1
    - Dst: is_open
      Src: /src/libtorrent/src/udp_socket.cpp:281,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:283,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:283,1
    - Dst: libtorrent::udp_socket::active_socks5
      Src: /src/libtorrent/src/udp_socket.cpp:295,1
    - Dst: libtorrent::udp_socket::wrap
      Src: /src/libtorrent/src/udp_socket.cpp:298,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:302,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:302,1
    - Dst: make_address
      Src: /src/libtorrent/src/udp_socket.cpp:309,1
    - Dst: libtorrent::udp_socket::send
      Src: /src/libtorrent/src/udp_socket.cpp:310,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:310,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/udp_socket.cpp:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 5
    argNames:
    - hostname
    - port
    - p
    - ' ec'
    - flags
    argTypes:
    - char*
    - int
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 311
    functionName: libtorrent::udp_socket::send_hostname
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - is_open
    - libtorrent::udp_socket::active_socks5
    - libtorrent::udp_socket::wrap
    - std::uint16_t
    - error_code
    - is_single_thread
    - TORRENT_ASSERT
    - generic_category
    - libtorrent::udp_socket::send
    - local_endpoint
    - make_address
    linkageType: ''
    returnType: void
    signature: "void udp_socket::send_hostname(char const* hostname, int const port\n\t,
      span<char const> p, error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:316,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:316,1
    - Dst: is_open
      Src: /src/libtorrent/src/udp_socket.cpp:319,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:321,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:321,1
    - Dst: libtorrent::udp_socket::active_socks5
      Src: /src/libtorrent/src/udp_socket.cpp:333,1
    - Dst: libtorrent::udp_socket::wrap
      Src: /src/libtorrent/src/udp_socket.cpp:336,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:340,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:340,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:347,1
    - Dst: send_to
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - ' ep'
    - p
    - ' ec'
    - flags
    argTypes:
    - udp::endpoint
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 350
    functionName: libtorrent::udp_socket::send
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 1
    functionsReached:
    - is_open
    - libtorrent::udp_socket::active_socks5
    - libtorrent::udp_socket::wrap
    - libtorrent::aux::is_v4
    - error_code
    - is_single_thread
    - span<char const>::data
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - generic_category
    - both_sides_from_store_buffer
    - span<char const>::size
    - send_to
    linkageType: ''
    returnType: void
    signature: "void udp_socket::send(udp::endpoint const& ep, span<char const> p\n\t,
      error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/udp_socket.cpp:355,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:359,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:361,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:362,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:363,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:363,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:364,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:367,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:367,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:367,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:367,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:368,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_socket.cpp:368,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:368,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_socket.cpp:368,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:371,1
    - Dst: send_to
      Src: /src/libtorrent/src/udp_socket.cpp:373,1
    - Dst: target
      Src: /src/libtorrent/src/udp_socket.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ' ep'
    - p
    - ' ec'
    - flags
    argTypes:
    - udp::endpoint
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: libtorrent::udp_socket::wrap
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 2
    functionsReached:
    - target
    - std::array::data
    - write_uint16
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::is_v4
    - write_endpoint
    - span<char const>::data
    - send_to
    - boost::asio::const_buffer
    - static_cast<std::size_t>
    - span<char const>::size
    - write_uint8
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void udp_socket::wrap(udp::endpoint const& ep, span<char const> p\n\t,
      error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:382,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:384,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:385,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:386,1
    - Dst: std::min
      Src: /src/libtorrent/src/udp_socket.cpp:387,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/udp_socket.cpp:387,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:388,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/udp_socket.cpp:389,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:391,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:394,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:394,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:394,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:394,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:395,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_socket.cpp:395,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:395,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_socket.cpp:395,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:399,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:399,1
    - Dst: send_to
      Src: /src/libtorrent/src/udp_socket.cpp:401,1
    - Dst: target
      Src: /src/libtorrent/src/udp_socket.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - hostname
    - port
    - p
    - ' ec'
    - flags
    argTypes:
    - char*
    - int
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 402
    functionName: libtorrent::udp_socket::wrap
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 2
    functionsReached:
    - target
    - std::array::data
    - write_uint16
    - std::memcpy
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::is_v4
    - std::strlen
    - span<char const>::data
    - boost::asio::const_buffer
    - static_cast<std::size_t>
    - std::min
    - local_endpoint
    - span<char const>::size
    - write_uint8
    - send_to
    linkageType: ''
    returnType: void
    signature: "void udp_socket::wrap(char const* hostname, int const port, span<char
      const> p\n\t, error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/udp_socket.cpp:413,1
    - Dst: data::size
      Src: /src/libtorrent/src/udp_socket.cpp:413,1
    - Dst: data::data
      Src: /src/libtorrent/src/udp_socket.cpp:416,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:418,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:422,1
    - Dst: read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/udp_socket.cpp:426,1
    - Dst: read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/udp_socket.cpp:431,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:435,1
    - Dst: data::end
      Src: /src/libtorrent/src/udp_socket.cpp:436,1
    - Dst: make_address
      Src: /src/libtorrent/src/udp_socket.cpp:441,1
    - Dst: std::string
      Src: /src/libtorrent/src/udp_socket.cpp:441,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:442,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:444,1
    - Dst: data::data
      Src: /src/libtorrent/src/udp_socket.cpp:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - udp_socket::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 451
    functionName: libtorrent::udp_socket::unwrap
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 1
    functionsReached:
    - data::data
    - read_v4_endpoint<udp::endpoint>
    - read_v6_endpoint<udp::endpoint>
    - read_uint16
    - std::string
    - data::size
    - aux::numeric_cast<int>
    - data::end
    - local_endpoint
    - make_address
    - read_uint8
    linkageType: ''
    returnType: bool
    signature: bool udp_socket::unwrap(udp_socket::packet& pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:459,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:459,1
    - Dst: libtorrent::udp_socket::close
      Src: /src/libtorrent/src/udp_socket.cpp:462,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:463,1
    - Dst: libtorrent::udp_socket::close
      Src: /src/libtorrent/src/udp_socket.cpp:466,1
    - Dst: reset
      Src: /src/libtorrent/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 470
    functionName: libtorrent::udp_socket::close
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 1
    functionsReached:
    - reset
    - TORRENT_ASSERT_VAL
    - is_single_thread
    - TORRENT_ASSERT
    - libtorrent::udp_socket::close
    linkageType: ''
    returnType: void
    signature: void udp_socket::close()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:474,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:474,1
    - Dst: is_open
      Src: /src/libtorrent/src/udp_socket.cpp:478,1
    - Dst: libtorrent::udp_socket::close
      Src: /src/libtorrent/src/udp_socket.cpp:478,1
    - Dst: clear
      Src: /src/libtorrent/src/udp_socket.cpp:479,1
    - Dst: libtorrent::udp_socket::open
      Src: /src/libtorrent/src/udp_socket.cpp:481,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/udp_socket.cpp:483,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:486,1
    - Dst: boost::asio::ip::v6_only
      Src: /src/libtorrent/src/udp_socket.cpp:486,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:490,1
    - Dst: v6_protection_level
      Src: /src/libtorrent/src/udp_socket.cpp:490,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:497,1
    - Dst: exclusive_address_use
      Src: /src/libtorrent/src/udp_socket.cpp:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' protocol'
    - ' ec'
    argTypes:
    - udp
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 499
    functionName: libtorrent::udp_socket::open
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 1
    functionsReached:
    - boost::asio::ip::v6_only
    - v6_protection_level
    - exclusive_address_use
    - is_open
    - rand_v6
    - libtorrent::udp_socket::open
    - is_single_thread
    - TORRENT_ASSERT
    - clear
    - set_option
    - libtorrent::udp_socket::close
    linkageType: ''
    returnType: void
    signature: void udp_socket::open(udp const& protocol, error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/src/udp_socket.cpp:503,1
    - Dst: libtorrent::udp_socket::open
      Src: /src/libtorrent/src/udp_socket.cpp:503,1
    - Dst: protocol
      Src: /src/libtorrent/src/udp_socket.cpp:503,1
    - Dst: libtorrent::udp_socket::bind
      Src: /src/libtorrent/src/udp_socket.cpp:505,1
    - Dst: non_blocking
      Src: /src/libtorrent/src/udp_socket.cpp:507,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:511,1
    - Dst: port
      Src: /src/libtorrent/src/udp_socket.cpp:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - udp::endpoint
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 501
    functionDepth: 4
    functionLinenumber: 501
    functionLinenumberEnd: 513
    functionName: libtorrent::udp_socket::bind
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 1
    functionsReached:
    - protocol
    - libtorrent::udp_socket::bind
    - is_open
    - libtorrent::udp_socket::open
    - non_blocking
    - local_endpoint
    - port
    linkageType: ''
    returnType: void
    signature: void udp_socket::bind(udp::endpoint const& ep, error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:518,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:518,1
    - Dst: libtorrent::udp_socket::close
      Src: /src/libtorrent/src/udp_socket.cpp:522,1
    - Dst: reset
      Src: /src/libtorrent/src/udp_socket.cpp:523,1
    - Dst: std::make_shared<socks5>
      Src: /src/libtorrent/src/udp_socket.cpp:535,1
    - Dst: start
      Src: /src/libtorrent/src/udp_socket.cpp:537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' ps'
    - ' alerts'
    - ' resolver'
    - send_local_ep
    argTypes:
    - aux::proxy_settings
    - aux::alert_manager
    - aux::resolver_interface
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 539
    functionName: libtorrent::udp_socket::set_proxy_settings
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - is_single_thread
    - std::make_shared<socks5>
    - TORRENT_ASSERT
    - libtorrent::udp_socket::close
    - start
    linkageType: ''
    returnType: void
    signature: "void udp_socket::set_proxy_settings(aux::proxy_settings const& ps\n\t,
      aux::alert_manager& alerts, aux::resolver_interface& resolver, bool const send_local_ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:547,1
    - Dst: port
      Src: /src/libtorrent/src/udp_socket.cpp:548,1
    - Dst: async_resolve
      Src: /src/libtorrent/src/udp_socket.cpp:549,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:550,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' ps'
    argTypes:
    - aux::proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 551
    functionName: libtorrent::socks5::start
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_resolve
    - self
    - port
    linkageType: ''
    returnType: void
    signature: void socks5::start(aux::proxy_settings const& ps)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:555,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:563,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:564,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:564,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:567,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/udp_socket.cpp:575,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_socket.cpp:575,1
    - Dst: end
      Src: /src/libtorrent/src/udp_socket.cpp:575,1
    - Dst: can_route
      Src: /src/libtorrent/src/udp_socket.cpp:577,1
    - Dst: end
      Src: /src/libtorrent/src/udp_socket.cpp:580,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:582,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:583,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:583,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:585,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:585,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:587,1
    - Dst: address
      Src: /src/libtorrent/src/udp_socket.cpp:591,1
    - Dst: open
      Src: /src/libtorrent/src/udp_socket.cpp:594,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:594,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/udp_socket.cpp:594,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/udp_socket.cpp:594,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:597,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:598,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:603,1
    - Dst: peer_connection::keep_alive
      Src: /src/libtorrent/src/udp_socket.cpp:603,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:606,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:607,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/udp_socket.cpp:608,1
    - Dst: native_handle
      Src: /src/libtorrent/src/udp_socket.cpp:612,1
    - Dst: WSAIoctl
      Src: /src/libtorrent/src/udp_socket.cpp:618,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:622,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:623,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:624,1
    - Dst: WSAGetLastError
      Src: /src/libtorrent/src/udp_socket.cpp:624,1
    - Dst: system_category
      Src: /src/libtorrent/src/udp_socket.cpp:624,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:629,1
    - Dst: libtorrent::aux::tcp_keepalive_idle
      Src: /src/libtorrent/src/udp_socket.cpp:629,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:632,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:633,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/udp_socket.cpp:634,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:638,1
    - Dst: libtorrent::aux::tcp_keepalive_interval
      Src: /src/libtorrent/src/udp_socket.cpp:638,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:641,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:642,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/udp_socket.cpp:643,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:648,1
    - Dst: bind
      Src: /src/libtorrent/src/udp_socket.cpp:649,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:652,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:653,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:655,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:662,1
    - Dst: async_connect
      Src: /src/libtorrent/src/udp_socket.cpp:663,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:664,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:664,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:666,1
    - Dst: expires_after
      Src: /src/libtorrent/src/udp_socket.cpp:667,1
    - Dst: seconds
      Src: /src/libtorrent/src/udp_socket.cpp:667,1
    - Dst: async_wait
      Src: /src/libtorrent/src/udp_socket.cpp:668,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:668,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:669,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - ' e'
    - ' ips'
    argTypes:
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 670
    functionName: libtorrent::socks5::on_name_lookup
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - begin
    - async_connect
    - seconds
    - error_code::clear
    - self
    - set_option
    - bind
    - ADD_OUTSTANDING_ASYNC
    - can_route
    - get_local_endpoint
    - rand_v6
    - end
    - WSAIoctl
    - expires_after
    - should_post
    - address
    - COMPLETE_ASYNC
    - libtorrent::socks5::retry_connection
    - async_wait
    - emplace_alert
    - WSAGetLastError
    - open
    - libtorrent::aux::is_v4
    - libtorrent::aux::tcp_keepalive_idle
    - generic_category
    - peer_connection::keep_alive
    - std::find_if
    - system_category
    - std::bind
    - rand_v4
    - error_code
    - native_handle
    - libtorrent::aux::tcp_keepalive_interval
    linkageType: ''
    returnType: void
    signature: void socks5::on_name_lookup(error_code const& e, std::vector<address>
      const& ips)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:674,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:680,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:681,1
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:684,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 688
    functionName: libtorrent::socks5::on_connect_timeout
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - libtorrent::socks5::close
    - should_post
    - libtorrent::socks5::retry_connection
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void socks5::on_connect_timeout(error_code const& e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:692,1
    - Dst: cancel
      Src: /src/libtorrent/src/udp_socket.cpp:694,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:703,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:704,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:706,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:713,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:714,1
    - Dst: username::empty
      Src: /src/libtorrent/src/udp_socket.cpp:715,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:718,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:719,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:723,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:724,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:725,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:727,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:727,1
    - Dst: size
      Src: /src/libtorrent/src/udp_socket.cpp:727,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:727,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:728,1
    - Dst: async_write
      Src: /src/libtorrent/src/udp_socket.cpp:729,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:729,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:729,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:730,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:730,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:731,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:731,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 732
    functionName: libtorrent::socks5::on_connected
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_write
    - emplace_alert
    - aux::numeric_cast<std::size_t>
    - TORRENT_ASSERT_VAL
    - COMPLETE_ASYNC
    - cancel
    - both_sides_from_store_buffer
    - should_post
    - self
    - username::empty
    - write_uint8
    - libtorrent::socks5::retry_connection
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::on_connected(error_code const& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:736,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:740,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:741,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:743,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:747,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:748,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:748,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:748,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:749,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 750
    functionName: libtorrent::socks5::handshake1
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::handshake1(error_code const& e)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:754,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:759,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:760,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:762,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:768,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:769,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:770,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:774,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:775,1
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:778,1
    - Dst: libtorrent::socks5::socks_forward_udp
      Src: /src/libtorrent/src/udp_socket.cpp:784,1
    - Dst: username::empty
      Src: /src/libtorrent/src/udp_socket.cpp:788,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:790,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:791,1
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:794,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:799,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:800,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:801,1
    - Dst: username::size
      Src: /src/libtorrent/src/udp_socket.cpp:801,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:802,1
    - Dst: username::size
      Src: /src/libtorrent/src/udp_socket.cpp:802,1
    - Dst: write_string
      Src: /src/libtorrent/src/udp_socket.cpp:803,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:804,1
    - Dst: password::size
      Src: /src/libtorrent/src/udp_socket.cpp:804,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:805,1
    - Dst: password::size
      Src: /src/libtorrent/src/udp_socket.cpp:805,1
    - Dst: write_string
      Src: /src/libtorrent/src/udp_socket.cpp:806,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:807,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:807,1
    - Dst: size
      Src: /src/libtorrent/src/udp_socket.cpp:807,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:807,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:808,1
    - Dst: async_write
      Src: /src/libtorrent/src/udp_socket.cpp:809,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:810,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:810,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:810,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:810,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:811,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:811,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:815,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:816,1
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:820,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 823
    functionName: libtorrent::socks5::handshake2
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - self
    - password::size
    - data
    - ADD_OUTSTANDING_ASYNC
    - aux::numeric_cast<std::size_t>
    - libtorrent::socks5::close
    - username::size
    - should_post
    - COMPLETE_ASYNC
    - libtorrent::socks5::retry_connection
    - emplace_alert
    - TORRENT_ASSERT_VAL
    - libtorrent::socks5::socks_forward_udp
    - TORRENT_ASSERT
    - write_string
    - username::empty
    - write_uint8
    - size
    - std::bind
    - async_write
    - both_sides_from_store_buffer
    - read_uint8
    linkageType: ''
    returnType: void
    signature: void socks5::handshake2(error_code const& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:827,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:831,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:832,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:834,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:838,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:839,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:839,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:839,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:840,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 841
    functionName: libtorrent::socks5::handshake3
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::handshake3(error_code const& e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:845,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:849,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:850,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:852,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:858,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:859,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:860,1
    - Dst: libtorrent::socks5::socks_forward_udp
      Src: /src/libtorrent/src/udp_socket.cpp:864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 865
    functionName: libtorrent::socks5::handshake4
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - COMPLETE_ASYNC
    - libtorrent::socks5::socks_forward_udp
    - should_post
    - read_uint8
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::handshake4(error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:872,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:873,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:874,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:875,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:879,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:880,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:880,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:881,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:885,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/udp_socket.cpp:886,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:887,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:890,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:890,1
    - Dst: size
      Src: /src/libtorrent/src/udp_socket.cpp:890,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:890,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:891,1
    - Dst: async_write
      Src: /src/libtorrent/src/udp_socket.cpp:892,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:893,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:893,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:893,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:893,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:894,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 895
    functionName: libtorrent::socks5::socks_forward_udp
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_write
    - write_uint16
    - get_local_endpoint
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::is_v4
    - write_endpoint
    - TORRENT_ASSERT_VAL
    - write_uint32
    - both_sides_from_store_buffer
    - self
    - write_uint8
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::socks_forward_udp()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:899,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:903,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:904,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:906,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:910,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:911,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:911,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:911,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:912,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: libtorrent::socks5::connect1
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::connect1(error_code const& e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:917,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:922,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:923,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:925,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:931,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:932,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:933,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:935,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:941,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:945,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:945,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:945,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:946,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:946,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:951,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:952,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:956,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:956,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:956,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:957,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:957,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/udp_socket.cpp:963,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 966
    functionName: libtorrent::socks5::connect2
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - COMPLETE_ASYNC
    - TORRENT_ASSERT_FAIL
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - read_uint8
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::connect2(error_code const& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:970,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:975,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:976,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:978,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:984,1
    - Dst: address
      Src: /src/libtorrent/src/udp_socket.cpp:985,1
    - Dst: address_v4
      Src: /src/libtorrent/src/udp_socket.cpp:985,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/udp_socket.cpp:985,1
    - Dst: port
      Src: /src/libtorrent/src/udp_socket.cpp:986,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:986,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:992,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:993,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:993,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:993,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:994,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:994,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 995
    functionName: libtorrent::socks5::read_bindaddr
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - address
    - address_v4
    - read_uint16
    - read_uint32
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - port
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::read_bindaddr(error_code const& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:999,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:1004,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:1005,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:1007,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:1013,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:1014,1
    - Dst: address
      Src: /src/libtorrent/src/udp_socket.cpp:1016,1
    - Dst: address
      Src: /src/libtorrent/src/udp_socket.cpp:1016,1
    - Dst: port
      Src: /src/libtorrent/src/udp_socket.cpp:1017,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:1017,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:1023,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:1024,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:1024,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:1024,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:1025,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:1025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1026
    functionName: libtorrent::socks5::read_domainname
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - address
    - read_uint16
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - port
    - read_uint8
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::read_domainname(error_code const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:1030,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:1035,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:1036,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:1038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1039
    functionName: libtorrent::socks5::hung_up
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::socks5::retry_connection
    - COMPLETE_ASYNC
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: void socks5::hung_up(error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expires_after
      Src: /src/libtorrent/src/udp_socket.cpp:1046,1
    - Dst: seconds
      Src: /src/libtorrent/src/udp_socket.cpp:1046,1
    - Dst: std::min
      Src: /src/libtorrent/src/udp_socket.cpp:1046,1
    - Dst: async_wait
      Src: /src/libtorrent/src/udp_socket.cpp:1047,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:1047,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1049
    functionName: libtorrent::socks5::retry_connection
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 12
    functionsReached:
    - std::bind
    - async_wait
    - seconds
    - expires_after
    - std::min
    - self
    linkageType: ''
    returnType: void
    signature: void socks5::retry_connection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:1055,1
    - Dst: libtorrent::socks5::start
      Src: /src/libtorrent/src/udp_socket.cpp:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1057
    functionName: libtorrent::socks5::on_retry_socks_connect
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::socks5::close
    - libtorrent::socks5::start
    linkageType: ''
    returnType: void
    signature: void socks5::on_retry_socks_connect(error_code const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:1063,1
    - Dst: cancel
      Src: /src/libtorrent/src/udp_socket.cpp:1064,1
    - Dst: cancel
      Src: /src/libtorrent/src/udp_socket.cpp:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: libtorrent::socks5::close
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::socks5::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void socks5::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/udp_socket.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' ios'
    - ls
    - ' alerts'
    - ' res'
    - send_local_ep
    argTypes:
    - io_context
    - aux::listen_socket_handle
    - aux::alert_manager
    - aux::resolver_interface
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: libtorrent::socks5
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void socks5(io_context& ios, aux::listen_socket_handle ls\n\t\t, aux::alert_manager&
      alerts, aux::resolver_interface& res, bool const send_local_ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: libtorrent::active
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: libtorrent::target
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/src/udp_socket.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::self
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<socks5>
    signature: std::shared_ptr<socks5> self()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/src/udp_socket.cpp:167,1
    - Dst: libtorrent::dont_fragment
      Src: /src/libtorrent/src/udp_socket.cpp:167,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:168,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/udp_socket.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' sock'
    - df
    argTypes:
    - udp::socket
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: libtorrent::set_dont_frag
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dont_fragment
    - error_code::message
    - TORRENT_ASSERT_VAL
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void set_dont_frag(udp::socket& sock, bool const df)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:175,1
    - Dst: libtorrent::dont_fragment
      Src: /src/libtorrent/src/udp_socket.cpp:175,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:176,1
    - Dst: error_code::message
      Src: /src/libtorrent/src/udp_socket.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: ~set_dont_frag()
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - set_option
    - error_code::message
    - TORRENT_ASSERT_VAL
    - libtorrent::dont_fragment
    linkageType: ''
    returnType: void
    signature: void ~set_dont_frag()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: libtorrent::set_dont_frag
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dont_frag(udp::socket&, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer::receive_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:191,1
    - Dst: std::move
      Src: /src/libtorrent/src/udp_socket.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ios'
    - ls
    argTypes:
    - io_context
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: libtorrent::udp_socket::udp_socket
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - receive_buffer::receive_buffer
    linkageType: ''
    returnType: void
    signature: void udp_socket::udp_socket(io_context& ios, aux::listen_socket_handle
      ls)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: span<packet>::size
      Src: /src/libtorrent/src/udp_socket.cpp:199,1
    - Dst: receive_from
      Src: /src/libtorrent/src/udp_socket.cpp:205,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:205,1
    - Dst: span<char>
      Src: /src/libtorrent/src/udp_socket.cpp:229,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:233,1
    - Dst: libtorrent::udp_socket::active_socks5
      Src: /src/libtorrent/src/udp_socket.cpp:236,1
    - Dst: target
      Src: /src/libtorrent/src/udp_socket.cpp:239,1
    - Dst: libtorrent::udp_socket::unwrap
      Src: /src/libtorrent/src/udp_socket.cpp:241,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 30
    argCount: 2
    argNames:
    - pkts
    - ' ec'
    argTypes:
    - span<packet>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 268
    functionName: libtorrent::udp_socket::read
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - span<char>
    - target
    - libtorrent::udp_socket::active_socks5
    - receive_from
    - both_sides_from_store_buffer
    - span<packet>::size
    - libtorrent::udp_socket::unwrap
    - data
    linkageType: ''
    returnType: int
    signature: int udp_socket::read(span<packet> pkts, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: active
      Src: /src/libtorrent/src/udp_socket.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: libtorrent::udp_socket::active_socks5
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 4
    functionsReached:
    - active
    linkageType: ''
    returnType: bool
    signature: bool udp_socket::active_socks5() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:278,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:278,1
    - Dst: is_open
      Src: /src/libtorrent/src/udp_socket.cpp:281,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:283,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:283,1
    - Dst: libtorrent::udp_socket::active_socks5
      Src: /src/libtorrent/src/udp_socket.cpp:295,1
    - Dst: libtorrent::udp_socket::wrap
      Src: /src/libtorrent/src/udp_socket.cpp:298,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:302,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:302,1
    - Dst: make_address
      Src: /src/libtorrent/src/udp_socket.cpp:309,1
    - Dst: libtorrent::udp_socket::send
      Src: /src/libtorrent/src/udp_socket.cpp:310,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:310,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/udp_socket.cpp:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 5
    argNames:
    - hostname
    - port
    - p
    - ' ec'
    - flags
    argTypes:
    - char*
    - int
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 311
    functionName: libtorrent::udp_socket::send_hostname
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - is_open
    - libtorrent::udp_socket::active_socks5
    - libtorrent::udp_socket::wrap
    - std::uint16_t
    - error_code
    - is_single_thread
    - TORRENT_ASSERT
    - generic_category
    - libtorrent::udp_socket::send
    - local_endpoint
    - make_address
    linkageType: ''
    returnType: void
    signature: "void udp_socket::send_hostname(char const* hostname, int const port\n\t,
      span<char const> p, error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:316,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:316,1
    - Dst: is_open
      Src: /src/libtorrent/src/udp_socket.cpp:319,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:321,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:321,1
    - Dst: libtorrent::udp_socket::active_socks5
      Src: /src/libtorrent/src/udp_socket.cpp:333,1
    - Dst: libtorrent::udp_socket::wrap
      Src: /src/libtorrent/src/udp_socket.cpp:336,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:340,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:340,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:347,1
    - Dst: send_to
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_socket.cpp:349,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - ' ep'
    - p
    - ' ec'
    - flags
    argTypes:
    - udp::endpoint
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 350
    functionName: libtorrent::udp_socket::send
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 2
    functionsReached:
    - is_open
    - libtorrent::udp_socket::active_socks5
    - libtorrent::udp_socket::wrap
    - libtorrent::aux::is_v4
    - error_code
    - is_single_thread
    - span<char const>::data
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - generic_category
    - both_sides_from_store_buffer
    - span<char const>::size
    - send_to
    linkageType: ''
    returnType: void
    signature: "void udp_socket::send(udp::endpoint const& ep, span<char const> p\n\t,
      error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/udp_socket.cpp:355,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:359,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:361,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:362,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:363,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:363,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:364,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:367,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:367,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:367,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:367,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:368,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_socket.cpp:368,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:368,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_socket.cpp:368,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:371,1
    - Dst: send_to
      Src: /src/libtorrent/src/udp_socket.cpp:373,1
    - Dst: target
      Src: /src/libtorrent/src/udp_socket.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ' ep'
    - p
    - ' ec'
    - flags
    argTypes:
    - udp::endpoint
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: libtorrent::udp_socket::wrap
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 4
    functionsReached:
    - target
    - std::array::data
    - write_uint16
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::is_v4
    - write_endpoint
    - span<char const>::data
    - send_to
    - boost::asio::const_buffer
    - static_cast<std::size_t>
    - span<char const>::size
    - write_uint8
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void udp_socket::wrap(udp::endpoint const& ep, span<char const> p\n\t,
      error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:382,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:384,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:385,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:386,1
    - Dst: std::min
      Src: /src/libtorrent/src/udp_socket.cpp:387,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/udp_socket.cpp:387,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:388,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/udp_socket.cpp:389,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:391,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:394,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:394,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:394,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/udp_socket.cpp:394,1
    - Dst: boost::asio::const_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:395,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/udp_socket.cpp:395,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:395,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/udp_socket.cpp:395,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:399,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:399,1
    - Dst: send_to
      Src: /src/libtorrent/src/udp_socket.cpp:401,1
    - Dst: target
      Src: /src/libtorrent/src/udp_socket.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - hostname
    - port
    - p
    - ' ec'
    - flags
    argTypes:
    - char*
    - int
    - span<char const>
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 402
    functionName: libtorrent::udp_socket::wrap
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 4
    functionsReached:
    - target
    - std::array::data
    - write_uint16
    - std::memcpy
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::is_v4
    - std::strlen
    - span<char const>::data
    - boost::asio::const_buffer
    - static_cast<std::size_t>
    - std::min
    - local_endpoint
    - span<char const>::size
    - write_uint8
    - send_to
    linkageType: ''
    returnType: void
    signature: "void udp_socket::wrap(char const* hostname, int const port, span<char
      const> p\n\t, error_code& ec, udp_send_flags_t const flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/udp_socket.cpp:413,1
    - Dst: data::size
      Src: /src/libtorrent/src/udp_socket.cpp:413,1
    - Dst: data::data
      Src: /src/libtorrent/src/udp_socket.cpp:416,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:418,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:422,1
    - Dst: read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/udp_socket.cpp:426,1
    - Dst: read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/src/udp_socket.cpp:431,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:435,1
    - Dst: data::end
      Src: /src/libtorrent/src/udp_socket.cpp:436,1
    - Dst: make_address
      Src: /src/libtorrent/src/udp_socket.cpp:441,1
    - Dst: std::string
      Src: /src/libtorrent/src/udp_socket.cpp:441,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:442,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:444,1
    - Dst: data::data
      Src: /src/libtorrent/src/udp_socket.cpp:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - udp_socket::packet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 451
    functionName: libtorrent::udp_socket::unwrap
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 2
    functionsReached:
    - data::data
    - read_v4_endpoint<udp::endpoint>
    - read_v6_endpoint<udp::endpoint>
    - read_uint16
    - std::string
    - data::size
    - aux::numeric_cast<int>
    - data::end
    - local_endpoint
    - make_address
    - read_uint8
    linkageType: ''
    returnType: bool
    signature: bool udp_socket::unwrap(udp_socket::packet& pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:459,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:459,1
    - Dst: libtorrent::udp_socket::close
      Src: /src/libtorrent/src/udp_socket.cpp:462,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:463,1
    - Dst: libtorrent::udp_socket::close
      Src: /src/libtorrent/src/udp_socket.cpp:466,1
    - Dst: reset
      Src: /src/libtorrent/src/udp_socket.cpp:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 470
    functionName: libtorrent::udp_socket::close
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 4
    functionsReached:
    - reset
    - TORRENT_ASSERT_VAL
    - is_single_thread
    - TORRENT_ASSERT
    - libtorrent::udp_socket::close
    linkageType: ''
    returnType: void
    signature: void udp_socket::close()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:474,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:474,1
    - Dst: is_open
      Src: /src/libtorrent/src/udp_socket.cpp:478,1
    - Dst: libtorrent::udp_socket::close
      Src: /src/libtorrent/src/udp_socket.cpp:478,1
    - Dst: clear
      Src: /src/libtorrent/src/udp_socket.cpp:479,1
    - Dst: libtorrent::udp_socket::open
      Src: /src/libtorrent/src/udp_socket.cpp:481,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/udp_socket.cpp:483,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:486,1
    - Dst: boost::asio::ip::v6_only
      Src: /src/libtorrent/src/udp_socket.cpp:486,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:490,1
    - Dst: v6_protection_level
      Src: /src/libtorrent/src/udp_socket.cpp:490,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:497,1
    - Dst: exclusive_address_use
      Src: /src/libtorrent/src/udp_socket.cpp:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' protocol'
    - ' ec'
    argTypes:
    - udp
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 499
    functionName: libtorrent::udp_socket::open
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 3
    functionsReached:
    - boost::asio::ip::v6_only
    - v6_protection_level
    - exclusive_address_use
    - is_open
    - rand_v6
    - libtorrent::udp_socket::open
    - is_single_thread
    - TORRENT_ASSERT
    - clear
    - set_option
    - libtorrent::udp_socket::close
    linkageType: ''
    returnType: void
    signature: void udp_socket::open(udp const& protocol, error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/src/udp_socket.cpp:503,1
    - Dst: libtorrent::udp_socket::open
      Src: /src/libtorrent/src/udp_socket.cpp:503,1
    - Dst: protocol
      Src: /src/libtorrent/src/udp_socket.cpp:503,1
    - Dst: libtorrent::udp_socket::bind
      Src: /src/libtorrent/src/udp_socket.cpp:505,1
    - Dst: non_blocking
      Src: /src/libtorrent/src/udp_socket.cpp:507,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:511,1
    - Dst: port
      Src: /src/libtorrent/src/udp_socket.cpp:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' ep'
    - ' ec'
    argTypes:
    - udp::endpoint
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 501
    functionDepth: 4
    functionLinenumber: 501
    functionLinenumberEnd: 513
    functionName: libtorrent::udp_socket::bind
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 2
    functionsReached:
    - protocol
    - libtorrent::udp_socket::bind
    - is_open
    - libtorrent::udp_socket::open
    - non_blocking
    - local_endpoint
    - port
    linkageType: ''
    returnType: void
    signature: void udp_socket::bind(udp::endpoint const& ep, error_code& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:518,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/udp_socket.cpp:518,1
    - Dst: libtorrent::udp_socket::close
      Src: /src/libtorrent/src/udp_socket.cpp:522,1
    - Dst: reset
      Src: /src/libtorrent/src/udp_socket.cpp:523,1
    - Dst: std::make_shared<socks5>
      Src: /src/libtorrent/src/udp_socket.cpp:535,1
    - Dst: start
      Src: /src/libtorrent/src/udp_socket.cpp:537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' ps'
    - ' alerts'
    - ' resolver'
    - send_local_ep
    argTypes:
    - aux::proxy_settings
    - aux::alert_manager
    - aux::resolver_interface
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 539
    functionName: libtorrent::udp_socket::set_proxy_settings
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - reset
    - is_single_thread
    - std::make_shared<socks5>
    - TORRENT_ASSERT
    - libtorrent::udp_socket::close
    - start
    linkageType: ''
    returnType: void
    signature: "void udp_socket::set_proxy_settings(aux::proxy_settings const& ps\n\t,
      aux::alert_manager& alerts, aux::resolver_interface& resolver, bool const send_local_ep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:547,1
    - Dst: port
      Src: /src/libtorrent/src/udp_socket.cpp:548,1
    - Dst: async_resolve
      Src: /src/libtorrent/src/udp_socket.cpp:549,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:550,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' ps'
    argTypes:
    - aux::proxy_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 551
    functionName: libtorrent::socks5::start
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_resolve
    - self
    - port
    linkageType: ''
    returnType: void
    signature: void socks5::start(aux::proxy_settings const& ps)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:555,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:563,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:564,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:564,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:567,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/udp_socket.cpp:575,1
    - Dst: begin
      Src: /src/libtorrent/src/udp_socket.cpp:575,1
    - Dst: end
      Src: /src/libtorrent/src/udp_socket.cpp:575,1
    - Dst: can_route
      Src: /src/libtorrent/src/udp_socket.cpp:577,1
    - Dst: end
      Src: /src/libtorrent/src/udp_socket.cpp:580,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:582,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:583,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:583,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:585,1
    - Dst: generic_category
      Src: /src/libtorrent/src/udp_socket.cpp:585,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:587,1
    - Dst: address
      Src: /src/libtorrent/src/udp_socket.cpp:591,1
    - Dst: open
      Src: /src/libtorrent/src/udp_socket.cpp:594,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:594,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/udp_socket.cpp:594,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/udp_socket.cpp:594,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:597,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:598,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:603,1
    - Dst: peer_connection::keep_alive
      Src: /src/libtorrent/src/udp_socket.cpp:603,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:606,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:607,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/udp_socket.cpp:608,1
    - Dst: native_handle
      Src: /src/libtorrent/src/udp_socket.cpp:612,1
    - Dst: WSAIoctl
      Src: /src/libtorrent/src/udp_socket.cpp:618,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:622,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:623,1
    - Dst: error_code
      Src: /src/libtorrent/src/udp_socket.cpp:624,1
    - Dst: WSAGetLastError
      Src: /src/libtorrent/src/udp_socket.cpp:624,1
    - Dst: system_category
      Src: /src/libtorrent/src/udp_socket.cpp:624,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:629,1
    - Dst: libtorrent::aux::tcp_keepalive_idle
      Src: /src/libtorrent/src/udp_socket.cpp:629,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:632,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:633,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/udp_socket.cpp:634,1
    - Dst: set_option
      Src: /src/libtorrent/src/udp_socket.cpp:638,1
    - Dst: libtorrent::aux::tcp_keepalive_interval
      Src: /src/libtorrent/src/udp_socket.cpp:638,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:641,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:642,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/udp_socket.cpp:643,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:648,1
    - Dst: bind
      Src: /src/libtorrent/src/udp_socket.cpp:649,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:652,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:653,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:655,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:662,1
    - Dst: async_connect
      Src: /src/libtorrent/src/udp_socket.cpp:663,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:664,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:664,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:666,1
    - Dst: expires_after
      Src: /src/libtorrent/src/udp_socket.cpp:667,1
    - Dst: seconds
      Src: /src/libtorrent/src/udp_socket.cpp:667,1
    - Dst: async_wait
      Src: /src/libtorrent/src/udp_socket.cpp:668,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:668,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:669,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - ' e'
    - ' ips'
    argTypes:
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 670
    functionName: libtorrent::socks5::on_name_lookup
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - begin
    - async_connect
    - seconds
    - error_code::clear
    - self
    - set_option
    - bind
    - ADD_OUTSTANDING_ASYNC
    - can_route
    - get_local_endpoint
    - rand_v6
    - end
    - WSAIoctl
    - expires_after
    - should_post
    - address
    - COMPLETE_ASYNC
    - libtorrent::socks5::retry_connection
    - async_wait
    - emplace_alert
    - WSAGetLastError
    - open
    - libtorrent::aux::is_v4
    - libtorrent::aux::tcp_keepalive_idle
    - generic_category
    - peer_connection::keep_alive
    - std::find_if
    - system_category
    - std::bind
    - rand_v4
    - error_code
    - native_handle
    - libtorrent::aux::tcp_keepalive_interval
    linkageType: ''
    returnType: void
    signature: void socks5::on_name_lookup(error_code const& e, std::vector<address>
      const& ips)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:674,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:680,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:681,1
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:684,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 688
    functionName: libtorrent::socks5::on_connect_timeout
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - libtorrent::socks5::close
    - should_post
    - libtorrent::socks5::retry_connection
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void socks5::on_connect_timeout(error_code const& e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:692,1
    - Dst: cancel
      Src: /src/libtorrent/src/udp_socket.cpp:694,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:703,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:704,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:706,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:713,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:714,1
    - Dst: username::empty
      Src: /src/libtorrent/src/udp_socket.cpp:715,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:718,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:719,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:723,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:724,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:725,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:727,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:727,1
    - Dst: size
      Src: /src/libtorrent/src/udp_socket.cpp:727,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:727,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:728,1
    - Dst: async_write
      Src: /src/libtorrent/src/udp_socket.cpp:729,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:729,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:729,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:730,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:730,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:731,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:731,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 732
    functionName: libtorrent::socks5::on_connected
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_write
    - emplace_alert
    - aux::numeric_cast<std::size_t>
    - TORRENT_ASSERT_VAL
    - COMPLETE_ASYNC
    - cancel
    - both_sides_from_store_buffer
    - should_post
    - self
    - username::empty
    - write_uint8
    - libtorrent::socks5::retry_connection
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::on_connected(error_code const& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:736,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:740,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:741,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:743,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:747,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:748,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:748,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:748,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:749,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 750
    functionName: libtorrent::socks5::handshake1
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::handshake1(error_code const& e)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:754,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:759,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:760,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:762,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:768,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:769,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:770,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:774,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:775,1
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:778,1
    - Dst: libtorrent::socks5::socks_forward_udp
      Src: /src/libtorrent/src/udp_socket.cpp:784,1
    - Dst: username::empty
      Src: /src/libtorrent/src/udp_socket.cpp:788,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:790,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:791,1
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:794,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:799,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:800,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:801,1
    - Dst: username::size
      Src: /src/libtorrent/src/udp_socket.cpp:801,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:802,1
    - Dst: username::size
      Src: /src/libtorrent/src/udp_socket.cpp:802,1
    - Dst: write_string
      Src: /src/libtorrent/src/udp_socket.cpp:803,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/udp_socket.cpp:804,1
    - Dst: password::size
      Src: /src/libtorrent/src/udp_socket.cpp:804,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:805,1
    - Dst: password::size
      Src: /src/libtorrent/src/udp_socket.cpp:805,1
    - Dst: write_string
      Src: /src/libtorrent/src/udp_socket.cpp:806,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:807,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:807,1
    - Dst: size
      Src: /src/libtorrent/src/udp_socket.cpp:807,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:807,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:808,1
    - Dst: async_write
      Src: /src/libtorrent/src/udp_socket.cpp:809,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:810,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:810,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:810,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:810,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:811,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:811,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:815,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:816,1
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:820,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 823
    functionName: libtorrent::socks5::handshake2
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - self
    - password::size
    - data
    - ADD_OUTSTANDING_ASYNC
    - aux::numeric_cast<std::size_t>
    - libtorrent::socks5::close
    - username::size
    - should_post
    - COMPLETE_ASYNC
    - libtorrent::socks5::retry_connection
    - emplace_alert
    - TORRENT_ASSERT_VAL
    - libtorrent::socks5::socks_forward_udp
    - TORRENT_ASSERT
    - write_string
    - username::empty
    - write_uint8
    - size
    - std::bind
    - async_write
    - both_sides_from_store_buffer
    - read_uint8
    linkageType: ''
    returnType: void
    signature: void socks5::handshake2(error_code const& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:827,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:831,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:832,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:834,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:838,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:839,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:839,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:839,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:840,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 841
    functionName: libtorrent::socks5::handshake3
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::handshake3(error_code const& e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:845,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:849,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:850,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:852,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:858,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:859,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:860,1
    - Dst: libtorrent::socks5::socks_forward_udp
      Src: /src/libtorrent/src/udp_socket.cpp:864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 843
    functionDepth: 3
    functionLinenumber: 843
    functionLinenumberEnd: 865
    functionName: libtorrent::socks5::handshake4
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - emplace_alert
    - COMPLETE_ASYNC
    - libtorrent::socks5::socks_forward_udp
    - should_post
    - read_uint8
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::handshake4(error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:872,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:873,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:874,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:875,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:879,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:880,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/udp_socket.cpp:880,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/udp_socket.cpp:881,1
    - Dst: write_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:885,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/udp_socket.cpp:886,1
    - Dst: write_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:887,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/udp_socket.cpp:890,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:890,1
    - Dst: size
      Src: /src/libtorrent/src/udp_socket.cpp:890,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:890,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:891,1
    - Dst: async_write
      Src: /src/libtorrent/src/udp_socket.cpp:892,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:893,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:893,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/udp_socket.cpp:893,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:893,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:894,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 895
    functionName: libtorrent::socks5::socks_forward_udp
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 4
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_write
    - write_uint16
    - get_local_endpoint
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::is_v4
    - write_endpoint
    - TORRENT_ASSERT_VAL
    - write_uint32
    - both_sides_from_store_buffer
    - self
    - write_uint8
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::socks_forward_udp()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:899,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:903,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:904,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:906,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:910,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:911,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:911,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:911,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:912,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: libtorrent::socks5::connect1
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::connect1(error_code const& e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:917,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:922,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:923,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:925,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:931,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:932,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:933,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:935,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:941,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:945,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:945,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:945,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:946,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:946,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:951,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:952,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:956,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:956,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:956,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:957,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:957,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/udp_socket.cpp:963,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 966
    functionName: libtorrent::socks5::connect2
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - COMPLETE_ASYNC
    - TORRENT_ASSERT_FAIL
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - read_uint8
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::connect2(error_code const& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:970,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:975,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:976,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:978,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:984,1
    - Dst: address
      Src: /src/libtorrent/src/udp_socket.cpp:985,1
    - Dst: address_v4
      Src: /src/libtorrent/src/udp_socket.cpp:985,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/udp_socket.cpp:985,1
    - Dst: port
      Src: /src/libtorrent/src/udp_socket.cpp:986,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:986,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:992,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:993,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:993,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:993,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:994,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:994,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 995
    functionName: libtorrent::socks5::read_bindaddr
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - address
    - address_v4
    - read_uint16
    - read_uint32
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - port
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::read_bindaddr(error_code const& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:999,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:1004,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:1005,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:1007,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:1013,1
    - Dst: read_uint8
      Src: /src/libtorrent/src/udp_socket.cpp:1014,1
    - Dst: address
      Src: /src/libtorrent/src/udp_socket.cpp:1016,1
    - Dst: address
      Src: /src/libtorrent/src/udp_socket.cpp:1016,1
    - Dst: port
      Src: /src/libtorrent/src/udp_socket.cpp:1017,1
    - Dst: read_uint16
      Src: /src/libtorrent/src/udp_socket.cpp:1017,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:1023,1
    - Dst: async_read
      Src: /src/libtorrent/src/udp_socket.cpp:1024,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/udp_socket.cpp:1024,1
    - Dst: data
      Src: /src/libtorrent/src/udp_socket.cpp:1024,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:1025,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:1025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1026
    functionName: libtorrent::socks5::read_domainname
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - emplace_alert
    - address
    - read_uint16
    - COMPLETE_ASYNC
    - async_read
    - both_sides_from_store_buffer
    - should_post
    - self
    - port
    - read_uint8
    - libtorrent::socks5::retry_connection
    - data
    linkageType: ''
    returnType: void
    signature: void socks5::read_domainname(error_code const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/udp_socket.cpp:1030,1
    - Dst: should_post
      Src: /src/libtorrent/src/udp_socket.cpp:1035,1
    - Dst: emplace_alert
      Src: /src/libtorrent/src/udp_socket.cpp:1036,1
    - Dst: libtorrent::socks5::retry_connection
      Src: /src/libtorrent/src/udp_socket.cpp:1038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1039
    functionName: libtorrent::socks5::hung_up
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::socks5::retry_connection
    - COMPLETE_ASYNC
    - emplace_alert
    - should_post
    linkageType: ''
    returnType: void
    signature: void socks5::hung_up(error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expires_after
      Src: /src/libtorrent/src/udp_socket.cpp:1046,1
    - Dst: seconds
      Src: /src/libtorrent/src/udp_socket.cpp:1046,1
    - Dst: std::min
      Src: /src/libtorrent/src/udp_socket.cpp:1046,1
    - Dst: async_wait
      Src: /src/libtorrent/src/udp_socket.cpp:1047,1
    - Dst: std::bind
      Src: /src/libtorrent/src/udp_socket.cpp:1047,1
    - Dst: self
      Src: /src/libtorrent/src/udp_socket.cpp:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1049
    functionName: libtorrent::socks5::retry_connection
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 24
    functionsReached:
    - std::bind
    - async_wait
    - seconds
    - expires_after
    - std::min
    - self
    linkageType: ''
    returnType: void
    signature: void socks5::retry_connection()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:1055,1
    - Dst: libtorrent::socks5::start
      Src: /src/libtorrent/src/udp_socket.cpp:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1057
    functionName: libtorrent::socks5::on_retry_socks_connect
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::socks5::close
    - libtorrent::socks5::start
    linkageType: ''
    returnType: void
    signature: void socks5::on_retry_socks_connect(error_code const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks5::close
      Src: /src/libtorrent/src/udp_socket.cpp:1063,1
    - Dst: cancel
      Src: /src/libtorrent/src/udp_socket.cpp:1064,1
    - Dst: cancel
      Src: /src/libtorrent/src/udp_socket.cpp:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: libtorrent::socks5::close
    functionSourceFile: /src/libtorrent/src/udp_socket.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::socks5::close
    - cancel
    linkageType: ''
    returnType: void
    signature: void socks5::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: DLOG
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DLOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: DLOG
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DLOG(...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:55,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:64,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_job_fence.cpp:73,1
    - Dst: pop_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:75,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_job_fence.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:90,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:93,1
    - Dst: push_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:100,1
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:109,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:124,1
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:124,1
    - Dst: pop_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:127,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:135,1
    - Dst: push_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - j
    - ' jobs'
    argTypes:
    - mmap_disk_job*
    - tailqueue<mmap_disk_job>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::disk_job_fence::job_complete
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - push_front
    - empty
    - TORRENT_ASSERT
    - pop_front
    - size
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::job_complete(mmap_disk_job* j, tailqueue<mmap_disk_job>&
      jobs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:146,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:154,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:160,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - j
    argTypes:
    - mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: libtorrent::aux::disk_job_fence::is_blocked
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - push_back
    - static_cast<void*>
    - DLOG
    linkageType: ''
    returnType: bool
    signature: bool disk_job_fence::is_blocked(mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: libtorrent::aux::disk_job_fence::has_fence
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool disk_job_fence::has_fence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: libtorrent::aux::disk_job_fence::num_blocked
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::num_blocked() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:186,1
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:191,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:192,1
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:197,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:211,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:214,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/disk_job_fence.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - j
    - ' cnt'
    argTypes:
    - mmap_disk_job*
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 218
    functionName: libtorrent::aux::disk_job_fence::raise_fence
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - DLOG
    - TORRENT_ASSERT
    - static_cast<void*>
    - inc_stats_counter
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::raise_fence(mmap_disk_job* j, counters& cnt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:55,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:64,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_job_fence.cpp:73,1
    - Dst: pop_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:75,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_job_fence.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:90,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:93,1
    - Dst: push_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:100,1
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:109,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:124,1
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:124,1
    - Dst: pop_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:127,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:135,1
    - Dst: push_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - j
    - ' jobs'
    argTypes:
    - mmap_disk_job*
    - tailqueue<mmap_disk_job>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::disk_job_fence::job_complete
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - push_front
    - empty
    - TORRENT_ASSERT
    - pop_front
    - size
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::job_complete(mmap_disk_job* j, tailqueue<mmap_disk_job>&
      jobs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:146,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:154,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:160,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - j
    argTypes:
    - mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: libtorrent::aux::disk_job_fence::is_blocked
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - push_back
    - static_cast<void*>
    - DLOG
    linkageType: ''
    returnType: bool
    signature: bool disk_job_fence::is_blocked(mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: libtorrent::aux::disk_job_fence::has_fence
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool disk_job_fence::has_fence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: libtorrent::aux::disk_job_fence::num_blocked
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::num_blocked() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:186,1
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:191,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:192,1
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:197,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:211,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:214,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/disk_job_fence.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - j
    - ' cnt'
    argTypes:
    - mmap_disk_job*
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 218
    functionName: libtorrent::aux::disk_job_fence::raise_fence
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - DLOG
    - TORRENT_ASSERT
    - static_cast<void*>
    - inc_stats_counter
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::raise_fence(mmap_disk_job* j, counters& cnt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:55,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:64,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_job_fence.cpp:73,1
    - Dst: pop_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:75,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_job_fence.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:90,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:93,1
    - Dst: push_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:100,1
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:109,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:124,1
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:124,1
    - Dst: pop_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:127,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:135,1
    - Dst: push_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - j
    - ' jobs'
    argTypes:
    - mmap_disk_job*
    - tailqueue<mmap_disk_job>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::disk_job_fence::job_complete
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - push_front
    - empty
    - TORRENT_ASSERT
    - pop_front
    - size
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::job_complete(mmap_disk_job* j, tailqueue<mmap_disk_job>&
      jobs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:146,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:154,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:160,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - j
    argTypes:
    - mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: libtorrent::aux::disk_job_fence::is_blocked
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - push_back
    - static_cast<void*>
    - DLOG
    linkageType: ''
    returnType: bool
    signature: bool disk_job_fence::is_blocked(mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: libtorrent::aux::disk_job_fence::has_fence
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool disk_job_fence::has_fence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: libtorrent::aux::disk_job_fence::num_blocked
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::num_blocked() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:186,1
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:191,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:192,1
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:197,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:211,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:214,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/disk_job_fence.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - j
    - ' cnt'
    argTypes:
    - mmap_disk_job*
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 218
    functionName: libtorrent::aux::disk_job_fence::raise_fence
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - DLOG
    - TORRENT_ASSERT
    - static_cast<void*>
    - inc_stats_counter
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::raise_fence(mmap_disk_job* j, counters& cnt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:55,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:64,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_job_fence.cpp:73,1
    - Dst: pop_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:75,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_job_fence.cpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:90,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:93,1
    - Dst: push_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:100,1
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:109,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:124,1
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:124,1
    - Dst: pop_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:127,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:135,1
    - Dst: push_front
      Src: /src/libtorrent/src/disk_job_fence.cpp:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - j
    - ' jobs'
    argTypes:
    - mmap_disk_job*
    - tailqueue<mmap_disk_job>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::disk_job_fence::job_complete
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - push_front
    - empty
    - TORRENT_ASSERT
    - pop_front
    - size
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::job_complete(mmap_disk_job* j, tailqueue<mmap_disk_job>&
      jobs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:146,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:147,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:154,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:160,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - j
    argTypes:
    - mmap_disk_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: libtorrent::aux::disk_job_fence::is_blocked
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - push_back
    - static_cast<void*>
    - DLOG
    linkageType: ''
    returnType: bool
    signature: bool disk_job_fence::is_blocked(mmap_disk_job* j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: libtorrent::aux::disk_job_fence::has_fence
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool disk_job_fence::has_fence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/disk_job_fence.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: libtorrent::aux::disk_job_fence::num_blocked
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::num_blocked() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:185,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:186,1
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:191,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:192,1
    - Dst: DLOG
      Src: /src/libtorrent/src/disk_job_fence.cpp:197,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/disk_job_fence.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_job_fence.cpp:211,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_job_fence.cpp:214,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/disk_job_fence.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - j
    - ' cnt'
    argTypes:
    - mmap_disk_job*
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 218
    functionName: libtorrent::aux::disk_job_fence::raise_fence
    functionSourceFile: /src/libtorrent/src/disk_job_fence.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - DLOG
    - TORRENT_ASSERT
    - static_cast<void*>
    - inc_stats_counter
    linkageType: ''
    returnType: int
    signature: int disk_job_fence::raise_fence(mmap_disk_job* j, counters& cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: libtorrent::min
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 min(u32 x, u32 y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: libtorrent::load32
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - u32
    linkageType: ''
    returnType: u32
    signature: u32 load32(const unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u64
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: libtorrent::store64
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store64(u64 x, unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: libtorrent::store32
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store32(u32 x, unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::Ch
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Ch(u32 x, u32 y, u32 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::Maj
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Maj(u32 x, u32 y, u32 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::Rot
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Rot(u32 x, u32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::Sh
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Sh(u32 x, u32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::Sigma0
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::Rot
    linkageType: ''
    returnType: u32
    signature: u32 Sigma0(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::Sigma1
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::Rot
    linkageType: ''
    returnType: u32
    signature: u32 Sigma1(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:62,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:62,1
    - Dst: libtorrent::Sh
      Src: /src/libtorrent/src/sha256.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::Gamma0
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::Rot
    - libtorrent::Sh
    linkageType: ''
    returnType: u32
    signature: u32 Gamma0(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:63,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:63,1
    - Dst: libtorrent::Sh
      Src: /src/libtorrent/src/sha256.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::Gamma1
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::Rot
    - libtorrent::Sh
    linkageType: ''
    returnType: u32
    signature: u32 Gamma1(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load32
      Src: /src/libtorrent/src/sha256.cpp:75,1
    - Dst: libtorrent::Gamma1
      Src: /src/libtorrent/src/sha256.cpp:79,1
    - Dst: libtorrent::Gamma0
      Src: /src/libtorrent/src/sha256.cpp:79,1
    - Dst: libtorrent::Sigma1
      Src: /src/libtorrent/src/sha256.cpp:84,1
    - Dst: libtorrent::Ch
      Src: /src/libtorrent/src/sha256.cpp:84,1
    - Dst: libtorrent::Sigma0
      Src: /src/libtorrent/src/sha256.cpp:85,1
    - Dst: libtorrent::Maj
      Src: /src/libtorrent/src/sha256.cpp:85,1
    - Dst: RND
      Src: /src/libtorrent/src/sha256.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ' md'
    - buf
    argTypes:
    - sha256_ctx
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 100
    functionName: libtorrent::sha_compress
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - RND
    - libtorrent::Sigma1
    - libtorrent::Ch
    - libtorrent::Gamma0
    - libtorrent::Gamma1
    - libtorrent::Sigma0
    - libtorrent::Maj
    - libtorrent::load32
    linkageType: ''
    returnType: void
    signature: void sha_compress(sha256_ctx& md, const unsigned char* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: libtorrent::min
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 min(u32 x, u32 y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: libtorrent::load32
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached:
    - u32
    linkageType: ''
    returnType: u32
    signature: u32 load32(const unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u64
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: libtorrent::store64
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store64(u64 x, unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: libtorrent::store32
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store32(u32 x, unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::Ch
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Ch(u32 x, u32 y, u32 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::Maj
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Maj(u32 x, u32 y, u32 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::Rot
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Rot(u32 x, u32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::Sh
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Sh(u32 x, u32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::Sigma0
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::Rot
    linkageType: ''
    returnType: u32
    signature: u32 Sigma0(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::Sigma1
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::Rot
    linkageType: ''
    returnType: u32
    signature: u32 Sigma1(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:62,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:62,1
    - Dst: libtorrent::Sh
      Src: /src/libtorrent/src/sha256.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::Gamma0
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::Rot
    - libtorrent::Sh
    linkageType: ''
    returnType: u32
    signature: u32 Gamma0(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:63,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:63,1
    - Dst: libtorrent::Sh
      Src: /src/libtorrent/src/sha256.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::Gamma1
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::Rot
    - libtorrent::Sh
    linkageType: ''
    returnType: u32
    signature: u32 Gamma1(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load32
      Src: /src/libtorrent/src/sha256.cpp:75,1
    - Dst: libtorrent::Gamma1
      Src: /src/libtorrent/src/sha256.cpp:79,1
    - Dst: libtorrent::Gamma0
      Src: /src/libtorrent/src/sha256.cpp:79,1
    - Dst: libtorrent::Sigma1
      Src: /src/libtorrent/src/sha256.cpp:84,1
    - Dst: libtorrent::Ch
      Src: /src/libtorrent/src/sha256.cpp:84,1
    - Dst: libtorrent::Sigma0
      Src: /src/libtorrent/src/sha256.cpp:85,1
    - Dst: libtorrent::Maj
      Src: /src/libtorrent/src/sha256.cpp:85,1
    - Dst: RND
      Src: /src/libtorrent/src/sha256.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ' md'
    - buf
    argTypes:
    - sha256_ctx
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 100
    functionName: libtorrent::sha_compress
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - RND
    - libtorrent::Sigma1
    - libtorrent::Ch
    - libtorrent::Gamma0
    - libtorrent::Gamma1
    - libtorrent::Sigma0
    - libtorrent::Maj
    - libtorrent::load32
    linkageType: ''
    returnType: void
    signature: void sha_compress(sha256_ctx& md, const unsigned char* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' md'
    argTypes:
    - sha256_ctx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: libtorrent::SHA256_init
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA256_init(sha256_ctx& md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:119,1
    - Dst: libtorrent::sha_compress
      Src: /src/libtorrent/src/sha256.cpp:125,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/sha256.cpp:132,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:132,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/sha256.cpp:133,1
    - Dst: libtorrent::sha_compress
      Src: /src/libtorrent/src/sha256.cpp:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' md'
    - in
    - len
    argTypes:
    - sha256_ctx
    - std::uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 146
    functionName: libtorrent::SHA256_update
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - libtorrent::sha_compress
    - libtorrent::min
    - u32
    linkageType: ''
    returnType: void
    signature: void SHA256_update(sha256_ctx& md, std::uint8_t const* in, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/sha256.cpp:154,1
    - Dst: libtorrent::sha_compress
      Src: /src/libtorrent/src/sha256.cpp:162,1
    - Dst: libtorrent::store64
      Src: /src/libtorrent/src/sha256.cpp:171,1
    - Dst: libtorrent::sha_compress
      Src: /src/libtorrent/src/sha256.cpp:172,1
    - Dst: libtorrent::store32
      Src: /src/libtorrent/src/sha256.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - digest
    - ' md'
    argTypes:
    - std::uint8_t*
    - sha256_ctx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: libtorrent::SHA256_final
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::store64
    - libtorrent::sha_compress
    - libtorrent::store32
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: void SHA256_final(std::uint8_t* digest, sha256_ctx& md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: libtorrent::min
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 min(u32 x, u32 y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: libtorrent::load32
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached:
    - u32
    linkageType: ''
    returnType: u32
    signature: u32 load32(const unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u64
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: libtorrent::store64
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store64(u64 x, unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: libtorrent::store32
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store32(u32 x, unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::Ch
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Ch(u32 x, u32 y, u32 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::Maj
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Maj(u32 x, u32 y, u32 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::Rot
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Rot(u32 x, u32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::Sh
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Sh(u32 x, u32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::Sigma0
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::Rot
    linkageType: ''
    returnType: u32
    signature: u32 Sigma0(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::Sigma1
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::Rot
    linkageType: ''
    returnType: u32
    signature: u32 Sigma1(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:62,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:62,1
    - Dst: libtorrent::Sh
      Src: /src/libtorrent/src/sha256.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::Gamma0
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::Rot
    - libtorrent::Sh
    linkageType: ''
    returnType: u32
    signature: u32 Gamma0(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:63,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:63,1
    - Dst: libtorrent::Sh
      Src: /src/libtorrent/src/sha256.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::Gamma1
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::Rot
    - libtorrent::Sh
    linkageType: ''
    returnType: u32
    signature: u32 Gamma1(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load32
      Src: /src/libtorrent/src/sha256.cpp:75,1
    - Dst: libtorrent::Gamma1
      Src: /src/libtorrent/src/sha256.cpp:79,1
    - Dst: libtorrent::Gamma0
      Src: /src/libtorrent/src/sha256.cpp:79,1
    - Dst: libtorrent::Sigma1
      Src: /src/libtorrent/src/sha256.cpp:84,1
    - Dst: libtorrent::Ch
      Src: /src/libtorrent/src/sha256.cpp:84,1
    - Dst: libtorrent::Sigma0
      Src: /src/libtorrent/src/sha256.cpp:85,1
    - Dst: libtorrent::Maj
      Src: /src/libtorrent/src/sha256.cpp:85,1
    - Dst: RND
      Src: /src/libtorrent/src/sha256.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ' md'
    - buf
    argTypes:
    - sha256_ctx
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 100
    functionName: libtorrent::sha_compress
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached:
    - RND
    - libtorrent::Sigma1
    - libtorrent::Ch
    - libtorrent::Gamma0
    - libtorrent::Gamma1
    - libtorrent::Sigma0
    - libtorrent::Maj
    - libtorrent::load32
    linkageType: ''
    returnType: void
    signature: void sha_compress(sha256_ctx& md, const unsigned char* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: libtorrent::min
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 min(u32 x, u32 y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: libtorrent::load32
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 3
    functionsReached:
    - u32
    linkageType: ''
    returnType: u32
    signature: u32 load32(const unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u64
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: libtorrent::store64
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store64(u64 x, unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: libtorrent::store32
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store32(u32 x, unsigned char* y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::Ch
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Ch(u32 x, u32 y, u32 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::Maj
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Maj(u32 x, u32 y, u32 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::Rot
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Rot(u32 x, u32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::Sh
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 Sh(u32 x, u32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::Sigma0
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::Rot
    linkageType: ''
    returnType: u32
    signature: u32 Sigma0(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::Sigma1
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::Rot
    linkageType: ''
    returnType: u32
    signature: u32 Sigma1(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:62,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:62,1
    - Dst: libtorrent::Sh
      Src: /src/libtorrent/src/sha256.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::Gamma0
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::Rot
    - libtorrent::Sh
    linkageType: ''
    returnType: u32
    signature: u32 Gamma0(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:63,1
    - Dst: libtorrent::Rot
      Src: /src/libtorrent/src/sha256.cpp:63,1
    - Dst: libtorrent::Sh
      Src: /src/libtorrent/src/sha256.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::Gamma1
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::Rot
    - libtorrent::Sh
    linkageType: ''
    returnType: u32
    signature: u32 Gamma1(u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load32
      Src: /src/libtorrent/src/sha256.cpp:75,1
    - Dst: libtorrent::Gamma1
      Src: /src/libtorrent/src/sha256.cpp:79,1
    - Dst: libtorrent::Gamma0
      Src: /src/libtorrent/src/sha256.cpp:79,1
    - Dst: libtorrent::Sigma1
      Src: /src/libtorrent/src/sha256.cpp:84,1
    - Dst: libtorrent::Ch
      Src: /src/libtorrent/src/sha256.cpp:84,1
    - Dst: libtorrent::Sigma0
      Src: /src/libtorrent/src/sha256.cpp:85,1
    - Dst: libtorrent::Maj
      Src: /src/libtorrent/src/sha256.cpp:85,1
    - Dst: RND
      Src: /src/libtorrent/src/sha256.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ' md'
    - buf
    argTypes:
    - sha256_ctx
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 100
    functionName: libtorrent::sha_compress
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 2
    functionsReached:
    - RND
    - libtorrent::Sigma1
    - libtorrent::Ch
    - libtorrent::Gamma0
    - libtorrent::Gamma1
    - libtorrent::Sigma0
    - libtorrent::Maj
    - libtorrent::load32
    linkageType: ''
    returnType: void
    signature: void sha_compress(sha256_ctx& md, const unsigned char* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' md'
    argTypes:
    - sha256_ctx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: libtorrent::SHA256_init
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA256_init(sha256_ctx& md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:119,1
    - Dst: libtorrent::sha_compress
      Src: /src/libtorrent/src/sha256.cpp:125,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/sha256.cpp:132,1
    - Dst: u32
      Src: /src/libtorrent/src/sha256.cpp:132,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/sha256.cpp:133,1
    - Dst: libtorrent::sha_compress
      Src: /src/libtorrent/src/sha256.cpp:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' md'
    - in
    - len
    argTypes:
    - sha256_ctx
    - std::uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 146
    functionName: libtorrent::SHA256_update
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - libtorrent::sha_compress
    - libtorrent::min
    - u32
    linkageType: ''
    returnType: void
    signature: void SHA256_update(sha256_ctx& md, std::uint8_t const* in, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint8_t
      Src: /src/libtorrent/src/sha256.cpp:154,1
    - Dst: libtorrent::sha_compress
      Src: /src/libtorrent/src/sha256.cpp:162,1
    - Dst: libtorrent::store64
      Src: /src/libtorrent/src/sha256.cpp:171,1
    - Dst: libtorrent::sha_compress
      Src: /src/libtorrent/src/sha256.cpp:172,1
    - Dst: libtorrent::store32
      Src: /src/libtorrent/src/sha256.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - digest
    - ' md'
    argTypes:
    - std::uint8_t*
    - sha256_ctx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: libtorrent::SHA256_final
    functionSourceFile: /src/libtorrent/src/sha256.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::store64
    - libtorrent::sha_compress
    - libtorrent::store32
    - std::uint8_t
    linkageType: ''
    returnType: void
    signature: void SHA256_final(std::uint8_t* digest, sha256_ctx& md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:44,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:44,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:45,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:46,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:47,1
    - Dst: front
      Src: /src/libtorrent/src/chained_buffer.cpp:49,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:59,1
    - Dst: destruct_holder
      Src: /src/libtorrent/src/chained_buffer.cpp:63,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/chained_buffer.cpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:68,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:69,1
    - Dst: libtorrent::aux::chained_buffer::pop_front
      Src: /src/libtorrent/src/chained_buffer.cpp:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - bytes_to_pop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::chained_buffer::pop_front
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 1
    functionsReached:
    - is_single_thread
    - empty
    - front
    - TORRENT_ASSERT
    - static_cast<void*>
    - destruct_holder
    - libtorrent::aux::chained_buffer::pop_front
    linkageType: ''
    returnType: void
    signature: void chained_buffer::pop_front(int bytes_to_pop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:78,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:79,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:80,1
    - Dst: back
      Src: /src/libtorrent/src/chained_buffer.cpp:81,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::chained_buffer::space_in_last_buffer
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - empty
    - back
    linkageType: ''
    returnType: int
    signature: int chained_buffer::space_in_last_buffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:91,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:92,1
    - Dst: libtorrent::aux::chained_buffer::allocate_appendix
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: std::copy
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::chained_buffer::append
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - is_single_thread
    - span<char const>::end
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - span<char const>::size
    - libtorrent::aux::chained_buffer::allocate_appendix
    linkageType: ''
    returnType: char
    signature: char * chained_buffer::append(span<char const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:104,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:105,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:106,1
    - Dst: back
      Src: /src/libtorrent/src/chained_buffer.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::chained_buffer::allocate_appendix
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - empty
    - back
    linkageType: ''
    returnType: char
    signature: char * chained_buffer::allocate_appendix(int const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:119,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:120,1
    - Dst: libtorrent::aux::chained_buffer::clear
      Src: /src/libtorrent/src/chained_buffer.cpp:121,1
    - Dst: libtorrent::aux::chained_buffer::build_vec
      Src: /src/libtorrent/src/chained_buffer.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - to_send
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::chained_buffer::build_iovec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::aux::chained_buffer::build_vec
    - libtorrent::aux::chained_buffer::clear
    linkageType: ''
    returnType: span<boost::asio::const_buffer const>
    signature: span<boost::asio::const_buffer const> chained_buffer::build_iovec(int
      const to_send)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:128,1
    - Dst: libtorrent::aux::chained_buffer::build_vec
      Src: /src/libtorrent/src/chained_buffer.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - vec
    argTypes:
    - int
    - std::vector<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::chained_buffer::build_mutable_iovec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::chained_buffer::build_vec
    linkageType: ''
    returnType: void
    signature: void chained_buffer::build_mutable_iovec(int bytes, std::vector<span<char>>
      &vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:135,1
    - Dst: begin
      Src: /src/libtorrent/src/chained_buffer.cpp:136,1
    - Dst: end
      Src: /src/libtorrent/src/chained_buffer.cpp:136,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:141,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/chained_buffer.cpp:142,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/chained_buffer.cpp:142,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:145,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/chained_buffer.cpp:146,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/chained_buffer.cpp:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - bytes
    - ' vec'
    argTypes:
    - int
    - std::vector<Buffer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::chained_buffer::build_vec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 2
    functionsReached:
    - begin
    - end
    - TORRENT_ASSERT
    - std::size_t
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void chained_buffer::build_vec(int bytes, std::vector<Buffer>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:153,1
    - Dst: destruct_holder
      Src: /src/libtorrent/src/chained_buffer.cpp:155,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/chained_buffer.cpp:155,1
    - Dst: libtorrent::aux::chained_buffer::clear
      Src: /src/libtorrent/src/chained_buffer.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::chained_buffer::clear
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<void*>
    - destruct_holder
    - libtorrent::aux::chained_buffer::clear
    linkageType: ''
    returnType: void
    signature: void chained_buffer::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:164,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:166,1
    - Dst: clear
      Src: /src/libtorrent/src/chained_buffer.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: chained_buffer::~chained_buffer()
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - clear
    linkageType: ''
    returnType: void
    signature: void chained_buffer::~chained_buffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:44,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:44,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:45,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:46,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:47,1
    - Dst: front
      Src: /src/libtorrent/src/chained_buffer.cpp:49,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:59,1
    - Dst: destruct_holder
      Src: /src/libtorrent/src/chained_buffer.cpp:63,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/chained_buffer.cpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:68,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:69,1
    - Dst: libtorrent::aux::chained_buffer::pop_front
      Src: /src/libtorrent/src/chained_buffer.cpp:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - bytes_to_pop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::chained_buffer::pop_front
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 2
    functionsReached:
    - is_single_thread
    - empty
    - front
    - TORRENT_ASSERT
    - static_cast<void*>
    - destruct_holder
    - libtorrent::aux::chained_buffer::pop_front
    linkageType: ''
    returnType: void
    signature: void chained_buffer::pop_front(int bytes_to_pop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:78,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:79,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:80,1
    - Dst: back
      Src: /src/libtorrent/src/chained_buffer.cpp:81,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::chained_buffer::space_in_last_buffer
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - empty
    - back
    linkageType: ''
    returnType: int
    signature: int chained_buffer::space_in_last_buffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:91,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:92,1
    - Dst: libtorrent::aux::chained_buffer::allocate_appendix
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: std::copy
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::chained_buffer::append
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - is_single_thread
    - span<char const>::end
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - span<char const>::size
    - libtorrent::aux::chained_buffer::allocate_appendix
    linkageType: ''
    returnType: char
    signature: char * chained_buffer::append(span<char const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:104,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:105,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:106,1
    - Dst: back
      Src: /src/libtorrent/src/chained_buffer.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::chained_buffer::allocate_appendix
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - empty
    - back
    linkageType: ''
    returnType: char
    signature: char * chained_buffer::allocate_appendix(int const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:119,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:120,1
    - Dst: libtorrent::aux::chained_buffer::clear
      Src: /src/libtorrent/src/chained_buffer.cpp:121,1
    - Dst: libtorrent::aux::chained_buffer::build_vec
      Src: /src/libtorrent/src/chained_buffer.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - to_send
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::chained_buffer::build_iovec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::aux::chained_buffer::build_vec
    - libtorrent::aux::chained_buffer::clear
    linkageType: ''
    returnType: span<boost::asio::const_buffer const>
    signature: span<boost::asio::const_buffer const> chained_buffer::build_iovec(int
      const to_send)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:128,1
    - Dst: libtorrent::aux::chained_buffer::build_vec
      Src: /src/libtorrent/src/chained_buffer.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - vec
    argTypes:
    - int
    - std::vector<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::chained_buffer::build_mutable_iovec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::chained_buffer::build_vec
    linkageType: ''
    returnType: void
    signature: void chained_buffer::build_mutable_iovec(int bytes, std::vector<span<char>>
      &vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:135,1
    - Dst: begin
      Src: /src/libtorrent/src/chained_buffer.cpp:136,1
    - Dst: end
      Src: /src/libtorrent/src/chained_buffer.cpp:136,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:141,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/chained_buffer.cpp:142,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/chained_buffer.cpp:142,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:145,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/chained_buffer.cpp:146,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/chained_buffer.cpp:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - bytes
    - ' vec'
    argTypes:
    - int
    - std::vector<Buffer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::chained_buffer::build_vec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 4
    functionsReached:
    - begin
    - end
    - TORRENT_ASSERT
    - std::size_t
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void chained_buffer::build_vec(int bytes, std::vector<Buffer>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:153,1
    - Dst: destruct_holder
      Src: /src/libtorrent/src/chained_buffer.cpp:155,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/chained_buffer.cpp:155,1
    - Dst: libtorrent::aux::chained_buffer::clear
      Src: /src/libtorrent/src/chained_buffer.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::chained_buffer::clear
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<void*>
    - destruct_holder
    - libtorrent::aux::chained_buffer::clear
    linkageType: ''
    returnType: void
    signature: void chained_buffer::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:164,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:166,1
    - Dst: clear
      Src: /src/libtorrent/src/chained_buffer.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: chained_buffer::~chained_buffer()
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - clear
    linkageType: ''
    returnType: void
    signature: void chained_buffer::~chained_buffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:44,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:44,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:45,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:46,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:47,1
    - Dst: front
      Src: /src/libtorrent/src/chained_buffer.cpp:49,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:59,1
    - Dst: destruct_holder
      Src: /src/libtorrent/src/chained_buffer.cpp:63,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/chained_buffer.cpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:68,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:69,1
    - Dst: libtorrent::aux::chained_buffer::pop_front
      Src: /src/libtorrent/src/chained_buffer.cpp:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - bytes_to_pop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::chained_buffer::pop_front
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 3
    functionsReached:
    - is_single_thread
    - empty
    - front
    - TORRENT_ASSERT
    - static_cast<void*>
    - destruct_holder
    - libtorrent::aux::chained_buffer::pop_front
    linkageType: ''
    returnType: void
    signature: void chained_buffer::pop_front(int bytes_to_pop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:78,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:79,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:80,1
    - Dst: back
      Src: /src/libtorrent/src/chained_buffer.cpp:81,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::chained_buffer::space_in_last_buffer
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - empty
    - back
    linkageType: ''
    returnType: int
    signature: int chained_buffer::space_in_last_buffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:91,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:92,1
    - Dst: libtorrent::aux::chained_buffer::allocate_appendix
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: std::copy
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::chained_buffer::append
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - is_single_thread
    - span<char const>::end
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - span<char const>::size
    - libtorrent::aux::chained_buffer::allocate_appendix
    linkageType: ''
    returnType: char
    signature: char * chained_buffer::append(span<char const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:104,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:105,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:106,1
    - Dst: back
      Src: /src/libtorrent/src/chained_buffer.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::chained_buffer::allocate_appendix
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - empty
    - back
    linkageType: ''
    returnType: char
    signature: char * chained_buffer::allocate_appendix(int const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:119,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:120,1
    - Dst: libtorrent::aux::chained_buffer::clear
      Src: /src/libtorrent/src/chained_buffer.cpp:121,1
    - Dst: libtorrent::aux::chained_buffer::build_vec
      Src: /src/libtorrent/src/chained_buffer.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - to_send
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::chained_buffer::build_iovec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::aux::chained_buffer::build_vec
    - libtorrent::aux::chained_buffer::clear
    linkageType: ''
    returnType: span<boost::asio::const_buffer const>
    signature: span<boost::asio::const_buffer const> chained_buffer::build_iovec(int
      const to_send)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:128,1
    - Dst: libtorrent::aux::chained_buffer::build_vec
      Src: /src/libtorrent/src/chained_buffer.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - vec
    argTypes:
    - int
    - std::vector<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::chained_buffer::build_mutable_iovec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::chained_buffer::build_vec
    linkageType: ''
    returnType: void
    signature: void chained_buffer::build_mutable_iovec(int bytes, std::vector<span<char>>
      &vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:135,1
    - Dst: begin
      Src: /src/libtorrent/src/chained_buffer.cpp:136,1
    - Dst: end
      Src: /src/libtorrent/src/chained_buffer.cpp:136,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:141,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/chained_buffer.cpp:142,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/chained_buffer.cpp:142,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:145,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/chained_buffer.cpp:146,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/chained_buffer.cpp:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - bytes
    - ' vec'
    argTypes:
    - int
    - std::vector<Buffer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::chained_buffer::build_vec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 6
    functionsReached:
    - begin
    - end
    - TORRENT_ASSERT
    - std::size_t
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void chained_buffer::build_vec(int bytes, std::vector<Buffer>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:153,1
    - Dst: destruct_holder
      Src: /src/libtorrent/src/chained_buffer.cpp:155,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/chained_buffer.cpp:155,1
    - Dst: libtorrent::aux::chained_buffer::clear
      Src: /src/libtorrent/src/chained_buffer.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::chained_buffer::clear
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<void*>
    - destruct_holder
    - libtorrent::aux::chained_buffer::clear
    linkageType: ''
    returnType: void
    signature: void chained_buffer::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:164,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:166,1
    - Dst: clear
      Src: /src/libtorrent/src/chained_buffer.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: chained_buffer::~chained_buffer()
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - clear
    linkageType: ''
    returnType: void
    signature: void chained_buffer::~chained_buffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:44,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:44,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:45,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:46,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:47,1
    - Dst: front
      Src: /src/libtorrent/src/chained_buffer.cpp:49,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:59,1
    - Dst: destruct_holder
      Src: /src/libtorrent/src/chained_buffer.cpp:63,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/chained_buffer.cpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:68,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:69,1
    - Dst: libtorrent::aux::chained_buffer::pop_front
      Src: /src/libtorrent/src/chained_buffer.cpp:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - bytes_to_pop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::chained_buffer::pop_front
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 4
    functionsReached:
    - is_single_thread
    - empty
    - front
    - TORRENT_ASSERT
    - static_cast<void*>
    - destruct_holder
    - libtorrent::aux::chained_buffer::pop_front
    linkageType: ''
    returnType: void
    signature: void chained_buffer::pop_front(int bytes_to_pop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:78,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:79,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:80,1
    - Dst: back
      Src: /src/libtorrent/src/chained_buffer.cpp:81,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::chained_buffer::space_in_last_buffer
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - empty
    - back
    linkageType: ''
    returnType: int
    signature: int chained_buffer::space_in_last_buffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:91,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:91,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:92,1
    - Dst: libtorrent::aux::chained_buffer::allocate_appendix
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/chained_buffer.cpp:93,1
    - Dst: std::copy
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/chained_buffer.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::chained_buffer::append
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - is_single_thread
    - span<char const>::end
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - span<char const>::size
    - libtorrent::aux::chained_buffer::allocate_appendix
    linkageType: ''
    returnType: char
    signature: char * chained_buffer::append(span<char const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:104,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:104,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:105,1
    - Dst: empty
      Src: /src/libtorrent/src/chained_buffer.cpp:106,1
    - Dst: back
      Src: /src/libtorrent/src/chained_buffer.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: libtorrent::aux::chained_buffer::allocate_appendix
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - empty
    - back
    linkageType: ''
    returnType: char
    signature: char * chained_buffer::allocate_appendix(int const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:119,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:120,1
    - Dst: libtorrent::aux::chained_buffer::clear
      Src: /src/libtorrent/src/chained_buffer.cpp:121,1
    - Dst: libtorrent::aux::chained_buffer::build_vec
      Src: /src/libtorrent/src/chained_buffer.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - to_send
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::chained_buffer::build_iovec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::aux::chained_buffer::build_vec
    - libtorrent::aux::chained_buffer::clear
    linkageType: ''
    returnType: span<boost::asio::const_buffer const>
    signature: span<boost::asio::const_buffer const> chained_buffer::build_iovec(int
      const to_send)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:128,1
    - Dst: libtorrent::aux::chained_buffer::build_vec
      Src: /src/libtorrent/src/chained_buffer.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - vec
    argTypes:
    - int
    - std::vector<span<char>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::chained_buffer::build_mutable_iovec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::chained_buffer::build_vec
    linkageType: ''
    returnType: void
    signature: void chained_buffer::build_mutable_iovec(int bytes, std::vector<span<char>>
      &vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:135,1
    - Dst: begin
      Src: /src/libtorrent/src/chained_buffer.cpp:136,1
    - Dst: end
      Src: /src/libtorrent/src/chained_buffer.cpp:136,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:141,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/chained_buffer.cpp:142,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/chained_buffer.cpp:142,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:145,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/chained_buffer.cpp:146,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/chained_buffer.cpp:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - bytes
    - ' vec'
    argTypes:
    - int
    - std::vector<Buffer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::chained_buffer::build_vec
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 8
    functionsReached:
    - begin
    - end
    - TORRENT_ASSERT
    - std::size_t
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void chained_buffer::build_vec(int bytes, std::vector<Buffer>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:153,1
    - Dst: destruct_holder
      Src: /src/libtorrent/src/chained_buffer.cpp:155,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/chained_buffer.cpp:155,1
    - Dst: libtorrent::aux::chained_buffer::clear
      Src: /src/libtorrent/src/chained_buffer.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::chained_buffer::clear
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<void*>
    - destruct_holder
    - libtorrent::aux::chained_buffer::clear
    linkageType: ''
    returnType: void
    signature: void chained_buffer::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:164,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/chained_buffer.cpp:164,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/chained_buffer.cpp:166,1
    - Dst: clear
      Src: /src/libtorrent/src/chained_buffer.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: chained_buffer::~chained_buffer()
    functionSourceFile: /src/libtorrent/src/chained_buffer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - clear
    linkageType: ''
    returnType: void
    signature: void chained_buffer::~chained_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/http_connection.cpp:90,1
    - Dst: std::move
      Src: /src/libtorrent/src/http_connection.cpp:91,1
    - Dst: std::move
      Src: /src/libtorrent/src/http_connection.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/src/http_connection.cpp:93,1
    - Dst: seconds
      Src: /src/libtorrent/src/http_connection.cpp:95,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/http_connection.cpp:97,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/http_connection.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - ' ios'
    - ' resolver'
    - handler
    - bottled
    - max_bottled_buffer_size
    - ch
    - fh
    - hfh
    - ssl_ctx
    argTypes:
    - io_context
    - aux::resolver_interface
    - http_handler
    - bool
    - int
    - http_connect_handler
    - http_filter_handler
    - hostname_filter_handler
    - ssl::context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 109
    functionName: libtorrent::http_connection::http_connection
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - seconds
    - std::move
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void http_connection::http_connection(io_context& ios\n\t, aux::resolver_interface&
      resolver\n\t, http_handler handler\n\t, bool bottled\n\t, int max_bottled_buffer_size\n\t,
      http_connect_handler ch\n\t, http_filter_handler fh\n\t, hostname_filter_handler
      hfh\n#if TORRENT_USE_SSL\n\t, ssl::context* ssl_ctx\n#endif\n\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: http_connection::~http_connection()
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_connection::~http_connection()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/http_connection.cpp:132,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/http_connection.cpp:133,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/http_connection.cpp:135,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:148,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:148,1
    - Dst: m_hostname_filter_handler
      Src: /src/libtorrent/src/http_connection.cpp:153,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:156,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:156,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:168,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:168,1
    - Dst: base64encode
      Src: /src/libtorrent/src/http_connection.cpp:187,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:206,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/http_connection.cpp:212,1
    - Dst: base64encode
      Src: /src/libtorrent/src/http_connection.cpp:213,1
    - Dst: assign
      Src: /src/libtorrent/src/http_connection.cpp:217,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/src/http_connection.cpp:217,1
    - Dst: libtorrent::http_connection::start
      Src: /src/libtorrent/src/http_connection.cpp:219,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 9
    argNames:
    - ' url'
    - timeout
    - ps
    - handle_redirects
    - ' user_agent'
    - ' bind_addr'
    - resolve_flags
    - ' auth_'
    - i2p_conn
    argTypes:
    - std::string
    - time_duration
    - aux::proxy_settings*
    - int
    - std::string
    - boost::optional<bind_info_t>
    - aux::resolver_flags
    - std::string
    - i2p_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 225
    functionName: libtorrent::http_connection::get
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - parse_url_components
    - std::bind
    - std::tie
    - post
    - m_hostname_filter_handler
    - empty
    - std::string::empty
    - libtorrent::http_connection::start
    - base64encode
    - assign
    linkageType: ''
    returnType: void
    signature: "void http_connection::get(std::string const& url, time_duration timeout\n\t,
      aux::proxy_settings const* ps, int handle_redirects, std::string const& user_agent\n\t,
      boost::optional<bind_info_t> const& bind_addr\n\t, aux::resolver_flags const
      resolve_flags, std::string const& auth_\n#if TORRENT_USE_I2P\n\t, i2p_connection*
      i2p_conn\n#endif\n\t)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: expires_after
      Src: /src/libtorrent/src/http_connection.cpp:246,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:247,1
    - Dst: async_wait
      Src: /src/libtorrent/src/http_connection.cpp:248,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:248,1
    - Dst: std::weak_ptr<http_connection>
      Src: /src/libtorrent/src/http_connection.cpp:249,1
    - Dst: reset
      Src: /src/libtorrent/src/http_connection.cpp:251,1
    - Dst: clear
      Src: /src/libtorrent/src/http_connection.cpp:252,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:256,1
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:259,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:262,1
    - Dst: async_write
      Src: /src/libtorrent/src/http_connection.cpp:263,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:263,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:264,1
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:271,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:271,1
    - Dst: strrchr
      Src: /src/libtorrent/src/http_connection.cpp:277,1
    - Dst: c_str
      Src: /src/libtorrent/src/http_connection.cpp:277,1
    - Dst: i2p_connection*::proxy
      Src: /src/libtorrent/src/http_connection.cpp:290,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:292,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:292,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:293,1
    - Dst: i2p_connection*::proxy
      Src: /src/libtorrent/src/http_connection.cpp:298,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:318,1
    - Dst: emplace
      Src: /src/libtorrent/src/http_connection.cpp:325,1
    - Dst: instantiate_connection
      Src: /src/libtorrent/src/http_connection.cpp:325,1
    - Dst: open
      Src: /src/libtorrent/src/http_connection.cpp:331,1
    - Dst: ip::is_v4
      Src: /src/libtorrent/src/http_connection.cpp:331,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/http_connection.cpp:331,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/http_connection.cpp:331,1
    - Dst: bind_device
      Src: /src/libtorrent/src/http_connection.cpp:334,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/http_connection.cpp:334,1
    - Dst: bind
      Src: /src/libtorrent/src/http_connection.cpp:336,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/http_connection.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:339,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:339,1
    - Dst: setup_ssl_hostname
      Src: /src/libtorrent/src/http_connection.cpp:346,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:349,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:349,1
    - Dst: clear
      Src: /src/libtorrent/src/http_connection.cpp:354,1
    - Dst: length
      Src: /src/libtorrent/src/http_connection.cpp:360,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:362,1
    - Dst: i2p_connection*::async_name_lookup
      Src: /src/libtorrent/src/http_connection.cpp:363,1
    - Dst: c_str
      Src: /src/libtorrent/src/http_connection.cpp:363,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:363,1
    - Dst: libtorrent::http_connection::connect_i2p_tracker
      Src: /src/libtorrent/src/http_connection.cpp:367,1
    - Dst: c_str
      Src: /src/libtorrent/src/http_connection.cpp:367,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/http_connection.cpp:376,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/http_connection.cpp:377,1
    - Dst: address
      Src: /src/libtorrent/src/http_connection.cpp:377,1
    - Dst: libtorrent::http_connection::connect
      Src: /src/libtorrent/src/http_connection.cpp:378,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:383,1
    - Dst: async_resolve
      Src: /src/libtorrent/src/http_connection.cpp:384,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:385,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/http_connection.cpp:389,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 9
    argNames:
    - ' hostname'
    - port
    - timeout
    - ps
    - ssl
    - handle_redirects
    - ' bind_addr'
    - resolve_flags
    - i2p_conn
    argTypes:
    - std::string
    - int
    - time_duration
    - aux::proxy_settings*
    - bool
    - int
    - boost::optional<bind_info_t>
    - aux::resolver_flags
    - i2p_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 391
    functionName: libtorrent::http_connection::start
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 1
    functionsReached:
    - async_resolve
    - length
    - bind_device
    - emplace_back
    - libtorrent::http_connection::connect_i2p_tracker
    - bind
    - ADD_OUTSTANDING_ASYNC
    - setup_ssl_hostname
    - reset
    - is_open
    - i2p_connection*::async_name_lookup
    - rand_v6
    - std::uint16_t
    - emplace
    - expires_after
    - libtorrent::http_connection::close
    - std::weak_ptr<http_connection>
    - i2p_connection*::proxy
    - clear
    - libtorrent::http_connection::connect
    - address
    - async_wait
    - open
    - ip::is_v4
    - TORRENT_ASSERT
    - device::c_str
    - std::bind
    - async_write
    - rand_v4
    - c_str
    - strrchr
    - post
    - error_code
    - both_sides_from_store_buffer
    - local_endpoint
    - instantiate_connection
    linkageType: ''
    returnType: void
    signature: "void http_connection::start(std::string const& hostname, int port\n\t,
      time_duration timeout, aux::proxy_settings const* ps, bool ssl\n\t, int handle_redirects\n\t,
      boost::optional<bind_info_t> const& bind_addr\n\t, aux::resolver_flags const
      resolve_flags\n#if TORRENT_USE_I2P\n\t, i2p_connection* i2p_conn\n#endif\n\t)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:396,1
    - Dst: std::weak_ptr<http_connection>::lock
      Src: /src/libtorrent/src/http_connection.cpp:397,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:404,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:411,1
    - Dst: std::shared_ptr::m_timer::expires_at
      Src: /src/libtorrent/src/http_connection.cpp:412,1
    - Dst: std::shared_ptr::m_timer::async_wait
      Src: /src/libtorrent/src/http_connection.cpp:413,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:413,1
    - Dst: std::shared_ptr::m_endpoints::size
      Src: /src/libtorrent/src/http_connection.cpp:422,1
    - Dst: std::shared_ptr::m_sock::close
      Src: /src/libtorrent/src/http_connection.cpp:425,1
    - Dst: std::shared_ptr::connect
      Src: /src/libtorrent/src/http_connection.cpp:426,1
    - Dst: std::shared_ptr::m_sock::close
      Src: /src/libtorrent/src/http_connection.cpp:435,1
    - Dst: std::shared_ptr::callback
      Src: /src/libtorrent/src/http_connection.cpp:436,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:441,1
    - Dst: std::shared_ptr::m_timer::expires_at
      Src: /src/libtorrent/src/http_connection.cpp:442,1
    - Dst: std::shared_ptr::m_timer::async_wait
      Src: /src/libtorrent/src/http_connection.cpp:443,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - p
    - ' e'
    argTypes:
    - std::weak_ptr<http_connection>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 444
    functionName: libtorrent::http_connection::on_timeout
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - std::shared_ptr::m_endpoints::size
    - std::shared_ptr::m_sock::close
    - std::shared_ptr::connect
    - std::weak_ptr<http_connection>::lock
    - std::shared_ptr::callback
    - COMPLETE_ASYNC
    - std::shared_ptr::m_timer::expires_at
    - std::shared_ptr::m_timer::async_wait
    linkageType: ''
    returnType: void
    signature: "void http_connection::on_timeout(std::weak_ptr<http_connection> p\n\t,
      error_code const& e)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:455,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:456,1
    - Dst: async_shutdown
      Src: /src/libtorrent/src/http_connection.cpp:460,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:460,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:464,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:466,1
    - Dst: clear
      Src: /src/libtorrent/src/http_connection.cpp:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 472
    functionName: libtorrent::http_connection::close
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 2
    functionsReached:
    - shared_from_this
    - cancel
    - libtorrent::http_connection::close
    - clear
    - async_shutdown
    linkageType: ''
    returnType: void
    signature: void http_connection::close(bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:477,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/http_connection.cpp:477,1
    - Dst: get_ptr
      Src: /src/libtorrent/src/http_connection.cpp:477,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:479,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/http_connection.cpp:481,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/http_connection.cpp:482,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/http_connection.cpp:483,1
    - Dst: session_id
      Src: /src/libtorrent/src/http_connection.cpp:483,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:484,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:485,1
    - Dst: async_connect
      Src: /src/libtorrent/src/http_connection.cpp:487,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/http_connection.cpp:487,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:487,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - destination
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 489
    functionName: libtorrent::http_connection::connect_i2p_tracker
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - shared_from_this
    - get_ptr
    - async_connect
    - session_id
    - boost::get<i2p_stream>
    - TORRENT_ASSERT
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void http_connection::connect_i2p_tracker(char const* destination)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:493,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:496,1
    - Dst: libtorrent::http_connection::connect_i2p_tracker
      Src: /src/libtorrent/src/http_connection.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' e'
    - destination
    argTypes:
    - error_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: libtorrent::http_connection::on_i2p_resolve
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - COMPLETE_ASYNC
    - libtorrent::http_connection::callback
    - libtorrent::http_connection::connect_i2p_tracker
    linkageType: ''
    returnType: void
    signature: void http_connection::on_i2p_resolve(error_code const& e, char const*
      destination)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:506,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:516,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:516,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:519,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/http_connection.cpp:522,1
    - Dst: m_filter_handler
      Src: /src/libtorrent/src/http_connection.cpp:524,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:525,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:527,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/http_connection.cpp:531,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/http_connection.cpp:537,1
    - Dst: begin
      Src: /src/libtorrent/src/http_connection.cpp:537,1
    - Dst: end
      Src: /src/libtorrent/src/http_connection.cpp:537,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/http_connection.cpp:538,1
    - Dst: ip::is_v4
      Src: /src/libtorrent/src/http_connection.cpp:538,1
    - Dst: erase
      Src: /src/libtorrent/src/http_connection.cpp:540,1
    - Dst: end
      Src: /src/libtorrent/src/http_connection.cpp:540,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:541,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:543,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:543,1
    - Dst: generic_category
      Src: /src/libtorrent/src/http_connection.cpp:543,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:544,1
    - Dst: libtorrent::http_connection::connect
      Src: /src/libtorrent/src/http_connection.cpp:549,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ' e'
    - ' addresses'
    argTypes:
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 550
    functionName: libtorrent::http_connection::on_resolve
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - begin
    - libtorrent::aux::is_v4
    - error_code
    - erase
    - empty
    - end
    - std::remove_if
    - libtorrent::http_connection::close
    - TORRENT_ASSERT
    - m_filter_handler
    - ip::is_v4
    - generic_category
    - libtorrent::http_connection::callback
    - emplace_back
    - libtorrent::aux::random_shuffle
    - libtorrent::http_connection::connect
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: "void http_connection::on_resolve(error_code const& e\n\t, std::vector<address>
      const& addresses)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:554,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:554,1
    - Dst: make_address
      Src: /src/libtorrent/src/http_connection.cpp:566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:575,1
    - Dst: boost::get<ssl_stream<socks5_stream>>
      Src: /src/libtorrent/src/http_connection.cpp:575,1
    - Dst: get_ptr
      Src: /src/libtorrent/src/http_connection.cpp:575,1
    - Dst: boost::get<ssl_stream<socks5_stream>>
      Src: /src/libtorrent/src/http_connection.cpp:576,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:581,1
    - Dst: boost::get<socks5_stream>
      Src: /src/libtorrent/src/http_connection.cpp:581,1
    - Dst: get_ptr
      Src: /src/libtorrent/src/http_connection.cpp:581,1
    - Dst: boost::get<socks5_stream>
      Src: /src/libtorrent/src/http_connection.cpp:582,1
    - Dst: address
      Src: /src/libtorrent/src/http_connection.cpp:587,1
    - Dst: boost::get<http_stream>
      Src: /src/libtorrent/src/http_connection.cpp:593,1
    - Dst: auto*::set_host
      Src: /src/libtorrent/src/http_connection.cpp:595,1
    - Dst: boost::get<ssl_stream<http_stream>>
      Src: /src/libtorrent/src/http_connection.cpp:598,1
    - Dst: next_layer
      Src: /src/libtorrent/src/http_connection.cpp:600,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:605,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:605,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:606,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:611,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:612,1
    - Dst: async_connect
      Src: /src/libtorrent/src/http_connection.cpp:614,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 616
    functionName: libtorrent::http_connection::connect
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 2
    functionsReached:
    - auto*::set_host
    - ADD_OUTSTANDING_ASYNC
    - boost::get<http_stream>
    - std::bind
    - get_ptr
    - boost::get<ssl_stream<http_stream>>
    - async_connect
    - next_layer
    - TORRENT_ASSERT
    - boost::get<ssl_stream<socks5_stream>>
    - boost::get<socks5_stream>
    - make_address
    - address
    - size
    linkageType: ''
    returnType: void
    signature: void http_connection::connect()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<ssl_stream<http_stream>>
      Src: /src/libtorrent/src/http_connection.cpp:598,1
    - Dst: next_layer
      Src: /src/libtorrent/src/http_connection.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: libtorrent::if
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - boost::get<ssl_stream<http_stream>>
    - next_layer
    linkageType: ''
    returnType: else
    signature: else if (auto* inner2 = boost::get<ssl_stream<http_stream>>(&*m_sock))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:620,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:621,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:624,1
    - Dst: m_connect_handler
      Src: /src/libtorrent/src/http_connection.cpp:628,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:629,1
    - Dst: async_write
      Src: /src/libtorrent/src/http_connection.cpp:630,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:630,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:631,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:631,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:633,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:637,1
    - Dst: libtorrent::http_connection::connect
      Src: /src/libtorrent/src/http_connection.cpp:638,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:643,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 646
    functionName: libtorrent::http_connection::on_connect
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - async_write
    - shared_from_this
    - libtorrent::http_connection::close
    - TORRENT_ASSERT
    - m_connect_handler
    - both_sides_from_store_buffer
    - libtorrent::http_connection::callback
    - libtorrent::http_connection::connect
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void http_connection::on_connect(error_code const& e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: span<char>::empty
      Src: /src/libtorrent/src/http_connection.cpp:653,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:653,1
    - Dst: collapse_chunk_headers
      Src: /src/libtorrent/src/http_connection.cpp:655,1
    - Dst: header
      Src: /src/libtorrent/src/http_connection.cpp:657,1
    - Dst: inflate_gzip
      Src: /src/libtorrent/src/http_connection.cpp:661,1
    - Dst: m_handler
      Src: /src/libtorrent/src/http_connection.cpp:665,1
    - Dst: finished
      Src: /src/libtorrent/src/http_connection.cpp:674,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/http_connection.cpp:674,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:677,1
    - Dst: m_handler
      Src: /src/libtorrent/src/http_connection.cpp:678,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - e
    - data
    argTypes:
    - error_code
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 679
    functionName: libtorrent::http_connection::callback
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 3
    functionsReached:
    - m_handler
    - cancel
    - finished
    - header_finished
    - collapse_chunk_headers
    - error_code::clear
    - header
    - inflate_gzip
    - span<char>::empty
    linkageType: ''
    returnType: void
    signature: void http_connection::callback(error_code e, span<char> data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:683,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:689,1
    - Dst: std::string
      Src: /src/libtorrent/src/http_connection.cpp:695,1
    - Dst: resize
      Src: /src/libtorrent/src/http_connection.cpp:696,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:698,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:706,1
    - Dst: libtorrent::http_connection::on_assign_bandwidth
      Src: /src/libtorrent/src/http_connection.cpp:707,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:707,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:712,1
    - Dst: async_read_some
      Src: /src/libtorrent/src/http_connection.cpp:713,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:713,1
    - Dst: data
      Src: /src/libtorrent/src/http_connection.cpp:713,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_connection.cpp:714,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:715,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:716,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 717
    functionName: libtorrent::http_connection::on_write
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - shared_from_this
    - error_code
    - std::string
    - async_read_some
    - resize
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::http_connection::callback
    - libtorrent::http_connection::on_assign_bandwidth
    - COMPLETE_ASYNC
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void http_connection::on_write(error_code const& e)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:727,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:743,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:745,1
    - Dst: span<char>
      Src: /src/libtorrent/src/http_connection.cpp:747,1
    - Dst: data
      Src: /src/libtorrent/src/http_connection.cpp:747,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_connection.cpp:747,1
    - Dst: get_body
      Src: /src/libtorrent/src/http_connection.cpp:748,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:756,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:757,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:762,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:762,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:764,1
    - Dst: incoming
      Src: /src/libtorrent/src/http_connection.cpp:768,1
    - Dst: span::first
      Src: /src/libtorrent/src/http_connection.cpp:768,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:773,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:778,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_connection.cpp:780,1
    - Dst: is_redirect
      Src: /src/libtorrent/src/http_connection.cpp:782,1
    - Dst: header
      Src: /src/libtorrent/src/http_connection.cpp:785,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:786,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:789,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:789,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:798,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/src/http_connection.cpp:800,1
    - Dst: libtorrent::http_connection::get
      Src: /src/libtorrent/src/http_connection.cpp:801,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:813,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_connection.cpp:815,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:817,1
    - Dst: span<char>
      Src: /src/libtorrent/src/http_connection.cpp:817,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_connection.cpp:819,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:822,1
    - Dst: finished
      Src: /src/libtorrent/src/http_connection.cpp:824,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:826,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:827,1
    - Dst: span<char>
      Src: /src/libtorrent/src/http_connection.cpp:827,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_connection.cpp:829,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:834,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:835,1
    - Dst: span<char>
      Src: /src/libtorrent/src/http_connection.cpp:835,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:837,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:841,1
    - Dst: resize
      Src: /src/libtorrent/src/http_connection.cpp:842,1
    - Dst: std::min
      Src: /src/libtorrent/src/http_connection.cpp:842,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:848,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:848,1
    - Dst: generic_category
      Src: /src/libtorrent/src/http_connection.cpp:848,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:851,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:859,1
    - Dst: libtorrent::http_connection::on_assign_bandwidth
      Src: /src/libtorrent/src/http_connection.cpp:860,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:860,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:865,1
    - Dst: async_read_some
      Src: /src/libtorrent/src/http_connection.cpp:866,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:866,1
    - Dst: data
      Src: /src/libtorrent/src/http_connection.cpp:866,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_connection.cpp:867,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:868,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 2
    argNames:
    - ' e'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 870
    functionName: libtorrent::http_connection::on_read
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - body_start
    - empty
    - cancel
    - std::min
    - header_finished
    - async_read_some
    - data
    - ADD_OUTSTANDING_ASYNC
    - span<char>
    - span::first
    - libtorrent::http_connection::close
    - header
    - std::size_t
    - libtorrent::http_connection::callback
    - libtorrent::http_connection::on_assign_bandwidth
    - resolve_redirect_location
    - get_body
    - COMPLETE_ASYNC
    - time_now
    - finished
    - TORRENT_ASSERT
    - generic_category
    - is_redirect
    - size
    - std::bind
    - error_code
    - incoming
    - status_code
    - resize
    - both_sides_from_store_buffer
    - libtorrent::http_connection::get
    linkageType: ''
    returnType: void
    signature: "void http_connection::on_read(error_code const& e\n\t, std::size_t
      bytes_transferred)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:874,1
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:877,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:879,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:891,1
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:895,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:897,1
    - Dst: async_read_some
      Src: /src/libtorrent/src/http_connection.cpp:898,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:898,1
    - Dst: data
      Src: /src/libtorrent/src/http_connection.cpp:898,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_connection.cpp:899,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:900,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:901,1
    - Dst: expires_after
      Src: /src/libtorrent/src/http_connection.cpp:904,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/http_connection.cpp:904,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:905,1
    - Dst: async_wait
      Src: /src/libtorrent/src/http_connection.cpp:906,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:906,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:907,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 908
    functionName: libtorrent::http_connection::on_assign_bandwidth
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - shared_from_this
    - is_open
    - async_wait
    - expires_after
    - async_read_some
    - both_sides_from_store_buffer
    - std::size_t
    - milliseconds
    - libtorrent::http_connection::callback
    - COMPLETE_ASYNC
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void http_connection::on_assign_bandwidth(error_code const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:912,1
    - Dst: expires_after
      Src: /src/libtorrent/src/http_connection.cpp:917,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/http_connection.cpp:917,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:918,1
    - Dst: async_wait
      Src: /src/libtorrent/src/http_connection.cpp:919,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:919,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 923
    functionName: libtorrent::http_connection::rate_limit
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - shared_from_this
    - is_open
    - async_wait
    - expires_after
    - milliseconds
    linkageType: ''
    returnType: void
    signature: void http_connection::rate_limit(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/http_connection.cpp:90,1
    - Dst: std::move
      Src: /src/libtorrent/src/http_connection.cpp:91,1
    - Dst: std::move
      Src: /src/libtorrent/src/http_connection.cpp:92,1
    - Dst: std::move
      Src: /src/libtorrent/src/http_connection.cpp:93,1
    - Dst: seconds
      Src: /src/libtorrent/src/http_connection.cpp:95,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/http_connection.cpp:97,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/http_connection.cpp:98,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - ' ios'
    - ' resolver'
    - handler
    - bottled
    - max_bottled_buffer_size
    - ch
    - fh
    - hfh
    - ssl_ctx
    argTypes:
    - io_context
    - aux::resolver_interface
    - http_handler
    - bool
    - int
    - http_connect_handler
    - http_filter_handler
    - hostname_filter_handler
    - ssl::context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 109
    functionName: libtorrent::http_connection::http_connection
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - seconds
    - std::move
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void http_connection::http_connection(io_context& ios\n\t, aux::resolver_interface&
      resolver\n\t, http_handler handler\n\t, bool bottled\n\t, int max_bottled_buffer_size\n\t,
      http_connect_handler ch\n\t, http_filter_handler fh\n\t, hostname_filter_handler
      hfh\n#if TORRENT_USE_SSL\n\t, ssl::context* ssl_ctx\n#endif\n\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: http_connection::~http_connection()
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_connection::~http_connection()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/http_connection.cpp:132,1
    - Dst: parse_url_components
      Src: /src/libtorrent/src/http_connection.cpp:133,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/http_connection.cpp:135,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:148,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:148,1
    - Dst: m_hostname_filter_handler
      Src: /src/libtorrent/src/http_connection.cpp:153,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:156,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:156,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:168,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:168,1
    - Dst: base64encode
      Src: /src/libtorrent/src/http_connection.cpp:187,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:206,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/http_connection.cpp:212,1
    - Dst: base64encode
      Src: /src/libtorrent/src/http_connection.cpp:213,1
    - Dst: assign
      Src: /src/libtorrent/src/http_connection.cpp:217,1
    - Dst: std::stringstream::str
      Src: /src/libtorrent/src/http_connection.cpp:217,1
    - Dst: libtorrent::http_connection::start
      Src: /src/libtorrent/src/http_connection.cpp:219,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 9
    argNames:
    - ' url'
    - timeout
    - ps
    - handle_redirects
    - ' user_agent'
    - ' bind_addr'
    - resolve_flags
    - ' auth_'
    - i2p_conn
    argTypes:
    - std::string
    - time_duration
    - aux::proxy_settings*
    - int
    - std::string
    - boost::optional<bind_info_t>
    - aux::resolver_flags
    - std::string
    - i2p_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 225
    functionName: libtorrent::http_connection::get
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 1
    functionsReached:
    - std::stringstream::str
    - parse_url_components
    - std::bind
    - std::tie
    - post
    - m_hostname_filter_handler
    - empty
    - std::string::empty
    - libtorrent::http_connection::start
    - base64encode
    - assign
    linkageType: ''
    returnType: void
    signature: "void http_connection::get(std::string const& url, time_duration timeout\n\t,
      aux::proxy_settings const* ps, int handle_redirects, std::string const& user_agent\n\t,
      boost::optional<bind_info_t> const& bind_addr\n\t, aux::resolver_flags const
      resolve_flags, std::string const& auth_\n#if TORRENT_USE_I2P\n\t, i2p_connection*
      i2p_conn\n#endif\n\t)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: expires_after
      Src: /src/libtorrent/src/http_connection.cpp:246,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:247,1
    - Dst: async_wait
      Src: /src/libtorrent/src/http_connection.cpp:248,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:248,1
    - Dst: std::weak_ptr<http_connection>
      Src: /src/libtorrent/src/http_connection.cpp:249,1
    - Dst: reset
      Src: /src/libtorrent/src/http_connection.cpp:251,1
    - Dst: clear
      Src: /src/libtorrent/src/http_connection.cpp:252,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:256,1
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:259,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:262,1
    - Dst: async_write
      Src: /src/libtorrent/src/http_connection.cpp:263,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:263,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:264,1
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:271,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:271,1
    - Dst: strrchr
      Src: /src/libtorrent/src/http_connection.cpp:277,1
    - Dst: c_str
      Src: /src/libtorrent/src/http_connection.cpp:277,1
    - Dst: i2p_connection*::proxy
      Src: /src/libtorrent/src/http_connection.cpp:290,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:292,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:292,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:293,1
    - Dst: i2p_connection*::proxy
      Src: /src/libtorrent/src/http_connection.cpp:298,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:318,1
    - Dst: emplace
      Src: /src/libtorrent/src/http_connection.cpp:325,1
    - Dst: instantiate_connection
      Src: /src/libtorrent/src/http_connection.cpp:325,1
    - Dst: open
      Src: /src/libtorrent/src/http_connection.cpp:331,1
    - Dst: ip::is_v4
      Src: /src/libtorrent/src/http_connection.cpp:331,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/http_connection.cpp:331,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/http_connection.cpp:331,1
    - Dst: bind_device
      Src: /src/libtorrent/src/http_connection.cpp:334,1
    - Dst: device::c_str
      Src: /src/libtorrent/src/http_connection.cpp:334,1
    - Dst: bind
      Src: /src/libtorrent/src/http_connection.cpp:336,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/http_connection.cpp:336,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:339,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:339,1
    - Dst: setup_ssl_hostname
      Src: /src/libtorrent/src/http_connection.cpp:346,1
    - Dst: post
      Src: /src/libtorrent/src/http_connection.cpp:349,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:349,1
    - Dst: clear
      Src: /src/libtorrent/src/http_connection.cpp:354,1
    - Dst: length
      Src: /src/libtorrent/src/http_connection.cpp:360,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:362,1
    - Dst: i2p_connection*::async_name_lookup
      Src: /src/libtorrent/src/http_connection.cpp:363,1
    - Dst: c_str
      Src: /src/libtorrent/src/http_connection.cpp:363,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:363,1
    - Dst: libtorrent::http_connection::connect_i2p_tracker
      Src: /src/libtorrent/src/http_connection.cpp:367,1
    - Dst: c_str
      Src: /src/libtorrent/src/http_connection.cpp:367,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/http_connection.cpp:376,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/http_connection.cpp:377,1
    - Dst: address
      Src: /src/libtorrent/src/http_connection.cpp:377,1
    - Dst: libtorrent::http_connection::connect
      Src: /src/libtorrent/src/http_connection.cpp:378,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:383,1
    - Dst: async_resolve
      Src: /src/libtorrent/src/http_connection.cpp:384,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:385,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/http_connection.cpp:389,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 9
    argNames:
    - ' hostname'
    - port
    - timeout
    - ps
    - ssl
    - handle_redirects
    - ' bind_addr'
    - resolve_flags
    - i2p_conn
    argTypes:
    - std::string
    - int
    - time_duration
    - aux::proxy_settings*
    - bool
    - int
    - boost::optional<bind_info_t>
    - aux::resolver_flags
    - i2p_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 391
    functionName: libtorrent::http_connection::start
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 2
    functionsReached:
    - async_resolve
    - length
    - bind_device
    - emplace_back
    - libtorrent::http_connection::connect_i2p_tracker
    - bind
    - ADD_OUTSTANDING_ASYNC
    - setup_ssl_hostname
    - reset
    - is_open
    - i2p_connection*::async_name_lookup
    - rand_v6
    - std::uint16_t
    - emplace
    - expires_after
    - libtorrent::http_connection::close
    - std::weak_ptr<http_connection>
    - i2p_connection*::proxy
    - clear
    - libtorrent::http_connection::connect
    - address
    - async_wait
    - open
    - ip::is_v4
    - TORRENT_ASSERT
    - device::c_str
    - std::bind
    - async_write
    - rand_v4
    - c_str
    - strrchr
    - post
    - error_code
    - both_sides_from_store_buffer
    - local_endpoint
    - instantiate_connection
    linkageType: ''
    returnType: void
    signature: "void http_connection::start(std::string const& hostname, int port\n\t,
      time_duration timeout, aux::proxy_settings const* ps, bool ssl\n\t, int handle_redirects\n\t,
      boost::optional<bind_info_t> const& bind_addr\n\t, aux::resolver_flags const
      resolve_flags\n#if TORRENT_USE_I2P\n\t, i2p_connection* i2p_conn\n#endif\n\t)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:396,1
    - Dst: std::weak_ptr<http_connection>::lock
      Src: /src/libtorrent/src/http_connection.cpp:397,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:404,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:411,1
    - Dst: std::shared_ptr::m_timer::expires_at
      Src: /src/libtorrent/src/http_connection.cpp:412,1
    - Dst: std::shared_ptr::m_timer::async_wait
      Src: /src/libtorrent/src/http_connection.cpp:413,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:413,1
    - Dst: std::shared_ptr::m_endpoints::size
      Src: /src/libtorrent/src/http_connection.cpp:422,1
    - Dst: std::shared_ptr::m_sock::close
      Src: /src/libtorrent/src/http_connection.cpp:425,1
    - Dst: std::shared_ptr::connect
      Src: /src/libtorrent/src/http_connection.cpp:426,1
    - Dst: std::shared_ptr::m_sock::close
      Src: /src/libtorrent/src/http_connection.cpp:435,1
    - Dst: std::shared_ptr::callback
      Src: /src/libtorrent/src/http_connection.cpp:436,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:441,1
    - Dst: std::shared_ptr::m_timer::expires_at
      Src: /src/libtorrent/src/http_connection.cpp:442,1
    - Dst: std::shared_ptr::m_timer::async_wait
      Src: /src/libtorrent/src/http_connection.cpp:443,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - p
    - ' e'
    argTypes:
    - std::weak_ptr<http_connection>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 444
    functionName: libtorrent::http_connection::on_timeout
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - std::shared_ptr::m_endpoints::size
    - std::shared_ptr::m_sock::close
    - std::shared_ptr::connect
    - std::weak_ptr<http_connection>::lock
    - std::shared_ptr::callback
    - COMPLETE_ASYNC
    - std::shared_ptr::m_timer::expires_at
    - std::shared_ptr::m_timer::async_wait
    linkageType: ''
    returnType: void
    signature: "void http_connection::on_timeout(std::weak_ptr<http_connection> p\n\t,
      error_code const& e)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:455,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:456,1
    - Dst: async_shutdown
      Src: /src/libtorrent/src/http_connection.cpp:460,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:460,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:464,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:466,1
    - Dst: clear
      Src: /src/libtorrent/src/http_connection.cpp:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 472
    functionName: libtorrent::http_connection::close
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 7
    functionsReached:
    - shared_from_this
    - cancel
    - libtorrent::http_connection::close
    - clear
    - async_shutdown
    linkageType: ''
    returnType: void
    signature: void http_connection::close(bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:477,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/http_connection.cpp:477,1
    - Dst: get_ptr
      Src: /src/libtorrent/src/http_connection.cpp:477,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:479,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/http_connection.cpp:481,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/http_connection.cpp:482,1
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/http_connection.cpp:483,1
    - Dst: session_id
      Src: /src/libtorrent/src/http_connection.cpp:483,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:484,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:485,1
    - Dst: async_connect
      Src: /src/libtorrent/src/http_connection.cpp:487,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/http_connection.cpp:487,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:487,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - destination
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 489
    functionName: libtorrent::http_connection::connect_i2p_tracker
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 3
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - shared_from_this
    - get_ptr
    - async_connect
    - session_id
    - boost::get<i2p_stream>
    - TORRENT_ASSERT
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void http_connection::connect_i2p_tracker(char const* destination)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:493,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:496,1
    - Dst: libtorrent::http_connection::connect_i2p_tracker
      Src: /src/libtorrent/src/http_connection.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' e'
    - destination
    argTypes:
    - error_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: libtorrent::http_connection::on_i2p_resolve
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - COMPLETE_ASYNC
    - libtorrent::http_connection::callback
    - libtorrent::http_connection::connect_i2p_tracker
    linkageType: ''
    returnType: void
    signature: void http_connection::on_i2p_resolve(error_code const& e, char const*
      destination)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:506,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:516,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:516,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:519,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/http_connection.cpp:522,1
    - Dst: m_filter_handler
      Src: /src/libtorrent/src/http_connection.cpp:524,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:525,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:527,1
    - Dst: libtorrent::aux::random_shuffle
      Src: /src/libtorrent/src/http_connection.cpp:531,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/http_connection.cpp:537,1
    - Dst: begin
      Src: /src/libtorrent/src/http_connection.cpp:537,1
    - Dst: end
      Src: /src/libtorrent/src/http_connection.cpp:537,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/http_connection.cpp:538,1
    - Dst: ip::is_v4
      Src: /src/libtorrent/src/http_connection.cpp:538,1
    - Dst: erase
      Src: /src/libtorrent/src/http_connection.cpp:540,1
    - Dst: end
      Src: /src/libtorrent/src/http_connection.cpp:540,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:541,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:543,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:543,1
    - Dst: generic_category
      Src: /src/libtorrent/src/http_connection.cpp:543,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:544,1
    - Dst: libtorrent::http_connection::connect
      Src: /src/libtorrent/src/http_connection.cpp:549,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ' e'
    - ' addresses'
    argTypes:
    - error_code
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 550
    functionName: libtorrent::http_connection::on_resolve
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - begin
    - libtorrent::aux::is_v4
    - error_code
    - erase
    - empty
    - end
    - std::remove_if
    - libtorrent::http_connection::close
    - TORRENT_ASSERT
    - m_filter_handler
    - ip::is_v4
    - generic_category
    - libtorrent::http_connection::callback
    - emplace_back
    - libtorrent::aux::random_shuffle
    - libtorrent::http_connection::connect
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: "void http_connection::on_resolve(error_code const& e\n\t, std::vector<address>
      const& addresses)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:554,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:554,1
    - Dst: make_address
      Src: /src/libtorrent/src/http_connection.cpp:566,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:575,1
    - Dst: boost::get<ssl_stream<socks5_stream>>
      Src: /src/libtorrent/src/http_connection.cpp:575,1
    - Dst: get_ptr
      Src: /src/libtorrent/src/http_connection.cpp:575,1
    - Dst: boost::get<ssl_stream<socks5_stream>>
      Src: /src/libtorrent/src/http_connection.cpp:576,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:581,1
    - Dst: boost::get<socks5_stream>
      Src: /src/libtorrent/src/http_connection.cpp:581,1
    - Dst: get_ptr
      Src: /src/libtorrent/src/http_connection.cpp:581,1
    - Dst: boost::get<socks5_stream>
      Src: /src/libtorrent/src/http_connection.cpp:582,1
    - Dst: address
      Src: /src/libtorrent/src/http_connection.cpp:587,1
    - Dst: boost::get<http_stream>
      Src: /src/libtorrent/src/http_connection.cpp:593,1
    - Dst: auto*::set_host
      Src: /src/libtorrent/src/http_connection.cpp:595,1
    - Dst: boost::get<ssl_stream<http_stream>>
      Src: /src/libtorrent/src/http_connection.cpp:598,1
    - Dst: next_layer
      Src: /src/libtorrent/src/http_connection.cpp:600,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:605,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:605,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:606,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:611,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:612,1
    - Dst: async_connect
      Src: /src/libtorrent/src/http_connection.cpp:614,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 616
    functionName: libtorrent::http_connection::connect
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 5
    functionsReached:
    - auto*::set_host
    - ADD_OUTSTANDING_ASYNC
    - boost::get<http_stream>
    - std::bind
    - get_ptr
    - boost::get<ssl_stream<http_stream>>
    - async_connect
    - next_layer
    - TORRENT_ASSERT
    - boost::get<ssl_stream<socks5_stream>>
    - boost::get<socks5_stream>
    - make_address
    - address
    - size
    linkageType: ''
    returnType: void
    signature: void http_connection::connect()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<ssl_stream<http_stream>>
      Src: /src/libtorrent/src/http_connection.cpp:598,1
    - Dst: next_layer
      Src: /src/libtorrent/src/http_connection.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: libtorrent::if
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - boost::get<ssl_stream<http_stream>>
    - next_layer
    linkageType: ''
    returnType: else
    signature: else if (auto* inner2 = boost::get<ssl_stream<http_stream>>(&*m_sock))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:620,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:621,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:624,1
    - Dst: m_connect_handler
      Src: /src/libtorrent/src/http_connection.cpp:628,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:629,1
    - Dst: async_write
      Src: /src/libtorrent/src/http_connection.cpp:630,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:630,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:631,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:631,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:633,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:637,1
    - Dst: libtorrent::http_connection::connect
      Src: /src/libtorrent/src/http_connection.cpp:638,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:643,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 646
    functionName: libtorrent::http_connection::on_connect
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - time_now
    - std::bind
    - async_write
    - shared_from_this
    - libtorrent::http_connection::close
    - TORRENT_ASSERT
    - m_connect_handler
    - both_sides_from_store_buffer
    - libtorrent::http_connection::callback
    - libtorrent::http_connection::connect
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void http_connection::on_connect(error_code const& e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: span<char>::empty
      Src: /src/libtorrent/src/http_connection.cpp:653,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:653,1
    - Dst: collapse_chunk_headers
      Src: /src/libtorrent/src/http_connection.cpp:655,1
    - Dst: header
      Src: /src/libtorrent/src/http_connection.cpp:657,1
    - Dst: inflate_gzip
      Src: /src/libtorrent/src/http_connection.cpp:661,1
    - Dst: m_handler
      Src: /src/libtorrent/src/http_connection.cpp:665,1
    - Dst: finished
      Src: /src/libtorrent/src/http_connection.cpp:674,1
    - Dst: error_code::clear
      Src: /src/libtorrent/src/http_connection.cpp:674,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:677,1
    - Dst: m_handler
      Src: /src/libtorrent/src/http_connection.cpp:678,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - e
    - data
    argTypes:
    - error_code
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 679
    functionName: libtorrent::http_connection::callback
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 9
    functionsReached:
    - m_handler
    - cancel
    - finished
    - header_finished
    - collapse_chunk_headers
    - error_code::clear
    - header
    - inflate_gzip
    - span<char>::empty
    linkageType: ''
    returnType: void
    signature: void http_connection::callback(error_code e, span<char> data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:683,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:689,1
    - Dst: std::string
      Src: /src/libtorrent/src/http_connection.cpp:695,1
    - Dst: resize
      Src: /src/libtorrent/src/http_connection.cpp:696,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:698,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:706,1
    - Dst: libtorrent::http_connection::on_assign_bandwidth
      Src: /src/libtorrent/src/http_connection.cpp:707,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:707,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:712,1
    - Dst: async_read_some
      Src: /src/libtorrent/src/http_connection.cpp:713,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:713,1
    - Dst: data
      Src: /src/libtorrent/src/http_connection.cpp:713,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_connection.cpp:714,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:715,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:716,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 717
    functionName: libtorrent::http_connection::on_write
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - shared_from_this
    - error_code
    - std::string
    - async_read_some
    - resize
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::http_connection::callback
    - libtorrent::http_connection::on_assign_bandwidth
    - COMPLETE_ASYNC
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void http_connection::on_write(error_code const& e)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:722,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:727,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:743,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:745,1
    - Dst: span<char>
      Src: /src/libtorrent/src/http_connection.cpp:747,1
    - Dst: data
      Src: /src/libtorrent/src/http_connection.cpp:747,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_connection.cpp:747,1
    - Dst: get_body
      Src: /src/libtorrent/src/http_connection.cpp:748,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:756,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:757,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:762,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:762,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:764,1
    - Dst: incoming
      Src: /src/libtorrent/src/http_connection.cpp:768,1
    - Dst: span::first
      Src: /src/libtorrent/src/http_connection.cpp:768,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:773,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:778,1
    - Dst: status_code
      Src: /src/libtorrent/src/http_connection.cpp:780,1
    - Dst: is_redirect
      Src: /src/libtorrent/src/http_connection.cpp:782,1
    - Dst: header
      Src: /src/libtorrent/src/http_connection.cpp:785,1
    - Dst: empty
      Src: /src/libtorrent/src/http_connection.cpp:786,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:789,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:789,1
    - Dst: libtorrent::http_connection::close
      Src: /src/libtorrent/src/http_connection.cpp:798,1
    - Dst: resolve_redirect_location
      Src: /src/libtorrent/src/http_connection.cpp:800,1
    - Dst: libtorrent::http_connection::get
      Src: /src/libtorrent/src/http_connection.cpp:801,1
    - Dst: header_finished
      Src: /src/libtorrent/src/http_connection.cpp:813,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_connection.cpp:815,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:817,1
    - Dst: span<char>
      Src: /src/libtorrent/src/http_connection.cpp:817,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_connection.cpp:819,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:822,1
    - Dst: finished
      Src: /src/libtorrent/src/http_connection.cpp:824,1
    - Dst: cancel
      Src: /src/libtorrent/src/http_connection.cpp:826,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:827,1
    - Dst: span<char>
      Src: /src/libtorrent/src/http_connection.cpp:827,1
    - Dst: body_start
      Src: /src/libtorrent/src/http_connection.cpp:829,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/http_connection.cpp:834,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:835,1
    - Dst: span<char>
      Src: /src/libtorrent/src/http_connection.cpp:835,1
    - Dst: time_now
      Src: /src/libtorrent/src/http_connection.cpp:837,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:841,1
    - Dst: resize
      Src: /src/libtorrent/src/http_connection.cpp:842,1
    - Dst: std::min
      Src: /src/libtorrent/src/http_connection.cpp:842,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:848,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:848,1
    - Dst: generic_category
      Src: /src/libtorrent/src/http_connection.cpp:848,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:851,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:859,1
    - Dst: libtorrent::http_connection::on_assign_bandwidth
      Src: /src/libtorrent/src/http_connection.cpp:860,1
    - Dst: error_code
      Src: /src/libtorrent/src/http_connection.cpp:860,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:865,1
    - Dst: async_read_some
      Src: /src/libtorrent/src/http_connection.cpp:866,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:866,1
    - Dst: data
      Src: /src/libtorrent/src/http_connection.cpp:866,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_connection.cpp:867,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:868,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 2
    argNames:
    - ' e'
    - bytes_transferred
    argTypes:
    - error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 870
    functionName: libtorrent::http_connection::on_read
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - body_start
    - empty
    - cancel
    - std::min
    - header_finished
    - async_read_some
    - data
    - ADD_OUTSTANDING_ASYNC
    - span<char>
    - span::first
    - libtorrent::http_connection::close
    - header
    - std::size_t
    - libtorrent::http_connection::callback
    - libtorrent::http_connection::on_assign_bandwidth
    - resolve_redirect_location
    - get_body
    - COMPLETE_ASYNC
    - time_now
    - finished
    - TORRENT_ASSERT
    - generic_category
    - is_redirect
    - size
    - std::bind
    - error_code
    - incoming
    - status_code
    - resize
    - both_sides_from_store_buffer
    - libtorrent::http_connection::get
    linkageType: ''
    returnType: void
    signature: "void http_connection::on_read(error_code const& e\n\t, std::size_t
      bytes_transferred)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:874,1
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:877,1
    - Dst: libtorrent::http_connection::callback
      Src: /src/libtorrent/src/http_connection.cpp:879,1
    - Dst: size
      Src: /src/libtorrent/src/http_connection.cpp:891,1
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:895,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:897,1
    - Dst: async_read_some
      Src: /src/libtorrent/src/http_connection.cpp:898,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/src/http_connection.cpp:898,1
    - Dst: data
      Src: /src/libtorrent/src/http_connection.cpp:898,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/http_connection.cpp:899,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:900,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:901,1
    - Dst: expires_after
      Src: /src/libtorrent/src/http_connection.cpp:904,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/http_connection.cpp:904,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:905,1
    - Dst: async_wait
      Src: /src/libtorrent/src/http_connection.cpp:906,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:906,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:907,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 908
    functionName: libtorrent::http_connection::on_assign_bandwidth
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 4
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - shared_from_this
    - is_open
    - async_wait
    - expires_after
    - async_read_some
    - both_sides_from_store_buffer
    - std::size_t
    - milliseconds
    - libtorrent::http_connection::callback
    - COMPLETE_ASYNC
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void http_connection::on_assign_bandwidth(error_code const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/libtorrent/src/http_connection.cpp:912,1
    - Dst: expires_after
      Src: /src/libtorrent/src/http_connection.cpp:917,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/http_connection.cpp:917,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/http_connection.cpp:918,1
    - Dst: async_wait
      Src: /src/libtorrent/src/http_connection.cpp:919,1
    - Dst: std::bind
      Src: /src/libtorrent/src/http_connection.cpp:919,1
    - Dst: shared_from_this
      Src: /src/libtorrent/src/http_connection.cpp:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 923
    functionName: libtorrent::http_connection::rate_limit
    functionSourceFile: /src/libtorrent/src/http_connection.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - shared_from_this
    - is_open
    - async_wait
    - expires_after
    - milliseconds
    linkageType: ''
    returnType: void
    signature: void http_connection::rate_limit(int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/performance_counters.cpp:56,1
    - Dst: store
      Src: /src/libtorrent/src/performance_counters.cpp:57,1
    - Dst: load
      Src: /src/libtorrent/src/performance_counters.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: libtorrent::counters::counters
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - store
    - end_index
    - load
    linkageType: ''
    returnType: void
    signature: void counters::counters(counters const& c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/performance_counters.cpp:70,1
    - Dst: store
      Src: /src/libtorrent/src/performance_counters.cpp:71,1
    - Dst: load
      Src: /src/libtorrent/src/performance_counters.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: '& counters::operator=(counters const& c) &'
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - store
    - end_index
    - load
    linkageType: ''
    returnType: counters
    signature: counters & counters::operator=(counters const& c) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:84,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:85,1
    - Dst: load
      Src: /src/libtorrent/src/performance_counters.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: counters::operator[](int i) const
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - load
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t counters::operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:104,1
    - Dst: fetch_add
      Src: /src/libtorrent/src/performance_counters.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - value
    argTypes:
    - int
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 115
    functionName: libtorrent::counters::inc_stats_counter
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - fetch_add
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t counters::inc_stats_counter(int const c, std::int64_t
      const value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:123,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:124,1
    - Dst: load
      Src: /src/libtorrent/src/performance_counters.cpp:127,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/performance_counters.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - c
    - value
    - ratio
    argTypes:
    - int
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 140
    functionName: libtorrent::counters::blend_stats_counter
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - compare_exchange_weak
    - load
    linkageType: ''
    returnType: void
    signature: void counters::blend_stats_counter(int const c, std::int64_t const
      value, int const ratio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:144,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:145,1
    - Dst: store
      Src: /src/libtorrent/src/performance_counters.cpp:148,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - value
    argTypes:
    - int
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: libtorrent::counters::set_value
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - store
    linkageType: ''
    returnType: void
    signature: void counters::set_value(int const c, std::int64_t const value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/performance_counters.cpp:56,1
    - Dst: store
      Src: /src/libtorrent/src/performance_counters.cpp:57,1
    - Dst: load
      Src: /src/libtorrent/src/performance_counters.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: libtorrent::counters::counters
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - store
    - end_index
    - load
    linkageType: ''
    returnType: void
    signature: void counters::counters(counters const& c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/performance_counters.cpp:70,1
    - Dst: store
      Src: /src/libtorrent/src/performance_counters.cpp:71,1
    - Dst: load
      Src: /src/libtorrent/src/performance_counters.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: '& counters::operator=(counters const& c) &'
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - store
    - end_index
    - load
    linkageType: ''
    returnType: counters
    signature: counters & counters::operator=(counters const& c) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:84,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:85,1
    - Dst: load
      Src: /src/libtorrent/src/performance_counters.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: counters::operator[](int i) const
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - load
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t counters::operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:103,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:104,1
    - Dst: fetch_add
      Src: /src/libtorrent/src/performance_counters.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - value
    argTypes:
    - int
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 115
    functionName: libtorrent::counters::inc_stats_counter
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - fetch_add
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t counters::inc_stats_counter(int const c, std::int64_t
      const value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:123,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:124,1
    - Dst: load
      Src: /src/libtorrent/src/performance_counters.cpp:127,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/performance_counters.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - c
    - value
    - ratio
    argTypes:
    - int
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 140
    functionName: libtorrent::counters::blend_stats_counter
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - compare_exchange_weak
    - load
    linkageType: ''
    returnType: void
    signature: void counters::blend_stats_counter(int const c, std::int64_t const
      value, int const ratio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:144,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:145,1
    - Dst: store
      Src: /src/libtorrent/src/performance_counters.cpp:148,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/performance_counters.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - value
    argTypes:
    - int
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: libtorrent::counters::set_value
    functionSourceFile: /src/libtorrent/src/performance_counters.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - store
    linkageType: ''
    returnType: void
    signature: void counters::set_value(int const c, std::int64_t const value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:56,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:58,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/parse_url.cpp:58,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:60,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:60,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:60,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:61,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:63,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:69,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:75,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:83,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:83,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:84,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:84,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/parse_url.cpp:85,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:86,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:86,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:87,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:87,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:88,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:88,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:91,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:92,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:96,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:102,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:104,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:104,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:105,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:111,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:112,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:112,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:116,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:116,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:117,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:118,1
    - Dst: libtorrent::is_digit
      Src: /src/libtorrent/src/parse_url.cpp:126,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/parse_url.cpp:130,1
    - Dst: std::string
      Src: /src/libtorrent/src/parse_url.cpp:130,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:135,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/parse_url.cpp:136,1
    - Dst: std::string::front
      Src: /src/libtorrent/src/parse_url.cpp:137,1
    - Dst: std::string::front
      Src: /src/libtorrent/src/parse_url.cpp:138,1
    - Dst: std::string::insert
      Src: /src/libtorrent/src/parse_url.cpp:140,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:140,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/parse_url.cpp:143,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:143,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:144,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:145,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 2
    argNames:
    - url
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 148
    functionName: libtorrent::parse_url_components
    functionSourceFile: /src/libtorrent/src/parse_url.cpp
    functionUses: 6
    functionsReached:
    - std::make_tuple
    - libtorrent::min
    - std::string::front
    - libtorrent::find
    - std::string
    - std::string::empty
    - std::string::begin
    - std::string::end
    - libtorrent::is_digit
    - std::string::assign
    - std::string::insert
    - std::atoi
    - libtorrent::is_space
    - libtorrent::move
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string, int, std::string>
    signature: std::tuple<std::string, std::string, std::string, int, std::string>
      parse_url_components(std::string url, error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:158,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:158,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:158,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:160,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:160,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/parse_url.cpp:164,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:164,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:164,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:168,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:168,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:169,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/parse_url.cpp:171,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:171,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:171,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:174,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:174,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:175,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:175,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/parse_url.cpp:176,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:176,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - url
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 177
    functionName: libtorrent::split_url
    functionSourceFile: /src/libtorrent/src/parse_url.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find
    - std::string::begin
    - std::string::end
    - std::string::assign
    - std::make_tuple
    - libtorrent::move
    linkageType: ''
    returnType: std::tuple<std::string, std::string>
    signature: std::tuple<std::string, std::string> split_url(std::string url, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find
      Src: /src/libtorrent/src/parse_url.cpp:183,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/parse_url.cpp:184,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/parse_url.cpp:185,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/parse_url.cpp:188,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/parse_url.cpp:191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: libtorrent::is_idna
    functionSourceFile: /src/libtorrent/src/parse_url.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - string_view::find
    - string_view::size
    linkageType: ''
    returnType: TORRENT_EXTRA_EXPORT
    signature: TORRENT_EXTRA_EXPORT is_idna(string_view hostname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/parse_url.cpp:201,1
    - Dst: std::tie
      Src: /src/libtorrent/src/parse_url.cpp:204,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/parse_url.cpp:204,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/parse_url.cpp:206,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/parse_url.cpp:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - query_string
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 214
    functionName: libtorrent::has_tracker_query_string
    functionSourceFile: /src/libtorrent/src/parse_url.cpp
    functionUses: 0
    functionsReached:
    - string_view::empty
    - libtorrent::string_equal_no_case
    - libtorrent::split_string
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool has_tracker_query_string(string_view query_string)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:56,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:58,1
    - Dst: libtorrent::is_space
      Src: /src/libtorrent/src/parse_url.cpp:58,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:60,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:60,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:60,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:61,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:63,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:69,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:75,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:83,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:83,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:84,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:84,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/parse_url.cpp:85,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:86,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:86,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:87,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:87,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:88,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:88,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:91,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:92,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:96,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:102,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:104,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:104,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:105,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:111,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:112,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:112,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:116,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:116,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:117,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:118,1
    - Dst: libtorrent::is_digit
      Src: /src/libtorrent/src/parse_url.cpp:126,1
    - Dst: std::atoi
      Src: /src/libtorrent/src/parse_url.cpp:130,1
    - Dst: std::string
      Src: /src/libtorrent/src/parse_url.cpp:130,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:135,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/parse_url.cpp:136,1
    - Dst: std::string::front
      Src: /src/libtorrent/src/parse_url.cpp:137,1
    - Dst: std::string::front
      Src: /src/libtorrent/src/parse_url.cpp:138,1
    - Dst: std::string::insert
      Src: /src/libtorrent/src/parse_url.cpp:140,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:140,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/parse_url.cpp:143,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:143,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:144,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:145,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 2
    argNames:
    - url
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 148
    functionName: libtorrent::parse_url_components
    functionSourceFile: /src/libtorrent/src/parse_url.cpp
    functionUses: 6
    functionsReached:
    - std::make_tuple
    - libtorrent::min
    - std::string::front
    - libtorrent::find
    - std::string
    - std::string::empty
    - std::string::begin
    - std::string::end
    - libtorrent::is_digit
    - std::string::assign
    - std::string::insert
    - std::atoi
    - libtorrent::is_space
    - libtorrent::move
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string, int, std::string>
    signature: std::tuple<std::string, std::string, std::string, int, std::string>
      parse_url_components(std::string url, error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:158,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:158,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:158,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:160,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:160,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/parse_url.cpp:164,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:164,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:164,1
    - Dst: libtorrent::find
      Src: /src/libtorrent/src/parse_url.cpp:168,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:168,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:169,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/parse_url.cpp:171,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:171,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:171,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:174,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/parse_url.cpp:174,1
    - Dst: std::string::assign
      Src: /src/libtorrent/src/parse_url.cpp:175,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/parse_url.cpp:175,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/parse_url.cpp:176,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:176,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/parse_url.cpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - url
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 177
    functionName: libtorrent::split_url
    functionSourceFile: /src/libtorrent/src/parse_url.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find
    - std::string::begin
    - std::string::end
    - std::string::assign
    - std::make_tuple
    - libtorrent::move
    linkageType: ''
    returnType: std::tuple<std::string, std::string>
    signature: std::tuple<std::string, std::string> split_url(std::string url, error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find
      Src: /src/libtorrent/src/parse_url.cpp:183,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/parse_url.cpp:184,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/parse_url.cpp:185,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/parse_url.cpp:188,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/parse_url.cpp:191,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: libtorrent::is_idna
    functionSourceFile: /src/libtorrent/src/parse_url.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - string_view::find
    - string_view::size
    linkageType: ''
    returnType: TORRENT_EXTRA_EXPORT
    signature: TORRENT_EXTRA_EXPORT is_idna(string_view hostname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/parse_url.cpp:201,1
    - Dst: std::tie
      Src: /src/libtorrent/src/parse_url.cpp:204,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/parse_url.cpp:204,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/src/parse_url.cpp:206,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/src/parse_url.cpp:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - query_string
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 214
    functionName: libtorrent::has_tracker_query_string
    functionSourceFile: /src/libtorrent/src/parse_url.cpp
    functionUses: 0
    functionsReached:
    - string_view::empty
    - libtorrent::string_equal_no_case
    - libtorrent::split_string
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool has_tracker_query_string(string_view query_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/ffs.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::log2p1
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 2
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: int
    signature: int log2p1(std::uint32_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:72,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:75,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:76,1
    - Dst: libtorrent::aux::log2p1
      Src: /src/libtorrent/src/ffs.cpp:81,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::count_leading_zeros_sw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 1
    functionsReached:
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::log2p1
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros_sw(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:89,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:93,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:100,1
    - Dst: __builtin_clz
      Src: /src/libtorrent/src/ffs.cpp:101,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:103,1
    - Dst: _BitScanReverse
      Src: /src/libtorrent/src/ffs.cpp:105,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ffs.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::count_leading_zeros_hw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 1
    functionsReached:
    - _BitScanReverse
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - __builtin_clz
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros_hw(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_leading_zeros_hw
      Src: /src/libtorrent/src/ffs.cpp:119,1
    - Dst: libtorrent::aux::count_leading_zeros_sw
      Src: /src/libtorrent/src/ffs.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::count_leading_zeros
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::count_leading_zeros_hw
    - libtorrent::aux::count_leading_zeros_sw
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros(span<std::uint32_t const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:127,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:131,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: libtorrent::aux::count_trailing_ones_sw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - span<std::uint32_t const>::data
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones_sw(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:150,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:151,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:153,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:154,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:161,1
    - Dst: __builtin_ctz
      Src: /src/libtorrent/src/ffs.cpp:162,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:164,1
    - Dst: _BitScanForward
      Src: /src/libtorrent/src/ffs.cpp:166,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ffs.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: libtorrent::aux::count_trailing_ones_hw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 1
    functionsReached:
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - _BitScanForward
    - __builtin_ctz
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones_hw(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/src/ffs.cpp:180,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/src/ffs.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: libtorrent::aux::count_trailing_ones
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::count_trailing_ones_hw
    - libtorrent::aux::count_trailing_ones_sw
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/ffs.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::log2p1
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: int
    signature: int log2p1(std::uint32_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:72,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:75,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:76,1
    - Dst: libtorrent::aux::log2p1
      Src: /src/libtorrent/src/ffs.cpp:81,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::count_leading_zeros_sw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 2
    functionsReached:
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::log2p1
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros_sw(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:89,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:93,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:100,1
    - Dst: __builtin_clz
      Src: /src/libtorrent/src/ffs.cpp:101,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:103,1
    - Dst: _BitScanReverse
      Src: /src/libtorrent/src/ffs.cpp:105,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ffs.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::count_leading_zeros_hw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 2
    functionsReached:
    - _BitScanReverse
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - __builtin_clz
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros_hw(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_leading_zeros_hw
      Src: /src/libtorrent/src/ffs.cpp:119,1
    - Dst: libtorrent::aux::count_leading_zeros_sw
      Src: /src/libtorrent/src/ffs.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::count_leading_zeros
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::count_leading_zeros_hw
    - libtorrent::aux::count_leading_zeros_sw
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros(span<std::uint32_t const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:127,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:131,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: libtorrent::aux::count_trailing_ones_sw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - span<std::uint32_t const>::data
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones_sw(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:150,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:151,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:153,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:154,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:161,1
    - Dst: __builtin_ctz
      Src: /src/libtorrent/src/ffs.cpp:162,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:164,1
    - Dst: _BitScanForward
      Src: /src/libtorrent/src/ffs.cpp:166,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ffs.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: libtorrent::aux::count_trailing_ones_hw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 2
    functionsReached:
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - _BitScanForward
    - __builtin_ctz
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones_hw(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/src/ffs.cpp:180,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/src/ffs.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: libtorrent::aux::count_trailing_ones
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::count_trailing_ones_hw
    - libtorrent::aux::count_trailing_ones_sw
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/ffs.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::log2p1
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 4
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: int
    signature: int log2p1(std::uint32_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:72,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:75,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:76,1
    - Dst: libtorrent::aux::log2p1
      Src: /src/libtorrent/src/ffs.cpp:81,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::count_leading_zeros_sw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::log2p1
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros_sw(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:89,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:93,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:100,1
    - Dst: __builtin_clz
      Src: /src/libtorrent/src/ffs.cpp:101,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:103,1
    - Dst: _BitScanReverse
      Src: /src/libtorrent/src/ffs.cpp:105,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ffs.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::count_leading_zeros_hw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - _BitScanReverse
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - __builtin_clz
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros_hw(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_leading_zeros_hw
      Src: /src/libtorrent/src/ffs.cpp:119,1
    - Dst: libtorrent::aux::count_leading_zeros_sw
      Src: /src/libtorrent/src/ffs.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::count_leading_zeros
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::count_leading_zeros_hw
    - libtorrent::aux::count_leading_zeros_sw
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros(span<std::uint32_t const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:127,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:131,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: libtorrent::aux::count_trailing_ones_sw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - span<std::uint32_t const>::data
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones_sw(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:150,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:151,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:153,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:154,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:161,1
    - Dst: __builtin_ctz
      Src: /src/libtorrent/src/ffs.cpp:162,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:164,1
    - Dst: _BitScanForward
      Src: /src/libtorrent/src/ffs.cpp:166,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ffs.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: libtorrent::aux::count_trailing_ones_hw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - _BitScanForward
    - __builtin_ctz
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones_hw(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/src/ffs.cpp:180,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/src/ffs.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: libtorrent::aux::count_trailing_ones
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::count_trailing_ones_hw
    - libtorrent::aux::count_trailing_ones_sw
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/ffs.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::log2p1
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 5
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: int
    signature: int log2p1(std::uint32_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:72,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:75,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:76,1
    - Dst: libtorrent::aux::log2p1
      Src: /src/libtorrent/src/ffs.cpp:81,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::count_leading_zeros_sw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 4
    functionsReached:
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - libtorrent::aux::log2p1
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros_sw(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:89,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:93,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:100,1
    - Dst: __builtin_clz
      Src: /src/libtorrent/src/ffs.cpp:101,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:103,1
    - Dst: _BitScanReverse
      Src: /src/libtorrent/src/ffs.cpp:105,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ffs.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::count_leading_zeros_hw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 4
    functionsReached:
    - _BitScanReverse
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - __builtin_clz
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros_hw(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_leading_zeros_hw
      Src: /src/libtorrent/src/ffs.cpp:119,1
    - Dst: libtorrent::aux::count_leading_zeros_sw
      Src: /src/libtorrent/src/ffs.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::count_leading_zeros
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::count_leading_zeros_hw
    - libtorrent::aux::count_leading_zeros_sw
    linkageType: ''
    returnType: int
    signature: int count_leading_zeros(span<std::uint32_t const> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:127,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:128,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:131,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: libtorrent::aux::count_trailing_ones_sw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - span<std::uint32_t const>::data
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones_sw(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<std::uint32_t const>::size
      Src: /src/libtorrent/src/ffs.cpp:150,1
    - Dst: span<std::uint32_t const>::data
      Src: /src/libtorrent/src/ffs.cpp:151,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:153,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ffs.cpp:154,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:161,1
    - Dst: __builtin_ctz
      Src: /src/libtorrent/src/ffs.cpp:162,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/src/ffs.cpp:164,1
    - Dst: _BitScanForward
      Src: /src/libtorrent/src/ffs.cpp:166,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/ffs.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: libtorrent::aux::count_trailing_ones_hw
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 4
    functionsReached:
    - span<std::uint32_t const>::data
    - span<std::uint32_t const>::size
    - libtorrent::aux::network_to_host
    - TORRENT_ASSERT
    - TORRENT_ASSERT_FAIL
    - _BitScanForward
    - __builtin_ctz
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones_hw(span<std::uint32_t const> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_trailing_ones_hw
      Src: /src/libtorrent/src/ffs.cpp:180,1
    - Dst: libtorrent::aux::count_trailing_ones_sw
      Src: /src/libtorrent/src/ffs.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - span<std::uint32_t const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: libtorrent::aux::count_trailing_ones
    functionSourceFile: /src/libtorrent/src/ffs.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::count_trailing_ones_hw
    - libtorrent::aux::count_trailing_ones_sw
    linkageType: ''
    returnType: int
    signature: int count_trailing_ones(span<std::uint32_t const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<getauxval_t>
      Src: /src/libtorrent/src/cpuid.cpp:67,1
    - Dst: dlsym
      Src: /src/libtorrent/src/cpuid.cpp:67,1
    - Dst: pf_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: helper_getauxval
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<getauxval_t>
    - dlsym
    - pf_getauxval
    linkageType: ''
    returnType: unsigned long int
    signature: unsigned long int helper_getauxval(unsigned long int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<getauxval_t>
      Src: /src/libtorrent/src/cpuid.cpp:67,1
    - Dst: dlsym
      Src: /src/libtorrent/src/cpuid.cpp:67,1
    - Dst: pf_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: helper_getauxval
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<getauxval_t>
    - dlsym
    - pf_getauxval
    linkageType: ''
    returnType: unsigned long int
    signature: unsigned long int helper_getauxval(unsigned long int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: __get_cpuid
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/cpuid.cpp:93,1
    - Dst: std::memset
      Src: /src/libtorrent/src/cpuid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::cpuid
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<int*>
    - std::uint32_t
    - __cpuid
    - __get_cpuid
    - std::memset
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void cpuid(std::uint32_t* info, int type) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::supports_sse42
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_sse42() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::supports_mmx
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_mmx() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::supports_arm_neon
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_neon() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:146,1
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::aux::supports_arm_crc32c
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_crc32c() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: __get_cpuid
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/cpuid.cpp:93,1
    - Dst: std::memset
      Src: /src/libtorrent/src/cpuid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::cpuid
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 2
    functionsReached:
    - reinterpret_cast<int*>
    - std::uint32_t
    - __cpuid
    - __get_cpuid
    - std::memset
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void cpuid(std::uint32_t* info, int type) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::supports_sse42
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_sse42() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::supports_mmx
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_mmx() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::supports_arm_neon
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_neon() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:146,1
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::aux::supports_arm_crc32c
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_crc32c() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: __get_cpuid
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/cpuid.cpp:93,1
    - Dst: std::memset
      Src: /src/libtorrent/src/cpuid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::cpuid
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<int*>
    - std::uint32_t
    - __cpuid
    - __get_cpuid
    - std::memset
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void cpuid(std::uint32_t* info, int type) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::supports_sse42
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_sse42() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::supports_mmx
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_mmx() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::supports_arm_neon
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_neon() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:146,1
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::aux::supports_arm_crc32c
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_crc32c() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: __get_cpuid
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/cpuid.cpp:93,1
    - Dst: std::memset
      Src: /src/libtorrent/src/cpuid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::cpuid
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 6
    functionsReached:
    - reinterpret_cast<int*>
    - std::uint32_t
    - __cpuid
    - __get_cpuid
    - std::memset
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void cpuid(std::uint32_t* info, int type) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::supports_sse42
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_sse42() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::supports_mmx
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_mmx() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::supports_arm_neon
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_neon() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:146,1
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::aux::supports_arm_crc32c
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_crc32c() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: __get_cpuid
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/cpuid.cpp:93,1
    - Dst: std::memset
      Src: /src/libtorrent/src/cpuid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::cpuid
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 8
    functionsReached:
    - reinterpret_cast<int*>
    - std::uint32_t
    - __cpuid
    - __get_cpuid
    - std::memset
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void cpuid(std::uint32_t* info, int type) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::supports_sse42
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_sse42() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::supports_mmx
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_mmx() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::supports_arm_neon
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_neon() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:146,1
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::aux::supports_arm_crc32c
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_crc32c() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: __get_cpuid
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/cpuid.cpp:93,1
    - Dst: std::memset
      Src: /src/libtorrent/src/cpuid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::cpuid
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 10
    functionsReached:
    - reinterpret_cast<int*>
    - std::uint32_t
    - __cpuid
    - __get_cpuid
    - std::memset
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void cpuid(std::uint32_t* info, int type) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::supports_sse42
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_sse42() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::supports_mmx
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_mmx() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::supports_arm_neon
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_neon() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:146,1
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::aux::supports_arm_crc32c
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_crc32c() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: __get_cpuid
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/cpuid.cpp:93,1
    - Dst: std::memset
      Src: /src/libtorrent/src/cpuid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::cpuid
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 12
    functionsReached:
    - reinterpret_cast<int*>
    - std::uint32_t
    - __cpuid
    - __get_cpuid
    - std::memset
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void cpuid(std::uint32_t* info, int type) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::supports_sse42
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_sse42() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::supports_mmx
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_mmx() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::supports_arm_neon
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_neon() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:146,1
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::aux::supports_arm_crc32c
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_crc32c() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: reinterpret_cast<int*>
      Src: /src/libtorrent/src/cpuid.cpp:88,1
    - Dst: __get_cpuid
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/cpuid.cpp:91,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/cpuid.cpp:93,1
    - Dst: std::memset
      Src: /src/libtorrent/src/cpuid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::cpuid
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 14
    functionsReached:
    - reinterpret_cast<int*>
    - std::uint32_t
    - __cpuid
    - __get_cpuid
    - std::memset
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void cpuid(std::uint32_t* info, int type) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::supports_sse42
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_sse42() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::cpuid
      Src: /src/libtorrent/src/cpuid.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: libtorrent::aux::supports_mmx
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::cpuid
    linkageType: ''
    returnType: bool
    signature: bool supports_mmx() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::supports_arm_neon
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_neon() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:146,1
    - Dst: helper_getauxval
      Src: /src/libtorrent/src/cpuid.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::aux::supports_arm_crc32c
    functionSourceFile: /src/libtorrent/src/cpuid.cpp
    functionUses: 0
    functionsReached:
    - helper_getauxval
    linkageType: ''
    returnType: bool
    signature: bool supports_arm_crc32c() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/src/session_call.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::blocking_call
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 0
    functionsReached:
    - print_backtrace
    linkageType: ''
    returnType: void
    signature: void blocking_call()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/session_call.cpp:57,1
    - Dst: std::map::rbegin
      Src: /src/libtorrent/src/session_call.cpp:66,1
    - Dst: std::map::rend
      Src: /src/libtorrent/src/session_call.cpp:67,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_call.cpp:69,1
    - Dst: std::map<int, std::string>::const_reverse_iterator::second::c_str
      Src: /src/libtorrent/src/session_call.cpp:69,1
    - Dst: fclose
      Src: /src/libtorrent/src/session_call.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::dump_call_profile
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 2
    functionsReached:
    - std::map::rend
    - std::fprintf
    - fclose
    - std::map::rbegin
    - fopen
    - std::map<int, std::string>::const_reverse_iterator::second::c_str
    linkageType: ''
    returnType: void
    signature: void dump_call_profile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::blocking_call
      Src: /src/libtorrent/src/session_call.cpp:77,1
    - Dst: cond::wait
      Src: /src/libtorrent/src/session_call.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' done'
    - ' ses'
    argTypes:
    - bool
    - aux::session_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: libtorrent::aux::torrent_wait
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::blocking_call
    - cond::wait
    linkageType: ''
    returnType: void
    signature: void torrent_wait(bool& done, aux::session_impl& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/src/session_call.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::blocking_call
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 1
    functionsReached:
    - print_backtrace
    linkageType: ''
    returnType: void
    signature: void blocking_call()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/session_call.cpp:57,1
    - Dst: std::map::rbegin
      Src: /src/libtorrent/src/session_call.cpp:66,1
    - Dst: std::map::rend
      Src: /src/libtorrent/src/session_call.cpp:67,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_call.cpp:69,1
    - Dst: std::map<int, std::string>::const_reverse_iterator::second::c_str
      Src: /src/libtorrent/src/session_call.cpp:69,1
    - Dst: fclose
      Src: /src/libtorrent/src/session_call.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::dump_call_profile
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 2
    functionsReached:
    - std::map::rend
    - std::fprintf
    - fclose
    - std::map::rbegin
    - fopen
    - std::map<int, std::string>::const_reverse_iterator::second::c_str
    linkageType: ''
    returnType: void
    signature: void dump_call_profile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::blocking_call
      Src: /src/libtorrent/src/session_call.cpp:77,1
    - Dst: cond::wait
      Src: /src/libtorrent/src/session_call.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' done'
    - ' ses'
    argTypes:
    - bool
    - aux::session_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: libtorrent::aux::torrent_wait
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::blocking_call
    - cond::wait
    linkageType: ''
    returnType: void
    signature: void torrent_wait(bool& done, aux::session_impl& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/src/session_call.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::blocking_call
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 2
    functionsReached:
    - print_backtrace
    linkageType: ''
    returnType: void
    signature: void blocking_call()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/session_call.cpp:57,1
    - Dst: std::map::rbegin
      Src: /src/libtorrent/src/session_call.cpp:66,1
    - Dst: std::map::rend
      Src: /src/libtorrent/src/session_call.cpp:67,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_call.cpp:69,1
    - Dst: std::map<int, std::string>::const_reverse_iterator::second::c_str
      Src: /src/libtorrent/src/session_call.cpp:69,1
    - Dst: fclose
      Src: /src/libtorrent/src/session_call.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::dump_call_profile
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 2
    functionsReached:
    - std::map::rend
    - std::fprintf
    - fclose
    - std::map::rbegin
    - fopen
    - std::map<int, std::string>::const_reverse_iterator::second::c_str
    linkageType: ''
    returnType: void
    signature: void dump_call_profile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::blocking_call
      Src: /src/libtorrent/src/session_call.cpp:77,1
    - Dst: cond::wait
      Src: /src/libtorrent/src/session_call.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' done'
    - ' ses'
    argTypes:
    - bool
    - aux::session_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: libtorrent::aux::torrent_wait
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::blocking_call
    - cond::wait
    linkageType: ''
    returnType: void
    signature: void torrent_wait(bool& done, aux::session_impl& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_backtrace
      Src: /src/libtorrent/src/session_call.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::blocking_call
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 3
    functionsReached:
    - print_backtrace
    linkageType: ''
    returnType: void
    signature: void blocking_call()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtorrent/src/session_call.cpp:57,1
    - Dst: std::map::rbegin
      Src: /src/libtorrent/src/session_call.cpp:66,1
    - Dst: std::map::rend
      Src: /src/libtorrent/src/session_call.cpp:67,1
    - Dst: std::fprintf
      Src: /src/libtorrent/src/session_call.cpp:69,1
    - Dst: std::map<int, std::string>::const_reverse_iterator::second::c_str
      Src: /src/libtorrent/src/session_call.cpp:69,1
    - Dst: fclose
      Src: /src/libtorrent/src/session_call.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::dump_call_profile
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 2
    functionsReached:
    - std::map::rend
    - std::fprintf
    - fclose
    - std::map::rbegin
    - fopen
    - std::map<int, std::string>::const_reverse_iterator::second::c_str
    linkageType: ''
    returnType: void
    signature: void dump_call_profile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::blocking_call
      Src: /src/libtorrent/src/session_call.cpp:77,1
    - Dst: cond::wait
      Src: /src/libtorrent/src/session_call.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' done'
    - ' ses'
    argTypes:
    - bool
    - aux::session_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: libtorrent::aux::torrent_wait
    functionSourceFile: /src/libtorrent/src/session_call.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::blocking_call
    - cond::wait
    linkageType: ''
    returnType: void
    signature: void torrent_wait(bool& done, aux::session_impl& ses)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/write_resume_data.cpp:54,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:55,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:57,1
    - Dst: entry::list_type
      Src: /src/libtorrent/src/write_resume_data.cpp:57,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:59,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/write_resume_data.cpp:62,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/write_resume_data.cpp:63,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/write_resume_data.cpp:63,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:65,1
    - Dst: resize
      Src: /src/libtorrent/src/write_resume_data.cpp:66,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' trackers'
    - ' tracker_tiers'
    argTypes:
    - std::vector<std::string>
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: libtorrent::build_tracker_list
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - list
    - libtorrent::aux::clamp
    - libtorrent::emplace_back
    - libtorrent::empty
    - entry::list
    - libtorrent::end
    - libtorrent::begin
    - std::size_t
    - resize
    - entry::list_type
    linkageType: ''
    returnType: entry
    signature: "entry build_tracker_list(std::vector<std::string> const& trackers\n\t\t,
      std::vector<int> const& tracker_tiers)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/write_resume_data.cpp:54,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:55,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:57,1
    - Dst: entry::list_type
      Src: /src/libtorrent/src/write_resume_data.cpp:57,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:59,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/write_resume_data.cpp:62,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/write_resume_data.cpp:63,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/write_resume_data.cpp:63,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:65,1
    - Dst: resize
      Src: /src/libtorrent/src/write_resume_data.cpp:66,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' trackers'
    - ' tracker_tiers'
    argTypes:
    - std::vector<std::string>
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: libtorrent::build_tracker_list
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - list
    - libtorrent::aux::clamp
    - libtorrent::emplace_back
    - libtorrent::empty
    - entry::list
    - libtorrent::end
    - libtorrent::begin
    - std::size_t
    - resize
    - entry::list_type
    linkageType: ''
    returnType: entry
    signature: "entry build_tracker_list(std::vector<std::string> const& trackers\n\t\t,
      std::vector<int> const& tracker_tiers)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: name::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:125,1
    - Dst: url::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:129,1
    - Dst: ti::info_section
      Src: /src/libtorrent/src/write_resume_data.cpp:137,1
    - Dst: preformatted
      Src: /src/libtorrent/src/write_resume_data.cpp:138,1
    - Dst: auto::data
      Src: /src/libtorrent/src/write_resume_data.cpp:138,1
    - Dst: auto::data
      Src: /src/libtorrent/src/write_resume_data.cpp:138,1
    - Dst: auto::size
      Src: /src/libtorrent/src/write_resume_data.cpp:138,1
    - Dst: ti::comment
      Src: /src/libtorrent/src/write_resume_data.cpp:139,1
    - Dst: ti::comment
      Src: /src/libtorrent/src/write_resume_data.cpp:140,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/src/write_resume_data.cpp:141,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/src/write_resume_data.cpp:142,1
    - Dst: ti::creator
      Src: /src/libtorrent/src/write_resume_data.cpp:143,1
    - Dst: ti::creator
      Src: /src/libtorrent/src/write_resume_data.cpp:144,1
    - Dst: merkle_trees::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:147,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:150,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:151,1
    - Dst: merkle_trees::size
      Src: /src/libtorrent/src/write_resume_data.cpp:151,1
    - Dst: merkle_trees::size
      Src: /src/libtorrent/src/write_resume_data.cpp:152,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:155,1
    - Dst: back
      Src: /src/libtorrent/src/write_resume_data.cpp:156,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:157,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:159,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:159,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/write_resume_data.cpp:161,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/write_resume_data.cpp:161,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:161,1
    - Dst: verified_leaf_hashes::end_index
      Src: /src/libtorrent/src/write_resume_data.cpp:163,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:166,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:168,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:169,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:169,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/write_resume_data.cpp:171,1
    - Dst: merkle_tree_mask::end_index
      Src: /src/libtorrent/src/write_resume_data.cpp:175,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:178,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:180,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:181,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:181,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/write_resume_data.cpp:183,1
    - Dst: unfinished_pieces::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:189,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:191,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:192,1
    - Dst: unfinished_pieces::size
      Src: /src/libtorrent/src/write_resume_data.cpp:192,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/write_resume_data.cpp:200,1
    - Dst: std::string
      Src: /src/libtorrent/src/write_resume_data.cpp:201,1
    - Dst: second::data
      Src: /src/libtorrent/src/write_resume_data.cpp:201,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/write_resume_data.cpp:201,1
    - Dst: second::size
      Src: /src/libtorrent/src/write_resume_data.cpp:201,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/write_resume_data.cpp:203,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/write_resume_data.cpp:203,1
    - Dst: libtorrent::build_tracker_list
      Src: /src/libtorrent/src/write_resume_data.cpp:208,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:213,1
    - Dst: std::copy
      Src: /src/libtorrent/src/write_resume_data.cpp:214,1
    - Dst: url_seeds::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:214,1
    - Dst: url_seeds::end
      Src: /src/libtorrent/src/write_resume_data.cpp:214,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:214,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:216,1
    - Dst: std::copy
      Src: /src/libtorrent/src/write_resume_data.cpp:217,1
    - Dst: http_seeds::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:217,1
    - Dst: http_seeds::end
      Src: /src/libtorrent/src/write_resume_data.cpp:217,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:217,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:220,1
    - Dst: resize
      Src: /src/libtorrent/src/write_resume_data.cpp:221,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/write_resume_data.cpp:221,1
    - Dst: std::max
      Src: /src/libtorrent/src/write_resume_data.cpp:221,1
    - Dst: have_pieces::size
      Src: /src/libtorrent/src/write_resume_data.cpp:222,1
    - Dst: verified_pieces::size
      Src: /src/libtorrent/src/write_resume_data.cpp:222,1
    - Dst: renamed_files::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:239,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:241,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/write_resume_data.cpp:244,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/write_resume_data.cpp:244,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:245,1
    - Dst: resize
      Src: /src/libtorrent/src/write_resume_data.cpp:245,1
    - Dst: peers::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:251,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:253,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:254,1
    - Dst: is_v6
      Src: /src/libtorrent/src/write_resume_data.cpp:257,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/write_resume_data.cpp:258,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/write_resume_data.cpp:260,1
    - Dst: banned_peers::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:264,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:266,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:267,1
    - Dst: is_v6
      Src: /src/libtorrent/src/write_resume_data.cpp:270,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/write_resume_data.cpp:271,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/write_resume_data.cpp:273,1
    - Dst: file_priorities::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:282,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:285,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:286,1
    - Dst: file_priorities::size
      Src: /src/libtorrent/src/write_resume_data.cpp:286,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:288,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/write_resume_data.cpp:288,1
    - Dst: piece_priorities::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:291,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:294,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:295,1
    - Dst: piece_priorities::size
      Src: /src/libtorrent/src/write_resume_data.cpp:295,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/write_resume_data.cpp:297,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/write_resume_data.cpp:297,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/write_resume_data.cpp:297,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 116
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 301
    functionName: libtorrent::write_resume_data
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - peers::empty
    - unfinished_pieces::size
    - piece_priorities::size
    - merkle_trees::size
    - http_seeds::end
    - static_cast<std::size_t>
    - merkle_tree_mask::end_index
    - static_cast<char>
    - libtorrent::empty
    - std::max
    - verified_leaf_hashes::end_index
    - libtorrent::push_back
    - renamed_files::empty
    - libtorrent::move
    - url_seeds::end
    - preformatted
    - aux::numeric_cast<std::size_t>
    - ti::comment
    - list
    - libtorrent::emplace_back
    - std::copy
    - std::size_t
    - back
    - ti::creation_date
    - second::data
    - ti::creator
    - is_v6
    - http_seeds::begin
    - libtorrent::size
    - second::size
    - write_endpoint
    - libtorrent::append
    - std::string
    - libtorrent::data
    - unfinished_pieces::empty
    - auto::size
    - libtorrent::build_tracker_list
    - banned_peers::empty
    - reserve
    - static_cast<std::uint8_t>
    - auto::data
    - verified_pieces::size
    - piece_priorities::empty
    - file_priorities::size
    - merkle_trees::empty
    - string
    - url_seeds::begin
    - resize
    - have_pieces::size
    - ti::info_section
    - std::back_inserter
    - file_priorities::empty
    - url::empty
    - name::empty
    linkageType: ''
    returnType: entry
    signature: entry write_resume_data(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_torrent_file
      Src: /src/libtorrent/src/write_resume_data.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: libtorrent::write_torrent_file
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::write_torrent_file
    linkageType: ''
    returnType: entry
    signature: entry write_torrent_file(add_torrent_params const& atp)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/write_resume_data.cpp:312,1
    - Dst: ti::info_section
      Src: /src/libtorrent/src/write_resume_data.cpp:314,1
    - Dst: preformatted
      Src: /src/libtorrent/src/write_resume_data.cpp:315,1
    - Dst: auto::data
      Src: /src/libtorrent/src/write_resume_data.cpp:315,1
    - Dst: auto::data
      Src: /src/libtorrent/src/write_resume_data.cpp:315,1
    - Dst: auto::size
      Src: /src/libtorrent/src/write_resume_data.cpp:315,1
    - Dst: ti::comment
      Src: /src/libtorrent/src/write_resume_data.cpp:316,1
    - Dst: ti::comment
      Src: /src/libtorrent/src/write_resume_data.cpp:317,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/src/write_resume_data.cpp:318,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/src/write_resume_data.cpp:319,1
    - Dst: ti::creator
      Src: /src/libtorrent/src/write_resume_data.cpp:320,1
    - Dst: ti::creator
      Src: /src/libtorrent/src/write_resume_data.cpp:321,1
    - Dst: merkle_trees::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:323,1
    - Dst: ti::files
      Src: /src/libtorrent/src/write_resume_data.cpp:325,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:327,1
    - Dst: num_files
      Src: /src/libtorrent/src/write_resume_data.cpp:327,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/write_resume_data.cpp:328,1
    - Dst: dict
      Src: /src/libtorrent/src/write_resume_data.cpp:330,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/write_resume_data.cpp:332,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/write_resume_data.cpp:334,1
    - Dst: file_size
      Src: /src/libtorrent/src/write_resume_data.cpp:334,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/write_resume_data.cpp:334,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/write_resume_data.cpp:337,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/write_resume_data.cpp:337,1
    - Dst: root_ptr
      Src: /src/libtorrent/src/write_resume_data.cpp:337,1
    - Dst: verified_leaf_hashes::end_index
      Src: /src/libtorrent/src/write_resume_data.cpp:339,1
    - Dst: merkle_tree_mask::end_index
      Src: /src/libtorrent/src/write_resume_data.cpp:343,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:343,1
    - Dst: aux::merkle_tree::load_sparse_tree
      Src: /src/libtorrent/src/write_resume_data.cpp:345,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/src/write_resume_data.cpp:349,1
    - Dst: aux::merkle_tree::get_piece_layer
      Src: /src/libtorrent/src/write_resume_data.cpp:352,1
    - Dst: auto::size
      Src: /src/libtorrent/src/write_resume_data.cpp:353,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/write_resume_data.cpp:353,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/write_resume_data.cpp:354,1
    - Dst: aux::merkle_tree::root
      Src: /src/libtorrent/src/write_resume_data.cpp:356,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:356,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/write_resume_data.cpp:359,1
    - Dst: ti::v2
      Src: /src/libtorrent/src/write_resume_data.cpp:362,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/write_resume_data.cpp:366,1
    - Dst: url_seeds::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:370,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:372,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:373,1
    - Dst: url_seeds::size
      Src: /src/libtorrent/src/write_resume_data.cpp:373,1
    - Dst: std::copy
      Src: /src/libtorrent/src/write_resume_data.cpp:374,1
    - Dst: url_seeds::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:374,1
    - Dst: url_seeds::end
      Src: /src/libtorrent/src/write_resume_data.cpp:374,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:374,1
    - Dst: http_seeds::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:377,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:379,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:380,1
    - Dst: http_seeds::size
      Src: /src/libtorrent/src/write_resume_data.cpp:380,1
    - Dst: std::copy
      Src: /src/libtorrent/src/write_resume_data.cpp:381,1
    - Dst: http_seeds::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:381,1
    - Dst: http_seeds::end
      Src: /src/libtorrent/src/write_resume_data.cpp:381,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:381,1
    - Dst: dht_nodes::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:385,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:387,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:388,1
    - Dst: dht_nodes::size
      Src: /src/libtorrent/src/write_resume_data.cpp:388,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/write_resume_data.cpp:392,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:394,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/write_resume_data.cpp:394,1
    - Dst: ti::similar_torrents
      Src: /src/libtorrent/src/write_resume_data.cpp:398,1
    - Dst: ti::info
      Src: /src/libtorrent/src/write_resume_data.cpp:398,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:400,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:401,1
    - Dst: ti::similar_torrents
      Src: /src/libtorrent/src/write_resume_data.cpp:401,1
    - Dst: ti::similar_torrents
      Src: /src/libtorrent/src/write_resume_data.cpp:402,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:403,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/write_resume_data.cpp:403,1
    - Dst: ti::collections
      Src: /src/libtorrent/src/write_resume_data.cpp:406,1
    - Dst: ti::info
      Src: /src/libtorrent/src/write_resume_data.cpp:406,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:408,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:409,1
    - Dst: ti::collections
      Src: /src/libtorrent/src/write_resume_data.cpp:409,1
    - Dst: ti::collections
      Src: /src/libtorrent/src/write_resume_data.cpp:410,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:411,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/write_resume_data.cpp:415,1
    - Dst: trackers::front
      Src: /src/libtorrent/src/write_resume_data.cpp:416,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/write_resume_data.cpp:417,1
    - Dst: libtorrent::build_tracker_list
      Src: /src/libtorrent/src/write_resume_data.cpp:418,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 56
    argCount: 2
    argNames:
    - ' atp'
    - flags
    argTypes:
    - add_torrent_params
    - write_torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 421
    functionName: libtorrent::write_torrent_file
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 1
    functionsReached:
    - aux::merkle_tree::root
    - root_ptr
    - http_seeds::end
    - merkle_tree_mask::end_index
    - libtorrent::empty
    - http_seeds::size
    - file_size
    - ti::collections
    - pad_file_at
    - aux::merkle_tree::load_tree
    - verified_leaf_hashes::end_index
    - libtorrent::file_range
    - http_seeds::empty
    - url_seeds::end
    - libtorrent::move
    - aux::throw_ex<system_error>
    - preformatted
    - blocks_per_piece
    - ti::info
    - ti::comment
    - list
    - aux::merkle_tree::get_piece_layer
    - libtorrent::emplace_back
    - trackers::size
    - libtorrent::to_string
    - std::copy
    - ti::v2
    - dht_nodes::empty
    - ti::creation_date
    - url_seeds::empty
    - ti::creator
    - libtorrent::piece_length
    - ti::files
    - http_seeds::begin
    - libtorrent::size
    - num_files
    - libtorrent::build_tracker_list
    - url_seeds::size
    - auto::size
    - reserve
    - aux::merkle_tree::load_sparse_tree
    - auto::data
    - file_num_pieces
    - merkle_trees::empty
    - string
    - dict
    - dht_nodes::size
    - url_seeds::begin
    - ti::info_section
    - file_num_blocks
    - std::back_inserter
    - ti::similar_torrents
    - trackers::front
    linkageType: ''
    returnType: entry
    signature: entry write_torrent_file(add_torrent_params const& atp, write_torrent_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_torrent_file
      Src: /src/libtorrent/src/write_resume_data.cpp:427,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/write_resume_data.cpp:428,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' atp'
    - flags
    argTypes:
    - add_torrent_params
    - write_torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: libtorrent::write_torrent_file_buf
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - libtorrent::write_torrent_file
    - libtorrent::bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: "std::vector<char> write_torrent_file_buf(add_torrent_params const&
      atp\n\t\t, write_torrent_flags_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_resume_data
      Src: /src/libtorrent/src/write_resume_data.cpp:435,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/write_resume_data.cpp:436,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: libtorrent::write_resume_data_buf
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 1
    functionsReached:
    - std::back_inserter
    - libtorrent::bencode
    - libtorrent::write_resume_data
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> write_resume_data_buf(add_torrent_params const& atp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/write_resume_data.cpp:54,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:55,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:57,1
    - Dst: entry::list_type
      Src: /src/libtorrent/src/write_resume_data.cpp:57,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:59,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/write_resume_data.cpp:62,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/write_resume_data.cpp:63,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/write_resume_data.cpp:63,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:65,1
    - Dst: resize
      Src: /src/libtorrent/src/write_resume_data.cpp:66,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' trackers'
    - ' tracker_tiers'
    argTypes:
    - std::vector<std::string>
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: libtorrent::build_tracker_list
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::size
    - list
    - libtorrent::aux::clamp
    - libtorrent::emplace_back
    - libtorrent::empty
    - entry::list
    - libtorrent::end
    - libtorrent::begin
    - std::size_t
    - resize
    - entry::list_type
    linkageType: ''
    returnType: entry
    signature: "entry build_tracker_list(std::vector<std::string> const& trackers\n\t\t,
      std::vector<int> const& tracker_tiers)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/write_resume_data.cpp:54,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:55,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:57,1
    - Dst: entry::list_type
      Src: /src/libtorrent/src/write_resume_data.cpp:57,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:59,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/write_resume_data.cpp:62,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/write_resume_data.cpp:63,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/write_resume_data.cpp:63,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:65,1
    - Dst: resize
      Src: /src/libtorrent/src/write_resume_data.cpp:66,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' trackers'
    - ' tracker_tiers'
    argTypes:
    - std::vector<std::string>
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: libtorrent::build_tracker_list
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::size
    - list
    - libtorrent::aux::clamp
    - libtorrent::emplace_back
    - libtorrent::empty
    - entry::list
    - libtorrent::end
    - libtorrent::begin
    - std::size_t
    - resize
    - entry::list_type
    linkageType: ''
    returnType: entry
    signature: "entry build_tracker_list(std::vector<std::string> const& trackers\n\t\t,
      std::vector<int> const& tracker_tiers)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: name::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:125,1
    - Dst: url::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:129,1
    - Dst: ti::info_section
      Src: /src/libtorrent/src/write_resume_data.cpp:137,1
    - Dst: preformatted
      Src: /src/libtorrent/src/write_resume_data.cpp:138,1
    - Dst: auto::data
      Src: /src/libtorrent/src/write_resume_data.cpp:138,1
    - Dst: auto::data
      Src: /src/libtorrent/src/write_resume_data.cpp:138,1
    - Dst: auto::size
      Src: /src/libtorrent/src/write_resume_data.cpp:138,1
    - Dst: ti::comment
      Src: /src/libtorrent/src/write_resume_data.cpp:139,1
    - Dst: ti::comment
      Src: /src/libtorrent/src/write_resume_data.cpp:140,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/src/write_resume_data.cpp:141,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/src/write_resume_data.cpp:142,1
    - Dst: ti::creator
      Src: /src/libtorrent/src/write_resume_data.cpp:143,1
    - Dst: ti::creator
      Src: /src/libtorrent/src/write_resume_data.cpp:144,1
    - Dst: merkle_trees::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:147,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:150,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:151,1
    - Dst: merkle_trees::size
      Src: /src/libtorrent/src/write_resume_data.cpp:151,1
    - Dst: merkle_trees::size
      Src: /src/libtorrent/src/write_resume_data.cpp:152,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:155,1
    - Dst: back
      Src: /src/libtorrent/src/write_resume_data.cpp:156,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:157,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:159,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:159,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/src/write_resume_data.cpp:161,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/src/write_resume_data.cpp:161,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:161,1
    - Dst: verified_leaf_hashes::end_index
      Src: /src/libtorrent/src/write_resume_data.cpp:163,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:166,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:168,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:169,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:169,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/write_resume_data.cpp:171,1
    - Dst: merkle_tree_mask::end_index
      Src: /src/libtorrent/src/write_resume_data.cpp:175,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:178,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:180,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:181,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:181,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/write_resume_data.cpp:183,1
    - Dst: unfinished_pieces::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:189,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:191,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:192,1
    - Dst: unfinished_pieces::size
      Src: /src/libtorrent/src/write_resume_data.cpp:192,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/write_resume_data.cpp:200,1
    - Dst: std::string
      Src: /src/libtorrent/src/write_resume_data.cpp:201,1
    - Dst: second::data
      Src: /src/libtorrent/src/write_resume_data.cpp:201,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/write_resume_data.cpp:201,1
    - Dst: second::size
      Src: /src/libtorrent/src/write_resume_data.cpp:201,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/write_resume_data.cpp:203,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/write_resume_data.cpp:203,1
    - Dst: libtorrent::build_tracker_list
      Src: /src/libtorrent/src/write_resume_data.cpp:208,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:213,1
    - Dst: std::copy
      Src: /src/libtorrent/src/write_resume_data.cpp:214,1
    - Dst: url_seeds::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:214,1
    - Dst: url_seeds::end
      Src: /src/libtorrent/src/write_resume_data.cpp:214,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:214,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:216,1
    - Dst: std::copy
      Src: /src/libtorrent/src/write_resume_data.cpp:217,1
    - Dst: http_seeds::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:217,1
    - Dst: http_seeds::end
      Src: /src/libtorrent/src/write_resume_data.cpp:217,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:217,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:220,1
    - Dst: resize
      Src: /src/libtorrent/src/write_resume_data.cpp:221,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/write_resume_data.cpp:221,1
    - Dst: std::max
      Src: /src/libtorrent/src/write_resume_data.cpp:221,1
    - Dst: have_pieces::size
      Src: /src/libtorrent/src/write_resume_data.cpp:222,1
    - Dst: verified_pieces::size
      Src: /src/libtorrent/src/write_resume_data.cpp:222,1
    - Dst: renamed_files::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:239,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:241,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/write_resume_data.cpp:244,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/write_resume_data.cpp:244,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:245,1
    - Dst: resize
      Src: /src/libtorrent/src/write_resume_data.cpp:245,1
    - Dst: peers::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:251,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:253,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:254,1
    - Dst: is_v6
      Src: /src/libtorrent/src/write_resume_data.cpp:257,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/write_resume_data.cpp:258,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/write_resume_data.cpp:260,1
    - Dst: banned_peers::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:264,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:266,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:267,1
    - Dst: is_v6
      Src: /src/libtorrent/src/write_resume_data.cpp:270,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/write_resume_data.cpp:271,1
    - Dst: write_endpoint
      Src: /src/libtorrent/src/write_resume_data.cpp:273,1
    - Dst: file_priorities::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:282,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:285,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:286,1
    - Dst: file_priorities::size
      Src: /src/libtorrent/src/write_resume_data.cpp:286,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:288,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/write_resume_data.cpp:288,1
    - Dst: piece_priorities::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:291,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:294,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:295,1
    - Dst: piece_priorities::size
      Src: /src/libtorrent/src/write_resume_data.cpp:295,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/src/write_resume_data.cpp:297,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/src/write_resume_data.cpp:297,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/write_resume_data.cpp:297,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 116
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 301
    functionName: libtorrent::write_resume_data
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - peers::empty
    - unfinished_pieces::size
    - piece_priorities::size
    - merkle_trees::size
    - http_seeds::end
    - static_cast<std::size_t>
    - merkle_tree_mask::end_index
    - static_cast<char>
    - libtorrent::empty
    - std::max
    - verified_leaf_hashes::end_index
    - libtorrent::push_back
    - renamed_files::empty
    - libtorrent::move
    - url_seeds::end
    - preformatted
    - aux::numeric_cast<std::size_t>
    - ti::comment
    - list
    - libtorrent::emplace_back
    - std::copy
    - std::size_t
    - back
    - ti::creation_date
    - second::data
    - ti::creator
    - is_v6
    - http_seeds::begin
    - libtorrent::size
    - second::size
    - write_endpoint
    - libtorrent::append
    - std::string
    - libtorrent::data
    - unfinished_pieces::empty
    - auto::size
    - libtorrent::build_tracker_list
    - banned_peers::empty
    - reserve
    - static_cast<std::uint8_t>
    - auto::data
    - verified_pieces::size
    - piece_priorities::empty
    - file_priorities::size
    - merkle_trees::empty
    - string
    - url_seeds::begin
    - resize
    - have_pieces::size
    - ti::info_section
    - std::back_inserter
    - file_priorities::empty
    - url::empty
    - name::empty
    linkageType: ''
    returnType: entry
    signature: entry write_resume_data(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_torrent_file
      Src: /src/libtorrent/src/write_resume_data.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: libtorrent::write_torrent_file
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::write_torrent_file
    linkageType: ''
    returnType: entry
    signature: entry write_torrent_file(add_torrent_params const& atp)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/write_resume_data.cpp:312,1
    - Dst: ti::info_section
      Src: /src/libtorrent/src/write_resume_data.cpp:314,1
    - Dst: preformatted
      Src: /src/libtorrent/src/write_resume_data.cpp:315,1
    - Dst: auto::data
      Src: /src/libtorrent/src/write_resume_data.cpp:315,1
    - Dst: auto::data
      Src: /src/libtorrent/src/write_resume_data.cpp:315,1
    - Dst: auto::size
      Src: /src/libtorrent/src/write_resume_data.cpp:315,1
    - Dst: ti::comment
      Src: /src/libtorrent/src/write_resume_data.cpp:316,1
    - Dst: ti::comment
      Src: /src/libtorrent/src/write_resume_data.cpp:317,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/src/write_resume_data.cpp:318,1
    - Dst: ti::creation_date
      Src: /src/libtorrent/src/write_resume_data.cpp:319,1
    - Dst: ti::creator
      Src: /src/libtorrent/src/write_resume_data.cpp:320,1
    - Dst: ti::creator
      Src: /src/libtorrent/src/write_resume_data.cpp:321,1
    - Dst: merkle_trees::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:323,1
    - Dst: ti::files
      Src: /src/libtorrent/src/write_resume_data.cpp:325,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/write_resume_data.cpp:327,1
    - Dst: num_files
      Src: /src/libtorrent/src/write_resume_data.cpp:327,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/write_resume_data.cpp:328,1
    - Dst: dict
      Src: /src/libtorrent/src/write_resume_data.cpp:330,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/write_resume_data.cpp:332,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/write_resume_data.cpp:334,1
    - Dst: file_size
      Src: /src/libtorrent/src/write_resume_data.cpp:334,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/write_resume_data.cpp:334,1
    - Dst: file_num_blocks
      Src: /src/libtorrent/src/write_resume_data.cpp:337,1
    - Dst: blocks_per_piece
      Src: /src/libtorrent/src/write_resume_data.cpp:337,1
    - Dst: root_ptr
      Src: /src/libtorrent/src/write_resume_data.cpp:337,1
    - Dst: verified_leaf_hashes::end_index
      Src: /src/libtorrent/src/write_resume_data.cpp:339,1
    - Dst: merkle_tree_mask::end_index
      Src: /src/libtorrent/src/write_resume_data.cpp:343,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:343,1
    - Dst: aux::merkle_tree::load_sparse_tree
      Src: /src/libtorrent/src/write_resume_data.cpp:345,1
    - Dst: aux::merkle_tree::load_tree
      Src: /src/libtorrent/src/write_resume_data.cpp:349,1
    - Dst: aux::merkle_tree::get_piece_layer
      Src: /src/libtorrent/src/write_resume_data.cpp:352,1
    - Dst: auto::size
      Src: /src/libtorrent/src/write_resume_data.cpp:353,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/write_resume_data.cpp:353,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/write_resume_data.cpp:354,1
    - Dst: aux::merkle_tree::root
      Src: /src/libtorrent/src/write_resume_data.cpp:356,1
    - Dst: string
      Src: /src/libtorrent/src/write_resume_data.cpp:356,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/write_resume_data.cpp:359,1
    - Dst: ti::v2
      Src: /src/libtorrent/src/write_resume_data.cpp:362,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/write_resume_data.cpp:366,1
    - Dst: url_seeds::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:370,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:372,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:373,1
    - Dst: url_seeds::size
      Src: /src/libtorrent/src/write_resume_data.cpp:373,1
    - Dst: std::copy
      Src: /src/libtorrent/src/write_resume_data.cpp:374,1
    - Dst: url_seeds::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:374,1
    - Dst: url_seeds::end
      Src: /src/libtorrent/src/write_resume_data.cpp:374,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:374,1
    - Dst: http_seeds::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:377,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:379,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:380,1
    - Dst: http_seeds::size
      Src: /src/libtorrent/src/write_resume_data.cpp:380,1
    - Dst: std::copy
      Src: /src/libtorrent/src/write_resume_data.cpp:381,1
    - Dst: http_seeds::begin
      Src: /src/libtorrent/src/write_resume_data.cpp:381,1
    - Dst: http_seeds::end
      Src: /src/libtorrent/src/write_resume_data.cpp:381,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:381,1
    - Dst: dht_nodes::empty
      Src: /src/libtorrent/src/write_resume_data.cpp:385,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:387,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:388,1
    - Dst: dht_nodes::size
      Src: /src/libtorrent/src/write_resume_data.cpp:388,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/write_resume_data.cpp:392,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:394,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/write_resume_data.cpp:394,1
    - Dst: ti::similar_torrents
      Src: /src/libtorrent/src/write_resume_data.cpp:398,1
    - Dst: ti::info
      Src: /src/libtorrent/src/write_resume_data.cpp:398,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:400,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:401,1
    - Dst: ti::similar_torrents
      Src: /src/libtorrent/src/write_resume_data.cpp:401,1
    - Dst: ti::similar_torrents
      Src: /src/libtorrent/src/write_resume_data.cpp:402,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:403,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/src/write_resume_data.cpp:403,1
    - Dst: ti::collections
      Src: /src/libtorrent/src/write_resume_data.cpp:406,1
    - Dst: ti::info
      Src: /src/libtorrent/src/write_resume_data.cpp:406,1
    - Dst: list
      Src: /src/libtorrent/src/write_resume_data.cpp:408,1
    - Dst: reserve
      Src: /src/libtorrent/src/write_resume_data.cpp:409,1
    - Dst: ti::collections
      Src: /src/libtorrent/src/write_resume_data.cpp:409,1
    - Dst: ti::collections
      Src: /src/libtorrent/src/write_resume_data.cpp:410,1
    - Dst: libtorrent::emplace_back
      Src: /src/libtorrent/src/write_resume_data.cpp:411,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/write_resume_data.cpp:415,1
    - Dst: trackers::front
      Src: /src/libtorrent/src/write_resume_data.cpp:416,1
    - Dst: trackers::size
      Src: /src/libtorrent/src/write_resume_data.cpp:417,1
    - Dst: libtorrent::build_tracker_list
      Src: /src/libtorrent/src/write_resume_data.cpp:418,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 56
    argCount: 2
    argNames:
    - ' atp'
    - flags
    argTypes:
    - add_torrent_params
    - write_torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 421
    functionName: libtorrent::write_torrent_file
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 3
    functionsReached:
    - aux::merkle_tree::root
    - root_ptr
    - http_seeds::end
    - merkle_tree_mask::end_index
    - libtorrent::empty
    - http_seeds::size
    - file_size
    - ti::collections
    - pad_file_at
    - aux::merkle_tree::load_tree
    - verified_leaf_hashes::end_index
    - libtorrent::file_range
    - http_seeds::empty
    - url_seeds::end
    - libtorrent::move
    - aux::throw_ex<system_error>
    - preformatted
    - blocks_per_piece
    - ti::info
    - ti::comment
    - list
    - aux::merkle_tree::get_piece_layer
    - libtorrent::emplace_back
    - trackers::size
    - libtorrent::to_string
    - std::copy
    - ti::v2
    - dht_nodes::empty
    - ti::creation_date
    - url_seeds::empty
    - ti::creator
    - libtorrent::piece_length
    - ti::files
    - http_seeds::begin
    - libtorrent::size
    - num_files
    - libtorrent::build_tracker_list
    - url_seeds::size
    - auto::size
    - reserve
    - aux::merkle_tree::load_sparse_tree
    - auto::data
    - file_num_pieces
    - merkle_trees::empty
    - string
    - dict
    - dht_nodes::size
    - url_seeds::begin
    - ti::info_section
    - file_num_blocks
    - std::back_inserter
    - ti::similar_torrents
    - trackers::front
    linkageType: ''
    returnType: entry
    signature: entry write_torrent_file(add_torrent_params const& atp, write_torrent_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_torrent_file
      Src: /src/libtorrent/src/write_resume_data.cpp:427,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/write_resume_data.cpp:428,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' atp'
    - flags
    argTypes:
    - add_torrent_params
    - write_torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: libtorrent::write_torrent_file_buf
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - libtorrent::write_torrent_file
    - libtorrent::bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: "std::vector<char> write_torrent_file_buf(add_torrent_params const&
      atp\n\t\t, write_torrent_flags_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_resume_data
      Src: /src/libtorrent/src/write_resume_data.cpp:435,1
    - Dst: libtorrent::bencode
      Src: /src/libtorrent/src/write_resume_data.cpp:436,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/write_resume_data.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: libtorrent::write_resume_data_buf
    functionSourceFile: /src/libtorrent/src/write_resume_data.cpp
    functionUses: 1
    functionsReached:
    - std::back_inserter
    - libtorrent::bencode
    - libtorrent::write_resume_data
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> write_resume_data_buf(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:61,1
    - Dst: fill
      Src: /src/libtorrent/src/utp_socket_manager.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - send_fun
    - cb
    - ' ios'
    - ' sett'
    - ' cnt'
    - ssl_context
    argTypes:
    - send_fun_t
    - incoming_utp_callback_t
    - io_context
    - aux::session_settings
    - counters
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::utp_socket_manager::utp_socket_manager
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - fill
    - std::move
    linkageType: ''
    returnType: void
    signature: "void utp_socket_manager::utp_socket_manager(\n\t\tsend_fun_t send_fun\n\t\t,
      incoming_utp_callback_t cb\n\t\t, io_context& ios\n\t\t, aux::session_settings
      const& sett\n\t\t, counters& cnt\n\t\t, void* ssl_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: utp_socket_manager::~utp_socket_manager()
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::~utp_socket_manager()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:74,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:75,1
    - Dst: auto::second::should_delete
      Src: /src/libtorrent/src/utp_socket_manager.cpp:77,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:79,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:80,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_socket_manager.cpp:81,1
    - Dst: auto::second::tick
      Src: /src/libtorrent/src/utp_socket_manager.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::utp_socket_manager::tick
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - end
    - auto::second::get
    - auto::second::should_delete
    - auto::second::tick
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::tick(time_point now)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_teredo
      Src: /src/libtorrent/src/utp_socket_manager.cpp:92,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:97,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:98,1
    - Dst: is_v4
      Src: /src/libtorrent/src/utp_socket_manager.cpp:108,1
    - Dst: is_v4
      Src: /src/libtorrent/src/utp_socket_manager.cpp:113,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_socket_manager.cpp:117,1
    - Dst: restrict_mtu
      Src: /src/libtorrent/src/utp_socket_manager.cpp:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::utp_socket_manager::mtu_for_dest
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::is_teredo
    - restrict_mtu
    - std::min
    - get_int
    - is_v4
    linkageType: ''
    returnType: int
    signature: int utp_socket_manager::mtu_for_dest(address const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/utp_socket_manager.cpp:125,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/utp_socket_manager.cpp:133,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 6
    argNames:
    - sock
    - ' ep'
    - p
    - len
    - ' ec'
    - flags
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - char*
    - int
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: libtorrent::aux::utp_socket_manager::send_packet
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - m_send_fun
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void utp_socket_manager::send_packet(std::weak_ptr<utp_socket_interface>
      sock\n\t\t, udp::endpoint const& ep, char const* p\n\t\t, int const len, error_code&
      ec, udp_send_flags_t const flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/utp_socket_manager.cpp:143,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:143,1
    - Dst: reinterpret_cast<utp_header const*>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:145,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/utp_socket_manager.cpp:145,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_socket_manager.cpp:149,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_socket_manager.cpp:151,1
    - Dst: match
      Src: /src/libtorrent/src/utp_socket_manager.cpp:159,1
    - Dst: libtorrent::aux::utp_socket_manager::incoming_packet
      Src: /src/libtorrent/src/utp_socket_manager.cpp:161,1
    - Dst: send_deferred_ack
      Src: /src/libtorrent/src/utp_socket_manager.cpp:171,1
    - Dst: equal_range
      Src: /src/libtorrent/src/utp_socket_manager.cpp:175,1
    - Dst: auto::first::second::match
      Src: /src/libtorrent/src/utp_socket_manager.cpp:179,1
    - Dst: auto::first::second::incoming_packet
      Src: /src/libtorrent/src/utp_socket_manager.cpp:180,1
    - Dst: auto::first::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:181,1
    - Dst: get_bool
      Src: /src/libtorrent/src/utp_socket_manager.cpp:187,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_socket_manager.cpp:192,1
    - Dst: size
      Src: /src/libtorrent/src/utp_socket_manager.cpp:195,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:198,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:209,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:210,1
    - Dst: boost::get<utp_stream>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:215,1
    - Dst: libtorrent::aux::utp_socket_manager::mtu_for_dest
      Src: /src/libtorrent/src/utp_socket_manager.cpp:216,1
    - Dst: address
      Src: /src/libtorrent/src/utp_socket_manager.cpp:216,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:217,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:218,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:218,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:219,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:221,1
    - Dst: m_cb
      Src: /src/libtorrent/src/utp_socket_manager.cpp:222,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:222,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_socket_manager.cpp:228,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - socket
    - ' ep'
    - p
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 233
    functionName: libtorrent::aux::utp_socket_manager::incoming_packet
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 1
    functionsReached:
    - auto*::get_version
    - match
    - std::move
    - boost::get<utp_stream>
    - span<char const>::size
    - get_bool
    - libtorrent::aux::utp_socket_manager::mtu_for_dest
    - utp_stream*::get_impl
    - auto*::get_type
    - is_ssl
    - send_deferred_ack
    - get_int
    - libtorrent::aux::utp_socket_manager::incoming_packet
    - address
    - auto::first::second::get
    - time_now
    - equal_range
    - auto::first::second::match
    - TORRENT_ASSERT
    - size
    - std::ptrdiff_t
    - boost::get<ssl_stream<utp_stream>>
    - span<char const>::data
    - auto::first::second::incoming_packet
    - reinterpret_cast<utp_header const*>
    - m_cb
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_manager::incoming_packet(std::weak_ptr<utp_socket_interface>
      socket\n\t\t, udp::endpoint const& ep, span<char const> p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:238,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_socket_manager.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: libtorrent::aux::utp_socket_manager::subscribe_writable
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::subscribe_writable(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/utp_socket_manager.cpp:244,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_socket_manager.cpp:246,1
    - Dst: swap
      Src: /src/libtorrent/src/utp_socket_manager.cpp:247,1
    - Dst: libtorrent::aux::utp_socket_manager::writable
      Src: /src/libtorrent/src/utp_socket_manager.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: libtorrent::aux::utp_socket_manager::writable
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 1
    functionsReached:
    - swap
    - libtorrent::aux::utp_socket_manager::writable
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::writable()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utp_socket_impl*::send_deferred_ack
      Src: /src/libtorrent/src/utp_socket_manager.cpp:261,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_socket_manager.cpp:264,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_socket_manager.cpp:266,1
    - Dst: swap
      Src: /src/libtorrent/src/utp_socket_manager.cpp:267,1
    - Dst: utp_socket_impl*::socket_drained
      Src: /src/libtorrent/src/utp_socket_manager.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 271
    functionName: libtorrent::aux::utp_socket_manager::socket_drained
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - swap
    - empty
    - utp_socket_impl*::socket_drained
    - utp_socket_impl*::send_deferred_ack
    - clear
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::socket_drained()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: libtorrent::aux::utp_socket_manager::defer_ack
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::defer_ack(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: libtorrent::aux::utp_socket_manager::cancel_deferred_ack
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::cancel_deferred_ack(utp_socket_impl* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:289,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_socket_manager.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: libtorrent::aux::utp_socket_manager::subscribe_drained
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::subscribe_drained(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<utp_socket_interface>::lock
      Src: /src/libtorrent/src/utp_socket_manager.cpp:295,1
    - Dst: second::m_sock::lock
      Src: /src/libtorrent/src/utp_socket_manager.cpp:298,1
    - Dst: second::abort
      Src: /src/libtorrent/src/utp_socket_manager.cpp:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: libtorrent::aux::utp_socket_manager::remove_udp_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - second::m_sock::lock
    - second::abort
    - std::weak_ptr<utp_socket_interface>::lock
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::remove_udp_socket(std::weak_ptr<utp_socket_interface>
      sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:307,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:308,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:309,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:310,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_socket_manager.cpp:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: libtorrent::aux::utp_socket_manager::remove_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - auto::second::get
    - find
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::remove_socket(std::uint16_t const id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:316,1
    - Dst: libtorrent::aux::utp_socket_manager::inc_stats_counter
      Src: /src/libtorrent/src/utp_socket_manager.cpp:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - counter
    - delta
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: libtorrent::aux::utp_socket_manager::inc_stats_counter
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_manager::inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::inc_stats_counter(int counter, int delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:329,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:330,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:335,1
    - Dst: random
      Src: /src/libtorrent/src/utp_socket_manager.cpp:335,1
    - Dst: std::make_unique<utp_socket_impl>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:338,1
    - Dst: auto::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:339,1
    - Dst: emplace
      Src: /src/libtorrent/src/utp_socket_manager.cpp:340,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - utp_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: libtorrent::aux::utp_socket_manager::new_utp_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<utp_socket_impl>
    - std::move
    - std::uint16_t
    - auto::get
    - emplace
    - random
    linkageType: ''
    returnType: utp_socket_impl
    signature: utp_socket_impl * utp_socket_manager::new_utp_socket(utp_stream* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:61,1
    - Dst: fill
      Src: /src/libtorrent/src/utp_socket_manager.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - send_fun
    - cb
    - ' ios'
    - ' sett'
    - ' cnt'
    - ssl_context
    argTypes:
    - send_fun_t
    - incoming_utp_callback_t
    - io_context
    - aux::session_settings
    - counters
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::utp_socket_manager::utp_socket_manager
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - fill
    - std::move
    linkageType: ''
    returnType: void
    signature: "void utp_socket_manager::utp_socket_manager(\n\t\tsend_fun_t send_fun\n\t\t,
      incoming_utp_callback_t cb\n\t\t, io_context& ios\n\t\t, aux::session_settings
      const& sett\n\t\t, counters& cnt\n\t\t, void* ssl_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: utp_socket_manager::~utp_socket_manager()
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::~utp_socket_manager()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:74,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:75,1
    - Dst: auto::second::should_delete
      Src: /src/libtorrent/src/utp_socket_manager.cpp:77,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:79,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:80,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_socket_manager.cpp:81,1
    - Dst: auto::second::tick
      Src: /src/libtorrent/src/utp_socket_manager.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::utp_socket_manager::tick
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - end
    - auto::second::get
    - auto::second::should_delete
    - auto::second::tick
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::tick(time_point now)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_teredo
      Src: /src/libtorrent/src/utp_socket_manager.cpp:92,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:97,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:98,1
    - Dst: is_v4
      Src: /src/libtorrent/src/utp_socket_manager.cpp:108,1
    - Dst: is_v4
      Src: /src/libtorrent/src/utp_socket_manager.cpp:113,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_socket_manager.cpp:117,1
    - Dst: restrict_mtu
      Src: /src/libtorrent/src/utp_socket_manager.cpp:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::utp_socket_manager::mtu_for_dest
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::is_teredo
    - restrict_mtu
    - std::min
    - get_int
    - is_v4
    linkageType: ''
    returnType: int
    signature: int utp_socket_manager::mtu_for_dest(address const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/utp_socket_manager.cpp:125,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/utp_socket_manager.cpp:133,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 6
    argNames:
    - sock
    - ' ep'
    - p
    - len
    - ' ec'
    - flags
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - char*
    - int
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: libtorrent::aux::utp_socket_manager::send_packet
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - m_send_fun
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void utp_socket_manager::send_packet(std::weak_ptr<utp_socket_interface>
      sock\n\t\t, udp::endpoint const& ep, char const* p\n\t\t, int const len, error_code&
      ec, udp_send_flags_t const flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/utp_socket_manager.cpp:143,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:143,1
    - Dst: reinterpret_cast<utp_header const*>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:145,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/utp_socket_manager.cpp:145,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_socket_manager.cpp:149,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_socket_manager.cpp:151,1
    - Dst: match
      Src: /src/libtorrent/src/utp_socket_manager.cpp:159,1
    - Dst: libtorrent::aux::utp_socket_manager::incoming_packet
      Src: /src/libtorrent/src/utp_socket_manager.cpp:161,1
    - Dst: send_deferred_ack
      Src: /src/libtorrent/src/utp_socket_manager.cpp:171,1
    - Dst: equal_range
      Src: /src/libtorrent/src/utp_socket_manager.cpp:175,1
    - Dst: auto::first::second::match
      Src: /src/libtorrent/src/utp_socket_manager.cpp:179,1
    - Dst: auto::first::second::incoming_packet
      Src: /src/libtorrent/src/utp_socket_manager.cpp:180,1
    - Dst: auto::first::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:181,1
    - Dst: get_bool
      Src: /src/libtorrent/src/utp_socket_manager.cpp:187,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_socket_manager.cpp:192,1
    - Dst: size
      Src: /src/libtorrent/src/utp_socket_manager.cpp:195,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:198,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:209,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:210,1
    - Dst: boost::get<utp_stream>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:215,1
    - Dst: libtorrent::aux::utp_socket_manager::mtu_for_dest
      Src: /src/libtorrent/src/utp_socket_manager.cpp:216,1
    - Dst: address
      Src: /src/libtorrent/src/utp_socket_manager.cpp:216,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:217,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:218,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:218,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:219,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:221,1
    - Dst: m_cb
      Src: /src/libtorrent/src/utp_socket_manager.cpp:222,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:222,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_socket_manager.cpp:228,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - socket
    - ' ep'
    - p
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 233
    functionName: libtorrent::aux::utp_socket_manager::incoming_packet
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 2
    functionsReached:
    - auto*::get_version
    - match
    - std::move
    - boost::get<utp_stream>
    - span<char const>::size
    - get_bool
    - libtorrent::aux::utp_socket_manager::mtu_for_dest
    - utp_stream*::get_impl
    - auto*::get_type
    - is_ssl
    - send_deferred_ack
    - get_int
    - libtorrent::aux::utp_socket_manager::incoming_packet
    - address
    - auto::first::second::get
    - time_now
    - equal_range
    - auto::first::second::match
    - TORRENT_ASSERT
    - size
    - std::ptrdiff_t
    - boost::get<ssl_stream<utp_stream>>
    - span<char const>::data
    - auto::first::second::incoming_packet
    - reinterpret_cast<utp_header const*>
    - m_cb
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_manager::incoming_packet(std::weak_ptr<utp_socket_interface>
      socket\n\t\t, udp::endpoint const& ep, span<char const> p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:238,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_socket_manager.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: libtorrent::aux::utp_socket_manager::subscribe_writable
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::subscribe_writable(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/utp_socket_manager.cpp:244,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_socket_manager.cpp:246,1
    - Dst: swap
      Src: /src/libtorrent/src/utp_socket_manager.cpp:247,1
    - Dst: libtorrent::aux::utp_socket_manager::writable
      Src: /src/libtorrent/src/utp_socket_manager.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: libtorrent::aux::utp_socket_manager::writable
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 2
    functionsReached:
    - swap
    - libtorrent::aux::utp_socket_manager::writable
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::writable()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utp_socket_impl*::send_deferred_ack
      Src: /src/libtorrent/src/utp_socket_manager.cpp:261,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_socket_manager.cpp:264,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_socket_manager.cpp:266,1
    - Dst: swap
      Src: /src/libtorrent/src/utp_socket_manager.cpp:267,1
    - Dst: utp_socket_impl*::socket_drained
      Src: /src/libtorrent/src/utp_socket_manager.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 271
    functionName: libtorrent::aux::utp_socket_manager::socket_drained
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - swap
    - empty
    - utp_socket_impl*::socket_drained
    - utp_socket_impl*::send_deferred_ack
    - clear
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::socket_drained()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: libtorrent::aux::utp_socket_manager::defer_ack
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::defer_ack(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: libtorrent::aux::utp_socket_manager::cancel_deferred_ack
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::cancel_deferred_ack(utp_socket_impl* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:289,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_socket_manager.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: libtorrent::aux::utp_socket_manager::subscribe_drained
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::subscribe_drained(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<utp_socket_interface>::lock
      Src: /src/libtorrent/src/utp_socket_manager.cpp:295,1
    - Dst: second::m_sock::lock
      Src: /src/libtorrent/src/utp_socket_manager.cpp:298,1
    - Dst: second::abort
      Src: /src/libtorrent/src/utp_socket_manager.cpp:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: libtorrent::aux::utp_socket_manager::remove_udp_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - second::m_sock::lock
    - second::abort
    - std::weak_ptr<utp_socket_interface>::lock
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::remove_udp_socket(std::weak_ptr<utp_socket_interface>
      sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:307,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:308,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:309,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:310,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_socket_manager.cpp:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: libtorrent::aux::utp_socket_manager::remove_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - auto::second::get
    - find
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::remove_socket(std::uint16_t const id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:316,1
    - Dst: libtorrent::aux::utp_socket_manager::inc_stats_counter
      Src: /src/libtorrent/src/utp_socket_manager.cpp:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - counter
    - delta
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: libtorrent::aux::utp_socket_manager::inc_stats_counter
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_manager::inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::inc_stats_counter(int counter, int delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:329,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:330,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:335,1
    - Dst: random
      Src: /src/libtorrent/src/utp_socket_manager.cpp:335,1
    - Dst: std::make_unique<utp_socket_impl>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:338,1
    - Dst: auto::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:339,1
    - Dst: emplace
      Src: /src/libtorrent/src/utp_socket_manager.cpp:340,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - utp_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: libtorrent::aux::utp_socket_manager::new_utp_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<utp_socket_impl>
    - std::move
    - std::uint16_t
    - auto::get
    - emplace
    - random
    linkageType: ''
    returnType: utp_socket_impl
    signature: utp_socket_impl * utp_socket_manager::new_utp_socket(utp_stream* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:61,1
    - Dst: fill
      Src: /src/libtorrent/src/utp_socket_manager.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - send_fun
    - cb
    - ' ios'
    - ' sett'
    - ' cnt'
    - ssl_context
    argTypes:
    - send_fun_t
    - incoming_utp_callback_t
    - io_context
    - aux::session_settings
    - counters
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::utp_socket_manager::utp_socket_manager
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - fill
    - std::move
    linkageType: ''
    returnType: void
    signature: "void utp_socket_manager::utp_socket_manager(\n\t\tsend_fun_t send_fun\n\t\t,
      incoming_utp_callback_t cb\n\t\t, io_context& ios\n\t\t, aux::session_settings
      const& sett\n\t\t, counters& cnt\n\t\t, void* ssl_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: utp_socket_manager::~utp_socket_manager()
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::~utp_socket_manager()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:74,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:75,1
    - Dst: auto::second::should_delete
      Src: /src/libtorrent/src/utp_socket_manager.cpp:77,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:79,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:80,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_socket_manager.cpp:81,1
    - Dst: auto::second::tick
      Src: /src/libtorrent/src/utp_socket_manager.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::utp_socket_manager::tick
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - end
    - auto::second::get
    - auto::second::should_delete
    - auto::second::tick
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::tick(time_point now)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_teredo
      Src: /src/libtorrent/src/utp_socket_manager.cpp:92,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:97,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:98,1
    - Dst: is_v4
      Src: /src/libtorrent/src/utp_socket_manager.cpp:108,1
    - Dst: is_v4
      Src: /src/libtorrent/src/utp_socket_manager.cpp:113,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_socket_manager.cpp:117,1
    - Dst: restrict_mtu
      Src: /src/libtorrent/src/utp_socket_manager.cpp:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::utp_socket_manager::mtu_for_dest
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::is_teredo
    - restrict_mtu
    - std::min
    - get_int
    - is_v4
    linkageType: ''
    returnType: int
    signature: int utp_socket_manager::mtu_for_dest(address const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/utp_socket_manager.cpp:125,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/utp_socket_manager.cpp:133,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 6
    argNames:
    - sock
    - ' ep'
    - p
    - len
    - ' ec'
    - flags
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - char*
    - int
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: libtorrent::aux::utp_socket_manager::send_packet
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - m_send_fun
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void utp_socket_manager::send_packet(std::weak_ptr<utp_socket_interface>
      sock\n\t\t, udp::endpoint const& ep, char const* p\n\t\t, int const len, error_code&
      ec, udp_send_flags_t const flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/utp_socket_manager.cpp:143,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:143,1
    - Dst: reinterpret_cast<utp_header const*>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:145,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/utp_socket_manager.cpp:145,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_socket_manager.cpp:149,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_socket_manager.cpp:151,1
    - Dst: match
      Src: /src/libtorrent/src/utp_socket_manager.cpp:159,1
    - Dst: libtorrent::aux::utp_socket_manager::incoming_packet
      Src: /src/libtorrent/src/utp_socket_manager.cpp:161,1
    - Dst: send_deferred_ack
      Src: /src/libtorrent/src/utp_socket_manager.cpp:171,1
    - Dst: equal_range
      Src: /src/libtorrent/src/utp_socket_manager.cpp:175,1
    - Dst: auto::first::second::match
      Src: /src/libtorrent/src/utp_socket_manager.cpp:179,1
    - Dst: auto::first::second::incoming_packet
      Src: /src/libtorrent/src/utp_socket_manager.cpp:180,1
    - Dst: auto::first::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:181,1
    - Dst: get_bool
      Src: /src/libtorrent/src/utp_socket_manager.cpp:187,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_socket_manager.cpp:192,1
    - Dst: size
      Src: /src/libtorrent/src/utp_socket_manager.cpp:195,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:198,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:209,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:210,1
    - Dst: boost::get<utp_stream>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:215,1
    - Dst: libtorrent::aux::utp_socket_manager::mtu_for_dest
      Src: /src/libtorrent/src/utp_socket_manager.cpp:216,1
    - Dst: address
      Src: /src/libtorrent/src/utp_socket_manager.cpp:216,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:217,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:218,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:218,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:219,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:221,1
    - Dst: m_cb
      Src: /src/libtorrent/src/utp_socket_manager.cpp:222,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:222,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_socket_manager.cpp:228,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - socket
    - ' ep'
    - p
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 233
    functionName: libtorrent::aux::utp_socket_manager::incoming_packet
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 3
    functionsReached:
    - auto*::get_version
    - match
    - std::move
    - boost::get<utp_stream>
    - span<char const>::size
    - get_bool
    - libtorrent::aux::utp_socket_manager::mtu_for_dest
    - utp_stream*::get_impl
    - auto*::get_type
    - is_ssl
    - send_deferred_ack
    - get_int
    - libtorrent::aux::utp_socket_manager::incoming_packet
    - address
    - auto::first::second::get
    - time_now
    - equal_range
    - auto::first::second::match
    - TORRENT_ASSERT
    - size
    - std::ptrdiff_t
    - boost::get<ssl_stream<utp_stream>>
    - span<char const>::data
    - auto::first::second::incoming_packet
    - reinterpret_cast<utp_header const*>
    - m_cb
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_manager::incoming_packet(std::weak_ptr<utp_socket_interface>
      socket\n\t\t, udp::endpoint const& ep, span<char const> p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:238,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_socket_manager.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: libtorrent::aux::utp_socket_manager::subscribe_writable
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::subscribe_writable(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/utp_socket_manager.cpp:244,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_socket_manager.cpp:246,1
    - Dst: swap
      Src: /src/libtorrent/src/utp_socket_manager.cpp:247,1
    - Dst: libtorrent::aux::utp_socket_manager::writable
      Src: /src/libtorrent/src/utp_socket_manager.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: libtorrent::aux::utp_socket_manager::writable
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 3
    functionsReached:
    - swap
    - libtorrent::aux::utp_socket_manager::writable
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::writable()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utp_socket_impl*::send_deferred_ack
      Src: /src/libtorrent/src/utp_socket_manager.cpp:261,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_socket_manager.cpp:264,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_socket_manager.cpp:266,1
    - Dst: swap
      Src: /src/libtorrent/src/utp_socket_manager.cpp:267,1
    - Dst: utp_socket_impl*::socket_drained
      Src: /src/libtorrent/src/utp_socket_manager.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 271
    functionName: libtorrent::aux::utp_socket_manager::socket_drained
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - swap
    - empty
    - utp_socket_impl*::socket_drained
    - utp_socket_impl*::send_deferred_ack
    - clear
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::socket_drained()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: libtorrent::aux::utp_socket_manager::defer_ack
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::defer_ack(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: libtorrent::aux::utp_socket_manager::cancel_deferred_ack
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::cancel_deferred_ack(utp_socket_impl* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:289,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_socket_manager.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: libtorrent::aux::utp_socket_manager::subscribe_drained
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::subscribe_drained(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<utp_socket_interface>::lock
      Src: /src/libtorrent/src/utp_socket_manager.cpp:295,1
    - Dst: second::m_sock::lock
      Src: /src/libtorrent/src/utp_socket_manager.cpp:298,1
    - Dst: second::abort
      Src: /src/libtorrent/src/utp_socket_manager.cpp:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: libtorrent::aux::utp_socket_manager::remove_udp_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - second::m_sock::lock
    - second::abort
    - std::weak_ptr<utp_socket_interface>::lock
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::remove_udp_socket(std::weak_ptr<utp_socket_interface>
      sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:307,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:308,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:309,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:310,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_socket_manager.cpp:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: libtorrent::aux::utp_socket_manager::remove_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - auto::second::get
    - find
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::remove_socket(std::uint16_t const id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:316,1
    - Dst: libtorrent::aux::utp_socket_manager::inc_stats_counter
      Src: /src/libtorrent/src/utp_socket_manager.cpp:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - counter
    - delta
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: libtorrent::aux::utp_socket_manager::inc_stats_counter
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_manager::inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::inc_stats_counter(int counter, int delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:329,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:330,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:335,1
    - Dst: random
      Src: /src/libtorrent/src/utp_socket_manager.cpp:335,1
    - Dst: std::make_unique<utp_socket_impl>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:338,1
    - Dst: auto::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:339,1
    - Dst: emplace
      Src: /src/libtorrent/src/utp_socket_manager.cpp:340,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - utp_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: libtorrent::aux::utp_socket_manager::new_utp_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<utp_socket_impl>
    - std::move
    - std::uint16_t
    - auto::get
    - emplace
    - random
    linkageType: ''
    returnType: utp_socket_impl
    signature: utp_socket_impl * utp_socket_manager::new_utp_socket(utp_stream* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:60,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:61,1
    - Dst: fill
      Src: /src/libtorrent/src/utp_socket_manager.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - send_fun
    - cb
    - ' ios'
    - ' sett'
    - ' cnt'
    - ssl_context
    argTypes:
    - send_fun_t
    - incoming_utp_callback_t
    - io_context
    - aux::session_settings
    - counters
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::utp_socket_manager::utp_socket_manager
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - fill
    - std::move
    linkageType: ''
    returnType: void
    signature: "void utp_socket_manager::utp_socket_manager(\n\t\tsend_fun_t send_fun\n\t\t,
      incoming_utp_callback_t cb\n\t\t, io_context& ios\n\t\t, aux::session_settings
      const& sett\n\t\t, counters& cnt\n\t\t, void* ssl_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: utp_socket_manager::~utp_socket_manager()
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::~utp_socket_manager()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:74,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:75,1
    - Dst: auto::second::should_delete
      Src: /src/libtorrent/src/utp_socket_manager.cpp:77,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:79,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:80,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_socket_manager.cpp:81,1
    - Dst: auto::second::tick
      Src: /src/libtorrent/src/utp_socket_manager.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::utp_socket_manager::tick
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - end
    - auto::second::get
    - auto::second::should_delete
    - auto::second::tick
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::tick(time_point now)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_teredo
      Src: /src/libtorrent/src/utp_socket_manager.cpp:92,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:97,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:98,1
    - Dst: is_v4
      Src: /src/libtorrent/src/utp_socket_manager.cpp:108,1
    - Dst: is_v4
      Src: /src/libtorrent/src/utp_socket_manager.cpp:113,1
    - Dst: std::min
      Src: /src/libtorrent/src/utp_socket_manager.cpp:117,1
    - Dst: restrict_mtu
      Src: /src/libtorrent/src/utp_socket_manager.cpp:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::utp_socket_manager::mtu_for_dest
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::is_teredo
    - restrict_mtu
    - std::min
    - get_int
    - is_v4
    linkageType: ''
    returnType: int
    signature: int utp_socket_manager::mtu_for_dest(address const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/utp_socket_manager.cpp:125,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/utp_socket_manager.cpp:133,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 6
    argNames:
    - sock
    - ' ep'
    - p
    - len
    - ' ec'
    - flags
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - char*
    - int
    - error_code
    - udp_send_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: libtorrent::aux::utp_socket_manager::send_packet
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - m_send_fun
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void utp_socket_manager::send_packet(std::weak_ptr<utp_socket_interface>
      sock\n\t\t, udp::endpoint const& ep, char const* p\n\t\t, int const len, error_code&
      ec, udp_send_flags_t const flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/utp_socket_manager.cpp:143,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:143,1
    - Dst: reinterpret_cast<utp_header const*>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:145,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/utp_socket_manager.cpp:145,1
    - Dst: auto*::get_version
      Src: /src/libtorrent/src/utp_socket_manager.cpp:149,1
    - Dst: time_now
      Src: /src/libtorrent/src/utp_socket_manager.cpp:151,1
    - Dst: match
      Src: /src/libtorrent/src/utp_socket_manager.cpp:159,1
    - Dst: libtorrent::aux::utp_socket_manager::incoming_packet
      Src: /src/libtorrent/src/utp_socket_manager.cpp:161,1
    - Dst: send_deferred_ack
      Src: /src/libtorrent/src/utp_socket_manager.cpp:171,1
    - Dst: equal_range
      Src: /src/libtorrent/src/utp_socket_manager.cpp:175,1
    - Dst: auto::first::second::match
      Src: /src/libtorrent/src/utp_socket_manager.cpp:179,1
    - Dst: auto::first::second::incoming_packet
      Src: /src/libtorrent/src/utp_socket_manager.cpp:180,1
    - Dst: auto::first::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:181,1
    - Dst: get_bool
      Src: /src/libtorrent/src/utp_socket_manager.cpp:187,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_socket_manager.cpp:192,1
    - Dst: size
      Src: /src/libtorrent/src/utp_socket_manager.cpp:195,1
    - Dst: get_int
      Src: /src/libtorrent/src/utp_socket_manager.cpp:195,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:198,1
    - Dst: is_ssl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:209,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:210,1
    - Dst: boost::get<utp_stream>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:215,1
    - Dst: libtorrent::aux::utp_socket_manager::mtu_for_dest
      Src: /src/libtorrent/src/utp_socket_manager.cpp:216,1
    - Dst: address
      Src: /src/libtorrent/src/utp_socket_manager.cpp:216,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:217,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:218,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:218,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:219,1
    - Dst: utp_stream*::get_impl
      Src: /src/libtorrent/src/utp_socket_manager.cpp:221,1
    - Dst: m_cb
      Src: /src/libtorrent/src/utp_socket_manager.cpp:222,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:222,1
    - Dst: auto*::get_type
      Src: /src/libtorrent/src/utp_socket_manager.cpp:228,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - socket
    - ' ep'
    - p
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 233
    functionName: libtorrent::aux::utp_socket_manager::incoming_packet
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 4
    functionsReached:
    - auto*::get_version
    - match
    - std::move
    - boost::get<utp_stream>
    - span<char const>::size
    - get_bool
    - libtorrent::aux::utp_socket_manager::mtu_for_dest
    - utp_stream*::get_impl
    - auto*::get_type
    - is_ssl
    - send_deferred_ack
    - get_int
    - libtorrent::aux::utp_socket_manager::incoming_packet
    - address
    - auto::first::second::get
    - time_now
    - equal_range
    - auto::first::second::match
    - TORRENT_ASSERT
    - size
    - std::ptrdiff_t
    - boost::get<ssl_stream<utp_stream>>
    - span<char const>::data
    - auto::first::second::incoming_packet
    - reinterpret_cast<utp_header const*>
    - m_cb
    linkageType: ''
    returnType: bool
    signature: "bool utp_socket_manager::incoming_packet(std::weak_ptr<utp_socket_interface>
      socket\n\t\t, udp::endpoint const& ep, span<char const> p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:237,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:238,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_socket_manager.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: libtorrent::aux::utp_socket_manager::subscribe_writable
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::subscribe_writable(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/utp_socket_manager.cpp:244,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_socket_manager.cpp:246,1
    - Dst: swap
      Src: /src/libtorrent/src/utp_socket_manager.cpp:247,1
    - Dst: libtorrent::aux::utp_socket_manager::writable
      Src: /src/libtorrent/src/utp_socket_manager.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: libtorrent::aux::utp_socket_manager::writable
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 4
    functionsReached:
    - swap
    - libtorrent::aux::utp_socket_manager::writable
    - empty
    - clear
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::writable()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utp_socket_impl*::send_deferred_ack
      Src: /src/libtorrent/src/utp_socket_manager.cpp:261,1
    - Dst: empty
      Src: /src/libtorrent/src/utp_socket_manager.cpp:264,1
    - Dst: clear
      Src: /src/libtorrent/src/utp_socket_manager.cpp:266,1
    - Dst: swap
      Src: /src/libtorrent/src/utp_socket_manager.cpp:267,1
    - Dst: utp_socket_impl*::socket_drained
      Src: /src/libtorrent/src/utp_socket_manager.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 271
    functionName: libtorrent::aux::utp_socket_manager::socket_drained
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - swap
    - empty
    - utp_socket_impl*::socket_drained
    - utp_socket_impl*::send_deferred_ack
    - clear
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::socket_drained()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: libtorrent::aux::utp_socket_manager::defer_ack
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::defer_ack(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: libtorrent::aux::utp_socket_manager::cancel_deferred_ack
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::cancel_deferred_ack(utp_socket_impl* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: std::find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: begin
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:288,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:289,1
    - Dst: push_back
      Src: /src/libtorrent/src/utp_socket_manager.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - utp_socket_impl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: libtorrent::aux::utp_socket_manager::subscribe_drained
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::subscribe_drained(utp_socket_impl* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<utp_socket_interface>::lock
      Src: /src/libtorrent/src/utp_socket_manager.cpp:295,1
    - Dst: second::m_sock::lock
      Src: /src/libtorrent/src/utp_socket_manager.cpp:298,1
    - Dst: second::abort
      Src: /src/libtorrent/src/utp_socket_manager.cpp:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - std::weak_ptr<utp_socket_interface>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: libtorrent::aux::utp_socket_manager::remove_udp_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - second::m_sock::lock
    - second::abort
    - std::weak_ptr<utp_socket_interface>::lock
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::remove_udp_socket(std::weak_ptr<utp_socket_interface>
      sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/utp_socket_manager.cpp:307,1
    - Dst: end
      Src: /src/libtorrent/src/utp_socket_manager.cpp:308,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:309,1
    - Dst: auto::second::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:310,1
    - Dst: erase
      Src: /src/libtorrent/src/utp_socket_manager.cpp:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: libtorrent::aux::utp_socket_manager::remove_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - auto::second::get
    - find
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::remove_socket(std::uint16_t const id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/utp_socket_manager.cpp:316,1
    - Dst: libtorrent::aux::utp_socket_manager::inc_stats_counter
      Src: /src/libtorrent/src/utp_socket_manager.cpp:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - counter
    - delta
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: libtorrent::aux::utp_socket_manager::inc_stats_counter
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::utp_socket_manager::inc_stats_counter
    linkageType: ''
    returnType: void
    signature: void utp_socket_manager::inc_stats_counter(int counter, int delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:329,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:330,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/utp_socket_manager.cpp:335,1
    - Dst: random
      Src: /src/libtorrent/src/utp_socket_manager.cpp:335,1
    - Dst: std::make_unique<utp_socket_impl>
      Src: /src/libtorrent/src/utp_socket_manager.cpp:338,1
    - Dst: auto::get
      Src: /src/libtorrent/src/utp_socket_manager.cpp:339,1
    - Dst: emplace
      Src: /src/libtorrent/src/utp_socket_manager.cpp:340,1
    - Dst: std::move
      Src: /src/libtorrent/src/utp_socket_manager.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - utp_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: libtorrent::aux::utp_socket_manager::new_utp_socket
    functionSourceFile: /src/libtorrent/src/utp_socket_manager.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<utp_socket_impl>
    - std::move
    - std::uint16_t
    - auto::get
    - emplace
    - random
    linkageType: ''
    returnType: utp_socket_impl
    signature: utp_socket_impl * utp_socket_manager::new_utp_socket(utp_stream* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: round_up
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int round_up(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: round_up
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int round_up(int n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/posix_part_file.cpp:90,1
    - Dst: std::move
      Src: /src/libtorrent/src/posix_part_file.cpp:91,1
    - Dst: round_up
      Src: /src/libtorrent/src/posix_part_file.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:96,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:97,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:100,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:106,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:106,1
    - Dst: error_code::assign
      Src: /src/libtorrent/src/posix_part_file.cpp:108,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:108,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:113,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:116,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:118,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:119,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/posix_part_file.cpp:128,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:130,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:130,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:136,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:136,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:137,1
    - Dst: next
      Src: /src/libtorrent/src/posix_part_file.cpp:140,1
    - Dst: push_back
      Src: /src/libtorrent/src/posix_part_file.cpp:149,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - path
    - name
    - num_pieces
    - piece_size
    argTypes:
    - std::string
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::posix_part_file::posix_part_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - round_up
    - push_back
    - std::vector::data
    - std::fread
    - std::move
    - std::vector::size
    - error_code::assign
    - read_uint32
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - generic_category
    - std::size_t
    - auto::file
    - aux::vector::resize
    - slot_index_t
    - next
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void posix_part_file::posix_part_file(std::string path, std::string
      name\n\t\t, int const num_pieces, int const piece_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: posix_part_file::~posix_part_file()
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::~posix_part_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:163,1
    - Dst: front
      Src: /src/libtorrent/src/posix_part_file.cpp:165,1
    - Dst: erase
      Src: /src/libtorrent/src/posix_part_file.cpp:166,1
    - Dst: begin
      Src: /src/libtorrent/src/posix_part_file.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: libtorrent::aux::posix_part_file::allocate_slot
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - empty
    - end
    - find
    - front
    - TORRENT_ASSERT
    linkageType: ''
    returnType: slot_index_t
    signature: slot_index_t posix_part_file::allocate_slot(piece_index_t const piece)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:183,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:183,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:185,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:188,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:189,1
    - Dst: libtorrent::aux::posix_part_file::allocate_slot
      Src: /src/libtorrent/src/posix_part_file.cpp:190,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:194,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:194,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:198,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:198,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:200,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: libtorrent::aux::posix_part_file::write
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - portable_fseeko
    - std::fwrite
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - generic_category
    - assign
    - auto::file
    - libtorrent::aux::posix_part_file::allocate_slot
    - std::size_t
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::write(span<char> buf, piece_index_t const piece\n\t\t,
      int const offset, error_code& ec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:211,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:211,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:213,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:214,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/posix_part_file.cpp:216,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:222,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:227,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:227,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:231,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:231,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:234,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_part_file.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 238
    functionName: libtorrent::aux::posix_part_file::read
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - portable_fseeko
    - std::fread
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - std::ferror
    - generic_category
    - make_error_code
    - assign
    - auto::file
    - std::size_t
    - libtorrent_category
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::read(span<char> buf\n\t\t, piece_index_t const
      piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::do_hash
      Src: /src/libtorrent/src/posix_part_file.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: libtorrent::aux::posix_part_file::hash
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::hash(hasher& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::do_hash
      Src: /src/libtorrent/src/posix_part_file.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher256
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: libtorrent::aux::posix_part_file::hash2
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::hash2(hasher256& ph\n\t\t, std::ptrdiff_t const
      len\n\t\t, piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:262,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:264,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:266,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:267,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_part_file.cpp:269,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:270,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:275,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:280,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:280,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:282,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:282,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:286,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:288,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:288,1
    - Dst: update
      Src: /src/libtorrent/src/posix_part_file.cpp:291,1
    - Dst: numeric_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - Hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 293
    functionName: libtorrent::aux::posix_part_file::do_hash
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - portable_fseeko
    - std::vector::data
    - std::fread
    - std::vector::size
    - update
    - error_code
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - std::int64_t
    - generic_category
    - numeric_cast<int>
    - assign
    - auto::file
    - boost::system::generic_category
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::do_hash(Hasher& ph\n\t\t, std::ptrdiff_t const
      len\n\t\t, piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:297,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_part_file.cpp:300,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_part_file.cpp:300,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/posix_part_file.cpp:301,1
    - Dst: ::fopen
      Src: /src/libtorrent/src/posix_part_file.cpp:304,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_part_file.cpp:304,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/posix_part_file.cpp:305,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_part_file.cpp:307,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:308,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:308,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:315,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_part_file.cpp:316,1
    - Dst: file_pointer
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: file_pointer
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: ::fopen
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_part_file.cpp:325,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:326,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - mode
    - ' ec'
    argTypes:
    - open_mode
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 330
    functionName: libtorrent::aux::posix_part_file::open_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 4
    functionsReached:
    - combine_path
    - create_directories
    - std::string::c_str
    - ::_wfopen
    - file_pointer::file
    - generic_category
    - ::fopen
    - convert_to_native_path_string
    - static_cast<std::uint8_t>
    - assign
    - clear
    - file_pointer
    linkageType: ''
    returnType: file_pointer
    signature: file_pointer posix_part_file::open_file(open_mode const mode, error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:334,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:335,1
    - Dst: push_back
      Src: /src/libtorrent/src/posix_part_file.cpp:342,1
    - Dst: erase
      Src: /src/libtorrent/src/posix_part_file.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::posix_part_file::free_piece
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void posix_part_file::free_piece(piece_index_t const piece)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:349,1
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:352,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:354,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:355,1
    - Dst: rename
      Src: /src/libtorrent/src/posix_part_file.cpp:357,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:359,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/posix_part_file.cpp:364,1
    - Dst: remove
      Src: /src/libtorrent/src/posix_part_file.cpp:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 371
    functionName: libtorrent::aux::posix_part_file::move_partfile
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - rename
    - combine_path
    - empty
    - remove
    - clear
    - libtorrent::aux::copy_file
    - libtorrent::aux::posix_part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::move_partfile(std::string const& path, error_code&
      ec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:377,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:380,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:384,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:384,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:387,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:392,1
    - Dst: std::min
      Src: /src/libtorrent/src/posix_part_file.cpp:393,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:394,1
    - Dst: std::unique_ptr::reset
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: char::char
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:402,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:402,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:407,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:407,1
    - Dst: f
      Src: /src/libtorrent/src/posix_part_file.cpp:411,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/posix_part_file.cpp:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - f
    - offset
    - size
    - ' ec'
    argTypes:
    - std::function<void(std::int64_t, span<char>)>
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 417
    functionName: libtorrent::aux::posix_part_file::export_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - slot_offset
    - portable_fseeko
    - std::fread
    - empty
    - std::min
    - assign
    - auto::file
    - std::unique_ptr::reset
    - end
    - f
    - std::size_t
    - char::char
    - libtorrent::aux::posix_part_file::open_file
    - generic_category
    - std::unique_ptr::get
    - piece_index_t
    - find
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: "void posix_part_file::export_file(std::function<void(std::int64_t,
      span<char>)> f\n\t\t, std::int64_t const offset, std::int64_t size, error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: libtorrent::aux::posix_part_file::flush_metadata
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::flush_metadata(error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:431,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:435,1
    - Dst: remove
      Src: /src/libtorrent/src/posix_part_file.cpp:436,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:439,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:443,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:450,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:451,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:452,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:454,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:456,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:457,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:458,1
    - Dst: write_int32
      Src: /src/libtorrent/src/posix_part_file.cpp:459,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:459,1
    - Dst: std::memset
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:464,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:466,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 470
    functionName: libtorrent::aux::posix_part_file::flush_metadata_impl
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::vector::size
    - empty
    - assign
    - auto::file
    - std::memset
    - write_int32
    - end
    - std::size_t
    - remove
    - clear
    - std::fwrite
    - libtorrent::aux::posix_part_file::open_file
    - write_uint32
    - generic_category
    - slot_index_t
    - piece_index_t
    - std::vector::data
    - combine_path
    - find
    linkageType: ''
    returnType: void
    signature: void posix_part_file::flush_metadata_impl(error_code& ec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/posix_part_file.cpp:90,1
    - Dst: std::move
      Src: /src/libtorrent/src/posix_part_file.cpp:91,1
    - Dst: round_up
      Src: /src/libtorrent/src/posix_part_file.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:96,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:97,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:100,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:106,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:106,1
    - Dst: error_code::assign
      Src: /src/libtorrent/src/posix_part_file.cpp:108,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:108,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:113,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:116,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:118,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:119,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/posix_part_file.cpp:128,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:130,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:130,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:136,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:136,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:137,1
    - Dst: next
      Src: /src/libtorrent/src/posix_part_file.cpp:140,1
    - Dst: push_back
      Src: /src/libtorrent/src/posix_part_file.cpp:149,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - path
    - name
    - num_pieces
    - piece_size
    argTypes:
    - std::string
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::posix_part_file::posix_part_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - round_up
    - push_back
    - std::vector::data
    - std::fread
    - std::move
    - std::vector::size
    - error_code::assign
    - read_uint32
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - generic_category
    - std::size_t
    - auto::file
    - aux::vector::resize
    - slot_index_t
    - next
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void posix_part_file::posix_part_file(std::string path, std::string
      name\n\t\t, int const num_pieces, int const piece_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: posix_part_file::~posix_part_file()
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::~posix_part_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:163,1
    - Dst: front
      Src: /src/libtorrent/src/posix_part_file.cpp:165,1
    - Dst: erase
      Src: /src/libtorrent/src/posix_part_file.cpp:166,1
    - Dst: begin
      Src: /src/libtorrent/src/posix_part_file.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: libtorrent::aux::posix_part_file::allocate_slot
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 1
    functionsReached:
    - begin
    - erase
    - empty
    - end
    - find
    - front
    - TORRENT_ASSERT
    linkageType: ''
    returnType: slot_index_t
    signature: slot_index_t posix_part_file::allocate_slot(piece_index_t const piece)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:183,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:183,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:185,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:188,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:189,1
    - Dst: libtorrent::aux::posix_part_file::allocate_slot
      Src: /src/libtorrent/src/posix_part_file.cpp:190,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:194,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:194,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:198,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:198,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:200,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: libtorrent::aux::posix_part_file::write
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - portable_fseeko
    - std::fwrite
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - generic_category
    - assign
    - auto::file
    - libtorrent::aux::posix_part_file::allocate_slot
    - std::size_t
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::write(span<char> buf, piece_index_t const piece\n\t\t,
      int const offset, error_code& ec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:211,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:211,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:213,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:214,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/posix_part_file.cpp:216,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:222,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:227,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:227,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:231,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:231,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:234,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_part_file.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 238
    functionName: libtorrent::aux::posix_part_file::read
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - portable_fseeko
    - std::fread
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - std::ferror
    - generic_category
    - make_error_code
    - assign
    - auto::file
    - std::size_t
    - libtorrent_category
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::read(span<char> buf\n\t\t, piece_index_t const
      piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::do_hash
      Src: /src/libtorrent/src/posix_part_file.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: libtorrent::aux::posix_part_file::hash
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::hash(hasher& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::do_hash
      Src: /src/libtorrent/src/posix_part_file.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher256
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: libtorrent::aux::posix_part_file::hash2
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::hash2(hasher256& ph\n\t\t, std::ptrdiff_t const
      len\n\t\t, piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:262,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:264,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:266,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:267,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_part_file.cpp:269,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:270,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:275,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:280,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:280,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:282,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:282,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:286,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:288,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:288,1
    - Dst: update
      Src: /src/libtorrent/src/posix_part_file.cpp:291,1
    - Dst: numeric_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - Hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 293
    functionName: libtorrent::aux::posix_part_file::do_hash
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - portable_fseeko
    - std::vector::data
    - std::fread
    - std::vector::size
    - update
    - error_code
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - std::int64_t
    - generic_category
    - numeric_cast<int>
    - assign
    - auto::file
    - boost::system::generic_category
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::do_hash(Hasher& ph\n\t\t, std::ptrdiff_t const
      len\n\t\t, piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:297,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_part_file.cpp:300,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_part_file.cpp:300,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/posix_part_file.cpp:301,1
    - Dst: ::fopen
      Src: /src/libtorrent/src/posix_part_file.cpp:304,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_part_file.cpp:304,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/posix_part_file.cpp:305,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_part_file.cpp:307,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:308,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:308,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:315,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_part_file.cpp:316,1
    - Dst: file_pointer
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: file_pointer
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: ::fopen
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_part_file.cpp:325,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:326,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - mode
    - ' ec'
    argTypes:
    - open_mode
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 330
    functionName: libtorrent::aux::posix_part_file::open_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 10
    functionsReached:
    - combine_path
    - create_directories
    - std::string::c_str
    - ::_wfopen
    - file_pointer::file
    - generic_category
    - ::fopen
    - convert_to_native_path_string
    - static_cast<std::uint8_t>
    - assign
    - clear
    - file_pointer
    linkageType: ''
    returnType: file_pointer
    signature: file_pointer posix_part_file::open_file(open_mode const mode, error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:334,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:335,1
    - Dst: push_back
      Src: /src/libtorrent/src/posix_part_file.cpp:342,1
    - Dst: erase
      Src: /src/libtorrent/src/posix_part_file.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::posix_part_file::free_piece
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void posix_part_file::free_piece(piece_index_t const piece)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:349,1
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:352,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:354,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:355,1
    - Dst: rename
      Src: /src/libtorrent/src/posix_part_file.cpp:357,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:359,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/posix_part_file.cpp:364,1
    - Dst: remove
      Src: /src/libtorrent/src/posix_part_file.cpp:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 371
    functionName: libtorrent::aux::posix_part_file::move_partfile
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - rename
    - combine_path
    - empty
    - remove
    - clear
    - libtorrent::aux::copy_file
    - libtorrent::aux::posix_part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::move_partfile(std::string const& path, error_code&
      ec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:377,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:380,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:384,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:384,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:387,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:392,1
    - Dst: std::min
      Src: /src/libtorrent/src/posix_part_file.cpp:393,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:394,1
    - Dst: std::unique_ptr::reset
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: char::char
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:402,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:402,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:407,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:407,1
    - Dst: f
      Src: /src/libtorrent/src/posix_part_file.cpp:411,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/posix_part_file.cpp:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - f
    - offset
    - size
    - ' ec'
    argTypes:
    - std::function<void(std::int64_t, span<char>)>
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 417
    functionName: libtorrent::aux::posix_part_file::export_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - slot_offset
    - portable_fseeko
    - std::fread
    - empty
    - std::min
    - assign
    - auto::file
    - std::unique_ptr::reset
    - end
    - f
    - std::size_t
    - char::char
    - libtorrent::aux::posix_part_file::open_file
    - generic_category
    - std::unique_ptr::get
    - piece_index_t
    - find
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: "void posix_part_file::export_file(std::function<void(std::int64_t,
      span<char>)> f\n\t\t, std::int64_t const offset, std::int64_t size, error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: libtorrent::aux::posix_part_file::flush_metadata
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::flush_metadata(error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:431,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:435,1
    - Dst: remove
      Src: /src/libtorrent/src/posix_part_file.cpp:436,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:439,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:443,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:450,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:451,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:452,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:454,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:456,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:457,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:458,1
    - Dst: write_int32
      Src: /src/libtorrent/src/posix_part_file.cpp:459,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:459,1
    - Dst: std::memset
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:464,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:466,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 470
    functionName: libtorrent::aux::posix_part_file::flush_metadata_impl
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - std::vector::size
    - empty
    - assign
    - auto::file
    - std::memset
    - write_int32
    - end
    - std::size_t
    - remove
    - clear
    - std::fwrite
    - libtorrent::aux::posix_part_file::open_file
    - write_uint32
    - generic_category
    - slot_index_t
    - piece_index_t
    - std::vector::data
    - combine_path
    - find
    linkageType: ''
    returnType: void
    signature: void posix_part_file::flush_metadata_impl(error_code& ec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/posix_part_file.cpp:90,1
    - Dst: std::move
      Src: /src/libtorrent/src/posix_part_file.cpp:91,1
    - Dst: round_up
      Src: /src/libtorrent/src/posix_part_file.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:96,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:97,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:100,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:106,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:106,1
    - Dst: error_code::assign
      Src: /src/libtorrent/src/posix_part_file.cpp:108,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:108,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:113,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:116,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:118,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:119,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/posix_part_file.cpp:128,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:130,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:130,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:136,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:136,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:137,1
    - Dst: next
      Src: /src/libtorrent/src/posix_part_file.cpp:140,1
    - Dst: push_back
      Src: /src/libtorrent/src/posix_part_file.cpp:149,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - path
    - name
    - num_pieces
    - piece_size
    argTypes:
    - std::string
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::posix_part_file::posix_part_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - round_up
    - push_back
    - std::vector::data
    - std::fread
    - std::move
    - std::vector::size
    - error_code::assign
    - read_uint32
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - generic_category
    - std::size_t
    - auto::file
    - aux::vector::resize
    - slot_index_t
    - next
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void posix_part_file::posix_part_file(std::string path, std::string
      name\n\t\t, int const num_pieces, int const piece_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: posix_part_file::~posix_part_file()
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::~posix_part_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:163,1
    - Dst: front
      Src: /src/libtorrent/src/posix_part_file.cpp:165,1
    - Dst: erase
      Src: /src/libtorrent/src/posix_part_file.cpp:166,1
    - Dst: begin
      Src: /src/libtorrent/src/posix_part_file.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: libtorrent::aux::posix_part_file::allocate_slot
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 2
    functionsReached:
    - begin
    - erase
    - empty
    - end
    - find
    - front
    - TORRENT_ASSERT
    linkageType: ''
    returnType: slot_index_t
    signature: slot_index_t posix_part_file::allocate_slot(piece_index_t const piece)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:183,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:183,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:185,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:188,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:189,1
    - Dst: libtorrent::aux::posix_part_file::allocate_slot
      Src: /src/libtorrent/src/posix_part_file.cpp:190,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:194,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:194,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:198,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:198,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:200,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: libtorrent::aux::posix_part_file::write
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - portable_fseeko
    - std::fwrite
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - generic_category
    - assign
    - auto::file
    - libtorrent::aux::posix_part_file::allocate_slot
    - std::size_t
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::write(span<char> buf, piece_index_t const piece\n\t\t,
      int const offset, error_code& ec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:211,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:211,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:213,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:214,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/posix_part_file.cpp:216,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:222,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:227,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:227,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:231,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:231,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:234,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_part_file.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 238
    functionName: libtorrent::aux::posix_part_file::read
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - portable_fseeko
    - std::fread
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - std::ferror
    - generic_category
    - make_error_code
    - assign
    - auto::file
    - std::size_t
    - libtorrent_category
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::read(span<char> buf\n\t\t, piece_index_t const
      piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::do_hash
      Src: /src/libtorrent/src/posix_part_file.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: libtorrent::aux::posix_part_file::hash
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::hash(hasher& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::do_hash
      Src: /src/libtorrent/src/posix_part_file.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher256
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: libtorrent::aux::posix_part_file::hash2
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::hash2(hasher256& ph\n\t\t, std::ptrdiff_t const
      len\n\t\t, piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:262,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:264,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:266,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:267,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_part_file.cpp:269,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:270,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:275,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:280,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:280,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:282,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:282,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:286,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:288,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:288,1
    - Dst: update
      Src: /src/libtorrent/src/posix_part_file.cpp:291,1
    - Dst: numeric_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - Hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 293
    functionName: libtorrent::aux::posix_part_file::do_hash
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - portable_fseeko
    - std::vector::data
    - std::fread
    - std::vector::size
    - update
    - error_code
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - std::int64_t
    - generic_category
    - numeric_cast<int>
    - assign
    - auto::file
    - boost::system::generic_category
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::do_hash(Hasher& ph\n\t\t, std::ptrdiff_t const
      len\n\t\t, piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:297,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_part_file.cpp:300,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_part_file.cpp:300,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/posix_part_file.cpp:301,1
    - Dst: ::fopen
      Src: /src/libtorrent/src/posix_part_file.cpp:304,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_part_file.cpp:304,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/posix_part_file.cpp:305,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_part_file.cpp:307,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:308,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:308,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:315,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_part_file.cpp:316,1
    - Dst: file_pointer
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: file_pointer
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: ::fopen
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_part_file.cpp:325,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:326,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - mode
    - ' ec'
    argTypes:
    - open_mode
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 330
    functionName: libtorrent::aux::posix_part_file::open_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 16
    functionsReached:
    - combine_path
    - create_directories
    - std::string::c_str
    - ::_wfopen
    - file_pointer::file
    - generic_category
    - ::fopen
    - convert_to_native_path_string
    - static_cast<std::uint8_t>
    - assign
    - clear
    - file_pointer
    linkageType: ''
    returnType: file_pointer
    signature: file_pointer posix_part_file::open_file(open_mode const mode, error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:334,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:335,1
    - Dst: push_back
      Src: /src/libtorrent/src/posix_part_file.cpp:342,1
    - Dst: erase
      Src: /src/libtorrent/src/posix_part_file.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::posix_part_file::free_piece
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void posix_part_file::free_piece(piece_index_t const piece)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:349,1
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:352,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:354,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:355,1
    - Dst: rename
      Src: /src/libtorrent/src/posix_part_file.cpp:357,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:359,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/posix_part_file.cpp:364,1
    - Dst: remove
      Src: /src/libtorrent/src/posix_part_file.cpp:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 371
    functionName: libtorrent::aux::posix_part_file::move_partfile
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - rename
    - combine_path
    - empty
    - remove
    - clear
    - libtorrent::aux::copy_file
    - libtorrent::aux::posix_part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::move_partfile(std::string const& path, error_code&
      ec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:377,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:380,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:384,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:384,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:387,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:392,1
    - Dst: std::min
      Src: /src/libtorrent/src/posix_part_file.cpp:393,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:394,1
    - Dst: std::unique_ptr::reset
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: char::char
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:402,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:402,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:407,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:407,1
    - Dst: f
      Src: /src/libtorrent/src/posix_part_file.cpp:411,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/posix_part_file.cpp:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - f
    - offset
    - size
    - ' ec'
    argTypes:
    - std::function<void(std::int64_t, span<char>)>
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 417
    functionName: libtorrent::aux::posix_part_file::export_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - slot_offset
    - portable_fseeko
    - std::fread
    - empty
    - std::min
    - assign
    - auto::file
    - std::unique_ptr::reset
    - end
    - f
    - std::size_t
    - char::char
    - libtorrent::aux::posix_part_file::open_file
    - generic_category
    - std::unique_ptr::get
    - piece_index_t
    - find
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: "void posix_part_file::export_file(std::function<void(std::int64_t,
      span<char>)> f\n\t\t, std::int64_t const offset, std::int64_t size, error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: libtorrent::aux::posix_part_file::flush_metadata
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::flush_metadata(error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:431,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:435,1
    - Dst: remove
      Src: /src/libtorrent/src/posix_part_file.cpp:436,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:439,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:443,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:450,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:451,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:452,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:454,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:456,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:457,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:458,1
    - Dst: write_int32
      Src: /src/libtorrent/src/posix_part_file.cpp:459,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:459,1
    - Dst: std::memset
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:464,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:466,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 470
    functionName: libtorrent::aux::posix_part_file::flush_metadata_impl
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - std::vector::size
    - empty
    - assign
    - auto::file
    - std::memset
    - write_int32
    - end
    - std::size_t
    - remove
    - clear
    - std::fwrite
    - libtorrent::aux::posix_part_file::open_file
    - write_uint32
    - generic_category
    - slot_index_t
    - piece_index_t
    - std::vector::data
    - combine_path
    - find
    linkageType: ''
    returnType: void
    signature: void posix_part_file::flush_metadata_impl(error_code& ec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/posix_part_file.cpp:90,1
    - Dst: std::move
      Src: /src/libtorrent/src/posix_part_file.cpp:91,1
    - Dst: round_up
      Src: /src/libtorrent/src/posix_part_file.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:96,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:97,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:100,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:105,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:106,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:106,1
    - Dst: error_code::assign
      Src: /src/libtorrent/src/posix_part_file.cpp:108,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:108,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:113,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:116,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:118,1
    - Dst: read_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:119,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/posix_part_file.cpp:128,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:130,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:130,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:133,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:136,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:136,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:137,1
    - Dst: next
      Src: /src/libtorrent/src/posix_part_file.cpp:140,1
    - Dst: push_back
      Src: /src/libtorrent/src/posix_part_file.cpp:149,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - path
    - name
    - num_pieces
    - piece_size
    argTypes:
    - std::string
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::posix_part_file::posix_part_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - round_up
    - push_back
    - std::vector::data
    - std::fread
    - std::move
    - std::vector::size
    - error_code::assign
    - read_uint32
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - generic_category
    - std::size_t
    - auto::file
    - aux::vector::resize
    - slot_index_t
    - next
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: "void posix_part_file::posix_part_file(std::string path, std::string
      name\n\t\t, int const num_pieces, int const piece_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: posix_part_file::~posix_part_file()
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::~posix_part_file()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:161,1
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:163,1
    - Dst: front
      Src: /src/libtorrent/src/posix_part_file.cpp:165,1
    - Dst: erase
      Src: /src/libtorrent/src/posix_part_file.cpp:166,1
    - Dst: begin
      Src: /src/libtorrent/src/posix_part_file.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: libtorrent::aux::posix_part_file::allocate_slot
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 3
    functionsReached:
    - begin
    - erase
    - empty
    - end
    - find
    - front
    - TORRENT_ASSERT
    linkageType: ''
    returnType: slot_index_t
    signature: slot_index_t posix_part_file::allocate_slot(piece_index_t const piece)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:182,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:183,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:183,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:185,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:188,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:189,1
    - Dst: libtorrent::aux::posix_part_file::allocate_slot
      Src: /src/libtorrent/src/posix_part_file.cpp:190,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:192,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:194,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:194,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:197,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:198,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:198,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:200,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: libtorrent::aux::posix_part_file::write
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - portable_fseeko
    - std::fwrite
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - generic_category
    - assign
    - auto::file
    - libtorrent::aux::posix_part_file::allocate_slot
    - std::size_t
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::write(span<char> buf, piece_index_t const piece\n\t\t,
      int const offset, error_code& ec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:211,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:211,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:213,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:214,1
    - Dst: make_error_code
      Src: /src/libtorrent/src/posix_part_file.cpp:216,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:222,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:225,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:227,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:227,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:230,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:231,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/posix_part_file.cpp:231,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:233,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:234,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_part_file.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - buf
    - piece
    - offset
    - ' ec'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 238
    functionName: libtorrent::aux::posix_part_file::read
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - slot_offset
    - portable_fseeko
    - std::fread
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - std::ferror
    - generic_category
    - make_error_code
    - assign
    - auto::file
    - std::size_t
    - libtorrent_category
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::read(span<char> buf\n\t\t, piece_index_t const
      piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::do_hash
      Src: /src/libtorrent/src/posix_part_file.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: libtorrent::aux::posix_part_file::hash
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::hash(hasher& ph\n\t\t, std::ptrdiff_t const len\n\t\t,
      piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::do_hash
      Src: /src/libtorrent/src/posix_part_file.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - hasher256
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: libtorrent::aux::posix_part_file::hash2
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::do_hash
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::hash2(hasher256& ph\n\t\t, std::ptrdiff_t const
      len\n\t\t, piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:262,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_part_file.cpp:264,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:266,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:267,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_part_file.cpp:269,1
    - Dst: boost::system::generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:270,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:275,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:279,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:280,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:280,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:282,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:282,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:285,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:286,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:288,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:288,1
    - Dst: update
      Src: /src/libtorrent/src/posix_part_file.cpp:291,1
    - Dst: numeric_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ' ph'
    - len
    - piece
    - offset
    - ' ec'
    argTypes:
    - Hasher
    - std::ptrdiff_t
    - piece_index_t
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 293
    functionName: libtorrent::aux::posix_part_file::do_hash
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - portable_fseeko
    - std::vector::data
    - std::fread
    - std::vector::size
    - update
    - error_code
    - end
    - find
    - libtorrent::aux::posix_part_file::open_file
    - TORRENT_ASSERT
    - std::int64_t
    - generic_category
    - numeric_cast<int>
    - assign
    - auto::file
    - boost::system::generic_category
    linkageType: ''
    returnType: int
    signature: "int posix_part_file::do_hash(Hasher& ph\n\t\t, std::ptrdiff_t const
      len\n\t\t, piece_index_t const piece\n\t\t, int const offset, error_code& ec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:297,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_part_file.cpp:300,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_part_file.cpp:300,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/posix_part_file.cpp:301,1
    - Dst: ::fopen
      Src: /src/libtorrent/src/posix_part_file.cpp:304,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_part_file.cpp:304,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/posix_part_file.cpp:305,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_part_file.cpp:307,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:308,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:308,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:315,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_part_file.cpp:316,1
    - Dst: file_pointer
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_part_file.cpp:321,1
    - Dst: file_pointer
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: ::fopen
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_part_file.cpp:323,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_part_file.cpp:325,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:326,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - mode
    - ' ec'
    argTypes:
    - open_mode
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 330
    functionName: libtorrent::aux::posix_part_file::open_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 22
    functionsReached:
    - combine_path
    - create_directories
    - std::string::c_str
    - ::_wfopen
    - file_pointer::file
    - generic_category
    - ::fopen
    - convert_to_native_path_string
    - static_cast<std::uint8_t>
    - assign
    - clear
    - file_pointer
    linkageType: ''
    returnType: file_pointer
    signature: file_pointer posix_part_file::open_file(open_mode const mode, error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:334,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:335,1
    - Dst: push_back
      Src: /src/libtorrent/src/posix_part_file.cpp:342,1
    - Dst: erase
      Src: /src/libtorrent/src/posix_part_file.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: libtorrent::aux::posix_part_file::free_piece
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void posix_part_file::free_piece(piece_index_t const piece)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:349,1
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:352,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:354,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:355,1
    - Dst: rename
      Src: /src/libtorrent/src/posix_part_file.cpp:357,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:359,1
    - Dst: libtorrent::aux::copy_file
      Src: /src/libtorrent/src/posix_part_file.cpp:364,1
    - Dst: remove
      Src: /src/libtorrent/src/posix_part_file.cpp:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' path'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 371
    functionName: libtorrent::aux::posix_part_file::move_partfile
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - rename
    - combine_path
    - empty
    - remove
    - clear
    - libtorrent::aux::copy_file
    - libtorrent::aux::posix_part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::move_partfile(std::string const& path, error_code&
      ec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:377,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:380,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/posix_part_file.cpp:384,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:384,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:387,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:392,1
    - Dst: std::min
      Src: /src/libtorrent/src/posix_part_file.cpp:393,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:394,1
    - Dst: std::unique_ptr::reset
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: char::char
      Src: /src/libtorrent/src/posix_part_file.cpp:398,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: slot_offset
      Src: /src/libtorrent/src/posix_part_file.cpp:400,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:402,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:402,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:405,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:407,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:407,1
    - Dst: f
      Src: /src/libtorrent/src/posix_part_file.cpp:411,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/posix_part_file.cpp:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - f
    - offset
    - size
    - ' ec'
    argTypes:
    - std::function<void(std::int64_t, span<char>)>
    - std::int64_t
    - std::int64_t
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 417
    functionName: libtorrent::aux::posix_part_file::export_file
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - slot_offset
    - portable_fseeko
    - std::fread
    - empty
    - std::min
    - assign
    - auto::file
    - std::unique_ptr::reset
    - end
    - f
    - std::size_t
    - char::char
    - libtorrent::aux::posix_part_file::open_file
    - generic_category
    - std::unique_ptr::get
    - piece_index_t
    - find
    - std::int64_t
    linkageType: ''
    returnType: void
    signature: "void posix_part_file::export_file(std::function<void(std::int64_t,
      span<char>)> f\n\t\t, std::int64_t const offset, std::int64_t size, error_code&
      ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_part_file::flush_metadata_impl
      Src: /src/libtorrent/src/posix_part_file.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: libtorrent::aux::posix_part_file::flush_metadata
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_part_file::flush_metadata_impl
    linkageType: ''
    returnType: void
    signature: void posix_part_file::flush_metadata(error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/posix_part_file.cpp:431,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_part_file.cpp:435,1
    - Dst: remove
      Src: /src/libtorrent/src/posix_part_file.cpp:436,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_part_file.cpp:439,1
    - Dst: libtorrent::aux::posix_part_file::open_file
      Src: /src/libtorrent/src/posix_part_file.cpp:443,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:450,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:451,1
    - Dst: write_uint32
      Src: /src/libtorrent/src/posix_part_file.cpp:452,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:454,1
    - Dst: find
      Src: /src/libtorrent/src/posix_part_file.cpp:456,1
    - Dst: end
      Src: /src/libtorrent/src/posix_part_file.cpp:457,1
    - Dst: slot_index_t
      Src: /src/libtorrent/src/posix_part_file.cpp:458,1
    - Dst: write_int32
      Src: /src/libtorrent/src/posix_part_file.cpp:459,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_part_file.cpp:459,1
    - Dst: std::memset
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:461,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: auto::file
      Src: /src/libtorrent/src/posix_part_file.cpp:463,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/posix_part_file.cpp:464,1
    - Dst: assign
      Src: /src/libtorrent/src/posix_part_file.cpp:466,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_part_file.cpp:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 470
    functionName: libtorrent::aux::posix_part_file::flush_metadata_impl
    functionSourceFile: /src/libtorrent/src/posix_part_file.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - std::vector::size
    - empty
    - assign
    - auto::file
    - std::memset
    - write_int32
    - end
    - std::size_t
    - remove
    - clear
    - std::fwrite
    - libtorrent::aux::posix_part_file::open_file
    - write_uint32
    - generic_category
    - slot_index_t
    - piece_index_t
    - std::vector::data
    - combine_path
    - find
    linkageType: ''
    returnType: void
    signature: void posix_part_file::flush_metadata_impl(error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' current_flags'
    - ' n'
    - name
    - flag
    argTypes:
    - torrent_flags_t
    - bdecode_node
    - char*
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: libtorrent::apply_flag
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 0
    functionsReached:
    - dict_find_int_value
    linkageType: ''
    returnType: void
    signature: "void apply_flag(torrent_flags_t& current_flags\n\t\t, bdecode_node
      const& n\n\t\t, char const* name\n\t\t, torrent_flags_t const flag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' current_flags'
    - ' n'
    - name
    - flag
    argTypes:
    - torrent_flags_t
    - bdecode_node
    - char*
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: libtorrent::apply_flag
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 0
    functionsReached:
    - dict_find_int_value
    linkageType: ''
    returnType: void
    signature: "void apply_flag(torrent_flags_t& current_flags\n\t\t, bdecode_node
      const& n\n\t\t, char const* name\n\t\t, torrent_flags_t const flag)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/read_resume_data.cpp:73,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:79,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:81,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:82,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:86,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:93,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:101,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:102,1
    - Dst: auto::size
      Src: /src/libtorrent/src/read_resume_data.cpp:103,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/read_resume_data.cpp:103,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/read_resume_data.cpp:103,1
    - Dst: auto::size
      Src: /src/libtorrent/src/read_resume_data.cpp:104,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/read_resume_data.cpp:104,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/read_resume_data.cpp:104,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:110,1
    - Dst: auto::size
      Src: /src/libtorrent/src/read_resume_data.cpp:112,1
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:113,1
    - Dst: auto::data
      Src: /src/libtorrent/src/read_resume_data.cpp:113,1
    - Dst: auto::size
      Src: /src/libtorrent/src/read_resume_data.cpp:114,1
    - Dst: add_torrent_params::info_hashes::v2::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:115,1
    - Dst: auto::data
      Src: /src/libtorrent/src/read_resume_data.cpp:115,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/read_resume_data.cpp:117,1
    - Dst: hasher
      Src: /src/libtorrent/src/read_resume_data.cpp:122,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/src/read_resume_data.cpp:122,1
    - Dst: hasher256
      Src: /src/libtorrent/src/read_resume_data.cpp:123,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/src/read_resume_data.cpp:123,1
    - Dst: add_torrent_params::info_hashes::has_v1
      Src: /src/libtorrent/src/read_resume_data.cpp:128,1
    - Dst: add_torrent_params::info_hashes::has_v2
      Src: /src/libtorrent/src/read_resume_data.cpp:129,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/read_resume_data.cpp:131,1
    - Dst: add_torrent_params::ti::parse_info_section
      Src: /src/libtorrent/src/read_resume_data.cpp:134,1
    - Dst: add_torrent_params::ti::internal_set_creation_date
      Src: /src/libtorrent/src/read_resume_data.cpp:142,1
    - Dst: static_cast<std::time_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:142,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:143,1
    - Dst: add_torrent_params::ti::internal_set_creator
      Src: /src/libtorrent/src/read_resume_data.cpp:144,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:144,1
    - Dst: add_torrent_params::ti::internal_set_comment
      Src: /src/libtorrent/src/read_resume_data.cpp:145,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:145,1
    - Dst: add_torrent_params::info_hashes::get_best
      Src: /src/libtorrent/src/read_resume_data.cpp:155,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:158,1
    - Dst: add_torrent_params::merkle_trees::reserve
      Src: /src/libtorrent/src/read_resume_data.cpp:161,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:161,1
    - Dst: add_torrent_params::verified_leaf_hashes::reserve
      Src: /src/libtorrent/src/read_resume_data.cpp:162,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:162,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:163,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/read_resume_data.cpp:165,1
    - Dst: auto::type
      Src: /src/libtorrent/src/read_resume_data.cpp:166,1
    - Dst: auto::dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:168,1
    - Dst: auto::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:169,1
    - Dst: add_torrent_params::merkle_trees::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:171,1
    - Dst: add_torrent_params::merkle_trees::back
      Src: /src/libtorrent/src/read_resume_data.cpp:172,1
    - Dst: auto::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:172,1
    - Dst: auto::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:173,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/read_resume_data.cpp:174,1
    - Dst: auto::substr
      Src: /src/libtorrent/src/read_resume_data.cpp:174,1
    - Dst: add_torrent_params::merkle_trees::back
      Src: /src/libtorrent/src/read_resume_data.cpp:176,1
    - Dst: auto::dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:179,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:181,1
    - Dst: add_torrent_params::verified_leaf_hashes::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:184,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:184,1
    - Dst: add_torrent_params::verified_leaf_hashes::back
      Src: /src/libtorrent/src/read_resume_data.cpp:185,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:186,1
    - Dst: add_torrent_params::verified_leaf_hashes::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:194,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:194,1
    - Dst: add_torrent_params::verified_leaf_hashes::back
      Src: /src/libtorrent/src/read_resume_data.cpp:195,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/read_resume_data.cpp:196,1
    - Dst: auto::dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:204,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:206,1
    - Dst: add_torrent_params::merkle_tree_mask::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:209,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:209,1
    - Dst: add_torrent_params::merkle_tree_mask::back
      Src: /src/libtorrent/src/read_resume_data.cpp:210,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:211,1
    - Dst: add_torrent_params::merkle_tree_mask::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:219,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:219,1
    - Dst: add_torrent_params::merkle_tree_mask::back
      Src: /src/libtorrent/src/read_resume_data.cpp:220,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/read_resume_data.cpp:221,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:231,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:232,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:234,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:235,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:236,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:238,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:238,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:240,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:240,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:241,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:241,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:244,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:245,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:246,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:249,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:250,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:251,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:252,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:255,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:256,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:258,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:260,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:261,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:262,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:264,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:267,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:269,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:270,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:271,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:272,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:273,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:275,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:279,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:282,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:285,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:287,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/read_resume_data.cpp:288,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/read_resume_data.cpp:289,1
    - Dst: auto::to_string
      Src: /src/libtorrent/src/read_resume_data.cpp:289,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:293,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:293,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:294,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:294,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:298,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:301,1
    - Dst: add_torrent_params::file_priorities::resize
      Src: /src/libtorrent/src/read_resume_data.cpp:302,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:302,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:306,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/read_resume_data.cpp:307,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/read_resume_data.cpp:308,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:308,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:309,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:310,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:320,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:330,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/read_resume_data.cpp:332,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/read_resume_data.cpp:333,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:336,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:338,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:338,1
    - Dst: add_torrent_params::tracker_tiers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:339,1
    - Dst: libtorrent::is_i2p_url
      Src: /src/libtorrent/src/read_resume_data.cpp:341,1
    - Dst: add_torrent_params::trackers::back
      Src: /src/libtorrent/src/read_resume_data.cpp:341,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:352,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:353,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:363,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:365,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/read_resume_data.cpp:366,1
    - Dst: add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:367,1
    - Dst: auto::to_string
      Src: /src/libtorrent/src/read_resume_data.cpp:367,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:373,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:375,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/read_resume_data.cpp:376,1
    - Dst: add_torrent_params::http_seeds::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:377,1
    - Dst: auto::to_string
      Src: /src/libtorrent/src/read_resume_data.cpp:377,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:382,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:386,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:387,1
    - Dst: add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/src/read_resume_data.cpp:388,1
    - Dst: add_torrent_params::verified_pieces::resize
      Src: /src/libtorrent/src/read_resume_data.cpp:389,1
    - Dst: add_torrent_params::verified_pieces::end_index
      Src: /src/libtorrent/src/read_resume_data.cpp:391,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/read_resume_data.cpp:395,1
    - Dst: add_torrent_params::have_pieces::set_bit
      Src: /src/libtorrent/src/read_resume_data.cpp:395,1
    - Dst: add_torrent_params::have_pieces::clear_bit
      Src: /src/libtorrent/src/read_resume_data.cpp:396,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/read_resume_data.cpp:398,1
    - Dst: add_torrent_params::verified_pieces::set_bit
      Src: /src/libtorrent/src/read_resume_data.cpp:400,1
    - Dst: add_torrent_params::verified_pieces::clear_bit
      Src: /src/libtorrent/src/read_resume_data.cpp:405,1
    - Dst: add_torrent_params::verified_pieces::clear
      Src: /src/libtorrent/src/read_resume_data.cpp:408,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:412,1
    - Dst: add_torrent_params::have_pieces::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:413,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/read_resume_data.cpp:413,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:413,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:417,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:419,1
    - Dst: add_torrent_params::verified_pieces::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:420,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/read_resume_data.cpp:420,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:420,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:423,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:425,1
    - Dst: add_torrent_params::piece_priorities::resize
      Src: /src/libtorrent/src/read_resume_data.cpp:426,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:426,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:426,1
    - Dst: add_torrent_params::piece_priorities::size
      Src: /src/libtorrent/src/read_resume_data.cpp:427,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/read_resume_data.cpp:429,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/read_resume_data.cpp:429,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:430,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:431,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:432,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:439,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:441,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:442,1
    - Dst: add_torrent_params::peers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:443,1
    - Dst: read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/read_resume_data.cpp:443,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:446,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:448,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:449,1
    - Dst: add_torrent_params::peers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:450,1
    - Dst: read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/read_resume_data.cpp:450,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:453,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:455,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:456,1
    - Dst: add_torrent_params::banned_peers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:457,1
    - Dst: read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/read_resume_data.cpp:457,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:460,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:462,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:463,1
    - Dst: add_torrent_params::banned_peers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:464,1
    - Dst: read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/read_resume_data.cpp:464,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:468,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:470,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/read_resume_data.cpp:472,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/read_resume_data.cpp:473,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/read_resume_data.cpp:474,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:474,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/read_resume_data.cpp:475,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:477,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:478,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:479,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:480,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:480,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 224
    argCount: 3
    argNames:
    - ' rd'
    - ' ec'
    - piece_limit
    argTypes:
    - bdecode_node
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 489
    functionName: libtorrent::read_resume_data
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 1
    functionsReached:
    - add_torrent_params::ti::internal_set_comment
    - download_priority_t
    - add_torrent_params::ti::parse_info_section
    - add_torrent_params::info_hashes::v2::assign
    - add_torrent_params::have_pieces::assign
    - bdecode_node::string_length
    - add_torrent_params::merkle_tree_mask::emplace_back
    - dict_find_string_value
    - aux::numeric_cast<std::size_t>
    - libtorrent::assign
    - hasher256
    - add_torrent_params::info_hashes::get_best
    - add_torrent_params::ti::internal_set_creator
    - bdecode_node::string_value
    - libtorrent::size
    - static_cast<std::time_t>
    - add_torrent_params::file_priorities::resize
    - add_torrent_params::merkle_trees::emplace_back
    - libtorrent::apply_flag
    - dict_find_string
    - auto::string_length
    - piece_index_t
    - bdecode_node::dict_find_string
    - auto::data
    - libtorrent::aux::clamp
    - add_torrent_params::merkle_tree_mask::back
    - dict_find_dict
    - static_cast<std::size_t>
    - auto::type
    - add_torrent_params::tracker_tiers::push_back
    - auto::empty
    - hasher
    - add_torrent_params::info_hashes::has_v1
    - bdecode_node::list_string_value_at
    - libtorrent::is_i2p_url
    - file_index_t
    - std::time_t
    - auto::to_string
    - bdecode_node::list_at
    - auto::string_value
    - static_cast<std::uint8_t>
    - add_torrent_params::have_pieces::resize
    - add_torrent_params::trackers::push_back
    - add_torrent_params::have_pieces::clear_bit
    - add_torrent_params::verified_pieces::clear_bit
    - add_torrent_params::verified_leaf_hashes::emplace_back
    - bdecode_node::data_section
    - add_torrent_params::verified_pieces::resize
    - static_cast<int>
    - add_torrent_params::verified_pieces::clear
    - add_torrent_params::ti::internal_set_creation_date
    - add_torrent_params::piece_priorities::resize
    - read_v4_endpoint<tcp::endpoint>
    - add_torrent_params::verified_pieces::set_bit
    - dict_find_int_value
    - bdecode_node::list_size
    - add_torrent_params::trackers::back
    - add_torrent_params::url_seeds::push_back
    - add_torrent_params::merkle_trees::reserve
    - auto::dict_find_string
    - string_view::data
    - dict_find_list
    - string_view::size
    - libtorrent::type
    - add_torrent_params::info_hashes::has_v2
    - add_torrent_params::peers::push_back
    - test_piece_size
    - add_torrent_params::piece_priorities::size
    - add_torrent_params::info_hashes::v1::assign
    - bdecode_node::string_ptr
    - std::make_shared<torrent_info>
    - bdecode_node::type
    - add_torrent_params::verified_pieces::assign
    - read_v6_endpoint<tcp::endpoint>
    - std::size_t
    - add_torrent_params::verified_leaf_hashes::reserve
    - add_torrent_params::verified_leaf_hashes::back
    - add_torrent_params::have_pieces::set_bit
    - auto::size
    - add_torrent_params::banned_peers::push_back
    - add_torrent_params::verified_pieces::end_index
    - auto::substr
    - bdecode_node::dict_find_int_value
    - add_torrent_params::http_seeds::push_back
    - add_torrent_params::merkle_trees::back
    - bdecode_node::list_int_value_at
    linkageType: ''
    returnType: add_torrent_params
    signature: "add_torrent_params read_resume_data(bdecode_node const& rd, error_code&
      ec\n\t\t, int const piece_limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/read_resume_data.cpp:495,1
    - Dst: libtorrent::add_torrent_params
      Src: /src/libtorrent/src/read_resume_data.cpp:497,1
    - Dst: libtorrent::read_resume_data
      Src: /src/libtorrent/src/read_resume_data.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - ' ec'
    - ' cfg'
    argTypes:
    - span<char const>
    - error_code
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: libtorrent::read_resume_data
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::add_torrent_params
    - libtorrent::read_resume_data
    - libtorrent::bdecode
    linkageType: ''
    returnType: add_torrent_params
    signature: "add_torrent_params read_resume_data(span<char const> buffer, error_code&
      ec\n\t\t, load_torrent_limits const& cfg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_resume_data
      Src: /src/libtorrent/src/read_resume_data.cpp:505,1
    - Dst: system_error
      Src: /src/libtorrent/src/read_resume_data.cpp:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' rd'
    - piece_limit
    argTypes:
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: libtorrent::read_resume_data
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::read_resume_data
    - system_error
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params read_resume_data(bdecode_node const& rd, int const
      piece_limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/read_resume_data.cpp:515,1
    - Dst: system_error
      Src: /src/libtorrent/src/read_resume_data.cpp:517,1
    - Dst: libtorrent::read_resume_data
      Src: /src/libtorrent/src/read_resume_data.cpp:519,1
    - Dst: system_error
      Src: /src/libtorrent/src/read_resume_data.cpp:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - ' cfg'
    argTypes:
    - span<char const>
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 522
    functionName: libtorrent::read_resume_data
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::read_resume_data
    - libtorrent::bdecode
    - system_error
    linkageType: ''
    returnType: add_torrent_params
    signature: "add_torrent_params read_resume_data(span<char const> buffer\n\t\t,
      load_torrent_limits const& cfg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' current_flags'
    - ' n'
    - name
    - flag
    argTypes:
    - torrent_flags_t
    - bdecode_node
    - char*
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: libtorrent::apply_flag
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 1
    functionsReached:
    - dict_find_int_value
    linkageType: ''
    returnType: void
    signature: "void apply_flag(torrent_flags_t& current_flags\n\t\t, bdecode_node
      const& n\n\t\t, char const* name\n\t\t, torrent_flags_t const flag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' current_flags'
    - ' n'
    - name
    - flag
    argTypes:
    - torrent_flags_t
    - bdecode_node
    - char*
    - torrent_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: libtorrent::apply_flag
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 1
    functionsReached:
    - dict_find_int_value
    linkageType: ''
    returnType: void
    signature: "void apply_flag(torrent_flags_t& current_flags\n\t\t, bdecode_node
      const& n\n\t\t, char const* name\n\t\t, torrent_flags_t const flag)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/src/read_resume_data.cpp:73,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:79,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:81,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:82,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:86,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:93,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:101,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:102,1
    - Dst: auto::size
      Src: /src/libtorrent/src/read_resume_data.cpp:103,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/read_resume_data.cpp:103,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/read_resume_data.cpp:103,1
    - Dst: auto::size
      Src: /src/libtorrent/src/read_resume_data.cpp:104,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/read_resume_data.cpp:104,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/read_resume_data.cpp:104,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:110,1
    - Dst: auto::size
      Src: /src/libtorrent/src/read_resume_data.cpp:112,1
    - Dst: add_torrent_params::info_hashes::v1::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:113,1
    - Dst: auto::data
      Src: /src/libtorrent/src/read_resume_data.cpp:113,1
    - Dst: auto::size
      Src: /src/libtorrent/src/read_resume_data.cpp:114,1
    - Dst: add_torrent_params::info_hashes::v2::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:115,1
    - Dst: auto::data
      Src: /src/libtorrent/src/read_resume_data.cpp:115,1
    - Dst: dict_find_dict
      Src: /src/libtorrent/src/read_resume_data.cpp:117,1
    - Dst: hasher
      Src: /src/libtorrent/src/read_resume_data.cpp:122,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/src/read_resume_data.cpp:122,1
    - Dst: hasher256
      Src: /src/libtorrent/src/read_resume_data.cpp:123,1
    - Dst: bdecode_node::data_section
      Src: /src/libtorrent/src/read_resume_data.cpp:123,1
    - Dst: add_torrent_params::info_hashes::has_v1
      Src: /src/libtorrent/src/read_resume_data.cpp:128,1
    - Dst: add_torrent_params::info_hashes::has_v2
      Src: /src/libtorrent/src/read_resume_data.cpp:129,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/src/read_resume_data.cpp:131,1
    - Dst: add_torrent_params::ti::parse_info_section
      Src: /src/libtorrent/src/read_resume_data.cpp:134,1
    - Dst: add_torrent_params::ti::internal_set_creation_date
      Src: /src/libtorrent/src/read_resume_data.cpp:142,1
    - Dst: static_cast<std::time_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:142,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:143,1
    - Dst: add_torrent_params::ti::internal_set_creator
      Src: /src/libtorrent/src/read_resume_data.cpp:144,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:144,1
    - Dst: add_torrent_params::ti::internal_set_comment
      Src: /src/libtorrent/src/read_resume_data.cpp:145,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:145,1
    - Dst: add_torrent_params::info_hashes::get_best
      Src: /src/libtorrent/src/read_resume_data.cpp:155,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:158,1
    - Dst: add_torrent_params::merkle_trees::reserve
      Src: /src/libtorrent/src/read_resume_data.cpp:161,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:161,1
    - Dst: add_torrent_params::verified_leaf_hashes::reserve
      Src: /src/libtorrent/src/read_resume_data.cpp:162,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:162,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:163,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/read_resume_data.cpp:165,1
    - Dst: auto::type
      Src: /src/libtorrent/src/read_resume_data.cpp:166,1
    - Dst: auto::dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:168,1
    - Dst: auto::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:169,1
    - Dst: add_torrent_params::merkle_trees::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:171,1
    - Dst: add_torrent_params::merkle_trees::back
      Src: /src/libtorrent/src/read_resume_data.cpp:172,1
    - Dst: auto::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:172,1
    - Dst: auto::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:173,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/read_resume_data.cpp:174,1
    - Dst: auto::substr
      Src: /src/libtorrent/src/read_resume_data.cpp:174,1
    - Dst: add_torrent_params::merkle_trees::back
      Src: /src/libtorrent/src/read_resume_data.cpp:176,1
    - Dst: auto::dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:179,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:181,1
    - Dst: add_torrent_params::verified_leaf_hashes::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:184,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:184,1
    - Dst: add_torrent_params::verified_leaf_hashes::back
      Src: /src/libtorrent/src/read_resume_data.cpp:185,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:186,1
    - Dst: add_torrent_params::verified_leaf_hashes::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:194,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:194,1
    - Dst: add_torrent_params::verified_leaf_hashes::back
      Src: /src/libtorrent/src/read_resume_data.cpp:195,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/read_resume_data.cpp:196,1
    - Dst: auto::dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:204,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:206,1
    - Dst: add_torrent_params::merkle_tree_mask::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:209,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:209,1
    - Dst: add_torrent_params::merkle_tree_mask::back
      Src: /src/libtorrent/src/read_resume_data.cpp:210,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:211,1
    - Dst: add_torrent_params::merkle_tree_mask::emplace_back
      Src: /src/libtorrent/src/read_resume_data.cpp:219,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:219,1
    - Dst: add_torrent_params::merkle_tree_mask::back
      Src: /src/libtorrent/src/read_resume_data.cpp:220,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/read_resume_data.cpp:221,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:231,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:232,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:234,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:235,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:236,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:238,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:238,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:240,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:240,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:241,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:241,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:244,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:245,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:246,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:249,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:250,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:251,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:252,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:255,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:256,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:258,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:260,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:261,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:262,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:264,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:267,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:269,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:270,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:271,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:272,1
    - Dst: libtorrent::apply_flag
      Src: /src/libtorrent/src/read_resume_data.cpp:273,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:275,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:279,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:282,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:285,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:287,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/read_resume_data.cpp:288,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/read_resume_data.cpp:289,1
    - Dst: auto::to_string
      Src: /src/libtorrent/src/read_resume_data.cpp:289,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:293,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:293,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/read_resume_data.cpp:294,1
    - Dst: dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:294,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:298,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:301,1
    - Dst: add_torrent_params::file_priorities::resize
      Src: /src/libtorrent/src/read_resume_data.cpp:302,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:302,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:306,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/read_resume_data.cpp:307,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/read_resume_data.cpp:308,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:308,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:309,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:310,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:320,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:330,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/read_resume_data.cpp:332,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/read_resume_data.cpp:333,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:336,1
    - Dst: add_torrent_params::trackers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:338,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:338,1
    - Dst: add_torrent_params::tracker_tiers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:339,1
    - Dst: libtorrent::is_i2p_url
      Src: /src/libtorrent/src/read_resume_data.cpp:341,1
    - Dst: add_torrent_params::trackers::back
      Src: /src/libtorrent/src/read_resume_data.cpp:341,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:352,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:353,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:363,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:365,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/read_resume_data.cpp:366,1
    - Dst: add_torrent_params::url_seeds::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:367,1
    - Dst: auto::to_string
      Src: /src/libtorrent/src/read_resume_data.cpp:367,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:373,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/read_resume_data.cpp:375,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/read_resume_data.cpp:376,1
    - Dst: add_torrent_params::http_seeds::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:377,1
    - Dst: auto::to_string
      Src: /src/libtorrent/src/read_resume_data.cpp:377,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:382,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:386,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:387,1
    - Dst: add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/src/read_resume_data.cpp:388,1
    - Dst: add_torrent_params::verified_pieces::resize
      Src: /src/libtorrent/src/read_resume_data.cpp:389,1
    - Dst: add_torrent_params::verified_pieces::end_index
      Src: /src/libtorrent/src/read_resume_data.cpp:391,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/read_resume_data.cpp:395,1
    - Dst: add_torrent_params::have_pieces::set_bit
      Src: /src/libtorrent/src/read_resume_data.cpp:395,1
    - Dst: add_torrent_params::have_pieces::clear_bit
      Src: /src/libtorrent/src/read_resume_data.cpp:396,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/read_resume_data.cpp:398,1
    - Dst: add_torrent_params::verified_pieces::set_bit
      Src: /src/libtorrent/src/read_resume_data.cpp:400,1
    - Dst: add_torrent_params::verified_pieces::clear_bit
      Src: /src/libtorrent/src/read_resume_data.cpp:405,1
    - Dst: add_torrent_params::verified_pieces::clear
      Src: /src/libtorrent/src/read_resume_data.cpp:408,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:412,1
    - Dst: add_torrent_params::have_pieces::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:413,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/read_resume_data.cpp:413,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:413,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:417,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/read_resume_data.cpp:419,1
    - Dst: add_torrent_params::verified_pieces::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:420,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/read_resume_data.cpp:420,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/read_resume_data.cpp:420,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:423,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:425,1
    - Dst: add_torrent_params::piece_priorities::resize
      Src: /src/libtorrent/src/read_resume_data.cpp:426,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:426,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:426,1
    - Dst: add_torrent_params::piece_priorities::size
      Src: /src/libtorrent/src/read_resume_data.cpp:427,1
    - Dst: download_priority_t
      Src: /src/libtorrent/src/read_resume_data.cpp:429,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/read_resume_data.cpp:429,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:430,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:431,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/read_resume_data.cpp:432,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:439,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:441,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:442,1
    - Dst: add_torrent_params::peers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:443,1
    - Dst: read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/read_resume_data.cpp:443,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:446,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:448,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:449,1
    - Dst: add_torrent_params::peers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:450,1
    - Dst: read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/read_resume_data.cpp:450,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:453,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:455,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:456,1
    - Dst: add_torrent_params::banned_peers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:457,1
    - Dst: read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/read_resume_data.cpp:457,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:460,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:462,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:463,1
    - Dst: add_torrent_params::banned_peers::push_back
      Src: /src/libtorrent/src/read_resume_data.cpp:464,1
    - Dst: read_v6_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/read_resume_data.cpp:464,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/read_resume_data.cpp:468,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/read_resume_data.cpp:470,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/read_resume_data.cpp:472,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/read_resume_data.cpp:473,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/read_resume_data.cpp:474,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/read_resume_data.cpp:474,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/read_resume_data.cpp:475,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/read_resume_data.cpp:477,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:478,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/src/read_resume_data.cpp:479,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/read_resume_data.cpp:480,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/read_resume_data.cpp:480,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 224
    argCount: 3
    argNames:
    - ' rd'
    - ' ec'
    - piece_limit
    argTypes:
    - bdecode_node
    - error_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 489
    functionName: libtorrent::read_resume_data
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 4
    functionsReached:
    - add_torrent_params::ti::internal_set_comment
    - download_priority_t
    - add_torrent_params::ti::parse_info_section
    - add_torrent_params::info_hashes::v2::assign
    - add_torrent_params::have_pieces::assign
    - bdecode_node::string_length
    - add_torrent_params::merkle_tree_mask::emplace_back
    - dict_find_string_value
    - aux::numeric_cast<std::size_t>
    - libtorrent::assign
    - hasher256
    - add_torrent_params::info_hashes::get_best
    - add_torrent_params::ti::internal_set_creator
    - bdecode_node::string_value
    - libtorrent::size
    - static_cast<std::time_t>
    - add_torrent_params::file_priorities::resize
    - add_torrent_params::merkle_trees::emplace_back
    - libtorrent::apply_flag
    - dict_find_string
    - auto::string_length
    - piece_index_t
    - bdecode_node::dict_find_string
    - auto::data
    - libtorrent::aux::clamp
    - add_torrent_params::merkle_tree_mask::back
    - dict_find_dict
    - static_cast<std::size_t>
    - auto::type
    - add_torrent_params::tracker_tiers::push_back
    - auto::empty
    - hasher
    - add_torrent_params::info_hashes::has_v1
    - bdecode_node::list_string_value_at
    - libtorrent::is_i2p_url
    - file_index_t
    - std::time_t
    - auto::to_string
    - bdecode_node::list_at
    - auto::string_value
    - static_cast<std::uint8_t>
    - add_torrent_params::have_pieces::resize
    - add_torrent_params::trackers::push_back
    - add_torrent_params::have_pieces::clear_bit
    - add_torrent_params::verified_pieces::clear_bit
    - add_torrent_params::verified_leaf_hashes::emplace_back
    - bdecode_node::data_section
    - add_torrent_params::verified_pieces::resize
    - static_cast<int>
    - add_torrent_params::verified_pieces::clear
    - add_torrent_params::ti::internal_set_creation_date
    - add_torrent_params::piece_priorities::resize
    - read_v4_endpoint<tcp::endpoint>
    - add_torrent_params::verified_pieces::set_bit
    - dict_find_int_value
    - bdecode_node::list_size
    - add_torrent_params::trackers::back
    - add_torrent_params::url_seeds::push_back
    - add_torrent_params::merkle_trees::reserve
    - auto::dict_find_string
    - string_view::data
    - dict_find_list
    - string_view::size
    - libtorrent::type
    - add_torrent_params::info_hashes::has_v2
    - add_torrent_params::peers::push_back
    - test_piece_size
    - add_torrent_params::piece_priorities::size
    - add_torrent_params::info_hashes::v1::assign
    - bdecode_node::string_ptr
    - std::make_shared<torrent_info>
    - bdecode_node::type
    - add_torrent_params::verified_pieces::assign
    - read_v6_endpoint<tcp::endpoint>
    - std::size_t
    - add_torrent_params::verified_leaf_hashes::reserve
    - add_torrent_params::verified_leaf_hashes::back
    - add_torrent_params::have_pieces::set_bit
    - auto::size
    - add_torrent_params::banned_peers::push_back
    - add_torrent_params::verified_pieces::end_index
    - auto::substr
    - bdecode_node::dict_find_int_value
    - add_torrent_params::http_seeds::push_back
    - add_torrent_params::merkle_trees::back
    - bdecode_node::list_int_value_at
    linkageType: ''
    returnType: add_torrent_params
    signature: "add_torrent_params read_resume_data(bdecode_node const& rd, error_code&
      ec\n\t\t, int const piece_limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/read_resume_data.cpp:495,1
    - Dst: libtorrent::add_torrent_params
      Src: /src/libtorrent/src/read_resume_data.cpp:497,1
    - Dst: libtorrent::read_resume_data
      Src: /src/libtorrent/src/read_resume_data.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - ' ec'
    - ' cfg'
    argTypes:
    - span<char const>
    - error_code
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: libtorrent::read_resume_data
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::add_torrent_params
    - libtorrent::read_resume_data
    - libtorrent::bdecode
    linkageType: ''
    returnType: add_torrent_params
    signature: "add_torrent_params read_resume_data(span<char const> buffer, error_code&
      ec\n\t\t, load_torrent_limits const& cfg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_resume_data
      Src: /src/libtorrent/src/read_resume_data.cpp:505,1
    - Dst: system_error
      Src: /src/libtorrent/src/read_resume_data.cpp:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' rd'
    - piece_limit
    argTypes:
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: libtorrent::read_resume_data
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::read_resume_data
    - system_error
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params read_resume_data(bdecode_node const& rd, int const
      piece_limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/src/read_resume_data.cpp:515,1
    - Dst: system_error
      Src: /src/libtorrent/src/read_resume_data.cpp:517,1
    - Dst: libtorrent::read_resume_data
      Src: /src/libtorrent/src/read_resume_data.cpp:519,1
    - Dst: system_error
      Src: /src/libtorrent/src/read_resume_data.cpp:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - ' cfg'
    argTypes:
    - span<char const>
    - load_torrent_limits
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 522
    functionName: libtorrent::read_resume_data
    functionSourceFile: /src/libtorrent/src/read_resume_data.cpp
    functionUses: 7
    functionsReached:
    - libtorrent::read_resume_data
    - libtorrent::bdecode
    - system_error
    linkageType: ''
    returnType: add_torrent_params
    signature: "add_torrent_params read_resume_data(span<char const> buffer\n\t\t,
      load_torrent_limits const& cfg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:53,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:54,1
    - Dst: peer_connection*::downloaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:59,1
    - Dst: peer_connection*::downloaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: libtorrent::compare_peers
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::get_priority
    - peer_connection*::downloaded_in_last_round
    linkageType: ''
    returnType: int
    signature: int compare_peers(peer_connection const* lhs, peer_connection const*
      rhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:70,1
    - Dst: peer_connection*::uploaded_since_unchoked
      Src: /src/libtorrent/src/choker.cpp:76,1
    - Dst: peer_connection*::uploaded_since_unchoked
      Src: /src/libtorrent/src/choker.cpp:77,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:85,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:87,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:88,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:93,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:94,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:94,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: minutes
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:96,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:97,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:97,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: minutes
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:112,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:112,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:113,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:113,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:121,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - lhs
    - rhs
    - pieces
    argTypes:
    - peer_connection*
    - peer_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 122
    functionName: libtorrent::unchoke_compare_rr
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::associated_torrent
    - libtorrent::compare_peers
    - peer_connection*::time_of_last_unchoke
    - TORRENT_ASSERT
    - std::int64_t
    - peer_connection*::uploaded_since_unchoked
    - peer_connection*::uploaded_in_last_round
    - minutes
    - peer_connection*::is_choked
    - libtorrent::aux::time_now
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_rr(peer_connection const* lhs\n\t\t, peer_connection
      const* rhs, int pieces)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:128,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:132,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:133,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:140,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: libtorrent::unchoke_compare_fastest_upload
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::compare_peers
    - peer_connection*::uploaded_in_last_round
    - peer_connection*::time_of_last_unchoke
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_fastest_upload(peer_connection const* lhs\n\t\t,
      peer_connection const* rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:166,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:168,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/choker.cpp:171,1
    - Dst: peer_connection*::statistics
      Src: /src/libtorrent/src/choker.cpp:171,1
    - Dst: std::max
      Src: /src/libtorrent/src/choker.cpp:173,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: peer_connection*::num_have_pieces
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: std::abs
      Src: /src/libtorrent/src/choker.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 176
    functionName: libtorrent::anti_leech_score
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::associated_torrent
    - libtorrent::min
    - TORRENT_ASSERT
    - std::int64_t
    - std::max
    - std::abs
    - peer_connection*::num_have_pieces
    - peer_connection*::statistics
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: int
    signature: int anti_leech_score(peer_connection const* peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:182,1
    - Dst: libtorrent::anti_leech_score
      Src: /src/libtorrent/src/choker.cpp:185,1
    - Dst: libtorrent::anti_leech_score
      Src: /src/libtorrent/src/choker.cpp:186,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:192,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: libtorrent::unchoke_compare_anti_leech
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::anti_leech_score
    - libtorrent::compare_peers
    - peer_connection*::time_of_last_unchoke
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_anti_leech(peer_connection const* lhs\n\t\t,
      peer_connection const* rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:199,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:200,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:201,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: libtorrent::upload_rate_compare
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::get_priority
    - peer_connection*::uploaded_in_last_round
    linkageType: ''
    returnType: bool
    signature: "bool upload_rate_compare(peer_connection const* lhs\n\t\t, peer_connection
      const* rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:53,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:54,1
    - Dst: peer_connection*::downloaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:59,1
    - Dst: peer_connection*::downloaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: libtorrent::compare_peers
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 3
    functionsReached:
    - peer_connection*::get_priority
    - peer_connection*::downloaded_in_last_round
    linkageType: ''
    returnType: int
    signature: int compare_peers(peer_connection const* lhs, peer_connection const*
      rhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:70,1
    - Dst: peer_connection*::uploaded_since_unchoked
      Src: /src/libtorrent/src/choker.cpp:76,1
    - Dst: peer_connection*::uploaded_since_unchoked
      Src: /src/libtorrent/src/choker.cpp:77,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:85,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:87,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:88,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:93,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:94,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:94,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: minutes
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:96,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:97,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:97,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: minutes
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:112,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:112,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:113,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:113,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:121,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - lhs
    - rhs
    - pieces
    argTypes:
    - peer_connection*
    - peer_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 122
    functionName: libtorrent::unchoke_compare_rr
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::associated_torrent
    - libtorrent::compare_peers
    - peer_connection*::time_of_last_unchoke
    - TORRENT_ASSERT
    - std::int64_t
    - peer_connection*::uploaded_since_unchoked
    - peer_connection*::uploaded_in_last_round
    - minutes
    - peer_connection*::is_choked
    - libtorrent::aux::time_now
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_rr(peer_connection const* lhs\n\t\t, peer_connection
      const* rhs, int pieces)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:128,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:132,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:133,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:140,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: libtorrent::unchoke_compare_fastest_upload
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::compare_peers
    - peer_connection*::uploaded_in_last_round
    - peer_connection*::time_of_last_unchoke
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_fastest_upload(peer_connection const* lhs\n\t\t,
      peer_connection const* rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:166,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:168,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/choker.cpp:171,1
    - Dst: peer_connection*::statistics
      Src: /src/libtorrent/src/choker.cpp:171,1
    - Dst: std::max
      Src: /src/libtorrent/src/choker.cpp:173,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: peer_connection*::num_have_pieces
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: std::abs
      Src: /src/libtorrent/src/choker.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 176
    functionName: libtorrent::anti_leech_score
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - peer_connection*::associated_torrent
    - libtorrent::min
    - TORRENT_ASSERT
    - std::int64_t
    - std::max
    - std::abs
    - peer_connection*::num_have_pieces
    - peer_connection*::statistics
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: int
    signature: int anti_leech_score(peer_connection const* peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:182,1
    - Dst: libtorrent::anti_leech_score
      Src: /src/libtorrent/src/choker.cpp:185,1
    - Dst: libtorrent::anti_leech_score
      Src: /src/libtorrent/src/choker.cpp:186,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:192,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: libtorrent::unchoke_compare_anti_leech
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::anti_leech_score
    - libtorrent::compare_peers
    - peer_connection*::time_of_last_unchoke
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_anti_leech(peer_connection const* lhs\n\t\t,
      peer_connection const* rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:199,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:200,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:201,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: libtorrent::upload_rate_compare
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - peer_connection*::get_priority
    - peer_connection*::uploaded_in_last_round
    linkageType: ''
    returnType: bool
    signature: "bool upload_rate_compare(peer_connection const* lhs\n\t\t, peer_connection
      const* rhs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:216,1
    - Dst: libtorrent::self
      Src: /src/libtorrent/src/choker.cpp:216,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:217,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:217,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:221,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/choker.cpp:223,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:235,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:242,1
    - Dst: std::sort
      Src: /src/libtorrent/src/choker.cpp:244,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:244,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:244,1
    - Dst: libtorrent::upload_rate_compare
      Src: /src/libtorrent/src/choker.cpp:246,1
    - Dst: libtorrent::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:250,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/choker.cpp:251,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/choker.cpp:272,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/choker.cpp:272,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:274,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:277,1
    - Dst: std::nth_element
      Src: /src/libtorrent/src/choker.cpp:279,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:279,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:279,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:280,1
    - Dst: libtorrent::unchoke_compare_rr
      Src: /src/libtorrent/src/choker.cpp:282,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:284,1
    - Dst: std::nth_element
      Src: /src/libtorrent/src/choker.cpp:287,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:287,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:287,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:288,1
    - Dst: libtorrent::unchoke_compare_fastest_upload
      Src: /src/libtorrent/src/choker.cpp:290,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:292,1
    - Dst: std::nth_element
      Src: /src/libtorrent/src/choker.cpp:295,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:295,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:295,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:296,1
    - Dst: libtorrent::unchoke_compare_anti_leech
      Src: /src/libtorrent/src/choker.cpp:298,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:302,1
    - Dst: std::nth_element
      Src: /src/libtorrent/src/choker.cpp:303,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:303,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:303,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:304,1
    - Dst: libtorrent::unchoke_compare_rr
      Src: /src/libtorrent/src/choker.cpp:306,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/choker.cpp:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - ' peers'
    - unchoke_interval
    - ' sett'
    argTypes:
    - std::vector<peer_connection*>
    - time_duration
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 312
    functionName: libtorrent::unchoke_sort
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::unchoke_compare_anti_leech
    - libtorrent::min
    - libtorrent::size
    - std::nth_element
    - libtorrent::unchoke_compare_rr
    - std::sort
    - libtorrent::aux::max
    - libtorrent::total_milliseconds
    - TORRENT_ASSERT
    - get_int
    - libtorrent::upload_rate_compare
    - libtorrent::end
    - libtorrent::begin
    - libtorrent::uploaded_in_last_round
    - TORRENT_ASSERT_FAIL
    - libtorrent::unchoke_compare_fastest_upload
    - libtorrent::self
    - libtorrent::associated_torrent
    linkageType: ''
    returnType: int
    signature: "int unchoke_sort(std::vector<peer_connection*>& peers\n\t\t, time_duration
      const unchoke_interval\n\t\t, aux::session_settings const& sett)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:53,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:54,1
    - Dst: peer_connection*::downloaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:59,1
    - Dst: peer_connection*::downloaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: libtorrent::compare_peers
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 6
    functionsReached:
    - peer_connection*::get_priority
    - peer_connection*::downloaded_in_last_round
    linkageType: ''
    returnType: int
    signature: int compare_peers(peer_connection const* lhs, peer_connection const*
      rhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:70,1
    - Dst: peer_connection*::uploaded_since_unchoked
      Src: /src/libtorrent/src/choker.cpp:76,1
    - Dst: peer_connection*::uploaded_since_unchoked
      Src: /src/libtorrent/src/choker.cpp:77,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:85,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:87,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:88,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:93,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:94,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:94,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: minutes
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:96,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:97,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:97,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: minutes
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:112,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:112,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:113,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:113,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:121,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - lhs
    - rhs
    - pieces
    argTypes:
    - peer_connection*
    - peer_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 122
    functionName: libtorrent::unchoke_compare_rr
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - peer_connection*::associated_torrent
    - libtorrent::compare_peers
    - peer_connection*::time_of_last_unchoke
    - TORRENT_ASSERT
    - std::int64_t
    - peer_connection*::uploaded_since_unchoked
    - peer_connection*::uploaded_in_last_round
    - minutes
    - peer_connection*::is_choked
    - libtorrent::aux::time_now
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_rr(peer_connection const* lhs\n\t\t, peer_connection
      const* rhs, int pieces)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:128,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:132,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:133,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:140,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: libtorrent::unchoke_compare_fastest_upload
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::compare_peers
    - peer_connection*::uploaded_in_last_round
    - peer_connection*::time_of_last_unchoke
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_fastest_upload(peer_connection const* lhs\n\t\t,
      peer_connection const* rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:166,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:168,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/choker.cpp:171,1
    - Dst: peer_connection*::statistics
      Src: /src/libtorrent/src/choker.cpp:171,1
    - Dst: std::max
      Src: /src/libtorrent/src/choker.cpp:173,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: peer_connection*::num_have_pieces
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: std::abs
      Src: /src/libtorrent/src/choker.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 176
    functionName: libtorrent::anti_leech_score
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 2
    functionsReached:
    - peer_connection*::associated_torrent
    - libtorrent::min
    - TORRENT_ASSERT
    - std::int64_t
    - std::max
    - std::abs
    - peer_connection*::num_have_pieces
    - peer_connection*::statistics
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: int
    signature: int anti_leech_score(peer_connection const* peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:182,1
    - Dst: libtorrent::anti_leech_score
      Src: /src/libtorrent/src/choker.cpp:185,1
    - Dst: libtorrent::anti_leech_score
      Src: /src/libtorrent/src/choker.cpp:186,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:192,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: libtorrent::unchoke_compare_anti_leech
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::anti_leech_score
    - libtorrent::compare_peers
    - peer_connection*::time_of_last_unchoke
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_anti_leech(peer_connection const* lhs\n\t\t,
      peer_connection const* rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:199,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:200,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:201,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: libtorrent::upload_rate_compare
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - peer_connection*::get_priority
    - peer_connection*::uploaded_in_last_round
    linkageType: ''
    returnType: bool
    signature: "bool upload_rate_compare(peer_connection const* lhs\n\t\t, peer_connection
      const* rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:53,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:54,1
    - Dst: peer_connection*::downloaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:59,1
    - Dst: peer_connection*::downloaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: libtorrent::compare_peers
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 9
    functionsReached:
    - peer_connection*::get_priority
    - peer_connection*::downloaded_in_last_round
    linkageType: ''
    returnType: int
    signature: int compare_peers(peer_connection const* lhs, peer_connection const*
      rhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:70,1
    - Dst: peer_connection*::uploaded_since_unchoked
      Src: /src/libtorrent/src/choker.cpp:76,1
    - Dst: peer_connection*::uploaded_since_unchoked
      Src: /src/libtorrent/src/choker.cpp:77,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:85,1
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:87,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:88,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:93,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:94,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:94,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: minutes
      Src: /src/libtorrent/src/choker.cpp:95,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:96,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:97,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:97,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: minutes
      Src: /src/libtorrent/src/choker.cpp:98,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:112,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:112,1
    - Dst: peer_connection*::is_choked
      Src: /src/libtorrent/src/choker.cpp:113,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:113,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:121,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - lhs
    - rhs
    - pieces
    argTypes:
    - peer_connection*
    - peer_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 122
    functionName: libtorrent::unchoke_compare_rr
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - peer_connection*::associated_torrent
    - libtorrent::compare_peers
    - peer_connection*::time_of_last_unchoke
    - TORRENT_ASSERT
    - std::int64_t
    - peer_connection*::uploaded_since_unchoked
    - peer_connection*::uploaded_in_last_round
    - minutes
    - peer_connection*::is_choked
    - libtorrent::aux::time_now
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_rr(peer_connection const* lhs\n\t\t, peer_connection
      const* rhs, int pieces)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:128,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:132,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:133,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:140,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: libtorrent::unchoke_compare_fastest_upload
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::compare_peers
    - peer_connection*::uploaded_in_last_round
    - peer_connection*::time_of_last_unchoke
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_fastest_upload(peer_connection const* lhs\n\t\t,
      peer_connection const* rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:165,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:166,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:168,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/choker.cpp:171,1
    - Dst: peer_connection*::statistics
      Src: /src/libtorrent/src/choker.cpp:171,1
    - Dst: std::max
      Src: /src/libtorrent/src/choker.cpp:173,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: std::shared_ptr::torrent_file
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: peer_connection*::num_have_pieces
      Src: /src/libtorrent/src/choker.cpp:174,1
    - Dst: std::abs
      Src: /src/libtorrent/src/choker.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - peer
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 176
    functionName: libtorrent::anti_leech_score
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 3
    functionsReached:
    - peer_connection*::associated_torrent
    - libtorrent::min
    - TORRENT_ASSERT
    - std::int64_t
    - std::max
    - std::abs
    - peer_connection*::num_have_pieces
    - peer_connection*::statistics
    - std::shared_ptr::torrent_file
    linkageType: ''
    returnType: int
    signature: int anti_leech_score(peer_connection const* peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::compare_peers
      Src: /src/libtorrent/src/choker.cpp:182,1
    - Dst: libtorrent::anti_leech_score
      Src: /src/libtorrent/src/choker.cpp:185,1
    - Dst: libtorrent::anti_leech_score
      Src: /src/libtorrent/src/choker.cpp:186,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:192,1
    - Dst: peer_connection*::time_of_last_unchoke
      Src: /src/libtorrent/src/choker.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: libtorrent::unchoke_compare_anti_leech
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::anti_leech_score
    - libtorrent::compare_peers
    - peer_connection*::time_of_last_unchoke
    linkageType: ''
    returnType: bool
    signature: "bool unchoke_compare_anti_leech(peer_connection const* lhs\n\t\t,
      peer_connection const* rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:199,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:200,1
    - Dst: peer_connection*::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:201,1
    - Dst: peer_connection*::get_priority
      Src: /src/libtorrent/src/choker.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - peer_connection*
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: libtorrent::upload_rate_compare
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 1
    functionsReached:
    - peer_connection*::get_priority
    - peer_connection*::uploaded_in_last_round
    linkageType: ''
    returnType: bool
    signature: "bool upload_rate_compare(peer_connection const* lhs\n\t\t, peer_connection
      const* rhs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:216,1
    - Dst: libtorrent::self
      Src: /src/libtorrent/src/choker.cpp:216,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/choker.cpp:217,1
    - Dst: libtorrent::associated_torrent
      Src: /src/libtorrent/src/choker.cpp:217,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:221,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/choker.cpp:223,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:235,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:242,1
    - Dst: std::sort
      Src: /src/libtorrent/src/choker.cpp:244,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:244,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:244,1
    - Dst: libtorrent::upload_rate_compare
      Src: /src/libtorrent/src/choker.cpp:246,1
    - Dst: libtorrent::uploaded_in_last_round
      Src: /src/libtorrent/src/choker.cpp:250,1
    - Dst: libtorrent::total_milliseconds
      Src: /src/libtorrent/src/choker.cpp:251,1
    - Dst: libtorrent::min
      Src: /src/libtorrent/src/choker.cpp:272,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/choker.cpp:272,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:274,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:277,1
    - Dst: std::nth_element
      Src: /src/libtorrent/src/choker.cpp:279,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:279,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:279,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:280,1
    - Dst: libtorrent::unchoke_compare_rr
      Src: /src/libtorrent/src/choker.cpp:282,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:284,1
    - Dst: std::nth_element
      Src: /src/libtorrent/src/choker.cpp:287,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:287,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:287,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:288,1
    - Dst: libtorrent::unchoke_compare_fastest_upload
      Src: /src/libtorrent/src/choker.cpp:290,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:292,1
    - Dst: std::nth_element
      Src: /src/libtorrent/src/choker.cpp:295,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:295,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:295,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:296,1
    - Dst: libtorrent::unchoke_compare_anti_leech
      Src: /src/libtorrent/src/choker.cpp:298,1
    - Dst: get_int
      Src: /src/libtorrent/src/choker.cpp:302,1
    - Dst: std::nth_element
      Src: /src/libtorrent/src/choker.cpp:303,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:303,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/choker.cpp:303,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/choker.cpp:304,1
    - Dst: libtorrent::unchoke_compare_rr
      Src: /src/libtorrent/src/choker.cpp:306,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/choker.cpp:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - ' peers'
    - unchoke_interval
    - ' sett'
    argTypes:
    - std::vector<peer_connection*>
    - time_duration
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 312
    functionName: libtorrent::unchoke_sort
    functionSourceFile: /src/libtorrent/src/choker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::unchoke_compare_anti_leech
    - libtorrent::min
    - libtorrent::size
    - std::nth_element
    - libtorrent::unchoke_compare_rr
    - std::sort
    - libtorrent::aux::max
    - libtorrent::total_milliseconds
    - TORRENT_ASSERT
    - get_int
    - libtorrent::upload_rate_compare
    - libtorrent::end
    - libtorrent::begin
    - libtorrent::uploaded_in_last_round
    - TORRENT_ASSERT_FAIL
    - libtorrent::unchoke_compare_fastest_upload
    - libtorrent::self
    - libtorrent::associated_torrent
    linkageType: ''
    returnType: int
    signature: "int unchoke_sort(std::vector<peer_connection*>& peers\n\t\t, time_duration
      const unchoke_interval\n\t\t, aux::session_settings const& sett)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:41,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:42,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:43,1
    - Dst: auto::external_address::external_address
      Src: /src/libtorrent/src/listen_socket_handle.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::listen_socket_handle::get_external_address
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    - auto::external_address::external_address
    linkageType: ''
    returnType: address
    signature: address listen_socket_handle::get_external_address() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:49,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:50,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::listen_socket_handle::get_local_endpoint
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint listen_socket_handle::get_local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:58,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: libtorrent::aux::listen_socket_handle::is_ssl
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_handle::is_ssl() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:65,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::listen_socket_handle::device
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - lock
    linkageType: ''
    returnType: std::string
    signature: std::string listen_socket_handle::device() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::listen_socket_handle::get
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: listen_socket_t
    signature: listen_socket_t * listen_socket_handle::get() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:78,1
    - Dst: auto::can_route
      Src: /src/libtorrent/src/listen_socket_handle.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::listen_socket_handle::can_route
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - auto::can_route
    - lock
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_handle::can_route(address const& a) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:41,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:42,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:43,1
    - Dst: auto::external_address::external_address
      Src: /src/libtorrent/src/listen_socket_handle.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::listen_socket_handle::get_external_address
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    - auto::external_address::external_address
    linkageType: ''
    returnType: address
    signature: address listen_socket_handle::get_external_address() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:49,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:50,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::listen_socket_handle::get_local_endpoint
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint listen_socket_handle::get_local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:58,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: libtorrent::aux::listen_socket_handle::is_ssl
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_handle::is_ssl() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:65,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::listen_socket_handle::device
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - lock
    linkageType: ''
    returnType: std::string
    signature: std::string listen_socket_handle::device() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::listen_socket_handle::get
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: listen_socket_t
    signature: listen_socket_t * listen_socket_handle::get() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:78,1
    - Dst: auto::can_route
      Src: /src/libtorrent/src/listen_socket_handle.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::listen_socket_handle::can_route
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - auto::can_route
    - lock
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_handle::can_route(address const& a) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:41,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:42,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:43,1
    - Dst: auto::external_address::external_address
      Src: /src/libtorrent/src/listen_socket_handle.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::listen_socket_handle::get_external_address
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    - auto::external_address::external_address
    linkageType: ''
    returnType: address
    signature: address listen_socket_handle::get_external_address() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:49,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:50,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::listen_socket_handle::get_local_endpoint
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint listen_socket_handle::get_local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:58,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: libtorrent::aux::listen_socket_handle::is_ssl
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_handle::is_ssl() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:65,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::listen_socket_handle::device
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - lock
    linkageType: ''
    returnType: std::string
    signature: std::string listen_socket_handle::device() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::listen_socket_handle::get
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: listen_socket_t
    signature: listen_socket_t * listen_socket_handle::get() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:78,1
    - Dst: auto::can_route
      Src: /src/libtorrent/src/listen_socket_handle.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::listen_socket_handle::can_route
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - auto::can_route
    - lock
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_handle::can_route(address const& a) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:41,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:42,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:43,1
    - Dst: auto::external_address::external_address
      Src: /src/libtorrent/src/listen_socket_handle.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::listen_socket_handle::get_external_address
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    - auto::external_address::external_address
    linkageType: ''
    returnType: address
    signature: address listen_socket_handle::get_external_address() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:49,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:50,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::listen_socket_handle::get_local_endpoint
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint listen_socket_handle::get_local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:57,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:58,1
    - Dst: throw_ex<std::bad_weak_ptr>
      Src: /src/libtorrent/src/listen_socket_handle.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: libtorrent::aux::listen_socket_handle::is_ssl
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - throw_ex<std::bad_weak_ptr>
    - lock
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_handle::is_ssl() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:65,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/listen_socket_handle.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::listen_socket_handle::device
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - lock
    linkageType: ''
    returnType: std::string
    signature: std::string listen_socket_handle::device() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::listen_socket_handle::get
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: listen_socket_t
    signature: listen_socket_t * listen_socket_handle::get() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/listen_socket_handle.cpp:78,1
    - Dst: auto::can_route
      Src: /src/libtorrent/src/listen_socket_handle.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: libtorrent::aux::listen_socket_handle::can_route
    functionSourceFile: /src/libtorrent/src/listen_socket_handle.cpp
    functionUses: 0
    functionsReached:
    - auto::can_route
    - lock
    linkageType: ''
    returnType: bool
    signature: bool listen_socket_handle::can_route(address const& a) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:69,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::watermark_callback
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<disk_observer>> const&
      cbs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:69,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::watermark_callback
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<disk_observer>> const&
      cbs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::disk_buffer_pool::disk_buffer_pool
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::disk_buffer_pool(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: disk_buffer_pool::~disk_buffer_pool()
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::~disk_buffer_pool()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:98,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:98,1
    - Dst: swap
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:104,1
    - Dst: unlock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:105,1
    - Dst: post
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    - Dst: std::bind
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::disk_buffer_pool::check_buffer_level
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - owns_lock
    - std::move
    - post
    - swap
    - TORRENT_ASSERT
    - unlock
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::check_buffer_level(std::unique_lock<std::mutex>&
      l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - category
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    linkageType: ''
    returnType: char
    signature: char * disk_buffer_pool::allocate_buffer(char const* category)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:126,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:130,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' exceeded'
    - o
    - category
    argTypes:
    - bool
    - std::shared_ptr<disk_observer>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    linkageType: ''
    returnType: char
    signature: "char * disk_buffer_pool::allocate_buffer(bool& exceeded\n\t\t, std::shared_ptr<disk_observer>
      o, char const* category)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:139,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:140,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:140,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:141,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:143,1
    - Dst: std::malloc
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:156,1
    - Dst: count
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:156,1
    - Dst: insert
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:157,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 173
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 2
    functionsReached:
    - owns_lock
    - count
    - insert
    - TORRENT_ASSERT
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    - static_cast<char*>
    - std::malloc
    - TORRENT_UNUSED
    linkageType: ''
    returnType: char
    signature: "char * disk_buffer_pool::allocate_buffer_impl(std::unique_lock<std::mutex>&
      l\n\t\t, char const*)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: span<char*>::begin
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: span<char*>::end
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:183,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:184,1
    - Dst: libtorrent::aux::disk_buffer_pool::check_buffer_level
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufvec
    argTypes:
    - span<char*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: libtorrent::aux::disk_buffer_pool::free_multiple_buffers
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - span<char*>::begin
    - libtorrent::aux::disk_buffer_pool::check_buffer_level
    - libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    - span<char*>::end
    - std::sort
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_multiple_buffers(span<char*> bufvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:193,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:194,1
    - Dst: libtorrent::aux::disk_buffer_pool::check_buffer_level
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: libtorrent::aux::disk_buffer_pool::free_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    - libtorrent::aux::disk_buffer_pool::check_buffer_level
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_buffer(char* buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:202,1
    - Dst: get_int
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::disk_buffer_pool::set_settings
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - std::max
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::set_settings(settings_interface const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:217,1
    - Dst: find
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:220,1
    - Dst: erase
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 2
    functionsReached:
    - erase
    - end
    - find
    - TORRENT_ASSERT
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::remove_buffer_in_use(char* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:228,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:230,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:230,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:231,1
    - Dst: std::free
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - ' l'
    argTypes:
    - char*
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: libtorrent::aux::disk_buffer_pool::free_buffer_impl
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - owns_lock
    - TORRENT_UNUSED
    - std::free
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_buffer_impl(char* buf, std::unique_lock<std::mutex>&
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:69,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::watermark_callback
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<disk_observer>> const&
      cbs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:69,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::watermark_callback
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<disk_observer>> const&
      cbs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::disk_buffer_pool::disk_buffer_pool
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::disk_buffer_pool(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: disk_buffer_pool::~disk_buffer_pool()
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::~disk_buffer_pool()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:98,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:98,1
    - Dst: swap
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:104,1
    - Dst: unlock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:105,1
    - Dst: post
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    - Dst: std::bind
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::disk_buffer_pool::check_buffer_level
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - owns_lock
    - std::move
    - post
    - swap
    - TORRENT_ASSERT
    - unlock
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::check_buffer_level(std::unique_lock<std::mutex>&
      l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - category
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    linkageType: ''
    returnType: char
    signature: char * disk_buffer_pool::allocate_buffer(char const* category)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:126,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:130,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' exceeded'
    - o
    - category
    argTypes:
    - bool
    - std::shared_ptr<disk_observer>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    linkageType: ''
    returnType: char
    signature: "char * disk_buffer_pool::allocate_buffer(bool& exceeded\n\t\t, std::shared_ptr<disk_observer>
      o, char const* category)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:139,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:140,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:140,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:141,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:143,1
    - Dst: std::malloc
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:156,1
    - Dst: count
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:156,1
    - Dst: insert
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:157,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 173
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 4
    functionsReached:
    - owns_lock
    - count
    - insert
    - TORRENT_ASSERT
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    - static_cast<char*>
    - std::malloc
    - TORRENT_UNUSED
    linkageType: ''
    returnType: char
    signature: "char * disk_buffer_pool::allocate_buffer_impl(std::unique_lock<std::mutex>&
      l\n\t\t, char const*)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: span<char*>::begin
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: span<char*>::end
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:183,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:184,1
    - Dst: libtorrent::aux::disk_buffer_pool::check_buffer_level
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufvec
    argTypes:
    - span<char*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: libtorrent::aux::disk_buffer_pool::free_multiple_buffers
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - span<char*>::begin
    - libtorrent::aux::disk_buffer_pool::check_buffer_level
    - libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    - span<char*>::end
    - std::sort
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_multiple_buffers(span<char*> bufvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:193,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:194,1
    - Dst: libtorrent::aux::disk_buffer_pool::check_buffer_level
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: libtorrent::aux::disk_buffer_pool::free_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    - libtorrent::aux::disk_buffer_pool::check_buffer_level
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_buffer(char* buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:202,1
    - Dst: get_int
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::disk_buffer_pool::set_settings
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - std::max
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::set_settings(settings_interface const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:217,1
    - Dst: find
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:220,1
    - Dst: erase
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 4
    functionsReached:
    - erase
    - end
    - find
    - TORRENT_ASSERT
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::remove_buffer_in_use(char* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:228,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:230,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:230,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:231,1
    - Dst: std::free
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - ' l'
    argTypes:
    - char*
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: libtorrent::aux::disk_buffer_pool::free_buffer_impl
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - owns_lock
    - TORRENT_UNUSED
    - std::free
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_buffer_impl(char* buf, std::unique_lock<std::mutex>&
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:69,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::watermark_callback
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<disk_observer>> const&
      cbs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:69,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::watermark_callback
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<disk_observer>> const&
      cbs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::disk_buffer_pool::disk_buffer_pool
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::disk_buffer_pool(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: disk_buffer_pool::~disk_buffer_pool()
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::~disk_buffer_pool()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:98,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:98,1
    - Dst: swap
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:104,1
    - Dst: unlock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:105,1
    - Dst: post
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    - Dst: std::bind
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::disk_buffer_pool::check_buffer_level
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 4
    functionsReached:
    - std::bind
    - owns_lock
    - std::move
    - post
    - swap
    - TORRENT_ASSERT
    - unlock
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::check_buffer_level(std::unique_lock<std::mutex>&
      l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - category
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    linkageType: ''
    returnType: char
    signature: char * disk_buffer_pool::allocate_buffer(char const* category)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:126,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:130,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' exceeded'
    - o
    - category
    argTypes:
    - bool
    - std::shared_ptr<disk_observer>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    linkageType: ''
    returnType: char
    signature: "char * disk_buffer_pool::allocate_buffer(bool& exceeded\n\t\t, std::shared_ptr<disk_observer>
      o, char const* category)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:139,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:140,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:140,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:141,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:143,1
    - Dst: std::malloc
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:156,1
    - Dst: count
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:156,1
    - Dst: insert
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:157,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 173
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 6
    functionsReached:
    - owns_lock
    - count
    - insert
    - TORRENT_ASSERT
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    - static_cast<char*>
    - std::malloc
    - TORRENT_UNUSED
    linkageType: ''
    returnType: char
    signature: "char * disk_buffer_pool::allocate_buffer_impl(std::unique_lock<std::mutex>&
      l\n\t\t, char const*)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: span<char*>::begin
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: span<char*>::end
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:183,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:184,1
    - Dst: libtorrent::aux::disk_buffer_pool::check_buffer_level
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufvec
    argTypes:
    - span<char*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: libtorrent::aux::disk_buffer_pool::free_multiple_buffers
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - span<char*>::begin
    - libtorrent::aux::disk_buffer_pool::check_buffer_level
    - libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    - span<char*>::end
    - std::sort
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_multiple_buffers(span<char*> bufvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:193,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:194,1
    - Dst: libtorrent::aux::disk_buffer_pool::check_buffer_level
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: libtorrent::aux::disk_buffer_pool::free_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    - libtorrent::aux::disk_buffer_pool::check_buffer_level
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_buffer(char* buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:202,1
    - Dst: get_int
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::disk_buffer_pool::set_settings
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - std::max
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::set_settings(settings_interface const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:217,1
    - Dst: find
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:220,1
    - Dst: erase
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 6
    functionsReached:
    - erase
    - end
    - find
    - TORRENT_ASSERT
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::remove_buffer_in_use(char* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:228,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:230,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:230,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:231,1
    - Dst: std::free
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - ' l'
    argTypes:
    - char*
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: libtorrent::aux::disk_buffer_pool::free_buffer_impl
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 9
    functionsReached:
    - TORRENT_ASSERT
    - owns_lock
    - TORRENT_UNUSED
    - std::free
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_buffer_impl(char* buf, std::unique_lock<std::mutex>&
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:69,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::watermark_callback
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<disk_observer>> const&
      cbs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:69,1
    - Dst: std::shared_ptr::on_disk
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' cbs'
    argTypes:
    - std::vector<std::weak_ptr<disk_observer>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::watermark_callback
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - lock
    - std::shared_ptr::on_disk
    linkageType: ''
    returnType: void
    signature: void watermark_callback(std::vector<std::weak_ptr<disk_observer>> const&
      cbs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::disk_buffer_pool::disk_buffer_pool
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::disk_buffer_pool(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: disk_buffer_pool::~disk_buffer_pool()
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::~disk_buffer_pool()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:98,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:98,1
    - Dst: swap
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:104,1
    - Dst: unlock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:105,1
    - Dst: post
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    - Dst: std::bind
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::disk_buffer_pool::check_buffer_level
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 6
    functionsReached:
    - std::bind
    - owns_lock
    - std::move
    - post
    - swap
    - TORRENT_ASSERT
    - unlock
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::check_buffer_level(std::unique_lock<std::mutex>&
      l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - category
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    linkageType: ''
    returnType: char
    signature: char * disk_buffer_pool::allocate_buffer(char const* category)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:126,1
    - Dst: push_back
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:130,1
    - Dst: std::move
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' exceeded'
    - o
    - category
    argTypes:
    - bool
    - std::shared_ptr<disk_observer>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::move
    - libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    linkageType: ''
    returnType: char
    signature: "char * disk_buffer_pool::allocate_buffer(bool& exceeded\n\t\t, std::shared_ptr<disk_observer>
      o, char const* category)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:138,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:139,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:140,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:140,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:141,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:143,1
    - Dst: std::malloc
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:143,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:156,1
    - Dst: count
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:156,1
    - Dst: insert
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:157,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 173
    functionName: libtorrent::aux::disk_buffer_pool::allocate_buffer_impl
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 8
    functionsReached:
    - owns_lock
    - count
    - insert
    - TORRENT_ASSERT
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    - static_cast<char*>
    - std::malloc
    - TORRENT_UNUSED
    linkageType: ''
    returnType: char
    signature: "char * disk_buffer_pool::allocate_buffer_impl(std::unique_lock<std::mutex>&
      l\n\t\t, char const*)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: span<char*>::begin
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: span<char*>::end
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:178,1
    - Dst: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:183,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:184,1
    - Dst: libtorrent::aux::disk_buffer_pool::check_buffer_level
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufvec
    argTypes:
    - span<char*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: libtorrent::aux::disk_buffer_pool::free_multiple_buffers
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - span<char*>::begin
    - libtorrent::aux::disk_buffer_pool::check_buffer_level
    - libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    - span<char*>::end
    - std::sort
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_multiple_buffers(span<char*> bufvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:193,1
    - Dst: libtorrent::aux::disk_buffer_pool::free_buffer_impl
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:194,1
    - Dst: libtorrent::aux::disk_buffer_pool::check_buffer_level
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: libtorrent::aux::disk_buffer_pool::free_buffer
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    - libtorrent::aux::disk_buffer_pool::check_buffer_level
    - libtorrent::aux::disk_buffer_pool::free_buffer_impl
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_buffer(char* buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:202,1
    - Dst: get_int
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::disk_buffer_pool::set_settings
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 0
    functionsReached:
    - get_int
    - std::max
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::set_settings(settings_interface const& sett)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:217,1
    - Dst: find
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:220,1
    - Dst: end
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:220,1
    - Dst: erase
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::disk_buffer_pool::remove_buffer_in_use
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 8
    functionsReached:
    - erase
    - end
    - find
    - TORRENT_ASSERT
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::remove_buffer_in_use(char* buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:228,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:230,1
    - Dst: owns_lock
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:230,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:231,1
    - Dst: std::free
      Src: /src/libtorrent/src/disk_buffer_pool.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - ' l'
    argTypes:
    - char*
    - std::unique_lock<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: libtorrent::aux::disk_buffer_pool::free_buffer_impl
    functionSourceFile: /src/libtorrent/src/disk_buffer_pool.cpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT
    - owns_lock
    - TORRENT_UNUSED
    - std::free
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool::free_buffer_impl(char* buf, std::unique_lock<std::mutex>&
      l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' thread_iface'
    - ' ios'
    argTypes:
    - pool_thread_interface
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: libtorrent::aux::disk_io_thread_pool::disk_io_thread_pool
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void disk_io_thread_pool::disk_io_thread_pool(pool_thread_interface&
      thread_iface\n\t\t, io_context& ios)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: disk_io_thread_pool::~disk_io_thread_pool()
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::~disk_io_thread_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:70,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:71,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::disk_io_thread_pool::set_max_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::set_max_threads(int const i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:79,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:80,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:80,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:87,1
    - Dst: join
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:88,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:89,1
    - Dst: detach
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:92,1
    - Dst: clear
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - wait
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::disk_io_thread_pool::abort
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - join
    - cancel
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - clear
    - detach
    - std::unique_lock::unlock
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::abort(bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:100,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::disk_io_thread_pool::thread_active
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - compare_exchange_weak
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::thread_active()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:111,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: begin
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: get_id
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:120,1
    - Dst: detach
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:127,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:127,1
    - Dst: erase
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:128,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:128,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:129,1
    - Dst: cancel
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::thread::id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::disk_io_thread_pool::try_thread_exit
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - begin
    - get_id
    - erase
    - empty
    - end
    - std::remove_if
    - cancel
    - TORRENT_ASSERT
    - compare_exchange_weak
    - detach
    linkageType: ''
    returnType: bool
    signature: bool disk_io_thread_pool::try_thread_exit(std::thread::id id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:138,1
    - Dst: front
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: libtorrent::aux::disk_io_thread_pool::first_thread_id
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - empty
    - front
    linkageType: ''
    returnType: std::thread::id
    signature: std::thread::id disk_io_thread_pool::first_thread_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:153,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:154,1
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:155,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:160,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:164,1
    - Dst: expires_after
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:166,1
    - Dst: async_wait
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:167,1
    - Dst: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:167,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:178,1
    - Dst: std::ref
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:179,1
    - Dst: make_work_guard
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - queue_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 182
    functionName: libtorrent::aux::disk_io_thread_pool::job_queued
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    - async_wait
    - empty
    - expires_after
    - std::ref
    - compare_exchange_weak
    - std::max
    - emplace_back
    - size
    - make_work_guard
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::job_queued(int const queue_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:191,1
    - Dst: expires_after
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:192,1
    - Dst: async_wait
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:193,1
    - Dst: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:193,1
    - Dst: exchange
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:194,1
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:198,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:198,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    - async_wait
    - empty
    - expires_after
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - std::max
    - exchange
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::reap_idle_threads(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_all
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_to_stop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: libtorrent::aux::disk_io_thread_pool::stop_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 3
    functionsReached:
    - notify_all
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::stop_threads(int num_to_stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' thread_iface'
    - ' ios'
    argTypes:
    - pool_thread_interface
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: libtorrent::aux::disk_io_thread_pool::disk_io_thread_pool
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void disk_io_thread_pool::disk_io_thread_pool(pool_thread_interface&
      thread_iface\n\t\t, io_context& ios)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: disk_io_thread_pool::~disk_io_thread_pool()
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::~disk_io_thread_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:70,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:71,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::disk_io_thread_pool::set_max_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::set_max_threads(int const i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:79,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:80,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:80,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:87,1
    - Dst: join
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:88,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:89,1
    - Dst: detach
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:92,1
    - Dst: clear
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - wait
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::disk_io_thread_pool::abort
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - join
    - cancel
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - clear
    - detach
    - std::unique_lock::unlock
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::abort(bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:100,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::disk_io_thread_pool::thread_active
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - compare_exchange_weak
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::thread_active()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:111,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: begin
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: get_id
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:120,1
    - Dst: detach
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:127,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:127,1
    - Dst: erase
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:128,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:128,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:129,1
    - Dst: cancel
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::thread::id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::disk_io_thread_pool::try_thread_exit
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - begin
    - get_id
    - erase
    - empty
    - end
    - std::remove_if
    - cancel
    - TORRENT_ASSERT
    - compare_exchange_weak
    - detach
    linkageType: ''
    returnType: bool
    signature: bool disk_io_thread_pool::try_thread_exit(std::thread::id id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:138,1
    - Dst: front
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: libtorrent::aux::disk_io_thread_pool::first_thread_id
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - empty
    - front
    linkageType: ''
    returnType: std::thread::id
    signature: std::thread::id disk_io_thread_pool::first_thread_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:153,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:154,1
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:155,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:160,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:164,1
    - Dst: expires_after
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:166,1
    - Dst: async_wait
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:167,1
    - Dst: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:167,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:178,1
    - Dst: std::ref
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:179,1
    - Dst: make_work_guard
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - queue_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 182
    functionName: libtorrent::aux::disk_io_thread_pool::job_queued
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    - async_wait
    - empty
    - expires_after
    - std::ref
    - compare_exchange_weak
    - std::max
    - emplace_back
    - size
    - make_work_guard
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::job_queued(int const queue_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:191,1
    - Dst: expires_after
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:192,1
    - Dst: async_wait
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:193,1
    - Dst: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:193,1
    - Dst: exchange
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:194,1
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:198,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:198,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    - async_wait
    - empty
    - expires_after
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - std::max
    - exchange
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::reap_idle_threads(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_all
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_to_stop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: libtorrent::aux::disk_io_thread_pool::stop_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 6
    functionsReached:
    - notify_all
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::stop_threads(int num_to_stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' thread_iface'
    - ' ios'
    argTypes:
    - pool_thread_interface
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: libtorrent::aux::disk_io_thread_pool::disk_io_thread_pool
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void disk_io_thread_pool::disk_io_thread_pool(pool_thread_interface&
      thread_iface\n\t\t, io_context& ios)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: disk_io_thread_pool::~disk_io_thread_pool()
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::~disk_io_thread_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:70,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:71,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::disk_io_thread_pool::set_max_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::set_max_threads(int const i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:79,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:80,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:80,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:87,1
    - Dst: join
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:88,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:89,1
    - Dst: detach
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:92,1
    - Dst: clear
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - wait
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::disk_io_thread_pool::abort
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - join
    - cancel
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - clear
    - detach
    - std::unique_lock::unlock
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::abort(bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:100,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::disk_io_thread_pool::thread_active
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - compare_exchange_weak
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::thread_active()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:111,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: begin
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: get_id
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:120,1
    - Dst: detach
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:127,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:127,1
    - Dst: erase
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:128,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:128,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:129,1
    - Dst: cancel
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::thread::id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::disk_io_thread_pool::try_thread_exit
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - begin
    - get_id
    - erase
    - empty
    - end
    - std::remove_if
    - cancel
    - TORRENT_ASSERT
    - compare_exchange_weak
    - detach
    linkageType: ''
    returnType: bool
    signature: bool disk_io_thread_pool::try_thread_exit(std::thread::id id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:138,1
    - Dst: front
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: libtorrent::aux::disk_io_thread_pool::first_thread_id
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - empty
    - front
    linkageType: ''
    returnType: std::thread::id
    signature: std::thread::id disk_io_thread_pool::first_thread_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:153,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:154,1
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:155,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:160,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:164,1
    - Dst: expires_after
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:166,1
    - Dst: async_wait
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:167,1
    - Dst: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:167,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:178,1
    - Dst: std::ref
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:179,1
    - Dst: make_work_guard
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - queue_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 182
    functionName: libtorrent::aux::disk_io_thread_pool::job_queued
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    - async_wait
    - empty
    - expires_after
    - std::ref
    - compare_exchange_weak
    - std::max
    - emplace_back
    - size
    - make_work_guard
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::job_queued(int const queue_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:191,1
    - Dst: expires_after
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:192,1
    - Dst: async_wait
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:193,1
    - Dst: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:193,1
    - Dst: exchange
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:194,1
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:198,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:198,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    - async_wait
    - empty
    - expires_after
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - std::max
    - exchange
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::reap_idle_threads(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_all
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_to_stop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: libtorrent::aux::disk_io_thread_pool::stop_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 9
    functionsReached:
    - notify_all
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::stop_threads(int num_to_stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' thread_iface'
    - ' ios'
    argTypes:
    - pool_thread_interface
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: libtorrent::aux::disk_io_thread_pool::disk_io_thread_pool
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void disk_io_thread_pool::disk_io_thread_pool(pool_thread_interface&
      thread_iface\n\t\t, io_context& ios)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: disk_io_thread_pool::~disk_io_thread_pool()
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::~disk_io_thread_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:70,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:71,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::disk_io_thread_pool::set_max_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::set_max_threads(int const i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:79,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:80,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:80,1
    - Dst: std::unique_lock::unlock
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:87,1
    - Dst: join
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:88,1
    - Dst: std::unique_lock::lock
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:89,1
    - Dst: detach
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:92,1
    - Dst: clear
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - wait
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::disk_io_thread_pool::abort
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - std::unique_lock::lock
    - join
    - cancel
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - clear
    - detach
    - std::unique_lock::unlock
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::abort(bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:100,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::disk_io_thread_pool::thread_active
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - compare_exchange_weak
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::thread_active()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:111,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: begin
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:117,1
    - Dst: get_id
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:120,1
    - Dst: detach
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:122,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:127,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:127,1
    - Dst: erase
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:128,1
    - Dst: end
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:128,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:129,1
    - Dst: cancel
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::thread::id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::disk_io_thread_pool::try_thread_exit
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - begin
    - get_id
    - erase
    - empty
    - end
    - std::remove_if
    - cancel
    - TORRENT_ASSERT
    - compare_exchange_weak
    - detach
    linkageType: ''
    returnType: bool
    signature: bool disk_io_thread_pool::try_thread_exit(std::thread::id id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:138,1
    - Dst: front
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: libtorrent::aux::disk_io_thread_pool::first_thread_id
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - empty
    - front
    linkageType: ''
    returnType: std::thread::id
    signature: std::thread::id disk_io_thread_pool::first_thread_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:153,1
    - Dst: compare_exchange_weak
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:154,1
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:155,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:160,1
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:164,1
    - Dst: expires_after
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:166,1
    - Dst: async_wait
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:167,1
    - Dst: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:167,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:178,1
    - Dst: std::ref
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:179,1
    - Dst: make_work_guard
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - queue_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 182
    functionName: libtorrent::aux::disk_io_thread_pool::job_queued
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    - async_wait
    - empty
    - expires_after
    - std::ref
    - compare_exchange_weak
    - std::max
    - emplace_back
    - size
    - make_work_guard
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::job_queued(int const queue_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:191,1
    - Dst: expires_after
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:192,1
    - Dst: async_wait
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:193,1
    - Dst: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:193,1
    - Dst: exchange
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:194,1
    - Dst: std::max
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:198,1
    - Dst: size
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:198,1
    - Dst: libtorrent::aux::disk_io_thread_pool::stop_threads
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::disk_io_thread_pool::reap_idle_threads
    - async_wait
    - empty
    - expires_after
    - libtorrent::aux::disk_io_thread_pool::stop_threads
    - std::max
    - exchange
    - size
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::reap_idle_threads(error_code const& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notify_all
      Src: /src/libtorrent/src/disk_io_thread_pool.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_to_stop
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: libtorrent::aux::disk_io_thread_pool::stop_threads
    functionSourceFile: /src/libtorrent/src/disk_io_thread_pool.cpp
    functionUses: 12
    functionsReached:
    - notify_all
    linkageType: ''
    returnType: void
    signature: void disk_io_thread_pool::stop_threads(int num_to_stop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_hex
      Src: /src/libtorrent/src/posix_storage.cpp:65,1
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:67,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/posix_storage.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::posix_storage::posix_storage
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    - file_storage::file_storage
    - to_hex
    linkageType: ''
    returnType: void
    signature: void posix_storage::posix_storage(storage_params const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/posix_storage.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& posix_storage::files() const'
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: file_storage
    signature: file_storage & posix_storage::files() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: posix_storage::~posix_storage()
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    linkageType: ''
    returnType: void
    signature: void posix_storage::~posix_storage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<posix_part_file>
      Src: /src/libtorrent/src/posix_storage.cpp:82,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:84,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::posix_storage::need_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - std::make_unique<posix_part_file>
    linkageType: ''
    returnType: void
    signature: void posix_storage::need_partfile()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:93,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:93,1
    - Dst: resize
      Src: /src/libtorrent/src/posix_storage.cpp:94,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:94,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:96,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:97,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/posix_storage.cpp:100,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:106,1
    - Dst: export_file
      Src: /src/libtorrent/src/posix_storage.cpp:108,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:115,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:118,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:118,1
    - Dst: file_offset
      Src: /src/libtorrent/src/posix_storage.cpp:121,1
    - Dst: file_size
      Src: /src/libtorrent/src/posix_storage.cpp:121,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:125,1
    - Dst: file_path
      Src: /src/libtorrent/src/posix_storage.cpp:138,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:139,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:142,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:147,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:149,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:152,1
    - Dst: libtorrent::aux::posix_storage::need_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:154,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:157,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:160,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - ' prio'
    - ' ec'
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::posix_storage::set_file_priority
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - export_file
    - static_cast<std::size_t>
    - file_size
    - pad_file_at
    - libtorrent_category
    - file_offset
    - flush_metadata
    - data
    - file_path
    - file
    - std::fwrite
    - libtorrent::aux::posix_storage::open_file
    - files
    - libtorrent::aux::posix_storage::need_partfile
    - libtorrent::aux::posix_storage::use_partfile
    - generic_category
    - ec::assign
    - end_index
    - size
    - std::ferror
    - file_pointer::file
    - exists
    - resize
    - ec::clear
    linkageType: ''
    returnType: void
    signature: "void posix_storage::set_file_priority(settings_interface const&\n\t\t,
      aux::vector<download_priority_t, file_index_t>& prio\n\t\t, storage_error& ec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: rand
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: readwrite
      Src: /src/libtorrent/src/posix_storage.cpp:173,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:173,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:179,1
    - Dst: libtorrent::aux::read_zeroes
      Src: /src/libtorrent/src/posix_storage.cpp:179,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:181,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:185,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:188,1
    - Dst: libtorrent::aux::posix_storage::read
      Src: /src/libtorrent/src/posix_storage.cpp:189,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:200,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:214,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:214,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:220,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:220,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - buffer
    - piece
    - offset
    - ' error'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::posix_storage::read
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::fread
    - std::this_thread::sleep_for
    - static_cast<std::size_t>
    - libtorrent_category
    - data
    - libtorrent::aux::posix_storage::read
    - rand
    - libtorrent::aux::posix_storage::open_file
    - files
    - TORRENT_ASSERT
    - libtorrent::aux::posix_storage::use_partfile
    - milliseconds
    - generic_category
    - ec::assign
    - end_index
    - size
    - std::ferror
    - file_pointer::file
    - readwrite
    - libtorrent::aux::read_zeroes
    linkageType: ''
    returnType: int
    signature: "int posix_storage::read(settings_interface const&\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, storage_error&
      error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: rand
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: readwrite
      Src: /src/libtorrent/src/posix_storage.cpp:233,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:233,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:238,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:241,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:244,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:246,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:248,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:251,1
    - Dst: libtorrent::aux::posix_storage::write
      Src: /src/libtorrent/src/posix_storage.cpp:253,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:263,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:274,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:277,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:277,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/posix_storage.cpp:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - buffer
    - piece
    - offset
    - ' error'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 286
    functionName: libtorrent::aux::posix_storage::write
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - std::this_thread::sleep_for
    - static_cast<std::size_t>
    - libtorrent_category
    - data
    - rand
    - libtorrent::aux::posix_storage::write
    - std::fwrite
    - libtorrent::aux::posix_storage::open_file
    - files
    - TORRENT_ASSERT
    - libtorrent::aux::posix_storage::use_partfile
    - milliseconds
    - generic_category
    - ec::assign
    - end_index
    - size
    - set_dirty
    - std::ferror
    - file_pointer::file
    - readwrite
    linkageType: ''
    returnType: int
    signature: "int posix_storage::write(settings_interface const&\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, storage_error&
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/posix_storage.cpp:290,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:290,1
    - Dst: libtorrent::aux::has_any_file
      Src: /src/libtorrent/src/posix_storage.cpp:291,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: libtorrent::aux::posix_storage::has_any_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - reserve
    - libtorrent::aux::has_any_file
    linkageType: ''
    returnType: bool
    signature: bool posix_storage::has_any_file(storage_error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::verify_resume_data
      Src: /src/libtorrent/src/posix_storage.cpp:298,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rd'
    - ' links'
    - ' ec'
    argTypes:
    - add_torrent_params
    - vector<std::string, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: libtorrent::aux::posix_storage::verify_resume_data
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - libtorrent::aux::verify_resume_data
    linkageType: ''
    returnType: bool
    signature: "bool posix_storage::verify_resume_data(add_torrent_params const& rd\n\t\t,
      vector<std::string, file_index_t> const& links\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/posix_storage.cpp:304,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::posix_storage::release_files
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    - clear
    linkageType: ''
    returnType: void
    signature: void posix_storage::release_files()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:317,1
    - Dst: libtorrent::aux::delete_files
      Src: /src/libtorrent/src/posix_storage.cpp:318,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - options
    - ' error'
    argTypes:
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: libtorrent::aux::posix_storage::delete_files
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - reset
    - libtorrent::aux::delete_files
    linkageType: ''
    returnType: void
    signature: void posix_storage::delete_files(remove_flags_t const options, storage_error&
      error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: move_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:328,1
    - Dst: std::tie
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: libtorrent::aux::move_storage
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: std::move
      Src: /src/libtorrent/src/posix_storage.cpp:331,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_storage.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' sp'
    - flags
    - ' ec'
    argTypes:
    - std::string
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: libtorrent::aux::posix_storage::move_storage
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - move_partfile
    - std::move
    - std::tie
    - files
    - libtorrent::aux::move_storage
    - clear
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> posix_storage::move_storage(std::string
      const& sp\n\t\t, move_flags_t const flags, storage_error& ec)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/src/posix_storage.cpp:341,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:341,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:342,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:344,1
    - Dst: is_complete
      Src: /src/libtorrent/src/posix_storage.cpp:347,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_storage.cpp:348,1
    - Dst: parent_path
      Src: /src/libtorrent/src/posix_storage.cpp:349,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:352,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_storage.cpp:355,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:355,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:356,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_storage.cpp:363,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:366,1
    - Dst: rename
      Src: /src/libtorrent/src/posix_storage.cpp:371,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:374,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:378,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:386,1
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: libtorrent::aux::posix_storage::rename_file
      Src: /src/libtorrent/src/posix_storage.cpp:395,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - index
    - ' new_filename'
    - ' ec'
    argTypes:
    - file_index_t
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 396
    functionName: libtorrent::aux::posix_storage::rename_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 1
    functionsReached:
    - file_storage::file_storage
    - rename
    - reset
    - combine_path
    - create_directories
    - files
    - parent_path
    - error_code
    - libtorrent::aux::posix_storage::rename_file
    - exists
    - generic_category
    - file
    - ec::clear
    - is_complete
    - file_index_t
    linkageType: ''
    returnType: void
    signature: void posix_storage::rename_file(file_index_t const index, std::string
      const& new_filename, storage_error& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/posix_storage.cpp:400,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:400,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:402,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:408,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/posix_storage.cpp:410,1
    - Dst: file_path
      Src: /src/libtorrent/src/posix_storage.cpp:414,1
    - Dst: stat_file
      Src: /src/libtorrent/src/posix_storage.cpp:416,1
    - Dst: file_size
      Src: /src/libtorrent/src/posix_storage.cpp:418,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:423,1
    - Dst: libtorrent::aux::posix_storage::need_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:427,1
    - Dst: libtorrent::aux::initialize_storage
      Src: /src/libtorrent/src/posix_storage.cpp:431,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::posix_storage::initialize
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::initialize_storage
    - libtorrent::aux::posix_storage::open_file
    - files
    - stat_file
    - libtorrent::aux::posix_storage::need_partfile
    - file_path
    - libtorrent::aux::posix_storage::use_partfile
    - reserve
    - file_size
    - pad_file_at
    - end_index
    linkageType: ''
    returnType: status_t
    signature: status_t posix_storage::initialize(settings_interface const&, storage_error&
      ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:443,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_storage.cpp:453,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_storage.cpp:453,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/posix_storage.cpp:455,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_storage.cpp:455,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:459,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:459,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_storage.cpp:470,1
    - Dst: system_category
      Src: /src/libtorrent/src/posix_storage.cpp:470,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:476,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_storage.cpp:477,1
    - Dst: parent_path
      Src: /src/libtorrent/src/posix_storage.cpp:477,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:481,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_storage.cpp:491,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_storage.cpp:491,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/posix_storage.cpp:493,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_storage.cpp:493,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:497,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:497,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:498,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:505,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_storage.cpp:513,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:515,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:515,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:516,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - idx
    - mode
    - offset
    - ' ec'
    argTypes:
    - file_index_t
    - open_mode_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 523
    functionName: libtorrent::aux::posix_storage::open_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 4
    functionsReached:
    - system_category
    - portable_fseeko
    - create_directories
    - files
    - error_code
    - parent_path
    - std::string::c_str
    - ::_wfopen
    - generic_category
    - ec::clear
    - std::fopen
    - convert_to_native_path_string
    - file
    - ec::assign
    linkageType: ''
    returnType: file_pointer
    signature: "file_pointer posix_storage::open_file(file_index_t idx, open_mode_t
      const mode\n\t\t, std::int64_t const offset, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/posix_storage.cpp:527,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 530
    functionName: libtorrent::aux::posix_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT_VAL
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool posix_storage::use_partfile(file_index_t const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:534,1
    - Dst: resize
      Src: /src/libtorrent/src/posix_storage.cpp:539,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - b
    argTypes:
    - file_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: libtorrent::aux::posix_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void posix_storage::use_partfile(file_index_t const index, bool const
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_hex
      Src: /src/libtorrent/src/posix_storage.cpp:65,1
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:67,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/posix_storage.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::posix_storage::posix_storage
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    - file_storage::file_storage
    - to_hex
    linkageType: ''
    returnType: void
    signature: void posix_storage::posix_storage(storage_params const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/posix_storage.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& posix_storage::files() const'
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: file_storage
    signature: file_storage & posix_storage::files() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: posix_storage::~posix_storage()
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    linkageType: ''
    returnType: void
    signature: void posix_storage::~posix_storage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<posix_part_file>
      Src: /src/libtorrent/src/posix_storage.cpp:82,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:84,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::posix_storage::need_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 2
    functionsReached:
    - files
    - std::make_unique<posix_part_file>
    linkageType: ''
    returnType: void
    signature: void posix_storage::need_partfile()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:93,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:93,1
    - Dst: resize
      Src: /src/libtorrent/src/posix_storage.cpp:94,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:94,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:96,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:97,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/posix_storage.cpp:100,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:106,1
    - Dst: export_file
      Src: /src/libtorrent/src/posix_storage.cpp:108,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:115,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:118,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:118,1
    - Dst: file_offset
      Src: /src/libtorrent/src/posix_storage.cpp:121,1
    - Dst: file_size
      Src: /src/libtorrent/src/posix_storage.cpp:121,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:125,1
    - Dst: file_path
      Src: /src/libtorrent/src/posix_storage.cpp:138,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:139,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:142,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:147,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:149,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:152,1
    - Dst: libtorrent::aux::posix_storage::need_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:154,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:157,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:160,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - ' prio'
    - ' ec'
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::posix_storage::set_file_priority
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - export_file
    - static_cast<std::size_t>
    - file_size
    - pad_file_at
    - libtorrent_category
    - file_offset
    - flush_metadata
    - data
    - file_path
    - file
    - std::fwrite
    - libtorrent::aux::posix_storage::open_file
    - files
    - libtorrent::aux::posix_storage::need_partfile
    - libtorrent::aux::posix_storage::use_partfile
    - generic_category
    - ec::assign
    - end_index
    - size
    - std::ferror
    - file_pointer::file
    - exists
    - resize
    - ec::clear
    linkageType: ''
    returnType: void
    signature: "void posix_storage::set_file_priority(settings_interface const&\n\t\t,
      aux::vector<download_priority_t, file_index_t>& prio\n\t\t, storage_error& ec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: rand
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: readwrite
      Src: /src/libtorrent/src/posix_storage.cpp:173,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:173,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:179,1
    - Dst: libtorrent::aux::read_zeroes
      Src: /src/libtorrent/src/posix_storage.cpp:179,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:181,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:185,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:188,1
    - Dst: libtorrent::aux::posix_storage::read
      Src: /src/libtorrent/src/posix_storage.cpp:189,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:200,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:214,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:214,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:220,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:220,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - buffer
    - piece
    - offset
    - ' error'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::posix_storage::read
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::fread
    - std::this_thread::sleep_for
    - static_cast<std::size_t>
    - libtorrent_category
    - data
    - libtorrent::aux::posix_storage::read
    - rand
    - libtorrent::aux::posix_storage::open_file
    - files
    - TORRENT_ASSERT
    - libtorrent::aux::posix_storage::use_partfile
    - milliseconds
    - generic_category
    - ec::assign
    - end_index
    - size
    - std::ferror
    - file_pointer::file
    - readwrite
    - libtorrent::aux::read_zeroes
    linkageType: ''
    returnType: int
    signature: "int posix_storage::read(settings_interface const&\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, storage_error&
      error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: rand
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: readwrite
      Src: /src/libtorrent/src/posix_storage.cpp:233,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:233,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:238,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:241,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:244,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:246,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:248,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:251,1
    - Dst: libtorrent::aux::posix_storage::write
      Src: /src/libtorrent/src/posix_storage.cpp:253,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:263,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:274,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:277,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:277,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/posix_storage.cpp:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - buffer
    - piece
    - offset
    - ' error'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 286
    functionName: libtorrent::aux::posix_storage::write
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::this_thread::sleep_for
    - static_cast<std::size_t>
    - libtorrent_category
    - data
    - rand
    - libtorrent::aux::posix_storage::write
    - std::fwrite
    - libtorrent::aux::posix_storage::open_file
    - files
    - TORRENT_ASSERT
    - libtorrent::aux::posix_storage::use_partfile
    - milliseconds
    - generic_category
    - ec::assign
    - end_index
    - size
    - set_dirty
    - std::ferror
    - file_pointer::file
    - readwrite
    linkageType: ''
    returnType: int
    signature: "int posix_storage::write(settings_interface const&\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, storage_error&
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/posix_storage.cpp:290,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:290,1
    - Dst: libtorrent::aux::has_any_file
      Src: /src/libtorrent/src/posix_storage.cpp:291,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: libtorrent::aux::posix_storage::has_any_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - reserve
    - libtorrent::aux::has_any_file
    linkageType: ''
    returnType: bool
    signature: bool posix_storage::has_any_file(storage_error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::verify_resume_data
      Src: /src/libtorrent/src/posix_storage.cpp:298,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rd'
    - ' links'
    - ' ec'
    argTypes:
    - add_torrent_params
    - vector<std::string, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: libtorrent::aux::posix_storage::verify_resume_data
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - libtorrent::aux::verify_resume_data
    linkageType: ''
    returnType: bool
    signature: "bool posix_storage::verify_resume_data(add_torrent_params const& rd\n\t\t,
      vector<std::string, file_index_t> const& links\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/posix_storage.cpp:304,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::posix_storage::release_files
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    - clear
    linkageType: ''
    returnType: void
    signature: void posix_storage::release_files()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:317,1
    - Dst: libtorrent::aux::delete_files
      Src: /src/libtorrent/src/posix_storage.cpp:318,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - options
    - ' error'
    argTypes:
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: libtorrent::aux::posix_storage::delete_files
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - reset
    - libtorrent::aux::delete_files
    linkageType: ''
    returnType: void
    signature: void posix_storage::delete_files(remove_flags_t const options, storage_error&
      error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: move_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:328,1
    - Dst: std::tie
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: libtorrent::aux::move_storage
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: std::move
      Src: /src/libtorrent/src/posix_storage.cpp:331,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_storage.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' sp'
    - flags
    - ' ec'
    argTypes:
    - std::string
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: libtorrent::aux::posix_storage::move_storage
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - move_partfile
    - std::move
    - std::tie
    - files
    - libtorrent::aux::move_storage
    - clear
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> posix_storage::move_storage(std::string
      const& sp\n\t\t, move_flags_t const flags, storage_error& ec)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/src/posix_storage.cpp:341,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:341,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:342,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:344,1
    - Dst: is_complete
      Src: /src/libtorrent/src/posix_storage.cpp:347,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_storage.cpp:348,1
    - Dst: parent_path
      Src: /src/libtorrent/src/posix_storage.cpp:349,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:352,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_storage.cpp:355,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:355,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:356,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_storage.cpp:363,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:366,1
    - Dst: rename
      Src: /src/libtorrent/src/posix_storage.cpp:371,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:374,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:378,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:386,1
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: libtorrent::aux::posix_storage::rename_file
      Src: /src/libtorrent/src/posix_storage.cpp:395,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - index
    - ' new_filename'
    - ' ec'
    argTypes:
    - file_index_t
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 396
    functionName: libtorrent::aux::posix_storage::rename_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 2
    functionsReached:
    - file_storage::file_storage
    - rename
    - reset
    - combine_path
    - create_directories
    - files
    - parent_path
    - error_code
    - libtorrent::aux::posix_storage::rename_file
    - exists
    - generic_category
    - file
    - ec::clear
    - is_complete
    - file_index_t
    linkageType: ''
    returnType: void
    signature: void posix_storage::rename_file(file_index_t const index, std::string
      const& new_filename, storage_error& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/posix_storage.cpp:400,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:400,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:402,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:408,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/posix_storage.cpp:410,1
    - Dst: file_path
      Src: /src/libtorrent/src/posix_storage.cpp:414,1
    - Dst: stat_file
      Src: /src/libtorrent/src/posix_storage.cpp:416,1
    - Dst: file_size
      Src: /src/libtorrent/src/posix_storage.cpp:418,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:423,1
    - Dst: libtorrent::aux::posix_storage::need_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:427,1
    - Dst: libtorrent::aux::initialize_storage
      Src: /src/libtorrent/src/posix_storage.cpp:431,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::posix_storage::initialize
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::initialize_storage
    - libtorrent::aux::posix_storage::open_file
    - files
    - stat_file
    - libtorrent::aux::posix_storage::need_partfile
    - file_path
    - libtorrent::aux::posix_storage::use_partfile
    - reserve
    - file_size
    - pad_file_at
    - end_index
    linkageType: ''
    returnType: status_t
    signature: status_t posix_storage::initialize(settings_interface const&, storage_error&
      ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:443,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_storage.cpp:453,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_storage.cpp:453,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/posix_storage.cpp:455,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_storage.cpp:455,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:459,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:459,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_storage.cpp:470,1
    - Dst: system_category
      Src: /src/libtorrent/src/posix_storage.cpp:470,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:476,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_storage.cpp:477,1
    - Dst: parent_path
      Src: /src/libtorrent/src/posix_storage.cpp:477,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:481,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_storage.cpp:491,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_storage.cpp:491,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/posix_storage.cpp:493,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_storage.cpp:493,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:497,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:497,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:498,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:505,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_storage.cpp:513,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:515,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:515,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:516,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - idx
    - mode
    - offset
    - ' ec'
    argTypes:
    - file_index_t
    - open_mode_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 523
    functionName: libtorrent::aux::posix_storage::open_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 8
    functionsReached:
    - system_category
    - portable_fseeko
    - create_directories
    - files
    - error_code
    - parent_path
    - std::string::c_str
    - ::_wfopen
    - generic_category
    - ec::clear
    - std::fopen
    - convert_to_native_path_string
    - file
    - ec::assign
    linkageType: ''
    returnType: file_pointer
    signature: "file_pointer posix_storage::open_file(file_index_t idx, open_mode_t
      const mode\n\t\t, std::int64_t const offset, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/posix_storage.cpp:527,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 530
    functionName: libtorrent::aux::posix_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT_VAL
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool posix_storage::use_partfile(file_index_t const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:534,1
    - Dst: resize
      Src: /src/libtorrent/src/posix_storage.cpp:539,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - b
    argTypes:
    - file_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: libtorrent::aux::posix_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void posix_storage::use_partfile(file_index_t const index, bool const
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_hex
      Src: /src/libtorrent/src/posix_storage.cpp:65,1
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:67,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/posix_storage.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::posix_storage::posix_storage
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    - file_storage::file_storage
    - to_hex
    linkageType: ''
    returnType: void
    signature: void posix_storage::posix_storage(storage_params const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/posix_storage.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& posix_storage::files() const'
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: file_storage
    signature: file_storage & posix_storage::files() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: posix_storage::~posix_storage()
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    linkageType: ''
    returnType: void
    signature: void posix_storage::~posix_storage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<posix_part_file>
      Src: /src/libtorrent/src/posix_storage.cpp:82,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:84,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::posix_storage::need_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 4
    functionsReached:
    - files
    - std::make_unique<posix_part_file>
    linkageType: ''
    returnType: void
    signature: void posix_storage::need_partfile()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:93,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:93,1
    - Dst: resize
      Src: /src/libtorrent/src/posix_storage.cpp:94,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:94,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:96,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:97,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/posix_storage.cpp:100,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:106,1
    - Dst: export_file
      Src: /src/libtorrent/src/posix_storage.cpp:108,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:115,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:118,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:118,1
    - Dst: file_offset
      Src: /src/libtorrent/src/posix_storage.cpp:121,1
    - Dst: file_size
      Src: /src/libtorrent/src/posix_storage.cpp:121,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:125,1
    - Dst: file_path
      Src: /src/libtorrent/src/posix_storage.cpp:138,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:139,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:142,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:147,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:149,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:152,1
    - Dst: libtorrent::aux::posix_storage::need_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:154,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:157,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:160,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - ' prio'
    - ' ec'
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::posix_storage::set_file_priority
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - export_file
    - static_cast<std::size_t>
    - file_size
    - pad_file_at
    - libtorrent_category
    - file_offset
    - flush_metadata
    - data
    - file_path
    - file
    - std::fwrite
    - libtorrent::aux::posix_storage::open_file
    - files
    - libtorrent::aux::posix_storage::need_partfile
    - libtorrent::aux::posix_storage::use_partfile
    - generic_category
    - ec::assign
    - end_index
    - size
    - std::ferror
    - file_pointer::file
    - exists
    - resize
    - ec::clear
    linkageType: ''
    returnType: void
    signature: "void posix_storage::set_file_priority(settings_interface const&\n\t\t,
      aux::vector<download_priority_t, file_index_t>& prio\n\t\t, storage_error& ec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: rand
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: readwrite
      Src: /src/libtorrent/src/posix_storage.cpp:173,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:173,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:179,1
    - Dst: libtorrent::aux::read_zeroes
      Src: /src/libtorrent/src/posix_storage.cpp:179,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:181,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:185,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:188,1
    - Dst: libtorrent::aux::posix_storage::read
      Src: /src/libtorrent/src/posix_storage.cpp:189,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:200,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:214,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:214,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:220,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:220,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - buffer
    - piece
    - offset
    - ' error'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::posix_storage::read
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - std::fread
    - std::this_thread::sleep_for
    - static_cast<std::size_t>
    - libtorrent_category
    - data
    - libtorrent::aux::posix_storage::read
    - rand
    - libtorrent::aux::posix_storage::open_file
    - files
    - TORRENT_ASSERT
    - libtorrent::aux::posix_storage::use_partfile
    - milliseconds
    - generic_category
    - ec::assign
    - end_index
    - size
    - std::ferror
    - file_pointer::file
    - readwrite
    - libtorrent::aux::read_zeroes
    linkageType: ''
    returnType: int
    signature: "int posix_storage::read(settings_interface const&\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, storage_error&
      error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: rand
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: readwrite
      Src: /src/libtorrent/src/posix_storage.cpp:233,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:233,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:238,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:241,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:244,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:246,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:248,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:251,1
    - Dst: libtorrent::aux::posix_storage::write
      Src: /src/libtorrent/src/posix_storage.cpp:253,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:263,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:274,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:277,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:277,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/posix_storage.cpp:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - buffer
    - piece
    - offset
    - ' error'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 286
    functionName: libtorrent::aux::posix_storage::write
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - std::this_thread::sleep_for
    - static_cast<std::size_t>
    - libtorrent_category
    - data
    - rand
    - libtorrent::aux::posix_storage::write
    - std::fwrite
    - libtorrent::aux::posix_storage::open_file
    - files
    - TORRENT_ASSERT
    - libtorrent::aux::posix_storage::use_partfile
    - milliseconds
    - generic_category
    - ec::assign
    - end_index
    - size
    - set_dirty
    - std::ferror
    - file_pointer::file
    - readwrite
    linkageType: ''
    returnType: int
    signature: "int posix_storage::write(settings_interface const&\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, storage_error&
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/posix_storage.cpp:290,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:290,1
    - Dst: libtorrent::aux::has_any_file
      Src: /src/libtorrent/src/posix_storage.cpp:291,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: libtorrent::aux::posix_storage::has_any_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - reserve
    - libtorrent::aux::has_any_file
    linkageType: ''
    returnType: bool
    signature: bool posix_storage::has_any_file(storage_error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::verify_resume_data
      Src: /src/libtorrent/src/posix_storage.cpp:298,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rd'
    - ' links'
    - ' ec'
    argTypes:
    - add_torrent_params
    - vector<std::string, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: libtorrent::aux::posix_storage::verify_resume_data
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - libtorrent::aux::verify_resume_data
    linkageType: ''
    returnType: bool
    signature: "bool posix_storage::verify_resume_data(add_torrent_params const& rd\n\t\t,
      vector<std::string, file_index_t> const& links\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/posix_storage.cpp:304,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::posix_storage::release_files
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    - clear
    linkageType: ''
    returnType: void
    signature: void posix_storage::release_files()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:317,1
    - Dst: libtorrent::aux::delete_files
      Src: /src/libtorrent/src/posix_storage.cpp:318,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - options
    - ' error'
    argTypes:
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: libtorrent::aux::posix_storage::delete_files
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - reset
    - libtorrent::aux::delete_files
    linkageType: ''
    returnType: void
    signature: void posix_storage::delete_files(remove_flags_t const options, storage_error&
      error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: move_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:328,1
    - Dst: std::tie
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: libtorrent::aux::move_storage
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: std::move
      Src: /src/libtorrent/src/posix_storage.cpp:331,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_storage.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' sp'
    - flags
    - ' ec'
    argTypes:
    - std::string
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: libtorrent::aux::posix_storage::move_storage
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - move_partfile
    - std::move
    - std::tie
    - files
    - libtorrent::aux::move_storage
    - clear
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> posix_storage::move_storage(std::string
      const& sp\n\t\t, move_flags_t const flags, storage_error& ec)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/src/posix_storage.cpp:341,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:341,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:342,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:344,1
    - Dst: is_complete
      Src: /src/libtorrent/src/posix_storage.cpp:347,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_storage.cpp:348,1
    - Dst: parent_path
      Src: /src/libtorrent/src/posix_storage.cpp:349,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:352,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_storage.cpp:355,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:355,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:356,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_storage.cpp:363,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:366,1
    - Dst: rename
      Src: /src/libtorrent/src/posix_storage.cpp:371,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:374,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:378,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:386,1
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: libtorrent::aux::posix_storage::rename_file
      Src: /src/libtorrent/src/posix_storage.cpp:395,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - index
    - ' new_filename'
    - ' ec'
    argTypes:
    - file_index_t
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 396
    functionName: libtorrent::aux::posix_storage::rename_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 3
    functionsReached:
    - file_storage::file_storage
    - rename
    - reset
    - combine_path
    - create_directories
    - files
    - parent_path
    - error_code
    - libtorrent::aux::posix_storage::rename_file
    - exists
    - generic_category
    - file
    - ec::clear
    - is_complete
    - file_index_t
    linkageType: ''
    returnType: void
    signature: void posix_storage::rename_file(file_index_t const index, std::string
      const& new_filename, storage_error& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/posix_storage.cpp:400,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:400,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:402,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:408,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/posix_storage.cpp:410,1
    - Dst: file_path
      Src: /src/libtorrent/src/posix_storage.cpp:414,1
    - Dst: stat_file
      Src: /src/libtorrent/src/posix_storage.cpp:416,1
    - Dst: file_size
      Src: /src/libtorrent/src/posix_storage.cpp:418,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:423,1
    - Dst: libtorrent::aux::posix_storage::need_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:427,1
    - Dst: libtorrent::aux::initialize_storage
      Src: /src/libtorrent/src/posix_storage.cpp:431,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::posix_storage::initialize
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::initialize_storage
    - libtorrent::aux::posix_storage::open_file
    - files
    - stat_file
    - libtorrent::aux::posix_storage::need_partfile
    - file_path
    - libtorrent::aux::posix_storage::use_partfile
    - reserve
    - file_size
    - pad_file_at
    - end_index
    linkageType: ''
    returnType: status_t
    signature: status_t posix_storage::initialize(settings_interface const&, storage_error&
      ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:443,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_storage.cpp:453,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_storage.cpp:453,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/posix_storage.cpp:455,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_storage.cpp:455,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:459,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:459,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_storage.cpp:470,1
    - Dst: system_category
      Src: /src/libtorrent/src/posix_storage.cpp:470,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:476,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_storage.cpp:477,1
    - Dst: parent_path
      Src: /src/libtorrent/src/posix_storage.cpp:477,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:481,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_storage.cpp:491,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_storage.cpp:491,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/posix_storage.cpp:493,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_storage.cpp:493,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:497,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:497,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:498,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:505,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_storage.cpp:513,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:515,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:515,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:516,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - idx
    - mode
    - offset
    - ' ec'
    argTypes:
    - file_index_t
    - open_mode_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 523
    functionName: libtorrent::aux::posix_storage::open_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 12
    functionsReached:
    - system_category
    - portable_fseeko
    - create_directories
    - files
    - error_code
    - parent_path
    - std::string::c_str
    - ::_wfopen
    - generic_category
    - ec::clear
    - std::fopen
    - convert_to_native_path_string
    - file
    - ec::assign
    linkageType: ''
    returnType: file_pointer
    signature: "file_pointer posix_storage::open_file(file_index_t idx, open_mode_t
      const mode\n\t\t, std::int64_t const offset, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/posix_storage.cpp:527,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 530
    functionName: libtorrent::aux::posix_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT_VAL
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool posix_storage::use_partfile(file_index_t const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:534,1
    - Dst: resize
      Src: /src/libtorrent/src/posix_storage.cpp:539,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - b
    argTypes:
    - file_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: libtorrent::aux::posix_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 12
    functionsReached:
    - static_cast<int>
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void posix_storage::use_partfile(file_index_t const index, bool const
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_hex
      Src: /src/libtorrent/src/posix_storage.cpp:65,1
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:67,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/posix_storage.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - storage_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::posix_storage::posix_storage
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    - file_storage::file_storage
    - to_hex
    linkageType: ''
    returnType: void
    signature: void posix_storage::posix_storage(storage_params const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/src/posix_storage.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& posix_storage::files() const'
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: file_storage
    signature: file_storage & posix_storage::files() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: posix_storage::~posix_storage()
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    linkageType: ''
    returnType: void
    signature: void posix_storage::~posix_storage()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<posix_part_file>
      Src: /src/libtorrent/src/posix_storage.cpp:82,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:84,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::posix_storage::need_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 6
    functionsReached:
    - files
    - std::make_unique<posix_part_file>
    linkageType: ''
    returnType: void
    signature: void posix_storage::need_partfile()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:93,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:93,1
    - Dst: resize
      Src: /src/libtorrent/src/posix_storage.cpp:94,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:94,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:96,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:97,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/posix_storage.cpp:100,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:106,1
    - Dst: export_file
      Src: /src/libtorrent/src/posix_storage.cpp:108,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:113,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:114,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:115,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:117,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:118,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:118,1
    - Dst: file_offset
      Src: /src/libtorrent/src/posix_storage.cpp:121,1
    - Dst: file_size
      Src: /src/libtorrent/src/posix_storage.cpp:121,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:125,1
    - Dst: file_path
      Src: /src/libtorrent/src/posix_storage.cpp:138,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:139,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:142,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:147,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:149,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:152,1
    - Dst: libtorrent::aux::posix_storage::need_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:154,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:157,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:160,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - ' prio'
    - ' ec'
    argTypes:
    - aux::vector<download_priority_t, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::posix_storage::set_file_priority
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - export_file
    - static_cast<std::size_t>
    - file_size
    - pad_file_at
    - libtorrent_category
    - file_offset
    - flush_metadata
    - data
    - file_path
    - file
    - std::fwrite
    - libtorrent::aux::posix_storage::open_file
    - files
    - libtorrent::aux::posix_storage::need_partfile
    - libtorrent::aux::posix_storage::use_partfile
    - generic_category
    - ec::assign
    - end_index
    - size
    - std::ferror
    - file_pointer::file
    - exists
    - resize
    - ec::clear
    linkageType: ''
    returnType: void
    signature: "void posix_storage::set_file_priority(settings_interface const&\n\t\t,
      aux::vector<download_priority_t, file_index_t>& prio\n\t\t, storage_error& ec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: rand
      Src: /src/libtorrent/src/posix_storage.cpp:171,1
    - Dst: readwrite
      Src: /src/libtorrent/src/posix_storage.cpp:173,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:173,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:179,1
    - Dst: libtorrent::aux::read_zeroes
      Src: /src/libtorrent/src/posix_storage.cpp:179,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:181,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:183,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:185,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:188,1
    - Dst: libtorrent::aux::posix_storage::read
      Src: /src/libtorrent/src/posix_storage.cpp:189,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:200,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: std::fread
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:209,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:210,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:213,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:214,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:214,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:220,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:220,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - buffer
    - piece
    - offset
    - ' error'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 223
    functionName: libtorrent::aux::posix_storage::read
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - std::fread
    - std::this_thread::sleep_for
    - static_cast<std::size_t>
    - libtorrent_category
    - data
    - libtorrent::aux::posix_storage::read
    - rand
    - libtorrent::aux::posix_storage::open_file
    - files
    - TORRENT_ASSERT
    - libtorrent::aux::posix_storage::use_partfile
    - milliseconds
    - generic_category
    - ec::assign
    - end_index
    - size
    - std::ferror
    - file_pointer::file
    - readwrite
    - libtorrent::aux::read_zeroes
    linkageType: ''
    returnType: int
    signature: "int posix_storage::read(settings_interface const&\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, storage_error&
      error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: rand
      Src: /src/libtorrent/src/posix_storage.cpp:231,1
    - Dst: readwrite
      Src: /src/libtorrent/src/posix_storage.cpp:233,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:233,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:238,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:241,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:244,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:246,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/posix_storage.cpp:248,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:251,1
    - Dst: libtorrent::aux::posix_storage::write
      Src: /src/libtorrent/src/posix_storage.cpp:253,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:263,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: std::fwrite
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: data
      Src: /src/libtorrent/src/posix_storage.cpp:272,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:273,1
    - Dst: size
      Src: /src/libtorrent/src/posix_storage.cpp:274,1
    - Dst: std::ferror
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: file_pointer::file
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:276,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:277,1
    - Dst: libtorrent_category
      Src: /src/libtorrent/src/posix_storage.cpp:277,1
    - Dst: set_dirty
      Src: /src/libtorrent/src/posix_storage.cpp:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - buffer
    - piece
    - offset
    - ' error'
    argTypes:
    - span<char>
    - piece_index_t
    - int
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 286
    functionName: libtorrent::aux::posix_storage::write
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - std::this_thread::sleep_for
    - static_cast<std::size_t>
    - libtorrent_category
    - data
    - rand
    - libtorrent::aux::posix_storage::write
    - std::fwrite
    - libtorrent::aux::posix_storage::open_file
    - files
    - TORRENT_ASSERT
    - libtorrent::aux::posix_storage::use_partfile
    - milliseconds
    - generic_category
    - ec::assign
    - end_index
    - size
    - set_dirty
    - std::ferror
    - file_pointer::file
    - readwrite
    linkageType: ''
    returnType: int
    signature: "int posix_storage::write(settings_interface const&\n\t\t, span<char>
      buffer\n\t\t, piece_index_t const piece, int const offset\n\t\t, storage_error&
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/posix_storage.cpp:290,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:290,1
    - Dst: libtorrent::aux::has_any_file
      Src: /src/libtorrent/src/posix_storage.cpp:291,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: libtorrent::aux::posix_storage::has_any_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - reserve
    - libtorrent::aux::has_any_file
    linkageType: ''
    returnType: bool
    signature: bool posix_storage::has_any_file(storage_error& error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::verify_resume_data
      Src: /src/libtorrent/src/posix_storage.cpp:298,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rd'
    - ' links'
    - ' ec'
    argTypes:
    - add_torrent_params
    - vector<std::string, file_index_t>
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: libtorrent::aux::posix_storage::verify_resume_data
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - libtorrent::aux::verify_resume_data
    linkageType: ''
    returnType: bool
    signature: "bool posix_storage::verify_resume_data(add_torrent_params const& rd\n\t\t,
      vector<std::string, file_index_t> const& links\n\t\t, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/posix_storage.cpp:304,1
    - Dst: flush_metadata
      Src: /src/libtorrent/src/posix_storage.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: libtorrent::aux::posix_storage::release_files
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - flush_metadata
    - clear
    linkageType: ''
    returnType: void
    signature: void posix_storage::release_files()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:317,1
    - Dst: libtorrent::aux::delete_files
      Src: /src/libtorrent/src/posix_storage.cpp:318,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - options
    - ' error'
    argTypes:
    - remove_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: libtorrent::aux::posix_storage::delete_files
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - files
    - reset
    - libtorrent::aux::delete_files
    linkageType: ''
    returnType: void
    signature: void posix_storage::delete_files(remove_flags_t const options, storage_error&
      error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: move_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:328,1
    - Dst: std::tie
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: libtorrent::aux::move_storage
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:330,1
    - Dst: std::move
      Src: /src/libtorrent/src/posix_storage.cpp:331,1
    - Dst: clear
      Src: /src/libtorrent/src/posix_storage.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' sp'
    - flags
    - ' ec'
    argTypes:
    - std::string
    - move_flags_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: libtorrent::aux::posix_storage::move_storage
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - move_partfile
    - std::move
    - std::tie
    - files
    - libtorrent::aux::move_storage
    - clear
    linkageType: ''
    returnType: std::pair<status_t, std::string>
    signature: "std::pair<status_t, std::string> posix_storage::move_storage(std::string
      const& sp\n\t\t, move_flags_t const flags, storage_error& ec)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/src/posix_storage.cpp:341,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:341,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:342,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:344,1
    - Dst: is_complete
      Src: /src/libtorrent/src/posix_storage.cpp:347,1
    - Dst: combine_path
      Src: /src/libtorrent/src/posix_storage.cpp:348,1
    - Dst: parent_path
      Src: /src/libtorrent/src/posix_storage.cpp:349,1
    - Dst: exists
      Src: /src/libtorrent/src/posix_storage.cpp:352,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_storage.cpp:355,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:355,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:356,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_storage.cpp:363,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:366,1
    - Dst: rename
      Src: /src/libtorrent/src/posix_storage.cpp:371,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:374,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:378,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:386,1
    - Dst: reset
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: file_storage::file_storage
      Src: /src/libtorrent/src/posix_storage.cpp:393,1
    - Dst: libtorrent::aux::posix_storage::rename_file
      Src: /src/libtorrent/src/posix_storage.cpp:395,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - index
    - ' new_filename'
    - ' ec'
    argTypes:
    - file_index_t
    - std::string
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 396
    functionName: libtorrent::aux::posix_storage::rename_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 4
    functionsReached:
    - file_storage::file_storage
    - rename
    - reset
    - combine_path
    - create_directories
    - files
    - parent_path
    - error_code
    - libtorrent::aux::posix_storage::rename_file
    - exists
    - generic_category
    - file
    - ec::clear
    - is_complete
    - file_index_t
    linkageType: ''
    returnType: void
    signature: void posix_storage::rename_file(file_index_t const index, std::string
      const& new_filename, storage_error& ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/libtorrent/src/posix_storage.cpp:400,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:400,1
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:402,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:408,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/posix_storage.cpp:410,1
    - Dst: file_path
      Src: /src/libtorrent/src/posix_storage.cpp:414,1
    - Dst: stat_file
      Src: /src/libtorrent/src/posix_storage.cpp:416,1
    - Dst: file_size
      Src: /src/libtorrent/src/posix_storage.cpp:418,1
    - Dst: libtorrent::aux::posix_storage::use_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:423,1
    - Dst: libtorrent::aux::posix_storage::need_partfile
      Src: /src/libtorrent/src/posix_storage.cpp:427,1
    - Dst: libtorrent::aux::initialize_storage
      Src: /src/libtorrent/src/posix_storage.cpp:431,1
    - Dst: libtorrent::aux::posix_storage::open_file
      Src: /src/libtorrent/src/posix_storage.cpp:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::posix_storage::initialize
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::initialize_storage
    - libtorrent::aux::posix_storage::open_file
    - files
    - stat_file
    - libtorrent::aux::posix_storage::need_partfile
    - file_path
    - libtorrent::aux::posix_storage::use_partfile
    - reserve
    - file_size
    - pad_file_at
    - end_index
    linkageType: ''
    returnType: status_t
    signature: status_t posix_storage::initialize(settings_interface const&, storage_error&
      ec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/posix_storage.cpp:443,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_storage.cpp:453,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_storage.cpp:453,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/posix_storage.cpp:455,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_storage.cpp:455,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:459,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:459,1
    - Dst: error_code
      Src: /src/libtorrent/src/posix_storage.cpp:470,1
    - Dst: system_category
      Src: /src/libtorrent/src/posix_storage.cpp:470,1
    - Dst: ec::clear
      Src: /src/libtorrent/src/posix_storage.cpp:476,1
    - Dst: create_directories
      Src: /src/libtorrent/src/posix_storage.cpp:477,1
    - Dst: parent_path
      Src: /src/libtorrent/src/posix_storage.cpp:477,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:481,1
    - Dst: ::_wfopen
      Src: /src/libtorrent/src/posix_storage.cpp:491,1
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/posix_storage.cpp:491,1
    - Dst: std::fopen
      Src: /src/libtorrent/src/posix_storage.cpp:493,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/posix_storage.cpp:493,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:497,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:497,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:498,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:505,1
    - Dst: portable_fseeko
      Src: /src/libtorrent/src/posix_storage.cpp:513,1
    - Dst: ec::assign
      Src: /src/libtorrent/src/posix_storage.cpp:515,1
    - Dst: generic_category
      Src: /src/libtorrent/src/posix_storage.cpp:515,1
    - Dst: file
      Src: /src/libtorrent/src/posix_storage.cpp:516,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - idx
    - mode
    - offset
    - ' ec'
    argTypes:
    - file_index_t
    - open_mode_t
    - std::int64_t
    - storage_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 523
    functionName: libtorrent::aux::posix_storage::open_file
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 16
    functionsReached:
    - system_category
    - portable_fseeko
    - create_directories
    - files
    - error_code
    - parent_path
    - std::string::c_str
    - ::_wfopen
    - generic_category
    - ec::clear
    - std::fopen
    - convert_to_native_path_string
    - file
    - ec::assign
    linkageType: ''
    returnType: file_pointer
    signature: "file_pointer posix_storage::open_file(file_index_t idx, open_mode_t
      const mode\n\t\t, std::int64_t const offset, storage_error& ec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/posix_storage.cpp:527,1
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 530
    functionName: libtorrent::aux::posix_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT_VAL
    - end_index
    linkageType: ''
    returnType: bool
    signature: bool posix_storage::use_partfile(file_index_t const index) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/src/posix_storage.cpp:534,1
    - Dst: resize
      Src: /src/libtorrent/src/posix_storage.cpp:539,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/posix_storage.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - b
    argTypes:
    - file_index_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: libtorrent::aux::posix_storage::use_partfile
    functionSourceFile: /src/libtorrent/src/posix_storage.cpp
    functionUses: 16
    functionsReached:
    - static_cast<int>
    - end_index
    - resize
    linkageType: ''
    returnType: void
    signature: void posix_storage::use_partfile(file_index_t const index, bool const
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - address
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: match_peer_endpoint
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void match_peer_endpoint(address const& addr, std::uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:79,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: operator()(torrent_peer const* p) const
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - torrent_peer*::address
    linkageType: ''
    returnType: bool
    signature: bool operator()(torrent_peer const* p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:91,1
    - Dst: peer_source
      Src: /src/libtorrent/src/peer_list.cpp:97,1
    - Dst: peer_source
      Src: /src/libtorrent/src/peer_list.cpp:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - torrent_peer
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 108
    functionName: compare_peer_erase
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - peer_source
    linkageType: ''
    returnType: bool
    signature: bool compare_peer_erase(torrent_peer const& lhs, torrent_peer const&
      rhs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/peer_list.cpp:119,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:119,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/peer_list.cpp:120,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:120,1
    - Dst: source_rank
      Src: /src/libtorrent/src/peer_list.cpp:135,1
    - Dst: torrent_peer*::peer_source
      Src: /src/libtorrent/src/peer_list.cpp:135,1
    - Dst: source_rank
      Src: /src/libtorrent/src/peer_list.cpp:136,1
    - Dst: torrent_peer*::peer_source
      Src: /src/libtorrent/src/peer_list.cpp:136,1
    - Dst: torrent_peer*::rank
      Src: /src/libtorrent/src/peer_list.cpp:139,1
    - Dst: torrent_peer*::rank
      Src: /src/libtorrent/src/peer_list.cpp:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - lhs
    - rhs
    - ' external'
    - external_port
    - finished
    argTypes:
    - torrent_peer*
    - torrent_peer*
    - external_ip
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 142
    functionName: compare_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::peer_source
    - source_rank
    - torrent_peer*::rank
    - torrent_peer*::address
    - libtorrent::aux::is_local
    linkageType: ''
    returnType: bool
    signature: "bool compare_peer(torrent_peer const* lhs, torrent_peer const* rhs\n\t\t,
      external_ip const& external, int const external_port, bool const finished)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' addr'
    - port
    argTypes:
    - address
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: match_peer_endpoint
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void match_peer_endpoint(address const& addr, std::uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:79,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: operator()(torrent_peer const* p) const
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - torrent_peer*::address
    linkageType: ''
    returnType: bool
    signature: bool operator()(torrent_peer const* p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:90,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:91,1
    - Dst: peer_source
      Src: /src/libtorrent/src/peer_list.cpp:97,1
    - Dst: peer_source
      Src: /src/libtorrent/src/peer_list.cpp:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - torrent_peer
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 108
    functionName: compare_peer_erase
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - peer_source
    linkageType: ''
    returnType: bool
    signature: bool compare_peer_erase(torrent_peer const& lhs, torrent_peer const&
      rhs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/peer_list.cpp:119,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:119,1
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/peer_list.cpp:120,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:120,1
    - Dst: source_rank
      Src: /src/libtorrent/src/peer_list.cpp:135,1
    - Dst: torrent_peer*::peer_source
      Src: /src/libtorrent/src/peer_list.cpp:135,1
    - Dst: source_rank
      Src: /src/libtorrent/src/peer_list.cpp:136,1
    - Dst: torrent_peer*::peer_source
      Src: /src/libtorrent/src/peer_list.cpp:136,1
    - Dst: torrent_peer*::rank
      Src: /src/libtorrent/src/peer_list.cpp:139,1
    - Dst: torrent_peer*::rank
      Src: /src/libtorrent/src/peer_list.cpp:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - lhs
    - rhs
    - ' external'
    - external_port
    - finished
    argTypes:
    - torrent_peer*
    - torrent_peer*
    - external_ip
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 142
    functionName: compare_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::peer_source
    - source_rank
    - torrent_peer*::rank
    - torrent_peer*::address
    - libtorrent::aux::is_local
    linkageType: ''
    returnType: bool
    signature: "bool compare_peer(torrent_peer const* lhs, torrent_peer const* rhs\n\t\t,
      external_ip const& external, int const external_port, bool const finished)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thread_started
      Src: /src/libtorrent/src/peer_list.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alloc'
    argTypes:
    - torrent_peer_allocator_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: libtorrent::peer_list::peer_list
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - thread_started
    linkageType: ''
    returnType: void
    signature: void peer_list::peer_list(torrent_peer_allocator_interface& alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:162,1
    - Dst: libtorrent::peer_list::clear
      Src: /src/libtorrent/src/peer_list.cpp:163,1
    - Dst: libtorrent::peer_list::clear
      Src: /src/libtorrent/src/peer_list.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: libtorrent::peer_list::clear
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 1
    functionsReached:
    - free_peer_entry
    - libtorrent::peer_list::clear
    linkageType: ''
    returnType: void
    signature: void peer_list::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: peer_list::~peer_list()
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - free_peer_entry
    linkageType: ''
    returnType: void
    signature: void peer_list::~peer_list()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recalculate_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: libtorrent::peer_list::set_max_failcount
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - recalculate_connect_candidates
    linkageType: ''
    returnType: void
    signature: void peer_list::set_max_failcount(torrent_state* state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:190,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:190,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:193,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:193,1
    - Dst: access
      Src: /src/libtorrent/src/peer_list.cpp:195,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:195,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:207,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:208,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:209,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:209,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:215,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_list.cpp:218,1
    - Dst: peer_connection_interface*::remote
      Src: /src/libtorrent/src/peer_list.cpp:218,1
    - Dst: peer_connection_interface*::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:220,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:224,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:226,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:229,1
    - Dst: connection::peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:230,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:233,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:234,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - ' filter'
    - state
    - ' banned'
    argTypes:
    - ip_filter
    - torrent_state*
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 236
    functionName: libtorrent::peer_list::apply_ip_filter
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - access
    - begin
    - peer_connection_interface*::disconnect
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - connection::peer_info_struct
    - peer_connection_interface*::remote
    - address
    - size
    - libtorrent::peer_list::erase_peer
    linkageType: ''
    returnType: void
    signature: "void peer_list::apply_ip_filter(ip_filter const& filter\n\t\t, torrent_state*
      state, std::vector<address>& banned)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: libtorrent::peer_list::clear_peer_prio
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_list::clear_peer_prio()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:252,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:252,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:255,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:255,1
    - Dst: access
      Src: /src/libtorrent/src/peer_list.cpp:257,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:268,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:269,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:270,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:270,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:271,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:271,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:277,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_list.cpp:280,1
    - Dst: peer_connection_interface*::remote
      Src: /src/libtorrent/src/peer_list.cpp:280,1
    - Dst: peer_connection_interface*::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:282,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:284,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:286,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:289,1
    - Dst: connection::peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:290,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:293,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:294,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - ' filter'
    - state
    - ' banned'
    argTypes:
    - port_filter
    - torrent_state*
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 296
    functionName: libtorrent::peer_list::apply_port_filter
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - access
    - begin
    - peer_connection_interface*::disconnect
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - connection::peer_info_struct
    - peer_connection_interface*::remote
    - size
    - libtorrent::peer_list::erase_peer
    linkageType: ''
    returnType: void
    signature: "void peer_list::apply_port_filter(port_filter const& filter\n\t\t,
      torrent_state* state, std::vector<tcp::endpoint>& banned)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:300,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:300,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:303,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:304,1
    - Dst: std::equal_range
      Src: /src/libtorrent/src/peer_list.cpp:306,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:306,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:306,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_list.cpp:307,1
    - Dst: torrent_peer_equal
      Src: /src/libtorrent/src/peer_list.cpp:308,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - state
    argTypes:
    - torrent_peer*
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 312
    functionName: libtorrent::peer_list::erase_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 3
    functionsReached:
    - begin
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - torrent_peer_equal
    - std::equal_range
    - libtorrent::peer_list::erase_peer
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void peer_list::erase_peer(torrent_peer* p, torrent_state* state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:320,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:320,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:322,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:322,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:323,1
    - Dst: torrent_state*::erased::push_back
      Src: /src/libtorrent/src/peer_list.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:328,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:331,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:333,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:333,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:334,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:335,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_list.cpp:339,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:339,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:339,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:340,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_list.cpp:340,1
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:342,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_list.cpp:343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - i
    - state
    argTypes:
    - iterator
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: libtorrent::peer_list::erase_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::peer_list::is_connect_candidate
    - begin
    - free_peer_entry
    - is_single_thread
    - erase
    - end
    - std::find
    - TORRENT_ASSERT
    - update_connect_candidates
    - torrent_state*::erased::push_back
    - size
    linkageType: ''
    returnType: void
    signature: void peer_list::erase_peer(iterator i, torrent_state* state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:348,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:348,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:349,1
    - Dst: peer_source
      Src: /src/libtorrent/src/peer_list.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: libtorrent::peer_list::should_erase_immediately
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - peer_source
    linkageType: ''
    returnType: bool
    signature: bool peer_list::should_erase_immediately(torrent_peer const& p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:356,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:356,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:357,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:360,1
    - Dst: peer_source
      Src: /src/libtorrent/src/peer_list.cpp:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' pe'
    argTypes:
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: libtorrent::peer_list::is_erase_candidate
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::peer_list::is_connect_candidate
    - peer_source
    linkageType: ''
    returnType: bool
    signature: bool peer_list::is_erase_candidate(torrent_peer const& pe) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:368,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' pe'
    argTypes:
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 372
    functionName: libtorrent::peer_list::is_force_erase_candidate
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool peer_list::is_force_erase_candidate(torrent_peer const& pe) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:376,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:376,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_list.cpp:381,1
    - Dst: recalculate_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:387,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/peer_list.cpp:389,1
    - Dst: random
      Src: /src/libtorrent/src/peer_list.cpp:389,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_list.cpp:389,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:389,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_list.cpp:394,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:394,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:397,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:403,1
    - Dst: libtorrent::peer_list::is_erase_candidate
      Src: /src/libtorrent/src/peer_list.cpp:406,1
    - Dst: compare_peer_erase
      Src: /src/libtorrent/src/peer_list.cpp:408,1
    - Dst: libtorrent::peer_list::should_erase_immediately
      Src: /src/libtorrent/src/peer_list.cpp:410,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:414,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:414,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:415,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:415,1
    - Dst: libtorrent::peer_list::is_force_erase_candidate
      Src: /src/libtorrent/src/peer_list.cpp:423,1
    - Dst: compare_peer_erase
      Src: /src/libtorrent/src/peer_list.cpp:425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:435,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:435,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:436,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:436,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:440,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:440,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:441,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:441,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - torrent_state*
    - erase_peer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 443
    functionName: libtorrent::peer_list::erase_peers
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - begin
    - is_single_thread
    - empty
    - std::uint32_t
    - libtorrent::peer_list::is_force_erase_candidate
    - TORRENT_ASSERT
    - std::min
    - compare_peer_erase
    - recalculate_connect_candidates
    - aux::numeric_cast<int>
    - libtorrent::peer_list::is_erase_candidate
    - libtorrent::peer_list::erase_peer
    - libtorrent::peer_list::should_erase_immediately
    - size
    - random
    linkageType: ''
    returnType: void
    signature: void peer_list::erase_peers(torrent_state* state, erase_peer_flags_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:448,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:451,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:453,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:454,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:457,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 459
    functionName: libtorrent::peer_list::ban_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - update_connect_candidates
    - is_single_thread
    - libtorrent::peer_list::is_connect_candidate
    linkageType: ''
    returnType: bool
    signature: bool peer_list::ban_peer(torrent_peer* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:463,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:463,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:466,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:467,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:469,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - torrent_peer*
    - peer_connection_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 475
    functionName: libtorrent::peer_list::set_connection
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - update_connect_candidates
    - is_single_thread
    - libtorrent::peer_list::is_connect_candidate
    linkageType: ''
    returnType: void
    signature: void peer_list::set_connection(torrent_peer* p, peer_connection_interface*
      c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:483,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:485,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 487
    functionName: libtorrent::peer_list::inc_failcount
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_list::is_connect_candidate
    - update_connect_candidates
    linkageType: ''
    returnType: void
    signature: void peer_list::inc_failcount(torrent_peer* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:491,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:494,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:495,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/peer_list.cpp:496,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:497,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - torrent_peer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 501
    functionName: libtorrent::peer_list::set_failcount
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_list::is_connect_candidate
    - aux::numeric_cast<std::uint32_t>
    - is_single_thread
    - TORRENT_ASSERT
    - update_connect_candidates
    linkageType: ''
    returnType: void
    signature: void peer_list::set_failcount(torrent_peer* p, int const f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:505,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:505,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:506,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 516
    functionName: libtorrent::peer_list::is_connect_candidate
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool peer_list::is_connect_candidate(torrent_peer const& p) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:521,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:521,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_list.cpp:525,1
    - Dst: recalculate_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:530,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:535,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_list.cpp:542,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:542,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:547,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:550,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:556,1
    - Dst: libtorrent::peer_list::is_erase_candidate
      Src: /src/libtorrent/src/peer_list.cpp:559,1
    - Dst: compare_peer_erase
      Src: /src/libtorrent/src/peer_list.cpp:561,1
    - Dst: libtorrent::peer_list::should_erase_immediately
      Src: /src/libtorrent/src/peer_list.cpp:563,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:566,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:566,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:578,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:589,1
    - Dst: compare_peer
      Src: /src/libtorrent/src/peer_list.cpp:590,1
    - Dst: back
      Src: /src/libtorrent/src/peer_list.cpp:590,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:592,1
    - Dst: resize
      Src: /src/libtorrent/src/peer_list.cpp:593,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:596,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:596,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:596,1
    - Dst: std::bind
      Src: /src/libtorrent/src/peer_list.cpp:597,1
    - Dst: std::cref
      Src: /src/libtorrent/src/peer_list.cpp:597,1
    - Dst: insert
      Src: /src/libtorrent/src/peer_list.cpp:599,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:604,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:604,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 39
    argCount: 3
    argNames:
    - ' peers'
    - session_time
    - state
    argTypes:
    - std::vector<torrent_peer*>
    - int
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 606
    functionName: libtorrent::peer_list::find_connect_candidates
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::min
    - compare_peer_erase
    - recalculate_connect_candidates
    - is_single_thread
    - end
    - compare_peer
    - back
    - libtorrent::peer_list::erase_peer
    - std::cref
    - TORRENT_ASSERT
    - reserve
    - libtorrent::peer_list::is_erase_candidate
    - size
    - libtorrent::peer_list::is_connect_candidate
    - std::bind
    - insert
    - resize
    - libtorrent::peer_list::should_erase_immediately
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: "void peer_list::find_connect_candidates(std::vector<torrent_peer*>&
      peers\n\t\t, int session_time, torrent_state* state)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:611,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:611,1
    - Dst: destination
      Src: /src/libtorrent/src/peer_list.cpp:620,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:627,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:629,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:630,1
    - Dst: find_peers
      Src: /src/libtorrent/src/peer_list.cpp:631,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_list.cpp:632,1
    - Dst: match_peer_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:632,1
    - Dst: port
      Src: /src/libtorrent/src/peer_list.cpp:632,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:636,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:643,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:645,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:646,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:646,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:647,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:650,1
    - Dst: dest
      Src: /src/libtorrent/src/peer_list.cpp:650,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:652,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:659,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:660,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:660,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:661,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:661,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:664,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:664,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:664,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:683,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:684,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:684,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:684,1
    - Dst: should_log
      Src: /src/libtorrent/src/peer_list.cpp:687,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:690,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_list.cpp:692,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/peer_list.cpp:693,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_list.cpp:698,1
    - Dst: print_address
      Src: /src/libtorrent/src/peer_list.cpp:699,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:699,1
    - Dst: print_address
      Src: /src/libtorrent/src/peer_list.cpp:700,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:700,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:706,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:714,1
    - Dst: torrent_peer*::connection::local_i2p_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:716,1
    - Dst: torrent_peer*::connection::remote
      Src: /src/libtorrent/src/peer_list.cpp:721,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:721,1
    - Dst: torrent_peer*::connection::local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:722,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:722,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:727,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:728,1
    - Dst: torrent_peer*::connection::peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:728,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:729,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:730,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:734,1
    - Dst: torrent_peer*::connection::is_outgoing
      Src: /src/libtorrent/src/peer_list.cpp:737,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/peer_list.cpp:737,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:741,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:745,1
    - Dst: torrent_peer*::connection::destination
      Src: /src/libtorrent/src/peer_list.cpp:751,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/peer_list.cpp:755,1
    - Dst: should_log
      Src: /src/libtorrent/src/peer_list.cpp:758,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_list.cpp:760,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/peer_list.cpp:762,1
    - Dst: c_str
      Src: /src/libtorrent/src/peer_list.cpp:762,1
    - Dst: torrent_peer*::connection::peer_log
      Src: /src/libtorrent/src/peer_list.cpp:763,1
    - Dst: c_str
      Src: /src/libtorrent/src/peer_list.cpp:765,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/peer_list.cpp:765,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:771,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:774,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:776,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/peer_list.cpp:788,1
    - Dst: torrent_peer*::connection::local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:796,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:796,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:797,1
    - Dst: torrent_peer*::connection::remote
      Src: /src/libtorrent/src/peer_list.cpp:797,1
    - Dst: random
      Src: /src/libtorrent/src/peer_list.cpp:803,1
    - Dst: torrent_peer*::connection::failed
      Src: /src/libtorrent/src/peer_list.cpp:804,1
    - Dst: should_log
      Src: /src/libtorrent/src/peer_list.cpp:807,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_list.cpp:809,1
    - Dst: torrent_peer*::connection::peer_log
      Src: /src/libtorrent/src/peer_list.cpp:812,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:820,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:823,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:825,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:830,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:831,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 3
    argNames:
    - ' c'
    - session_time
    - state
    argTypes:
    - peer_connection_interface
    - int
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 832
    functionName: libtorrent::peer_list::new_connection
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::connection::peer_info_struct
    - begin
    - remote
    - find_peers
    - update_connect_candidates
    - torrent_peer*::connection::remote
    - is_single_thread
    - end
    - torrent_peer*::connection::local_endpoint
    - torrent_peer*::connection::disconnect
    - match_peer_endpoint
    - address
    - print_address
    - dest
    - TORRENT_ASSERT
    - destination
    - peer_address_compare
    - torrent_peer*::connection::failed
    - is_outgoing
    - disconnect
    - torrent_peer*::address
    - port
    - std::lower_bound
    - torrent_peer*::connection::local_i2p_endpoint
    - std::find_if
    - torrent_peer*::connection::is_outgoing
    - random
    - libtorrent::peer_list::is_connect_candidate
    - torrent_peer*::connection::peer_log
    - c_str
    - std::string::empty
    - std::string::c_str
    - local_endpoint
    - torrent_peer*::connection::destination
    - should_log
    - peer_log
    linkageType: ''
    returnType: bool
    signature: "bool peer_list::new_connection(peer_connection_interface& c, int session_time\n\t\t,
      torrent_state* state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thread_started
      Src: /src/libtorrent/src/peer_list.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alloc'
    argTypes:
    - torrent_peer_allocator_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: libtorrent::peer_list::peer_list
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - thread_started
    linkageType: ''
    returnType: void
    signature: void peer_list::peer_list(torrent_peer_allocator_interface& alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:162,1
    - Dst: libtorrent::peer_list::clear
      Src: /src/libtorrent/src/peer_list.cpp:163,1
    - Dst: libtorrent::peer_list::clear
      Src: /src/libtorrent/src/peer_list.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: libtorrent::peer_list::clear
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 2
    functionsReached:
    - free_peer_entry
    - libtorrent::peer_list::clear
    linkageType: ''
    returnType: void
    signature: void peer_list::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: peer_list::~peer_list()
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - free_peer_entry
    linkageType: ''
    returnType: void
    signature: void peer_list::~peer_list()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recalculate_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: libtorrent::peer_list::set_max_failcount
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - recalculate_connect_candidates
    linkageType: ''
    returnType: void
    signature: void peer_list::set_max_failcount(torrent_state* state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:190,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:190,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:193,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:193,1
    - Dst: access
      Src: /src/libtorrent/src/peer_list.cpp:195,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:195,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:207,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:208,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:209,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:209,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:215,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_list.cpp:218,1
    - Dst: peer_connection_interface*::remote
      Src: /src/libtorrent/src/peer_list.cpp:218,1
    - Dst: peer_connection_interface*::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:220,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:224,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:226,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:229,1
    - Dst: connection::peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:230,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:233,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:234,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - ' filter'
    - state
    - ' banned'
    argTypes:
    - ip_filter
    - torrent_state*
    - std::vector<address>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 236
    functionName: libtorrent::peer_list::apply_ip_filter
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - access
    - begin
    - peer_connection_interface*::disconnect
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - connection::peer_info_struct
    - peer_connection_interface*::remote
    - address
    - size
    - libtorrent::peer_list::erase_peer
    linkageType: ''
    returnType: void
    signature: "void peer_list::apply_ip_filter(ip_filter const& filter\n\t\t, torrent_state*
      state, std::vector<address>& banned)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: libtorrent::peer_list::clear_peer_prio
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_list::clear_peer_prio()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:252,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:252,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:255,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:255,1
    - Dst: access
      Src: /src/libtorrent/src/peer_list.cpp:257,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:268,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:269,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:270,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:270,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:271,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:271,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:277,1
    - Dst: push_back
      Src: /src/libtorrent/src/peer_list.cpp:280,1
    - Dst: peer_connection_interface*::remote
      Src: /src/libtorrent/src/peer_list.cpp:280,1
    - Dst: peer_connection_interface*::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:282,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:284,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:286,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:289,1
    - Dst: connection::peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:290,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:293,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:294,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - ' filter'
    - state
    - ' banned'
    argTypes:
    - port_filter
    - torrent_state*
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 296
    functionName: libtorrent::peer_list::apply_port_filter
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - access
    - begin
    - peer_connection_interface*::disconnect
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - connection::peer_info_struct
    - peer_connection_interface*::remote
    - size
    - libtorrent::peer_list::erase_peer
    linkageType: ''
    returnType: void
    signature: "void peer_list::apply_port_filter(port_filter const& filter\n\t\t,
      torrent_state* state, std::vector<tcp::endpoint>& banned)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:300,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:300,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:303,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:304,1
    - Dst: std::equal_range
      Src: /src/libtorrent/src/peer_list.cpp:306,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:306,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:306,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_list.cpp:307,1
    - Dst: torrent_peer_equal
      Src: /src/libtorrent/src/peer_list.cpp:308,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - state
    argTypes:
    - torrent_peer*
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 312
    functionName: libtorrent::peer_list::erase_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 8
    functionsReached:
    - begin
    - is_single_thread
    - end
    - TORRENT_ASSERT
    - torrent_peer_equal
    - std::equal_range
    - libtorrent::peer_list::erase_peer
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void peer_list::erase_peer(torrent_peer* p, torrent_state* state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:320,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:320,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:322,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:322,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:323,1
    - Dst: torrent_state*::erased::push_back
      Src: /src/libtorrent/src/peer_list.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:328,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:331,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:332,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:333,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:333,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:334,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:335,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_list.cpp:339,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:339,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:339,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:340,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_list.cpp:340,1
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:342,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_list.cpp:343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - i
    - state
    argTypes:
    - iterator
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: libtorrent::peer_list::erase_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 8
    functionsReached:
    - libtorrent::peer_list::is_connect_candidate
    - begin
    - free_peer_entry
    - is_single_thread
    - erase
    - end
    - std::find
    - TORRENT_ASSERT
    - update_connect_candidates
    - torrent_state*::erased::push_back
    - size
    linkageType: ''
    returnType: void
    signature: void peer_list::erase_peer(iterator i, torrent_state* state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:348,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:348,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:349,1
    - Dst: peer_source
      Src: /src/libtorrent/src/peer_list.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: libtorrent::peer_list::should_erase_immediately
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - peer_source
    linkageType: ''
    returnType: bool
    signature: bool peer_list::should_erase_immediately(torrent_peer const& p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:356,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:356,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:357,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:360,1
    - Dst: peer_source
      Src: /src/libtorrent/src/peer_list.cpp:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' pe'
    argTypes:
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: libtorrent::peer_list::is_erase_candidate
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    - libtorrent::peer_list::is_connect_candidate
    - peer_source
    linkageType: ''
    returnType: bool
    signature: bool peer_list::is_erase_candidate(torrent_peer const& pe) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:368,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:368,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' pe'
    argTypes:
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 372
    functionName: libtorrent::peer_list::is_force_erase_candidate
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool peer_list::is_force_erase_candidate(torrent_peer const& pe) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:376,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:376,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_list.cpp:381,1
    - Dst: recalculate_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:387,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/peer_list.cpp:389,1
    - Dst: random
      Src: /src/libtorrent/src/peer_list.cpp:389,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/peer_list.cpp:389,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:389,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_list.cpp:394,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:394,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:397,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:403,1
    - Dst: libtorrent::peer_list::is_erase_candidate
      Src: /src/libtorrent/src/peer_list.cpp:406,1
    - Dst: compare_peer_erase
      Src: /src/libtorrent/src/peer_list.cpp:408,1
    - Dst: libtorrent::peer_list::should_erase_immediately
      Src: /src/libtorrent/src/peer_list.cpp:410,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:414,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:414,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:415,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:415,1
    - Dst: libtorrent::peer_list::is_force_erase_candidate
      Src: /src/libtorrent/src/peer_list.cpp:423,1
    - Dst: compare_peer_erase
      Src: /src/libtorrent/src/peer_list.cpp:425,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:435,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:435,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:436,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:436,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:440,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:440,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:441,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:441,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - torrent_state*
    - erase_peer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 443
    functionName: libtorrent::peer_list::erase_peers
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - begin
    - is_single_thread
    - empty
    - std::uint32_t
    - libtorrent::peer_list::is_force_erase_candidate
    - TORRENT_ASSERT
    - std::min
    - compare_peer_erase
    - recalculate_connect_candidates
    - aux::numeric_cast<int>
    - libtorrent::peer_list::is_erase_candidate
    - libtorrent::peer_list::erase_peer
    - libtorrent::peer_list::should_erase_immediately
    - size
    - random
    linkageType: ''
    returnType: void
    signature: void peer_list::erase_peers(torrent_state* state, erase_peer_flags_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:448,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:448,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:451,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:453,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:454,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:457,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 459
    functionName: libtorrent::peer_list::ban_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - update_connect_candidates
    - is_single_thread
    - libtorrent::peer_list::is_connect_candidate
    linkageType: ''
    returnType: bool
    signature: bool peer_list::ban_peer(torrent_peer* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:463,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:463,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:466,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:467,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:469,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - torrent_peer*
    - peer_connection_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 475
    functionName: libtorrent::peer_list::set_connection
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - update_connect_candidates
    - is_single_thread
    - libtorrent::peer_list::is_connect_candidate
    linkageType: ''
    returnType: void
    signature: void peer_list::set_connection(torrent_peer* p, peer_connection_interface*
      c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:483,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:485,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 487
    functionName: libtorrent::peer_list::inc_failcount
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_list::is_connect_candidate
    - update_connect_candidates
    linkageType: ''
    returnType: void
    signature: void peer_list::inc_failcount(torrent_peer* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:491,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:491,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:494,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:495,1
    - Dst: aux::numeric_cast<std::uint32_t>
      Src: /src/libtorrent/src/peer_list.cpp:496,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:497,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - torrent_peer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 501
    functionName: libtorrent::peer_list::set_failcount
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::peer_list::is_connect_candidate
    - aux::numeric_cast<std::uint32_t>
    - is_single_thread
    - TORRENT_ASSERT
    - update_connect_candidates
    linkageType: ''
    returnType: void
    signature: void peer_list::set_failcount(torrent_peer* p, int const f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:505,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:505,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:506,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - torrent_peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 516
    functionName: libtorrent::peer_list::is_connect_candidate
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 14
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool peer_list::is_connect_candidate(torrent_peer const& p) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:521,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:521,1
    - Dst: reserve
      Src: /src/libtorrent/src/peer_list.cpp:525,1
    - Dst: recalculate_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:530,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:535,1
    - Dst: std::min
      Src: /src/libtorrent/src/peer_list.cpp:542,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:542,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:547,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:550,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:556,1
    - Dst: libtorrent::peer_list::is_erase_candidate
      Src: /src/libtorrent/src/peer_list.cpp:559,1
    - Dst: compare_peer_erase
      Src: /src/libtorrent/src/peer_list.cpp:561,1
    - Dst: libtorrent::peer_list::should_erase_immediately
      Src: /src/libtorrent/src/peer_list.cpp:563,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:566,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:566,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:578,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:589,1
    - Dst: compare_peer
      Src: /src/libtorrent/src/peer_list.cpp:590,1
    - Dst: back
      Src: /src/libtorrent/src/peer_list.cpp:590,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:592,1
    - Dst: resize
      Src: /src/libtorrent/src/peer_list.cpp:593,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:596,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:596,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:596,1
    - Dst: std::bind
      Src: /src/libtorrent/src/peer_list.cpp:597,1
    - Dst: std::cref
      Src: /src/libtorrent/src/peer_list.cpp:597,1
    - Dst: insert
      Src: /src/libtorrent/src/peer_list.cpp:599,1
    - Dst: libtorrent::peer_list::erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:604,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:604,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 39
    argCount: 3
    argNames:
    - ' peers'
    - session_time
    - state
    argTypes:
    - std::vector<torrent_peer*>
    - int
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 606
    functionName: libtorrent::peer_list::find_connect_candidates
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::min
    - compare_peer_erase
    - recalculate_connect_candidates
    - is_single_thread
    - end
    - compare_peer
    - back
    - libtorrent::peer_list::erase_peer
    - std::cref
    - TORRENT_ASSERT
    - reserve
    - libtorrent::peer_list::is_erase_candidate
    - size
    - libtorrent::peer_list::is_connect_candidate
    - std::bind
    - insert
    - resize
    - libtorrent::peer_list::should_erase_immediately
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: "void peer_list::find_connect_candidates(std::vector<torrent_peer*>&
      peers\n\t\t, int session_time, torrent_state* state)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:611,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:611,1
    - Dst: destination
      Src: /src/libtorrent/src/peer_list.cpp:620,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:627,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:629,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:630,1
    - Dst: find_peers
      Src: /src/libtorrent/src/peer_list.cpp:631,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_list.cpp:632,1
    - Dst: match_peer_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:632,1
    - Dst: port
      Src: /src/libtorrent/src/peer_list.cpp:632,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:636,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:643,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:645,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:646,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:646,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:647,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:650,1
    - Dst: dest
      Src: /src/libtorrent/src/peer_list.cpp:650,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:652,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:659,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:660,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:660,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:661,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:661,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:664,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:664,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:664,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:666,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:683,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:684,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:684,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:684,1
    - Dst: should_log
      Src: /src/libtorrent/src/peer_list.cpp:687,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:690,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_list.cpp:692,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/peer_list.cpp:693,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_list.cpp:698,1
    - Dst: print_address
      Src: /src/libtorrent/src/peer_list.cpp:699,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:699,1
    - Dst: print_address
      Src: /src/libtorrent/src/peer_list.cpp:700,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:700,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:706,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:714,1
    - Dst: torrent_peer*::connection::local_i2p_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:716,1
    - Dst: torrent_peer*::connection::remote
      Src: /src/libtorrent/src/peer_list.cpp:721,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:721,1
    - Dst: torrent_peer*::connection::local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:722,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:722,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:727,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:728,1
    - Dst: torrent_peer*::connection::peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:728,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:729,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:730,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:734,1
    - Dst: torrent_peer*::connection::is_outgoing
      Src: /src/libtorrent/src/peer_list.cpp:737,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/peer_list.cpp:737,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:741,1
    - Dst: std::string::empty
      Src: /src/libtorrent/src/peer_list.cpp:745,1
    - Dst: torrent_peer*::connection::destination
      Src: /src/libtorrent/src/peer_list.cpp:751,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/peer_list.cpp:755,1
    - Dst: should_log
      Src: /src/libtorrent/src/peer_list.cpp:758,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_list.cpp:760,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/peer_list.cpp:762,1
    - Dst: c_str
      Src: /src/libtorrent/src/peer_list.cpp:762,1
    - Dst: torrent_peer*::connection::peer_log
      Src: /src/libtorrent/src/peer_list.cpp:763,1
    - Dst: c_str
      Src: /src/libtorrent/src/peer_list.cpp:765,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/peer_list.cpp:765,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:771,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:774,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:776,1
    - Dst: is_outgoing
      Src: /src/libtorrent/src/peer_list.cpp:788,1
    - Dst: torrent_peer*::connection::local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:796,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:796,1
    - Dst: remote
      Src: /src/libtorrent/src/peer_list.cpp:797,1
    - Dst: torrent_peer*::connection::remote
      Src: /src/libtorrent/src/peer_list.cpp:797,1
    - Dst: random
      Src: /src/libtorrent/src/peer_list.cpp:803,1
    - Dst: torrent_peer*::connection::failed
      Src: /src/libtorrent/src/peer_list.cpp:804,1
    - Dst: should_log
      Src: /src/libtorrent/src/peer_list.cpp:807,1
    - Dst: peer_log
      Src: /src/libtorrent/src/peer_list.cpp:809,1
    - Dst: torrent_peer*::connection::peer_log
      Src: /src/libtorrent/src/peer_list.cpp:812,1
    - Dst: disconnect
      Src: /src/libtorrent/src/peer_list.cpp:820,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:823,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:825,1
    - Dst: libtorrent::peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:830,1
    - Dst: update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:831,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 3
    argNames:
    - ' c'
    - session_time
    - state
    argTypes:
    - peer_connection_interface
    - int
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 832
    functionName: libtorrent::peer_list::new_connection
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::connection::peer_info_struct
    - begin
    - remote
    - find_peers
    - update_connect_candidates
    - torrent_peer*::connection::remote
    - is_single_thread
    - end
    - torrent_peer*::connection::local_endpoint
    - torrent_peer*::connection::disconnect
    - match_peer_endpoint
    - address
    - print_address
    - dest
    - TORRENT_ASSERT
    - destination
    - peer_address_compare
    - torrent_peer*::connection::failed
    - is_outgoing
    - disconnect
    - torrent_peer*::address
    - port
    - std::lower_bound
    - torrent_peer*::connection::local_i2p_endpoint
    - std::find_if
    - torrent_peer*::connection::is_outgoing
    - random
    - libtorrent::peer_list::is_connect_candidate
    - torrent_peer*::connection::peer_log
    - c_str
    - std::string::empty
    - std::string::c_str
    - local_endpoint
    - torrent_peer*::connection::destination
    - should_log
    - peer_log
    linkageType: ''
    returnType: bool
    signature: "bool peer_list::new_connection(peer_connection_interface& c, int session_time\n\t\t,
      torrent_state* state)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:908,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:909,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:910,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:911,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:911,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:923,1
    - Dst: find_peers
      Src: /src/libtorrent/src/peer_list.cpp:924,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_list.cpp:925,1
    - Dst: match_peer_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:926,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/peer_list.cpp:926,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:930,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:933,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/peer_list.cpp:937,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:938,1
    - Dst: peer_list::update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:939,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:946,1
    - Dst: torrent_peer*::connection::disconnect
      Src: /src/libtorrent/src/peer_list.cpp:948,1
    - Dst: erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:950,1
    - Dst: erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:953,1
    - Dst: find_peers
      Src: /src/libtorrent/src/peer_list.cpp:959,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:959,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:960,1
    - Dst: std::distance
      Src: /src/libtorrent/src/peer_list.cpp:960,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:964,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/peer_list.cpp:965,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/peer_list.cpp:966,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:969,1
    - Dst: peer_list::update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:970,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - port
    - p
    - src
    - state
    argTypes:
    - int
    - torrent_peer*
    - peer_source_flags_t
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 972
    functionName: peer_list::update_peer_port
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 2
    functionsReached:
    - std::distance
    - std::uint16_t
    - is_single_thread
    - is_connect_candidate
    - peer_list::update_connect_candidates
    - find_peers
    - TORRENT_ASSERT
    - torrent_peer*::connection::disconnect
    - static_cast<std::uint8_t>
    - match_peer_endpoint
    - torrent_peer*::address
    - erase_peer
    - std::find_if
    linkageType: ''
    returnType: bool
    signature: "bool peer_list::update_peer_port(int const port, torrent_peer* p\n\t\t,
      peer_source_flags_t const src, torrent_state* state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:979,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:979,1
    - Dst: std::find
      Src: /src/libtorrent/src/peer_list.cpp:981,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:981,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:981,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 982
    functionName: peer_list::has_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 1
    functionsReached:
    - begin
    - is_single_thread
    - end
    - std::find
    - TORRENT_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool peer_list::has_peer(torrent_peer const* p) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:986,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:986,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:988,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:990,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:992,1
    - Dst: peer_list::update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:993,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:998,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:998,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1003,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - torrent_peer*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 1006
    functionName: peer_list::set_seed
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 3
    functionsReached:
    - is_single_thread
    - is_connect_candidate
    - peer_list::update_connect_candidates
    - TORRENT_ASSERT
    - size
    linkageType: ''
    returnType: void
    signature: void peer_list::set_seed(torrent_peer* p, bool s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1013,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1013,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1014,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1015,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:1020,1
    - Dst: torrent_peer*::peer_source
      Src: /src/libtorrent/src/peer_list.cpp:1022,1
    - Dst: erase_peers
      Src: /src/libtorrent/src/peer_list.cpp:1024,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:1025,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:1033,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1034,1
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/src/peer_list.cpp:1035,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:1035,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:1039,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1040,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1040,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:1041,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:1041,1
    - Dst: insert
      Src: /src/libtorrent/src/peer_list.cpp:1044,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1046,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1059,1
    - Dst: peer_list::update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:1060,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - p
    - iter
    - flags
    - state
    argTypes:
    - torrent_peer*
    - iterator
    - pex_flags_t
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1063
    functionName: peer_list::insert_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::peer_source
    - begin
    - is_single_thread
    - torrent_peer*::dest
    - end
    - insert
    - is_connect_candidate
    - peer_list::update_connect_candidates
    - TORRENT_ASSERT
    - peer_address_compare
    - erase_peers
    - torrent_peer*::address
    - std::lower_bound
    - size
    linkageType: ''
    returnType: bool
    signature: "bool peer_list::insert_peer(torrent_peer* p, iterator iter\n\t\t,
      pex_flags_t const flags\n\t\t, torrent_state* state)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1068,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1068,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1069,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1071,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1074,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/src/peer_list.cpp:1074,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:1074,1
    - Dst: port
      Src: /src/libtorrent/src/peer_list.cpp:1075,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/peer_list.cpp:1076,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1097,1
    - Dst: peer_list::update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:1099,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - p
    - src
    - flags
    - ' remote'
    argTypes:
    - torrent_peer*
    - peer_source_flags_t
    - pex_flags_t
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1101
    functionName: peer_list::update_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - is_single_thread
    - is_connect_candidate
    - peer_list::update_connect_candidates
    - TORRENT_ASSERT
    - static_cast<std::uint8_t>
    - torrent_peer*::address
    - address
    - port
    linkageType: ''
    returnType: void
    signature: "void peer_list::update_peer(torrent_peer* p, peer_source_flags_t const
      src\n\t\t, pex_flags_t const flags, tcp::endpoint const& remote)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1105,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1105,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - delta
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1113
    functionName: peer_list::update_connect_candidates
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - is_single_thread
    linkageType: ''
    returnType: void
    signature: void peer_list::update_connect_candidates(int delta)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1120,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1120,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:1123,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1123,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1123,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:1124,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1126,1
    - Dst: dest
      Src: /src/libtorrent/src/peer_list.cpp:1126,1
    - Dst: peer_list::update_peer
      Src: /src/libtorrent/src/peer_list.cpp:1128,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:1128,1
    - Dst: allocate_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:1134,1
    - Dst: i2p_peer::i2p_peer
      Src: /src/libtorrent/src/peer_list.cpp:1137,1
    - Dst: peer_list::insert_peer
      Src: /src/libtorrent/src/peer_list.cpp:1139,1
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:1141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - destination
    - src
    - flags
    - state
    argTypes:
    - string_view
    - peer_source_flags_t
    - pex_flags_t
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1145
    functionName: peer_list::add_i2p_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - peer_list::update_peer
    - begin
    - free_peer_entry
    - is_single_thread
    - end
    - dest
    - peer_list::insert_peer
    - TORRENT_ASSERT
    - peer_address_compare
    - i2p_peer::i2p_peer
    - local_endpoint
    - allocate_peer_entry
    - std::lower_bound
    linkageType: ''
    returnType: torrent_peer
    signature: "torrent_peer * peer_list::add_i2p_peer(string_view const destination\n\t\t,
      peer_source_flags_t const src, pex_flags_t const flags\n\t\t, torrent_state*
      state)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1153,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1153,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:1156,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:1159,1
    - Dst: port
      Src: /src/libtorrent/src/peer_list.cpp:1159,1
    - Dst: port
      Src: /src/libtorrent/src/peer_list.cpp:1159,1
    - Dst: auto::is_v6
      Src: /src/libtorrent/src/peer_list.cpp:1165,1
    - Dst: auto::to_v6
      Src: /src/libtorrent/src/peer_list.cpp:1165,1
    - Dst: find_peers
      Src: /src/libtorrent/src/peer_list.cpp:1174,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/peer_list.cpp:1175,1
    - Dst: match_peer_endpoint
      Src: /src/libtorrent/src/peer_list.cpp:1176,1
    - Dst: port
      Src: /src/libtorrent/src/peer_list.cpp:1176,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:1181,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1181,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1181,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:1182,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1184,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:1184,1
    - Dst: auto::is_v6
      Src: /src/libtorrent/src/peer_list.cpp:1192,1
    - Dst: allocate_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:1193,1
    - Dst: ipv6_peer::ipv6_peer
      Src: /src/libtorrent/src/peer_list.cpp:1199,1
    - Dst: ipv4_peer::ipv4_peer
      Src: /src/libtorrent/src/peer_list.cpp:1201,1
    - Dst: peer_list::insert_peer
      Src: /src/libtorrent/src/peer_list.cpp:1205,1
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:1207,1
    - Dst: free_peer_entry
      Src: /src/libtorrent/src/peer_list.cpp:1213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1221,1
    - Dst: peer_list::update_peer
      Src: /src/libtorrent/src/peer_list.cpp:1222,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - ' remote'
    - src
    - flags
    - state
    argTypes:
    - tcp::endpoint
    - peer_source_flags_t
    - pex_flags_t
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1149
    functionDepth: 2
    functionLinenumber: 1149
    functionLinenumberEnd: 1227
    functionName: peer_list::add_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 11
    functionsReached:
    - begin
    - peer_list::insert_peer
    - find_peers
    - ipv4_peer::ipv4_peer
    - is_single_thread
    - end
    - ipv6_peer::ipv6_peer
    - match_peer_endpoint
    - auto::to_v6
    - address
    - peer_list::update_peer
    - auto::is_v6
    - free_peer_entry
    - TORRENT_ASSERT
    - peer_address_compare
    - port
    - std::find_if
    - allocate_peer_entry
    - std::lower_bound
    linkageType: ''
    returnType: torrent_peer
    signature: "torrent_peer * peer_list::add_peer(tcp::endpoint const& remote\n\t\t,
      peer_source_flags_t const src, pex_flags_t const flags\n\t\t, torrent_state*
      state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1231,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1231,1
    - Dst: peer_list::recalculate_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:1235,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1239,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1239,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1241,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_list.cpp:1242,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_list.cpp:1247,1
    - Dst: find_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:1249,1
    - Dst: empty
      Src: /src/libtorrent/src/peer_list.cpp:1250,1
    - Dst: front
      Src: /src/libtorrent/src/peer_list.cpp:1253,1
    - Dst: erase
      Src: /src/libtorrent/src/peer_list.cpp:1254,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1254,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1256,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1258,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1259,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1260,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1269,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - session_time
    - state
    argTypes:
    - int
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1271
    functionName: peer_list::connect_one_peer
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 4
    functionsReached:
    - begin
    - is_single_thread
    - is_connect_candidate
    - end
    - erase
    - empty
    - find_connect_candidates
    - TORRENT_ASSERT
    - front
    - peer_list::recalculate_connect_candidates
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * peer_list::connect_one_peer(int session_time, torrent_state*
      state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1277,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1277,1
    - Dst: peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:1280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1285,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1290,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/peer_list.cpp:1291,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1291,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1291,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1294,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1299,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1300,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1300,1
    - Dst: fast_reconnect
      Src: /src/libtorrent/src/peer_list.cpp:1308,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/peer_list.cpp:1309,1
    - Dst: failed
      Src: /src/libtorrent/src/peer_list.cpp:1311,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1317,1
    - Dst: peer_list::update_connect_candidates
      Src: /src/libtorrent/src/peer_list.cpp:1318,1
    - Dst: erase_peer
      Src: /src/libtorrent/src/peer_list.cpp:1342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - ' c'
    - session_time
    - state
    argTypes:
    - peer_connection_interface
    - int
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1344
    functionName: peer_list::connection_closed
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 1
    functionsReached:
    - begin
    - std::uint16_t
    - is_single_thread
    - is_connect_candidate
    - end
    - peer_list::update_connect_candidates
    - TORRENT_ASSERT
    - peer_info_struct
    - fast_reconnect
    - std::any_of
    - failed
    - erase_peer
    linkageType: ''
    returnType: void
    signature: "void peer_list::connection_closed(const peer_connection_interface&
      c\n\t\t, int session_time, torrent_state* state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1348,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1348,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/peer_list.cpp:1354,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/peer_list.cpp:1354,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1354,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1354,1
    - Dst: peer_list::is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1355,1
    - Dst: peer_list::check_invariant
      Src: /src/libtorrent/src/peer_list.cpp:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - torrent_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1362
    functionName: peer_list::recalculate_connect_candidates
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - begin
    - is_single_thread
    - std::count_if
    - end
    - TORRENT_ASSERT
    - peer_list::check_invariant
    - peer_list::is_connect_candidate
    linkageType: ''
    returnType: void
    signature: void peer_list::recalculate_connect_candidates(torrent_state* state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1367,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1367,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1370,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/peer_list.cpp:1372,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1372,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1372,1
    - Dst: peer_connection_interface*::remote
      Src: /src/libtorrent/src/peer_list.cpp:1373,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/src/peer_list.cpp:1373,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1375,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:1375,1
    - Dst: peer_connection_interface*::remote
      Src: /src/libtorrent/src/peer_list.cpp:1375,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/peer_list.cpp:1378,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1378,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1378,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1381,1
    - Dst: ip
      Src: /src/libtorrent/src/peer_list.cpp:1383,1
    - Dst: peer_connection_interface*::remote
      Src: /src/libtorrent/src/peer_list.cpp:1383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - peer_connection_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1385
    functionName: peer_list::has_connection
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 0
    functionsReached:
    - begin
    - is_single_thread
    - ip
    - end
    - TORRENT_ASSERT
    - peer_address_compare
    - std::any_of
    - peer_connection_interface*::remote
    - address
    - std::lower_bound
    linkageType: ''
    returnType: bool
    signature: bool peer_list::has_connection(const peer_connection_interface* c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1391,1
    - Dst: is_single_thread
      Src: /src/libtorrent/src/peer_list.cpp:1391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1392,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1393,1
    - Dst: size
      Src: /src/libtorrent/src/peer_list.cpp:1393,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1398,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1399,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1399,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1401,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1402,1
    - Dst: begin
      Src: /src/libtorrent/src/peer_list.cpp:1402,1
    - Dst: end
      Src: /src/libtorrent/src/peer_list.cpp:1403,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1405,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:1405,1
    - Dst: address
      Src: /src/libtorrent/src/peer_list.cpp:1405,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1408,1
    - Dst: is_connect_candidate
      Src: /src/libtorrent/src/peer_list.cpp:1409,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1416,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1417,1
    - Dst: connection::is_choked
      Src: /src/libtorrent/src/peer_list.cpp:1417,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1419,1
    - Dst: connection::peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:1419,1
    - Dst: connection::peer_info_struct
      Src: /src/libtorrent/src/peer_list.cpp:1420,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/peer_list.cpp:1423,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1426
    functionName: peer_list::check_invariant
    functionSourceFile: /src/libtorrent/src/peer_list.cpp
    functionUses: 1
    functionsReached:
    - begin
    - is_single_thread
    - is_connect_candidate
    - end
    - TORRENT_ASSERT
    - connection::peer_info_struct
    - connection::is_choked
    - address
    - size
    linkageType: ''
    returnType: void
    signature: void peer_list::check_invariant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::bandwidth_channel::bandwidth_channel
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::bandwidth_channel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:52,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::bandwidth_channel::throttle
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_VAL
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::throttle(int const limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/bandwidth_limit.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::bandwidth_channel::quota_left
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: int
    signature: int bandwidth_channel::quota_left() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:66,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:67,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:72,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:81,1
    - Dst: std::min
      Src: /src/libtorrent/src/bandwidth_limit.cpp:83,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:83,1
    - Dst: std::max
      Src: /src/libtorrent/src/bandwidth_limit.cpp:86,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dt_milliseconds
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::bandwidth_channel::update_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - TORRENT_ASSERT_VAL
    - std::min
    - std::max
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::update_quota(int const dt_milliseconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::bandwidth_channel::return_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::return_quota(int const amount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::bandwidth_channel::use_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::use_quota(int const amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::bandwidth_channel::bandwidth_channel
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::bandwidth_channel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:52,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::bandwidth_channel::throttle
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_VAL
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::throttle(int const limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/bandwidth_limit.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::bandwidth_channel::quota_left
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: int
    signature: int bandwidth_channel::quota_left() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:66,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:67,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:72,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:81,1
    - Dst: std::min
      Src: /src/libtorrent/src/bandwidth_limit.cpp:83,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:83,1
    - Dst: std::max
      Src: /src/libtorrent/src/bandwidth_limit.cpp:86,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dt_milliseconds
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::bandwidth_channel::update_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - TORRENT_ASSERT_VAL
    - std::min
    - std::max
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::update_quota(int const dt_milliseconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::bandwidth_channel::return_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::return_quota(int const amount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::bandwidth_channel::use_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::use_quota(int const amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::bandwidth_channel::bandwidth_channel
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::bandwidth_channel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:52,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::bandwidth_channel::throttle
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_VAL
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::throttle(int const limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/bandwidth_limit.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::bandwidth_channel::quota_left
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: int
    signature: int bandwidth_channel::quota_left() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:66,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:67,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:72,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:81,1
    - Dst: std::min
      Src: /src/libtorrent/src/bandwidth_limit.cpp:83,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:83,1
    - Dst: std::max
      Src: /src/libtorrent/src/bandwidth_limit.cpp:86,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dt_milliseconds
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::bandwidth_channel::update_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - TORRENT_ASSERT_VAL
    - std::min
    - std::max
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::update_quota(int const dt_milliseconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::bandwidth_channel::return_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::return_quota(int const amount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::bandwidth_channel::use_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::use_quota(int const amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: libtorrent::aux::bandwidth_channel::bandwidth_channel
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::bandwidth_channel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:52,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::bandwidth_channel::throttle
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_VAL
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::throttle(int const limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/bandwidth_limit.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::bandwidth_channel::quota_left
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: int
    signature: int bandwidth_channel::quota_left() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:66,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/bandwidth_limit.cpp:67,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:72,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:81,1
    - Dst: std::min
      Src: /src/libtorrent/src/bandwidth_limit.cpp:83,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:83,1
    - Dst: std::max
      Src: /src/libtorrent/src/bandwidth_limit.cpp:86,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/bandwidth_limit.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dt_milliseconds
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::bandwidth_channel::update_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - std::int64_t
    - TORRENT_ASSERT_VAL
    - std::min
    - std::max
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::update_quota(int const dt_milliseconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::bandwidth_channel::return_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::return_quota(int const amount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/bandwidth_limit.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - amount
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::bandwidth_channel::use_quota
    functionSourceFile: /src/libtorrent/src/bandwidth_limit.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bandwidth_channel::use_quota(int const amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::random_engine
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    - dev
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: std::mt19937
    signature: std::mt19937 & random_engine()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/random.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:120,1
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::random_bytes
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 51
    functionsReached:
    - span<char>::end
    - span<char>::begin
    - std::generate
    - random
    linkageType: ''
    returnType: void
    signature: void random_bytes(span<char> buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: libtorrent::aux::cng_gen_random
      Src: /src/libtorrent/src/random.cpp:132,1
    - Dst: libtorrent::aux::crypt_gen_random
      Src: /src/libtorrent/src/random.cpp:135,1
    - Dst: RAND_bytes
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:145,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/random.cpp:146,1
    - Dst: ::getrandom
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:149,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: error_code
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: generic_category
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: dev_random::read
      Src: /src/libtorrent/src/random.cpp:152,1
    - Dst: dev_random::read
      Src: /src/libtorrent/src/random.cpp:155,1
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 171
    functionName: libtorrent::aux::crypto_random_bytes
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 4
    functionsReached:
    - aux::throw_ex<system_error>
    - libtorrent::aux::crypt_gen_random
    - dev_random::read
    - ::getrandom
    - error_code
    - RAND_bytes
    - span<char>::data
    - static_cast<std::size_t>
    - span<char>::begin
    - std::generate
    - generic_category
    - libtorrent::aux::cng_gen_random
    - span<char>::end
    - span<char>::size
    - reinterpret_cast<unsigned char*>
    - random
    linkageType: ''
    returnType: void
    signature: void crypto_random_bytes(span<char> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::random_engine
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    - dev
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: std::mt19937
    signature: std::mt19937 & random_engine()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypto_random_bytes
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/random.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    - crypto_random_bytes
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:120,1
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::random_bytes
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 51
    functionsReached:
    - span<char>::end
    - span<char>::begin
    - std::generate
    - random
    linkageType: ''
    returnType: void
    signature: void random_bytes(span<char> buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: libtorrent::aux::cng_gen_random
      Src: /src/libtorrent/src/random.cpp:132,1
    - Dst: libtorrent::aux::crypt_gen_random
      Src: /src/libtorrent/src/random.cpp:135,1
    - Dst: RAND_bytes
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:145,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/random.cpp:146,1
    - Dst: ::getrandom
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:149,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: error_code
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: generic_category
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: dev_random::read
      Src: /src/libtorrent/src/random.cpp:152,1
    - Dst: dev_random::read
      Src: /src/libtorrent/src/random.cpp:155,1
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 171
    functionName: libtorrent::aux::crypto_random_bytes
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 5
    functionsReached:
    - aux::throw_ex<system_error>
    - libtorrent::aux::crypt_gen_random
    - dev_random::read
    - ::getrandom
    - error_code
    - RAND_bytes
    - span<char>::data
    - static_cast<std::size_t>
    - span<char>::begin
    - std::generate
    - generic_category
    - libtorrent::aux::cng_gen_random
    - span<char>::end
    - span<char>::size
    - reinterpret_cast<unsigned char*>
    - random
    linkageType: ''
    returnType: void
    signature: void crypto_random_bytes(span<char> buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/src/random.cpp:186,1
    - Dst: rng
      Src: /src/libtorrent/src/random.cpp:190,1
    - Dst: std::uniform_int_distribution<std::uint32_t>
      Src: /src/libtorrent/src/random.cpp:193,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/src/random.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - max
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 196
    functionName: libtorrent::random
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 8
    functionsReached:
    - std::uniform_int_distribution<std::uint32_t>
    - libtorrent::aux::random_engine
    - rng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t random(std::uint32_t const max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::random_engine
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    - dev
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: std::mt19937
    signature: std::mt19937 & random_engine()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypto_random_bytes
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/random.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    - crypto_random_bytes
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:120,1
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::random_bytes
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 51
    functionsReached:
    - span<char>::end
    - span<char>::begin
    - std::generate
    - random
    linkageType: ''
    returnType: void
    signature: void random_bytes(span<char> buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: libtorrent::aux::cng_gen_random
      Src: /src/libtorrent/src/random.cpp:132,1
    - Dst: libtorrent::aux::crypt_gen_random
      Src: /src/libtorrent/src/random.cpp:135,1
    - Dst: RAND_bytes
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:145,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/random.cpp:146,1
    - Dst: ::getrandom
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:149,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: error_code
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: generic_category
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: dev_random::read
      Src: /src/libtorrent/src/random.cpp:152,1
    - Dst: dev_random::read
      Src: /src/libtorrent/src/random.cpp:155,1
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 171
    functionName: libtorrent::aux::crypto_random_bytes
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 6
    functionsReached:
    - aux::throw_ex<system_error>
    - libtorrent::aux::crypt_gen_random
    - dev_random::read
    - ::getrandom
    - error_code
    - RAND_bytes
    - span<char>::data
    - static_cast<std::size_t>
    - span<char>::begin
    - std::generate
    - generic_category
    - libtorrent::aux::cng_gen_random
    - span<char>::end
    - span<char>::size
    - reinterpret_cast<unsigned char*>
    - random
    linkageType: ''
    returnType: void
    signature: void crypto_random_bytes(span<char> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:106,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    - Dst: dev
      Src: /src/libtorrent/src/random.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::random_engine
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    - dev
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: std::mt19937
    signature: std::mt19937 & random_engine()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypto_random_bytes
      Src: /src/libtorrent/src/random.cpp:98,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/random.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: operator()() const
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<char*>
    - crypto_random_bytes
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t operator()() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:120,1
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:122,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::random_bytes
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 51
    functionsReached:
    - span<char>::end
    - span<char>::begin
    - std::generate
    - random
    linkageType: ''
    returnType: void
    signature: void random_bytes(span<char> buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:130,1
    - Dst: libtorrent::aux::cng_gen_random
      Src: /src/libtorrent/src/random.cpp:132,1
    - Dst: libtorrent::aux::crypt_gen_random
      Src: /src/libtorrent/src/random.cpp:135,1
    - Dst: RAND_bytes
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/random.cpp:144,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:145,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/random.cpp:146,1
    - Dst: ::getrandom
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:148,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/random.cpp:149,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: error_code
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: generic_category
      Src: /src/libtorrent/src/random.cpp:150,1
    - Dst: dev_random::read
      Src: /src/libtorrent/src/random.cpp:152,1
    - Dst: dev_random::read
      Src: /src/libtorrent/src/random.cpp:155,1
    - Dst: std::generate
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: span<char>::begin
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: span<char>::end
      Src: /src/libtorrent/src/random.cpp:164,1
    - Dst: random
      Src: /src/libtorrent/src/random.cpp:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 171
    functionName: libtorrent::aux::crypto_random_bytes
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 7
    functionsReached:
    - aux::throw_ex<system_error>
    - libtorrent::aux::crypt_gen_random
    - dev_random::read
    - ::getrandom
    - error_code
    - RAND_bytes
    - span<char>::data
    - static_cast<std::size_t>
    - span<char>::begin
    - std::generate
    - generic_category
    - libtorrent::aux::cng_gen_random
    - span<char>::end
    - span<char>::size
    - reinterpret_cast<unsigned char*>
    - random
    linkageType: ''
    returnType: void
    signature: void crypto_random_bytes(span<char> buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/src/random.cpp:186,1
    - Dst: rng
      Src: /src/libtorrent/src/random.cpp:190,1
    - Dst: std::uniform_int_distribution<std::uint32_t>
      Src: /src/libtorrent/src/random.cpp:193,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/src/random.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - max
    argTypes:
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 196
    functionName: libtorrent::random
    functionSourceFile: /src/libtorrent/src/random.cpp
    functionUses: 8
    functionsReached:
    - std::uniform_int_distribution<std::uint32_t>
    - libtorrent::aux::random_engine
    - rng
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t random(std::uint32_t const max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - b
    - mask
    - size
    argTypes:
    - std::uint8_t*
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: libtorrent::apply_mask
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void apply_mask(std::uint8_t* b, std::uint8_t const* mask, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - b
    - mask
    - size
    argTypes:
    - std::uint8_t*
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: libtorrent::apply_mask
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void apply_mask(std::uint8_t* b, std::uint8_t const* mask, int size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:79,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/torrent_peer.cpp:79,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/torrent_peer.cpp:79,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:84,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:84,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/torrent_peer.cpp:86,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/torrent_peer.cpp:86,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/torrent_peer.cpp:87,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/torrent_peer.cpp:89,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/torrent_peer.cpp:90,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/torrent_peer.cpp:90,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/torrent_peer.cpp:91,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/torrent_peer.cpp:91,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:93,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/torrent_peer.cpp:93,1
    - Dst: libtorrent::crc32c_32
      Src: /src/libtorrent/src/torrent_peer.cpp:94,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/torrent_peer.cpp:96,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/torrent_peer.cpp:98,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:99,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:100,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/src/torrent_peer.cpp:102,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent_peer.cpp:108,1
    - Dst: memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:123,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/torrent_peer.cpp:123,1
    - Dst: memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:124,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/torrent_peer.cpp:124,1
    - Dst: libtorrent::crc32c
      Src: /src/libtorrent/src/torrent_peer.cpp:125,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/torrent_peer.cpp:135,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:136,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:137,1
    - Dst: memcmp
      Src: /src/libtorrent/src/torrent_peer.cpp:138,1
    - Dst: memcmp
      Src: /src/libtorrent/src/torrent_peer.cpp:139,1
    - Dst: libtorrent::apply_mask
      Src: /src/libtorrent/src/torrent_peer.cpp:140,1
    - Dst: libtorrent::apply_mask
      Src: /src/libtorrent/src/torrent_peer.cpp:141,1
    - Dst: memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:143,1
    - Dst: memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:144,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/torrent_peer.cpp:144,1
    - Dst: libtorrent::crc32c
      Src: /src/libtorrent/src/torrent_peer.cpp:145,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - tcp::endpoint
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 149
    functionName: libtorrent::peer_priority
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::apply_mask
    - std::array::data
    - std::memcpy
    - libtorrent::aux::is_v6
    - address_v6::bytes_type::data
    - tcp::endpoint::address
    - libtorrent::aux::is_v4
    - libtorrent::crc32c
    - libtorrent::crc32c_32
    - memcmp
    - memcpy
    - reinterpret_cast<char*>
    - TORRENT_ASSERT
    - std::max
    - libtorrent::aux::write_uint16
    - address_v6::bytes_type::size
    - libtorrent::swap
    - tcp::endpoint::port
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t peer_priority(tcp::endpoint e1, tcp::endpoint e2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_peer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - port_
    - conn
    - src
    argTypes:
    - std::uint16_t
    - bool
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 187
    functionName: libtorrent::torrent_peer::torrent_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: "void torrent_peer::torrent_peer(std::uint16_t port_, bool conn\n\t\t,
      peer_source_flags_t const src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:191,1
    - Dst: peer_priority
      Src: /src/libtorrent/src/torrent_peer.cpp:194,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent_peer.cpp:195,1
    - Dst: external_address
      Src: /src/libtorrent/src/torrent_peer.cpp:195,1
    - Dst: libtorrent::torrent_peer::address
      Src: /src/libtorrent/src/torrent_peer.cpp:195,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent_peer.cpp:195,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent_peer.cpp:196,1
    - Dst: libtorrent::torrent_peer::address
      Src: /src/libtorrent/src/torrent_peer.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' external'
    - external_port
    argTypes:
    - external_ip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: libtorrent::torrent_peer::rank
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - external_address
    - libtorrent::torrent_peer::address
    - peer_priority
    - TORRENT_ASSERT
    - local_endpoint
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t torrent_peer::rank(external_ip const& external, int external_port)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:203,1
    - Dst: libtorrent::torrent_peer::dest
      Src: /src/libtorrent/src/torrent_peer.cpp:205,1
    - Dst: libtorrent::torrent_peer::address
      Src: /src/libtorrent/src/torrent_peer.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: libtorrent::torrent_peer::to_string
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::torrent_peer::address
    - libtorrent::torrent_peer::dest
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_peer::to_string() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:216,1
    - Dst: statistics
      Src: /src/libtorrent/src/torrent_peer.cpp:217,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent_peer.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: libtorrent::torrent_peer::total_download
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - statistics
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t torrent_peer::total_download() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:230,1
    - Dst: statistics
      Src: /src/libtorrent/src/torrent_peer.cpp:231,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent_peer.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: libtorrent::torrent_peer::total_upload
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - statistics
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t torrent_peer::total_upload() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port
      Src: /src/libtorrent/src/torrent_peer.cpp:241,1
    - Dst: address
      Src: /src/libtorrent/src/torrent_peer.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ep'
    - c
    - src
    argTypes:
    - tcp::endpoint
    - bool
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: libtorrent::ipv4_peer::ipv4_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void ipv4_peer::ipv4_peer(tcp::endpoint const& ep, bool c\n\t\t, peer_source_flags_t
      const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: libtorrent::ipv4_peer::ipv4_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ipv4_peer::ipv4_peer(ipv4_peer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - connectable_
    - src
    argTypes:
    - string_view
    - bool
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: libtorrent::i2p_peer::i2p_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void i2p_peer::i2p_peer(string_view dest, bool connectable_\n\t\t,
      peer_source_flags_t const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port
      Src: /src/libtorrent/src/torrent_peer.cpp:266,1
    - Dst: address
      Src: /src/libtorrent/src/torrent_peer.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ep'
    - c
    - src
    argTypes:
    - tcp::endpoint
    - bool
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: libtorrent::ipv6_peer::ipv6_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void ipv6_peer::ipv6_peer(tcp::endpoint const& ep, bool c\n\t\t, peer_source_flags_t
      const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: libtorrent::ipv6_peer::ipv6_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ipv6_peer::ipv6_peer(ipv6_peer const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<i2p_peer const*>
      Src: /src/libtorrent/src/torrent_peer.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: libtorrent::torrent_peer::dest
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<i2p_peer const*>
    linkageType: ''
    returnType: string_view
    signature: string_view torrent_peer::dest() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address_v6
      Src: /src/libtorrent/src/torrent_peer.cpp:289,1
    - Dst: static_cast<ipv6_peer const*>
      Src: /src/libtorrent/src/torrent_peer.cpp:290,1
    - Dst: static_cast<ipv4_peer const*>
      Src: /src/libtorrent/src/torrent_peer.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 297
    functionName: libtorrent::torrent_peer::address
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 2
    functionsReached:
    - static_cast<ipv6_peer const*>
    - libtorrent::address_v6
    - static_cast<ipv4_peer const*>
    linkageType: ''
    returnType: libtorrent::address
    signature: libtorrent::address torrent_peer::address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - b
    - mask
    - size
    argTypes:
    - std::uint8_t*
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: libtorrent::apply_mask
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void apply_mask(std::uint8_t* b, std::uint8_t const* mask, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - b
    - mask
    - size
    argTypes:
    - std::uint8_t*
    - std::uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: libtorrent::apply_mask
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void apply_mask(std::uint8_t* b, std::uint8_t const* mask, int size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:79,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/torrent_peer.cpp:79,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/torrent_peer.cpp:79,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:84,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:84,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/torrent_peer.cpp:86,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/torrent_peer.cpp:86,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/torrent_peer.cpp:87,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/torrent_peer.cpp:89,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/torrent_peer.cpp:90,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/torrent_peer.cpp:90,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/torrent_peer.cpp:91,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/src/torrent_peer.cpp:91,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:93,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/torrent_peer.cpp:93,1
    - Dst: libtorrent::crc32c_32
      Src: /src/libtorrent/src/torrent_peer.cpp:94,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/torrent_peer.cpp:96,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/torrent_peer.cpp:98,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:99,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:100,1
    - Dst: address_v6::bytes_type::size
      Src: /src/libtorrent/src/torrent_peer.cpp:102,1
    - Dst: std::max
      Src: /src/libtorrent/src/torrent_peer.cpp:108,1
    - Dst: memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:123,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/torrent_peer.cpp:123,1
    - Dst: memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:124,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/torrent_peer.cpp:124,1
    - Dst: libtorrent::crc32c
      Src: /src/libtorrent/src/torrent_peer.cpp:125,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/src/torrent_peer.cpp:135,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:136,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/src/torrent_peer.cpp:137,1
    - Dst: memcmp
      Src: /src/libtorrent/src/torrent_peer.cpp:138,1
    - Dst: memcmp
      Src: /src/libtorrent/src/torrent_peer.cpp:139,1
    - Dst: libtorrent::apply_mask
      Src: /src/libtorrent/src/torrent_peer.cpp:140,1
    - Dst: libtorrent::apply_mask
      Src: /src/libtorrent/src/torrent_peer.cpp:141,1
    - Dst: memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:143,1
    - Dst: memcpy
      Src: /src/libtorrent/src/torrent_peer.cpp:144,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/torrent_peer.cpp:144,1
    - Dst: libtorrent::crc32c
      Src: /src/libtorrent/src/torrent_peer.cpp:145,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - tcp::endpoint
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 149
    functionName: libtorrent::peer_priority
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::apply_mask
    - std::array::data
    - std::memcpy
    - libtorrent::aux::is_v6
    - address_v6::bytes_type::data
    - tcp::endpoint::address
    - libtorrent::aux::is_v4
    - libtorrent::crc32c
    - libtorrent::crc32c_32
    - memcmp
    - memcpy
    - reinterpret_cast<char*>
    - TORRENT_ASSERT
    - std::max
    - libtorrent::aux::write_uint16
    - address_v6::bytes_type::size
    - libtorrent::swap
    - tcp::endpoint::port
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t peer_priority(tcp::endpoint e1, tcp::endpoint e2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/src/torrent_peer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - port_
    - conn
    - src
    argTypes:
    - std::uint16_t
    - bool
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 187
    functionName: libtorrent::torrent_peer::torrent_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: "void torrent_peer::torrent_peer(std::uint16_t port_, bool conn\n\t\t,
      peer_source_flags_t const src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:191,1
    - Dst: peer_priority
      Src: /src/libtorrent/src/torrent_peer.cpp:194,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent_peer.cpp:195,1
    - Dst: external_address
      Src: /src/libtorrent/src/torrent_peer.cpp:195,1
    - Dst: libtorrent::torrent_peer::address
      Src: /src/libtorrent/src/torrent_peer.cpp:195,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/torrent_peer.cpp:195,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/torrent_peer.cpp:196,1
    - Dst: libtorrent::torrent_peer::address
      Src: /src/libtorrent/src/torrent_peer.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' external'
    - external_port
    argTypes:
    - external_ip
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: libtorrent::torrent_peer::rank
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - std::uint16_t
    - external_address
    - libtorrent::torrent_peer::address
    - peer_priority
    - TORRENT_ASSERT
    - local_endpoint
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t torrent_peer::rank(external_ip const& external, int external_port)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:203,1
    - Dst: libtorrent::torrent_peer::dest
      Src: /src/libtorrent/src/torrent_peer.cpp:205,1
    - Dst: libtorrent::torrent_peer::address
      Src: /src/libtorrent/src/torrent_peer.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: libtorrent::torrent_peer::to_string
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::torrent_peer::address
    - libtorrent::torrent_peer::dest
    linkageType: ''
    returnType: std::string
    signature: std::string torrent_peer::to_string() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:216,1
    - Dst: statistics
      Src: /src/libtorrent/src/torrent_peer.cpp:217,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent_peer.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: libtorrent::torrent_peer::total_download
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - statistics
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t torrent_peer::total_download() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:227,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/torrent_peer.cpp:230,1
    - Dst: statistics
      Src: /src/libtorrent/src/torrent_peer.cpp:231,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/torrent_peer.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: libtorrent::torrent_peer::total_upload
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - statistics
    - std::int64_t
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t torrent_peer::total_upload() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port
      Src: /src/libtorrent/src/torrent_peer.cpp:241,1
    - Dst: address
      Src: /src/libtorrent/src/torrent_peer.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ep'
    - c
    - src
    argTypes:
    - tcp::endpoint
    - bool
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: libtorrent::ipv4_peer::ipv4_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void ipv4_peer::ipv4_peer(tcp::endpoint const& ep, bool c\n\t\t, peer_source_flags_t
      const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: libtorrent::ipv4_peer::ipv4_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ipv4_peer::ipv4_peer(ipv4_peer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - connectable_
    - src
    argTypes:
    - string_view
    - bool
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: libtorrent::i2p_peer::i2p_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void i2p_peer::i2p_peer(string_view dest, bool connectable_\n\t\t,
      peer_source_flags_t const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port
      Src: /src/libtorrent/src/torrent_peer.cpp:266,1
    - Dst: address
      Src: /src/libtorrent/src/torrent_peer.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ep'
    - c
    - src
    argTypes:
    - tcp::endpoint
    - bool
    - peer_source_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: libtorrent::ipv6_peer::ipv6_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: void
    signature: "void ipv6_peer::ipv6_peer(tcp::endpoint const& ep, bool c\n\t\t, peer_source_flags_t
      const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: libtorrent::ipv6_peer::ipv6_peer
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ipv6_peer::ipv6_peer(ipv6_peer const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<i2p_peer const*>
      Src: /src/libtorrent/src/torrent_peer.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: libtorrent::torrent_peer::dest
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 2
    functionsReached:
    - static_cast<i2p_peer const*>
    linkageType: ''
    returnType: string_view
    signature: string_view torrent_peer::dest() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address_v6
      Src: /src/libtorrent/src/torrent_peer.cpp:289,1
    - Dst: static_cast<ipv6_peer const*>
      Src: /src/libtorrent/src/torrent_peer.cpp:290,1
    - Dst: static_cast<ipv4_peer const*>
      Src: /src/libtorrent/src/torrent_peer.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 297
    functionName: libtorrent::torrent_peer::address
    functionSourceFile: /src/libtorrent/src/torrent_peer.cpp
    functionUses: 4
    functionsReached:
    - static_cast<ipv6_peer const*>
    - libtorrent::address_v6
    - static_cast<ipv4_peer const*>
    linkageType: ''
    returnType: libtorrent::address
    signature: libtorrent::address torrent_peer::address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::default_pred
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool default_pred(std::string const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' leaf'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: libtorrent::ignore_subdir
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ignore_subdir(std::string const& leaf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/create_torrent.cpp:96,1
    - Dst: readlink
      Src: /src/libtorrent/src/create_torrent.cpp:97,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:97,1
    - Dst: libtorrent::convert_from_native_path
      Src: /src/libtorrent/src/create_torrent.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: libtorrent::get_symlink_path_impl
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_from_native_path
    - readlink
    - std::string::c_str
    - libtorrent::convert_to_native_path_string
    linkageType: ''
    returnType: std::string
    signature: std::string get_symlink_path_impl(char const* path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/create_torrent.cpp:109,1
    - Dst: pred
      Src: /src/libtorrent/src/create_torrent.cpp:110,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/create_torrent.cpp:113,1
    - Dst: aux::directory::done
      Src: /src/libtorrent/src/create_torrent.cpp:128,1
    - Dst: aux::directory::next
      Src: /src/libtorrent/src/create_torrent.cpp:128,1
    - Dst: aux::directory::file
      Src: /src/libtorrent/src/create_torrent.cpp:130,1
    - Dst: libtorrent::ignore_subdir
      Src: /src/libtorrent/src/create_torrent.cpp:131,1
    - Dst: libtorrent::add_files_impl
      Src: /src/libtorrent/src/create_torrent.cpp:132,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/create_torrent.cpp:132,1
    - Dst: libtorrent::aux::get_file_attributes
      Src: /src/libtorrent/src/create_torrent.cpp:140,1
    - Dst: libtorrent::aux::get_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:146,1
    - Dst: add_file
      Src: /src/libtorrent/src/create_torrent.cpp:147,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/create_torrent.cpp:147,1
    - Dst: add_file
      Src: /src/libtorrent/src/create_torrent.cpp:151,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/create_torrent.cpp:151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 5
    argNames:
    - ' fs'
    - ' p'
    - ' l'
    - ' pred'
    - flags
    argTypes:
    - file_storage
    - std::string
    - std::string
    - std::function<bool(std::string)>
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 154
    functionName: libtorrent::add_files_impl
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::add_files_impl
    - libtorrent::aux::get_symlink_path
    - add_file
    - libtorrent::aux::get_file_attributes
    - std::time_t
    - aux::directory::done
    - libtorrent::combine_path
    - libtorrent::ignore_subdir
    - libtorrent::stat_file
    - pred
    - aux::directory::next
    - aux::directory::file
    linkageType: ''
    returnType: void
    signature: "void add_files_impl(file_storage& fs, std::string const& p\n\t\t,
      std::string const& l, std::function<bool(std::string)> const& pred\n\t\t, create_flags_t
      const flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hash_state*::iothread::abort
      Src: /src/libtorrent/src/create_torrent.cpp:174,1
    - Dst: hash_state*::ct::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:178,1
    - Dst: hash_state*::ct::set_hash
      Src: /src/libtorrent/src/create_torrent.cpp:179,1
    - Dst: hash_state*::ct::is_v1_only
      Src: /src/libtorrent/src/create_torrent.cpp:181,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:183,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:184,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:186,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:186,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:191,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:192,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:193,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/create_torrent.cpp:194,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:198,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:202,1
    - Dst: aux::vector<sha256_hash>::size
      Src: /src/libtorrent/src/create_torrent.cpp:202,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/create_torrent.cpp:204,1
    - Dst: libtorrent::merkle_root
      Src: /src/libtorrent/src/create_torrent.cpp:205,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/create_torrent.cpp:206,1
    - Dst: hash_state*::ct::set_hash2
      Src: /src/libtorrent/src/create_torrent.cpp:207,1
    - Dst: hash_state*::ct::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:212,1
    - Dst: hash_state*::f
      Src: /src/libtorrent/src/create_torrent.cpp:214,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:216,1
    - Dst: hash_state*::iothread::async_hash
      Src: /src/libtorrent/src/create_torrent.cpp:219,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/create_torrent.cpp:220,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/create_torrent.cpp:220,1
    - Dst: hash_state*::iothread::submit_jobs
      Src: /src/libtorrent/src/create_torrent.cpp:222,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:224,1
    - Dst: hash_state*::iothread::abort
      Src: /src/libtorrent/src/create_torrent.cpp:226,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - v2_blocks
    - piece
    - ' piece_hash'
    - ' error'
    - st
    argTypes:
    - aux::vector<sha256_hash>
    - piece_index_t
    - sha1_hash
    - storage_error
    - hash_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 228
    functionName: libtorrent::on_hash
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - hash_state*::ct::files
    - hash_state*::iothread::submit_jobs
    - hash_state*::ct::piece_length
    - libtorrent::merkle_num_leafs
    - libtorrent::bind
    - hash_state*::ct::set_hash2
    - hash_state*::iothread::async_hash
    - hash_state*::ct::is_v2_only
    - hash_state*::ct::set_hash
    - TORRENT_ASSERT
    - aux::vector<sha256_hash>::size
    - libtorrent::merkle_root
    - libtorrent::span
    - hash_state*::ct::is_v1_only
    - hash_state*::iothread::abort
    - hash_state*::f
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void on_hash(aux::vector<sha256_hash> v2_blocks, piece_index_t const
      piece\n\t\t, sha1_hash const& piece_hash, storage_error const& error, hash_state*
      st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::default_pred
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool default_pred(std::string const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' leaf'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: libtorrent::ignore_subdir
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ignore_subdir(std::string const& leaf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/create_torrent.cpp:96,1
    - Dst: readlink
      Src: /src/libtorrent/src/create_torrent.cpp:97,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:97,1
    - Dst: libtorrent::convert_from_native_path
      Src: /src/libtorrent/src/create_torrent.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: libtorrent::get_symlink_path_impl
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_from_native_path
    - readlink
    - std::string::c_str
    - libtorrent::convert_to_native_path_string
    linkageType: ''
    returnType: std::string
    signature: std::string get_symlink_path_impl(char const* path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/create_torrent.cpp:109,1
    - Dst: pred
      Src: /src/libtorrent/src/create_torrent.cpp:110,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/create_torrent.cpp:113,1
    - Dst: aux::directory::done
      Src: /src/libtorrent/src/create_torrent.cpp:128,1
    - Dst: aux::directory::next
      Src: /src/libtorrent/src/create_torrent.cpp:128,1
    - Dst: aux::directory::file
      Src: /src/libtorrent/src/create_torrent.cpp:130,1
    - Dst: libtorrent::ignore_subdir
      Src: /src/libtorrent/src/create_torrent.cpp:131,1
    - Dst: libtorrent::add_files_impl
      Src: /src/libtorrent/src/create_torrent.cpp:132,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/create_torrent.cpp:132,1
    - Dst: libtorrent::aux::get_file_attributes
      Src: /src/libtorrent/src/create_torrent.cpp:140,1
    - Dst: libtorrent::aux::get_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:146,1
    - Dst: add_file
      Src: /src/libtorrent/src/create_torrent.cpp:147,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/create_torrent.cpp:147,1
    - Dst: add_file
      Src: /src/libtorrent/src/create_torrent.cpp:151,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/create_torrent.cpp:151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 5
    argNames:
    - ' fs'
    - ' p'
    - ' l'
    - ' pred'
    - flags
    argTypes:
    - file_storage
    - std::string
    - std::string
    - std::function<bool(std::string)>
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 154
    functionName: libtorrent::add_files_impl
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::add_files_impl
    - libtorrent::aux::get_symlink_path
    - add_file
    - libtorrent::aux::get_file_attributes
    - std::time_t
    - aux::directory::done
    - libtorrent::combine_path
    - libtorrent::ignore_subdir
    - libtorrent::stat_file
    - pred
    - aux::directory::next
    - aux::directory::file
    linkageType: ''
    returnType: void
    signature: "void add_files_impl(file_storage& fs, std::string const& p\n\t\t,
      std::string const& l, std::function<bool(std::string)> const& pred\n\t\t, create_flags_t
      const flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hash_state*::iothread::abort
      Src: /src/libtorrent/src/create_torrent.cpp:174,1
    - Dst: hash_state*::ct::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:178,1
    - Dst: hash_state*::ct::set_hash
      Src: /src/libtorrent/src/create_torrent.cpp:179,1
    - Dst: hash_state*::ct::is_v1_only
      Src: /src/libtorrent/src/create_torrent.cpp:181,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:183,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:184,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:186,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:186,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:191,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:192,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:193,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/create_torrent.cpp:194,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:198,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:202,1
    - Dst: aux::vector<sha256_hash>::size
      Src: /src/libtorrent/src/create_torrent.cpp:202,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/create_torrent.cpp:204,1
    - Dst: libtorrent::merkle_root
      Src: /src/libtorrent/src/create_torrent.cpp:205,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/create_torrent.cpp:206,1
    - Dst: hash_state*::ct::set_hash2
      Src: /src/libtorrent/src/create_torrent.cpp:207,1
    - Dst: hash_state*::ct::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:212,1
    - Dst: hash_state*::f
      Src: /src/libtorrent/src/create_torrent.cpp:214,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:216,1
    - Dst: hash_state*::iothread::async_hash
      Src: /src/libtorrent/src/create_torrent.cpp:219,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/create_torrent.cpp:220,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/create_torrent.cpp:220,1
    - Dst: hash_state*::iothread::submit_jobs
      Src: /src/libtorrent/src/create_torrent.cpp:222,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:224,1
    - Dst: hash_state*::iothread::abort
      Src: /src/libtorrent/src/create_torrent.cpp:226,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - v2_blocks
    - piece
    - ' piece_hash'
    - ' error'
    - st
    argTypes:
    - aux::vector<sha256_hash>
    - piece_index_t
    - sha1_hash
    - storage_error
    - hash_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 228
    functionName: libtorrent::on_hash
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - hash_state*::ct::files
    - hash_state*::iothread::submit_jobs
    - hash_state*::ct::piece_length
    - libtorrent::merkle_num_leafs
    - libtorrent::bind
    - hash_state*::ct::set_hash2
    - hash_state*::iothread::async_hash
    - hash_state*::ct::is_v2_only
    - hash_state*::ct::set_hash
    - TORRENT_ASSERT
    - aux::vector<sha256_hash>::size
    - libtorrent::merkle_root
    - libtorrent::span
    - hash_state*::ct::is_v1_only
    - hash_state*::iothread::abort
    - hash_state*::f
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void on_hash(aux::vector<sha256_hash> v2_blocks, piece_index_t const
      piece\n\t\t, sha1_hash const& piece_hash, storage_error const& error, hash_state*
      st)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/create_torrent.cpp:236,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/create_torrent.cpp:240,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:240,1
    - Dst: ::lstat
      Src: /src/libtorrent/src/create_torrent.cpp:246,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:246,1
    - Dst: S_ISLNK
      Src: /src/libtorrent/src/create_torrent.cpp:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 254
    functionName: libtorrent::aux::get_file_attributes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 3
    functionsReached:
    - auto::c_str
    - GetFileAttributesExW
    - S_ISLNK
    - ::lstat
    - convert_to_native_path_string
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t get_file_attributes(std::string const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/create_torrent.cpp:259,1
    - Dst: get_symlink_path_impl
      Src: /src/libtorrent/src/create_torrent.cpp:262,1
    - Dst: c_str
      Src: /src/libtorrent/src/create_torrent.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: libtorrent::aux::get_symlink_path
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 3
    functionsReached:
    - get_symlink_path_impl
    - c_str
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::string
    signature: std::string get_symlink_path(std::string const& p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/create_torrent.cpp:236,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/create_torrent.cpp:240,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:240,1
    - Dst: ::lstat
      Src: /src/libtorrent/src/create_torrent.cpp:246,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:246,1
    - Dst: S_ISLNK
      Src: /src/libtorrent/src/create_torrent.cpp:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 254
    functionName: libtorrent::aux::get_file_attributes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 3
    functionsReached:
    - auto::c_str
    - GetFileAttributesExW
    - S_ISLNK
    - ::lstat
    - convert_to_native_path_string
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t get_file_attributes(std::string const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/create_torrent.cpp:259,1
    - Dst: get_symlink_path_impl
      Src: /src/libtorrent/src/create_torrent.cpp:262,1
    - Dst: c_str
      Src: /src/libtorrent/src/create_torrent.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: libtorrent::aux::get_symlink_path
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 3
    functionsReached:
    - get_symlink_path_impl
    - c_str
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::string
    signature: std::string get_symlink_path(std::string const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_files_impl
      Src: /src/libtorrent/src/create_torrent.cpp:271,1
    - Dst: libtorrent::parent_path
      Src: /src/libtorrent/src/create_torrent.cpp:271,1
    - Dst: libtorrent::complete
      Src: /src/libtorrent/src/create_torrent.cpp:271,1
    - Dst: libtorrent::filename
      Src: /src/libtorrent/src/create_torrent.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' fs'
    - ' file'
    - p
    - flags
    argTypes:
    - file_storage
    - std::string
    - std::function<bool(std::string)>
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: libtorrent::add_files
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::add_files_impl
    - libtorrent::complete
    - libtorrent::parent_path
    - libtorrent::filename
    linkageType: ''
    returnType: void
    signature: "void add_files(file_storage& fs, std::string const& file\n\t\t, std::function<bool(std::string)>
      p, create_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_files_impl
      Src: /src/libtorrent/src/create_torrent.cpp:276,1
    - Dst: libtorrent::parent_path
      Src: /src/libtorrent/src/create_torrent.cpp:276,1
    - Dst: libtorrent::complete
      Src: /src/libtorrent/src/create_torrent.cpp:276,1
    - Dst: libtorrent::filename
      Src: /src/libtorrent/src/create_torrent.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' fs'
    - ' file'
    - flags
    argTypes:
    - file_storage
    - std::string
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 5
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: libtorrent::add_files
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::add_files_impl
    - libtorrent::complete
    - libtorrent::parent_path
    - libtorrent::filename
    linkageType: ''
    returnType: void
    signature: void add_files(file_storage& fs, std::string const& file, create_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' dio'
    argTypes:
    - disk_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 283
    functionName: libtorrent::disk_aborter
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_aborter(disk_interface& dio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::abort
      Src: /src/libtorrent/src/create_torrent.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: ~disk_aborter()
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::abort
    linkageType: ''
    returnType: void
    signature: void ~disk_aborter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: libtorrent::disk_aborter
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_aborter(disk_aborter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: '& operator=(disk_aborter const&)'
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: disk_aborter
    signature: disk_aborter & operator=(disk_aborter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' dio'
    argTypes:
    - disk_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 283
    functionName: libtorrent::disk_aborter
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_aborter(disk_interface& dio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::abort
      Src: /src/libtorrent/src/create_torrent.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: ~disk_aborter()
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::abort
    linkageType: ''
    returnType: void
    signature: void ~disk_aborter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: libtorrent::disk_aborter
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_aborter(disk_aborter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: '& operator=(disk_aborter const&)'
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: disk_aborter
    signature: disk_aborter & operator=(disk_aborter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' t'
    - ' p'
    - ' f'
    - ' ec'
    argTypes:
    - create_torrent
    - std::string
    - std::function<void(piece_index_t)>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 10
    functionsReached:
    - libtorrent::set_piece_hashes
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      std::function<void(piece_index_t)> const& f, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' t'
    - ' p'
    - ' sett'
    - ' f'
    - ' ec'
    argTypes:
    - create_torrent
    - std::string
    - settings_interface
    - std::function<void(piece_index_t)>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 11
    functionsReached:
    - libtorrent::set_piece_hashes
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      settings_interface const& sett\n\t\t, std::function<void(piece_index_t)> const&
      f, error_code& ec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::canonicalize_path
      Src: /src/libtorrent/src/create_torrent.cpp:320,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/create_torrent.cpp:325,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/create_torrent.cpp:331,1
    - Dst: get_int
      Src: /src/libtorrent/src/create_torrent.cpp:338,1
    - Dst: disk_io
      Src: /src/libtorrent/src/create_torrent.cpp:339,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/create_torrent.cpp:340,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/create_torrent.cpp:345,1
    - Dst: std::unique_ptr::new_torrent
      Src: /src/libtorrent/src/create_torrent.cpp:353,1
    - Dst: std::shared_ptr<void>
      Src: /src/libtorrent/src/create_torrent.cpp:354,1
    - Dst: std::max
      Src: /src/libtorrent/src/create_torrent.cpp:358,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:359,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/create_torrent.cpp:361,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/create_torrent.cpp:361,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:361,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:361,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:362,1
    - Dst: libtorrent::is_v1_only
      Src: /src/libtorrent/src/create_torrent.cpp:366,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/create_torrent.cpp:367,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:367,1
    - Dst: libtorrent::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:370,1
    - Dst: std::unique_ptr::async_hash
      Src: /src/libtorrent/src/create_torrent.cpp:375,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/create_torrent.cpp:376,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/create_torrent.cpp:376,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/create_torrent.cpp:378,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/src/create_torrent.cpp:380,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/src/create_torrent.cpp:383,1
    - Dst: io_context::run
      Src: /src/libtorrent/src/create_torrent.cpp:385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - ' t'
    - ' p'
    - ' sett'
    - disk_io
    - ' f'
    - ' ec'
    argTypes:
    - create_torrent
    - std::string
    - settings_interface
    - disk_io_constructor_type
    - std::function<void(piece_index_t)>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 390
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 11
    functionsReached:
    - libtorrent::files
    - std::unique_ptr::async_hash
    - disk_io
    - libtorrent::bind
    - sim::simulation::run
    - std::max
    - aux::vector::resize
    - libtorrent::move
    - std::unique_ptr::new_torrent
    - std::unique_ptr::submit_jobs
    - libtorrent::is_v2_only
    - std::shared_ptr<void>
    - get_int
    - libtorrent::canonicalize_path
    - libtorrent::piece_length
    - std::unique_ptr::get
    - piece_index_t
    - libtorrent::is_v1_only
    - io_context::run
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      settings_interface const& sett, disk_io_constructor_type disk_io\n\t\t, std::function<void(piece_index_t)>
      const& f, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: create_torrent::~create_torrent()
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void create_torrent::~create_torrent()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/src/create_torrent.cpp:397,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:398,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:406,1
    - Dst: total_size
      Src: /src/libtorrent/src/create_torrent.cpp:406,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/create_torrent.cpp:408,1
    - Dst: file_path
      Src: /src/libtorrent/src/create_torrent.cpp:408,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:408,1
    - Dst: total_size
      Src: /src/libtorrent/src/create_torrent.cpp:434,1
    - Dst: std::max
      Src: /src/libtorrent/src/create_torrent.cpp:443,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:448,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:455,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:461,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:464,1
    - Dst: canonicalize_impl
      Src: /src/libtorrent/src/create_torrent.cpp:468,1
    - Dst: set_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:470,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:470,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:471,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:471,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 3
    argNames:
    - ' fs'
    - piece_size
    - flags
    argTypes:
    - file_storage
    - int
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 472
    functionName: libtorrent::create_torrent::create_torrent
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 76
    functionsReached:
    - total_size
    - aux::throw_ex<system_error>
    - set_num_pieces
    - num_files
    - set_piece_length
    - libtorrent::aux::posix_time
    - libtorrent::aux::calc_num_pieces
    - file_path
    - canonicalize_impl
    - has_parent_path
    - TORRENT_ASSERT
    - std::max
    - piece_length
    - file_index_t
    linkageType: ''
    returnType: void
    signature: "void create_torrent::create_torrent(file_storage& fs, int piece_size\n\t\t,
      create_flags_t const flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/create_torrent.cpp:475,1
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/src/create_torrent.cpp:476,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:477,1
    - Dst: priv
      Src: /src/libtorrent/src/create_torrent.cpp:478,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:481,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:482,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:484,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:485,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:487,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:488,1
    - Dst: is_valid
      Src: /src/libtorrent/src/create_torrent.cpp:488,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:489,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:489,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:490,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:490,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:491,1
    - Dst: total_size
      Src: /src/libtorrent/src/create_torrent.cpp:491,1
    - Dst: is_valid
      Src: /src/libtorrent/src/create_torrent.cpp:493,1
    - Dst: creation_date
      Src: /src/libtorrent/src/create_torrent.cpp:494,1
    - Dst: creation_date
      Src: /src/libtorrent/src/create_torrent.cpp:494,1
    - Dst: creator
      Src: /src/libtorrent/src/create_torrent.cpp:496,1
    - Dst: libtorrent::create_torrent::set_creator
      Src: /src/libtorrent/src/create_torrent.cpp:496,1
    - Dst: creator
      Src: /src/libtorrent/src/create_torrent.cpp:496,1
    - Dst: comment
      Src: /src/libtorrent/src/create_torrent.cpp:497,1
    - Dst: libtorrent::create_torrent::set_comment
      Src: /src/libtorrent/src/create_torrent.cpp:497,1
    - Dst: comment
      Src: /src/libtorrent/src/create_torrent.cpp:497,1
    - Dst: nodes
      Src: /src/libtorrent/src/create_torrent.cpp:499,1
    - Dst: libtorrent::create_torrent::add_node
      Src: /src/libtorrent/src/create_torrent.cpp:500,1
    - Dst: trackers
      Src: /src/libtorrent/src/create_torrent.cpp:502,1
    - Dst: libtorrent::create_torrent::add_tracker
      Src: /src/libtorrent/src/create_torrent.cpp:503,1
    - Dst: web_seeds
      Src: /src/libtorrent/src/create_torrent.cpp:505,1
    - Dst: libtorrent::create_torrent::add_url_seed
      Src: /src/libtorrent/src/create_torrent.cpp:508,1
    - Dst: libtorrent::create_torrent::add_http_seed
      Src: /src/libtorrent/src/create_torrent.cpp:510,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:515,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:515,1
    - Dst: piece_range
      Src: /src/libtorrent/src/create_torrent.cpp:516,1
    - Dst: libtorrent::create_torrent::set_hash
      Src: /src/libtorrent/src/create_torrent.cpp:517,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/src/create_torrent.cpp:517,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:522,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:522,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:523,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:523,1
    - Dst: file_range
      Src: /src/libtorrent/src/create_torrent.cpp:524,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/create_torrent.cpp:527,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:528,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:530,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:531,1
    - Dst: libtorrent::create_torrent::set_hash2
      Src: /src/libtorrent/src/create_torrent.cpp:533,1
    - Dst: root
      Src: /src/libtorrent/src/create_torrent.cpp:533,1
    - Dst: piece_layer
      Src: /src/libtorrent/src/create_torrent.cpp:537,1
    - Dst: span::size
      Src: /src/libtorrent/src/create_torrent.cpp:540,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/create_torrent.cpp:540,1
    - Dst: libtorrent::create_torrent::set_hash2
      Src: /src/libtorrent/src/create_torrent.cpp:541,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/create_torrent.cpp:541,1
    - Dst: span::data
      Src: /src/libtorrent/src/create_torrent.cpp:541,1
    - Dst: info_section
      Src: /src/libtorrent/src/create_torrent.cpp:545,1
    - Dst: preformatted
      Src: /src/libtorrent/src/create_torrent.cpp:546,1
    - Dst: auto::data
      Src: /src/libtorrent/src/create_torrent.cpp:546,1
    - Dst: auto::data
      Src: /src/libtorrent/src/create_torrent.cpp:546,1
    - Dst: auto::size
      Src: /src/libtorrent/src/create_torrent.cpp:546,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 547
    functionName: libtorrent::create_torrent::create_torrent
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 76
    functionsReached:
    - web_seeds
    - creator
    - span::size
    - nodes
    - sha256_hash
    - test_piece_size
    - libtorrent::create_torrent::set_comment
    - is_valid
    - info_hashes
    - info_section
    - file_size
    - pad_file_at
    - libtorrent::create_torrent::add_node
    - piece_range
    - preformatted
    - libtorrent::aux::posix_time
    - num_pieces
    - libtorrent::create_torrent::set_hash
    - file_range
    - libtorrent::create_torrent::add_tracker
    - total_size
    - files
    - num_files
    - span::data
    - auto::size
    - piece_layer
    - priv
    - auto::data
    - libtorrent::create_torrent::add_url_seed
    - root
    - hash_for_piece
    - libtorrent::create_torrent::set_hash2
    - libtorrent::create_torrent::set_creator
    - trackers
    - TORRENT_ASSERT_PRECOND
    - piece_length
    - comment
    - resize
    - creation_date
    - libtorrent::create_torrent::add_http_seed
    linkageType: ''
    returnType: void
    signature: void create_torrent::create_torrent(torrent_info const& ti)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/create_torrent.cpp:553,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:553,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:555,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/create_torrent.cpp:557,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/create_torrent.cpp:562,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/create_torrent.cpp:564,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/create_torrent.cpp:568,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:568,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ' fs'
    - ' file_piece_hash'
    argTypes:
    - file_storage
    - aux::vector<aux::vector<sha256_hash, piece_index_t::diff_type>, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 576
    functionName: libtorrent::validate_v2_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_length
    - is_all_zeros
    - libtorrent::size
    - num_files
    - libtorrent::empty
    - file_size
    - libtorrent::begin
    - pad_file_at
    - std::any_of
    - libtorrent::end
    - libtorrent::file_range
    linkageType: ''
    returnType: bool
    signature: "bool validate_v2_hashes(file_storage const& fs\n\t\t, aux::vector<aux::vector<sha256_hash,
      piece_index_t::diff_type>, file_index_t> const& file_piece_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:581,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::size
      Src: /src/libtorrent/src/create_torrent.cpp:582,1
    - Dst: libtorrent::total_size
      Src: /src/libtorrent/src/create_torrent.cpp:582,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::begin
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::end
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' fs'
    - piece_hash
    argTypes:
    - file_storage
    - aux::vector<sha1_hash, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: libtorrent::validate_v1_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_length
    - is_all_zeros
    - aux::vector<sha1_hash, piece_index_t>::begin
    - aux::vector<sha1_hash, piece_index_t>::end
    - std::any_of
    - aux::vector<sha1_hash, piece_index_t>::size
    - libtorrent::total_size
    linkageType: ''
    returnType: bool
    signature: "bool validate_v1_hashes(file_storage const& fs\n\t\t, aux::vector<sha1_hash,
      piece_index_t> piece_hash)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/libtorrent/src/create_torrent.cpp:598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' e'
    - flags
    - include_symlinks
    argTypes:
    - entry
    - file_flags_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: libtorrent::add_file_attrs
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - string
    linkageType: ''
    returnType: void
    signature: void add_file_attrs(entry& e, file_flags_t const flags, bool const
      include_symlinks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lexically_relative
      Src: /src/libtorrent/src/create_torrent.cpp:609,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:610,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/create_torrent.cpp:610,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:611,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' e'
    - symlink_path
    argTypes:
    - entry
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 613
    functionName: libtorrent::add_symlink_path
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::lexically_relative
    - libtorrent::lsplit_path
    - auto::first::empty
    - list
    linkageType: ''
    returnType: void
    signature: void add_symlink_path(entry& e, std::string symlink_path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/create_torrent.cpp:553,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:553,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:555,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/create_torrent.cpp:557,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/create_torrent.cpp:562,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/create_torrent.cpp:564,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/create_torrent.cpp:568,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:568,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ' fs'
    - ' file_piece_hash'
    argTypes:
    - file_storage
    - aux::vector<aux::vector<sha256_hash, piece_index_t::diff_type>, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 576
    functionName: libtorrent::validate_v2_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_length
    - is_all_zeros
    - libtorrent::size
    - num_files
    - libtorrent::empty
    - file_size
    - libtorrent::begin
    - pad_file_at
    - std::any_of
    - libtorrent::end
    - libtorrent::file_range
    linkageType: ''
    returnType: bool
    signature: "bool validate_v2_hashes(file_storage const& fs\n\t\t, aux::vector<aux::vector<sha256_hash,
      piece_index_t::diff_type>, file_index_t> const& file_piece_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:581,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::size
      Src: /src/libtorrent/src/create_torrent.cpp:582,1
    - Dst: libtorrent::total_size
      Src: /src/libtorrent/src/create_torrent.cpp:582,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::begin
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::end
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' fs'
    - piece_hash
    argTypes:
    - file_storage
    - aux::vector<sha1_hash, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: libtorrent::validate_v1_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_length
    - is_all_zeros
    - aux::vector<sha1_hash, piece_index_t>::begin
    - aux::vector<sha1_hash, piece_index_t>::end
    - std::any_of
    - aux::vector<sha1_hash, piece_index_t>::size
    - libtorrent::total_size
    linkageType: ''
    returnType: bool
    signature: "bool validate_v1_hashes(file_storage const& fs\n\t\t, aux::vector<sha1_hash,
      piece_index_t> piece_hash)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/libtorrent/src/create_torrent.cpp:598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' e'
    - flags
    - include_symlinks
    argTypes:
    - entry
    - file_flags_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: libtorrent::add_file_attrs
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - string
    linkageType: ''
    returnType: void
    signature: void add_file_attrs(entry& e, file_flags_t const flags, bool const
      include_symlinks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lexically_relative
      Src: /src/libtorrent/src/create_torrent.cpp:609,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:610,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/create_torrent.cpp:610,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:611,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' e'
    - symlink_path
    argTypes:
    - entry
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 613
    functionName: libtorrent::add_symlink_path
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::lexically_relative
    - libtorrent::lsplit_path
    - auto::first::empty
    - list
    linkageType: ''
    returnType: void
    signature: void add_symlink_path(entry& e, std::string symlink_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/create_torrent.cpp:620,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/create_torrent.cpp:620,1
    - Dst: libtorrent::create_torrent::generate
      Src: /src/libtorrent/src/create_torrent.cpp:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 622
    functionName: libtorrent::create_torrent::generate_buf
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::generate
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> create_torrent::generate_buf() const
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:626,1
    - Dst: total_size
      Src: /src/libtorrent/src/create_torrent.cpp:626,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:627,1
    - Dst: validate_v2_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:631,1
    - Dst: validate_v1_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:632,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:636,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:638,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:638,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:642,1
    - Dst: front
      Src: /src/libtorrent/src/create_torrent.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:644,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:647,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:653,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:653,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:657,1
    - Dst: front
      Src: /src/libtorrent/src/create_torrent.cpp:661,1
    - Dst: entry::list_type::emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:667,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:667,1
    - Dst: entry::list_type::clear
      Src: /src/libtorrent/src/create_torrent.cpp:668,1
    - Dst: entry::list_type::emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:670,1
    - Dst: entry::list_type::emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:672,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:672,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:673,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:676,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:682,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:685,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:687,1
    - Dst: front
      Src: /src/libtorrent/src/create_torrent.cpp:689,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:696,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:701,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:703,1
    - Dst: front
      Src: /src/libtorrent/src/create_torrent.cpp:705,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:712,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:719,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:719,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:720,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:720,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/create_torrent.cpp:722,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:722,1
    - Dst: dict
      Src: /src/libtorrent/src/create_torrent.cpp:723,1
    - Dst: file_range
      Src: /src/libtorrent/src/create_torrent.cpp:725,1
    - Dst: files
      Src: /src/libtorrent/src/create_torrent.cpp:727,1
    - Dst: files
      Src: /src/libtorrent/src/create_torrent.cpp:728,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/create_torrent.cpp:730,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:734,1
    - Dst: to_string
      Src: /src/libtorrent/src/create_torrent.cpp:735,1
    - Dst: string
      Src: /src/libtorrent/src/create_torrent.cpp:735,1
    - Dst: clear
      Src: /src/libtorrent/src/create_torrent.cpp:736,1
    - Dst: reserve
      Src: /src/libtorrent/src/create_torrent.cpp:737,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:737,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/create_torrent.cpp:737,1
    - Dst: append
      Src: /src/libtorrent/src/create_torrent.cpp:739,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/libtorrent/src/create_torrent.cpp:739,1
    - Dst: data
      Src: /src/libtorrent/src/create_torrent.cpp:739,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:739,1
    - Dst: type
      Src: /src/libtorrent/src/create_torrent.cpp:744,1
    - Dst: type
      Src: /src/libtorrent/src/create_torrent.cpp:745,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:751,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:756,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:760,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:765,1
    - Dst: to_string
      Src: /src/libtorrent/src/create_torrent.cpp:765,1
    - Dst: name
      Src: /src/libtorrent/src/create_torrent.cpp:769,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:771,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:781,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:782,1
    - Dst: file_flags
      Src: /src/libtorrent/src/create_torrent.cpp:783,1
    - Dst: add_file_attrs
      Src: /src/libtorrent/src/create_torrent.cpp:784,1
    - Dst: add_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:788,1
    - Dst: internal_symlink
      Src: /src/libtorrent/src/create_torrent.cpp:788,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:791,1
    - Dst: to_string
      Src: /src/libtorrent/src/create_torrent.cpp:793,1
    - Dst: file_range
      Src: /src/libtorrent/src/create_torrent.cpp:801,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:803,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:804,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:805,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:805,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:806,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:808,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/create_torrent.cpp:808,1
    - Dst: file_path
      Src: /src/libtorrent/src/create_torrent.cpp:808,1
    - Dst: file_path
      Src: /src/libtorrent/src/create_torrent.cpp:813,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:816,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:817,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/create_torrent.cpp:817,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:817,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:818,1
    - Dst: file_flags
      Src: /src/libtorrent/src/create_torrent.cpp:821,1
    - Dst: add_file_attrs
      Src: /src/libtorrent/src/create_torrent.cpp:822,1
    - Dst: add_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:826,1
    - Dst: internal_symlink
      Src: /src/libtorrent/src/create_torrent.cpp:826,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:829,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/create_torrent.cpp:829,1
    - Dst: to_string
      Src: /src/libtorrent/src/create_torrent.cpp:831,1
    - Dst: file_range
      Src: /src/libtorrent/src/create_torrent.cpp:842,1
    - Dst: files
      Src: /src/libtorrent/src/create_torrent.cpp:844,1
    - Dst: file_path
      Src: /src/libtorrent/src/create_torrent.cpp:849,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:851,1
    - Dst: std::pair<string_view, string_view>
      Src: /src/libtorrent/src/create_torrent.cpp:852,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:853,1
    - Dst: name
      Src: /src/libtorrent/src/create_torrent.cpp:853,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:855,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/create_torrent.cpp:856,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:857,1
    - Dst: entry*::dict
      Src: /src/libtorrent/src/create_torrent.cpp:860,1
    - Dst: entry*::dict
      Src: /src/libtorrent/src/create_torrent.cpp:860,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:865,1
    - Dst: entry*::dict
      Src: /src/libtorrent/src/create_torrent.cpp:870,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:875,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:880,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:880,1
    - Dst: file_flags
      Src: /src/libtorrent/src/create_torrent.cpp:882,1
    - Dst: add_file_attrs
      Src: /src/libtorrent/src/create_torrent.cpp:883,1
    - Dst: add_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:887,1
    - Dst: internal_symlink
      Src: /src/libtorrent/src/create_torrent.cpp:887,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:891,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:893,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:899,1
    - Dst: string
      Src: /src/libtorrent/src/create_torrent.cpp:903,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/create_torrent.cpp:906,1
    - Dst: data
      Src: /src/libtorrent/src/create_torrent.cpp:906,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:906,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 142
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 910
    functionName: libtorrent::create_torrent::generate
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - auto::first::empty
    - std::move
    - append
    - test_piece_size
    - empty
    - file_size
    - entry*::dict
    - std::pair<string_view, string_view>
    - emplace_back
    - reinterpret_cast<const char*>
    - data
    - aux::throw_ex<system_error>
    - list
    - front
    - file_path
    - has_parent_path
    - validate_v2_hashes
    - clear
    - type
    - file_range
    - sha1_hash
    - file_flags
    - total_size
    - add_symlink_path
    - lsplit_path
    - std::string::append
    - files
    - num_files
    - merkle_pad
    - TORRENT_ASSERT
    - entry::list_type::emplace_back
    - reserve
    - add_file_attrs
    - entry::list_type::clear
    - validate_v1_hashes
    - merkle_root
    - size
    - string
    - name
    - mtime
    - dict
    - piece_length
    - internal_symlink
    - resize
    linkageType: ''
    returnType: entry
    signature: entry create_torrent::generate() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/create_torrent.cpp:914,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/create_torrent.cpp:916,1
    - Dst: begin
      Src: /src/libtorrent/src/create_torrent.cpp:916,1
    - Dst: end
      Src: /src/libtorrent/src/create_torrent.cpp:916,1
    - Dst: end
      Src: /src/libtorrent/src/create_torrent.cpp:918,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:919,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/create_torrent.cpp:919,1
    - Dst: std::sort
      Src: /src/libtorrent/src/create_torrent.cpp:921,1
    - Dst: begin
      Src: /src/libtorrent/src/create_torrent.cpp:921,1
    - Dst: end
      Src: /src/libtorrent/src/create_torrent.cpp:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - url
    - tier
    argTypes:
    - string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 924
    functionName: libtorrent::create_torrent::add_tracker
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - begin
    - end
    - string_view::empty
    - string_view::to_string
    - emplace_back
    - std::sort
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_tracker(string_view url, int const tier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/libtorrent/src/create_torrent.cpp:928,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/create_torrent.cpp:928,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/create_torrent.cpp:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 929
    functionName: libtorrent::create_torrent::set_root_cert
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - string_view::size
    - assign
    - string_view::data
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_root_cert(string_view cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ih
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 934
    functionName: libtorrent::create_torrent::add_similar_torrent
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_similar_torrent(sha1_hash ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 939
    functionName: libtorrent::create_torrent::add_collection
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_collection(string_view c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:944,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:946,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:947,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:947,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:949,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:949,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:950,1
    - Dst: end_index
      Src: /src/libtorrent/src/create_torrent.cpp:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - index
    - ' h'
    argTypes:
    - piece_index_t
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 952
    functionName: libtorrent::create_torrent::set_hash
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - aux::throw_ex<system_error>
    - empty
    - TORRENT_ASSERT_PRECOND
    - num_pieces
    - resize
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_hash(piece_index_t index, sha1_hash const&
      h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:956,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:956,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:957,1
    - Dst: end_file
      Src: /src/libtorrent/src/create_torrent.cpp:957,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:958,1
    - Dst: piece_index_t::diff_type
      Src: /src/libtorrent/src/create_torrent.cpp:958,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:959,1
    - Dst: piece_index_t::diff_type
      Src: /src/libtorrent/src/create_torrent.cpp:959,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:959,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:960,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/create_torrent.cpp:960,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:961,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:961,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:962,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:962,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:965,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:967,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:968,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:968,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:971,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:972,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/create_torrent.cpp:972,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - file
    - piece
    - ' h'
    argTypes:
    - file_index_t
    - piece_index_t::diff_type
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 974
    functionName: libtorrent::create_torrent::set_hash2
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - file_num_pieces
    - is_all_zeros
    - aux::throw_ex<system_error>
    - piece_index_t::diff_type
    - num_files
    - empty
    - TORRENT_ASSERT_PRECOND
    - end_file
    - resize
    - std::size_t
    - pad_file_at
    - file_index_t
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_hash2(file_index_t file, piece_index_t::diff_type
      piece, sha256_hash const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:979,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:979,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:980,1
    - Dst: end_file
      Src: /src/libtorrent/src/create_torrent.cpp:980,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:981,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:981,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - ' h'
    argTypes:
    - file_index_t
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 983
    functionName: libtorrent::create_torrent::set_file_hash
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - num_files
    - empty
    - TORRENT_ASSERT
    - end_file
    - resize
    - file_index_t
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_file_hash(file_index_t index, sha1_hash const&
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:988,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - std::pair<std::string, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 989
    functionName: libtorrent::create_torrent::add_node
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_node(std::pair<std::string, int> node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 994
    functionName: libtorrent::create_torrent::add_url_seed
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_url_seed(string_view url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 999
    functionName: libtorrent::create_torrent::add_http_seed
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_http_seed(string_view url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/create_torrent.cpp:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1005
    functionName: libtorrent::create_torrent::set_comment
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_comment(char const* str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/create_torrent.cpp:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1011
    functionName: libtorrent::create_torrent::set_creator
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_creator(char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timestamp
    argTypes:
    - std::time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1016
    functionName: libtorrent::create_torrent::set_creation_date
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_creation_date(std::time_t timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::default_pred
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool default_pred(std::string const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' leaf'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: libtorrent::ignore_subdir
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ignore_subdir(std::string const& leaf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/create_torrent.cpp:96,1
    - Dst: readlink
      Src: /src/libtorrent/src/create_torrent.cpp:97,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:97,1
    - Dst: libtorrent::convert_from_native_path
      Src: /src/libtorrent/src/create_torrent.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: libtorrent::get_symlink_path_impl
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_from_native_path
    - readlink
    - std::string::c_str
    - libtorrent::convert_to_native_path_string
    linkageType: ''
    returnType: std::string
    signature: std::string get_symlink_path_impl(char const* path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/create_torrent.cpp:109,1
    - Dst: pred
      Src: /src/libtorrent/src/create_torrent.cpp:110,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/create_torrent.cpp:113,1
    - Dst: aux::directory::done
      Src: /src/libtorrent/src/create_torrent.cpp:128,1
    - Dst: aux::directory::next
      Src: /src/libtorrent/src/create_torrent.cpp:128,1
    - Dst: aux::directory::file
      Src: /src/libtorrent/src/create_torrent.cpp:130,1
    - Dst: libtorrent::ignore_subdir
      Src: /src/libtorrent/src/create_torrent.cpp:131,1
    - Dst: libtorrent::add_files_impl
      Src: /src/libtorrent/src/create_torrent.cpp:132,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/create_torrent.cpp:132,1
    - Dst: libtorrent::aux::get_file_attributes
      Src: /src/libtorrent/src/create_torrent.cpp:140,1
    - Dst: libtorrent::aux::get_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:146,1
    - Dst: add_file
      Src: /src/libtorrent/src/create_torrent.cpp:147,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/create_torrent.cpp:147,1
    - Dst: add_file
      Src: /src/libtorrent/src/create_torrent.cpp:151,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/create_torrent.cpp:151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 5
    argNames:
    - ' fs'
    - ' p'
    - ' l'
    - ' pred'
    - flags
    argTypes:
    - file_storage
    - std::string
    - std::string
    - std::function<bool(std::string)>
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 154
    functionName: libtorrent::add_files_impl
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::add_files_impl
    - libtorrent::aux::get_symlink_path
    - add_file
    - libtorrent::aux::get_file_attributes
    - std::time_t
    - aux::directory::done
    - libtorrent::combine_path
    - libtorrent::ignore_subdir
    - libtorrent::stat_file
    - pred
    - aux::directory::next
    - aux::directory::file
    linkageType: ''
    returnType: void
    signature: "void add_files_impl(file_storage& fs, std::string const& p\n\t\t,
      std::string const& l, std::function<bool(std::string)> const& pred\n\t\t, create_flags_t
      const flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hash_state*::iothread::abort
      Src: /src/libtorrent/src/create_torrent.cpp:174,1
    - Dst: hash_state*::ct::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:178,1
    - Dst: hash_state*::ct::set_hash
      Src: /src/libtorrent/src/create_torrent.cpp:179,1
    - Dst: hash_state*::ct::is_v1_only
      Src: /src/libtorrent/src/create_torrent.cpp:181,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:183,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:184,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:186,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:186,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:191,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:192,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:193,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/create_torrent.cpp:194,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:198,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:202,1
    - Dst: aux::vector<sha256_hash>::size
      Src: /src/libtorrent/src/create_torrent.cpp:202,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/create_torrent.cpp:204,1
    - Dst: libtorrent::merkle_root
      Src: /src/libtorrent/src/create_torrent.cpp:205,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/create_torrent.cpp:206,1
    - Dst: hash_state*::ct::set_hash2
      Src: /src/libtorrent/src/create_torrent.cpp:207,1
    - Dst: hash_state*::ct::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:212,1
    - Dst: hash_state*::f
      Src: /src/libtorrent/src/create_torrent.cpp:214,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:216,1
    - Dst: hash_state*::iothread::async_hash
      Src: /src/libtorrent/src/create_torrent.cpp:219,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/create_torrent.cpp:220,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/create_torrent.cpp:220,1
    - Dst: hash_state*::iothread::submit_jobs
      Src: /src/libtorrent/src/create_torrent.cpp:222,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:224,1
    - Dst: hash_state*::iothread::abort
      Src: /src/libtorrent/src/create_torrent.cpp:226,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - v2_blocks
    - piece
    - ' piece_hash'
    - ' error'
    - st
    argTypes:
    - aux::vector<sha256_hash>
    - piece_index_t
    - sha1_hash
    - storage_error
    - hash_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 228
    functionName: libtorrent::on_hash
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - hash_state*::ct::files
    - hash_state*::iothread::submit_jobs
    - hash_state*::ct::piece_length
    - libtorrent::merkle_num_leafs
    - libtorrent::bind
    - hash_state*::ct::set_hash2
    - hash_state*::iothread::async_hash
    - hash_state*::ct::is_v2_only
    - hash_state*::ct::set_hash
    - TORRENT_ASSERT
    - aux::vector<sha256_hash>::size
    - libtorrent::merkle_root
    - libtorrent::span
    - hash_state*::ct::is_v1_only
    - hash_state*::iothread::abort
    - hash_state*::f
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void on_hash(aux::vector<sha256_hash> v2_blocks, piece_index_t const
      piece\n\t\t, sha1_hash const& piece_hash, storage_error const& error, hash_state*
      st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::default_pred
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool default_pred(std::string const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' leaf'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: libtorrent::ignore_subdir
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ignore_subdir(std::string const& leaf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_to_native_path_string
      Src: /src/libtorrent/src/create_torrent.cpp:96,1
    - Dst: readlink
      Src: /src/libtorrent/src/create_torrent.cpp:97,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:97,1
    - Dst: libtorrent::convert_from_native_path
      Src: /src/libtorrent/src/create_torrent.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: libtorrent::get_symlink_path_impl
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::convert_from_native_path
    - readlink
    - std::string::c_str
    - libtorrent::convert_to_native_path_string
    linkageType: ''
    returnType: std::string
    signature: std::string get_symlink_path_impl(char const* path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/create_torrent.cpp:109,1
    - Dst: pred
      Src: /src/libtorrent/src/create_torrent.cpp:110,1
    - Dst: libtorrent::stat_file
      Src: /src/libtorrent/src/create_torrent.cpp:113,1
    - Dst: aux::directory::done
      Src: /src/libtorrent/src/create_torrent.cpp:128,1
    - Dst: aux::directory::next
      Src: /src/libtorrent/src/create_torrent.cpp:128,1
    - Dst: aux::directory::file
      Src: /src/libtorrent/src/create_torrent.cpp:130,1
    - Dst: libtorrent::ignore_subdir
      Src: /src/libtorrent/src/create_torrent.cpp:131,1
    - Dst: libtorrent::add_files_impl
      Src: /src/libtorrent/src/create_torrent.cpp:132,1
    - Dst: libtorrent::combine_path
      Src: /src/libtorrent/src/create_torrent.cpp:132,1
    - Dst: libtorrent::aux::get_file_attributes
      Src: /src/libtorrent/src/create_torrent.cpp:140,1
    - Dst: libtorrent::aux::get_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:146,1
    - Dst: add_file
      Src: /src/libtorrent/src/create_torrent.cpp:147,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/create_torrent.cpp:147,1
    - Dst: add_file
      Src: /src/libtorrent/src/create_torrent.cpp:151,1
    - Dst: std::time_t
      Src: /src/libtorrent/src/create_torrent.cpp:151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 5
    argNames:
    - ' fs'
    - ' p'
    - ' l'
    - ' pred'
    - flags
    argTypes:
    - file_storage
    - std::string
    - std::string
    - std::function<bool(std::string)>
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 154
    functionName: libtorrent::add_files_impl
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::add_files_impl
    - libtorrent::aux::get_symlink_path
    - add_file
    - libtorrent::aux::get_file_attributes
    - std::time_t
    - aux::directory::done
    - libtorrent::combine_path
    - libtorrent::ignore_subdir
    - libtorrent::stat_file
    - pred
    - aux::directory::next
    - aux::directory::file
    linkageType: ''
    returnType: void
    signature: "void add_files_impl(file_storage& fs, std::string const& p\n\t\t,
      std::string const& l, std::function<bool(std::string)> const& pred\n\t\t, create_flags_t
      const flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hash_state*::iothread::abort
      Src: /src/libtorrent/src/create_torrent.cpp:174,1
    - Dst: hash_state*::ct::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:178,1
    - Dst: hash_state*::ct::set_hash
      Src: /src/libtorrent/src/create_torrent.cpp:179,1
    - Dst: hash_state*::ct::is_v1_only
      Src: /src/libtorrent/src/create_torrent.cpp:181,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:183,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:184,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:186,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:186,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:187,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:190,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:191,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:192,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:193,1
    - Dst: libtorrent::merkle_num_leafs
      Src: /src/libtorrent/src/create_torrent.cpp:194,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:198,1
    - Dst: hash_state*::ct::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:202,1
    - Dst: aux::vector<sha256_hash>::size
      Src: /src/libtorrent/src/create_torrent.cpp:202,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/src/create_torrent.cpp:204,1
    - Dst: libtorrent::merkle_root
      Src: /src/libtorrent/src/create_torrent.cpp:205,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/src/create_torrent.cpp:206,1
    - Dst: hash_state*::ct::set_hash2
      Src: /src/libtorrent/src/create_torrent.cpp:207,1
    - Dst: hash_state*::ct::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:212,1
    - Dst: hash_state*::f
      Src: /src/libtorrent/src/create_torrent.cpp:214,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:216,1
    - Dst: hash_state*::iothread::async_hash
      Src: /src/libtorrent/src/create_torrent.cpp:219,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/create_torrent.cpp:220,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/create_torrent.cpp:220,1
    - Dst: hash_state*::iothread::submit_jobs
      Src: /src/libtorrent/src/create_torrent.cpp:222,1
    - Dst: hash_state*::ct::files
      Src: /src/libtorrent/src/create_torrent.cpp:224,1
    - Dst: hash_state*::iothread::abort
      Src: /src/libtorrent/src/create_torrent.cpp:226,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - v2_blocks
    - piece
    - ' piece_hash'
    - ' error'
    - st
    argTypes:
    - aux::vector<sha256_hash>
    - piece_index_t
    - sha1_hash
    - storage_error
    - hash_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 228
    functionName: libtorrent::on_hash
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - hash_state*::ct::files
    - hash_state*::iothread::submit_jobs
    - hash_state*::ct::piece_length
    - libtorrent::merkle_num_leafs
    - libtorrent::bind
    - hash_state*::ct::set_hash2
    - hash_state*::iothread::async_hash
    - hash_state*::ct::is_v2_only
    - hash_state*::ct::set_hash
    - TORRENT_ASSERT
    - aux::vector<sha256_hash>::size
    - libtorrent::merkle_root
    - libtorrent::span
    - hash_state*::ct::is_v1_only
    - hash_state*::iothread::abort
    - hash_state*::f
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void on_hash(aux::vector<sha256_hash> v2_blocks, piece_index_t const
      piece\n\t\t, sha1_hash const& piece_hash, storage_error const& error, hash_state*
      st)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/create_torrent.cpp:236,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/create_torrent.cpp:240,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:240,1
    - Dst: ::lstat
      Src: /src/libtorrent/src/create_torrent.cpp:246,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:246,1
    - Dst: S_ISLNK
      Src: /src/libtorrent/src/create_torrent.cpp:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 254
    functionName: libtorrent::aux::get_file_attributes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 5
    functionsReached:
    - auto::c_str
    - GetFileAttributesExW
    - S_ISLNK
    - ::lstat
    - convert_to_native_path_string
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t get_file_attributes(std::string const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/create_torrent.cpp:259,1
    - Dst: get_symlink_path_impl
      Src: /src/libtorrent/src/create_torrent.cpp:262,1
    - Dst: c_str
      Src: /src/libtorrent/src/create_torrent.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: libtorrent::aux::get_symlink_path
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 5
    functionsReached:
    - get_symlink_path_impl
    - c_str
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::string
    signature: std::string get_symlink_path(std::string const& p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_native_path_string
      Src: /src/libtorrent/src/create_torrent.cpp:236,1
    - Dst: GetFileAttributesExW
      Src: /src/libtorrent/src/create_torrent.cpp:240,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:240,1
    - Dst: ::lstat
      Src: /src/libtorrent/src/create_torrent.cpp:246,1
    - Dst: auto::c_str
      Src: /src/libtorrent/src/create_torrent.cpp:246,1
    - Dst: S_ISLNK
      Src: /src/libtorrent/src/create_torrent.cpp:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 254
    functionName: libtorrent::aux::get_file_attributes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 5
    functionsReached:
    - auto::c_str
    - GetFileAttributesExW
    - S_ISLNK
    - ::lstat
    - convert_to_native_path_string
    linkageType: ''
    returnType: file_flags_t
    signature: file_flags_t get_file_attributes(std::string const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/create_torrent.cpp:259,1
    - Dst: get_symlink_path_impl
      Src: /src/libtorrent/src/create_torrent.cpp:262,1
    - Dst: c_str
      Src: /src/libtorrent/src/create_torrent.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: libtorrent::aux::get_symlink_path
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 5
    functionsReached:
    - get_symlink_path_impl
    - c_str
    - TORRENT_UNUSED
    linkageType: ''
    returnType: std::string
    signature: std::string get_symlink_path(std::string const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_files_impl
      Src: /src/libtorrent/src/create_torrent.cpp:271,1
    - Dst: libtorrent::parent_path
      Src: /src/libtorrent/src/create_torrent.cpp:271,1
    - Dst: libtorrent::complete
      Src: /src/libtorrent/src/create_torrent.cpp:271,1
    - Dst: libtorrent::filename
      Src: /src/libtorrent/src/create_torrent.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' fs'
    - ' file'
    - p
    - flags
    argTypes:
    - file_storage
    - std::string
    - std::function<bool(std::string)>
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: libtorrent::add_files
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::add_files_impl
    - libtorrent::complete
    - libtorrent::parent_path
    - libtorrent::filename
    linkageType: ''
    returnType: void
    signature: "void add_files(file_storage& fs, std::string const& file\n\t\t, std::function<bool(std::string)>
      p, create_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_files_impl
      Src: /src/libtorrent/src/create_torrent.cpp:276,1
    - Dst: libtorrent::parent_path
      Src: /src/libtorrent/src/create_torrent.cpp:276,1
    - Dst: libtorrent::complete
      Src: /src/libtorrent/src/create_torrent.cpp:276,1
    - Dst: libtorrent::filename
      Src: /src/libtorrent/src/create_torrent.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' fs'
    - ' file'
    - flags
    argTypes:
    - file_storage
    - std::string
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 5
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: libtorrent::add_files
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::add_files_impl
    - libtorrent::complete
    - libtorrent::parent_path
    - libtorrent::filename
    linkageType: ''
    returnType: void
    signature: void add_files(file_storage& fs, std::string const& file, create_flags_t
      const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' dio'
    argTypes:
    - disk_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 283
    functionName: libtorrent::disk_aborter
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_aborter(disk_interface& dio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libtorrent/src/create_torrent.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: ~disk_aborter()
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void ~disk_aborter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: libtorrent::disk_aborter
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_aborter(disk_aborter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: '& operator=(disk_aborter const&)'
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: disk_aborter
    signature: disk_aborter & operator=(disk_aborter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' dio'
    argTypes:
    - disk_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 283
    functionName: libtorrent::disk_aborter
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_aborter(disk_interface& dio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libtorrent/src/create_torrent.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: ~disk_aborter()
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void ~disk_aborter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: libtorrent::disk_aborter
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_aborter(disk_aborter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: '& operator=(disk_aborter const&)'
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: disk_aborter
    signature: disk_aborter & operator=(disk_aborter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' t'
    - ' p'
    - ' f'
    - ' ec'
    argTypes:
    - create_torrent
    - std::string
    - std::function<void(piece_index_t)>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 12
    functionsReached:
    - libtorrent::set_piece_hashes
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      std::function<void(piece_index_t)> const& f, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' t'
    - ' p'
    - ' sett'
    - ' f'
    - ' ec'
    argTypes:
    - create_torrent
    - std::string
    - settings_interface
    - std::function<void(piece_index_t)>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 13
    functionsReached:
    - libtorrent::set_piece_hashes
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      settings_interface const& sett\n\t\t, std::function<void(piece_index_t)> const&
      f, error_code& ec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::canonicalize_path
      Src: /src/libtorrent/src/create_torrent.cpp:320,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/create_torrent.cpp:325,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/create_torrent.cpp:331,1
    - Dst: get_int
      Src: /src/libtorrent/src/create_torrent.cpp:338,1
    - Dst: disk_io
      Src: /src/libtorrent/src/create_torrent.cpp:339,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/create_torrent.cpp:340,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/create_torrent.cpp:345,1
    - Dst: std::unique_ptr::new_torrent
      Src: /src/libtorrent/src/create_torrent.cpp:353,1
    - Dst: std::shared_ptr<void>
      Src: /src/libtorrent/src/create_torrent.cpp:354,1
    - Dst: std::max
      Src: /src/libtorrent/src/create_torrent.cpp:358,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:359,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/create_torrent.cpp:361,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/src/create_torrent.cpp:361,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:361,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:361,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:362,1
    - Dst: libtorrent::is_v1_only
      Src: /src/libtorrent/src/create_torrent.cpp:366,1
    - Dst: aux::vector::resize
      Src: /src/libtorrent/src/create_torrent.cpp:367,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:367,1
    - Dst: libtorrent::is_v2_only
      Src: /src/libtorrent/src/create_torrent.cpp:370,1
    - Dst: std::unique_ptr::async_hash
      Src: /src/libtorrent/src/create_torrent.cpp:375,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/src/create_torrent.cpp:376,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/src/create_torrent.cpp:376,1
    - Dst: libtorrent::files
      Src: /src/libtorrent/src/create_torrent.cpp:378,1
    - Dst: std::unique_ptr::submit_jobs
      Src: /src/libtorrent/src/create_torrent.cpp:380,1
    - Dst: sim::simulation::run
      Src: /src/libtorrent/src/create_torrent.cpp:383,1
    - Dst: io_context::run
      Src: /src/libtorrent/src/create_torrent.cpp:385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - ' t'
    - ' p'
    - ' sett'
    - disk_io
    - ' f'
    - ' ec'
    argTypes:
    - create_torrent
    - std::string
    - settings_interface
    - disk_io_constructor_type
    - std::function<void(piece_index_t)>
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 390
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 13
    functionsReached:
    - libtorrent::files
    - std::unique_ptr::async_hash
    - disk_io
    - libtorrent::bind
    - sim::simulation::run
    - std::max
    - aux::vector::resize
    - libtorrent::move
    - std::unique_ptr::new_torrent
    - std::unique_ptr::submit_jobs
    - libtorrent::is_v2_only
    - std::shared_ptr<void>
    - get_int
    - libtorrent::canonicalize_path
    - libtorrent::piece_length
    - std::unique_ptr::get
    - piece_index_t
    - libtorrent::is_v1_only
    - io_context::run
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      settings_interface const& sett, disk_io_constructor_type disk_io\n\t\t, std::function<void(piece_index_t)>
      const& f, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: create_torrent::~create_torrent()
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void create_torrent::~create_torrent()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/src/create_torrent.cpp:397,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:398,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:406,1
    - Dst: total_size
      Src: /src/libtorrent/src/create_torrent.cpp:406,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/create_torrent.cpp:408,1
    - Dst: file_path
      Src: /src/libtorrent/src/create_torrent.cpp:408,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:408,1
    - Dst: total_size
      Src: /src/libtorrent/src/create_torrent.cpp:434,1
    - Dst: std::max
      Src: /src/libtorrent/src/create_torrent.cpp:443,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:448,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:455,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:461,1
    - Dst: set_piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:464,1
    - Dst: canonicalize_impl
      Src: /src/libtorrent/src/create_torrent.cpp:468,1
    - Dst: set_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:470,1
    - Dst: libtorrent::aux::calc_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:470,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:471,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:471,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 3
    argNames:
    - ' fs'
    - piece_size
    - flags
    argTypes:
    - file_storage
    - int
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 472
    functionName: libtorrent::create_torrent::create_torrent
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 76
    functionsReached:
    - total_size
    - aux::throw_ex<system_error>
    - set_num_pieces
    - num_files
    - set_piece_length
    - libtorrent::aux::posix_time
    - libtorrent::aux::calc_num_pieces
    - file_path
    - canonicalize_impl
    - has_parent_path
    - TORRENT_ASSERT
    - std::max
    - piece_length
    - file_index_t
    linkageType: ''
    returnType: void
    signature: "void create_torrent::create_torrent(file_storage& fs, int piece_size\n\t\t,
      create_flags_t const flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: files
      Src: /src/libtorrent/src/create_torrent.cpp:475,1
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/src/create_torrent.cpp:476,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:477,1
    - Dst: priv
      Src: /src/libtorrent/src/create_torrent.cpp:478,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:481,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:482,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:484,1
    - Dst: info_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:485,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:487,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:488,1
    - Dst: is_valid
      Src: /src/libtorrent/src/create_torrent.cpp:488,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:489,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:489,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:490,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:490,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:491,1
    - Dst: total_size
      Src: /src/libtorrent/src/create_torrent.cpp:491,1
    - Dst: is_valid
      Src: /src/libtorrent/src/create_torrent.cpp:493,1
    - Dst: creation_date
      Src: /src/libtorrent/src/create_torrent.cpp:494,1
    - Dst: creation_date
      Src: /src/libtorrent/src/create_torrent.cpp:494,1
    - Dst: creator
      Src: /src/libtorrent/src/create_torrent.cpp:496,1
    - Dst: libtorrent::create_torrent::set_creator
      Src: /src/libtorrent/src/create_torrent.cpp:496,1
    - Dst: creator
      Src: /src/libtorrent/src/create_torrent.cpp:496,1
    - Dst: comment
      Src: /src/libtorrent/src/create_torrent.cpp:497,1
    - Dst: libtorrent::create_torrent::set_comment
      Src: /src/libtorrent/src/create_torrent.cpp:497,1
    - Dst: comment
      Src: /src/libtorrent/src/create_torrent.cpp:497,1
    - Dst: nodes
      Src: /src/libtorrent/src/create_torrent.cpp:499,1
    - Dst: libtorrent::create_torrent::add_node
      Src: /src/libtorrent/src/create_torrent.cpp:500,1
    - Dst: trackers
      Src: /src/libtorrent/src/create_torrent.cpp:502,1
    - Dst: libtorrent::create_torrent::add_tracker
      Src: /src/libtorrent/src/create_torrent.cpp:503,1
    - Dst: web_seeds
      Src: /src/libtorrent/src/create_torrent.cpp:505,1
    - Dst: libtorrent::create_torrent::add_url_seed
      Src: /src/libtorrent/src/create_torrent.cpp:508,1
    - Dst: libtorrent::create_torrent::add_http_seed
      Src: /src/libtorrent/src/create_torrent.cpp:510,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:515,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:515,1
    - Dst: piece_range
      Src: /src/libtorrent/src/create_torrent.cpp:516,1
    - Dst: libtorrent::create_torrent::set_hash
      Src: /src/libtorrent/src/create_torrent.cpp:517,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/src/create_torrent.cpp:517,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:522,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:522,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:523,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:523,1
    - Dst: file_range
      Src: /src/libtorrent/src/create_torrent.cpp:524,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/create_torrent.cpp:527,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:528,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:530,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:531,1
    - Dst: libtorrent::create_torrent::set_hash2
      Src: /src/libtorrent/src/create_torrent.cpp:533,1
    - Dst: root
      Src: /src/libtorrent/src/create_torrent.cpp:533,1
    - Dst: piece_layer
      Src: /src/libtorrent/src/create_torrent.cpp:537,1
    - Dst: span::size
      Src: /src/libtorrent/src/create_torrent.cpp:540,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/create_torrent.cpp:540,1
    - Dst: libtorrent::create_torrent::set_hash2
      Src: /src/libtorrent/src/create_torrent.cpp:541,1
    - Dst: sha256_hash
      Src: /src/libtorrent/src/create_torrent.cpp:541,1
    - Dst: span::data
      Src: /src/libtorrent/src/create_torrent.cpp:541,1
    - Dst: info_section
      Src: /src/libtorrent/src/create_torrent.cpp:545,1
    - Dst: preformatted
      Src: /src/libtorrent/src/create_torrent.cpp:546,1
    - Dst: auto::data
      Src: /src/libtorrent/src/create_torrent.cpp:546,1
    - Dst: auto::data
      Src: /src/libtorrent/src/create_torrent.cpp:546,1
    - Dst: auto::size
      Src: /src/libtorrent/src/create_torrent.cpp:546,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 547
    functionName: libtorrent::create_torrent::create_torrent
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 76
    functionsReached:
    - web_seeds
    - creator
    - span::size
    - nodes
    - sha256_hash
    - test_piece_size
    - libtorrent::create_torrent::set_comment
    - is_valid
    - info_hashes
    - info_section
    - file_size
    - pad_file_at
    - libtorrent::create_torrent::add_node
    - piece_range
    - preformatted
    - libtorrent::aux::posix_time
    - num_pieces
    - libtorrent::create_torrent::set_hash
    - file_range
    - libtorrent::create_torrent::add_tracker
    - total_size
    - files
    - num_files
    - span::data
    - auto::size
    - piece_layer
    - priv
    - auto::data
    - libtorrent::create_torrent::add_url_seed
    - root
    - hash_for_piece
    - libtorrent::create_torrent::set_hash2
    - libtorrent::create_torrent::set_creator
    - trackers
    - TORRENT_ASSERT_PRECOND
    - piece_length
    - comment
    - resize
    - creation_date
    - libtorrent::create_torrent::add_http_seed
    linkageType: ''
    returnType: void
    signature: void create_torrent::create_torrent(torrent_info const& ti)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/create_torrent.cpp:553,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:553,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:555,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/create_torrent.cpp:557,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/create_torrent.cpp:562,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/create_torrent.cpp:564,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/create_torrent.cpp:568,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:568,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ' fs'
    - ' file_piece_hash'
    argTypes:
    - file_storage
    - aux::vector<aux::vector<sha256_hash, piece_index_t::diff_type>, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 576
    functionName: libtorrent::validate_v2_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_length
    - is_all_zeros
    - libtorrent::size
    - num_files
    - libtorrent::empty
    - file_size
    - libtorrent::begin
    - pad_file_at
    - std::any_of
    - libtorrent::end
    - libtorrent::file_range
    linkageType: ''
    returnType: bool
    signature: "bool validate_v2_hashes(file_storage const& fs\n\t\t, aux::vector<aux::vector<sha256_hash,
      piece_index_t::diff_type>, file_index_t> const& file_piece_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:581,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::size
      Src: /src/libtorrent/src/create_torrent.cpp:582,1
    - Dst: libtorrent::total_size
      Src: /src/libtorrent/src/create_torrent.cpp:582,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::begin
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::end
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' fs'
    - piece_hash
    argTypes:
    - file_storage
    - aux::vector<sha1_hash, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: libtorrent::validate_v1_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_length
    - is_all_zeros
    - aux::vector<sha1_hash, piece_index_t>::begin
    - aux::vector<sha1_hash, piece_index_t>::end
    - std::any_of
    - aux::vector<sha1_hash, piece_index_t>::size
    - libtorrent::total_size
    linkageType: ''
    returnType: bool
    signature: "bool validate_v1_hashes(file_storage const& fs\n\t\t, aux::vector<sha1_hash,
      piece_index_t> piece_hash)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/libtorrent/src/create_torrent.cpp:598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' e'
    - flags
    - include_symlinks
    argTypes:
    - entry
    - file_flags_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: libtorrent::add_file_attrs
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - string
    linkageType: ''
    returnType: void
    signature: void add_file_attrs(entry& e, file_flags_t const flags, bool const
      include_symlinks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lexically_relative
      Src: /src/libtorrent/src/create_torrent.cpp:609,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:610,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/create_torrent.cpp:610,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:611,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' e'
    - symlink_path
    argTypes:
    - entry
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 613
    functionName: libtorrent::add_symlink_path
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::lexically_relative
    - libtorrent::lsplit_path
    - auto::first::empty
    - list
    linkageType: ''
    returnType: void
    signature: void add_symlink_path(entry& e, std::string symlink_path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/create_torrent.cpp:553,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:553,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:555,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/src/create_torrent.cpp:557,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/create_torrent.cpp:562,1
    - Dst: libtorrent::empty
      Src: /src/libtorrent/src/create_torrent.cpp:564,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/src/create_torrent.cpp:568,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:568,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/src/create_torrent.cpp:569,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ' fs'
    - ' file_piece_hash'
    argTypes:
    - file_storage
    - aux::vector<aux::vector<sha256_hash, piece_index_t::diff_type>, file_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 576
    functionName: libtorrent::validate_v2_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_length
    - is_all_zeros
    - libtorrent::size
    - num_files
    - libtorrent::empty
    - file_size
    - libtorrent::begin
    - pad_file_at
    - std::any_of
    - libtorrent::end
    - libtorrent::file_range
    linkageType: ''
    returnType: bool
    signature: "bool validate_v2_hashes(file_storage const& fs\n\t\t, aux::vector<aux::vector<sha256_hash,
      piece_index_t::diff_type>, file_index_t> const& file_piece_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:581,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::size
      Src: /src/libtorrent/src/create_torrent.cpp:582,1
    - Dst: libtorrent::total_size
      Src: /src/libtorrent/src/create_torrent.cpp:582,1
    - Dst: std::any_of
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::begin
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: aux::vector<sha1_hash, piece_index_t>::end
      Src: /src/libtorrent/src/create_torrent.cpp:585,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' fs'
    - piece_hash
    argTypes:
    - file_storage
    - aux::vector<sha1_hash, piece_index_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: libtorrent::validate_v1_hashes
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::piece_length
    - is_all_zeros
    - aux::vector<sha1_hash, piece_index_t>::begin
    - aux::vector<sha1_hash, piece_index_t>::end
    - std::any_of
    - aux::vector<sha1_hash, piece_index_t>::size
    - libtorrent::total_size
    linkageType: ''
    returnType: bool
    signature: "bool validate_v1_hashes(file_storage const& fs\n\t\t, aux::vector<sha1_hash,
      piece_index_t> piece_hash)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/libtorrent/src/create_torrent.cpp:598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' e'
    - flags
    - include_symlinks
    argTypes:
    - entry
    - file_flags_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: libtorrent::add_file_attrs
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - string
    linkageType: ''
    returnType: void
    signature: void add_file_attrs(entry& e, file_flags_t const flags, bool const
      include_symlinks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lexically_relative
      Src: /src/libtorrent/src/create_torrent.cpp:609,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:610,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/create_torrent.cpp:610,1
    - Dst: libtorrent::lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:611,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' e'
    - symlink_path
    argTypes:
    - entry
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 613
    functionName: libtorrent::add_symlink_path
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::lexically_relative
    - libtorrent::lsplit_path
    - auto::first::empty
    - list
    linkageType: ''
    returnType: void
    signature: void add_symlink_path(entry& e, std::string symlink_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/create_torrent.cpp:620,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/create_torrent.cpp:620,1
    - Dst: libtorrent::create_torrent::generate
      Src: /src/libtorrent/src/create_torrent.cpp:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 622
    functionName: libtorrent::create_torrent::generate_buf
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::create_torrent::generate
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: std::vector<char>
    signature: std::vector<char> create_torrent::generate_buf() const
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:626,1
    - Dst: total_size
      Src: /src/libtorrent/src/create_torrent.cpp:626,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:627,1
    - Dst: validate_v2_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:631,1
    - Dst: validate_v1_hashes
      Src: /src/libtorrent/src/create_torrent.cpp:632,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:636,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:638,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:638,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:642,1
    - Dst: front
      Src: /src/libtorrent/src/create_torrent.cpp:642,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:644,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:647,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:653,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:653,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:657,1
    - Dst: front
      Src: /src/libtorrent/src/create_torrent.cpp:661,1
    - Dst: entry::list_type::emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:667,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:667,1
    - Dst: entry::list_type::clear
      Src: /src/libtorrent/src/create_torrent.cpp:668,1
    - Dst: entry::list_type::emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:670,1
    - Dst: entry::list_type::emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:672,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:672,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:673,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:676,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:682,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:685,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:687,1
    - Dst: front
      Src: /src/libtorrent/src/create_torrent.cpp:689,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:696,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:701,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:703,1
    - Dst: front
      Src: /src/libtorrent/src/create_torrent.cpp:705,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:712,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:719,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:719,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:720,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:720,1
    - Dst: merkle_pad
      Src: /src/libtorrent/src/create_torrent.cpp:722,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:722,1
    - Dst: dict
      Src: /src/libtorrent/src/create_torrent.cpp:723,1
    - Dst: file_range
      Src: /src/libtorrent/src/create_torrent.cpp:725,1
    - Dst: files
      Src: /src/libtorrent/src/create_torrent.cpp:727,1
    - Dst: files
      Src: /src/libtorrent/src/create_torrent.cpp:728,1
    - Dst: merkle_root
      Src: /src/libtorrent/src/create_torrent.cpp:730,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:734,1
    - Dst: to_string
      Src: /src/libtorrent/src/create_torrent.cpp:735,1
    - Dst: string
      Src: /src/libtorrent/src/create_torrent.cpp:735,1
    - Dst: clear
      Src: /src/libtorrent/src/create_torrent.cpp:736,1
    - Dst: reserve
      Src: /src/libtorrent/src/create_torrent.cpp:737,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:737,1
    - Dst: test_piece_size
      Src: /src/libtorrent/src/create_torrent.cpp:737,1
    - Dst: append
      Src: /src/libtorrent/src/create_torrent.cpp:739,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/libtorrent/src/create_torrent.cpp:739,1
    - Dst: data
      Src: /src/libtorrent/src/create_torrent.cpp:739,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:739,1
    - Dst: type
      Src: /src/libtorrent/src/create_torrent.cpp:744,1
    - Dst: type
      Src: /src/libtorrent/src/create_torrent.cpp:745,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:751,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:756,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:760,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:765,1
    - Dst: to_string
      Src: /src/libtorrent/src/create_torrent.cpp:765,1
    - Dst: name
      Src: /src/libtorrent/src/create_torrent.cpp:769,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:771,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:781,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:782,1
    - Dst: file_flags
      Src: /src/libtorrent/src/create_torrent.cpp:783,1
    - Dst: add_file_attrs
      Src: /src/libtorrent/src/create_torrent.cpp:784,1
    - Dst: add_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:788,1
    - Dst: internal_symlink
      Src: /src/libtorrent/src/create_torrent.cpp:788,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:791,1
    - Dst: to_string
      Src: /src/libtorrent/src/create_torrent.cpp:793,1
    - Dst: file_range
      Src: /src/libtorrent/src/create_torrent.cpp:801,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:803,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:804,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:805,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:805,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:806,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:808,1
    - Dst: has_parent_path
      Src: /src/libtorrent/src/create_torrent.cpp:808,1
    - Dst: file_path
      Src: /src/libtorrent/src/create_torrent.cpp:808,1
    - Dst: file_path
      Src: /src/libtorrent/src/create_torrent.cpp:813,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:816,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:817,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/create_torrent.cpp:817,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:817,1
    - Dst: list
      Src: /src/libtorrent/src/create_torrent.cpp:818,1
    - Dst: file_flags
      Src: /src/libtorrent/src/create_torrent.cpp:821,1
    - Dst: add_file_attrs
      Src: /src/libtorrent/src/create_torrent.cpp:822,1
    - Dst: add_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:826,1
    - Dst: internal_symlink
      Src: /src/libtorrent/src/create_torrent.cpp:826,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:829,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/create_torrent.cpp:829,1
    - Dst: to_string
      Src: /src/libtorrent/src/create_torrent.cpp:831,1
    - Dst: file_range
      Src: /src/libtorrent/src/create_torrent.cpp:842,1
    - Dst: files
      Src: /src/libtorrent/src/create_torrent.cpp:844,1
    - Dst: file_path
      Src: /src/libtorrent/src/create_torrent.cpp:849,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:851,1
    - Dst: std::pair<string_view, string_view>
      Src: /src/libtorrent/src/create_torrent.cpp:852,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:853,1
    - Dst: name
      Src: /src/libtorrent/src/create_torrent.cpp:853,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:855,1
    - Dst: auto::first::empty
      Src: /src/libtorrent/src/create_torrent.cpp:856,1
    - Dst: lsplit_path
      Src: /src/libtorrent/src/create_torrent.cpp:857,1
    - Dst: entry*::dict
      Src: /src/libtorrent/src/create_torrent.cpp:860,1
    - Dst: entry*::dict
      Src: /src/libtorrent/src/create_torrent.cpp:860,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:865,1
    - Dst: entry*::dict
      Src: /src/libtorrent/src/create_torrent.cpp:870,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:875,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:880,1
    - Dst: mtime
      Src: /src/libtorrent/src/create_torrent.cpp:880,1
    - Dst: file_flags
      Src: /src/libtorrent/src/create_torrent.cpp:882,1
    - Dst: add_file_attrs
      Src: /src/libtorrent/src/create_torrent.cpp:883,1
    - Dst: add_symlink_path
      Src: /src/libtorrent/src/create_torrent.cpp:887,1
    - Dst: internal_symlink
      Src: /src/libtorrent/src/create_torrent.cpp:887,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:891,1
    - Dst: file_size
      Src: /src/libtorrent/src/create_torrent.cpp:893,1
    - Dst: piece_length
      Src: /src/libtorrent/src/create_torrent.cpp:899,1
    - Dst: string
      Src: /src/libtorrent/src/create_torrent.cpp:903,1
    - Dst: std::string::append
      Src: /src/libtorrent/src/create_torrent.cpp:906,1
    - Dst: data
      Src: /src/libtorrent/src/create_torrent.cpp:906,1
    - Dst: size
      Src: /src/libtorrent/src/create_torrent.cpp:906,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 142
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 910
    functionName: libtorrent::create_torrent::generate
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - to_string
    - auto::first::empty
    - std::move
    - append
    - test_piece_size
    - empty
    - file_size
    - entry*::dict
    - std::pair<string_view, string_view>
    - emplace_back
    - reinterpret_cast<const char*>
    - data
    - aux::throw_ex<system_error>
    - list
    - front
    - file_path
    - has_parent_path
    - validate_v2_hashes
    - clear
    - type
    - file_range
    - sha1_hash
    - file_flags
    - total_size
    - add_symlink_path
    - lsplit_path
    - std::string::append
    - files
    - num_files
    - merkle_pad
    - TORRENT_ASSERT
    - entry::list_type::emplace_back
    - reserve
    - add_file_attrs
    - entry::list_type::clear
    - validate_v1_hashes
    - merkle_root
    - size
    - string
    - name
    - mtime
    - dict
    - piece_length
    - internal_symlink
    - resize
    linkageType: ''
    returnType: entry
    signature: entry create_torrent::generate() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_view::empty
      Src: /src/libtorrent/src/create_torrent.cpp:914,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/create_torrent.cpp:916,1
    - Dst: begin
      Src: /src/libtorrent/src/create_torrent.cpp:916,1
    - Dst: end
      Src: /src/libtorrent/src/create_torrent.cpp:916,1
    - Dst: end
      Src: /src/libtorrent/src/create_torrent.cpp:918,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:919,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/src/create_torrent.cpp:919,1
    - Dst: std::sort
      Src: /src/libtorrent/src/create_torrent.cpp:921,1
    - Dst: begin
      Src: /src/libtorrent/src/create_torrent.cpp:921,1
    - Dst: end
      Src: /src/libtorrent/src/create_torrent.cpp:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - url
    - tier
    argTypes:
    - string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 924
    functionName: libtorrent::create_torrent::add_tracker
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - begin
    - end
    - string_view::empty
    - string_view::to_string
    - emplace_back
    - std::sort
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_tracker(string_view url, int const tier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/libtorrent/src/create_torrent.cpp:928,1
    - Dst: string_view::data
      Src: /src/libtorrent/src/create_torrent.cpp:928,1
    - Dst: string_view::size
      Src: /src/libtorrent/src/create_torrent.cpp:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 929
    functionName: libtorrent::create_torrent::set_root_cert
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - string_view::size
    - assign
    - string_view::data
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_root_cert(string_view cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ih
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 934
    functionName: libtorrent::create_torrent::add_similar_torrent
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_similar_torrent(sha1_hash ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 939
    functionName: libtorrent::create_torrent::add_collection
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_collection(string_view c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:944,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:946,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:947,1
    - Dst: num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:947,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:949,1
    - Dst: piece_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:949,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:950,1
    - Dst: end_index
      Src: /src/libtorrent/src/create_torrent.cpp:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - index
    - ' h'
    argTypes:
    - piece_index_t
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 952
    functionName: libtorrent::create_torrent::set_hash
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - aux::throw_ex<system_error>
    - empty
    - TORRENT_ASSERT_PRECOND
    - num_pieces
    - resize
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_hash(piece_index_t index, sha1_hash const&
      h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:956,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:956,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:957,1
    - Dst: end_file
      Src: /src/libtorrent/src/create_torrent.cpp:957,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:958,1
    - Dst: piece_index_t::diff_type
      Src: /src/libtorrent/src/create_torrent.cpp:958,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:959,1
    - Dst: piece_index_t::diff_type
      Src: /src/libtorrent/src/create_torrent.cpp:959,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:959,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:960,1
    - Dst: pad_file_at
      Src: /src/libtorrent/src/create_torrent.cpp:960,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:961,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/create_torrent.cpp:961,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/src/create_torrent.cpp:962,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:962,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/src/create_torrent.cpp:965,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:967,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:968,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:968,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:971,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:972,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/create_torrent.cpp:972,1
    - Dst: file_num_pieces
      Src: /src/libtorrent/src/create_torrent.cpp:972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - file
    - piece
    - ' h'
    argTypes:
    - file_index_t
    - piece_index_t::diff_type
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 974
    functionName: libtorrent::create_torrent::set_hash2
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - file_num_pieces
    - is_all_zeros
    - aux::throw_ex<system_error>
    - piece_index_t::diff_type
    - num_files
    - empty
    - TORRENT_ASSERT_PRECOND
    - end_file
    - resize
    - std::size_t
    - pad_file_at
    - file_index_t
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_hash2(file_index_t file, piece_index_t::diff_type
      piece, sha256_hash const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:979,1
    - Dst: file_index_t
      Src: /src/libtorrent/src/create_torrent.cpp:979,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/create_torrent.cpp:980,1
    - Dst: end_file
      Src: /src/libtorrent/src/create_torrent.cpp:980,1
    - Dst: empty
      Src: /src/libtorrent/src/create_torrent.cpp:981,1
    - Dst: resize
      Src: /src/libtorrent/src/create_torrent.cpp:981,1
    - Dst: num_files
      Src: /src/libtorrent/src/create_torrent.cpp:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - index
    - ' h'
    argTypes:
    - file_index_t
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 983
    functionName: libtorrent::create_torrent::set_file_hash
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - num_files
    - empty
    - TORRENT_ASSERT
    - end_file
    - resize
    - file_index_t
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_file_hash(file_index_t index, sha1_hash const&
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:988,1
    - Dst: std::move
      Src: /src/libtorrent/src/create_torrent.cpp:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - std::pair<std::string, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 989
    functionName: libtorrent::create_torrent::add_node
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_node(std::pair<std::string, int> node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 994
    functionName: libtorrent::create_torrent::add_url_seed
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_url_seed(string_view url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/libtorrent/src/create_torrent.cpp:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 999
    functionName: libtorrent::create_torrent::add_http_seed
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void create_torrent::add_http_seed(string_view url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/create_torrent.cpp:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1005
    functionName: libtorrent::create_torrent::set_comment
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_comment(char const* str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/create_torrent.cpp:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1011
    functionName: libtorrent::create_torrent::set_creator
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_creator(char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timestamp
    argTypes:
    - std::time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1016
    functionName: libtorrent::create_torrent::set_creation_date
    functionSourceFile: /src/libtorrent/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void create_torrent::set_creation_date(std::time_t timestamp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_digit
      Src: /src/libtorrent/src/identify_client.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: decode_digit
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - is_digit
    linkageType: ''
    returnType: int
    signature: int decode_digit(std::uint8_t c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_print
      Src: /src/libtorrent/src/identify_client.cpp:72,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:76,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:80,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:81,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:82,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:83,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:85,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: parse_az_style
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - is_print
    - decode_digit
    - boost::optional<fingerprint>
    linkageType: ''
    returnType: boost::optional<fingerprint>
    signature: boost::optional<fingerprint> parse_az_style(const peer_id& id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_alpha
      Src: /src/libtorrent/src/identify_client.cpp:94,1
    - Dst: is_digit
      Src: /src/libtorrent/src/identify_client.cpp:94,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:95,1
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:97,1
    - Dst: begin
      Src: /src/libtorrent/src/identify_client.cpp:97,1
    - Dst: begin
      Src: /src/libtorrent/src/identify_client.cpp:97,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:101,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:102,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:103,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:104,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:109,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:119,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: parse_shadow_style
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - boost::optional<fingerprint>
    - is_digit
    - decode_digit
    - begin
    - equal
    - is_alpha
    linkageType: ''
    returnType: boost::optional<fingerprint>
    signature: boost::optional<fingerprint> parse_shadow_style(const peer_id& id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/src/identify_client.cpp:127,1
    - Dst: begin
      Src: /src/libtorrent/src/identify_client.cpp:127,1
    - Dst: end
      Src: /src/libtorrent/src/identify_client.cpp:127,1
    - Dst: sscanf
      Src: /src/libtorrent/src/identify_client.cpp:132,1
    - Dst: is_print
      Src: /src/libtorrent/src/identify_client.cpp:134,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:135,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: parse_mainline_style
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - boost::optional<fingerprint>
    - begin
    - is_print
    - sscanf
    - end
    - std::copy
    linkageType: ''
    returnType: boost::optional<fingerprint>
    signature: boost::optional<fingerprint> parse_mainline_style(const peer_id& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - map_entry
    - map_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: compare_id
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare_id(map_entry const& lhs, map_entry const& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/identify_client.cpp:313,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/identify_client.cpp:319,1
    - Dst: compare_id
      Src: /src/libtorrent/src/identify_client.cpp:319,1
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:326,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/identify_client.cpp:334,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/identify_client.cpp:339,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/identify_client.cpp:344,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/identify_client.cpp:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 349
    functionName: lookup
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 11
    functionsReached:
    - std::memcpy
    - aux::numeric_cast<std::size_t>
    - compare_id
    - std::snprintf
    - TORRENT_ASSERT
    - equal
    - std::lower_bound
    linkageType: ''
    returnType: std::string
    signature: std::string lookup(fingerprint const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:353,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/identify_client.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - search
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: find_string
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 32
    functionsReached:
    - equal
    - std::strlen
    linkageType: ''
    returnType: bool
    signature: bool find_string(char const* id, char const* search)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_digit
      Src: /src/libtorrent/src/identify_client.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: decode_digit
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 2
    functionsReached:
    - is_digit
    linkageType: ''
    returnType: int
    signature: int decode_digit(std::uint8_t c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_print
      Src: /src/libtorrent/src/identify_client.cpp:72,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:76,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:80,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:81,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:82,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:83,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:85,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: parse_az_style
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - is_print
    - decode_digit
    - boost::optional<fingerprint>
    linkageType: ''
    returnType: boost::optional<fingerprint>
    signature: boost::optional<fingerprint> parse_az_style(const peer_id& id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_alpha
      Src: /src/libtorrent/src/identify_client.cpp:94,1
    - Dst: is_digit
      Src: /src/libtorrent/src/identify_client.cpp:94,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:95,1
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:97,1
    - Dst: begin
      Src: /src/libtorrent/src/identify_client.cpp:97,1
    - Dst: begin
      Src: /src/libtorrent/src/identify_client.cpp:97,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:101,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:102,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:103,1
    - Dst: decode_digit
      Src: /src/libtorrent/src/identify_client.cpp:104,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:109,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:119,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: parse_shadow_style
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - boost::optional<fingerprint>
    - is_digit
    - decode_digit
    - begin
    - equal
    - is_alpha
    linkageType: ''
    returnType: boost::optional<fingerprint>
    signature: boost::optional<fingerprint> parse_shadow_style(const peer_id& id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/src/identify_client.cpp:127,1
    - Dst: begin
      Src: /src/libtorrent/src/identify_client.cpp:127,1
    - Dst: end
      Src: /src/libtorrent/src/identify_client.cpp:127,1
    - Dst: sscanf
      Src: /src/libtorrent/src/identify_client.cpp:132,1
    - Dst: is_print
      Src: /src/libtorrent/src/identify_client.cpp:134,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:135,1
    - Dst: boost::optional<fingerprint>
      Src: /src/libtorrent/src/identify_client.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: parse_mainline_style
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - boost::optional<fingerprint>
    - begin
    - is_print
    - sscanf
    - end
    - std::copy
    linkageType: ''
    returnType: boost::optional<fingerprint>
    signature: boost::optional<fingerprint> parse_mainline_style(const peer_id& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - map_entry
    - map_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: compare_id
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare_id(map_entry const& lhs, map_entry const& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/identify_client.cpp:313,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/identify_client.cpp:319,1
    - Dst: compare_id
      Src: /src/libtorrent/src/identify_client.cpp:319,1
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:326,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/identify_client.cpp:334,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/identify_client.cpp:339,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/identify_client.cpp:344,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/identify_client.cpp:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 349
    functionName: lookup
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 11
    functionsReached:
    - std::memcpy
    - aux::numeric_cast<std::size_t>
    - compare_id
    - std::snprintf
    - TORRENT_ASSERT
    - equal
    - std::lower_bound
    linkageType: ''
    returnType: std::string
    signature: std::string lookup(fingerprint const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:353,1
    - Dst: std::strlen
      Src: /src/libtorrent/src/identify_client.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - search
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: find_string
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 32
    functionsReached:
    - equal
    - std::strlen
    linkageType: ''
    returnType: bool
    signature: bool find_string(char const* id, char const* search)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_az_style
      Src: /src/libtorrent/src/identify_client.cpp:366,1
    - Dst: parse_shadow_style
      Src: /src/libtorrent/src/identify_client.cpp:370,1
    - Dst: parse_mainline_style
      Src: /src/libtorrent/src/identify_client.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: libtorrent::client_fingerprint
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - parse_az_style
    - parse_mainline_style
    - parse_shadow_style
    linkageType: ''
    returnType: boost::optional<fingerprint>
    signature: boost::optional<fingerprint> client_fingerprint(peer_id const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/src/identify_client.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: libtorrent::identify_client
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::identify_client_impl
    linkageType: ''
    returnType: std::string
    signature: std::string identify_client(peer_id const& p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/identify_client.cpp:388,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/identify_client.cpp:390,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:398,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:401,1
    - Dst: std::string
      Src: /src/libtorrent/src/identify_client.cpp:402,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:404,1
    - Dst: std::string
      Src: /src/libtorrent/src/identify_client.cpp:407,1
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:409,1
    - Dst: parse_az_style
      Src: /src/libtorrent/src/identify_client.cpp:418,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:419,1
    - Dst: parse_shadow_style
      Src: /src/libtorrent/src/identify_client.cpp:422,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:423,1
    - Dst: parse_mainline_style
      Src: /src/libtorrent/src/identify_client.cpp:426,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:427,1
    - Dst: is_print
      Src: /src/libtorrent/src/identify_client.cpp:435,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::identify_client_impl
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::data
    - is_all_zeros
    - is_print
    - std::string
    - find_string
    - lookup
    - equal
    - parse_az_style
    - parse_mainline_style
    - parse_shadow_style
    linkageType: ''
    returnType: std::string
    signature: std::string identify_client_impl(peer_id const& p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/identify_client.cpp:388,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/identify_client.cpp:390,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:398,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:401,1
    - Dst: std::string
      Src: /src/libtorrent/src/identify_client.cpp:402,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:404,1
    - Dst: std::string
      Src: /src/libtorrent/src/identify_client.cpp:407,1
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:409,1
    - Dst: parse_az_style
      Src: /src/libtorrent/src/identify_client.cpp:418,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:419,1
    - Dst: parse_shadow_style
      Src: /src/libtorrent/src/identify_client.cpp:422,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:423,1
    - Dst: parse_mainline_style
      Src: /src/libtorrent/src/identify_client.cpp:426,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:427,1
    - Dst: is_print
      Src: /src/libtorrent/src/identify_client.cpp:435,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::identify_client_impl
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::data
    - is_all_zeros
    - is_print
    - std::string
    - find_string
    - lookup
    - equal
    - parse_az_style
    - parse_mainline_style
    - parse_shadow_style
    linkageType: ''
    returnType: std::string
    signature: std::string identify_client_impl(peer_id const& p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_az_style
      Src: /src/libtorrent/src/identify_client.cpp:366,1
    - Dst: parse_shadow_style
      Src: /src/libtorrent/src/identify_client.cpp:370,1
    - Dst: parse_mainline_style
      Src: /src/libtorrent/src/identify_client.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: libtorrent::client_fingerprint
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - parse_az_style
    - parse_mainline_style
    - parse_shadow_style
    linkageType: ''
    returnType: boost::optional<fingerprint>
    signature: boost::optional<fingerprint> client_fingerprint(peer_id const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::identify_client_impl
      Src: /src/libtorrent/src/identify_client.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: libtorrent::identify_client
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::identify_client_impl
    linkageType: ''
    returnType: std::string
    signature: std::string identify_client(peer_id const& p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/identify_client.cpp:388,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/identify_client.cpp:390,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:398,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:401,1
    - Dst: std::string
      Src: /src/libtorrent/src/identify_client.cpp:402,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:404,1
    - Dst: std::string
      Src: /src/libtorrent/src/identify_client.cpp:407,1
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:409,1
    - Dst: parse_az_style
      Src: /src/libtorrent/src/identify_client.cpp:418,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:419,1
    - Dst: parse_shadow_style
      Src: /src/libtorrent/src/identify_client.cpp:422,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:423,1
    - Dst: parse_mainline_style
      Src: /src/libtorrent/src/identify_client.cpp:426,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:427,1
    - Dst: is_print
      Src: /src/libtorrent/src/identify_client.cpp:435,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::identify_client_impl
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::data
    - is_all_zeros
    - is_print
    - std::string
    - find_string
    - lookup
    - equal
    - parse_az_style
    - parse_mainline_style
    - parse_shadow_style
    linkageType: ''
    returnType: std::string
    signature: std::string identify_client_impl(peer_id const& p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/src/identify_client.cpp:388,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/identify_client.cpp:390,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:398,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:401,1
    - Dst: std::string
      Src: /src/libtorrent/src/identify_client.cpp:402,1
    - Dst: find_string
      Src: /src/libtorrent/src/identify_client.cpp:404,1
    - Dst: std::string
      Src: /src/libtorrent/src/identify_client.cpp:407,1
    - Dst: equal
      Src: /src/libtorrent/src/identify_client.cpp:409,1
    - Dst: parse_az_style
      Src: /src/libtorrent/src/identify_client.cpp:418,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:419,1
    - Dst: parse_shadow_style
      Src: /src/libtorrent/src/identify_client.cpp:422,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:423,1
    - Dst: parse_mainline_style
      Src: /src/libtorrent/src/identify_client.cpp:426,1
    - Dst: lookup
      Src: /src/libtorrent/src/identify_client.cpp:427,1
    - Dst: is_print
      Src: /src/libtorrent/src/identify_client.cpp:435,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 438
    functionName: libtorrent::aux::identify_client_impl
    functionSourceFile: /src/libtorrent/src/identify_client.cpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::data
    - is_all_zeros
    - is_print
    - std::string
    - find_string
    - lookup
    - equal
    - parse_az_style
    - parse_mainline_style
    - parse_shadow_style
    linkageType: ''
    returnType: std::string
    signature: std::string identify_client_impl(peer_id const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: operator()(ssl_stream<T> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(ssl_stream<T> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: operator()(T const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(T const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: aux::is_ssl
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    linkageType: ''
    returnType: bool
    signature: bool is_ssl(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<utp_stream>
      Src: /src/libtorrent/src/socket_type.cpp:87,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/socket_type.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: aux::is_utp
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - boost::get<utp_stream>
    - boost::get<ssl_stream<utp_stream>>
    linkageType: ''
    returnType: bool
    signature: bool is_utp(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/socket_type.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: aux::is_i2p
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - boost::get<i2p_stream>
    linkageType: ''
    returnType: bool
    signature: bool is_i2p(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: operator()(tcp::socket const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(tcp::socket const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: operator()(socks5_stream const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(socks5_stream const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: operator()(http_stream const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(http_stream const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator()(utp_stream const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(utp_stream const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: operator()(i2p_stream const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(i2p_stream const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: operator()(ssl_stream<tcp::socket> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(ssl_stream<tcp::socket> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: operator()(ssl_stream<socks5_stream> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(ssl_stream<socks5_stream> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: operator()(ssl_stream<http_stream> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(ssl_stream<http_stream> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(ssl_stream<utp_stream> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(ssl_stream<utp_stream> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: aux::socket_type_idx
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t socket_type_idx(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::socket_type_name
      Src: /src/libtorrent/src/socket_type.cpp:124,1
    - Dst: aux::socket_type_idx
      Src: /src/libtorrent/src/socket_type.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: aux::socket_type_name
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - aux::socket_type_idx
    - aux::socket_type_name
    linkageType: ''
    returnType: char
    signature: char * socket_type_name(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/src/socket_type.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<utp_stream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: operator()(ssl_stream<utp_stream>& s) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void operator()(ssl_stream<utp_stream>& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::set_close_reason
      Src: /src/libtorrent/src/socket_type.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - utp_stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: operator()(utp_stream& s) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - aux::set_close_reason
    linkageType: ''
    returnType: void
    signature: void operator()(utp_stream& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: operator()(T const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(T const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - code
    argTypes:
    - socket_type
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: aux::set_close_reason
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - boost::apply_visitor
    linkageType: ''
    returnType: void
    signature: void set_close_reason(socket_type& s, close_reason_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/src/socket_type.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<utp_stream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: operator()(ssl_stream<utp_stream> const& s) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t operator()(ssl_stream<utp_stream> const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::get_close_reason
      Src: /src/libtorrent/src/socket_type.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - utp_stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: operator()(utp_stream const& s) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - aux::get_close_reason
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t operator()(utp_stream const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: operator()(T const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t operator()(T const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: aux::get_close_reason
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - boost::apply_visitor
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t get_close_reason(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - h
    - ' ec'
    argTypes:
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: aux::set_ssl_hostname_visitor
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ssl_hostname_visitor(char const* h, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_verify_callback
      Src: /src/libtorrent/src/socket_type.cpp:167,1
    - Dst: boost::asio::gnutls::host_name_verification::host_name_verification
      Src: /src/libtorrent/src/socket_type.cpp:167,1
    - Dst: handle
      Src: /src/libtorrent/src/socket_type.cpp:168,1
    - Dst: context_handle
      Src: /src/libtorrent/src/socket_type.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: operator()(ssl_stream<T>& s)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - handle
    - context_handle
    - set_verify_callback
    - boost::asio::gnutls::host_name_verification::host_name_verification
    linkageType: ''
    returnType: void
    signature: void operator()(ssl_stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: operator()(T&)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(T&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/src/socket_type.cpp:187,1
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:188,1
    - Dst: libtorrent::ssl::set_server_name_callback
      Src: /src/libtorrent/src/socket_type.cpp:191,1
    - Dst: libtorrent::ssl::set_host_name
      Src: /src/libtorrent/src/socket_type.cpp:194,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/socket_type.cpp:196,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/socket_type.cpp:197,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/socket_type.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' s'
    - ' hostname'
    - ' ec'
    argTypes:
    - socket_type
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 200
    functionName: aux::setup_ssl_hostname
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    - c_str
    - libtorrent::ssl::set_server_name_callback
    - libtorrent::ssl::set_host_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void setup_ssl_hostname(socket_type& s, std::string const& hostname,
      error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/socket_type.cpp:209,1
    - Dst: std::make_shared<deadline_timer>
      Src: /src/libtorrent/src/socket_type.cpp:210,1
    - Dst: expires_after
      Src: /src/libtorrent/src/socket_type.cpp:213,1
    - Dst: seconds
      Src: /src/libtorrent/src/socket_type.cpp:213,1
    - Dst: async_wait
      Src: /src/libtorrent/src/socket_type.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ioc'
    - holder
    - s
    argTypes:
    - io_context
    - std::shared_ptr<void>
    - socket_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: aux::socket_closer
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - async_wait
    - std::move
    - seconds
    - std::make_shared<deadline_timer>
    - expires_after
    linkageType: ''
    returnType: void
    signature: "void socket_closer(io_context& ioc\n\t\t\t, std::shared_ptr<void>
      holder\n\t\t\t, socket_type* s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/socket_type.cpp:219,1
    - Dst: close
      Src: /src/libtorrent/src/socket_type.cpp:221,1
    - Dst: cancel
      Src: /src/libtorrent/src/socket_type.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: operator()(error_code const&)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - COMPLETE_ASYNC
    - close
    - cancel
    linkageType: ''
    returnType: void
    signature: void operator()(error_code const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/socket_type.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - socket_type*
    - std::shared_ptr<void>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: aux::issue_async_shutdown_visitor
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void issue_async_shutdown_visitor(socket_type* s, std::shared_ptr<void>
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/socket_type.cpp:240,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/socket_type.cpp:241,1
    - Dst: aux::async_shutdown
      Src: /src/libtorrent/src/socket_type.cpp:242,1
    - Dst: aux::socket_closer
      Src: /src/libtorrent/src/socket_type.cpp:242,1
    - Dst: static_cast<io_context&>
      Src: /src/libtorrent/src/socket_type.cpp:242,1
    - Dst: get_executor
      Src: /src/libtorrent/src/socket_type.cpp:242,1
    - Dst: std::move
      Src: /src/libtorrent/src/socket_type.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: operator()(ssl_stream<T>& s)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - aux::async_shutdown
    - aux::socket_closer
    - std::move
    - static_cast<io_context&>
    - get_executor
    linkageType: ''
    returnType: void
    signature: void operator()(ssl_stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/socket_type.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: operator()(T& s)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void operator()(T& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:261,1
    - Dst: std::move
      Src: /src/libtorrent/src/socket_type.cpp:261,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/socket_type.cpp:263,1
    - Dst: close
      Src: /src/libtorrent/src/socket_type.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' s'
    - holder
    argTypes:
    - socket_type
    - std::shared_ptr<void>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: aux::async_shutdown
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - close
    - boost::apply_visitor
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void async_shutdown(socket_type& s, std::shared_ptr<void> holder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: operator()(ssl_stream<T> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(ssl_stream<T> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: operator()(T const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(T const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: aux::is_ssl
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    linkageType: ''
    returnType: bool
    signature: bool is_ssl(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<utp_stream>
      Src: /src/libtorrent/src/socket_type.cpp:87,1
    - Dst: boost::get<ssl_stream<utp_stream>>
      Src: /src/libtorrent/src/socket_type.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: aux::is_utp
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - boost::get<utp_stream>
    - boost::get<ssl_stream<utp_stream>>
    linkageType: ''
    returnType: bool
    signature: bool is_utp(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::get<i2p_stream>
      Src: /src/libtorrent/src/socket_type.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: aux::is_i2p
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - boost::get<i2p_stream>
    linkageType: ''
    returnType: bool
    signature: bool is_i2p(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: operator()(tcp::socket const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(tcp::socket const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: operator()(socks5_stream const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(socks5_stream const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: operator()(http_stream const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(http_stream const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: operator()(utp_stream const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(utp_stream const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: operator()(i2p_stream const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(i2p_stream const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: operator()(ssl_stream<tcp::socket> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(ssl_stream<tcp::socket> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: operator()(ssl_stream<socks5_stream> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(ssl_stream<socks5_stream> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: operator()(ssl_stream<http_stream> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(ssl_stream<http_stream> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator()(ssl_stream<utp_stream> const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t operator()(ssl_stream<utp_stream> const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: aux::socket_type_idx
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - boost::apply_visitor
    linkageType: ''
    returnType: socket_type_t
    signature: socket_type_t socket_type_idx(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::socket_type_name
      Src: /src/libtorrent/src/socket_type.cpp:124,1
    - Dst: aux::socket_type_idx
      Src: /src/libtorrent/src/socket_type.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: aux::socket_type_name
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 2
    functionsReached:
    - aux::socket_type_idx
    - aux::socket_type_name
    linkageType: ''
    returnType: char
    signature: char * socket_type_name(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/src/socket_type.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<utp_stream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: operator()(ssl_stream<utp_stream>& s) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void operator()(ssl_stream<utp_stream>& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_close_reason
      Src: /src/libtorrent/src/socket_type.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - utp_stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: operator()(utp_stream& s) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - set_close_reason
    linkageType: ''
    returnType: void
    signature: void operator()(utp_stream& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: operator()(T const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(T const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - code
    argTypes:
    - socket_type
    - close_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: aux::set_close_reason
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - boost::apply_visitor
    linkageType: ''
    returnType: void
    signature: void set_close_reason(socket_type& s, close_reason_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/src/socket_type.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<utp_stream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: operator()(ssl_stream<utp_stream> const& s) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t operator()(ssl_stream<utp_stream> const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_close_reason
      Src: /src/libtorrent/src/socket_type.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - utp_stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: operator()(utp_stream const& s) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - get_close_reason
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t operator()(utp_stream const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: operator()(T const&) const
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t operator()(T const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: aux::get_close_reason
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - boost::apply_visitor
    linkageType: ''
    returnType: close_reason_t
    signature: close_reason_t get_close_reason(socket_type const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - h
    - ' ec'
    argTypes:
    - char*
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: aux::set_ssl_hostname_visitor
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ssl_hostname_visitor(char const* h, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_verify_callback
      Src: /src/libtorrent/src/socket_type.cpp:167,1
    - Dst: boost::asio::gnutls::host_name_verification::host_name_verification
      Src: /src/libtorrent/src/socket_type.cpp:167,1
    - Dst: handle
      Src: /src/libtorrent/src/socket_type.cpp:168,1
    - Dst: context_handle
      Src: /src/libtorrent/src/socket_type.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: operator()(ssl_stream<T>& s)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - handle
    - context_handle
    - set_verify_callback
    - boost::asio::gnutls::host_name_verification::host_name_verification
    linkageType: ''
    returnType: void
    signature: void operator()(ssl_stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: operator()(T&)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator()(T&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/src/socket_type.cpp:187,1
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:188,1
    - Dst: libtorrent::ssl::set_server_name_callback
      Src: /src/libtorrent/src/socket_type.cpp:191,1
    - Dst: libtorrent::ssl::set_host_name
      Src: /src/libtorrent/src/socket_type.cpp:194,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/socket_type.cpp:196,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/socket_type.cpp:197,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/socket_type.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' s'
    - ' hostname'
    - ' ec'
    argTypes:
    - socket_type
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 200
    functionName: aux::setup_ssl_hostname
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - boost::apply_visitor
    - c_str
    - libtorrent::ssl::set_server_name_callback
    - libtorrent::ssl::set_host_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void setup_ssl_hostname(socket_type& s, std::string const& hostname,
      error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/socket_type.cpp:209,1
    - Dst: std::make_shared<deadline_timer>
      Src: /src/libtorrent/src/socket_type.cpp:210,1
    - Dst: expires_after
      Src: /src/libtorrent/src/socket_type.cpp:213,1
    - Dst: seconds
      Src: /src/libtorrent/src/socket_type.cpp:213,1
    - Dst: async_wait
      Src: /src/libtorrent/src/socket_type.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' ioc'
    - holder
    - s
    argTypes:
    - io_context
    - std::shared_ptr<void>
    - socket_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: aux::socket_closer
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - async_wait
    - std::move
    - seconds
    - std::make_shared<deadline_timer>
    - expires_after
    linkageType: ''
    returnType: void
    signature: "void socket_closer(io_context& ioc\n\t\t\t, std::shared_ptr<void>
      holder\n\t\t\t, socket_type* s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/socket_type.cpp:219,1
    - Dst: close
      Src: /src/libtorrent/src/socket_type.cpp:221,1
    - Dst: cancel
      Src: /src/libtorrent/src/socket_type.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: operator()(error_code const&)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - COMPLETE_ASYNC
    - close
    - cancel
    linkageType: ''
    returnType: void
    signature: void operator()(error_code const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/socket_type.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - socket_type*
    - std::shared_ptr<void>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: aux::issue_async_shutdown_visitor
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void issue_async_shutdown_visitor(socket_type* s, std::shared_ptr<void>
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/socket_type.cpp:240,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/socket_type.cpp:241,1
    - Dst: async_shutdown
      Src: /src/libtorrent/src/socket_type.cpp:242,1
    - Dst: socket_closer
      Src: /src/libtorrent/src/socket_type.cpp:242,1
    - Dst: static_cast<io_context&>
      Src: /src/libtorrent/src/socket_type.cpp:242,1
    - Dst: get_executor
      Src: /src/libtorrent/src/socket_type.cpp:242,1
    - Dst: std::move
      Src: /src/libtorrent/src/socket_type.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - ssl_stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: operator()(ssl_stream<T>& s)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::move
    - static_cast<io_context&>
    - get_executor
    - socket_closer
    - async_shutdown
    linkageType: ''
    returnType: void
    signature: void operator()(ssl_stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libtorrent/src/socket_type.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: operator()(T& s)
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void operator()(T& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::apply_visitor
      Src: /src/libtorrent/src/socket_type.cpp:261,1
    - Dst: std::move
      Src: /src/libtorrent/src/socket_type.cpp:261,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/socket_type.cpp:263,1
    - Dst: close
      Src: /src/libtorrent/src/socket_type.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' s'
    - holder
    argTypes:
    - socket_type
    - std::shared_ptr<void>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: aux::async_shutdown
    functionSourceFile: /src/libtorrent/src/socket_type.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - close
    - boost::apply_visitor
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void async_shutdown(socket_type& s, std::shared_ptr<void> holder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: get_stats_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:74,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:75,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' dht'
    - ' c'
    argTypes:
    - node
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::add_dht_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_stats_counters
    - inc_stats_counter
    - std::tie
    linkageType: ''
    returnType: void
    signature: void add_dht_counters(node const& dht, counters& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' v1'
    - ' v2'
    argTypes:
    - std::vector<udp::endpoint>
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::concat
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - libtorrent::dht::end
    - libtorrent::dht::begin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: "std::vector<udp::endpoint> concat(std::vector<udp::endpoint> const&
      v1\n\t\t, std::vector<udp::endpoint> const& v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: get_stats_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:74,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:75,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' dht'
    - ' c'
    argTypes:
    - node
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::add_dht_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_stats_counters
    - inc_stats_counter
    - std::tie
    linkageType: ''
    returnType: void
    signature: void add_dht_counters(node const& dht, counters& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' v1'
    - ' v2'
    argTypes:
    - std::vector<udp::endpoint>
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::concat
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - libtorrent::dht::end
    - libtorrent::dht::begin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: "std::vector<udp::endpoint> concat(std::vector<udp::endpoint> const&
      v1\n\t\t, std::vector<udp::endpoint> const& v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:100,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:101,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:108,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:109,1
    - Dst: set_block_timer
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:112,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:112,1
    - Dst: set_rate_limit
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:113,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 7
    argNames:
    - observer
    - ' ios'
    - send_fun
    - ' settings'
    - ' cnt'
    - ' storage'
    - ' state'
    argTypes:
    - dht_observer*
    - io_context
    - send_fun_t
    - aux::session_settings
    - counters
    - dht_storage_interface
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::dht_tracker::dht_tracker
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - set_block_timer
    - std::move
    - get_int
    - set_rate_limit
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::dht_tracker(dht_observer* observer\n\t\t, io_context&
      ios\n\t\t, send_fun_t send_fun\n\t\t, aux::session_settings const& settings\n\t\t,
      counters& cnt\n\t\t, dht_storage_interface& storage\n\t\t, dht_state&& state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:118,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:119,1
    - Dst: auto::second::dht::update_node_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:120,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: libtorrent::dht::dht_tracker::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - auto::second::dht::update_node_id
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_node_id(aux::listen_socket_handle const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:126,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:129,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:129,1
    - Dst: emplace
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::piecewise_construct_t
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:133,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:135,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:138,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:141,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:143,1
    - Dst: address::to_string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:144,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:145,1
    - Dst: auto::first::second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:145,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:151,1
    - Dst: auto::first::second::connection_timer::expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:152,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:152,1
    - Dst: auto::first::second::connection_timer::async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:153,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:154,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:154,1
    - Dst: auto::first::second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:155,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 157
    functionName: libtorrent::dht::dht_tracker::new_socket
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - auto::first::second::dht::bootstrap
    - seconds
    - self
    - ADD_OUTSTANDING_ASYNC
    - get_local_endpoint
    - emplace
    - std::piecewise_construct_t
    - log
    - auto::first::second::connection_timer::async_wait
    - libtorrent::aux::to_hex
    - node_id
    - auto::first::second::dht::nid
    - nids::end
    - address::to_string
    - find_data::nodes_callback
    - std::find_if
    - std::bind
    - std::forward_as_tuple
    - nids::begin
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - auto::first::second::connection_timer::expires_after
    - should_log
    linkageType: ''
    returnType: void
    signature: void dht_tracker::new_socket(aux::listen_socket_handle const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:162,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:164,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:165,1
    - Dst: address::to_string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:166,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:169,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: libtorrent::dht::dht_tracker::delete_socket
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_local_endpoint
    - erase
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - log
    - address::to_string
    - should_log
    linkageType: ''
    returnType: void
    signature: void dht_tracker::delete_socket(aux::listen_socket_handle const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:178,1
    - Dst: libtorrent::dht::dht_tracker::refresh_key
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:179,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:183,1
    - Dst: second::connection_timer::expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:184,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:184,1
    - Dst: second::connection_timer::async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:185,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:186,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:186,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:187,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:187,1
    - Dst: second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:188,1
    - Dst: concat
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:188,1
    - Dst: second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:190,1
    - Dst: concat
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:190,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:193,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:194,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:194,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - find_data::nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: libtorrent::dht::dht_tracker::start
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - second::dht::bootstrap
    - second::connection_timer::expires_after
    - libtorrent::aux::is_v6
    - async_wait
    - seconds
    - expires_after
    - first::get_local_endpoint
    - self
    - concat
    - libtorrent::dht::dht_tracker::refresh_key
    - clear
    - second::connection_timer::async_wait
    linkageType: ''
    returnType: void
    signature: void dht_tracker::start(find_data::nodes_callback const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:203,1
    - Dst: second::connection_timer::cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:205,1
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:206,1
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: libtorrent::dht::dht_tracker::stop
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::connection_timer::cancel
    - cancel
    linkageType: ''
    returnType: void
    signature: void dht_tracker::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_torrents
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:213,1
    - Dst: active_requests::clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:218,1
    - Dst: second::dht::status
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: libtorrent::dht::dht_tracker::dht_status
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::status
    - active_requests::clear
    - num_torrents
    linkageType: ''
    returnType: void
    signature: void dht_tracker::dht_status(session_status& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:230,1
    - Dst: second::dht::status
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: libtorrent::dht::dht_tracker::dht_status
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - second::dht::status
    linkageType: ''
    returnType: std::vector<lt::dht::dht_status>
    signature: std::vector<lt::dht::dht_status> dht_tracker::dht_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:236,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:237,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:238,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:239,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:240,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:242,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:243,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:244,1
    - Dst: add_dht_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 248
    functionName: libtorrent::dht::dht_tracker::update_stats_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - counters
    - set_value
    - add_dht_counters
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_stats_counters(counters& c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:252,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:255,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:258,1
    - Dst: dht::connection_timeout
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:261,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:263,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:264,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' e'
    argTypes:
    - aux::listen_socket_handle
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 266
    functionName: libtorrent::dht::dht_tracker::connection_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - end
    - find
    - expires_after
    - self
    - dht::connection_timeout
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void dht_tracker::connection_timeout(aux::listen_socket_handle const&
      s, error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:270,1
    - Dst: second::dht::tick
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:274,1
    - Dst: set_block_timer
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:277,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:277,1
    - Dst: set_rate_limit
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:278,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:278,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:280,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:280,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:281,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:282,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:283,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: libtorrent::dht::dht_tracker::refresh_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - set_block_timer
    - async_wait
    - seconds
    - expires_after
    - get_int
    - set_rate_limit
    - self
    - COMPLETE_ASYNC
    - second::dht::tick
    linkageType: ''
    returnType: void
    signature: void dht_tracker::refresh_timeout(error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:288,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:291,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:292,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: second::dht::new_write_key
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:296,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:299,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 302
    functionName: libtorrent::dht::dht_tracker::refresh_key
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - second::dht::new_write_key
    - expires_after
    - log
    - self
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void dht_tracker::refresh_key(error_code const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:308,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:308,1
    - Dst: update_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: libtorrent::dht::dht_tracker::update_storage_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 3
    functionsReached:
    - std::vector::push_back
    - second::dht::nid
    - update_node_ids
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_storage_node_ids()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:314,1
    - Dst: second::dht::protocol_family_name
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' id'
    - ' family_name'
    argTypes:
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 323
    functionName: libtorrent::dht::dht_tracker::get_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::protocol_family_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: node
    signature: node * dht_tracker::get_node(node_id const& id, std::string const&
      family_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::get_peers
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' ih'
    - f
    argTypes:
    - sha1_hash
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: libtorrent::dht::dht_tracker::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_peers
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_peers(sha1_hash const& ih\n\t\t, std::function<void(std::vector<tcp::endpoint>
      const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::announce
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' ih'
    - listen_port
    - flags
    - f
    argTypes:
    - sha1_hash
    - int
    - announce_flags_t
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: libtorrent::dht::dht_tracker::announce
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::announce
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::announce(sha1_hash const& ih, int listen_port\n\t\t,
      announce_flags_t const flags\n\t\t, std::function<void(std::vector<tcp::endpoint>
      const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: first::get_external_address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: second::dht::sample_infohashes
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' target'
    - f
    argTypes:
    - udp::endpoint
    - sha1_hash
    - "std::function<void(node_id\n\t\t\t, time_duration\n\t\t\t, int, std::vector<sha1_hash>\n\t\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: libtorrent::dht::dht_tracker::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - rand_v4
    - rand_v6
    - second::dht::sample_infohashes
    - first::get_external_address
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::sample_infohashes(udp::endpoint const& ep, sha1_hash
      const& target\n\t\t, std::function<void(node_id\n\t\t\t, time_duration\n\t\t\t,
      int, std::vector<sha1_hash>\n\t\t\t, std::vector<std::pair<sha1_hash, udp::endpoint>>)>
      f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: libtorrent::dht::get_immutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:377,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' it'
    - ctx
    - f
    argTypes:
    - item
    - std::shared_ptr<get_immutable_item_ctx>
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: libtorrent::dht::get_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    linkageType: ''
    returnType: void
    signature: "void get_immutable_item_callback(item const& it\n\t\t, std::shared_ptr<get_immutable_item_ctx>
      ctx\n\t\t, std::function<void(item const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::dht::get_mutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_ctx(int traversals)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:401,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' it'
    - authoritative
    - ctx
    - f
    argTypes:
    - item
    - bool
    - std::shared_ptr<get_mutable_item_ctx>
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: libtorrent::dht::get_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<get_mutable_item_ctx>::it::empty
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    - TORRENT_ASSERT
    - std::shared_ptr<get_mutable_item_ctx>::it::seq
    - libtorrent::dht::seq
    linkageType: ''
    returnType: void
    signature: "void get_mutable_item_callback(item const& it, bool authoritative\n\t\t,
      std::shared_ptr<get_mutable_item_ctx> ctx\n\t\t, std::function<void(item const&,
      bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::dht::put_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - responses
    - ctx
    - f
    argTypes:
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::put_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item_callback(int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(int)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' it'
    - responses
    - ctx
    - cb
    argTypes:
    - item
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(item const&, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: libtorrent::dht::put_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item_callback(item const& it, int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(item const&, int)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: libtorrent::dht::get_immutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:377,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' it'
    - ctx
    - f
    argTypes:
    - item
    - std::shared_ptr<get_immutable_item_ctx>
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: libtorrent::dht::get_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    linkageType: ''
    returnType: void
    signature: "void get_immutable_item_callback(item const& it\n\t\t, std::shared_ptr<get_immutable_item_ctx>
      ctx\n\t\t, std::function<void(item const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::dht::get_mutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_ctx(int traversals)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:401,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' it'
    - authoritative
    - ctx
    - f
    argTypes:
    - item
    - bool
    - std::shared_ptr<get_mutable_item_ctx>
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: libtorrent::dht::get_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<get_mutable_item_ctx>::it::empty
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    - TORRENT_ASSERT
    - std::shared_ptr<get_mutable_item_ctx>::it::seq
    - libtorrent::dht::seq
    linkageType: ''
    returnType: void
    signature: "void get_mutable_item_callback(item const& it, bool authoritative\n\t\t,
      std::shared_ptr<get_mutable_item_ctx> ctx\n\t\t, std::function<void(item const&,
      bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::dht::put_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - responses
    - ctx
    - f
    argTypes:
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::put_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item_callback(int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(int)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' it'
    - responses
    - ctx
    - cb
    argTypes:
    - item
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(item const&, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: libtorrent::dht::put_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item_callback(item const& it, int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(item const&, int)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<get_immutable_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:439,1
    - Dst: second::dht::get_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:441,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - cb
    argTypes:
    - sha1_hash
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 442
    functionName: libtorrent::dht::dht_tracker::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_item
    - std::bind
    - size
    - std::make_shared<get_immutable_item_ctx>
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_item(sha1_hash const& target\n\t\t, std::function<void(item
      const&)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<get_mutable_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:450,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:450,1
    - Dst: second::dht::get_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' key'
    - cb
    - salt
    argTypes:
    - public_key
    - std::function<void(item const&, bool)>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 453
    functionName: libtorrent::dht::dht_tracker::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_item
    - std::bind
    - size
    - std::make_shared<get_mutable_item_ctx>
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_item(public_key const& key\n\t\t, std::function<void(item
      const&, bool)> cb\n\t\t, std::string salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:459,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:459,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:460,1
    - Dst: std::make_shared<put_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:462,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:462,1
    - Dst: second::dht::put_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:464,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' data'
    - cb
    argTypes:
    - entry
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 466
    functionName: libtorrent::dht::dht_tracker::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - item_target_id
    - std::make_shared<put_item_ctx>
    - std::bind
    - second::dht::put_item
    - std::back_inserter
    - size
    - bencode
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::put_item(entry const& data\n\t\t, std::function<void(int)>
      cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<put_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:472,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:472,1
    - Dst: second::dht::put_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:474,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' key'
    - cb
    - data_cb
    - salt
    argTypes:
    - public_key
    - std::function<void(item const&, int)>
    - std::function<void(item&)>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: libtorrent::dht::dht_tracker::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<put_item_ctx>
    - second::dht::put_item
    - std::bind
    - size
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::put_item(public_key const& key\n\t\t, std::function<void(item
      const&, int)> cb\n\t\t, std::function<void(item&)> data_cb, std::string salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: first::get_external_address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: second::dht::direct_request
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - f
    argTypes:
    - udp::endpoint
    - entry
    - std::function<void(msg const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: libtorrent::dht::dht_tracker::direct_request
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - rand_v4
    - rand_v6
    - second::dht::direct_request
    - first::get_external_address
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::direct_request(udp::endpoint const& ep, entry& e\n\t\t,
      std::function<void(msg const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:496,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:496,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:497,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:497,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:498,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:498,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:499,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:499,1
    - Dst: second::dht::unreachable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 2
    argNames:
    - ' ec'
    - ' ep'
    argTypes:
    - error_code
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 506
    functionName: libtorrent::dht::dht_tracker::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::unreachable
    - error_code
    - system_category
    linkageType: ''
    returnType: void
    signature: void dht_tracker::incoming_error(error_code const& ec, udp::endpoint
      const& ep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:511,1
    - Dst: span<char const>::front
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:513,1
    - Dst: span<char const>::back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:514,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:516,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:518,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:519,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:520,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:522,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:522,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:524,1
    - Dst: std::find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:533,1
    - Dst: incoming
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:540,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:544,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:551,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:553,1
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:558,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:560,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:562,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:569,1
    - Dst: second::dht::incoming
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - ' s'
    - ' ep'
    - buf
    argTypes:
    - aux::listen_socket_handle
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 576
    functionName: libtorrent::dht::dht_tracker::incoming_packet
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::front
    - libtorrent::aux::is_v6
    - span<char const>::size
    - get_bool
    - bdecode
    - std::begin
    - std::find
    - inc_stats_counter
    - type
    - address
    - time_now
    - libtorrent::aux::is_v4
    - std::end
    - TORRENT_ASSERT
    - log_packet
    - span<char const>::back
    - span<char const>::data
    - incoming
    - second::dht::incoming
    linkageType: ''
    returnType: bool
    signature: "bool dht_tracker::incoming_packet(aux::listen_socket_handle const&
      s\n\t\t, udp::endpoint const& ep, span<char const> const buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - ' ios'
    - ' s'
    - sock
    - ' settings'
    - ' nid'
    - observer
    - ' cnt'
    - get_foreign_node
    - ' storage'
    argTypes:
    - io_context
    - aux::listen_socket_handle
    - socket_manager*
    - aux::session_settings
    - node_id
    - dht_observer*
    - counters
    - get_foreign_node_t
    - dht_storage_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: "dht_tracker::tracker_node::tracker_node(io_context& ios\n\t\t,
      aux::listen_socket_handle const& s, socket_manager* sock\n\t\t, aux::session_settings
      const& settings\n\t\t, node_id const& nid\n\t\t, dht_observer* observer, counters&
      cnt\n\t\t, get_foreign_node_t get_foreign_node\n\t\t, dht_storage_interface&
      storage)"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::tracker_node::tracker_node(io_context& ios\n\t\t,
      aux::listen_socket_handle const& s, socket_manager* sock\n\t\t, aux::session_settings
      const& settings\n\t\t, node_id const& nid\n\t\t, dht_observer* observer, counters&
      cnt\n\t\t, get_foreign_node_t get_foreign_node\n\t\t, dht_storage_interface&
      storage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:594,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:596,1
    - Dst: auto::second::dht::m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: libtorrent::dht::dht_tracker::live_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::nid
    - begin
    - std::vector::emplace_back
    - end
    - auto::second::dht::m_table::for_each_node
    - std::find_if
    linkageType: ''
    returnType: std::vector<std::pair<node_id, udp::endpoint>>
    signature: std::vector<std::pair<node_id, udp::endpoint>> dht_tracker::live_nodes(node_id
      const& nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:611,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' dht'
    argTypes:
    - node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - m_table::for_each_node
    - libtorrent::dht::ep
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: std::vector<udp::endpoint> save_nodes(node const& dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:611,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' dht'
    argTypes:
    - node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - m_table::for_each_node
    - libtorrent::dht::ep
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: std::vector<udp::endpoint> save_nodes(node const& dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_state::nids::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: save_nodes
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:627,1
    - Dst: dht_state::nodes::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: dht_state::nodes::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: auto::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 631
    functionName: libtorrent::dht::dht_tracker::state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - dht_state::nodes::end
    - dht_state::nodes::insert
    - save_nodes
    - first::get_local_endpoint
    - auto::end
    - dht_state::nids::emplace_back
    - auto::begin
    - second::dht::nid
    linkageType: ''
    returnType: dht_state
    signature: dht_state dht_tracker::state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::add_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: libtorrent::dht::dht_tracker::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::add_node
    linkageType: ''
    returnType: void
    signature: void dht_tracker::add_node(udp::endpoint const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::add_router_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: libtorrent::dht::dht_tracker::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::add_router_node
    linkageType: ''
    returnType: void
    signature: void dht_tracker::add_router_node(udp::endpoint const& node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:647,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:651,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:656,1
    - Dst: microseconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:657,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:657,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:659,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:663,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:663,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 677
    functionName: libtorrent::dht::dht_tracker::has_quota
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - total_microseconds
    - seconds
    - libtorrent::aux::max
    - std::min
    - get_int
    - std::int64_t
    - aux::numeric_cast<int>
    - TORRENT_ASSERT
    - microseconds
    linkageType: ''
    returnType: bool
    signature: bool dht_tracker::has_quota()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: std::string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:689,1
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:690,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:690,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:695,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:698,1
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:698,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:705,1
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:705,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:707,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:708,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:714,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:719,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:721,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:726,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:726,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:728,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:729,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:730,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - ' s'
    - ' e'
    - ' addr'
    argTypes:
    - aux::listen_socket_handle
    - entry
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 735
    functionName: libtorrent::dht::dht_tracker::send_packet
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - libtorrent::aux::is_v6
    - get_local_endpoint
    - begin
    - end
    - std::string
    - find
    - TORRENT_ASSERT
    - first::get_local_endpoint
    - inc_stats_counter
    - std::back_inserter
    - clear
    - m_send_fun
    - log_packet
    - size
    - bencode
    - std::find_if
    linkageType: ''
    returnType: bool
    signature: bool dht_tracker::send_packet(aux::listen_socket_handle const& s, entry&
      e, udp::endpoint const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: get_stats_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:74,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:75,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' dht'
    - ' c'
    argTypes:
    - node
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::add_dht_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_stats_counters
    - inc_stats_counter
    - std::tie
    linkageType: ''
    returnType: void
    signature: void add_dht_counters(node const& dht, counters& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' v1'
    - ' v2'
    argTypes:
    - std::vector<udp::endpoint>
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::concat
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - libtorrent::dht::end
    - libtorrent::dht::begin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: "std::vector<udp::endpoint> concat(std::vector<udp::endpoint> const&
      v1\n\t\t, std::vector<udp::endpoint> const& v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: get_stats_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:74,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:75,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' dht'
    - ' c'
    argTypes:
    - node
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::add_dht_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_stats_counters
    - inc_stats_counter
    - std::tie
    linkageType: ''
    returnType: void
    signature: void add_dht_counters(node const& dht, counters& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' v1'
    - ' v2'
    argTypes:
    - std::vector<udp::endpoint>
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::concat
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - libtorrent::dht::end
    - libtorrent::dht::begin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: "std::vector<udp::endpoint> concat(std::vector<udp::endpoint> const&
      v1\n\t\t, std::vector<udp::endpoint> const& v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:100,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:101,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:108,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:109,1
    - Dst: set_block_timer
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:112,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:112,1
    - Dst: set_rate_limit
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:113,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 7
    argNames:
    - observer
    - ' ios'
    - send_fun
    - ' settings'
    - ' cnt'
    - ' storage'
    - ' state'
    argTypes:
    - dht_observer*
    - io_context
    - send_fun_t
    - aux::session_settings
    - counters
    - dht_storage_interface
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::dht_tracker::dht_tracker
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - set_block_timer
    - std::move
    - get_int
    - set_rate_limit
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::dht_tracker(dht_observer* observer\n\t\t, io_context&
      ios\n\t\t, send_fun_t send_fun\n\t\t, aux::session_settings const& settings\n\t\t,
      counters& cnt\n\t\t, dht_storage_interface& storage\n\t\t, dht_state&& state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:118,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:119,1
    - Dst: auto::second::dht::update_node_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:120,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: libtorrent::dht::dht_tracker::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - auto::second::dht::update_node_id
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_node_id(aux::listen_socket_handle const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:126,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:129,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:129,1
    - Dst: emplace
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::piecewise_construct_t
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:133,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:135,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:138,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:141,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:143,1
    - Dst: address::to_string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:144,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:145,1
    - Dst: auto::first::second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:145,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:151,1
    - Dst: auto::first::second::connection_timer::expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:152,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:152,1
    - Dst: auto::first::second::connection_timer::async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:153,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:154,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:154,1
    - Dst: auto::first::second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:155,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 157
    functionName: libtorrent::dht::dht_tracker::new_socket
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - auto::first::second::dht::bootstrap
    - seconds
    - self
    - ADD_OUTSTANDING_ASYNC
    - get_local_endpoint
    - emplace
    - std::piecewise_construct_t
    - log
    - auto::first::second::connection_timer::async_wait
    - libtorrent::aux::to_hex
    - node_id
    - auto::first::second::dht::nid
    - nids::end
    - address::to_string
    - find_data::nodes_callback
    - std::find_if
    - std::bind
    - std::forward_as_tuple
    - nids::begin
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - auto::first::second::connection_timer::expires_after
    - should_log
    linkageType: ''
    returnType: void
    signature: void dht_tracker::new_socket(aux::listen_socket_handle const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:162,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:164,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:165,1
    - Dst: address::to_string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:166,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:169,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: libtorrent::dht::dht_tracker::delete_socket
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_local_endpoint
    - erase
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - log
    - address::to_string
    - should_log
    linkageType: ''
    returnType: void
    signature: void dht_tracker::delete_socket(aux::listen_socket_handle const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:178,1
    - Dst: libtorrent::dht::dht_tracker::refresh_key
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:179,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:183,1
    - Dst: second::connection_timer::expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:184,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:184,1
    - Dst: second::connection_timer::async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:185,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:186,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:186,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:187,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:187,1
    - Dst: second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:188,1
    - Dst: concat
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:188,1
    - Dst: second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:190,1
    - Dst: concat
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:190,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:193,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:194,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:194,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - find_data::nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: libtorrent::dht::dht_tracker::start
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - second::dht::bootstrap
    - second::connection_timer::expires_after
    - libtorrent::aux::is_v6
    - async_wait
    - seconds
    - expires_after
    - first::get_local_endpoint
    - self
    - concat
    - libtorrent::dht::dht_tracker::refresh_key
    - clear
    - second::connection_timer::async_wait
    linkageType: ''
    returnType: void
    signature: void dht_tracker::start(find_data::nodes_callback const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:203,1
    - Dst: second::connection_timer::cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:205,1
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:206,1
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: libtorrent::dht::dht_tracker::stop
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::connection_timer::cancel
    - cancel
    linkageType: ''
    returnType: void
    signature: void dht_tracker::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_torrents
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:213,1
    - Dst: active_requests::clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:218,1
    - Dst: second::dht::status
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: libtorrent::dht::dht_tracker::dht_status
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::status
    - active_requests::clear
    - num_torrents
    linkageType: ''
    returnType: void
    signature: void dht_tracker::dht_status(session_status& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:230,1
    - Dst: second::dht::status
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: libtorrent::dht::dht_tracker::dht_status
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - second::dht::status
    linkageType: ''
    returnType: std::vector<lt::dht::dht_status>
    signature: std::vector<lt::dht::dht_status> dht_tracker::dht_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:236,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:237,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:238,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:239,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:240,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:242,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:243,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:244,1
    - Dst: add_dht_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 248
    functionName: libtorrent::dht::dht_tracker::update_stats_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - counters
    - set_value
    - add_dht_counters
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_stats_counters(counters& c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:252,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:255,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:258,1
    - Dst: dht::connection_timeout
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:261,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:263,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:264,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' e'
    argTypes:
    - aux::listen_socket_handle
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 266
    functionName: libtorrent::dht::dht_tracker::connection_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - end
    - find
    - expires_after
    - self
    - dht::connection_timeout
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void dht_tracker::connection_timeout(aux::listen_socket_handle const&
      s, error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:270,1
    - Dst: second::dht::tick
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:274,1
    - Dst: set_block_timer
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:277,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:277,1
    - Dst: set_rate_limit
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:278,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:278,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:280,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:280,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:281,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:282,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:283,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: libtorrent::dht::dht_tracker::refresh_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - set_block_timer
    - async_wait
    - seconds
    - expires_after
    - get_int
    - set_rate_limit
    - self
    - COMPLETE_ASYNC
    - second::dht::tick
    linkageType: ''
    returnType: void
    signature: void dht_tracker::refresh_timeout(error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:288,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:291,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:292,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: second::dht::new_write_key
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:296,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:299,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 302
    functionName: libtorrent::dht::dht_tracker::refresh_key
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - second::dht::new_write_key
    - expires_after
    - log
    - self
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void dht_tracker::refresh_key(error_code const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:308,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:308,1
    - Dst: update_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: libtorrent::dht::dht_tracker::update_storage_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 6
    functionsReached:
    - std::vector::push_back
    - second::dht::nid
    - update_node_ids
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_storage_node_ids()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:314,1
    - Dst: second::dht::protocol_family_name
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' id'
    - ' family_name'
    argTypes:
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 323
    functionName: libtorrent::dht::dht_tracker::get_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::protocol_family_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: node
    signature: node * dht_tracker::get_node(node_id const& id, std::string const&
      family_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::get_peers
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' ih'
    - f
    argTypes:
    - sha1_hash
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: libtorrent::dht::dht_tracker::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_peers
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_peers(sha1_hash const& ih\n\t\t, std::function<void(std::vector<tcp::endpoint>
      const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::announce
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' ih'
    - listen_port
    - flags
    - f
    argTypes:
    - sha1_hash
    - int
    - announce_flags_t
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: libtorrent::dht::dht_tracker::announce
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::announce
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::announce(sha1_hash const& ih, int listen_port\n\t\t,
      announce_flags_t const flags\n\t\t, std::function<void(std::vector<tcp::endpoint>
      const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: first::get_external_address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: second::dht::sample_infohashes
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' target'
    - f
    argTypes:
    - udp::endpoint
    - sha1_hash
    - "std::function<void(node_id\n\t\t\t, time_duration\n\t\t\t, int, std::vector<sha1_hash>\n\t\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: libtorrent::dht::dht_tracker::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - rand_v4
    - rand_v6
    - second::dht::sample_infohashes
    - first::get_external_address
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::sample_infohashes(udp::endpoint const& ep, sha1_hash
      const& target\n\t\t, std::function<void(node_id\n\t\t\t, time_duration\n\t\t\t,
      int, std::vector<sha1_hash>\n\t\t\t, std::vector<std::pair<sha1_hash, udp::endpoint>>)>
      f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: libtorrent::dht::get_immutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:377,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' it'
    - ctx
    - f
    argTypes:
    - item
    - std::shared_ptr<get_immutable_item_ctx>
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: libtorrent::dht::get_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    linkageType: ''
    returnType: void
    signature: "void get_immutable_item_callback(item const& it\n\t\t, std::shared_ptr<get_immutable_item_ctx>
      ctx\n\t\t, std::function<void(item const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::dht::get_mutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_ctx(int traversals)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:401,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' it'
    - authoritative
    - ctx
    - f
    argTypes:
    - item
    - bool
    - std::shared_ptr<get_mutable_item_ctx>
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: libtorrent::dht::get_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<get_mutable_item_ctx>::it::empty
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    - TORRENT_ASSERT
    - std::shared_ptr<get_mutable_item_ctx>::it::seq
    - libtorrent::dht::seq
    linkageType: ''
    returnType: void
    signature: "void get_mutable_item_callback(item const& it, bool authoritative\n\t\t,
      std::shared_ptr<get_mutable_item_ctx> ctx\n\t\t, std::function<void(item const&,
      bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::dht::put_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - responses
    - ctx
    - f
    argTypes:
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::put_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item_callback(int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(int)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' it'
    - responses
    - ctx
    - cb
    argTypes:
    - item
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(item const&, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: libtorrent::dht::put_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item_callback(item const& it, int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(item const&, int)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: libtorrent::dht::get_immutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:377,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' it'
    - ctx
    - f
    argTypes:
    - item
    - std::shared_ptr<get_immutable_item_ctx>
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: libtorrent::dht::get_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    linkageType: ''
    returnType: void
    signature: "void get_immutable_item_callback(item const& it\n\t\t, std::shared_ptr<get_immutable_item_ctx>
      ctx\n\t\t, std::function<void(item const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::dht::get_mutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_ctx(int traversals)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:401,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' it'
    - authoritative
    - ctx
    - f
    argTypes:
    - item
    - bool
    - std::shared_ptr<get_mutable_item_ctx>
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: libtorrent::dht::get_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<get_mutable_item_ctx>::it::empty
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    - TORRENT_ASSERT
    - std::shared_ptr<get_mutable_item_ctx>::it::seq
    - libtorrent::dht::seq
    linkageType: ''
    returnType: void
    signature: "void get_mutable_item_callback(item const& it, bool authoritative\n\t\t,
      std::shared_ptr<get_mutable_item_ctx> ctx\n\t\t, std::function<void(item const&,
      bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::dht::put_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - responses
    - ctx
    - f
    argTypes:
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::put_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item_callback(int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(int)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' it'
    - responses
    - ctx
    - cb
    argTypes:
    - item
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(item const&, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: libtorrent::dht::put_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item_callback(item const& it, int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(item const&, int)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<get_immutable_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:439,1
    - Dst: second::dht::get_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:441,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - cb
    argTypes:
    - sha1_hash
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 442
    functionName: libtorrent::dht::dht_tracker::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_item
    - std::bind
    - size
    - std::make_shared<get_immutable_item_ctx>
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_item(sha1_hash const& target\n\t\t, std::function<void(item
      const&)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<get_mutable_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:450,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:450,1
    - Dst: second::dht::get_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' key'
    - cb
    - salt
    argTypes:
    - public_key
    - std::function<void(item const&, bool)>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 453
    functionName: libtorrent::dht::dht_tracker::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_item
    - std::bind
    - size
    - std::make_shared<get_mutable_item_ctx>
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_item(public_key const& key\n\t\t, std::function<void(item
      const&, bool)> cb\n\t\t, std::string salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:459,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:459,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:460,1
    - Dst: std::make_shared<put_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:462,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:462,1
    - Dst: second::dht::put_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:464,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' data'
    - cb
    argTypes:
    - entry
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 466
    functionName: libtorrent::dht::dht_tracker::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - item_target_id
    - std::make_shared<put_item_ctx>
    - std::bind
    - second::dht::put_item
    - std::back_inserter
    - size
    - bencode
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::put_item(entry const& data\n\t\t, std::function<void(int)>
      cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<put_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:472,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:472,1
    - Dst: second::dht::put_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:474,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' key'
    - cb
    - data_cb
    - salt
    argTypes:
    - public_key
    - std::function<void(item const&, int)>
    - std::function<void(item&)>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: libtorrent::dht::dht_tracker::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<put_item_ctx>
    - second::dht::put_item
    - std::bind
    - size
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::put_item(public_key const& key\n\t\t, std::function<void(item
      const&, int)> cb\n\t\t, std::function<void(item&)> data_cb, std::string salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: first::get_external_address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: second::dht::direct_request
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - f
    argTypes:
    - udp::endpoint
    - entry
    - std::function<void(msg const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: libtorrent::dht::dht_tracker::direct_request
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - rand_v4
    - rand_v6
    - second::dht::direct_request
    - first::get_external_address
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::direct_request(udp::endpoint const& ep, entry& e\n\t\t,
      std::function<void(msg const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:496,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:496,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:497,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:497,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:498,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:498,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:499,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:499,1
    - Dst: second::dht::unreachable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 2
    argNames:
    - ' ec'
    - ' ep'
    argTypes:
    - error_code
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 506
    functionName: libtorrent::dht::dht_tracker::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::unreachable
    - error_code
    - system_category
    linkageType: ''
    returnType: void
    signature: void dht_tracker::incoming_error(error_code const& ec, udp::endpoint
      const& ep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:511,1
    - Dst: span<char const>::front
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:513,1
    - Dst: span<char const>::back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:514,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:516,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:518,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:519,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:520,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:522,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:522,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:524,1
    - Dst: std::find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:533,1
    - Dst: incoming
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:540,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:544,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:551,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:553,1
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:558,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:560,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:562,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:569,1
    - Dst: second::dht::incoming
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - ' s'
    - ' ep'
    - buf
    argTypes:
    - aux::listen_socket_handle
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 576
    functionName: libtorrent::dht::dht_tracker::incoming_packet
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::front
    - libtorrent::aux::is_v6
    - span<char const>::size
    - get_bool
    - bdecode
    - std::begin
    - std::find
    - inc_stats_counter
    - type
    - address
    - time_now
    - libtorrent::aux::is_v4
    - std::end
    - TORRENT_ASSERT
    - log_packet
    - span<char const>::back
    - span<char const>::data
    - incoming
    - second::dht::incoming
    linkageType: ''
    returnType: bool
    signature: "bool dht_tracker::incoming_packet(aux::listen_socket_handle const&
      s\n\t\t, udp::endpoint const& ep, span<char const> const buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - ' ios'
    - ' s'
    - sock
    - ' settings'
    - ' nid'
    - observer
    - ' cnt'
    - get_foreign_node
    - ' storage'
    argTypes:
    - io_context
    - aux::listen_socket_handle
    - socket_manager*
    - aux::session_settings
    - node_id
    - dht_observer*
    - counters
    - get_foreign_node_t
    - dht_storage_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: "dht_tracker::tracker_node::tracker_node(io_context& ios\n\t\t,
      aux::listen_socket_handle const& s, socket_manager* sock\n\t\t, aux::session_settings
      const& settings\n\t\t, node_id const& nid\n\t\t, dht_observer* observer, counters&
      cnt\n\t\t, get_foreign_node_t get_foreign_node\n\t\t, dht_storage_interface&
      storage)"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::tracker_node::tracker_node(io_context& ios\n\t\t,
      aux::listen_socket_handle const& s, socket_manager* sock\n\t\t, aux::session_settings
      const& settings\n\t\t, node_id const& nid\n\t\t, dht_observer* observer, counters&
      cnt\n\t\t, get_foreign_node_t get_foreign_node\n\t\t, dht_storage_interface&
      storage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:594,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:596,1
    - Dst: auto::second::dht::m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: libtorrent::dht::dht_tracker::live_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::nid
    - begin
    - std::vector::emplace_back
    - end
    - auto::second::dht::m_table::for_each_node
    - std::find_if
    linkageType: ''
    returnType: std::vector<std::pair<node_id, udp::endpoint>>
    signature: std::vector<std::pair<node_id, udp::endpoint>> dht_tracker::live_nodes(node_id
      const& nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:611,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' dht'
    argTypes:
    - node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - m_table::for_each_node
    - libtorrent::dht::ep
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: std::vector<udp::endpoint> save_nodes(node const& dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:611,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' dht'
    argTypes:
    - node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - m_table::for_each_node
    - libtorrent::dht::ep
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: std::vector<udp::endpoint> save_nodes(node const& dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_state::nids::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: save_nodes
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:627,1
    - Dst: dht_state::nodes::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: dht_state::nodes::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: auto::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 631
    functionName: libtorrent::dht::dht_tracker::state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - dht_state::nodes::end
    - dht_state::nodes::insert
    - save_nodes
    - first::get_local_endpoint
    - auto::end
    - dht_state::nids::emplace_back
    - auto::begin
    - second::dht::nid
    linkageType: ''
    returnType: dht_state
    signature: dht_state dht_tracker::state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::add_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: libtorrent::dht::dht_tracker::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::add_node
    linkageType: ''
    returnType: void
    signature: void dht_tracker::add_node(udp::endpoint const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::add_router_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: libtorrent::dht::dht_tracker::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::add_router_node
    linkageType: ''
    returnType: void
    signature: void dht_tracker::add_router_node(udp::endpoint const& node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:647,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:651,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:656,1
    - Dst: microseconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:657,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:657,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:659,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:663,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:663,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 677
    functionName: libtorrent::dht::dht_tracker::has_quota
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - total_microseconds
    - seconds
    - libtorrent::aux::max
    - std::min
    - get_int
    - std::int64_t
    - aux::numeric_cast<int>
    - TORRENT_ASSERT
    - microseconds
    linkageType: ''
    returnType: bool
    signature: bool dht_tracker::has_quota()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: std::string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:689,1
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:690,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:690,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:695,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:698,1
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:698,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:705,1
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:705,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:707,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:708,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:714,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:719,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:721,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:726,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:726,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:728,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:729,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:730,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - ' s'
    - ' e'
    - ' addr'
    argTypes:
    - aux::listen_socket_handle
    - entry
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 735
    functionName: libtorrent::dht::dht_tracker::send_packet
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - libtorrent::aux::is_v6
    - get_local_endpoint
    - begin
    - end
    - std::string
    - find
    - TORRENT_ASSERT
    - first::get_local_endpoint
    - inc_stats_counter
    - std::back_inserter
    - clear
    - m_send_fun
    - log_packet
    - size
    - bencode
    - std::find_if
    linkageType: ''
    returnType: bool
    signature: bool dht_tracker::send_packet(aux::listen_socket_handle const& s, entry&
      e, udp::endpoint const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: get_stats_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:74,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:75,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' dht'
    - ' c'
    argTypes:
    - node
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::add_dht_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_stats_counters
    - inc_stats_counter
    - std::tie
    linkageType: ''
    returnType: void
    signature: void add_dht_counters(node const& dht, counters& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' v1'
    - ' v2'
    argTypes:
    - std::vector<udp::endpoint>
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::concat
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - libtorrent::dht::end
    - libtorrent::dht::begin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: "std::vector<udp::endpoint> concat(std::vector<udp::endpoint> const&
      v1\n\t\t, std::vector<udp::endpoint> const& v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: get_stats_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:74,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:75,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' dht'
    - ' c'
    argTypes:
    - node
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::add_dht_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_stats_counters
    - inc_stats_counter
    - std::tie
    linkageType: ''
    returnType: void
    signature: void add_dht_counters(node const& dht, counters& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' v1'
    - ' v2'
    argTypes:
    - std::vector<udp::endpoint>
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::concat
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - libtorrent::dht::end
    - libtorrent::dht::begin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: "std::vector<udp::endpoint> concat(std::vector<udp::endpoint> const&
      v1\n\t\t, std::vector<udp::endpoint> const& v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:100,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:101,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:108,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:109,1
    - Dst: set_block_timer
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:112,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:112,1
    - Dst: set_rate_limit
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:113,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 7
    argNames:
    - observer
    - ' ios'
    - send_fun
    - ' settings'
    - ' cnt'
    - ' storage'
    - ' state'
    argTypes:
    - dht_observer*
    - io_context
    - send_fun_t
    - aux::session_settings
    - counters
    - dht_storage_interface
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::dht_tracker::dht_tracker
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - set_block_timer
    - std::move
    - get_int
    - set_rate_limit
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::dht_tracker(dht_observer* observer\n\t\t, io_context&
      ios\n\t\t, send_fun_t send_fun\n\t\t, aux::session_settings const& settings\n\t\t,
      counters& cnt\n\t\t, dht_storage_interface& storage\n\t\t, dht_state&& state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:118,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:119,1
    - Dst: auto::second::dht::update_node_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:120,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: libtorrent::dht::dht_tracker::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - auto::second::dht::update_node_id
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_node_id(aux::listen_socket_handle const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:126,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:129,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:129,1
    - Dst: emplace
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::piecewise_construct_t
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:133,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:135,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:138,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:141,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:143,1
    - Dst: address::to_string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:144,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:145,1
    - Dst: auto::first::second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:145,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:151,1
    - Dst: auto::first::second::connection_timer::expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:152,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:152,1
    - Dst: auto::first::second::connection_timer::async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:153,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:154,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:154,1
    - Dst: auto::first::second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:155,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 157
    functionName: libtorrent::dht::dht_tracker::new_socket
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - auto::first::second::dht::bootstrap
    - seconds
    - self
    - ADD_OUTSTANDING_ASYNC
    - get_local_endpoint
    - emplace
    - std::piecewise_construct_t
    - log
    - auto::first::second::connection_timer::async_wait
    - libtorrent::aux::to_hex
    - node_id
    - auto::first::second::dht::nid
    - nids::end
    - address::to_string
    - find_data::nodes_callback
    - std::find_if
    - std::bind
    - std::forward_as_tuple
    - nids::begin
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - auto::first::second::connection_timer::expires_after
    - should_log
    linkageType: ''
    returnType: void
    signature: void dht_tracker::new_socket(aux::listen_socket_handle const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:162,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:164,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:165,1
    - Dst: address::to_string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:166,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:169,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: libtorrent::dht::dht_tracker::delete_socket
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_local_endpoint
    - erase
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - log
    - address::to_string
    - should_log
    linkageType: ''
    returnType: void
    signature: void dht_tracker::delete_socket(aux::listen_socket_handle const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:178,1
    - Dst: libtorrent::dht::dht_tracker::refresh_key
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:179,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:183,1
    - Dst: second::connection_timer::expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:184,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:184,1
    - Dst: second::connection_timer::async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:185,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:186,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:186,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:187,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:187,1
    - Dst: second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:188,1
    - Dst: concat
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:188,1
    - Dst: second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:190,1
    - Dst: concat
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:190,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:193,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:194,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:194,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - find_data::nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: libtorrent::dht::dht_tracker::start
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - second::dht::bootstrap
    - second::connection_timer::expires_after
    - libtorrent::aux::is_v6
    - async_wait
    - seconds
    - expires_after
    - first::get_local_endpoint
    - self
    - concat
    - libtorrent::dht::dht_tracker::refresh_key
    - clear
    - second::connection_timer::async_wait
    linkageType: ''
    returnType: void
    signature: void dht_tracker::start(find_data::nodes_callback const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:203,1
    - Dst: second::connection_timer::cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:205,1
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:206,1
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: libtorrent::dht::dht_tracker::stop
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::connection_timer::cancel
    - cancel
    linkageType: ''
    returnType: void
    signature: void dht_tracker::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_torrents
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:213,1
    - Dst: active_requests::clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:218,1
    - Dst: second::dht::status
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: libtorrent::dht::dht_tracker::dht_status
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::status
    - active_requests::clear
    - num_torrents
    linkageType: ''
    returnType: void
    signature: void dht_tracker::dht_status(session_status& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:230,1
    - Dst: second::dht::status
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: libtorrent::dht::dht_tracker::dht_status
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - second::dht::status
    linkageType: ''
    returnType: std::vector<lt::dht::dht_status>
    signature: std::vector<lt::dht::dht_status> dht_tracker::dht_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:236,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:237,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:238,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:239,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:240,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:242,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:243,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:244,1
    - Dst: add_dht_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 248
    functionName: libtorrent::dht::dht_tracker::update_stats_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - counters
    - set_value
    - add_dht_counters
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_stats_counters(counters& c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:252,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:255,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:258,1
    - Dst: dht::connection_timeout
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:261,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:263,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:264,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' e'
    argTypes:
    - aux::listen_socket_handle
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 266
    functionName: libtorrent::dht::dht_tracker::connection_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - end
    - find
    - expires_after
    - self
    - dht::connection_timeout
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void dht_tracker::connection_timeout(aux::listen_socket_handle const&
      s, error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:270,1
    - Dst: second::dht::tick
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:274,1
    - Dst: set_block_timer
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:277,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:277,1
    - Dst: set_rate_limit
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:278,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:278,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:280,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:280,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:281,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:282,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:283,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: libtorrent::dht::dht_tracker::refresh_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - set_block_timer
    - async_wait
    - seconds
    - expires_after
    - get_int
    - set_rate_limit
    - self
    - COMPLETE_ASYNC
    - second::dht::tick
    linkageType: ''
    returnType: void
    signature: void dht_tracker::refresh_timeout(error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:288,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:291,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:292,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: second::dht::new_write_key
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:296,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:299,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 302
    functionName: libtorrent::dht::dht_tracker::refresh_key
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 3
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - second::dht::new_write_key
    - expires_after
    - log
    - self
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void dht_tracker::refresh_key(error_code const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:308,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:308,1
    - Dst: update_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: libtorrent::dht::dht_tracker::update_storage_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 9
    functionsReached:
    - std::vector::push_back
    - second::dht::nid
    - update_node_ids
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_storage_node_ids()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:314,1
    - Dst: second::dht::protocol_family_name
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' id'
    - ' family_name'
    argTypes:
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 323
    functionName: libtorrent::dht::dht_tracker::get_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::protocol_family_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: node
    signature: node * dht_tracker::get_node(node_id const& id, std::string const&
      family_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::get_peers
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' ih'
    - f
    argTypes:
    - sha1_hash
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: libtorrent::dht::dht_tracker::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_peers
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_peers(sha1_hash const& ih\n\t\t, std::function<void(std::vector<tcp::endpoint>
      const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::announce
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' ih'
    - listen_port
    - flags
    - f
    argTypes:
    - sha1_hash
    - int
    - announce_flags_t
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: libtorrent::dht::dht_tracker::announce
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::announce
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::announce(sha1_hash const& ih, int listen_port\n\t\t,
      announce_flags_t const flags\n\t\t, std::function<void(std::vector<tcp::endpoint>
      const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: first::get_external_address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: second::dht::sample_infohashes
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' target'
    - f
    argTypes:
    - udp::endpoint
    - sha1_hash
    - "std::function<void(node_id\n\t\t\t, time_duration\n\t\t\t, int, std::vector<sha1_hash>\n\t\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: libtorrent::dht::dht_tracker::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - rand_v4
    - rand_v6
    - second::dht::sample_infohashes
    - first::get_external_address
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::sample_infohashes(udp::endpoint const& ep, sha1_hash
      const& target\n\t\t, std::function<void(node_id\n\t\t\t, time_duration\n\t\t\t,
      int, std::vector<sha1_hash>\n\t\t\t, std::vector<std::pair<sha1_hash, udp::endpoint>>)>
      f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: libtorrent::dht::get_immutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:377,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' it'
    - ctx
    - f
    argTypes:
    - item
    - std::shared_ptr<get_immutable_item_ctx>
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: libtorrent::dht::get_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    linkageType: ''
    returnType: void
    signature: "void get_immutable_item_callback(item const& it\n\t\t, std::shared_ptr<get_immutable_item_ctx>
      ctx\n\t\t, std::function<void(item const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::dht::get_mutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_ctx(int traversals)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:401,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' it'
    - authoritative
    - ctx
    - f
    argTypes:
    - item
    - bool
    - std::shared_ptr<get_mutable_item_ctx>
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: libtorrent::dht::get_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<get_mutable_item_ctx>::it::empty
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    - TORRENT_ASSERT
    - std::shared_ptr<get_mutable_item_ctx>::it::seq
    - libtorrent::dht::seq
    linkageType: ''
    returnType: void
    signature: "void get_mutable_item_callback(item const& it, bool authoritative\n\t\t,
      std::shared_ptr<get_mutable_item_ctx> ctx\n\t\t, std::function<void(item const&,
      bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::dht::put_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - responses
    - ctx
    - f
    argTypes:
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::put_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item_callback(int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(int)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' it'
    - responses
    - ctx
    - cb
    argTypes:
    - item
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(item const&, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: libtorrent::dht::put_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item_callback(item const& it, int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(item const&, int)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: libtorrent::dht::get_immutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:377,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' it'
    - ctx
    - f
    argTypes:
    - item
    - std::shared_ptr<get_immutable_item_ctx>
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: libtorrent::dht::get_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    linkageType: ''
    returnType: void
    signature: "void get_immutable_item_callback(item const& it\n\t\t, std::shared_ptr<get_immutable_item_ctx>
      ctx\n\t\t, std::function<void(item const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::dht::get_mutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_ctx(int traversals)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:401,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' it'
    - authoritative
    - ctx
    - f
    argTypes:
    - item
    - bool
    - std::shared_ptr<get_mutable_item_ctx>
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: libtorrent::dht::get_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<get_mutable_item_ctx>::it::empty
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    - TORRENT_ASSERT
    - std::shared_ptr<get_mutable_item_ctx>::it::seq
    - libtorrent::dht::seq
    linkageType: ''
    returnType: void
    signature: "void get_mutable_item_callback(item const& it, bool authoritative\n\t\t,
      std::shared_ptr<get_mutable_item_ctx> ctx\n\t\t, std::function<void(item const&,
      bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::dht::put_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - responses
    - ctx
    - f
    argTypes:
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::put_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item_callback(int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(int)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' it'
    - responses
    - ctx
    - cb
    argTypes:
    - item
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(item const&, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: libtorrent::dht::put_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item_callback(item const& it, int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(item const&, int)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<get_immutable_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:439,1
    - Dst: second::dht::get_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:441,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - cb
    argTypes:
    - sha1_hash
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 442
    functionName: libtorrent::dht::dht_tracker::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_item
    - std::bind
    - size
    - std::make_shared<get_immutable_item_ctx>
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_item(sha1_hash const& target\n\t\t, std::function<void(item
      const&)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<get_mutable_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:450,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:450,1
    - Dst: second::dht::get_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' key'
    - cb
    - salt
    argTypes:
    - public_key
    - std::function<void(item const&, bool)>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 453
    functionName: libtorrent::dht::dht_tracker::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_item
    - std::bind
    - size
    - std::make_shared<get_mutable_item_ctx>
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_item(public_key const& key\n\t\t, std::function<void(item
      const&, bool)> cb\n\t\t, std::string salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:459,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:459,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:460,1
    - Dst: std::make_shared<put_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:462,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:462,1
    - Dst: second::dht::put_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:464,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' data'
    - cb
    argTypes:
    - entry
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 466
    functionName: libtorrent::dht::dht_tracker::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - item_target_id
    - std::make_shared<put_item_ctx>
    - std::bind
    - second::dht::put_item
    - std::back_inserter
    - size
    - bencode
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::put_item(entry const& data\n\t\t, std::function<void(int)>
      cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<put_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:472,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:472,1
    - Dst: second::dht::put_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:474,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' key'
    - cb
    - data_cb
    - salt
    argTypes:
    - public_key
    - std::function<void(item const&, int)>
    - std::function<void(item&)>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: libtorrent::dht::dht_tracker::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<put_item_ctx>
    - second::dht::put_item
    - std::bind
    - size
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::put_item(public_key const& key\n\t\t, std::function<void(item
      const&, int)> cb\n\t\t, std::function<void(item&)> data_cb, std::string salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: first::get_external_address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: second::dht::direct_request
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - f
    argTypes:
    - udp::endpoint
    - entry
    - std::function<void(msg const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: libtorrent::dht::dht_tracker::direct_request
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - rand_v4
    - rand_v6
    - second::dht::direct_request
    - first::get_external_address
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::direct_request(udp::endpoint const& ep, entry& e\n\t\t,
      std::function<void(msg const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:496,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:496,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:497,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:497,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:498,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:498,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:499,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:499,1
    - Dst: second::dht::unreachable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 2
    argNames:
    - ' ec'
    - ' ep'
    argTypes:
    - error_code
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 506
    functionName: libtorrent::dht::dht_tracker::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::unreachable
    - error_code
    - system_category
    linkageType: ''
    returnType: void
    signature: void dht_tracker::incoming_error(error_code const& ec, udp::endpoint
      const& ep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:511,1
    - Dst: span<char const>::front
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:513,1
    - Dst: span<char const>::back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:514,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:516,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:518,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:519,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:520,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:522,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:522,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:524,1
    - Dst: std::find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:533,1
    - Dst: incoming
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:540,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:544,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:551,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:553,1
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:558,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:560,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:562,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:569,1
    - Dst: second::dht::incoming
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - ' s'
    - ' ep'
    - buf
    argTypes:
    - aux::listen_socket_handle
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 576
    functionName: libtorrent::dht::dht_tracker::incoming_packet
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::front
    - libtorrent::aux::is_v6
    - span<char const>::size
    - get_bool
    - bdecode
    - std::begin
    - std::find
    - inc_stats_counter
    - type
    - address
    - time_now
    - libtorrent::aux::is_v4
    - std::end
    - TORRENT_ASSERT
    - log_packet
    - span<char const>::back
    - span<char const>::data
    - incoming
    - second::dht::incoming
    linkageType: ''
    returnType: bool
    signature: "bool dht_tracker::incoming_packet(aux::listen_socket_handle const&
      s\n\t\t, udp::endpoint const& ep, span<char const> const buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - ' ios'
    - ' s'
    - sock
    - ' settings'
    - ' nid'
    - observer
    - ' cnt'
    - get_foreign_node
    - ' storage'
    argTypes:
    - io_context
    - aux::listen_socket_handle
    - socket_manager*
    - aux::session_settings
    - node_id
    - dht_observer*
    - counters
    - get_foreign_node_t
    - dht_storage_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: "dht_tracker::tracker_node::tracker_node(io_context& ios\n\t\t,
      aux::listen_socket_handle const& s, socket_manager* sock\n\t\t, aux::session_settings
      const& settings\n\t\t, node_id const& nid\n\t\t, dht_observer* observer, counters&
      cnt\n\t\t, get_foreign_node_t get_foreign_node\n\t\t, dht_storage_interface&
      storage)"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::tracker_node::tracker_node(io_context& ios\n\t\t,
      aux::listen_socket_handle const& s, socket_manager* sock\n\t\t, aux::session_settings
      const& settings\n\t\t, node_id const& nid\n\t\t, dht_observer* observer, counters&
      cnt\n\t\t, get_foreign_node_t get_foreign_node\n\t\t, dht_storage_interface&
      storage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:594,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:596,1
    - Dst: auto::second::dht::m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: libtorrent::dht::dht_tracker::live_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::nid
    - begin
    - std::vector::emplace_back
    - end
    - auto::second::dht::m_table::for_each_node
    - std::find_if
    linkageType: ''
    returnType: std::vector<std::pair<node_id, udp::endpoint>>
    signature: std::vector<std::pair<node_id, udp::endpoint>> dht_tracker::live_nodes(node_id
      const& nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:611,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' dht'
    argTypes:
    - node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - m_table::for_each_node
    - libtorrent::dht::ep
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: std::vector<udp::endpoint> save_nodes(node const& dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:611,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' dht'
    argTypes:
    - node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - m_table::for_each_node
    - libtorrent::dht::ep
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: std::vector<udp::endpoint> save_nodes(node const& dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_state::nids::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: save_nodes
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:627,1
    - Dst: dht_state::nodes::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: dht_state::nodes::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: auto::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 631
    functionName: libtorrent::dht::dht_tracker::state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - dht_state::nodes::end
    - dht_state::nodes::insert
    - save_nodes
    - first::get_local_endpoint
    - auto::end
    - dht_state::nids::emplace_back
    - auto::begin
    - second::dht::nid
    linkageType: ''
    returnType: dht_state
    signature: dht_state dht_tracker::state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::add_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: libtorrent::dht::dht_tracker::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::add_node
    linkageType: ''
    returnType: void
    signature: void dht_tracker::add_node(udp::endpoint const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::add_router_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: libtorrent::dht::dht_tracker::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::add_router_node
    linkageType: ''
    returnType: void
    signature: void dht_tracker::add_router_node(udp::endpoint const& node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:647,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:651,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:656,1
    - Dst: microseconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:657,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:657,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:659,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:663,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:663,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 677
    functionName: libtorrent::dht::dht_tracker::has_quota
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - total_microseconds
    - seconds
    - libtorrent::aux::max
    - std::min
    - get_int
    - std::int64_t
    - aux::numeric_cast<int>
    - TORRENT_ASSERT
    - microseconds
    linkageType: ''
    returnType: bool
    signature: bool dht_tracker::has_quota()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: std::string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:689,1
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:690,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:690,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:695,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:698,1
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:698,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:705,1
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:705,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:707,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:708,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:714,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:719,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:721,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:726,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:726,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:728,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:729,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:730,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - ' s'
    - ' e'
    - ' addr'
    argTypes:
    - aux::listen_socket_handle
    - entry
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 735
    functionName: libtorrent::dht::dht_tracker::send_packet
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - libtorrent::aux::is_v6
    - get_local_endpoint
    - begin
    - end
    - std::string
    - find
    - TORRENT_ASSERT
    - first::get_local_endpoint
    - inc_stats_counter
    - std::back_inserter
    - clear
    - m_send_fun
    - log_packet
    - size
    - bencode
    - std::find_if
    linkageType: ''
    returnType: bool
    signature: bool dht_tracker::send_packet(aux::listen_socket_handle const& s, entry&
      e, udp::endpoint const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: get_stats_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:74,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:75,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' dht'
    - ' c'
    argTypes:
    - node
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::add_dht_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_stats_counters
    - inc_stats_counter
    - std::tie
    linkageType: ''
    returnType: void
    signature: void add_dht_counters(node const& dht, counters& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' v1'
    - ' v2'
    argTypes:
    - std::vector<udp::endpoint>
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::concat
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - libtorrent::dht::end
    - libtorrent::dht::begin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: "std::vector<udp::endpoint> concat(std::vector<udp::endpoint> const&
      v1\n\t\t, std::vector<udp::endpoint> const& v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: get_stats_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:72,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:74,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:75,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' dht'
    - ' c'
    argTypes:
    - node
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::add_dht_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_stats_counters
    - inc_stats_counter
    - std::tie
    linkageType: ''
    returnType: void
    signature: void add_dht_counters(node const& dht, counters& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' v1'
    - ' v2'
    argTypes:
    - std::vector<udp::endpoint>
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::concat
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - libtorrent::dht::end
    - libtorrent::dht::begin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: "std::vector<udp::endpoint> concat(std::vector<udp::endpoint> const&
      v1\n\t\t, std::vector<udp::endpoint> const& v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:100,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:101,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:108,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:109,1
    - Dst: set_block_timer
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:112,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:112,1
    - Dst: set_rate_limit
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:113,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 7
    argNames:
    - observer
    - ' ios'
    - send_fun
    - ' settings'
    - ' cnt'
    - ' storage'
    - ' state'
    argTypes:
    - dht_observer*
    - io_context
    - send_fun_t
    - aux::session_settings
    - counters
    - dht_storage_interface
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::dht_tracker::dht_tracker
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - set_block_timer
    - std::move
    - get_int
    - set_rate_limit
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::dht_tracker(dht_observer* observer\n\t\t, io_context&
      ios\n\t\t, send_fun_t send_fun\n\t\t, aux::session_settings const& settings\n\t\t,
      counters& cnt\n\t\t, dht_storage_interface& storage\n\t\t, dht_state&& state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:118,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:119,1
    - Dst: auto::second::dht::update_node_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:120,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: libtorrent::dht::dht_tracker::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - auto::second::dht::update_node_id
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_node_id(aux::listen_socket_handle const& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:126,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:127,1
    - Dst: nids::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:129,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:129,1
    - Dst: emplace
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::piecewise_construct_t
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:132,1
    - Dst: std::forward_as_tuple
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:133,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:135,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:138,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:141,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:143,1
    - Dst: address::to_string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:144,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:145,1
    - Dst: auto::first::second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:145,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:151,1
    - Dst: auto::first::second::connection_timer::expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:152,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:152,1
    - Dst: auto::first::second::connection_timer::async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:153,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:154,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:154,1
    - Dst: auto::first::second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:155,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 157
    functionName: libtorrent::dht::dht_tracker::new_socket
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - auto::first::second::dht::bootstrap
    - seconds
    - self
    - ADD_OUTSTANDING_ASYNC
    - get_local_endpoint
    - emplace
    - std::piecewise_construct_t
    - log
    - auto::first::second::connection_timer::async_wait
    - libtorrent::aux::to_hex
    - node_id
    - auto::first::second::dht::nid
    - nids::end
    - address::to_string
    - find_data::nodes_callback
    - std::find_if
    - std::bind
    - std::forward_as_tuple
    - nids::begin
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - auto::first::second::connection_timer::expires_after
    - should_log
    linkageType: ''
    returnType: void
    signature: void dht_tracker::new_socket(aux::listen_socket_handle const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:162,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:164,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:165,1
    - Dst: address::to_string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:166,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:169,1
    - Dst: libtorrent::dht::dht_tracker::update_storage_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: libtorrent::dht::dht_tracker::delete_socket
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - get_local_endpoint
    - erase
    - libtorrent::dht::dht_tracker::update_storage_node_ids
    - log
    - address::to_string
    - should_log
    linkageType: ''
    returnType: void
    signature: void dht_tracker::delete_socket(aux::listen_socket_handle const& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:178,1
    - Dst: libtorrent::dht::dht_tracker::refresh_key
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:179,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:183,1
    - Dst: second::connection_timer::expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:184,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:184,1
    - Dst: second::connection_timer::async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:185,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:186,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:186,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:187,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:187,1
    - Dst: second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:188,1
    - Dst: concat
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:188,1
    - Dst: second::dht::bootstrap
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:190,1
    - Dst: concat
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:190,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:193,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:194,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:194,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:195,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - find_data::nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 198
    functionName: libtorrent::dht::dht_tracker::start
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - second::dht::bootstrap
    - second::connection_timer::expires_after
    - libtorrent::aux::is_v6
    - async_wait
    - seconds
    - expires_after
    - first::get_local_endpoint
    - self
    - concat
    - libtorrent::dht::dht_tracker::refresh_key
    - clear
    - second::connection_timer::async_wait
    linkageType: ''
    returnType: void
    signature: void dht_tracker::start(find_data::nodes_callback const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:203,1
    - Dst: second::connection_timer::cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:205,1
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:206,1
    - Dst: cancel
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: libtorrent::dht::dht_tracker::stop
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::connection_timer::cancel
    - cancel
    linkageType: ''
    returnType: void
    signature: void dht_tracker::stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_torrents
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:213,1
    - Dst: active_requests::clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:218,1
    - Dst: second::dht::status
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: libtorrent::dht::dht_tracker::dht_status
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::status
    - active_requests::clear
    - num_torrents
    linkageType: ''
    returnType: void
    signature: void dht_tracker::dht_status(session_status& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:230,1
    - Dst: second::dht::status
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: libtorrent::dht::dht_tracker::dht_status
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - second::dht::status
    linkageType: ''
    returnType: std::vector<lt::dht::dht_status>
    signature: std::vector<lt::dht::dht_status> dht_tracker::dht_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:236,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:237,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:238,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:239,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:240,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:242,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:243,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:244,1
    - Dst: add_dht_counters
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - counters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 248
    functionName: libtorrent::dht::dht_tracker::update_stats_counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - counters
    - set_value
    - add_dht_counters
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_stats_counters(counters& c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:252,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:255,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:258,1
    - Dst: dht::connection_timeout
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:261,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:263,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:264,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' e'
    argTypes:
    - aux::listen_socket_handle
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 266
    functionName: libtorrent::dht::dht_tracker::connection_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - end
    - find
    - expires_after
    - self
    - dht::connection_timeout
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void dht_tracker::connection_timeout(aux::listen_socket_handle const&
      s, error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:270,1
    - Dst: second::dht::tick
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:274,1
    - Dst: set_block_timer
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:277,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:277,1
    - Dst: set_rate_limit
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:278,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:278,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:280,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:280,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:281,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:282,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:283,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: libtorrent::dht::dht_tracker::refresh_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - set_block_timer
    - async_wait
    - seconds
    - expires_after
    - get_int
    - set_rate_limit
    - self
    - COMPLETE_ASYNC
    - second::dht::tick
    linkageType: ''
    returnType: void
    signature: void dht_tracker::refresh_timeout(error_code const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:288,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:291,1
    - Dst: expires_after
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:292,1
    - Dst: async_wait
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:293,1
    - Dst: second::dht::new_write_key
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:296,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:299,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 302
    functionName: libtorrent::dht::dht_tracker::refresh_key
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 4
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::bind
    - async_wait
    - second::dht::new_write_key
    - expires_after
    - log
    - self
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void dht_tracker::refresh_key(error_code const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:308,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:308,1
    - Dst: update_node_ids
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: libtorrent::dht::dht_tracker::update_storage_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 12
    functionsReached:
    - std::vector::push_back
    - second::dht::nid
    - update_node_ids
    linkageType: ''
    returnType: void
    signature: void dht_tracker::update_storage_node_ids()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:314,1
    - Dst: second::dht::protocol_family_name
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' id'
    - ' family_name'
    argTypes:
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 323
    functionName: libtorrent::dht::dht_tracker::get_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::protocol_family_name
    - TORRENT_UNUSED
    linkageType: ''
    returnType: node
    signature: node * dht_tracker::get_node(node_id const& id, std::string const&
      family_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::get_peers
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' ih'
    - f
    argTypes:
    - sha1_hash
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: libtorrent::dht::dht_tracker::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_peers
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_peers(sha1_hash const& ih\n\t\t, std::function<void(std::vector<tcp::endpoint>
      const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::announce
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' ih'
    - listen_port
    - flags
    - f
    argTypes:
    - sha1_hash
    - int
    - announce_flags_t
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: libtorrent::dht::dht_tracker::announce
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::announce
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::announce(sha1_hash const& ih, int listen_port\n\t\t,
      announce_flags_t const flags\n\t\t, std::function<void(std::vector<tcp::endpoint>
      const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: first::get_external_address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:348,1
    - Dst: second::dht::sample_infohashes
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' target'
    - f
    argTypes:
    - udp::endpoint
    - sha1_hash
    - "std::function<void(node_id\n\t\t\t, time_duration\n\t\t\t, int, std::vector<sha1_hash>\n\t\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: libtorrent::dht::dht_tracker::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - rand_v4
    - rand_v6
    - second::dht::sample_infohashes
    - first::get_external_address
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::sample_infohashes(udp::endpoint const& ep, sha1_hash
      const& target\n\t\t, std::function<void(node_id\n\t\t\t, time_duration\n\t\t\t,
      int, std::vector<sha1_hash>\n\t\t\t, std::vector<std::pair<sha1_hash, udp::endpoint>>)>
      f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: libtorrent::dht::get_immutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:377,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' it'
    - ctx
    - f
    argTypes:
    - item
    - std::shared_ptr<get_immutable_item_ctx>
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: libtorrent::dht::get_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    linkageType: ''
    returnType: void
    signature: "void get_immutable_item_callback(item const& it\n\t\t, std::shared_ptr<get_immutable_item_ctx>
      ctx\n\t\t, std::function<void(item const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::dht::get_mutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_ctx(int traversals)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:401,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' it'
    - authoritative
    - ctx
    - f
    argTypes:
    - item
    - bool
    - std::shared_ptr<get_mutable_item_ctx>
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: libtorrent::dht::get_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<get_mutable_item_ctx>::it::empty
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    - TORRENT_ASSERT
    - std::shared_ptr<get_mutable_item_ctx>::it::seq
    - libtorrent::dht::seq
    linkageType: ''
    returnType: void
    signature: "void get_mutable_item_callback(item const& it, bool authoritative\n\t\t,
      std::shared_ptr<get_mutable_item_ctx> ctx\n\t\t, std::function<void(item const&,
      bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::dht::put_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - responses
    - ctx
    - f
    argTypes:
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::put_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item_callback(int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(int)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' it'
    - responses
    - ctx
    - cb
    argTypes:
    - item
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(item const&, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: libtorrent::dht::put_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item_callback(item const& it, int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(item const&, int)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: libtorrent::dht::get_immutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_immutable_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:375,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:377,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' it'
    - ctx
    - f
    argTypes:
    - item
    - std::shared_ptr<get_immutable_item_ctx>
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: libtorrent::dht::get_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    linkageType: ''
    returnType: void
    signature: "void get_immutable_item_callback(item const& it\n\t\t, std::shared_ptr<get_immutable_item_ctx>
      ctx\n\t\t, std::function<void(item const&)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::dht::get_mutable_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_mutable_item_ctx(int traversals)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: libtorrent::dht::is_mutable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:395,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: std::shared_ptr<get_mutable_item_ctx>::it::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: libtorrent::dht::seq
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:398,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:401,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ' it'
    - authoritative
    - ctx
    - f
    argTypes:
    - item
    - bool
    - std::shared_ptr<get_mutable_item_ctx>
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: libtorrent::dht::get_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<get_mutable_item_ctx>::it::empty
    - libtorrent::dht::is_mutable
    - libtorrent::dht::empty
    - f
    - TORRENT_ASSERT
    - std::shared_ptr<get_mutable_item_ctx>::it::seq
    - libtorrent::dht::seq
    linkageType: ''
    returnType: void
    signature: "void get_mutable_item_callback(item const& it, bool authoritative\n\t\t,
      std::shared_ptr<get_mutable_item_ctx> ctx\n\t\t, std::function<void(item const&,
      bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - traversals
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: libtorrent::dht::put_item_ctx
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_item_ctx(int traversals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - responses
    - ctx
    - f
    argTypes:
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::put_immutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item_callback(int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(int)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' it'
    - responses
    - ctx
    - cb
    argTypes:
    - item
    - int
    - std::shared_ptr<put_item_ctx>
    - std::function<void(item const&, int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: libtorrent::dht::put_mutable_item_callback
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item_callback(item const& it, int responses, std::shared_ptr<put_item_ctx>
      ctx\n\t\t, std::function<void(item const&, int)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<get_immutable_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:439,1
    - Dst: second::dht::get_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:441,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - cb
    argTypes:
    - sha1_hash
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 442
    functionName: libtorrent::dht::dht_tracker::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_item
    - std::bind
    - size
    - std::make_shared<get_immutable_item_ctx>
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_item(sha1_hash const& target\n\t\t, std::function<void(item
      const&)> cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<get_mutable_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:450,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:450,1
    - Dst: second::dht::get_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:452,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' key'
    - cb
    - salt
    argTypes:
    - public_key
    - std::function<void(item const&, bool)>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 453
    functionName: libtorrent::dht::dht_tracker::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::get_item
    - std::bind
    - size
    - std::make_shared<get_mutable_item_ctx>
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::get_item(public_key const& key\n\t\t, std::function<void(item
      const&, bool)> cb\n\t\t, std::string salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:459,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:459,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:460,1
    - Dst: std::make_shared<put_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:462,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:462,1
    - Dst: second::dht::put_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:464,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' data'
    - cb
    argTypes:
    - entry
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 466
    functionName: libtorrent::dht::dht_tracker::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - item_target_id
    - std::make_shared<put_item_ctx>
    - std::bind
    - second::dht::put_item
    - std::back_inserter
    - size
    - bencode
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::put_item(entry const& data\n\t\t, std::function<void(int)>
      cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<put_item_ctx>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:472,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:472,1
    - Dst: second::dht::put_item
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:474,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ' key'
    - cb
    - data_cb
    - salt
    argTypes:
    - public_key
    - std::function<void(item const&, int)>
    - std::function<void(item&)>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: libtorrent::dht::dht_tracker::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<put_item_ctx>
    - second::dht::put_item
    - std::bind
    - size
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::put_item(public_key const& key\n\t\t, std::function<void(item
      const&, int)> cb\n\t\t, std::function<void(item&)> data_cb, std::string salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: first::get_external_address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:483,1
    - Dst: second::dht::direct_request
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - f
    argTypes:
    - udp::endpoint
    - entry
    - std::function<void(msg const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: libtorrent::dht::dht_tracker::direct_request
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - rand_v4
    - rand_v6
    - second::dht::direct_request
    - first::get_external_address
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::direct_request(udp::endpoint const& ep, entry& e\n\t\t,
      std::function<void(msg const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:496,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:496,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:497,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:497,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:498,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:498,1
    - Dst: error_code
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:499,1
    - Dst: system_category
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:499,1
    - Dst: second::dht::unreachable
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 2
    argNames:
    - ' ec'
    - ' ep'
    argTypes:
    - error_code
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 506
    functionName: libtorrent::dht::dht_tracker::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::unreachable
    - error_code
    - system_category
    linkageType: ''
    returnType: void
    signature: void dht_tracker::incoming_error(error_code const& ec, udp::endpoint
      const& ep)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:511,1
    - Dst: span<char const>::front
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:513,1
    - Dst: span<char const>::back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:514,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:516,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:518,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:519,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:520,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:522,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:522,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:524,1
    - Dst: std::find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: std::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:531,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:533,1
    - Dst: incoming
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:538,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:540,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:544,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:548,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:551,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:553,1
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:558,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:560,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:562,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:569,1
    - Dst: second::dht::incoming
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - ' s'
    - ' ep'
    - buf
    argTypes:
    - aux::listen_socket_handle
    - udp::endpoint
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 576
    functionName: libtorrent::dht::dht_tracker::incoming_packet
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::front
    - libtorrent::aux::is_v6
    - span<char const>::size
    - get_bool
    - bdecode
    - std::begin
    - std::find
    - inc_stats_counter
    - type
    - address
    - time_now
    - libtorrent::aux::is_v4
    - std::end
    - TORRENT_ASSERT
    - log_packet
    - span<char const>::back
    - span<char const>::data
    - incoming
    - second::dht::incoming
    linkageType: ''
    returnType: bool
    signature: "bool dht_tracker::incoming_packet(aux::listen_socket_handle const&
      s\n\t\t, udp::endpoint const& ep, span<char const> const buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - ' ios'
    - ' s'
    - sock
    - ' settings'
    - ' nid'
    - observer
    - ' cnt'
    - get_foreign_node
    - ' storage'
    argTypes:
    - io_context
    - aux::listen_socket_handle
    - socket_manager*
    - aux::session_settings
    - node_id
    - dht_observer*
    - counters
    - get_foreign_node_t
    - dht_storage_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: "dht_tracker::tracker_node::tracker_node(io_context& ios\n\t\t,
      aux::listen_socket_handle const& s, socket_manager* sock\n\t\t, aux::session_settings
      const& settings\n\t\t, node_id const& nid\n\t\t, dht_observer* observer, counters&
      cnt\n\t\t, get_foreign_node_t get_foreign_node\n\t\t, dht_storage_interface&
      storage)"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void dht_tracker::tracker_node::tracker_node(io_context& ios\n\t\t,
      aux::listen_socket_handle const& s, socket_manager* sock\n\t\t, aux::session_settings
      const& settings\n\t\t, node_id const& nid\n\t\t, dht_observer* observer, counters&
      cnt\n\t\t, get_foreign_node_t get_foreign_node\n\t\t, dht_storage_interface&
      storage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:593,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:594,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:596,1
    - Dst: auto::second::dht::m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: libtorrent::dht::dht_tracker::live_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::nid
    - begin
    - std::vector::emplace_back
    - end
    - auto::second::dht::m_table::for_each_node
    - std::find_if
    linkageType: ''
    returnType: std::vector<std::pair<node_id, udp::endpoint>>
    signature: std::vector<std::pair<node_id, udp::endpoint>> dht_tracker::live_nodes(node_id
      const& nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:611,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' dht'
    argTypes:
    - node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - m_table::for_each_node
    - libtorrent::dht::ep
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: std::vector<udp::endpoint> save_nodes(node const& dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_table::for_each_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:611,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' dht'
    argTypes:
    - node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - m_table::for_each_node
    - libtorrent::dht::ep
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<udp::endpoint>
    signature: std::vector<udp::endpoint> save_nodes(node const& dht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dht_state::nids::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: second::dht::nid
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:626,1
    - Dst: save_nodes
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:627,1
    - Dst: dht_state::nodes::insert
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: dht_state::nodes::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    - Dst: auto::end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 631
    functionName: libtorrent::dht::dht_tracker::state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - dht_state::nodes::end
    - dht_state::nodes::insert
    - save_nodes
    - first::get_local_endpoint
    - auto::end
    - dht_state::nids::emplace_back
    - auto::begin
    - second::dht::nid
    linkageType: ''
    returnType: dht_state
    signature: dht_state dht_tracker::state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::add_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 637
    functionName: libtorrent::dht::dht_tracker::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::add_node
    linkageType: ''
    returnType: void
    signature: void dht_tracker::add_node(udp::endpoint const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::dht::add_router_node
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: libtorrent::dht::dht_tracker::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - second::dht::add_router_node
    linkageType: ''
    returnType: void
    signature: void dht_tracker::add_router_node(udp::endpoint const& node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:647,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:651,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:654,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:656,1
    - Dst: microseconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:657,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:657,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:659,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:663,1
    - Dst: total_microseconds
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:663,1
    - Dst: aux::numeric_cast<int>
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:667,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 677
    functionName: libtorrent::dht::dht_tracker::has_quota
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - total_microseconds
    - seconds
    - libtorrent::aux::max
    - std::min
    - get_int
    - std::int64_t
    - aux::numeric_cast<int>
    - TORRENT_ASSERT
    - microseconds
    linkageType: ''
    returnType: bool
    signature: bool dht_tracker::has_quota()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:681,1
    - Dst: std::string
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:687,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:689,1
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:690,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:690,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:695,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:698,1
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:698,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:703,1
    - Dst: first::get_local_endpoint
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:705,1
    - Dst: protocol
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:705,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:707,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:708,1
    - Dst: m_send_fun
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:714,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:719,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:721,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:726,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:726,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:728,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:729,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:730,1
    - Dst: log_packet
      Src: /src/libtorrent/src/kademlia/dht_tracker.cpp:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - ' s'
    - ' e'
    - ' addr'
    argTypes:
    - aux::listen_socket_handle
    - entry
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 735
    functionName: libtorrent::dht::dht_tracker::send_packet
    functionSourceFile: /src/libtorrent/src/kademlia/dht_tracker.cpp
    functionUses: 0
    functionsReached:
    - protocol
    - libtorrent::aux::is_v6
    - get_local_endpoint
    - begin
    - end
    - std::string
    - find
    - TORRENT_ASSERT
    - first::get_local_endpoint
    - inc_stats_counter
    - std::back_inserter
    - clear
    - m_send_fun
    - log_packet
    - size
    - bencode
    - std::find_if
    linkageType: ''
    returnType: bool
    signature: bool dht_tracker::send_packet(aux::listen_socket_handle const& s, entry&
      e, udp::endpoint const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:43,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:43,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:48,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' id_'
    - ' ep'
    - roundtriptime
    - pinged
    argTypes:
    - node_id
    - udp::endpoint
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::node_entry::node_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached:
    - verify_id
    - address
    - libtorrent::aux::time_now
    - min_time
    linkageType: ''
    returnType: void
    signature: "void node_entry::node_entry(node_id const& id_, udp::endpoint const&
      ep\n\t\t, int roundtriptime\n\t\t, bool pinged)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: libtorrent::dht::node_entry::node_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_entry::node_entry(udp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:59,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:61,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - new_rtt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: libtorrent::dht::node_entry::update_rtt
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void node_entry::update_rtt(int const new_rtt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:43,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:43,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:48,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' id_'
    - ' ep'
    - roundtriptime
    - pinged
    argTypes:
    - node_id
    - udp::endpoint
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::node_entry::node_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached:
    - verify_id
    - address
    - libtorrent::aux::time_now
    - min_time
    linkageType: ''
    returnType: void
    signature: "void node_entry::node_entry(node_id const& id_, udp::endpoint const&
      ep\n\t\t, int roundtriptime\n\t\t, bool pinged)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: libtorrent::dht::node_entry::node_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_entry::node_entry(udp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:59,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:61,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - new_rtt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: libtorrent::dht::node_entry::update_rtt
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void node_entry::update_rtt(int const new_rtt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:43,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:43,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:48,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' id_'
    - ' ep'
    - roundtriptime
    - pinged
    argTypes:
    - node_id
    - udp::endpoint
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::node_entry::node_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached:
    - verify_id
    - address
    - libtorrent::aux::time_now
    - min_time
    linkageType: ''
    returnType: void
    signature: "void node_entry::node_entry(node_id const& id_, udp::endpoint const&
      ep\n\t\t, int roundtriptime\n\t\t, bool pinged)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: libtorrent::dht::node_entry::node_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_entry::node_entry(udp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:59,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:61,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - new_rtt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: libtorrent::dht::node_entry::update_rtt
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void node_entry::update_rtt(int const new_rtt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:43,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:43,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:48,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' id_'
    - ' ep'
    - roundtriptime
    - pinged
    argTypes:
    - node_id
    - udp::endpoint
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::node_entry::node_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached:
    - verify_id
    - address
    - libtorrent::aux::time_now
    - min_time
    linkageType: ''
    returnType: void
    signature: "void node_entry::node_entry(node_id const& id_, udp::endpoint const&
      ep\n\t\t, int roundtriptime\n\t\t, bool pinged)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: libtorrent::dht::node_entry::node_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_entry::node_entry(udp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:58,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:59,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:61,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node_entry.cpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - new_rtt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: libtorrent::dht::node_entry::update_rtt
    functionSourceFile: /src/libtorrent/src/kademlia/node_entry.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint16_t
    linkageType: ''
    returnType: void
    signature: void node_entry::update_rtt(int const new_rtt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - b
    - e
    - cmp
    argTypes:
    - It
    - It
    - Cmp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::is_sorted
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: bool
    signature: bool is_sorted(It b, It e, Cmp cmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:80,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::traversal_algorithm::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr traversal_algorithm::new_observer(udp::endpoint const&
      ep\n\t, node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: search_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:93,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:94,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:95,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:97,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:98,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' dht_node'
    - ' target'
    argTypes:
    - node
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::traversal_algorithm::traversal_algorithm
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - search_id
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - m_table::bucket_size
    - get_node
    - dht_observer*::should_log
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::traversal_algorithm(node& dht_node, node_id
      const& target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: get
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:108,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:110,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:112,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:115,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:125,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:125,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: libtorrent::dht::traversal_algorithm::resort_result
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::is_sorted
    - id
    - std::move
    - begin
    - compare_ref
    - erase
    - insert
    - end
    - TORRENT_ASSERT
    - std::size_t
    - std::lower_bound
    - get
    - size
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::resort_result(observer* o)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:139,1
    - Dst: m_rpc::allocation_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:139,1
    - Dst: libtorrent::dht::traversal_algorithm::new_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:140,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:144,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:146,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:150,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:156,1
    - Dst: auto::set_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:158,1
    - Dst: generate_random_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:158,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:161,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:164,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:165,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:167,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:169,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:169,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:170,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:183,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:183,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:187,1
    - Dst: settings
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:191,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:194,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:196,1
    - Dst: address_v6::bytes_type::cbegin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:197,1
    - Dst: libtorrent::aux::read_uint64
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:198,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:200,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:207,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:209,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:217,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:218,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:220,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: auto::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:230,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:231,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:231,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:232,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:235,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:236,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:238,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:240,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:240,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:241,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:241,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:244,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:251,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:255,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:271,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:280,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:281,1
    - Dst: std::int8_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:281,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 3
    argNames:
    - ' id'
    - ' addr'
    - flags
    argTypes:
    - node_id
    - udp::endpoint
    - observer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 283
    functionName: libtorrent::dht::traversal_algorithm::add_entry
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - auto::set_id
    - id
    - begin
    - std::int8_t
    - std::min
    - push_back
    - libtorrent::dht::is_sorted
    - is_all_zeros
    - end
    - print_endpoint
    - get_node
    - distance_exp
    - libtorrent::dht::traversal_algorithm::new_observer
    - std::size_t
    - libtorrent::dht::traversal_algorithm::name
    - libtorrent::aux::read_uint64
    - libtorrent::dht::traversal_algorithm::done
    - print_address
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - TORRENT_ASSERT
    - m_rpc::allocation_size
    - size
    - generate_random_id
    - std::for_each
    - auto::target_addr
    - compare_ref
    - address_v6::bytes_type::cbegin
    - auto::id
    - insert
    - std::none_of
    - resize
    - dht_observer*::should_log
    - settings
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: "void traversal_algorithm::add_entry(node_id const& id\n\t, udp::endpoint
      const& addr, observer_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:290,1
    - Dst: libtorrent::dht::traversal_algorithm::add_router_entries
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:290,1
    - Dst: libtorrent::dht::traversal_algorithm::init
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:291,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:292,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: libtorrent::dht::traversal_algorithm::start
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - libtorrent::dht::traversal_algorithm::init
    - libtorrent::dht::traversal_algorithm::add_requests
    - libtorrent::dht::traversal_algorithm::add_router_entries
    - size
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: libtorrent::dht::traversal_algorithm::name
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * traversal_algorithm::name() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:307,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:308,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:308,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:310,1
    - Dst: m_table::heard_about
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:317,1
    - Dst: libtorrent::dht::traversal_algorithm::add_entry
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' id'
    - ' addr'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 320
    functionName: libtorrent::dht::traversal_algorithm::traverse
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::add_entry
    - is_all_zeros
    - dht_observer*::log
    - m_table::heard_about
    - get_node
    - dht_observer*::should_log
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::traverse(node_id const& id, udp::endpoint
      const& addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:326,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:333,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:337,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:344,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:346,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 348
    functionName: libtorrent::dht::traversal_algorithm::finished
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    - libtorrent::dht::traversal_algorithm::add_requests
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::finished(observer_ptr o)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: m_table::node_failed
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:364,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:374,1
    - Dst: libtorrent::dht::traversal_algorithm::log_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:380,1
    - Dst: libtorrent::dht::traversal_algorithm::log_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:395,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:401,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:406,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - o
    - flags
    argTypes:
    - observer_ptr
    - traversal_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::traversal_algorithm::failed
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - m_table::node_failed
    - libtorrent::dht::traversal_algorithm::done
    - empty
    - libtorrent::dht::traversal_algorithm::log_timeout
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::dht::traversal_algorithm::add_requests
    - observer_ptr::id
    - observer_ptr::target_ep
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::failed(observer_ptr o, traversal_flags_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:413,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:414,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:416,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:420,1
    - Dst: target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:420,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' o'
    - prefix
    argTypes:
    - observer_ptr
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::traversal_algorithm::log_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 1
    functionsReached:
    - print_address
    - id
    - target_addr
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - libtorrent::dht::traversal_algorithm::name
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::log_timeout(observer_ptr const& o, char const*
      prefix) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:430,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:446,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:459,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:461,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:463,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:464,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:466,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:466,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:467,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:467,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:470,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:470,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:477,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:479,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:481,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 490
    functionName: libtorrent::dht::traversal_algorithm::done
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 4
    functionsReached:
    - id
    - libtorrent::aux::to_hex
    - m_table::bucket_size
    - dht_observer*::log
    - print_endpoint
    - TORRENT_ASSERT
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - clear
    - libtorrent::dht::traversal_algorithm::name
    - target_ep
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::done()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:497,1
    - Dst: settings
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:509,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:519,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:520,1
    - Dst: auto::get
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:526,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:529,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:544,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:545,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:547,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:551,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: observer*::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: observer*::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: observer*::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:560,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:562,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:564,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:564,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 580
    functionName: libtorrent::dht::traversal_algorithm::add_requests
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 3
    functionsReached:
    - print_address
    - libtorrent::aux::to_hex
    - begin
    - auto::get
    - observer*::id
    - end
    - m_table::bucket_size
    - dht_observer*::log
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - settings
    - libtorrent::dht::traversal_algorithm::name
    - observer*::target_addr
    - invoke
    linkageType: ''
    returnType: bool
    signature: bool traversal_algorithm::add_requests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:586,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:587,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:589,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: m_table::begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: m_table::end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: libtorrent::dht::traversal_algorithm::add_entry
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:595,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 596
    functionName: libtorrent::dht::traversal_algorithm::add_router_entries
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::traversal_algorithm::add_entry
    - std::distance
    - node_id
    - dht_observer*::log
    - m_table::end
    - get_node
    - dht_observer*::should_log
    - m_table::begin
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::add_router_entries()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::int8_t>
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:601,1
    - Dst: branch_factor
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:601,1
    - Dst: add_traversal_algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 607
    functionName: libtorrent::dht::traversal_algorithm::init
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 1
    functionsReached:
    - aux::numeric_cast<std::int8_t>
    - branch_factor
    - add_traversal_algorithm
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_traversal_algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 613
    functionName: traversal_algorithm::~traversal_algorithm()
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - remove_traversal_algorithm
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::~traversal_algorithm()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:622,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:628,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: sent
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: has_short_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - dht_lookup
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 641
    functionName: libtorrent::dht::traversal_algorithm::status
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    - sent
    - has_short_timeout
    - std::min
    - libtorrent::dht::traversal_algorithm::name
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::status(dht_lookup& l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:672,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:673,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:675,1
    - Dst: aux::numeric_cast<std::int8_t>
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:681,1
    - Dst: branch_factor
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:681,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 685
    functionName: libtorrent::dht::traversal_algorithm::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::numeric_cast<std::int8_t>
    - branch_factor
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::check_invariant() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:690,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:693,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:694,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:695,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:699,1
    - Dst: libtorrent::dht::read_node_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - nodes_key
    - ' protocol'
    - ' r'
    - f
    argTypes:
    - char*
    - udp
    - bdecode_node
    - std::function<void(const node_endpoint&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 702
    functionName: libtorrent::dht::look_for_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::address_size
    - libtorrent::dht::read_node_endpoint
    - f
    - bdecode_node::string_length
    - dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void look_for_nodes(char const* nodes_key, udp const& protocol, bdecode_node
      const& r, std::function<void(const node_endpoint&)> f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:706,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:709,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:711,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:713,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:715,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:721,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:724,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:725,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:728,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:728,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:729,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:731,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:731,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: look_for_nodes
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:737,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:739,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:741,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:743,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:745,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:746,1
    - Dst: set_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 755
    functionName: libtorrent::dht::traversal_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - libtorrent::aux::to_hex
    - look_for_nodes
    - node_id
    - dht_observer*::log
    - algorithm
    - print_endpoint
    - bdecode_node::string_length
    - set_id
    - dht_observer*::should_log
    - timeout
    - target_ep
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void traversal_observer::reply(msg const& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - b
    - e
    - cmp
    argTypes:
    - It
    - It
    - Cmp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::is_sorted
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 2
    functionsReached:
    - cmp
    linkageType: ''
    returnType: bool
    signature: bool is_sorted(It b, It e, Cmp cmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:80,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::traversal_algorithm::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 1
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr traversal_algorithm::new_observer(udp::endpoint const&
      ep\n\t, node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: search_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:93,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:94,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:95,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:97,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:98,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' dht_node'
    - ' target'
    argTypes:
    - node
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::traversal_algorithm::traversal_algorithm
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - search_id
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - m_table::bucket_size
    - get_node
    - dht_observer*::should_log
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::traversal_algorithm(node& dht_node, node_id
      const& target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: get
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:108,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:110,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:112,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:115,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:125,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:125,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: libtorrent::dht::traversal_algorithm::resort_result
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::is_sorted
    - id
    - std::move
    - begin
    - compare_ref
    - erase
    - insert
    - end
    - TORRENT_ASSERT
    - std::size_t
    - std::lower_bound
    - get
    - size
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::resort_result(observer* o)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:139,1
    - Dst: m_rpc::allocation_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:139,1
    - Dst: libtorrent::dht::traversal_algorithm::new_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:140,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:144,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:146,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:150,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:156,1
    - Dst: auto::set_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:158,1
    - Dst: generate_random_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:158,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:161,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:164,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:165,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:167,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:169,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:169,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:170,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:183,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:183,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:187,1
    - Dst: settings
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:191,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:194,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:196,1
    - Dst: address_v6::bytes_type::cbegin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:197,1
    - Dst: libtorrent::aux::read_uint64
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:198,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:200,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:207,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:209,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:217,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:218,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:220,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: auto::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:230,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:231,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:231,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:232,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:235,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:236,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:238,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:240,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:240,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:241,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:241,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:244,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:251,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:255,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:271,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:280,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:281,1
    - Dst: std::int8_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:281,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 3
    argNames:
    - ' id'
    - ' addr'
    - flags
    argTypes:
    - node_id
    - udp::endpoint
    - observer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 283
    functionName: libtorrent::dht::traversal_algorithm::add_entry
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 2
    functionsReached:
    - auto::set_id
    - id
    - begin
    - std::int8_t
    - std::min
    - push_back
    - libtorrent::dht::is_sorted
    - is_all_zeros
    - end
    - print_endpoint
    - get_node
    - distance_exp
    - libtorrent::dht::traversal_algorithm::new_observer
    - std::size_t
    - libtorrent::dht::traversal_algorithm::name
    - libtorrent::aux::read_uint64
    - libtorrent::dht::traversal_algorithm::done
    - print_address
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - TORRENT_ASSERT
    - m_rpc::allocation_size
    - size
    - generate_random_id
    - std::for_each
    - auto::target_addr
    - compare_ref
    - address_v6::bytes_type::cbegin
    - auto::id
    - insert
    - std::none_of
    - resize
    - dht_observer*::should_log
    - settings
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: "void traversal_algorithm::add_entry(node_id const& id\n\t, udp::endpoint
      const& addr, observer_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:290,1
    - Dst: libtorrent::dht::traversal_algorithm::add_router_entries
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:290,1
    - Dst: libtorrent::dht::traversal_algorithm::init
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:291,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:292,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: libtorrent::dht::traversal_algorithm::start
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - libtorrent::dht::traversal_algorithm::init
    - libtorrent::dht::traversal_algorithm::add_requests
    - libtorrent::dht::traversal_algorithm::add_router_entries
    - size
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: libtorrent::dht::traversal_algorithm::name
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * traversal_algorithm::name() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:307,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:308,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:308,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:310,1
    - Dst: m_table::heard_about
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:317,1
    - Dst: libtorrent::dht::traversal_algorithm::add_entry
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' id'
    - ' addr'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 320
    functionName: libtorrent::dht::traversal_algorithm::traverse
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::add_entry
    - is_all_zeros
    - dht_observer*::log
    - m_table::heard_about
    - get_node
    - dht_observer*::should_log
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::traverse(node_id const& id, udp::endpoint
      const& addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:326,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:333,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:337,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:344,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:346,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 348
    functionName: libtorrent::dht::traversal_algorithm::finished
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    - libtorrent::dht::traversal_algorithm::add_requests
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::finished(observer_ptr o)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: m_table::node_failed
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:364,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:374,1
    - Dst: libtorrent::dht::traversal_algorithm::log_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:380,1
    - Dst: libtorrent::dht::traversal_algorithm::log_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:395,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:401,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:406,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - o
    - flags
    argTypes:
    - observer_ptr
    - traversal_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::traversal_algorithm::failed
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - m_table::node_failed
    - libtorrent::dht::traversal_algorithm::done
    - empty
    - libtorrent::dht::traversal_algorithm::log_timeout
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::dht::traversal_algorithm::add_requests
    - observer_ptr::id
    - observer_ptr::target_ep
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::failed(observer_ptr o, traversal_flags_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:413,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:414,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:416,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:420,1
    - Dst: target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:420,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' o'
    - prefix
    argTypes:
    - observer_ptr
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::traversal_algorithm::log_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 2
    functionsReached:
    - print_address
    - id
    - target_addr
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - libtorrent::dht::traversal_algorithm::name
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::log_timeout(observer_ptr const& o, char const*
      prefix) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:430,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:446,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:459,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:461,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:463,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:464,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:466,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:466,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:467,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:467,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:470,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:470,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:477,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:479,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:481,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 490
    functionName: libtorrent::dht::traversal_algorithm::done
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 8
    functionsReached:
    - id
    - libtorrent::aux::to_hex
    - m_table::bucket_size
    - dht_observer*::log
    - print_endpoint
    - TORRENT_ASSERT
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - clear
    - libtorrent::dht::traversal_algorithm::name
    - target_ep
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::done()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:497,1
    - Dst: settings
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:509,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:519,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:520,1
    - Dst: auto::get
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:526,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:529,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:544,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:545,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:547,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:551,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: observer*::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: observer*::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: observer*::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:560,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:562,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:564,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:564,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 580
    functionName: libtorrent::dht::traversal_algorithm::add_requests
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 6
    functionsReached:
    - print_address
    - libtorrent::aux::to_hex
    - begin
    - auto::get
    - observer*::id
    - end
    - m_table::bucket_size
    - dht_observer*::log
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - settings
    - libtorrent::dht::traversal_algorithm::name
    - observer*::target_addr
    - invoke
    linkageType: ''
    returnType: bool
    signature: bool traversal_algorithm::add_requests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:586,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:587,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:589,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: m_table::begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: m_table::end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: libtorrent::dht::traversal_algorithm::add_entry
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:595,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 596
    functionName: libtorrent::dht::traversal_algorithm::add_router_entries
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::traversal_algorithm::add_entry
    - std::distance
    - node_id
    - dht_observer*::log
    - m_table::end
    - get_node
    - dht_observer*::should_log
    - m_table::begin
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::add_router_entries()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::int8_t>
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:601,1
    - Dst: branch_factor
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:601,1
    - Dst: add_traversal_algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 607
    functionName: libtorrent::dht::traversal_algorithm::init
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 2
    functionsReached:
    - aux::numeric_cast<std::int8_t>
    - branch_factor
    - add_traversal_algorithm
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_traversal_algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 613
    functionName: traversal_algorithm::~traversal_algorithm()
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - remove_traversal_algorithm
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::~traversal_algorithm()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:622,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:628,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: sent
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: has_short_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - dht_lookup
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 641
    functionName: libtorrent::dht::traversal_algorithm::status
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    - sent
    - has_short_timeout
    - std::min
    - libtorrent::dht::traversal_algorithm::name
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::status(dht_lookup& l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:672,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:673,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:675,1
    - Dst: aux::numeric_cast<std::int8_t>
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:681,1
    - Dst: branch_factor
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:681,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 685
    functionName: libtorrent::dht::traversal_algorithm::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::numeric_cast<std::int8_t>
    - branch_factor
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::check_invariant() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:690,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:693,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:694,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:695,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:699,1
    - Dst: libtorrent::dht::read_node_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - nodes_key
    - ' protocol'
    - ' r'
    - f
    argTypes:
    - char*
    - udp
    - bdecode_node
    - std::function<void(const node_endpoint&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 702
    functionName: libtorrent::dht::look_for_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::address_size
    - libtorrent::dht::read_node_endpoint
    - f
    - bdecode_node::string_length
    - dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void look_for_nodes(char const* nodes_key, udp const& protocol, bdecode_node
      const& r, std::function<void(const node_endpoint&)> f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:706,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:709,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:711,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:713,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:715,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:721,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:724,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:725,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:728,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:728,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:729,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:731,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:731,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: look_for_nodes
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:737,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:739,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:741,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:743,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:745,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:746,1
    - Dst: set_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 755
    functionName: libtorrent::dht::traversal_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - libtorrent::aux::to_hex
    - look_for_nodes
    - node_id
    - dht_observer*::log
    - algorithm
    - print_endpoint
    - bdecode_node::string_length
    - set_id
    - dht_observer*::should_log
    - timeout
    - target_ep
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void traversal_observer::reply(msg const& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - b
    - e
    - cmp
    argTypes:
    - It
    - It
    - Cmp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::is_sorted
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 4
    functionsReached:
    - cmp
    linkageType: ''
    returnType: bool
    signature: bool is_sorted(It b, It e, Cmp cmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:80,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::traversal_algorithm::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 2
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr traversal_algorithm::new_observer(udp::endpoint const&
      ep\n\t, node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: search_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:93,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:94,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:95,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:97,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:98,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' dht_node'
    - ' target'
    argTypes:
    - node
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::traversal_algorithm::traversal_algorithm
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - search_id
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - m_table::bucket_size
    - get_node
    - dht_observer*::should_log
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::traversal_algorithm(node& dht_node, node_id
      const& target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: get
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:108,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:110,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:112,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:115,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:125,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:125,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: libtorrent::dht::traversal_algorithm::resort_result
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::is_sorted
    - id
    - std::move
    - begin
    - compare_ref
    - erase
    - insert
    - end
    - TORRENT_ASSERT
    - std::size_t
    - std::lower_bound
    - get
    - size
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::resort_result(observer* o)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:139,1
    - Dst: m_rpc::allocation_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:139,1
    - Dst: libtorrent::dht::traversal_algorithm::new_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:140,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:144,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:146,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:150,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:156,1
    - Dst: auto::set_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:158,1
    - Dst: generate_random_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:158,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:161,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:164,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:165,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:167,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:169,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:169,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:170,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:183,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:183,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:187,1
    - Dst: settings
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:191,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:194,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:196,1
    - Dst: address_v6::bytes_type::cbegin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:197,1
    - Dst: libtorrent::aux::read_uint64
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:198,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:200,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:207,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:209,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:217,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:218,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:220,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: auto::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:230,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:231,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:231,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:232,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:235,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:236,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:238,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:240,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:240,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:241,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:241,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:244,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:251,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:255,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:271,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:280,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:281,1
    - Dst: std::int8_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:281,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 3
    argNames:
    - ' id'
    - ' addr'
    - flags
    argTypes:
    - node_id
    - udp::endpoint
    - observer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 283
    functionName: libtorrent::dht::traversal_algorithm::add_entry
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 4
    functionsReached:
    - auto::set_id
    - id
    - begin
    - std::int8_t
    - std::min
    - push_back
    - libtorrent::dht::is_sorted
    - is_all_zeros
    - end
    - print_endpoint
    - get_node
    - distance_exp
    - libtorrent::dht::traversal_algorithm::new_observer
    - std::size_t
    - libtorrent::dht::traversal_algorithm::name
    - libtorrent::aux::read_uint64
    - libtorrent::dht::traversal_algorithm::done
    - print_address
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - TORRENT_ASSERT
    - m_rpc::allocation_size
    - size
    - generate_random_id
    - std::for_each
    - auto::target_addr
    - compare_ref
    - address_v6::bytes_type::cbegin
    - auto::id
    - insert
    - std::none_of
    - resize
    - dht_observer*::should_log
    - settings
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: "void traversal_algorithm::add_entry(node_id const& id\n\t, udp::endpoint
      const& addr, observer_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:290,1
    - Dst: libtorrent::dht::traversal_algorithm::add_router_entries
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:290,1
    - Dst: libtorrent::dht::traversal_algorithm::init
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:291,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:292,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: libtorrent::dht::traversal_algorithm::start
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - libtorrent::dht::traversal_algorithm::init
    - libtorrent::dht::traversal_algorithm::add_requests
    - libtorrent::dht::traversal_algorithm::add_router_entries
    - size
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: libtorrent::dht::traversal_algorithm::name
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * traversal_algorithm::name() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:307,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:308,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:308,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:310,1
    - Dst: m_table::heard_about
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:317,1
    - Dst: libtorrent::dht::traversal_algorithm::add_entry
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' id'
    - ' addr'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 320
    functionName: libtorrent::dht::traversal_algorithm::traverse
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::add_entry
    - is_all_zeros
    - dht_observer*::log
    - m_table::heard_about
    - get_node
    - dht_observer*::should_log
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::traverse(node_id const& id, udp::endpoint
      const& addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:326,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:333,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:337,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:344,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:346,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 348
    functionName: libtorrent::dht::traversal_algorithm::finished
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    - libtorrent::dht::traversal_algorithm::add_requests
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::finished(observer_ptr o)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: m_table::node_failed
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:364,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:374,1
    - Dst: libtorrent::dht::traversal_algorithm::log_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:380,1
    - Dst: libtorrent::dht::traversal_algorithm::log_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:395,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:401,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:406,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - o
    - flags
    argTypes:
    - observer_ptr
    - traversal_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::traversal_algorithm::failed
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - m_table::node_failed
    - libtorrent::dht::traversal_algorithm::done
    - empty
    - libtorrent::dht::traversal_algorithm::log_timeout
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::dht::traversal_algorithm::add_requests
    - observer_ptr::id
    - observer_ptr::target_ep
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::failed(observer_ptr o, traversal_flags_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:413,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:414,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:416,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:420,1
    - Dst: target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:420,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' o'
    - prefix
    argTypes:
    - observer_ptr
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::traversal_algorithm::log_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 3
    functionsReached:
    - print_address
    - id
    - target_addr
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - libtorrent::dht::traversal_algorithm::name
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::log_timeout(observer_ptr const& o, char const*
      prefix) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:430,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:446,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:459,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:461,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:463,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:464,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:466,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:466,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:467,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:467,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:470,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:470,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:477,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:479,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:481,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 490
    functionName: libtorrent::dht::traversal_algorithm::done
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 12
    functionsReached:
    - id
    - libtorrent::aux::to_hex
    - m_table::bucket_size
    - dht_observer*::log
    - print_endpoint
    - TORRENT_ASSERT
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - clear
    - libtorrent::dht::traversal_algorithm::name
    - target_ep
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::done()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:497,1
    - Dst: settings
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:509,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:519,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:520,1
    - Dst: auto::get
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:526,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:529,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:544,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:545,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:547,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:551,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: observer*::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: observer*::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: observer*::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:560,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:562,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:564,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:564,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 580
    functionName: libtorrent::dht::traversal_algorithm::add_requests
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 9
    functionsReached:
    - print_address
    - libtorrent::aux::to_hex
    - begin
    - auto::get
    - observer*::id
    - end
    - m_table::bucket_size
    - dht_observer*::log
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - settings
    - libtorrent::dht::traversal_algorithm::name
    - observer*::target_addr
    - invoke
    linkageType: ''
    returnType: bool
    signature: bool traversal_algorithm::add_requests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:586,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:587,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:589,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: m_table::begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: m_table::end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: libtorrent::dht::traversal_algorithm::add_entry
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:595,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 596
    functionName: libtorrent::dht::traversal_algorithm::add_router_entries
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::traversal_algorithm::add_entry
    - std::distance
    - node_id
    - dht_observer*::log
    - m_table::end
    - get_node
    - dht_observer*::should_log
    - m_table::begin
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::add_router_entries()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::int8_t>
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:601,1
    - Dst: branch_factor
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:601,1
    - Dst: add_traversal_algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 607
    functionName: libtorrent::dht::traversal_algorithm::init
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 3
    functionsReached:
    - aux::numeric_cast<std::int8_t>
    - branch_factor
    - add_traversal_algorithm
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_traversal_algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 613
    functionName: traversal_algorithm::~traversal_algorithm()
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - remove_traversal_algorithm
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::~traversal_algorithm()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:622,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:628,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: sent
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: has_short_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - dht_lookup
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 641
    functionName: libtorrent::dht::traversal_algorithm::status
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    - sent
    - has_short_timeout
    - std::min
    - libtorrent::dht::traversal_algorithm::name
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::status(dht_lookup& l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:672,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:673,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:675,1
    - Dst: aux::numeric_cast<std::int8_t>
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:681,1
    - Dst: branch_factor
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:681,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 685
    functionName: libtorrent::dht::traversal_algorithm::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::numeric_cast<std::int8_t>
    - branch_factor
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::check_invariant() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:690,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:693,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:694,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:695,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:699,1
    - Dst: libtorrent::dht::read_node_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - nodes_key
    - ' protocol'
    - ' r'
    - f
    argTypes:
    - char*
    - udp
    - bdecode_node
    - std::function<void(const node_endpoint&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 702
    functionName: libtorrent::dht::look_for_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::address_size
    - libtorrent::dht::read_node_endpoint
    - f
    - bdecode_node::string_length
    - dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void look_for_nodes(char const* nodes_key, udp const& protocol, bdecode_node
      const& r, std::function<void(const node_endpoint&)> f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:706,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:709,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:711,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:713,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:715,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:721,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:724,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:725,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:728,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:728,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:729,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:731,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:731,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: look_for_nodes
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:737,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:739,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:741,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:743,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:745,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:746,1
    - Dst: set_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 755
    functionName: libtorrent::dht::traversal_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - libtorrent::aux::to_hex
    - look_for_nodes
    - node_id
    - dht_observer*::log
    - algorithm
    - print_endpoint
    - bdecode_node::string_length
    - set_id
    - dht_observer*::should_log
    - timeout
    - target_ep
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void traversal_observer::reply(msg const& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - b
    - e
    - cmp
    argTypes:
    - It
    - It
    - Cmp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::is_sorted
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 6
    functionsReached:
    - cmp
    linkageType: ''
    returnType: bool
    signature: bool is_sorted(It b, It e, Cmp cmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:80,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::traversal_algorithm::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 3
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr traversal_algorithm::new_observer(udp::endpoint const&
      ep\n\t, node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: search_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:93,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:94,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:95,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:97,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:98,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' dht_node'
    - ' target'
    argTypes:
    - node
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::traversal_algorithm::traversal_algorithm
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - search_id
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - m_table::bucket_size
    - get_node
    - dht_observer*::should_log
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::traversal_algorithm(node& dht_node, node_id
      const& target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:107,1
    - Dst: get
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:108,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:110,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:112,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:115,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:116,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:118,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:119,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:121,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:123,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:125,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:125,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:127,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: libtorrent::dht::traversal_algorithm::resort_result
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::is_sorted
    - id
    - std::move
    - begin
    - compare_ref
    - erase
    - insert
    - end
    - TORRENT_ASSERT
    - std::size_t
    - std::lower_bound
    - get
    - size
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::resort_result(observer* o)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:139,1
    - Dst: m_rpc::allocation_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:139,1
    - Dst: libtorrent::dht::traversal_algorithm::new_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:140,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:144,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:146,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:150,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:156,1
    - Dst: auto::set_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:158,1
    - Dst: generate_random_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:158,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:161,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:164,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:165,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:167,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:169,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:169,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:170,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:176,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:177,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:179,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:181,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:183,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:183,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:187,1
    - Dst: settings
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:191,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:194,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:196,1
    - Dst: address_v6::bytes_type::cbegin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:197,1
    - Dst: libtorrent::aux::read_uint64
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:198,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:200,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:207,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:209,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:217,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:218,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:220,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: auto::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: auto::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:230,1
    - Dst: std::none_of
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:231,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:231,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:232,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:235,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:236,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:238,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:240,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:240,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:241,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:241,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:244,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:249,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: libtorrent::dht::is_sorted
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:250,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:251,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:253,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:255,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:257,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:266,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:271,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:280,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:281,1
    - Dst: std::int8_t
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:281,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 3
    argNames:
    - ' id'
    - ' addr'
    - flags
    argTypes:
    - node_id
    - udp::endpoint
    - observer_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 283
    functionName: libtorrent::dht::traversal_algorithm::add_entry
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 6
    functionsReached:
    - auto::set_id
    - id
    - begin
    - std::int8_t
    - std::min
    - push_back
    - libtorrent::dht::is_sorted
    - is_all_zeros
    - end
    - print_endpoint
    - get_node
    - distance_exp
    - libtorrent::dht::traversal_algorithm::new_observer
    - std::size_t
    - libtorrent::dht::traversal_algorithm::name
    - libtorrent::aux::read_uint64
    - libtorrent::dht::traversal_algorithm::done
    - print_address
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - TORRENT_ASSERT
    - m_rpc::allocation_size
    - size
    - generate_random_id
    - std::for_each
    - auto::target_addr
    - compare_ref
    - address_v6::bytes_type::cbegin
    - auto::id
    - insert
    - std::none_of
    - resize
    - dht_observer*::should_log
    - settings
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: "void traversal_algorithm::add_entry(node_id const& id\n\t, udp::endpoint
      const& addr, observer_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:290,1
    - Dst: libtorrent::dht::traversal_algorithm::add_router_entries
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:290,1
    - Dst: libtorrent::dht::traversal_algorithm::init
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:291,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:292,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: libtorrent::dht::traversal_algorithm::start
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - libtorrent::dht::traversal_algorithm::init
    - libtorrent::dht::traversal_algorithm::add_requests
    - libtorrent::dht::traversal_algorithm::add_router_entries
    - size
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: libtorrent::dht::traversal_algorithm::name
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * traversal_algorithm::name() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:307,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:308,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:308,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:310,1
    - Dst: m_table::heard_about
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:317,1
    - Dst: libtorrent::dht::traversal_algorithm::add_entry
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' id'
    - ' addr'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 320
    functionName: libtorrent::dht::traversal_algorithm::traverse
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::add_entry
    - is_all_zeros
    - dht_observer*::log
    - m_table::heard_about
    - get_node
    - dht_observer*::should_log
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::traverse(node_id const& id, udp::endpoint
      const& addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:325,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:326,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:326,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:333,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:337,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:344,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:346,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 348
    functionName: libtorrent::dht::traversal_algorithm::finished
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - begin
    - end
    - std::find
    - TORRENT_ASSERT
    - libtorrent::dht::traversal_algorithm::add_requests
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::finished(observer_ptr o)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: m_table::node_failed
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:358,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:360,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:364,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:374,1
    - Dst: libtorrent::dht::traversal_algorithm::log_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:380,1
    - Dst: libtorrent::dht::traversal_algorithm::log_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:391,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:395,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:401,1
    - Dst: libtorrent::dht::traversal_algorithm::add_requests
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:406,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - o
    - flags
    argTypes:
    - observer_ptr
    - traversal_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::traversal_algorithm::failed
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - m_table::node_failed
    - libtorrent::dht::traversal_algorithm::done
    - empty
    - libtorrent::dht::traversal_algorithm::log_timeout
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - libtorrent::dht::traversal_algorithm::add_requests
    - observer_ptr::id
    - observer_ptr::target_ep
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::failed(observer_ptr o, traversal_flags_t
      const flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:413,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:414,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:416,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:419,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:420,1
    - Dst: target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:420,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' o'
    - prefix
    argTypes:
    - observer_ptr
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: libtorrent::dht::traversal_algorithm::log_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 4
    functionsReached:
    - print_address
    - id
    - target_addr
    - libtorrent::aux::to_hex
    - dht_observer*::log
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - libtorrent::dht::traversal_algorithm::name
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::log_timeout(observer_ptr const& o, char const*
      prefix) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:430,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:433,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:446,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:459,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:461,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:463,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:464,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:466,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:466,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:467,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:467,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:470,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:470,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:477,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:479,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:481,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 490
    functionName: libtorrent::dht::traversal_algorithm::done
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 16
    functionsReached:
    - id
    - libtorrent::aux::to_hex
    - m_table::bucket_size
    - dht_observer*::log
    - print_endpoint
    - TORRENT_ASSERT
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - clear
    - libtorrent::dht::traversal_algorithm::name
    - target_ep
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::done()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:497,1
    - Dst: settings
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:509,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:519,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:520,1
    - Dst: auto::get
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:526,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:529,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:544,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:545,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:547,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:551,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: observer*::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: observer*::id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:552,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: observer*::target_addr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:560,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:562,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:564,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:564,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 580
    functionName: libtorrent::dht::traversal_algorithm::add_requests
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 12
    functionsReached:
    - print_address
    - libtorrent::aux::to_hex
    - begin
    - auto::get
    - observer*::id
    - end
    - m_table::bucket_size
    - dht_observer*::log
    - libtorrent::aux::max
    - TORRENT_ASSERT
    - get_node
    - distance_exp
    - dht_observer*::should_log
    - settings
    - libtorrent::dht::traversal_algorithm::name
    - observer*::target_addr
    - invoke
    linkageType: ''
    returnType: bool
    signature: bool traversal_algorithm::add_requests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:586,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:587,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:589,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: m_table::begin
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: m_table::end
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:591,1
    - Dst: libtorrent::dht::traversal_algorithm::add_entry
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:595,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 596
    functionName: libtorrent::dht::traversal_algorithm::add_router_entries
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::traversal_algorithm::add_entry
    - std::distance
    - node_id
    - dht_observer*::log
    - m_table::end
    - get_node
    - dht_observer*::should_log
    - m_table::begin
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::add_router_entries()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::numeric_cast<std::int8_t>
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:601,1
    - Dst: branch_factor
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:601,1
    - Dst: add_traversal_algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 607
    functionName: libtorrent::dht::traversal_algorithm::init
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 4
    functionsReached:
    - aux::numeric_cast<std::int8_t>
    - branch_factor
    - add_traversal_algorithm
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_traversal_algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 613
    functionName: traversal_algorithm::~traversal_algorithm()
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - remove_traversal_algorithm
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::~traversal_algorithm()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::traversal_algorithm::name
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:622,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:628,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: sent
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:634,1
    - Dst: has_short_timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - dht_lookup
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 641
    functionName: libtorrent::dht::traversal_algorithm::status
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    - sent
    - has_short_timeout
    - std::min
    - libtorrent::dht::traversal_algorithm::name
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::status(dht_lookup& l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:672,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:673,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:675,1
    - Dst: aux::numeric_cast<std::int8_t>
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:681,1
    - Dst: branch_factor
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:681,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:682,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 685
    functionName: libtorrent::dht::traversal_algorithm::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - aux::numeric_cast<std::int8_t>
    - branch_factor
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm::check_invariant() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_find_string
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:690,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:693,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:694,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:695,1
    - Dst: f
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:699,1
    - Dst: libtorrent::dht::read_node_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - nodes_key
    - ' protocol'
    - ' r'
    - f
    argTypes:
    - char*
    - udp
    - bdecode_node
    - std::function<void(const node_endpoint&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 702
    functionName: libtorrent::dht::look_for_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::address_size
    - libtorrent::dht::read_node_endpoint
    - f
    - bdecode_node::string_length
    - dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void look_for_nodes(char const* nodes_key, udp const& protocol, bdecode_node
      const& r, std::function<void(const node_endpoint&)> f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:706,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:709,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:711,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:713,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:715,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:721,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:724,1
    - Dst: dht_observer*::should_log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:725,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:728,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:728,1
    - Dst: dht_observer*::log
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:729,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:731,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:731,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:732,1
    - Dst: look_for_nodes
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:736,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:737,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:739,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:741,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:743,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:745,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:746,1
    - Dst: set_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/traversal_algorithm.cpp:754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 755
    functionName: libtorrent::dht::traversal_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/traversal_algorithm.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - libtorrent::aux::to_hex
    - look_for_nodes
    - node_id
    - dht_observer*::log
    - algorithm
    - print_endpoint
    - bdecode_node::string_length
    - set_id
    - dht_observer*::should_log
    - timeout
    - target_ep
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void traversal_observer::reply(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n1'
    - ' n2'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::distance
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id distance(node_id const& n1, node_id const& n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' n1'
    - ' n2'
    - ' ref'
    argTypes:
    - node_id
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::compare_ref
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare_ref(node_id const& n1, node_id const& n2, node_id const&
      ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/kademlia/node_id.cpp:69,1
    - Dst: libtorrent::dht::distance
      Src: /src/libtorrent/src/kademlia/node_id.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n1'
    - ' n2'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::distance_exp
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::distance
    - std::max
    linkageType: ''
    returnType: int
    signature: int distance_exp(node_id const& n1, node_id const& n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:74,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node_id.cpp:74,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/node_id.cpp:79,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node_id.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' n1'
    - ' ids'
    argTypes:
    - node_id
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::min_distance_exp
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::min
    - libtorrent::dht::distance_exp
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int min_distance_exp(node_id const& n1, std::vector<node_id> const&
      ids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/node_id.cpp:96,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/node_id.cpp:98,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/kademlia/node_id.cpp:99,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/node_id.cpp:105,1
    - Dst: address_v4::bytes_type::data
      Src: /src/libtorrent/src/kademlia/node_id.cpp:106,1
    - Dst: crc32c_32
      Src: /src/libtorrent/src/kademlia/node_id.cpp:120,1
    - Dst: reinterpret_cast<std::uint32_t*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:124,1
    - Dst: crc32c
      Src: /src/libtorrent/src/kademlia/node_id.cpp:125,1
    - Dst: reinterpret_cast<std::uint64_t*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:125,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:131,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - ' ip_'
    - r
    argTypes:
    - address
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 137
    functionName: libtorrent::dht::generate_id_impl
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 3
    functionsReached:
    - is_v6
    - address_v4::bytes_type::data
    - crc32c
    - address_v6::bytes_type::data
    - reinterpret_cast<std::uint64_t*>
    - to_v4
    - TORRENT_ASSERT
    - crc32c_32
    - reinterpret_cast<std::uint32_t*>
    - to_v6
    - random
    linkageType: ''
    returnType: node_id
    signature: node_id generate_id_impl(address const& ip_, std::uint32_t r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:143,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:145,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:149,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node_id.cpp:150,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:150,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node_id.cpp:151,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/node_id.cpp:152,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/node_id.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: libtorrent::dht::make_id_secret
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - hasher::final
    - std::memcpy
    - hasher::update
    - reinterpret_cast<char const*>
    - random
    linkageType: ''
    returnType: void
    signature: void make_id_secret(node_id& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/kademlia/node_id.cpp:159,1
    - Dst: hasher
      Src: /src/libtorrent/src/kademlia/node_id.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: libtorrent::dht::generate_random_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::random_bytes
    - hasher
    linkageType: ''
    returnType: node_id
    signature: node_id generate_random_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node_id.cpp:165,1
    - Dst: libtorrent::dht::make_id_secret
      Src: /src/libtorrent/src/kademlia/node_id.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: libtorrent::dht::generate_secret_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::make_id_secret
    linkageType: ''
    returnType: node_id
    signature: node_id generate_secret_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:174,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node_id.cpp:175,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:175,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node_id.cpp:176,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/kademlia/node_id.cpp:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: libtorrent::dht::verify_secret_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - hasher::final
    - std::memcmp
    - reinterpret_cast<char*>
    - hasher::update
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: bool
    signature: bool verify_secret_id(node_id const& nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/kademlia/node_id.cpp:186,1
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/src/kademlia/node_id.cpp:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ' nid'
    - ' source_ip'
    argTypes:
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::verify_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_id_impl
    - libtorrent::aux::is_local
    linkageType: ''
    returnType: bool
    signature: bool verify_id(node_id const& nid, address const& source_ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/src/kademlia/node_id.cpp:194,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: libtorrent::dht::generate_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::generate_id_impl
    - random
    linkageType: ''
    returnType: node_id
    signature: node_id generate_id(address const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' nid'
    - mask
    - prefix
    - offset
    argTypes:
    - node_id
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: libtorrent::dht::matching_prefix
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matching_prefix(node_id const& nid, int mask, int prefix, int
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::generate_prefix_mask
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: node_id
    signature: node_id generate_prefix_mask(int const bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n1'
    - ' n2'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::distance
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id distance(node_id const& n1, node_id const& n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' n1'
    - ' n2'
    - ' ref'
    argTypes:
    - node_id
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::compare_ref
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare_ref(node_id const& n1, node_id const& n2, node_id const&
      ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/kademlia/node_id.cpp:69,1
    - Dst: libtorrent::dht::distance
      Src: /src/libtorrent/src/kademlia/node_id.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n1'
    - ' n2'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::distance_exp
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::distance
    - std::max
    linkageType: ''
    returnType: int
    signature: int distance_exp(node_id const& n1, node_id const& n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:74,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node_id.cpp:74,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/node_id.cpp:79,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node_id.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' n1'
    - ' ids'
    argTypes:
    - node_id
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::min_distance_exp
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::min
    - libtorrent::dht::distance_exp
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int min_distance_exp(node_id const& n1, std::vector<node_id> const&
      ids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/node_id.cpp:96,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/node_id.cpp:98,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/kademlia/node_id.cpp:99,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/node_id.cpp:105,1
    - Dst: address_v4::bytes_type::data
      Src: /src/libtorrent/src/kademlia/node_id.cpp:106,1
    - Dst: crc32c_32
      Src: /src/libtorrent/src/kademlia/node_id.cpp:120,1
    - Dst: reinterpret_cast<std::uint32_t*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:124,1
    - Dst: crc32c
      Src: /src/libtorrent/src/kademlia/node_id.cpp:125,1
    - Dst: reinterpret_cast<std::uint64_t*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:125,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:131,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - ' ip_'
    - r
    argTypes:
    - address
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 137
    functionName: libtorrent::dht::generate_id_impl
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 5
    functionsReached:
    - is_v6
    - address_v4::bytes_type::data
    - crc32c
    - address_v6::bytes_type::data
    - reinterpret_cast<std::uint64_t*>
    - to_v4
    - TORRENT_ASSERT
    - crc32c_32
    - reinterpret_cast<std::uint32_t*>
    - to_v6
    - random
    linkageType: ''
    returnType: node_id
    signature: node_id generate_id_impl(address const& ip_, std::uint32_t r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:143,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:145,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:149,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node_id.cpp:150,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:150,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node_id.cpp:151,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/node_id.cpp:152,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/node_id.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: libtorrent::dht::make_id_secret
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - hasher::final
    - std::memcpy
    - hasher::update
    - reinterpret_cast<char const*>
    - random
    linkageType: ''
    returnType: void
    signature: void make_id_secret(node_id& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/kademlia/node_id.cpp:159,1
    - Dst: hasher
      Src: /src/libtorrent/src/kademlia/node_id.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: libtorrent::dht::generate_random_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::random_bytes
    - hasher
    linkageType: ''
    returnType: node_id
    signature: node_id generate_random_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node_id.cpp:165,1
    - Dst: libtorrent::dht::make_id_secret
      Src: /src/libtorrent/src/kademlia/node_id.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: libtorrent::dht::generate_secret_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::make_id_secret
    linkageType: ''
    returnType: node_id
    signature: node_id generate_secret_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:174,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node_id.cpp:175,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:175,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node_id.cpp:176,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/kademlia/node_id.cpp:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: libtorrent::dht::verify_secret_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - hasher::final
    - std::memcmp
    - reinterpret_cast<char*>
    - hasher::update
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: bool
    signature: bool verify_secret_id(node_id const& nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/kademlia/node_id.cpp:186,1
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/src/kademlia/node_id.cpp:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ' nid'
    - ' source_ip'
    argTypes:
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::verify_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_id_impl
    - libtorrent::aux::is_local
    linkageType: ''
    returnType: bool
    signature: bool verify_id(node_id const& nid, address const& source_ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/src/kademlia/node_id.cpp:194,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: libtorrent::dht::generate_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::generate_id_impl
    - random
    linkageType: ''
    returnType: node_id
    signature: node_id generate_id(address const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' nid'
    - mask
    - prefix
    - offset
    argTypes:
    - node_id
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: libtorrent::dht::matching_prefix
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matching_prefix(node_id const& nid, int mask, int prefix, int
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::generate_prefix_mask
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: node_id
    signature: node_id generate_prefix_mask(int const bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n1'
    - ' n2'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::distance
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id distance(node_id const& n1, node_id const& n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' n1'
    - ' n2'
    - ' ref'
    argTypes:
    - node_id
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::compare_ref
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare_ref(node_id const& n1, node_id const& n2, node_id const&
      ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/kademlia/node_id.cpp:69,1
    - Dst: libtorrent::dht::distance
      Src: /src/libtorrent/src/kademlia/node_id.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n1'
    - ' n2'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::distance_exp
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::distance
    - std::max
    linkageType: ''
    returnType: int
    signature: int distance_exp(node_id const& n1, node_id const& n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:74,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node_id.cpp:74,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/node_id.cpp:79,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node_id.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' n1'
    - ' ids'
    argTypes:
    - node_id
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::min_distance_exp
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::min
    - libtorrent::dht::distance_exp
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int min_distance_exp(node_id const& n1, std::vector<node_id> const&
      ids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/node_id.cpp:96,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/node_id.cpp:98,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/kademlia/node_id.cpp:99,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/node_id.cpp:105,1
    - Dst: address_v4::bytes_type::data
      Src: /src/libtorrent/src/kademlia/node_id.cpp:106,1
    - Dst: crc32c_32
      Src: /src/libtorrent/src/kademlia/node_id.cpp:120,1
    - Dst: reinterpret_cast<std::uint32_t*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:124,1
    - Dst: crc32c
      Src: /src/libtorrent/src/kademlia/node_id.cpp:125,1
    - Dst: reinterpret_cast<std::uint64_t*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:125,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:131,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - ' ip_'
    - r
    argTypes:
    - address
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 137
    functionName: libtorrent::dht::generate_id_impl
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 7
    functionsReached:
    - is_v6
    - address_v4::bytes_type::data
    - crc32c
    - address_v6::bytes_type::data
    - reinterpret_cast<std::uint64_t*>
    - to_v4
    - TORRENT_ASSERT
    - crc32c_32
    - reinterpret_cast<std::uint32_t*>
    - to_v6
    - random
    linkageType: ''
    returnType: node_id
    signature: node_id generate_id_impl(address const& ip_, std::uint32_t r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:143,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:145,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:149,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node_id.cpp:150,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:150,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node_id.cpp:151,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/node_id.cpp:152,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/node_id.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: libtorrent::dht::make_id_secret
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 2
    functionsReached:
    - hasher::final
    - std::memcpy
    - hasher::update
    - reinterpret_cast<char const*>
    - random
    linkageType: ''
    returnType: void
    signature: void make_id_secret(node_id& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/kademlia/node_id.cpp:159,1
    - Dst: hasher
      Src: /src/libtorrent/src/kademlia/node_id.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: libtorrent::dht::generate_random_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::random_bytes
    - hasher
    linkageType: ''
    returnType: node_id
    signature: node_id generate_random_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node_id.cpp:165,1
    - Dst: libtorrent::dht::make_id_secret
      Src: /src/libtorrent/src/kademlia/node_id.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: libtorrent::dht::generate_secret_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::make_id_secret
    linkageType: ''
    returnType: node_id
    signature: node_id generate_secret_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:174,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node_id.cpp:175,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:175,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node_id.cpp:176,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/kademlia/node_id.cpp:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: libtorrent::dht::verify_secret_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - hasher::final
    - std::memcmp
    - reinterpret_cast<char*>
    - hasher::update
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: bool
    signature: bool verify_secret_id(node_id const& nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/kademlia/node_id.cpp:186,1
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/src/kademlia/node_id.cpp:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ' nid'
    - ' source_ip'
    argTypes:
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::verify_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_id_impl
    - libtorrent::aux::is_local
    linkageType: ''
    returnType: bool
    signature: bool verify_id(node_id const& nid, address const& source_ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/src/kademlia/node_id.cpp:194,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: libtorrent::dht::generate_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::generate_id_impl
    - random
    linkageType: ''
    returnType: node_id
    signature: node_id generate_id(address const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' nid'
    - mask
    - prefix
    - offset
    argTypes:
    - node_id
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: libtorrent::dht::matching_prefix
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matching_prefix(node_id const& nid, int mask, int prefix, int
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::generate_prefix_mask
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: node_id
    signature: node_id generate_prefix_mask(int const bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n1'
    - ' n2'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::distance
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id distance(node_id const& n1, node_id const& n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' n1'
    - ' n2'
    - ' ref'
    argTypes:
    - node_id
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::compare_ref
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare_ref(node_id const& n1, node_id const& n2, node_id const&
      ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/src/kademlia/node_id.cpp:69,1
    - Dst: libtorrent::dht::distance
      Src: /src/libtorrent/src/kademlia/node_id.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n1'
    - ' n2'
    argTypes:
    - node_id
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::distance_exp
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::distance
    - std::max
    linkageType: ''
    returnType: int
    signature: int distance_exp(node_id const& n1, node_id const& n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:74,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node_id.cpp:74,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/node_id.cpp:79,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node_id.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' n1'
    - ' ids'
    argTypes:
    - node_id
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::min_distance_exp
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::min
    - libtorrent::dht::distance_exp
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int min_distance_exp(node_id const& n1, std::vector<node_id> const&
      ids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/node_id.cpp:96,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/node_id.cpp:98,1
    - Dst: address_v6::bytes_type::data
      Src: /src/libtorrent/src/kademlia/node_id.cpp:99,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/node_id.cpp:105,1
    - Dst: address_v4::bytes_type::data
      Src: /src/libtorrent/src/kademlia/node_id.cpp:106,1
    - Dst: crc32c_32
      Src: /src/libtorrent/src/kademlia/node_id.cpp:120,1
    - Dst: reinterpret_cast<std::uint32_t*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:120,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:124,1
    - Dst: crc32c
      Src: /src/libtorrent/src/kademlia/node_id.cpp:125,1
    - Dst: reinterpret_cast<std::uint64_t*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:125,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:131,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - ' ip_'
    - r
    argTypes:
    - address
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 137
    functionName: libtorrent::dht::generate_id_impl
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 9
    functionsReached:
    - is_v6
    - address_v4::bytes_type::data
    - crc32c
    - address_v6::bytes_type::data
    - reinterpret_cast<std::uint64_t*>
    - to_v4
    - TORRENT_ASSERT
    - crc32c_32
    - reinterpret_cast<std::uint32_t*>
    - to_v6
    - random
    linkageType: ''
    returnType: node_id
    signature: node_id generate_id_impl(address const& ip_, std::uint32_t r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:143,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:145,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:149,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node_id.cpp:150,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:150,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node_id.cpp:151,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/node_id.cpp:152,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/node_id.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: libtorrent::dht::make_id_secret
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 3
    functionsReached:
    - hasher::final
    - std::memcpy
    - hasher::update
    - reinterpret_cast<char const*>
    - random
    linkageType: ''
    returnType: void
    signature: void make_id_secret(node_id& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/src/kademlia/node_id.cpp:159,1
    - Dst: hasher
      Src: /src/libtorrent/src/kademlia/node_id.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: libtorrent::dht::generate_random_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::random_bytes
    - hasher
    linkageType: ''
    returnType: node_id
    signature: node_id generate_random_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node_id.cpp:165,1
    - Dst: libtorrent::dht::make_id_secret
      Src: /src/libtorrent/src/kademlia/node_id.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: libtorrent::dht::generate_secret_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::make_id_secret
    linkageType: ''
    returnType: node_id
    signature: node_id generate_secret_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:174,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node_id.cpp:175,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/node_id.cpp:175,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node_id.cpp:176,1
    - Dst: std::memcmp
      Src: /src/libtorrent/src/kademlia/node_id.cpp:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nid'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: libtorrent::dht::verify_secret_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - hasher::final
    - std::memcmp
    - reinterpret_cast<char*>
    - hasher::update
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: bool
    signature: bool verify_secret_id(node_id const& nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_local
      Src: /src/libtorrent/src/kademlia/node_id.cpp:186,1
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/src/kademlia/node_id.cpp:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ' nid'
    - ' source_ip'
    argTypes:
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::verify_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::generate_id_impl
    - libtorrent::aux::is_local
    linkageType: ''
    returnType: bool
    signature: bool verify_id(node_id const& nid, address const& source_ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::generate_id_impl
      Src: /src/libtorrent/src/kademlia/node_id.cpp:194,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/node_id.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: libtorrent::dht::generate_id
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::generate_id_impl
    - random
    linkageType: ''
    returnType: node_id
    signature: node_id generate_id(address const& ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' nid'
    - mask
    - prefix
    - offset
    argTypes:
    - node_id
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: libtorrent::dht::matching_prefix
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matching_prefix(node_id const& nid, int mask, int prefix, int
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node_id.cpp:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::generate_prefix_mask
    functionSourceFile: /src/libtorrent/src/kademlia/node_id.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: node_id
    signature: node_id generate_prefix_mask(int const bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::nop
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:90,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/kademlia/node.cpp:94,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:96,1
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node.cpp:97,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' nid'
    - ' sock'
    argTypes:
    - node_id
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::calculate_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_external_address
    - is_all_zeros
    - address::is_unspecified
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::generate_id
    - libtorrent::dht::verify_id
    linkageType: ''
    returnType: node_id
    signature: node_id calculate_node_id(node_id const& nid, aux::listen_socket_handle
      const& sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:111,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:112,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' e'
    - msg
    argTypes:
    - entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - list
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void incoming_error(entry& e, char const* msg, int error_code = 203)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::nop
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:90,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/kademlia/node.cpp:94,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:96,1
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node.cpp:97,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' nid'
    - ' sock'
    argTypes:
    - node_id
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::calculate_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_external_address
    - is_all_zeros
    - address::is_unspecified
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::generate_id
    - libtorrent::dht::verify_id
    linkageType: ''
    returnType: node_id
    signature: node_id calculate_node_id(node_id const& nid, aux::listen_socket_handle
      const& sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:111,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:112,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' e'
    - msg
    argTypes:
    - entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - list
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void incoming_error(entry& e, char const* msg, int error_code = 203)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculate_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:126,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:131,1
    - Dst: map_protocol_to_descriptor
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:134,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/node.cpp:135,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:139,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - ' sock'
    - sock_man
    - ' settings'
    - ' nid'
    - observer
    - ' cnt'
    - get_foreign_node
    - ' storage'
    argTypes:
    - aux::listen_socket_handle
    - socket_manager*
    - aux::session_settings
    - node_id
    - dht_observer*
    - counters
    - get_foreign_node_t
    - dht_storage_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 141
    functionName: libtorrent::dht::node::node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - std::move
    - get_local_endpoint
    - map_protocol_to_descriptor
    - libtorrent::aux::is_v4
    - rand_v6
    - libtorrent::aux::crypto_random_bytes
    - calculate_node_id
    - min_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void node::node(aux::listen_socket_handle const& sock, socket_manager*
      sock_man\n\t, aux::session_settings const& settings\n\t, node_id const& nid\n\t,
      dht_observer* observer\n\t, counters& cnt\n\t, get_foreign_node_t get_foreign_node\n\t,
      dht_storage_interface& storage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: node::~node()
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node::~node()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/node.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::node::branch_factor
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int node::branch_factor() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:154,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:158,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:162,1
    - Dst: generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:166,1
    - Dst: libtorrent::dht::node::update_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:168,1
    - Dst: libtorrent::dht::node::update_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 170
    functionName: libtorrent::dht::node::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - get_external_address
    - libtorrent::dht::node::update_node_id
    - log
    - generate_id
    - verify_id
    linkageType: ''
    returnType: void
    signature: void node::update_node_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_view::length
      Src: /src/libtorrent/src/kademlia/node.cpp:175,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:180,1
    - Dst: string_view::length
      Src: /src/libtorrent/src/kademlia/node.cpp:181,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node.cpp:188,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:189,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:190,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:191,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:193,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:198,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:199,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:200,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:201,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - token
    - ' info_hash'
    - ' addr'
    argTypes:
    - string_view
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: libtorrent::dht::node::verify_token
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - hasher::final
    - string_view::end
    - reinterpret_cast<char*>
    - equal
    - log
    - hasher::update
    - string_view::begin
    - address
    - string_view::length
    linkageType: ''
    returnType: bool
    signature: "bool node::verify_token(string_view token, sha1_hash const& info_hash\n\t,
      udp::endpoint const& addr) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/src/kademlia/node.cpp:209,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node.cpp:211,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:212,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:213,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:214,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:216,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: sha1_hash::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: sha1_hash::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' addr'
    - ' info_hash'
    argTypes:
    - udp::endpoint
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::node::generate_token
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - hasher::final
    - sha1_hash::begin
    - std::string::begin
    - std::string::end
    - TORRENT_ASSERT
    - std::copy
    - equal
    - std::string::resize
    - hasher::update
    - sha1_hash::data
    - address
    linkageType: ''
    returnType: std::string
    signature: "std::string node::generate_token(udp::endpoint const& addr\n\t, sha1_hash
      const& info_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/node.cpp:226,1
    - Dst: std::make_shared<dht::bootstrap>
      Src: /src/libtorrent/src/kademlia/node.cpp:228,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:229,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:240,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:240,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:245,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' nodes'
    - ' f'
    argTypes:
    - std::vector<udp::endpoint>
    - find_data::nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: libtorrent::dht::node::bootstrap
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::make_shared<dht::bootstrap>
    - node_id
    - make_id_secret
    - log
    - auto::add_entry
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void node::bootstrap(std::vector<udp::endpoint> const& nodes\n\t,
      find_data::nodes_callback const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::bucket_size
      Src: /src/libtorrent/src/kademlia/node.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: libtorrent::dht::node::bucket_size
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::node::bucket_size
    linkageType: ''
    returnType: int
    signature: int node::bucket_size(int bucket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: libtorrent::dht::node::new_write_key
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    linkageType: ''
    returnType: void
    signature: void node::new_write_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::unreachable
      Src: /src/libtorrent/src/kademlia/node.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: libtorrent::dht::node::unreachable
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::node::unreachable
    linkageType: ''
    returnType: void
    signature: void node::unreachable(udp::endpoint const& ep)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:269,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:270,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:280,1
    - Dst: message::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:286,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:291,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:293,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/kademlia/node.cpp:293,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:294,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:298,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:300,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/kademlia/node.cpp:300,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:301,1
    - Dst: libtorrent::dht::node::incoming
      Src: /src/libtorrent/src/kademlia/node.cpp:310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:315,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:315,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:318,1
    - Dst: has_quota
      Src: /src/libtorrent/src/kademlia/node.cpp:324,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:326,1
    - Dst: libtorrent::dht::node::incoming_request
      Src: /src/libtorrent/src/kademlia/node.cpp:331,1
    - Dst: send_packet
      Src: /src/libtorrent/src/kademlia/node.cpp:332,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:338,1
    - Dst: message::dict_find_list
      Src: /src/libtorrent/src/kademlia/node.cpp:340,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/node.cpp:341,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:342,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:343,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:345,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/kademlia/node.cpp:346,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/kademlia/node.cpp:347,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:351,1
    - Dst: libtorrent::dht::node::incoming
      Src: /src/libtorrent/src/kademlia/node.cpp:356,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 2
    argNames:
    - ' s'
    - ' m'
    argTypes:
    - aux::listen_socket_handle
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 360
    functionName: libtorrent::dht::node::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::read_v6_address
    - has_quota
    - bdecode_node::string_length
    - message::dict_find_list
    - get_bool
    - bdecode_node::string_ptr
    - message::dict_find_string
    - libtorrent::dht::node::incoming
    - libtorrent::aux::address_size
    - rand_v6
    - libtorrent::dht::node::incoming_request
    - bdecode_node::list_size
    - set_external_address
    - bdecode_node::list_string_value_at
    - log
    - inc_stats_counter
    - libtorrent::aux::read_v4_address
    - bdecode_node::list_int_value_at
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - rand_v4
    - send_packet
    - should_log
    - message::dict_find_string_value
    - addr::address
    linkageType: ''
    returnType: void
    signature: void node::incoming(aux::listen_socket_handle const& s, msg const&
      m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer
      Src: /src/libtorrent/src/kademlia/node.cpp:368,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:369,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:371,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:382,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:384,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:385,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:389,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:390,1
    - Dst: libtorrent::dht::stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:404,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' v'
    - ' node'
    - listen_port
    - ' ih'
    - flags
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - node
    - int
    - sha1_hash
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::announce_fun
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - m_rpc::allocate_observer
    - libtorrent::dht::size
    - libtorrent::aux::to_hex
    - node_id
    - first::ep
    - libtorrent::dht::observer
    - auto::should_log
    - m_rpc::invoke
    - auto::log
    - libtorrent::dht::stats_counters
    - libtorrent::dht::distance_exp
    linkageType: ''
    returnType: void
    signature: "void announce_fun(std::vector<std::pair<node_entry, std::string>>
      const& v\n\t\t, node& node, int const listen_port, sha1_hash const& ih, announce_flags_t
      const flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer
      Src: /src/libtorrent/src/kademlia/node.cpp:368,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:369,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:371,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:382,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:384,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:385,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:389,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:390,1
    - Dst: libtorrent::dht::stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:404,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' v'
    - ' node'
    - listen_port
    - ' ih'
    - flags
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - node
    - int
    - sha1_hash
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::announce_fun
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - m_rpc::allocate_observer
    - libtorrent::dht::size
    - libtorrent::aux::to_hex
    - node_id
    - first::ep
    - libtorrent::dht::observer
    - auto::should_log
    - m_rpc::invoke
    - auto::log
    - libtorrent::dht::stats_counters
    - libtorrent::dht::distance_exp
    linkageType: ''
    returnType: void
    signature: "void announce_fun(std::vector<std::pair<node_entry, std::string>>
      const& v\n\t\t, node& node, int const listen_port, sha1_hash const& ih, announce_flags_t
      const flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:414,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:416,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:417,1
    - Dst: libtorrent::dht::node::add_router_node
      Src: /src/libtorrent/src/kademlia/node.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' router'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: libtorrent::dht::node::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::node::add_router_node
    - should_log
    - log
    - print_endpoint
    linkageType: ''
    returnType: void
    signature: void node::add_router_node(udp::endpoint const& router)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: native_address
      Src: /src/libtorrent/src/kademlia/node.cpp:425,1
    - Dst: libtorrent::dht::node::send_single_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:428,1
    - Dst: num_active_buckets
      Src: /src/libtorrent/src/kademlia/node.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: libtorrent::dht::node::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - num_active_buckets
    - native_address
    - libtorrent::dht::node::send_single_refresh
    linkageType: ''
    returnType: void
    signature: void node::add_node(udp::endpoint const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:440,1
    - Dst: std::make_shared<dht::obfuscated_get_peers>
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::make_shared<dht::get_peers>
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' info_hash'
    - dcallback
    - ncallback
    - flags
    argTypes:
    - sha1_hash
    - std::function<void(std::vector<tcp::endpoint> const&)>
    - std::function<void(std::vector<std::pair<node_entry, std::string>> const&)>
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: libtorrent::dht::node::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::move
    - std::make_shared<dht::obfuscated_get_peers>
    - get_bool
    - std::make_shared<dht::get_peers>
    linkageType: ''
    returnType: void
    signature: "void node::get_peers(sha1_hash const& info_hash\n\t, std::function<void(std::vector<tcp::endpoint>
      const&)> dcallback\n\t, std::function<void(std::vector<std::pair<node_entry,
      std::string>> const&)> ncallback\n\t, announce_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:451,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:453,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:454,1
    - Dst: get_listen_port
      Src: /src/libtorrent/src/kademlia/node.cpp:460,1
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:465,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:466,1
    - Dst: std::ref
      Src: /src/libtorrent/src/kademlia/node.cpp:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' info_hash'
    - listen_port
    - flags
    - f
    argTypes:
    - sha1_hash
    - int
    - announce_flags_t
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 468
    functionName: libtorrent::dht::node::announce
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - get_listen_port
    - std::move
    - libtorrent::aux::to_hex
    - std::ref
    - libtorrent::dht::node::get_peers
    - log
    - should_log
    linkageType: ''
    returnType: void
    signature: "void node::announce(sha1_hash const& info_hash, int listen_port, announce_flags_t
      const flags\n\t, std::function<void(std::vector<tcp::endpoint> const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<direct_traversal>
      Src: /src/libtorrent/src/kademlia/node.cpp:474,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:474,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - f
    argTypes:
    - udp::endpoint
    - entry
    - std::function<void(msg const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: libtorrent::dht::node::direct_request
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<direct_traversal>
    - std::move
    - allocate_observer
    - node_id
    - invoke
    linkageType: ''
    returnType: void
    signature: "void node::direct_request(udp::endpoint const& ep, entry& e\n\t, std::function<void(msg
      const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:488,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:490,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:491,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:495,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:496,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:496,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - f
    argTypes:
    - sha1_hash
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 498
    functionName: libtorrent::dht::node::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - libtorrent::aux::to_hex
    - log
    - should_log
    - find_data::nodes_callback
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: void node::get_item(sha1_hash const& target, std::function<void(item
      const&)> f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:504,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:507,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:508,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:512,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:512,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:513,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' pk'
    - ' salt'
    - f
    argTypes:
    - public_key
    - std::string
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: libtorrent::dht::node::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::move
    - libtorrent::aux::to_hex
    - log
    - should_log
    - find_data::nodes_callback
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: "void node::get_item(public_key const& pk, std::string const& salt\n\t,
      std::function<void(item const&, bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_targets
      Src: /src/libtorrent/src/kademlia/node.cpp:522,1
    - Dst: start
      Src: /src/libtorrent/src/kademlia/node.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' nodes'
    - ' ta'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - std::shared_ptr<put_data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: libtorrent::dht::put
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - start
    - set_targets
    linkageType: ''
    returnType: void
    signature: "void put(std::vector<std::pair<node_entry, std::string>> const& nodes\n\t,
      std::shared_ptr<put_data> const& ta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/node.cpp:534,1
    - Dst: libtorrent::dht::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' i'
    - auth
    - ' ta'
    - ' f'
    argTypes:
    - item
    - bool
    - std::shared_ptr<put_data>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libtorrent::dht::put_data_cb
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::set_data
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: "void put_data_cb(item const& i, bool auth\n\t, std::shared_ptr<put_data>
      const& ta\n\t, std::function<void(item&)> const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_targets
      Src: /src/libtorrent/src/kademlia/node.cpp:522,1
    - Dst: start
      Src: /src/libtorrent/src/kademlia/node.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' nodes'
    - ' ta'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - std::shared_ptr<put_data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: libtorrent::dht::put
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - start
    - set_targets
    linkageType: ''
    returnType: void
    signature: "void put(std::vector<std::pair<node_entry, std::string>> const& nodes\n\t,
      std::shared_ptr<put_data> const& ta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/node.cpp:534,1
    - Dst: libtorrent::dht::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' i'
    - auth
    - ' ta'
    - ' f'
    argTypes:
    - item
    - bool
    - std::shared_ptr<put_data>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libtorrent::dht::put_data_cb
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::set_data
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: "void put_data_cb(item const& i, bool auth\n\t, std::shared_ptr<put_data>
      const& ta\n\t, std::function<void(item&)> const& f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:544,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:546,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:547,1
    - Dst: item::assign
      Src: /src/libtorrent/src/kademlia/node.cpp:552,1
    - Dst: std::make_shared<dht::put_data>
      Src: /src/libtorrent/src/kademlia/node.cpp:553,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:553,1
    - Dst: auto::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:554,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:554,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:556,1
    - Dst: get_item::data_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:557,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:557,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' target'
    - ' data'
    - f
    argTypes:
    - sha1_hash
    - entry
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 559
    functionName: libtorrent::dht::node::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - auto::set_data
    - std::make_shared<dht::put_data>
    - libtorrent::aux::to_hex
    - std::move
    - item::assign
    - log
    - get_item::data_callback
    - should_log
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: void node::put_item(sha1_hash const& target, entry const& data, std::function<void(int)>
      f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:566,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:569,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:570,1
    - Dst: std::make_shared<dht::put_data>
      Src: /src/libtorrent/src/kademlia/node.cpp:574,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:576,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:577,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:578,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' pk'
    - ' salt'
    - f
    - data_cb
    argTypes:
    - public_key
    - std::string
    - std::function<void(item const&, int)>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 580
    functionName: libtorrent::dht::node::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - std::make_shared<dht::put_data>
    - libtorrent::aux::to_hex
    - log
    - should_log
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: "void node::put_item(public_key const& pk, std::string const& salt\n\t,
      std::function<void(item const&, int)> f\n\t, std::function<void(item&)> data_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:589,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:591,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:592,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:592,1
    - Dst: std::make_shared<dht::sample_infohashes>
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:599,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:599,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:610,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' ep'
    - ' target'
    - f
    argTypes:
    - udp::endpoint
    - sha1_hash
    - "std::function<void(sha1_hash\n\t\t, time_duration\n\t\t, int, std::vector<sha1_hash>\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 614
    functionName: libtorrent::dht::node::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::aux::to_hex
    - node_id
    - allocate_observer
    - stats_counters
    - print_endpoint
    - log
    - std::make_shared<dht::sample_infohashes>
    - invoke
    - should_log
    linkageType: ''
    returnType: void
    signature: "void node::sample_infohashes(udp::endpoint const& ep, sha1_hash const&
      target\n\t, std::function<void(sha1_hash\n\t\t, time_duration\n\t\t, int, std::vector<sha1_hash>\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: libtorrent::dht::ping_observer
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void ping_observer(\n\t\tstd::shared_ptr<traversal_algorithm> algorithm\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/node.cpp:629,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:633,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:635,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/kademlia/node.cpp:637,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:637,1
    - Dst: libtorrent::dht::look_for_nodes
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:643,1
    - Dst: heard_about
      Src: /src/libtorrent/src/kademlia/node.cpp:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 644
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - libtorrent::dht::look_for_nodes
    - static_cast<void*>
    - heard_about
    - libtorrent::dht::algorithm
    linkageType: ''
    returnType: void
    signature: void reply(msg const& m) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:653,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/node.cpp:654,1
    - Dst: depth
      Src: /src/libtorrent/src/kademlia/node.cpp:654,1
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/node.cpp:657,1
    - Dst: std::make_shared<dht::bootstrap>
      Src: /src/libtorrent/src/kademlia/node.cpp:658,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:658,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:659,1
    - Dst: next_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:664,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:668,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:672,1
    - Dst: libtorrent::dht::node::send_single_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:673,1
    - Dst: node_entry*::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 674
    functionName: libtorrent::dht::node::tick
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - depth
    - std::bind
    - std::make_shared<dht::bootstrap>
    - auto::start
    - node_entry*::ep
    - libtorrent::dht::node::send_single_refresh
    - next_refresh
    - make_id_secret
    - TORRENT_ASSERT
    - distance_exp
    - minutes
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void node::tick()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:679,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:680,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:681,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/src/kademlia/node.cpp:686,1
    - Dst: generate_secret_id
      Src: /src/libtorrent/src/kademlia/node.cpp:687,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:691,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:691,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:692,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:692,1
    - Dst: is_full
      Src: /src/libtorrent/src/kademlia/node.cpp:700,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:704,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/node.cpp:711,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:712,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - ' ep'
    - bucket
    - ' id'
    argTypes:
    - udp::endpoint
    - int
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 717
    functionName: libtorrent::dht::node::send_single_refresh
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - generate_prefix_mask
    - is_full
    - std::move
    - node_id
    - allocate_observer
    - generate_secret_id
    - TORRENT_ASSERT
    - inc_stats_counter
    - invoke
    - node_id::to_string
    linkageType: ''
    returnType: void
    signature: "void node::send_single_refresh(udp::endpoint const& ep, int const
      bucket\n\t, node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::tick
      Src: /src/libtorrent/src/kademlia/node.cpp:721,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/node.cpp:723,1
    - Dst: libtorrent::dht::node::tick
      Src: /src/libtorrent/src/kademlia/node.cpp:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 729
    functionName: libtorrent::dht::node::connection_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::node::tick
    - minutes
    linkageType: ''
    returnType: time_duration
    signature: time_duration node::connection_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_udp
      Src: /src/libtorrent/src/kademlia/node.cpp:737,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:737,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:738,1
    - Dst: dht_status::requests::emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:742,1
    - Dst: dht_status::requests::back
      Src: /src/libtorrent/src/kademlia/node.cpp:743,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 747
    functionName: libtorrent::dht::node::status
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - get_local_endpoint
    - make_udp
    - dht_status::requests::emplace_back
    - libtorrent::dht::node::status
    - dht_status::requests::back
    linkageType: ''
    returnType: dht_status
    signature: dht_status node::status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/node.cpp:752,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/node.cpp:752,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/node.cpp:753,1
    - Dst: num_allocated_observers
      Src: /src/libtorrent/src/kademlia/node.cpp:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 754
    functionName: libtorrent::dht::node::get_stats_counters
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - size
    - num_allocated_observers
    - std::tie
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> node::get_stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:762,1
    - Dst: num_allocated_observers
      Src: /src/libtorrent/src/kademlia/node.cpp:763,1
    - Dst: active_requests::emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:766,1
    - Dst: active_requests::back
      Src: /src/libtorrent/src/kademlia/node.cpp:767,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 770
    functionName: libtorrent::dht::node::status
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - num_allocated_observers
    - active_requests::back
    - active_requests::emplace_back
    - libtorrent::dht::node::status
    linkageType: ''
    returnType: void
    signature: void node::status(session_status& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:777,1
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ' info_hash'
    - ' reply'
    - noseed
    - scrape
    - ' requester'
    argTypes:
    - sha1_hash
    - entry
    - bool
    - bool
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: libtorrent::dht::node::lookup_peers
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::node::get_peers
    linkageType: ''
    returnType: bool
    signature: "bool node::lookup_peers(sha1_hash const& info_hash, entry& reply\n\t,
      bool noseed, bool scrape, address const& requester) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::string
      Src: /src/libtorrent/src/kademlia/node.cpp:785,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: id::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: id::end
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:789,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<node_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 792
    functionName: libtorrent::dht::write_nodes_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - id::end
    - libtorrent::aux::write_endpoint
    - libtorrent::dht::ep
    - id::begin
    - std::copy
    - entry::string
    linkageType: ''
    returnType: entry
    signature: entry write_nodes_entry(std::vector<node_entry> const& nodes)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/src/kademlia/node.cpp:797,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:799,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:810,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:812,1
    - Dst: endpoint_to_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:816,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:819,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:820,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:827,1
    - Dst: heard_about
      Src: /src/libtorrent/src/kademlia/node.cpp:832,1
    - Dst: add_our_id
      Src: /src/libtorrent/src/kademlia/node.cpp:835,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/node.cpp:838,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:840,1
    - Dst: on_dht_request
      Src: /src/libtorrent/src/kademlia/node.cpp:842,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:847,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:861,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:863,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:864,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:868,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:870,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:873,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:875,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:876,1
    - Dst: libtorrent::dht::node::lookup_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:880,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:880,1
    - Dst: libtorrent::dht::node::generate_token
      Src: /src/libtorrent/src/kademlia/node.cpp:881,1
    - Dst: find_key
      Src: /src/libtorrent/src/kademlia/node.cpp:884,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:886,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:887,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:899,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:901,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:902,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:906,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:907,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:909,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:923,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:925,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:926,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:930,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:934,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/node.cpp:935,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:939,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:940,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:944,1
    - Dst: libtorrent::dht::node::announce
      Src: /src/libtorrent/src/kademlia/node.cpp:947,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:947,1
    - Dst: libtorrent::dht::node::verify_token
      Src: /src/libtorrent/src/kademlia/node.cpp:949,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:949,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/kademlia/node.cpp:950,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:950,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:952,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:953,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:957,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/node.cpp:962,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:965,1
    - Dst: string_view
      Src: /src/libtorrent/src/kademlia/node.cpp:965,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:966,1
    - Dst: announce_peer
      Src: /src/libtorrent/src/kademlia/node.cpp:968,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:990,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/src/kademlia/node.cpp:991,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:993,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:994,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:998,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1005,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1009,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/node.cpp:1012,1
    - Dst: span::size
      Src: /src/libtorrent/src/kademlia/node.cpp:1013,1
    - Dst: span::empty
      Src: /src/libtorrent/src/kademlia/node.cpp:1013,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1015,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1016,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1022,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1022,1
    - Dst: span::size
      Src: /src/libtorrent/src/kademlia/node.cpp:1023,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1025,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1026,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/node.cpp:1031,1
    - Dst: public_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1031,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/node.cpp:1032,1
    - Dst: libtorrent::dht::node::verify_token
      Src: /src/libtorrent/src/kademlia/node.cpp:1042,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1042,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1044,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1045,1
    - Dst: put_immutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1051,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1051,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1056,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1060,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1062,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1063,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1068,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1070,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1071,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:1075,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1075,1
    - Dst: get_mutable_item_seq
      Src: /src/libtorrent/src/kademlia/node.cpp:1078,1
    - Dst: put_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1080,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1081,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1090,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1092,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1093,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1099,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1100,1
    - Dst: put_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1104,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1105,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/node.cpp:1109,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:1123,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1125,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1126,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1130,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1131,1
    - Dst: libtorrent::dht::node::generate_token
      Src: /src/libtorrent/src/kademlia/node.cpp:1137,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1140,1
    - Dst: get_immutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1146,1
    - Dst: get_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1148,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1148,1
    - Dst: get_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1154,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1155,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1155,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:1167,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1169,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1170,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1174,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1175,1
    - Dst: get_infohashes_sample
      Src: /src/libtorrent/src/kademlia/node.cpp:1179,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1181,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:1188,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1189,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:1191,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1192,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1194,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1199,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1201,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/src/kademlia/node.cpp:1201,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 165
    argCount: 2
    argNames:
    - ' m'
    - ' e'
    argTypes:
    - msg
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 1203
    functionName: libtorrent::dht::node::incoming_request
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - span::size
    - addr::port
    - bdecode_node::dict_find_list
    - get_infohashes_sample
    - bdecode_node::string_length
    - heard_about
    - get_bool
    - libtorrent::dht::node::write_nodes_entries
    - add_our_id
    - endpoint_to_bytes
    - bdecode_node::has_soft_error
    - bdecode_node::string_ptr
    - string_value
    - int_value
    - entry
    - list
    - std::uint16_t
    - announce_peer
    - get_immutable_item
    - on_dht_request
    - libtorrent::dht::node::verify_token
    - log
    - inc_stats_counter
    - verify_mutable_item
    - sequence_number
    - data_section
    - sha1_hash
    - string_ptr
    - node_seen
    - verify_message
    - span::empty
    - TORRENT_ASSERT
    - public_key
    - get_mutable_item_seq
    - libtorrent::dht::node::announce
    - bdecode_node::dict_find_string
    - put_immutable_item
    - item_target_id
    - put_mutable_item
    - incoming_error
    - get_mutable_item
    - find_key
    - libtorrent::dht::node::lookup_peers
    - local_endpoint
    - libtorrent::dht::node::generate_token
    - string_view
    - string_length
    - verify_id
    - message::dict_find_string_value
    - addr::address
    linkageType: ''
    returnType: void
    signature: void node::incoming_request(msg const& m, entry& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/node.cpp:1211,1
    - Dst: find_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1213,1
    - Dst: protocol_nodes_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1214,1
    - Dst: write_nodes_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:1214,1
    - Dst: list_size
      Src: /src/libtorrent/src/kademlia/node.cpp:1223,1
    - Dst: list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:1225,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/node.cpp:1226,1
    - Dst: m_get_foreign_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1228,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1228,1
    - Dst: node*::m_table::find_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1230,1
    - Dst: node*::protocol_nodes_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1231,1
    - Dst: write_nodes_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:1231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' info_hash'
    - ' want'
    - ' r'
    argTypes:
    - sha1_hash
    - bdecode_node
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1233
    functionName: libtorrent::dht::node::write_nodes_entries
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - list_size
    - node*::m_table::find_node
    - bdecode_node::string_value
    - bdecode_node::type
    - protocol_nodes_key
    - find_node
    - m_get_foreign_node
    - node*::protocol_nodes_key
    - type
    - list_at
    - write_nodes_entry
    linkageType: ''
    returnType: void
    signature: "void node::write_nodes_entries(sha1_hash const& info_hash\n\t, bdecode_node
      const& want, entry& r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:1239,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:1240,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/kademlia/node.cpp:1246,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/kademlia/node.cpp:1248,1
    - Dst: aux::throw_ex<std::out_of_range>
      Src: /src/libtorrent/src/kademlia/node.cpp:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1253
    functionName: '& node::map_protocol_to_descriptor(udp const protocol)'
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - rand_v6
    - std::array::end
    - std::array::begin
    - TORRENT_ASSERT_FAIL
    - aux::throw_ex<std::out_of_range>
    - std::find_if
    linkageType: ''
    returnType: node::protocol_descriptor
    signature: node::protocol_descriptor & node::map_protocol_to_descriptor(udp const
      protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::nop
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:90,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/kademlia/node.cpp:94,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:96,1
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node.cpp:97,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' nid'
    - ' sock'
    argTypes:
    - node_id
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::calculate_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_external_address
    - is_all_zeros
    - address::is_unspecified
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::generate_id
    - libtorrent::dht::verify_id
    linkageType: ''
    returnType: node_id
    signature: node_id calculate_node_id(node_id const& nid, aux::listen_socket_handle
      const& sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:111,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:112,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' e'
    - msg
    argTypes:
    - entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - list
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void incoming_error(entry& e, char const* msg, int error_code = 203)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::nop
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:90,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/kademlia/node.cpp:94,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:96,1
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node.cpp:97,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' nid'
    - ' sock'
    argTypes:
    - node_id
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::calculate_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_external_address
    - is_all_zeros
    - address::is_unspecified
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::generate_id
    - libtorrent::dht::verify_id
    linkageType: ''
    returnType: node_id
    signature: node_id calculate_node_id(node_id const& nid, aux::listen_socket_handle
      const& sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:111,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:112,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' e'
    - msg
    argTypes:
    - entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - list
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void incoming_error(entry& e, char const* msg, int error_code = 203)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculate_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:126,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:131,1
    - Dst: map_protocol_to_descriptor
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:134,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/node.cpp:135,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:139,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - ' sock'
    - sock_man
    - ' settings'
    - ' nid'
    - observer
    - ' cnt'
    - get_foreign_node
    - ' storage'
    argTypes:
    - aux::listen_socket_handle
    - socket_manager*
    - aux::session_settings
    - node_id
    - dht_observer*
    - counters
    - get_foreign_node_t
    - dht_storage_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 141
    functionName: libtorrent::dht::node::node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - std::move
    - get_local_endpoint
    - map_protocol_to_descriptor
    - libtorrent::aux::is_v4
    - rand_v6
    - libtorrent::aux::crypto_random_bytes
    - calculate_node_id
    - min_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void node::node(aux::listen_socket_handle const& sock, socket_manager*
      sock_man\n\t, aux::session_settings const& settings\n\t, node_id const& nid\n\t,
      dht_observer* observer\n\t, counters& cnt\n\t, get_foreign_node_t get_foreign_node\n\t,
      dht_storage_interface& storage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: node::~node()
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node::~node()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/node.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::node::branch_factor
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int node::branch_factor() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:154,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:158,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:162,1
    - Dst: generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:166,1
    - Dst: libtorrent::dht::node::update_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:168,1
    - Dst: libtorrent::dht::node::update_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 170
    functionName: libtorrent::dht::node::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - get_external_address
    - libtorrent::dht::node::update_node_id
    - log
    - generate_id
    - verify_id
    linkageType: ''
    returnType: void
    signature: void node::update_node_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_view::length
      Src: /src/libtorrent/src/kademlia/node.cpp:175,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:180,1
    - Dst: string_view::length
      Src: /src/libtorrent/src/kademlia/node.cpp:181,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node.cpp:188,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:189,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:190,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:191,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:193,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:198,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:199,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:200,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:201,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - token
    - ' info_hash'
    - ' addr'
    argTypes:
    - string_view
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: libtorrent::dht::node::verify_token
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - hasher::final
    - string_view::end
    - reinterpret_cast<char*>
    - equal
    - log
    - hasher::update
    - string_view::begin
    - address
    - string_view::length
    linkageType: ''
    returnType: bool
    signature: "bool node::verify_token(string_view token, sha1_hash const& info_hash\n\t,
      udp::endpoint const& addr) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/src/kademlia/node.cpp:209,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node.cpp:211,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:212,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:213,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:214,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:216,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: sha1_hash::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: sha1_hash::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' addr'
    - ' info_hash'
    argTypes:
    - udp::endpoint
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::node::generate_token
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - hasher::final
    - sha1_hash::begin
    - std::string::begin
    - std::string::end
    - TORRENT_ASSERT
    - std::copy
    - equal
    - std::string::resize
    - hasher::update
    - sha1_hash::data
    - address
    linkageType: ''
    returnType: std::string
    signature: "std::string node::generate_token(udp::endpoint const& addr\n\t, sha1_hash
      const& info_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/node.cpp:226,1
    - Dst: std::make_shared<dht::bootstrap>
      Src: /src/libtorrent/src/kademlia/node.cpp:228,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:229,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:240,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:240,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:245,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' nodes'
    - ' f'
    argTypes:
    - std::vector<udp::endpoint>
    - find_data::nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: libtorrent::dht::node::bootstrap
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::make_shared<dht::bootstrap>
    - node_id
    - make_id_secret
    - log
    - auto::add_entry
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void node::bootstrap(std::vector<udp::endpoint> const& nodes\n\t,
      find_data::nodes_callback const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::bucket_size
      Src: /src/libtorrent/src/kademlia/node.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: libtorrent::dht::node::bucket_size
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::node::bucket_size
    linkageType: ''
    returnType: int
    signature: int node::bucket_size(int bucket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: libtorrent::dht::node::new_write_key
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    linkageType: ''
    returnType: void
    signature: void node::new_write_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::unreachable
      Src: /src/libtorrent/src/kademlia/node.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: libtorrent::dht::node::unreachable
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::node::unreachable
    linkageType: ''
    returnType: void
    signature: void node::unreachable(udp::endpoint const& ep)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:269,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:270,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:280,1
    - Dst: message::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:286,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:291,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:293,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/kademlia/node.cpp:293,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:294,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:298,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:300,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/kademlia/node.cpp:300,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:301,1
    - Dst: libtorrent::dht::node::incoming
      Src: /src/libtorrent/src/kademlia/node.cpp:310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:315,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:315,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:318,1
    - Dst: has_quota
      Src: /src/libtorrent/src/kademlia/node.cpp:324,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:326,1
    - Dst: libtorrent::dht::node::incoming_request
      Src: /src/libtorrent/src/kademlia/node.cpp:331,1
    - Dst: send_packet
      Src: /src/libtorrent/src/kademlia/node.cpp:332,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:338,1
    - Dst: message::dict_find_list
      Src: /src/libtorrent/src/kademlia/node.cpp:340,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/node.cpp:341,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:342,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:343,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:345,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/kademlia/node.cpp:346,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/kademlia/node.cpp:347,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:351,1
    - Dst: libtorrent::dht::node::incoming
      Src: /src/libtorrent/src/kademlia/node.cpp:356,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 2
    argNames:
    - ' s'
    - ' m'
    argTypes:
    - aux::listen_socket_handle
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 360
    functionName: libtorrent::dht::node::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_v6_address
    - has_quota
    - bdecode_node::string_length
    - message::dict_find_list
    - get_bool
    - bdecode_node::string_ptr
    - message::dict_find_string
    - libtorrent::dht::node::incoming
    - libtorrent::aux::address_size
    - rand_v6
    - libtorrent::dht::node::incoming_request
    - bdecode_node::list_size
    - set_external_address
    - bdecode_node::list_string_value_at
    - log
    - inc_stats_counter
    - libtorrent::aux::read_v4_address
    - bdecode_node::list_int_value_at
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - rand_v4
    - send_packet
    - should_log
    - message::dict_find_string_value
    - addr::address
    linkageType: ''
    returnType: void
    signature: void node::incoming(aux::listen_socket_handle const& s, msg const&
      m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer
      Src: /src/libtorrent/src/kademlia/node.cpp:368,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:369,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:371,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:382,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:384,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:385,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:389,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:390,1
    - Dst: libtorrent::dht::stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:404,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' v'
    - ' node'
    - listen_port
    - ' ih'
    - flags
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - node
    - int
    - sha1_hash
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::announce_fun
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - m_rpc::allocate_observer
    - libtorrent::dht::size
    - libtorrent::aux::to_hex
    - node_id
    - first::ep
    - libtorrent::dht::observer
    - auto::should_log
    - m_rpc::invoke
    - auto::log
    - libtorrent::dht::stats_counters
    - libtorrent::dht::distance_exp
    linkageType: ''
    returnType: void
    signature: "void announce_fun(std::vector<std::pair<node_entry, std::string>>
      const& v\n\t\t, node& node, int const listen_port, sha1_hash const& ih, announce_flags_t
      const flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer
      Src: /src/libtorrent/src/kademlia/node.cpp:368,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:369,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:371,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:382,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:384,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:385,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:389,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:390,1
    - Dst: libtorrent::dht::stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:404,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' v'
    - ' node'
    - listen_port
    - ' ih'
    - flags
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - node
    - int
    - sha1_hash
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::announce_fun
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - m_rpc::allocate_observer
    - libtorrent::dht::size
    - libtorrent::aux::to_hex
    - node_id
    - first::ep
    - libtorrent::dht::observer
    - auto::should_log
    - m_rpc::invoke
    - auto::log
    - libtorrent::dht::stats_counters
    - libtorrent::dht::distance_exp
    linkageType: ''
    returnType: void
    signature: "void announce_fun(std::vector<std::pair<node_entry, std::string>>
      const& v\n\t\t, node& node, int const listen_port, sha1_hash const& ih, announce_flags_t
      const flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:414,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:416,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:417,1
    - Dst: libtorrent::dht::node::add_router_node
      Src: /src/libtorrent/src/kademlia/node.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' router'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: libtorrent::dht::node::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::node::add_router_node
    - should_log
    - log
    - print_endpoint
    linkageType: ''
    returnType: void
    signature: void node::add_router_node(udp::endpoint const& router)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: native_address
      Src: /src/libtorrent/src/kademlia/node.cpp:425,1
    - Dst: libtorrent::dht::node::send_single_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:428,1
    - Dst: num_active_buckets
      Src: /src/libtorrent/src/kademlia/node.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: libtorrent::dht::node::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - num_active_buckets
    - native_address
    - libtorrent::dht::node::send_single_refresh
    linkageType: ''
    returnType: void
    signature: void node::add_node(udp::endpoint const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:440,1
    - Dst: std::make_shared<dht::obfuscated_get_peers>
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::make_shared<dht::get_peers>
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' info_hash'
    - dcallback
    - ncallback
    - flags
    argTypes:
    - sha1_hash
    - std::function<void(std::vector<tcp::endpoint> const&)>
    - std::function<void(std::vector<std::pair<node_entry, std::string>> const&)>
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: libtorrent::dht::node::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - auto::start
    - std::move
    - std::make_shared<dht::obfuscated_get_peers>
    - get_bool
    - std::make_shared<dht::get_peers>
    linkageType: ''
    returnType: void
    signature: "void node::get_peers(sha1_hash const& info_hash\n\t, std::function<void(std::vector<tcp::endpoint>
      const&)> dcallback\n\t, std::function<void(std::vector<std::pair<node_entry,
      std::string>> const&)> ncallback\n\t, announce_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:451,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:453,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:454,1
    - Dst: get_listen_port
      Src: /src/libtorrent/src/kademlia/node.cpp:460,1
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:465,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:466,1
    - Dst: std::ref
      Src: /src/libtorrent/src/kademlia/node.cpp:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' info_hash'
    - listen_port
    - flags
    - f
    argTypes:
    - sha1_hash
    - int
    - announce_flags_t
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 468
    functionName: libtorrent::dht::node::announce
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - get_listen_port
    - std::move
    - libtorrent::aux::to_hex
    - std::ref
    - libtorrent::dht::node::get_peers
    - log
    - should_log
    linkageType: ''
    returnType: void
    signature: "void node::announce(sha1_hash const& info_hash, int listen_port, announce_flags_t
      const flags\n\t, std::function<void(std::vector<tcp::endpoint> const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<direct_traversal>
      Src: /src/libtorrent/src/kademlia/node.cpp:474,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:474,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - f
    argTypes:
    - udp::endpoint
    - entry
    - std::function<void(msg const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: libtorrent::dht::node::direct_request
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<direct_traversal>
    - std::move
    - allocate_observer
    - node_id
    - invoke
    linkageType: ''
    returnType: void
    signature: "void node::direct_request(udp::endpoint const& ep, entry& e\n\t, std::function<void(msg
      const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:488,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:490,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:491,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:495,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:496,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:496,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - f
    argTypes:
    - sha1_hash
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 498
    functionName: libtorrent::dht::node::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - libtorrent::aux::to_hex
    - log
    - should_log
    - find_data::nodes_callback
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: void node::get_item(sha1_hash const& target, std::function<void(item
      const&)> f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:504,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:507,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:508,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:512,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:512,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:513,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' pk'
    - ' salt'
    - f
    argTypes:
    - public_key
    - std::string
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: libtorrent::dht::node::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::move
    - libtorrent::aux::to_hex
    - log
    - should_log
    - find_data::nodes_callback
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: "void node::get_item(public_key const& pk, std::string const& salt\n\t,
      std::function<void(item const&, bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_targets
      Src: /src/libtorrent/src/kademlia/node.cpp:522,1
    - Dst: start
      Src: /src/libtorrent/src/kademlia/node.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' nodes'
    - ' ta'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - std::shared_ptr<put_data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: libtorrent::dht::put
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - start
    - set_targets
    linkageType: ''
    returnType: void
    signature: "void put(std::vector<std::pair<node_entry, std::string>> const& nodes\n\t,
      std::shared_ptr<put_data> const& ta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/node.cpp:534,1
    - Dst: libtorrent::dht::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' i'
    - auth
    - ' ta'
    - ' f'
    argTypes:
    - item
    - bool
    - std::shared_ptr<put_data>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libtorrent::dht::put_data_cb
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::set_data
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: "void put_data_cb(item const& i, bool auth\n\t, std::shared_ptr<put_data>
      const& ta\n\t, std::function<void(item&)> const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_targets
      Src: /src/libtorrent/src/kademlia/node.cpp:522,1
    - Dst: start
      Src: /src/libtorrent/src/kademlia/node.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' nodes'
    - ' ta'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - std::shared_ptr<put_data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: libtorrent::dht::put
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - start
    - set_targets
    linkageType: ''
    returnType: void
    signature: "void put(std::vector<std::pair<node_entry, std::string>> const& nodes\n\t,
      std::shared_ptr<put_data> const& ta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/node.cpp:534,1
    - Dst: libtorrent::dht::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' i'
    - auth
    - ' ta'
    - ' f'
    argTypes:
    - item
    - bool
    - std::shared_ptr<put_data>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libtorrent::dht::put_data_cb
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::set_data
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: "void put_data_cb(item const& i, bool auth\n\t, std::shared_ptr<put_data>
      const& ta\n\t, std::function<void(item&)> const& f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:544,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:546,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:547,1
    - Dst: item::assign
      Src: /src/libtorrent/src/kademlia/node.cpp:552,1
    - Dst: std::make_shared<dht::put_data>
      Src: /src/libtorrent/src/kademlia/node.cpp:553,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:553,1
    - Dst: auto::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:554,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:554,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:556,1
    - Dst: get_item::data_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:557,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:557,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' target'
    - ' data'
    - f
    argTypes:
    - sha1_hash
    - entry
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 559
    functionName: libtorrent::dht::node::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - auto::set_data
    - std::make_shared<dht::put_data>
    - libtorrent::aux::to_hex
    - std::move
    - item::assign
    - log
    - get_item::data_callback
    - should_log
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: void node::put_item(sha1_hash const& target, entry const& data, std::function<void(int)>
      f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:566,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:569,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:570,1
    - Dst: std::make_shared<dht::put_data>
      Src: /src/libtorrent/src/kademlia/node.cpp:574,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:576,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:577,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:578,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' pk'
    - ' salt'
    - f
    - data_cb
    argTypes:
    - public_key
    - std::string
    - std::function<void(item const&, int)>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 580
    functionName: libtorrent::dht::node::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - std::make_shared<dht::put_data>
    - libtorrent::aux::to_hex
    - log
    - should_log
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: "void node::put_item(public_key const& pk, std::string const& salt\n\t,
      std::function<void(item const&, int)> f\n\t, std::function<void(item&)> data_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:589,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:591,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:592,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:592,1
    - Dst: std::make_shared<dht::sample_infohashes>
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:599,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:599,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:610,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' ep'
    - ' target'
    - f
    argTypes:
    - udp::endpoint
    - sha1_hash
    - "std::function<void(sha1_hash\n\t\t, time_duration\n\t\t, int, std::vector<sha1_hash>\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 614
    functionName: libtorrent::dht::node::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::aux::to_hex
    - node_id
    - allocate_observer
    - stats_counters
    - print_endpoint
    - log
    - std::make_shared<dht::sample_infohashes>
    - invoke
    - should_log
    linkageType: ''
    returnType: void
    signature: "void node::sample_infohashes(udp::endpoint const& ep, sha1_hash const&
      target\n\t, std::function<void(sha1_hash\n\t\t, time_duration\n\t\t, int, std::vector<sha1_hash>\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: libtorrent::dht::ping_observer
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void ping_observer(\n\t\tstd::shared_ptr<traversal_algorithm> algorithm\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/node.cpp:629,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:633,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:635,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/kademlia/node.cpp:637,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:637,1
    - Dst: libtorrent::dht::look_for_nodes
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:643,1
    - Dst: heard_about
      Src: /src/libtorrent/src/kademlia/node.cpp:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 644
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - libtorrent::dht::look_for_nodes
    - static_cast<void*>
    - heard_about
    - libtorrent::dht::algorithm
    linkageType: ''
    returnType: void
    signature: void reply(msg const& m) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:653,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/node.cpp:654,1
    - Dst: depth
      Src: /src/libtorrent/src/kademlia/node.cpp:654,1
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/node.cpp:657,1
    - Dst: std::make_shared<dht::bootstrap>
      Src: /src/libtorrent/src/kademlia/node.cpp:658,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:658,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:659,1
    - Dst: next_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:664,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:668,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:672,1
    - Dst: libtorrent::dht::node::send_single_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:673,1
    - Dst: node_entry*::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 674
    functionName: libtorrent::dht::node::tick
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - depth
    - std::bind
    - std::make_shared<dht::bootstrap>
    - auto::start
    - node_entry*::ep
    - libtorrent::dht::node::send_single_refresh
    - next_refresh
    - make_id_secret
    - TORRENT_ASSERT
    - distance_exp
    - minutes
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void node::tick()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:679,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:680,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:681,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/src/kademlia/node.cpp:686,1
    - Dst: generate_secret_id
      Src: /src/libtorrent/src/kademlia/node.cpp:687,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:691,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:691,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:692,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:692,1
    - Dst: is_full
      Src: /src/libtorrent/src/kademlia/node.cpp:700,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:704,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/node.cpp:711,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:712,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - ' ep'
    - bucket
    - ' id'
    argTypes:
    - udp::endpoint
    - int
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 717
    functionName: libtorrent::dht::node::send_single_refresh
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - generate_prefix_mask
    - is_full
    - std::move
    - node_id
    - allocate_observer
    - generate_secret_id
    - TORRENT_ASSERT
    - inc_stats_counter
    - invoke
    - node_id::to_string
    linkageType: ''
    returnType: void
    signature: "void node::send_single_refresh(udp::endpoint const& ep, int const
      bucket\n\t, node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::tick
      Src: /src/libtorrent/src/kademlia/node.cpp:721,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/node.cpp:723,1
    - Dst: libtorrent::dht::node::tick
      Src: /src/libtorrent/src/kademlia/node.cpp:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 729
    functionName: libtorrent::dht::node::connection_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::node::tick
    - minutes
    linkageType: ''
    returnType: time_duration
    signature: time_duration node::connection_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_udp
      Src: /src/libtorrent/src/kademlia/node.cpp:737,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:737,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:738,1
    - Dst: dht_status::requests::emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:742,1
    - Dst: dht_status::requests::back
      Src: /src/libtorrent/src/kademlia/node.cpp:743,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 747
    functionName: libtorrent::dht::node::status
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - get_local_endpoint
    - make_udp
    - dht_status::requests::emplace_back
    - libtorrent::dht::node::status
    - dht_status::requests::back
    linkageType: ''
    returnType: dht_status
    signature: dht_status node::status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/node.cpp:752,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/node.cpp:752,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/node.cpp:753,1
    - Dst: num_allocated_observers
      Src: /src/libtorrent/src/kademlia/node.cpp:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 754
    functionName: libtorrent::dht::node::get_stats_counters
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - size
    - num_allocated_observers
    - std::tie
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> node::get_stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:762,1
    - Dst: num_allocated_observers
      Src: /src/libtorrent/src/kademlia/node.cpp:763,1
    - Dst: active_requests::emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:766,1
    - Dst: active_requests::back
      Src: /src/libtorrent/src/kademlia/node.cpp:767,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 770
    functionName: libtorrent::dht::node::status
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - num_allocated_observers
    - active_requests::back
    - active_requests::emplace_back
    - libtorrent::dht::node::status
    linkageType: ''
    returnType: void
    signature: void node::status(session_status& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:777,1
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ' info_hash'
    - ' reply'
    - noseed
    - scrape
    - ' requester'
    argTypes:
    - sha1_hash
    - entry
    - bool
    - bool
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: libtorrent::dht::node::lookup_peers
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::node::get_peers
    linkageType: ''
    returnType: bool
    signature: "bool node::lookup_peers(sha1_hash const& info_hash, entry& reply\n\t,
      bool noseed, bool scrape, address const& requester) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::string
      Src: /src/libtorrent/src/kademlia/node.cpp:785,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: id::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: id::end
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:789,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<node_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 792
    functionName: libtorrent::dht::write_nodes_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - id::end
    - libtorrent::aux::write_endpoint
    - libtorrent::dht::ep
    - id::begin
    - std::copy
    - entry::string
    linkageType: ''
    returnType: entry
    signature: entry write_nodes_entry(std::vector<node_entry> const& nodes)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/src/kademlia/node.cpp:797,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:799,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:810,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:812,1
    - Dst: endpoint_to_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:816,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:819,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:820,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:827,1
    - Dst: heard_about
      Src: /src/libtorrent/src/kademlia/node.cpp:832,1
    - Dst: add_our_id
      Src: /src/libtorrent/src/kademlia/node.cpp:835,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/node.cpp:838,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:840,1
    - Dst: on_dht_request
      Src: /src/libtorrent/src/kademlia/node.cpp:842,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:847,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:861,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:863,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:864,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:868,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:870,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:873,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:875,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:876,1
    - Dst: libtorrent::dht::node::lookup_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:880,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:880,1
    - Dst: libtorrent::dht::node::generate_token
      Src: /src/libtorrent/src/kademlia/node.cpp:881,1
    - Dst: find_key
      Src: /src/libtorrent/src/kademlia/node.cpp:884,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:886,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:887,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:899,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:901,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:902,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:906,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:907,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:909,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:923,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:925,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:926,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:930,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:934,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/node.cpp:935,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:939,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:940,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:944,1
    - Dst: libtorrent::dht::node::announce
      Src: /src/libtorrent/src/kademlia/node.cpp:947,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:947,1
    - Dst: libtorrent::dht::node::verify_token
      Src: /src/libtorrent/src/kademlia/node.cpp:949,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:949,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/kademlia/node.cpp:950,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:950,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:952,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:953,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:957,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/node.cpp:962,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:965,1
    - Dst: string_view
      Src: /src/libtorrent/src/kademlia/node.cpp:965,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:966,1
    - Dst: announce_peer
      Src: /src/libtorrent/src/kademlia/node.cpp:968,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:990,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/src/kademlia/node.cpp:991,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:993,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:994,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:998,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1005,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1009,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/node.cpp:1012,1
    - Dst: span::size
      Src: /src/libtorrent/src/kademlia/node.cpp:1013,1
    - Dst: span::empty
      Src: /src/libtorrent/src/kademlia/node.cpp:1013,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1015,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1016,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1022,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1022,1
    - Dst: span::size
      Src: /src/libtorrent/src/kademlia/node.cpp:1023,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1025,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1026,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/node.cpp:1031,1
    - Dst: public_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1031,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/node.cpp:1032,1
    - Dst: libtorrent::dht::node::verify_token
      Src: /src/libtorrent/src/kademlia/node.cpp:1042,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1042,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1044,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1045,1
    - Dst: put_immutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1051,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1051,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1056,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1060,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1062,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1063,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1068,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1070,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1071,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:1075,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1075,1
    - Dst: get_mutable_item_seq
      Src: /src/libtorrent/src/kademlia/node.cpp:1078,1
    - Dst: put_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1080,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1081,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1090,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1092,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1093,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1099,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1100,1
    - Dst: put_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1104,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1105,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/node.cpp:1109,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:1123,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1125,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1126,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1130,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1131,1
    - Dst: libtorrent::dht::node::generate_token
      Src: /src/libtorrent/src/kademlia/node.cpp:1137,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1140,1
    - Dst: get_immutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1146,1
    - Dst: get_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1148,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1148,1
    - Dst: get_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1154,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1155,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1155,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:1167,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1169,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1170,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1174,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1175,1
    - Dst: get_infohashes_sample
      Src: /src/libtorrent/src/kademlia/node.cpp:1179,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1181,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:1188,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1189,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:1191,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1192,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1194,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1199,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1201,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/src/kademlia/node.cpp:1201,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 165
    argCount: 2
    argNames:
    - ' m'
    - ' e'
    argTypes:
    - msg
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 1203
    functionName: libtorrent::dht::node::incoming_request
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - span::size
    - addr::port
    - bdecode_node::dict_find_list
    - get_infohashes_sample
    - bdecode_node::string_length
    - heard_about
    - get_bool
    - libtorrent::dht::node::write_nodes_entries
    - add_our_id
    - endpoint_to_bytes
    - bdecode_node::has_soft_error
    - bdecode_node::string_ptr
    - string_value
    - int_value
    - entry
    - list
    - std::uint16_t
    - announce_peer
    - get_immutable_item
    - on_dht_request
    - libtorrent::dht::node::verify_token
    - log
    - inc_stats_counter
    - verify_mutable_item
    - sequence_number
    - data_section
    - sha1_hash
    - string_ptr
    - node_seen
    - verify_message
    - span::empty
    - TORRENT_ASSERT
    - public_key
    - get_mutable_item_seq
    - libtorrent::dht::node::announce
    - bdecode_node::dict_find_string
    - put_immutable_item
    - item_target_id
    - put_mutable_item
    - incoming_error
    - get_mutable_item
    - find_key
    - libtorrent::dht::node::lookup_peers
    - local_endpoint
    - libtorrent::dht::node::generate_token
    - string_view
    - string_length
    - verify_id
    - message::dict_find_string_value
    - addr::address
    linkageType: ''
    returnType: void
    signature: void node::incoming_request(msg const& m, entry& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/node.cpp:1211,1
    - Dst: find_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1213,1
    - Dst: protocol_nodes_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1214,1
    - Dst: write_nodes_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:1214,1
    - Dst: list_size
      Src: /src/libtorrent/src/kademlia/node.cpp:1223,1
    - Dst: list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:1225,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/node.cpp:1226,1
    - Dst: m_get_foreign_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1228,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1228,1
    - Dst: node*::m_table::find_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1230,1
    - Dst: node*::protocol_nodes_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1231,1
    - Dst: write_nodes_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:1231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' info_hash'
    - ' want'
    - ' r'
    argTypes:
    - sha1_hash
    - bdecode_node
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1233
    functionName: libtorrent::dht::node::write_nodes_entries
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - list_size
    - node*::m_table::find_node
    - bdecode_node::string_value
    - bdecode_node::type
    - protocol_nodes_key
    - find_node
    - m_get_foreign_node
    - node*::protocol_nodes_key
    - type
    - list_at
    - write_nodes_entry
    linkageType: ''
    returnType: void
    signature: "void node::write_nodes_entries(sha1_hash const& info_hash\n\t, bdecode_node
      const& want, entry& r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:1239,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:1240,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/kademlia/node.cpp:1246,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/kademlia/node.cpp:1248,1
    - Dst: aux::throw_ex<std::out_of_range>
      Src: /src/libtorrent/src/kademlia/node.cpp:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1253
    functionName: '& node::map_protocol_to_descriptor(udp const protocol)'
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - rand_v6
    - std::array::end
    - std::array::begin
    - TORRENT_ASSERT_FAIL
    - aux::throw_ex<std::out_of_range>
    - std::find_if
    linkageType: ''
    returnType: node::protocol_descriptor
    signature: node::protocol_descriptor & node::map_protocol_to_descriptor(udp const
      protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::nop
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:90,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/kademlia/node.cpp:94,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:96,1
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node.cpp:97,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' nid'
    - ' sock'
    argTypes:
    - node_id
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::calculate_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_external_address
    - is_all_zeros
    - address::is_unspecified
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::generate_id
    - libtorrent::dht::verify_id
    linkageType: ''
    returnType: node_id
    signature: node_id calculate_node_id(node_id const& nid, aux::listen_socket_handle
      const& sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:111,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:112,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' e'
    - msg
    argTypes:
    - entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - list
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void incoming_error(entry& e, char const* msg, int error_code = 203)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::nop
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:90,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/kademlia/node.cpp:94,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:96,1
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node.cpp:97,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' nid'
    - ' sock'
    argTypes:
    - node_id
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::calculate_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_external_address
    - is_all_zeros
    - address::is_unspecified
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::generate_id
    - libtorrent::dht::verify_id
    linkageType: ''
    returnType: node_id
    signature: node_id calculate_node_id(node_id const& nid, aux::listen_socket_handle
      const& sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:111,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:112,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' e'
    - msg
    argTypes:
    - entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - list
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void incoming_error(entry& e, char const* msg, int error_code = 203)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculate_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:126,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:131,1
    - Dst: map_protocol_to_descriptor
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:134,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/node.cpp:135,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:139,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - ' sock'
    - sock_man
    - ' settings'
    - ' nid'
    - observer
    - ' cnt'
    - get_foreign_node
    - ' storage'
    argTypes:
    - aux::listen_socket_handle
    - socket_manager*
    - aux::session_settings
    - node_id
    - dht_observer*
    - counters
    - get_foreign_node_t
    - dht_storage_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 141
    functionName: libtorrent::dht::node::node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - std::move
    - get_local_endpoint
    - map_protocol_to_descriptor
    - libtorrent::aux::is_v4
    - rand_v6
    - libtorrent::aux::crypto_random_bytes
    - calculate_node_id
    - min_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void node::node(aux::listen_socket_handle const& sock, socket_manager*
      sock_man\n\t, aux::session_settings const& settings\n\t, node_id const& nid\n\t,
      dht_observer* observer\n\t, counters& cnt\n\t, get_foreign_node_t get_foreign_node\n\t,
      dht_storage_interface& storage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: node::~node()
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node::~node()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/node.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::node::branch_factor
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int node::branch_factor() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:154,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:158,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:162,1
    - Dst: generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:166,1
    - Dst: libtorrent::dht::node::update_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:168,1
    - Dst: libtorrent::dht::node::update_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 170
    functionName: libtorrent::dht::node::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - get_external_address
    - libtorrent::dht::node::update_node_id
    - log
    - generate_id
    - verify_id
    linkageType: ''
    returnType: void
    signature: void node::update_node_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_view::length
      Src: /src/libtorrent/src/kademlia/node.cpp:175,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:180,1
    - Dst: string_view::length
      Src: /src/libtorrent/src/kademlia/node.cpp:181,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node.cpp:188,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:189,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:190,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:191,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:193,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:198,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:199,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:200,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:201,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - token
    - ' info_hash'
    - ' addr'
    argTypes:
    - string_view
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: libtorrent::dht::node::verify_token
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - hasher::final
    - string_view::end
    - reinterpret_cast<char*>
    - equal
    - log
    - hasher::update
    - string_view::begin
    - address
    - string_view::length
    linkageType: ''
    returnType: bool
    signature: "bool node::verify_token(string_view token, sha1_hash const& info_hash\n\t,
      udp::endpoint const& addr) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/src/kademlia/node.cpp:209,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node.cpp:211,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:212,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:213,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:214,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:216,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: sha1_hash::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: sha1_hash::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' addr'
    - ' info_hash'
    argTypes:
    - udp::endpoint
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::node::generate_token
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - hasher::final
    - sha1_hash::begin
    - std::string::begin
    - std::string::end
    - TORRENT_ASSERT
    - std::copy
    - equal
    - std::string::resize
    - hasher::update
    - sha1_hash::data
    - address
    linkageType: ''
    returnType: std::string
    signature: "std::string node::generate_token(udp::endpoint const& addr\n\t, sha1_hash
      const& info_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/node.cpp:226,1
    - Dst: std::make_shared<dht::bootstrap>
      Src: /src/libtorrent/src/kademlia/node.cpp:228,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:229,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:240,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:240,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:245,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' nodes'
    - ' f'
    argTypes:
    - std::vector<udp::endpoint>
    - find_data::nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: libtorrent::dht::node::bootstrap
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::make_shared<dht::bootstrap>
    - node_id
    - make_id_secret
    - log
    - auto::add_entry
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void node::bootstrap(std::vector<udp::endpoint> const& nodes\n\t,
      find_data::nodes_callback const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::bucket_size
      Src: /src/libtorrent/src/kademlia/node.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: libtorrent::dht::node::bucket_size
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::node::bucket_size
    linkageType: ''
    returnType: int
    signature: int node::bucket_size(int bucket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: libtorrent::dht::node::new_write_key
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    linkageType: ''
    returnType: void
    signature: void node::new_write_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::unreachable
      Src: /src/libtorrent/src/kademlia/node.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: libtorrent::dht::node::unreachable
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::node::unreachable
    linkageType: ''
    returnType: void
    signature: void node::unreachable(udp::endpoint const& ep)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:269,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:270,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:280,1
    - Dst: message::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:286,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:291,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:293,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/kademlia/node.cpp:293,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:294,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:298,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:300,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/kademlia/node.cpp:300,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:301,1
    - Dst: libtorrent::dht::node::incoming
      Src: /src/libtorrent/src/kademlia/node.cpp:310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:315,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:315,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:318,1
    - Dst: has_quota
      Src: /src/libtorrent/src/kademlia/node.cpp:324,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:326,1
    - Dst: libtorrent::dht::node::incoming_request
      Src: /src/libtorrent/src/kademlia/node.cpp:331,1
    - Dst: send_packet
      Src: /src/libtorrent/src/kademlia/node.cpp:332,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:338,1
    - Dst: message::dict_find_list
      Src: /src/libtorrent/src/kademlia/node.cpp:340,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/node.cpp:341,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:342,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:343,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:345,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/kademlia/node.cpp:346,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/kademlia/node.cpp:347,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:351,1
    - Dst: libtorrent::dht::node::incoming
      Src: /src/libtorrent/src/kademlia/node.cpp:356,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 2
    argNames:
    - ' s'
    - ' m'
    argTypes:
    - aux::listen_socket_handle
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 360
    functionName: libtorrent::dht::node::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::read_v6_address
    - has_quota
    - bdecode_node::string_length
    - message::dict_find_list
    - get_bool
    - bdecode_node::string_ptr
    - message::dict_find_string
    - libtorrent::dht::node::incoming
    - libtorrent::aux::address_size
    - rand_v6
    - libtorrent::dht::node::incoming_request
    - bdecode_node::list_size
    - set_external_address
    - bdecode_node::list_string_value_at
    - log
    - inc_stats_counter
    - libtorrent::aux::read_v4_address
    - bdecode_node::list_int_value_at
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - rand_v4
    - send_packet
    - should_log
    - message::dict_find_string_value
    - addr::address
    linkageType: ''
    returnType: void
    signature: void node::incoming(aux::listen_socket_handle const& s, msg const&
      m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer
      Src: /src/libtorrent/src/kademlia/node.cpp:368,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:369,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:371,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:382,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:384,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:385,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:389,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:390,1
    - Dst: libtorrent::dht::stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:404,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' v'
    - ' node'
    - listen_port
    - ' ih'
    - flags
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - node
    - int
    - sha1_hash
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::announce_fun
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - m_rpc::allocate_observer
    - libtorrent::dht::size
    - libtorrent::aux::to_hex
    - node_id
    - first::ep
    - libtorrent::dht::observer
    - auto::should_log
    - m_rpc::invoke
    - auto::log
    - libtorrent::dht::stats_counters
    - libtorrent::dht::distance_exp
    linkageType: ''
    returnType: void
    signature: "void announce_fun(std::vector<std::pair<node_entry, std::string>>
      const& v\n\t\t, node& node, int const listen_port, sha1_hash const& ih, announce_flags_t
      const flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer
      Src: /src/libtorrent/src/kademlia/node.cpp:368,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:369,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:371,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:382,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:384,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:385,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:389,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:390,1
    - Dst: libtorrent::dht::stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:404,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' v'
    - ' node'
    - listen_port
    - ' ih'
    - flags
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - node
    - int
    - sha1_hash
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::announce_fun
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - m_rpc::allocate_observer
    - libtorrent::dht::size
    - libtorrent::aux::to_hex
    - node_id
    - first::ep
    - libtorrent::dht::observer
    - auto::should_log
    - m_rpc::invoke
    - auto::log
    - libtorrent::dht::stats_counters
    - libtorrent::dht::distance_exp
    linkageType: ''
    returnType: void
    signature: "void announce_fun(std::vector<std::pair<node_entry, std::string>>
      const& v\n\t\t, node& node, int const listen_port, sha1_hash const& ih, announce_flags_t
      const flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:414,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:416,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:417,1
    - Dst: libtorrent::dht::node::add_router_node
      Src: /src/libtorrent/src/kademlia/node.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' router'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: libtorrent::dht::node::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::node::add_router_node
    - should_log
    - log
    - print_endpoint
    linkageType: ''
    returnType: void
    signature: void node::add_router_node(udp::endpoint const& router)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: native_address
      Src: /src/libtorrent/src/kademlia/node.cpp:425,1
    - Dst: libtorrent::dht::node::send_single_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:428,1
    - Dst: num_active_buckets
      Src: /src/libtorrent/src/kademlia/node.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: libtorrent::dht::node::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - num_active_buckets
    - native_address
    - libtorrent::dht::node::send_single_refresh
    linkageType: ''
    returnType: void
    signature: void node::add_node(udp::endpoint const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:440,1
    - Dst: std::make_shared<dht::obfuscated_get_peers>
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::make_shared<dht::get_peers>
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' info_hash'
    - dcallback
    - ncallback
    - flags
    argTypes:
    - sha1_hash
    - std::function<void(std::vector<tcp::endpoint> const&)>
    - std::function<void(std::vector<std::pair<node_entry, std::string>> const&)>
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: libtorrent::dht::node::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - auto::start
    - std::move
    - std::make_shared<dht::obfuscated_get_peers>
    - get_bool
    - std::make_shared<dht::get_peers>
    linkageType: ''
    returnType: void
    signature: "void node::get_peers(sha1_hash const& info_hash\n\t, std::function<void(std::vector<tcp::endpoint>
      const&)> dcallback\n\t, std::function<void(std::vector<std::pair<node_entry,
      std::string>> const&)> ncallback\n\t, announce_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:451,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:453,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:454,1
    - Dst: get_listen_port
      Src: /src/libtorrent/src/kademlia/node.cpp:460,1
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:465,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:466,1
    - Dst: std::ref
      Src: /src/libtorrent/src/kademlia/node.cpp:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' info_hash'
    - listen_port
    - flags
    - f
    argTypes:
    - sha1_hash
    - int
    - announce_flags_t
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 468
    functionName: libtorrent::dht::node::announce
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - get_listen_port
    - std::move
    - libtorrent::aux::to_hex
    - std::ref
    - libtorrent::dht::node::get_peers
    - log
    - should_log
    linkageType: ''
    returnType: void
    signature: "void node::announce(sha1_hash const& info_hash, int listen_port, announce_flags_t
      const flags\n\t, std::function<void(std::vector<tcp::endpoint> const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<direct_traversal>
      Src: /src/libtorrent/src/kademlia/node.cpp:474,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:474,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - f
    argTypes:
    - udp::endpoint
    - entry
    - std::function<void(msg const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: libtorrent::dht::node::direct_request
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<direct_traversal>
    - std::move
    - allocate_observer
    - node_id
    - invoke
    linkageType: ''
    returnType: void
    signature: "void node::direct_request(udp::endpoint const& ep, entry& e\n\t, std::function<void(msg
      const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:488,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:490,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:491,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:495,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:496,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:496,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - f
    argTypes:
    - sha1_hash
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 498
    functionName: libtorrent::dht::node::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - libtorrent::aux::to_hex
    - log
    - should_log
    - find_data::nodes_callback
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: void node::get_item(sha1_hash const& target, std::function<void(item
      const&)> f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:504,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:507,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:508,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:512,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:512,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:513,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' pk'
    - ' salt'
    - f
    argTypes:
    - public_key
    - std::string
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: libtorrent::dht::node::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::move
    - libtorrent::aux::to_hex
    - log
    - should_log
    - find_data::nodes_callback
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: "void node::get_item(public_key const& pk, std::string const& salt\n\t,
      std::function<void(item const&, bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_targets
      Src: /src/libtorrent/src/kademlia/node.cpp:522,1
    - Dst: start
      Src: /src/libtorrent/src/kademlia/node.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' nodes'
    - ' ta'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - std::shared_ptr<put_data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: libtorrent::dht::put
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - start
    - set_targets
    linkageType: ''
    returnType: void
    signature: "void put(std::vector<std::pair<node_entry, std::string>> const& nodes\n\t,
      std::shared_ptr<put_data> const& ta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/node.cpp:534,1
    - Dst: libtorrent::dht::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' i'
    - auth
    - ' ta'
    - ' f'
    argTypes:
    - item
    - bool
    - std::shared_ptr<put_data>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libtorrent::dht::put_data_cb
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::set_data
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: "void put_data_cb(item const& i, bool auth\n\t, std::shared_ptr<put_data>
      const& ta\n\t, std::function<void(item&)> const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_targets
      Src: /src/libtorrent/src/kademlia/node.cpp:522,1
    - Dst: start
      Src: /src/libtorrent/src/kademlia/node.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' nodes'
    - ' ta'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - std::shared_ptr<put_data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: libtorrent::dht::put
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - start
    - set_targets
    linkageType: ''
    returnType: void
    signature: "void put(std::vector<std::pair<node_entry, std::string>> const& nodes\n\t,
      std::shared_ptr<put_data> const& ta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/node.cpp:534,1
    - Dst: libtorrent::dht::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' i'
    - auth
    - ' ta'
    - ' f'
    argTypes:
    - item
    - bool
    - std::shared_ptr<put_data>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libtorrent::dht::put_data_cb
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::set_data
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: "void put_data_cb(item const& i, bool auth\n\t, std::shared_ptr<put_data>
      const& ta\n\t, std::function<void(item&)> const& f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:544,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:546,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:547,1
    - Dst: item::assign
      Src: /src/libtorrent/src/kademlia/node.cpp:552,1
    - Dst: std::make_shared<dht::put_data>
      Src: /src/libtorrent/src/kademlia/node.cpp:553,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:553,1
    - Dst: auto::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:554,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:554,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:556,1
    - Dst: get_item::data_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:557,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:557,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' target'
    - ' data'
    - f
    argTypes:
    - sha1_hash
    - entry
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 559
    functionName: libtorrent::dht::node::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - auto::set_data
    - std::make_shared<dht::put_data>
    - libtorrent::aux::to_hex
    - std::move
    - item::assign
    - log
    - get_item::data_callback
    - should_log
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: void node::put_item(sha1_hash const& target, entry const& data, std::function<void(int)>
      f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:566,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:569,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:570,1
    - Dst: std::make_shared<dht::put_data>
      Src: /src/libtorrent/src/kademlia/node.cpp:574,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:576,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:577,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:578,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' pk'
    - ' salt'
    - f
    - data_cb
    argTypes:
    - public_key
    - std::string
    - std::function<void(item const&, int)>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 580
    functionName: libtorrent::dht::node::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - std::make_shared<dht::put_data>
    - libtorrent::aux::to_hex
    - log
    - should_log
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: "void node::put_item(public_key const& pk, std::string const& salt\n\t,
      std::function<void(item const&, int)> f\n\t, std::function<void(item&)> data_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:589,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:591,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:592,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:592,1
    - Dst: std::make_shared<dht::sample_infohashes>
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:599,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:599,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:610,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' ep'
    - ' target'
    - f
    argTypes:
    - udp::endpoint
    - sha1_hash
    - "std::function<void(sha1_hash\n\t\t, time_duration\n\t\t, int, std::vector<sha1_hash>\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 614
    functionName: libtorrent::dht::node::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::aux::to_hex
    - node_id
    - allocate_observer
    - stats_counters
    - print_endpoint
    - log
    - std::make_shared<dht::sample_infohashes>
    - invoke
    - should_log
    linkageType: ''
    returnType: void
    signature: "void node::sample_infohashes(udp::endpoint const& ep, sha1_hash const&
      target\n\t, std::function<void(sha1_hash\n\t\t, time_duration\n\t\t, int, std::vector<sha1_hash>\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: libtorrent::dht::ping_observer
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void ping_observer(\n\t\tstd::shared_ptr<traversal_algorithm> algorithm\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/node.cpp:629,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:633,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:635,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/kademlia/node.cpp:637,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:637,1
    - Dst: libtorrent::dht::look_for_nodes
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:643,1
    - Dst: heard_about
      Src: /src/libtorrent/src/kademlia/node.cpp:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 644
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - libtorrent::dht::look_for_nodes
    - static_cast<void*>
    - heard_about
    - libtorrent::dht::algorithm
    linkageType: ''
    returnType: void
    signature: void reply(msg const& m) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:653,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/node.cpp:654,1
    - Dst: depth
      Src: /src/libtorrent/src/kademlia/node.cpp:654,1
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/node.cpp:657,1
    - Dst: std::make_shared<dht::bootstrap>
      Src: /src/libtorrent/src/kademlia/node.cpp:658,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:658,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:659,1
    - Dst: next_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:664,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:668,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:672,1
    - Dst: libtorrent::dht::node::send_single_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:673,1
    - Dst: node_entry*::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 674
    functionName: libtorrent::dht::node::tick
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - depth
    - std::bind
    - std::make_shared<dht::bootstrap>
    - auto::start
    - node_entry*::ep
    - libtorrent::dht::node::send_single_refresh
    - next_refresh
    - make_id_secret
    - TORRENT_ASSERT
    - distance_exp
    - minutes
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void node::tick()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:679,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:680,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:681,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/src/kademlia/node.cpp:686,1
    - Dst: generate_secret_id
      Src: /src/libtorrent/src/kademlia/node.cpp:687,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:691,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:691,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:692,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:692,1
    - Dst: is_full
      Src: /src/libtorrent/src/kademlia/node.cpp:700,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:704,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/node.cpp:711,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:712,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - ' ep'
    - bucket
    - ' id'
    argTypes:
    - udp::endpoint
    - int
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 717
    functionName: libtorrent::dht::node::send_single_refresh
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 6
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - generate_prefix_mask
    - is_full
    - std::move
    - node_id
    - allocate_observer
    - generate_secret_id
    - TORRENT_ASSERT
    - inc_stats_counter
    - invoke
    - node_id::to_string
    linkageType: ''
    returnType: void
    signature: "void node::send_single_refresh(udp::endpoint const& ep, int const
      bucket\n\t, node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::tick
      Src: /src/libtorrent/src/kademlia/node.cpp:721,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/node.cpp:723,1
    - Dst: libtorrent::dht::node::tick
      Src: /src/libtorrent/src/kademlia/node.cpp:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 729
    functionName: libtorrent::dht::node::connection_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::node::tick
    - minutes
    linkageType: ''
    returnType: time_duration
    signature: time_duration node::connection_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_udp
      Src: /src/libtorrent/src/kademlia/node.cpp:737,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:737,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:738,1
    - Dst: dht_status::requests::emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:742,1
    - Dst: dht_status::requests::back
      Src: /src/libtorrent/src/kademlia/node.cpp:743,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 747
    functionName: libtorrent::dht::node::status
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 5
    functionsReached:
    - get_local_endpoint
    - make_udp
    - dht_status::requests::emplace_back
    - libtorrent::dht::node::status
    - dht_status::requests::back
    linkageType: ''
    returnType: dht_status
    signature: dht_status node::status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/node.cpp:752,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/node.cpp:752,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/node.cpp:753,1
    - Dst: num_allocated_observers
      Src: /src/libtorrent/src/kademlia/node.cpp:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 754
    functionName: libtorrent::dht::node::get_stats_counters
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - size
    - num_allocated_observers
    - std::tie
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> node::get_stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:762,1
    - Dst: num_allocated_observers
      Src: /src/libtorrent/src/kademlia/node.cpp:763,1
    - Dst: active_requests::emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:766,1
    - Dst: active_requests::back
      Src: /src/libtorrent/src/kademlia/node.cpp:767,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 770
    functionName: libtorrent::dht::node::status
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 6
    functionsReached:
    - num_allocated_observers
    - active_requests::back
    - active_requests::emplace_back
    - libtorrent::dht::node::status
    linkageType: ''
    returnType: void
    signature: void node::status(session_status& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:777,1
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ' info_hash'
    - ' reply'
    - noseed
    - scrape
    - ' requester'
    argTypes:
    - sha1_hash
    - entry
    - bool
    - bool
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: libtorrent::dht::node::lookup_peers
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::node::get_peers
    linkageType: ''
    returnType: bool
    signature: "bool node::lookup_peers(sha1_hash const& info_hash, entry& reply\n\t,
      bool noseed, bool scrape, address const& requester) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::string
      Src: /src/libtorrent/src/kademlia/node.cpp:785,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: id::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: id::end
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:789,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<node_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 792
    functionName: libtorrent::dht::write_nodes_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - id::end
    - libtorrent::aux::write_endpoint
    - libtorrent::dht::ep
    - id::begin
    - std::copy
    - entry::string
    linkageType: ''
    returnType: entry
    signature: entry write_nodes_entry(std::vector<node_entry> const& nodes)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/src/kademlia/node.cpp:797,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:799,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:810,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:812,1
    - Dst: endpoint_to_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:816,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:819,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:820,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:827,1
    - Dst: heard_about
      Src: /src/libtorrent/src/kademlia/node.cpp:832,1
    - Dst: add_our_id
      Src: /src/libtorrent/src/kademlia/node.cpp:835,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/node.cpp:838,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:840,1
    - Dst: on_dht_request
      Src: /src/libtorrent/src/kademlia/node.cpp:842,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:847,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:861,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:863,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:864,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:868,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:870,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:873,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:875,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:876,1
    - Dst: libtorrent::dht::node::lookup_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:880,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:880,1
    - Dst: libtorrent::dht::node::generate_token
      Src: /src/libtorrent/src/kademlia/node.cpp:881,1
    - Dst: find_key
      Src: /src/libtorrent/src/kademlia/node.cpp:884,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:886,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:887,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:899,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:901,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:902,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:906,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:907,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:909,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:923,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:925,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:926,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:930,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:934,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/node.cpp:935,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:939,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:940,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:944,1
    - Dst: libtorrent::dht::node::announce
      Src: /src/libtorrent/src/kademlia/node.cpp:947,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:947,1
    - Dst: libtorrent::dht::node::verify_token
      Src: /src/libtorrent/src/kademlia/node.cpp:949,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:949,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/kademlia/node.cpp:950,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:950,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:952,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:953,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:957,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/node.cpp:962,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:965,1
    - Dst: string_view
      Src: /src/libtorrent/src/kademlia/node.cpp:965,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:966,1
    - Dst: announce_peer
      Src: /src/libtorrent/src/kademlia/node.cpp:968,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:990,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/src/kademlia/node.cpp:991,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:993,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:994,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:998,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1005,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1009,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/node.cpp:1012,1
    - Dst: span::size
      Src: /src/libtorrent/src/kademlia/node.cpp:1013,1
    - Dst: span::empty
      Src: /src/libtorrent/src/kademlia/node.cpp:1013,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1015,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1016,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1022,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1022,1
    - Dst: span::size
      Src: /src/libtorrent/src/kademlia/node.cpp:1023,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1025,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1026,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/node.cpp:1031,1
    - Dst: public_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1031,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/node.cpp:1032,1
    - Dst: libtorrent::dht::node::verify_token
      Src: /src/libtorrent/src/kademlia/node.cpp:1042,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1042,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1044,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1045,1
    - Dst: put_immutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1051,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1051,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1056,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1060,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1062,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1063,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1068,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1070,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1071,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:1075,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1075,1
    - Dst: get_mutable_item_seq
      Src: /src/libtorrent/src/kademlia/node.cpp:1078,1
    - Dst: put_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1080,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1081,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1090,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1092,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1093,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1099,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1100,1
    - Dst: put_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1104,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1105,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/node.cpp:1109,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:1123,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1125,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1126,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1130,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1131,1
    - Dst: libtorrent::dht::node::generate_token
      Src: /src/libtorrent/src/kademlia/node.cpp:1137,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1140,1
    - Dst: get_immutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1146,1
    - Dst: get_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1148,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1148,1
    - Dst: get_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1154,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1155,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1155,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:1167,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1169,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1170,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1174,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1175,1
    - Dst: get_infohashes_sample
      Src: /src/libtorrent/src/kademlia/node.cpp:1179,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1181,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:1188,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1189,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:1191,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1192,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1194,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1199,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1201,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/src/kademlia/node.cpp:1201,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 165
    argCount: 2
    argNames:
    - ' m'
    - ' e'
    argTypes:
    - msg
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 1203
    functionName: libtorrent::dht::node::incoming_request
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - span::size
    - addr::port
    - bdecode_node::dict_find_list
    - get_infohashes_sample
    - bdecode_node::string_length
    - heard_about
    - get_bool
    - libtorrent::dht::node::write_nodes_entries
    - add_our_id
    - endpoint_to_bytes
    - bdecode_node::has_soft_error
    - bdecode_node::string_ptr
    - string_value
    - int_value
    - entry
    - list
    - std::uint16_t
    - announce_peer
    - get_immutable_item
    - on_dht_request
    - libtorrent::dht::node::verify_token
    - log
    - inc_stats_counter
    - verify_mutable_item
    - sequence_number
    - data_section
    - sha1_hash
    - string_ptr
    - node_seen
    - verify_message
    - span::empty
    - TORRENT_ASSERT
    - public_key
    - get_mutable_item_seq
    - libtorrent::dht::node::announce
    - bdecode_node::dict_find_string
    - put_immutable_item
    - item_target_id
    - put_mutable_item
    - incoming_error
    - get_mutable_item
    - find_key
    - libtorrent::dht::node::lookup_peers
    - local_endpoint
    - libtorrent::dht::node::generate_token
    - string_view
    - string_length
    - verify_id
    - message::dict_find_string_value
    - addr::address
    linkageType: ''
    returnType: void
    signature: void node::incoming_request(msg const& m, entry& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/node.cpp:1211,1
    - Dst: find_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1213,1
    - Dst: protocol_nodes_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1214,1
    - Dst: write_nodes_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:1214,1
    - Dst: list_size
      Src: /src/libtorrent/src/kademlia/node.cpp:1223,1
    - Dst: list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:1225,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/node.cpp:1226,1
    - Dst: m_get_foreign_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1228,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1228,1
    - Dst: node*::m_table::find_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1230,1
    - Dst: node*::protocol_nodes_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1231,1
    - Dst: write_nodes_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:1231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' info_hash'
    - ' want'
    - ' r'
    argTypes:
    - sha1_hash
    - bdecode_node
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1233
    functionName: libtorrent::dht::node::write_nodes_entries
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - list_size
    - node*::m_table::find_node
    - bdecode_node::string_value
    - bdecode_node::type
    - protocol_nodes_key
    - find_node
    - m_get_foreign_node
    - node*::protocol_nodes_key
    - type
    - list_at
    - write_nodes_entry
    linkageType: ''
    returnType: void
    signature: "void node::write_nodes_entries(sha1_hash const& info_hash\n\t, bdecode_node
      const& want, entry& r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:1239,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:1240,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/kademlia/node.cpp:1246,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/kademlia/node.cpp:1248,1
    - Dst: aux::throw_ex<std::out_of_range>
      Src: /src/libtorrent/src/kademlia/node.cpp:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1253
    functionName: '& node::map_protocol_to_descriptor(udp const protocol)'
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - rand_v6
    - std::array::end
    - std::array::begin
    - TORRENT_ASSERT_FAIL
    - aux::throw_ex<std::out_of_range>
    - std::find_if
    linkageType: ''
    returnType: node::protocol_descriptor
    signature: node::protocol_descriptor & node::map_protocol_to_descriptor(udp const
      protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::nop
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:90,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/kademlia/node.cpp:94,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:96,1
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node.cpp:97,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' nid'
    - ' sock'
    argTypes:
    - node_id
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::calculate_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_external_address
    - is_all_zeros
    - address::is_unspecified
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::generate_id
    - libtorrent::dht::verify_id
    linkageType: ''
    returnType: node_id
    signature: node_id calculate_node_id(node_id const& nid, aux::listen_socket_handle
      const& sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:111,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:112,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' e'
    - msg
    argTypes:
    - entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - list
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void incoming_error(entry& e, char const* msg, int error_code = 203)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::nop
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:90,1
    - Dst: address::is_unspecified
      Src: /src/libtorrent/src/kademlia/node.cpp:94,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:96,1
    - Dst: libtorrent::dht::generate_random_id
      Src: /src/libtorrent/src/kademlia/node.cpp:97,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:101,1
    - Dst: libtorrent::dht::generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' nid'
    - ' sock'
    argTypes:
    - node_id
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::calculate_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_external_address
    - is_all_zeros
    - address::is_unspecified
    - libtorrent::dht::generate_random_id
    - libtorrent::dht::generate_id
    - libtorrent::dht::verify_id
    linkageType: ''
    returnType: node_id
    signature: node_id calculate_node_id(node_id const& nid, aux::listen_socket_handle
      const& sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:111,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:112,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' e'
    - msg
    argTypes:
    - entry
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::incoming_error
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - list
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void incoming_error(entry& e, char const* msg, int error_code = 203)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculate_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:126,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:131,1
    - Dst: map_protocol_to_descriptor
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:133,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:134,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/node.cpp:135,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:139,1
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - ' sock'
    - sock_man
    - ' settings'
    - ' nid'
    - observer
    - ' cnt'
    - get_foreign_node
    - ' storage'
    argTypes:
    - aux::listen_socket_handle
    - socket_manager*
    - aux::session_settings
    - node_id
    - dht_observer*
    - counters
    - get_foreign_node_t
    - dht_storage_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 141
    functionName: libtorrent::dht::node::node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - std::move
    - get_local_endpoint
    - map_protocol_to_descriptor
    - libtorrent::aux::is_v4
    - rand_v6
    - libtorrent::aux::crypto_random_bytes
    - calculate_node_id
    - min_time
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void node::node(aux::listen_socket_handle const& sock, socket_manager*
      sock_man\n\t, aux::session_settings const& settings\n\t, node_id const& nid\n\t,
      dht_observer* observer\n\t, counters& cnt\n\t, get_foreign_node_t get_foreign_node\n\t,
      dht_storage_interface& storage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: node::~node()
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node::~node()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/node.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::node::branch_factor
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_int
    linkageType: ''
    returnType: int
    signature: int node::branch_factor() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:154,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:158,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:162,1
    - Dst: generate_id
      Src: /src/libtorrent/src/kademlia/node.cpp:166,1
    - Dst: libtorrent::dht::node::update_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:168,1
    - Dst: libtorrent::dht::node::update_node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 170
    functionName: libtorrent::dht::node::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - get_external_address
    - libtorrent::dht::node::update_node_id
    - log
    - generate_id
    - verify_id
    linkageType: ''
    returnType: void
    signature: void node::update_node_id()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_view::length
      Src: /src/libtorrent/src/kademlia/node.cpp:175,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:180,1
    - Dst: string_view::length
      Src: /src/libtorrent/src/kademlia/node.cpp:181,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node.cpp:188,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:189,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:190,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:191,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:193,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node.cpp:194,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:198,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:199,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:200,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:201,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: string_view::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: string_view::end
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/src/kademlia/node.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - token
    - ' info_hash'
    - ' addr'
    argTypes:
    - string_view
    - sha1_hash
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: libtorrent::dht::node::verify_token
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - hasher::final
    - string_view::end
    - reinterpret_cast<char*>
    - equal
    - log
    - hasher::update
    - string_view::begin
    - address
    - string_view::length
    linkageType: ''
    returnType: bool
    signature: "bool node::verify_token(string_view token, sha1_hash const& info_hash\n\t,
      udp::endpoint const& addr) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::resize
      Src: /src/libtorrent/src/kademlia/node.cpp:209,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/node.cpp:211,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:212,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:213,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/node.cpp:214,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/node.cpp:216,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: sha1_hash::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: sha1_hash::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:217,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: equal
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: std::string::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: std::string::end
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    - Dst: sha1_hash::data
      Src: /src/libtorrent/src/kademlia/node.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' addr'
    - ' info_hash'
    argTypes:
    - udp::endpoint
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::node::generate_token
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - hasher::final
    - sha1_hash::begin
    - std::string::begin
    - std::string::end
    - TORRENT_ASSERT
    - std::copy
    - equal
    - std::string::resize
    - hasher::update
    - sha1_hash::data
    - address
    linkageType: ''
    returnType: std::string
    signature: "std::string node::generate_token(udp::endpoint const& addr\n\t, sha1_hash
      const& info_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/node.cpp:226,1
    - Dst: std::make_shared<dht::bootstrap>
      Src: /src/libtorrent/src/kademlia/node.cpp:228,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:229,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:240,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:240,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:245,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' nodes'
    - ' f'
    argTypes:
    - std::vector<udp::endpoint>
    - find_data::nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: libtorrent::dht::node::bootstrap
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::make_shared<dht::bootstrap>
    - node_id
    - make_id_secret
    - log
    - auto::add_entry
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: "void node::bootstrap(std::vector<udp::endpoint> const& nodes\n\t,
      find_data::nodes_callback const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::bucket_size
      Src: /src/libtorrent/src/kademlia/node.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: libtorrent::dht::node::bucket_size
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::node::bucket_size
    linkageType: ''
    returnType: int
    signature: int node::bucket_size(int bucket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: libtorrent::dht::node::new_write_key
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    linkageType: ''
    returnType: void
    signature: void node::new_write_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::unreachable
      Src: /src/libtorrent/src/kademlia/node.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: libtorrent::dht::node::unreachable
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::node::unreachable
    linkageType: ''
    returnType: void
    signature: void node::unreachable(udp::endpoint const& ep)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:269,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:270,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:280,1
    - Dst: message::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:286,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:288,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:291,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:293,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/kademlia/node.cpp:293,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:294,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:296,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:298,1
    - Dst: set_external_address
      Src: /src/libtorrent/src/kademlia/node.cpp:300,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/kademlia/node.cpp:300,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:301,1
    - Dst: libtorrent::dht::node::incoming
      Src: /src/libtorrent/src/kademlia/node.cpp:310,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:315,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:315,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:318,1
    - Dst: has_quota
      Src: /src/libtorrent/src/kademlia/node.cpp:324,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:326,1
    - Dst: libtorrent::dht::node::incoming_request
      Src: /src/libtorrent/src/kademlia/node.cpp:331,1
    - Dst: send_packet
      Src: /src/libtorrent/src/kademlia/node.cpp:332,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:338,1
    - Dst: message::dict_find_list
      Src: /src/libtorrent/src/kademlia/node.cpp:340,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/node.cpp:341,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:342,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:343,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:345,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/kademlia/node.cpp:346,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/kademlia/node.cpp:347,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:351,1
    - Dst: libtorrent::dht::node::incoming
      Src: /src/libtorrent/src/kademlia/node.cpp:356,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 2
    argNames:
    - ' s'
    - ' m'
    argTypes:
    - aux::listen_socket_handle
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 360
    functionName: libtorrent::dht::node::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::read_v6_address
    - has_quota
    - bdecode_node::string_length
    - message::dict_find_list
    - get_bool
    - bdecode_node::string_ptr
    - message::dict_find_string
    - libtorrent::dht::node::incoming
    - libtorrent::aux::address_size
    - rand_v6
    - libtorrent::dht::node::incoming_request
    - bdecode_node::list_size
    - set_external_address
    - bdecode_node::list_string_value_at
    - log
    - inc_stats_counter
    - libtorrent::aux::read_v4_address
    - bdecode_node::list_int_value_at
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - rand_v4
    - send_packet
    - should_log
    - message::dict_find_string_value
    - addr::address
    linkageType: ''
    returnType: void
    signature: void node::incoming(aux::listen_socket_handle const& s, msg const&
      m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer
      Src: /src/libtorrent/src/kademlia/node.cpp:368,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:369,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:371,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:382,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:384,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:385,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:389,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:390,1
    - Dst: libtorrent::dht::stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:404,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' v'
    - ' node'
    - listen_port
    - ' ih'
    - flags
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - node
    - int
    - sha1_hash
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::announce_fun
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - m_rpc::allocate_observer
    - libtorrent::dht::size
    - libtorrent::aux::to_hex
    - node_id
    - first::ep
    - libtorrent::dht::observer
    - auto::should_log
    - m_rpc::invoke
    - auto::log
    - libtorrent::dht::stats_counters
    - libtorrent::dht::distance_exp
    linkageType: ''
    returnType: void
    signature: "void announce_fun(std::vector<std::pair<node_entry, std::string>>
      const& v\n\t\t, node& node, int const listen_port, sha1_hash const& ih, announce_flags_t
      const flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer
      Src: /src/libtorrent/src/kademlia/node.cpp:368,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:369,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:371,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/node.cpp:372,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:377,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:382,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/node.cpp:384,1
    - Dst: libtorrent::dht::distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:385,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:389,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:390,1
    - Dst: libtorrent::dht::stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:404,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ' v'
    - ' node'
    - listen_port
    - ' ih'
    - flags
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - node
    - int
    - sha1_hash
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::announce_fun
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - m_rpc::allocate_observer
    - libtorrent::dht::size
    - libtorrent::aux::to_hex
    - node_id
    - first::ep
    - libtorrent::dht::observer
    - auto::should_log
    - m_rpc::invoke
    - auto::log
    - libtorrent::dht::stats_counters
    - libtorrent::dht::distance_exp
    linkageType: ''
    returnType: void
    signature: "void announce_fun(std::vector<std::pair<node_entry, std::string>>
      const& v\n\t\t, node& node, int const listen_port, sha1_hash const& ih, announce_flags_t
      const flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:414,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:416,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:417,1
    - Dst: libtorrent::dht::node::add_router_node
      Src: /src/libtorrent/src/kademlia/node.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' router'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: libtorrent::dht::node::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::node::add_router_node
    - should_log
    - log
    - print_endpoint
    linkageType: ''
    returnType: void
    signature: void node::add_router_node(udp::endpoint const& router)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: native_address
      Src: /src/libtorrent/src/kademlia/node.cpp:425,1
    - Dst: libtorrent::dht::node::send_single_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:428,1
    - Dst: num_active_buckets
      Src: /src/libtorrent/src/kademlia/node.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: libtorrent::dht::node::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - num_active_buckets
    - native_address
    - libtorrent::dht::node::send_single_refresh
    linkageType: ''
    returnType: void
    signature: void node::add_node(udp::endpoint const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:440,1
    - Dst: std::make_shared<dht::obfuscated_get_peers>
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:441,1
    - Dst: std::make_shared<dht::get_peers>
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:442,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' info_hash'
    - dcallback
    - ncallback
    - flags
    argTypes:
    - sha1_hash
    - std::function<void(std::vector<tcp::endpoint> const&)>
    - std::function<void(std::vector<std::pair<node_entry, std::string>> const&)>
    - announce_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: libtorrent::dht::node::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 6
    functionsReached:
    - auto::start
    - std::move
    - std::make_shared<dht::obfuscated_get_peers>
    - get_bool
    - std::make_shared<dht::get_peers>
    linkageType: ''
    returnType: void
    signature: "void node::get_peers(sha1_hash const& info_hash\n\t, std::function<void(std::vector<tcp::endpoint>
      const&)> dcallback\n\t, std::function<void(std::vector<std::pair<node_entry,
      std::string>> const&)> ncallback\n\t, announce_flags_t const flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:451,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:453,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:454,1
    - Dst: get_listen_port
      Src: /src/libtorrent/src/kademlia/node.cpp:460,1
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:465,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:465,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:466,1
    - Dst: std::ref
      Src: /src/libtorrent/src/kademlia/node.cpp:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' info_hash'
    - listen_port
    - flags
    - f
    argTypes:
    - sha1_hash
    - int
    - announce_flags_t
    - std::function<void(std::vector<tcp::endpoint> const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 468
    functionName: libtorrent::dht::node::announce
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - std::bind
    - get_listen_port
    - std::move
    - libtorrent::aux::to_hex
    - std::ref
    - libtorrent::dht::node::get_peers
    - log
    - should_log
    linkageType: ''
    returnType: void
    signature: "void node::announce(sha1_hash const& info_hash, int listen_port, announce_flags_t
      const flags\n\t, std::function<void(std::vector<tcp::endpoint> const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<direct_traversal>
      Src: /src/libtorrent/src/kademlia/node.cpp:474,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:474,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:476,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' ep'
    - ' e'
    - f
    argTypes:
    - udp::endpoint
    - entry
    - std::function<void(msg const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: libtorrent::dht::node::direct_request
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<direct_traversal>
    - std::move
    - allocate_observer
    - node_id
    - invoke
    linkageType: ''
    returnType: void
    signature: "void node::direct_request(udp::endpoint const& ep, entry& e\n\t, std::function<void(msg
      const&)> f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:488,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:490,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:491,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:495,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:496,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:496,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - f
    argTypes:
    - sha1_hash
    - std::function<void(item const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 498
    functionName: libtorrent::dht::node::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - libtorrent::aux::to_hex
    - log
    - should_log
    - find_data::nodes_callback
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: void node::get_item(sha1_hash const& target, std::function<void(item
      const&)> f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:504,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:507,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:508,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:512,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:512,1
    - Dst: find_data::nodes_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:513,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' pk'
    - ' salt'
    - f
    argTypes:
    - public_key
    - std::string
    - std::function<void(item const&, bool)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: libtorrent::dht::node::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - auto::start
    - std::move
    - libtorrent::aux::to_hex
    - log
    - should_log
    - find_data::nodes_callback
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: "void node::get_item(public_key const& pk, std::string const& salt\n\t,
      std::function<void(item const&, bool)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_targets
      Src: /src/libtorrent/src/kademlia/node.cpp:522,1
    - Dst: start
      Src: /src/libtorrent/src/kademlia/node.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' nodes'
    - ' ta'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - std::shared_ptr<put_data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: libtorrent::dht::put
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - start
    - set_targets
    linkageType: ''
    returnType: void
    signature: "void put(std::vector<std::pair<node_entry, std::string>> const& nodes\n\t,
      std::shared_ptr<put_data> const& ta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/node.cpp:534,1
    - Dst: libtorrent::dht::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' i'
    - auth
    - ' ta'
    - ' f'
    argTypes:
    - item
    - bool
    - std::shared_ptr<put_data>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libtorrent::dht::put_data_cb
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::set_data
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: "void put_data_cb(item const& i, bool auth\n\t, std::shared_ptr<put_data>
      const& ta\n\t, std::function<void(item&)> const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_targets
      Src: /src/libtorrent/src/kademlia/node.cpp:522,1
    - Dst: start
      Src: /src/libtorrent/src/kademlia/node.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' nodes'
    - ' ta'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    - std::shared_ptr<put_data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: libtorrent::dht::put
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - start
    - set_targets
    linkageType: ''
    returnType: void
    signature: "void put(std::vector<std::pair<node_entry, std::string>> const& nodes\n\t,
      std::shared_ptr<put_data> const& ta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/src/kademlia/node.cpp:534,1
    - Dst: libtorrent::dht::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' i'
    - auth
    - ' ta'
    - ' f'
    argTypes:
    - item
    - bool
    - std::shared_ptr<put_data>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libtorrent::dht::put_data_cb
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::set_data
    - std::move
    - f
    linkageType: ''
    returnType: void
    signature: "void put_data_cb(item const& i, bool auth\n\t, std::shared_ptr<put_data>
      const& ta\n\t, std::function<void(item&)> const& f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:544,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:546,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:547,1
    - Dst: item::assign
      Src: /src/libtorrent/src/kademlia/node.cpp:552,1
    - Dst: std::make_shared<dht::put_data>
      Src: /src/libtorrent/src/kademlia/node.cpp:553,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:553,1
    - Dst: auto::set_data
      Src: /src/libtorrent/src/kademlia/node.cpp:554,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:554,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:556,1
    - Dst: get_item::data_callback
      Src: /src/libtorrent/src/kademlia/node.cpp:557,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:557,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' target'
    - ' data'
    - f
    argTypes:
    - sha1_hash
    - entry
    - std::function<void(int)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 559
    functionName: libtorrent::dht::node::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - auto::set_data
    - std::make_shared<dht::put_data>
    - libtorrent::aux::to_hex
    - std::move
    - item::assign
    - log
    - get_item::data_callback
    - should_log
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: void node::put_item(sha1_hash const& target, entry const& data, std::function<void(int)>
      f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:566,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:569,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:570,1
    - Dst: std::make_shared<dht::put_data>
      Src: /src/libtorrent/src/kademlia/node.cpp:574,1
    - Dst: std::make_shared<dht::get_item>
      Src: /src/libtorrent/src/kademlia/node.cpp:576,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:577,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:578,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ' pk'
    - ' salt'
    - f
    - data_cb
    argTypes:
    - public_key
    - std::string
    - std::function<void(item const&, int)>
    - std::function<void(item&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 580
    functionName: libtorrent::dht::node::put_item
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - auto::start
    - std::make_shared<dht::put_data>
    - libtorrent::aux::to_hex
    - log
    - should_log
    - std::make_shared<dht::get_item>
    linkageType: ''
    returnType: void
    signature: "void node::put_item(public_key const& pk, std::string const& salt\n\t,
      std::function<void(item const&, int)> f\n\t, std::function<void(item&)> data_cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/node.cpp:589,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:591,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:592,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/node.cpp:592,1
    - Dst: std::make_shared<dht::sample_infohashes>
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:597,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:599,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:599,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/node.cpp:610,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' ep'
    - ' target'
    - f
    argTypes:
    - udp::endpoint
    - sha1_hash
    - "std::function<void(sha1_hash\n\t\t, time_duration\n\t\t, int, std::vector<sha1_hash>\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 614
    functionName: libtorrent::dht::node::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - libtorrent::aux::to_hex
    - node_id
    - allocate_observer
    - stats_counters
    - print_endpoint
    - log
    - std::make_shared<dht::sample_infohashes>
    - invoke
    - should_log
    linkageType: ''
    returnType: void
    signature: "void node::sample_infohashes(udp::endpoint const& ep, sha1_hash const&
      target\n\t, std::function<void(sha1_hash\n\t\t, time_duration\n\t\t, int, std::vector<sha1_hash>\n\t\t,
      std::vector<std::pair<sha1_hash, udp::endpoint>>)> f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: libtorrent::dht::ping_observer
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void ping_observer(\n\t\tstd::shared_ptr<traversal_algorithm> algorithm\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/node.cpp:629,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:633,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:635,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/kademlia/node.cpp:637,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:637,1
    - Dst: libtorrent::dht::look_for_nodes
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:642,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/src/kademlia/node.cpp:643,1
    - Dst: heard_about
      Src: /src/libtorrent/src/kademlia/node.cpp:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 644
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - libtorrent::dht::look_for_nodes
    - static_cast<void*>
    - heard_about
    - libtorrent::dht::algorithm
    linkageType: ''
    returnType: void
    signature: void reply(msg const& m) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/node.cpp:653,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/node.cpp:654,1
    - Dst: depth
      Src: /src/libtorrent/src/kademlia/node.cpp:654,1
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/node.cpp:657,1
    - Dst: std::make_shared<dht::bootstrap>
      Src: /src/libtorrent/src/kademlia/node.cpp:658,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/node.cpp:658,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/node.cpp:659,1
    - Dst: next_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:664,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:668,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/node.cpp:671,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:672,1
    - Dst: libtorrent::dht::node::send_single_refresh
      Src: /src/libtorrent/src/kademlia/node.cpp:673,1
    - Dst: node_entry*::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 674
    functionName: libtorrent::dht::node::tick
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - depth
    - std::bind
    - std::make_shared<dht::bootstrap>
    - auto::start
    - node_entry*::ep
    - libtorrent::dht::node::send_single_refresh
    - next_refresh
    - make_id_secret
    - TORRENT_ASSERT
    - distance_exp
    - minutes
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void node::tick()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:679,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:680,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:681,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/src/kademlia/node.cpp:686,1
    - Dst: generate_secret_id
      Src: /src/libtorrent/src/kademlia/node.cpp:687,1
    - Dst: std::make_shared<traversal_algorithm>
      Src: /src/libtorrent/src/kademlia/node.cpp:691,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/node.cpp:691,1
    - Dst: allocate_observer
      Src: /src/libtorrent/src/kademlia/node.cpp:692,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/node.cpp:692,1
    - Dst: is_full
      Src: /src/libtorrent/src/kademlia/node.cpp:700,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:704,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/node.cpp:711,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:712,1
    - Dst: invoke
      Src: /src/libtorrent/src/kademlia/node.cpp:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - ' ep'
    - bucket
    - ' id'
    argTypes:
    - udp::endpoint
    - int
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 717
    functionName: libtorrent::dht::node::send_single_refresh
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 8
    functionsReached:
    - std::make_shared<traversal_algorithm>
    - generate_prefix_mask
    - is_full
    - std::move
    - node_id
    - allocate_observer
    - generate_secret_id
    - TORRENT_ASSERT
    - inc_stats_counter
    - invoke
    - node_id::to_string
    linkageType: ''
    returnType: void
    signature: "void node::send_single_refresh(udp::endpoint const& ep, int const
      bucket\n\t, node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::tick
      Src: /src/libtorrent/src/kademlia/node.cpp:721,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/node.cpp:723,1
    - Dst: libtorrent::dht::node::tick
      Src: /src/libtorrent/src/kademlia/node.cpp:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 729
    functionName: libtorrent::dht::node::connection_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::node::tick
    - minutes
    linkageType: ''
    returnType: time_duration
    signature: time_duration node::connection_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_udp
      Src: /src/libtorrent/src/kademlia/node.cpp:737,1
    - Dst: get_local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:737,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:738,1
    - Dst: dht_status::requests::emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:742,1
    - Dst: dht_status::requests::back
      Src: /src/libtorrent/src/kademlia/node.cpp:743,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 747
    functionName: libtorrent::dht::node::status
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 7
    functionsReached:
    - get_local_endpoint
    - make_udp
    - dht_status::requests::emplace_back
    - libtorrent::dht::node::status
    - dht_status::requests::back
    linkageType: ''
    returnType: dht_status
    signature: dht_status node::status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/node.cpp:752,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/node.cpp:752,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/node.cpp:753,1
    - Dst: num_allocated_observers
      Src: /src/libtorrent/src/kademlia/node.cpp:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 754
    functionName: libtorrent::dht::node::get_stats_counters
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - size
    - num_allocated_observers
    - std::tie
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> node::get_stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:762,1
    - Dst: num_allocated_observers
      Src: /src/libtorrent/src/kademlia/node.cpp:763,1
    - Dst: active_requests::emplace_back
      Src: /src/libtorrent/src/kademlia/node.cpp:766,1
    - Dst: active_requests::back
      Src: /src/libtorrent/src/kademlia/node.cpp:767,1
    - Dst: libtorrent::dht::node::status
      Src: /src/libtorrent/src/kademlia/node.cpp:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 770
    functionName: libtorrent::dht::node::status
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 8
    functionsReached:
    - num_allocated_observers
    - active_requests::back
    - active_requests::emplace_back
    - libtorrent::dht::node::status
    linkageType: ''
    returnType: void
    signature: void node::status(session_status& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:777,1
    - Dst: libtorrent::dht::node::get_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ' info_hash'
    - ' reply'
    - noseed
    - scrape
    - ' requester'
    argTypes:
    - sha1_hash
    - entry
    - bool
    - bool
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: libtorrent::dht::node::lookup_peers
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::node::get_peers
    linkageType: ''
    returnType: bool
    signature: "bool node::lookup_peers(sha1_hash const& info_hash, entry& reply\n\t,
      bool noseed, bool scrape, address const& requester) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::string
      Src: /src/libtorrent/src/kademlia/node.cpp:785,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: id::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: id::end
      Src: /src/libtorrent/src/kademlia/node.cpp:788,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:789,1
    - Dst: libtorrent::dht::ep
      Src: /src/libtorrent/src/kademlia/node.cpp:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<node_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 792
    functionName: libtorrent::dht::write_nodes_entry
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - id::end
    - libtorrent::aux::write_endpoint
    - libtorrent::dht::ep
    - id::begin
    - std::copy
    - entry::string
    linkageType: ''
    returnType: entry
    signature: entry write_nodes_entry(std::vector<node_entry> const& nodes)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/src/kademlia/node.cpp:797,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:799,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:810,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:812,1
    - Dst: endpoint_to_bytes
      Src: /src/libtorrent/src/kademlia/node.cpp:816,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:819,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:820,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:825,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:827,1
    - Dst: heard_about
      Src: /src/libtorrent/src/kademlia/node.cpp:832,1
    - Dst: add_our_id
      Src: /src/libtorrent/src/kademlia/node.cpp:835,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/node.cpp:838,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:840,1
    - Dst: on_dht_request
      Src: /src/libtorrent/src/kademlia/node.cpp:842,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:847,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:861,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:863,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:864,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:868,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:870,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:873,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:875,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:876,1
    - Dst: libtorrent::dht::node::lookup_peers
      Src: /src/libtorrent/src/kademlia/node.cpp:880,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:880,1
    - Dst: libtorrent::dht::node::generate_token
      Src: /src/libtorrent/src/kademlia/node.cpp:881,1
    - Dst: find_key
      Src: /src/libtorrent/src/kademlia/node.cpp:884,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/node.cpp:886,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/node.cpp:887,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:899,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:901,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:902,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:906,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:907,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:909,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:923,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:925,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:926,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:930,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:934,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/node.cpp:935,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:939,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:940,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:944,1
    - Dst: libtorrent::dht::node::announce
      Src: /src/libtorrent/src/kademlia/node.cpp:947,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:947,1
    - Dst: libtorrent::dht::node::verify_token
      Src: /src/libtorrent/src/kademlia/node.cpp:949,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:949,1
    - Dst: sha1_hash
      Src: /src/libtorrent/src/kademlia/node.cpp:950,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:950,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:952,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:953,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:957,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/node.cpp:962,1
    - Dst: local_endpoint
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/node.cpp:964,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:965,1
    - Dst: string_view
      Src: /src/libtorrent/src/kademlia/node.cpp:965,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:966,1
    - Dst: announce_peer
      Src: /src/libtorrent/src/kademlia/node.cpp:968,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:990,1
    - Dst: bdecode_node::has_soft_error
      Src: /src/libtorrent/src/kademlia/node.cpp:991,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:993,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:994,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:998,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1005,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1009,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/node.cpp:1012,1
    - Dst: span::size
      Src: /src/libtorrent/src/kademlia/node.cpp:1013,1
    - Dst: span::empty
      Src: /src/libtorrent/src/kademlia/node.cpp:1013,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1015,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1016,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1022,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1022,1
    - Dst: span::size
      Src: /src/libtorrent/src/kademlia/node.cpp:1023,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1025,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1026,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/node.cpp:1031,1
    - Dst: public_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1031,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/node.cpp:1032,1
    - Dst: libtorrent::dht::node::verify_token
      Src: /src/libtorrent/src/kademlia/node.cpp:1042,1
    - Dst: string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1042,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1044,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1045,1
    - Dst: put_immutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1051,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1051,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1056,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1060,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1062,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1063,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1068,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1070,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1071,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/node.cpp:1075,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1075,1
    - Dst: get_mutable_item_seq
      Src: /src/libtorrent/src/kademlia/node.cpp:1078,1
    - Dst: put_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1080,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1081,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1090,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1092,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1093,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1099,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1100,1
    - Dst: put_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1104,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/node.cpp:1105,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/node.cpp:1109,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:1123,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1125,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1126,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1130,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1131,1
    - Dst: libtorrent::dht::node::generate_token
      Src: /src/libtorrent/src/kademlia/node.cpp:1137,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1140,1
    - Dst: get_immutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1146,1
    - Dst: get_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1148,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1148,1
    - Dst: get_mutable_item
      Src: /src/libtorrent/src/kademlia/node.cpp:1154,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/node.cpp:1155,1
    - Dst: int_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1155,1
    - Dst: verify_message
      Src: /src/libtorrent/src/kademlia/node.cpp:1167,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1169,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1170,1
    - Dst: inc_stats_counter
      Src: /src/libtorrent/src/kademlia/node.cpp:1174,1
    - Dst: string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1175,1
    - Dst: get_infohashes_sample
      Src: /src/libtorrent/src/kademlia/node.cpp:1179,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1181,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:1188,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1189,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/node.cpp:1191,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/node.cpp:1192,1
    - Dst: incoming_error
      Src: /src/libtorrent/src/kademlia/node.cpp:1194,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/node.cpp:1199,1
    - Dst: libtorrent::dht::node::write_nodes_entries
      Src: /src/libtorrent/src/kademlia/node.cpp:1201,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/src/kademlia/node.cpp:1201,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 165
    argCount: 2
    argNames:
    - ' m'
    - ' e'
    argTypes:
    - msg
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 1203
    functionName: libtorrent::dht::node::incoming_request
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - span::size
    - addr::port
    - bdecode_node::dict_find_list
    - get_infohashes_sample
    - bdecode_node::string_length
    - heard_about
    - get_bool
    - libtorrent::dht::node::write_nodes_entries
    - add_our_id
    - endpoint_to_bytes
    - bdecode_node::has_soft_error
    - bdecode_node::string_ptr
    - string_value
    - int_value
    - entry
    - list
    - std::uint16_t
    - announce_peer
    - get_immutable_item
    - on_dht_request
    - libtorrent::dht::node::verify_token
    - log
    - inc_stats_counter
    - verify_mutable_item
    - sequence_number
    - data_section
    - sha1_hash
    - string_ptr
    - node_seen
    - verify_message
    - span::empty
    - TORRENT_ASSERT
    - public_key
    - get_mutable_item_seq
    - libtorrent::dht::node::announce
    - bdecode_node::dict_find_string
    - put_immutable_item
    - item_target_id
    - put_mutable_item
    - incoming_error
    - get_mutable_item
    - find_key
    - libtorrent::dht::node::lookup_peers
    - local_endpoint
    - libtorrent::dht::node::generate_token
    - string_view
    - string_length
    - verify_id
    - message::dict_find_string_value
    - addr::address
    linkageType: ''
    returnType: void
    signature: void node::incoming_request(msg const& m, entry& e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/node.cpp:1211,1
    - Dst: find_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1213,1
    - Dst: protocol_nodes_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1214,1
    - Dst: write_nodes_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:1214,1
    - Dst: list_size
      Src: /src/libtorrent/src/kademlia/node.cpp:1223,1
    - Dst: list_at
      Src: /src/libtorrent/src/kademlia/node.cpp:1225,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/node.cpp:1226,1
    - Dst: m_get_foreign_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1228,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/kademlia/node.cpp:1228,1
    - Dst: node*::m_table::find_node
      Src: /src/libtorrent/src/kademlia/node.cpp:1230,1
    - Dst: node*::protocol_nodes_key
      Src: /src/libtorrent/src/kademlia/node.cpp:1231,1
    - Dst: write_nodes_entry
      Src: /src/libtorrent/src/kademlia/node.cpp:1231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' info_hash'
    - ' want'
    - ' r'
    argTypes:
    - sha1_hash
    - bdecode_node
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1233
    functionName: libtorrent::dht::node::write_nodes_entries
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 4
    functionsReached:
    - list_size
    - node*::m_table::find_node
    - bdecode_node::string_value
    - bdecode_node::type
    - protocol_nodes_key
    - find_node
    - m_get_foreign_node
    - node*::protocol_nodes_key
    - type
    - list_at
    - write_nodes_entry
    linkageType: ''
    returnType: void
    signature: "void node::write_nodes_entries(sha1_hash const& info_hash\n\t, bdecode_node
      const& want, entry& r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/node.cpp:1239,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/node.cpp:1240,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/kademlia/node.cpp:1243,1
    - Dst: std::array::end
      Src: /src/libtorrent/src/kademlia/node.cpp:1246,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/src/kademlia/node.cpp:1248,1
    - Dst: aux::throw_ex<std::out_of_range>
      Src: /src/libtorrent/src/kademlia/node.cpp:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1253
    functionName: '& node::map_protocol_to_descriptor(udp const protocol)'
    functionSourceFile: /src/libtorrent/src/kademlia/node.cpp
    functionUses: 0
    functionsReached:
    - rand_v4
    - rand_v6
    - std::array::end
    - std::array::begin
    - TORRENT_ASSERT_FAIL
    - aux::throw_ex<std::out_of_range>
    - std::find_if
    linkageType: ''
    returnType: node::protocol_descriptor
    signature: node::protocol_descriptor & node::map_protocol_to_descriptor(udp const
      protocol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/find_data.cpp:52,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:56,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:57,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/find_data.cpp:59,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/find_data.cpp:63,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/find_data.cpp:64,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:67,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:68,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/find_data.cpp:70,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/find_data.cpp:73,1
    - Dst: static_cast<find_data*>
      Src: /src/libtorrent/src/kademlia/find_data.cpp:76,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:76,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/find_data.cpp:80,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/find_data.cpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: libtorrent::dht::find_data_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - bdecode_node::string_value
    - static_cast<find_data*>
    - node_id
    - algorithm
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - done
    - timeout
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void find_data_observer::reply(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/find_data.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - ncallback
    argTypes:
    - node
    - node_id
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::find_data::find_data
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void find_data::find_data(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      nodes_callback ncallback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/find_data.cpp:98,1
    - Dst: m_table::find_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:100,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/find_data.cpp:101,1
    - Dst: add_entry
      Src: /src/libtorrent/src/kademlia/find_data.cpp:105,1
    - Dst: ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:105,1
    - Dst: libtorrent::dht::traversal_algorithm::start
      Src: /src/libtorrent/src/kademlia/find_data.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::find_data::start
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - target
    - libtorrent::dht::traversal_algorithm::start
    - m_table::find_node
    - empty
    - ep
    - add_entry
    linkageType: ''
    returnType: void
    signature: void find_data::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:115,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:116,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:118,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/find_data.cpp:120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/find_data.cpp:121,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/find_data.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' n'
    - write_token
    argTypes:
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::find_data::got_write_token
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - id
    - std::move
    - libtorrent::aux::to_hex
    - auto::should_log
    - auto::log
    - get_node
    linkageType: ''
    returnType: void
    signature: void find_data::got_write_token(node_id const& n, std::string write_token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:130,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/find_data.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::find_data::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr find_data::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: libtorrent::dht::find_data::name
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * find_data::name() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:144,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:147,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:148,1
    - Dst: libtorrent::dht::find_data::name
      Src: /src/libtorrent/src/kademlia/find_data.cpp:148,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/find_data.cpp:153,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/find_data.cpp:154,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/find_data.cpp:155,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:161,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:163,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/find_data.cpp:169,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:169,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/find_data.cpp:170,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:173,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:175,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:183,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: m_nodes_callback
      Src: /src/libtorrent/src/kademlia/find_data.cpp:192,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/find_data.cpp:194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 195
    functionName: libtorrent::dht::find_data::done
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - id
    - begin
    - std::vector::emplace_back
    - m_table::bucket_size
    - end
    - find
    - auto::should_log
    - libtorrent::dht::find_data::name
    - auto::log
    - get_node
    - print_endpoint
    - target_ep
    - node_entry
    - m_nodes_callback
    linkageType: ''
    returnType: void
    signature: void find_data::done()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/find_data.cpp:52,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:56,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:57,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/find_data.cpp:59,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/find_data.cpp:63,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/find_data.cpp:64,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:67,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:68,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/find_data.cpp:70,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/find_data.cpp:73,1
    - Dst: static_cast<find_data*>
      Src: /src/libtorrent/src/kademlia/find_data.cpp:76,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:76,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/find_data.cpp:80,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/find_data.cpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: libtorrent::dht::find_data_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - bdecode_node::string_value
    - static_cast<find_data*>
    - node_id
    - algorithm
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - done
    - timeout
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void find_data_observer::reply(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/find_data.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - ncallback
    argTypes:
    - node
    - node_id
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::find_data::find_data
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void find_data::find_data(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      nodes_callback ncallback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/find_data.cpp:98,1
    - Dst: m_table::find_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:100,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/find_data.cpp:101,1
    - Dst: add_entry
      Src: /src/libtorrent/src/kademlia/find_data.cpp:105,1
    - Dst: ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:105,1
    - Dst: libtorrent::dht::traversal_algorithm::start
      Src: /src/libtorrent/src/kademlia/find_data.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::find_data::start
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - target
    - libtorrent::dht::traversal_algorithm::start
    - m_table::find_node
    - empty
    - ep
    - add_entry
    linkageType: ''
    returnType: void
    signature: void find_data::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:115,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:116,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:118,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/find_data.cpp:120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/find_data.cpp:121,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/find_data.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' n'
    - write_token
    argTypes:
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::find_data::got_write_token
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - id
    - std::move
    - libtorrent::aux::to_hex
    - auto::should_log
    - auto::log
    - get_node
    linkageType: ''
    returnType: void
    signature: void find_data::got_write_token(node_id const& n, std::string write_token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:130,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/find_data.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::find_data::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr find_data::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: libtorrent::dht::find_data::name
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * find_data::name() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:144,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:147,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:148,1
    - Dst: libtorrent::dht::find_data::name
      Src: /src/libtorrent/src/kademlia/find_data.cpp:148,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/find_data.cpp:153,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/find_data.cpp:154,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/find_data.cpp:155,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:161,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:163,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/find_data.cpp:169,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:169,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/find_data.cpp:170,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:173,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:175,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:183,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: m_nodes_callback
      Src: /src/libtorrent/src/kademlia/find_data.cpp:192,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/find_data.cpp:194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 195
    functionName: libtorrent::dht::find_data::done
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - id
    - begin
    - std::vector::emplace_back
    - m_table::bucket_size
    - end
    - find
    - auto::should_log
    - libtorrent::dht::find_data::name
    - auto::log
    - get_node
    - print_endpoint
    - target_ep
    - node_entry
    - m_nodes_callback
    linkageType: ''
    returnType: void
    signature: void find_data::done()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/find_data.cpp:52,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:56,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:57,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/find_data.cpp:59,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/find_data.cpp:63,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/find_data.cpp:64,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:67,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:68,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/find_data.cpp:70,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/find_data.cpp:73,1
    - Dst: static_cast<find_data*>
      Src: /src/libtorrent/src/kademlia/find_data.cpp:76,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:76,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/find_data.cpp:80,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/find_data.cpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: libtorrent::dht::find_data_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - bdecode_node::string_value
    - static_cast<find_data*>
    - node_id
    - algorithm
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - done
    - timeout
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void find_data_observer::reply(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/find_data.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - ncallback
    argTypes:
    - node
    - node_id
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::find_data::find_data
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void find_data::find_data(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      nodes_callback ncallback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/find_data.cpp:98,1
    - Dst: m_table::find_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:100,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/find_data.cpp:101,1
    - Dst: add_entry
      Src: /src/libtorrent/src/kademlia/find_data.cpp:105,1
    - Dst: ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:105,1
    - Dst: libtorrent::dht::traversal_algorithm::start
      Src: /src/libtorrent/src/kademlia/find_data.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::find_data::start
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - target
    - libtorrent::dht::traversal_algorithm::start
    - m_table::find_node
    - empty
    - ep
    - add_entry
    linkageType: ''
    returnType: void
    signature: void find_data::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:115,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:116,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:118,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/find_data.cpp:120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/find_data.cpp:121,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/find_data.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' n'
    - write_token
    argTypes:
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::find_data::got_write_token
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - id
    - std::move
    - libtorrent::aux::to_hex
    - auto::should_log
    - auto::log
    - get_node
    linkageType: ''
    returnType: void
    signature: void find_data::got_write_token(node_id const& n, std::string write_token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:130,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/find_data.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::find_data::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr find_data::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: libtorrent::dht::find_data::name
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * find_data::name() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:144,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:147,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:148,1
    - Dst: libtorrent::dht::find_data::name
      Src: /src/libtorrent/src/kademlia/find_data.cpp:148,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/find_data.cpp:153,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/find_data.cpp:154,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/find_data.cpp:155,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:161,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:163,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/find_data.cpp:169,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:169,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/find_data.cpp:170,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:173,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:175,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:183,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: m_nodes_callback
      Src: /src/libtorrent/src/kademlia/find_data.cpp:192,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/find_data.cpp:194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 195
    functionName: libtorrent::dht::find_data::done
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - id
    - begin
    - std::vector::emplace_back
    - m_table::bucket_size
    - end
    - find
    - auto::should_log
    - libtorrent::dht::find_data::name
    - auto::log
    - get_node
    - print_endpoint
    - target_ep
    - node_entry
    - m_nodes_callback
    linkageType: ''
    returnType: void
    signature: void find_data::done()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/find_data.cpp:52,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:56,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:57,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/find_data.cpp:59,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/find_data.cpp:63,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/find_data.cpp:64,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:67,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:68,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/find_data.cpp:70,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/find_data.cpp:73,1
    - Dst: static_cast<find_data*>
      Src: /src/libtorrent/src/kademlia/find_data.cpp:76,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/find_data.cpp:76,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: bdecode_node::string_value
      Src: /src/libtorrent/src/kademlia/find_data.cpp:77,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/find_data.cpp:80,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/find_data.cpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: libtorrent::dht::find_data_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - bdecode_node::string_value
    - static_cast<find_data*>
    - node_id
    - algorithm
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - done
    - timeout
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void find_data_observer::reply(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/find_data.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - ncallback
    argTypes:
    - node
    - node_id
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::find_data::find_data
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void find_data::find_data(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      nodes_callback ncallback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/find_data.cpp:98,1
    - Dst: m_table::find_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:100,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/find_data.cpp:101,1
    - Dst: add_entry
      Src: /src/libtorrent/src/kademlia/find_data.cpp:105,1
    - Dst: ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:105,1
    - Dst: libtorrent::dht::traversal_algorithm::start
      Src: /src/libtorrent/src/kademlia/find_data.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::find_data::start
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - target
    - libtorrent::dht::traversal_algorithm::start
    - m_table::find_node
    - empty
    - ep
    - add_entry
    linkageType: ''
    returnType: void
    signature: void find_data::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:115,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:116,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:118,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/find_data.cpp:120,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/find_data.cpp:121,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/find_data.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' n'
    - write_token
    argTypes:
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::find_data::got_write_token
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - id
    - std::move
    - libtorrent::aux::to_hex
    - auto::should_log
    - auto::log
    - get_node
    linkageType: ''
    returnType: void
    signature: void find_data::got_write_token(node_id const& n, std::string write_token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/find_data.cpp:130,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/find_data.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::find_data::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr find_data::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: libtorrent::dht::find_data::name
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * find_data::name() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/find_data.cpp:144,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:147,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:148,1
    - Dst: libtorrent::dht::find_data::name
      Src: /src/libtorrent/src/kademlia/find_data.cpp:148,1
    - Dst: m_table::bucket_size
      Src: /src/libtorrent/src/kademlia/find_data.cpp:153,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/find_data.cpp:154,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/find_data.cpp:155,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:161,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:163,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:164,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/find_data.cpp:169,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:169,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/find_data.cpp:170,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:173,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:175,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:176,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:181,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:183,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/find_data.cpp:185,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/find_data.cpp:186,1
    - Dst: m_nodes_callback
      Src: /src/libtorrent/src/kademlia/find_data.cpp:192,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/find_data.cpp:194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 195
    functionName: libtorrent::dht::find_data::done
    functionSourceFile: /src/libtorrent/src/kademlia/find_data.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - id
    - begin
    - std::vector::emplace_back
    - m_table::bucket_size
    - end
    - find
    - auto::should_log
    - libtorrent::dht::find_data::name
    - auto::log
    - get_node
    - print_endpoint
    - target_ep
    - node_entry
    - m_nodes_callback
    linkageType: ''
    returnType: void
    signature: void find_data::done()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_entry
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: operator<(peer_entry const& lhs, peer_entry const& rhs)
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr::port
    - addr::address
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_entry const& lhs, peer_entry const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:118,1
    - Dst: value::reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: char::char
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' item'
    - buf
    argTypes:
    - dht_immutable_item
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::set_value
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - std::size_t
    - span<char const>::size
    - value::reset
    - char::char
    linkageType: ''
    returnType: void
    signature: void set_value(dht_immutable_item& item, span<char const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:129,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:132,1
    - Dst: ips::find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:133,1
    - Dst: ips::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' addr'
    argTypes:
    - dht_immutable_item
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: libtorrent::dht::touch_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - hash_address
    - ips::find
    - libtorrent::aux::time_now
    - ips::set
    linkageType: ''
    returnType: void
    signature: void touch_item(dht_immutable_item& f, address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' node_ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(std::vector<node_id> const& node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:151,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<node_id const, Item>
    - std::pair<node_id const, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: "operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t, std::pair<node_id
      const, Item> const& rhs) const"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - min_distance_exp
    linkageType: ''
    returnType: bool
    signature: "bool operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t,
      std::pair<node_id const, Item> const& rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(immutable_item_comparator const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: immutable_item_comparator
    signature: immutable_item_comparator & operator=(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::immutable_item_comparator
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' node_ids'
    - ' table'
    argTypes:
    - std::vector<node_id>
    - std::map<node_id, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::pick_least_important_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - std::min_element
    - libtorrent::dht::begin
    - libtorrent::dht::immutable_item_comparator
    linkageType: ''
    returnType: typename std::map<node_id, Item>::const_iterator
    signature: "typename std::map<node_id, Item>::const_iterator pick_least_important_item(\n\t\tstd::vector<node_id>
      const& node_ids, std::map<node_id, Item> const& table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::count
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(settings_interface const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ~dht_default_storage() override
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_default_storage() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: '& operator=(dht_default_storage const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_default_storage
    signature: dht_default_storage & operator=(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::dht_default_storage::num_torrents
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_torrents() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::peers4::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    - Dst: second::peers6::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: libtorrent::dht::dht_default_storage::num_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - second::peers6::size
    - second::peers4::size
    linkageType: ''
    returnType: size_t
    signature: size_t num_peers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: libtorrent::dht::dht_default_storage::update_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_ids(std::vector<node_id> const& ids) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:227,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:231,1
    - Dst: name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:233,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:243,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:244,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:247,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:248,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:254,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:260,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:265,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:273,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:281,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:284,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:285,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: peer_entry::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:300,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:302,1
    - Dst: auto::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:303,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - ' info_hash'
    - noseed
    - scrape
    - ' requester'
    - ' peers'
    argTypes:
    - sha1_hash
    - bool
    - bool
    - address
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: libtorrent::dht::dht_default_storage::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - std::uint32_t
    - std::min
    - emplace_back
    - hash_address
    - libtorrent::aux::write_endpoint
    - rand_v6
    - list
    - end
    - get_int
    - std::size_t
    - back
    - auto::addr::address
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    - random
    - bloom_filter::set
    - rand_v4
    - std::count_if
    - peer_entry::addr::address
    - find
    - bloom_filter::to_string
    - resize
    - name::empty
    - is_v4
    - addr::address
    linkageType: ''
    returnType: bool
    signature: "bool get_peers(sha1_hash const& info_hash\n\t\t\t, bool const noseed,
      bool const scrape, address const& requester\n\t\t\t, entry& peers) const override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:312,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: torrent_entry*::name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:332,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:335,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:339,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:342,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ' info_hash'
    - ' endp'
    - name
    - seed
    argTypes:
    - sha1_hash
    - tcp::endpoint
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 356
    functionName: libtorrent::dht::dht_default_storage::announce_peer
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - begin
    - libtorrent::aux::is_v4
    - torrent_entry*::name::empty
    - end
    - insert
    - find
    - get_int
    - string_view::empty
    - libtorrent::aux::time_now
    - std::lower_bound
    - size
    linkageType: ''
    returnType: void
    signature: "void announce_peer(sha1_hash const& info_hash\n\t\t\t, tcp::endpoint
      const& endp\n\t\t\t, string_view name, bool const seed) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:362,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    - Dst: auto::second::value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' item'
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: libtorrent::dht::dht_default_storage::get_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - auto::second::value::get
    - end
    - bdecode
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_immutable_item(sha1_hash const& target\n\t\t\t, entry& item)
      const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:374,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:384,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:388,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' target'
    - buf
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 398
    functionName: libtorrent::dht::dht_default_storage::put_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - TORRENT_ASSERT
    - get_int
    - set_value
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item(sha1_hash const& target\n\t\t\t, span<char
      const> buf\n\t\t\t, address const& addr) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:403,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' seq'
    argTypes:
    - sha1_hash
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item_seq
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item_seq(sha1_hash const& target\n\t\t\t, sequence_number&
      seq) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:414,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:415,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:419,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' target'
    - seq
    - force_fill
    - ' item'
    argTypes:
    - sha1_hash
    - sequence_number
    - bool
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - end
    - find
    - sequence_number
    - bdecode
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item(sha1_hash const& target\n\t\t\t, sequence_number
      const seq, bool const force_fill\n\t\t\t, entry& item) const override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:438,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:449,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:453,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:470,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - ' target'
    - buf
    - ' sig'
    - seq
    - ' pk'
    - salt
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - signature
    - sequence_number
    - public_key
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: libtorrent::dht::dht_default_storage::put_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - span<char const>::end
    - TORRENT_ASSERT
    - get_int
    - set_value
    - span<char const>::begin
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item(sha1_hash const& target\n\t\t\t, span<char const>
      buf\n\t\t\t, signature const& sig\n\t\t\t, sequence_number const seq\n\t\t\t,
      public_key const& pk\n\t\t\t, span<char const> salt\n\t\t\t, address const&
      addr) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:483,1
    - Dst: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:485,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:488,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: libtorrent::dht::dht_default_storage::get_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - count
    - static_cast<std::ptrdiff_t>
    - libtorrent::aux::clamp
    - get_int
    - libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    - reinterpret_cast<char const*>
    - span<char const>
    - size
    - data
    linkageType: ''
    returnType: int
    signature: int get_infohashes_sample(entry& item) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:500,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:501,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:510,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:514,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:516,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:528,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 542
    functionName: libtorrent::dht::dht_default_storage::tick
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - seconds
    - end
    - get_int
    - minutes
    - peers6::empty
    - peers4::empty
    - libtorrent::aux::time_now
    - libtorrent::dht::dht_default_storage::purge_peers
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: libtorrent::dht::dht_default_storage::counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_storage_counters
    signature: dht_storage_counters counters() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:562,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: capacity
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<peer_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: libtorrent::dht::dht_default_storage::purge_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 1
    functionsReached:
    - std::distance
    - std::int32_t
    - begin
    - erase
    - empty
    - end
    - std::remove_if
    - shrink_to_fit
    - size
    - capacity
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void purge_peers(std::vector<peer_entry>& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:578,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:587,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:588,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:592,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:593,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:603,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 616
    functionName: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 1
    functionsReached:
    - push_back
    - count
    - libtorrent::aux::clamp
    - seconds
    - std::uint32_t
    - std::min
    - get_int
    - size
    - reserve
    - TORRENT_ASSERT
    - clear
    - libtorrent::aux::time_now
    - random
    linkageType: ''
    returnType: void
    signature: void refresh_infohashes_sample()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_entry
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: operator<(peer_entry const& lhs, peer_entry const& rhs)
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr::port
    - addr::address
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_entry const& lhs, peer_entry const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:118,1
    - Dst: value::reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: char::char
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' item'
    - buf
    argTypes:
    - dht_immutable_item
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::set_value
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - std::size_t
    - span<char const>::size
    - value::reset
    - char::char
    linkageType: ''
    returnType: void
    signature: void set_value(dht_immutable_item& item, span<char const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:129,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:132,1
    - Dst: ips::find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:133,1
    - Dst: ips::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' addr'
    argTypes:
    - dht_immutable_item
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: libtorrent::dht::touch_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - hash_address
    - ips::find
    - libtorrent::aux::time_now
    - ips::set
    linkageType: ''
    returnType: void
    signature: void touch_item(dht_immutable_item& f, address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' node_ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(std::vector<node_id> const& node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:151,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<node_id const, Item>
    - std::pair<node_id const, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: "operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t, std::pair<node_id
      const, Item> const& rhs) const"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - min_distance_exp
    linkageType: ''
    returnType: bool
    signature: "bool operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t,
      std::pair<node_id const, Item> const& rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(immutable_item_comparator const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: immutable_item_comparator
    signature: immutable_item_comparator & operator=(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::immutable_item_comparator
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' node_ids'
    - ' table'
    argTypes:
    - std::vector<node_id>
    - std::map<node_id, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::pick_least_important_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - std::min_element
    - libtorrent::dht::begin
    - libtorrent::dht::immutable_item_comparator
    linkageType: ''
    returnType: typename std::map<node_id, Item>::const_iterator
    signature: "typename std::map<node_id, Item>::const_iterator pick_least_important_item(\n\t\tstd::vector<node_id>
      const& node_ids, std::map<node_id, Item> const& table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::count
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(settings_interface const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ~dht_default_storage() override
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_default_storage() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: '& operator=(dht_default_storage const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_default_storage
    signature: dht_default_storage & operator=(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::dht_default_storage::num_torrents
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_torrents() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::peers4::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    - Dst: second::peers6::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: libtorrent::dht::dht_default_storage::num_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - second::peers6::size
    - second::peers4::size
    linkageType: ''
    returnType: size_t
    signature: size_t num_peers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: libtorrent::dht::dht_default_storage::update_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_ids(std::vector<node_id> const& ids) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:227,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:231,1
    - Dst: name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:233,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:243,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:244,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:247,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:248,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:254,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:260,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:265,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:273,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:281,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:284,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:285,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: peer_entry::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:300,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:302,1
    - Dst: auto::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:303,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - ' info_hash'
    - noseed
    - scrape
    - ' requester'
    - ' peers'
    argTypes:
    - sha1_hash
    - bool
    - bool
    - address
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: libtorrent::dht::dht_default_storage::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - std::uint32_t
    - std::min
    - emplace_back
    - hash_address
    - libtorrent::aux::write_endpoint
    - rand_v6
    - list
    - end
    - get_int
    - std::size_t
    - back
    - auto::addr::address
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    - random
    - bloom_filter::set
    - rand_v4
    - std::count_if
    - peer_entry::addr::address
    - find
    - bloom_filter::to_string
    - resize
    - name::empty
    - is_v4
    - addr::address
    linkageType: ''
    returnType: bool
    signature: "bool get_peers(sha1_hash const& info_hash\n\t\t\t, bool const noseed,
      bool const scrape, address const& requester\n\t\t\t, entry& peers) const override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:312,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: torrent_entry*::name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:332,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:335,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:339,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:342,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ' info_hash'
    - ' endp'
    - name
    - seed
    argTypes:
    - sha1_hash
    - tcp::endpoint
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 356
    functionName: libtorrent::dht::dht_default_storage::announce_peer
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - begin
    - libtorrent::aux::is_v4
    - torrent_entry*::name::empty
    - end
    - insert
    - find
    - get_int
    - string_view::empty
    - libtorrent::aux::time_now
    - std::lower_bound
    - size
    linkageType: ''
    returnType: void
    signature: "void announce_peer(sha1_hash const& info_hash\n\t\t\t, tcp::endpoint
      const& endp\n\t\t\t, string_view name, bool const seed) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:362,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    - Dst: auto::second::value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' item'
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: libtorrent::dht::dht_default_storage::get_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - auto::second::value::get
    - end
    - bdecode
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_immutable_item(sha1_hash const& target\n\t\t\t, entry& item)
      const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:374,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:384,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:388,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' target'
    - buf
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 398
    functionName: libtorrent::dht::dht_default_storage::put_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - TORRENT_ASSERT
    - get_int
    - set_value
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item(sha1_hash const& target\n\t\t\t, span<char
      const> buf\n\t\t\t, address const& addr) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:403,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' seq'
    argTypes:
    - sha1_hash
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item_seq
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item_seq(sha1_hash const& target\n\t\t\t, sequence_number&
      seq) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:414,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:415,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:419,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' target'
    - seq
    - force_fill
    - ' item'
    argTypes:
    - sha1_hash
    - sequence_number
    - bool
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - end
    - find
    - sequence_number
    - bdecode
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item(sha1_hash const& target\n\t\t\t, sequence_number
      const seq, bool const force_fill\n\t\t\t, entry& item) const override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:438,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:449,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:453,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:470,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - ' target'
    - buf
    - ' sig'
    - seq
    - ' pk'
    - salt
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - signature
    - sequence_number
    - public_key
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: libtorrent::dht::dht_default_storage::put_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - span<char const>::end
    - TORRENT_ASSERT
    - get_int
    - set_value
    - span<char const>::begin
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item(sha1_hash const& target\n\t\t\t, span<char const>
      buf\n\t\t\t, signature const& sig\n\t\t\t, sequence_number const seq\n\t\t\t,
      public_key const& pk\n\t\t\t, span<char const> salt\n\t\t\t, address const&
      addr) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:483,1
    - Dst: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:485,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:488,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: libtorrent::dht::dht_default_storage::get_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - count
    - static_cast<std::ptrdiff_t>
    - libtorrent::aux::clamp
    - get_int
    - libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    - reinterpret_cast<char const*>
    - span<char const>
    - size
    - data
    linkageType: ''
    returnType: int
    signature: int get_infohashes_sample(entry& item) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:500,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:501,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:510,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:514,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:516,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:528,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 542
    functionName: libtorrent::dht::dht_default_storage::tick
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - seconds
    - end
    - get_int
    - minutes
    - peers6::empty
    - peers4::empty
    - libtorrent::aux::time_now
    - libtorrent::dht::dht_default_storage::purge_peers
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: libtorrent::dht::dht_default_storage::counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_storage_counters
    signature: dht_storage_counters counters() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:562,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: capacity
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<peer_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: libtorrent::dht::dht_default_storage::purge_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 2
    functionsReached:
    - std::distance
    - std::int32_t
    - begin
    - erase
    - empty
    - end
    - std::remove_if
    - shrink_to_fit
    - size
    - capacity
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void purge_peers(std::vector<peer_entry>& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:578,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:587,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:588,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:592,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:593,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:603,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 616
    functionName: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 2
    functionsReached:
    - push_back
    - count
    - libtorrent::aux::clamp
    - seconds
    - std::uint32_t
    - std::min
    - get_int
    - size
    - reserve
    - TORRENT_ASSERT
    - clear
    - libtorrent::aux::time_now
    - random
    linkageType: ''
    returnType: void
    signature: void refresh_infohashes_sample()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: libtorrent::dht::dht_storage_counters::reset
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_storage_counters::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<dht_default_storage>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: libtorrent::dht::dht_default_storage_constructor
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<dht_default_storage>
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> dht_default_storage_constructor(\n\tsettings_interface
      const& settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_entry
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: operator<(peer_entry const& lhs, peer_entry const& rhs)
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr::port
    - addr::address
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_entry const& lhs, peer_entry const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:118,1
    - Dst: value::reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: char::char
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' item'
    - buf
    argTypes:
    - dht_immutable_item
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::set_value
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - std::size_t
    - span<char const>::size
    - value::reset
    - char::char
    linkageType: ''
    returnType: void
    signature: void set_value(dht_immutable_item& item, span<char const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:129,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:132,1
    - Dst: ips::find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:133,1
    - Dst: ips::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' addr'
    argTypes:
    - dht_immutable_item
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: libtorrent::dht::touch_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - hash_address
    - ips::find
    - libtorrent::aux::time_now
    - ips::set
    linkageType: ''
    returnType: void
    signature: void touch_item(dht_immutable_item& f, address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' node_ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(std::vector<node_id> const& node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:151,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<node_id const, Item>
    - std::pair<node_id const, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: "operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t, std::pair<node_id
      const, Item> const& rhs) const"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - min_distance_exp
    linkageType: ''
    returnType: bool
    signature: "bool operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t,
      std::pair<node_id const, Item> const& rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(immutable_item_comparator const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: immutable_item_comparator
    signature: immutable_item_comparator & operator=(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::immutable_item_comparator
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' node_ids'
    - ' table'
    argTypes:
    - std::vector<node_id>
    - std::map<node_id, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::pick_least_important_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - std::min_element
    - libtorrent::dht::begin
    - libtorrent::dht::immutable_item_comparator
    linkageType: ''
    returnType: typename std::map<node_id, Item>::const_iterator
    signature: "typename std::map<node_id, Item>::const_iterator pick_least_important_item(\n\t\tstd::vector<node_id>
      const& node_ids, std::map<node_id, Item> const& table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::count
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(settings_interface const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ~dht_default_storage() override
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_default_storage() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: '& operator=(dht_default_storage const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_default_storage
    signature: dht_default_storage & operator=(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::dht_default_storage::num_torrents
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_torrents() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::peers4::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    - Dst: second::peers6::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: libtorrent::dht::dht_default_storage::num_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - second::peers6::size
    - second::peers4::size
    linkageType: ''
    returnType: size_t
    signature: size_t num_peers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: libtorrent::dht::dht_default_storage::update_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_ids(std::vector<node_id> const& ids) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:227,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:231,1
    - Dst: name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:233,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:243,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:244,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:247,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:248,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:254,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:260,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:265,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:273,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:281,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:284,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:285,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: peer_entry::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:300,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:302,1
    - Dst: auto::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:303,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - ' info_hash'
    - noseed
    - scrape
    - ' requester'
    - ' peers'
    argTypes:
    - sha1_hash
    - bool
    - bool
    - address
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: libtorrent::dht::dht_default_storage::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - std::uint32_t
    - std::min
    - emplace_back
    - hash_address
    - libtorrent::aux::write_endpoint
    - rand_v6
    - list
    - end
    - get_int
    - std::size_t
    - back
    - auto::addr::address
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    - random
    - bloom_filter::set
    - rand_v4
    - std::count_if
    - peer_entry::addr::address
    - find
    - bloom_filter::to_string
    - resize
    - name::empty
    - is_v4
    - addr::address
    linkageType: ''
    returnType: bool
    signature: "bool get_peers(sha1_hash const& info_hash\n\t\t\t, bool const noseed,
      bool const scrape, address const& requester\n\t\t\t, entry& peers) const override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:312,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: torrent_entry*::name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:332,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:335,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:339,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:342,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ' info_hash'
    - ' endp'
    - name
    - seed
    argTypes:
    - sha1_hash
    - tcp::endpoint
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 356
    functionName: libtorrent::dht::dht_default_storage::announce_peer
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - begin
    - libtorrent::aux::is_v4
    - torrent_entry*::name::empty
    - end
    - insert
    - find
    - get_int
    - string_view::empty
    - libtorrent::aux::time_now
    - std::lower_bound
    - size
    linkageType: ''
    returnType: void
    signature: "void announce_peer(sha1_hash const& info_hash\n\t\t\t, tcp::endpoint
      const& endp\n\t\t\t, string_view name, bool const seed) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:362,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    - Dst: auto::second::value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' item'
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: libtorrent::dht::dht_default_storage::get_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - auto::second::value::get
    - end
    - bdecode
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_immutable_item(sha1_hash const& target\n\t\t\t, entry& item)
      const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:374,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:384,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:388,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' target'
    - buf
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 398
    functionName: libtorrent::dht::dht_default_storage::put_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - TORRENT_ASSERT
    - get_int
    - set_value
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item(sha1_hash const& target\n\t\t\t, span<char
      const> buf\n\t\t\t, address const& addr) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:403,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' seq'
    argTypes:
    - sha1_hash
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item_seq
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item_seq(sha1_hash const& target\n\t\t\t, sequence_number&
      seq) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:414,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:415,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:419,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' target'
    - seq
    - force_fill
    - ' item'
    argTypes:
    - sha1_hash
    - sequence_number
    - bool
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - end
    - find
    - sequence_number
    - bdecode
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item(sha1_hash const& target\n\t\t\t, sequence_number
      const seq, bool const force_fill\n\t\t\t, entry& item) const override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:438,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:449,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:453,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:470,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - ' target'
    - buf
    - ' sig'
    - seq
    - ' pk'
    - salt
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - signature
    - sequence_number
    - public_key
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: libtorrent::dht::dht_default_storage::put_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - span<char const>::end
    - TORRENT_ASSERT
    - get_int
    - set_value
    - span<char const>::begin
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item(sha1_hash const& target\n\t\t\t, span<char const>
      buf\n\t\t\t, signature const& sig\n\t\t\t, sequence_number const seq\n\t\t\t,
      public_key const& pk\n\t\t\t, span<char const> salt\n\t\t\t, address const&
      addr) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:483,1
    - Dst: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:485,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:488,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: libtorrent::dht::dht_default_storage::get_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - count
    - static_cast<std::ptrdiff_t>
    - libtorrent::aux::clamp
    - get_int
    - libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    - reinterpret_cast<char const*>
    - span<char const>
    - size
    - data
    linkageType: ''
    returnType: int
    signature: int get_infohashes_sample(entry& item) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:500,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:501,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:510,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:514,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:516,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:528,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 542
    functionName: libtorrent::dht::dht_default_storage::tick
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - seconds
    - end
    - get_int
    - minutes
    - peers6::empty
    - peers4::empty
    - libtorrent::aux::time_now
    - libtorrent::dht::dht_default_storage::purge_peers
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: libtorrent::dht::dht_default_storage::counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_storage_counters
    signature: dht_storage_counters counters() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:562,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: capacity
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<peer_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: libtorrent::dht::dht_default_storage::purge_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 3
    functionsReached:
    - std::distance
    - std::int32_t
    - begin
    - erase
    - empty
    - end
    - std::remove_if
    - shrink_to_fit
    - size
    - capacity
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void purge_peers(std::vector<peer_entry>& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:578,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:587,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:588,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:592,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:593,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:603,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 616
    functionName: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 3
    functionsReached:
    - push_back
    - count
    - libtorrent::aux::clamp
    - seconds
    - std::uint32_t
    - std::min
    - get_int
    - size
    - reserve
    - TORRENT_ASSERT
    - clear
    - libtorrent::aux::time_now
    - random
    linkageType: ''
    returnType: void
    signature: void refresh_infohashes_sample()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_entry
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: operator<(peer_entry const& lhs, peer_entry const& rhs)
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr::port
    - addr::address
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_entry const& lhs, peer_entry const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:118,1
    - Dst: value::reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: char::char
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' item'
    - buf
    argTypes:
    - dht_immutable_item
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::set_value
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - std::size_t
    - span<char const>::size
    - value::reset
    - char::char
    linkageType: ''
    returnType: void
    signature: void set_value(dht_immutable_item& item, span<char const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:129,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:132,1
    - Dst: ips::find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:133,1
    - Dst: ips::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' addr'
    argTypes:
    - dht_immutable_item
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: libtorrent::dht::touch_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - hash_address
    - ips::find
    - libtorrent::aux::time_now
    - ips::set
    linkageType: ''
    returnType: void
    signature: void touch_item(dht_immutable_item& f, address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' node_ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(std::vector<node_id> const& node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:151,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<node_id const, Item>
    - std::pair<node_id const, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: "operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t, std::pair<node_id
      const, Item> const& rhs) const"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - min_distance_exp
    linkageType: ''
    returnType: bool
    signature: "bool operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t,
      std::pair<node_id const, Item> const& rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(immutable_item_comparator const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: immutable_item_comparator
    signature: immutable_item_comparator & operator=(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::immutable_item_comparator
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' node_ids'
    - ' table'
    argTypes:
    - std::vector<node_id>
    - std::map<node_id, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::pick_least_important_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - std::min_element
    - libtorrent::dht::begin
    - libtorrent::dht::immutable_item_comparator
    linkageType: ''
    returnType: typename std::map<node_id, Item>::const_iterator
    signature: "typename std::map<node_id, Item>::const_iterator pick_least_important_item(\n\t\tstd::vector<node_id>
      const& node_ids, std::map<node_id, Item> const& table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::count
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(settings_interface const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ~dht_default_storage() override
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_default_storage() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: '& operator=(dht_default_storage const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_default_storage
    signature: dht_default_storage & operator=(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::dht_default_storage::num_torrents
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_torrents() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::peers4::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    - Dst: second::peers6::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: libtorrent::dht::dht_default_storage::num_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - second::peers6::size
    - second::peers4::size
    linkageType: ''
    returnType: size_t
    signature: size_t num_peers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: libtorrent::dht::dht_default_storage::update_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_ids(std::vector<node_id> const& ids) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:227,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:231,1
    - Dst: name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:233,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:243,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:244,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:247,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:248,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:254,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:260,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:265,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:273,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:281,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:284,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:285,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: peer_entry::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:300,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:302,1
    - Dst: auto::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:303,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - ' info_hash'
    - noseed
    - scrape
    - ' requester'
    - ' peers'
    argTypes:
    - sha1_hash
    - bool
    - bool
    - address
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: libtorrent::dht::dht_default_storage::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - std::uint32_t
    - std::min
    - emplace_back
    - hash_address
    - libtorrent::aux::write_endpoint
    - rand_v6
    - list
    - end
    - get_int
    - std::size_t
    - back
    - auto::addr::address
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    - random
    - bloom_filter::set
    - rand_v4
    - std::count_if
    - peer_entry::addr::address
    - find
    - bloom_filter::to_string
    - resize
    - name::empty
    - is_v4
    - addr::address
    linkageType: ''
    returnType: bool
    signature: "bool get_peers(sha1_hash const& info_hash\n\t\t\t, bool const noseed,
      bool const scrape, address const& requester\n\t\t\t, entry& peers) const override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:312,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: torrent_entry*::name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:332,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:335,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:339,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:342,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ' info_hash'
    - ' endp'
    - name
    - seed
    argTypes:
    - sha1_hash
    - tcp::endpoint
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 356
    functionName: libtorrent::dht::dht_default_storage::announce_peer
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - begin
    - libtorrent::aux::is_v4
    - torrent_entry*::name::empty
    - end
    - insert
    - find
    - get_int
    - string_view::empty
    - libtorrent::aux::time_now
    - std::lower_bound
    - size
    linkageType: ''
    returnType: void
    signature: "void announce_peer(sha1_hash const& info_hash\n\t\t\t, tcp::endpoint
      const& endp\n\t\t\t, string_view name, bool const seed) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:362,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    - Dst: auto::second::value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' item'
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: libtorrent::dht::dht_default_storage::get_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - auto::second::value::get
    - end
    - bdecode
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_immutable_item(sha1_hash const& target\n\t\t\t, entry& item)
      const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:374,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:384,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:388,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' target'
    - buf
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 398
    functionName: libtorrent::dht::dht_default_storage::put_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - TORRENT_ASSERT
    - get_int
    - set_value
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item(sha1_hash const& target\n\t\t\t, span<char
      const> buf\n\t\t\t, address const& addr) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:403,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' seq'
    argTypes:
    - sha1_hash
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item_seq
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item_seq(sha1_hash const& target\n\t\t\t, sequence_number&
      seq) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:414,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:415,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:419,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' target'
    - seq
    - force_fill
    - ' item'
    argTypes:
    - sha1_hash
    - sequence_number
    - bool
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - end
    - find
    - sequence_number
    - bdecode
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item(sha1_hash const& target\n\t\t\t, sequence_number
      const seq, bool const force_fill\n\t\t\t, entry& item) const override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:438,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:449,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:453,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:470,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - ' target'
    - buf
    - ' sig'
    - seq
    - ' pk'
    - salt
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - signature
    - sequence_number
    - public_key
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: libtorrent::dht::dht_default_storage::put_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - span<char const>::end
    - TORRENT_ASSERT
    - get_int
    - set_value
    - span<char const>::begin
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item(sha1_hash const& target\n\t\t\t, span<char const>
      buf\n\t\t\t, signature const& sig\n\t\t\t, sequence_number const seq\n\t\t\t,
      public_key const& pk\n\t\t\t, span<char const> salt\n\t\t\t, address const&
      addr) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:483,1
    - Dst: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:485,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:488,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: libtorrent::dht::dht_default_storage::get_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - count
    - static_cast<std::ptrdiff_t>
    - libtorrent::aux::clamp
    - get_int
    - libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    - reinterpret_cast<char const*>
    - span<char const>
    - size
    - data
    linkageType: ''
    returnType: int
    signature: int get_infohashes_sample(entry& item) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:500,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:501,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:510,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:514,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:516,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:528,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 542
    functionName: libtorrent::dht::dht_default_storage::tick
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - seconds
    - end
    - get_int
    - minutes
    - peers6::empty
    - peers4::empty
    - libtorrent::aux::time_now
    - libtorrent::dht::dht_default_storage::purge_peers
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: libtorrent::dht::dht_default_storage::counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_storage_counters
    signature: dht_storage_counters counters() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:562,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: capacity
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<peer_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: libtorrent::dht::dht_default_storage::purge_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 4
    functionsReached:
    - std::distance
    - std::int32_t
    - begin
    - erase
    - empty
    - end
    - std::remove_if
    - shrink_to_fit
    - size
    - capacity
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void purge_peers(std::vector<peer_entry>& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:578,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:587,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:588,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:592,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:593,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:603,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 616
    functionName: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 4
    functionsReached:
    - push_back
    - count
    - libtorrent::aux::clamp
    - seconds
    - std::uint32_t
    - std::min
    - get_int
    - size
    - reserve
    - TORRENT_ASSERT
    - clear
    - libtorrent::aux::time_now
    - random
    linkageType: ''
    returnType: void
    signature: void refresh_infohashes_sample()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: libtorrent::dht::dht_storage_counters::reset
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_storage_counters::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<dht_default_storage>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: libtorrent::dht::dht_default_storage_constructor
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<dht_default_storage>
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> dht_default_storage_constructor(\n\tsettings_interface
      const& settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_entry
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: operator<(peer_entry const& lhs, peer_entry const& rhs)
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr::port
    - addr::address
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_entry const& lhs, peer_entry const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:118,1
    - Dst: value::reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: char::char
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' item'
    - buf
    argTypes:
    - dht_immutable_item
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::set_value
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - std::size_t
    - span<char const>::size
    - value::reset
    - char::char
    linkageType: ''
    returnType: void
    signature: void set_value(dht_immutable_item& item, span<char const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:129,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:132,1
    - Dst: ips::find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:133,1
    - Dst: ips::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' addr'
    argTypes:
    - dht_immutable_item
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: libtorrent::dht::touch_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - hash_address
    - ips::find
    - libtorrent::aux::time_now
    - ips::set
    linkageType: ''
    returnType: void
    signature: void touch_item(dht_immutable_item& f, address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' node_ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(std::vector<node_id> const& node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:151,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<node_id const, Item>
    - std::pair<node_id const, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: "operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t, std::pair<node_id
      const, Item> const& rhs) const"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - min_distance_exp
    linkageType: ''
    returnType: bool
    signature: "bool operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t,
      std::pair<node_id const, Item> const& rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(immutable_item_comparator const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: immutable_item_comparator
    signature: immutable_item_comparator & operator=(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::immutable_item_comparator
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' node_ids'
    - ' table'
    argTypes:
    - std::vector<node_id>
    - std::map<node_id, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::pick_least_important_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - std::min_element
    - libtorrent::dht::begin
    - libtorrent::dht::immutable_item_comparator
    linkageType: ''
    returnType: typename std::map<node_id, Item>::const_iterator
    signature: "typename std::map<node_id, Item>::const_iterator pick_least_important_item(\n\t\tstd::vector<node_id>
      const& node_ids, std::map<node_id, Item> const& table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::count
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(settings_interface const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ~dht_default_storage() override
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_default_storage() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: '& operator=(dht_default_storage const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_default_storage
    signature: dht_default_storage & operator=(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::dht_default_storage::num_torrents
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_torrents() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::peers4::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    - Dst: second::peers6::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: libtorrent::dht::dht_default_storage::num_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - second::peers6::size
    - second::peers4::size
    linkageType: ''
    returnType: size_t
    signature: size_t num_peers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: libtorrent::dht::dht_default_storage::update_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_ids(std::vector<node_id> const& ids) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:227,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:231,1
    - Dst: name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:233,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:243,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:244,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:247,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:248,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:254,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:260,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:265,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:273,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:281,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:284,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:285,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: peer_entry::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:300,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:302,1
    - Dst: auto::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:303,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - ' info_hash'
    - noseed
    - scrape
    - ' requester'
    - ' peers'
    argTypes:
    - sha1_hash
    - bool
    - bool
    - address
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: libtorrent::dht::dht_default_storage::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - std::uint32_t
    - std::min
    - emplace_back
    - hash_address
    - libtorrent::aux::write_endpoint
    - rand_v6
    - list
    - end
    - get_int
    - std::size_t
    - back
    - auto::addr::address
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    - random
    - bloom_filter::set
    - rand_v4
    - std::count_if
    - peer_entry::addr::address
    - find
    - bloom_filter::to_string
    - resize
    - name::empty
    - is_v4
    - addr::address
    linkageType: ''
    returnType: bool
    signature: "bool get_peers(sha1_hash const& info_hash\n\t\t\t, bool const noseed,
      bool const scrape, address const& requester\n\t\t\t, entry& peers) const override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:312,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: torrent_entry*::name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:332,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:335,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:339,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:342,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ' info_hash'
    - ' endp'
    - name
    - seed
    argTypes:
    - sha1_hash
    - tcp::endpoint
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 356
    functionName: libtorrent::dht::dht_default_storage::announce_peer
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - begin
    - libtorrent::aux::is_v4
    - torrent_entry*::name::empty
    - end
    - insert
    - find
    - get_int
    - string_view::empty
    - libtorrent::aux::time_now
    - std::lower_bound
    - size
    linkageType: ''
    returnType: void
    signature: "void announce_peer(sha1_hash const& info_hash\n\t\t\t, tcp::endpoint
      const& endp\n\t\t\t, string_view name, bool const seed) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:362,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    - Dst: auto::second::value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' item'
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: libtorrent::dht::dht_default_storage::get_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - auto::second::value::get
    - end
    - bdecode
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_immutable_item(sha1_hash const& target\n\t\t\t, entry& item)
      const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:374,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:384,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:388,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' target'
    - buf
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 398
    functionName: libtorrent::dht::dht_default_storage::put_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - TORRENT_ASSERT
    - get_int
    - set_value
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item(sha1_hash const& target\n\t\t\t, span<char
      const> buf\n\t\t\t, address const& addr) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:403,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' seq'
    argTypes:
    - sha1_hash
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item_seq
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item_seq(sha1_hash const& target\n\t\t\t, sequence_number&
      seq) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:414,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:415,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:419,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' target'
    - seq
    - force_fill
    - ' item'
    argTypes:
    - sha1_hash
    - sequence_number
    - bool
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - end
    - find
    - sequence_number
    - bdecode
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item(sha1_hash const& target\n\t\t\t, sequence_number
      const seq, bool const force_fill\n\t\t\t, entry& item) const override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:438,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:449,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:453,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:470,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - ' target'
    - buf
    - ' sig'
    - seq
    - ' pk'
    - salt
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - signature
    - sequence_number
    - public_key
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: libtorrent::dht::dht_default_storage::put_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - span<char const>::end
    - TORRENT_ASSERT
    - get_int
    - set_value
    - span<char const>::begin
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item(sha1_hash const& target\n\t\t\t, span<char const>
      buf\n\t\t\t, signature const& sig\n\t\t\t, sequence_number const seq\n\t\t\t,
      public_key const& pk\n\t\t\t, span<char const> salt\n\t\t\t, address const&
      addr) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:483,1
    - Dst: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:485,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:488,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: libtorrent::dht::dht_default_storage::get_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - count
    - static_cast<std::ptrdiff_t>
    - libtorrent::aux::clamp
    - get_int
    - libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    - reinterpret_cast<char const*>
    - span<char const>
    - size
    - data
    linkageType: ''
    returnType: int
    signature: int get_infohashes_sample(entry& item) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:500,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:501,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:510,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:514,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:516,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:528,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 542
    functionName: libtorrent::dht::dht_default_storage::tick
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - seconds
    - end
    - get_int
    - minutes
    - peers6::empty
    - peers4::empty
    - libtorrent::aux::time_now
    - libtorrent::dht::dht_default_storage::purge_peers
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: libtorrent::dht::dht_default_storage::counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_storage_counters
    signature: dht_storage_counters counters() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:562,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: capacity
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<peer_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: libtorrent::dht::dht_default_storage::purge_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 5
    functionsReached:
    - std::distance
    - std::int32_t
    - begin
    - erase
    - empty
    - end
    - std::remove_if
    - shrink_to_fit
    - size
    - capacity
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void purge_peers(std::vector<peer_entry>& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:578,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:587,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:588,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:592,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:593,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:603,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 616
    functionName: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 5
    functionsReached:
    - push_back
    - count
    - libtorrent::aux::clamp
    - seconds
    - std::uint32_t
    - std::min
    - get_int
    - size
    - reserve
    - TORRENT_ASSERT
    - clear
    - libtorrent::aux::time_now
    - random
    linkageType: ''
    returnType: void
    signature: void refresh_infohashes_sample()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_entry
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: operator<(peer_entry const& lhs, peer_entry const& rhs)
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr::port
    - addr::address
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_entry const& lhs, peer_entry const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:118,1
    - Dst: value::reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: char::char
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' item'
    - buf
    argTypes:
    - dht_immutable_item
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::set_value
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - std::size_t
    - span<char const>::size
    - value::reset
    - char::char
    linkageType: ''
    returnType: void
    signature: void set_value(dht_immutable_item& item, span<char const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:129,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:132,1
    - Dst: ips::find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:133,1
    - Dst: ips::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' addr'
    argTypes:
    - dht_immutable_item
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: libtorrent::dht::touch_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - hash_address
    - ips::find
    - libtorrent::aux::time_now
    - ips::set
    linkageType: ''
    returnType: void
    signature: void touch_item(dht_immutable_item& f, address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' node_ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(std::vector<node_id> const& node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:151,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<node_id const, Item>
    - std::pair<node_id const, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: "operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t, std::pair<node_id
      const, Item> const& rhs) const"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - min_distance_exp
    linkageType: ''
    returnType: bool
    signature: "bool operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t,
      std::pair<node_id const, Item> const& rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(immutable_item_comparator const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: immutable_item_comparator
    signature: immutable_item_comparator & operator=(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::immutable_item_comparator
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' node_ids'
    - ' table'
    argTypes:
    - std::vector<node_id>
    - std::map<node_id, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::pick_least_important_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - std::min_element
    - libtorrent::dht::begin
    - libtorrent::dht::immutable_item_comparator
    linkageType: ''
    returnType: typename std::map<node_id, Item>::const_iterator
    signature: "typename std::map<node_id, Item>::const_iterator pick_least_important_item(\n\t\tstd::vector<node_id>
      const& node_ids, std::map<node_id, Item> const& table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::count
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(settings_interface const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ~dht_default_storage() override
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_default_storage() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: '& operator=(dht_default_storage const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_default_storage
    signature: dht_default_storage & operator=(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::dht_default_storage::num_torrents
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_torrents() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::peers4::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    - Dst: second::peers6::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: libtorrent::dht::dht_default_storage::num_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - second::peers6::size
    - second::peers4::size
    linkageType: ''
    returnType: size_t
    signature: size_t num_peers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: libtorrent::dht::dht_default_storage::update_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_ids(std::vector<node_id> const& ids) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:227,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:231,1
    - Dst: name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:233,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:243,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:244,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:247,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:248,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:254,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:260,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:265,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:273,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:281,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:284,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:285,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: peer_entry::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:300,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:302,1
    - Dst: auto::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:303,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - ' info_hash'
    - noseed
    - scrape
    - ' requester'
    - ' peers'
    argTypes:
    - sha1_hash
    - bool
    - bool
    - address
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: libtorrent::dht::dht_default_storage::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - std::uint32_t
    - std::min
    - emplace_back
    - hash_address
    - libtorrent::aux::write_endpoint
    - rand_v6
    - list
    - end
    - get_int
    - std::size_t
    - back
    - auto::addr::address
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    - random
    - bloom_filter::set
    - rand_v4
    - std::count_if
    - peer_entry::addr::address
    - find
    - bloom_filter::to_string
    - resize
    - name::empty
    - is_v4
    - addr::address
    linkageType: ''
    returnType: bool
    signature: "bool get_peers(sha1_hash const& info_hash\n\t\t\t, bool const noseed,
      bool const scrape, address const& requester\n\t\t\t, entry& peers) const override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:312,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: torrent_entry*::name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:332,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:335,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:339,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:342,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ' info_hash'
    - ' endp'
    - name
    - seed
    argTypes:
    - sha1_hash
    - tcp::endpoint
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 356
    functionName: libtorrent::dht::dht_default_storage::announce_peer
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - begin
    - libtorrent::aux::is_v4
    - torrent_entry*::name::empty
    - end
    - insert
    - find
    - get_int
    - string_view::empty
    - libtorrent::aux::time_now
    - std::lower_bound
    - size
    linkageType: ''
    returnType: void
    signature: "void announce_peer(sha1_hash const& info_hash\n\t\t\t, tcp::endpoint
      const& endp\n\t\t\t, string_view name, bool const seed) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:362,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    - Dst: auto::second::value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' item'
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: libtorrent::dht::dht_default_storage::get_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - auto::second::value::get
    - end
    - bdecode
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_immutable_item(sha1_hash const& target\n\t\t\t, entry& item)
      const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:374,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:384,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:388,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' target'
    - buf
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 398
    functionName: libtorrent::dht::dht_default_storage::put_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - TORRENT_ASSERT
    - get_int
    - set_value
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item(sha1_hash const& target\n\t\t\t, span<char
      const> buf\n\t\t\t, address const& addr) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:403,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' seq'
    argTypes:
    - sha1_hash
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item_seq
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item_seq(sha1_hash const& target\n\t\t\t, sequence_number&
      seq) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:414,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:415,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:419,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' target'
    - seq
    - force_fill
    - ' item'
    argTypes:
    - sha1_hash
    - sequence_number
    - bool
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - end
    - find
    - sequence_number
    - bdecode
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item(sha1_hash const& target\n\t\t\t, sequence_number
      const seq, bool const force_fill\n\t\t\t, entry& item) const override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:438,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:449,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:453,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:470,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - ' target'
    - buf
    - ' sig'
    - seq
    - ' pk'
    - salt
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - signature
    - sequence_number
    - public_key
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: libtorrent::dht::dht_default_storage::put_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - span<char const>::end
    - TORRENT_ASSERT
    - get_int
    - set_value
    - span<char const>::begin
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item(sha1_hash const& target\n\t\t\t, span<char const>
      buf\n\t\t\t, signature const& sig\n\t\t\t, sequence_number const seq\n\t\t\t,
      public_key const& pk\n\t\t\t, span<char const> salt\n\t\t\t, address const&
      addr) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:483,1
    - Dst: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:485,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:488,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: libtorrent::dht::dht_default_storage::get_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - count
    - static_cast<std::ptrdiff_t>
    - libtorrent::aux::clamp
    - get_int
    - libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    - reinterpret_cast<char const*>
    - span<char const>
    - size
    - data
    linkageType: ''
    returnType: int
    signature: int get_infohashes_sample(entry& item) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:500,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:501,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:510,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:514,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:516,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:528,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 542
    functionName: libtorrent::dht::dht_default_storage::tick
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - seconds
    - end
    - get_int
    - minutes
    - peers6::empty
    - peers4::empty
    - libtorrent::aux::time_now
    - libtorrent::dht::dht_default_storage::purge_peers
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: libtorrent::dht::dht_default_storage::counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_storage_counters
    signature: dht_storage_counters counters() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:562,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: capacity
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<peer_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: libtorrent::dht::dht_default_storage::purge_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 6
    functionsReached:
    - std::distance
    - std::int32_t
    - begin
    - erase
    - empty
    - end
    - std::remove_if
    - shrink_to_fit
    - size
    - capacity
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void purge_peers(std::vector<peer_entry>& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:578,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:587,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:588,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:592,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:593,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:603,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 616
    functionName: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 6
    functionsReached:
    - push_back
    - count
    - libtorrent::aux::clamp
    - seconds
    - std::uint32_t
    - std::min
    - get_int
    - size
    - reserve
    - TORRENT_ASSERT
    - clear
    - libtorrent::aux::time_now
    - random
    linkageType: ''
    returnType: void
    signature: void refresh_infohashes_sample()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: libtorrent::dht::dht_storage_counters::reset
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_storage_counters::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<dht_default_storage>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: libtorrent::dht::dht_default_storage_constructor
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<dht_default_storage>
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> dht_default_storage_constructor(\n\tsettings_interface
      const& settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_entry
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: operator<(peer_entry const& lhs, peer_entry const& rhs)
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr::port
    - addr::address
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_entry const& lhs, peer_entry const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:118,1
    - Dst: value::reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: char::char
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' item'
    - buf
    argTypes:
    - dht_immutable_item
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::set_value
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - std::size_t
    - span<char const>::size
    - value::reset
    - char::char
    linkageType: ''
    returnType: void
    signature: void set_value(dht_immutable_item& item, span<char const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:129,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:132,1
    - Dst: ips::find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:133,1
    - Dst: ips::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' addr'
    argTypes:
    - dht_immutable_item
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: libtorrent::dht::touch_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - hash_address
    - ips::find
    - libtorrent::aux::time_now
    - ips::set
    linkageType: ''
    returnType: void
    signature: void touch_item(dht_immutable_item& f, address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' node_ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(std::vector<node_id> const& node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:151,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<node_id const, Item>
    - std::pair<node_id const, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: "operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t, std::pair<node_id
      const, Item> const& rhs) const"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - min_distance_exp
    linkageType: ''
    returnType: bool
    signature: "bool operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t,
      std::pair<node_id const, Item> const& rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(immutable_item_comparator const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: immutable_item_comparator
    signature: immutable_item_comparator & operator=(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::immutable_item_comparator
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' node_ids'
    - ' table'
    argTypes:
    - std::vector<node_id>
    - std::map<node_id, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::pick_least_important_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - std::min_element
    - libtorrent::dht::begin
    - libtorrent::dht::immutable_item_comparator
    linkageType: ''
    returnType: typename std::map<node_id, Item>::const_iterator
    signature: "typename std::map<node_id, Item>::const_iterator pick_least_important_item(\n\t\tstd::vector<node_id>
      const& node_ids, std::map<node_id, Item> const& table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::count
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(settings_interface const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ~dht_default_storage() override
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_default_storage() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: '& operator=(dht_default_storage const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_default_storage
    signature: dht_default_storage & operator=(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::dht_default_storage::num_torrents
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_torrents() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::peers4::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    - Dst: second::peers6::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: libtorrent::dht::dht_default_storage::num_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - second::peers6::size
    - second::peers4::size
    linkageType: ''
    returnType: size_t
    signature: size_t num_peers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: libtorrent::dht::dht_default_storage::update_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_ids(std::vector<node_id> const& ids) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:227,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:231,1
    - Dst: name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:233,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:243,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:244,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:247,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:248,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:254,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:260,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:265,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:273,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:281,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:284,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:285,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: peer_entry::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:300,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:302,1
    - Dst: auto::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:303,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - ' info_hash'
    - noseed
    - scrape
    - ' requester'
    - ' peers'
    argTypes:
    - sha1_hash
    - bool
    - bool
    - address
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: libtorrent::dht::dht_default_storage::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - std::uint32_t
    - std::min
    - emplace_back
    - hash_address
    - libtorrent::aux::write_endpoint
    - rand_v6
    - list
    - end
    - get_int
    - std::size_t
    - back
    - auto::addr::address
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    - random
    - bloom_filter::set
    - rand_v4
    - std::count_if
    - peer_entry::addr::address
    - find
    - bloom_filter::to_string
    - resize
    - name::empty
    - is_v4
    - addr::address
    linkageType: ''
    returnType: bool
    signature: "bool get_peers(sha1_hash const& info_hash\n\t\t\t, bool const noseed,
      bool const scrape, address const& requester\n\t\t\t, entry& peers) const override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:312,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: torrent_entry*::name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:332,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:335,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:339,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:342,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ' info_hash'
    - ' endp'
    - name
    - seed
    argTypes:
    - sha1_hash
    - tcp::endpoint
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 356
    functionName: libtorrent::dht::dht_default_storage::announce_peer
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - begin
    - libtorrent::aux::is_v4
    - torrent_entry*::name::empty
    - end
    - insert
    - find
    - get_int
    - string_view::empty
    - libtorrent::aux::time_now
    - std::lower_bound
    - size
    linkageType: ''
    returnType: void
    signature: "void announce_peer(sha1_hash const& info_hash\n\t\t\t, tcp::endpoint
      const& endp\n\t\t\t, string_view name, bool const seed) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:362,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    - Dst: auto::second::value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' item'
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: libtorrent::dht::dht_default_storage::get_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - auto::second::value::get
    - end
    - bdecode
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_immutable_item(sha1_hash const& target\n\t\t\t, entry& item)
      const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:374,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:384,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:388,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' target'
    - buf
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 398
    functionName: libtorrent::dht::dht_default_storage::put_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - TORRENT_ASSERT
    - get_int
    - set_value
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item(sha1_hash const& target\n\t\t\t, span<char
      const> buf\n\t\t\t, address const& addr) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:403,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' seq'
    argTypes:
    - sha1_hash
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item_seq
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item_seq(sha1_hash const& target\n\t\t\t, sequence_number&
      seq) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:414,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:415,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:419,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' target'
    - seq
    - force_fill
    - ' item'
    argTypes:
    - sha1_hash
    - sequence_number
    - bool
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - end
    - find
    - sequence_number
    - bdecode
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item(sha1_hash const& target\n\t\t\t, sequence_number
      const seq, bool const force_fill\n\t\t\t, entry& item) const override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:438,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:449,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:453,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:470,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - ' target'
    - buf
    - ' sig'
    - seq
    - ' pk'
    - salt
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - signature
    - sequence_number
    - public_key
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: libtorrent::dht::dht_default_storage::put_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - span<char const>::end
    - TORRENT_ASSERT
    - get_int
    - set_value
    - span<char const>::begin
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item(sha1_hash const& target\n\t\t\t, span<char const>
      buf\n\t\t\t, signature const& sig\n\t\t\t, sequence_number const seq\n\t\t\t,
      public_key const& pk\n\t\t\t, span<char const> salt\n\t\t\t, address const&
      addr) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:483,1
    - Dst: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:485,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:488,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: libtorrent::dht::dht_default_storage::get_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - count
    - static_cast<std::ptrdiff_t>
    - libtorrent::aux::clamp
    - get_int
    - libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    - reinterpret_cast<char const*>
    - span<char const>
    - size
    - data
    linkageType: ''
    returnType: int
    signature: int get_infohashes_sample(entry& item) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:500,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:501,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:510,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:514,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:516,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:528,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 542
    functionName: libtorrent::dht::dht_default_storage::tick
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - seconds
    - end
    - get_int
    - minutes
    - peers6::empty
    - peers4::empty
    - libtorrent::aux::time_now
    - libtorrent::dht::dht_default_storage::purge_peers
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: libtorrent::dht::dht_default_storage::counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_storage_counters
    signature: dht_storage_counters counters() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:562,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: capacity
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<peer_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: libtorrent::dht::dht_default_storage::purge_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 7
    functionsReached:
    - std::distance
    - std::int32_t
    - begin
    - erase
    - empty
    - end
    - std::remove_if
    - shrink_to_fit
    - size
    - capacity
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void purge_peers(std::vector<peer_entry>& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:578,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:587,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:588,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:592,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:593,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:603,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 616
    functionName: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 7
    functionsReached:
    - push_back
    - count
    - libtorrent::aux::clamp
    - seconds
    - std::uint32_t
    - std::min
    - get_int
    - size
    - reserve
    - TORRENT_ASSERT
    - clear
    - libtorrent::aux::time_now
    - random
    linkageType: ''
    returnType: void
    signature: void refresh_infohashes_sample()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:74,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::port
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:75,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_entry
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: operator<(peer_entry const& lhs, peer_entry const& rhs)
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - addr::port
    - addr::address
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_entry const& lhs, peer_entry const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:118,1
    - Dst: value::reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: char::char
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' item'
    - buf
    argTypes:
    - dht_immutable_item
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::set_value
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - span<char const>::end
    - span<char const>::begin
    - std::copy
    - std::size_t
    - span<char const>::size
    - value::reset
    - char::char
    linkageType: ''
    returnType: void
    signature: void set_value(dht_immutable_item& item, span<char const> buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:129,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:132,1
    - Dst: ips::find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:133,1
    - Dst: ips::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' f'
    - ' addr'
    argTypes:
    - dht_immutable_item
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: libtorrent::dht::touch_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - hash_address
    - ips::find
    - libtorrent::aux::time_now
    - ips::set
    linkageType: ''
    returnType: void
    signature: void touch_item(dht_immutable_item& f, address const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' node_ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(std::vector<node_id> const& node_ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::immutable_item_comparator
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void immutable_item_comparator(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:151,1
    - Dst: min_distance_exp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - std::pair<node_id const, Item>
    - std::pair<node_id const, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: "operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t, std::pair<node_id
      const, Item> const& rhs) const"
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - min_distance_exp
    linkageType: ''
    returnType: bool
    signature: "bool operator()(std::pair<node_id const, Item> const& lhs\n\t\t\t,
      std::pair<node_id const, Item> const& rhs) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(immutable_item_comparator const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: immutable_item_comparator
    signature: immutable_item_comparator & operator=(immutable_item_comparator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min_element
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:178,1
    - Dst: libtorrent::dht::immutable_item_comparator
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' node_ids'
    - ' table'
    argTypes:
    - std::vector<node_id>
    - std::map<node_id, Item>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::pick_least_important_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - std::min_element
    - libtorrent::dht::begin
    - libtorrent::dht::immutable_item_comparator
    linkageType: ''
    returnType: typename std::map<node_id, Item>::const_iterator
    signature: "typename std::map<node_id, Item>::const_iterator pick_least_important_item(\n\t\tstd::vector<node_id>
      const& node_ids, std::map<node_id, Item> const& table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: libtorrent::dht::count
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(settings_interface const& settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ~dht_default_storage() override
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_default_storage() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: libtorrent::dht::dht_default_storage::dht_default_storage
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_default_storage(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: '& operator=(dht_default_storage const&)'
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_default_storage
    signature: dht_default_storage & operator=(dht_default_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::dht_default_storage::num_torrents
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_torrents() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::peers4::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    - Dst: second::peers6::size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: libtorrent::dht::dht_default_storage::num_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - second::peers6::size
    - second::peers4::size
    linkageType: ''
    returnType: size_t
    signature: size_t num_peers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<node_id>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: libtorrent::dht::dht_default_storage::update_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_ids(std::vector<node_id> const& ids) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:227,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:228,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:231,1
    - Dst: name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:233,1
    - Dst: hash_address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:242,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:243,1
    - Dst: bloom_filter::set
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:244,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:247,1
    - Dst: bloom_filter::to_string
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:248,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:252,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:253,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:254,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: rand_v6
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:258,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:260,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:262,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:265,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:267,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:273,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:277,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:280,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:281,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:283,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:284,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:285,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: std::size_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:286,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:292,1
    - Dst: peer_entry::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:300,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:301,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:302,1
    - Dst: auto::addr::address
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:303,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - ' info_hash'
    - noseed
    - scrape
    - ' requester'
    - ' peers'
    argTypes:
    - sha1_hash
    - bool
    - bool
    - address
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 304
    functionName: libtorrent::dht::dht_default_storage::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - std::uint32_t
    - std::min
    - emplace_back
    - hash_address
    - libtorrent::aux::write_endpoint
    - rand_v6
    - list
    - end
    - get_int
    - std::size_t
    - back
    - auto::addr::address
    - TORRENT_ASSERT
    - std::lower_bound
    - size
    - random
    - bloom_filter::set
    - rand_v4
    - std::count_if
    - peer_entry::addr::address
    - find
    - bloom_filter::to_string
    - resize
    - name::empty
    - is_v4
    - addr::address
    linkageType: ''
    returnType: bool
    signature: "bool get_peers(sha1_hash const& info_hash\n\t\t\t, bool const noseed,
      bool const scrape, address const& requester\n\t\t\t, entry& peers) const override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:310,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:312,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:314,1
    - Dst: string_view::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: torrent_entry*::name::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:330,1
    - Dst: string_view::substr
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:332,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:335,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:339,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:341,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:342,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:346,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ' info_hash'
    - ' endp'
    - name
    - seed
    argTypes:
    - sha1_hash
    - tcp::endpoint
    - string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 356
    functionName: libtorrent::dht::dht_default_storage::announce_peer
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - string_view::substr
    - begin
    - libtorrent::aux::is_v4
    - torrent_entry*::name::empty
    - end
    - insert
    - find
    - get_int
    - string_view::empty
    - libtorrent::aux::time_now
    - std::lower_bound
    - size
    linkageType: ''
    returnType: void
    signature: "void announce_peer(sha1_hash const& info_hash\n\t\t\t, tcp::endpoint
      const& endp\n\t\t\t, string_view name, bool const seed) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:361,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:362,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    - Dst: auto::second::value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' item'
    argTypes:
    - sha1_hash
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: libtorrent::dht::dht_default_storage::get_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - auto::second::value::get
    - end
    - bdecode
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_immutable_item(sha1_hash const& target\n\t\t\t, entry& item)
      const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:373,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:374,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:375,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:378,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:380,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:383,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:384,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:388,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:390,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:391,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' target'
    - buf
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 398
    functionName: libtorrent::dht::dht_default_storage::put_immutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - TORRENT_ASSERT
    - get_int
    - set_value
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_immutable_item(sha1_hash const& target\n\t\t\t, span<char
      const> buf\n\t\t\t, address const& addr) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:403,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' target'
    - ' seq'
    argTypes:
    - sha1_hash
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item_seq
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item_seq(sha1_hash const& target\n\t\t\t, sequence_number&
      seq) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:414,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:415,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:419,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    - Dst: value::get
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' target'
    - seq
    - force_fill
    - ' item'
    argTypes:
    - sha1_hash
    - sequence_number
    - bool
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: libtorrent::dht::dht_default_storage::get_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - value::get
    - end
    - find
    - sequence_number
    - bdecode
    linkageType: ''
    returnType: bool
    signature: "bool get_mutable_item(sha1_hash const& target\n\t\t\t, sequence_number
      const seq, bool const force_fill\n\t\t\t, entry& item) const override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:437,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:438,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:439,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:443,1
    - Dst: pick_least_important_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:445,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:448,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:449,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:453,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: span<char const>::end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:455,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:459,1
    - Dst: std::make_pair
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:460,1
    - Dst: set_value
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:470,1
    - Dst: touch_item
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - ' target'
    - buf
    - ' sig'
    - seq
    - ' pk'
    - salt
    - ' addr'
    argTypes:
    - sha1_hash
    - span<char const>
    - signature
    - sequence_number
    - public_key
    - span<char const>
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: libtorrent::dht::dht_default_storage::put_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - pick_least_important_item
    - std::move
    - std::tie
    - std::make_pair
    - erase
    - empty
    - end
    - insert
    - find
    - span<char const>::end
    - TORRENT_ASSERT
    - get_int
    - set_value
    - span<char const>::begin
    - touch_item
    - size
    linkageType: ''
    returnType: void
    signature: "void put_mutable_item(sha1_hash const& target\n\t\t\t, span<char const>
      buf\n\t\t\t, signature const& sig\n\t\t\t, sequence_number const seq\n\t\t\t,
      public_key const& pk\n\t\t\t, span<char const> salt\n\t\t\t, address const&
      addr) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:481,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:483,1
    - Dst: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:485,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:488,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: static_cast<std::ptrdiff_t>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:489,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 492
    functionName: libtorrent::dht::dht_default_storage::get_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - count
    - static_cast<std::ptrdiff_t>
    - libtorrent::aux::clamp
    - get_int
    - libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    - reinterpret_cast<char const*>
    - span<char const>
    - size
    - data
    linkageType: ''
    returnType: int
    signature: int get_infohashes_sample(entry& item) override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:497,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:500,1
    - Dst: libtorrent::dht::dht_default_storage::purge_peers
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:501,1
    - Dst: peers4::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: peers6::empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:503,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:510,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:514,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:516,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:517,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:519,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:521,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:528,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:532,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 542
    functionName: libtorrent::dht::dht_default_storage::tick
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - seconds
    - end
    - get_int
    - minutes
    - peers6::empty
    - peers4::empty
    - libtorrent::aux::time_now
    - libtorrent::dht::dht_default_storage::purge_peers
    linkageType: ''
    returnType: void
    signature: void tick() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: libtorrent::dht::dht_default_storage::counters
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dht_storage_counters
    signature: dht_storage_counters counters() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:562,1
    - Dst: std::remove_if
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:563,1
    - Dst: std::int32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:569,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:570,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: capacity
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:572,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<peer_entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: libtorrent::dht::dht_default_storage::purge_peers
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 8
    functionsReached:
    - std::distance
    - std::int32_t
    - begin
    - erase
    - empty
    - end
    - std::remove_if
    - shrink_to_fit
    - size
    - capacity
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void purge_peers(std::vector<peer_entry>& peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:578,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:579,1
    - Dst: libtorrent::aux::clamp
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:582,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:584,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:587,1
    - Dst: count
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:588,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:592,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:593,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:596,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:603,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:607,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:610,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    - Dst: size
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 616
    functionName: libtorrent::dht::dht_default_storage::refresh_infohashes_sample
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 8
    functionsReached:
    - push_back
    - count
    - libtorrent::aux::clamp
    - seconds
    - std::uint32_t
    - std::min
    - get_int
    - size
    - reserve
    - TORRENT_ASSERT
    - clear
    - libtorrent::aux::time_now
    - random
    linkageType: ''
    returnType: void
    signature: void refresh_infohashes_sample()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: libtorrent::dht::dht_storage_counters::reset
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_storage_counters::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<dht_default_storage>
      Src: /src/libtorrent/src/kademlia/dht_storage.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - settings_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: libtorrent::dht::dht_default_storage_constructor
    functionSourceFile: /src/libtorrent/src/kademlia/dht_storage.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<dht_default_storage>
    linkageType: ''
    returnType: std::unique_ptr<dht_storage_interface>
    signature: "std::unique_ptr<dht_storage_interface> dht_default_storage_constructor(\n\tsettings_interface
      const& settings)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:45,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:48,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:49,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:50,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:51,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:52,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:53,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:54,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:55,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:56,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:57,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:58,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:59,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:60,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:61,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:62,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:63,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:64,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:65,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:66,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:67,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:68,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:69,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:70,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:71,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:72,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:73,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:74,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:75,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:76,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:77,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:78,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:79,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:80,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:81,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:82,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:83,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::read_dht_settings
    functionSourceFile: /src/libtorrent/src/kademlia/dht_settings.cpp
    functionUses: 2
    functionsReached:
    - bdecode_node::int_value
    - dict_find_int
    - type
    linkageType: ''
    returnType: dht_settings
    signature: dht_settings read_dht_settings(bdecode_node const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::dict
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - dht_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: libtorrent::dht::save_dht_settings
    functionSourceFile: /src/libtorrent/src/kademlia/dht_settings.cpp
    functionUses: 5
    functionsReached:
    - entry::dict
    linkageType: ''
    returnType: entry
    signature: entry save_dht_settings(dht_settings const& settings)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:45,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:48,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:49,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:50,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:51,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:52,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:53,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:54,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:55,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:56,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:57,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:58,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:59,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:60,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:61,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:62,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:63,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:64,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:65,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:66,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:67,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:68,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:69,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:70,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:71,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:72,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:73,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:74,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:75,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:76,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:77,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:78,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:79,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:80,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:81,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:82,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:83,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::read_dht_settings
    functionSourceFile: /src/libtorrent/src/kademlia/dht_settings.cpp
    functionUses: 2
    functionsReached:
    - bdecode_node::int_value
    - dict_find_int
    - type
    linkageType: ''
    returnType: dht_settings
    signature: dht_settings read_dht_settings(bdecode_node const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::dict
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - dht_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: libtorrent::dht::save_dht_settings
    functionSourceFile: /src/libtorrent/src/kademlia/dht_settings.cpp
    functionUses: 5
    functionsReached:
    - entry::dict
    linkageType: ''
    returnType: entry
    signature: entry save_dht_settings(dht_settings const& settings)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:45,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:48,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:49,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:50,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:51,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:52,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:53,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:54,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:55,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:56,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:57,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:58,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:59,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:60,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:61,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:62,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:63,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:64,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:65,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:66,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:67,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:68,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:69,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:70,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:71,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:72,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:73,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:74,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:75,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:76,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:77,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:78,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:79,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:80,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:81,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:82,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:83,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::read_dht_settings
    functionSourceFile: /src/libtorrent/src/kademlia/dht_settings.cpp
    functionUses: 2
    functionsReached:
    - bdecode_node::int_value
    - dict_find_int
    - type
    linkageType: ''
    returnType: dht_settings
    signature: dht_settings read_dht_settings(bdecode_node const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::dict
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - dht_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: libtorrent::dht::save_dht_settings
    functionSourceFile: /src/libtorrent/src/kademlia/dht_settings.cpp
    functionUses: 5
    functionsReached:
    - entry::dict
    linkageType: ''
    returnType: entry
    signature: entry save_dht_settings(dht_settings const& settings)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:45,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:48,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:49,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:50,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:51,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:52,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:53,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:54,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:55,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:56,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:57,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:58,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:59,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:60,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:61,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:62,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:63,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:64,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:65,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:66,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:67,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:68,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:69,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:70,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:71,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:72,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:73,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:74,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:75,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:76,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:77,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:78,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:79,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:80,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:81,1
    - Dst: dict_find_int
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:82,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:83,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::read_dht_settings
    functionSourceFile: /src/libtorrent/src/kademlia/dht_settings.cpp
    functionUses: 2
    functionsReached:
    - bdecode_node::int_value
    - dict_find_int
    - type
    linkageType: ''
    returnType: dht_settings
    signature: dht_settings read_dht_settings(bdecode_node const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::dict
      Src: /src/libtorrent/src/kademlia/dht_settings.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ' settings'
    argTypes:
    - dht_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: libtorrent::dht::save_dht_settings
    functionSourceFile: /src/libtorrent/src/kademlia/dht_settings.cpp
    functionUses: 5
    functionsReached:
    - entry::dict
    linkageType: ''
    returnType: entry
    signature: entry save_dht_settings(dht_settings const& settings)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/refresh.cpp:46,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/refresh.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: libtorrent::dht::bootstrap::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr bootstrap::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:63,1
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/refresh.cpp:64,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/refresh.cpp:65,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/refresh.cpp:77,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/refresh.cpp:78,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/refresh.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: libtorrent::dht::bootstrap::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - stats_counters
    - make_id_secret
    - m_rpc::invoke
    - get_node
    - node_id::to_string
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool bootstrap::invoke(observer_ptr o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_peers::data_callback
      Src: /src/libtorrent/src/kademlia/refresh.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - ' callback'
    argTypes:
    - node
    - node_id
    - done_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: libtorrent::dht::bootstrap::bootstrap
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - get_peers::data_callback
    linkageType: ''
    returnType: void
    signature: "void bootstrap::bootstrap(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      done_callback const& callback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::bootstrap::name
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * bootstrap::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:94,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/refresh.cpp:95,1
    - Dst: add_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:102,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/refresh.cpp:102,1
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/refresh.cpp:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::bootstrap::done
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - id
    - get_node
    - libtorrent::dht::obfuscated_get_peers::done
    - target_ep
    - add_node
    linkageType: ''
    returnType: void
    signature: void bootstrap::done()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/refresh.cpp:46,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/refresh.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: libtorrent::dht::bootstrap::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr bootstrap::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:63,1
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/refresh.cpp:64,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/refresh.cpp:65,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/refresh.cpp:77,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/refresh.cpp:78,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/refresh.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: libtorrent::dht::bootstrap::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - stats_counters
    - make_id_secret
    - m_rpc::invoke
    - get_node
    - node_id::to_string
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool bootstrap::invoke(observer_ptr o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_peers::data_callback
      Src: /src/libtorrent/src/kademlia/refresh.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - ' callback'
    argTypes:
    - node
    - node_id
    - done_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: libtorrent::dht::bootstrap::bootstrap
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - get_peers::data_callback
    linkageType: ''
    returnType: void
    signature: "void bootstrap::bootstrap(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      done_callback const& callback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::bootstrap::name
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * bootstrap::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:94,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/refresh.cpp:95,1
    - Dst: add_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:102,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/refresh.cpp:102,1
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/refresh.cpp:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::bootstrap::done
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - id
    - get_node
    - libtorrent::dht::obfuscated_get_peers::done
    - target_ep
    - add_node
    linkageType: ''
    returnType: void
    signature: void bootstrap::done()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/refresh.cpp:46,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/refresh.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: libtorrent::dht::bootstrap::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr bootstrap::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:63,1
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/refresh.cpp:64,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/refresh.cpp:65,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/refresh.cpp:77,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/refresh.cpp:78,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/refresh.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: libtorrent::dht::bootstrap::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - stats_counters
    - make_id_secret
    - m_rpc::invoke
    - get_node
    - node_id::to_string
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool bootstrap::invoke(observer_ptr o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_peers::data_callback
      Src: /src/libtorrent/src/kademlia/refresh.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - ' callback'
    argTypes:
    - node
    - node_id
    - done_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: libtorrent::dht::bootstrap::bootstrap
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - get_peers::data_callback
    linkageType: ''
    returnType: void
    signature: "void bootstrap::bootstrap(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      done_callback const& callback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::bootstrap::name
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * bootstrap::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:94,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/refresh.cpp:95,1
    - Dst: add_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:102,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/refresh.cpp:102,1
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/refresh.cpp:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::bootstrap::done
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - id
    - get_node
    - libtorrent::dht::obfuscated_get_peers::done
    - target_ep
    - add_node
    linkageType: ''
    returnType: void
    signature: void bootstrap::done()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/refresh.cpp:46,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/refresh.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: libtorrent::dht::bootstrap::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr bootstrap::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:63,1
    - Dst: make_id_secret
      Src: /src/libtorrent/src/kademlia/refresh.cpp:64,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/refresh.cpp:65,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/refresh.cpp:77,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/refresh.cpp:78,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/refresh.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: libtorrent::dht::bootstrap::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - stats_counters
    - make_id_secret
    - m_rpc::invoke
    - get_node
    - node_id::to_string
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool bootstrap::invoke(observer_ptr o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_peers::data_callback
      Src: /src/libtorrent/src/kademlia/refresh.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - ' callback'
    argTypes:
    - node
    - node_id
    - done_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: libtorrent::dht::bootstrap::bootstrap
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - get_peers::data_callback
    linkageType: ''
    returnType: void
    signature: "void bootstrap::bootstrap(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      done_callback const& callback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::bootstrap::name
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * bootstrap::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:94,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/refresh.cpp:95,1
    - Dst: add_node
      Src: /src/libtorrent/src/kademlia/refresh.cpp:102,1
    - Dst: target_ep
      Src: /src/libtorrent/src/kademlia/refresh.cpp:102,1
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/refresh.cpp:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::bootstrap::done
    functionSourceFile: /src/libtorrent/src/kademlia/refresh.cpp
    functionUses: 0
    functionsReached:
    - id
    - get_node
    - libtorrent::dht::obfuscated_get_peers::done
    - target_ep
    - add_node
    linkageType: ''
    returnType: void
    signature: void bootstrap::done()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:64,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:67,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - v
    - seq
    - salt
    - out
    argTypes:
    - span<char const>
    - sequence_number
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::canonical_string
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::data
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - std::min
    - span<char const>::size
    - span<char const>::empty
    - span<char>::data
    - span<char>::size
    - bdecode
    linkageType: ''
    returnType: int
    signature: "int canonical_string(span<char const> v\n\t\t, sequence_number const
      seq\n\t\t, span<char const> salt\n\t\t, span<char> out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:64,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:67,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - v
    - seq
    - salt
    - out
    argTypes:
    - span<char const>
    - sequence_number
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::canonical_string
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::data
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - std::min
    - span<char const>::size
    - span<char const>::empty
    - span<char>::data
    - span<char>::size
    - bdecode
    linkageType: ''
    returnType: int
    signature: "int canonical_string(span<char const> v\n\t\t, sequence_number const
      seq\n\t\t, span<char const> salt\n\t\t, span<char> out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/libtorrent/src/kademlia/item.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: libtorrent::dht::item_target_id
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 21
    functionsReached:
    - hasher
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash item_target_id(span<char const> v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:95,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/item.cpp:95,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/item.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - salt
    - ' pk'
    argTypes:
    - span<char const>
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: libtorrent::dht::item_target_id
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 21
    functionsReached:
    - span<char const>::empty
    - hasher::final
    - hasher::update
    linkageType: ''
    returnType: sha1_hash
    signature: "sha1_hash item_target_id(span<char const> salt\n\t, public_key const&
      pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::canonical_string
      Src: /src/libtorrent/src/kademlia/item.cpp:107,1
    - Dst: libtorrent::dht::ed25519_verify
      Src: /src/libtorrent/src/kademlia/item.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - span<char const>
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::verify_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::canonical_string
    - libtorrent::dht::ed25519_verify
    linkageType: ''
    returnType: bool
    signature: "bool verify_mutable_item(\n\tspan<char const> v\n\t, span<char const>
      salt\n\t, sequence_number const seq\n\t, public_key const& pk\n\t, signature
      const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::canonical_string
      Src: /src/libtorrent/src/kademlia/item.cpp:126,1
    - Dst: libtorrent::dht::ed25519_sign
      Src: /src/libtorrent/src/kademlia/item.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - span<char const>
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: libtorrent::dht::sign_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::canonical_string
    - libtorrent::dht::ed25519_sign
    linkageType: ''
    returnType: signature
    signature: "signature sign_mutable_item(\n\tspan<char const> v\n\t, span<char
      const> salt\n\t, sequence_number const seq\n\t, public_key const& pk\n\t, secret_key
      const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pk'
    - salt
    argTypes:
    - public_key
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::size
    - span<char const>::data
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void item::item(public_key const& pk, span<char const> salt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void item::item(entry v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item::item(bdecode_node const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:150,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item::assign
    - std::move
    linkageType: ''
    returnType: void
    signature: "void item::item(entry v, span<char const> salt\n\t, sequence_number
      const seq, public_key const& pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void item::assign(entry v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/item.cpp:163,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:164,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/src/kademlia/item.cpp:165,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/item.cpp:165,1
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - span<char const>::data
    - std::array::begin
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - sign_mutable_item
    - span<char const>
    - libtorrent::dht::item::assign
    - bencode
    linkageType: ''
    returnType: void
    signature: "void item::assign(entry v, span<char const> salt\n\t, sequence_number
      const seq, public_key const& pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item::assign(bdecode_node const& v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:183,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/item.cpp:183,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/src/kademlia/item.cpp:184,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/item.cpp:184,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:188,1
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/item.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' v'
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - bdecode_node
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 3
    functionsReached:
    - span<char const>::data
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - verify_mutable_item
    - span<char const>::size
    - clear
    - data_section
    - span<char const>::empty
    - libtorrent::dht::item::assign
    linkageType: ''
    returnType: bool
    signature: "bool item::assign(bdecode_node const& v, span<char const> salt\n\t,
      sequence_number const seq, public_key const& pk, signature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - span<char const>::data
    - static_cast<std::size_t>
    - span<char const>::size
    - libtorrent::dht::item::assign
    linkageType: ''
    returnType: void
    signature: "void item::assign(entry v, span<char const> salt\n\t, sequence_number
      const seq\n\t, public_key const& pk, signature const& sig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:64,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:67,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - v
    - seq
    - salt
    - out
    argTypes:
    - span<char const>
    - sequence_number
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::canonical_string
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 2
    functionsReached:
    - span<char const>::data
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - std::min
    - span<char const>::size
    - span<char const>::empty
    - span<char>::data
    - span<char>::size
    - bdecode
    linkageType: ''
    returnType: int
    signature: "int canonical_string(span<char const> v\n\t\t, sequence_number const
      seq\n\t\t, span<char const> salt\n\t\t, span<char> out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:64,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:67,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - v
    - seq
    - salt
    - out
    argTypes:
    - span<char const>
    - sequence_number
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::canonical_string
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 2
    functionsReached:
    - span<char const>::data
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - std::min
    - span<char const>::size
    - span<char const>::empty
    - span<char>::data
    - span<char>::size
    - bdecode
    linkageType: ''
    returnType: int
    signature: "int canonical_string(span<char const> v\n\t\t, sequence_number const
      seq\n\t\t, span<char const> salt\n\t\t, span<char> out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/libtorrent/src/kademlia/item.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: libtorrent::dht::item_target_id
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 21
    functionsReached:
    - hasher
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash item_target_id(span<char const> v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:95,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/item.cpp:95,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/item.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - salt
    - ' pk'
    argTypes:
    - span<char const>
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: libtorrent::dht::item_target_id
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 21
    functionsReached:
    - span<char const>::empty
    - hasher::final
    - hasher::update
    linkageType: ''
    returnType: sha1_hash
    signature: "sha1_hash item_target_id(span<char const> salt\n\t, public_key const&
      pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::canonical_string
      Src: /src/libtorrent/src/kademlia/item.cpp:107,1
    - Dst: libtorrent::dht::ed25519_verify
      Src: /src/libtorrent/src/kademlia/item.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - span<char const>
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::verify_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::canonical_string
    - libtorrent::dht::ed25519_verify
    linkageType: ''
    returnType: bool
    signature: "bool verify_mutable_item(\n\tspan<char const> v\n\t, span<char const>
      salt\n\t, sequence_number const seq\n\t, public_key const& pk\n\t, signature
      const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::canonical_string
      Src: /src/libtorrent/src/kademlia/item.cpp:126,1
    - Dst: libtorrent::dht::ed25519_sign
      Src: /src/libtorrent/src/kademlia/item.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - span<char const>
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: libtorrent::dht::sign_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::canonical_string
    - libtorrent::dht::ed25519_sign
    linkageType: ''
    returnType: signature
    signature: "signature sign_mutable_item(\n\tspan<char const> v\n\t, span<char
      const> salt\n\t, sequence_number const seq\n\t, public_key const& pk\n\t, secret_key
      const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pk'
    - salt
    argTypes:
    - public_key
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::size
    - span<char const>::data
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void item::item(public_key const& pk, span<char const> salt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void item::item(entry v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item::item(bdecode_node const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:150,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item::assign
    - std::move
    linkageType: ''
    returnType: void
    signature: "void item::item(entry v, span<char const> salt\n\t, sequence_number
      const seq, public_key const& pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 5
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void item::assign(entry v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/item.cpp:163,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:164,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/src/kademlia/item.cpp:165,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/item.cpp:165,1
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 6
    functionsReached:
    - std::move
    - span<char const>::data
    - std::array::begin
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - sign_mutable_item
    - span<char const>
    - libtorrent::dht::item::assign
    - bencode
    linkageType: ''
    returnType: void
    signature: "void item::assign(entry v, span<char const> salt\n\t, sequence_number
      const seq, public_key const& pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item::assign(bdecode_node const& v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:183,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/item.cpp:183,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/src/kademlia/item.cpp:184,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/item.cpp:184,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:188,1
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/item.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' v'
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - bdecode_node
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 7
    functionsReached:
    - span<char const>::data
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - verify_mutable_item
    - span<char const>::size
    - clear
    - data_section
    - span<char const>::empty
    - libtorrent::dht::item::assign
    linkageType: ''
    returnType: bool
    signature: "bool item::assign(bdecode_node const& v, span<char const> salt\n\t,
      sequence_number const seq, public_key const& pk, signature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 8
    functionsReached:
    - std::move
    - span<char const>::data
    - static_cast<std::size_t>
    - span<char const>::size
    - libtorrent::dht::item::assign
    linkageType: ''
    returnType: void
    signature: "void item::assign(entry v, span<char const> salt\n\t, sequence_number
      const seq\n\t, public_key const& pk, signature const& sig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:64,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:67,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - v
    - seq
    - salt
    - out
    argTypes:
    - span<char const>
    - sequence_number
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::canonical_string
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 4
    functionsReached:
    - span<char const>::data
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - std::min
    - span<char const>::size
    - span<char const>::empty
    - span<char>::data
    - span<char>::size
    - bdecode
    linkageType: ''
    returnType: int
    signature: "int canonical_string(span<char const> v\n\t\t, sequence_number const
      seq\n\t\t, span<char const> salt\n\t\t, span<char> out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:64,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:67,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - v
    - seq
    - salt
    - out
    argTypes:
    - span<char const>
    - sequence_number
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::canonical_string
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 4
    functionsReached:
    - span<char const>::data
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - std::min
    - span<char const>::size
    - span<char const>::empty
    - span<char>::data
    - span<char>::size
    - bdecode
    linkageType: ''
    returnType: int
    signature: "int canonical_string(span<char const> v\n\t\t, sequence_number const
      seq\n\t\t, span<char const> salt\n\t\t, span<char> out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/libtorrent/src/kademlia/item.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: libtorrent::dht::item_target_id
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 21
    functionsReached:
    - hasher
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash item_target_id(span<char const> v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:95,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/item.cpp:95,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/item.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - salt
    - ' pk'
    argTypes:
    - span<char const>
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: libtorrent::dht::item_target_id
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 21
    functionsReached:
    - span<char const>::empty
    - hasher::final
    - hasher::update
    linkageType: ''
    returnType: sha1_hash
    signature: "sha1_hash item_target_id(span<char const> salt\n\t, public_key const&
      pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::canonical_string
      Src: /src/libtorrent/src/kademlia/item.cpp:107,1
    - Dst: libtorrent::dht::ed25519_verify
      Src: /src/libtorrent/src/kademlia/item.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - span<char const>
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::verify_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::canonical_string
    - libtorrent::dht::ed25519_verify
    linkageType: ''
    returnType: bool
    signature: "bool verify_mutable_item(\n\tspan<char const> v\n\t, span<char const>
      salt\n\t, sequence_number const seq\n\t, public_key const& pk\n\t, signature
      const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::canonical_string
      Src: /src/libtorrent/src/kademlia/item.cpp:126,1
    - Dst: libtorrent::dht::ed25519_sign
      Src: /src/libtorrent/src/kademlia/item.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - span<char const>
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: libtorrent::dht::sign_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::canonical_string
    - libtorrent::dht::ed25519_sign
    linkageType: ''
    returnType: signature
    signature: "signature sign_mutable_item(\n\tspan<char const> v\n\t, span<char
      const> salt\n\t, sequence_number const seq\n\t, public_key const& pk\n\t, secret_key
      const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pk'
    - salt
    argTypes:
    - public_key
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::size
    - span<char const>::data
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void item::item(public_key const& pk, span<char const> salt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void item::item(entry v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item::item(bdecode_node const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:150,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item::assign
    - std::move
    linkageType: ''
    returnType: void
    signature: "void item::item(entry v, span<char const> salt\n\t, sequence_number
      const seq, public_key const& pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 9
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void item::assign(entry v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/item.cpp:163,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:164,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/src/kademlia/item.cpp:165,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/item.cpp:165,1
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 10
    functionsReached:
    - std::move
    - span<char const>::data
    - std::array::begin
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - sign_mutable_item
    - span<char const>
    - libtorrent::dht::item::assign
    - bencode
    linkageType: ''
    returnType: void
    signature: "void item::assign(entry v, span<char const> salt\n\t, sequence_number
      const seq, public_key const& pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item::assign(bdecode_node const& v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:183,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/item.cpp:183,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/src/kademlia/item.cpp:184,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/item.cpp:184,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:188,1
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/item.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' v'
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - bdecode_node
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 11
    functionsReached:
    - span<char const>::data
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - verify_mutable_item
    - span<char const>::size
    - clear
    - data_section
    - span<char const>::empty
    - libtorrent::dht::item::assign
    linkageType: ''
    returnType: bool
    signature: "bool item::assign(bdecode_node const& v, span<char const> salt\n\t,
      sequence_number const seq, public_key const& pk, signature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - span<char const>::data
    - static_cast<std::size_t>
    - span<char const>::size
    - libtorrent::dht::item::assign
    linkageType: ''
    returnType: void
    signature: "void item::assign(entry v, span<char const> salt\n\t, sequence_number
      const seq\n\t, public_key const& pk, signature const& sig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:64,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:67,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - v
    - seq
    - salt
    - out
    argTypes:
    - span<char const>
    - sequence_number
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::canonical_string
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 6
    functionsReached:
    - span<char const>::data
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - std::min
    - span<char const>::size
    - span<char const>::empty
    - span<char>::data
    - span<char>::size
    - bdecode
    linkageType: ''
    returnType: int
    signature: "int canonical_string(span<char const> v\n\t\t, sequence_number const
      seq\n\t\t, span<char const> salt\n\t\t, span<char> out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: bdecode
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:62,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:64,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:66,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:67,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:69,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:70,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:71,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:72,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:73,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:75,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:76,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:77,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:79,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - v
    - seq
    - salt
    - out
    argTypes:
    - span<char const>
    - sequence_number
    - span<char const>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::canonical_string
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 6
    functionsReached:
    - span<char const>::data
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - std::copy
    - span<char const>::begin
    - std::min
    - span<char const>::size
    - span<char const>::empty
    - span<char>::data
    - span<char>::size
    - bdecode
    linkageType: ''
    returnType: int
    signature: "int canonical_string(span<char const> v\n\t\t, sequence_number const
      seq\n\t\t, span<char const> salt\n\t\t, span<char> out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher
      Src: /src/libtorrent/src/kademlia/item.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: libtorrent::dht::item_target_id
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 21
    functionsReached:
    - hasher
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash item_target_id(span<char const> v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:95,1
    - Dst: hasher::update
      Src: /src/libtorrent/src/kademlia/item.cpp:95,1
    - Dst: hasher::final
      Src: /src/libtorrent/src/kademlia/item.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - salt
    - ' pk'
    argTypes:
    - span<char const>
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: libtorrent::dht::item_target_id
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 21
    functionsReached:
    - span<char const>::empty
    - hasher::final
    - hasher::update
    linkageType: ''
    returnType: sha1_hash
    signature: "sha1_hash item_target_id(span<char const> salt\n\t, public_key const&
      pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::canonical_string
      Src: /src/libtorrent/src/kademlia/item.cpp:107,1
    - Dst: libtorrent::dht::ed25519_verify
      Src: /src/libtorrent/src/kademlia/item.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - span<char const>
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::verify_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::canonical_string
    - libtorrent::dht::ed25519_verify
    linkageType: ''
    returnType: bool
    signature: "bool verify_mutable_item(\n\tspan<char const> v\n\t, span<char const>
      salt\n\t, sequence_number const seq\n\t, public_key const& pk\n\t, signature
      const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::canonical_string
      Src: /src/libtorrent/src/kademlia/item.cpp:126,1
    - Dst: libtorrent::dht::ed25519_sign
      Src: /src/libtorrent/src/kademlia/item.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - span<char const>
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: libtorrent::dht::sign_mutable_item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::canonical_string
    - libtorrent::dht::ed25519_sign
    linkageType: ''
    returnType: signature
    signature: "signature sign_mutable_item(\n\tspan<char const> v\n\t, span<char
      const> salt\n\t, sequence_number const seq\n\t, public_key const& pk\n\t, secret_key
      const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pk'
    - salt
    argTypes:
    - public_key
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - span<char const>::size
    - span<char const>::data
    - static_cast<std::size_t>
    linkageType: ''
    returnType: void
    signature: void item::item(public_key const& pk, span<char const> salt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void item::item(entry v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item::item(bdecode_node const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:150,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::item::item
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item::assign
    - std::move
    linkageType: ''
    returnType: void
    signature: "void item::item(entry v, span<char const> salt\n\t, sequence_number
      const seq, public_key const& pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 13
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void item::assign(entry v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/src/kademlia/item.cpp:163,1
    - Dst: std::array::begin
      Src: /src/libtorrent/src/kademlia/item.cpp:163,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:164,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/src/kademlia/item.cpp:165,1
    - Dst: span<char const>
      Src: /src/libtorrent/src/kademlia/item.cpp:165,1
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:167,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sk'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 14
    functionsReached:
    - std::move
    - span<char const>::data
    - std::array::begin
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - sign_mutable_item
    - span<char const>
    - libtorrent::dht::item::assign
    - bencode
    linkageType: ''
    returnType: void
    signature: "void item::assign(entry v, span<char const> salt\n\t, sequence_number
      const seq, public_key const& pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item::assign(bdecode_node const& v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/item.cpp:183,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/item.cpp:183,1
    - Dst: verify_mutable_item
      Src: /src/libtorrent/src/kademlia/item.cpp:184,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/item.cpp:184,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/src/kademlia/item.cpp:188,1
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:189,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/item.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ' v'
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - bdecode_node
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 15
    functionsReached:
    - span<char const>::data
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - verify_mutable_item
    - span<char const>::size
    - clear
    - data_section
    - span<char const>::empty
    - libtorrent::dht::item::assign
    linkageType: ''
    returnType: bool
    signature: "bool item::assign(bdecode_node const& v, span<char const> salt\n\t,
      sequence_number const seq, public_key const& pk, signature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item::assign
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/item.cpp:206,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/item.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - v
    - salt
    - seq
    - ' pk'
    - ' sig'
    argTypes:
    - entry
    - span<char const>
    - sequence_number
    - public_key
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: libtorrent::dht::item::assign
    functionSourceFile: /src/libtorrent/src/kademlia/item.cpp
    functionUses: 16
    functionsReached:
    - std::move
    - span<char const>::data
    - static_cast<std::size_t>
    - span<char const>::size
    - libtorrent::dht::item::assign
    linkageType: ''
    returnType: void
    signature: "void item::assign(entry v, span<char const> salt\n\t, sequence_number
      const seq\n\t, public_key const& pk, signature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: libtorrent::dht::ed25519_create_seed
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    linkageType: ''
    returnType: std::array<char, 32>
    signature: std::array<char, 32> ed25519_create_seed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:53,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:53,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:54,1
    - Dst: secret_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:54,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:55,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:55,1
    - Dst: libtorrent::aux::ed25519_create_keypair
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:57,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' seed'
    argTypes:
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::ed25519_create_keypair
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - public_key::bytes::data
    - secret_key::bytes::data
    - libtorrent::aux::ed25519_create_keypair
    - std::make_tuple
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: std::tuple<public_key, secret_key>
    signature: "std::tuple<public_key, secret_key> ed25519_create_keypair(\n\t\tstd::array<char,
      32> const& seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:67,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:67,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:68,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:68,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:69,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:69,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:70,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:70,1
    - Dst: libtorrent::aux::ed25519_sign
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - msg
    - ' pk'
    - ' sk'
    argTypes:
    - span<char const>
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: libtorrent::dht::ed25519_sign
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - signature::bytes::data
    - span<char const>::data
    - span<char const>::size
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - libtorrent::aux::ed25519_sign
    linkageType: ''
    returnType: signature
    signature: "signature ed25519_sign(span<char const> msg\n\t\t, public_key const&
      pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:80,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:80,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:81,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:81,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:82,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:82,1
    - Dst: libtorrent::aux::ed25519_verify
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:84,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' sig'
    - msg
    - ' pk'
    argTypes:
    - signature
    - span<char const>
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::ed25519_verify
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - span<char const>::data
    - libtorrent::aux::ed25519_verify
    - span<char const>::size
    - bytes::data
    linkageType: ''
    returnType: bool
    signature: "bool ed25519_verify(signature const& sig\n\t\t, span<char const> msg,
      public_key const& pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:90,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:92,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:92,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:93,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:93,1
    - Dst: libtorrent::aux::ed25519_add_scalar
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' scalar'
    argTypes:
    - public_key
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - public_key::bytes::data
    - libtorrent::aux::ed25519_add_scalar
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: public_key
    signature: "public_key ed25519_add_scalar(public_key const& pk\n\t\t, std::array<char,
      32> const& scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:103,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:105,1
    - Dst: secret_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:105,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:106,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:106,1
    - Dst: libtorrent::aux::ed25519_add_scalar
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' sk'
    - ' scalar'
    argTypes:
    - secret_key
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: libtorrent::dht::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - secret_key::bytes::data
    - libtorrent::aux::ed25519_add_scalar
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: secret_key
    signature: "secret_key ed25519_add_scalar(secret_key const& sk\n\t\t, std::array<char,
      32> const& scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:118,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:118,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:119,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:119,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:120,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:120,1
    - Dst: libtorrent::aux::ed25519_key_exchange
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' sk'
    argTypes:
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::ed25519_key_exchange
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - std::array::data
    - libtorrent::aux::ed25519_key_exchange
    - bytes::data
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: std::array<char, 32>
    signature: "std::array<char, 32> ed25519_key_exchange(\n\t\tpublic_key const&
      pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: libtorrent::dht::ed25519_create_seed
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    linkageType: ''
    returnType: std::array<char, 32>
    signature: std::array<char, 32> ed25519_create_seed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:53,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:53,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:54,1
    - Dst: secret_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:54,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:55,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:55,1
    - Dst: libtorrent::aux::ed25519_create_keypair
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:57,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' seed'
    argTypes:
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::ed25519_create_keypair
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - public_key::bytes::data
    - secret_key::bytes::data
    - libtorrent::aux::ed25519_create_keypair
    - std::make_tuple
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: std::tuple<public_key, secret_key>
    signature: "std::tuple<public_key, secret_key> ed25519_create_keypair(\n\t\tstd::array<char,
      32> const& seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:67,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:67,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:68,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:68,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:69,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:69,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:70,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:70,1
    - Dst: libtorrent::aux::ed25519_sign
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - msg
    - ' pk'
    - ' sk'
    argTypes:
    - span<char const>
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: libtorrent::dht::ed25519_sign
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - signature::bytes::data
    - span<char const>::data
    - span<char const>::size
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - libtorrent::aux::ed25519_sign
    linkageType: ''
    returnType: signature
    signature: "signature ed25519_sign(span<char const> msg\n\t\t, public_key const&
      pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:80,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:80,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:81,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:81,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:82,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:82,1
    - Dst: libtorrent::aux::ed25519_verify
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:84,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' sig'
    - msg
    - ' pk'
    argTypes:
    - signature
    - span<char const>
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::ed25519_verify
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - span<char const>::data
    - libtorrent::aux::ed25519_verify
    - span<char const>::size
    - bytes::data
    linkageType: ''
    returnType: bool
    signature: "bool ed25519_verify(signature const& sig\n\t\t, span<char const> msg,
      public_key const& pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:90,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:92,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:92,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:93,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:93,1
    - Dst: libtorrent::aux::ed25519_add_scalar
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' scalar'
    argTypes:
    - public_key
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - public_key::bytes::data
    - libtorrent::aux::ed25519_add_scalar
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: public_key
    signature: "public_key ed25519_add_scalar(public_key const& pk\n\t\t, std::array<char,
      32> const& scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:103,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:105,1
    - Dst: secret_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:105,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:106,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:106,1
    - Dst: libtorrent::aux::ed25519_add_scalar
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' sk'
    - ' scalar'
    argTypes:
    - secret_key
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: libtorrent::dht::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - secret_key::bytes::data
    - libtorrent::aux::ed25519_add_scalar
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: secret_key
    signature: "secret_key ed25519_add_scalar(secret_key const& sk\n\t\t, std::array<char,
      32> const& scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:118,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:118,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:119,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:119,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:120,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:120,1
    - Dst: libtorrent::aux::ed25519_key_exchange
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' sk'
    argTypes:
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::ed25519_key_exchange
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - std::array::data
    - libtorrent::aux::ed25519_key_exchange
    - bytes::data
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: std::array<char, 32>
    signature: "std::array<char, 32> ed25519_key_exchange(\n\t\tpublic_key const&
      pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: libtorrent::dht::ed25519_create_seed
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    linkageType: ''
    returnType: std::array<char, 32>
    signature: std::array<char, 32> ed25519_create_seed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:53,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:53,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:54,1
    - Dst: secret_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:54,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:55,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:55,1
    - Dst: libtorrent::aux::ed25519_create_keypair
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:57,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' seed'
    argTypes:
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::ed25519_create_keypair
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - public_key::bytes::data
    - secret_key::bytes::data
    - libtorrent::aux::ed25519_create_keypair
    - std::make_tuple
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: std::tuple<public_key, secret_key>
    signature: "std::tuple<public_key, secret_key> ed25519_create_keypair(\n\t\tstd::array<char,
      32> const& seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:67,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:67,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:68,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:68,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:69,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:69,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:70,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:70,1
    - Dst: libtorrent::aux::ed25519_sign
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - msg
    - ' pk'
    - ' sk'
    argTypes:
    - span<char const>
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: libtorrent::dht::ed25519_sign
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - signature::bytes::data
    - span<char const>::data
    - span<char const>::size
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - libtorrent::aux::ed25519_sign
    linkageType: ''
    returnType: signature
    signature: "signature ed25519_sign(span<char const> msg\n\t\t, public_key const&
      pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:80,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:80,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:81,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:81,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:82,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:82,1
    - Dst: libtorrent::aux::ed25519_verify
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:84,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' sig'
    - msg
    - ' pk'
    argTypes:
    - signature
    - span<char const>
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::ed25519_verify
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - span<char const>::data
    - libtorrent::aux::ed25519_verify
    - span<char const>::size
    - bytes::data
    linkageType: ''
    returnType: bool
    signature: "bool ed25519_verify(signature const& sig\n\t\t, span<char const> msg,
      public_key const& pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:90,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:92,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:92,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:93,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:93,1
    - Dst: libtorrent::aux::ed25519_add_scalar
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' scalar'
    argTypes:
    - public_key
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - public_key::bytes::data
    - libtorrent::aux::ed25519_add_scalar
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: public_key
    signature: "public_key ed25519_add_scalar(public_key const& pk\n\t\t, std::array<char,
      32> const& scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:103,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:105,1
    - Dst: secret_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:105,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:106,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:106,1
    - Dst: libtorrent::aux::ed25519_add_scalar
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' sk'
    - ' scalar'
    argTypes:
    - secret_key
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: libtorrent::dht::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - secret_key::bytes::data
    - libtorrent::aux::ed25519_add_scalar
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: secret_key
    signature: "secret_key ed25519_add_scalar(secret_key const& sk\n\t\t, std::array<char,
      32> const& scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:118,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:118,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:119,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:119,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:120,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:120,1
    - Dst: libtorrent::aux::ed25519_key_exchange
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' sk'
    argTypes:
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::ed25519_key_exchange
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - std::array::data
    - libtorrent::aux::ed25519_key_exchange
    - bytes::data
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: std::array<char, 32>
    signature: "std::array<char, 32> ed25519_key_exchange(\n\t\tpublic_key const&
      pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypto_random_bytes
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: libtorrent::dht::ed25519_create_seed
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::crypto_random_bytes
    linkageType: ''
    returnType: std::array<char, 32>
    signature: std::array<char, 32> ed25519_create_seed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:53,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:53,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:54,1
    - Dst: secret_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:54,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:55,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:55,1
    - Dst: libtorrent::aux::ed25519_create_keypair
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:57,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' seed'
    argTypes:
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::ed25519_create_keypair
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - public_key::bytes::data
    - secret_key::bytes::data
    - libtorrent::aux::ed25519_create_keypair
    - std::make_tuple
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: std::tuple<public_key, secret_key>
    signature: "std::tuple<public_key, secret_key> ed25519_create_keypair(\n\t\tstd::array<char,
      32> const& seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:67,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:67,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:68,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:68,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:69,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:69,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:70,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:70,1
    - Dst: libtorrent::aux::ed25519_sign
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:72,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - msg
    - ' pk'
    - ' sk'
    argTypes:
    - span<char const>
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: libtorrent::dht::ed25519_sign
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - signature::bytes::data
    - span<char const>::data
    - span<char const>::size
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - libtorrent::aux::ed25519_sign
    linkageType: ''
    returnType: signature
    signature: "signature ed25519_sign(span<char const> msg\n\t\t, public_key const&
      pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:80,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:80,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:81,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:81,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:82,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:82,1
    - Dst: libtorrent::aux::ed25519_verify
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:84,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' sig'
    - msg
    - ' pk'
    argTypes:
    - signature
    - span<char const>
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::ed25519_verify
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 4
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - span<char const>::data
    - libtorrent::aux::ed25519_verify
    - span<char const>::size
    - bytes::data
    linkageType: ''
    returnType: bool
    signature: "bool ed25519_verify(signature const& sig\n\t\t, span<char const> msg,
      public_key const& pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:90,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:92,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:92,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:93,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:93,1
    - Dst: libtorrent::aux::ed25519_add_scalar
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' scalar'
    argTypes:
    - public_key
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - public_key::bytes::data
    - libtorrent::aux::ed25519_add_scalar
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: public_key
    signature: "public_key ed25519_add_scalar(public_key const& pk\n\t\t, std::array<char,
      32> const& scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:103,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:105,1
    - Dst: secret_key::bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:105,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:106,1
    - Dst: data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:106,1
    - Dst: libtorrent::aux::ed25519_add_scalar
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' sk'
    - ' scalar'
    argTypes:
    - secret_key
    - std::array<char, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: libtorrent::dht::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - secret_key::bytes::data
    - libtorrent::aux::ed25519_add_scalar
    - bytes::data
    - reinterpret_cast<unsigned char*>
    - data
    linkageType: ''
    returnType: secret_key
    signature: "secret_key ed25519_add_scalar(secret_key const& sk\n\t\t, std::array<char,
      32> const& scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:118,1
    - Dst: std::array::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:118,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:119,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:119,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:120,1
    - Dst: bytes::data
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:120,1
    - Dst: libtorrent::aux::ed25519_key_exchange
      Src: /src/libtorrent/src/kademlia/ed25519.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' pk'
    - ' sk'
    argTypes:
    - public_key
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::ed25519_key_exchange
    functionSourceFile: /src/libtorrent/src/kademlia/ed25519.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - std::array::data
    - libtorrent::aux::ed25519_key_exchange
    - bytes::data
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: std::array<char, 32>
    signature: "std::array<char, 32> ed25519_key_exchange(\n\t\tpublic_key const&
      pk, secret_key const& sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/put_data.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' dht_node'
    - callback
    argTypes:
    - node
    - put_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: libtorrent::dht::put_data::put_data
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void put_data::put_data(node& dht_node, put_callback callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::put_data::name
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * put_data::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/kademlia/put_data.cpp:55,1
    - Dst: add_requests
      Src: /src/libtorrent/src/kademlia/put_data.cpp:56,1
    - Dst: libtorrent::dht::put_data::done
      Src: /src/libtorrent/src/kademlia/put_data.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: libtorrent::dht::put_data::start
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - add_requests
    - libtorrent::dht::put_data::done
    - init
    linkageType: ''
    returnType: void
    signature: void put_data::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/put_data.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/put_data.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' targets'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::put_data::set_targets
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - m_rpc::allocate_observer
    - std::move
    - self
    - first::ep
    linkageType: ''
    returnType: void
    signature: void put_data::set_targets(std::vector<std::pair<node_entry, std::string>>
      const& targets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/put_data.cpp:80,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: libtorrent::dht::put_data::name
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: num_responses
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: num_timeouts
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: m_put_callback
      Src: /src/libtorrent/src/kademlia/put_data.cpp:84,1
    - Dst: num_responses
      Src: /src/libtorrent/src/kademlia/put_data.cpp:84,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/put_data.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::put_data::done
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - id
    - num_timeouts
    - get_node
    - libtorrent::dht::put_data::name
    - num_responses
    - m_put_callback
    linkageType: ''
    returnType: void
    signature: void put_data::done()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<put_data_observer*>
      Src: /src/libtorrent/src/kademlia/put_data.cpp:94,1
    - Dst: observer_ptr::get
      Src: /src/libtorrent/src/kademlia/put_data.cpp:94,1
    - Dst: value
      Src: /src/libtorrent/src/kademlia/put_data.cpp:100,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/put_data.cpp:102,1
    - Dst: pk
      Src: /src/libtorrent/src/kademlia/put_data.cpp:104,1
    - Dst: seq
      Src: /src/libtorrent/src/kademlia/put_data.cpp:105,1
    - Dst: sig
      Src: /src/libtorrent/src/kademlia/put_data.cpp:106,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/put_data.cpp:107,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/put_data.cpp:109,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/put_data.cpp:113,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/put_data.cpp:115,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/put_data.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::put_data::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - salt
    - stats_counters
    - pk
    - sig
    - is_mutable
    - m_rpc::invoke
    - static_cast<put_data_observer*>
    - seq
    - value
    - observer_ptr::get
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool put_data::invoke(observer_ptr o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/put_data.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' dht_node'
    - callback
    argTypes:
    - node
    - put_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: libtorrent::dht::put_data::put_data
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void put_data::put_data(node& dht_node, put_callback callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::put_data::name
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * put_data::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/kademlia/put_data.cpp:55,1
    - Dst: add_requests
      Src: /src/libtorrent/src/kademlia/put_data.cpp:56,1
    - Dst: libtorrent::dht::put_data::done
      Src: /src/libtorrent/src/kademlia/put_data.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: libtorrent::dht::put_data::start
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - add_requests
    - libtorrent::dht::put_data::done
    - init
    linkageType: ''
    returnType: void
    signature: void put_data::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/put_data.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/put_data.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' targets'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::put_data::set_targets
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - m_rpc::allocate_observer
    - std::move
    - self
    - first::ep
    linkageType: ''
    returnType: void
    signature: void put_data::set_targets(std::vector<std::pair<node_entry, std::string>>
      const& targets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/put_data.cpp:80,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: libtorrent::dht::put_data::name
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: num_responses
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: num_timeouts
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: m_put_callback
      Src: /src/libtorrent/src/kademlia/put_data.cpp:84,1
    - Dst: num_responses
      Src: /src/libtorrent/src/kademlia/put_data.cpp:84,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/put_data.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::put_data::done
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - id
    - num_timeouts
    - get_node
    - libtorrent::dht::put_data::name
    - num_responses
    - m_put_callback
    linkageType: ''
    returnType: void
    signature: void put_data::done()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<put_data_observer*>
      Src: /src/libtorrent/src/kademlia/put_data.cpp:94,1
    - Dst: observer_ptr::get
      Src: /src/libtorrent/src/kademlia/put_data.cpp:94,1
    - Dst: value
      Src: /src/libtorrent/src/kademlia/put_data.cpp:100,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/put_data.cpp:102,1
    - Dst: pk
      Src: /src/libtorrent/src/kademlia/put_data.cpp:104,1
    - Dst: seq
      Src: /src/libtorrent/src/kademlia/put_data.cpp:105,1
    - Dst: sig
      Src: /src/libtorrent/src/kademlia/put_data.cpp:106,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/put_data.cpp:107,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/put_data.cpp:109,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/put_data.cpp:113,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/put_data.cpp:115,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/put_data.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::put_data::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - salt
    - stats_counters
    - pk
    - sig
    - is_mutable
    - m_rpc::invoke
    - static_cast<put_data_observer*>
    - seq
    - value
    - observer_ptr::get
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool put_data::invoke(observer_ptr o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/put_data.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' dht_node'
    - callback
    argTypes:
    - node
    - put_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: libtorrent::dht::put_data::put_data
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void put_data::put_data(node& dht_node, put_callback callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::put_data::name
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * put_data::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/kademlia/put_data.cpp:55,1
    - Dst: add_requests
      Src: /src/libtorrent/src/kademlia/put_data.cpp:56,1
    - Dst: libtorrent::dht::put_data::done
      Src: /src/libtorrent/src/kademlia/put_data.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: libtorrent::dht::put_data::start
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - add_requests
    - libtorrent::dht::put_data::done
    - init
    linkageType: ''
    returnType: void
    signature: void put_data::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/put_data.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/put_data.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' targets'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::put_data::set_targets
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - m_rpc::allocate_observer
    - std::move
    - self
    - first::ep
    linkageType: ''
    returnType: void
    signature: void put_data::set_targets(std::vector<std::pair<node_entry, std::string>>
      const& targets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/put_data.cpp:80,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: libtorrent::dht::put_data::name
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: num_responses
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: num_timeouts
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: m_put_callback
      Src: /src/libtorrent/src/kademlia/put_data.cpp:84,1
    - Dst: num_responses
      Src: /src/libtorrent/src/kademlia/put_data.cpp:84,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/put_data.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::put_data::done
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - id
    - num_timeouts
    - get_node
    - libtorrent::dht::put_data::name
    - num_responses
    - m_put_callback
    linkageType: ''
    returnType: void
    signature: void put_data::done()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<put_data_observer*>
      Src: /src/libtorrent/src/kademlia/put_data.cpp:94,1
    - Dst: observer_ptr::get
      Src: /src/libtorrent/src/kademlia/put_data.cpp:94,1
    - Dst: value
      Src: /src/libtorrent/src/kademlia/put_data.cpp:100,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/put_data.cpp:102,1
    - Dst: pk
      Src: /src/libtorrent/src/kademlia/put_data.cpp:104,1
    - Dst: seq
      Src: /src/libtorrent/src/kademlia/put_data.cpp:105,1
    - Dst: sig
      Src: /src/libtorrent/src/kademlia/put_data.cpp:106,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/put_data.cpp:107,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/put_data.cpp:109,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/put_data.cpp:113,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/put_data.cpp:115,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/put_data.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::put_data::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - salt
    - stats_counters
    - pk
    - sig
    - is_mutable
    - m_rpc::invoke
    - static_cast<put_data_observer*>
    - seq
    - value
    - observer_ptr::get
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool put_data::invoke(observer_ptr o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/put_data.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' dht_node'
    - callback
    argTypes:
    - node
    - put_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: libtorrent::dht::put_data::put_data
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void put_data::put_data(node& dht_node, put_callback callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::put_data::name
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * put_data::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libtorrent/src/kademlia/put_data.cpp:55,1
    - Dst: add_requests
      Src: /src/libtorrent/src/kademlia/put_data.cpp:56,1
    - Dst: libtorrent::dht::put_data::done
      Src: /src/libtorrent/src/kademlia/put_data.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: libtorrent::dht::put_data::start
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - add_requests
    - libtorrent::dht::put_data::done
    - init
    linkageType: ''
    returnType: void
    signature: void put_data::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: first::ep
      Src: /src/libtorrent/src/kademlia/put_data.cpp:64,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/put_data.cpp:71,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/put_data.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' targets'
    argTypes:
    - std::vector<std::pair<node_entry, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::put_data::set_targets
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - m_rpc::allocate_observer
    - std::move
    - self
    - first::ep
    linkageType: ''
    returnType: void
    signature: void put_data::set_targets(std::vector<std::pair<node_entry, std::string>>
      const& targets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/put_data.cpp:80,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: libtorrent::dht::put_data::name
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: num_responses
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: num_timeouts
      Src: /src/libtorrent/src/kademlia/put_data.cpp:81,1
    - Dst: m_put_callback
      Src: /src/libtorrent/src/kademlia/put_data.cpp:84,1
    - Dst: num_responses
      Src: /src/libtorrent/src/kademlia/put_data.cpp:84,1
    - Dst: libtorrent::dht::traversal_algorithm::done
      Src: /src/libtorrent/src/kademlia/put_data.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::put_data::done
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::traversal_algorithm::done
    - id
    - num_timeouts
    - get_node
    - libtorrent::dht::put_data::name
    - num_responses
    - m_put_callback
    linkageType: ''
    returnType: void
    signature: void put_data::done()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<put_data_observer*>
      Src: /src/libtorrent/src/kademlia/put_data.cpp:94,1
    - Dst: observer_ptr::get
      Src: /src/libtorrent/src/kademlia/put_data.cpp:94,1
    - Dst: value
      Src: /src/libtorrent/src/kademlia/put_data.cpp:100,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/put_data.cpp:102,1
    - Dst: pk
      Src: /src/libtorrent/src/kademlia/put_data.cpp:104,1
    - Dst: seq
      Src: /src/libtorrent/src/kademlia/put_data.cpp:105,1
    - Dst: sig
      Src: /src/libtorrent/src/kademlia/put_data.cpp:106,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/put_data.cpp:107,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/put_data.cpp:109,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/put_data.cpp:113,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/put_data.cpp:115,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/put_data.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::put_data::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/put_data.cpp
    functionUses: 0
    functionsReached:
    - salt
    - stats_counters
    - pk
    - sig
    - is_mutable
    - m_rpc::invoke
    - static_cast<put_data_observer*>
    - seq
    - value
    - observer_ptr::get
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool put_data::invoke(observer_ptr o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' container'
    - ' key'
    argTypes:
    - T
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::erase_one
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::end
    - erase
    - find
    linkageType: ''
    returnType: void
    signature: void erase_one(T& container, K const& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' settings'
    - ' id'
    - ' addr'
    argTypes:
    - aux::session_settings
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::verify_node_address
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::verify_id
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool verify_node_address(aux::session_settings const& settings\n\t\t,
      node_id const& id, address const& addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' container'
    - ' key'
    argTypes:
    - T
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::erase_one
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::end
    - erase
    - find
    linkageType: ''
    returnType: void
    signature: void erase_one(T& container, K const& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' settings'
    - ' id'
    - ' addr'
    argTypes:
    - aux::session_settings
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::verify_node_address
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::verify_id
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool verify_node_address(aux::session_settings const& settings\n\t\t,
      node_id const& id, address const& addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:89,1
    - Dst: libtorrent::dht::ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:90,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:90,1
    - Dst: libtorrent::dht::ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:92,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: libtorrent::dht::ip_set::insert
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - is_v6
    - libtorrent::dht::ip_set::insert
    - to_v6
    - to_v4
    linkageType: ''
    returnType: void
    signature: void ip_set::insert(address const& addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:97,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::ip_set::exists
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - end
    - to_v4
    - find
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool ip_set::exists(address const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:105,1
    - Dst: erase_one
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:106,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:106,1
    - Dst: erase_one
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:108,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: libtorrent::dht::ip_set::erase
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - erase_one
    - to_v6
    - to_v4
    linkageType: ''
    returnType: void
    signature: void ip_set::erase(address const& addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:115,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:116,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - bucket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: libtorrent::dht::mostly_verified_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::dht::size
    - libtorrent::dht::end
    - std::count_if
    - libtorrent::dht::begin
    linkageType: ''
    returnType: bool
    signature: bool mostly_verified_nodes(bucket_t const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:122,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:123,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:125,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:127,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:127,1
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:135,1
    - Dst: libtorrent::aux::little_endian_to_host
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:135,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:136,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:137,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:139,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:140,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - bucket_idx
    - last_bucket
    - bucket_size
    - nid
    argTypes:
    - int
    - bool
    - int
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::classify_prefix
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_VAL
    - static_cast<std::uint32_t>
    - libtorrent::aux::count_leading_zeros
    - libtorrent::aux::little_endian_to_host
    linkageType: ''
    returnType: std::uint8_t
    signature: "std::uint8_t classify_prefix(int const bucket_idx, bool const last_bucket\n\t,
      int const bucket_size, node_id nid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:163,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:163,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:167,1
    - Dst: libtorrent::dht::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:168,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:168,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:170,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:174,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:174,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:176,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:176,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:189,1
    - Dst: first
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:194,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:196,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:196,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:200,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:200,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:201,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:204,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:212,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:227,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:227,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:235,1
    - Dst: dht_logger*::should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:238,1
    - Dst: dht_logger*::log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:240,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:243,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:245,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:249,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:249,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:251,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 7
    argNames:
    - ' e'
    - ' b'
    - ' ips'
    - bucket_index
    - bucket_size_limit
    - last_bucket
    - log
    argTypes:
    - node_entry
    - bucket_t
    - ip_set
    - int
    - int
    - bool
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 255
    functionName: libtorrent::dht::replace_node_impl
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - libtorrent::dht::empty
    - std::vector::begin
    - libtorrent::dht::begin
    - auto::addr
    - std::vector::end
    - push_back
    - libtorrent::dht::size
    - first
    - dht_logger*::should_log
    - libtorrent::dht::addr
    - print_address
    - libtorrent::dht::classify_prefix
    - libtorrent::aux::to_hex
    - erase
    - std::vector::insert
    - TORRENT_ASSERT
    - auto::fail_count
    - auto::size
    - libtorrent::dht::fail_count
    - std::max_element
    - std::vector::empty
    - insert
    - dht_logger*::log
    linkageType: ''
    returnType: routing_table::add_node_status_t
    signature: "routing_table::add_node_status_t replace_node_impl(node_entry const&
      e\n\t, bucket_t& b, ip_set& ips, int const bucket_index\n\t, int const bucket_size_limit,
      bool const last_bucket\n#ifndef TORRENT_DISABLE_LOGGING\n\t, dht_logger* log\n#endif\n\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:279,1
    - Dst: aux::array::end_index
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: libtorrent::dht::routing_table::bucket_limit
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - aux::array::end_index
    - get_bool
    linkageType: ''
    returnType: int
    signature: int routing_table::bucket_limit(int bucket) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:293,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:293,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:294,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:298,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:299,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::vector<dht_routing_bucket>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: libtorrent::dht::routing_table::status
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - libtorrent::dht::routing_table::size
    - replacements::size
    - live_nodes::size
    - clear
    linkageType: ''
    returnType: void
    signature: void routing_table::status(std::vector<dht_routing_bucket>& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:311,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:311,1
    - Dst: libtorrent::dht::routing_table::num_global_nodes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:319,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:324,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:325,1
    - Dst: dht_routing_table::push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 331
    functionName: libtorrent::dht::routing_table::status
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::size
    - std::tie
    - replacements::size
    - dht_routing_table::push_back
    - live_nodes::size
    - libtorrent::dht::routing_table::num_global_nodes
    linkageType: ''
    returnType: void
    signature: void routing_table::status(session_status& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:341,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: live_nodes::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:343,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:345,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: libtorrent::dht::routing_table::size
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::count_if
    - confirmed
    - replacements::size
    - live_nodes::begin
    - live_nodes::size
    - std::make_tuple
    - live_nodes::end
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> routing_table::size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes::end_index
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:356,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:364,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 366
    functionName: libtorrent::dht::routing_table::num_global_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - std::int64_t
    - live_nodes::end_index
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t routing_table::num_global_nodes() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:370,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:371,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:376,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:377,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: libtorrent::dht::routing_table::depth
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - live_nodes::size
    - libtorrent::dht::routing_table::size
    linkageType: ''
    returnType: int
    signature: int routing_table::depth() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:401,1
    - Dst: rend
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:406,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:409,1
    - Dst: rbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:421,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: auto::replacements::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:428,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:428,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:429,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:441,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 444
    functionName: libtorrent::dht::routing_table::next_refresh
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::distance
    - auto::replacements::begin
    - auto::replacements::end
    - rbegin
    - TORRENT_ASSERT
    - rend
    - min_time
    - pinged
    - auto::live_nodes::size
    - libtorrent::aux::time_now
    - std::find_if
    linkageType: ''
    returnType: node_entry
    signature: node_entry * routing_table::next_refresh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:450,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:453,1
    - Dst: routing_table_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:453,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:457,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:457,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:458,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:458,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:459,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:461,1
    - Dst: std::advance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: libtorrent::dht::routing_table::find_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - libtorrent::dht::routing_table::size
    - std::advance
    - begin
    - routing_table_node
    - std::min
    - TORRENT_ASSERT
    - distance_exp
    linkageType: ''
    returnType: routing_table::table_t::iterator
    signature: routing_table::table_t::iterator routing_table::find_bucket(node_id
      const& id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:472,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:477,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:477,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:479,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:479,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 494
    functionName: libtorrent::dht::compare_ip_cidr
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - std::memcpy
    - std::uint32_t
    - to_v4
    - TORRENT_ASSERT
    - to_v6
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool compare_ip_cidr(address const& lhs, address const& rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:499,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:499,1
    - Dst: auto::replacements::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:501,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:501,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:503,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:503,1
    - Dst: auto::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:504,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:504,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:505,1
    - Dst: auto::live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:507,1
    - Dst: auto::live_nodes::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:507,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:509,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:509,1
    - Dst: auto::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:510,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:510,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:511,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:515,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: libtorrent::dht::routing_table::find_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - auto::live_nodes::end
    - auto::replacements::begin
    - begin
    - auto::replacements::end
    - end
    - auto::addr
    - auto::live_nodes::begin
    - port
    - std::make_tuple
    - auto::port
    - address
    linkageType: ''
    returnType: std::tuple<node_entry*, routing_table::table_t::iterator, bucket_t*>
    signature: std::tuple<node_entry*, routing_table::table_t::iterator, bucket_t*>
      routing_table::find_node(udp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:526,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:532,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:532,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:535,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:536,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - table_t::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 539
    functionName: libtorrent::dht::routing_table::fill_from_replacements
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::bind
    - std::distance
    - push_back
    - libtorrent::dht::routing_table::size
    - begin
    - erase
    - empty
    - end
    - std::sort
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void routing_table::fill_from_replacements(table_t::iterator bucket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:543,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:543,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:544,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:546,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 548
    functionName: libtorrent::dht::routing_table::prune_empty_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - erase
    - empty
    - end
    - back
    linkageType: ''
    returnType: void
    signature: void routing_table::prune_empty_bucket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bucket_t*::data
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:552,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:554,1
    - Dst: bucket_t*::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:554,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: exists
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: node_entry*::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:556,1
    - Dst: node_entry*::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:556,1
    - Dst: bucket_t*::erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:557,1
    - Dst: bucket_t*::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - n
    - b
    argTypes:
    - node_entry*
    - bucket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 558
    functionName: libtorrent::dht::routing_table::remove_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - bucket_t*::data
    - bucket_t*::size
    - bucket_t*::begin
    - erase
    - TORRENT_ASSERT
    - exists
    - bucket_t*::erase
    - node_entry*::addr
    linkageType: ''
    returnType: void
    signature: void routing_table::remove_node(node_entry* n, bucket_t* b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:562,1
    - Dst: libtorrent::dht::routing_table::split_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:568,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:575,1
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:581,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:590,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:595,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:595,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:597,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:597,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 606
    functionName: libtorrent::dht::routing_table::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - libtorrent::dht::routing_table::split_bucket
    - libtorrent::dht::routing_table::size
    - libtorrent::dht::routing_table::add_node_impl
    - erase
    - empty
    - end
    - TORRENT_ASSERT
    - back
    linkageType: ''
    returnType: bool
    signature: bool routing_table::add_node(node_entry const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - b
    - ' id'
    - bucket_index
    argTypes:
    - span<node_entry const>
    - node_id
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 622
    functionName: libtorrent::dht::all_in_same_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool all_in_same_bucket(span<node_entry const> b, node_id const& id,
      int const bucket_index)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: native_endpoint
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:631,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:631,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: exists
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:639,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:639,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: libtorrent::dht::routing_table::find_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:659,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:662,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:664,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:676,1
    - Dst: node_entry*::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:678,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:683,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:684,1
    - Dst: node_entry*::id::is_all_zeros
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:687,1
    - Dst: libtorrent::dht::routing_table::remove_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:691,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:693,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:698,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:703,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:707,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:709,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: libtorrent::dht::routing_table::remove_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:714,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:715,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:720,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:723,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:724,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:727,1
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:735,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:738,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:738,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:742,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:750,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: bucket_t::iterator::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: node_entry::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: bucket_t::iterator::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:760,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:770,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: bucket_t::iterator::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: node_entry::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: bucket_t::iterator::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:779,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:781,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:781,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:782,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:785,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:788,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:790,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:793,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:800,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:802,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:816,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:816,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:818,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:818,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:819,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:820,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:820,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:833,1
    - Dst: std::next
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:839,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:839,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:840,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:841,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:842,1
    - Dst: node_entry::confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:843,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: std::prev
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:845,1
    - Dst: node_entry::confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:849,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:851,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:871,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: bucket_t::iterator::set_pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:879,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:885,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:886,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:888,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:895,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:895,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:896,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:899,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:899,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:900,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:901,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:901,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 126
    argCount: 1
    argNames:
    - e
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 903
    functionName: libtorrent::dht::routing_table::add_node_impl
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - bucket_t::iterator::addr
    - begin
    - libtorrent::dht::routing_table::fill_from_replacements
    - libtorrent::dht::routing_table::find_node
    - node_entry*::id::is_all_zeros
    - empty
    - mostly_verified_nodes
    - native_endpoint
    - compare_ip_cidr
    - get_bool
    - node_entry::ep
    - minutes
    - min_time
    - addr
    - std::next
    - node_entry::confirmed
    - node_entry::addr
    - libtorrent::aux::time_now
    - libtorrent::dht::routing_table::bucket_limit
    - push_back
    - end
    - log
    - replace_node_impl
    - libtorrent::dht::routing_table::remove_node
    - print_address
    - bucket_t::iterator::set_pinged
    - libtorrent::aux::to_hex
    - libtorrent::dht::routing_table::prune_empty_bucket
    - erase
    - libtorrent::dht::routing_table::find_bucket
    - std::prev
    - TORRENT_ASSERT
    - node_entry*::update_rtt
    - reserve
    - std::find_if
    - bucket_t::iterator::update_rtt
    - std::distance
    - libtorrent::dht::routing_table::size
    - bucket_t::iterator::ep
    - std::tie
    - node_entry::pinged
    - insert
    - all_in_same_bucket
    - find
    - exists
    - node_entry::port
    - pinged
    - bucket_t::iterator::port
    - should_log
    linkageType: ''
    returnType: routing_table::add_node_status_t
    signature: routing_table::add_node_status_t routing_table::add_node_impl(node_entry
      e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:909,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:910,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:915,1
    - Dst: routing_table_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:915,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:916,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:917,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:924,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:925,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:925,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:927,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:934,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:935,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:938,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:941,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:942,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:944,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:947,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:953,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:953,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:955,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:957,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:957,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:962,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:967,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:967,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:968,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:970,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:972,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 974
    functionName: libtorrent::dht::routing_table::split_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - push_back
    - libtorrent::dht::routing_table::size
    - begin
    - erase
    - end
    - routing_table_node
    - TORRENT_ASSERT
    - distance_exp
    - resize
    - back
    - auto::pinged
    linkageType: ''
    returnType: void
    signature: void routing_table::split_bucket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:980,1
    - Dst: table_t::swap
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:984,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:990,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 996
    functionName: libtorrent::dht::routing_table::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - clear
    - table_t::swap
    linkageType: ''
    returnType: void
    signature: void routing_table::update_node_id(node_id const& id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: live_cb
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1006,1
    - Dst: replacements_cb
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - live_cb
    - replacements_cb
    argTypes:
    - std::function<void(node_entry const&)>
    - std::function<void(node_entry const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1014
    functionName: libtorrent::dht::routing_table::for_each_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - replacements_cb
    - live_cb
    linkageType: ''
    returnType: void
    signature: "void routing_table::for_each_node(std::function<void(node_entry const&)>
      live_cb\n\t, std::function<void(node_entry const&)> replacements_cb) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1025,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1032,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1037,1
    - Dst: auto::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1038,1
    - Dst: auto::timed_out
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1040,1
    - Dst: libtorrent::dht::routing_table::log_node_failed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1043,1
    - Dst: auto::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1051,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1053,1
    - Dst: auto::timed_out
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1055,1
    - Dst: libtorrent::dht::routing_table::log_node_failed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1058,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1065,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1065,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1066,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1071,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1071,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1072,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1074,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1075,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - ' nid'
    - ' ep'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1076
    functionName: libtorrent::dht::routing_table::node_failed
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::dht::routing_table::fill_from_replacements
    - libtorrent::dht::routing_table::prune_empty_bucket
    - erase
    - empty
    - end
    - libtorrent::dht::routing_table::find_bucket
    - auto::timed_out
    - auto::addr
    - auto::ep
    - auto::fail_count
    - get_int
    - auto::pinged
    - libtorrent::dht::routing_table::log_node_failed
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void routing_table::node_failed(node_id const& nid, udp::endpoint const&
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' router'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: libtorrent::dht::routing_table::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void routing_table::add_router_node(udp::endpoint const& router)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_node_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1087,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1087,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1088,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' id'
    - ' ep'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1089
    functionName: libtorrent::dht::routing_table::heard_about
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - verify_node_address
    - address
    - node_entry
    linkageType: ''
    returnType: void
    signature: void routing_table::heard_about(node_id const& id, udp::endpoint const&
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_node_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' id'
    - ' ep'
    - rtt
    argTypes:
    - node_id
    - udp::endpoint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: libtorrent::dht::routing_table::node_seen
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - verify_node_address
    - address
    - node_entry
    linkageType: ''
    returnType: bool
    signature: bool routing_table::node_seen(node_id const& id, udp::endpoint const&
      ep, int const rtt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1109,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1110,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1110,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1111,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1113,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1113,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1118,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1118,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1128,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1131,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1133,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1138,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1140,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1143,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1149,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1154,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1167,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1170,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1172,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1177,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1179,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1179,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1182,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1184,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1184,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1186,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1186,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - ' target'
    - options
    - count
    argTypes:
    - node_id
    - find_nodes_flags_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1188
    functionName: libtorrent::dht::routing_table::find_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::distance
    - std::vector::size
    - aux::numeric_cast<std::size_t>
    - begin
    - compare_ref
    - std::vector::resize
    - confirmed
    - libtorrent::dht::routing_table::find_bucket
    - end
    - std::vector::begin
    - TORRENT_ASSERT
    - std::vector::reserve
    - std::copy
    - std::back_inserter
    - std::vector::end
    - std::sort
    - std::remove_copy_if
    linkageType: ''
    returnType: std::vector<node_entry>
    signature: "std::vector<node_entry> routing_table::find_node(node_id const& target\n\t,
      find_nodes_flags_t const options, int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1199,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1204,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1204,1
    - Dst: ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1205,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1210
    functionName: libtorrent::dht::routing_table::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - live_nodes::begin
    - TORRENT_ASSERT
    - pinged
    - addr
    - ip_set::insert
    linkageType: ''
    returnType: void
    signature: void routing_table::check_invariant() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1215,1
    - Dst: cbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1219,1
    - Dst: std::advance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1220,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1221,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1221,1
    - Dst: auto::replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1223
    functionName: libtorrent::dht::routing_table::is_full
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::advance
    - libtorrent::dht::routing_table::size
    - cbegin
    - auto::replacements::size
    - auto::live_nodes::size
    linkageType: ''
    returnType: bool
    signature: bool routing_table::is_full(int const bucket) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1228,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1230,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1232,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1233,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1234,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' nid'
    - ' ne'
    argTypes:
    - node_id
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1236
    functionName: libtorrent::dht::routing_table::log_node_failed
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - fail_count
    - libtorrent::aux::to_hex
    - total_seconds
    - ep
    - print_endpoint
    - log
    - pinged
    - should_log
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void routing_table::log_node_failed(node_id const& nid, node_entry
      const& ne) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' container'
    - ' key'
    argTypes:
    - T
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::erase_one
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::end
    - erase
    - find
    linkageType: ''
    returnType: void
    signature: void erase_one(T& container, K const& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' settings'
    - ' id'
    - ' addr'
    argTypes:
    - aux::session_settings
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::verify_node_address
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::verify_id
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool verify_node_address(aux::session_settings const& settings\n\t\t,
      node_id const& id, address const& addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' container'
    - ' key'
    argTypes:
    - T
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::erase_one
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::end
    - erase
    - find
    linkageType: ''
    returnType: void
    signature: void erase_one(T& container, K const& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' settings'
    - ' id'
    - ' addr'
    argTypes:
    - aux::session_settings
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::verify_node_address
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::verify_id
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool verify_node_address(aux::session_settings const& settings\n\t\t,
      node_id const& id, address const& addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:89,1
    - Dst: libtorrent::dht::ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:90,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:90,1
    - Dst: libtorrent::dht::ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:92,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: libtorrent::dht::ip_set::insert
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - is_v6
    - libtorrent::dht::ip_set::insert
    - to_v6
    - to_v4
    linkageType: ''
    returnType: void
    signature: void ip_set::insert(address const& addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:97,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::ip_set::exists
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - end
    - to_v4
    - find
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool ip_set::exists(address const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:105,1
    - Dst: erase_one
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:106,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:106,1
    - Dst: erase_one
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:108,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: libtorrent::dht::ip_set::erase
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - erase_one
    - to_v6
    - to_v4
    linkageType: ''
    returnType: void
    signature: void ip_set::erase(address const& addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:115,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:116,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - bucket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: libtorrent::dht::mostly_verified_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::dht::size
    - libtorrent::dht::end
    - std::count_if
    - libtorrent::dht::begin
    linkageType: ''
    returnType: bool
    signature: bool mostly_verified_nodes(bucket_t const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:122,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:123,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:125,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:127,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:127,1
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:135,1
    - Dst: libtorrent::aux::little_endian_to_host
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:135,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:136,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:137,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:139,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:140,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - bucket_idx
    - last_bucket
    - bucket_size
    - nid
    argTypes:
    - int
    - bool
    - int
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::classify_prefix
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT_VAL
    - static_cast<std::uint32_t>
    - libtorrent::aux::count_leading_zeros
    - libtorrent::aux::little_endian_to_host
    linkageType: ''
    returnType: std::uint8_t
    signature: "std::uint8_t classify_prefix(int const bucket_idx, bool const last_bucket\n\t,
      int const bucket_size, node_id nid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:163,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:163,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:167,1
    - Dst: libtorrent::dht::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:168,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:168,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:170,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:174,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:174,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:176,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:176,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:189,1
    - Dst: first
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:194,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:196,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:196,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:200,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:200,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:201,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:204,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:212,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:227,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:227,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:235,1
    - Dst: dht_logger*::should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:238,1
    - Dst: dht_logger*::log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:240,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:243,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:245,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:249,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:249,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:251,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 7
    argNames:
    - ' e'
    - ' b'
    - ' ips'
    - bucket_index
    - bucket_size_limit
    - last_bucket
    - log
    argTypes:
    - node_entry
    - bucket_t
    - ip_set
    - int
    - int
    - bool
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 255
    functionName: libtorrent::dht::replace_node_impl
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - libtorrent::dht::empty
    - std::vector::begin
    - libtorrent::dht::begin
    - auto::addr
    - std::vector::end
    - push_back
    - libtorrent::dht::size
    - first
    - dht_logger*::should_log
    - libtorrent::dht::addr
    - print_address
    - libtorrent::dht::classify_prefix
    - libtorrent::aux::to_hex
    - erase
    - std::vector::insert
    - TORRENT_ASSERT
    - auto::fail_count
    - auto::size
    - libtorrent::dht::fail_count
    - std::max_element
    - std::vector::empty
    - insert
    - dht_logger*::log
    linkageType: ''
    returnType: routing_table::add_node_status_t
    signature: "routing_table::add_node_status_t replace_node_impl(node_entry const&
      e\n\t, bucket_t& b, ip_set& ips, int const bucket_index\n\t, int const bucket_size_limit,
      bool const last_bucket\n#ifndef TORRENT_DISABLE_LOGGING\n\t, dht_logger* log\n#endif\n\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:279,1
    - Dst: aux::array::end_index
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: libtorrent::dht::routing_table::bucket_limit
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 7
    functionsReached:
    - aux::array::end_index
    - get_bool
    linkageType: ''
    returnType: int
    signature: int routing_table::bucket_limit(int bucket) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:293,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:293,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:294,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:298,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:299,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::vector<dht_routing_bucket>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: libtorrent::dht::routing_table::status
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - libtorrent::dht::routing_table::size
    - replacements::size
    - live_nodes::size
    - clear
    linkageType: ''
    returnType: void
    signature: void routing_table::status(std::vector<dht_routing_bucket>& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:311,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:311,1
    - Dst: libtorrent::dht::routing_table::num_global_nodes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:319,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:324,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:325,1
    - Dst: dht_routing_table::push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 331
    functionName: libtorrent::dht::routing_table::status
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::size
    - std::tie
    - replacements::size
    - dht_routing_table::push_back
    - live_nodes::size
    - libtorrent::dht::routing_table::num_global_nodes
    linkageType: ''
    returnType: void
    signature: void routing_table::status(session_status& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:341,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: live_nodes::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:343,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:345,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: libtorrent::dht::routing_table::size
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 11
    functionsReached:
    - static_cast<int>
    - std::count_if
    - confirmed
    - replacements::size
    - live_nodes::begin
    - live_nodes::size
    - std::make_tuple
    - live_nodes::end
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> routing_table::size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes::end_index
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:356,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:364,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 366
    functionName: libtorrent::dht::routing_table::num_global_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - std::int64_t
    - live_nodes::end_index
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t routing_table::num_global_nodes() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:370,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:371,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:376,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:377,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: libtorrent::dht::routing_table::depth
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - live_nodes::size
    - libtorrent::dht::routing_table::size
    linkageType: ''
    returnType: int
    signature: int routing_table::depth() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:401,1
    - Dst: rend
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:406,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:409,1
    - Dst: rbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:421,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: auto::replacements::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:428,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:428,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:429,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:441,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 444
    functionName: libtorrent::dht::routing_table::next_refresh
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::distance
    - auto::replacements::begin
    - auto::replacements::end
    - rbegin
    - TORRENT_ASSERT
    - rend
    - min_time
    - pinged
    - auto::live_nodes::size
    - libtorrent::aux::time_now
    - std::find_if
    linkageType: ''
    returnType: node_entry
    signature: node_entry * routing_table::next_refresh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:450,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:453,1
    - Dst: routing_table_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:453,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:457,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:457,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:458,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:458,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:459,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:461,1
    - Dst: std::advance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: libtorrent::dht::routing_table::find_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - push_back
    - libtorrent::dht::routing_table::size
    - std::advance
    - begin
    - routing_table_node
    - std::min
    - TORRENT_ASSERT
    - distance_exp
    linkageType: ''
    returnType: routing_table::table_t::iterator
    signature: routing_table::table_t::iterator routing_table::find_bucket(node_id
      const& id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:472,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:477,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:477,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:479,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:479,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 494
    functionName: libtorrent::dht::compare_ip_cidr
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - std::memcpy
    - std::uint32_t
    - to_v4
    - TORRENT_ASSERT
    - to_v6
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool compare_ip_cidr(address const& lhs, address const& rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:499,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:499,1
    - Dst: auto::replacements::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:501,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:501,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:503,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:503,1
    - Dst: auto::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:504,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:504,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:505,1
    - Dst: auto::live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:507,1
    - Dst: auto::live_nodes::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:507,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:509,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:509,1
    - Dst: auto::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:510,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:510,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:511,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:515,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: libtorrent::dht::routing_table::find_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - auto::live_nodes::end
    - auto::replacements::begin
    - begin
    - auto::replacements::end
    - end
    - auto::addr
    - auto::live_nodes::begin
    - port
    - std::make_tuple
    - auto::port
    - address
    linkageType: ''
    returnType: std::tuple<node_entry*, routing_table::table_t::iterator, bucket_t*>
    signature: std::tuple<node_entry*, routing_table::table_t::iterator, bucket_t*>
      routing_table::find_node(udp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:526,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:532,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:532,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:535,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:536,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - table_t::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 539
    functionName: libtorrent::dht::routing_table::fill_from_replacements
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::bind
    - std::distance
    - push_back
    - libtorrent::dht::routing_table::size
    - begin
    - erase
    - empty
    - end
    - std::sort
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void routing_table::fill_from_replacements(table_t::iterator bucket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:543,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:543,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:544,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:546,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 548
    functionName: libtorrent::dht::routing_table::prune_empty_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - erase
    - empty
    - end
    - back
    linkageType: ''
    returnType: void
    signature: void routing_table::prune_empty_bucket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bucket_t*::data
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:552,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:554,1
    - Dst: bucket_t*::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:554,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: exists
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: node_entry*::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:556,1
    - Dst: node_entry*::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:556,1
    - Dst: bucket_t*::erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:557,1
    - Dst: bucket_t*::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - n
    - b
    argTypes:
    - node_entry*
    - bucket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 558
    functionName: libtorrent::dht::routing_table::remove_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 1
    functionsReached:
    - bucket_t*::data
    - bucket_t*::size
    - bucket_t*::begin
    - erase
    - TORRENT_ASSERT
    - exists
    - bucket_t*::erase
    - node_entry*::addr
    linkageType: ''
    returnType: void
    signature: void routing_table::remove_node(node_entry* n, bucket_t* b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:562,1
    - Dst: libtorrent::dht::routing_table::split_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:568,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:575,1
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:581,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:590,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:595,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:595,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:597,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:597,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 606
    functionName: libtorrent::dht::routing_table::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - libtorrent::dht::routing_table::split_bucket
    - libtorrent::dht::routing_table::size
    - libtorrent::dht::routing_table::add_node_impl
    - erase
    - empty
    - end
    - TORRENT_ASSERT
    - back
    linkageType: ''
    returnType: bool
    signature: bool routing_table::add_node(node_entry const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - b
    - ' id'
    - bucket_index
    argTypes:
    - span<node_entry const>
    - node_id
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 622
    functionName: libtorrent::dht::all_in_same_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool all_in_same_bucket(span<node_entry const> b, node_id const& id,
      int const bucket_index)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: native_endpoint
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:631,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:631,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: exists
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:639,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:639,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: libtorrent::dht::routing_table::find_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:659,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:662,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:664,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:676,1
    - Dst: node_entry*::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:678,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:683,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:684,1
    - Dst: node_entry*::id::is_all_zeros
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:687,1
    - Dst: libtorrent::dht::routing_table::remove_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:691,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:693,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:698,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:703,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:707,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:709,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: libtorrent::dht::routing_table::remove_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:714,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:715,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:720,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:723,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:724,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:727,1
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:735,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:738,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:738,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:742,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:750,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: bucket_t::iterator::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: node_entry::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: bucket_t::iterator::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:760,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:770,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: bucket_t::iterator::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: node_entry::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: bucket_t::iterator::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:779,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:781,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:781,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:782,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:785,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:788,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:790,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:793,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:800,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:802,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:816,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:816,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:818,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:818,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:819,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:820,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:820,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:833,1
    - Dst: std::next
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:839,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:839,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:840,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:841,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:842,1
    - Dst: node_entry::confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:843,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: std::prev
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:845,1
    - Dst: node_entry::confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:849,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:851,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:871,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: bucket_t::iterator::set_pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:879,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:885,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:886,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:888,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:895,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:895,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:896,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:899,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:899,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:900,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:901,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:901,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 126
    argCount: 1
    argNames:
    - e
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 903
    functionName: libtorrent::dht::routing_table::add_node_impl
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - bucket_t::iterator::addr
    - begin
    - libtorrent::dht::routing_table::fill_from_replacements
    - libtorrent::dht::routing_table::find_node
    - node_entry*::id::is_all_zeros
    - empty
    - mostly_verified_nodes
    - native_endpoint
    - compare_ip_cidr
    - get_bool
    - node_entry::ep
    - minutes
    - min_time
    - addr
    - std::next
    - node_entry::confirmed
    - node_entry::addr
    - libtorrent::aux::time_now
    - libtorrent::dht::routing_table::bucket_limit
    - push_back
    - end
    - log
    - replace_node_impl
    - libtorrent::dht::routing_table::remove_node
    - print_address
    - bucket_t::iterator::set_pinged
    - libtorrent::aux::to_hex
    - libtorrent::dht::routing_table::prune_empty_bucket
    - erase
    - libtorrent::dht::routing_table::find_bucket
    - std::prev
    - TORRENT_ASSERT
    - node_entry*::update_rtt
    - reserve
    - std::find_if
    - bucket_t::iterator::update_rtt
    - std::distance
    - libtorrent::dht::routing_table::size
    - bucket_t::iterator::ep
    - std::tie
    - node_entry::pinged
    - insert
    - all_in_same_bucket
    - find
    - exists
    - node_entry::port
    - pinged
    - bucket_t::iterator::port
    - should_log
    linkageType: ''
    returnType: routing_table::add_node_status_t
    signature: routing_table::add_node_status_t routing_table::add_node_impl(node_entry
      e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:909,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:910,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:915,1
    - Dst: routing_table_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:915,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:916,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:917,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:924,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:925,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:925,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:927,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:934,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:935,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:938,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:941,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:942,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:944,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:947,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:953,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:953,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:955,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:957,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:957,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:962,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:967,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:967,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:968,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:970,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:972,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 974
    functionName: libtorrent::dht::routing_table::split_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - push_back
    - libtorrent::dht::routing_table::size
    - begin
    - erase
    - end
    - routing_table_node
    - TORRENT_ASSERT
    - distance_exp
    - resize
    - back
    - auto::pinged
    linkageType: ''
    returnType: void
    signature: void routing_table::split_bucket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:980,1
    - Dst: table_t::swap
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:984,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:990,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 996
    functionName: libtorrent::dht::routing_table::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - clear
    - table_t::swap
    linkageType: ''
    returnType: void
    signature: void routing_table::update_node_id(node_id const& id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: live_cb
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1006,1
    - Dst: replacements_cb
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - live_cb
    - replacements_cb
    argTypes:
    - std::function<void(node_entry const&)>
    - std::function<void(node_entry const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1014
    functionName: libtorrent::dht::routing_table::for_each_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - replacements_cb
    - live_cb
    linkageType: ''
    returnType: void
    signature: "void routing_table::for_each_node(std::function<void(node_entry const&)>
      live_cb\n\t, std::function<void(node_entry const&)> replacements_cb) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1025,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1032,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1037,1
    - Dst: auto::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1038,1
    - Dst: auto::timed_out
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1040,1
    - Dst: libtorrent::dht::routing_table::log_node_failed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1043,1
    - Dst: auto::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1051,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1053,1
    - Dst: auto::timed_out
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1055,1
    - Dst: libtorrent::dht::routing_table::log_node_failed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1058,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1065,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1065,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1066,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1071,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1071,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1072,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1074,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1075,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - ' nid'
    - ' ep'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1076
    functionName: libtorrent::dht::routing_table::node_failed
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::dht::routing_table::fill_from_replacements
    - libtorrent::dht::routing_table::prune_empty_bucket
    - erase
    - empty
    - end
    - libtorrent::dht::routing_table::find_bucket
    - auto::timed_out
    - auto::addr
    - auto::ep
    - auto::fail_count
    - get_int
    - auto::pinged
    - libtorrent::dht::routing_table::log_node_failed
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void routing_table::node_failed(node_id const& nid, udp::endpoint const&
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' router'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: libtorrent::dht::routing_table::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void routing_table::add_router_node(udp::endpoint const& router)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_node_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1087,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1087,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1088,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' id'
    - ' ep'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1089
    functionName: libtorrent::dht::routing_table::heard_about
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - verify_node_address
    - address
    - node_entry
    linkageType: ''
    returnType: void
    signature: void routing_table::heard_about(node_id const& id, udp::endpoint const&
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_node_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' id'
    - ' ep'
    - rtt
    argTypes:
    - node_id
    - udp::endpoint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: libtorrent::dht::routing_table::node_seen
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - verify_node_address
    - address
    - node_entry
    linkageType: ''
    returnType: bool
    signature: bool routing_table::node_seen(node_id const& id, udp::endpoint const&
      ep, int const rtt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1109,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1110,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1110,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1111,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1113,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1113,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1118,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1118,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1128,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1131,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1133,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1138,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1140,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1143,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1149,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1154,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1167,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1170,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1172,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1177,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1179,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1179,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1182,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1184,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1184,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1186,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1186,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - ' target'
    - options
    - count
    argTypes:
    - node_id
    - find_nodes_flags_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1188
    functionName: libtorrent::dht::routing_table::find_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::distance
    - std::vector::size
    - aux::numeric_cast<std::size_t>
    - begin
    - compare_ref
    - std::vector::resize
    - confirmed
    - libtorrent::dht::routing_table::find_bucket
    - end
    - std::vector::begin
    - TORRENT_ASSERT
    - std::vector::reserve
    - std::copy
    - std::back_inserter
    - std::vector::end
    - std::sort
    - std::remove_copy_if
    linkageType: ''
    returnType: std::vector<node_entry>
    signature: "std::vector<node_entry> routing_table::find_node(node_id const& target\n\t,
      find_nodes_flags_t const options, int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1199,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1204,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1204,1
    - Dst: ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1205,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1210
    functionName: libtorrent::dht::routing_table::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - live_nodes::begin
    - TORRENT_ASSERT
    - pinged
    - addr
    - ip_set::insert
    linkageType: ''
    returnType: void
    signature: void routing_table::check_invariant() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1215,1
    - Dst: cbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1219,1
    - Dst: std::advance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1220,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1221,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1221,1
    - Dst: auto::replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1223
    functionName: libtorrent::dht::routing_table::is_full
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::advance
    - libtorrent::dht::routing_table::size
    - cbegin
    - auto::replacements::size
    - auto::live_nodes::size
    linkageType: ''
    returnType: bool
    signature: bool routing_table::is_full(int const bucket) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1228,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1230,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1232,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1233,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1234,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' nid'
    - ' ne'
    argTypes:
    - node_id
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1236
    functionName: libtorrent::dht::routing_table::log_node_failed
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - fail_count
    - libtorrent::aux::to_hex
    - total_seconds
    - ep
    - print_endpoint
    - log
    - pinged
    - should_log
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void routing_table::log_node_failed(node_id const& nid, node_entry
      const& ne) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' container'
    - ' key'
    argTypes:
    - T
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::erase_one
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::end
    - erase
    - find
    linkageType: ''
    returnType: void
    signature: void erase_one(T& container, K const& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' settings'
    - ' id'
    - ' addr'
    argTypes:
    - aux::session_settings
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::verify_node_address
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::verify_id
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool verify_node_address(aux::session_settings const& settings\n\t\t,
      node_id const& id, address const& addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' container'
    - ' key'
    argTypes:
    - T
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::erase_one
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::end
    - erase
    - find
    linkageType: ''
    returnType: void
    signature: void erase_one(T& container, K const& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' settings'
    - ' id'
    - ' addr'
    argTypes:
    - aux::session_settings
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::verify_node_address
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::verify_id
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool verify_node_address(aux::session_settings const& settings\n\t\t,
      node_id const& id, address const& addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:89,1
    - Dst: libtorrent::dht::ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:90,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:90,1
    - Dst: libtorrent::dht::ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:92,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: libtorrent::dht::ip_set::insert
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - is_v6
    - libtorrent::dht::ip_set::insert
    - to_v6
    - to_v4
    linkageType: ''
    returnType: void
    signature: void ip_set::insert(address const& addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:97,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::ip_set::exists
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - end
    - to_v4
    - find
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool ip_set::exists(address const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:105,1
    - Dst: erase_one
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:106,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:106,1
    - Dst: erase_one
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:108,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: libtorrent::dht::ip_set::erase
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - erase_one
    - to_v6
    - to_v4
    linkageType: ''
    returnType: void
    signature: void ip_set::erase(address const& addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:115,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:116,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - bucket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: libtorrent::dht::mostly_verified_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::dht::size
    - libtorrent::dht::end
    - std::count_if
    - libtorrent::dht::begin
    linkageType: ''
    returnType: bool
    signature: bool mostly_verified_nodes(bucket_t const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:122,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:123,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:125,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:127,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:127,1
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:135,1
    - Dst: libtorrent::aux::little_endian_to_host
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:135,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:136,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:137,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:139,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:140,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - bucket_idx
    - last_bucket
    - bucket_size
    - nid
    argTypes:
    - int
    - bool
    - int
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::classify_prefix
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT_VAL
    - static_cast<std::uint32_t>
    - libtorrent::aux::count_leading_zeros
    - libtorrent::aux::little_endian_to_host
    linkageType: ''
    returnType: std::uint8_t
    signature: "std::uint8_t classify_prefix(int const bucket_idx, bool const last_bucket\n\t,
      int const bucket_size, node_id nid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:163,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:163,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:167,1
    - Dst: libtorrent::dht::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:168,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:168,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:170,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:174,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:174,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:176,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:176,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:189,1
    - Dst: first
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:194,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:196,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:196,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:200,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:200,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:201,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:204,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:212,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:227,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:227,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:235,1
    - Dst: dht_logger*::should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:238,1
    - Dst: dht_logger*::log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:240,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:243,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:245,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:249,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:249,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:251,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 7
    argNames:
    - ' e'
    - ' b'
    - ' ips'
    - bucket_index
    - bucket_size_limit
    - last_bucket
    - log
    argTypes:
    - node_entry
    - bucket_t
    - ip_set
    - int
    - int
    - bool
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 255
    functionName: libtorrent::dht::replace_node_impl
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - libtorrent::dht::empty
    - std::vector::begin
    - libtorrent::dht::begin
    - auto::addr
    - std::vector::end
    - push_back
    - libtorrent::dht::size
    - first
    - dht_logger*::should_log
    - libtorrent::dht::addr
    - print_address
    - libtorrent::dht::classify_prefix
    - libtorrent::aux::to_hex
    - erase
    - std::vector::insert
    - TORRENT_ASSERT
    - auto::fail_count
    - auto::size
    - libtorrent::dht::fail_count
    - std::max_element
    - std::vector::empty
    - insert
    - dht_logger*::log
    linkageType: ''
    returnType: routing_table::add_node_status_t
    signature: "routing_table::add_node_status_t replace_node_impl(node_entry const&
      e\n\t, bucket_t& b, ip_set& ips, int const bucket_index\n\t, int const bucket_size_limit,
      bool const last_bucket\n#ifndef TORRENT_DISABLE_LOGGING\n\t, dht_logger* log\n#endif\n\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:279,1
    - Dst: aux::array::end_index
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: libtorrent::dht::routing_table::bucket_limit
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 14
    functionsReached:
    - aux::array::end_index
    - get_bool
    linkageType: ''
    returnType: int
    signature: int routing_table::bucket_limit(int bucket) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:293,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:293,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:294,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:298,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:299,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::vector<dht_routing_bucket>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: libtorrent::dht::routing_table::status
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - libtorrent::dht::routing_table::size
    - replacements::size
    - live_nodes::size
    - clear
    linkageType: ''
    returnType: void
    signature: void routing_table::status(std::vector<dht_routing_bucket>& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:311,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:311,1
    - Dst: libtorrent::dht::routing_table::num_global_nodes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:319,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:324,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:325,1
    - Dst: dht_routing_table::push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 331
    functionName: libtorrent::dht::routing_table::status
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::size
    - std::tie
    - replacements::size
    - dht_routing_table::push_back
    - live_nodes::size
    - libtorrent::dht::routing_table::num_global_nodes
    linkageType: ''
    returnType: void
    signature: void routing_table::status(session_status& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:341,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: live_nodes::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:343,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:345,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: libtorrent::dht::routing_table::size
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 20
    functionsReached:
    - static_cast<int>
    - std::count_if
    - confirmed
    - replacements::size
    - live_nodes::begin
    - live_nodes::size
    - std::make_tuple
    - live_nodes::end
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> routing_table::size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes::end_index
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:356,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:364,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 366
    functionName: libtorrent::dht::routing_table::num_global_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - std::int64_t
    - live_nodes::end_index
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t routing_table::num_global_nodes() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:370,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:371,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:376,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:377,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: libtorrent::dht::routing_table::depth
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - live_nodes::size
    - libtorrent::dht::routing_table::size
    linkageType: ''
    returnType: int
    signature: int routing_table::depth() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:401,1
    - Dst: rend
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:406,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:409,1
    - Dst: rbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:421,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: auto::replacements::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:428,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:428,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:429,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:441,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 444
    functionName: libtorrent::dht::routing_table::next_refresh
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::distance
    - auto::replacements::begin
    - auto::replacements::end
    - rbegin
    - TORRENT_ASSERT
    - rend
    - min_time
    - pinged
    - auto::live_nodes::size
    - libtorrent::aux::time_now
    - std::find_if
    linkageType: ''
    returnType: node_entry
    signature: node_entry * routing_table::next_refresh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:450,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:453,1
    - Dst: routing_table_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:453,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:457,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:457,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:458,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:458,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:459,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:461,1
    - Dst: std::advance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: libtorrent::dht::routing_table::find_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 6
    functionsReached:
    - push_back
    - libtorrent::dht::routing_table::size
    - std::advance
    - begin
    - routing_table_node
    - std::min
    - TORRENT_ASSERT
    - distance_exp
    linkageType: ''
    returnType: routing_table::table_t::iterator
    signature: routing_table::table_t::iterator routing_table::find_bucket(node_id
      const& id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:472,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:477,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:477,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:479,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:479,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 494
    functionName: libtorrent::dht::compare_ip_cidr
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - std::memcpy
    - std::uint32_t
    - to_v4
    - TORRENT_ASSERT
    - to_v6
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool compare_ip_cidr(address const& lhs, address const& rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:499,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:499,1
    - Dst: auto::replacements::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:501,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:501,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:503,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:503,1
    - Dst: auto::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:504,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:504,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:505,1
    - Dst: auto::live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:507,1
    - Dst: auto::live_nodes::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:507,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:509,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:509,1
    - Dst: auto::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:510,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:510,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:511,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:515,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: libtorrent::dht::routing_table::find_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - auto::live_nodes::end
    - auto::replacements::begin
    - begin
    - auto::replacements::end
    - end
    - auto::addr
    - auto::live_nodes::begin
    - port
    - std::make_tuple
    - auto::port
    - address
    linkageType: ''
    returnType: std::tuple<node_entry*, routing_table::table_t::iterator, bucket_t*>
    signature: std::tuple<node_entry*, routing_table::table_t::iterator, bucket_t*>
      routing_table::find_node(udp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:526,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:532,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:532,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:535,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:536,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - table_t::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 539
    functionName: libtorrent::dht::routing_table::fill_from_replacements
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::bind
    - std::distance
    - push_back
    - libtorrent::dht::routing_table::size
    - begin
    - erase
    - empty
    - end
    - std::sort
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void routing_table::fill_from_replacements(table_t::iterator bucket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:543,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:543,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:544,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:546,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 548
    functionName: libtorrent::dht::routing_table::prune_empty_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 4
    functionsReached:
    - erase
    - empty
    - end
    - back
    linkageType: ''
    returnType: void
    signature: void routing_table::prune_empty_bucket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bucket_t*::data
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:552,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:554,1
    - Dst: bucket_t*::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:554,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: exists
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: node_entry*::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:556,1
    - Dst: node_entry*::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:556,1
    - Dst: bucket_t*::erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:557,1
    - Dst: bucket_t*::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - n
    - b
    argTypes:
    - node_entry*
    - bucket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 558
    functionName: libtorrent::dht::routing_table::remove_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 2
    functionsReached:
    - bucket_t*::data
    - bucket_t*::size
    - bucket_t*::begin
    - erase
    - TORRENT_ASSERT
    - exists
    - bucket_t*::erase
    - node_entry*::addr
    linkageType: ''
    returnType: void
    signature: void routing_table::remove_node(node_entry* n, bucket_t* b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:562,1
    - Dst: libtorrent::dht::routing_table::split_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:568,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:575,1
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:581,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:590,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:595,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:595,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:597,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:597,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 606
    functionName: libtorrent::dht::routing_table::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - libtorrent::dht::routing_table::split_bucket
    - libtorrent::dht::routing_table::size
    - libtorrent::dht::routing_table::add_node_impl
    - erase
    - empty
    - end
    - TORRENT_ASSERT
    - back
    linkageType: ''
    returnType: bool
    signature: bool routing_table::add_node(node_entry const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - b
    - ' id'
    - bucket_index
    argTypes:
    - span<node_entry const>
    - node_id
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 622
    functionName: libtorrent::dht::all_in_same_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool all_in_same_bucket(span<node_entry const> b, node_id const& id,
      int const bucket_index)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: native_endpoint
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:631,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:631,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: exists
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:639,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:639,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: libtorrent::dht::routing_table::find_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:659,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:662,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:664,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:676,1
    - Dst: node_entry*::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:678,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:683,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:684,1
    - Dst: node_entry*::id::is_all_zeros
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:687,1
    - Dst: libtorrent::dht::routing_table::remove_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:691,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:693,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:698,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:703,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:707,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:709,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: libtorrent::dht::routing_table::remove_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:714,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:715,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:720,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:723,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:724,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:727,1
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:735,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:738,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:738,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:742,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:750,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: bucket_t::iterator::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: node_entry::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: bucket_t::iterator::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:760,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:770,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: bucket_t::iterator::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: node_entry::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: bucket_t::iterator::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:779,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:781,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:781,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:782,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:785,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:788,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:790,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:793,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:800,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:802,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:816,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:816,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:818,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:818,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:819,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:820,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:820,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:833,1
    - Dst: std::next
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:839,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:839,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:840,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:841,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:842,1
    - Dst: node_entry::confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:843,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: std::prev
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:845,1
    - Dst: node_entry::confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:849,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:851,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:871,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: bucket_t::iterator::set_pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:879,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:885,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:886,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:888,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:895,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:895,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:896,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:899,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:899,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:900,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:901,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:901,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 126
    argCount: 1
    argNames:
    - e
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 903
    functionName: libtorrent::dht::routing_table::add_node_impl
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - bucket_t::iterator::addr
    - begin
    - libtorrent::dht::routing_table::fill_from_replacements
    - libtorrent::dht::routing_table::find_node
    - node_entry*::id::is_all_zeros
    - empty
    - mostly_verified_nodes
    - native_endpoint
    - compare_ip_cidr
    - get_bool
    - node_entry::ep
    - minutes
    - min_time
    - addr
    - std::next
    - node_entry::confirmed
    - node_entry::addr
    - libtorrent::aux::time_now
    - libtorrent::dht::routing_table::bucket_limit
    - push_back
    - end
    - log
    - replace_node_impl
    - libtorrent::dht::routing_table::remove_node
    - print_address
    - bucket_t::iterator::set_pinged
    - libtorrent::aux::to_hex
    - libtorrent::dht::routing_table::prune_empty_bucket
    - erase
    - libtorrent::dht::routing_table::find_bucket
    - std::prev
    - TORRENT_ASSERT
    - node_entry*::update_rtt
    - reserve
    - std::find_if
    - bucket_t::iterator::update_rtt
    - std::distance
    - libtorrent::dht::routing_table::size
    - bucket_t::iterator::ep
    - std::tie
    - node_entry::pinged
    - insert
    - all_in_same_bucket
    - find
    - exists
    - node_entry::port
    - pinged
    - bucket_t::iterator::port
    - should_log
    linkageType: ''
    returnType: routing_table::add_node_status_t
    signature: routing_table::add_node_status_t routing_table::add_node_impl(node_entry
      e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:909,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:910,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:915,1
    - Dst: routing_table_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:915,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:916,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:917,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:924,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:925,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:925,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:927,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:934,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:935,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:938,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:941,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:942,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:944,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:947,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:953,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:953,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:955,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:957,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:957,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:962,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:967,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:967,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:968,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:970,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:972,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 974
    functionName: libtorrent::dht::routing_table::split_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - push_back
    - libtorrent::dht::routing_table::size
    - begin
    - erase
    - end
    - routing_table_node
    - TORRENT_ASSERT
    - distance_exp
    - resize
    - back
    - auto::pinged
    linkageType: ''
    returnType: void
    signature: void routing_table::split_bucket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:980,1
    - Dst: table_t::swap
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:984,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:990,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 996
    functionName: libtorrent::dht::routing_table::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - clear
    - table_t::swap
    linkageType: ''
    returnType: void
    signature: void routing_table::update_node_id(node_id const& id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: live_cb
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1006,1
    - Dst: replacements_cb
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - live_cb
    - replacements_cb
    argTypes:
    - std::function<void(node_entry const&)>
    - std::function<void(node_entry const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1014
    functionName: libtorrent::dht::routing_table::for_each_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - replacements_cb
    - live_cb
    linkageType: ''
    returnType: void
    signature: "void routing_table::for_each_node(std::function<void(node_entry const&)>
      live_cb\n\t, std::function<void(node_entry const&)> replacements_cb) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1025,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1032,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1037,1
    - Dst: auto::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1038,1
    - Dst: auto::timed_out
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1040,1
    - Dst: libtorrent::dht::routing_table::log_node_failed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1043,1
    - Dst: auto::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1051,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1053,1
    - Dst: auto::timed_out
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1055,1
    - Dst: libtorrent::dht::routing_table::log_node_failed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1058,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1065,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1065,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1066,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1071,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1071,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1072,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1074,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1075,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - ' nid'
    - ' ep'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1076
    functionName: libtorrent::dht::routing_table::node_failed
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::dht::routing_table::fill_from_replacements
    - libtorrent::dht::routing_table::prune_empty_bucket
    - erase
    - empty
    - end
    - libtorrent::dht::routing_table::find_bucket
    - auto::timed_out
    - auto::addr
    - auto::ep
    - auto::fail_count
    - get_int
    - auto::pinged
    - libtorrent::dht::routing_table::log_node_failed
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void routing_table::node_failed(node_id const& nid, udp::endpoint const&
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' router'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: libtorrent::dht::routing_table::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void routing_table::add_router_node(udp::endpoint const& router)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_node_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1087,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1087,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1088,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' id'
    - ' ep'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1089
    functionName: libtorrent::dht::routing_table::heard_about
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - verify_node_address
    - address
    - node_entry
    linkageType: ''
    returnType: void
    signature: void routing_table::heard_about(node_id const& id, udp::endpoint const&
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_node_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' id'
    - ' ep'
    - rtt
    argTypes:
    - node_id
    - udp::endpoint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: libtorrent::dht::routing_table::node_seen
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - verify_node_address
    - address
    - node_entry
    linkageType: ''
    returnType: bool
    signature: bool routing_table::node_seen(node_id const& id, udp::endpoint const&
      ep, int const rtt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1109,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1110,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1110,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1111,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1113,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1113,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1118,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1118,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1128,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1131,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1133,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1138,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1140,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1143,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1149,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1154,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1167,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1170,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1172,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1177,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1179,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1179,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1182,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1184,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1184,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1186,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1186,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - ' target'
    - options
    - count
    argTypes:
    - node_id
    - find_nodes_flags_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1188
    functionName: libtorrent::dht::routing_table::find_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::distance
    - std::vector::size
    - aux::numeric_cast<std::size_t>
    - begin
    - compare_ref
    - std::vector::resize
    - confirmed
    - libtorrent::dht::routing_table::find_bucket
    - end
    - std::vector::begin
    - TORRENT_ASSERT
    - std::vector::reserve
    - std::copy
    - std::back_inserter
    - std::vector::end
    - std::sort
    - std::remove_copy_if
    linkageType: ''
    returnType: std::vector<node_entry>
    signature: "std::vector<node_entry> routing_table::find_node(node_id const& target\n\t,
      find_nodes_flags_t const options, int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1199,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1204,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1204,1
    - Dst: ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1205,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1210
    functionName: libtorrent::dht::routing_table::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - live_nodes::begin
    - TORRENT_ASSERT
    - pinged
    - addr
    - ip_set::insert
    linkageType: ''
    returnType: void
    signature: void routing_table::check_invariant() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1215,1
    - Dst: cbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1219,1
    - Dst: std::advance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1220,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1221,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1221,1
    - Dst: auto::replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1223
    functionName: libtorrent::dht::routing_table::is_full
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::advance
    - libtorrent::dht::routing_table::size
    - cbegin
    - auto::replacements::size
    - auto::live_nodes::size
    linkageType: ''
    returnType: bool
    signature: bool routing_table::is_full(int const bucket) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1228,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1230,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1232,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1233,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1234,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' nid'
    - ' ne'
    argTypes:
    - node_id
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1236
    functionName: libtorrent::dht::routing_table::log_node_failed
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - fail_count
    - libtorrent::aux::to_hex
    - total_seconds
    - ep
    - print_endpoint
    - log
    - pinged
    - should_log
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void routing_table::log_node_failed(node_id const& nid, node_entry
      const& ne) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' container'
    - ' key'
    argTypes:
    - T
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::erase_one
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::end
    - erase
    - find
    linkageType: ''
    returnType: void
    signature: void erase_one(T& container, K const& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' settings'
    - ' id'
    - ' addr'
    argTypes:
    - aux::session_settings
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::verify_node_address
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::verify_id
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool verify_node_address(aux::session_settings const& settings\n\t\t,
      node_id const& id, address const& addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:75,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' container'
    - ' key'
    argTypes:
    - T
    - K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::erase_one
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::dht::end
    - erase
    - find
    linkageType: ''
    returnType: void
    signature: void erase_one(T& container, K const& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    - Dst: libtorrent::dht::verify_id
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' settings'
    - ' id'
    - ' addr'
    argTypes:
    - aux::session_settings
    - node_id
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::verify_node_address
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::verify_id
    - get_bool
    linkageType: ''
    returnType: bool
    signature: "bool verify_node_address(aux::session_settings const& settings\n\t\t,
      node_id const& id, address const& addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:89,1
    - Dst: libtorrent::dht::ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:90,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:90,1
    - Dst: libtorrent::dht::ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:92,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: libtorrent::dht::ip_set::insert
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 4
    functionsReached:
    - is_v6
    - libtorrent::dht::ip_set::insert
    - to_v6
    - to_v4
    linkageType: ''
    returnType: void
    signature: void ip_set::insert(address const& addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:97,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:98,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::ip_set::exists
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - end
    - to_v4
    - find
    - to_v6
    linkageType: ''
    returnType: bool
    signature: bool ip_set::exists(address const& addr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:105,1
    - Dst: erase_one
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:106,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:106,1
    - Dst: erase_one
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:108,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: libtorrent::dht::ip_set::erase
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - erase_one
    - to_v6
    - to_v4
    linkageType: ''
    returnType: void
    signature: void ip_set::erase(address const& addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:113,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:115,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:116,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - bucket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: libtorrent::dht::mostly_verified_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - libtorrent::dht::size
    - libtorrent::dht::end
    - std::count_if
    - libtorrent::dht::begin
    linkageType: ''
    returnType: bool
    signature: bool mostly_verified_nodes(bucket_t const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:122,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:123,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:125,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:127,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:127,1
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:135,1
    - Dst: libtorrent::aux::little_endian_to_host
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:135,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:136,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:137,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:139,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:140,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - bucket_idx
    - last_bucket
    - bucket_size
    - nid
    argTypes:
    - int
    - bool
    - int
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::classify_prefix
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT_VAL
    - static_cast<std::uint32_t>
    - libtorrent::aux::count_leading_zeros
    - libtorrent::aux::little_endian_to_host
    linkageType: ''
    returnType: std::uint8_t
    signature: "std::uint8_t classify_prefix(int const bucket_idx, bool const last_bucket\n\t,
      int const bucket_size, node_id nid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:163,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:163,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:165,1
    - Dst: libtorrent::dht::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:167,1
    - Dst: libtorrent::dht::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:168,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:168,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:170,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:174,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:174,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:176,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:176,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:189,1
    - Dst: first
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:194,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:196,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:196,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:198,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:200,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:200,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:201,1
    - Dst: libtorrent::dht::empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:204,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:206,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:212,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: std::vector::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:227,1
    - Dst: std::vector::empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:227,1
    - Dst: std::max_element
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:230,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:235,1
    - Dst: dht_logger*::should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:238,1
    - Dst: dht_logger*::log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:240,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:241,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:243,1
    - Dst: libtorrent::dht::classify_prefix
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:245,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:249,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:249,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:251,1
    - Dst: libtorrent::dht::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 7
    argNames:
    - ' e'
    - ' b'
    - ' ips'
    - bucket_index
    - bucket_size_limit
    - last_bucket
    - log
    argTypes:
    - node_entry
    - bucket_t
    - ip_set
    - int
    - int
    - bool
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 255
    functionName: libtorrent::dht::replace_node_impl
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::end
    - libtorrent::dht::empty
    - std::vector::begin
    - libtorrent::dht::begin
    - auto::addr
    - std::vector::end
    - push_back
    - libtorrent::dht::size
    - first
    - dht_logger*::should_log
    - libtorrent::dht::addr
    - print_address
    - libtorrent::dht::classify_prefix
    - libtorrent::aux::to_hex
    - erase
    - std::vector::insert
    - TORRENT_ASSERT
    - auto::fail_count
    - auto::size
    - libtorrent::dht::fail_count
    - std::max_element
    - std::vector::empty
    - insert
    - dht_logger*::log
    linkageType: ''
    returnType: routing_table::add_node_status_t
    signature: "routing_table::add_node_status_t replace_node_impl(node_entry const&
      e\n\t, bucket_t& b, ip_set& ips, int const bucket_index\n\t, int const bucket_size_limit,
      bool const last_bucket\n#ifndef TORRENT_DISABLE_LOGGING\n\t, dht_logger* log\n#endif\n\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:279,1
    - Dst: aux::array::end_index
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: libtorrent::dht::routing_table::bucket_limit
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 21
    functionsReached:
    - aux::array::end_index
    - get_bool
    linkageType: ''
    returnType: int
    signature: int routing_table::bucket_limit(int bucket) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:293,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:293,1
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:294,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:298,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:299,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::vector<dht_routing_bucket>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: libtorrent::dht::routing_table::status
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - libtorrent::dht::routing_table::size
    - replacements::size
    - live_nodes::size
    - clear
    linkageType: ''
    returnType: void
    signature: void routing_table::status(std::vector<dht_routing_bucket>& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:311,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:311,1
    - Dst: libtorrent::dht::routing_table::num_global_nodes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:319,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:324,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:325,1
    - Dst: dht_routing_table::push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 331
    functionName: libtorrent::dht::routing_table::status
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::size
    - std::tie
    - replacements::size
    - dht_routing_table::push_back
    - live_nodes::size
    - libtorrent::dht::routing_table::num_global_nodes
    linkageType: ''
    returnType: void
    signature: void routing_table::status(session_status& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:341,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: std::count_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: live_nodes::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:342,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:343,1
    - Dst: replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:345,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: libtorrent::dht::routing_table::size
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 29
    functionsReached:
    - static_cast<int>
    - std::count_if
    - confirmed
    - replacements::size
    - live_nodes::begin
    - live_nodes::size
    - std::make_tuple
    - live_nodes::end
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> routing_table::size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: live_nodes::end_index
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:356,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:364,1
    - Dst: std::int64_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 366
    functionName: libtorrent::dht::routing_table::num_global_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 4
    functionsReached:
    - std::int64_t
    - live_nodes::end_index
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t routing_table::num_global_nodes() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:370,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:371,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:376,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:377,1
    - Dst: live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: libtorrent::dht::routing_table::depth
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - live_nodes::size
    - libtorrent::dht::routing_table::size
    linkageType: ''
    returnType: int
    signature: int routing_table::depth() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:401,1
    - Dst: rend
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:401,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:406,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:409,1
    - Dst: rbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:421,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:422,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: auto::replacements::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:427,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:428,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:428,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:429,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:441,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 444
    functionName: libtorrent::dht::routing_table::next_refresh
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::distance
    - auto::replacements::begin
    - auto::replacements::end
    - rbegin
    - TORRENT_ASSERT
    - rend
    - min_time
    - pinged
    - auto::live_nodes::size
    - libtorrent::aux::time_now
    - std::find_if
    linkageType: ''
    returnType: node_entry
    signature: node_entry * routing_table::next_refresh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:450,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:453,1
    - Dst: routing_table_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:453,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:457,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:457,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:458,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:458,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:459,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:461,1
    - Dst: std::advance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: libtorrent::dht::routing_table::find_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 9
    functionsReached:
    - push_back
    - libtorrent::dht::routing_table::size
    - std::advance
    - begin
    - routing_table_node
    - std::min
    - TORRENT_ASSERT
    - distance_exp
    linkageType: ''
    returnType: routing_table::table_t::iterator
    signature: routing_table::table_t::iterator routing_table::find_bucket(node_id
      const& id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:470,1
    - Dst: is_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:472,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:477,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:477,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:479,1
    - Dst: to_v6
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:479,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    - Dst: to_v4
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - address
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 494
    functionName: libtorrent::dht::compare_ip_cidr
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - is_v6
    - std::memcpy
    - std::uint32_t
    - to_v4
    - TORRENT_ASSERT
    - to_v6
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool compare_ip_cidr(address const& lhs, address const& rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:499,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:499,1
    - Dst: auto::replacements::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:501,1
    - Dst: auto::replacements::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:501,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:503,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:503,1
    - Dst: auto::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:504,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:504,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:505,1
    - Dst: auto::live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:507,1
    - Dst: auto::live_nodes::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:507,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:509,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:509,1
    - Dst: auto::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:510,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:510,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:511,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:515,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: libtorrent::dht::routing_table::find_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - auto::live_nodes::end
    - auto::replacements::begin
    - begin
    - auto::replacements::end
    - end
    - auto::addr
    - auto::live_nodes::begin
    - port
    - std::make_tuple
    - auto::port
    - address
    linkageType: ''
    returnType: std::tuple<node_entry*, routing_table::table_t::iterator, bucket_t*>
    signature: std::tuple<node_entry*, routing_table::table_t::iterator, bucket_t*>
      routing_table::find_node(udp::endpoint const& ep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:524,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:526,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:530,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:532,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:532,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:534,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:535,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:536,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - table_t::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 539
    functionName: libtorrent::dht::routing_table::fill_from_replacements
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 6
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::bind
    - std::distance
    - push_back
    - libtorrent::dht::routing_table::size
    - begin
    - erase
    - empty
    - end
    - std::sort
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void routing_table::fill_from_replacements(table_t::iterator bucket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:543,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:543,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:544,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:544,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:546,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 548
    functionName: libtorrent::dht::routing_table::prune_empty_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 6
    functionsReached:
    - erase
    - empty
    - end
    - back
    linkageType: ''
    returnType: void
    signature: void routing_table::prune_empty_bucket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bucket_t*::data
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:552,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:553,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:554,1
    - Dst: bucket_t*::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:554,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: exists
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: node_entry*::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:555,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:556,1
    - Dst: node_entry*::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:556,1
    - Dst: bucket_t*::erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:557,1
    - Dst: bucket_t*::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - n
    - b
    argTypes:
    - node_entry*
    - bucket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 558
    functionName: libtorrent::dht::routing_table::remove_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 3
    functionsReached:
    - bucket_t*::data
    - bucket_t*::size
    - bucket_t*::begin
    - erase
    - TORRENT_ASSERT
    - exists
    - bucket_t*::erase
    - node_entry*::addr
    linkageType: ''
    returnType: void
    signature: void routing_table::remove_node(node_entry* n, bucket_t* b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:562,1
    - Dst: libtorrent::dht::routing_table::split_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:568,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:575,1
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:581,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:587,1
    - Dst: libtorrent::dht::routing_table::add_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:590,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:595,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:595,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:597,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:597,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 606
    functionName: libtorrent::dht::routing_table::add_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 9
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - libtorrent::dht::routing_table::split_bucket
    - libtorrent::dht::routing_table::size
    - libtorrent::dht::routing_table::add_node_impl
    - erase
    - empty
    - end
    - TORRENT_ASSERT
    - back
    linkageType: ''
    returnType: bool
    signature: bool routing_table::add_node(node_entry const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - b
    - ' id'
    - bucket_index
    argTypes:
    - span<node_entry const>
    - node_id
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 622
    functionName: libtorrent::dht::all_in_same_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool all_in_same_bucket(span<node_entry const> b, node_id const& id,
      int const bucket_index)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: native_endpoint
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:631,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:631,1
    - Dst: find
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:635,1
    - Dst: exists
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:639,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:639,1
    - Dst: std::tie
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: libtorrent::dht::routing_table::find_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:651,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:659,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:662,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:664,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:665,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:676,1
    - Dst: node_entry*::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:678,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:683,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:684,1
    - Dst: node_entry*::id::is_all_zeros
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:687,1
    - Dst: libtorrent::dht::routing_table::remove_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:691,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:693,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:698,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:703,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:707,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:709,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:710,1
    - Dst: libtorrent::dht::routing_table::remove_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:714,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:715,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:720,1
    - Dst: minutes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:723,1
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:724,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:727,1
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:735,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:738,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:738,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:742,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:747,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:750,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: bucket_t::iterator::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: node_entry::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:754,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:758,1
    - Dst: bucket_t::iterator::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:760,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:768,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:770,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: bucket_t::iterator::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: node_entry::port
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:774,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:777,1
    - Dst: bucket_t::iterator::update_rtt
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:779,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:781,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:781,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:782,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:785,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:788,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:789,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:790,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: compare_ip_cidr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:792,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:793,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:800,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:802,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:803,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:804,1
    - Dst: node_entry::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:816,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:816,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:818,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:818,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:819,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:820,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:820,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:833,1
    - Dst: std::next
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:839,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:839,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:840,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:841,1
    - Dst: mostly_verified_nodes
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:842,1
    - Dst: node_entry::confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:843,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: std::prev
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:844,1
    - Dst: all_in_same_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:845,1
    - Dst: node_entry::confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:849,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:851,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:866,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:871,1
    - Dst: bucket_t::iterator::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: node_entry::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: bucket_t::iterator::set_pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:875,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:879,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:884,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:885,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:886,1
    - Dst: replace_node_impl
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:888,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:895,1
    - Dst: bucket_t::iterator::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:895,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:896,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:899,1
    - Dst: reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:899,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:900,1
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:901,1
    - Dst: node_entry::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:901,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 126
    argCount: 1
    argNames:
    - e
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 903
    functionName: libtorrent::dht::routing_table::add_node_impl
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 4
    functionsReached:
    - bucket_t::iterator::addr
    - begin
    - libtorrent::dht::routing_table::fill_from_replacements
    - libtorrent::dht::routing_table::find_node
    - node_entry*::id::is_all_zeros
    - empty
    - mostly_verified_nodes
    - native_endpoint
    - compare_ip_cidr
    - get_bool
    - node_entry::ep
    - minutes
    - min_time
    - addr
    - std::next
    - node_entry::confirmed
    - node_entry::addr
    - libtorrent::aux::time_now
    - libtorrent::dht::routing_table::bucket_limit
    - push_back
    - end
    - log
    - replace_node_impl
    - libtorrent::dht::routing_table::remove_node
    - print_address
    - bucket_t::iterator::set_pinged
    - libtorrent::aux::to_hex
    - libtorrent::dht::routing_table::prune_empty_bucket
    - erase
    - libtorrent::dht::routing_table::find_bucket
    - std::prev
    - TORRENT_ASSERT
    - node_entry*::update_rtt
    - reserve
    - std::find_if
    - bucket_t::iterator::update_rtt
    - std::distance
    - libtorrent::dht::routing_table::size
    - bucket_t::iterator::ep
    - std::tie
    - node_entry::pinged
    - insert
    - all_in_same_bucket
    - find
    - exists
    - node_entry::port
    - pinged
    - bucket_t::iterator::port
    - should_log
    linkageType: ''
    returnType: routing_table::add_node_status_t
    signature: routing_table::add_node_status_t routing_table::add_node_impl(node_entry
      e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:909,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:910,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:911,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:915,1
    - Dst: routing_table_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:915,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:916,1
    - Dst: back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:917,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:924,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:925,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:925,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:927,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:934,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:935,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:938,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:941,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:942,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:944,1
    - Dst: resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:947,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:953,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:953,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:955,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:957,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:957,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:962,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:967,1
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:967,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:968,1
    - Dst: push_back
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:970,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:972,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 974
    functionName: libtorrent::dht::routing_table::split_bucket
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - push_back
    - libtorrent::dht::routing_table::size
    - begin
    - erase
    - end
    - routing_table_node
    - TORRENT_ASSERT
    - distance_exp
    - resize
    - back
    - auto::pinged
    linkageType: ''
    returnType: void
    signature: void routing_table::split_bucket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:980,1
    - Dst: table_t::swap
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:984,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:990,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 996
    functionName: libtorrent::dht::routing_table::update_node_id
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - clear
    - table_t::swap
    linkageType: ''
    returnType: void
    signature: void routing_table::update_node_id(node_id const& id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: live_cb
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1006,1
    - Dst: replacements_cb
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - live_cb
    - replacements_cb
    argTypes:
    - std::function<void(node_entry const&)>
    - std::function<void(node_entry const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1014
    functionName: libtorrent::dht::routing_table::for_each_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - replacements_cb
    - live_cb
    linkageType: ''
    returnType: void
    signature: "void routing_table::for_each_node(std::function<void(node_entry const&)>
      live_cb\n\t, std::function<void(node_entry const&)> replacements_cb) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1025,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1029,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1032,1
    - Dst: std::find_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1034,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1037,1
    - Dst: auto::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1038,1
    - Dst: auto::timed_out
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1040,1
    - Dst: libtorrent::dht::routing_table::log_node_failed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1043,1
    - Dst: auto::ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1051,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1053,1
    - Dst: auto::timed_out
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1055,1
    - Dst: libtorrent::dht::routing_table::log_node_failed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1058,1
    - Dst: auto::fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: get_int
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: auto::pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1063,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1065,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1065,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1066,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1071,1
    - Dst: auto::addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1071,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1072,1
    - Dst: libtorrent::dht::routing_table::fill_from_replacements
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1074,1
    - Dst: libtorrent::dht::routing_table::prune_empty_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1075,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - ' nid'
    - ' ep'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1076
    functionName: libtorrent::dht::routing_table::node_failed
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - begin
    - libtorrent::dht::routing_table::fill_from_replacements
    - libtorrent::dht::routing_table::prune_empty_bucket
    - erase
    - empty
    - end
    - libtorrent::dht::routing_table::find_bucket
    - auto::timed_out
    - auto::addr
    - auto::ep
    - auto::fail_count
    - get_int
    - auto::pinged
    - libtorrent::dht::routing_table::log_node_failed
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void routing_table::node_failed(node_id const& nid, udp::endpoint const&
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' router'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: libtorrent::dht::routing_table::add_router_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void routing_table::add_router_node(udp::endpoint const& router)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_node_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1087,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1087,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1088,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' id'
    - ' ep'
    argTypes:
    - node_id
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1089
    functionName: libtorrent::dht::routing_table::heard_about
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - verify_node_address
    - address
    - node_entry
    linkageType: ''
    returnType: void
    signature: void routing_table::heard_about(node_id const& id, udp::endpoint const&
      ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_node_address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: libtorrent::dht::routing_table::add_node
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    - Dst: node_entry
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' id'
    - ' ep'
    - rtt
    argTypes:
    - node_id
    - udp::endpoint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: libtorrent::dht::routing_table::node_seen
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::add_node
    - verify_node_address
    - address
    - node_entry
    linkageType: ''
    returnType: bool
    signature: bool routing_table::node_seen(node_id const& id, udp::endpoint const&
      ep, int const rtt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::find_bucket
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1109,1
    - Dst: std::distance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1110,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1110,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1111,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1113,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1113,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1118,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1118,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1123,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1127,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1128,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1131,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1133,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1136,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1138,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1140,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1143,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1149,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1154,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1162,1
    - Dst: std::remove_copy_if
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1166,1
    - Dst: confirmed
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1167,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1170,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1172,1
    - Dst: std::sort
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1175,1
    - Dst: compare_ref
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1177,1
    - Dst: std::vector::resize
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1179,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1179,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1182,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1184,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1184,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1186,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1186,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - ' target'
    - options
    - count
    argTypes:
    - node_id
    - find_nodes_flags_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1188
    functionName: libtorrent::dht::routing_table::find_node
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::distance
    - std::vector::size
    - aux::numeric_cast<std::size_t>
    - begin
    - compare_ref
    - std::vector::resize
    - confirmed
    - libtorrent::dht::routing_table::find_bucket
    - end
    - std::vector::begin
    - TORRENT_ASSERT
    - std::vector::reserve
    - std::copy
    - std::back_inserter
    - std::vector::end
    - std::sort
    - std::remove_copy_if
    linkageType: ''
    returnType: std::vector<node_entry>
    signature: "std::vector<node_entry> routing_table::find_node(node_id const& target\n\t,
      find_nodes_flags_t const options, int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1199,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1199,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: live_nodes::begin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1203,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1204,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1204,1
    - Dst: ip_set::insert
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1205,1
    - Dst: addr
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1205,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1210
    functionName: libtorrent::dht::routing_table::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - live_nodes::begin
    - TORRENT_ASSERT
    - pinged
    - addr
    - ip_set::insert
    linkageType: ''
    returnType: void
    signature: void routing_table::check_invariant() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::routing_table::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1215,1
    - Dst: cbegin
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1219,1
    - Dst: std::advance
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1220,1
    - Dst: auto::live_nodes::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1221,1
    - Dst: libtorrent::dht::routing_table::bucket_limit
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1221,1
    - Dst: auto::replacements::size
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1223
    functionName: libtorrent::dht::routing_table::is_full
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::routing_table::bucket_limit
    - std::advance
    - libtorrent::dht::routing_table::size
    - cbegin
    - auto::replacements::size
    - auto::live_nodes::size
    linkageType: ''
    returnType: bool
    signature: bool routing_table::is_full(int const bucket) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1228,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1230,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: ep
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1231,1
    - Dst: fail_count
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1232,1
    - Dst: pinged
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1233,1
    - Dst: total_seconds
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1234,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/routing_table.cpp:1234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' nid'
    - ' ne'
    argTypes:
    - node_id
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1236
    functionName: libtorrent::dht::routing_table::log_node_failed
    functionSourceFile: /src/libtorrent/src/kademlia/routing_table.cpp
    functionUses: 4
    functionsReached:
    - fail_count
    - libtorrent::aux::to_hex
    - total_seconds
    - ep
    - print_endpoint
    - log
    - pinged
    - should_log
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: void
    signature: void routing_table::log_node_failed(node_id const& nid, node_entry
      const& ne) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:53,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:57,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:58,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:60,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:65,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:69,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:69,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:70,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:73,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:74,1
    - Dst: libtorrent::dht::get_peers_observer::log_peers
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:80,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:80,1
    - Dst: aux::read_endpoint_list<tcp::endpoint>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:85,1
    - Dst: libtorrent::dht::get_peers_observer::log_peers
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:87,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:87,1
    - Dst: static_cast<get_peers*>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:90,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:90,1
    - Dst: libtorrent::dht::find_data_observer::reply
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 94
    functionName: libtorrent::dht::get_peers_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - std::vector::push_back
    - aux::read_v4_endpoint<tcp::endpoint>
    - libtorrent::aux::is_v4
    - bdecode_node::list_size
    - bdecode_node::dict_find_list
    - bdecode_node::list_at
    - static_cast<get_peers*>
    - algorithm
    - libtorrent::dht::get_peers_observer::log_peers
    - timeout
    - aux::read_endpoint_list<tcp::endpoint>
    - libtorrent::dht::find_data_observer::reply
    linkageType: ''
    returnType: void
    signature: void get_peers_observer::reply(msg const& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:98,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:99,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:101,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:102,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:104,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:106,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:107,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:108,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:109,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' m'
    - ' r'
    - size
    argTypes:
    - msg
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::get_peers_observer::log_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 1
    functionsReached:
    - get_observer
    - libtorrent::aux::to_hex
    - node_id
    - bdecode_node::string_length
    - auto::should_log
    - auto::log
    - algorithm
    - print_endpoint
    - distance_exp
    - dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void get_peers_observer::log_peers(msg const& m, bdecode_node const&
      r, int const size) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::get_peers::got_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: void get_peers::got_peers(std::vector<tcp::endpoint> const& peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:128,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    - noseeds
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: libtorrent::dht::get_peers::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_peers::get_peers(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      data_callback dcallback\n\t, nodes_callback ncallback\n\t, bool noseeds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::get_peers::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_peers::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:145,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:148,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:153,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:155,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: libtorrent::dht::get_peers::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - target
    - stats_counters
    - observer
    - m_rpc::invoke
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool get_peers::invoke(observer_ptr o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:161,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: libtorrent::dht::get_peers::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr get_peers::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:174,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    - noseeds
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: libtorrent::dht::obfuscated_get_peers::obfuscated_get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void obfuscated_get_peers::obfuscated_get_peers(\n\tnode& dht_node\n\t,
      node_id const& target\n\t, data_callback dcallback\n\t, nodes_callback ncallback\n\t,
      bool noseeds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::get_peers::name
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::obfuscated_get_peers::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::get_peers::name
    linkageType: ''
    returnType: char
    signature: char * obfuscated_get_peers::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:187,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:187,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:196,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 203
    functionName: libtorrent::dht::obfuscated_get_peers::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr obfuscated_get_peers::new_observer(udp::endpoint const&
      ep\n\t, node_id const& id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::get_peers::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:207,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:209,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:210,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:210,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:224,1
    - Dst: generate_random_id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:225,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:226,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:227,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:229,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:231,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:231,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:232,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:235,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:237,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 238
    functionName: libtorrent::dht::obfuscated_get_peers::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - generate_prefix_mask
    - target
    - node_id::to_string
    - stats_counters
    - observer
    - m_rpc::invoke
    - distance_exp
    - observer_ptr::id
    - libtorrent::dht::get_peers::invoke
    - observer_ptr::target_ep
    - generate_random_id
    linkageType: ''
    returnType: bool
    signature: bool obfuscated_get_peers::invoke(observer_ptr o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:242,1
    - Dst: std::make_shared<get_peers>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:247,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:247,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:257,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:259,1
    - Dst: auto::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:259,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:263,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:264,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:277,1
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 280
    functionName: libtorrent::dht::obfuscated_get_peers::done
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 5
    functionsReached:
    - auto::start
    - target
    - id
    - observer_ptr::target_ep
    - begin
    - auto::id
    - std::make_shared<get_peers>
    - end
    - get_node
    - observer_ptr::id
    - libtorrent::dht::obfuscated_get_peers::done
    - auto::add_entry
    linkageType: ''
    returnType: void
    signature: void obfuscated_get_peers::done()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:284,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:288,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:289,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:291,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:295,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:296,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:299,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:300,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:302,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:306,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 309
    functionName: libtorrent::dht::obfuscated_get_peers_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - algorithm
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - done
    - timeout
    - bdecode_node::dict_find_string
    linkageType: ''
    returnType: void
    signature: void obfuscated_get_peers_observer::reply(msg const& m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:53,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:57,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:58,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:60,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:65,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:69,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:69,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:70,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:73,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:74,1
    - Dst: libtorrent::dht::get_peers_observer::log_peers
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:80,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:80,1
    - Dst: aux::read_endpoint_list<tcp::endpoint>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:85,1
    - Dst: libtorrent::dht::get_peers_observer::log_peers
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:87,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:87,1
    - Dst: static_cast<get_peers*>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:90,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:90,1
    - Dst: libtorrent::dht::find_data_observer::reply
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 94
    functionName: libtorrent::dht::get_peers_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - std::vector::push_back
    - aux::read_v4_endpoint<tcp::endpoint>
    - libtorrent::aux::is_v4
    - bdecode_node::list_size
    - bdecode_node::dict_find_list
    - bdecode_node::list_at
    - static_cast<get_peers*>
    - algorithm
    - libtorrent::dht::get_peers_observer::log_peers
    - timeout
    - aux::read_endpoint_list<tcp::endpoint>
    - libtorrent::dht::find_data_observer::reply
    linkageType: ''
    returnType: void
    signature: void get_peers_observer::reply(msg const& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:98,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:99,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:101,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:102,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:104,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:106,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:107,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:108,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:109,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' m'
    - ' r'
    - size
    argTypes:
    - msg
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::get_peers_observer::log_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 2
    functionsReached:
    - get_observer
    - libtorrent::aux::to_hex
    - node_id
    - bdecode_node::string_length
    - auto::should_log
    - auto::log
    - algorithm
    - print_endpoint
    - distance_exp
    - dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void get_peers_observer::log_peers(msg const& m, bdecode_node const&
      r, int const size) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::get_peers::got_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: void get_peers::got_peers(std::vector<tcp::endpoint> const& peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:128,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    - noseeds
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: libtorrent::dht::get_peers::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_peers::get_peers(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      data_callback dcallback\n\t, nodes_callback ncallback\n\t, bool noseeds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::get_peers::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_peers::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:145,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:148,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:153,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:155,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: libtorrent::dht::get_peers::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 1
    functionsReached:
    - target
    - stats_counters
    - observer
    - m_rpc::invoke
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool get_peers::invoke(observer_ptr o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:161,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: libtorrent::dht::get_peers::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr get_peers::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:174,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    - noseeds
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: libtorrent::dht::obfuscated_get_peers::obfuscated_get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void obfuscated_get_peers::obfuscated_get_peers(\n\tnode& dht_node\n\t,
      node_id const& target\n\t, data_callback dcallback\n\t, nodes_callback ncallback\n\t,
      bool noseeds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::get_peers::name
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::obfuscated_get_peers::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::get_peers::name
    linkageType: ''
    returnType: char
    signature: char * obfuscated_get_peers::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:187,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:187,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:196,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 203
    functionName: libtorrent::dht::obfuscated_get_peers::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr obfuscated_get_peers::new_observer(udp::endpoint const&
      ep\n\t, node_id const& id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::get_peers::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:207,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:209,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:210,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:210,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:224,1
    - Dst: generate_random_id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:225,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:226,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:227,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:229,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:231,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:231,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:232,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:235,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:237,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 238
    functionName: libtorrent::dht::obfuscated_get_peers::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - generate_prefix_mask
    - target
    - node_id::to_string
    - stats_counters
    - observer
    - m_rpc::invoke
    - distance_exp
    - observer_ptr::id
    - libtorrent::dht::get_peers::invoke
    - observer_ptr::target_ep
    - generate_random_id
    linkageType: ''
    returnType: bool
    signature: bool obfuscated_get_peers::invoke(observer_ptr o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:242,1
    - Dst: std::make_shared<get_peers>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:247,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:247,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:257,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:259,1
    - Dst: auto::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:259,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:263,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:264,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:277,1
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 280
    functionName: libtorrent::dht::obfuscated_get_peers::done
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 6
    functionsReached:
    - auto::start
    - target
    - id
    - observer_ptr::target_ep
    - begin
    - auto::id
    - std::make_shared<get_peers>
    - end
    - get_node
    - observer_ptr::id
    - libtorrent::dht::obfuscated_get_peers::done
    - auto::add_entry
    linkageType: ''
    returnType: void
    signature: void obfuscated_get_peers::done()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:284,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:288,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:289,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:291,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:295,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:296,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:299,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:300,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:302,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:306,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 309
    functionName: libtorrent::dht::obfuscated_get_peers_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - algorithm
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - done
    - timeout
    - bdecode_node::dict_find_string
    linkageType: ''
    returnType: void
    signature: void obfuscated_get_peers_observer::reply(msg const& m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:53,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:57,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:58,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:60,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:65,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:69,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:69,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:70,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:73,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:74,1
    - Dst: libtorrent::dht::get_peers_observer::log_peers
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:80,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:80,1
    - Dst: aux::read_endpoint_list<tcp::endpoint>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:85,1
    - Dst: libtorrent::dht::get_peers_observer::log_peers
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:87,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:87,1
    - Dst: static_cast<get_peers*>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:90,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:90,1
    - Dst: libtorrent::dht::find_data_observer::reply
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 94
    functionName: libtorrent::dht::get_peers_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - std::vector::push_back
    - aux::read_v4_endpoint<tcp::endpoint>
    - libtorrent::aux::is_v4
    - bdecode_node::list_size
    - bdecode_node::dict_find_list
    - bdecode_node::list_at
    - static_cast<get_peers*>
    - algorithm
    - libtorrent::dht::get_peers_observer::log_peers
    - timeout
    - aux::read_endpoint_list<tcp::endpoint>
    - libtorrent::dht::find_data_observer::reply
    linkageType: ''
    returnType: void
    signature: void get_peers_observer::reply(msg const& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:98,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:99,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:101,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:102,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:104,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:106,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:107,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:108,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:109,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' m'
    - ' r'
    - size
    argTypes:
    - msg
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::get_peers_observer::log_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 3
    functionsReached:
    - get_observer
    - libtorrent::aux::to_hex
    - node_id
    - bdecode_node::string_length
    - auto::should_log
    - auto::log
    - algorithm
    - print_endpoint
    - distance_exp
    - dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void get_peers_observer::log_peers(msg const& m, bdecode_node const&
      r, int const size) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::get_peers::got_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: void get_peers::got_peers(std::vector<tcp::endpoint> const& peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:128,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    - noseeds
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: libtorrent::dht::get_peers::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_peers::get_peers(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      data_callback dcallback\n\t, nodes_callback ncallback\n\t, bool noseeds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::get_peers::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_peers::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:145,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:148,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:153,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:155,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: libtorrent::dht::get_peers::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 2
    functionsReached:
    - target
    - stats_counters
    - observer
    - m_rpc::invoke
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool get_peers::invoke(observer_ptr o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:161,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: libtorrent::dht::get_peers::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr get_peers::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:174,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    - noseeds
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: libtorrent::dht::obfuscated_get_peers::obfuscated_get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void obfuscated_get_peers::obfuscated_get_peers(\n\tnode& dht_node\n\t,
      node_id const& target\n\t, data_callback dcallback\n\t, nodes_callback ncallback\n\t,
      bool noseeds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::get_peers::name
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::obfuscated_get_peers::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::get_peers::name
    linkageType: ''
    returnType: char
    signature: char * obfuscated_get_peers::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:187,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:187,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:196,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 203
    functionName: libtorrent::dht::obfuscated_get_peers::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr obfuscated_get_peers::new_observer(udp::endpoint const&
      ep\n\t, node_id const& id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::get_peers::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:207,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:209,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:210,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:210,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:224,1
    - Dst: generate_random_id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:225,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:226,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:227,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:229,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:231,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:231,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:232,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:235,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:237,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 238
    functionName: libtorrent::dht::obfuscated_get_peers::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - generate_prefix_mask
    - target
    - node_id::to_string
    - stats_counters
    - observer
    - m_rpc::invoke
    - distance_exp
    - observer_ptr::id
    - libtorrent::dht::get_peers::invoke
    - observer_ptr::target_ep
    - generate_random_id
    linkageType: ''
    returnType: bool
    signature: bool obfuscated_get_peers::invoke(observer_ptr o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:242,1
    - Dst: std::make_shared<get_peers>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:247,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:247,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:257,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:259,1
    - Dst: auto::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:259,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:263,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:264,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:277,1
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 280
    functionName: libtorrent::dht::obfuscated_get_peers::done
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 7
    functionsReached:
    - auto::start
    - target
    - id
    - observer_ptr::target_ep
    - begin
    - auto::id
    - std::make_shared<get_peers>
    - end
    - get_node
    - observer_ptr::id
    - libtorrent::dht::obfuscated_get_peers::done
    - auto::add_entry
    linkageType: ''
    returnType: void
    signature: void obfuscated_get_peers::done()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:284,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:288,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:289,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:291,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:295,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:296,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:299,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:300,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:302,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:306,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 309
    functionName: libtorrent::dht::obfuscated_get_peers_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - algorithm
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - done
    - timeout
    - bdecode_node::dict_find_string
    linkageType: ''
    returnType: void
    signature: void obfuscated_get_peers_observer::reply(msg const& m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:53,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:57,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:58,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:60,1
    - Dst: bdecode_node::dict_find_list
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:65,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:69,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:69,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:70,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:73,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:74,1
    - Dst: libtorrent::dht::get_peers_observer::log_peers
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:80,1
    - Dst: aux::read_v4_endpoint<tcp::endpoint>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:80,1
    - Dst: aux::read_endpoint_list<tcp::endpoint>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:85,1
    - Dst: libtorrent::dht::get_peers_observer::log_peers
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:87,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:87,1
    - Dst: static_cast<get_peers*>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:90,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:90,1
    - Dst: libtorrent::dht::find_data_observer::reply
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 94
    functionName: libtorrent::dht::get_peers_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - std::vector::push_back
    - aux::read_v4_endpoint<tcp::endpoint>
    - libtorrent::aux::is_v4
    - bdecode_node::list_size
    - bdecode_node::dict_find_list
    - bdecode_node::list_at
    - static_cast<get_peers*>
    - algorithm
    - libtorrent::dht::get_peers_observer::log_peers
    - timeout
    - aux::read_endpoint_list<tcp::endpoint>
    - libtorrent::dht::find_data_observer::reply
    linkageType: ''
    returnType: void
    signature: void get_peers_observer::reply(msg const& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:98,1
    - Dst: auto::should_log
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:99,1
    - Dst: dict_find_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:101,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:102,1
    - Dst: auto::log
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:104,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:106,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:107,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:108,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:109,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:110,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' m'
    - ' r'
    - size
    argTypes:
    - msg
    - bdecode_node
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::get_peers_observer::log_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 4
    functionsReached:
    - get_observer
    - libtorrent::aux::to_hex
    - node_id
    - bdecode_node::string_length
    - auto::should_log
    - auto::log
    - algorithm
    - print_endpoint
    - distance_exp
    - dict_find_string
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: void
    signature: void get_peers_observer::log_peers(msg const& m, bdecode_node const&
      r, int const size) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' peers'
    argTypes:
    - std::vector<tcp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::get_peers::got_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: void get_peers::got_peers(std::vector<tcp::endpoint> const& peers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:128,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    - noseeds
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: libtorrent::dht::get_peers::get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_peers::get_peers(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      data_callback dcallback\n\t, nodes_callback ncallback\n\t, bool noseeds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::get_peers::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_peers::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:145,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:148,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:150,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:153,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:155,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: libtorrent::dht::get_peers::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 3
    functionsReached:
    - target
    - stats_counters
    - observer
    - m_rpc::invoke
    - observer_ptr::target_ep
    linkageType: ''
    returnType: bool
    signature: bool get_peers::invoke(observer_ptr o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:161,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: libtorrent::dht::get_peers::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr get_peers::new_observer(udp::endpoint const& ep\n\t,
      node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:174,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    - noseeds
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: libtorrent::dht::obfuscated_get_peers::obfuscated_get_peers
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void obfuscated_get_peers::obfuscated_get_peers(\n\tnode& dht_node\n\t,
      node_id const& target\n\t, data_callback dcallback\n\t, nodes_callback ncallback\n\t,
      bool noseeds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::get_peers::name
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: libtorrent::dht::obfuscated_get_peers::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::get_peers::name
    linkageType: ''
    returnType: char
    signature: char * obfuscated_get_peers::name() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:187,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:187,1
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:196,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 203
    functionName: libtorrent::dht::obfuscated_get_peers::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr obfuscated_get_peers::new_observer(udp::endpoint const&
      ep\n\t, node_id const& id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::get_peers::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:207,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:209,1
    - Dst: distance_exp
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:210,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:210,1
    - Dst: generate_prefix_mask
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:224,1
    - Dst: generate_random_id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:225,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:226,1
    - Dst: node_id::to_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:227,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:229,1
    - Dst: observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:231,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:231,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:232,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:235,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:237,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 238
    functionName: libtorrent::dht::obfuscated_get_peers::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - generate_prefix_mask
    - target
    - node_id::to_string
    - stats_counters
    - observer
    - m_rpc::invoke
    - distance_exp
    - observer_ptr::id
    - libtorrent::dht::get_peers::invoke
    - observer_ptr::target_ep
    - generate_random_id
    linkageType: ''
    returnType: bool
    signature: bool obfuscated_get_peers::invoke(observer_ptr o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:242,1
    - Dst: std::make_shared<get_peers>
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:247,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:247,1
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:257,1
    - Dst: id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:259,1
    - Dst: auto::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:259,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:263,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:264,1
    - Dst: auto::add_entry
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: observer_ptr::id
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:273,1
    - Dst: auto::start
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:277,1
    - Dst: libtorrent::dht::obfuscated_get_peers::done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 280
    functionName: libtorrent::dht::obfuscated_get_peers::done
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 8
    functionsReached:
    - auto::start
    - target
    - id
    - observer_ptr::target_ep
    - begin
    - auto::id
    - std::make_shared<get_peers>
    - end
    - get_node
    - observer_ptr::id
    - libtorrent::dht::obfuscated_get_peers::done
    - auto::add_entry
    linkageType: ''
    returnType: void
    signature: void obfuscated_get_peers::done()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:284,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:288,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:289,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:291,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:295,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:296,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:299,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:300,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:302,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:306,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/get_peers.cpp:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 309
    functionName: libtorrent::dht::obfuscated_get_peers_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_peers.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - message::dict_find_dict
    - algorithm
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - done
    - timeout
    - bdecode_node::dict_find_string
    linkageType: ''
    returnType: void
    signature: void obfuscated_get_peers_observer::reply(msg const& m)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:61,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:63,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/get_item.cpp:63,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:64,1
    - Dst: assign
      Src: /src/libtorrent/src/kademlia/get_item.cpp:66,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:71,1
    - Dst: libtorrent::dht::get_item::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:72,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/get_item.cpp:80,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:81,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:82,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:87,1
    - Dst: seq
      Src: /src/libtorrent/src/kademlia/get_item.cpp:87,1
    - Dst: assign
      Src: /src/libtorrent/src/kademlia/get_item.cpp:89,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - ' v'
    - ' pk'
    - seq
    - ' sig'
    argTypes:
    - bdecode_node
    - public_key
    - sequence_number
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 100
    functionName: libtorrent::dht::get_item::got_data
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::get_item::done
    - item_target_id
    - target
    - salt
    - empty
    - assign
    - seq
    - data_section
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: "void get_item::got_data(bdecode_node const& v,\n\tpublic_key const&
      pk,\n\tsequence_number const seq,\n\tsignature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:107,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: libtorrent::dht::get_item::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item::get_item(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      data_callback dcallback\n\t, nodes_callback ncallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:119,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:119,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' pk'
    - salt
    - dcallback
    - ncallback
    argTypes:
    - node
    - public_key
    - span<char const>
    - data_callback
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: libtorrent::dht::get_item::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - item_target_id
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item::get_item(\n\tnode& dht_node\n\t, public_key const&
      pk\n\t, span<char const> salt\n\t, data_callback dcallback\n\t, nodes_callback
      ncallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: libtorrent::dht::get_item::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_item::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_item.cpp:131,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_item.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::get_item::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr get_item::new_observer(udp::endpoint const& ep\n\t, node_id
      const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:147,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_item.cpp:149,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_item.cpp:151,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_item.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: libtorrent::dht::get_item::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::invoke
    - target
    - observer_ptr::target_ep
    - stats_counters
    linkageType: ''
    returnType: bool
    signature: bool get_item::invoke(observer_ptr o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::find_data::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:157,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/get_item.cpp:159,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:159,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:164,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/get_item.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: pk
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: libtorrent::dht::find_data::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: libtorrent::dht::get_item::done
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::find_data::done
    - target
    - item_target_id
    - salt
    - empty
    - pk
    - is_mutable
    - TORRENT_ASSERT
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: void get_item::done()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_item.cpp:183,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_item.cpp:187,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/kademlia/get_item.cpp:188,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_item.cpp:188,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_item.cpp:190,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_item.cpp:194,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_item.cpp:195,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_item.cpp:198,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_item.cpp:199,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/kademlia/get_item.cpp:202,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/get_item.cpp:205,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/get_item.cpp:205,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_item.cpp:209,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/kademlia/get_item.cpp:213,1
    - Dst: static_cast<get_item*>
      Src: /src/libtorrent/src/kademlia/get_item.cpp:216,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_item.cpp:216,1
    - Dst: libtorrent::dht::find_data_observer::reply
      Src: /src/libtorrent/src/kademlia/get_item.cpp:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::get_item_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - bdecode_node::dict_find
    - message::dict_find_dict
    - std::memcpy
    - public_key::bytes::data
    - signature::bytes::data
    - bdecode_node::int_value
    - algorithm
    - bdecode_node::string_length
    - bdecode_node::dict_find_int
    - static_cast<void*>
    - static_cast<get_item*>
    - sequence_number
    - timeout
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    - libtorrent::dht::find_data_observer::reply
    linkageType: ''
    returnType: void
    signature: void get_item_observer::reply(msg const& m)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:61,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:63,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/get_item.cpp:63,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:64,1
    - Dst: assign
      Src: /src/libtorrent/src/kademlia/get_item.cpp:66,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:71,1
    - Dst: libtorrent::dht::get_item::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:72,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/get_item.cpp:80,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:81,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:82,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:87,1
    - Dst: seq
      Src: /src/libtorrent/src/kademlia/get_item.cpp:87,1
    - Dst: assign
      Src: /src/libtorrent/src/kademlia/get_item.cpp:89,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - ' v'
    - ' pk'
    - seq
    - ' sig'
    argTypes:
    - bdecode_node
    - public_key
    - sequence_number
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 100
    functionName: libtorrent::dht::get_item::got_data
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::get_item::done
    - item_target_id
    - target
    - salt
    - empty
    - assign
    - seq
    - data_section
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: "void get_item::got_data(bdecode_node const& v,\n\tpublic_key const&
      pk,\n\tsequence_number const seq,\n\tsignature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:107,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: libtorrent::dht::get_item::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item::get_item(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      data_callback dcallback\n\t, nodes_callback ncallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:119,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:119,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' pk'
    - salt
    - dcallback
    - ncallback
    argTypes:
    - node
    - public_key
    - span<char const>
    - data_callback
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: libtorrent::dht::get_item::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - item_target_id
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item::get_item(\n\tnode& dht_node\n\t, public_key const&
      pk\n\t, span<char const> salt\n\t, data_callback dcallback\n\t, nodes_callback
      ncallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: libtorrent::dht::get_item::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_item::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_item.cpp:131,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_item.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::get_item::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr get_item::new_observer(udp::endpoint const& ep\n\t, node_id
      const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:147,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_item.cpp:149,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_item.cpp:151,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_item.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: libtorrent::dht::get_item::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::invoke
    - target
    - observer_ptr::target_ep
    - stats_counters
    linkageType: ''
    returnType: bool
    signature: bool get_item::invoke(observer_ptr o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::find_data::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:157,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/get_item.cpp:159,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:159,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:164,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/get_item.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: pk
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: libtorrent::dht::find_data::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: libtorrent::dht::get_item::done
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::find_data::done
    - target
    - item_target_id
    - salt
    - empty
    - pk
    - is_mutable
    - TORRENT_ASSERT
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: void get_item::done()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_item.cpp:183,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_item.cpp:187,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/kademlia/get_item.cpp:188,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_item.cpp:188,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_item.cpp:190,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_item.cpp:194,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_item.cpp:195,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_item.cpp:198,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_item.cpp:199,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/kademlia/get_item.cpp:202,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/get_item.cpp:205,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/get_item.cpp:205,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_item.cpp:209,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/kademlia/get_item.cpp:213,1
    - Dst: static_cast<get_item*>
      Src: /src/libtorrent/src/kademlia/get_item.cpp:216,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_item.cpp:216,1
    - Dst: libtorrent::dht::find_data_observer::reply
      Src: /src/libtorrent/src/kademlia/get_item.cpp:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::get_item_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - bdecode_node::dict_find
    - message::dict_find_dict
    - std::memcpy
    - public_key::bytes::data
    - signature::bytes::data
    - bdecode_node::int_value
    - algorithm
    - bdecode_node::string_length
    - bdecode_node::dict_find_int
    - static_cast<void*>
    - static_cast<get_item*>
    - sequence_number
    - timeout
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    - libtorrent::dht::find_data_observer::reply
    linkageType: ''
    returnType: void
    signature: void get_item_observer::reply(msg const& m)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:61,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:63,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/get_item.cpp:63,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:64,1
    - Dst: assign
      Src: /src/libtorrent/src/kademlia/get_item.cpp:66,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:71,1
    - Dst: libtorrent::dht::get_item::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:72,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/get_item.cpp:80,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:81,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:82,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:87,1
    - Dst: seq
      Src: /src/libtorrent/src/kademlia/get_item.cpp:87,1
    - Dst: assign
      Src: /src/libtorrent/src/kademlia/get_item.cpp:89,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - ' v'
    - ' pk'
    - seq
    - ' sig'
    argTypes:
    - bdecode_node
    - public_key
    - sequence_number
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 100
    functionName: libtorrent::dht::get_item::got_data
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::get_item::done
    - item_target_id
    - target
    - salt
    - empty
    - assign
    - seq
    - data_section
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: "void get_item::got_data(bdecode_node const& v,\n\tpublic_key const&
      pk,\n\tsequence_number const seq,\n\tsignature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:107,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: libtorrent::dht::get_item::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item::get_item(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      data_callback dcallback\n\t, nodes_callback ncallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:119,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:119,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' pk'
    - salt
    - dcallback
    - ncallback
    argTypes:
    - node
    - public_key
    - span<char const>
    - data_callback
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: libtorrent::dht::get_item::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - item_target_id
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item::get_item(\n\tnode& dht_node\n\t, public_key const&
      pk\n\t, span<char const> salt\n\t, data_callback dcallback\n\t, nodes_callback
      ncallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: libtorrent::dht::get_item::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_item::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_item.cpp:131,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_item.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::get_item::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr get_item::new_observer(udp::endpoint const& ep\n\t, node_id
      const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:147,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_item.cpp:149,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_item.cpp:151,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_item.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: libtorrent::dht::get_item::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::invoke
    - target
    - observer_ptr::target_ep
    - stats_counters
    linkageType: ''
    returnType: bool
    signature: bool get_item::invoke(observer_ptr o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::find_data::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:157,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/get_item.cpp:159,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:159,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:164,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/get_item.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: pk
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: libtorrent::dht::find_data::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: libtorrent::dht::get_item::done
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::find_data::done
    - target
    - item_target_id
    - salt
    - empty
    - pk
    - is_mutable
    - TORRENT_ASSERT
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: void get_item::done()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_item.cpp:183,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_item.cpp:187,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/kademlia/get_item.cpp:188,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_item.cpp:188,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_item.cpp:190,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_item.cpp:194,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_item.cpp:195,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_item.cpp:198,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_item.cpp:199,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/kademlia/get_item.cpp:202,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/get_item.cpp:205,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/get_item.cpp:205,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_item.cpp:209,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/kademlia/get_item.cpp:213,1
    - Dst: static_cast<get_item*>
      Src: /src/libtorrent/src/kademlia/get_item.cpp:216,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_item.cpp:216,1
    - Dst: libtorrent::dht::find_data_observer::reply
      Src: /src/libtorrent/src/kademlia/get_item.cpp:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::get_item_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - bdecode_node::dict_find
    - message::dict_find_dict
    - std::memcpy
    - public_key::bytes::data
    - signature::bytes::data
    - bdecode_node::int_value
    - algorithm
    - bdecode_node::string_length
    - bdecode_node::dict_find_int
    - static_cast<void*>
    - static_cast<get_item*>
    - sequence_number
    - timeout
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    - libtorrent::dht::find_data_observer::reply
    linkageType: ''
    returnType: void
    signature: void get_item_observer::reply(msg const& m)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:61,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:63,1
    - Dst: data_section
      Src: /src/libtorrent/src/kademlia/get_item.cpp:63,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:64,1
    - Dst: assign
      Src: /src/libtorrent/src/kademlia/get_item.cpp:66,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:71,1
    - Dst: libtorrent::dht::get_item::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:72,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/get_item.cpp:80,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:81,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:82,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:87,1
    - Dst: seq
      Src: /src/libtorrent/src/kademlia/get_item.cpp:87,1
    - Dst: assign
      Src: /src/libtorrent/src/kademlia/get_item.cpp:89,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - ' v'
    - ' pk'
    - seq
    - ' sig'
    argTypes:
    - bdecode_node
    - public_key
    - sequence_number
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 100
    functionName: libtorrent::dht::get_item::got_data
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::get_item::done
    - item_target_id
    - target
    - salt
    - empty
    - assign
    - seq
    - data_section
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: "void get_item::got_data(bdecode_node const& v,\n\tpublic_key const&
      pk,\n\tsequence_number const seq,\n\tsignature const& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:107,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    - ncallback
    argTypes:
    - node
    - node_id
    - data_callback
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: libtorrent::dht::get_item::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item::get_item(\n\tnode& dht_node\n\t, node_id const& target\n\t,
      data_callback dcallback\n\t, nodes_callback ncallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:119,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:119,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/get_item.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' dht_node'
    - ' pk'
    - salt
    - dcallback
    - ncallback
    argTypes:
    - node
    - public_key
    - span<char const>
    - data_callback
    - nodes_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: libtorrent::dht::get_item::get_item
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - item_target_id
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item::get_item(\n\tnode& dht_node\n\t, public_key const&
      pk\n\t, span<char const> salt\n\t, data_callback dcallback\n\t, nodes_callback
      ncallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: libtorrent::dht::get_item::name
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * get_item::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_rpc::allocate_observer
      Src: /src/libtorrent/src/kademlia/get_item.cpp:131,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/get_item.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ep'
    - ' id'
    argTypes:
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::get_item::new_observer
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::allocate_observer
    - self
    linkageType: ''
    returnType: observer_ptr
    signature: "observer_ptr get_item::new_observer(udp::endpoint const& ep\n\t, node_id
      const& id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:147,1
    - Dst: stats_counters
      Src: /src/libtorrent/src/kademlia/get_item.cpp:149,1
    - Dst: m_rpc::invoke
      Src: /src/libtorrent/src/kademlia/get_item.cpp:151,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/get_item.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: libtorrent::dht::get_item::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - m_rpc::invoke
    - target
    - observer_ptr::target_ep
    - stats_counters
    linkageType: ''
    returnType: bool
    signature: bool get_item::invoke(observer_ptr o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::find_data::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:157,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/get_item.cpp:159,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/get_item.cpp:159,1
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/get_item.cpp:164,1
    - Dst: is_mutable
      Src: /src/libtorrent/src/kademlia/get_item.cpp:167,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: target
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: item_target_id
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: salt
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: pk
      Src: /src/libtorrent/src/kademlia/get_item.cpp:169,1
    - Dst: libtorrent::dht::find_data::done
      Src: /src/libtorrent/src/kademlia/get_item.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: libtorrent::dht::get_item::done
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::find_data::done
    - target
    - item_target_id
    - salt
    - empty
    - pk
    - is_mutable
    - TORRENT_ASSERT
    - m_data_callback
    linkageType: ''
    returnType: void
    signature: void get_item::done()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/get_item.cpp:183,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/get_item.cpp:187,1
    - Dst: static_cast<void*>
      Src: /src/libtorrent/src/kademlia/get_item.cpp:188,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_item.cpp:188,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_item.cpp:190,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_item.cpp:194,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_item.cpp:195,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: public_key::bytes::data
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_item.cpp:196,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/get_item.cpp:198,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/get_item.cpp:199,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: signature::bytes::data
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/get_item.cpp:200,1
    - Dst: bdecode_node::dict_find_int
      Src: /src/libtorrent/src/kademlia/get_item.cpp:202,1
    - Dst: sequence_number
      Src: /src/libtorrent/src/kademlia/get_item.cpp:205,1
    - Dst: bdecode_node::int_value
      Src: /src/libtorrent/src/kademlia/get_item.cpp:205,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/get_item.cpp:209,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/kademlia/get_item.cpp:213,1
    - Dst: static_cast<get_item*>
      Src: /src/libtorrent/src/kademlia/get_item.cpp:216,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/get_item.cpp:216,1
    - Dst: libtorrent::dht::find_data_observer::reply
      Src: /src/libtorrent/src/kademlia/get_item.cpp:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::get_item_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/get_item.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - bdecode_node::dict_find
    - message::dict_find_dict
    - std::memcpy
    - public_key::bytes::data
    - signature::bytes::data
    - bdecode_node::int_value
    - algorithm
    - bdecode_node::string_length
    - bdecode_node::dict_find_int
    - static_cast<void*>
    - static_cast<get_item*>
    - sequence_number
    - timeout
    - bdecode_node::dict_find_string
    - bdecode_node::string_ptr
    - libtorrent::dht::find_data_observer::reply
    linkageType: ''
    returnType: void
    signature: void get_item_observer::reply(msg const& m)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:44,1
    - Dst: node_ids_t
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:44,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:47,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:48,1
    - Dst: node_ids_t::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:53,1
    - Dst: auto::list_size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:55,1
    - Dst: auto::list_at
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:57,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:58,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:59,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:60,1
    - Dst: node_id::size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:62,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:64,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:65,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:66,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:67,1
    - Dst: node_ids_t::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - ' e'
    - key
    argTypes:
    - bdecode_node
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: libtorrent::dht::extract_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 0
    functionsReached:
    - dict_find_string_value
    - bdecode_node::type
    - node_id
    - libtorrent::aux::read_v6_address
    - auto::list_size
    - node_id::size
    - node_ids_t::emplace_back
    - auto::size
    - auto::list_at
    - dict_find_list
    - node_ids_t
    - bdecode_node::string_length
    - type
    - libtorrent::aux::read_v4_address
    - address
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: node_ids_t
    signature: node_ids_t extract_node_ids(bdecode_node const& e, string_view key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:80,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:85,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - entry::list
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_nodes(std::vector<udp::endpoint> const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:80,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:85,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_endpoint
    - entry::list
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_nodes(std::vector<udp::endpoint> const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:94,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:95,1
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:97,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:98,1
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:99,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::dht_state::clear
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::dht_state::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void dht_state::clear()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:107,1
    - Dst: libtorrent::dht::extract_node_ids
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:109,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:111,1
    - Dst: aux::read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:112,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:113,1
    - Dst: aux::read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::read_dht_state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 4
    functionsReached:
    - dict_find_list
    - libtorrent::dht::extract_node_ids
    - aux::read_endpoint_list<udp::endpoint>
    - type
    linkageType: ''
    returnType: dht_state
    signature: dht_state read_dht_state(bdecode_node const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: second::begin
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: second::end
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:126,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:126,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:127,1
    - Dst: libtorrent::dht::save_nodes
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:129,1
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:130,1
    - Dst: libtorrent::dht::save_nodes
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:131,1
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::save_dht_state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 6
    functionsReached:
    - second::begin
    - std::move
    - list
    - libtorrent::dht::save_nodes
    - libtorrent::aux::write_address
    - std::copy
    - entry::list
    - second::end
    - std::back_inserter
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_dht_state(dht_state const& state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:44,1
    - Dst: node_ids_t
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:44,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:47,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:48,1
    - Dst: node_ids_t::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:53,1
    - Dst: auto::list_size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:55,1
    - Dst: auto::list_at
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:57,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:58,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:59,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:60,1
    - Dst: node_id::size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:62,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:64,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:65,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:66,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:67,1
    - Dst: node_ids_t::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - ' e'
    - key
    argTypes:
    - bdecode_node
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: libtorrent::dht::extract_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 1
    functionsReached:
    - dict_find_string_value
    - bdecode_node::type
    - node_id
    - libtorrent::aux::read_v6_address
    - auto::list_size
    - node_id::size
    - node_ids_t::emplace_back
    - auto::size
    - auto::list_at
    - dict_find_list
    - node_ids_t
    - bdecode_node::string_length
    - type
    - libtorrent::aux::read_v4_address
    - address
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: node_ids_t
    signature: node_ids_t extract_node_ids(bdecode_node const& e, string_view key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:80,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:85,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_endpoint
    - entry::list
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_nodes(std::vector<udp::endpoint> const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:80,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:85,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_endpoint
    - entry::list
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_nodes(std::vector<udp::endpoint> const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:94,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:95,1
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:97,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:98,1
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:99,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::dht_state::clear
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::dht_state::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void dht_state::clear()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:107,1
    - Dst: libtorrent::dht::extract_node_ids
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:109,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:111,1
    - Dst: aux::read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:112,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:113,1
    - Dst: aux::read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::read_dht_state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 4
    functionsReached:
    - dict_find_list
    - libtorrent::dht::extract_node_ids
    - aux::read_endpoint_list<udp::endpoint>
    - type
    linkageType: ''
    returnType: dht_state
    signature: dht_state read_dht_state(bdecode_node const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: second::begin
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: second::end
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:126,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:126,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:127,1
    - Dst: libtorrent::dht::save_nodes
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:129,1
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:130,1
    - Dst: libtorrent::dht::save_nodes
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:131,1
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::save_dht_state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 6
    functionsReached:
    - second::begin
    - std::move
    - list
    - libtorrent::dht::save_nodes
    - libtorrent::aux::write_address
    - std::copy
    - entry::list
    - second::end
    - std::back_inserter
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_dht_state(dht_state const& state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:44,1
    - Dst: node_ids_t
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:44,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:47,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:48,1
    - Dst: node_ids_t::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:53,1
    - Dst: auto::list_size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:55,1
    - Dst: auto::list_at
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:57,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:58,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:59,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:60,1
    - Dst: node_id::size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:62,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:64,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:65,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:66,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:67,1
    - Dst: node_ids_t::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - ' e'
    - key
    argTypes:
    - bdecode_node
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: libtorrent::dht::extract_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 2
    functionsReached:
    - dict_find_string_value
    - bdecode_node::type
    - node_id
    - libtorrent::aux::read_v6_address
    - auto::list_size
    - node_id::size
    - node_ids_t::emplace_back
    - auto::size
    - auto::list_at
    - dict_find_list
    - node_ids_t
    - bdecode_node::string_length
    - type
    - libtorrent::aux::read_v4_address
    - address
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: node_ids_t
    signature: node_ids_t extract_node_ids(bdecode_node const& e, string_view key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:80,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:85,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::write_endpoint
    - entry::list
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_nodes(std::vector<udp::endpoint> const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:80,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:85,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::write_endpoint
    - entry::list
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_nodes(std::vector<udp::endpoint> const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:94,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:95,1
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:97,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:98,1
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:99,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::dht_state::clear
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::dht_state::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void dht_state::clear()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:107,1
    - Dst: libtorrent::dht::extract_node_ids
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:109,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:111,1
    - Dst: aux::read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:112,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:113,1
    - Dst: aux::read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::read_dht_state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 4
    functionsReached:
    - dict_find_list
    - libtorrent::dht::extract_node_ids
    - aux::read_endpoint_list<udp::endpoint>
    - type
    linkageType: ''
    returnType: dht_state
    signature: dht_state read_dht_state(bdecode_node const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: second::begin
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: second::end
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:126,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:126,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:127,1
    - Dst: libtorrent::dht::save_nodes
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:129,1
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:130,1
    - Dst: libtorrent::dht::save_nodes
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:131,1
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::save_dht_state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 6
    functionsReached:
    - second::begin
    - std::move
    - list
    - libtorrent::dht::save_nodes
    - libtorrent::aux::write_address
    - std::copy
    - entry::list
    - second::end
    - std::back_inserter
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_dht_state(dht_state const& state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:44,1
    - Dst: node_ids_t
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:44,1
    - Dst: dict_find_string_value
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:47,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:48,1
    - Dst: node_ids_t::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:50,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:53,1
    - Dst: auto::list_size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:55,1
    - Dst: auto::list_at
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:57,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:58,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:59,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:60,1
    - Dst: node_id::size
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:62,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:64,1
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:65,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:66,1
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:67,1
    - Dst: node_ids_t::emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - ' e'
    - key
    argTypes:
    - bdecode_node
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: libtorrent::dht::extract_node_ids
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 3
    functionsReached:
    - dict_find_string_value
    - bdecode_node::type
    - node_id
    - libtorrent::aux::read_v6_address
    - auto::list_size
    - node_id::size
    - node_ids_t::emplace_back
    - auto::size
    - auto::list_at
    - dict_find_list
    - node_ids_t
    - bdecode_node::string_length
    - type
    - libtorrent::aux::read_v4_address
    - address
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: node_ids_t
    signature: node_ids_t extract_node_ids(bdecode_node const& e, string_view key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:80,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:85,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::write_endpoint
    - entry::list
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_nodes(std::vector<udp::endpoint> const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:80,1
    - Dst: libtorrent::aux::write_endpoint
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:85,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<udp::endpoint>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::save_nodes
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::write_endpoint
    - entry::list
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_nodes(std::vector<udp::endpoint> const& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:94,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:95,1
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:97,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:98,1
    - Dst: libtorrent::dht::dht_state::clear
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:99,1
    - Dst: shrink_to_fit
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: libtorrent::dht::dht_state::clear
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::dht_state::clear
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void dht_state::clear()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:107,1
    - Dst: libtorrent::dht::extract_node_ids
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:109,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:111,1
    - Dst: aux::read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:112,1
    - Dst: dict_find_list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:113,1
    - Dst: aux::read_endpoint_list<udp::endpoint>
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::read_dht_state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 4
    functionsReached:
    - dict_find_list
    - libtorrent::dht::extract_node_ids
    - aux::read_endpoint_list<udp::endpoint>
    - type
    linkageType: ''
    returnType: dht_state
    signature: dht_state read_dht_state(bdecode_node const& e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:121,1
    - Dst: std::copy
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: second::begin
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: second::end
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:125,1
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:126,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:126,1
    - Dst: emplace_back
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:127,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:127,1
    - Dst: libtorrent::dht::save_nodes
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:129,1
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:130,1
    - Dst: libtorrent::dht::save_nodes
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:131,1
    - Dst: entry::list
      Src: /src/libtorrent/src/kademlia/dht_state.cpp:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::save_dht_state
    functionSourceFile: /src/libtorrent/src/kademlia/dht_state.cpp
    functionUses: 6
    functionsReached:
    - second::begin
    - std::move
    - list
    - libtorrent::dht::save_nodes
    - libtorrent::aux::write_address
    - std::copy
    - entry::list
    - second::end
    - std::back_inserter
    - emplace_back
    linkageType: ''
    returnType: entry
    signature: entry save_dht_state(dht_state const& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::dos_blocker::dos_blocker
    functionSourceFile: /src/libtorrent/src/kademlia/dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - min_time
    linkageType: ''
    returnType: void
    signature: void dos_blocker::dos_blocker()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:56,1
    - Dst: dht_logger*::should_log
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:82,1
    - Dst: dht_logger*::log
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:84,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:85,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:86,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:86,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:90,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:94,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:103,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - ' addr'
    - now
    - logger
    argTypes:
    - address
    - time_point
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 113
    functionName: libtorrent::dht::dos_blocker::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - dht_logger*::should_log
    - print_address
    - dht_logger*::log
    - seconds
    - total_milliseconds
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool dos_blocker::incoming(address const& addr, time_point const now,
      dht_logger* logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::dos_blocker::dos_blocker
    functionSourceFile: /src/libtorrent/src/kademlia/dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - min_time
    linkageType: ''
    returnType: void
    signature: void dos_blocker::dos_blocker()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:56,1
    - Dst: dht_logger*::should_log
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:82,1
    - Dst: dht_logger*::log
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:84,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:85,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:86,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:86,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:90,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:94,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:103,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - ' addr'
    - now
    - logger
    argTypes:
    - address
    - time_point
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 113
    functionName: libtorrent::dht::dos_blocker::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - dht_logger*::should_log
    - print_address
    - dht_logger*::log
    - seconds
    - total_milliseconds
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool dos_blocker::incoming(address const& addr, time_point const now,
      dht_logger* logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::dos_blocker::dos_blocker
    functionSourceFile: /src/libtorrent/src/kademlia/dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - min_time
    linkageType: ''
    returnType: void
    signature: void dos_blocker::dos_blocker()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:56,1
    - Dst: dht_logger*::should_log
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:82,1
    - Dst: dht_logger*::log
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:84,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:85,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:86,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:86,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:90,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:94,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:103,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - ' addr'
    - now
    - logger
    argTypes:
    - address
    - time_point
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 113
    functionName: libtorrent::dht::dos_blocker::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - dht_logger*::should_log
    - print_address
    - dht_logger*::log
    - seconds
    - total_milliseconds
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool dos_blocker::incoming(address const& addr, time_point const now,
      dht_logger* logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_time
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::dos_blocker::dos_blocker
    functionSourceFile: /src/libtorrent/src/kademlia/dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - min_time
    linkageType: ''
    returnType: void
    signature: void dos_blocker::dos_blocker()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:56,1
    - Dst: dht_logger*::should_log
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:82,1
    - Dst: dht_logger*::log
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:84,1
    - Dst: print_address
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:85,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:86,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:86,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:90,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:94,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:103,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/dos_blocker.cpp:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - ' addr'
    - now
    - logger
    argTypes:
    - address
    - time_point
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 113
    functionName: libtorrent::dht::dos_blocker::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/dos_blocker.cpp
    functionUses: 0
    functionsReached:
    - dht_logger*::should_log
    - print_address
    - dht_logger*::log
    - seconds
    - total_milliseconds
    - TORRENT_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool dos_blocker::incoming(address const& addr, time_point const now,
      dht_logger* logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    argTypes:
    - node
    - node_id
    - data_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::sample_infohashes::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes::sample_infohashes(node& dht_node\n\t, node_id
      const& target\n\t, data_callback dcallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::sample_infohashes::name
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * sample_infohashes::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' nid'
    - interval
    - num
    - samples
    - nodes
    argTypes:
    - sha1_hash
    - time_duration
    - int
    - std::vector<sha1_hash>
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: libtorrent::dht::sample_infohashes::got_samples
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - m_data_callback
    - std::move
    - done
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes::got_samples(sha1_hash const& nid\n\t, time_duration
      interval\n\t, int num, std::vector<sha1_hash> samples\n\t, std::vector<std::pair<sha1_hash,
      udp::endpoint>> nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::sample_infohashes_observer::sample_infohashes_observer
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes_observer::sample_infohashes_observer(\n\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:74,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:78,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:79,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:81,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:87,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:88,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:89,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:90,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:93,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:94,1
    - Dst: read_node_endpoint
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:98,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:99,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:103,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:104,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:107,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:108,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:110,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:114,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:118,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:119,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:121,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:125,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:126,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:129,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:130,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:132,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:136,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:137,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:139,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:139,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: static_cast<sample_infohashes*>
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:142,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:142,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:148,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:149,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:151,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 159
    functionName: libtorrent::dht::sample_infohashes_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - std::vector::size
    - std::move
    - std::vector::emplace_back
    - seconds
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - static_cast<sample_infohashes*>
    - bdecode_node::string_ptr
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::address_size
    - node_id
    - libtorrent::aux::max
    - algorithm
    - timeout
    - bdecode_node::dict_find_string
    - message::dict_find_dict
    - std::memcpy
    - std::vector::data
    - read_node_endpoint
    - bdecode_node::dict_find_int_value
    linkageType: ''
    returnType: void
    signature: void sample_infohashes_observer::reply(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    argTypes:
    - node
    - node_id
    - data_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::sample_infohashes::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes::sample_infohashes(node& dht_node\n\t, node_id
      const& target\n\t, data_callback dcallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::sample_infohashes::name
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * sample_infohashes::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' nid'
    - interval
    - num
    - samples
    - nodes
    argTypes:
    - sha1_hash
    - time_duration
    - int
    - std::vector<sha1_hash>
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: libtorrent::dht::sample_infohashes::got_samples
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - m_data_callback
    - std::move
    - done
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes::got_samples(sha1_hash const& nid\n\t, time_duration
      interval\n\t, int num, std::vector<sha1_hash> samples\n\t, std::vector<std::pair<sha1_hash,
      udp::endpoint>> nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::sample_infohashes_observer::sample_infohashes_observer
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes_observer::sample_infohashes_observer(\n\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:74,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:78,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:79,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:81,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:87,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:88,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:89,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:90,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:93,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:94,1
    - Dst: read_node_endpoint
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:98,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:99,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:103,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:104,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:107,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:108,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:110,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:114,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:118,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:119,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:121,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:125,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:126,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:129,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:130,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:132,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:136,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:137,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:139,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:139,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: static_cast<sample_infohashes*>
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:142,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:142,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:148,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:149,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:151,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 159
    functionName: libtorrent::dht::sample_infohashes_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - std::vector::size
    - std::move
    - std::vector::emplace_back
    - seconds
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - static_cast<sample_infohashes*>
    - bdecode_node::string_ptr
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::address_size
    - node_id
    - libtorrent::aux::max
    - algorithm
    - timeout
    - bdecode_node::dict_find_string
    - message::dict_find_dict
    - std::memcpy
    - std::vector::data
    - read_node_endpoint
    - bdecode_node::dict_find_int_value
    linkageType: ''
    returnType: void
    signature: void sample_infohashes_observer::reply(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    argTypes:
    - node
    - node_id
    - data_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::sample_infohashes::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes::sample_infohashes(node& dht_node\n\t, node_id
      const& target\n\t, data_callback dcallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::sample_infohashes::name
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * sample_infohashes::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' nid'
    - interval
    - num
    - samples
    - nodes
    argTypes:
    - sha1_hash
    - time_duration
    - int
    - std::vector<sha1_hash>
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: libtorrent::dht::sample_infohashes::got_samples
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - m_data_callback
    - std::move
    - done
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes::got_samples(sha1_hash const& nid\n\t, time_duration
      interval\n\t, int num, std::vector<sha1_hash> samples\n\t, std::vector<std::pair<sha1_hash,
      udp::endpoint>> nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::sample_infohashes_observer::sample_infohashes_observer
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes_observer::sample_infohashes_observer(\n\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:74,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:78,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:79,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:81,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:87,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:88,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:89,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:90,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:93,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:94,1
    - Dst: read_node_endpoint
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:98,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:99,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:103,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:104,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:107,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:108,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:110,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:114,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:118,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:119,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:121,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:125,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:126,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:129,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:130,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:132,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:136,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:137,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:139,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:139,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: static_cast<sample_infohashes*>
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:142,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:142,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:148,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:149,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:151,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 159
    functionName: libtorrent::dht::sample_infohashes_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - std::vector::size
    - std::move
    - std::vector::emplace_back
    - seconds
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - static_cast<sample_infohashes*>
    - bdecode_node::string_ptr
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::address_size
    - node_id
    - libtorrent::aux::max
    - algorithm
    - timeout
    - bdecode_node::dict_find_string
    - message::dict_find_dict
    - std::memcpy
    - std::vector::data
    - read_node_endpoint
    - bdecode_node::dict_find_int_value
    linkageType: ''
    returnType: void
    signature: void sample_infohashes_observer::reply(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' dht_node'
    - ' target'
    - dcallback
    argTypes:
    - node
    - node_id
    - data_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: libtorrent::dht::sample_infohashes::sample_infohashes
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes::sample_infohashes(node& dht_node\n\t, node_id
      const& target\n\t, data_callback dcallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::dht::sample_infohashes::name
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * sample_infohashes::name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data_callback
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:61,1
    - Dst: done
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' nid'
    - interval
    - num
    - samples
    - nodes
    argTypes:
    - sha1_hash
    - time_duration
    - int
    - std::vector<sha1_hash>
    - std::vector<std::pair<sha1_hash, udp::endpoint>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: libtorrent::dht::sample_infohashes::got_samples
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - m_data_callback
    - std::move
    - done
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes::got_samples(sha1_hash const& nid\n\t, time_duration
      interval\n\t, int num, std::vector<sha1_hash> samples\n\t, std::vector<std::pair<sha1_hash,
      udp::endpoint>> nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::sample_infohashes_observer::sample_infohashes_observer
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void sample_infohashes_observer::sample_infohashes_observer(\n\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:74,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:78,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:79,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:81,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:87,1
    - Dst: libtorrent::aux::address_size
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:88,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:89,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:90,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:93,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:94,1
    - Dst: read_node_endpoint
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:98,1
    - Dst: std::vector::emplace_back
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:99,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:103,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:104,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:107,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:108,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:110,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:114,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:118,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:119,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:121,1
    - Dst: bdecode_node::dict_find_int_value
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:125,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:126,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:129,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:130,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:132,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:136,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:137,1
    - Dst: aux::numeric_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:139,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:139,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: std::vector::data
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: std::vector::size
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:140,1
    - Dst: static_cast<sample_infohashes*>
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:142,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:142,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:143,1
    - Dst: get_observer
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:148,1
    - Dst: algorithm
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:149,1
    - Dst: timeout
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:151,1
    - Dst: libtorrent::dht::traversal_observer::reply
      Src: /src/libtorrent/src/kademlia/sample_infohashes.cpp:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 159
    functionName: libtorrent::dht::sample_infohashes_observer::reply
    functionSourceFile: /src/libtorrent/src/kademlia/sample_infohashes.cpp
    functionUses: 0
    functionsReached:
    - get_observer
    - std::vector::size
    - std::move
    - std::vector::emplace_back
    - seconds
    - bdecode_node::string_length
    - libtorrent::dht::traversal_observer::reply
    - static_cast<sample_infohashes*>
    - bdecode_node::string_ptr
    - aux::numeric_cast<std::size_t>
    - libtorrent::aux::address_size
    - node_id
    - libtorrent::aux::max
    - algorithm
    - timeout
    - bdecode_node::dict_find_string
    - message::dict_find_dict
    - std::memcpy
    - std::vector::data
    - read_node_endpoint
    - bdecode_node::dict_find_int_value
    linkageType: ''
    returnType: void
    signature: void sample_infohashes_observer::reply(msg const& m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<key_desc_t const>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<bdecode_node>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<bdecode_node>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:46,1
    - Dst: non_owning
      Src: /src/libtorrent/src/kademlia/msg.cpp:50,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:54,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/msg.cpp:61,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/kademlia/msg.cpp:74,1
    - Dst: type
      Src: /src/libtorrent/src/kademlia/msg.cpp:76,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:77,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/msg.cpp:90,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/msg.cpp:91,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:96,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:126,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - ' message'
    - desc
    - ret
    - error
    argTypes:
    - bdecode_node
    - span<key_desc_t const>
    - span<bdecode_node>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::verify_message_impl
    functionSourceFile: /src/libtorrent/src/kademlia/msg.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node::dict_find
    - bdecode_node::type
    - non_owning
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<bdecode_node>::size
    - string_length
    - type
    - libtorrent::dht::clear
    - span<key_desc_t const>::size
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: bool
    signature: "bool verify_message_impl(bdecode_node const& message, span<key_desc_t
      const> desc\n\t, span<bdecode_node> ret, span<char> error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<key_desc_t const>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<bdecode_node>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<bdecode_node>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:46,1
    - Dst: non_owning
      Src: /src/libtorrent/src/kademlia/msg.cpp:50,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:54,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/msg.cpp:61,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/kademlia/msg.cpp:74,1
    - Dst: type
      Src: /src/libtorrent/src/kademlia/msg.cpp:76,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:77,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/msg.cpp:90,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/msg.cpp:91,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:96,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:126,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - ' message'
    - desc
    - ret
    - error
    argTypes:
    - bdecode_node
    - span<key_desc_t const>
    - span<bdecode_node>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::verify_message_impl
    functionSourceFile: /src/libtorrent/src/kademlia/msg.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node::dict_find
    - bdecode_node::type
    - non_owning
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<bdecode_node>::size
    - string_length
    - type
    - libtorrent::dht::clear
    - span<key_desc_t const>::size
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: bool
    signature: "bool verify_message_impl(bdecode_node const& message, span<key_desc_t
      const> desc\n\t, span<bdecode_node> ret, span<char> error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<key_desc_t const>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<bdecode_node>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<bdecode_node>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:46,1
    - Dst: non_owning
      Src: /src/libtorrent/src/kademlia/msg.cpp:50,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:54,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/msg.cpp:61,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/kademlia/msg.cpp:74,1
    - Dst: type
      Src: /src/libtorrent/src/kademlia/msg.cpp:76,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:77,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/msg.cpp:90,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/msg.cpp:91,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:96,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:126,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - ' message'
    - desc
    - ret
    - error
    argTypes:
    - bdecode_node
    - span<key_desc_t const>
    - span<bdecode_node>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::verify_message_impl
    functionSourceFile: /src/libtorrent/src/kademlia/msg.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node::dict_find
    - bdecode_node::type
    - non_owning
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<bdecode_node>::size
    - string_length
    - type
    - libtorrent::dht::clear
    - span<key_desc_t const>::size
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: bool
    signature: "bool verify_message_impl(bdecode_node const& message, span<key_desc_t
      const> desc\n\t, span<bdecode_node> ret, span<char> error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<key_desc_t const>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<bdecode_node>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:44,1
    - Dst: span<bdecode_node>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:46,1
    - Dst: non_owning
      Src: /src/libtorrent/src/kademlia/msg.cpp:50,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:54,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/src/kademlia/msg.cpp:61,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:63,1
    - Dst: bdecode_node::dict_find
      Src: /src/libtorrent/src/kademlia/msg.cpp:74,1
    - Dst: type
      Src: /src/libtorrent/src/kademlia/msg.cpp:76,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:77,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:81,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/msg.cpp:90,1
    - Dst: string_length
      Src: /src/libtorrent/src/kademlia/msg.cpp:91,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/src/kademlia/msg.cpp:96,1
    - Dst: std::snprintf
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: span<char>::data
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: span<char>::size
      Src: /src/libtorrent/src/kademlia/msg.cpp:99,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:107,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:112,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:121,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/msg.cpp:126,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - ' message'
    - desc
    - ret
    - error
    argTypes:
    - bdecode_node
    - span<key_desc_t const>
    - span<bdecode_node>
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::verify_message_impl
    functionSourceFile: /src/libtorrent/src/kademlia/msg.cpp
    functionUses: 0
    functionsReached:
    - bdecode_node::dict_find
    - bdecode_node::type
    - non_owning
    - std::snprintf
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<bdecode_node>::size
    - string_length
    - type
    - libtorrent::dht::clear
    - span<key_desc_t const>::size
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: bool
    signature: "bool verify_message_impl(bdecode_node const& message, span<key_desc_t
      const> desc\n\t, span<bdecode_node> ret, span<char> error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::observer::get_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - get_node
    linkageType: ''
    returnType: dht_observer
    signature: dht_observer * observer::get_observer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:89,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:91,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:92,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:95,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: libtorrent::dht::observer::set_target
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - port
    - time_now
    - address
    - libtorrent::aux::is_v6
    linkageType: ''
    returnType: void
    signature: void observer::set_target(udp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: address_v6
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:107,1
    - Dst: address_v4
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::observer::target_addr
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address observer::target_addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::observer::target_ep
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::observer::target_addr
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint observer::target_ep() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer::abort
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:121,1
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:122,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: libtorrent::dht::observer::abort
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 1
    functionsReached:
    - failed
    - self
    - libtorrent::dht::observer::abort
    linkageType: ''
    returnType: void
    signature: void observer::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finished
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:129,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: libtorrent::dht::observer::done
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - self
    - finished
    linkageType: ''
    returnType: void
    signature: void observer::done()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:135,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::observer::short_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - failed
    - self
    linkageType: ''
    returnType: void
    signature: void observer::short_timeout()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:142,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: libtorrent::dht::observer::timeout
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - failed
    - self
    linkageType: ''
    returnType: void
    signature: void observer::timeout()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resort_result
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: libtorrent::dht::observer::set_id
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - resort_result
    linkageType: ''
    returnType: void
    signature: void observer::set_id(node_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:171,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' our_id'
    - ' settings'
    - ' table'
    - sock
    - sock_man
    - log
    argTypes:
    - node_id
    - aux::session_settings
    - routing_table
    - aux::listen_socket_handle
    - socket_manager*
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 185
    functionName: libtorrent::dht::rpc_manager::rpc_manager
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void rpc_manager::rpc_manager(node_id const& our_id\n\t, aux::session_settings
      const& settings\n\t, routing_table& table\n\t, aux::listen_socket_handle sock\n\t,
      socket_manager* sock_man\n\t, dht_logger* log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:189,1
    - Dst: second::abort
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: rpc_manager::~rpc_manager()
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - second::abort
    linkageType: ''
    returnType: void
    signature: void rpc_manager::~rpc_manager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_next_size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:198,1
    - Dst: malloc
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: libtorrent::dht::rpc_manager::allocate_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - set_next_size
    linkageType: ''
    returnType: void
    signature: void * rpc_manager::allocate_observer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::rpc_manager::free_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rpc_manager::free_observer(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: libtorrent::dht::rpc_manager::allocation_size
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rpc_manager::allocation_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:224,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:225,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: libtorrent::dht::rpc_manager::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void rpc_manager::check_invariant() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:234,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:236,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:241,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:243,1
    - Dst: auto::second::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:244,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:247,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:248,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:250,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 254
    functionName: libtorrent::dht::rpc_manager::unreachable
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - end
    - auto::second::target_ep
    - print_endpoint
    - TORRENT_ASSERT
    - log
    - observer_ptr::algorithm
    - should_log
    - observer_ptr::timeout
    linkageType: ''
    returnType: void
    signature: void rpc_manager::unreachable(udp::endpoint const& ep)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:263,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:263,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:264,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:269,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:270,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:272,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: equal_range
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:276,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:279,1
    - Dst: auto::second::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:279,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:281,1
    - Dst: native_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:288,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:288,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:290,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:291,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:291,1
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:305,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:308,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:310,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:312,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:316,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:320,1
    - Dst: message::dict_find_list
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:322,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:323,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:324,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:325,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:327,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:328,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:329,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:330,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:331,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:335,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:336,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:336,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:349,1
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:353,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:356,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:360,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:361,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:363,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:367,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:367,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:370,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:375,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:377,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:378,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:378,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:379,1
    - Dst: observer_ptr::reply
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:382,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:385,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:385,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:389,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - ' m'
    - id
    argTypes:
    - msg
    - node_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 390
    functionName: libtorrent::dht::rpc_manager::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - addr::address
    - libtorrent::aux::read_uint16
    - bdecode_node::string_length
    - message::dict_find_list
    - native_endpoint
    - get_bool
    - auto::begin
    - bdecode_node::string_ptr
    - auto::empty
    - bdecode_node::list_size
    - print_endpoint
    - bdecode_node::list_string_value_at
    - log
    - bdecode_node::list_int_value_at
    - node_seen
    - time_now
    - equal_range
    - node_id
    - erase
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - auto::size
    - observer_ptr::algorithm
    - total_milliseconds
    - observer_ptr::timeout
    - bdecode_node::dict_find_string
    - observer_ptr::sent
    - observer_ptr::reply
    - message::dict_find_dict
    - std::uint64_t
    - should_log
    - verify_id
    - message::dict_find_string_value
    - auto::second::target_addr
    linkageType: ''
    returnType: bool
    signature: bool rpc_manager::incoming(msg const& m, node_id* id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:396,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:397,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:401,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:407,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:409,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:409,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:416,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:420,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:424,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:426,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:427,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:428,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:428,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:432,1
    - Dst: observer_ptr::has_short_timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:438,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:441,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:443,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:444,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:445,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:445,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:450,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:454,1
    - Dst: duration_cast<time_duration>
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:454,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::max
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    - Dst: duration_cast<time_duration>
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 462
    functionName: libtorrent::dht::rpc_manager::tick
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - seconds
    - observer_ptr::has_short_timeout
    - std::vector::begin
    - std::min
    - std::max
    - std::vector::end
    - libtorrent::aux::time_now
    - end
    - print_endpoint
    - log
    - erase
    - observer_ptr::algorithm
    - milliseconds
    - observer_ptr::sent
    - std::for_each
    - std::bind
    - std::vector::push_back
    - duration_cast<time_duration>
    - should_log
    - observer_ptr::target_ep
    linkageType: ''
    returnType: time_duration
    signature: time_duration rpc_manager::tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: libtorrent::dht::rpc_manager::add_our_id
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void rpc_manager::add_our_id(entry& e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::rpc_manager::add_our_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:478,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:481,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:483,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:483,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:484,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:489,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:491,1
    - Dst: native_address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:492,1
    - Dst: observer_ptr::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:492,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:494,1
    - Dst: protocol_family_name
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:494,1
    - Dst: observer_ptr::set_target
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:497,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:500,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:502,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:503,1
    - Dst: string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:503,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:504,1
    - Dst: send_packet
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:508,1
    - Dst: emplace
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ' e'
    - ' target_addr'
    - o
    argTypes:
    - entry
    - udp::endpoint
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 518
    functionName: libtorrent::dht::rpc_manager::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - observer_ptr::set_target
    - observer_ptr::target_addr
    - get_bool
    - libtorrent::aux::write_uint16
    - libtorrent::dht::rpc_manager::add_our_id
    - std::uint16_t
    - list
    - emplace
    - print_endpoint
    - log
    - native_address
    - protocol_family_name
    - TORRENT_ASSERT
    - observer_ptr::algorithm
    - std::string::resize
    - random
    - send_packet
    - string
    - should_log
    linkageType: ''
    returnType: bool
    signature: "bool rpc_manager::invoke(entry& e, udp::endpoint const& target_addr\n\t,
      observer_ptr o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:526,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:527,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: observer::~observer()
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void observer::~observer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::observer::get_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - get_node
    linkageType: ''
    returnType: dht_observer
    signature: dht_observer * observer::get_observer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:89,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:91,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:92,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:95,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: libtorrent::dht::observer::set_target
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - port
    - time_now
    - address
    - libtorrent::aux::is_v6
    linkageType: ''
    returnType: void
    signature: void observer::set_target(udp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: address_v6
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:107,1
    - Dst: address_v4
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::observer::target_addr
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 1
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address observer::target_addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::observer::target_ep
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::observer::target_addr
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint observer::target_ep() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer::abort
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:121,1
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:122,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: libtorrent::dht::observer::abort
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 2
    functionsReached:
    - failed
    - self
    - libtorrent::dht::observer::abort
    linkageType: ''
    returnType: void
    signature: void observer::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finished
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:129,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: libtorrent::dht::observer::done
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - self
    - finished
    linkageType: ''
    returnType: void
    signature: void observer::done()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:135,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::observer::short_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - failed
    - self
    linkageType: ''
    returnType: void
    signature: void observer::short_timeout()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:142,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: libtorrent::dht::observer::timeout
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - failed
    - self
    linkageType: ''
    returnType: void
    signature: void observer::timeout()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resort_result
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: libtorrent::dht::observer::set_id
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - resort_result
    linkageType: ''
    returnType: void
    signature: void observer::set_id(node_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:171,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' our_id'
    - ' settings'
    - ' table'
    - sock
    - sock_man
    - log
    argTypes:
    - node_id
    - aux::session_settings
    - routing_table
    - aux::listen_socket_handle
    - socket_manager*
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 185
    functionName: libtorrent::dht::rpc_manager::rpc_manager
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void rpc_manager::rpc_manager(node_id const& our_id\n\t, aux::session_settings
      const& settings\n\t, routing_table& table\n\t, aux::listen_socket_handle sock\n\t,
      socket_manager* sock_man\n\t, dht_logger* log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:189,1
    - Dst: second::abort
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: rpc_manager::~rpc_manager()
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - second::abort
    linkageType: ''
    returnType: void
    signature: void rpc_manager::~rpc_manager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_next_size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:198,1
    - Dst: malloc
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: libtorrent::dht::rpc_manager::allocate_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - set_next_size
    linkageType: ''
    returnType: void
    signature: void * rpc_manager::allocate_observer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::rpc_manager::free_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rpc_manager::free_observer(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: libtorrent::dht::rpc_manager::allocation_size
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rpc_manager::allocation_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:224,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:225,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: libtorrent::dht::rpc_manager::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void rpc_manager::check_invariant() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:234,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:236,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:241,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:243,1
    - Dst: auto::second::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:244,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:247,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:248,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:250,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 254
    functionName: libtorrent::dht::rpc_manager::unreachable
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - end
    - auto::second::target_ep
    - print_endpoint
    - TORRENT_ASSERT
    - log
    - observer_ptr::algorithm
    - should_log
    - observer_ptr::timeout
    linkageType: ''
    returnType: void
    signature: void rpc_manager::unreachable(udp::endpoint const& ep)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:263,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:263,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:264,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:269,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:270,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:272,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: equal_range
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:276,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:279,1
    - Dst: auto::second::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:279,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:281,1
    - Dst: native_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:288,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:288,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:290,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:291,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:291,1
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:305,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:308,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:310,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:312,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:316,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:320,1
    - Dst: message::dict_find_list
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:322,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:323,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:324,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:325,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:327,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:328,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:329,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:330,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:331,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:335,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:336,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:336,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:349,1
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:353,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:356,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:360,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:361,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:363,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:367,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:367,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:370,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:375,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:377,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:378,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:378,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:379,1
    - Dst: observer_ptr::reply
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:382,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:385,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:385,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:389,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - ' m'
    - id
    argTypes:
    - msg
    - node_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 390
    functionName: libtorrent::dht::rpc_manager::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - addr::address
    - libtorrent::aux::read_uint16
    - bdecode_node::string_length
    - message::dict_find_list
    - native_endpoint
    - get_bool
    - auto::begin
    - bdecode_node::string_ptr
    - auto::empty
    - bdecode_node::list_size
    - print_endpoint
    - bdecode_node::list_string_value_at
    - log
    - bdecode_node::list_int_value_at
    - node_seen
    - time_now
    - equal_range
    - node_id
    - erase
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - auto::size
    - observer_ptr::algorithm
    - total_milliseconds
    - observer_ptr::timeout
    - bdecode_node::dict_find_string
    - observer_ptr::sent
    - observer_ptr::reply
    - message::dict_find_dict
    - std::uint64_t
    - should_log
    - verify_id
    - message::dict_find_string_value
    - auto::second::target_addr
    linkageType: ''
    returnType: bool
    signature: bool rpc_manager::incoming(msg const& m, node_id* id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:396,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:397,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:401,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:407,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:409,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:409,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:416,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:420,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:424,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:426,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:427,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:428,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:428,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:432,1
    - Dst: observer_ptr::has_short_timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:438,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:441,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:443,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:444,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:445,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:445,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:450,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:454,1
    - Dst: duration_cast<time_duration>
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:454,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::max
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    - Dst: duration_cast<time_duration>
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 462
    functionName: libtorrent::dht::rpc_manager::tick
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - seconds
    - observer_ptr::has_short_timeout
    - std::vector::begin
    - std::min
    - std::max
    - std::vector::end
    - libtorrent::aux::time_now
    - end
    - print_endpoint
    - log
    - erase
    - observer_ptr::algorithm
    - milliseconds
    - observer_ptr::sent
    - std::for_each
    - std::bind
    - std::vector::push_back
    - duration_cast<time_duration>
    - should_log
    - observer_ptr::target_ep
    linkageType: ''
    returnType: time_duration
    signature: time_duration rpc_manager::tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: libtorrent::dht::rpc_manager::add_our_id
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 1
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void rpc_manager::add_our_id(entry& e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::rpc_manager::add_our_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:478,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:481,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:483,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:483,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:484,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:489,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:491,1
    - Dst: native_address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:492,1
    - Dst: observer_ptr::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:492,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:494,1
    - Dst: protocol_family_name
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:494,1
    - Dst: observer_ptr::set_target
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:497,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:500,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:502,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:503,1
    - Dst: string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:503,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:504,1
    - Dst: send_packet
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:508,1
    - Dst: emplace
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ' e'
    - ' target_addr'
    - o
    argTypes:
    - entry
    - udp::endpoint
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 518
    functionName: libtorrent::dht::rpc_manager::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - observer_ptr::set_target
    - observer_ptr::target_addr
    - get_bool
    - libtorrent::aux::write_uint16
    - libtorrent::dht::rpc_manager::add_our_id
    - std::uint16_t
    - list
    - emplace
    - print_endpoint
    - log
    - native_address
    - protocol_family_name
    - TORRENT_ASSERT
    - observer_ptr::algorithm
    - std::string::resize
    - random
    - send_packet
    - string
    - should_log
    linkageType: ''
    returnType: bool
    signature: "bool rpc_manager::invoke(entry& e, udp::endpoint const& target_addr\n\t,
      observer_ptr o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:526,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:527,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: observer::~observer()
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void observer::~observer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::observer::get_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - get_node
    linkageType: ''
    returnType: dht_observer
    signature: dht_observer * observer::get_observer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:89,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:91,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:92,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:95,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: libtorrent::dht::observer::set_target
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - port
    - time_now
    - address
    - libtorrent::aux::is_v6
    linkageType: ''
    returnType: void
    signature: void observer::set_target(udp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: address_v6
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:107,1
    - Dst: address_v4
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::observer::target_addr
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 2
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address observer::target_addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::observer::target_ep
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::observer::target_addr
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint observer::target_ep() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer::abort
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:121,1
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:122,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: libtorrent::dht::observer::abort
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 3
    functionsReached:
    - failed
    - self
    - libtorrent::dht::observer::abort
    linkageType: ''
    returnType: void
    signature: void observer::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finished
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:129,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: libtorrent::dht::observer::done
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - self
    - finished
    linkageType: ''
    returnType: void
    signature: void observer::done()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:135,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::observer::short_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - failed
    - self
    linkageType: ''
    returnType: void
    signature: void observer::short_timeout()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:142,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: libtorrent::dht::observer::timeout
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - failed
    - self
    linkageType: ''
    returnType: void
    signature: void observer::timeout()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resort_result
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: libtorrent::dht::observer::set_id
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - resort_result
    linkageType: ''
    returnType: void
    signature: void observer::set_id(node_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:171,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' our_id'
    - ' settings'
    - ' table'
    - sock
    - sock_man
    - log
    argTypes:
    - node_id
    - aux::session_settings
    - routing_table
    - aux::listen_socket_handle
    - socket_manager*
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 185
    functionName: libtorrent::dht::rpc_manager::rpc_manager
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void rpc_manager::rpc_manager(node_id const& our_id\n\t, aux::session_settings
      const& settings\n\t, routing_table& table\n\t, aux::listen_socket_handle sock\n\t,
      socket_manager* sock_man\n\t, dht_logger* log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:189,1
    - Dst: second::abort
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: rpc_manager::~rpc_manager()
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - second::abort
    linkageType: ''
    returnType: void
    signature: void rpc_manager::~rpc_manager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_next_size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:198,1
    - Dst: malloc
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: libtorrent::dht::rpc_manager::allocate_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - set_next_size
    linkageType: ''
    returnType: void
    signature: void * rpc_manager::allocate_observer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::rpc_manager::free_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rpc_manager::free_observer(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: libtorrent::dht::rpc_manager::allocation_size
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rpc_manager::allocation_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:224,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:225,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: libtorrent::dht::rpc_manager::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void rpc_manager::check_invariant() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:234,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:236,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:241,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:243,1
    - Dst: auto::second::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:244,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:247,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:248,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:250,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 254
    functionName: libtorrent::dht::rpc_manager::unreachable
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - end
    - auto::second::target_ep
    - print_endpoint
    - TORRENT_ASSERT
    - log
    - observer_ptr::algorithm
    - should_log
    - observer_ptr::timeout
    linkageType: ''
    returnType: void
    signature: void rpc_manager::unreachable(udp::endpoint const& ep)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:263,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:263,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:264,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:269,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:270,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:272,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: equal_range
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:276,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:279,1
    - Dst: auto::second::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:279,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:281,1
    - Dst: native_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:288,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:288,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:290,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:291,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:291,1
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:305,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:308,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:310,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:312,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:316,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:320,1
    - Dst: message::dict_find_list
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:322,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:323,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:324,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:325,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:327,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:328,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:329,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:330,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:331,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:335,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:336,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:336,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:349,1
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:353,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:356,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:360,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:361,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:363,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:367,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:367,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:370,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:375,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:377,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:378,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:378,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:379,1
    - Dst: observer_ptr::reply
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:382,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:385,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:385,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:389,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - ' m'
    - id
    argTypes:
    - msg
    - node_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 390
    functionName: libtorrent::dht::rpc_manager::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - addr::address
    - libtorrent::aux::read_uint16
    - bdecode_node::string_length
    - message::dict_find_list
    - native_endpoint
    - get_bool
    - auto::begin
    - bdecode_node::string_ptr
    - auto::empty
    - bdecode_node::list_size
    - print_endpoint
    - bdecode_node::list_string_value_at
    - log
    - bdecode_node::list_int_value_at
    - node_seen
    - time_now
    - equal_range
    - node_id
    - erase
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - auto::size
    - observer_ptr::algorithm
    - total_milliseconds
    - observer_ptr::timeout
    - bdecode_node::dict_find_string
    - observer_ptr::sent
    - observer_ptr::reply
    - message::dict_find_dict
    - std::uint64_t
    - should_log
    - verify_id
    - message::dict_find_string_value
    - auto::second::target_addr
    linkageType: ''
    returnType: bool
    signature: bool rpc_manager::incoming(msg const& m, node_id* id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:396,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:397,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:401,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:407,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:409,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:409,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:416,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:420,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:424,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:426,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:427,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:428,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:428,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:432,1
    - Dst: observer_ptr::has_short_timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:438,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:441,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:443,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:444,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:445,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:445,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:450,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:454,1
    - Dst: duration_cast<time_duration>
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:454,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::max
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    - Dst: duration_cast<time_duration>
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 462
    functionName: libtorrent::dht::rpc_manager::tick
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - seconds
    - observer_ptr::has_short_timeout
    - std::vector::begin
    - std::min
    - std::max
    - std::vector::end
    - libtorrent::aux::time_now
    - end
    - print_endpoint
    - log
    - erase
    - observer_ptr::algorithm
    - milliseconds
    - observer_ptr::sent
    - std::for_each
    - std::bind
    - std::vector::push_back
    - duration_cast<time_duration>
    - should_log
    - observer_ptr::target_ep
    linkageType: ''
    returnType: time_duration
    signature: time_duration rpc_manager::tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: libtorrent::dht::rpc_manager::add_our_id
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 2
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void rpc_manager::add_our_id(entry& e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::rpc_manager::add_our_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:478,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:481,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:483,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:483,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:484,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:489,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:491,1
    - Dst: native_address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:492,1
    - Dst: observer_ptr::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:492,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:494,1
    - Dst: protocol_family_name
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:494,1
    - Dst: observer_ptr::set_target
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:497,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:500,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:502,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:503,1
    - Dst: string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:503,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:504,1
    - Dst: send_packet
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:508,1
    - Dst: emplace
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ' e'
    - ' target_addr'
    - o
    argTypes:
    - entry
    - udp::endpoint
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 518
    functionName: libtorrent::dht::rpc_manager::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - observer_ptr::set_target
    - observer_ptr::target_addr
    - get_bool
    - libtorrent::aux::write_uint16
    - libtorrent::dht::rpc_manager::add_our_id
    - std::uint16_t
    - list
    - emplace
    - print_endpoint
    - log
    - native_address
    - protocol_family_name
    - TORRENT_ASSERT
    - observer_ptr::algorithm
    - std::string::resize
    - random
    - send_packet
    - string
    - should_log
    linkageType: ''
    returnType: bool
    signature: "bool rpc_manager::invoke(entry& e, udp::endpoint const& target_addr\n\t,
      observer_ptr o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:526,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:527,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: observer::~observer()
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void observer::~observer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::observer::get_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - get_node
    linkageType: ''
    returnType: dht_observer
    signature: dht_observer * observer::get_observer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:89,1
    - Dst: port
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:91,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:92,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:95,1
    - Dst: address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: libtorrent::dht::observer::set_target
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - port
    - time_now
    - address
    - libtorrent::aux::is_v6
    linkageType: ''
    returnType: void
    signature: void observer::set_target(udp::endpoint const& ep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: address_v6
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:107,1
    - Dst: address_v4
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::observer::target_addr
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 3
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: address
    signature: address observer::target_addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::observer::target_ep
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::observer::target_addr
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint observer::target_ep() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::observer::abort
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:121,1
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:122,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: libtorrent::dht::observer::abort
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 4
    functionsReached:
    - failed
    - self
    - libtorrent::dht::observer::abort
    linkageType: ''
    returnType: void
    signature: void observer::abort()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finished
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:129,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: libtorrent::dht::observer::done
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - self
    - finished
    linkageType: ''
    returnType: void
    signature: void observer::done()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:135,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: libtorrent::dht::observer::short_timeout
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - failed
    - self
    linkageType: ''
    returnType: void
    signature: void observer::short_timeout()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failed
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:142,1
    - Dst: self
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: libtorrent::dht::observer::timeout
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - failed
    - self
    linkageType: ''
    returnType: void
    signature: void observer::timeout()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resort_result
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: libtorrent::dht::observer::set_id
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - resort_result
    linkageType: ''
    returnType: void
    signature: void observer::set_id(node_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:171,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' our_id'
    - ' settings'
    - ' table'
    - sock
    - sock_man
    - log
    argTypes:
    - node_id
    - aux::session_settings
    - routing_table
    - aux::listen_socket_handle
    - socket_manager*
    - dht_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 185
    functionName: libtorrent::dht::rpc_manager::rpc_manager
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: "void rpc_manager::rpc_manager(node_id const& our_id\n\t, aux::session_settings
      const& settings\n\t, routing_table& table\n\t, aux::listen_socket_handle sock\n\t,
      socket_manager* sock_man\n\t, dht_logger* log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:189,1
    - Dst: second::abort
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: rpc_manager::~rpc_manager()
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - second::abort
    linkageType: ''
    returnType: void
    signature: void rpc_manager::~rpc_manager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_next_size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:198,1
    - Dst: malloc
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: libtorrent::dht::rpc_manager::allocate_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - set_next_size
    linkageType: ''
    returnType: void
    signature: void * rpc_manager::allocate_observer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: libtorrent::dht::rpc_manager::free_observer
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rpc_manager::free_observer(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: libtorrent::dht::rpc_manager::allocation_size
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rpc_manager::allocation_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:222,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:224,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:225,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: libtorrent::dht::rpc_manager::check_invariant
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void rpc_manager::check_invariant() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:234,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:236,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:237,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:241,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:241,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:243,1
    - Dst: auto::second::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:244,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:247,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:248,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:250,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 254
    functionName: libtorrent::dht::rpc_manager::unreachable
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - erase
    - end
    - auto::second::target_ep
    - print_endpoint
    - TORRENT_ASSERT
    - log
    - observer_ptr::algorithm
    - should_log
    - observer_ptr::timeout
    linkageType: ''
    returnType: void
    signature: void rpc_manager::unreachable(udp::endpoint const& ep)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:263,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:263,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:264,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:269,1
    - Dst: auto::empty
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:270,1
    - Dst: auto::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:272,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: std::uint64_t
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:273,1
    - Dst: equal_range
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:276,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:279,1
    - Dst: auto::second::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:279,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:281,1
    - Dst: native_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:288,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:288,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:290,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:291,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:291,1
    - Dst: time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:305,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:308,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:310,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:311,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:312,1
    - Dst: message::dict_find_string_value
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:316,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:320,1
    - Dst: message::dict_find_list
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:322,1
    - Dst: bdecode_node::list_size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:323,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:324,1
    - Dst: bdecode_node::list_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:325,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:327,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:328,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:329,1
    - Dst: bdecode_node::list_int_value_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:330,1
    - Dst: bdecode_node::list_string_value_at
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:331,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:335,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:336,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:336,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:349,1
    - Dst: message::dict_find_dict
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:353,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:356,1
    - Dst: bdecode_node::dict_find_string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:360,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:361,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:363,1
    - Dst: node_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:367,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:367,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: verify_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: addr::address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:368,1
    - Dst: observer_ptr::timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:370,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:375,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:377,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:378,1
    - Dst: auto::size
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:378,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:379,1
    - Dst: observer_ptr::reply
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:382,1
    - Dst: total_milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:385,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:385,1
    - Dst: node_seen
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:389,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - ' m'
    - id
    argTypes:
    - msg
    - node_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 390
    functionName: libtorrent::dht::rpc_manager::incoming
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - addr::address
    - libtorrent::aux::read_uint16
    - bdecode_node::string_length
    - message::dict_find_list
    - native_endpoint
    - get_bool
    - auto::begin
    - bdecode_node::string_ptr
    - auto::empty
    - bdecode_node::list_size
    - print_endpoint
    - bdecode_node::list_string_value_at
    - log
    - bdecode_node::list_int_value_at
    - node_seen
    - time_now
    - equal_range
    - node_id
    - erase
    - bdecode_node::list_at
    - TORRENT_ASSERT
    - auto::size
    - observer_ptr::algorithm
    - total_milliseconds
    - observer_ptr::timeout
    - bdecode_node::dict_find_string
    - observer_ptr::sent
    - observer_ptr::reply
    - message::dict_find_dict
    - std::uint64_t
    - should_log
    - verify_id
    - message::dict_find_string_value
    - auto::second::target_addr
    linkageType: ''
    returnType: bool
    signature: bool rpc_manager::incoming(msg const& m, node_id* id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:396,1
    - Dst: seconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:397,1
    - Dst: empty
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:401,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:407,1
    - Dst: begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:409,1
    - Dst: end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:409,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:416,1
    - Dst: observer_ptr::sent
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:420,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:424,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:426,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:427,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:428,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:428,1
    - Dst: erase
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:432,1
    - Dst: observer_ptr::has_short_timeout
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:438,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:441,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:443,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:444,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:445,1
    - Dst: observer_ptr::target_ep
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:445,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:450,1
    - Dst: std::min
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:454,1
    - Dst: duration_cast<time_duration>
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:454,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:458,1
    - Dst: std::for_each
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::vector::end
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::bind
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:459,1
    - Dst: std::max
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    - Dst: duration_cast<time_duration>
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    - Dst: milliseconds
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:461,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 462
    functionName: libtorrent::dht::rpc_manager::tick
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - begin
    - empty
    - seconds
    - observer_ptr::has_short_timeout
    - std::vector::begin
    - std::min
    - std::max
    - std::vector::end
    - libtorrent::aux::time_now
    - end
    - print_endpoint
    - log
    - erase
    - observer_ptr::algorithm
    - milliseconds
    - observer_ptr::sent
    - std::for_each
    - std::bind
    - std::vector::push_back
    - duration_cast<time_duration>
    - should_log
    - observer_ptr::target_ep
    linkageType: ''
    returnType: time_duration
    signature: time_duration rpc_manager::tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: libtorrent::dht::rpc_manager::add_our_id
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 3
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void rpc_manager::add_our_id(entry& e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::rpc_manager::add_our_id
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:478,1
    - Dst: std::string::resize
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:481,1
    - Dst: std::uint16_t
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:483,1
    - Dst: random
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:483,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:484,1
    - Dst: get_bool
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:489,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:491,1
    - Dst: native_address
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:492,1
    - Dst: observer_ptr::target_addr
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:492,1
    - Dst: list
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:494,1
    - Dst: protocol_family_name
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:494,1
    - Dst: observer_ptr::set_target
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:497,1
    - Dst: should_log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:500,1
    - Dst: log
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:502,1
    - Dst: observer_ptr::algorithm
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:503,1
    - Dst: string
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:503,1
    - Dst: print_endpoint
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:504,1
    - Dst: send_packet
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:508,1
    - Dst: emplace
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:510,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ' e'
    - ' target_addr'
    - o
    argTypes:
    - entry
    - udp::endpoint
    - observer_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 518
    functionName: libtorrent::dht::rpc_manager::invoke
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - observer_ptr::set_target
    - observer_ptr::target_addr
    - get_bool
    - libtorrent::aux::write_uint16
    - libtorrent::dht::rpc_manager::add_our_id
    - std::uint16_t
    - list
    - emplace
    - print_endpoint
    - log
    - native_address
    - protocol_family_name
    - TORRENT_ASSERT
    - observer_ptr::algorithm
    - std::string::resize
    - random
    - send_packet
    - string
    - should_log
    linkageType: ''
    returnType: bool
    signature: "bool rpc_manager::invoke(entry& e, udp::endpoint const& target_addr\n\t,
      observer_ptr o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:526,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:527,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/kademlia/rpc_manager.cpp:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: observer::~observer()
    functionSourceFile: /src/libtorrent/src/kademlia/rpc_manager.cpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void observer::~observer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/keypair.cpp:14,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/ed25519/keypair.cpp:15,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/keypair.cpp:15,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/keypair.cpp:20,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/keypair.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - public_key
    - private_key
    - seed
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: libtorrent::aux::ed25519_create_keypair
    functionSourceFile: /src/libtorrent/src/ed25519/keypair.cpp
    functionUses: 4
    functionsReached:
    - std::memcpy
    - hasher512::final
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void ed25519_create_keypair(unsigned char *public_key, unsigned char
      *private_key, const unsigned char *seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/keypair.cpp:14,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/ed25519/keypair.cpp:15,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/keypair.cpp:15,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/keypair.cpp:20,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/keypair.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - public_key
    - private_key
    - seed
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: libtorrent::aux::ed25519_create_keypair
    functionSourceFile: /src/libtorrent/src/ed25519/keypair.cpp
    functionUses: 4
    functionsReached:
    - std::memcpy
    - hasher512::final
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void ed25519_create_keypair(unsigned char *public_key, unsigned char
      *private_key, const unsigned char *seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/keypair.cpp:14,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/ed25519/keypair.cpp:15,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/keypair.cpp:15,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/keypair.cpp:20,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/keypair.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - public_key
    - private_key
    - seed
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: libtorrent::aux::ed25519_create_keypair
    functionSourceFile: /src/libtorrent/src/ed25519/keypair.cpp
    functionUses: 4
    functionsReached:
    - std::memcpy
    - hasher512::final
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void ed25519_create_keypair(unsigned char *public_key, unsigned char
      *private_key, const unsigned char *seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/keypair.cpp:14,1
    - Dst: std::memcpy
      Src: /src/libtorrent/src/ed25519/keypair.cpp:15,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/keypair.cpp:15,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/keypair.cpp:20,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/keypair.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - public_key
    - private_key
    - seed
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: libtorrent::aux::ed25519_create_keypair
    functionSourceFile: /src/libtorrent/src/ed25519/keypair.cpp
    functionUses: 4
    functionsReached:
    - std::memcpy
    - hasher512::final
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void ed25519_create_keypair(unsigned char *public_key, unsigned char
      *private_key, const unsigned char *seed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_muladd
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:33,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:39,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:39,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:40,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:40,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:41,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:54,1
    - Dst: ge_frombytes_negate_vartime
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:57,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:58,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:59,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:60,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:63,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:66,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:67,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - public_key
    - private_key
    - scalar
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/ed25519/add_scalar.cpp
    functionUses: 8
    functionsReached:
    - ge_add
    - ge_p1p1_to_p3
    - hasher512::final
    - ge_frombytes_negate_vartime
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    - sc_muladd
    - ge_p3_to_cached
    - fe_neg
    - hasher512::update
    linkageType: ''
    returnType: void
    signature: void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key,
      const unsigned char *scalar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_muladd
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:33,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:39,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:39,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:40,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:40,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:41,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:54,1
    - Dst: ge_frombytes_negate_vartime
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:57,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:58,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:59,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:60,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:63,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:66,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:67,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - public_key
    - private_key
    - scalar
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/ed25519/add_scalar.cpp
    functionUses: 8
    functionsReached:
    - ge_add
    - ge_p1p1_to_p3
    - hasher512::final
    - ge_frombytes_negate_vartime
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    - sc_muladd
    - ge_p3_to_cached
    - fe_neg
    - hasher512::update
    linkageType: ''
    returnType: void
    signature: void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key,
      const unsigned char *scalar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_muladd
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:33,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:39,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:39,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:40,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:40,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:41,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:54,1
    - Dst: ge_frombytes_negate_vartime
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:57,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:58,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:59,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:60,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:63,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:66,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:67,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - public_key
    - private_key
    - scalar
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/ed25519/add_scalar.cpp
    functionUses: 8
    functionsReached:
    - ge_add
    - ge_p1p1_to_p3
    - hasher512::final
    - ge_frombytes_negate_vartime
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    - sc_muladd
    - ge_p3_to_cached
    - fe_neg
    - hasher512::update
    linkageType: ''
    returnType: void
    signature: void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key,
      const unsigned char *scalar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_muladd
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:33,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:39,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:39,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:40,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:40,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:41,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:54,1
    - Dst: ge_frombytes_negate_vartime
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:57,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:58,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:59,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:60,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:63,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:66,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:67,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/add_scalar.cpp:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - public_key
    - private_key
    - scalar
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::ed25519_add_scalar
    functionSourceFile: /src/libtorrent/src/ed25519/add_scalar.cpp
    functionUses: 8
    functionsReached:
    - ge_add
    - ge_p1p1_to_p3
    - hasher512::final
    - ge_frombytes_negate_vartime
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    - sc_muladd
    - ge_p3_to_cached
    - fe_neg
    - hasher512::update
    linkageType: ''
    returnType: void
    signature: void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key,
      const unsigned char *scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:46,1
    - Dst: CC_SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:48,1
    - Dst: SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:52,1
    - Dst: SHA512_init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - SHA512_init
    - gcry_md_open
    - CC_SHA512_Init
    - SHA512_Init
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher512
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(hasher512 const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:73,1
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher512
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: '& hasher512::operator=(hasher512 const& h) &'
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    - gcry_md_copy
    linkageType: ''
    returnType: hasher512
    signature: hasher512 & hasher512::operator=(hasher512 const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(hasher512 const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:84,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:84,1
    - Dst: gcry_md_write
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: CC_SHA512_Update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: CC_LONG
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:90,1
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:92,1
    - Dst: SHA512_Update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:95,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:95,1
    - Dst: SHA512_update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:98,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: '& hasher512::update(span<char const> data)'
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - SHA512_Update
    - CC_SHA512_Update
    - update
    - span<char const>::data
    - gcry_md_write
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - SHA512_update
    - CC_LONG
    linkageType: ''
    returnType: hasher512
    signature: hasher512 & hasher512::update(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:107,1
    - Dst: sha512_hash::assign
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: gcry_md_read
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: CC_SHA512_Final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: get_hash
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: sha512_hash::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: get_hash
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: sha512_hash::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: SHA512_Final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: SHA512_final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::hasher512::final
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_final
    - sha512_hash::size
    - get_hash
    - sha512_hash::data
    - SHA512_Final
    - reinterpret_cast<char const*>
    - gcry_md_read
    - CC_SHA512_Final
    - SHA512_final
    - sha512_hash::assign
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: sha512_hash
    signature: sha512_hash hasher512::final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:126,1
    - Dst: CC_SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:128,1
    - Dst: libtorrent::aux::hasher512::reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:130,1
    - Dst: libtorrent::aux::hasher512::reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:132,1
    - Dst: SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:134,1
    - Dst: SHA512_init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::hasher512::reset
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 1
    functionsReached:
    - SHA512_init
    - gcry_md_reset
    - libtorrent::aux::hasher512::reset
    - CC_SHA512_Init
    - SHA512_Init
    linkageType: ''
    returnType: void
    signature: void hasher512::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: hasher512::~hasher512()
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    linkageType: ''
    returnType: void
    signature: void hasher512::~hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: hasher512::~hasher512()
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher512::~hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:46,1
    - Dst: CC_SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:48,1
    - Dst: SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:52,1
    - Dst: SHA512_init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - SHA512_init
    - gcry_md_open
    - CC_SHA512_Init
    - SHA512_Init
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher512
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(hasher512 const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:73,1
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher512
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: '& hasher512::operator=(hasher512 const& h) &'
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    - gcry_md_copy
    linkageType: ''
    returnType: hasher512
    signature: hasher512 & hasher512::operator=(hasher512 const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(hasher512 const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:84,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:84,1
    - Dst: gcry_md_write
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: CC_SHA512_Update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: CC_LONG
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:90,1
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:92,1
    - Dst: SHA512_Update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:95,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:95,1
    - Dst: SHA512_update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:98,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: '& hasher512::update(span<char const> data)'
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - SHA512_Update
    - CC_SHA512_Update
    - update
    - span<char const>::data
    - gcry_md_write
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - SHA512_update
    - CC_LONG
    linkageType: ''
    returnType: hasher512
    signature: hasher512 & hasher512::update(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:107,1
    - Dst: sha512_hash::assign
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: gcry_md_read
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: CC_SHA512_Final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: get_hash
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: sha512_hash::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: get_hash
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: sha512_hash::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: SHA512_Final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: SHA512_final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::hasher512::final
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_final
    - sha512_hash::size
    - get_hash
    - sha512_hash::data
    - SHA512_Final
    - reinterpret_cast<char const*>
    - gcry_md_read
    - CC_SHA512_Final
    - SHA512_final
    - sha512_hash::assign
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: sha512_hash
    signature: sha512_hash hasher512::final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:126,1
    - Dst: CC_SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:128,1
    - Dst: libtorrent::aux::hasher512::reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:130,1
    - Dst: libtorrent::aux::hasher512::reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:132,1
    - Dst: SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:134,1
    - Dst: SHA512_init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::hasher512::reset
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 2
    functionsReached:
    - SHA512_init
    - gcry_md_reset
    - libtorrent::aux::hasher512::reset
    - CC_SHA512_Init
    - SHA512_Init
    linkageType: ''
    returnType: void
    signature: void hasher512::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: hasher512::~hasher512()
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    linkageType: ''
    returnType: void
    signature: void hasher512::~hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: hasher512::~hasher512()
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher512::~hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:46,1
    - Dst: CC_SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:48,1
    - Dst: SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:52,1
    - Dst: SHA512_init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - SHA512_init
    - gcry_md_open
    - CC_SHA512_Init
    - SHA512_Init
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher512
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(hasher512 const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:73,1
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher512
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: '& hasher512::operator=(hasher512 const& h) &'
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    - gcry_md_copy
    linkageType: ''
    returnType: hasher512
    signature: hasher512 & hasher512::operator=(hasher512 const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(hasher512 const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:84,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:84,1
    - Dst: gcry_md_write
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: CC_SHA512_Update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: CC_LONG
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:90,1
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:92,1
    - Dst: SHA512_Update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:95,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:95,1
    - Dst: SHA512_update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:98,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: '& hasher512::update(span<char const> data)'
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - SHA512_Update
    - CC_SHA512_Update
    - update
    - span<char const>::data
    - gcry_md_write
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - SHA512_update
    - CC_LONG
    linkageType: ''
    returnType: hasher512
    signature: hasher512 & hasher512::update(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:107,1
    - Dst: sha512_hash::assign
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: gcry_md_read
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: CC_SHA512_Final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: get_hash
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: sha512_hash::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: get_hash
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: sha512_hash::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: SHA512_Final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: SHA512_final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::hasher512::final
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_final
    - sha512_hash::size
    - get_hash
    - sha512_hash::data
    - SHA512_Final
    - reinterpret_cast<char const*>
    - gcry_md_read
    - CC_SHA512_Final
    - SHA512_final
    - sha512_hash::assign
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: sha512_hash
    signature: sha512_hash hasher512::final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:126,1
    - Dst: CC_SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:128,1
    - Dst: libtorrent::aux::hasher512::reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:130,1
    - Dst: libtorrent::aux::hasher512::reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:132,1
    - Dst: SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:134,1
    - Dst: SHA512_init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::hasher512::reset
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 3
    functionsReached:
    - SHA512_init
    - gcry_md_reset
    - libtorrent::aux::hasher512::reset
    - CC_SHA512_Init
    - SHA512_Init
    linkageType: ''
    returnType: void
    signature: void hasher512::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: hasher512::~hasher512()
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    linkageType: ''
    returnType: void
    signature: void hasher512::~hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: hasher512::~hasher512()
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher512::~hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:46,1
    - Dst: CC_SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:48,1
    - Dst: SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:52,1
    - Dst: SHA512_init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - SHA512_init
    - gcry_md_open
    - CC_SHA512_Init
    - SHA512_Init
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher512
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(hasher512 const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:73,1
    - Dst: gcry_md_copy
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - hasher512
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: '& hasher512::operator=(hasher512 const& h) &'
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    - gcry_md_copy
    linkageType: ''
    returnType: hasher512
    signature: hasher512 & hasher512::operator=(hasher512 const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::hasher512::hasher512
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher512::hasher512(hasher512 const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:84,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:84,1
    - Dst: gcry_md_write
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:86,1
    - Dst: CC_SHA512_Update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: CC_LONG
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:88,1
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:90,1
    - Dst: update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:92,1
    - Dst: SHA512_Update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:94,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:95,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:95,1
    - Dst: SHA512_update
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: reinterpret_cast<unsigned char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:97,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:98,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: '& hasher512::update(span<char const> data)'
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unsigned char const*>
    - SHA512_Update
    - CC_SHA512_Update
    - update
    - span<char const>::data
    - gcry_md_write
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - span<char const>::size
    - SHA512_update
    - CC_LONG
    linkageType: ''
    returnType: hasher512
    signature: hasher512 & hasher512::update(span<char const> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:107,1
    - Dst: sha512_hash::assign
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: gcry_md_read
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:108,1
    - Dst: CC_SHA512_Final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:110,1
    - Dst: get_hash
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: sha512_hash::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:112,1
    - Dst: get_hash
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: sha512_hash::size
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:114,1
    - Dst: SHA512_Final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:116,1
    - Dst: SHA512_final
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: libtorrent::aux::hasher512::final
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_final
    - sha512_hash::size
    - get_hash
    - sha512_hash::data
    - SHA512_Final
    - reinterpret_cast<char const*>
    - gcry_md_read
    - CC_SHA512_Final
    - SHA512_final
    - sha512_hash::assign
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: sha512_hash
    signature: sha512_hash hasher512::final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:126,1
    - Dst: CC_SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:128,1
    - Dst: libtorrent::aux::hasher512::reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:130,1
    - Dst: libtorrent::aux::hasher512::reset
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:132,1
    - Dst: SHA512_Init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:134,1
    - Dst: SHA512_init
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::hasher512::reset
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 4
    functionsReached:
    - SHA512_init
    - gcry_md_reset
    - libtorrent::aux::hasher512::reset
    - CC_SHA512_Init
    - SHA512_Init
    linkageType: ''
    returnType: void
    signature: void hasher512::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_close
      Src: /src/libtorrent/src/ed25519/hasher512.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: hasher512::~hasher512()
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached:
    - gcry_md_close
    linkageType: ''
    returnType: void
    signature: void hasher512::~hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: hasher512::~hasher512()
    functionSourceFile: /src/libtorrent/src/ed25519/hasher512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hasher512::~hasher512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:16,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:16,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:17,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:17,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/sign.cpp:18,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/sign.cpp:22,1
    - Dst: hasher512::reset
      Src: /src/libtorrent/src/ed25519/sign.cpp:24,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:25,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:25,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:26,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:26,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:27,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:27,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/sign.cpp:28,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: sc_muladd
      Src: /src/libtorrent/src/ed25519/sign.cpp:31,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:32,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:32,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:34,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - signature
    - message
    - message_len
    - public_key
    - private_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - std::ptrdiff_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 35
    functionName: libtorrent::aux::ed25519_sign
    functionSourceFile: /src/libtorrent/src/ed25519/sign.cpp
    functionUses: 4
    functionsReached:
    - sc_reduce
    - hasher512::reset
    - sha512_hash::data
    - hasher512::final
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    - sc_muladd
    - hasher512::update
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: void
    signature: void ed25519_sign(unsigned char *signature, const unsigned char *message,
      std::ptrdiff_t message_len, const unsigned char *public_key, const unsigned
      char *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:16,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:16,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:17,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:17,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/sign.cpp:18,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/sign.cpp:22,1
    - Dst: hasher512::reset
      Src: /src/libtorrent/src/ed25519/sign.cpp:24,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:25,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:25,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:26,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:26,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:27,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:27,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/sign.cpp:28,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: sc_muladd
      Src: /src/libtorrent/src/ed25519/sign.cpp:31,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:32,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:32,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:34,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - signature
    - message
    - message_len
    - public_key
    - private_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - std::ptrdiff_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 35
    functionName: libtorrent::aux::ed25519_sign
    functionSourceFile: /src/libtorrent/src/ed25519/sign.cpp
    functionUses: 4
    functionsReached:
    - sc_reduce
    - hasher512::reset
    - sha512_hash::data
    - hasher512::final
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    - sc_muladd
    - hasher512::update
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: void
    signature: void ed25519_sign(unsigned char *signature, const unsigned char *message,
      std::ptrdiff_t message_len, const unsigned char *public_key, const unsigned
      char *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:16,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:16,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:17,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:17,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/sign.cpp:18,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/sign.cpp:22,1
    - Dst: hasher512::reset
      Src: /src/libtorrent/src/ed25519/sign.cpp:24,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:25,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:25,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:26,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:26,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:27,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:27,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/sign.cpp:28,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: sc_muladd
      Src: /src/libtorrent/src/ed25519/sign.cpp:31,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:32,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:32,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:34,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - signature
    - message
    - message_len
    - public_key
    - private_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - std::ptrdiff_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 35
    functionName: libtorrent::aux::ed25519_sign
    functionSourceFile: /src/libtorrent/src/ed25519/sign.cpp
    functionUses: 4
    functionsReached:
    - sc_reduce
    - hasher512::reset
    - sha512_hash::data
    - hasher512::final
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    - sc_muladd
    - hasher512::update
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: void
    signature: void ed25519_sign(unsigned char *signature, const unsigned char *message,
      std::ptrdiff_t message_len, const unsigned char *public_key, const unsigned
      char *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:16,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:16,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:17,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:17,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/sign.cpp:18,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:20,1
    - Dst: ge_scalarmult_base
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:21,1
    - Dst: ge_p3_tobytes
      Src: /src/libtorrent/src/ed25519/sign.cpp:22,1
    - Dst: hasher512::reset
      Src: /src/libtorrent/src/ed25519/sign.cpp:24,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:25,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:25,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:26,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:26,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/sign.cpp:27,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:27,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/sign.cpp:28,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:30,1
    - Dst: sc_muladd
      Src: /src/libtorrent/src/ed25519/sign.cpp:31,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:32,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:32,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/sign.cpp:34,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/sign.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - signature
    - message
    - message_len
    - public_key
    - private_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - std::ptrdiff_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 35
    functionName: libtorrent::aux::ed25519_sign
    functionSourceFile: /src/libtorrent/src/ed25519/sign.cpp
    functionUses: 4
    functionsReached:
    - sc_reduce
    - hasher512::reset
    - sha512_hash::data
    - hasher512::final
    - ge_scalarmult_base
    - ge_p3_tobytes
    - reinterpret_cast<char const*>
    - sc_muladd
    - hasher512::update
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: void
    signature: void ed25519_sign(unsigned char *signature, const unsigned char *message,
      std::ptrdiff_t message_len, const unsigned char *public_key, const unsigned
      char *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_frombytes
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:38,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:39,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:40,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:41,1
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:42,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:43,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:45,1
    - Dst: fe_0
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:46,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:47,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:48,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:55,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:56,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:60,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:61,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:62,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:63,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:64,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:65,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:66,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:67,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:68,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:69,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:70,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:71,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:72,1
    - Dst: fe_mul121666
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:73,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:74,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:75,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:76,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:77,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:80,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:81,1
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:83,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:84,1
    - Dst: fe_tobytes
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 3
    argNames:
    - shared_secret
    - public_key
    - private_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::ed25519_key_exchange
    functionSourceFile: /src/libtorrent/src/ed25519/key_exchange.cpp
    functionUses: 4
    functionsReached:
    - fe_sq
    - fe_invert
    - fe_0
    - fe_sub
    - fe_copy
    - fe_tobytes
    - fe_frombytes
    - fe_1
    - fe_cswap
    - fe_mul
    - fe_add
    - fe_mul121666
    linkageType: ''
    returnType: void
    signature: "void ed25519_key_exchange(unsigned char *shared_secret\n\t, const
      unsigned char *public_key, const unsigned char *private_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_frombytes
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:38,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:39,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:40,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:41,1
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:42,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:43,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:45,1
    - Dst: fe_0
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:46,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:47,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:48,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:55,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:56,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:60,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:61,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:62,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:63,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:64,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:65,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:66,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:67,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:68,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:69,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:70,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:71,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:72,1
    - Dst: fe_mul121666
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:73,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:74,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:75,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:76,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:77,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:80,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:81,1
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:83,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:84,1
    - Dst: fe_tobytes
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 3
    argNames:
    - shared_secret
    - public_key
    - private_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::ed25519_key_exchange
    functionSourceFile: /src/libtorrent/src/ed25519/key_exchange.cpp
    functionUses: 4
    functionsReached:
    - fe_sq
    - fe_invert
    - fe_0
    - fe_sub
    - fe_copy
    - fe_tobytes
    - fe_frombytes
    - fe_1
    - fe_cswap
    - fe_mul
    - fe_add
    - fe_mul121666
    linkageType: ''
    returnType: void
    signature: "void ed25519_key_exchange(unsigned char *shared_secret\n\t, const
      unsigned char *public_key, const unsigned char *private_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_frombytes
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:38,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:39,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:40,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:41,1
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:42,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:43,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:45,1
    - Dst: fe_0
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:46,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:47,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:48,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:55,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:56,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:60,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:61,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:62,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:63,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:64,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:65,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:66,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:67,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:68,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:69,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:70,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:71,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:72,1
    - Dst: fe_mul121666
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:73,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:74,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:75,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:76,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:77,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:80,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:81,1
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:83,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:84,1
    - Dst: fe_tobytes
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 3
    argNames:
    - shared_secret
    - public_key
    - private_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::ed25519_key_exchange
    functionSourceFile: /src/libtorrent/src/ed25519/key_exchange.cpp
    functionUses: 4
    functionsReached:
    - fe_sq
    - fe_invert
    - fe_0
    - fe_sub
    - fe_copy
    - fe_tobytes
    - fe_frombytes
    - fe_1
    - fe_cswap
    - fe_mul
    - fe_add
    - fe_mul121666
    linkageType: ''
    returnType: void
    signature: "void ed25519_key_exchange(unsigned char *shared_secret\n\t, const
      unsigned char *public_key, const unsigned char *private_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_frombytes
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:38,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:39,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:40,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:41,1
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:42,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:43,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:45,1
    - Dst: fe_0
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:46,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:47,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:48,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:55,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:56,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:60,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:61,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:62,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:63,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:64,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:65,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:66,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:67,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:68,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:69,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:70,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:71,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:72,1
    - Dst: fe_mul121666
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:73,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:74,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:75,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:76,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:77,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:80,1
    - Dst: fe_cswap
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:81,1
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:83,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:84,1
    - Dst: fe_tobytes
      Src: /src/libtorrent/src/ed25519/key_exchange.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 3
    argNames:
    - shared_secret
    - public_key
    - private_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::ed25519_key_exchange
    functionSourceFile: /src/libtorrent/src/ed25519/key_exchange.cpp
    functionUses: 4
    functionsReached:
    - fe_sq
    - fe_invert
    - fe_0
    - fe_sub
    - fe_copy
    - fe_tobytes
    - fe_frombytes
    - fe_1
    - fe_cswap
    - fe_mul
    - fe_add
    - fe_mul121666
    linkageType: ''
    returnType: void
    signature: "void ed25519_key_exchange(unsigned char *shared_secret\n\t, const
      unsigned char *public_key, const unsigned char *private_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 15
    functionName: load_3
    functionSourceFile: /src/libtorrent/src/ed25519/sc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 load_3(const unsigned char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: load_4
    functionSourceFile: /src/libtorrent/src/ed25519/sc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 load_4(const unsigned char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i64
      Src: /src/libtorrent/src/ed25519/sc.cpp:29,1
    - Dst: u64
      Src: /src/libtorrent/src/ed25519/sc.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - s
    argTypes:
    - i64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: shift_left
    functionSourceFile: /src/libtorrent/src/ed25519/sc.cpp
    functionUses: 2
    functionsReached:
    - i64
    - u64
    linkageType: ''
    returnType: i64
    signature: i64 shift_left(i64 v, int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:43,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:44,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:45,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:46,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:47,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:48,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:49,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:50,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:51,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:52,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:53,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:54,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:55,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:56,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:57,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:58,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:59,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:60,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:61,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:62,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:63,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:64,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:65,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:66,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:129,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:132,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:135,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:138,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:141,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:144,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:147,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:150,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:153,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:156,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:159,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:204,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:207,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:210,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:213,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:216,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:219,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:222,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:225,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:228,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:231,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:234,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:237,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:247,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:250,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:253,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:256,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:259,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:262,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:265,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:268,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:271,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:274,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:277,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:280,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:290,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:293,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:296,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:299,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:302,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:305,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:308,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:311,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:314,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:317,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 269
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 354
    functionName: sc_reduce
    functionSourceFile: /src/libtorrent/src/ed25519/sc.cpp
    functionUses: 4
    functionsReached:
    - shift_left
    - load_3
    - load_4
    linkageType: ''
    returnType: void
    signature: void sc_reduce(unsigned char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:370,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:371,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:372,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:373,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:374,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:375,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:376,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:377,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:378,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:379,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:380,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:381,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:382,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:383,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:384,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:385,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:386,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:387,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:388,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:389,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:390,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:391,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:392,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:393,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:394,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:395,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:396,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:397,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:398,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:399,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:400,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:401,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:402,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:403,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/sc.cpp:404,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/sc.cpp:405,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:480,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:483,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:486,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:489,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:492,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:495,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:498,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:501,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:504,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:507,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:510,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:513,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:516,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:519,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:522,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:525,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:528,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:531,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:534,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:537,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:540,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:543,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:546,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:591,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:594,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:597,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:600,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:603,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:606,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:609,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:612,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:615,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:618,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:621,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:666,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:669,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:672,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:675,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:678,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:681,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:684,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:687,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:690,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:693,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:696,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:699,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:709,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:712,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:715,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:718,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:721,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:724,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:727,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:730,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:733,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:736,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:739,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:742,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:752,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:755,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:758,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:761,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:764,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:767,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:770,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:773,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:776,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:779,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/sc.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 362
    argCount: 4
    argNames:
    - s
    - a
    - b
    - c
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 816
    functionName: sc_muladd
    functionSourceFile: /src/libtorrent/src/ed25519/sc.cpp
    functionUses: 8
    functionsReached:
    - shift_left
    - load_3
    - load_4
    linkageType: ''
    returnType: void
    signature: void sc_muladd(unsigned char *s, const unsigned char *a, const unsigned
      char *b, const unsigned char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:14,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:15,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:16,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:17,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:18,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:19,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:20,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:21,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:22,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:23,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_cached*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 25
    functionName: ge_add
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 4
    functionsReached:
    - fe_sub
    - fe_add
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - signed char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 61
    functionName: slide
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void slide(signed char *r, const unsigned char *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: slide
      Src: /src/libtorrent/src/ed25519/ge.cpp:78,1
    - Dst: slide
      Src: /src/libtorrent/src/ed25519/ge.cpp:79,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/ge.cpp:80,1
    - Dst: ge_p3_dbl
      Src: /src/libtorrent/src/ed25519/ge.cpp:81,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:82,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:83,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:84,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/ge.cpp:85,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:86,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:87,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/ge.cpp:88,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:89,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:90,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/ge.cpp:91,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:92,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:93,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/ge.cpp:94,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:95,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:96,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/ge.cpp:97,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:98,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:99,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/ge.cpp:100,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:101,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:102,1
    - Dst: ge_p3_to_cached
      Src: /src/libtorrent/src/ed25519/ge.cpp:103,1
    - Dst: ge_p2_0
      Src: /src/libtorrent/src/ed25519/ge.cpp:104,1
    - Dst: ge_p2_dbl
      Src: /src/libtorrent/src/ed25519/ge.cpp:113,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:116,1
    - Dst: ge_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:117,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:119,1
    - Dst: ge_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:120,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:124,1
    - Dst: ge_madd
      Src: /src/libtorrent/src/ed25519/ge.cpp:125,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:127,1
    - Dst: ge_msub
      Src: /src/libtorrent/src/ed25519/ge.cpp:128,1
    - Dst: ge_p1p1_to_p2
      Src: /src/libtorrent/src/ed25519/ge.cpp:131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 4
    argNames:
    - r
    - a
    - A
    - b
    argTypes:
    - ge_p2*
    - unsigned char*
    - ge_p3*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 133
    functionName: ge_double_scalarmult_vartime
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - ge_p1p1_to_p2
    - ge_madd
    - slide
    - ge_p2_0
    - ge_p2_dbl
    - ge_add
    - ge_p1p1_to_p3
    - ge_msub
    - ge_p3_to_cached
    - ge_sub
    - ge_p3_dbl
    linkageType: ''
    returnType: void
    signature: void ge_double_scalarmult_vartime(ge_p2 *r, const unsigned char *a,
      const ge_p3 *A, const unsigned char *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fe_frombytes
      Src: /src/libtorrent/src/ed25519/ge.cpp:150,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/ge.cpp:151,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/ge.cpp:152,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:153,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:154,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:155,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/ge.cpp:156,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:157,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/ge.cpp:158,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:159,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:160,1
    - Dst: fe_pow22523
      Src: /src/libtorrent/src/ed25519/ge.cpp:161,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:162,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:163,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/ge.cpp:164,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:165,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:166,1
    - Dst: fe_isnonzero
      Src: /src/libtorrent/src/ed25519/ge.cpp:168,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:169,1
    - Dst: fe_isnonzero
      Src: /src/libtorrent/src/ed25519/ge.cpp:171,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:175,1
    - Dst: fe_isnegative
      Src: /src/libtorrent/src/ed25519/ge.cpp:178,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/ge.cpp:179,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - ge_p3*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 184
    functionName: ge_frombytes_negate_vartime
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 4
    functionsReached:
    - fe_sq
    - fe_sub
    - fe_pow22523
    - fe_isnegative
    - fe_isnonzero
    - fe_frombytes
    - fe_1
    - fe_neg
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: int
    signature: int ge_frombytes_negate_vartime(ge_p3 *h, const unsigned char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:193,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:194,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:195,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:196,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:197,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:198,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:199,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:200,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:201,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_precomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: ge_madd
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - fe_sub
    - fe_add
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:213,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:214,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:215,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:216,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:217,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:218,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:219,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:220,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:221,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_precomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 223
    functionName: ge_msub
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - fe_sub
    - fe_add
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:231,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:232,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p2*
    - ge_p1p1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: ge_p1p1_to_p2
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:243,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:244,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:245,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p3*
    - ge_p1p1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: ge_p1p1_to_p3
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 5
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_0
      Src: /src/libtorrent/src/ed25519/ge.cpp:251,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/ge.cpp:252,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/ge.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: ge_p2_0
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: void ge_p2_0(ge_p2 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/ge.cpp:265,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/ge.cpp:266,1
    - Dst: fe_sq2
      Src: /src/libtorrent/src/ed25519/ge.cpp:267,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:268,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/ge.cpp:269,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:270,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:271,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:272,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p1p1*
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 274
    functionName: ge_p2_dbl
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - fe_sq
    - fe_sq2
    - fe_sub
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_0
      Src: /src/libtorrent/src/ed25519/ge.cpp:278,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/ge.cpp:279,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/ge.cpp:280,1
    - Dst: fe_0
      Src: /src/libtorrent/src/ed25519/ge.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: ge_p3_0
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: void ge_p3_0(ge_p3 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ge_p3_to_p2
      Src: /src/libtorrent/src/ed25519/ge.cpp:291,1
    - Dst: ge_p2_dbl
      Src: /src/libtorrent/src/ed25519/ge.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p1p1*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: ge_p3_dbl
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - ge_p3_to_p2
    - ge_p2_dbl
    linkageType: ''
    returnType: void
    signature: void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:306,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:307,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/ge.cpp:308,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_cached*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: ge_p3_to_cached
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 5
    functionsReached:
    - fe_sub
    - fe_copy
    - fe_add
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_p3_to_cached(ge_cached *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/ge.cpp:318,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/ge.cpp:319,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/ge.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p2*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: ge_p3_to_p2
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - fe_copy
    linkageType: ''
    returnType: void
    signature: void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/ge.cpp:328,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:329,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:330,1
    - Dst: fe_tobytes
      Src: /src/libtorrent/src/ed25519/ge.cpp:331,1
    - Dst: fe_isnegative
      Src: /src/libtorrent/src/ed25519/ge.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - unsigned char*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: ge_p3_tobytes
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 12
    functionsReached:
    - fe_isnegative
    - fe_invert
    - fe_mul
    - fe_tobytes
    linkageType: ''
    returnType: void
    signature: void ge_p3_tobytes(unsigned char *s, const ge_p3 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - signed char
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: equal
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char equal(signed char b, signed char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: negative
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char negative(signed char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:353,1
    - Dst: fe_cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:354,1
    - Dst: fe_cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - t
    - u
    - b
    argTypes:
    - ge_precomp*
    - ge_precomp*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: cmov
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - fe_cmov
    linkageType: ''
    returnType: void
    signature: void cmov(ge_precomp *t, const ge_precomp *u, unsigned char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: negative
      Src: /src/libtorrent/src/ed25519/ge.cpp:363,1
    - Dst: schar
      Src: /src/libtorrent/src/ed25519/ge.cpp:364,1
    - Dst: uchar
      Src: /src/libtorrent/src/ed25519/ge.cpp:364,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/ge.cpp:365,1
    - Dst: fe_1
      Src: /src/libtorrent/src/ed25519/ge.cpp:366,1
    - Dst: fe_0
      Src: /src/libtorrent/src/ed25519/ge.cpp:367,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:368,1
    - Dst: equal
      Src: /src/libtorrent/src/ed25519/ge.cpp:368,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:369,1
    - Dst: equal
      Src: /src/libtorrent/src/ed25519/ge.cpp:369,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:370,1
    - Dst: equal
      Src: /src/libtorrent/src/ed25519/ge.cpp:370,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:371,1
    - Dst: equal
      Src: /src/libtorrent/src/ed25519/ge.cpp:371,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:372,1
    - Dst: equal
      Src: /src/libtorrent/src/ed25519/ge.cpp:372,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:373,1
    - Dst: equal
      Src: /src/libtorrent/src/ed25519/ge.cpp:373,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:374,1
    - Dst: equal
      Src: /src/libtorrent/src/ed25519/ge.cpp:374,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:375,1
    - Dst: equal
      Src: /src/libtorrent/src/ed25519/ge.cpp:375,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/ge.cpp:376,1
    - Dst: fe_copy
      Src: /src/libtorrent/src/ed25519/ge.cpp:377,1
    - Dst: fe_neg
      Src: /src/libtorrent/src/ed25519/ge.cpp:378,1
    - Dst: cmov
      Src: /src/libtorrent/src/ed25519/ge.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - t
    - pos
    - b
    argTypes:
    - ge_precomp*
    - int
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 380
    functionName: select
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - fe_0
    - negative
    - uchar
    - fe_copy
    - cmov
    - schar
    - fe_1
    - equal
    - fe_neg
    linkageType: ''
    returnType: void
    signature: void select(ge_precomp *t, int pos, signed char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ge_p3_0
      Src: /src/libtorrent/src/ed25519/ge.cpp:417,1
    - Dst: select
      Src: /src/libtorrent/src/ed25519/ge.cpp:420,1
    - Dst: ge_madd
      Src: /src/libtorrent/src/ed25519/ge.cpp:421,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:422,1
    - Dst: ge_p3_dbl
      Src: /src/libtorrent/src/ed25519/ge.cpp:425,1
    - Dst: ge_p1p1_to_p2
      Src: /src/libtorrent/src/ed25519/ge.cpp:426,1
    - Dst: ge_p2_dbl
      Src: /src/libtorrent/src/ed25519/ge.cpp:427,1
    - Dst: ge_p1p1_to_p2
      Src: /src/libtorrent/src/ed25519/ge.cpp:428,1
    - Dst: ge_p2_dbl
      Src: /src/libtorrent/src/ed25519/ge.cpp:429,1
    - Dst: ge_p1p1_to_p2
      Src: /src/libtorrent/src/ed25519/ge.cpp:430,1
    - Dst: ge_p2_dbl
      Src: /src/libtorrent/src/ed25519/ge.cpp:431,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:432,1
    - Dst: select
      Src: /src/libtorrent/src/ed25519/ge.cpp:435,1
    - Dst: ge_madd
      Src: /src/libtorrent/src/ed25519/ge.cpp:436,1
    - Dst: ge_p1p1_to_p3
      Src: /src/libtorrent/src/ed25519/ge.cpp:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - h
    - a
    argTypes:
    - ge_p3*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 439
    functionName: ge_scalarmult_base
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 12
    functionsReached:
    - ge_p1p1_to_p2
    - select
    - ge_madd
    - ge_p2_dbl
    - ge_p1p1_to_p3
    - ge_p3_0
    - ge_p3_dbl
    linkageType: ''
    returnType: void
    signature: void ge_scalarmult_base(ge_p3 *h, const unsigned char *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:449,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:450,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:451,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:452,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:453,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:454,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:455,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:456,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:457,1
    - Dst: fe_sub
      Src: /src/libtorrent/src/ed25519/ge.cpp:458,1
    - Dst: fe_add
      Src: /src/libtorrent/src/ed25519/ge.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_cached*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 460
    functionName: ge_sub
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - fe_sub
    - fe_add
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_invert
      Src: /src/libtorrent/src/ed25519/ge.cpp:467,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:468,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/ge.cpp:469,1
    - Dst: fe_tobytes
      Src: /src/libtorrent/src/ed25519/ge.cpp:470,1
    - Dst: fe_isnegative
      Src: /src/libtorrent/src/ed25519/ge.cpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - unsigned char*
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: ge_tobytes
    functionSourceFile: /src/libtorrent/src/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - fe_isnegative
    - fe_invert
    - fe_mul
    - fe_tobytes
    linkageType: ''
    returnType: void
    signature: void ge_tobytes(unsigned char *s, const ge_p2 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: load_3
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 load_3(const unsigned char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: load_4
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 load_4(const unsigned char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i64
      Src: /src/libtorrent/src/ed25519/fe.cpp:38,1
    - Dst: u64
      Src: /src/libtorrent/src/ed25519/fe.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - s
    argTypes:
    - i64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: shift_left
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 4
    functionsReached:
    - i64
    - u64
    linkageType: ''
    returnType: i64
    signature: i64 shift_left(i64 v, int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: fe_0
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_0(fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: fe_1
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_1(fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 134
    functionName: fe_add
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_add(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe
    - fe
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 199
    functionName: fe_cmov
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_cmov(fe f, const fe g, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe
    - fe
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 270
    functionName: fe_cswap
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_cswap(fe f,fe g,unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 300
    functionName: fe_copy
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_copy(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/fe.cpp:309,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/fe.cpp:310,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/fe.cpp:311,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/fe.cpp:312,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/fe.cpp:313,1
    - Dst: load_4
      Src: /src/libtorrent/src/ed25519/fe.cpp:314,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/fe.cpp:315,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/fe.cpp:316,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/fe.cpp:317,1
    - Dst: load_3
      Src: /src/libtorrent/src/ed25519/fe.cpp:318,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:332,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:335,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:338,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:341,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:344,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:347,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:350,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:353,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:356,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 371
    functionName: fe_frombytes
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 5
    functionsReached:
    - load_3
    - shift_left
    - load_4
    linkageType: ''
    returnType: void
    signature: void fe_frombytes(fe h, const unsigned char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:382,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:384,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:387,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:390,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:391,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:392,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:394,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:395,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:398,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:401,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:402,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:405,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:408,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:409,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:412,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:415,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:416,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:419,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:422,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:423,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:426,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:429,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:430,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:433,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:436,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:437,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:440,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:443,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:444,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:447,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:450,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 451
    functionName: fe_invert
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 6
    functionsReached:
    - fe_sq
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_invert(fe out, const fe z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_tobytes
      Src: /src/libtorrent/src/ed25519/fe.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 469
    functionName: fe_isnegative
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 3
    functionsReached:
    - fe_tobytes
    linkageType: ''
    returnType: int
    signature: int fe_isnegative(const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_tobytes
      Src: /src/libtorrent/src/ed25519/fe.cpp:485,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:489,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:490,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:491,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:492,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:493,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:494,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:495,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:496,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:497,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:498,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:499,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:500,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:501,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:502,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:503,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:504,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:505,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:506,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:507,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:508,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:509,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:510,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:511,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:512,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:513,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:514,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:515,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:516,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:517,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:518,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/fe.cpp:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - f
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 523
    functionName: fe_isnonzero
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 1
    functionsReached:
    - F
    - fe_tobytes
    linkageType: ''
    returnType: int
    signature: int fe_isnonzero(const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: F
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:716,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:719,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:723,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:726,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:730,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:733,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:737,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:740,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:744,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:747,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:751,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 767
    functionName: fe_mul
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 15
    functionsReached:
    - shift_left
    linkageType: ''
    returnType: void
    signature: void fe_mul(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:813,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:814,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:815,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:816,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:817,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:819,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:820,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:821,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:822,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 835
    functionName: fe_mul121666
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 4
    functionsReached:
    - shift_left
    linkageType: ''
    returnType: void
    signature: void fe_mul121666(fe h, fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 880
    functionName: fe_neg
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_neg(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:888,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:890,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:893,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:896,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:897,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:898,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:900,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:901,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:904,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:907,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:908,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:911,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:914,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:915,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:918,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:921,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:922,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:925,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:928,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:929,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:932,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:935,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:936,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:939,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:942,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:943,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:946,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:949,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:950,1
    - Dst: fe_sq
      Src: /src/libtorrent/src/ed25519/fe.cpp:953,1
    - Dst: fe_mul
      Src: /src/libtorrent/src/ed25519/fe.cpp:956,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 958
    functionName: fe_pow22523
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 1
    functionsReached:
    - fe_sq
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_pow22523(fe out, const fe z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1077,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1080,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1083,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1086,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1089,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1092,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1095,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1098,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1101,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1104,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1107,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 1121
    functionName: fe_sq
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 8
    functionsReached:
    - shift_left
    linkageType: ''
    returnType: void
    signature: void fe_sq(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1250,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1253,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1256,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1259,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1262,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1265,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1268,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1271,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1274,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1277,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1280,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1294
    functionName: fe_sq2
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 1
    functionsReached:
    - shift_left
    linkageType: ''
    returnType: void
    signature: void fe_sq2(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1351
    functionName: fe_sub
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_sub(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1418,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1421,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1424,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1427,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1430,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1433,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1436,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1439,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1442,1
    - Dst: shift_left
      Src: /src/libtorrent/src/ed25519/fe.cpp:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - unsigned char*
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1485
    functionName: fe_tobytes
    functionSourceFile: /src/libtorrent/src/ed25519/fe.cpp
    functionUses: 8
    functionsReached:
    - shift_left
    linkageType: ''
    returnType: void
    signature: void fe_tobytes(unsigned char *s, const fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:17,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:18,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:19,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:20,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:21,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:22,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:23,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:24,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:25,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:26,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:27,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:28,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:29,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:30,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:31,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:32,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:33,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:34,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:35,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:36,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:37,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:38,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:39,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:40,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:41,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:42,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:43,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:44,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:45,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:46,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::consttime_equal
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 0
    functionsReached:
    - F
    linkageType: ''
    returnType: int
    signature: int consttime_equal(const unsigned char *x, const unsigned char *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: F
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ge_frombytes_negate_vartime
      Src: /src/libtorrent/src/ed25519/verify.cpp:62,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:67,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:67,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:68,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:68,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:69,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:69,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/verify.cpp:70,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: ge_double_scalarmult_vartime
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: ge_tobytes
      Src: /src/libtorrent/src/ed25519/verify.cpp:75,1
    - Dst: libtorrent::aux::consttime_equal
      Src: /src/libtorrent/src/ed25519/verify.cpp:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - signature
    - message
    - message_len
    - public_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - std::ptrdiff_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::ed25519_verify
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 4
    functionsReached:
    - sc_reduce
    - sha512_hash::data
    - hasher512::final
    - ge_frombytes_negate_vartime
    - ge_double_scalarmult_vartime
    - reinterpret_cast<char const*>
    - libtorrent::aux::consttime_equal
    - hasher512::update
    - ge_tobytes
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: int
    signature: int ed25519_verify(const unsigned char *signature, const unsigned char
      *message, std::ptrdiff_t message_len, const unsigned char *public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:17,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:18,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:19,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:20,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:21,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:22,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:23,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:24,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:25,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:26,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:27,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:28,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:29,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:30,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:31,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:32,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:33,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:34,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:35,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:36,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:37,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:38,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:39,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:40,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:41,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:42,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:43,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:44,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:45,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:46,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::consttime_equal
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 1
    functionsReached:
    - F
    linkageType: ''
    returnType: int
    signature: int consttime_equal(const unsigned char *x, const unsigned char *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: F
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ge_frombytes_negate_vartime
      Src: /src/libtorrent/src/ed25519/verify.cpp:62,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:67,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:67,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:68,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:68,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:69,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:69,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/verify.cpp:70,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: ge_double_scalarmult_vartime
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: ge_tobytes
      Src: /src/libtorrent/src/ed25519/verify.cpp:75,1
    - Dst: libtorrent::aux::consttime_equal
      Src: /src/libtorrent/src/ed25519/verify.cpp:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - signature
    - message
    - message_len
    - public_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - std::ptrdiff_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::ed25519_verify
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 4
    functionsReached:
    - sc_reduce
    - sha512_hash::data
    - hasher512::final
    - ge_frombytes_negate_vartime
    - ge_double_scalarmult_vartime
    - reinterpret_cast<char const*>
    - libtorrent::aux::consttime_equal
    - hasher512::update
    - ge_tobytes
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: int
    signature: int ed25519_verify(const unsigned char *signature, const unsigned char
      *message, std::ptrdiff_t message_len, const unsigned char *public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:17,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:18,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:19,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:20,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:21,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:22,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:23,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:24,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:25,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:26,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:27,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:28,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:29,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:30,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:31,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:32,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:33,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:34,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:35,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:36,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:37,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:38,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:39,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:40,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:41,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:42,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:43,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:44,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:45,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:46,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::consttime_equal
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 2
    functionsReached:
    - F
    linkageType: ''
    returnType: int
    signature: int consttime_equal(const unsigned char *x, const unsigned char *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: F
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ge_frombytes_negate_vartime
      Src: /src/libtorrent/src/ed25519/verify.cpp:62,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:67,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:67,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:68,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:68,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:69,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:69,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/verify.cpp:70,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: ge_double_scalarmult_vartime
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: ge_tobytes
      Src: /src/libtorrent/src/ed25519/verify.cpp:75,1
    - Dst: libtorrent::aux::consttime_equal
      Src: /src/libtorrent/src/ed25519/verify.cpp:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - signature
    - message
    - message_len
    - public_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - std::ptrdiff_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::ed25519_verify
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 4
    functionsReached:
    - sc_reduce
    - sha512_hash::data
    - hasher512::final
    - ge_frombytes_negate_vartime
    - ge_double_scalarmult_vartime
    - reinterpret_cast<char const*>
    - libtorrent::aux::consttime_equal
    - hasher512::update
    - ge_tobytes
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: int
    signature: int ed25519_verify(const unsigned char *signature, const unsigned char
      *message, std::ptrdiff_t message_len, const unsigned char *public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:17,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:18,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:19,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:20,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:21,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:22,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:23,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:24,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:25,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:26,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:27,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:28,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:29,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:30,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:31,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:32,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:33,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:34,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:35,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:36,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:37,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:38,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:39,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:40,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:41,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:42,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:43,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:44,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:45,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:46,1
    - Dst: F
      Src: /src/libtorrent/src/ed25519/verify.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::consttime_equal
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 3
    functionsReached:
    - F
    linkageType: ''
    returnType: int
    signature: int consttime_equal(const unsigned char *x, const unsigned char *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: F
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ge_frombytes_negate_vartime
      Src: /src/libtorrent/src/ed25519/verify.cpp:62,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:67,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:67,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:68,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:68,1
    - Dst: hasher512::update
      Src: /src/libtorrent/src/ed25519/verify.cpp:69,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:69,1
    - Dst: hasher512::final
      Src: /src/libtorrent/src/ed25519/verify.cpp:70,1
    - Dst: sc_reduce
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/verify.cpp:72,1
    - Dst: ge_double_scalarmult_vartime
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: sha512_hash::data
      Src: /src/libtorrent/src/ed25519/verify.cpp:73,1
    - Dst: ge_tobytes
      Src: /src/libtorrent/src/ed25519/verify.cpp:75,1
    - Dst: libtorrent::aux::consttime_equal
      Src: /src/libtorrent/src/ed25519/verify.cpp:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - signature
    - message
    - message_len
    - public_key
    argTypes:
    - unsigned char*
    - unsigned char*
    - std::ptrdiff_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::ed25519_verify
    functionSourceFile: /src/libtorrent/src/ed25519/verify.cpp
    functionUses: 4
    functionsReached:
    - sc_reduce
    - sha512_hash::data
    - hasher512::final
    - ge_frombytes_negate_vartime
    - ge_double_scalarmult_vartime
    - reinterpret_cast<char const*>
    - libtorrent::aux::consttime_equal
    - hasher512::update
    - ge_tobytes
    - reinterpret_cast<unsigned char*>
    linkageType: ''
    returnType: int
    signature: int ed25519_verify(const unsigned char *signature, const unsigned char
      *message, std::ptrdiff_t message_len, const unsigned char *public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: UINT64_C
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_C(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ROR64c
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROR64c(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: STORE64H
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: LOAD64H
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Ch
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Maj
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: S
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: R
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 181
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: Sigma0
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: Sigma1
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Gamma0
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: Gamma1
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: MIN
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:125,1
    - Dst: Gamma1
      Src: /src/libtorrent/src/ed25519/sha512.cpp:130,1
    - Dst: Gamma0
      Src: /src/libtorrent/src/ed25519/sha512.cpp:130,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:141,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:142,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:143,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:144,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:145,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:146,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:147,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - md
    - buf
    argTypes:
    - sha512_ctx*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::sha512_compress
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - LOAD64H
    - Gamma1
    - Gamma0
    - RND
    linkageType: ''
    returnType: int
    signature: int sha512_compress(sha512_ctx *md, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: RND
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(a,b,c,d,e,f,g,h,i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:174,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:175,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:176,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:177,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:178,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:179,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:180,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - md
    argTypes:
    - sha512_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: libtorrent::aux::SHA512_init
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int SHA512_init(sha512_ctx* md)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:205,1
    - Dst: MIN
      Src: /src/libtorrent/src/ed25519/sha512.cpp:212,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - md
    - in
    - inlen
    argTypes:
    - sha512_ctx*
    - std::uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 232
    functionName: libtorrent::aux::SHA512_update
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::sha512_compress
    - MIN
    linkageType: ''
    returnType: int
    signature: int SHA512_update(sha512_ctx* md, std::uint8_t const* in, std::size_t
      inlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:252,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:265,1
    - Dst: STORE64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:278,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:279,1
    - Dst: STORE64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - out
    - md
    argTypes:
    - std::uint8_t*
    - sha512_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 287
    functionName: libtorrent::aux::SHA512_final
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::sha512_compress
    - STORE64H
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int SHA512_final(std::uint8_t* out, sha512_ctx* md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ROR64c
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROR64c(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: STORE64H
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: LOAD64H
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Ch
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Maj
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: S
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: R
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 181
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: Sigma0
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: Sigma1
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Gamma0
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: Gamma1
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: MIN
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:125,1
    - Dst: Gamma1
      Src: /src/libtorrent/src/ed25519/sha512.cpp:130,1
    - Dst: Gamma0
      Src: /src/libtorrent/src/ed25519/sha512.cpp:130,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:141,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:142,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:143,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:144,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:145,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:146,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:147,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - md
    - buf
    argTypes:
    - sha512_ctx*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::sha512_compress
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 2
    functionsReached:
    - LOAD64H
    - Gamma1
    - Gamma0
    - RND
    linkageType: ''
    returnType: int
    signature: int sha512_compress(sha512_ctx *md, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: RND
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(a,b,c,d,e,f,g,h,i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:174,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:175,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:176,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:177,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:178,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:179,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:180,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - md
    argTypes:
    - sha512_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: libtorrent::aux::SHA512_init
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int SHA512_init(sha512_ctx* md)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:205,1
    - Dst: MIN
      Src: /src/libtorrent/src/ed25519/sha512.cpp:212,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - md
    - in
    - inlen
    argTypes:
    - sha512_ctx*
    - std::uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 232
    functionName: libtorrent::aux::SHA512_update
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::sha512_compress
    - MIN
    linkageType: ''
    returnType: int
    signature: int SHA512_update(sha512_ctx* md, std::uint8_t const* in, std::size_t
      inlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:252,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:265,1
    - Dst: STORE64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:278,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:279,1
    - Dst: STORE64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - out
    - md
    argTypes:
    - std::uint8_t*
    - sha512_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 287
    functionName: libtorrent::aux::SHA512_final
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::sha512_compress
    - STORE64H
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int SHA512_final(std::uint8_t* out, sha512_ctx* md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ROR64c
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROR64c(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: STORE64H
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: LOAD64H
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Ch
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Maj
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: S
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: R
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 181
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: Sigma0
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: Sigma1
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Gamma0
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: Gamma1
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: MIN
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:125,1
    - Dst: Gamma1
      Src: /src/libtorrent/src/ed25519/sha512.cpp:130,1
    - Dst: Gamma0
      Src: /src/libtorrent/src/ed25519/sha512.cpp:130,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:141,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:142,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:143,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:144,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:145,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:146,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:147,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - md
    - buf
    argTypes:
    - sha512_ctx*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::sha512_compress
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached:
    - LOAD64H
    - Gamma1
    - Gamma0
    - RND
    linkageType: ''
    returnType: int
    signature: int sha512_compress(sha512_ctx *md, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: RND
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(a,b,c,d,e,f,g,h,i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:174,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:175,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:176,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:177,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:178,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:179,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:180,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - md
    argTypes:
    - sha512_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: libtorrent::aux::SHA512_init
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int SHA512_init(sha512_ctx* md)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:205,1
    - Dst: MIN
      Src: /src/libtorrent/src/ed25519/sha512.cpp:212,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - md
    - in
    - inlen
    argTypes:
    - sha512_ctx*
    - std::uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 232
    functionName: libtorrent::aux::SHA512_update
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::sha512_compress
    - MIN
    linkageType: ''
    returnType: int
    signature: int SHA512_update(sha512_ctx* md, std::uint8_t const* in, std::size_t
      inlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:252,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:265,1
    - Dst: STORE64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:278,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:279,1
    - Dst: STORE64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - out
    - md
    argTypes:
    - std::uint8_t*
    - sha512_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 287
    functionName: libtorrent::aux::SHA512_final
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::sha512_compress
    - STORE64H
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int SHA512_final(std::uint8_t* out, sha512_ctx* md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ROR64c
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROR64c(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: STORE64H
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: LOAD64H
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Ch
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Maj
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: S
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: R
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 181
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: Sigma0
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: Sigma1
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Gamma0
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: Gamma1
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: MIN
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:125,1
    - Dst: Gamma1
      Src: /src/libtorrent/src/ed25519/sha512.cpp:130,1
    - Dst: Gamma0
      Src: /src/libtorrent/src/ed25519/sha512.cpp:130,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:141,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:142,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:143,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:144,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:145,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:146,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:147,1
    - Dst: RND
      Src: /src/libtorrent/src/ed25519/sha512.cpp:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - md
    - buf
    argTypes:
    - sha512_ctx*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 161
    functionName: libtorrent::aux::sha512_compress
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 6
    functionsReached:
    - LOAD64H
    - Gamma1
    - Gamma0
    - RND
    linkageType: ''
    returnType: int
    signature: int sha512_compress(sha512_ctx *md, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: RND
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(a,b,c,d,e,f,g,h,i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:174,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:175,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:176,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:177,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:178,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:179,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:180,1
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - md
    argTypes:
    - sha512_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: libtorrent::aux::SHA512_init
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int SHA512_init(sha512_ctx* md)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:205,1
    - Dst: MIN
      Src: /src/libtorrent/src/ed25519/sha512.cpp:212,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - md
    - in
    - inlen
    argTypes:
    - sha512_ctx*
    - std::uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 232
    functionName: libtorrent::aux::SHA512_update
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::sha512_compress
    - MIN
    linkageType: ''
    returnType: int
    signature: int SHA512_update(sha512_ctx* md, std::uint8_t const* in, std::size_t
      inlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/libtorrent/src/ed25519/sha512.cpp:252,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:265,1
    - Dst: STORE64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:278,1
    - Dst: libtorrent::aux::sha512_compress
      Src: /src/libtorrent/src/ed25519/sha512.cpp:279,1
    - Dst: STORE64H
      Src: /src/libtorrent/src/ed25519/sha512.cpp:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - out
    - md
    argTypes:
    - std::uint8_t*
    - sha512_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 287
    functionName: libtorrent::aux::SHA512_final
    functionSourceFile: /src/libtorrent/src/ed25519/sha512.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::sha512_compress
    - STORE64H
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int SHA512_final(std::uint8_t* out, sha512_ctx* md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/bindings/c/library.cpp:48,1
    - Dst: begin
      Src: /src/libtorrent/bindings/c/library.cpp:48,1
    - Dst: end
      Src: /src/libtorrent/bindings/c/library.cpp:48,1
    - Dst: end
      Src: /src/libtorrent/bindings/c/library.cpp:49,1
    - Dst: begin
      Src: /src/libtorrent/bindings/c/library.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - lt::torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: find_handle
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::find
    - begin
    linkageType: ''
    returnType: int
    signature: int find_handle(lt::torrent_handle h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/bindings/c/library.cpp:55,1
    - Dst: session_impl::find_torrent_handle
      Src: /src/libtorrent/bindings/c/library.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: get_handle
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 87
    functionsReached:
    - session_impl::find_torrent_handle
    - size
    linkageType: ''
    returnType: lt::torrent_handle
    signature: lt::torrent_handle get_handle(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/bindings/c/library.cpp:61,1
    - Dst: begin
      Src: /src/libtorrent/bindings/c/library.cpp:61,1
    - Dst: end
      Src: /src/libtorrent/bindings/c/library.cpp:62,1
    - Dst: is_valid
      Src: /src/libtorrent/bindings/c/library.cpp:63,1
    - Dst: end
      Src: /src/libtorrent/bindings/c/library.cpp:64,1
    - Dst: begin
      Src: /src/libtorrent/bindings/c/library.cpp:67,1
    - Dst: push_back
      Src: /src/libtorrent/bindings/c/library.cpp:70,1
    - Dst: size
      Src: /src/libtorrent/bindings/c/library.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - lt::torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: add_handle
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - is_valid
    - end
    - size
    - std::find_if
    linkageType: ''
    returnType: int
    signature: int add_handle(lt::torrent_handle const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - size
    - val
    argTypes:
    - void*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: set_int_value
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int set_int_value(void* dst, int* size, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::proxy_settings*::hostname::assign
      Src: /src/libtorrent/bindings/c/library.cpp:84,1
    - Dst: lt::proxy_settings*::username::assign
      Src: /src/libtorrent/bindings/c/library.cpp:86,1
    - Dst: lt::proxy_settings*::password::assign
      Src: /src/libtorrent/bindings/c/library.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - ps
    argTypes:
    - lt::proxy_settings*
    - proxy_setting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: copy_proxy_setting
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - lt::proxy_settings*::hostname::assign
    - lt::proxy_settings*::username::assign
    - lt::proxy_settings*::password::assign
    linkageType: ''
    returnType: void
    signature: void copy_proxy_setting(lt::proxy_settings* s, proxy_setting const*
      ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/libtorrent/bindings/c/library.cpp:48,1
    - Dst: begin
      Src: /src/libtorrent/bindings/c/library.cpp:48,1
    - Dst: end
      Src: /src/libtorrent/bindings/c/library.cpp:48,1
    - Dst: end
      Src: /src/libtorrent/bindings/c/library.cpp:49,1
    - Dst: begin
      Src: /src/libtorrent/bindings/c/library.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - lt::torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: find_handle
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::find
    - begin
    linkageType: ''
    returnType: int
    signature: int find_handle(lt::torrent_handle h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/bindings/c/library.cpp:55,1
    - Dst: session_impl::find_torrent_handle
      Src: /src/libtorrent/bindings/c/library.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: get_handle
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 87
    functionsReached:
    - session_impl::find_torrent_handle
    - size
    linkageType: ''
    returnType: lt::torrent_handle
    signature: lt::torrent_handle get_handle(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/libtorrent/bindings/c/library.cpp:61,1
    - Dst: begin
      Src: /src/libtorrent/bindings/c/library.cpp:61,1
    - Dst: end
      Src: /src/libtorrent/bindings/c/library.cpp:62,1
    - Dst: is_valid
      Src: /src/libtorrent/bindings/c/library.cpp:63,1
    - Dst: end
      Src: /src/libtorrent/bindings/c/library.cpp:64,1
    - Dst: begin
      Src: /src/libtorrent/bindings/c/library.cpp:67,1
    - Dst: push_back
      Src: /src/libtorrent/bindings/c/library.cpp:70,1
    - Dst: size
      Src: /src/libtorrent/bindings/c/library.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - lt::torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: add_handle
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - begin
    - is_valid
    - end
    - size
    - std::find_if
    linkageType: ''
    returnType: int
    signature: int add_handle(lt::torrent_handle const& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - size
    - val
    argTypes:
    - void*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: set_int_value
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int set_int_value(void* dst, int* size, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::proxy_settings*::hostname::assign
      Src: /src/libtorrent/bindings/c/library.cpp:84,1
    - Dst: lt::proxy_settings*::username::assign
      Src: /src/libtorrent/bindings/c/library.cpp:86,1
    - Dst: lt::proxy_settings*::password::assign
      Src: /src/libtorrent/bindings/c/library.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - ps
    argTypes:
    - lt::proxy_settings*
    - proxy_setting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: copy_proxy_setting
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - lt::proxy_settings*::hostname::assign
    - lt::proxy_settings*::username::assign
    - lt::proxy_settings*::password::assign
    linkageType: ''
    returnType: void
    signature: void copy_proxy_setting(lt::proxy_settings* s, proxy_setting const*
      ps)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/bindings/c/library.cpp:100,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:114,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:120,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:123,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:126,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:129,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:132,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:135,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:138,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:141,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:144,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:148,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:152,1
    - Dst: va_end
      Src: /src/libtorrent/bindings/c/library.cpp:154,1
    - Dst: session::session
      Src: /src/libtorrent/bindings/c/library.cpp:160,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 161
    functionName: session_create
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - session::session
    - va_end
    - va_arg
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT * session_create(int tag, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ses
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: session_close
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT session_close(void* ses)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/bindings/c/library.cpp:173,1
    - Dst: add_torrent_params::ti::reset
      Src: /src/libtorrent/bindings/c/library.cpp:192,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:192,1
    - Dst: torrent_info::torrent_info
      Src: /src/libtorrent/bindings/c/library.cpp:192,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:195,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:198,1
    - Dst: add_torrent_params::ti::reset
      Src: /src/libtorrent/bindings/c/library.cpp:201,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/c/library.cpp:201,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:201,1
    - Dst: torrent_info::torrent_info
      Src: /src/libtorrent/bindings/c/library.cpp:201,1
    - Dst: add_torrent_params::ti::reset
      Src: /src/libtorrent/bindings/c/library.cpp:207,1
    - Dst: torrent_info::torrent_info
      Src: /src/libtorrent/bindings/c/library.cpp:207,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:211,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:214,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:217,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:220,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:223,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:226,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:229,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:232,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:235,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:238,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:241,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:244,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:247,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:251,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:255,1
    - Dst: va_end
      Src: /src/libtorrent/bindings/c/library.cpp:257,1
    - Dst: add_torrent_params::ti::reset
      Src: /src/libtorrent/bindings/c/library.cpp:260,1
    - Dst: torrent_info::torrent_info
      Src: /src/libtorrent/bindings/c/library.cpp:260,1
    - Dst: add_torrent_params::resume_data::assign
      Src: /src/libtorrent/bindings/c/library.cpp:264,1
    - Dst: add_magnet_uri
      Src: /src/libtorrent/bindings/c/library.cpp:269,1
    - Dst: session*::add_torrent
      Src: /src/libtorrent/bindings/c/library.cpp:273,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/bindings/c/library.cpp:276,1
    - Dst: find_handle
      Src: /src/libtorrent/bindings/c/library.cpp:281,1
    - Dst: add_handle
      Src: /src/libtorrent/bindings/c/library.cpp:282,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 2
    argNames:
    - ses
    - tag
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 285
    functionName: session_add_torrent
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - torrent_info::torrent_info
    - add_torrent_params::resume_data::assign
    - va_start
    - torrent_handle::is_valid
    - session*::add_torrent
    - add_magnet_uri
    - find_handle
    - va_end
    - add_handle
    - add_torrent_params::ti::reset
    - sha1_hash
    - va_arg
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT session_add_torrent(void* ses, int tag, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_handle
      Src: /src/libtorrent/bindings/c/library.cpp:290,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/bindings/c/library.cpp:291,1
    - Dst: session*::remove_torrent
      Src: /src/libtorrent/bindings/c/library.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ses
    - tor
    - flags
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: session_remove_torrent
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - get_handle
    - torrent_handle::is_valid
    - session*::remove_torrent
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT session_remove_torrent(void* ses, int tor, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session*::pop_alert
      Src: /src/libtorrent/bindings/c/library.cpp:303,1
    - Dst: std::auto_ptr::get
      Src: /src/libtorrent/bindings/c/library.cpp:304,1
    - Dst: std::auto_ptr::category
      Src: /src/libtorrent/bindings/c/library.cpp:306,1
    - Dst: strncpy
      Src: /src/libtorrent/bindings/c/library.cpp:307,1
    - Dst: std::auto_ptr::message
      Src: /src/libtorrent/bindings/c/library.cpp:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ses
    - dest
    - len
    - category
    argTypes:
    - void*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 311
    functionName: session_pop_alert
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - std::auto_ptr::category
    - std::auto_ptr::get
    - session*::pop_alert
    - std::auto_ptr::message
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT session_pop_alert(void* ses, char* dest, int len, int*
      category)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtorrent/bindings/c/library.cpp:320,1
    - Dst: session*::set_upload_rate_limit
      Src: /src/libtorrent/bindings/c/library.cpp:327,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:327,1
    - Dst: session*::set_download_rate_limit
      Src: /src/libtorrent/bindings/c/library.cpp:330,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:330,1
    - Dst: session*::set_local_upload_rate_limit
      Src: /src/libtorrent/bindings/c/library.cpp:333,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:333,1
    - Dst: session*::set_local_download_rate_limit
      Src: /src/libtorrent/bindings/c/library.cpp:336,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:336,1
    - Dst: session*::set_max_uploads
      Src: /src/libtorrent/bindings/c/library.cpp:339,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:339,1
    - Dst: session*::set_max_connections
      Src: /src/libtorrent/bindings/c/library.cpp:342,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:342,1
    - Dst: session*::set_max_half_open_connections
      Src: /src/libtorrent/bindings/c/library.cpp:345,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:345,1
    - Dst: copy_proxy_setting
      Src: /src/libtorrent/bindings/c/library.cpp:350,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:350,1
    - Dst: session*::set_peer_proxy
      Src: /src/libtorrent/bindings/c/library.cpp:351,1
    - Dst: copy_proxy_setting
      Src: /src/libtorrent/bindings/c/library.cpp:356,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:356,1
    - Dst: session*::set_web_seed_proxy
      Src: /src/libtorrent/bindings/c/library.cpp:357,1
    - Dst: copy_proxy_setting
      Src: /src/libtorrent/bindings/c/library.cpp:362,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:362,1
    - Dst: session*::set_tracker_proxy
      Src: /src/libtorrent/bindings/c/library.cpp:363,1
    - Dst: session*::set_alert_mask
      Src: /src/libtorrent/bindings/c/library.cpp:367,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:367,1
    - Dst: copy_proxy_setting
      Src: /src/libtorrent/bindings/c/library.cpp:373,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:373,1
    - Dst: session*::set_dht_proxy
      Src: /src/libtorrent/bindings/c/library.cpp:374,1
    - Dst: copy_proxy_setting
      Src: /src/libtorrent/bindings/c/library.cpp:380,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:380,1
    - Dst: session*::set_peer_proxy
      Src: /src/libtorrent/bindings/c/library.cpp:381,1
    - Dst: session*::set_web_seed_proxy
      Src: /src/libtorrent/bindings/c/library.cpp:382,1
    - Dst: session*::set_tracker_proxy
      Src: /src/libtorrent/bindings/c/library.cpp:383,1
    - Dst: session*::set_dht_proxy
      Src: /src/libtorrent/bindings/c/library.cpp:385,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:390,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:394,1
    - Dst: va_end
      Src: /src/libtorrent/bindings/c/library.cpp:396,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 2
    argNames:
    - ses
    - tag
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 398
    functionName: session_set_settings
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - session*::set_web_seed_proxy
    - session*::set_peer_proxy
    - session*::set_max_connections
    - session*::set_upload_rate_limit
    - va_start
    - session*::set_max_uploads
    - session*::set_max_half_open_connections
    - session*::set_tracker_proxy
    - copy_proxy_setting
    - session*::set_local_upload_rate_limit
    - session*::set_download_rate_limit
    - session*::set_alert_mask
    - session*::set_dht_proxy
    - va_end
    - session*::set_local_download_rate_limit
    - va_arg
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT session_set_settings(void* ses, int tag, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:408,1
    - Dst: session*::upload_rate_limit
      Src: /src/libtorrent/bindings/c/library.cpp:408,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:410,1
    - Dst: session*::download_rate_limit
      Src: /src/libtorrent/bindings/c/library.cpp:410,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:412,1
    - Dst: session*::local_upload_rate_limit
      Src: /src/libtorrent/bindings/c/library.cpp:412,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:414,1
    - Dst: session*::local_download_rate_limit
      Src: /src/libtorrent/bindings/c/library.cpp:414,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:416,1
    - Dst: session*::max_uploads
      Src: /src/libtorrent/bindings/c/library.cpp:416,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:418,1
    - Dst: session*::max_connections
      Src: /src/libtorrent/bindings/c/library.cpp:418,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:420,1
    - Dst: session*::max_half_open_connections
      Src: /src/libtorrent/bindings/c/library.cpp:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - ses
    - tag
    - value
    - value_size
    argTypes:
    - void*
    - int
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 424
    functionName: session_get_setting
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - session*::upload_rate_limit
    - session*::local_download_rate_limit
    - session*::local_upload_rate_limit
    - session*::max_uploads
    - session*::max_half_open_connections
    - session*::download_rate_limit
    - session*::max_connections
    - set_int_value
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT session_get_setting(void* ses, int tag, void* value,
      int* value_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt::session*::status
      Src: /src/libtorrent/bindings/c/library.cpp:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - sesptr
    - s
    - struct_size
    argTypes:
    - void*
    - struct session_status*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 481
    functionName: session_get_status
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - lt::session*::status
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT session_get_status(void* sesptr, struct session_status*
      s, int struct_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_handle
      Src: /src/libtorrent/bindings/c/library.cpp:485,1
    - Dst: lt::torrent_handle::is_valid
      Src: /src/libtorrent/bindings/c/library.cpp:486,1
    - Dst: lt::torrent_handle::status
      Src: /src/libtorrent/bindings/c/library.cpp:488,1
    - Dst: strncpy
      Src: /src/libtorrent/bindings/c/library.cpp:495,1
    - Dst: lt::torrent_status::error::c_str
      Src: /src/libtorrent/bindings/c/library.cpp:495,1
    - Dst: libtorrent::total_seconds
      Src: /src/libtorrent/bindings/c/library.cpp:497,1
    - Dst: libtorrent::total_seconds
      Src: /src/libtorrent/bindings/c/library.cpp:498,1
    - Dst: strncpy
      Src: /src/libtorrent/bindings/c/library.cpp:499,1
    - Dst: lt::torrent_status::current_tracker::c_str
      Src: /src/libtorrent/bindings/c/library.cpp:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 3
    argNames:
    - tor
    - s
    - struct_size
    argTypes:
    - int
    - torrent_status*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 540
    functionName: torrent_get_status
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - lt::torrent_handle::status
    - libtorrent::total_seconds
    - lt::torrent_status::error::c_str
    - lt::torrent_status::current_tracker::c_str
    - get_handle
    - lt::torrent_handle::is_valid
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT torrent_get_status(int tor, torrent_status* s, int struct_size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_handle
      Src: /src/libtorrent/bindings/c/library.cpp:545,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/bindings/c/library.cpp:546,1
    - Dst: va_start
      Src: /src/libtorrent/bindings/c/library.cpp:549,1
    - Dst: torrent_handle::set_upload_limit
      Src: /src/libtorrent/bindings/c/library.cpp:556,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:556,1
    - Dst: torrent_handle::set_download_limit
      Src: /src/libtorrent/bindings/c/library.cpp:559,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:559,1
    - Dst: torrent_handle::set_max_uploads
      Src: /src/libtorrent/bindings/c/library.cpp:562,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:562,1
    - Dst: torrent_handle::set_max_connections
      Src: /src/libtorrent/bindings/c/library.cpp:565,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:565,1
    - Dst: torrent_handle::set_sequential_download
      Src: /src/libtorrent/bindings/c/library.cpp:568,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:568,1
    - Dst: torrent_handle::super_seeding
      Src: /src/libtorrent/bindings/c/library.cpp:571,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:571,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:575,1
    - Dst: va_arg
      Src: /src/libtorrent/bindings/c/library.cpp:579,1
    - Dst: va_end
      Src: /src/libtorrent/bindings/c/library.cpp:581,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - tor
    - tag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 583
    functionName: torrent_set_settings
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::set_max_connections
    - torrent_handle::set_max_uploads
    - va_start
    - torrent_handle::set_sequential_download
    - torrent_handle::is_valid
    - torrent_handle::super_seeding
    - va_end
    - torrent_handle::set_download_limit
    - get_handle
    - torrent_handle::set_upload_limit
    - va_arg
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT torrent_set_settings(int tor, int tag, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_handle
      Src: /src/libtorrent/bindings/c/library.cpp:588,1
    - Dst: torrent_handle::is_valid
      Src: /src/libtorrent/bindings/c/library.cpp:589,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:594,1
    - Dst: torrent_handle::upload_limit
      Src: /src/libtorrent/bindings/c/library.cpp:594,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:596,1
    - Dst: torrent_handle::download_limit
      Src: /src/libtorrent/bindings/c/library.cpp:596,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:598,1
    - Dst: torrent_handle::max_uploads
      Src: /src/libtorrent/bindings/c/library.cpp:598,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:600,1
    - Dst: torrent_handle::max_connections
      Src: /src/libtorrent/bindings/c/library.cpp:600,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:602,1
    - Dst: torrent_handle::is_sequential_download
      Src: /src/libtorrent/bindings/c/library.cpp:602,1
    - Dst: set_int_value
      Src: /src/libtorrent/bindings/c/library.cpp:604,1
    - Dst: torrent_handle::super_seeding
      Src: /src/libtorrent/bindings/c/library.cpp:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - tor
    - tag
    - value
    - value_size
    argTypes:
    - int
    - int
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 608
    functionName: torrent_get_setting
    functionSourceFile: /src/libtorrent/bindings/c/library.cpp
    functionUses: 0
    functionsReached:
    - torrent_handle::max_uploads
    - torrent_handle::download_limit
    - torrent_handle::is_valid
    - torrent_handle::is_sequential_download
    - torrent_handle::super_seeding
    - set_int_value
    - torrent_handle::upload_limit
    - get_handle
    - torrent_handle::max_connections
    linkageType: ''
    returnType: TORRENT_EXPORT
    signature: TORRENT_EXPORT torrent_get_setting(int tor, int tag, void* value, int*
      value_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: stop
    functionSourceFile: /src/libtorrent/bindings/c/simple_client.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stop(int signal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libtorrent/bindings/c/simple_client.c:50,1
    - Dst: session_create
      Src: /src/libtorrent/bindings/c/simple_client.c:55,1
    - Dst: session_add_torrent
      Src: /src/libtorrent/bindings/c/simple_client.c:61,1
    - Dst: fprintf
      Src: /src/libtorrent/bindings/c/simple_client.c:68,1
    - Dst: printf
      Src: /src/libtorrent/bindings/c/simple_client.c:75,1
    - Dst: signal
      Src: /src/libtorrent/bindings/c/simple_client.c:77,1
    - Dst: signal
      Src: /src/libtorrent/bindings/c/simple_client.c:78,1
    - Dst: signal
      Src: /src/libtorrent/bindings/c/simple_client.c:79,1
    - Dst: torrent_get_status
      Src: /src/libtorrent/bindings/c/simple_client.c:89,1
    - Dst: printf
      Src: /src/libtorrent/bindings/c/simple_client.c:90,1
    - Dst: session_pop_alert
      Src: /src/libtorrent/bindings/c/simple_client.c:102,1
    - Dst: printf
      Src: /src/libtorrent/bindings/c/simple_client.c:104,1
    - Dst: strlen
      Src: /src/libtorrent/bindings/c/simple_client.c:107,1
    - Dst: fprintf
      Src: /src/libtorrent/bindings/c/simple_client.c:109,1
    - Dst: fflush
      Src: /src/libtorrent/bindings/c/simple_client.c:113,1
    - Dst: usleep
      Src: /src/libtorrent/bindings/c/simple_client.c:114,1
    - Dst: printf
      Src: /src/libtorrent/bindings/c/simple_client.c:116,1
    - Dst: session_close
      Src: /src/libtorrent/bindings/c/simple_client.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 122
    functionName: main
    functionSourceFile: /src/libtorrent/bindings/c/simple_client.c
    functionUses: 0
    functionsReached:
    - signal
    - session_close
    - session_pop_alert
    - session_create
    - torrent_get_status
    - printf
    - fflush
    - fprintf
    - session_add_torrent
    - strlen
    - usleep
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_seeds
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:36,1
    - Dst: std::set::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:39,1
    - Dst: std::set::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:40,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: url_seeds
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 8
    functionsReached:
    - std::set::begin
    - list::append
    - std::set::end
    - url_seeds
    linkageType: ''
    returnType: list
    signature: list url_seeds(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_seeds
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:51,1
    - Dst: std::set::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:54,1
    - Dst: std::set::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:55,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: http_seeds
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 4
    functionsReached:
    - std::set::begin
    - std::set::end
    - http_seeds
    - list::append
    linkageType: ''
    returnType: list
    signature: list http_seeds(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_availability
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:66,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: piece_availability
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 2
    functionsReached:
    - list::append
    - piece_availability
    linkageType: ''
    returnType: list
    signature: list piece_availability(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_piece_priorities
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:80,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: piece_priorities
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 12
    functionsReached:
    - get_piece_priorities
    - list::append
    linkageType: ''
    returnType: list
    signature: list piece_priorities(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_seeds
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:36,1
    - Dst: std::set::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:39,1
    - Dst: std::set::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:40,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: url_seeds
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 9
    functionsReached:
    - std::set::begin
    - list::append
    - std::set::end
    - url_seeds
    linkageType: ''
    returnType: list
    signature: list url_seeds(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_seeds
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:51,1
    - Dst: std::set::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:54,1
    - Dst: std::set::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:55,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: http_seeds
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 5
    functionsReached:
    - std::set::begin
    - std::set::end
    - http_seeds
    - list::append
    linkageType: ''
    returnType: list
    signature: list http_seeds(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_availability
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:66,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: piece_availability
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 3
    functionsReached:
    - list::append
    - piece_availability
    linkageType: ''
    returnType: list
    signature: list piece_availability(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_piece_priorities
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:80,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: piece_priorities
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 13
    functionsReached:
    - get_piece_priorities
    - list::append
    linkageType: ''
    returnType: list
    signature: list piece_priorities(torrent_handle& handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_file
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:96,1
    - Dst: std::vector::reserve
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:99,1
    - Dst: std::shared_ptr::num_files
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:99,1
    - Dst: file_progress
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:100,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:106,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:106,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' handle'
    - flags
    argTypes:
    - torrent_handle
    - file_progress_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 110
    functionName: file_progress
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 6
    functionsReached:
    - file_progress
    - list::append
    - std::vector::begin
    - std::vector::reserve
    - std::shared_ptr::num_files
    - std::vector::end
    - torrent_file
    linkageType: ''
    returnType: list
    signature: list file_progress(torrent_handle& handle, file_progress_flags_t const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_peer_info
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:118,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:123,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:123,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: get_peer_info
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 15
    functionsReached:
    - std::vector::end
    - get_peer_info
    - list::append
    - std::vector::begin
    linkageType: ''
    returnType: list
    signature: list get_peer_info(torrent_handle const& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::python::extract<T>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: extract_fn
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - boost::python::extract<T>
    linkageType: ''
    returnType: T
    signature: T extract_fn(object o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::python::extract<T>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: extract_fn
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - boost::python::extract<T>
    linkageType: ''
    returnType: T
    signature: T extract_fn(object o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extract<std::pair<piece_index_t, download_priority_t>>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:145,1
    - Dst: std::transform
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:150,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:150,1
    - Dst: prioritize_pieces
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:152,1
    - Dst: std::transform
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:157,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:157,1
    - Dst: prioritize_pieces
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' info'
    - o
    argTypes:
    - torrent_handle
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 161
    functionName: prioritize_pieces
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 10
    functionsReached:
    - std::back_inserter
    - std::transform
    - prioritize_pieces
    - extract<std::pair<piece_index_t, download_priority_t>>
    linkageType: ''
    returnType: void
    signature: void prioritize_pieces(torrent_handle& info, object o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prioritize_files
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:166,1
    - Dst: std::vector<download_priority_t>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' info'
    - o
    argTypes:
    - torrent_handle
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: prioritize_files
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 10
    functionsReached:
    - prioritize_files
    - std::vector<download_priority_t>
    linkageType: ''
    returnType: void
    signature: void prioritize_files(torrent_handle& info, object o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_file_priorities
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:172,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: file_priorities
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 9
    functionsReached:
    - get_file_priorities
    - list::append
    linkageType: ''
    returnType: list
    signature: list file_priorities(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_priority
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' h'
    - index
    argTypes:
    - torrent_handle
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: file_priority0
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - file_priority
    linkageType: ''
    returnType: download_priority_t
    signature: download_priority_t file_priority0(torrent_handle& h, file_index_t
      index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_priority
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' h'
    - index
    - prio
    argTypes:
    - torrent_handle
    - file_index_t
    - download_priority_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: file_priority1
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - file_priority
    linkageType: ''
    returnType: void
    signature: void file_priority1(torrent_handle& h, file_index_t index, download_priority_t
      prio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:192,1
    - Dst: dict::has_key
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:193,1
    - Dst: extract<std::uint8_t>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:194,1
    - Dst: dict::has_key
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:195,1
    - Dst: extract<std::uint8_t>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ' ae'
    argTypes:
    - dict
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: dict_to_announce_entry
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - extract<std::uint8_t>
    - extract<std::string>
    - dict::has_key
    linkageType: ''
    returnType: void
    signature: void dict_to_announce_entry(dict d, announce_entry& ae)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: object::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:201,1
    - Dst: allow_null
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:207,1
    - Dst: PyIter_Next
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:207,1
    - Dst: object::ptr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:207,1
    - Dst: handle<>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:209,1
    - Dst: extract<announce_entry>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:212,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:212,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:214,1
    - Dst: extract<announce_entry>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:214,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:214,1
    - Dst: extract<dict>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:219,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:219,1
    - Dst: dict_to_announce_entry
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:221,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:222,1
    - Dst: replace_trackers
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' h'
    - trackers
    argTypes:
    - torrent_handle
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 228
    functionName: replace_trackers
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 6
    functionsReached:
    - PyIter_Next
    - object
    - std::vector::push_back
    - replace_trackers
    - allow_null
    - dict_to_announce_entry
    - extract<dict>
    - object::attr
    - extract<announce_entry>
    - handle<>
    - object::ptr
    linkageType: ''
    returnType: void
    signature: void replace_trackers(torrent_handle& h, object trackers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_to_announce_entry
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:233,1
    - Dst: add_tracker
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' h'
    - d
    argTypes:
    - torrent_handle
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: add_tracker
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 15
    functionsReached:
    - dict_to_announce_entry
    - add_tracker
    linkageType: ''
    returnType: void
    signature: void add_tracker(torrent_handle& h, dict d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_time
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:244,1
    - Dst: long_
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:246,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:246,1
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:246,1
    - Dst: duration_cast<system_clock::duration>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:247,1
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tpt
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: to_ptime
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - min_time
    - libtorrent::aux::to_time_t
    - long_
    - duration_cast<system_clock::duration>
    linkageType: ''
    returnType: object
    signature: object to_ptime(time_point tpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_time
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:244,1
    - Dst: long_
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:246,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:246,1
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:246,1
    - Dst: duration_cast<system_clock::duration>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:247,1
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tpt
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: to_ptime
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - time_now
    - min_time
    - libtorrent::aux::to_time_t
    - long_
    - duration_cast<system_clock::duration>
    linkageType: ''
    returnType: object
    signature: object to_ptime(time_point tpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trackers
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:256,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:257,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:257,1
    - Dst: std::vector<announce_entry>::const_iterator::endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:268,1
    - Dst: std::vector<announce_entry>::const_iterator::endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:270,1
    - Dst: last_error::value
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:274,1
    - Dst: last_error::category
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:275,1
    - Dst: to_ptime
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:277,1
    - Dst: to_ptime
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:278,1
    - Dst: std::string
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:289,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:294,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:295,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:310,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:310,1
    - Dst: local_endpoint::port
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:310,1
    - Dst: last_error::value
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:318,1
    - Dst: last_error::category
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:319,1
    - Dst: to_ptime
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:321,1
    - Dst: to_ptime
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:322,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:330,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:330,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:332,1
    - Dst: last_error::value
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:338,1
    - Dst: last_error::category
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:339,1
    - Dst: to_ptime
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:341,1
    - Dst: to_ptime
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:342,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:351,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:351,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:353,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:358,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 74
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 361
    functionName: trackers
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 28
    functionsReached:
    - std::vector<announce_entry>::const_iterator::endpoints::empty
    - object
    - boost::python::make_tuple
    - local_endpoint::port
    - std::move
    - trackers
    - last_error::category
    - std::vector::begin
    - std::string
    - list::append
    - local_endpoint::address
    - to_ptime
    - std::vector::end
    - last_error::value
    - std::vector<announce_entry>::const_iterator::endpoints::front
    linkageType: ''
    returnType: list
    signature: list trackers(torrent_handle& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_download_queue
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:371,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:374,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:375,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:388,1
    - Dst: peer
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:389,1
    - Dst: peer
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:390,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:391,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 399
    functionName: get_download_queue
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 13
    functionsReached:
    - boost::python::make_tuple
    - peer
    - list::append
    - std::vector::begin
    - get_download_queue
    - std::vector::end
    linkageType: ''
    returnType: list
    signature: list get_download_queue(torrent_handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_metadata
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' handle'
    - ' buf'
    argTypes:
    - torrent_handle
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: set_metadata
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 9
    functionsReached:
    - set_metadata
    linkageType: ''
    returnType: void
    signature: void set_metadata(torrent_handle& handle, std::string const& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_file
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: get_torrent_info
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - torrent_file
    linkageType: ''
    returnType: std::shared_ptr<const torrent_info>
    signature: std::shared_ptr<const torrent_info> get_torrent_info(torrent_handle
      const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_piece
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' th'
    - piece
    - data
    - flags
    argTypes:
    - torrent_handle
    - piece_index_t
    - char*
    - add_piece_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: add_piece_str
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - add_piece
    linkageType: ''
    returnType: void
    signature: "void add_piece_str(torrent_handle& th, piece_index_t piece, char const
      *data\n    , add_piece_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:427,1
    - Dst: bytes::arr::size
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:427,1
    - Dst: std::copy
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:428,1
    - Dst: bytes::arr::begin
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:428,1
    - Dst: bytes::arr::end
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:428,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:428,1
    - Dst: add_piece
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:429,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' th'
    - piece
    - data
    - flags
    argTypes:
    - torrent_handle
    - piece_index_t
    - bytes
    - add_piece_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: add_piece_bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - add_piece
    - std::move
    - bytes::arr::size
    - std::vector::reserve
    - bytes::arr::end
    - bytes::arr::begin
    - std::copy
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: "void add_piece_bytes(torrent_handle& th, piece_index_t piece, bytes
      data\n    , add_piece_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_<move_flags_t>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:467,1
    - Dst: enum_<deprecated_move_flags_t>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:476,1
    - Dst: class_<torrent_handle>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:484,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:491,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:491,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:492,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:495,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:496,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:501,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:502,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:504,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:505,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:507,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:509,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:510,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:510,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:511,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:512,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:513,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:514,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:515,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:516,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:517,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:521,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:522,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:523,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:524,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:524,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:524,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:525,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:525,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:526,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:526,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:529,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:530,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:537,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:538,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:538,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:539,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:540,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:540,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:541,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:542,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:542,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:542,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:544,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:546,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:546,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:548,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:549,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:550,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:551,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:552,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:552,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:552,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:554,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:556,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:557,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:557,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:557,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:558,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:559,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:560,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:561,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:562,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:562,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:562,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:563,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:563,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:563,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:563,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:564,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:565,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:566,1
    - Dst: _
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:567,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:570,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:570,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:571,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:572,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:573,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:574,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:575,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:576,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:577,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:578,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:579,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:580,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:581,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:582,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:583,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:584,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:585,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:586,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:587,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:588,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:589,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:590,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:591,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:592,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:593,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:594,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:598,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:599,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:600,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:601,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:602,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:603,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:604,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:605,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:606,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:607,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:608,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:609,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:610,1
    - Dst: class_<open_file_state>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:613,1
    - Dst: make_getter
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:614,1
    - Dst: by_value
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:614,1
    - Dst: class_<dummy>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:620,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:621,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:622,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:623,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:624,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:625,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:626,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:627,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:629,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:631,1
    - Dst: class_<dummy16>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:635,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:636,1
    - Dst: class_<dummy6>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:640,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:641,1
    - Dst: class_<dummy7>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:645,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:646,1
    - Dst: class_<dummy4>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:650,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:651,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:652,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:653,1
    - Dst: class_<dummy15>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:657,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:658,1
    - Dst: class_<dummy8>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:662,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:663,1
    - Dst: class_<dummy5>
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:667,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:668,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:669,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:670,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:671,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/torrent_handle.cpp:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 675
    functionName: bind_torrent_handle
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_handle.cpp
    functionUses: 0
    functionsReached:
    - def
    - class_<dummy16>
    - scope::attr
    - class_<open_file_state>
    - arg
    - class_<dummy5>
    - make_getter
    - enum_<deprecated_move_flags_t>
    - depr
    - by_value
    - _
    - class_<dummy7>
    - class_<dummy15>
    - enum_<move_flags_t>
    - class_<dummy6>
    - class_<dummy>
    - class_<dummy8>
    - class_<torrent_handle>
    - class_<dummy4>
    linkageType: ''
    returnType: void
    signature: void bind_torrent_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:14,1
    - Dst: class_<fingerprint>
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:19,1
    - Dst: init<char const*,int,int,int,int>
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:21,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:22,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:25,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:26,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:27,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:28,1
    - Dst: depr
      Src: /src/libtorrent/bindings/python/src/fingerprint.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 34
    functionName: bind_fingerprint
    functionSourceFile: /src/libtorrent/bindings/python/src/fingerprint.cpp
    functionUses: 0
    functionsReached:
    - def
    - arg
    - init<char const*,int,int,int,int>
    - depr
    - class_<fingerprint>
    linkageType: ''
    returnType: void
    signature: void bind_fingerprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: get_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/sha1_hash.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long get_hash(sha1_hash const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:21,1
    - Dst: to_string
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: sha1_hash_bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - bytes
    linkageType: ''
    returnType: bytes
    signature: bytes sha1_hash_bytes(const sha1_hash& bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: get_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/sha1_hash.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long get_hash(sha1_hash const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:21,1
    - Dst: to_string
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: sha1_hash_bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/sha1_hash.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - bytes
    linkageType: ''
    returnType: bytes
    signature: bytes sha1_hash_bytes(const sha1_hash& bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: class_<sha1_hash>
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:31,1
    - Dst: to_str
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:35,1
    - Dst: init<std::string>
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:36,1
    - Dst: scope
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:44,1
    - Dst: scope
      Src: /src/libtorrent/bindings/python/src/sha1_hash.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: bind_sha1_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/sha1_hash.cpp
    functionUses: 7
    functionsReached:
    - class_<sha1_hash>
    - to_str
    - scope
    - init<std::string>
    linkageType: ''
    returnType: void
    signature: void bind_sha1_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/libtorrent/bindings/python/src/utility.cpp:25,1
    - Dst: arr::c_str
      Src: /src/libtorrent/bindings/python/src/utility.cpp:25,1
    - Dst: arr::size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:25,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libtorrent/bindings/python/src/utility.cpp:27,1
    - Dst: arr::c_str
      Src: /src/libtorrent/bindings/python/src/utility.cpp:27,1
    - Dst: arr::size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 6
    functionsReached:
    - PyString_FromStringAndSize
    - arr::size
    - PyBytes_FromStringAndSize
    - arr::c_str
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(bytes const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/libtorrent/bindings/python/src/utility.cpp:39,1
    - Dst: data
      Src: /src/libtorrent/bindings/python/src/utility.cpp:39,1
    - Dst: size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:39,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libtorrent/bindings/python/src/utility.cpp:41,1
    - Dst: data
      Src: /src/libtorrent/bindings/python/src/utility.cpp:41,1
    - Dst: size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::array<char, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 6
    functionsReached:
    - size
    - PyString_FromStringAndSize
    - PyBytes_FromStringAndSize
    - data
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(std::array<char, N> const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/utility.cpp:51,1
    - Dst: type_id<bytes>
      Src: /src/libtorrent/bindings/python/src/utility.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: bytes_from_python
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<bytes>
    linkageType: ''
    returnType: void
    signature: void bytes_from_python()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/libtorrent/bindings/python/src/utility.cpp:58,1
    - Dst: PyByteArray_Check
      Src: /src/libtorrent/bindings/python/src/utility.cpp:58,1
    - Dst: PyString_Check
      Src: /src/libtorrent/bindings/python/src/utility.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 0
    functionsReached:
    - PyString_Check
    - PyByteArray_Check
    - PyBytes_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bytes::bytes
      Src: /src/libtorrent/bindings/python/src/utility.cpp:68,1
    - Dst: PyByteArray_Check
      Src: /src/libtorrent/bindings/python/src/utility.cpp:69,1
    - Dst: bytes*::arr::resize
      Src: /src/libtorrent/bindings/python/src/utility.cpp:71,1
    - Dst: PyByteArray_Size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:71,1
    - Dst: memcpy
      Src: /src/libtorrent/bindings/python/src/utility.cpp:72,1
    - Dst: PyByteArray_AsString
      Src: /src/libtorrent/bindings/python/src/utility.cpp:72,1
    - Dst: bytes*::arr::size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:72,1
    - Dst: bytes*::arr::resize
      Src: /src/libtorrent/bindings/python/src/utility.cpp:76,1
    - Dst: PyBytes_Size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:76,1
    - Dst: memcpy
      Src: /src/libtorrent/bindings/python/src/utility.cpp:77,1
    - Dst: PyBytes_AsString
      Src: /src/libtorrent/bindings/python/src/utility.cpp:77,1
    - Dst: bytes*::arr::size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:77,1
    - Dst: bytes::bytes
      Src: /src/libtorrent/bindings/python/src/utility.cpp:82,1
    - Dst: bytes*::arr::resize
      Src: /src/libtorrent/bindings/python/src/utility.cpp:83,1
    - Dst: PyString_Size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:83,1
    - Dst: memcpy
      Src: /src/libtorrent/bindings/python/src/utility.cpp:84,1
    - Dst: PyString_AsString
      Src: /src/libtorrent/bindings/python/src/utility.cpp:84,1
    - Dst: bytes*::arr::size
      Src: /src/libtorrent/bindings/python/src/utility.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 20
    functionsReached:
    - PyBytes_Size
    - bytes*::arr::size
    - PyString_Size
    - memcpy
    - PyBytes_AsString
    - PyByteArray_AsString
    - PyString_AsString
    - bytes::bytes
    - PyByteArray_Size
    - bytes*::arr::resize
    - PyByteArray_Check
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/utility.cpp:93,1
    - Dst: client_fingerprint
      Src: /src/libtorrent/bindings/python/src/utility.cpp:94,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/utility.cpp:95,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/utility.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: client_fingerprint_
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - object
    - client_fingerprint
    linkageType: ''
    returnType: object
    signature: object client_fingerprint_(peer_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bdecode
      Src: /src/libtorrent/bindings/python/src/utility.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: bdecode_
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 0
    functionsReached:
    - bdecode
    linkageType: ''
    returnType: entry
    signature: entry bdecode_(bytes const& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/utility.cpp:107,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/utility.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: bencode_
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: bytes
    signature: bytes bencode_(entry const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_python_converter<bytes, bytes_to_python>
      Src: /src/libtorrent/bindings/python/src/utility.cpp:114,1
    - Dst: to_python_converter<std::array<char, 32>, array_to_python<32>>
      Src: /src/libtorrent/bindings/python/src/utility.cpp:115,1
    - Dst: to_python_converter<std::array<char, 64>, array_to_python<64>>
      Src: /src/libtorrent/bindings/python/src/utility.cpp:116,1
    - Dst: bytes_from_python
      Src: /src/libtorrent/bindings/python/src/utility.cpp:117,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/utility.cpp:120,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/utility.cpp:121,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/utility.cpp:123,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/utility.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: bind_utility
    functionSourceFile: /src/libtorrent/bindings/python/src/utility.cpp
    functionUses: 0
    functionsReached:
    - def
    - to_python_converter<std::array<char, 32>, array_to_python<32>>
    - bytes_from_python
    - to_python_converter<std::array<char, 64>, array_to_python<64>>
    - to_python_converter<bytes, bytes_to_python>
    linkageType: ''
    returnType: void
    signature: void bind_utility()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_seconds
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: get_last_active
    functionSourceFile: /src/libtorrent/bindings/python/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t get_last_active(peer_info const& pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_seconds
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: get_last_request
    functionSourceFile: /src/libtorrent/bindings/python/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t get_last_request(peer_info const& pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_seconds
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: get_download_queue_time
    functionSourceFile: /src/libtorrent/bindings/python/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - total_seconds
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t get_download_queue_time(peer_info const& pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:31,1
    - Dst: local_endpoint::address
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:31,1
    - Dst: local_endpoint::port
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: get_local_endpoint
    functionSourceFile: /src/libtorrent/bindings/python/src/peer_info.cpp
    functionUses: 45
    functionsReached:
    - boost::python::make_tuple
    - local_endpoint::port
    - local_endpoint::address
    linkageType: ''
    returnType: tuple
    signature: tuple get_local_endpoint(peer_info const& pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:36,1
    - Dst: ip::address
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:36,1
    - Dst: ip::port
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: get_ip
    functionSourceFile: /src/libtorrent/bindings/python/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - boost::python::make_tuple
    - ip::port
    - ip::address
    linkageType: ''
    returnType: tuple
    signature: tuple get_ip(peer_info const& pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pieces::begin
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:43,1
    - Dst: pieces::end
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:44,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: get_pieces
    functionSourceFile: /src/libtorrent/bindings/python/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - pieces::begin
    - pieces::end
    - list::append
    linkageType: ''
    returnType: list
    signature: list get_pieces(peer_info const& pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - peer_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: get_peer_info_client
    functionSourceFile: /src/libtorrent/bindings/python/src/peer_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bytes
    signature: bytes get_peer_info_client(peer_info const& pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: class_<peer_info>
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:59,1
    - Dst: make_getter
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:60,1
    - Dst: by_value
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:60,1
    - Dst: make_getter
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:61,1
    - Dst: by_value
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:61,1
    - Dst: make_getter
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:62,1
    - Dst: by_value
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:62,1
    - Dst: make_getter
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:63,1
    - Dst: by_value
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:63,1
    - Dst: def_readonly
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:74,1
    - Dst: make_getter
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:92,1
    - Dst: by_value
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:92,1
    - Dst: make_getter
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:93,1
    - Dst: by_value
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:93,1
    - Dst: make_getter
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:97,1
    - Dst: by_value
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:97,1
    - Dst: def_readonly
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:108,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:111,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:117,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:118,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:119,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:120,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:121,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:122,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:123,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:124,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:125,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:126,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:128,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:130,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:131,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:132,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:133,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:134,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:135,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:136,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:138,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:139,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:143,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:144,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:145,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:148,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:149,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:150,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:151,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:152,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:155,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:157,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:158,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:160,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:161,1
    - Dst: scope::attr
      Src: /src/libtorrent/bindings/python/src/peer_info.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 163
    functionName: bind_peer_info
    functionSourceFile: /src/libtorrent/bindings/python/src/peer_info.cpp
    functionUses: 0
    functionsReached:
    - def
    - class_<peer_info>
    - def_readonly
    - make_getter
    - by_value
    - scope::attr
    linkageType: ''
    returnType: void
    signature: void bind_peer_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: "boost::python::to_python_converter<\n            boost::optional<T>, optional_to_python<T>\n
        \       >"
      Src: /src/libtorrent/bindings/python/src/optional.hpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: optional_to_python
    functionSourceFile: /src/libtorrent/bindings/python/src/optional.hpp
    functionUses: 0
    functionsReached:
    - "boost::python::to_python_converter<\n            boost::optional<T>, optional_to_python<T>\n
      \       >"
    linkageType: ''
    returnType: void
    signature: void optional_to_python()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_class_pool::incref
      Src: /src/libtorrent/bindings/python/src/optional.hpp:24,1
    - Dst: libtorrent::peer_class_pool::incref
      Src: /src/libtorrent/bindings/python/src/optional.hpp:26,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/bindings/python/src/optional.hpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - boost::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/optional.hpp
    functionUses: 6
    functionsReached:
    - Catch::Benchmark::Detail::stored_object
    - libtorrent::peer_class_pool::incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(boost::optional<T> const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_Initialize
      Src: /src/libtorrent/bindings/python/src/module.cpp:37,1
    - Dst: bind_converters
      Src: /src/libtorrent/bindings/python/src/module.cpp:39,1
    - Dst: bind_unicode_string_conversion
      Src: /src/libtorrent/bindings/python/src/module.cpp:40,1
    - Dst: bind_error_code
      Src: /src/libtorrent/bindings/python/src/module.cpp:41,1
    - Dst: bind_utility
      Src: /src/libtorrent/bindings/python/src/module.cpp:42,1
    - Dst: bind_fingerprint
      Src: /src/libtorrent/bindings/python/src/module.cpp:43,1
    - Dst: bind_sha1_hash
      Src: /src/libtorrent/bindings/python/src/module.cpp:44,1
    - Dst: bind_sha256_hash
      Src: /src/libtorrent/bindings/python/src/module.cpp:45,1
    - Dst: bind_info_hash
      Src: /src/libtorrent/bindings/python/src/module.cpp:46,1
    - Dst: bind_entry
      Src: /src/libtorrent/bindings/python/src/module.cpp:47,1
    - Dst: bind_torrent_handle
      Src: /src/libtorrent/bindings/python/src/module.cpp:48,1
    - Dst: bind_session
      Src: /src/libtorrent/bindings/python/src/module.cpp:49,1
    - Dst: bind_torrent_info
      Src: /src/libtorrent/bindings/python/src/module.cpp:50,1
    - Dst: bind_torrent_status
      Src: /src/libtorrent/bindings/python/src/module.cpp:51,1
    - Dst: bind_session_settings
      Src: /src/libtorrent/bindings/python/src/module.cpp:52,1
    - Dst: bind_version
      Src: /src/libtorrent/bindings/python/src/module.cpp:53,1
    - Dst: bind_alert
      Src: /src/libtorrent/bindings/python/src/module.cpp:54,1
    - Dst: bind_datetime
      Src: /src/libtorrent/bindings/python/src/module.cpp:55,1
    - Dst: bind_peer_info
      Src: /src/libtorrent/bindings/python/src/module.cpp:56,1
    - Dst: bind_ip_filter
      Src: /src/libtorrent/bindings/python/src/module.cpp:57,1
    - Dst: bind_magnet_uri
      Src: /src/libtorrent/bindings/python/src/module.cpp:58,1
    - Dst: bind_create_torrent
      Src: /src/libtorrent/bindings/python/src/module.cpp:59,1
    - Dst: bind_load_torrent
      Src: /src/libtorrent/bindings/python/src/module.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: BOOST_PYTHON_MODULE
    functionSourceFile: /src/libtorrent/bindings/python/src/module.cpp
    functionUses: 0
    functionsReached:
    - bind_torrent_status
    - bind_session_settings
    - Py_Initialize
    - bind_alert
    - bind_load_torrent
    - bind_sha1_hash
    - bind_version
    - bind_error_code
    - bind_entry
    - bind_torrent_info
    - bind_peer_info
    - bind_info_hash
    - bind_utility
    - bind_unicode_string_conversion
    - bind_torrent_handle
    - bind_sha256_hash
    - bind_session
    - bind_converters
    - bind_fingerprint
    - bind_datetime
    - bind_create_torrent
    - bind_magnet_uri
    - bind_ip_filter
    linkageType: ''
    returnType: void
    signature: void BOOST_PYTHON_MODULE(libtorrent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scope
      Src: /src/libtorrent/bindings/python/src/version.cpp:13,1
    - Dst: version
      Src: /src/libtorrent/bindings/python/src/version.cpp:13,1
    - Dst: scope
      Src: /src/libtorrent/bindings/python/src/version.cpp:16,1
    - Dst: scope
      Src: /src/libtorrent/bindings/python/src/version.cpp:17,1
    - Dst: scope
      Src: /src/libtorrent/bindings/python/src/version.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 20
    functionName: bind_version
    functionSourceFile: /src/libtorrent/bindings/python/src/version.cpp
    functionUses: 1
    functionsReached:
    - version
    - scope
    linkageType: ''
    returnType: void
    signature: void bind_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ih'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: get_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/info_hash.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long get_hash(info_hash_t const& ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ih'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: get_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/info_hash.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long get_hash(info_hash_t const& ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: class_<info_hash_t>
      Src: /src/libtorrent/bindings/python/src/info_hash.cpp:24,1
    - Dst: init<sha1_hash const&>
      Src: /src/libtorrent/bindings/python/src/info_hash.cpp:25,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/info_hash.cpp:25,1
    - Dst: init<sha256_hash const&>
      Src: /src/libtorrent/bindings/python/src/info_hash.cpp:26,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/info_hash.cpp:26,1
    - Dst: init<sha1_hash const&, sha256_hash const&>
      Src: /src/libtorrent/bindings/python/src/info_hash.cpp:27,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/info_hash.cpp:27,1
    - Dst: arg
      Src: /src/libtorrent/bindings/python/src/info_hash.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 40
    functionName: bind_info_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/info_hash.cpp
    functionUses: 1
    functionsReached:
    - arg
    - init<sha1_hash const&>
    - init<sha256_hash const&>
    - init<sha1_hash const&, sha256_hash const&>
    - class_<info_hash_t>
    linkageType: ''
    returnType: void
    signature: void bind_info_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_file::lock
      Src: /src/libtorrent/bindings/python/src/torrent_status.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - torrent_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: get_torrent_file
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_status.cpp
    functionUses: 1
    functionsReached:
    - torrent_file::lock
    linkageType: ''
    returnType: std::shared_ptr<const torrent_info>
    signature: std::shared_ptr<const torrent_info> get_torrent_file(torrent_status
      const& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: boost::get_pointer
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lt::alert
    signature: "lt::alert *\n\tget_pointer(lt::alert const volatile* p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - lt::alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: boost::get_pointer
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lt::alert
    signature: "lt::alert *\n\tget_pointer(lt::alert const volatile* p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen_on
      Src: /src/libtorrent/bindings/python/src/session.cpp:65,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/session.cpp:65,1
    - Dst: system_error
      Src: /src/libtorrent/bindings/python/src/session.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - ' s'
    - min_
    - max_
    - interface
    - flags
    argTypes:
    - lt::session
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: listen_on
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 1
    functionsReached:
    - system_error
    - listen_on
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void listen_on(lt::session& s, int min_, int max_, char const* interface,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/bindings/python/src/session.cpp:75,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/bindings/python/src/session.cpp:76,1
    - Dst: apply_settings
      Src: /src/libtorrent/bindings/python/src/session.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' s'
    - _min
    - _max
    argTypes:
    - lt::session
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: outgoing_ports
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void outgoing_ports(lt::session& s, int _min, int _max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:85,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:86,1
    - Dst: add_dht_node
      Src: /src/libtorrent/bindings/python/src/session.cpp:88,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/session.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - n
    argTypes:
    - lt::session
    - tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: add_dht_node
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 3
    functionsReached:
    - extract<std::string>
    - extract<int>
    - add_dht_node
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void add_dht_node(lt::session& s, tuple n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_dht_router
      Src: /src/libtorrent/bindings/python/src/session.cpp:95,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/session.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' s'
    - router_
    - port_
    argTypes:
    - lt::session
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: add_dht_router
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 2
    functionsReached:
    - add_dht_router
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void add_dht_router(lt::session& s, std::string router_, int port_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:104,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:106,1
    - Dst: add_extension
      Src: /src/libtorrent/bindings/python/src/session.cpp:108,1
    - Dst: add_extension
      Src: /src/libtorrent/bindings/python/src/session.cpp:110,1
    - Dst: add_extension
      Src: /src/libtorrent/bindings/python/src/session.cpp:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' e'
    argTypes:
    - lt::session
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: add_extension
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 14
    functionsReached:
    - extract<std::string>
    - add_extension
    linkageType: ''
    returnType: void
    signature: void add_extension(lt::session& s, object const& e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: keys
      Src: /src/libtorrent/bindings/python/src/session.cpp:119,1
    - Dst: setting_by_name
      Src: /src/libtorrent/bindings/python/src/session.cpp:124,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:127,1
    - Dst: c_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:127,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:128,1
    - Dst: set_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:139,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:139,1
    - Dst: extract<std::int64_t>
      Src: /src/libtorrent/bindings/python/src/session.cpp:143,1
    - Dst: set_int
      Src: /src/libtorrent/bindings/python/src/session.cpp:148,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:148,1
    - Dst: set_bool
      Src: /src/libtorrent/bindings/python/src/session.cpp:152,1
    - Dst: extract<bool>
      Src: /src/libtorrent/bindings/python/src/session.cpp:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - ' p'
    - ' sett_dict'
    argTypes:
    - lt::settings_pack
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 158
    functionName: make_settings_pack
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - PyErr_SetString
    - c_str
    - set_bool
    - extract<std::string>
    - keys
    - setting_by_name
    - extract<bool>
    - set_int
    - throw_error_already_set
    - extract<std::int64_t>
    - set_str
    linkageType: ''
    returnType: void
    signature: void make_settings_pack(lt::settings_pack& p, dict const& sett_dict)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name_for_setting
      Src: /src/libtorrent/bindings/python/src/session.cpp:167,1
    - Dst: has_val
      Src: /src/libtorrent/bindings/python/src/session.cpp:168,1
    - Dst: get_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:168,1
    - Dst: name_for_setting
      Src: /src/libtorrent/bindings/python/src/session.cpp:174,1
    - Dst: has_val
      Src: /src/libtorrent/bindings/python/src/session.cpp:175,1
    - Dst: get_int
      Src: /src/libtorrent/bindings/python/src/session.cpp:175,1
    - Dst: name_for_setting
      Src: /src/libtorrent/bindings/python/src/session.cpp:181,1
    - Dst: has_val
      Src: /src/libtorrent/bindings/python/src/session.cpp:182,1
    - Dst: get_bool
      Src: /src/libtorrent/bindings/python/src/session.cpp:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: make_dict
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - name_for_setting
    - has_val
    - get_int
    - get_bool
    linkageType: ''
    returnType: dict
    signature: dict make_dict(lt::settings_pack const& sett)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_settings_pack
      Src: /src/libtorrent/bindings/python/src/session.cpp:191,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/bindings/python/src/session.cpp:202,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:202,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:207,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/bindings/python/src/session.cpp:208,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sett
    - flags
    argTypes:
    - boost::python::dict
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 211
    functionName: make_session
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - make_settings_pack
    - std::make_shared<lt::session>
    linkageType: ''
    returnType: std::shared_ptr<lt::session>
    signature: "std::shared_ptr<lt::session> make_session(boost::python::dict sett\n\t\t,
      session_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_settings_pack
      Src: /src/libtorrent/bindings/python/src/session.cpp:216,1
    - Dst: apply_settings
      Src: /src/libtorrent/bindings/python/src/session.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ses'
    - ' sett_dict'
    argTypes:
    - lt::session
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: session_apply_settings
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - make_settings_pack
    linkageType: ''
    returnType: void
    signature: void session_apply_settings(lt::session& ses, dict const& sett_dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_settings
      Src: /src/libtorrent/bindings/python/src/session.cpp:226,1
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: session_get_settings
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - make_dict
    - get_settings
    linkageType: ''
    returnType: dict
    signature: dict session_get_settings(lt::session const& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_memory_usage
      Src: /src/libtorrent/bindings/python/src/session.cpp:233,1
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: min_memory_usage_wrapper
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - min_memory_usage
    - make_dict
    linkageType: ''
    returnType: dict
    signature: dict min_memory_usage_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:239,1
    - Dst: default_settings
      Src: /src/libtorrent/bindings/python/src/session.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: default_settings_wrapper
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - make_dict
    - default_settings
    linkageType: ''
    returnType: dict
    signature: dict default_settings_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: high_performance_seed
      Src: /src/libtorrent/bindings/python/src/session.cpp:244,1
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: high_performance_seed_wrapper
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - high_performance_seed
    - make_dict
    linkageType: ''
    returnType: dict
    signature: dict high_performance_seed_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' s'
    - ' ti'
    - ' save'
    - ' resume'
    - storage_mode
    - paused
    argTypes:
    - lt::session
    - torrent_info
    - std::string
    - entry
    - storage_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: add_torrent_depr
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - add_torrent
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_torrent_depr(lt::session& s, torrent_info const&
      ti\n        , std::string const& save, entry const& resume\n        , storage_mode_t
      storage_mode, bool paused)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listen_on
      Src: /src/libtorrent/bindings/python/src/session.cpp:65,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/session.cpp:65,1
    - Dst: system_error
      Src: /src/libtorrent/bindings/python/src/session.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - ' s'
    - min_
    - max_
    - interface
    - flags
    argTypes:
    - lt::session
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: listen_on
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 2
    functionsReached:
    - system_error
    - listen_on
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void listen_on(lt::session& s, int min_, int max_, char const* interface,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/bindings/python/src/session.cpp:75,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/bindings/python/src/session.cpp:76,1
    - Dst: apply_settings
      Src: /src/libtorrent/bindings/python/src/session.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' s'
    - _min
    - _max
    argTypes:
    - lt::session
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: outgoing_ports
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - settings_pack::set_int
    linkageType: ''
    returnType: void
    signature: void outgoing_ports(lt::session& s, int _min, int _max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:85,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:86,1
    - Dst: add_dht_node
      Src: /src/libtorrent/bindings/python/src/session.cpp:88,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/session.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - n
    argTypes:
    - lt::session
    - tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: add_dht_node
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 4
    functionsReached:
    - extract<std::string>
    - extract<int>
    - add_dht_node
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void add_dht_node(lt::session& s, tuple n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_dht_router
      Src: /src/libtorrent/bindings/python/src/session.cpp:95,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/session.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' s'
    - router_
    - port_
    argTypes:
    - lt::session
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: add_dht_router
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 3
    functionsReached:
    - add_dht_router
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void add_dht_router(lt::session& s, std::string router_, int port_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:104,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:106,1
    - Dst: add_extension
      Src: /src/libtorrent/bindings/python/src/session.cpp:108,1
    - Dst: add_extension
      Src: /src/libtorrent/bindings/python/src/session.cpp:110,1
    - Dst: add_extension
      Src: /src/libtorrent/bindings/python/src/session.cpp:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' s'
    - ' e'
    argTypes:
    - lt::session
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: add_extension
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 15
    functionsReached:
    - extract<std::string>
    - add_extension
    linkageType: ''
    returnType: void
    signature: void add_extension(lt::session& s, object const& e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: keys
      Src: /src/libtorrent/bindings/python/src/session.cpp:119,1
    - Dst: setting_by_name
      Src: /src/libtorrent/bindings/python/src/session.cpp:124,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:127,1
    - Dst: c_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:127,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:128,1
    - Dst: set_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:139,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:139,1
    - Dst: extract<std::int64_t>
      Src: /src/libtorrent/bindings/python/src/session.cpp:143,1
    - Dst: set_int
      Src: /src/libtorrent/bindings/python/src/session.cpp:148,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:148,1
    - Dst: set_bool
      Src: /src/libtorrent/bindings/python/src/session.cpp:152,1
    - Dst: extract<bool>
      Src: /src/libtorrent/bindings/python/src/session.cpp:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - ' p'
    - ' sett_dict'
    argTypes:
    - lt::settings_pack
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 158
    functionName: make_settings_pack
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - PyErr_SetString
    - c_str
    - set_bool
    - extract<std::string>
    - keys
    - setting_by_name
    - extract<bool>
    - set_int
    - throw_error_already_set
    - extract<std::int64_t>
    - set_str
    linkageType: ''
    returnType: void
    signature: void make_settings_pack(lt::settings_pack& p, dict const& sett_dict)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name_for_setting
      Src: /src/libtorrent/bindings/python/src/session.cpp:167,1
    - Dst: has_val
      Src: /src/libtorrent/bindings/python/src/session.cpp:168,1
    - Dst: get_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:168,1
    - Dst: name_for_setting
      Src: /src/libtorrent/bindings/python/src/session.cpp:174,1
    - Dst: has_val
      Src: /src/libtorrent/bindings/python/src/session.cpp:175,1
    - Dst: get_int
      Src: /src/libtorrent/bindings/python/src/session.cpp:175,1
    - Dst: name_for_setting
      Src: /src/libtorrent/bindings/python/src/session.cpp:181,1
    - Dst: has_val
      Src: /src/libtorrent/bindings/python/src/session.cpp:182,1
    - Dst: get_bool
      Src: /src/libtorrent/bindings/python/src/session.cpp:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - ' sett'
    argTypes:
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: make_dict
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 4
    functionsReached:
    - get_str
    - name_for_setting
    - has_val
    - get_int
    - get_bool
    linkageType: ''
    returnType: dict
    signature: dict make_dict(lt::settings_pack const& sett)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_settings_pack
      Src: /src/libtorrent/bindings/python/src/session.cpp:191,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/bindings/python/src/session.cpp:202,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:202,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:207,1
    - Dst: std::make_shared<lt::session>
      Src: /src/libtorrent/bindings/python/src/session.cpp:208,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sett
    - flags
    argTypes:
    - boost::python::dict
    - session_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 211
    functionName: make_session
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - make_settings_pack
    - std::make_shared<lt::session>
    linkageType: ''
    returnType: std::shared_ptr<lt::session>
    signature: "std::shared_ptr<lt::session> make_session(boost::python::dict sett\n\t\t,
      session_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_settings_pack
      Src: /src/libtorrent/bindings/python/src/session.cpp:216,1
    - Dst: apply_settings
      Src: /src/libtorrent/bindings/python/src/session.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ses'
    - ' sett_dict'
    argTypes:
    - lt::session
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: session_apply_settings
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - apply_settings
    - make_settings_pack
    linkageType: ''
    returnType: void
    signature: void session_apply_settings(lt::session& ses, dict const& sett_dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_settings
      Src: /src/libtorrent/bindings/python/src/session.cpp:226,1
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: session_get_settings
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - make_dict
    - get_settings
    linkageType: ''
    returnType: dict
    signature: dict session_get_settings(lt::session const& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_memory_usage
      Src: /src/libtorrent/bindings/python/src/session.cpp:233,1
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: min_memory_usage_wrapper
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - min_memory_usage
    - make_dict
    linkageType: ''
    returnType: dict
    signature: dict min_memory_usage_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:239,1
    - Dst: default_settings
      Src: /src/libtorrent/bindings/python/src/session.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: default_settings_wrapper
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - make_dict
    - default_settings
    linkageType: ''
    returnType: dict
    signature: dict default_settings_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: high_performance_seed
      Src: /src/libtorrent/bindings/python/src/session.cpp:244,1
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: high_performance_seed_wrapper
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - high_performance_seed
    - make_dict
    linkageType: ''
    returnType: dict
    signature: dict high_performance_seed_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' s'
    - ' ti'
    - ' save'
    - ' resume'
    - storage_mode
    - paused
    argTypes:
    - lt::session
    - torrent_info
    - std::string
    - entry
    - storage_mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: add_torrent_depr
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - add_torrent
    linkageType: ''
    returnType: torrent_handle
    signature: "torrent_handle add_torrent_depr(lt::session& s, torrent_info const&
      ti\n        , std::string const& save, entry const& resume\n        , storage_mode_t
      storage_mode, bool paused)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dict::items
      Src: /src/libtorrent/bindings/python/src/session.cpp:263,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/session.cpp:264,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:268,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/bindings/python/src/session.cpp:272,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/session.cpp:279,1
    - Dst: extract<torrent_info const&>
      Src: /src/libtorrent/bindings/python/src/session.cpp:280,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/session.cpp:286,1
    - Dst: test_piece_size
      Src: /src/libtorrent/bindings/python/src/session.cpp:286,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/python/src/session.cpp:288,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/session.cpp:288,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/session.cpp:288,1
    - Dst: data
      Src: /src/libtorrent/bindings/python/src/session.cpp:288,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/session.cpp:294,1
    - Dst: test_piece_size
      Src: /src/libtorrent/bindings/python/src/session.cpp:294,1
    - Dst: info_hash_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:296,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/python/src/session.cpp:296,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/session.cpp:297,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/session.cpp:297,1
    - Dst: data
      Src: /src/libtorrent/bindings/python/src/session.cpp:297,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/session.cpp:299,1
    - Dst: test_piece_size
      Src: /src/libtorrent/bindings/python/src/session.cpp:299,1
    - Dst: info_hash_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:301,1
    - Dst: sha256_hash
      Src: /src/libtorrent/bindings/python/src/session.cpp:301,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/session.cpp:302,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/session.cpp:302,1
    - Dst: data
      Src: /src/libtorrent/bindings/python/src/session.cpp:302,1
    - Dst: boost::python::extract<info_hash_t>
      Src: /src/libtorrent/bindings/python/src/session.cpp:306,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:312,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:317,1
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/session.cpp:323,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:324,1
    - Dst: resume_data::assign
      Src: /src/libtorrent/bindings/python/src/session.cpp:325,1
    - Dst: std::string::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:325,1
    - Dst: std::string::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:325,1
    - Dst: extract<storage_mode_t>
      Src: /src/libtorrent/bindings/python/src/session.cpp:331,1
    - Dst: extract<std::vector<std::string>>
      Src: /src/libtorrent/bindings/python/src/session.cpp:336,1
    - Dst: extract<std::vector<std::string>>
      Src: /src/libtorrent/bindings/python/src/session.cpp:341,1
    - Dst: extract<decltype(add_torrent_params::http_seeds)>
      Src: /src/libtorrent/bindings/python/src/session.cpp:347,1
    - Dst: extract<std::vector<std::pair<std::string, int>>>
      Src: /src/libtorrent/bindings/python/src/session.cpp:353,1
    - Dst: extract<std::vector<lt::tcp::endpoint>>
      Src: /src/libtorrent/bindings/python/src/session.cpp:358,1
    - Dst: extract<std::vector<lt::tcp::endpoint>>
      Src: /src/libtorrent/bindings/python/src/session.cpp:363,1
    - Dst: extract<lt::torrent_flags_t>
      Src: /src/libtorrent/bindings/python/src/session.cpp:368,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:373,1
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/session.cpp:379,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:380,1
    - Dst: extract<std::map<lt::file_index_t, std::string>>
      Src: /src/libtorrent/bindings/python/src/session.cpp:387,1
    - Dst: extract<std::vector<download_priority_t>>
      Src: /src/libtorrent/bindings/python/src/session.cpp:391,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:395,1
    - Dst: c_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:396,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:397,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 2
    argNames:
    - params
    - ' p'
    argTypes:
    - dict
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 399
    functionName: dict_to_add_torrent_params
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - sha256_hash
    - test_piece_size
    - extract<torrent_info const&>
    - extract<lt::torrent_flags_t>
    - data
    - std::make_shared<torrent_info>
    - extract<std::vector<download_priority_t>>
    - std::string::end
    - python_deprecated
    - extract<decltype(add_torrent_params::http_seeds)>
    - extract<std::map<lt::file_index_t, std::string>>
    - sha1_hash
    - Catch::Benchmark::Detail::stored_object
    - boost::python::extract<info_hash_t>
    - resume_data::assign
    - info_hash_t
    - PyErr_SetString
    - dict::items
    - bytes
    - std::string::begin
    - extract<storage_mode_t>
    - extract<bytes>
    - throw_error_already_set
    - extract<std::vector<lt::tcp::endpoint>>
    - extract<std::vector<std::pair<std::string, int>>>
    - c_str
    - Catch::Detail::catch_strnlen
    - extract<std::string>
    - extract<std::vector<std::string>>
    linkageType: ''
    returnType: void
    signature: void dict_to_add_torrent_params(dict params, add_torrent_params& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_to_add_torrent_params
      Src: /src/libtorrent/bindings/python/src/session.cpp:408,1
    - Dst: add_torrent_params::save_path::empty
      Src: /src/libtorrent/bindings/python/src/session.cpp:410,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:412,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:414,1
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' s'
    - params
    argTypes:
    - lt::session
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 420
    functionName: add_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 185
    functionsReached:
    - PyErr_SetString
    - std::move
    - add_torrent_params::save_path::empty
    - dict_to_add_torrent_params
    - add_torrent
    - throw_error_already_set
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle add_torrent(lt::session& s, dict params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_to_add_torrent_params
      Src: /src/libtorrent/bindings/python/src/session.cpp:425,1
    - Dst: add_torrent_params::save_path::empty
      Src: /src/libtorrent/bindings/python/src/session.cpp:427,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:429,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:431,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' s'
    - params
    argTypes:
    - lt::session
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 437
    functionName: async_add_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 67
    functionsReached:
    - PyErr_SetString
    - async_add_torrent
    - std::move
    - add_torrent_params::save_path::empty
    - dict_to_add_torrent_params
    - throw_error_already_set
    linkageType: ''
    returnType: void
    signature: void async_add_torrent(lt::session& s, dict params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/session.cpp:443,1
    - Dst: save_path::empty
      Src: /src/libtorrent/bindings/python/src/session.cpp:445,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:447,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:449,1
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:454,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' s'
    - ' p'
    argTypes:
    - lt::session
    - lt::add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 455
    functionName: wrap_add_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - save_path::empty
    - PyErr_SetString
    - std::move
    - add_torrent
    - throw_error_already_set
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle wrap_add_torrent(lt::session& s, lt::add_torrent_params
      const& p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/session.cpp:461,1
    - Dst: save_path::empty
      Src: /src/libtorrent/bindings/python/src/session.cpp:463,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:465,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:467,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:472,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' s'
    - ' p'
    argTypes:
    - lt::session
    - lt::add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 473
    functionName: wrap_async_add_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - save_path::empty
    - PyErr_SetString
    - async_add_torrent
    - std::move
    - throw_error_already_set
    linkageType: ''
    returnType: void
    signature: void wrap_async_add_torrent(lt::session& s, lt::add_torrent_params
      const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_natpmp
      Src: /src/libtorrent/bindings/python/src/session.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: start_natpmp
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 4
    functionsReached:
    - start_natpmp
    linkageType: ''
    returnType: void
    signature: void start_natpmp(lt::session& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_upnp
      Src: /src/libtorrent/bindings/python/src/session.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: start_upnp
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 4
    functionsReached:
    - start_upnp
    linkageType: ''
    returnType: void
    signature: void start_upnp(lt::session& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/bindings/python/src/session.cpp:494,1
    - Dst: TORRENT_ASSERT_FAIL_VAL
      Src: /src/libtorrent/bindings/python/src/session.cpp:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cb
    argTypes:
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 502
    functionName: alert_notify
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 9
    functionsReached:
    - cb
    - TORRENT_ASSERT_FAIL_VAL
    linkageType: ''
    returnType: void
    signature: void alert_notify(object cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_alert_notify
      Src: /src/libtorrent/bindings/python/src/session.cpp:506,1
    - Dst: std::bind
      Src: /src/libtorrent/bindings/python/src/session.cpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - cb
    argTypes:
    - lt::session
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: set_alert_notify
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 10
    functionsReached:
    - std::bind
    - set_alert_notify
    linkageType: ''
    returnType: void
    signature: void set_alert_notify(lt::session& s, object cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::send
      Src: /src/libtorrent/bindings/python/src/session.cpp:513,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/bindings/python/src/session.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 514
    functionName: alert_socket_notify
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::send
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void alert_socket_notify(SOCKET const fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::write
      Src: /src/libtorrent/bindings/python/src/session.cpp:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: alert_fd_notify
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonValueWriter::write
    linkageType: ''
    returnType: void
    signature: void alert_fd_notify(int const fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SOCKET>
      Src: /src/libtorrent/bindings/python/src/session.cpp:526,1
    - Dst: ::getsockopt
      Src: /src/libtorrent/bindings/python/src/session.cpp:530,1
    - Dst: set_alert_notify
      Src: /src/libtorrent/bindings/python/src/session.cpp:533,1
    - Dst: std::bind
      Src: /src/libtorrent/bindings/python/src/session.cpp:533,1
    - Dst: set_alert_notify
      Src: /src/libtorrent/bindings/python/src/session.cpp:538,1
    - Dst: std::bind
      Src: /src/libtorrent/bindings/python/src/session.cpp:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' s'
    - fd
    argTypes:
    - lt::session
    - std::intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 540
    functionName: set_alert_fd
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - ::getsockopt
    - static_cast<SOCKET>
    - set_alert_notify
    linkageType: ''
    returnType: void
    signature: void set_alert_fd(lt::session& s, std::intptr_t const fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_alert
      Src: /src/libtorrent/bindings/python/src/session.cpp:548,1
    - Dst: milliseconds
      Src: /src/libtorrent/bindings/python/src/session.cpp:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' s'
    - ms
    argTypes:
    - lt::session
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: wait_for_alert
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 90
    functionsReached:
    - wait_for_alert
    - milliseconds
    linkageType: ''
    returnType: alert
    signature: "alert *\n    wait_for_alert(lt::session& s, int ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_torrents
      Src: /src/libtorrent/bindings/python/src/session.cpp:558,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:562,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:562,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/session.cpp:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 565
    functionName: get_torrents
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 51
    functionsReached:
    - std::vector::end
    - get_torrents
    - std::vector::begin
    - list::append
    linkageType: ''
    returnType: list
    signature: list get_torrents(lt::session& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pred
      Src: /src/libtorrent/bindings/python/src/session.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pred
    - ' st'
    argTypes:
    - object
    - torrent_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: wrap_pred
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - pred
    linkageType: ''
    returnType: bool
    signature: bool wrap_pred(object pred, torrent_status const& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bind
      Src: /src/libtorrent/bindings/python/src/session.cpp:578,1
    - Dst: get_torrent_status
      Src: /src/libtorrent/bindings/python/src/session.cpp:580,1
    - Dst: std::ref
      Src: /src/libtorrent/bindings/python/src/session.cpp:580,1
    - Dst: status_flags_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:580,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:583,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:583,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/session.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' s'
    - pred
    - flags
    argTypes:
    - lt::session
    - object
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 586
    functionName: get_torrent_status
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - get_torrent_status
    - list::append
    - std::vector::begin
    - std::ref
    - status_flags_t
    - std::vector::end
    linkageType: ''
    returnType: list
    signature: list get_torrent_status(lt::session& s, object pred, int const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/session.cpp:591,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/bindings/python/src/session.cpp:593,1
    - Dst: extract<torrent_status>
      Src: /src/libtorrent/bindings/python/src/session.cpp:593,1
    - Dst: refresh_torrent_status
      Src: /src/libtorrent/bindings/python/src/session.cpp:597,1
    - Dst: status_flags_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:597,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:601,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:601,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/session.cpp:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' s'
    - in_torrents
    - flags
    argTypes:
    - lt::session
    - list
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 604
    functionName: refresh_torrent_status
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 1
    functionsReached:
    - status_flags_t
    - std::vector::push_back
    - Catch::Detail::catch_strnlen
    - list::append
    - std::vector::begin
    - extract<torrent_status>
    - refresh_torrent_status
    - std::vector::end
    linkageType: ''
    returnType: list
    signature: list refresh_torrent_status(lt::session& s, list in_torrents, int const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/session.cpp:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 617
    functionName: get_utp_stats
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: dict
    signature: dict get_utp_stats(session_status const& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: save_state
      Src: /src/libtorrent/bindings/python/src/session.cpp:625,1
    - Dst: save_state_flags_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' s'
    - flags
    argTypes:
    - lt::session
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 628
    functionName: save_state
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 3
    functionsReached:
    - save_state
    - save_state_flags_t
    linkageType: ''
    returnType: entry
    signature: entry save_state(lt::session const& s, std::uint32_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_alerts
      Src: /src/libtorrent/bindings/python/src/session.cpp:635,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/session.cpp:641,1
    - Dst: Catch::Detail::unique_ptr::unique_ptr
      Src: /src/libtorrent/bindings/python/src/session.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 644
    functionName: pop_alerts
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 52
    functionsReached:
    - list::append
    - Catch::Detail::unique_ptr::unique_ptr
    - pop_alerts
    linkageType: ''
    returnType: list
    signature: list pop_alerts(lt::session& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/session.cpp:652,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/session.cpp:652,1
    - Dst: bdecode
      Src: /src/libtorrent/bindings/python/src/session.cpp:655,1
    - Dst: std::vector::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:655,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/bindings/python/src/session.cpp:656,1
    - Dst: load_state
      Src: /src/libtorrent/bindings/python/src/session.cpp:657,1
    - Dst: save_state_flags_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' ses'
    - ' st'
    - flags
    argTypes:
    - lt::session
    - entry
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 659
    functionName: load_state
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 4
    functionsReached:
    - std::vector::size
    - load_state
    - TORRENT_ASSERT
    - std::back_inserter
    - bdecode
    - bencode
    - save_state_flags_t
    linkageType: ''
    returnType: void
    signature: void load_state(lt::session& ses, entry const& st, std::uint32_t const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_peer_class
      Src: /src/libtorrent/bindings/python/src/session.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' ses'
    - pc
    argTypes:
    - lt::session
    - lt::peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 677
    functionName: get_peer_class
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 1
    functionsReached:
    - get_peer_class
    linkageType: ''
    returnType: dict
    signature: dict get_peer_class(lt::session& ses, lt::peer_class_t const pc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dict::keys
      Src: /src/libtorrent/bindings/python/src/session.cpp:682,1
    - Dst: extract<bool>
      Src: /src/libtorrent/bindings/python/src/session.cpp:690,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:694,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:698,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:702,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:706,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:710,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:714,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:718,1
    - Dst: c_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:718,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:719,1
    - Dst: set_peer_class
      Src: /src/libtorrent/bindings/python/src/session.cpp:724,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - ' ses'
    - pc
    - info
    argTypes:
    - lt::session
    - peer_class_t
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 725
    functionName: set_peer_class
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - c_str
    - extract<std::string>
    - set_peer_class
    - dict::keys
    - extract<int>
    - throw_error_already_set
    - extract<bool>
    linkageType: ''
    returnType: void
    signature: void set_peer_class(lt::session& ses, peer_class_t const pc, dict info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/bindings/python/src/session.cpp:730,1
    - Dst: std::string::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:730,1
    - Dst: std::copy
      Src: /src/libtorrent/bindings/python/src/session.cpp:732,1
    - Dst: std::string::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:732,1
    - Dst: std::string::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:732,1
    - Dst: std::array::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:732,1
    - Dst: dht_get_item
      Src: /src/libtorrent/bindings/python/src/session.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' ses'
    - key
    - salt
    argTypes:
    - lt::session
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 734
    functionName: dht_get_mutable_item
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::array::begin
    - std::string::begin
    - std::string::end
    - TORRENT_ASSERT
    - std::copy
    - dht_get_item
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void dht_get_mutable_item(lt::session& ses, std::string key, std::string
      salt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/session.cpp:744,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/session.cpp:744,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/bindings/python/src/session.cpp:746,1
    - Dst: libtorrent::dht::sequence_number
      Src: /src/libtorrent/bindings/python/src/session.cpp:747,1
    - Dst: libtorrent::dht::public_key
      Src: /src/libtorrent/bindings/python/src/session.cpp:748,1
    - Dst: std::string::data
      Src: /src/libtorrent/bindings/python/src/session.cpp:748,1
    - Dst: libtorrent::dht::secret_key
      Src: /src/libtorrent/bindings/python/src/session.cpp:749,1
    - Dst: std::string::data
      Src: /src/libtorrent/bindings/python/src/session.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - ' e'
    - ' sig'
    - ' seq'
    - ' salt'
    - pk
    - sk
    - data
    argTypes:
    - entry
    - std::array<char, 64>
    - std::int64_t
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 751
    functionName: put_string
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::sequence_number
    - libtorrent::dht::secret_key
    - libtorrent::dht::public_key
    - std::back_inserter
    - sign_mutable_item
    - std::string::data
    - bencode
    linkageType: ''
    returnType: void
    signature: "void put_string(entry& e, std::array<char, 64>& sig, std::int64_t&
      seq\n        , std::string const& salt, std::string pk, std::string sk\n        ,
      std::string data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/bindings/python/src/session.cpp:756,1
    - Dst: std::string::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/bindings/python/src/session.cpp:757,1
    - Dst: std::string::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:757,1
    - Dst: std::copy
      Src: /src/libtorrent/bindings/python/src/session.cpp:759,1
    - Dst: std::string::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:759,1
    - Dst: std::string::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:759,1
    - Dst: std::array::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:759,1
    - Dst: dht_put_item
      Src: /src/libtorrent/bindings/python/src/session.cpp:760,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:761,1
    - Dst: put_string
      Src: /src/libtorrent/bindings/python/src/session.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ' ses'
    - private_key
    - public_key
    - data
    - salt
    argTypes:
    - lt::session
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 767
    functionName: dht_put_mutable_item
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - dht_put_item
    - put_string
    - std::array::begin
    - std::string::begin
    - std::string::end
    - TORRENT_ASSERT
    - std::copy
    - std::string::size
    linkageType: ''
    returnType: void
    signature: "void dht_put_mutable_item(lt::session& ses, std::string private_key,
      std::string public_key,\n        std::string data, std::string salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_resume_data
      Src: /src/libtorrent/bindings/python/src/session.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: read_resume_data_wrapper0
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - read_resume_data
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params read_resume_data_wrapper0(bytes const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_resume_data
      Src: /src/libtorrent/bindings/python/src/session.cpp:777,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/session.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' b'
    - cfg
    argTypes:
    - bytes
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: read_resume_data_wrapper1
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - read_resume_data
    - dict_to_limits
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params read_resume_data_wrapper1(bytes const& b, dict cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find_metric_idx
      Src: /src/libtorrent/bindings/python/src/session.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 783
    functionName: find_metric_idx_wrap
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find_metric_idx
    linkageType: ''
    returnType: int
    signature: int find_metric_idx_wrap(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/bindings/python/src/session.cpp:788,1
    - Dst: bytes::arr::resize
      Src: /src/libtorrent/bindings/python/src/session.cpp:789,1
    - Dst: auto::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:789,1
    - Dst: std::copy
      Src: /src/libtorrent/bindings/python/src/session.cpp:790,1
    - Dst: auto::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:790,1
    - Dst: auto::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:790,1
    - Dst: bytes::arr::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 792
    functionName: write_resume_data_buf_
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::copy
    - auto::end
    - bytes::arr::begin
    - write_resume_data_buf
    - bytes::arr::resize
    - auto::begin
    linkageType: ''
    returnType: bytes
    signature: bytes write_resume_data_buf_(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<entry>
      Src: /src/libtorrent/bindings/python/src/session.cpp:797,1
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/session.cpp:799,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/session.cpp:799,1
    - Dst: libtorrent::session_params::read_session_params
      Src: /src/libtorrent/bindings/python/src/session.cpp:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - dict
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 801
    functionName: read_session_params_entry
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::session_params::read_session_params
    - extract<entry>
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: session_params
    signature: "session_params read_session_params_entry(dict e\n        , save_state_flags_t
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_params::read_session_params
      Src: /src/libtorrent/bindings/python/src/session.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bytes'
    - flags
    argTypes:
    - bytes
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: read_session_params_buffer
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::session_params::read_session_params
    linkageType: ''
    returnType: session_params
    signature: "session_params read_session_params_buffer(bytes const& bytes\n        ,
      save_state_flags_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_session_params_buf
      Src: /src/libtorrent/bindings/python/src/session.cpp:812,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/session.cpp:813,1
    - Dst: auto::data
      Src: /src/libtorrent/bindings/python/src/session.cpp:813,1
    - Dst: auto::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' sp'
    - flags
    argTypes:
    - session_params
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 814
    functionName: write_session_params_bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - write_session_params_buf
    - bytes
    - auto::size
    - auto::data
    linkageType: ''
    returnType: bytes
    signature: "bytes write_session_params_bytes(session_params const& sp\n        ,
      save_state_flags_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/session.cpp:820,1
    - Dst: type_id<settings_pack>
      Src: /src/libtorrent/bindings/python/src/session.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 823
    functionName: dict_to_settings
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<settings_pack>
    linkageType: ''
    returnType: void
    signature: void dict_to_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/libtorrent/bindings/python/src/session.cpp:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 828
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - PyDict_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::settings_pack::settings_pack
      Src: /src/libtorrent/bindings/python/src/session.cpp:835,1
    - Dst: make_settings_pack
      Src: /src/libtorrent/bindings/python/src/session.cpp:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 838
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 20
    functionsReached:
    - lt::settings_pack::settings_pack
    - make_settings_pack
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:845,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/session.cpp:846,1
    - Dst: dict::ptr
      Src: /src/libtorrent/bindings/python/src/session.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 6
    functionsReached:
    - make_dict
    - incref
    - dict::ptr
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(lt::settings_pack const& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_to_add_torrent_params
      Src: /src/libtorrent/bindings/python/src/session.cpp:408,1
    - Dst: add_torrent_params::save_path::empty
      Src: /src/libtorrent/bindings/python/src/session.cpp:410,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:412,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:414,1
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:419,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' s'
    - params
    argTypes:
    - lt::session
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 420
    functionName: add_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 189
    functionsReached:
    - PyErr_SetString
    - std::move
    - add_torrent_params::save_path::empty
    - dict_to_add_torrent_params
    - add_torrent
    - throw_error_already_set
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle add_torrent(lt::session& s, dict params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_to_add_torrent_params
      Src: /src/libtorrent/bindings/python/src/session.cpp:425,1
    - Dst: add_torrent_params::save_path::empty
      Src: /src/libtorrent/bindings/python/src/session.cpp:427,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:429,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:431,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:436,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' s'
    - params
    argTypes:
    - lt::session
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 437
    functionName: async_add_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 69
    functionsReached:
    - PyErr_SetString
    - async_add_torrent
    - std::move
    - add_torrent_params::save_path::empty
    - dict_to_add_torrent_params
    - throw_error_already_set
    linkageType: ''
    returnType: void
    signature: void async_add_torrent(lt::session& s, dict params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/session.cpp:443,1
    - Dst: save_path::empty
      Src: /src/libtorrent/bindings/python/src/session.cpp:445,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:447,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:449,1
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:454,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' s'
    - ' p'
    argTypes:
    - lt::session
    - lt::add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 455
    functionName: wrap_add_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - save_path::empty
    - PyErr_SetString
    - std::move
    - add_torrent
    - throw_error_already_set
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle wrap_add_torrent(lt::session& s, lt::add_torrent_params
      const& p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/session.cpp:461,1
    - Dst: save_path::empty
      Src: /src/libtorrent/bindings/python/src/session.cpp:463,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:465,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:467,1
    - Dst: async_add_torrent
      Src: /src/libtorrent/bindings/python/src/session.cpp:472,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' s'
    - ' p'
    argTypes:
    - lt::session
    - lt::add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 473
    functionName: wrap_async_add_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - save_path::empty
    - PyErr_SetString
    - async_add_torrent
    - std::move
    - throw_error_already_set
    linkageType: ''
    returnType: void
    signature: void wrap_async_add_torrent(lt::session& s, lt::add_torrent_params
      const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_natpmp
      Src: /src/libtorrent/bindings/python/src/session.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: start_natpmp
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 5
    functionsReached:
    - start_natpmp
    linkageType: ''
    returnType: void
    signature: void start_natpmp(lt::session& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_upnp
      Src: /src/libtorrent/bindings/python/src/session.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: start_upnp
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 5
    functionsReached:
    - start_upnp
    linkageType: ''
    returnType: void
    signature: void start_upnp(lt::session& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/libtorrent/bindings/python/src/session.cpp:494,1
    - Dst: TORRENT_ASSERT_FAIL_VAL
      Src: /src/libtorrent/bindings/python/src/session.cpp:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cb
    argTypes:
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 502
    functionName: alert_notify
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 11
    functionsReached:
    - cb
    - TORRENT_ASSERT_FAIL_VAL
    linkageType: ''
    returnType: void
    signature: void alert_notify(object cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_alert_notify
      Src: /src/libtorrent/bindings/python/src/session.cpp:506,1
    - Dst: std::bind
      Src: /src/libtorrent/bindings/python/src/session.cpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - cb
    argTypes:
    - lt::session
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: set_alert_notify
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 12
    functionsReached:
    - std::bind
    - set_alert_notify
    linkageType: ''
    returnType: void
    signature: void set_alert_notify(lt::session& s, object cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::broadcast_socket::send
      Src: /src/libtorrent/bindings/python/src/session.cpp:513,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/bindings/python/src/session.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 514
    functionName: alert_socket_notify
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::broadcast_socket::send
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: void
    signature: void alert_socket_notify(SOCKET const fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::JsonValueWriter::write
      Src: /src/libtorrent/bindings/python/src/session.cpp:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: alert_fd_notify
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - Catch::JsonValueWriter::write
    linkageType: ''
    returnType: void
    signature: void alert_fd_notify(int const fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SOCKET>
      Src: /src/libtorrent/bindings/python/src/session.cpp:526,1
    - Dst: ::getsockopt
      Src: /src/libtorrent/bindings/python/src/session.cpp:530,1
    - Dst: set_alert_notify
      Src: /src/libtorrent/bindings/python/src/session.cpp:533,1
    - Dst: std::bind
      Src: /src/libtorrent/bindings/python/src/session.cpp:533,1
    - Dst: set_alert_notify
      Src: /src/libtorrent/bindings/python/src/session.cpp:538,1
    - Dst: std::bind
      Src: /src/libtorrent/bindings/python/src/session.cpp:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' s'
    - fd
    argTypes:
    - lt::session
    - std::intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 540
    functionName: set_alert_fd
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - ::getsockopt
    - static_cast<SOCKET>
    - set_alert_notify
    linkageType: ''
    returnType: void
    signature: void set_alert_fd(lt::session& s, std::intptr_t const fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_alert
      Src: /src/libtorrent/bindings/python/src/session.cpp:548,1
    - Dst: milliseconds
      Src: /src/libtorrent/bindings/python/src/session.cpp:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' s'
    - ms
    argTypes:
    - lt::session
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: wait_for_alert
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 91
    functionsReached:
    - wait_for_alert
    - milliseconds
    linkageType: ''
    returnType: alert
    signature: "alert *\n    wait_for_alert(lt::session& s, int ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_torrents
      Src: /src/libtorrent/bindings/python/src/session.cpp:558,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:562,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:562,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/session.cpp:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 565
    functionName: get_torrents
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 52
    functionsReached:
    - std::vector::end
    - get_torrents
    - std::vector::begin
    - list::append
    linkageType: ''
    returnType: list
    signature: list get_torrents(lt::session& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pred
      Src: /src/libtorrent/bindings/python/src/session.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pred
    - ' st'
    argTypes:
    - object
    - torrent_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: wrap_pred
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - pred
    linkageType: ''
    returnType: bool
    signature: bool wrap_pred(object pred, torrent_status const& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bind
      Src: /src/libtorrent/bindings/python/src/session.cpp:578,1
    - Dst: get_torrent_status
      Src: /src/libtorrent/bindings/python/src/session.cpp:580,1
    - Dst: std::ref
      Src: /src/libtorrent/bindings/python/src/session.cpp:580,1
    - Dst: status_flags_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:580,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:583,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:583,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/session.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' s'
    - pred
    - flags
    argTypes:
    - lt::session
    - object
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 586
    functionName: get_torrent_status
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - get_torrent_status
    - list::append
    - std::vector::begin
    - std::ref
    - status_flags_t
    - std::vector::end
    linkageType: ''
    returnType: list
    signature: list get_torrent_status(lt::session& s, object pred, int const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/session.cpp:591,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/bindings/python/src/session.cpp:593,1
    - Dst: extract<torrent_status>
      Src: /src/libtorrent/bindings/python/src/session.cpp:593,1
    - Dst: refresh_torrent_status
      Src: /src/libtorrent/bindings/python/src/session.cpp:597,1
    - Dst: status_flags_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:597,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:601,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:601,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/session.cpp:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' s'
    - in_torrents
    - flags
    argTypes:
    - lt::session
    - list
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 604
    functionName: refresh_torrent_status
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 2
    functionsReached:
    - status_flags_t
    - std::vector::push_back
    - Catch::Detail::catch_strnlen
    - list::append
    - std::vector::begin
    - extract<torrent_status>
    - refresh_torrent_status
    - std::vector::end
    linkageType: ''
    returnType: list
    signature: list refresh_torrent_status(lt::session& s, list in_torrents, int const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/session.cpp:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - session_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 617
    functionName: get_utp_stats
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: dict
    signature: dict get_utp_stats(session_status const& st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: save_state
      Src: /src/libtorrent/bindings/python/src/session.cpp:625,1
    - Dst: save_state_flags_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' s'
    - flags
    argTypes:
    - lt::session
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 628
    functionName: save_state
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 4
    functionsReached:
    - save_state
    - save_state_flags_t
    linkageType: ''
    returnType: entry
    signature: entry save_state(lt::session const& s, std::uint32_t const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_alerts
      Src: /src/libtorrent/bindings/python/src/session.cpp:635,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/session.cpp:641,1
    - Dst: Catch::Detail::unique_ptr::unique_ptr
      Src: /src/libtorrent/bindings/python/src/session.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' ses'
    argTypes:
    - lt::session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 644
    functionName: pop_alerts
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 53
    functionsReached:
    - list::append
    - Catch::Detail::unique_ptr::unique_ptr
    - pop_alerts
    linkageType: ''
    returnType: list
    signature: list pop_alerts(lt::session& ses)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/session.cpp:652,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/session.cpp:652,1
    - Dst: bdecode
      Src: /src/libtorrent/bindings/python/src/session.cpp:655,1
    - Dst: std::vector::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:655,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/bindings/python/src/session.cpp:656,1
    - Dst: load_state
      Src: /src/libtorrent/bindings/python/src/session.cpp:657,1
    - Dst: save_state_flags_t
      Src: /src/libtorrent/bindings/python/src/session.cpp:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' ses'
    - ' st'
    - flags
    argTypes:
    - lt::session
    - entry
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 659
    functionName: load_state
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 5
    functionsReached:
    - std::vector::size
    - load_state
    - TORRENT_ASSERT
    - std::back_inserter
    - bdecode
    - bencode
    - save_state_flags_t
    linkageType: ''
    returnType: void
    signature: void load_state(lt::session& ses, entry const& st, std::uint32_t const
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_peer_class
      Src: /src/libtorrent/bindings/python/src/session.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' ses'
    - pc
    argTypes:
    - lt::session
    - lt::peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 677
    functionName: get_peer_class
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 2
    functionsReached:
    - get_peer_class
    linkageType: ''
    returnType: dict
    signature: dict get_peer_class(lt::session& ses, lt::peer_class_t const pc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dict::keys
      Src: /src/libtorrent/bindings/python/src/session.cpp:682,1
    - Dst: extract<bool>
      Src: /src/libtorrent/bindings/python/src/session.cpp:690,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:694,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/session.cpp:698,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:702,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:706,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:710,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/session.cpp:714,1
    - Dst: PyErr_SetString
      Src: /src/libtorrent/bindings/python/src/session.cpp:718,1
    - Dst: c_str
      Src: /src/libtorrent/bindings/python/src/session.cpp:718,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/session.cpp:719,1
    - Dst: set_peer_class
      Src: /src/libtorrent/bindings/python/src/session.cpp:724,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - ' ses'
    - pc
    - info
    argTypes:
    - lt::session
    - peer_class_t
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 725
    functionName: set_peer_class
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - c_str
    - extract<std::string>
    - set_peer_class
    - dict::keys
    - extract<int>
    - throw_error_already_set
    - extract<bool>
    linkageType: ''
    returnType: void
    signature: void set_peer_class(lt::session& ses, peer_class_t const pc, dict info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/bindings/python/src/session.cpp:730,1
    - Dst: std::string::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:730,1
    - Dst: std::copy
      Src: /src/libtorrent/bindings/python/src/session.cpp:732,1
    - Dst: std::string::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:732,1
    - Dst: std::string::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:732,1
    - Dst: std::array::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:732,1
    - Dst: dht_get_item
      Src: /src/libtorrent/bindings/python/src/session.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' ses'
    - key
    - salt
    argTypes:
    - lt::session
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 734
    functionName: dht_get_mutable_item
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::array::begin
    - std::string::begin
    - std::string::end
    - TORRENT_ASSERT
    - std::copy
    - dht_get_item
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void dht_get_mutable_item(lt::session& ses, std::string key, std::string
      salt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/session.cpp:744,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/session.cpp:744,1
    - Dst: sign_mutable_item
      Src: /src/libtorrent/bindings/python/src/session.cpp:746,1
    - Dst: libtorrent::dht::sequence_number
      Src: /src/libtorrent/bindings/python/src/session.cpp:747,1
    - Dst: libtorrent::dht::public_key
      Src: /src/libtorrent/bindings/python/src/session.cpp:748,1
    - Dst: std::string::data
      Src: /src/libtorrent/bindings/python/src/session.cpp:748,1
    - Dst: libtorrent::dht::secret_key
      Src: /src/libtorrent/bindings/python/src/session.cpp:749,1
    - Dst: std::string::data
      Src: /src/libtorrent/bindings/python/src/session.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - ' e'
    - ' sig'
    - ' seq'
    - ' salt'
    - pk
    - sk
    - data
    argTypes:
    - entry
    - std::array<char, 64>
    - std::int64_t
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 751
    functionName: put_string
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::sequence_number
    - libtorrent::dht::secret_key
    - libtorrent::dht::public_key
    - std::back_inserter
    - sign_mutable_item
    - std::string::data
    - bencode
    linkageType: ''
    returnType: void
    signature: "void put_string(entry& e, std::array<char, 64>& sig, std::int64_t&
      seq\n        , std::string const& salt, std::string pk, std::string sk\n        ,
      std::string data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/bindings/python/src/session.cpp:756,1
    - Dst: std::string::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:756,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/bindings/python/src/session.cpp:757,1
    - Dst: std::string::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:757,1
    - Dst: std::copy
      Src: /src/libtorrent/bindings/python/src/session.cpp:759,1
    - Dst: std::string::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:759,1
    - Dst: std::string::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:759,1
    - Dst: std::array::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:759,1
    - Dst: dht_put_item
      Src: /src/libtorrent/bindings/python/src/session.cpp:760,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:761,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/session.cpp:761,1
    - Dst: put_string
      Src: /src/libtorrent/bindings/python/src/session.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ' ses'
    - private_key
    - public_key
    - data
    - salt
    argTypes:
    - lt::session
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 767
    functionName: dht_put_mutable_item
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - dht_put_item
    - put_string
    - std::array::begin
    - std::string::begin
    - std::string::end
    - TORRENT_ASSERT
    - std::copy
    - std::string::size
    linkageType: ''
    returnType: void
    signature: "void dht_put_mutable_item(lt::session& ses, std::string private_key,
      std::string public_key,\n        std::string data, std::string salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_resume_data
      Src: /src/libtorrent/bindings/python/src/session.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: read_resume_data_wrapper0
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - read_resume_data
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params read_resume_data_wrapper0(bytes const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_resume_data
      Src: /src/libtorrent/bindings/python/src/session.cpp:777,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/session.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' b'
    - cfg
    argTypes:
    - bytes
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: read_resume_data_wrapper1
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - read_resume_data
    - dict_to_limits
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params read_resume_data_wrapper1(bytes const& b, dict cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find_metric_idx
      Src: /src/libtorrent/bindings/python/src/session.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 783
    functionName: find_metric_idx_wrap
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::find_metric_idx
    linkageType: ''
    returnType: int
    signature: int find_metric_idx_wrap(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/bindings/python/src/session.cpp:788,1
    - Dst: bytes::arr::resize
      Src: /src/libtorrent/bindings/python/src/session.cpp:789,1
    - Dst: auto::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:789,1
    - Dst: std::copy
      Src: /src/libtorrent/bindings/python/src/session.cpp:790,1
    - Dst: auto::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:790,1
    - Dst: auto::end
      Src: /src/libtorrent/bindings/python/src/session.cpp:790,1
    - Dst: bytes::arr::begin
      Src: /src/libtorrent/bindings/python/src/session.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' atp'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 792
    functionName: write_resume_data_buf_
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::copy
    - auto::end
    - bytes::arr::begin
    - write_resume_data_buf
    - bytes::arr::resize
    - auto::begin
    linkageType: ''
    returnType: bytes
    signature: bytes write_resume_data_buf_(add_torrent_params const& atp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<entry>
      Src: /src/libtorrent/bindings/python/src/session.cpp:797,1
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/session.cpp:799,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/session.cpp:799,1
    - Dst: libtorrent::session_params::read_session_params
      Src: /src/libtorrent/bindings/python/src/session.cpp:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - dict
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 801
    functionName: read_session_params_entry
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::session_params::read_session_params
    - extract<entry>
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: session_params
    signature: "session_params read_session_params_entry(dict e\n        , save_state_flags_t
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_params::read_session_params
      Src: /src/libtorrent/bindings/python/src/session.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bytes'
    - flags
    argTypes:
    - bytes
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: read_session_params_buffer
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::session_params::read_session_params
    linkageType: ''
    returnType: session_params
    signature: "session_params read_session_params_buffer(bytes const& bytes\n        ,
      save_state_flags_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_session_params_buf
      Src: /src/libtorrent/bindings/python/src/session.cpp:812,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/session.cpp:813,1
    - Dst: auto::data
      Src: /src/libtorrent/bindings/python/src/session.cpp:813,1
    - Dst: auto::size
      Src: /src/libtorrent/bindings/python/src/session.cpp:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' sp'
    - flags
    argTypes:
    - session_params
    - save_state_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 814
    functionName: write_session_params_bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - write_session_params_buf
    - bytes
    - auto::size
    - auto::data
    linkageType: ''
    returnType: bytes
    signature: "bytes write_session_params_bytes(session_params const& sp\n        ,
      save_state_flags_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/session.cpp:820,1
    - Dst: type_id<settings_pack>
      Src: /src/libtorrent/bindings/python/src/session.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 823
    functionName: dict_to_settings
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<settings_pack>
    linkageType: ''
    returnType: void
    signature: void dict_to_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/libtorrent/bindings/python/src/session.cpp:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 828
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached:
    - PyDict_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::settings_pack::settings_pack
      Src: /src/libtorrent/bindings/python/src/session.cpp:835,1
    - Dst: make_settings_pack
      Src: /src/libtorrent/bindings/python/src/session.cpp:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 838
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 20
    functionsReached:
    - lt::settings_pack::settings_pack
    - make_settings_pack
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_dict
      Src: /src/libtorrent/bindings/python/src/session.cpp:845,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/session.cpp:846,1
    - Dst: dict::ptr
      Src: /src/libtorrent/bindings/python/src/session.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - lt::settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 6
    functionsReached:
    - make_dict
    - incref
    - dict::ptr
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(lt::settings_pack const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 949
    functionName: PROP
    functionSourceFile: /src/libtorrent/bindings/python/src/session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROP(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:23,1
    - Dst: dict_to_add_torrent_params
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:26,1
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:33,1
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' s'
    - uri
    - params
    argTypes:
    - lt::session
    - std::string
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: _add_magnet_uri
    functionSourceFile: /src/libtorrent/bindings/python/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - dict_to_add_torrent_params
    - add_torrent
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle _add_magnet_uri(lt::session& s, std::string uri, dict
      params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:44,1
    - Dst: system_error
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:46,1
    - Dst: add_torrent_params::trackers::begin
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:52,1
    - Dst: add_torrent_params::trackers::end
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:53,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:54,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:59,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:59,1
    - Dst: add_torrent_params::info_hashes::has_v2
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:61,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:62,1
    - Dst: add_torrent_params::info_hashes::v2::to_string
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:62,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:64,1
    - Dst: add_torrent_params::info_hashes::v1::to_string
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:64,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:66,1
    - Dst: add_torrent_params::info_hashes::get_best
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ' uri'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 76
    functionName: parse_magnet_uri_dict
    functionSourceFile: /src/libtorrent/bindings/python/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - boost::python::make_tuple
    - add_torrent_params::info_hashes::has_v2
    - add_torrent_params::info_hashes::v1::to_string
    - list::append
    - bytes
    - system_error
    - add_torrent_params::trackers::end
    - add_torrent_params::trackers::begin
    - add_torrent_params::info_hashes::v2::to_string
    - add_torrent_params::info_hashes::get_best
    linkageType: ''
    returnType: dict
    signature: dict parse_magnet_uri_dict(std::string const& uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:81,1
    - Dst: system_error
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' uri'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: parse_magnet_uri_wrap
    functionSourceFile: /src/libtorrent/bindings/python/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - system_error
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params parse_magnet_uri_wrap(std::string const& uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:23,1
    - Dst: dict_to_add_torrent_params
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:26,1
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:33,1
    - Dst: add_torrent
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' s'
    - uri
    - params
    argTypes:
    - lt::session
    - std::string
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: _add_magnet_uri
    functionSourceFile: /src/libtorrent/bindings/python/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - dict_to_add_torrent_params
    - add_torrent
    linkageType: ''
    returnType: torrent_handle
    signature: torrent_handle _add_magnet_uri(lt::session& s, std::string uri, dict
      params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:44,1
    - Dst: system_error
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:46,1
    - Dst: add_torrent_params::trackers::begin
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:52,1
    - Dst: add_torrent_params::trackers::end
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:53,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:54,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:59,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:59,1
    - Dst: add_torrent_params::info_hashes::has_v2
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:61,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:62,1
    - Dst: add_torrent_params::info_hashes::v2::to_string
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:62,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:64,1
    - Dst: add_torrent_params::info_hashes::v1::to_string
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:64,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:66,1
    - Dst: add_torrent_params::info_hashes::get_best
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ' uri'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 76
    functionName: parse_magnet_uri_dict
    functionSourceFile: /src/libtorrent/bindings/python/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - boost::python::make_tuple
    - add_torrent_params::info_hashes::has_v2
    - add_torrent_params::info_hashes::v1::to_string
    - list::append
    - bytes
    - system_error
    - add_torrent_params::trackers::end
    - add_torrent_params::trackers::begin
    - add_torrent_params::info_hashes::v2::to_string
    - add_torrent_params::info_hashes::get_best
    linkageType: ''
    returnType: dict
    signature: dict parse_magnet_uri_dict(std::string const& uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_magnet_uri
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:81,1
    - Dst: system_error
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' uri'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: parse_magnet_uri_wrap
    functionSourceFile: /src/libtorrent/bindings/python/src/magnet_uri.cpp
    functionUses: 0
    functionsReached:
    - parse_magnet_uri
    - system_error
    linkageType: ''
    returnType: add_torrent_params
    signature: add_torrent_params parse_magnet_uri_wrap(std::string const& uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:94,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:96,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:97,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:98,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:99,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/magnet_uri.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: bind_magnet_uri
    functionSourceFile: /src/libtorrent/bindings/python/src/magnet_uri.cpp
    functionUses: 1
    functionsReached:
    - def
    linkageType: ''
    returnType: void
    signature: void bind_magnet_uri()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/libtorrent/bindings/python/src/boost_python.hpp:40,1
    - Dst: boost::python::throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/boost_python.hpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: python_deprecated
    functionSourceFile: /src/libtorrent/bindings/python/src/boost_python.hpp
    functionUses: 6
    functionsReached:
    - boost::python::throw_error_already_set
    - PyErr_WarnEx
    linkageType: ''
    returnType: void
    signature: void python_deprecated(char const* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/string.cpp:14,1
    - Dst: type_id<std::string>
      Src: /src/libtorrent/bindings/python/src/string.cpp:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: unicode_from_python
    functionSourceFile: /src/libtorrent/bindings/python/src/string.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<std::string>
    linkageType: ''
    returnType: void
    signature: void unicode_from_python()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/libtorrent/bindings/python/src/string.cpp:22,1
    - Dst: PyString_Check
      Src: /src/libtorrent/bindings/python/src/string.cpp:24,1
    - Dst: PyUnicode_Check
      Src: /src/libtorrent/bindings/python/src/string.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/string.cpp
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyString_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyString_Check
      Src: /src/libtorrent/bindings/python/src/string.cpp:34,1
    - Dst: PyString_AsString
      Src: /src/libtorrent/bindings/python/src/string.cpp:36,1
    - Dst: PyString_Size
      Src: /src/libtorrent/bindings/python/src/string.cpp:37,1
    - Dst: std::string::string
      Src: /src/libtorrent/bindings/python/src/string.cpp:36,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/libtorrent/bindings/python/src/string.cpp:43,1
    - Dst: std::string::string
      Src: /src/libtorrent/bindings/python/src/string.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/string.cpp
    functionUses: 20
    functionsReached:
    - PyString_Size
    - PyString_Check
    - PyUnicode_AsUTF8AndSize
    - PyString_AsString
    - std::string::string
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_from_python
      Src: /src/libtorrent/bindings/python/src/string.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: bind_unicode_string_conversion
    functionSourceFile: /src/libtorrent/bindings/python/src/string.cpp
    functionUses: 1
    functionsReached:
    - unicode_from_python
    linkageType: ''
    returnType: void
    signature: void bind_unicode_string_conversion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enum_<settings_pack::choking_algorithm_t>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:14,1
    - Dst: value
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:17,1
    - Dst: value
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:20,1
    - Dst: enum_<settings_pack::seed_choking_algorithm_t>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:25,1
    - Dst: enum_<settings_pack::mmap_write_mode_t>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:31,1
    - Dst: enum_<settings_pack::suggest_mode_t>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:37,1
    - Dst: enum_<settings_pack::io_buffer_mode_t>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:42,1
    - Dst: value
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:45,1
    - Dst: enum_<settings_pack::bandwidth_mixed_algo_t>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:51,1
    - Dst: enum_<settings_pack::enc_policy>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:56,1
    - Dst: value
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:61,1
    - Dst: enum_<settings_pack::enc_level>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:67,1
    - Dst: value
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:72,1
    - Dst: enum_<settings_pack::proxy_type_t>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:79,1
    - Dst: scope
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:90,1
    - Dst: class_<proxy_settings>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:92,1
    - Dst: class_<dht::dht_settings>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:106,1
    - Dst: class_<pe_settings>
      Src: /src/libtorrent/bindings/python/src/session_settings.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 137
    functionName: bind_session_settings
    functionSourceFile: /src/libtorrent/bindings/python/src/session_settings.cpp
    functionUses: 1
    functionsReached:
    - enum_<settings_pack::proxy_type_t>
    - class_<dht::dht_settings>
    - enum_<settings_pack::seed_choking_algorithm_t>
    - enum_<settings_pack::suggest_mode_t>
    - enum_<settings_pack::enc_level>
    - class_<pe_settings>
    - scope
    - enum_<settings_pack::choking_algorithm_t>
    - enum_<settings_pack::io_buffer_mode_t>
    - enum_<settings_pack::mmap_write_mode_t>
    - enum_<settings_pack::bandwidth_mixed_algo_t>
    - value
    - enum_<settings_pack::enc_policy>
    - class_<proxy_settings>
    linkageType: ''
    returnType: void
    signature: void bind_session_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_file
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:23,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - cfg
    argTypes:
    - std::string
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: load_torrent_file1
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::load_torrent_file
    - dict_to_limits
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params load_torrent_file1(std::string filename, dict
      cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_buffer
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: load_torrent_buffer0
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::load_torrent_buffer
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params load_torrent_buffer0(bytes b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_buffer
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:33,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - cfg
    argTypes:
    - bytes
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: load_torrent_buffer1
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::load_torrent_buffer
    - dict_to_limits
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params load_torrent_buffer1(bytes b, dict cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_parsed
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:39,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n'
    - cfg
    argTypes:
    - lt::bdecode_node
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: load_torrent_parsed1
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::load_torrent_parsed
    - dict_to_limits
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params load_torrent_parsed1(lt::bdecode_node const&
      n, dict cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_file
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:23,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - cfg
    argTypes:
    - std::string
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: load_torrent_file1
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::load_torrent_file
    - dict_to_limits
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params load_torrent_file1(std::string filename, dict
      cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_buffer
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: load_torrent_buffer0
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::load_torrent_buffer
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params load_torrent_buffer0(bytes b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_buffer
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:33,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - cfg
    argTypes:
    - bytes
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: load_torrent_buffer1
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::load_torrent_buffer
    - dict_to_limits
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params load_torrent_buffer1(bytes b, dict cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::load_torrent_parsed
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:39,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' n'
    - cfg
    argTypes:
    - lt::bdecode_node
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: load_torrent_parsed1
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 0
    functionsReached:
    - libtorrent::load_torrent_parsed
    - dict_to_limits
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params load_torrent_parsed1(lt::bdecode_node const&
      n, dict cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:49,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:50,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:51,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:52,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:53,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/load_torrent.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: bind_load_torrent
    functionSourceFile: /src/libtorrent/bindings/python/src/load_torrent.cpp
    functionUses: 1
    functionsReached:
    - def
    linkageType: ''
    returnType: void
    signature: void bind_load_torrent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/bindings/python/src/entry.cpp:18,1
    - Dst: end
      Src: /src/libtorrent/bindings/python/src/entry.cpp:18,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/entry.cpp:20,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/bindings/python/src/entry.cpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - entry::list_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 24
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_RVO
    - list::append
    - end
    - begin
    linkageType: ''
    returnType: object
    signature: object convert(entry::list_type const& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/libtorrent/bindings/python/src/entry.cpp:30,1
    - Dst: end
      Src: /src/libtorrent/bindings/python/src/entry.cpp:30,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/entry.cpp:31,1
    - Dst: TORRENT_RVO
      Src: /src/libtorrent/bindings/python/src/entry.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - entry::dictionary_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 6
    functionsReached:
    - TORRENT_RVO
    - bytes
    - end
    - begin
    linkageType: ''
    returnType: object
    signature: object convert(entry::dictionary_type const& d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/bindings/python/src/entry.cpp:38,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/entry.cpp:41,1
    - Dst: integer
      Src: /src/libtorrent/bindings/python/src/entry.cpp:41,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/entry.cpp:43,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/entry.cpp:43,1
    - Dst: string
      Src: /src/libtorrent/bindings/python/src/entry.cpp:43,1
    - Dst: convert
      Src: /src/libtorrent/bindings/python/src/entry.cpp:45,1
    - Dst: list
      Src: /src/libtorrent/bindings/python/src/entry.cpp:45,1
    - Dst: convert
      Src: /src/libtorrent/bindings/python/src/entry.cpp:47,1
    - Dst: dict
      Src: /src/libtorrent/bindings/python/src/entry.cpp:47,1
    - Dst: preformatted
      Src: /src/libtorrent/bindings/python/src/entry.cpp:50,1
    - Dst: begin
      Src: /src/libtorrent/bindings/python/src/entry.cpp:52,1
    - Dst: end
      Src: /src/libtorrent/bindings/python/src/entry.cpp:53,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/entry.cpp:54,1
    - Dst: tuple
      Src: /src/libtorrent/bindings/python/src/entry.cpp:55,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/entry.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: convert0
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 0
    functionsReached:
    - object
    - preformatted
    - begin
    - string
    - list
    - bytes
    - end
    - list::append
    - dict
    - integer
    - type
    - tuple
    - convert
    linkageType: ''
    returnType: object
    signature: object convert0(entry const& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/entry.cpp:65,1
    - Dst: convert
      Src: /src/libtorrent/bindings/python/src/entry.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::shared_ptr<entry>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 8
    functionsReached:
    - convert
    - incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(std::shared_ptr<entry> const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/entry.cpp:71,1
    - Dst: convert0
      Src: /src/libtorrent/bindings/python/src/entry.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 8
    functionsReached:
    - convert0
    - incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(entry const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/entry.cpp:79,1
    - Dst: type_id<entry>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: entry_from_python
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<entry>
    linkageType: ''
    returnType: void
    signature: void entry_from_python()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: extract<dict>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:91,1
    - Dst: extract<dict>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:93,1
    - Dst: dict::items
      Src: /src/libtorrent/bindings/python/src/entry.cpp:94,1
    - Dst: extract<std::size_t>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:95,1
    - Dst: list::attr
      Src: /src/libtorrent/bindings/python/src/entry.cpp:95,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:100,1
    - Dst: entry::dict
      Src: /src/libtorrent/bindings/python/src/entry.cpp:102,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/entry.cpp:103,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:104,1
    - Dst: construct0
      Src: /src/libtorrent/bindings/python/src/entry.cpp:105,1
    - Dst: entry::dict
      Src: /src/libtorrent/bindings/python/src/entry.cpp:111,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/entry.cpp:112,1
    - Dst: extract<char const*>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:113,1
    - Dst: construct0
      Src: /src/libtorrent/bindings/python/src/entry.cpp:114,1
    - Dst: extract<list>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:122,1
    - Dst: extract<list>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:124,1
    - Dst: extract<std::size_t>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:126,1
    - Dst: list::attr
      Src: /src/libtorrent/bindings/python/src/entry.cpp:126,1
    - Dst: entry::list
      Src: /src/libtorrent/bindings/python/src/entry.cpp:131,1
    - Dst: construct0
      Src: /src/libtorrent/bindings/python/src/entry.cpp:131,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:136,1
    - Dst: entry
      Src: /src/libtorrent/bindings/python/src/entry.cpp:138,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:138,1
    - Dst: extract<str>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:140,1
    - Dst: entry
      Src: /src/libtorrent/bindings/python/src/entry.cpp:142,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:142,1
    - Dst: extract<entry::integer_type>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:144,1
    - Dst: entry
      Src: /src/libtorrent/bindings/python/src/entry.cpp:146,1
    - Dst: extract<entry::integer_type>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:146,1
    - Dst: extract<tuple>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:148,1
    - Dst: extract<tuple>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:150,1
    - Dst: extract<std::size_t>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:152,1
    - Dst: tuple::attr
      Src: /src/libtorrent/bindings/python/src/entry.cpp:152,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:156,1
    - Dst: entry
      Src: /src/libtorrent/bindings/python/src/entry.cpp:159,1
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/entry.cpp:164,1
    - Dst: entry
      Src: /src/libtorrent/bindings/python/src/entry.cpp:168,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - e
    argTypes:
    - object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 169
    functionName: construct0
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 1
    functionsReached:
    - entry::list
    - list::attr
    - extract<tuple>
    - extract<std::size_t>
    - extract<char const*>
    - std::make_pair
    - entry
    - python_deprecated
    - dict::items
    - extract<list>
    - extract<bytes>
    - construct0
    - extract<dict>
    - tuple::attr
    - extract<int>
    - entry::dict
    - extract<entry::integer_type>
    - extract<std::string>
    - extract<str>
    linkageType: ''
    returnType: entry
    signature: entry construct0(object e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct0
      Src: /src/libtorrent/bindings/python/src/entry.cpp:174,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/entry.cpp:174,1
    - Dst: borrowed
      Src: /src/libtorrent/bindings/python/src/entry.cpp:174,1
    - Dst: entry::entry
      Src: /src/libtorrent/bindings/python/src/entry.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 20
    functionsReached:
    - borrowed
    - construct0
    - object
    - entry::entry
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* e, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_python_converter<std::shared_ptr<lt::entry>, entry_to_python>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:181,1
    - Dst: to_python_converter<entry, entry_to_python>
      Src: /src/libtorrent/bindings/python/src/entry.cpp:182,1
    - Dst: entry_from_python
      Src: /src/libtorrent/bindings/python/src/entry.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: bind_entry
    functionSourceFile: /src/libtorrent/bindings/python/src/entry.cpp
    functionUses: 1
    functionsReached:
    - entry_from_python
    - to_python_converter<std::shared_ptr<lt::entry>, entry_to_python>
    - to_python_converter<entry, entry_to_python>
    linkageType: ''
    returnType: void
    signature: void bind_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:28,1
    - Dst: buffer::get
      Src: /src/libtorrent/bindings/python/src/alert.cpp:28,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rpa'
    argTypes:
    - read_piece_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: get_buffer
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - buffer::get
    - bytes
    linkageType: ''
    returnType: bytes
    signature: bytes get_buffer(read_piece_alert const& rpa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/alert.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - stats_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: stats_alert_transferred
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - list::append
    linkageType: ''
    returnType: list
    signature: list stats_alert_transferred(stats_alert const& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status::begin
      Src: /src/libtorrent/bindings/python/src/alert.cpp:47,1
    - Dst: status::end
      Src: /src/libtorrent/bindings/python/src/alert.cpp:47,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/alert.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - state_update_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: get_status_from_update_alert
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - status::begin
    - status::end
    - list::append
    linkageType: ''
    returnType: list
    signature: list get_status_from_update_alert(state_update_alert const& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: active_requests::begin
      Src: /src/libtorrent/bindings/python/src/alert.cpp:58,1
    - Dst: active_requests::end
      Src: /src/libtorrent/bindings/python/src/alert.cpp:59,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/alert.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - dht_stats_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 75
    functionName: dht_stats_active_requests
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - active_requests::end
    - list::append
    - active_requests::begin
    linkageType: ''
    returnType: list
    signature: list dht_stats_active_requests(dht_stats_alert const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: routing_table::begin
      Src: /src/libtorrent/bindings/python/src/alert.cpp:81,1
    - Dst: routing_table::end
      Src: /src/libtorrent/bindings/python/src/alert.cpp:82,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/alert.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - dht_stats_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: dht_stats_routing_table
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - list::append
    - routing_table::begin
    - routing_table::end
    linkageType: ''
    returnType: list
    signature: list dht_stats_routing_table(dht_stats_alert const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:98,1
    - Dst: item::string
      Src: /src/libtorrent/bindings/python/src/alert.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - dht_immutable_item_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: dht_immutable_item
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - bytes
    - item::string
    linkageType: ''
    returnType: dict
    signature: dict dht_immutable_item(dht_immutable_item_alert const& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:105,1
    - Dst: key::data
      Src: /src/libtorrent/bindings/python/src/alert.cpp:105,1
    - Dst: key::size
      Src: /src/libtorrent/bindings/python/src/alert.cpp:105,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:106,1
    - Dst: item::string
      Src: /src/libtorrent/bindings/python/src/alert.cpp:106,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:107,1
    - Dst: signature::data
      Src: /src/libtorrent/bindings/python/src/alert.cpp:107,1
    - Dst: signature::size
      Src: /src/libtorrent/bindings/python/src/alert.cpp:107,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - dht_mutable_item_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: dht_mutable_item
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - key::data
    - bytes
    - signature::size
    - key::size
    - signature::data
    - item::string
    linkageType: ''
    returnType: dict
    signature: dict dht_mutable_item(dht_mutable_item_alert const& alert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: target::is_all_zeros
      Src: /src/libtorrent/bindings/python/src/alert.cpp:117,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:118,1
    - Dst: public_key::data
      Src: /src/libtorrent/bindings/python/src/alert.cpp:118,1
    - Dst: public_key::size
      Src: /src/libtorrent/bindings/python/src/alert.cpp:118,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:119,1
    - Dst: signature::data
      Src: /src/libtorrent/bindings/python/src/alert.cpp:119,1
    - Dst: signature::size
      Src: /src/libtorrent/bindings/python/src/alert.cpp:119,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - dht_put_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: dht_put_item
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 5
    functionsReached:
    - target::is_all_zeros
    - public_key::size
    - bytes
    - public_key::data
    - signature::size
    - signature::data
    linkageType: ''
    returnType: dict
    signature: dict dht_put_item(dht_put_alert const& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_stats_metrics
      Src: /src/libtorrent/bindings/python/src/alert.cpp:130,1
    - Dst: counters
      Src: /src/libtorrent/bindings/python/src/alert.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - session_stats_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: session_stats_values
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - counters
    - session_stats_metrics
    linkageType: ''
    returnType: dict
    signature: dict session_stats_values(session_stats_alert const& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:144,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/alert.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - dht_live_nodes_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: dht_live_nodes_nodes
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - list::append
    - nodes
    linkageType: ''
    returnType: list
    signature: list dht_live_nodes_nodes(dht_live_nodes_alert const& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodes
      Src: /src/libtorrent/bindings/python/src/alert.cpp:158,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/alert.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - dht_sample_infohashes_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: dht_sample_infohashes_nodes
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - list::append
    - nodes
    linkageType: ''
    returnType: list
    signature: list dht_sample_infohashes_nodes(dht_sample_infohashes_alert const&
      alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/alert.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - save_resume_data_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: get_resume_data_entry
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: entry
    signature: entry & get_resume_data_entry(save_resume_data_alert const& self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: POLY
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POLY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: POLY
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POLY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkt_buf
      Src: /src/libtorrent/bindings/python/src/alert.cpp:299,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/bindings/python/src/alert.cpp:299,1
    - Dst: pkt_buf
      Src: /src/libtorrent/bindings/python/src/alert.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - dht_pkt_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: get_pkt_buf
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - pkt_buf
    linkageType: ''
    returnType: bytes
    signature: bytes get_pkt_buf(dht_pkt_alert const& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dropped_alerts::size
      Src: /src/libtorrent/bindings/python/src/alert.cpp:305,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/alert.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - alerts_dropped_alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: get_dropped_alerts
    functionSourceFile: /src/libtorrent/bindings/python/src/alert.cpp
    functionUses: 0
    functionsReached:
    - list::append
    - dropped_alerts::size
    linkageType: ''
    returnType: list
    signature: list get_dropped_alerts(alerts_dropped_alert const& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_SaveThread
      Src: /src/libtorrent/bindings/python/src/gil.hpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: allow_threading_guard
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - PyEval_SaveThread
    linkageType: ''
    returnType: void
    signature: void allow_threading_guard()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_RestoreThread
      Src: /src/libtorrent/bindings/python/src/gil.hpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: ~allow_threading_guard()
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - PyEval_RestoreThread
    linkageType: ''
    returnType: void
    signature: void ~allow_threading_guard()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/libtorrent/bindings/python/src/gil.hpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: lock_gil
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    linkageType: ''
    returnType: void
    signature: void lock_gil()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Release
      Src: /src/libtorrent/bindings/python/src/gil.hpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: ~lock_gil()
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - PyGILState_Release
    linkageType: ''
    returnType: void
    signature: void ~lock_gil()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fn
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: allow_threading
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allow_threading(F fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Self>
      Src: /src/libtorrent/bindings/python/src/gil.hpp:43,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/bindings/python/src/gil.hpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - Self
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: operator()(Self&& s, Args&&... args)
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - std::forward<Self>
    linkageType: ''
    returnType: R
    signature: R operator()(Self&& s, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/gil.hpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fn
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: visitor
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 18
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void visitor(F fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/gil.hpp:60,1
    - Dst: boost::python::make_function
      Src: /src/libtorrent/bindings/python/src/gil.hpp:62,1
    - Dst: allow_threading
      Src: /src/libtorrent/bindings/python/src/gil.hpp:63,1
    - Dst: policies
      Src: /src/libtorrent/bindings/python/src/gil.hpp:64,1
    - Dst: keywords
      Src: /src/libtorrent/bindings/python/src/gil.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' cl'
    - name
    - ' options'
    - ' signature'
    argTypes:
    - Class
    - char*
    - Options
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: visit_aux
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - def
    - keywords
    - policies
    - boost::python::make_function
    - allow_threading
    linkageType: ''
    returnType: void
    signature: "void visit_aux(\n        Class& cl, char const* name\n      , Options
      const& options, Signature const& signature) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: visit_aux
      Src: /src/libtorrent/bindings/python/src/gil.hpp:74,1
    - Dst: boost::python::detail::get_signature
      Src: /src/libtorrent/bindings/python/src/gil.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' cl'
    - name
    - ' options'
    argTypes:
    - Class
    - char*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: visit
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 2
    functionsReached:
    - visit_aux
    - boost::python::detail::get_signature
    linkageType: ''
    returnType: void
    signature: void visit(Class& cl, char const* name, Options const& options) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: visitor
      Src: /src/libtorrent/bindings/python/src/gil.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: allow_threads
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - visitor
    linkageType: ''
    returnType: visitor<F>
    signature: visitor<F> allow_threads(F fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Self>
      Src: /src/libtorrent/bindings/python/src/gil.hpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: fn
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 8
    functionsReached:
    - std::forward<Self>
    linkageType: ''
    returnType: auto
    signature: auto fn
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Fn>
      Src: /src/libtorrent/bindings/python/src/gil.hpp:124,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/bindings/python/src/gil.hpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: invoke
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 92
    functionsReached:
    - std::forward<Fn>
    - std::forward<Args>
    linkageType: ''
    returnType: auto
    signature: "auto invoke(Fn&& fn, Args&&... args) ->\n#if TORRENT_AUTO_RETURN_TYPES\n
      \   decltype(auto)\n#else\n    decltype(std::forward<Fn>(fn)(std::forward<Args>(args)...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - fn
    - name
    argTypes:
    - F
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: deprecated_fun
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void deprecated_fun(F fn, char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/bindings/python/src/gil.hpp:134,1
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/gil.hpp:135,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/bindings/python/src/gil.hpp:135,1
    - Dst: Catch::Benchmark::Detail::invoke
      Src: /src/libtorrent/bindings/python/src/gil.hpp:137,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/bindings/python/src/gil.hpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: operator()(Args&&... args)
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - std::string
    - python_deprecated
    - Catch::Benchmark::Detail::invoke
    - std::forward<Args>
    linkageType: ''
    returnType: R
    signature: R operator()(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/gil.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fn
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: deprecate_visitor
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void deprecate_visitor(F fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/gil.hpp:155,1
    - Dst: boost::python::make_function
      Src: /src/libtorrent/bindings/python/src/gil.hpp:157,1
    - Dst: deprecated_fun
      Src: /src/libtorrent/bindings/python/src/gil.hpp:158,1
    - Dst: policies
      Src: /src/libtorrent/bindings/python/src/gil.hpp:159,1
    - Dst: keywords
      Src: /src/libtorrent/bindings/python/src/gil.hpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' cl'
    - name
    - ' options'
    - ' signature'
    argTypes:
    - Class
    - char*
    - Options
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 164
    functionName: visit_aux
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 1
    functionsReached:
    - def
    - keywords
    - policies
    - boost::python::make_function
    - deprecated_fun
    linkageType: ''
    returnType: void
    signature: "void visit_aux(\n        Class& cl, char const* name\n      , Options
      const& options, Signature const& signature) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: visit_aux
      Src: /src/libtorrent/bindings/python/src/gil.hpp:169,1
    - Dst: boost::python::detail::get_signature
      Src: /src/libtorrent/bindings/python/src/gil.hpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' cl'
    - name
    - ' options'
    argTypes:
    - Class
    - char*
    - Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: visit
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 2
    functionsReached:
    - visit_aux
    - boost::python::detail::get_signature
    linkageType: ''
    returnType: void
    signature: void visit(Class& cl, char const* name, Options const& options) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deprecate_visitor
      Src: /src/libtorrent/bindings/python/src/gil.hpp:181,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/gil.hpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: depr
    functionSourceFile: /src/libtorrent/bindings/python/src/gil.hpp
    functionUses: 2
    functionsReached:
    - std::move
    - deprecate_visitor
    linkageType: ''
    returnType: deprecate_visitor<F>
    signature: deprecate_visitor<F> depr(F fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_microseconds
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:22,1
    - Dst: datetime_timedelta
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:23,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:29,1
    - Dst: object::ptr
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/datetime.cpp
    functionUses: 8
    functionsReached:
    - object::ptr
    - libtorrent::total_microseconds
    - datetime_timedelta
    - incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(Duration const& d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: datetime_timedelta
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:37,1
    - Dst: total_microseconds
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:40,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:43,1
    - Dst: object::ptr
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' d'
    argTypes:
    - boost::posix_time::time_duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/datetime.cpp
    functionUses: 8
    functionsReached:
    - object::ptr
    - total_microseconds
    - datetime_timedelta
    - incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(boost::posix_time::time_duration const& d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: now
    functionSourceFile: /src/libtorrent/bindings/python/src/datetime.cpp
    functionUses: 498
    functionsReached:
    - time_now
    linkageType: ''
    returnType: lt::time_point
    signature: lt::time_point now(::tag<lt::time_point>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::time_point_cast<lt::seconds32>
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:53,1
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: now
    functionSourceFile: /src/libtorrent/bindings/python/src/datetime.cpp
    functionUses: 499
    functionsReached:
    - time_now
    - lt::time_point_cast<lt::seconds32>
    linkageType: ''
    returnType: lt::time_point32
    signature: lt::time_point32 now(::tag<lt::time_point32>)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:63,1
    - Dst: libtorrent::aux::to_time_t
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:65,1
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:65,1
    - Dst: duration_cast<system_clock::duration>
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:66,1
    - Dst: now
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:66,1
    - Dst: ::tag<T>
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:66,1
    - Dst: localtime
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:69,1
    - Dst: localtime_r
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:72,1
    - Dst: datetime_datetime
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:75,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:87,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:89,1
    - Dst: object::ptr
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pt
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 90
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/datetime.cpp
    functionUses: 8
    functionsReached:
    - time_now
    - ::tag<T>
    - object
    - incref
    - localtime_r
    - datetime_datetime
    - now
    - localtime
    - libtorrent::aux::to_time_t
    - T
    - duration_cast<system_clock::duration>
    - object::ptr
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(T const pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: date
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:97,1
    - Dst: time_of_day
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:98,1
    - Dst: datetime_datetime
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:100,1
    - Dst: boost::gregorian::date::year
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:101,1
    - Dst: boost::gregorian::date::month
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:102,1
    - Dst: boost::gregorian::date::day
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:103,1
    - Dst: boost::posix_time::time_duration::hours
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:104,1
    - Dst: boost::posix_time::time_duration::minutes
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:105,1
    - Dst: boost::posix_time::time_duration::seconds
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:106,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:109,1
    - Dst: object::ptr
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pt'
    argTypes:
    - boost::posix_time::ptime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/datetime.cpp
    functionUses: 8
    functionsReached:
    - boost::posix_time::time_duration::hours
    - incref
    - boost::gregorian::date::month
    - datetime_datetime
    - boost::posix_time::time_duration::seconds
    - time_of_day
    - boost::posix_time::time_duration::minutes
    - boost::gregorian::date::year
    - date
    - object::ptr
    - boost::gregorian::date::day
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(boost::posix_time::ptime const& pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: import
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:115,1
    - Dst: "to_python_converter<boost::posix_time::time_duration\n      , time_duration_to_python>"
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:120,1
    - Dst: "to_python_converter<boost::posix_time::ptime\n      , ptime_to_python>"
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:123,1
    - Dst: "to_python_converter<lt::time_point\n      , time_point_to_python<lt::time_point>>"
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:126,1
    - Dst: "to_python_converter<lt::time_point32\n      , time_point_to_python<lt::time_point32>>"
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:129,1
    - Dst: "to_python_converter<lt::time_duration\n      , chrono_duration_to_python<lt::time_duration>>"
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:132,1
    - Dst: "to_python_converter<lt::seconds32\n      , chrono_duration_to_python<lt::seconds32>>"
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:135,1
    - Dst: "to_python_converter<std::chrono::seconds\n      , chrono_duration_to_python<std::chrono::seconds>>"
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:138,1
    - Dst: optional_to_python
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:141,1
    - Dst: optional_to_python
      Src: /src/libtorrent/bindings/python/src/datetime.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: bind_datetime
    functionSourceFile: /src/libtorrent/bindings/python/src/datetime.cpp
    functionUses: 1
    functionsReached:
    - import
    - "to_python_converter<lt::time_duration\n      , chrono_duration_to_python<lt::time_duration>>"
    - "to_python_converter<boost::posix_time::time_duration\n      , time_duration_to_python>"
    - "to_python_converter<boost::posix_time::ptime\n      , ptime_to_python>"
    - "to_python_converter<lt::time_point32\n      , time_point_to_python<lt::time_point32>>"
    - optional_to_python
    - "to_python_converter<lt::seconds32\n      , chrono_duration_to_python<lt::seconds32>>"
    - "to_python_converter<lt::time_point\n      , time_point_to_python<lt::time_point>>"
    - "to_python_converter<std::chrono::seconds\n      , chrono_duration_to_python<std::chrono::seconds>>"
    linkageType: ''
    returnType: void
    signature: void bind_datetime()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trackers
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: begin_trackers
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - trackers
    linkageType: ''
    returnType: std::vector<announce_entry>::const_iterator
    signature: std::vector<announce_entry>::const_iterator begin_trackers(torrent_info&
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trackers
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: end_trackers
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - trackers
    linkageType: ''
    returnType: std::vector<announce_entry>::const_iterator
    signature: std::vector<announce_entry>::const_iterator end_trackers(torrent_info&
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_node
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:43,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ti'
    - hostname
    - port
    argTypes:
    - torrent_info
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: add_node
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 36
    functionsReached:
    - add_node
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void add_node(torrent_info& ti, char const* hostname, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:50,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:51,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: nodes
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 89
    functionsReached:
    - boost::python::make_tuple
    - list::append
    - nodes
    linkageType: ''
    returnType: list
    signature: list nodes(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: web_seeds
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:58,1
    - Dst: begin
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:60,1
    - Dst: end
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:61,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: get_web_seeds
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - web_seeds
    - list::append
    - end
    - begin
    linkageType: ''
    returnType: list
    signature: list get_web_seeds(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:76,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:76,1
    - Dst: extract<dict>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:79,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:80,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:81,1
    - Dst: web_seed_entry
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:81,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:82,1
    - Dst: static_cast<web_seed_entry::type_t>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:83,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:84,1
    - Dst: set_web_seeds
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ti'
    - ws
    argTypes:
    - torrent_info
    - list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: set_web_seeds
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - std::vector::push_back
    - Catch::Detail::catch_strnlen
    - extract<std::string>
    - extract<dict>
    - static_cast<web_seed_entry::type_t>
    - extract<int>
    - web_seed_entry
    - set_web_seeds
    linkageType: ''
    returnType: void
    signature: void set_web_seeds(torrent_info& ti, list ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_tree
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:92,1
    - Dst: begin
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:94,1
    - Dst: end
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:95,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:97,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:97,1
    - Dst: std::vector<sha1_hash>::const_iterator::to_string
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: get_merkle_tree
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - merkle_tree
    - begin
    - bytes
    - list::append
    - end
    - std::vector<sha1_hash>::const_iterator::to_string
    linkageType: ''
    returnType: list
    signature: list get_merkle_tree(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:105,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: data
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: set_merkle_tree
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ti'
    - hashes
    argTypes:
    - torrent_info
    - list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: set_merkle_tree
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - set_merkle_tree
    - std::vector::push_back
    - bytes
    - extract<bytes>
    - len
    - sha1_hash
    - data
    linkageType: ''
    returnType: void
    signature: void set_merkle_tree(torrent_info& ti, list hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:114,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ti'
    - i
    argTypes:
    - torrent_info
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: hash_for_piece
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 10
    functionsReached:
    - bytes
    - hash_for_piece
    linkageType: ''
    returnType: bytes
    signature: bytes hash_for_piece(torrent_info const& ti, piece_index_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info_section
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:120,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:121,1
    - Dst: auto::data
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:121,1
    - Dst: auto::size
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: metadata
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 142
    functionsReached:
    - auto::size
    - bytes
    - auto::data
    - info_section
    linkageType: ''
    returnType: bytes
    signature: bytes metadata(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info_section
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:127,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:128,1
    - Dst: auto::data
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:128,1
    - Dst: auto::size
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: get_info_section
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - bytes
    - auto::data
    - info_section
    linkageType: ''
    returnType: bytes
    signature: bytes get_info_section(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_block
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:133,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:136,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:136,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' ti'
    - piece
    - offset
    - size
    argTypes:
    - torrent_info
    - piece_index_t
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: map_block
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 11
    functionsReached:
    - std::vector::begin
    - list::append
    - map_block
    - std::vector::end
    linkageType: ''
    returnType: list
    signature: list map_block(torrent_info& ti, piece_index_t piece, std::int64_t
      offset, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:146,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:147,1
    - Dst: lt::time_point
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:147,1
    - Dst: lt::time_point
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:147,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: get_next_announce
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - lt::time_point
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: lt::time_point
    signature: lt::time_point get_next_announce(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:151,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:152,1
    - Dst: lt::time_point
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:152,1
    - Dst: lt::time_point
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:152,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: get_min_announce
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - lt::time_point
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: lt::time_point
    signature: lt::time_point get_min_announce(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:157,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:158,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: get_fails
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: int
    signature: int get_fails(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:162,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:163,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: get_updating
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool get_updating(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:167,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:168,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: get_start_sent
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool get_start_sent(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:172,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:173,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: get_complete_sent
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool get_complete_sent(announce_entry const& ae)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:177,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:179,1
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:180,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ae'
    - is_seed
    argTypes:
    - announce_entry
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: can_announce
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 5
    functionsReached:
    - time_now
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool can_announce(announce_entry const& ae, bool is_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:185,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:186,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: is_working
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 13
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool is_working(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: get_source
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_source(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: get_verified
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool get_verified(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:195,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:196,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: get_message
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: std::string
    signature: std::string get_message(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:200,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:201,1
    - Dst: error_code
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:201,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: get_last_error
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - endpoints::front
    - python_deprecated
    - error_code
    - endpoints::empty
    linkageType: ''
    returnType: error_code
    signature: error_code get_last_error(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:205,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:206,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: get_scrape_incomplete
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: int
    signature: int get_scrape_incomplete(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:210,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:211,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: get_scrape_complete
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: int
    signature: int get_scrape_complete(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:215,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:216,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: get_scrape_downloaded
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: int
    signature: int get_scrape_downloaded(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: next_announce_in
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: int
    signature: int next_announce_in(announce_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: min_announce_in
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: int
    signature: int min_announce_in(announce_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: get_send_stats
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_send_stats(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: get_size
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 8
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t get_size(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: get_offset
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t get_offset(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: get_pad_file
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_pad_file(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: get_executable_attribute
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_executable_attribute(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: get_hidden_attribute
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_hidden_attribute(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: get_symlink_attribute
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_symlink_attribute(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trackers
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: begin_trackers
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - trackers
    linkageType: ''
    returnType: std::vector<announce_entry>::const_iterator
    signature: std::vector<announce_entry>::const_iterator begin_trackers(torrent_info&
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trackers
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: end_trackers
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - trackers
    linkageType: ''
    returnType: std::vector<announce_entry>::const_iterator
    signature: std::vector<announce_entry>::const_iterator end_trackers(torrent_info&
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_node
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:43,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ti'
    - hostname
    - port
    argTypes:
    - torrent_info
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: add_node
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 37
    functionsReached:
    - add_node
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void add_node(torrent_info& ti, char const* hostname, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:50,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:51,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: nodes
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 90
    functionsReached:
    - boost::python::make_tuple
    - list::append
    - nodes
    linkageType: ''
    returnType: list
    signature: list nodes(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: web_seeds
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:58,1
    - Dst: begin
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:60,1
    - Dst: end
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:61,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: get_web_seeds
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - web_seeds
    - list::append
    - end
    - begin
    linkageType: ''
    returnType: list
    signature: list get_web_seeds(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:76,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:76,1
    - Dst: extract<dict>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:79,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:80,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:81,1
    - Dst: web_seed_entry
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:81,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:82,1
    - Dst: static_cast<web_seed_entry::type_t>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:83,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:84,1
    - Dst: set_web_seeds
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ti'
    - ws
    argTypes:
    - torrent_info
    - list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: set_web_seeds
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - std::vector::push_back
    - Catch::Detail::catch_strnlen
    - extract<std::string>
    - extract<dict>
    - static_cast<web_seed_entry::type_t>
    - extract<int>
    - web_seed_entry
    - set_web_seeds
    linkageType: ''
    returnType: void
    signature: void set_web_seeds(torrent_info& ti, list ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merkle_tree
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:92,1
    - Dst: begin
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:94,1
    - Dst: end
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:95,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:97,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:97,1
    - Dst: std::vector<sha1_hash>::const_iterator::to_string
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: get_merkle_tree
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - merkle_tree
    - begin
    - bytes
    - list::append
    - end
    - std::vector<sha1_hash>::const_iterator::to_string
    linkageType: ''
    returnType: list
    signature: list get_merkle_tree(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:105,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: extract<bytes>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: data
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:106,1
    - Dst: set_merkle_tree
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' ti'
    - hashes
    argTypes:
    - torrent_info
    - list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: set_merkle_tree
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 2
    functionsReached:
    - set_merkle_tree
    - std::vector::push_back
    - bytes
    - extract<bytes>
    - len
    - sha1_hash
    - data
    linkageType: ''
    returnType: void
    signature: void set_merkle_tree(torrent_info& ti, list hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:114,1
    - Dst: hash_for_piece
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ti'
    - i
    argTypes:
    - torrent_info
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: hash_for_piece
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 11
    functionsReached:
    - bytes
    - hash_for_piece
    linkageType: ''
    returnType: bytes
    signature: bytes hash_for_piece(torrent_info const& ti, piece_index_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info_section
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:120,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:121,1
    - Dst: auto::data
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:121,1
    - Dst: auto::size
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: metadata
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 142
    functionsReached:
    - auto::size
    - bytes
    - auto::data
    - info_section
    linkageType: ''
    returnType: bytes
    signature: bytes metadata(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info_section
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:127,1
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:128,1
    - Dst: auto::data
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:128,1
    - Dst: auto::size
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ti'
    argTypes:
    - torrent_info
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: get_info_section
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - bytes
    - auto::data
    - info_section
    linkageType: ''
    returnType: bytes
    signature: bytes get_info_section(torrent_info const& ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_block
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:133,1
    - Dst: std::vector::begin
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:136,1
    - Dst: std::vector::end
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:136,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' ti'
    - piece
    - offset
    - size
    argTypes:
    - torrent_info
    - piece_index_t
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: map_block
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 12
    functionsReached:
    - std::vector::begin
    - list::append
    - map_block
    - std::vector::end
    linkageType: ''
    returnType: list
    signature: list map_block(torrent_info& ti, piece_index_t piece, std::int64_t
      offset, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:146,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:147,1
    - Dst: lt::time_point
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:147,1
    - Dst: lt::time_point
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:147,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: get_next_announce
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - lt::time_point
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: lt::time_point
    signature: lt::time_point get_next_announce(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:151,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:152,1
    - Dst: lt::time_point
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:152,1
    - Dst: lt::time_point
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:152,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: get_min_announce
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - lt::time_point
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: lt::time_point
    signature: lt::time_point get_min_announce(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:157,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:158,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: get_fails
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: int
    signature: int get_fails(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:162,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:163,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: get_updating
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool get_updating(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:167,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:168,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: get_start_sent
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool get_start_sent(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:172,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:173,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: get_complete_sent
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool get_complete_sent(announce_entry const& ae)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:177,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:179,1
    - Dst: time_now
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:180,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' ae'
    - is_seed
    argTypes:
    - announce_entry
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: can_announce
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 5
    functionsReached:
    - time_now
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool can_announce(announce_entry const& ae, bool is_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:185,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:186,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: is_working
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 13
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: bool
    signature: bool is_working(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: get_source
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_source(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: get_verified
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool get_verified(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:195,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:196,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: get_message
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: std::string
    signature: std::string get_message(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:200,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:201,1
    - Dst: error_code
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:201,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: get_last_error
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - endpoints::front
    - python_deprecated
    - error_code
    - endpoints::empty
    linkageType: ''
    returnType: error_code
    signature: error_code get_last_error(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:205,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:206,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: get_scrape_incomplete
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: int
    signature: int get_scrape_incomplete(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:210,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:211,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: get_scrape_complete
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: int
    signature: int get_scrape_complete(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:215,1
    - Dst: endpoints::empty
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:216,1
    - Dst: endpoints::front
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: get_scrape_downloaded
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - endpoints::front
    - endpoints::empty
    linkageType: ''
    returnType: int
    signature: int get_scrape_downloaded(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: next_announce_in
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: int
    signature: int next_announce_in(announce_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: min_announce_in
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: int
    signature: int min_announce_in(announce_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ae'
    argTypes:
    - announce_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: get_send_stats
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_send_stats(announce_entry const& ae)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: get_size
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 8
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t get_size(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: get_offset
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t get_offset(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: get_pad_file
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_pad_file(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: get_executable_attribute
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_executable_attribute(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: get_hidden_attribute
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_hidden_attribute(file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fe'
    argTypes:
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: get_symlink_attribute
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    linkageType: ''
    returnType: bool
    signature: bool get_symlink_attribute(file_entry const& fe)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dict::items
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:271,1
    - Dst: Catch::Detail::catch_strnlen
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:272,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:276,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:281,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:286,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:291,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:296,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - limits
    argTypes:
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 301
    functionName: dict_to_limits
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 8
    functionsReached:
    - Catch::Detail::catch_strnlen
    - dict::items
    - extract<std::string>
    - extract<int>
    linkageType: ''
    returnType: load_torrent_limits
    signature: load_torrent_limits dict_to_limits(dict limits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: buffer_constructor0
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> buffer_constructor0(bytes b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:310,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - limits
    argTypes:
    - bytes
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: buffer_constructor1
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - dict_to_limits
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> buffer_constructor1(bytes b, dict limits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:317,1
    - Dst: std::string
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - lt::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: file_constructor0
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - std::string
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> file_constructor0(lt::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:322,1
    - Dst: std::string
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:322,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - limits
    argTypes:
    - lt::string_view
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: file_constructor1
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - std::string
    - dict_to_limits
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> file_constructor1(lt::string_view filename,
      dict limits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:327,1
    - Dst: info_hash_t
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ih'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: sha1_constructor0
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - info_hash_t
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> sha1_constructor0(sha1_hash const& ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:332,1
    - Dst: info_hash_t
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ih'
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: sha256_constructor0
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - info_hash_t
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> sha256_constructor0(sha256_hash const&
      ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<entry>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:337,1
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:339,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:339,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: bencoded_constructor0
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - extract<entry>
    - std::back_inserter
    - bencode
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> bencoded_constructor0(dict d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<entry>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:345,1
    - Dst: bencode
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:347,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:347,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:348,1
    - Dst: dict_to_limits
      Src: /src/libtorrent/bindings/python/src/torrent_info.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - limits
    argTypes:
    - dict
    - dict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: bencoded_constructor1
    functionSourceFile: /src/libtorrent/bindings/python/src/torrent_info.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<torrent_info>
    - dict_to_limits
    - std::back_inserter
    - extract<entry>
    - bencode
    linkageType: ''
    returnType: std::shared_ptr<torrent_info>
    signature: std::shared_ptr<torrent_info> bencoded_constructor1(dict d, dict limits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - class boost::system::error_category*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: boost::get_pointer
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: "boost::system::error_category *\n\tget_pointer(class boost::system::error_category
      const volatile* p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - class boost::system::error_category*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: boost::get_pointer
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: "boost::system::error_category *\n\tget_pointer(class boost::system::error_category
      const volatile* p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::python::tuple
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: getinitargs
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - boost::python::tuple
    linkageType: ''
    returnType: boost::python::tuple
    signature: boost::python::tuple getinitargs(error_code const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:76,1
    - Dst: value
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:76,1
    - Dst: category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: getstate
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - value
    - boost::python::make_tuple
    - category
    linkageType: ''
    returnType: boost::python::tuple
    signature: boost::python::tuple getstate(error_code const& ec)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:83,1
    - Dst: PyErr_SetObject
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:85,1
    - Dst: ptr
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:86,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:88,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:91,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:92,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:94,1
    - Dst: lt::system_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:94,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:96,1
    - Dst: lt::generic_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:96,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:98,1
    - Dst: libtorrent::libtorrent_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:100,1
    - Dst: libtorrent::http_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:100,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:102,1
    - Dst: libtorrent::upnp_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:102,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:104,1
    - Dst: libtorrent::bdecode_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:104,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:106,1
    - Dst: boost::asio::error::get_netdb_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:106,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:108,1
    - Dst: boost::asio::error::get_addrinfo_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:108,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:110,1
    - Dst: boost::asio::error::get_misc_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:110,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:113,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:113,1
    - Dst: PyErr_SetObject
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:117,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:119,1
    - Dst: ptr
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:118,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - ' ec'
    - state
    argTypes:
    - error_code
    - boost::python::tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 121
    functionName: setstate
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 2
    functionsReached:
    - object
    - ptr
    - lt::system_category
    - boost::asio::error::get_netdb_category
    - boost::asio::error::get_misc_category
    - lt::generic_category
    - extract<std::string>
    - libtorrent::libtorrent_category
    - assign
    - libtorrent::http_category
    - boost::asio::error::get_addrinfo_category
    - boost::asio::gnutls::error::get_ssl_category
    - len
    - libtorrent::upnp_category
    - PyErr_SetObject
    - extract<int>
    - throw_error_already_set
    - libtorrent::bdecode_category
    linkageType: ''
    returnType: void
    signature: void setstate(error_code& ec, boost::python::tuple state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::python::tuple
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: getinitargs
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - boost::python::tuple
    linkageType: ''
    returnType: boost::python::tuple
    signature: boost::python::tuple getinitargs(error_code const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:76,1
    - Dst: value
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:76,1
    - Dst: category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: getstate
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - value
    - boost::python::make_tuple
    - category
    linkageType: ''
    returnType: boost::python::tuple
    signature: boost::python::tuple getstate(error_code const& ec)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:83,1
    - Dst: PyErr_SetObject
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:85,1
    - Dst: ptr
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:86,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:88,1
    - Dst: extract<int>
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:91,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:92,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:94,1
    - Dst: lt::system_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:94,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:96,1
    - Dst: lt::generic_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:96,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:98,1
    - Dst: libtorrent::libtorrent_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:98,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:100,1
    - Dst: libtorrent::http_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:100,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:102,1
    - Dst: libtorrent::upnp_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:102,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:104,1
    - Dst: libtorrent::bdecode_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:104,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:106,1
    - Dst: boost::asio::error::get_netdb_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:106,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:108,1
    - Dst: boost::asio::error::get_addrinfo_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:108,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:110,1
    - Dst: boost::asio::error::get_misc_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:110,1
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:113,1
    - Dst: boost::asio::gnutls::error::get_ssl_category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:113,1
    - Dst: PyErr_SetObject
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:117,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:119,1
    - Dst: ptr
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:118,1
    - Dst: throw_error_already_set
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - ' ec'
    - state
    argTypes:
    - error_code
    - boost::python::tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 121
    functionName: setstate
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 2
    functionsReached:
    - object
    - ptr
    - lt::system_category
    - boost::asio::error::get_netdb_category
    - boost::asio::error::get_misc_category
    - lt::generic_category
    - extract<std::string>
    - libtorrent::libtorrent_category
    - assign
    - libtorrent::http_category
    - boost::asio::error::get_addrinfo_category
    - boost::asio::gnutls::error::get_ssl_category
    - len
    - libtorrent::upnp_category
    - PyErr_SetObject
    - extract<int>
    - throw_error_already_set
    - libtorrent::bdecode_category
    linkageType: ''
    returnType: void
    signature: void setstate(error_code& ec, boost::python::tuple state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cat'
    argTypes:
    - boost::system::error_category
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: category_holder
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category_holder(boost::system::error_category const& cat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: name
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 270
    functionsReached:
    - name
    linkageType: ''
    returnType: char
    signature: char * name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: message
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: message
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 638
    functionsReached:
    - message
    linkageType: ''
    returnType: std::string
    signature: std::string message(int const v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - category_holder
    - category_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: operator==(category_holder const lhs, category_holder const rhs)
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(category_holder const lhs, category_holder const rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - category_holder
    - category_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: operator!=(category_holder const lhs, category_holder const rhs)
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(category_holder const lhs, category_holder const rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - category_holder
    - category_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: operator<(category_holder const lhs, category_holder const rhs)
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(category_holder const lhs, category_holder const rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '& ref() const'
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_category
    signature: boost::system::error_category & ref() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: operator boost::system::error_category const&() const
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator boost::system::error_category const&() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:149,1
    - Dst: category_holder::ref
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' me'
    - v
    - cat
    argTypes:
    - boost::system::error_code
    - int
    - category_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: error_code_assign
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - category_holder::ref
    - assign
    linkageType: ''
    returnType: void
    signature: void error_code_assign(boost::system::error_code& me, int const v,
      category_holder const cat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: category_holder
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:154,1
    - Dst: category
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' me'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: error_code_category
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached:
    - category_holder
    - category
    linkageType: ''
    returnType: category_holder
    signature: category_holder error_code_category(boost::system::error_code const&
      me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: WRAP_CAT
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_CAT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: WRAP_DEPR_CAT
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_DEPR_CAT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: class_<category_holder>
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:197,1
    - Dst: class_<error_code>
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:205,1
    - Dst: init<>
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:206,1
    - Dst: init<int, category_holder>
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:207,1
    - Dst: std::string
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:208,1
    - Dst: ec_pickle_suite
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:213,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:216,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:217,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:218,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:219,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:220,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:222,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:226,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:227,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:228,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:229,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:230,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:232,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:236,1
    - Dst: def
      Src: /src/libtorrent/bindings/python/src/error_code.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 239
    functionName: bind_error_code
    functionSourceFile: /src/libtorrent/bindings/python/src/error_code.cpp
    functionUses: 1
    functionsReached:
    - def
    - class_<error_code>
    - ec_pickle_suite
    - init<int, category_holder>
    - std::string
    - init<>
    - class_<category_holder>
    linkageType: ''
    returnType: void
    signature: void bind_error_code()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_rule
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:16,1
    - Dst: make_address
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:16,1
    - Dst: make_address
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' filter'
    - start
    - end
    - flags
    argTypes:
    - ip_filter
    - std::string
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: add_rule
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 31
    functionsReached:
    - add_rule
    - make_address
    linkageType: ''
    returnType: void
    signature: void add_rule(ip_filter& filter, std::string start, std::string end,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:21,1
    - Dst: make_address
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' filter'
    - addr
    argTypes:
    - ip_filter
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: access0
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - access
    - make_address
    linkageType: ''
    returnType: int
    signature: int access0(ip_filter& filter, std::string addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:29,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:29,1
    - Dst: first::to_string
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:29,1
    - Dst: last::to_string
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::vector<ip_range<T>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: convert_range_list
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - last::to_string
    - boost::python::make_tuple
    - list::append
    - first::to_string
    linkageType: ''
    returnType: list
    signature: list convert_range_list(std::vector<ip_range<T>> const& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: export_filter
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:35,1
    - Dst: convert_range_list
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:36,1
    - Dst: std::get<0>
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:36,1
    - Dst: convert_range_list
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:37,1
    - Dst: std::get<1>
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:37,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - ip_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: export_filter
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 17
    functionsReached:
    - export_filter
    - boost::python::make_tuple
    - convert_range_list
    - std::get<0>
    - std::get<1>
    linkageType: ''
    returnType: tuple
    signature: tuple export_filter(ip_filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_rule
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:16,1
    - Dst: make_address
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:16,1
    - Dst: make_address
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' filter'
    - start
    - end
    - flags
    argTypes:
    - ip_filter
    - std::string
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: add_rule
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 32
    functionsReached:
    - add_rule
    - make_address
    linkageType: ''
    returnType: void
    signature: void add_rule(ip_filter& filter, std::string start, std::string end,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:21,1
    - Dst: make_address
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' filter'
    - addr
    argTypes:
    - ip_filter
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: access0
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 0
    functionsReached:
    - access
    - make_address
    linkageType: ''
    returnType: int
    signature: int access0(ip_filter& filter, std::string addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:29,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:29,1
    - Dst: first::to_string
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:29,1
    - Dst: last::to_string
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' l'
    argTypes:
    - std::vector<ip_range<T>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: convert_range_list
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - last::to_string
    - boost::python::make_tuple
    - list::append
    - first::to_string
    linkageType: ''
    returnType: list
    signature: list convert_range_list(std::vector<ip_range<T>> const& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: export_filter
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:35,1
    - Dst: convert_range_list
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:36,1
    - Dst: std::get<0>
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:36,1
    - Dst: convert_range_list
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:37,1
    - Dst: std::get<1>
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:37,1
    - Dst: boost::python::make_tuple
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - ip_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: export_filter
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 18
    functionsReached:
    - export_filter
    - boost::python::make_tuple
    - convert_range_list
    - std::get<0>
    - std::get<1>
    linkageType: ''
    returnType: tuple
    signature: tuple export_filter(ip_filter const& f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: class_<ip_filter>
      Src: /src/libtorrent/bindings/python/src/ip_filter.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: bind_ip_filter
    functionSourceFile: /src/libtorrent/bindings/python/src/ip_filter.cpp
    functionUses: 1
    functionsReached:
    - class_<ip_filter>
    linkageType: ''
    returnType: void
    signature: void bind_ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 12
    functionName: bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/bytes.hpp
    functionUses: 278
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bytes(char const* s, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 13
    functionName: bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/bytes.hpp
    functionUses: 278
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bytes(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/bytes.hpp:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/bytes.hpp
    functionUses: 278
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void bytes(std::string&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/bytes.hpp
    functionUses: 278
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bytes(bytes const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/bytes.hpp
    functionUses: 278
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bytes(bytes&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: '& operator=(bytes&&) & noexcept'
    functionSourceFile: /src/libtorrent/bindings/python/src/bytes.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bytes
    signature: bytes & operator=(bytes&&) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/bytes.hpp
    functionUses: 278
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: get_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/sha256_hash.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long get_hash(sha256_hash const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/sha256_hash.cpp:21,1
    - Dst: to_string
      Src: /src/libtorrent/bindings/python/src/sha256_hash.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: sha256_hash_bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/sha256_hash.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - bytes
    linkageType: ''
    returnType: bytes
    signature: bytes sha256_hash_bytes(const sha256_hash& bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: get_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/sha256_hash.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long get_hash(sha256_hash const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/libtorrent/bindings/python/src/sha256_hash.cpp:21,1
    - Dst: to_string
      Src: /src/libtorrent/bindings/python/src/sha256_hash.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: sha256_hash_bytes
    functionSourceFile: /src/libtorrent/bindings/python/src/sha256_hash.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - bytes
    linkageType: ''
    returnType: bytes
    signature: bytes sha256_hash_bytes(const sha256_hash& bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: class_<sha256_hash>
      Src: /src/libtorrent/bindings/python/src/sha256_hash.cpp:31,1
    - Dst: to_str
      Src: /src/libtorrent/bindings/python/src/sha256_hash.cpp:35,1
    - Dst: init<std::string>
      Src: /src/libtorrent/bindings/python/src/sha256_hash.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: bind_sha256_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/sha256_hash.cpp
    functionUses: 4
    functionsReached:
    - init<std::string>
    - to_str
    - class_<sha256_hash>
    linkageType: ''
    returnType: void
    signature: void bind_sha256_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:40,1
    - Dst: bp::make_tuple
      Src: /src/libtorrent/bindings/python/src/converters.cpp:40,1
    - Dst: address
      Src: /src/libtorrent/bindings/python/src/converters.cpp:40,1
    - Dst: port
      Src: /src/libtorrent/bindings/python/src/converters.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - port
    - bp::make_tuple
    - address
    - incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(T const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:49,1
    - Dst: type_id<T>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: tuple_to_endpoint
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<T>
    linkageType: ''
    returnType: void
    signature: void tuple_to_endpoint()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:56,1
    - Dst: PyTuple_Size
      Src: /src/libtorrent/bindings/python/src/converters.cpp:57,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/converters.cpp:58,1
    - Dst: borrowed
      Src: /src/libtorrent/bindings/python/src/converters.cpp:58,1
    - Dst: PyTuple_GetItem
      Src: /src/libtorrent/bindings/python/src/converters.cpp:58,1
    - Dst: extract::check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:59,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/converters.cpp:60,1
    - Dst: borrowed
      Src: /src/libtorrent/bindings/python/src/converters.cpp:60,1
    - Dst: PyTuple_GetItem
      Src: /src/libtorrent/bindings/python/src/converters.cpp:60,1
    - Dst: extract::check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:61,1
    - Dst: lt::make_address
      Src: /src/libtorrent/bindings/python/src/converters.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - borrowed
    - object
    - extract::check
    - lt::make_address
    - PyTuple_Check
    - PyTuple_GetItem
    - PyTuple_Size
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::make_address
      Src: /src/libtorrent/bindings/python/src/converters.cpp:74,1
    - Dst: static_cast<std::string>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:75,1
    - Dst: extract<std::string>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:75,1
    - Dst: extract<std::uint16_t>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:75,1
    - Dst: T::T
      Src: /src/libtorrent/bindings/python/src/converters.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - lt::make_address
    - T::T
    - extract<std::string>
    - static_cast<std::string>
    - extract<std::uint16_t>
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:84,1
    - Dst: bp::make_tuple
      Src: /src/libtorrent/bindings/python/src/converters.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - bp::make_tuple
    - incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(const std::pair<T1, T2>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:93,1
    - Dst: Catch::Benchmark::Detail::stored_object
      Src: /src/libtorrent/bindings/python/src/converters.cpp:93,1
    - Dst: to_string
      Src: /src/libtorrent/bindings/python/src/converters.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - to_string
    - Catch::Benchmark::Detail::stored_object
    - incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(Addr const& addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:102,1
    - Dst: type_id<std::pair<T1, T2>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: tuple_to_pair
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<std::pair<T1, T2>>
    linkageType: ''
    returnType: void
    signature: void tuple_to_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:109,1
    - Dst: PyTuple_Size
      Src: /src/libtorrent/bindings/python/src/converters.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - PyTuple_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<T1>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:119,1
    - Dst: extract<T2>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:120,1
    - Dst: std::pair<T1, T2>::pair<T1, T2>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - extract<T1>
    - std::pair<T1, T2>::pair<T1, T2>
    - extract<T2>
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::string_view::data
      Src: /src/libtorrent/bindings/python/src/converters.cpp:129,1
    - Dst: lt::string_view::size
      Src: /src/libtorrent/bindings/python/src/converters.cpp:129,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:130,1
    - Dst: str::ptr
      Src: /src/libtorrent/bindings/python/src/converters.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - lt::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - lt::string_view::size
    - lt::string_view::data
    - incref
    - str::ptr
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(lt::string_view v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:138,1
    - Dst: type_id<lt::string_view>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: to_string_view
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<lt::string_view>
    linkageType: ''
    returnType: void
    signature: void to_string_view()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyString_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:158,1
    - Dst: PyString_AsString
      Src: /src/libtorrent/bindings/python/src/converters.cpp:161,1
    - Dst: PyString_Size
      Src: /src/libtorrent/bindings/python/src/converters.cpp:161,1
    - Dst: lt::string_view::string_view
      Src: /src/libtorrent/bindings/python/src/converters.cpp:160,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/libtorrent/bindings/python/src/converters.cpp:167,1
    - Dst: lt::string_view::string_view
      Src: /src/libtorrent/bindings/python/src/converters.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 170
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - lt::string_view::string_view
    - PyString_Size
    - PyString_Check
    - PyUnicode_AsUTF8AndSize
    - PyString_AsString
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:181,1
    - Dst: dict::ptr
      Src: /src/libtorrent/bindings/python/src/converters.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - Map
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - incref
    - dict::ptr
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(Map const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:190,1
    - Dst: type_id<Map>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: dict_to_map
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<Map>
    linkageType: ''
    returnType: void
    signature: void dict_to_map()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - PyDict_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict::keys
      Src: /src/libtorrent/bindings/python/src/converters.cpp:205,1
    - Dst: extract<T2>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:209,1
    - Dst: Map::Map
      Src: /src/libtorrent/bindings/python/src/converters.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 212
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - extract<T2>
    - Map::Map
    - dict::keys
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/bindings/python/src/converters.cpp:221,1
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/converters.cpp:223,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:225,1
    - Dst: list::ptr
      Src: /src/libtorrent/bindings/python/src/converters.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - list::append
    - size
    - incref
    - list::ptr
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:234,1
    - Dst: type_id<T>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: list_to_vector
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<T>
    linkageType: ''
    returnType: void
    signature: void list_to_vector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - PyList_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Size
      Src: /src/libtorrent/bindings/python/src/converters.cpp:250,1
    - Dst: T::reserve
      Src: /src/libtorrent/bindings/python/src/converters.cpp:251,1
    - Dst: T::push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:255,1
    - Dst: extract<typename T::value_type>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:255,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/converters.cpp:257,1
    - Dst: T::T
      Src: /src/libtorrent/bindings/python/src/converters.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - T::push_back
    - std::move
    - extract<typename T::value_type>
    - T::T
    - PyList_Size
    - T::reserve
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:266,1
    - Dst: type_id<T>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: list_to_bitfield
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<T>
    linkageType: ''
    returnType: void
    signature: void list_to_bitfield()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - PyList_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Size
      Src: /src/libtorrent/bindings/python/src/converters.cpp:282,1
    - Dst: T::resize
      Src: /src/libtorrent/bindings/python/src/converters.cpp:283,1
    - Dst: extract<bool>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:287,1
    - Dst: T::set_bit
      Src: /src/libtorrent/bindings/python/src/converters.cpp:287,1
    - Dst: T::clear_bit
      Src: /src/libtorrent/bindings/python/src/converters.cpp:288,1
    - Dst: std::move
      Src: /src/libtorrent/bindings/python/src/converters.cpp:290,1
    - Dst: T::T
      Src: /src/libtorrent/bindings/python/src/converters.cpp:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - std::move
    - T::set_bit
    - T::T
    - PyList_Size
    - T::resize
    - extract<bool>
    - T::clear_bit
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list::append
      Src: /src/libtorrent/bindings/python/src/converters.cpp:301,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:302,1
    - Dst: list::ptr
      Src: /src/libtorrent/bindings/python/src/converters.cpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - list::append
    - incref
    - list::ptr
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:314,1
    - Dst: object::ptr
      Src: /src/libtorrent/bindings/python/src/converters.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - object::ptr
    - incref
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:325,1
    - Dst: type_id<T>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: to_strong_typedef
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<T>
    linkageType: ''
    returnType: void
    signature: void to_strong_typedef()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - PyNumber_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<underlying_type>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:338,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/converters.cpp:338,1
    - Dst: borrowed
      Src: /src/libtorrent/bindings/python/src/converters.cpp:338,1
    - Dst: T::T
      Src: /src/libtorrent/bindings/python/src/converters.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - borrowed
    - object
    - T::T
    - extract<underlying_type>
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:349,1
    - Dst: type_id<T>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: to_enum_class
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<T>
    linkageType: ''
    returnType: void
    signature: void to_enum_class()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - PyNumber_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:362,1
    - Dst: static_cast<underlying_type>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:362,1
    - Dst: extract<underlying_type>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:362,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/converters.cpp:362,1
    - Dst: borrowed
      Src: /src/libtorrent/bindings/python/src/converters.cpp:362,1
    - Dst: T::T
      Src: /src/libtorrent/bindings/python/src/converters.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - borrowed
    - object
    - static_cast<underlying_type>
    - static_cast<T>
    - T::T
    - extract<underlying_type>
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<underlying_type>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:375,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:376,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/bindings/python/src/converters.cpp:376,1
    - Dst: incref
      Src: /src/libtorrent/bindings/python/src/converters.cpp:378,1
    - Dst: object::ptr
      Src: /src/libtorrent/bindings/python/src/converters.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: convert
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 8
    functionsReached:
    - static_cast<std::uint64_t>
    - incref
    - static_cast<underlying_type>
    - libtorrent::aux::max
    - object::ptr
    linkageType: ''
    returnType: PyObject
    signature: PyObject * convert(T const v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_push_back
      Src: /src/libtorrent/bindings/python/src/converters.cpp:389,1
    - Dst: type_id<T>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: to_bitfield_flag
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - node_push_back
    - type_id<T>
    linkageType: ''
    returnType: void
    signature: void to_bitfield_flag()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Check
      Src: /src/libtorrent/bindings/python/src/converters.cpp:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: convertible
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 0
    functionsReached:
    - PyNumber_Check
    linkageType: ''
    returnType: void
    signature: void * convertible(PyObject* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract<underlying_type>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:402,1
    - Dst: object
      Src: /src/libtorrent/bindings/python/src/converters.cpp:402,1
    - Dst: borrowed
      Src: /src/libtorrent/bindings/python/src/converters.cpp:402,1
    - Dst: T::T
      Src: /src/libtorrent/bindings/python/src/converters.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - data
    argTypes:
    - PyObject*
    - converter::rvalue_from_python_stage1_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: construct
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 20
    functionsReached:
    - borrowed
    - object
    - T::T
    - extract<underlying_type>
    linkageType: ''
    returnType: void
    signature: void construct(PyObject* x, converter::rvalue_from_python_stage1_data*
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_python_converter<std::pair<int, int>, pair_to_tuple<int, int>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:409,1
    - Dst: to_python_converter<std::pair<lt::piece_index_t, lt::download_priority_t>,
        pair_to_tuple<lt::piece_index_t, lt::download_priority_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:410,1
    - Dst: to_python_converter<lt::tcp::endpoint, endpoint_to_tuple<lt::tcp::endpoint>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:411,1
    - Dst: to_python_converter<lt::udp::endpoint, endpoint_to_tuple<lt::udp::endpoint>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:412,1
    - Dst: to_python_converter<lt::address, address_to_tuple<lt::address>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:413,1
    - Dst: to_python_converter<std::pair<std::string, int>, pair_to_tuple<std::string,
        int>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:414,1
    - Dst: to_python_converter<std::pair<std::string, std::string>, pair_to_tuple<std::string,
        std::string>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:415,1
    - Dst: to_python_converter<std::vector<lt::stats_metric>, vector_to_list<std::vector<lt::stats_metric>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:417,1
    - Dst: to_python_converter<std::vector<lt::open_file_state>, vector_to_list<std::vector<lt::open_file_state>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:418,1
    - Dst: to_python_converter<std::vector<lt::sha1_hash>, vector_to_list<std::vector<lt::sha1_hash>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:419,1
    - Dst: to_python_converter<std::vector<std::string>, vector_to_list<std::vector<std::string>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:420,1
    - Dst: to_python_converter<std::vector<int>, vector_to_list<std::vector<int>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:421,1
    - Dst: to_python_converter<std::vector<lt::download_priority_t>, vector_to_list<std::vector<lt::download_priority_t>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:422,1
    - Dst: to_python_converter<std::vector<lt::tcp::endpoint>, vector_to_list<std::vector<lt::tcp::endpoint>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:423,1
    - Dst: to_python_converter<std::vector<lt::udp::endpoint>, vector_to_list<std::vector<lt::udp::endpoint>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:424,1
    - Dst: to_python_converter<std::vector<std::pair<std::string, int>>, vector_to_list<std::vector<std::pair<std::string,
        int>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:425,1
    - Dst: to_python_converter<std::vector<std::pair<std::string, std::string>>, vector_to_list<std::vector<std::pair<std::string,
        std::string>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:426,1
    - Dst: to_python_converter<lt::typed_bitfield<lt::piece_index_t>, bitfield_to_list<lt::typed_bitfield<lt::piece_index_t>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:428,1
    - Dst: to_python_converter<lt::bitfield, bitfield_to_list<lt::bitfield>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:429,1
    - Dst: to_python_converter<lt::queue_position_t, from_strong_typedef<lt::queue_position_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:431,1
    - Dst: to_python_converter<lt::piece_index_t, from_strong_typedef<lt::piece_index_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:432,1
    - Dst: to_python_converter<lt::download_priority_t, from_strong_typedef<lt::download_priority_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:433,1
    - Dst: to_python_converter<lt::file_index_t, from_strong_typedef<lt::file_index_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:434,1
    - Dst: to_python_converter<lt::port_mapping_t, from_strong_typedef<lt::port_mapping_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:435,1
    - Dst: to_python_converter<lt::peer_class_t, from_strong_typedef<lt::peer_class_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:436,1
    - Dst: to_python_converter<lt::connection_type_t, from_bitfield_flag<lt::connection_type_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:437,1
    - Dst: to_python_converter<lt::torrent_flags_t, from_bitfield_flag<lt::torrent_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:438,1
    - Dst: to_python_converter<lt::peer_flags_t, from_bitfield_flag<lt::peer_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:439,1
    - Dst: to_python_converter<lt::peer_source_flags_t, from_bitfield_flag<lt::peer_source_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:440,1
    - Dst: to_python_converter<lt::bandwidth_state_flags_t, from_bitfield_flag<lt::bandwidth_state_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:441,1
    - Dst: to_python_converter<lt::file_open_mode_t, from_bitfield_flag<lt::file_open_mode_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:442,1
    - Dst: to_python_converter<lt::picker_flags_t, from_bitfield_flag<lt::picker_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:443,1
    - Dst: to_python_converter<lt::status_flags_t, from_bitfield_flag<lt::status_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:444,1
    - Dst: to_python_converter<lt::alert_category_t, from_bitfield_flag<lt::alert_category_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:445,1
    - Dst: to_python_converter<lt::resume_data_flags_t, from_bitfield_flag<lt::resume_data_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:446,1
    - Dst: to_python_converter<lt::add_piece_flags_t, from_bitfield_flag<lt::add_piece_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:447,1
    - Dst: to_python_converter<lt::pause_flags_t, from_bitfield_flag<lt::pause_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:448,1
    - Dst: to_python_converter<lt::deadline_flags_t, from_bitfield_flag<lt::deadline_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:449,1
    - Dst: to_python_converter<lt::save_state_flags_t, from_bitfield_flag<lt::save_state_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:450,1
    - Dst: to_python_converter<lt::remove_flags_t, from_bitfield_flag<lt::remove_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:451,1
    - Dst: to_python_converter<lt::reopen_network_flags_t, from_bitfield_flag<lt::reopen_network_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:452,1
    - Dst: to_python_converter<lt::file_flags_t, from_bitfield_flag<lt::file_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:453,1
    - Dst: to_python_converter<lt::create_flags_t, from_bitfield_flag<lt::create_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:454,1
    - Dst: to_python_converter<lt::pex_flags_t, from_bitfield_flag<lt::pex_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:455,1
    - Dst: to_python_converter<lt::reannounce_flags_t, from_bitfield_flag<lt::reannounce_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:456,1
    - Dst: to_python_converter<lt::dht::announce_flags_t, from_bitfield_flag<lt::dht::announce_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:457,1
    - Dst: to_python_converter<lt::file_progress_flags_t, from_bitfield_flag<lt::file_progress_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:458,1
    - Dst: to_python_converter<lt::write_torrent_flags_t, from_bitfield_flag<lt::write_torrent_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:459,1
    - Dst: to_python_converter<lt::string_view, from_string_view>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:460,1
    - Dst: "to_python_converter<lt::aux::noexcept_movable<lt::address>, address_to_tuple<\n
        \       lt::aux::noexcept_movable<lt::address>>>"
      Src: /src/libtorrent/bindings/python/src/converters.cpp:463,1
    - Dst: "to_python_converter<lt::aux::noexcept_movable<lt::tcp::endpoint>, endpoint_to_tuple<\n
        \       lt::aux::noexcept_movable<lt::tcp::endpoint>>>"
      Src: /src/libtorrent/bindings/python/src/converters.cpp:465,1
    - Dst: "to_python_converter<lt::aux::noexcept_movable<lt::udp::endpoint>, endpoint_to_tuple<\n
        \       lt::aux::noexcept_movable<lt::udp::endpoint>>>"
      Src: /src/libtorrent/bindings/python/src/converters.cpp:467,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<lt::stats_metric>>,
        vector_to_list<lt::aux::noexcept_movable<std::vector<lt::stats_metric>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:469,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<lt::open_file_state>>,
        vector_to_list<lt::aux::noexcept_movable<std::vector<lt::open_file_state>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:470,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<lt::sha1_hash>>,
        vector_to_list<lt::aux::noexcept_movable<std::vector<lt::sha1_hash>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:471,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<std::string>>,
        vector_to_list<lt::aux::noexcept_movable<std::vector<std::string>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:472,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<int>>, vector_to_list<lt::aux::noexcept_movable<std::vector<int>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:473,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<lt::download_priority_t>>,
        vector_to_list<lt::aux::noexcept_movable<std::vector<lt::download_priority_t>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:474,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<lt::tcp::endpoint>>,
        vector_to_list<lt::aux::noexcept_movable<std::vector<lt::tcp::endpoint>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:475,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<lt::udp::endpoint>>,
        vector_to_list<lt::aux::noexcept_movable<std::vector<lt::udp::endpoint>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:476,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<std::pair<std::string,
        int>>>, vector_to_list<lt::aux::noexcept_movable<std::vector<std::pair<std::string,
        int>>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:477,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::map<lt::piece_index_t,
        lt::bitfield>>, map_to_dict<lt::aux::noexcept_movable<std::map<lt::piece_index_t,
        lt::bitfield>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:478,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::map<lt::file_index_t,
        std::string>>, map_to_dict<lt::aux::noexcept_movable<std::map<lt::file_index_t,
        std::string>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:479,1
    - Dst: to_python_converter<std::map<lt::file_index_t, std::string>, map_to_dict<std::map<lt::file_index_t,
        std::string>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:480,1
    - Dst: to_python_converter<lt::session_flags_t, from_bitfield_flag<lt::session_flags_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:481,1
    - Dst: to_python_converter<lt::aux::noexcept_movable<std::vector<char>>, vector_to_list<lt::aux::noexcept_movable<std::vector<char>>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:484,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:485,1
    - Dst: to_python_converter<std::vector<lt::dht_lookup>, vector_to_list<std::vector<lt::dht_lookup>>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:488,1
    - Dst: tuple_to_pair
      Src: /src/libtorrent/bindings/python/src/converters.cpp:493,1
    - Dst: tuple_to_pair
      Src: /src/libtorrent/bindings/python/src/converters.cpp:494,1
    - Dst: tuple_to_endpoint
      Src: /src/libtorrent/bindings/python/src/converters.cpp:495,1
    - Dst: tuple_to_endpoint
      Src: /src/libtorrent/bindings/python/src/converters.cpp:496,1
    - Dst: tuple_to_pair
      Src: /src/libtorrent/bindings/python/src/converters.cpp:497,1
    - Dst: dict_to_map
      Src: /src/libtorrent/bindings/python/src/converters.cpp:498,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:499,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:500,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:501,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:502,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:503,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:504,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:505,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:508,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:509,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:510,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:511,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:512,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:513,1
    - Dst: list_to_vector
      Src: /src/libtorrent/bindings/python/src/converters.cpp:514,1
    - Dst: dict_to_map
      Src: /src/libtorrent/bindings/python/src/converters.cpp:515,1
    - Dst: dict_to_map
      Src: /src/libtorrent/bindings/python/src/converters.cpp:516,1
    - Dst: list_to_bitfield
      Src: /src/libtorrent/bindings/python/src/converters.cpp:519,1
    - Dst: list_to_bitfield
      Src: /src/libtorrent/bindings/python/src/converters.cpp:520,1
    - Dst: bitfield_to_list<lt::typed_bitfield<lt::piece_index_t>>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:522,1
    - Dst: bitfield_to_list<lt::bitfield>
      Src: /src/libtorrent/bindings/python/src/converters.cpp:523,1
    - Dst: to_strong_typedef
      Src: /src/libtorrent/bindings/python/src/converters.cpp:525,1
    - Dst: to_strong_typedef
      Src: /src/libtorrent/bindings/python/src/converters.cpp:526,1
    - Dst: to_strong_typedef
      Src: /src/libtorrent/bindings/python/src/converters.cpp:527,1
    - Dst: to_strong_typedef
      Src: /src/libtorrent/bindings/python/src/converters.cpp:528,1
    - Dst: to_strong_typedef
      Src: /src/libtorrent/bindings/python/src/converters.cpp:529,1
    - Dst: to_strong_typedef
      Src: /src/libtorrent/bindings/python/src/converters.cpp:530,1
    - Dst: to_enum_class
      Src: /src/libtorrent/bindings/python/src/converters.cpp:531,1
    - Dst: to_enum_class
      Src: /src/libtorrent/bindings/python/src/converters.cpp:533,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:535,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:536,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:537,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:538,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:539,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:540,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:541,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:542,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:543,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:544,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:545,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:546,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:547,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:548,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:549,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:550,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:551,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:552,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:553,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:554,1
    - Dst: to_string_view
      Src: /src/libtorrent/bindings/python/src/converters.cpp:555,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:556,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:557,1
    - Dst: to_bitfield_flag
      Src: /src/libtorrent/bindings/python/src/converters.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 127
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 559
    functionName: bind_converters
    functionSourceFile: /src/libtorrent/bindings/python/src/converters.cpp
    functionUses: 1
    functionsReached:
    - to_python_converter<lt::aux::noexcept_movable<std::vector<int>>, vector_to_list<lt::aux::noexcept_movable<std::vector<int>>>>
    - to_python_converter<lt::download_priority_t, from_strong_typedef<lt::download_priority_t>>
    - dict_to_map
    - to_python_converter<lt::aux::noexcept_movable<std::vector<std::string>>, vector_to_list<lt::aux::noexcept_movable<std::vector<std::string>>>>
    - to_python_converter<lt::aux::noexcept_movable<std::vector<std::pair<std::string,
      int>>>, vector_to_list<lt::aux::noexcept_movable<std::vector<std::pair<std::string,
      int>>>>>
    - to_python_converter<lt::create_flags_t, from_bitfield_flag<lt::create_flags_t>>
    - to_python_converter<lt::file_progress_flags_t, from_bitfield_flag<lt::file_progress_flags_t>>
    - to_python_converter<lt::alert_category_t, from_bitfield_flag<lt::alert_category_t>>
    - to_string_view
    - to_python_converter<lt::file_index_t, from_strong_typedef<lt::file_index_t>>
    - bitfield_to_list<lt::bitfield>
    - to_python_converter<lt::aux::noexcept_movable<std::vector<lt::udp::endpoint>>,
      vector_to_list<lt::aux::noexcept_movable<std::vector<lt::udp::endpoint>>>>
    - to_python_converter<lt::reannounce_flags_t, from_bitfield_flag<lt::reannounce_flags_t>>
    - to_python_converter<lt::file_flags_t, from_bitfield_flag<lt::file_flags_t>>
    - to_python_converter<lt::aux::noexcept_movable<std::vector<lt::download_priority_t>>,
      vector_to_list<lt::aux::noexcept_movable<std::vector<lt::download_priority_t>>>>
    - "to_python_converter<lt::aux::noexcept_movable<lt::udp::endpoint>, endpoint_to_tuple<\n
      \       lt::aux::noexcept_movable<lt::udp::endpoint>>>"
    - to_python_converter<lt::status_flags_t, from_bitfield_flag<lt::status_flags_t>>
    - to_python_converter<lt::port_mapping_t, from_strong_typedef<lt::port_mapping_t>>
    - to_python_converter<lt::write_torrent_flags_t, from_bitfield_flag<lt::write_torrent_flags_t>>
    - to_python_converter<lt::aux::noexcept_movable<std::vector<char>>, vector_to_list<lt::aux::noexcept_movable<std::vector<char>>>>
    - to_python_converter<lt::connection_type_t, from_bitfield_flag<lt::connection_type_t>>
    - to_python_converter<lt::piece_index_t, from_strong_typedef<lt::piece_index_t>>
    - to_python_converter<lt::picker_flags_t, from_bitfield_flag<lt::picker_flags_t>>
    - to_python_converter<lt::resume_data_flags_t, from_bitfield_flag<lt::resume_data_flags_t>>
    - list_to_vector
    - to_python_converter<lt::torrent_flags_t, from_bitfield_flag<lt::torrent_flags_t>>
    - to_bitfield_flag
    - to_python_converter<lt::aux::noexcept_movable<std::vector<lt::sha1_hash>>, vector_to_list<lt::aux::noexcept_movable<std::vector<lt::sha1_hash>>>>
    - to_python_converter<std::vector<int>, vector_to_list<std::vector<int>>>
    - to_python_converter<lt::bandwidth_state_flags_t, from_bitfield_flag<lt::bandwidth_state_flags_t>>
    - tuple_to_endpoint
    - to_python_converter<lt::peer_flags_t, from_bitfield_flag<lt::peer_flags_t>>
    - to_python_converter<lt::file_open_mode_t, from_bitfield_flag<lt::file_open_mode_t>>
    - to_python_converter<lt::udp::endpoint, endpoint_to_tuple<lt::udp::endpoint>>
    - to_python_converter<std::vector<lt::dht_lookup>, vector_to_list<std::vector<lt::dht_lookup>>>
    - to_python_converter<lt::add_piece_flags_t, from_bitfield_flag<lt::add_piece_flags_t>>
    - to_python_converter<std::pair<lt::piece_index_t, lt::download_priority_t>, pair_to_tuple<lt::piece_index_t,
      lt::download_priority_t>>
    - to_python_converter<lt::deadline_flags_t, from_bitfield_flag<lt::deadline_flags_t>>
    - to_python_converter<std::vector<lt::udp::endpoint>, vector_to_list<std::vector<lt::udp::endpoint>>>
    - to_enum_class
    - to_python_converter<std::vector<lt::stats_metric>, vector_to_list<std::vector<lt::stats_metric>>>
    - to_python_converter<lt::typed_bitfield<lt::piece_index_t>, bitfield_to_list<lt::typed_bitfield<lt::piece_index_t>>>
    - to_python_converter<lt::session_flags_t, from_bitfield_flag<lt::session_flags_t>>
    - to_python_converter<lt::pex_flags_t, from_bitfield_flag<lt::pex_flags_t>>
    - bitfield_to_list<lt::typed_bitfield<lt::piece_index_t>>
    - to_python_converter<std::vector<lt::open_file_state>, vector_to_list<std::vector<lt::open_file_state>>>
    - to_python_converter<lt::save_state_flags_t, from_bitfield_flag<lt::save_state_flags_t>>
    - to_python_converter<std::map<lt::file_index_t, std::string>, map_to_dict<std::map<lt::file_index_t,
      std::string>>>
    - to_python_converter<lt::bitfield, bitfield_to_list<lt::bitfield>>
    - to_python_converter<std::pair<std::string, std::string>, pair_to_tuple<std::string,
      std::string>>
    - to_python_converter<lt::peer_class_t, from_strong_typedef<lt::peer_class_t>>
    - to_python_converter<std::pair<int, int>, pair_to_tuple<int, int>>
    - to_python_converter<std::vector<std::pair<std::string, int>>, vector_to_list<std::vector<std::pair<std::string,
      int>>>>
    - to_python_converter<std::pair<std::string, int>, pair_to_tuple<std::string,
      int>>
    - to_strong_typedef
    - to_python_converter<lt::dht::announce_flags_t, from_bitfield_flag<lt::dht::announce_flags_t>>
    - to_python_converter<lt::string_view, from_string_view>
    - to_python_converter<lt::address, address_to_tuple<lt::address>>
    - to_python_converter<lt::peer_source_flags_t, from_bitfield_flag<lt::peer_source_flags_t>>
    - to_python_converter<lt::aux::noexcept_movable<std::vector<lt::tcp::endpoint>>,
      vector_to_list<lt::aux::noexcept_movable<std::vector<lt::tcp::endpoint>>>>
    - to_python_converter<std::vector<lt::download_priority_t>, vector_to_list<std::vector<lt::download_priority_t>>>
    - to_python_converter<lt::aux::noexcept_movable<std::map<lt::piece_index_t, lt::bitfield>>,
      map_to_dict<lt::aux::noexcept_movable<std::map<lt::piece_index_t, lt::bitfield>>>>
    - to_python_converter<std::vector<lt::sha1_hash>, vector_to_list<std::vector<lt::sha1_hash>>>
    - to_python_converter<lt::reopen_network_flags_t, from_bitfield_flag<lt::reopen_network_flags_t>>
    - to_python_converter<lt::aux::noexcept_movable<std::map<lt::file_index_t, std::string>>,
      map_to_dict<lt::aux::noexcept_movable<std::map<lt::file_index_t, std::string>>>>
    - to_python_converter<std::vector<std::string>, vector_to_list<std::vector<std::string>>>
    - to_python_converter<std::vector<std::pair<std::string, std::string>>, vector_to_list<std::vector<std::pair<std::string,
      std::string>>>>
    - to_python_converter<lt::aux::noexcept_movable<std::vector<lt::open_file_state>>,
      vector_to_list<lt::aux::noexcept_movable<std::vector<lt::open_file_state>>>>
    - "to_python_converter<lt::aux::noexcept_movable<lt::tcp::endpoint>, endpoint_to_tuple<\n
      \       lt::aux::noexcept_movable<lt::tcp::endpoint>>>"
    - to_python_converter<lt::aux::noexcept_movable<std::vector<lt::stats_metric>>,
      vector_to_list<lt::aux::noexcept_movable<std::vector<lt::stats_metric>>>>
    - to_python_converter<lt::queue_position_t, from_strong_typedef<lt::queue_position_t>>
    - tuple_to_pair
    - to_python_converter<lt::pause_flags_t, from_bitfield_flag<lt::pause_flags_t>>
    - to_python_converter<lt::tcp::endpoint, endpoint_to_tuple<lt::tcp::endpoint>>
    - list_to_bitfield
    - to_python_converter<std::vector<lt::tcp::endpoint>, vector_to_list<std::vector<lt::tcp::endpoint>>>
    - "to_python_converter<lt::aux::noexcept_movable<lt::address>, address_to_tuple<\n
      \       lt::aux::noexcept_movable<lt::address>>>"
    - to_python_converter<lt::remove_flags_t, from_bitfield_flag<lt::remove_flags_t>>
    linkageType: ''
    returnType: void
    signature: void bind_converters()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_hash
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:26,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' c'
    - p
    - ' b'
    argTypes:
    - create_torrent
    - piece_index_t
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: set_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 43
    functionsReached:
    - sha1_hash
    - set_hash
    linkageType: ''
    returnType: void
    signature: void set_hash(create_torrent& c, piece_index_t p, bytes const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_file_hash
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:32,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' c'
    - f
    - ' b'
    argTypes:
    - create_torrent
    - file_index_t
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: set_file_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 1
    functionsReached:
    - set_file_hash
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void set_file_hash(create_torrent& c, file_index_t f, bytes const&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_piece_hashes
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:40,1
    - Dst: std::function<void(piece_index_t)>
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:40,1
    - Dst: cb
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' c'
    - ' p'
    - cb
    argTypes:
    - create_torrent
    - std::string
    - boost::python::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: set_piece_hashes_callback
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::function<void(piece_index_t)>
    - set_piece_hashes
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes_callback(create_torrent& c, std::string const&
      p\n        , boost::python::object cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_piece_hashes
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:48,1
    - Dst: cb
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' c'
    - ' p'
    - cb
    argTypes:
    - create_torrent
    - std::string
    - boost::python::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: set_piece_hashes_callback
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - cb
    - set_piece_hashes
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes_callback(create_torrent& c, std::string const&
      p\n        , boost::python::object cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_piece_hashes
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' c'
    - ' s'
    argTypes:
    - create_torrent
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: set_piece_hashes0
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - set_piece_hashes
    linkageType: ''
    returnType: void
    signature: void set_piece_hashes0(create_torrent& c, std::string const & s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_node
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:60,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ct'
    - ' addr'
    - port
    argTypes:
    - create_torrent
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: add_node
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 38
    functionsReached:
    - add_node
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void add_node(create_torrent& ct, std::string const& addr, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:66,1
    - Dst: add_file
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ct'
    - ' fe'
    argTypes:
    - file_storage
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: add_file_deprecated
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - add_file
    linkageType: ''
    returnType: void
    signature: void add_file_deprecated(file_storage& ct, file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' fs'
    - i
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: FileIter
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileIter(file_storage const& fs, file_index_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: FileIter
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileIter(FileIter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: FileIter
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: lt::file_entry
    signature: lt::file_entry operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: operator++()
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileIter
    signature: FileIter operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileIter
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: operator++(int)
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - FileIter
    linkageType: ''
    returnType: FileIter
    signature: FileIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - FileIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: operator==(FileIter const& rhs) const
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(FileIter const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - FileIter
    assertStmts:
    - condition: (rhs.m_fs == m_fs)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/libtorrent/bindings/python/src/create_torrent.cpp
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: operator-(FileIter const& rhs) const
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int operator-(FileIter const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: '& operator=(FileIter const&)'
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileIter
    signature: FileIter & operator=(FileIter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:104,1
    - Dst: FileIter
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:105,1
    - Dst: file_index_t
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: begin_files
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - file_index_t
    - FileIter
    linkageType: ''
    returnType: FileIter
    signature: FileIter begin_files(file_storage const& self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileIter
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:109,1
    - Dst: end_file
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: end_files
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - end_file
    - FileIter
    linkageType: ''
    returnType: FileIter
    signature: FileIter end_files(file_storage const& self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_files
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:115,1
    - Dst: cb
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' fs'
    - ' file'
    - cb
    - flags
    argTypes:
    - file_storage
    - std::string
    - boost::python::object
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: add_files_callback
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - cb
    - add_files
    linkageType: ''
    returnType: void
    signature: "void add_files_callback(file_storage& fs, std::string const& file\n
      \      , boost::python::object cb, create_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_file
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' fs'
    - ' file'
    - size
    - flags
    - md
    - link
    argTypes:
    - file_storage
    - std::string
    - std::int64_t
    - file_flags_t
    - std::time_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: add_file
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 162
    functionsReached:
    - add_file
    linkageType: ''
    returnType: void
    signature: "void add_file(file_storage& fs, std::string const& file, std::int64_t
      size\n       , file_flags_t const flags, std::time_t md, std::string link)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_tracker
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ct'
    - url
    - tier
    argTypes:
    - create_torrent
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: add_tracker
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 16
    functionsReached:
    - add_tracker
    linkageType: ''
    returnType: void
    signature: void add_tracker(create_torrent& ct, std::string url, int tier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_hash
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:26,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' c'
    - p
    - ' b'
    argTypes:
    - create_torrent
    - piece_index_t
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: set_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 44
    functionsReached:
    - sha1_hash
    - set_hash
    linkageType: ''
    returnType: void
    signature: void set_hash(create_torrent& c, piece_index_t p, bytes const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_file_hash
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:32,1
    - Dst: sha1_hash
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' c'
    - f
    - ' b'
    argTypes:
    - create_torrent
    - file_index_t
    - bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: set_file_hash
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 2
    functionsReached:
    - set_file_hash
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void set_file_hash(create_torrent& c, file_index_t f, bytes const&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_piece_hashes
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:40,1
    - Dst: std::function<void(piece_index_t)>
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:40,1
    - Dst: cb
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' c'
    - ' p'
    - cb
    argTypes:
    - create_torrent
    - std::string
    - boost::python::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: set_piece_hashes_callback
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - cb
    - std::function<void(piece_index_t)>
    - set_piece_hashes
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes_callback(create_torrent& c, std::string const&
      p\n        , boost::python::object cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_piece_hashes
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:48,1
    - Dst: cb
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' c'
    - ' p'
    - cb
    argTypes:
    - create_torrent
    - std::string
    - boost::python::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: set_piece_hashes_callback
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - cb
    - set_piece_hashes
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes_callback(create_torrent& c, std::string const&
      p\n        , boost::python::object cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_piece_hashes
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' c'
    - ' s'
    argTypes:
    - create_torrent
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: set_piece_hashes0
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - set_piece_hashes
    linkageType: ''
    returnType: void
    signature: void set_piece_hashes0(create_torrent& c, std::string const & s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_node
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:60,1
    - Dst: std::make_pair
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ct'
    - ' addr'
    - port
    argTypes:
    - create_torrent
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: add_node
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 39
    functionsReached:
    - add_node
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void add_node(create_torrent& ct, std::string const& addr, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:66,1
    - Dst: add_file
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ct'
    - ' fe'
    argTypes:
    - file_storage
    - file_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: add_file_deprecated
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - add_file
    linkageType: ''
    returnType: void
    signature: void add_file_deprecated(file_storage& ct, file_entry const& fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' fs'
    - i
    argTypes:
    - file_storage
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: FileIter
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileIter(file_storage const& fs, file_index_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: FileIter
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileIter(FileIter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: FileIter
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileIter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: lt::file_entry
    signature: lt::file_entry operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: operator++()
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileIter
    signature: FileIter operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileIter
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: operator++(int)
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - FileIter
    linkageType: ''
    returnType: FileIter
    signature: FileIter operator++(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - FileIter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: operator==(FileIter const& rhs) const
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(FileIter const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - FileIter
    assertStmts:
    - condition: (rhs.m_fs == m_fs)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/libtorrent/bindings/python/src/create_torrent.cpp
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: operator-(FileIter const& rhs) const
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int operator-(FileIter const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: '& operator=(FileIter const&)'
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileIter
    signature: FileIter & operator=(FileIter const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_deprecated
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:104,1
    - Dst: FileIter
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:105,1
    - Dst: file_index_t
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: begin_files
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - python_deprecated
    - file_index_t
    - FileIter
    linkageType: ''
    returnType: FileIter
    signature: FileIter begin_files(file_storage const& self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileIter
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:109,1
    - Dst: end_file
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' self'
    argTypes:
    - file_storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: end_files
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - end_file
    - FileIter
    linkageType: ''
    returnType: FileIter
    signature: FileIter end_files(file_storage const& self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_files
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:115,1
    - Dst: cb
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' fs'
    - ' file'
    - cb
    - flags
    argTypes:
    - file_storage
    - std::string
    - boost::python::object
    - create_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: add_files_callback
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 0
    functionsReached:
    - cb
    - add_files
    linkageType: ''
    returnType: void
    signature: "void add_files_callback(file_storage& fs, std::string const& file\n
      \      , boost::python::object cb, create_flags_t const flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_file
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' fs'
    - ' file'
    - size
    - flags
    - md
    - link
    argTypes:
    - file_storage
    - std::string
    - std::int64_t
    - file_flags_t
    - std::time_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: add_file
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 164
    functionsReached:
    - add_file
    linkageType: ''
    returnType: void
    signature: "void add_file(file_storage& fs, std::string const& file, std::int64_t
      size\n       , file_flags_t const flags, std::time_t md, std::string link)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_tracker
      Src: /src/libtorrent/bindings/python/src/create_torrent.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ct'
    - url
    - tier
    argTypes:
    - create_torrent
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: add_tracker
    functionSourceFile: /src/libtorrent/bindings/python/src/create_torrent.cpp
    functionUses: 17
    functionsReached:
    - add_tracker
    linkageType: ''
    returnType: void
    signature: void add_tracker(create_torrent& ct, std::string url, int tier)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fstream::seekg
      Src: /src/libtorrent/fuzzers/main.cpp:48,1
    - Dst: std::fstream::tellg
      Src: /src/libtorrent/fuzzers/main.cpp:49,1
    - Dst: std::fstream::seekg
      Src: /src/libtorrent/fuzzers/main.cpp:50,1
    - Dst: std::fstream::read
      Src: /src/libtorrent/fuzzers/main.cpp:52,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/fuzzers/main.cpp:52,1
    - Dst: std::vector::data
      Src: /src/libtorrent/fuzzers/main.cpp:52,1
    - Dst: std::vector::size
      Src: /src/libtorrent/fuzzers/main.cpp:52,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/libtorrent/fuzzers/main.cpp:54,1
    - Dst: std::vector::data
      Src: /src/libtorrent/fuzzers/main.cpp:54,1
    - Dst: std::vector::size
      Src: /src/libtorrent/fuzzers/main.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: main
    functionSourceFile: /src/libtorrent/fuzzers/main.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - reinterpret_cast<char*>
    - LLVMFuzzerTestOneInput
    - std::fstream::read
    - std::fstream::seekg
    - std::fstream::tellg
    linkageType: ''
    returnType: int
    signature: int main(int const argc, char const** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::escape_path
      Src: /src/libtorrent/fuzzers/src/escape_path.cpp:37,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/escape_path.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/escape_path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::escape_path
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::unescape_string
      Src: /src/libtorrent/fuzzers/src/escape_string.cpp:37,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/escape_string.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/escape_string.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::unescape_string
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_idna
      Src: /src/libtorrent/fuzzers/src/idna.cpp:40,1
    - Dst: to_string_view
      Src: /src/libtorrent/fuzzers/src/idna.cpp:40,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/idna.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - std::uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/idna.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char const*>
    - libtorrent::is_idna
    - to_string_view
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(std::uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt::file_storage::add_file
      Src: /src/libtorrent/fuzzers/src/file_storage_add_file.cpp:40,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/file_storage_add_file.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/file_storage_add_file.cpp
    functionUses: 1
    functionsReached:
    - lt::file_storage::add_file
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_params::read_session_params
      Src: /src/libtorrent/fuzzers/src/session_params.cpp:39,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/session_params.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/session_params.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::session_params::read_session_params
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_utf8_codepoint
      Src: /src/libtorrent/fuzzers/src/utf8_codepoint.cpp:40,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/utf8_codepoint.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - std::uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/utf8_codepoint.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::parse_utf8_codepoint
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(std::uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_to_native
      Src: /src/libtorrent/fuzzers/src/convert_to_native.cpp:37,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/convert_to_native.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/convert_to_native.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::convert_to_native
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_resume_data
      Src: /src/libtorrent/fuzzers/src/resume_data.cpp:41,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/resume_data.cpp:41,1
    - Dst: write_resume_data_buf
      Src: /src/libtorrent/fuzzers/src/resume_data.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/resume_data.cpp
    functionUses: 1
    functionsReached:
    - write_resume_data_buf
    - libtorrent::read_resume_data
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:58,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:59,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:60,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:61,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:62,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:63,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:66,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:68,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:74,1
    - Dst: settings_pack::set_int
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:75,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:78,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:79,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:80,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:81,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:82,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:83,1
    - Dst: settings_pack::set_bool
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:84,1
    - Dst: settings_pack::set_str
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:87,1
    - Dst: std::unique_ptr<session>
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:89,1
    - Dst: lt::session::session
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:89,1
    - Dst: std::int64_t
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:94,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:95,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:99,1
    - Dst: create_torrent::set_hash
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:100,1
    - Dst: sha1_hash
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:100,1
    - Dst: file_storage::file_range
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:102,1
    - Dst: file_storage::file_piece_range
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:103,1
    - Dst: create_torrent::set_hash2
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:104,1
    - Dst: sha256_hash
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:104,1
    - Dst: bencode
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:107,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:107,1
    - Dst: create_torrent::generate
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:107,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:108,1
    - Dst: auto::info_hashes
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:111,1
    - Dst: std::move
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:115,1
    - Dst: add_torrent
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:118,1
    - Dst: std::move
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:118,1
    - Dst: time_now
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:121,1
    - Dst: seconds
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:121,1
    - Dst: time_now
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:126,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:129,1
    - Dst: pop_alerts
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:130,1
    - Dst: message
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:134,1
    - Dst: alert_cast<listen_succeeded_alert>
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:135,1
    - Dst: alert_cast<torrent_resumed_alert>
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:143,1
    - Dst: std::atexit
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:153,1
    - Dst: reset
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:153,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 156
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libtorrent/fuzzers/src/peer_conn.cpp
    functionUses: 0
    functionsReached:
    - auto::info_hashes
    - alert_cast<torrent_resumed_alert>
    - sha256_hash
    - std::move
    - alert_cast<listen_succeeded_alert>
    - seconds
    - file_storage::file_piece_range
    - add_torrent
    - std::make_shared<torrent_info>
    - reset
    - file_storage::add_file
    - message
    - settings_pack::set_bool
    - sha1_hash
    - create_torrent::generate
    - time_now
    - create_torrent::set_hash
    - std::unique_ptr<session>
    - lt::session::session
    - create_torrent::set_hash2
    - file_storage::file_range
    - bencode
    - file_storage::piece_range
    - std::int64_t
    - wait_for_alert
    - settings_pack::set_str
    - std::back_inserter
    - std::atexit
    - settings_pack::set_int
    - pop_alerts
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time_now
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:163,1
    - Dst: error_code::clear
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:169,1
    - Dst: tcp::socket::connect
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:171,1
    - Dst: local_endpoint
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:171,1
    - Dst: make_address
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:171,1
    - Dst: std::memcpy
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:177,1
    - Dst: std::vector::data
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:177,1
    - Dst: std::memcpy
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:178,1
    - Dst: std::vector::data
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:178,1
    - Dst: std::memcpy
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:179,1
    - Dst: std::vector::data
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:179,1
    - Dst: get_best
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:179,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:180,1
    - Dst: std::vector::data
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:180,1
    - Dst: std::memcpy
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:183,1
    - Dst: std::vector::data
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:183,1
    - Dst: write
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:189,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:189,1
    - Dst: tcp::socket::close
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:191,1
    - Dst: time_now
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:195,1
    - Dst: seconds
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:195,1
    - Dst: time_now
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:199,1
    - Dst: wait_for_alert
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:202,1
    - Dst: pop_alerts
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:203,1
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:208,1
    - Dst: timestamp
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:208,1
    - Dst: message
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:209,1
    - Dst: alert_cast<peer_error_alert>
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:211,1
    - Dst: alert_cast<peer_disconnected_alert>
      Src: /src/libtorrent/fuzzers/src/peer_conn.cpp:212,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 221
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/peer_conn.cpp
    functionUses: 1
    functionsReached:
    - write
    - seconds
    - timestamp
    - error_code::clear
    - tcp::socket::connect
    - duration_cast<milliseconds>
    - alert_cast<peer_error_alert>
    - message
    - make_address
    - libtorrent::aux::random_bytes
    - alert_cast<peer_disconnected_alert>
    - tcp::socket::close
    - time_now
    - get_best
    - std::vector::data
    - std::memcpy
    - wait_for_alert
    - both_sides_from_store_buffer
    - local_endpoint
    - pop_alerts
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::base32decode
      Src: /src/libtorrent/fuzzers/src/base32decode.cpp:37,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/base32decode.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/base32decode.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::base32decode
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::base64encode
      Src: /src/libtorrent/fuzzers/src/base64encode.cpp:37,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/base64encode.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/base64encode.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::base64encode
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - s
    argTypes:
    - std::uint8_t*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: read_bits
    functionSourceFile: /src/libtorrent/fuzzers/src/read_bits.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void read_bits(std::uint8_t const* d, std::size_t s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/libtorrent/fuzzers/src/read_bits.hpp:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: read
    functionSourceFile: /src/libtorrent/fuzzers/src/read_bits.hpp
    functionUses: 571
    functionsReached:
    - std::min
    linkageType: ''
    returnType: int
    signature: int read(int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_int
      Src: /src/libtorrent/fuzzers/src/parse_int.cpp:38,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/parse_int.cpp:38,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/parse_int.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/parse_int.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::parse_int
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: set_external_address
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_external_address(lt::aux::listen_socket_handle const&, lt::address
      const& /* addr */\n\t\t, lt::address const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - ' s'
    argTypes:
    - aux::transport
    - aux::listen_socket_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: get_listen_port
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_listen_port(aux::transport ssl, aux::listen_socket_handle const&
      s) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: get_peers
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_peers(lt::sha1_hash const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: outgoing_get_peers
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void outgoing_get_peers(sha1_hash const&\n\t\t, sha1_hash const&,
      lt::udp::endpoint const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: announce
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void announce(sha1_hash const&, lt::address const&, int) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: on_dht_request
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_dht_request(string_view\n\t\t, dht::msg const&, entry&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: log
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 548
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log(dht_logger::module_t, char const*, ...) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: should_log
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 289
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_log(module_t) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: log_packet
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void log_packet(message_direction_t\n\t\t, span<char const>\n\t\t,
      lt::udp::endpoint const&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/fuzzers/src/dht_node.cpp:96,1
    - Dst: lt::address_v4
      Src: /src/libtorrent/fuzzers/src/dht_node.cpp:97,1
    - Dst: libtorrent::aux::plus_one
      Src: /src/libtorrent/fuzzers/src/dht_node.cpp:97,1
    - Dst: to_bytes
      Src: /src/libtorrent/fuzzers/src/dht_node.cpp:97,1
    - Dst: std::call_once
      Src: /src/libtorrent/fuzzers/src/dht_node.cpp:98,1
    - Dst: new_socket
      Src: /src/libtorrent/fuzzers/src/dht_node.cpp:98,1
    - Dst: incoming_packet
      Src: /src/libtorrent/fuzzers/src/dht_node.cpp:99,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/dht_node.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/dht_node.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::plus_one
    - to_bytes
    - lt::address_v4
    - std::call_once
    - reinterpret_cast<char const*>
    - new_socket
    - address
    - incoming_packet
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tracker_response
      Src: /src/libtorrent/fuzzers/src/http_tracker.cpp:41,1
    - Dst: parse_tracker_response
      Src: /src/libtorrent/fuzzers/src/http_tracker.cpp:42,1
    - Dst: parse_tracker_response
      Src: /src/libtorrent/fuzzers/src/http_tracker.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/http_tracker.cpp
    functionUses: 1
    functionsReached:
    - parse_tracker_response
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inflate_gzip
      Src: /src/libtorrent/fuzzers/src/gzip.cpp:39,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/gzip.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/gzip.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::inflate_gzip
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_int
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:69,1
    - Dst: set_int
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:70,1
    - Dst: set_int
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:71,1
    - Dst: set_int
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:72,1
    - Dst: set_int
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:73,1
    - Dst: set_bool
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:76,1
    - Dst: set_bool
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:77,1
    - Dst: set_bool
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:78,1
    - Dst: set_bool
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:79,1
    - Dst: set_bool
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:80,1
    - Dst: set_bool
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:81,1
    - Dst: set_bool
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:82,1
    - Dst: set_str
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:83,1
    - Dst: std::int64_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:89,1
    - Dst: file_storage::add_file
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:90,1
    - Dst: resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:92,1
    - Dst: file_storage::piece_range
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:99,1
    - Dst: std::memset
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:101,1
    - Dst: std::vector::data
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:101,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:101,1
    - Dst: std::vector::size
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:101,1
    - Dst: create_torrent::set_hash
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:102,1
    - Dst: piece_index_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:102,1
    - Dst: libtorrent::hasher::hasher
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:102,1
    - Dst: libtorrent::hasher256::hasher256
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:106,1
    - Dst: lt::span::subspan
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:106,1
    - Dst: std::size_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:108,1
    - Dst: std::size_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:109,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:109,1
    - Dst: merkle_root
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:112,1
    - Dst: create_torrent::set_hash2
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:113,1
    - Dst: piece_index_t::diff_type
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:113,1
    - Dst: merkle_fill_tree
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:116,1
    - Dst: bencode
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:119,1
    - Dst: std::back_inserter
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:119,1
    - Dst: create_torrent::generate
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:119,1
    - Dst: std::make_shared<torrent_info>
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 123
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libtorrent/fuzzers/src/add_torrent.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::vector::size
    - lt::span::subspan
    - std::memset
    - set_int
    - merkle_fill_tree
    - std::make_shared<torrent_info>
    - file_storage::add_file
    - libtorrent::hasher::hasher
    - set_bool
    - std::size_t
    - create_torrent::generate
    - create_torrent::set_hash
    - libtorrent::hasher256::hasher256
    - create_torrent::set_hash2
    - merkle_root
    - piece_index_t
    - bencode
    - std::vector::data
    - file_storage::piece_range
    - piece_index_t::diff_type
    - std::int64_t
    - resize
    - std::back_inserter
    - set_str
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: info_hashes
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:130,1
    - Dst: lt::add_torrent_params::file_priorities::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:132,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:132,1
    - Dst: lt::download_priority_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:134,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:134,1
    - Dst: lt::torrent_flags_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:135,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:135,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:136,1
    - Dst: piece_index_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:139,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:139,1
    - Dst: resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:140,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:140,1
    - Dst: size
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:141,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:142,1
    - Dst: set_bit
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:142,1
    - Dst: lt::add_torrent_params::have_pieces::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:144,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:144,1
    - Dst: lt::add_torrent_params::have_pieces::size
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:145,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:146,1
    - Dst: lt::add_torrent_params::have_pieces::set_bit
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:146,1
    - Dst: lt::add_torrent_params::verified_pieces::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:148,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:148,1
    - Dst: lt::add_torrent_params::verified_pieces::size
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:149,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:150,1
    - Dst: lt::add_torrent_params::verified_pieces::set_bit
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:150,1
    - Dst: lt::add_torrent_params::piece_priorities::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:152,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:152,1
    - Dst: lt::download_priority_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:154,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:154,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:157,1
    - Dst: lt::add_torrent_params::merkle_trees::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:159,1
    - Dst: lt::add_torrent_params::merkle_tree_mask::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:160,1
    - Dst: lt::add_torrent_params::verified_leaf_hashes::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:161,1
    - Dst: resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:162,1
    - Dst: resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:166,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:171,1
    - Dst: std::size_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:172,1
    - Dst: push_back
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:173,1
    - Dst: std::size_t
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:173,1
    - Dst: lt::add_torrent_params::merkle_trees::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:178,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:178,1
    - Dst: resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:182,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:182,1
    - Dst: size
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:186,1
    - Dst: lt::add_torrent_params::merkle_tree_mask::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:189,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:189,1
    - Dst: resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:192,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:192,1
    - Dst: size
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:193,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:194,1
    - Dst: lt::add_torrent_params::verified_leaf_hashes::resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:196,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:196,1
    - Dst: resize
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:199,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:199,1
    - Dst: size
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:200,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:201,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:205,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:206,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:207,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:208,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:209,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:210,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:211,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:212,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:213,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:214,1
    - Dst: read_bits::read
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:215,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - std::uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 218
    functionName: generate_atp
    functionSourceFile: /src/libtorrent/fuzzers/src/add_torrent.cpp
    functionUses: 0
    functionsReached:
    - lt::add_torrent_params::have_pieces::set_bit
    - lt::download_priority_t
    - lt::add_torrent_params::verified_pieces::set_bit
    - info_hashes
    - lt::add_torrent_params::piece_priorities::resize
    - push_back
    - is_all_zeros
    - lt::add_torrent_params::verified_pieces::resize
    - std::size_t
    - lt::add_torrent_params::verified_pieces::size
    - set_bit
    - read_bits::read
    - lt::add_torrent_params::merkle_tree_mask::resize
    - lt::add_torrent_params::merkle_trees::resize
    - piece_index_t
    - size
    - lt::add_torrent_params::have_pieces::size
    - lt::add_torrent_params::file_priorities::resize
    - lt::add_torrent_params::have_pieces::resize
    - resize
    - lt::torrent_flags_t
    - lt::add_torrent_params::verified_leaf_hashes::resize
    linkageType: ''
    returnType: lt::add_torrent_params
    signature: lt::add_torrent_params generate_atp(std::uint8_t const* data, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restart
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:222,1
    - Dst: generate_atp
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:225,1
    - Dst: boost::optional::async_add_torrent
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:227,1
    - Dst: boost::optional::abort
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:228,1
    - Dst: post
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:229,1
    - Dst: boost::optional::reset
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:229,1
    - Dst: run_for
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:231,1
    - Dst: seconds
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:231,1
    - Dst: libtorrent::log_async
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:234,1
    - Dst: clear
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:235,1
    - Dst: clear
      Src: /src/libtorrent/fuzzers/src/add_torrent.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 241
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/add_torrent.cpp
    functionUses: 1
    functionsReached:
    - run_for
    - boost::optional::async_add_torrent
    - generate_atp
    - post
    - boost::optional::abort
    - seconds
    - boost::optional::reset
    - clear
    - libtorrent::log_async
    - restart
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_magnet_uri
      Src: /src/libtorrent/fuzzers/src/parse_magnet_uri.cpp:40,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/parse_magnet_uri.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/parse_magnet_uri.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char const*>
    - libtorrent::parse_magnet_uri
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/torrent_info.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/torrent_info.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::xml_parse
      Src: /src/libtorrent/fuzzers/src/upnp.cpp:41,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/upnp.cpp:41,1
    - Dst: std::bind
      Src: /src/libtorrent/fuzzers/src/upnp.cpp:42,1
    - Dst: std::ref
      Src: /src/libtorrent/fuzzers/src/upnp.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/upnp.cpp
    functionUses: 1
    functionsReached:
    - std::bind
    - std::ref
    - reinterpret_cast<char const*>
    - libtorrent::xml_parse
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:40,1
    - Dst: std::min
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:44,1
    - Dst: lt::string_view::size
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:44,1
    - Dst: lt::string_view::size
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:44,1
    - Dst: lt::string_view::substr
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:46,1
    - Dst: lt::string_view::size
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:46,1
    - Dst: std::size_t
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:46,1
    - Dst: incoming
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' parser'
    - str
    argTypes:
    - lt::http_parser
    - lt::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: feed_bytes
    functionSourceFile: /src/libtorrent/fuzzers/src/http_parser.cpp
    functionUses: 12
    functionsReached:
    - lt::string_view::substr
    - reset
    - std::min
    - incoming
    - std::size_t
    - lt::string_view::size
    linkageType: ''
    returnType: void
    signature: void feed_bytes(lt::http_parser& parser, lt::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feed_bytes
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:57,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/http_parser.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/http_parser.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char const*>
    - feed_bytes
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::parse_url_components
      Src: /src/libtorrent/fuzzers/src/parse_url.cpp:41,1
    - Dst: std::string
      Src: /src/libtorrent/fuzzers/src/parse_url.cpp:41,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/parse_url.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - std::uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/parse_url.cpp
    functionUses: 1
    functionsReached:
    - std::string
    - reinterpret_cast<char const*>
    - libtorrent::parse_url_components
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(std::uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<aux::utp_socket_impl>
      Src: /src/libtorrent/fuzzers/src/utp.cpp:58,1
    - Dst: aux::utp_stream::set_impl
      Src: /src/libtorrent/fuzzers/src/utp.cpp:59,1
    - Dst: std::unique_ptr::get
      Src: /src/libtorrent/fuzzers/src/utp.cpp:59,1
    - Dst: seconds
      Src: /src/libtorrent/fuzzers/src/utp.cpp:61,1
    - Dst: std::unique_ptr::incoming_packet
      Src: /src/libtorrent/fuzzers/src/utp.cpp:63,1
    - Dst: socket_drained
      Src: /src/libtorrent/fuzzers/src/utp.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/utp.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<aux::utp_socket_impl>
    - seconds
    - std::unique_ptr::incoming_packet
    - socket_drained
    - std::unique_ptr::get
    - aux::utp_stream::set_impl
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::base32encode_i2p
      Src: /src/libtorrent/fuzzers/src/base32encode.cpp:37,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/base32encode.cpp:37,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/fuzzers/src/base32encode.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/base32encode.cpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<char const*>
    - libtorrent::base32encode_i2p
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::sanitize_append_path_element
      Src: /src/libtorrent/fuzzers/src/sanitize_path.cpp:38,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/sanitize_path.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/sanitize_path.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::sanitize_append_path_element
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::convert_from_native
      Src: /src/libtorrent/fuzzers/src/convert_from_native.cpp:37,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/convert_from_native.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/convert_from_native.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::convert_from_native
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/verify_encoding.cpp:38,1
    - Dst: libtorrent::aux::verify_encoding
      Src: /src/libtorrent/fuzzers/src/verify_encoding.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/verify_encoding.cpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::verify_encoding
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode
      Src: /src/libtorrent/fuzzers/src/bdecode_node.cpp:38,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/fuzzers/src/bdecode_node.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtorrent/fuzzers/src/bdecode_node.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char const*>
    - libtorrent::bdecode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:370,1
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:372,1
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:376,1
    - Dst: libtorrent::end_file
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:378,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:382,1
    - Dst: libtorrent::file_piece_range
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:388,1
    - Dst: libtorrent::total_size
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:391,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:396,1
    - Dst: libtorrent::piece_size
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:397,1
    - Dst: std::vector<sha1_hash>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 490
    functionName: libtorrent::create_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end_piece
    - libtorrent::piece_length
    - libtorrent::piece_size
    - std::vector<sha1_hash>
    - libtorrent::num_pieces
    - libtorrent::file_piece_range
    - libtorrent::end_file
    - libtorrent::file_range
    - libtorrent::total_size
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT create_torrent
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: libtorrent::create_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED create_torrent(fs, piece_size, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: libtorrent::files
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: file_storage
    signature: file_storage & files() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: libtorrent::set_priv
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_priv(bool p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: libtorrent::priv
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool priv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: libtorrent::is_v2_only
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_v2_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: libtorrent::is_v1_only
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_v1_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: libtorrent::num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::num_pieces
    linkageType: ''
    returnType: int
    signature: int num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: libtorrent::end_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::end_piece
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t end_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: libtorrent::piece_range
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end_piece
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: index_range<piece_index_t> piece_range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end_file
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: libtorrent::end_file
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::end_file
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t end_file() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 382
    functionName: libtorrent::file_range
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::file_range
    linkageType: ''
    returnType: index_range<file_index_t>
    signature: index_range<file_index_t> file_range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_piece_range
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 388
    functionName: libtorrent::file_piece_range
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_piece_range
    linkageType: ''
    returnType: index_range<piece_index_t::diff_type>
    signature: index_range<piece_index_t::diff_type> file_piece_range(file_index_t
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_size
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: libtorrent::total_size
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::total_size
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: libtorrent::piece_length
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::piece_length
    linkageType: ''
    returnType: int
    signature: int piece_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_size
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 397
    functionName: libtorrent::piece_size
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::piece_size
    linkageType: ''
    returnType: int
    signature: int piece_size(piece_index_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<sha1_hash>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    functionName: std::vector<sha1_hash> merkle_tree() const
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached:
    - std::vector<sha1_hash>
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED std::vector<sha1_hash> merkle_tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: libtorrent::aux::nop
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: libtorrent::aux::nop
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' t'
    - ' p'
    - ' ec'
    argTypes:
    - create_torrent
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::set_piece_hashes
    linkageType: ''
    returnType: void
    signature: void set_piece_hashes(create_torrent& t, std::string const& p, error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:550,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' t'
    - ' p'
    argTypes:
    - create_torrent
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 15
    functionsReached:
    - libtorrent::set_piece_hashes
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: void set_piece_hashes(create_torrent& t, std::string const& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:557,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' t'
    - ' p'
    - ' f'
    argTypes:
    - create_torrent
    - std::string
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::set_piece_hashes
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      std::function<void(piece_index_t)> const& f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:565,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' t'
    - ' p'
    - ' settings'
    - ' f'
    argTypes:
    - create_torrent
    - std::string
    - settings_interface
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 567
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 17
    functionsReached:
    - libtorrent::set_piece_hashes
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      settings_interface const& settings\n\t\t, std::function<void(piece_index_t)>
      const& f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:370,1
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:372,1
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:376,1
    - Dst: libtorrent::end_file
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:378,1
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:382,1
    - Dst: libtorrent::file_piece_range
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:388,1
    - Dst: libtorrent::total_size
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:391,1
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:396,1
    - Dst: libtorrent::piece_size
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:397,1
    - Dst: std::vector<sha1_hash>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 490
    functionName: libtorrent::create_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end_piece
    - libtorrent::piece_length
    - libtorrent::piece_size
    - std::vector<sha1_hash>
    - libtorrent::num_pieces
    - libtorrent::file_piece_range
    - libtorrent::end_file
    - libtorrent::file_range
    - libtorrent::total_size
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT create_torrent
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: libtorrent::create_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED create_torrent(fs, piece_size, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: libtorrent::files
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: file_storage
    signature: file_storage & files() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: libtorrent::set_priv
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_priv(bool p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: libtorrent::priv
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool priv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: libtorrent::is_v2_only
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_v2_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: libtorrent::is_v1_only
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_v1_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: libtorrent::num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::num_pieces
    linkageType: ''
    returnType: int
    signature: int num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: libtorrent::end_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::end_piece
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t end_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: libtorrent::piece_range
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end_piece
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: index_range<piece_index_t> piece_range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end_file
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: libtorrent::end_file
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::end_file
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t end_file() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_range
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 382
    functionName: libtorrent::file_range
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::file_range
    linkageType: ''
    returnType: index_range<file_index_t>
    signature: index_range<file_index_t> file_range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_piece_range
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 388
    functionName: libtorrent::file_piece_range
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::file_piece_range
    linkageType: ''
    returnType: index_range<piece_index_t::diff_type>
    signature: index_range<piece_index_t::diff_type> file_piece_range(file_index_t
      f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_size
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: libtorrent::total_size
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::total_size
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_length
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: libtorrent::piece_length
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::piece_length
    linkageType: ''
    returnType: int
    signature: int piece_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::piece_size
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 397
    functionName: libtorrent::piece_size
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::piece_size
    linkageType: ''
    returnType: int
    signature: int piece_size(piece_index_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<sha1_hash>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    functionName: std::vector<sha1_hash> merkle_tree() const
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached:
    - std::vector<sha1_hash>
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED std::vector<sha1_hash> merkle_tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: libtorrent::aux::nop
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: libtorrent::aux::nop
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' t'
    - ' p'
    - ' ec'
    argTypes:
    - create_torrent
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::set_piece_hashes
    linkageType: ''
    returnType: void
    signature: void set_piece_hashes(create_torrent& t, std::string const& p, error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:550,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' t'
    - ' p'
    argTypes:
    - create_torrent
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 19
    functionsReached:
    - libtorrent::set_piece_hashes
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: void set_piece_hashes(create_torrent& t, std::string const& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:557,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' t'
    - ' p'
    - ' f'
    argTypes:
    - create_torrent
    - std::string
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::set_piece_hashes
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      std::function<void(piece_index_t)> const& f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_piece_hashes
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:565,1
    - Dst: aux::throw_ex<system_error>
      Src: /src/libtorrent/include/libtorrent/create_torrent.hpp:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ' t'
    - ' p'
    - ' settings'
    - ' f'
    argTypes:
    - create_torrent
    - std::string
    - settings_interface
    - std::function<void(piece_index_t)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 567
    functionName: libtorrent::set_piece_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/create_torrent.hpp
    functionUses: 21
    functionsReached:
    - libtorrent::set_piece_hashes
    - aux::throw_ex<system_error>
    linkageType: ''
    returnType: void
    signature: "void set_piece_hashes(create_torrent& t, std::string const& p\n\t\t,
      settings_interface const& settings\n\t\t, std::function<void(piece_index_t)>
      const& f)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:100,1
    - Dst: headers_t
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 128
    functionName: web_seed_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 2
    functionsReached:
    - std::string
    - headers_t
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT web_seed_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - web_seed_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: operator==(web_seed_entry const& e) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(web_seed_entry const& e) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - web_seed_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: operator<(web_seed_entry const& e) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(web_seed_entry const& e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: load_torrent_limits
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT load_torrent_limits
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: torrent_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info(char const* buffer, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - buffer
    - size
    - ' ec'
    argTypes:
    - char*
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: torrent_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_info(char const* buffer, int size, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: torrent_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED torrent_info(torrent_file, ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: torrent_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED torrent_info(filename, ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: files
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 323
    functionsReached: []
    linkageType: ''
    returnType: file_storage
    signature: file_storage & files() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: trackers
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: std::vector<announce_entry>
    signature: std::vector<announce_entry> & trackers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    functionName: web_seeds
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: std::vector<web_seed_entry>
    signature: std::vector<web_seed_entry> & web_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:353,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:353,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: _internal_drain
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 4
    functionsReached:
    - std::move
    linkageType: ''
    returnType: aux::internal_drained_state
    signature: aux::internal_drained_state _internal_drain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_size
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: total_size
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 78
    functionsReached:
    - total_size
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_length
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: piece_length
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 220
    functionsReached:
    - piece_length
    linkageType: ''
    returnType: int
    signature: int piece_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_pieces
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 209
    functionsReached:
    - num_pieces
    linkageType: ''
    returnType: int
    signature: int num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks_per_piece
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 375
    functionName: blocks_per_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 45
    functionsReached:
    - blocks_per_piece
    linkageType: ''
    returnType: int
    signature: int blocks_per_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: last_piece
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 383
    functionName: last_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 8
    functionsReached:
    - last_piece
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t last_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:386,1
    - Dst: num_pieces
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:386,1
    - Dst: end_piece
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: end_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 41
    functionsReached:
    - TORRENT_ASSERT
    - num_pieces
    - end_piece
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t end_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_range
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: piece_range
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 48
    functionsReached:
    - piece_range
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: index_range<piece_index_t> piece_range() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: info_hashes
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: info_hash_t
    signature: info_hash_t & info_hashes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin_deprecated
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: file_iterator::begin_files
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached:
    - begin_deprecated
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED file_iterator begin_files() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_deprecated
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: file_iterator::end_files
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached:
    - end_deprecated
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED file_iterator end_files() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbegin_deprecated
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 423
    functionName: rbegin_files
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached:
    - rbegin_deprecated
    linkageType: ''
    returnType: reverse_file_iterator
    signature: reverse_file_iterator rbegin_files() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rend_deprecated
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: reverse_file_iterator::rend_files
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached:
    - rend_deprecated
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED reverse_file_iterator rend_files() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_at_offset_deprecated
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: file_iterator::file_at_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached:
    - file_at_offset_deprecated
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED file_iterator file_at_offset(std::int64_t offset)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at_deprecated
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 434
    functionName: file_at
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 89
    functionsReached:
    - at_deprecated
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED file_at(int index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_files
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: num_files
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 87
    functionsReached:
    - num_files
    linkageType: ''
    returnType: int
    signature: int num_files() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:451,1
    - Dst: is_loaded
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:451,1
    - Dst: map_block
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - piece
    - offset
    - size
    argTypes:
    - piece_index_t
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: map_block
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 13
    functionsReached:
    - TORRENT_ASSERT
    - is_loaded
    - map_block
    linkageType: ''
    returnType: std::vector<file_slice>
    signature: "std::vector<file_slice> map_block(piece_index_t const piece\n\t\t\t,
      std::int64_t offset, int size) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:465,1
    - Dst: is_loaded
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:465,1
    - Dst: map_file
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - offset
    - size
    argTypes:
    - file_index_t
    - std::int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: map_file
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 19
    functionsReached:
    - TORRENT_ASSERT
    - is_loaded
    - map_file
    linkageType: ''
    returnType: peer_request
    signature: peer_request map_file(file_index_t const file, std::int64_t offset,
      int size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: load
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void load(char const*, int, error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 473
    functionName: unload
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unload()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 488
    functionName: is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 80
    functionsReached:
    - is_valid
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: priv
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool priv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 498
    functionName: is_i2p
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_i2p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 501
    functionName: v2_piece_hashes_verified
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool v2_piece_hashes_verified() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_size
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 506
    functionName: piece_size
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 81
    functionsReached:
    - piece_size
    linkageType: ''
    returnType: int
    signature: int piece_size(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:516,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:516,1
    - Dst: TORRENT_ASSERT_PRECOND
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:517,1
    - Dst: end_piece
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:517,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:518,1
    - Dst: is_loaded
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:518,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:519,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:520,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:521,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:522,1
    - Dst: std::ptrdiff_t
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 524
    functionName: hash_for_piece_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - is_loaded
    - TORRENT_ASSERT_PRECOND
    - TORRENT_ASSERT
    - piece_index_t
    - std::ptrdiff_t
    - end_piece
    linkageType: ''
    returnType: char
    signature: char * hash_for_piece_ptr(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_files
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 526
    functionName: is_loaded
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 11
    functionsReached:
    - num_files
    linkageType: ''
    returnType: bool
    signature: bool is_loaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 541
    functionName: std::merkle_tree
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED std::vector<sha1_hash> const& merkle_tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:544,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:544,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:544,1
    - Dst: swap
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - std::vector<sha1_hash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: set_merkle_tree
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - swap
    - size
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED set_merkle_tree(std::vector<sha1_hash>& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: name
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 271
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: creation_date
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t creation_date() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: creator
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & creator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 567
    functionName: comment
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & comment() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 572
    functionName: nodes
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 90
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::pair<std::string, int>>
    signature: std::vector<std::pair<std::string, int>> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - std::pair<std::string, int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 577
    functionName: add_node
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 39
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void add_node(std::pair<std::string, int> const& node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: span<char const>
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:604,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 604
    functionName: info_section
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 26
    functionsReached:
    - span<char const>
    - get
    linkageType: ''
    returnType: span<char const>
    signature: span<char const> info_section() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 616
    functionName: metadata_size
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED metadata_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: add_merkle_nodes
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: "TORRENT_DEPRECATED add_merkle_nodes(std::map<int, sha1_hash> const&\n\t\t\t,
      piece_index_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::map<int, sha1_hash>
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: std::map<int, sha1_hash> build_merkle_list(piece_index_t) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached:
    - std::map<int, sha1_hash>
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED std::map<int, sha1_hash> build_merkle_list(piece_index_t)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/torrent_info.hpp:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 659
    functionName: is_merkle_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_info.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED is_merkle_torrent() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:172,1
    - Dst: address_v4::any
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:178,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:178,1
    - Dst: address_v6::any
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:179,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:180,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:182,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:183,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:186,1
    - Dst: libtorrent::aux::bind_device
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:191,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:195,1
    - Dst: libtorrent::enum_net_interfaces
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:198,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:199,1
    - Dst: std::strcmp
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:208,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:209,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:209,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:212,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:219,1
    - Dst: generic_category
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:219,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:220,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:223,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:224,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 6
    argNames:
    - ' ios'
    - ' sock'
    - ' protocol'
    - device_name
    - port
    - ' ec'
    argTypes:
    - io_context
    - Socket
    - tcp
    - char*
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 225
    functionName: libtorrent::bind_socket_to_device
    functionSourceFile: /src/libtorrent/include/libtorrent/enum_net.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - rand_v4
    - rand_v6
    - tcp::endpoint::address
    - libtorrent::bind
    - error_code
    - address_v6::any
    - interface_address::is_v4
    - address_v4::any
    - generic_category
    - libtorrent::enum_net_interfaces
    - make_address
    - libtorrent::aux::bind_device
    - std::strcmp
    linkageType: ''
    returnType: address
    signature: "address bind_socket_to_device(io_context& ios, Socket& sock\n\t\t,
      tcp const& protocol\n\t\t, char const* device_name, int port, error_code& ec)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: make_address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:172,1
    - Dst: address_v4::any
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:178,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:178,1
    - Dst: address_v6::any
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:179,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:180,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:182,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:183,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:186,1
    - Dst: libtorrent::aux::bind_device
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:191,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:195,1
    - Dst: libtorrent::enum_net_interfaces
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:198,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:199,1
    - Dst: std::strcmp
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:208,1
    - Dst: interface_address::is_v4
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:209,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:209,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:212,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:219,1
    - Dst: generic_category
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:219,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:220,1
    - Dst: libtorrent::bind
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:223,1
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/enum_net.hpp:224,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 6
    argNames:
    - ' ios'
    - ' sock'
    - ' protocol'
    - device_name
    - port
    - ' ec'
    argTypes:
    - io_context
    - Socket
    - tcp
    - char*
    - int
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 225
    functionName: libtorrent::bind_socket_to_device
    functionSourceFile: /src/libtorrent/include/libtorrent/enum_net.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - rand_v4
    - rand_v6
    - tcp::endpoint::address
    - libtorrent::bind
    - error_code
    - address_v6::any
    - interface_address::is_v4
    - address_v4::any
    - generic_category
    - libtorrent::enum_net_interfaces
    - make_address
    - libtorrent::aux::bind_device
    - std::strcmp
    linkageType: ''
    returnType: address
    signature: "address bind_socket_to_device(io_context& ios, Socket& sock\n\t\t,
      tcp const& protocol\n\t\t, char const* device_name, int port, error_code& ec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/peer_connection_interface.hpp:81,1
    - Dst: libtorrent::peer_connection_interface
      Src: /src/libtorrent/include/libtorrent/peer_connection_interface.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 85
    functionName: libtorrent::peer_connection_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_interface.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::peer_connection_interface
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_connection_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/peer_connection_interface.hpp:81,1
    - Dst: libtorrent::peer_connection_interface
      Src: /src/libtorrent/include/libtorrent/peer_connection_interface.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 85
    functionName: libtorrent::peer_connection_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_interface.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::peer_connection_interface
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_connection_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/performance_counters.hpp:463,1
    - Dst: libtorrent::counters
      Src: /src/libtorrent/include/libtorrent/performance_counters.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 497
    functionName: libtorrent::counters
    functionSourceFile: /src/libtorrent/include/libtorrent/performance_counters.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::counters
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT counters
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/performance_counters.hpp:463,1
    - Dst: libtorrent::counters
      Src: /src/libtorrent/include/libtorrent/performance_counters.hpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 497
    functionName: libtorrent::counters
    functionSourceFile: /src/libtorrent/include/libtorrent/performance_counters.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - libtorrent::counters
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT counters
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 89
    functionName: libtorrent::peer_class_info
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_class_info
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_class.hpp:98,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/peer_class.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 138
    functionName: libtorrent::peer_class
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::move
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_class
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_class.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: libtorrent::peer_class
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void peer_class(std::string l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/peer_class.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 54
    functionsReached:
    - libtorrent::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: libtorrent::peer_class_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_class_pool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 89
    functionName: libtorrent::peer_class_info
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_class_info
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_class.hpp:98,1
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/peer_class.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 138
    functionName: libtorrent::peer_class
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    - libtorrent::move
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_class
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_class.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: libtorrent::peer_class
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void peer_class(std::string l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/peer_class.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 56
    functionsReached:
    - libtorrent::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: libtorrent::peer_class_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_class_pool
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:63,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:64,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:65,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:73,1
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: libtorrent::clear_trailing_bits
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:77,1
    - Dst: libtorrent::get_bit
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:87,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:87,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:88,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:95,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:95,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:96,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:96,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:101,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:101,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:102,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:102,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:111,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:113,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:114,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:126,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:134,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:141,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:145,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:149,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:150,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:154,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:169,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:194,1
    - Dst: libtorrent::inc
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:195,1
    - Dst: libtorrent::inc
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:197,1
    - Dst: libtorrent::dec
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:198,1
    - Dst: libtorrent::dec
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:225,1
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:243,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:243,1
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:249,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:249,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:260,1
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::clear_trailing_bits
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:262,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:266,1
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::reset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:271,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:275,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 275
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dec
    - reinterpret_cast<char*>
    - std::memset
    - libtorrent::const_iterator
    - libtorrent::assign
    - libtorrent::aux::host_to_network
    - std::size_t
    - libtorrent::get_bit
    - libtorrent::num_words
    - libtorrent::size
    - libtorrent::data
    - TORRENT_ASSERT
    - libtorrent::buf
    - reinterpret_cast<char const*>
    - libtorrent::inc
    - std::memcpy
    - libtorrent::clear_trailing_bits
    - std::swap
    - resize
    - libtorrent::reset
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT bitfield
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void bitfield(int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - val
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void bitfield(int bits, bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - bits
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::assign
    linkageType: ''
    returnType: void
    signature: void bitfield(char const* b, int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::assign
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void bitfield(bitfield const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield(bitfield&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:73,1
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: libtorrent::clear_trailing_bits
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - b
    - bits
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: libtorrent::assign
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 21
    functionsReached:
    - std::memcpy
    - libtorrent::clear_trailing_bits
    - resize
    - std::size_t
    - libtorrent::buf
    linkageType: ''
    returnType: void
    signature: void assign(char const* b, int const bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_bit
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator[](int index) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get_bit
    linkageType: ''
    returnType: bool
    signature: bool operator[](int index) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:87,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:87,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:88,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: libtorrent::get_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool get_bit(int index) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:95,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:95,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:96,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: libtorrent::clear_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void clear_bit(int index) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:101,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:101,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:102,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: libtorrent::set_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void set_bit(int index) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:111,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:113,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: libtorrent::none_set
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_words
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool none_set() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 102
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: libtorrent::num_words
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_words() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: libtorrent::num_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 56
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 12
    functionsReached:
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: char
    signature: char * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 12
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: char
    signature: char * data() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: libtorrent::bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::data
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED * bytes() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: '& operator=(bitfield const& rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::assign
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: bitfield
    signature: bitfield & operator=(bitfield const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: libtorrent::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 6
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void swap(bitfield& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: operator*() noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::host_to_network
    linkageType: ''
    returnType: bool
    signature: bool operator*() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inc
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: '& operator++() noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::inc
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator++() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::inc
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: operator++(int) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::inc
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator++(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dec
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: '& operator--() noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dec
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator--() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dec
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: operator--(int) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dec
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator--(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: libtorrent::const_iterator
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void const_iterator() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: operator==(const_iterator const& rhs) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const_iterator const& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: operator!=(const_iterator const& rhs) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const_iterator const& rhs) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 222
    functionName: libtorrent::inc
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void inc()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: libtorrent::dec
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void dec()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ptr
    - offset
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: libtorrent::const_iterator
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void const_iterator(std::uint32_t const* ptr, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:243,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 42
    functionsReached:
    - libtorrent::buf
    - libtorrent::const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:249,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 46
    functionsReached:
    - libtorrent::num_words
    - libtorrent::buf
    - libtorrent::const_iterator
    - libtorrent::size
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:260,1
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::clear_trailing_bits
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: libtorrent::set_all
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_words
    - libtorrent::clear_trailing_bits
    - libtorrent::size
    - std::size_t
    - libtorrent::buf
    - std::memset
    linkageType: ''
    returnType: void
    signature: void set_all() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:266,1
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: libtorrent::clear_all
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_words
    - libtorrent::size
    - std::size_t
    - libtorrent::buf
    - std::memset
    linkageType: ''
    returnType: void
    signature: void clear_all() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 56
    functionsReached:
    - libtorrent::reset
    linkageType: ''
    returnType: void
    signature: void clear() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: libtorrent::buf
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 10
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t * buf() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: libtorrent::clear_trailing_bits
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::host_to_network
    - libtorrent::num_words
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void clear_trailing_bits() noexcept
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:63,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:64,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:65,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:73,1
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: libtorrent::clear_trailing_bits
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:77,1
    - Dst: libtorrent::get_bit
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:83,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:87,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:87,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:88,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:95,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:95,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:96,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:96,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:101,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:101,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:102,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:102,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:111,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:113,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:114,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:126,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:134,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:141,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:145,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:149,1
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:150,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:154,1
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:169,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:194,1
    - Dst: libtorrent::inc
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:195,1
    - Dst: libtorrent::inc
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:197,1
    - Dst: libtorrent::dec
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:198,1
    - Dst: libtorrent::dec
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:200,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:212,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:225,1
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:243,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:243,1
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:249,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:249,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:260,1
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::clear_trailing_bits
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:262,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:266,1
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::reset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:271,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:275,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 275
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dec
    - reinterpret_cast<char*>
    - std::memset
    - libtorrent::const_iterator
    - libtorrent::assign
    - libtorrent::aux::host_to_network
    - std::size_t
    - libtorrent::get_bit
    - libtorrent::num_words
    - libtorrent::size
    - libtorrent::data
    - TORRENT_ASSERT
    - libtorrent::buf
    - reinterpret_cast<char const*>
    - libtorrent::inc
    - std::memcpy
    - libtorrent::clear_trailing_bits
    - std::swap
    - resize
    - libtorrent::reset
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT bitfield
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void bitfield(int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - val
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void bitfield(int bits, bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - bits
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::assign
    linkageType: ''
    returnType: void
    signature: void bitfield(char const* b, int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::assign
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void bitfield(bitfield const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield(bitfield&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:73,1
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:76,1
    - Dst: libtorrent::clear_trailing_bits
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - b
    - bits
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: libtorrent::assign
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 25
    functionsReached:
    - std::memcpy
    - libtorrent::clear_trailing_bits
    - resize
    - std::size_t
    - libtorrent::buf
    linkageType: ''
    returnType: void
    signature: void assign(char const* b, int const bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bit
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator[](int index) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - get_bit
    linkageType: ''
    returnType: bool
    signature: bool operator[](int index) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:87,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:87,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:88,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: libtorrent::get_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool get_bit(int index) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:94,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:95,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:95,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:96,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: libtorrent::clear_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void clear_bit(int index) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:101,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:101,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:102,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: libtorrent::set_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::host_to_network
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void set_bit(int index) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:111,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:113,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: libtorrent::none_set
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_words
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool none_set() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 116
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: libtorrent::num_words
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_words() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: libtorrent::num_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 56
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 16
    functionsReached:
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: char
    signature: char * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 16
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: char
    signature: char * data() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: libtorrent::bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::data
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED * bytes() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: '& operator=(bitfield const& rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - assign
    - size
    - data
    linkageType: ''
    returnType: bitfield
    signature: bitfield & operator=(bitfield const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: libtorrent::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 6
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void swap(bitfield& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: operator*() noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::host_to_network
    linkageType: ''
    returnType: bool
    signature: bool operator*() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inc
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: '& operator++() noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - inc
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator++() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inc
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: operator++(int) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - inc
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator++(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dec
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: '& operator--() noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - dec
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator & operator--() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dec
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: operator--(int) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - dec
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator operator--(int) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: libtorrent::const_iterator
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void const_iterator() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: operator==(const_iterator const& rhs) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const_iterator const& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: operator!=(const_iterator const& rhs) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const_iterator const& rhs) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 222
    functionName: libtorrent::inc
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void inc()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: libtorrent::dec
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void dec()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ptr
    - offset
    argTypes:
    - std::uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: libtorrent::const_iterator
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void const_iterator(std::uint32_t const* ptr, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:243,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 42
    functionsReached:
    - libtorrent::buf
    - libtorrent::const_iterator
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:247,1
    - Dst: libtorrent::const_iterator
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:249,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 46
    functionsReached:
    - libtorrent::num_words
    - libtorrent::buf
    - libtorrent::const_iterator
    - libtorrent::size
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:260,1
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:261,1
    - Dst: libtorrent::clear_trailing_bits
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: libtorrent::set_all
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_words
    - libtorrent::clear_trailing_bits
    - libtorrent::size
    - std::size_t
    - libtorrent::buf
    - std::memset
    linkageType: ''
    returnType: void
    signature: void set_all() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:266,1
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: libtorrent::clear_all
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_words
    - libtorrent::size
    - std::size_t
    - libtorrent::buf
    - std::memset
    linkageType: ''
    returnType: void
    signature: void clear_all() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reset
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 56
    functionsReached:
    - libtorrent::reset
    linkageType: ''
    returnType: void
    signature: void clear() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: libtorrent::buf
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 21
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t * buf() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    - Dst: libtorrent::buf
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    - Dst: libtorrent::num_words
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    - Dst: libtorrent::aux::host_to_network
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: libtorrent::clear_trailing_bits
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::host_to_network
    - libtorrent::num_words
    - libtorrent::buf
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void clear_trailing_bits() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: typed_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void typed_bitfield() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<bitfield>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - typed_bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: typed_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - std::forward<bitfield>
    linkageType: ''
    returnType: void
    signature: void typed_bitfield(typed_bitfield&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bitfield const&>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - typed_bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: typed_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - static_cast<bitfield const&>
    linkageType: ''
    returnType: void
    signature: void typed_bitfield(typed_bitfield const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<bitfield>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: typed_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - std::forward<bitfield>
    linkageType: ''
    returnType: void
    signature: void typed_bitfield(bitfield&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: typed_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void typed_bitfield(bitfield const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::operator=(std::forward<bitfield>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - typed_bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: '& operator=(typed_bitfield&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - bitfield::operator=(std::forward<bitfield>
    linkageType: ''
    returnType: typed_bitfield
    signature: typed_bitfield & operator=(typed_bitfield&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - typed_bitfield
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: '& operator=(typed_bitfield const& rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typed_bitfield
    signature: typed_bitfield & operator=(typed_bitfield const& rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: range
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 242
    functionsReached:
    - end_index
    linkageType: ''
    returnType: index_range<IndexType>
    signature: index_range<IndexType> range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:320,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: operator[](IndexType const index) const
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - bitfield::get_bit
    linkageType: ''
    returnType: bool
    signature: bool operator[](IndexType const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::get_bit
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:323,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: get_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 40
    functionsReached:
    - static_cast<int>
    - bitfield::get_bit
    linkageType: ''
    returnType: bool
    signature: bool get_bit(IndexType const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::clear_bit
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:326,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: clear_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 17
    functionsReached:
    - static_cast<int>
    - bitfield::clear_bit
    linkageType: ''
    returnType: void
    signature: void clear_bit(IndexType const index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield::set_bit
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:329,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: set_bit
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 51
    functionsReached:
    - static_cast<int>
    - bitfield::set_bit
    linkageType: ''
    returnType: void
    signature: void set_bit(IndexType const index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:331,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/bitfield.hpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: end_index
    functionSourceFile: /src/libtorrent/include/libtorrent/bitfield.hpp
    functionUses: 257
    functionsReached:
    - IndexType
    - size
    linkageType: ''
    returnType: IndexType
    signature: IndexType end_index() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::proxy_base
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_base(proxy_base&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& operator=(proxy_base&&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: proxy_base
    signature: proxy_base & operator=(proxy_base&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::proxy_base
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_base(proxy_base const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& operator=(proxy_base const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: proxy_base
    signature: proxy_base & operator=(proxy_base const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:64,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hostname
    - port
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: libtorrent::set_proxy
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void set_proxy(std::string hostname, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::get_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:75,1
    - Dst: libtorrent::async_read_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:76,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buffers'
    - handler
    argTypes:
    - Mutable_Buffers
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: libtorrent::async_read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::move
    - libtorrent::async_read_some
    linkageType: ''
    returnType: void
    signature: void async_read_some(Mutable_Buffers const& buffers, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:82,1
    - Dst: libtorrent::read_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - Mutable_Buffers
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: libtorrent::read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(Mutable_Buffers const& buffers, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:89,1
    - Dst: libtorrent::write_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - Const_Buffers
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: libtorrent::write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(Const_Buffers const& buffers, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::available
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: libtorrent::available
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::available
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t available(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::available
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: libtorrent::available
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::available
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:103,1
    - Dst: libtorrent::read_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - Mutable_Buffers
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: libtorrent::read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(Mutable_Buffers const& buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:110,1
    - Dst: libtorrent::write_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - Const_Buffers
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: libtorrent::write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(Const_Buffers const& buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:117,1
    - Dst: libtorrent::io_control
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - IO_Control_Command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::io_control
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::io_control
    linkageType: ''
    returnType: void
    signature: void io_control(IO_Control_Command& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:125,1
    - Dst: libtorrent::io_control
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ioc'
    - ' ec'
    argTypes:
    - IO_Control_Command
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: libtorrent::io_control
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::io_control
    linkageType: ''
    returnType: void
    signature: void io_control(IO_Control_Command& ioc, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:132,1
    - Dst: libtorrent::async_write_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:133,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buffers'
    - handler
    argTypes:
    - Const_Buffers
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: libtorrent::async_write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::async_write_some
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_write_some(Const_Buffers const& buffers, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:146,1
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:147,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - handler
    argTypes:
    - tcp::socket::wait_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: libtorrent::async_wait
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::async_wait
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_wait(tcp::socket::wait_type type, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:154,1
    - Dst: libtorrent::non_blocking
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: libtorrent::non_blocking
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::non_blocking
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:161,1
    - Dst: libtorrent::non_blocking
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: libtorrent::non_blocking
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::non_blocking
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:169,1
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - SettableSocketOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void set_option(SettableSocketOption const& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:177,1
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SettableSocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void set_option(SettableSocketOption const& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:185,1
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - GettableSocketOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::get_option
    linkageType: ''
    returnType: void
    signature: void get_option(GettableSocketOption& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:193,1
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - GettableSocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::get_option
    linkageType: ''
    returnType: void
    signature: void get_option(GettableSocketOption& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: libtorrent::bind
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bind(endpoint_type const& /* endpoint */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:207,1
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: libtorrent::cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::cancel
    linkageType: ''
    returnType: void
    signature: void cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:213,1
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: libtorrent::cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::cancel
    linkageType: ''
    returnType: void
    signature: void cancel(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: libtorrent::bind
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bind(endpoint_type const& /* endpoint */, error_code& /* ec */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: libtorrent::open
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void open(protocol_type const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: libtorrent::open
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void open(protocol_type const&, error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:250,1
    - Dst: endpoint_type
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:251,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:252,1
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::cancel
    - endpoint_type
    - libtorrent::close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:259,1
    - Dst: endpoint_type
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:260,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:261,1
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 263
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::cancel
    - endpoint_type
    - libtorrent::close
    linkageType: ''
    returnType: void
    signature: void close(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: libtorrent::remote_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type remote_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:275,1
    - Dst: libtorrent::is_open
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: libtorrent::remote_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::is_open
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type remote_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:283,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 9
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type local_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:290,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 10
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type local_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lowest_layer
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: '& lowest_layer()'
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: '& next_layer()'
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_open
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: libtorrent::is_open
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::is_open
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:313,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:315,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - e
    - ' h'
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: libtorrent::handle_error
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::close
    - std::forward<Handler>
    linkageType: ''
    returnType: bool
    signature: bool handle_error(error_code e, Handler&& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:339,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - h
    - uh
    argTypes:
    - Handler
    - UnderlyingHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: libtorrent::wrap_allocator_t
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void wrap_allocator_t(Handler h, UnderlyingHandler uh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: libtorrent::wrap_allocator_t
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrap_allocator_t(wrap_allocator_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: libtorrent::wrap_allocator_t
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrap_allocator_t(wrap_allocator_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_handler
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:349,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:349,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - std::forward<A>
    - m_handler
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_allocator
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: libtorrent::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - boost::asio::get_associated_allocator
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_executor
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 1
    functionsReached:
    - boost::asio::get_associated_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:371,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - u
    argTypes:
    - Handler
    - UnderlyingHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: libtorrent::wrap_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: wrap_allocator_t<Handler, UnderlyingHandler>
    signature: wrap_allocator_t<Handler, UnderlyingHandler> wrap_allocator(Handler
      h, UnderlyingHandler u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::proxy_base
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_base(proxy_base&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& operator=(proxy_base&&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: proxy_base
    signature: proxy_base & operator=(proxy_base&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::proxy_base
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_base(proxy_base const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& operator=(proxy_base const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: proxy_base
    signature: proxy_base & operator=(proxy_base const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:64,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hostname
    - port
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: libtorrent::set_proxy
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void set_proxy(std::string hostname, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::get_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:75,1
    - Dst: libtorrent::async_read_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:76,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buffers'
    - handler
    argTypes:
    - Mutable_Buffers
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: libtorrent::async_read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::move
    - libtorrent::async_read_some
    linkageType: ''
    returnType: void
    signature: void async_read_some(Mutable_Buffers const& buffers, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:82,1
    - Dst: libtorrent::read_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - Mutable_Buffers
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: libtorrent::read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(Mutable_Buffers const& buffers, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:89,1
    - Dst: libtorrent::write_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - Const_Buffers
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: libtorrent::write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(Const_Buffers const& buffers, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::available
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: libtorrent::available
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::available
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t available(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::available
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: libtorrent::available
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::available
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:103,1
    - Dst: libtorrent::read_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - Mutable_Buffers
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: libtorrent::read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(Mutable_Buffers const& buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:110,1
    - Dst: libtorrent::write_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - Const_Buffers
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: libtorrent::write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(Const_Buffers const& buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:117,1
    - Dst: libtorrent::io_control
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - IO_Control_Command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::io_control
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::io_control
    linkageType: ''
    returnType: void
    signature: void io_control(IO_Control_Command& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:125,1
    - Dst: libtorrent::io_control
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' ioc'
    - ' ec'
    argTypes:
    - IO_Control_Command
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: libtorrent::io_control
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::io_control
    linkageType: ''
    returnType: void
    signature: void io_control(IO_Control_Command& ioc, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:132,1
    - Dst: libtorrent::async_write_some
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:133,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' buffers'
    - handler
    argTypes:
    - Const_Buffers
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: libtorrent::async_write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::async_write_some
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_write_some(Const_Buffers const& buffers, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:146,1
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:147,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - handler
    argTypes:
    - tcp::socket::wait_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: libtorrent::async_wait
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::async_wait
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_wait(tcp::socket::wait_type type, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:154,1
    - Dst: libtorrent::non_blocking
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: libtorrent::non_blocking
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::non_blocking
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:161,1
    - Dst: libtorrent::non_blocking
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: libtorrent::non_blocking
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::non_blocking
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:169,1
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - SettableSocketOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 6
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void set_option(SettableSocketOption const& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:177,1
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SettableSocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void set_option(SettableSocketOption const& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:185,1
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - GettableSocketOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::get_option
    linkageType: ''
    returnType: void
    signature: void get_option(GettableSocketOption& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:193,1
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - GettableSocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::get_option
    linkageType: ''
    returnType: void
    signature: void get_option(GettableSocketOption& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: libtorrent::bind
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bind(endpoint_type const& /* endpoint */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:207,1
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: libtorrent::cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 9
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::cancel
    linkageType: ''
    returnType: void
    signature: void cancel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:213,1
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: libtorrent::cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 10
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::cancel
    linkageType: ''
    returnType: void
    signature: void cancel(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: libtorrent::bind
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void bind(endpoint_type const& /* endpoint */, error_code& /* ec */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: libtorrent::open
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void open(protocol_type const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: libtorrent::open
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void open(protocol_type const&, error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:250,1
    - Dst: endpoint_type
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:251,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:252,1
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 9
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::cancel
    - endpoint_type
    - libtorrent::close
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:259,1
    - Dst: endpoint_type
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:260,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:261,1
    - Dst: libtorrent::cancel
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 263
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 10
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::cancel
    - endpoint_type
    - libtorrent::close
    linkageType: ''
    returnType: void
    signature: void close(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: libtorrent::remote_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type remote_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:275,1
    - Dst: libtorrent::is_open
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: libtorrent::remote_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::is_open
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type remote_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:283,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 11
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type local_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:290,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type local_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lowest_layer
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: '& lowest_layer()'
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: '& next_layer()'
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_open
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: libtorrent::is_open
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::is_open
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:313,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:315,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - e
    - ' h'
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: libtorrent::handle_error
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::close
    - std::forward<Handler>
    linkageType: ''
    returnType: bool
    signature: bool handle_error(error_code e, Handler&& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:339,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - h
    - uh
    argTypes:
    - Handler
    - UnderlyingHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: libtorrent::wrap_allocator_t
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void wrap_allocator_t(Handler h, UnderlyingHandler uh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: libtorrent::wrap_allocator_t
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrap_allocator_t(wrap_allocator_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: libtorrent::wrap_allocator_t
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrap_allocator_t(wrap_allocator_t&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_handler
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:349,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:349,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<A>
    - m_handler
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_allocator
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: libtorrent::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - boost::asio::get_associated_allocator
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_executor
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 2
    functionsReached:
    - boost::asio::get_associated_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:371,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/proxy_base.hpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - u
    argTypes:
    - Handler
    - UnderlyingHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: libtorrent::wrap_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/proxy_base.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: wrap_allocator_t<Handler, UnderlyingHandler>
    signature: wrap_allocator_t<Handler, UnderlyingHandler> wrap_allocator(Handler
      h, UnderlyingHandler u)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:53,1
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:76,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:85,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:87,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:100,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:109,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:119,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 142
    functionName: libtorrent::peer_class_type_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - fill
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_class_type_filter
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:53,1
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: libtorrent::peer_class_type_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - fill
    linkageType: ''
    returnType: void
    signature: void peer_class_type_filter()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:76,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - peer_class
    argTypes:
    - socket_type_t
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: libtorrent::add
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void add(socket_type_t const st, peer_class_t const peer_class)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:85,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - peer_class
    argTypes:
    - socket_type_t
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: libtorrent::remove
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void remove(socket_type_t const st, peer_class_t const peer_class)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:100,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - peer_class
    argTypes:
    - socket_type_t
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: libtorrent::disallow
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void disallow(socket_type_t const st, peer_class_t const peer_class)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:109,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - peer_class
    argTypes:
    - socket_type_t
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: libtorrent::allow
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void allow(socket_type_t const st, peer_class_t const peer_class)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - st
    - peer_class_mask
    argTypes:
    - socket_type_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t apply(socket_type_t const st, std::uint32_t peer_class_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_class_type_filter
    - peer_class_type_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: "operator==(peer_class_type_filter const& lhs\n\t\t\t, peer_class_type_filter
      const& rhs)"
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: "friend operator==(peer_class_type_filter const& lhs\n\t\t\t, peer_class_type_filter
      const& rhs)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:53,1
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:76,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:85,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:87,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:100,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:102,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:109,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:111,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:119,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 142
    functionName: libtorrent::peer_class_type_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - fill
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_class_type_filter
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:53,1
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: libtorrent::peer_class_type_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - fill
    linkageType: ''
    returnType: void
    signature: void peer_class_type_filter()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:76,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - peer_class
    argTypes:
    - socket_type_t
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: libtorrent::add
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void add(socket_type_t const st, peer_class_t const peer_class)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:82,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:85,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - peer_class
    argTypes:
    - socket_type_t
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: libtorrent::remove
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void remove(socket_type_t const st, peer_class_t const peer_class)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:97,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:100,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - peer_class
    argTypes:
    - socket_type_t
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: libtorrent::disallow
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void disallow(socket_type_t const st, peer_class_t const peer_class)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:106,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:109,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - peer_class
    argTypes:
    - socket_type_t
    - peer_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: libtorrent::allow
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: void
    signature: void allow(socket_type_t const st, peer_class_t const peer_class)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - st
    - peer_class_mask
    argTypes:
    - socket_type_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: libtorrent::apply
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t apply(socket_type_t const st, std::uint32_t peer_class_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - peer_class_type_filter
    - peer_class_type_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: "operator==(peer_class_type_filter const& lhs\n\t\t\t, peer_class_type_filter
      const& rhs)"
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_type_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: "friend operator==(peer_class_type_filter const& lhs\n\t\t\t, peer_class_type_filter
      const& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: libtorrent::http_stream::http_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::http_stream::set_no_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_no_connect(bool c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' user'
    - ' password'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: libtorrent::http_stream::set_username
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_username(std::string const& user\n\t\t, std::string const&
      password)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' host'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: libtorrent::http_stream::set_host
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_host(std::string const& host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:70,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: libtorrent::http_stream::close
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - clear
    linkageType: ''
    returnType: void
    signature: void close(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:77,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: libtorrent::http_stream::close
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - clear
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_resolve
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:93,1
    - Dst: to_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:93,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:93,1
    - Dst: libtorrent::http_stream::name_lookup
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:95,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:95,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:95,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' endpoint'
    - ' handler'
    argTypes:
    - endpoint_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: libtorrent::http_stream::async_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached:
    - to_string
    - libtorrent::http_stream::name_lookup
    - std::move
    - async_resolve
    - wrap_allocator
    linkageType: ''
    returnType: void
    signature: void async_connect(endpoint_type const& endpoint, Handler const& handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:105,1
    - Dst: tcp::resolver::results_type::begin
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:107,1
    - Dst: libtorrent::http_stream::async_connect
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:108,1
    - Dst: auto::endpoint
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:108,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:108,1
    - Dst: libtorrent::http_stream::connected
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:110,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:110,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' e'
    - ips
    - h
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: libtorrent::http_stream::name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 1
    functionsReached:
    - auto::endpoint
    - libtorrent::http_stream::async_connect
    - std::move
    - handle_error
    - libtorrent::http_stream::connected
    - wrap_allocator
    - tcp::resolver::results_type::begin
    linkageType: ''
    returnType: void
    signature: "void name_lookup(error_code const& e, tcp::resolver::results_type
      ips\n\t\t, Handler h)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:117,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:123,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:124,1
    - Dst: print_endpoint
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:130,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:131,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:132,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:134,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:136,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:138,1
    - Dst: base64encode
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:138,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:141,1
    - Dst: async_write
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:142,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:142,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:142,1
    - Dst: libtorrent::http_stream::handshake1
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:144,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:144,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: libtorrent::http_stream::connected
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::http_stream::handshake1
    - async_write
    - std::move
    - handle_error
    - empty
    - print_endpoint
    - base64encode
    - write_string
    - both_sides_from_store_buffer
    - wrap_allocator
    - std::vector<char>
    linkageType: ''
    returnType: void
    signature: void connected(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:151,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:154,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:155,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:155,1
    - Dst: libtorrent::http_stream::handshake2
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:157,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:157,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: libtorrent::http_stream::handshake1
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 1
    functionsReached:
    - std::move
    - handle_error
    - libtorrent::http_stream::handshake2
    - both_sides_from_store_buffer
    - async_read
    - resize
    - wrap_allocator
    linkageType: ''
    returnType: void
    signature: void handshake1(error_code const& e, Handler h)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:164,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:166,1
    - Dst: push_back
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:187,1
    - Dst: std::strchr
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:188,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:188,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:191,1
    - Dst: libtorrent::http_stream::close
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:193,1
    - Dst: std::atoi
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:198,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:201,1
    - Dst: libtorrent::http_stream::close
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:203,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:207,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:208,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:213,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:214,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:214,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:214,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:214,1
    - Dst: libtorrent::http_stream::handshake2
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:216,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:216,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:217,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 218
    functionName: libtorrent::http_stream::handshake2
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 2
    functionsReached:
    - h
    - push_back
    - std::move
    - handle_error
    - libtorrent::http_stream::handshake2
    - libtorrent::http_stream::close
    - async_read
    - resize
    - std::strchr
    - both_sides_from_store_buffer
    - wrap_allocator
    - std::atoi
    - std::vector<char>
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void handshake2(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: libtorrent::http_stream::http_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::http_stream::set_no_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_no_connect(bool c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' user'
    - ' password'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: libtorrent::http_stream::set_username
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_username(std::string const& user\n\t\t, std::string const&
      password)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' host'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: libtorrent::http_stream::set_host
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_host(std::string const& host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:70,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: libtorrent::http_stream::close
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 1
    functionsReached:
    - peer_conn::close
    - clear
    linkageType: ''
    returnType: void
    signature: void close(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:77,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: libtorrent::http_stream::close
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 1
    functionsReached:
    - peer_conn::close
    - clear
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_resolve
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:93,1
    - Dst: to_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:93,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:93,1
    - Dst: libtorrent::http_stream::name_lookup
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:95,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:95,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:95,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' endpoint'
    - ' handler'
    argTypes:
    - endpoint_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: libtorrent::http_stream::async_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 1
    functionsReached:
    - to_string
    - libtorrent::http_stream::name_lookup
    - std::move
    - async_resolve
    - wrap_allocator
    linkageType: ''
    returnType: void
    signature: void async_connect(endpoint_type const& endpoint, Handler const& handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:105,1
    - Dst: tcp::resolver::results_type::begin
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:107,1
    - Dst: libtorrent::http_stream::async_connect
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:108,1
    - Dst: auto::endpoint
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:108,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:108,1
    - Dst: libtorrent::http_stream::connected
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:110,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:110,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' e'
    - ips
    - h
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: libtorrent::http_stream::name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 2
    functionsReached:
    - auto::endpoint
    - libtorrent::http_stream::async_connect
    - std::move
    - handle_error
    - libtorrent::http_stream::connected
    - wrap_allocator
    - tcp::resolver::results_type::begin
    linkageType: ''
    returnType: void
    signature: "void name_lookup(error_code const& e, tcp::resolver::results_type
      ips\n\t\t, Handler h)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:117,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:123,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:124,1
    - Dst: print_endpoint
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:130,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:131,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:132,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:134,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:136,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:138,1
    - Dst: base64encode
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:138,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:141,1
    - Dst: async_write
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:142,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:142,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:142,1
    - Dst: libtorrent::http_stream::handshake1
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:144,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:144,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: libtorrent::http_stream::connected
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::http_stream::handshake1
    - async_write
    - std::move
    - handle_error
    - empty
    - print_endpoint
    - base64encode
    - write_string
    - both_sides_from_store_buffer
    - wrap_allocator
    - std::vector<char>
    linkageType: ''
    returnType: void
    signature: void connected(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:151,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:154,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:155,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:155,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:155,1
    - Dst: libtorrent::http_stream::handshake2
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:157,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:157,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: libtorrent::http_stream::handshake1
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 2
    functionsReached:
    - std::move
    - handle_error
    - libtorrent::http_stream::handshake2
    - both_sides_from_store_buffer
    - async_read
    - resize
    - wrap_allocator
    linkageType: ''
    returnType: void
    signature: void handshake1(error_code const& e, Handler h)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:164,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:166,1
    - Dst: push_back
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:187,1
    - Dst: std::strchr
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:188,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:188,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:191,1
    - Dst: libtorrent::http_stream::close
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:193,1
    - Dst: std::atoi
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:198,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:201,1
    - Dst: libtorrent::http_stream::close
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:203,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:207,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:208,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:213,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:214,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:214,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:214,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:214,1
    - Dst: libtorrent::http_stream::handshake2
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:216,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:216,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/http_stream.hpp:217,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 218
    functionName: libtorrent::http_stream::handshake2
    functionSourceFile: /src/libtorrent/include/libtorrent/http_stream.hpp
    functionUses: 4
    functionsReached:
    - h
    - push_back
    - std::move
    - handle_error
    - libtorrent::http_stream::handshake2
    - libtorrent::http_stream::close
    - async_read
    - resize
    - std::strchr
    - both_sides_from_store_buffer
    - wrap_allocator
    - std::atoi
    - std::vector<char>
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void handshake2(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/include/libtorrent/optional.hpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - def
    argTypes:
    - boost::optional<T>
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: libtorrent::value_or
    functionSourceFile: /src/libtorrent/include/libtorrent/optional.hpp
    functionUses: 0
    functionsReached:
    - T
    linkageType: ''
    returnType: T
    signature: T value_or(boost::optional<T> opt, U def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/libtorrent/include/libtorrent/optional.hpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - def
    argTypes:
    - boost::optional<T>
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: libtorrent::value_or
    functionSourceFile: /src/libtorrent/include/libtorrent/optional.hpp
    functionUses: 0
    functionsReached:
    - T
    linkageType: ''
    returnType: T
    signature: T value_or(boost::optional<T> opt, U def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: T
    signature: T read_impl(InIt& start, type<T>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_impl(InIt& start, type<std::uint8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::int8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::int8_t>
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_impl(InIt& start, type<std::int8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/io.hpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/io.hpp:93,1
    - Dst: static_cast<In>
      Src: /src/libtorrent/include/libtorrent/io.hpp:93,1
    - Dst: static_cast<Byte>
      Src: /src/libtorrent/include/libtorrent/io.hpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ' start'
    argTypes:
    - In
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<T>
    - static_cast<Byte>
    - static_cast<In>
    linkageType: ''
    returnType: "typename std::enable_if<(std::is_integral<In>::value\n\t\t&& !std::is_same<In,
      bool>::value)\n\t\t|| std::is_enum<In>::value, void>::type"
    signature: "typename std::enable_if<(std::is_integral<In>::value\n\t\t&& !std::is_same<In,
      bool>::value)\n\t\t|| std::is_enum<In>::value, void>::type write_impl(In data,
      OutIt& start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - Val
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: typename std::enable_if<std::is_same<Val, bool>::value, void>::type
    signature: typename std::enable_if<std::is_same<Val, bool>::value, void>::type
      write_impl(Val val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:110,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::read_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t read_int64(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:114,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t read_uint64(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:118,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::read_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t read_uint32(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:122,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t read_int32(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:126,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::read_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int16_t
    signature: std::int16_t read_int16(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:130,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::read_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t read_uint16(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:134,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::read_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_int8(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:138,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::read_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_uint8(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::write_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint64(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::write_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int64(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::write_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 35
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint32(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::write_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int32(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::write_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint16(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::write_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int16(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: libtorrent::aux::write_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 33
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint8(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: libtorrent::aux::write_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int8(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: reinterpret_cast<void*>
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:176,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' str'
    - ' start'
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 6
    functionsReached:
    - c_str
    - std::memcpy
    - reinterpret_cast<void*>
    - libtorrent::aux::size
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& str, char*& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/libtorrent/include/libtorrent/io.hpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' val'
    - ' out'
    argTypes:
    - std::string
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 6
    functionsReached:
    - length
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& val, OutIt& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 8
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: T
    signature: T read_impl(InIt& start, type<T>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 8
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_impl(InIt& start, type<std::uint8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::int8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 8
    functionsReached:
    - static_cast<std::int8_t>
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_impl(InIt& start, type<std::int8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/io.hpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/io.hpp:93,1
    - Dst: static_cast<In>
      Src: /src/libtorrent/include/libtorrent/io.hpp:93,1
    - Dst: static_cast<Byte>
      Src: /src/libtorrent/include/libtorrent/io.hpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ' start'
    argTypes:
    - In
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 9
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<T>
    - static_cast<Byte>
    - static_cast<In>
    linkageType: ''
    returnType: "typename std::enable_if<(std::is_integral<In>::value\n\t\t&& !std::is_same<In,
      bool>::value)\n\t\t|| std::is_enum<In>::value, void>::type"
    signature: "typename std::enable_if<(std::is_integral<In>::value\n\t\t&& !std::is_same<In,
      bool>::value)\n\t\t|| std::is_enum<In>::value, void>::type write_impl(In data,
      OutIt& start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - Val
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: typename std::enable_if<std::is_same<Val, bool>::value, void>::type
    signature: typename std::enable_if<std::is_same<Val, bool>::value, void>::type
      write_impl(Val val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:110,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::read_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t read_int64(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:114,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t read_uint64(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:118,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::read_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t read_uint32(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:122,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t read_int32(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:126,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::read_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int16_t
    signature: std::int16_t read_int16(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:130,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::read_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t read_uint16(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:134,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::read_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_int8(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:138,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::read_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_uint8(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::write_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint64(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::write_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int64(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::write_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 35
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint32(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::write_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int32(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::write_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint16(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::write_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int16(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: libtorrent::aux::write_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 33
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint8(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: libtorrent::aux::write_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int8(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: reinterpret_cast<void*>
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:176,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' str'
    - ' start'
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 6
    functionsReached:
    - c_str
    - std::memcpy
    - reinterpret_cast<void*>
    - libtorrent::aux::size
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& str, char*& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/libtorrent/include/libtorrent/io.hpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' val'
    - ' out'
    argTypes:
    - std::string
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 6
    functionsReached:
    - length
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& val, OutIt& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 16
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: T
    signature: T read_impl(InIt& start, type<T>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 16
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_impl(InIt& start, type<std::uint8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::int8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 16
    functionsReached:
    - static_cast<std::int8_t>
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_impl(InIt& start, type<std::int8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/io.hpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/io.hpp:93,1
    - Dst: static_cast<In>
      Src: /src/libtorrent/include/libtorrent/io.hpp:93,1
    - Dst: static_cast<Byte>
      Src: /src/libtorrent/include/libtorrent/io.hpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ' start'
    argTypes:
    - In
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 18
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<T>
    - static_cast<Byte>
    - static_cast<In>
    linkageType: ''
    returnType: "typename std::enable_if<(std::is_integral<In>::value\n\t\t&& !std::is_same<In,
      bool>::value)\n\t\t|| std::is_enum<In>::value, void>::type"
    signature: "typename std::enable_if<(std::is_integral<In>::value\n\t\t&& !std::is_same<In,
      bool>::value)\n\t\t|| std::is_enum<In>::value, void>::type write_impl(In data,
      OutIt& start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - Val
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 19
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: typename std::enable_if<std::is_same<Val, bool>::value, void>::type
    signature: typename std::enable_if<std::is_same<Val, bool>::value, void>::type
      write_impl(Val val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:110,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::read_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t read_int64(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:114,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t read_uint64(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:118,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::read_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t read_uint32(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:122,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t read_int32(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:126,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::read_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int16_t
    signature: std::int16_t read_int16(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:130,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::read_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t read_uint16(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:134,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::read_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_int8(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:138,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::read_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_uint8(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::write_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint64(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::write_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int64(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::write_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 35
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint32(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::write_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int32(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::write_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint16(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::write_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int16(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: libtorrent::aux::write_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 33
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint8(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: libtorrent::aux::write_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int8(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: reinterpret_cast<void*>
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:176,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' str'
    - ' start'
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 6
    functionsReached:
    - c_str
    - std::memcpy
    - reinterpret_cast<void*>
    - libtorrent::aux::size
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& str, char*& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/libtorrent/include/libtorrent/io.hpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' val'
    - ' out'
    argTypes:
    - std::string
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 6
    functionsReached:
    - length
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& val, OutIt& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 24
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: T
    signature: T read_impl(InIt& start, type<T>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 24
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_impl(InIt& start, type<std::uint8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::int8_t>
      Src: /src/libtorrent/include/libtorrent/io.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 24
    functionsReached:
    - static_cast<std::int8_t>
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_impl(InIt& start, type<std::int8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/io.hpp:92,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/io.hpp:93,1
    - Dst: static_cast<In>
      Src: /src/libtorrent/include/libtorrent/io.hpp:93,1
    - Dst: static_cast<Byte>
      Src: /src/libtorrent/include/libtorrent/io.hpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ' start'
    argTypes:
    - In
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 27
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<T>
    - static_cast<Byte>
    - static_cast<In>
    linkageType: ''
    returnType: "typename std::enable_if<(std::is_integral<In>::value\n\t\t&& !std::is_same<In,
      bool>::value)\n\t\t|| std::is_enum<In>::value, void>::type"
    signature: "typename std::enable_if<(std::is_integral<In>::value\n\t\t&& !std::is_same<In,
      bool>::value)\n\t\t|| std::is_enum<In>::value, void>::type write_impl(In data,
      OutIt& start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - Val
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 28
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: typename std::enable_if<std::is_same<Val, bool>::value, void>::type
    signature: typename std::enable_if<std::is_same<Val, bool>::value, void>::type
      write_impl(Val val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:110,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::read_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t read_int64(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:114,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t read_uint64(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:118,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::read_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t read_uint32(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:122,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t read_int32(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:126,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::read_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int16_t
    signature: std::int16_t read_int16(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:130,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::read_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t read_uint16(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:134,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::read_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_int8(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:138,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/io.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' start'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::read_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_uint8(InIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::write_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint64(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::write_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int64(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::write_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 35
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint32(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::write_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int32(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::write_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint16(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::write_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int16(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: libtorrent::aux::write_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 33
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint8(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/io.hpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' start'
    argTypes:
    - T
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: libtorrent::aux::write_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int8(T val, OutIt& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: reinterpret_cast<void*>
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:175,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:176,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/io.hpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' str'
    - ' start'
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 6
    functionsReached:
    - c_str
    - std::memcpy
    - reinterpret_cast<void*>
    - libtorrent::aux::size
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& str, char*& start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/libtorrent/include/libtorrent/io.hpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' val'
    - ' out'
    argTypes:
    - std::string
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/io.hpp
    functionUses: 6
    functionsReached:
    - length
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& val, OutIt& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: libtorrent::utp_status
    functionSourceFile: /src/libtorrent/include/libtorrent/session_status.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT utp_status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 234
    functionName: libtorrent::session_status
    functionSourceFile: /src/libtorrent/include/libtorrent/session_status.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT session_status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: libtorrent::utp_status
    functionSourceFile: /src/libtorrent/include/libtorrent/session_status.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT utp_status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 234
    functionName: libtorrent::session_status
    functionSourceFile: /src/libtorrent/include/libtorrent/session_status.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT session_status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot(allocation_slot const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot(allocation_slot&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(allocation_slot const&) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot & operator=(allocation_slot const&) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(allocation_slot&&) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot & operator=(allocation_slot&&) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: operator==(allocation_slot const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(allocation_slot const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: operator!=(allocation_slot const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(allocation_slot const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - idx
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: void
    signature: void allocation_slot(std::size_t const idx) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::val
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t val() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT stack_allocator
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator(stack_allocator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator(stack_allocator&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::aux::gen
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t gen() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::gen
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:101,1
    - Dst: libtorrent::aux::is_valid
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:101,1
    - Dst: libtorrent::aux::copy_string
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:103,1
    - Dst: fun
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:103,1
    - Dst: libtorrent::aux::gen
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - fun
    argTypes:
    - stack_allocator
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::copy_string
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::is_valid
    - libtorrent::aux::copy_string
    - fun
    - libtorrent::aux::gen
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot copy_string(stack_allocator& a, F fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::allocation_slot
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::allocation_slot
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot(allocation_slot const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot(allocation_slot&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(allocation_slot const&) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot & operator=(allocation_slot const&) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(allocation_slot&&) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot & operator=(allocation_slot&&) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: operator==(allocation_slot const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(allocation_slot const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: operator!=(allocation_slot const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(allocation_slot const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - idx
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: void
    signature: void allocation_slot(std::size_t const idx) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::val
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t val() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT stack_allocator
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator(stack_allocator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator(stack_allocator&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::aux::gen
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t gen() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::gen
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:101,1
    - Dst: libtorrent::aux::is_valid
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:101,1
    - Dst: libtorrent::aux::copy_string
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:103,1
    - Dst: fun
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:103,1
    - Dst: libtorrent::aux::gen
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - fun
    argTypes:
    - stack_allocator
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::copy_string
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::is_valid
    - libtorrent::aux::copy_string
    - fun
    - libtorrent::aux::gen
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot copy_string(stack_allocator& a, F fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::allocation_slot
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::allocation_slot
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot(allocation_slot const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot(allocation_slot&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(allocation_slot const&) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot & operator=(allocation_slot const&) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(allocation_slot&&) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot & operator=(allocation_slot&&) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: operator==(allocation_slot const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(allocation_slot const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: operator!=(allocation_slot const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(allocation_slot const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - idx
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: void
    signature: void allocation_slot(std::size_t const idx) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::val
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t val() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT stack_allocator
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator(stack_allocator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator(stack_allocator&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::aux::gen
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t gen() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::gen
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:101,1
    - Dst: libtorrent::aux::is_valid
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:101,1
    - Dst: libtorrent::aux::copy_string
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:103,1
    - Dst: fun
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:103,1
    - Dst: libtorrent::aux::gen
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - fun
    argTypes:
    - stack_allocator
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::copy_string
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::is_valid
    - libtorrent::aux::copy_string
    - fun
    - libtorrent::aux::gen
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot copy_string(stack_allocator& a, F fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::allocation_slot
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::allocation_slot
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot(allocation_slot const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void allocation_slot(allocation_slot&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(allocation_slot const&) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot & operator=(allocation_slot const&) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(allocation_slot&&) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot & operator=(allocation_slot&&) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: operator==(allocation_slot const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(allocation_slot const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - allocation_slot
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: operator!=(allocation_slot const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(allocation_slot const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - idx
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::allocation_slot
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: void
    signature: void allocation_slot(std::size_t const idx) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::aux::val
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t val() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT stack_allocator
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator(stack_allocator const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::stack_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_allocator(stack_allocator&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::aux::gen
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t gen() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::gen
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:101,1
    - Dst: libtorrent::aux::is_valid
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:101,1
    - Dst: libtorrent::aux::copy_string
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:103,1
    - Dst: fun
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:103,1
    - Dst: libtorrent::aux::gen
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - fun
    argTypes:
    - stack_allocator
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: libtorrent::aux::copy_string
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::is_valid
    - libtorrent::aux::copy_string
    - fun
    - libtorrent::aux::gen
    linkageType: ''
    returnType: allocation_slot
    signature: allocation_slot copy_string(stack_allocator& a, F fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::allocation_slot
      Src: /src/libtorrent/include/libtorrent/stack_allocator.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/stack_allocator.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::allocation_slot
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:58,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:59,1
    - Dst: random
      Src: /src/libtorrent/include/libtorrent/random.hpp:60,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/random.hpp:60,1
    - Dst: swap
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: std::shuffle
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::random_shuffle
    functionSourceFile: /src/libtorrent/include/libtorrent/random.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::data
    - swap
    - std::uint32_t
    - libtorrent::aux::size
    - std::shuffle
    - libtorrent::aux::random_engine
    - random
    linkageType: ''
    returnType: void
    signature: void random_shuffle(Range& range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:58,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:59,1
    - Dst: random
      Src: /src/libtorrent/include/libtorrent/random.hpp:60,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/random.hpp:60,1
    - Dst: swap
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: std::shuffle
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::random_shuffle
    functionSourceFile: /src/libtorrent/include/libtorrent/random.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::data
    - swap
    - std::uint32_t
    - libtorrent::aux::size
    - std::shuffle
    - libtorrent::aux::random_engine
    - random
    linkageType: ''
    returnType: void
    signature: void random_shuffle(Range& range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:58,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:59,1
    - Dst: random
      Src: /src/libtorrent/include/libtorrent/random.hpp:60,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/random.hpp:60,1
    - Dst: swap
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: std::shuffle
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::random_shuffle
    functionSourceFile: /src/libtorrent/include/libtorrent/random.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::data
    - swap
    - std::uint32_t
    - libtorrent::aux::size
    - std::shuffle
    - libtorrent::aux::random_engine
    - random
    linkageType: ''
    returnType: void
    signature: void random_shuffle(Range& range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:58,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:59,1
    - Dst: random
      Src: /src/libtorrent/include/libtorrent/random.hpp:60,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/random.hpp:60,1
    - Dst: swap
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:63,1
    - Dst: std::shuffle
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    - Dst: libtorrent::aux::random_engine
      Src: /src/libtorrent/include/libtorrent/random.hpp:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' range'
    argTypes:
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::random_shuffle
    functionSourceFile: /src/libtorrent/include/libtorrent/random.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::data
    - swap
    - std::uint32_t
    - libtorrent::aux::size
    - std::shuffle
    - libtorrent::aux::random_engine
    - random
    linkageType: ''
    returnType: void
    signature: void random_shuffle(Range& range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 114
    functionName: libtorrent::pe_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/session_settings.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT pe_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: libtorrent::pe_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/session_settings.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pe_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 114
    functionName: libtorrent::pe_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/session_settings.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT pe_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: libtorrent::pe_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/session_settings.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pe_settings()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ip_voter
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:50,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:71,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 108
    functionName: libtorrent::ip_voter
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::ip_voter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT ip_voter
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::external_address
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: address
    signature: address external_address() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:71,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - external_ip_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: operator<(external_ip_t const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool operator<(external_ip_t const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 132
    functionName: libtorrent::external_ip
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 0
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT external_ip
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: libtorrent::external_ip
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 0
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: void
    signature: void external_ip()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ip_voter
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:50,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:71,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 108
    functionName: libtorrent::ip_voter
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::ip_voter
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT ip_voter
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::external_address
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: address
    signature: address external_address() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:71,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - external_ip_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: operator<(external_ip_t const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool operator<(external_ip_t const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 132
    functionName: libtorrent::external_ip
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 0
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT external_ip
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/ip_voter.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: libtorrent::external_ip
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_voter.hpp
    functionUses: 0
    functionsReached:
    - address_v4
    - address_v6
    linkageType: ''
    returnType: void
    signature: void external_ip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 151
    functionName: libtorrent::tracker_request
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT tracker_request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::tracker_request
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: libtorrent::tracker_response
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_response()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 232
    functionName: libtorrent::request_callback
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_FORMAT
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT request_callback
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::request_callback
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void request_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: ~request_callback()
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~request_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: libtorrent::tracker_scrape_response
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void tracker_scrape_response(tracker_request const& /*req*/\n\t\t\t,
      int /*complete*/, int /*incomplete*/, int /*downloads*/\n\t\t\t, int /*downloaders*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_executor
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 274
    functionName: std::enable_shared_from_this<timeout_handler>
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached:
    - get_executor
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<timeout_handler>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: libtorrent::timeout_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timeout_handler(timeout_handler const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: libtorrent::cancelled
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cancelled() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::get_executor
    linkageType: ''
    returnType: auto
    signature: auto get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:290,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:290,1
    - Dst: std::static_pointer_cast<tracker_connection>
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:299,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:300,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:309,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:310,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 315
    functionName: libtorrent::tracker_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::shared_from_this
    - seconds32
    - std::string
    - std::static_pointer_cast<tracker_connection>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT tracker_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: ~tracker_connection() override
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~tracker_connection() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: libtorrent::tracker_req
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tracker_request
    signature: tracker_request & tracker_req() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    functionName: libtorrent::bind_socket
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::listen_socket_handle
    signature: aux::listen_socket_handle & bind_socket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<tracker_connection>
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:299,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: libtorrent::shared_from_this
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::shared_from_this
    - std::static_pointer_cast<tracker_connection>
    linkageType: ''
    returnType: std::shared_ptr<tracker_connection>
    signature: std::shared_ptr<tracker_connection> shared_from_this()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<request_callback>
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:351,1
    - Dst: std::weak_ptr<request_callback>
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 410
    functionName: libtorrent::tracker_manager
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached:
    - std::weak_ptr<request_callback>
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT tracker_manager
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: libtorrent::tracker_manager
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_manager(tracker_manager const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 380
    functionName: libtorrent::settings
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings & settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: libtorrent::host_resolver
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::resolver_interface
    signature: aux::resolver_interface & host_resolver()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 151
    functionName: libtorrent::tracker_request
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT tracker_request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::tracker_request
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: libtorrent::tracker_response
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_response()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 232
    functionName: libtorrent::request_callback
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_FORMAT
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT request_callback
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: libtorrent::request_callback
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void request_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: ~request_callback()
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~request_callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: libtorrent::tracker_scrape_response
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void tracker_scrape_response(tracker_request const& /*req*/\n\t\t\t,
      int /*complete*/, int /*incomplete*/, int /*downloads*/\n\t\t\t, int /*downloaders*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_executor
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 274
    functionName: std::enable_shared_from_this<timeout_handler>
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached:
    - get_executor
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<timeout_handler>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: libtorrent::timeout_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timeout_handler(timeout_handler const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: libtorrent::cancelled
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cancelled() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::get_executor
    linkageType: ''
    returnType: auto
    signature: auto get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:290,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:290,1
    - Dst: std::static_pointer_cast<tracker_connection>
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:299,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:300,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:309,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:310,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 315
    functionName: libtorrent::tracker_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::shared_from_this
    - seconds32
    - std::string
    - std::static_pointer_cast<tracker_connection>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT tracker_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: ~tracker_connection() override
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~tracker_connection() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: libtorrent::tracker_req
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tracker_request
    signature: tracker_request & tracker_req() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    functionName: libtorrent::bind_socket
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::listen_socket_handle
    signature: aux::listen_socket_handle & bind_socket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<tracker_connection>
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:299,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: libtorrent::shared_from_this
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::shared_from_this
    - std::static_pointer_cast<tracker_connection>
    linkageType: ''
    returnType: std::shared_ptr<tracker_connection>
    signature: std::shared_ptr<tracker_connection> shared_from_this()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::weak_ptr<request_callback>
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:351,1
    - Dst: std::weak_ptr<request_callback>
      Src: /src/libtorrent/include/libtorrent/tracker_manager.hpp:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 410
    functionName: libtorrent::tracker_manager
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached:
    - std::weak_ptr<request_callback>
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT tracker_manager
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: libtorrent::tracker_manager
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_manager(tracker_manager const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 380
    functionName: libtorrent::settings
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings & settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: libtorrent::host_resolver
    functionSourceFile: /src/libtorrent/include/libtorrent/tracker_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::resolver_interface
    signature: aux::resolver_interface & host_resolver()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 589
    functionName: libtorrent::torrent_status
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_status.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 torrent_status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - torrent_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: operator==(torrent_status const& st) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_status.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(torrent_status const& st) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 589
    functionName: libtorrent::torrent_status
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_status.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 torrent_status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' st'
    argTypes:
    - torrent_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: operator==(torrent_status const& st) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_status.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(torrent_status const& st) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::hash_value
      Src: /src/libtorrent/include/libtorrent/torrent_status.hpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ts'
    argTypes:
    - libtorrent::torrent_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: operator()(libtorrent::torrent_status const& ts) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_status.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::hash_value
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(libtorrent::torrent_status const& ts) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::hash_value
      Src: /src/libtorrent/include/libtorrent/torrent_status.hpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ts'
    argTypes:
    - libtorrent::torrent_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: operator()(libtorrent::torrent_status const& ts) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_status.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::hash_value
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(libtorrent::torrent_status const& ts) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dh_key_exchange
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: libtorrent::dh_key_exchange
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::dh_key_exchange
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT dh_key_exchange
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::get_local_key
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: key_t
    signature: key_t & get_local_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::get_secret
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: key_t
    signature: key_t & get_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::get_hash_xor_mask
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash & get_hash_xor_mask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:114,1
    - Dst: back
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:114,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 133
    functionName: libtorrent::encryption_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - libtorrent::get
    - back
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT encryption_handler
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:114,1
    - Dst: back
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: libtorrent::is_send_plaintext
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - back
    linkageType: ''
    returnType: bool
    signature: bool is_send_plaintext() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::is_recv_plaintext
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: bool
    signature: bool is_recv_plaintext() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - plugin
    - n
    argTypes:
    - std::shared_ptr<crypto_plugin>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::barrier
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void barrier(std::shared_ptr<crypto_plugin> plugin, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc4_handler
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 156
    functionName: libtorrent::crypto_plugin
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached:
    - rc4_handler
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT crypto_plugin
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dh_key_exchange
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: libtorrent::dh_key_exchange
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dh_key_exchange
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT dh_key_exchange
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::get_local_key
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: key_t
    signature: key_t & get_local_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::get_secret
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: key_t
    signature: key_t & get_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::get_hash_xor_mask
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash & get_hash_xor_mask() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:114,1
    - Dst: back
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:114,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 133
    functionName: libtorrent::encryption_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - libtorrent::get
    - back
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT encryption_handler
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:114,1
    - Dst: back
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: libtorrent::is_send_plaintext
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::empty
    - back
    linkageType: ''
    returnType: bool
    signature: bool is_send_plaintext() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: libtorrent::is_recv_plaintext
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: bool
    signature: bool is_recv_plaintext() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - plugin
    - n
    argTypes:
    - std::shared_ptr<crypto_plugin>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::barrier
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void barrier(std::shared_ptr<crypto_plugin> plugin, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc4_handler
      Src: /src/libtorrent/include/libtorrent/pe_crypto.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 156
    functionName: libtorrent::crypto_plugin
    functionSourceFile: /src/libtorrent/include/libtorrent/pe_crypto.hpp
    functionUses: 0
    functionsReached:
    - rc4_handler
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT crypto_plugin
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - i
    argTypes:
    - Index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: libtorrent::index_iter
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void index_iter(Index i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: operator++()
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: index_iter
    signature: index_iter operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator--()
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: index_iter
    signature: index_iter operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Index
    signature: Index operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - index_iter
    - index_iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: operator==(index_iter lhs, index_iter rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(index_iter lhs, index_iter rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - index_iter
    - index_iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: operator!=(index_iter lhs, index_iter rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(index_iter lhs, index_iter rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: index_iter<Index>
    signature: index_iter<Index> begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: index_iter<Index>
    signature: index_iter<Index> end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - i
    argTypes:
    - Index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: libtorrent::index_iter
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void index_iter(Index i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: operator++()
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: index_iter
    signature: index_iter operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator--()
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: index_iter
    signature: index_iter operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: operator*() const
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Index
    signature: Index operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - index_iter
    - index_iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: operator==(index_iter lhs, index_iter rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(index_iter lhs, index_iter rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - index_iter
    - index_iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: operator!=(index_iter lhs, index_iter rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(index_iter lhs, index_iter rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: index_iter<Index>
    signature: index_iter<Index> begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/index_range.hpp
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: index_iter<Index>
    signature: index_iter<Index> end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: libtorrent::ut_pex_peer_store
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT ut_pex_peer_store
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: ~ut_pex_peer_store()
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ut_pex_peer_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::packet_finished
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:194,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:199,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:201,1
    - Dst: auto::was_introduced_by
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:201,1
    - Dst: send_message
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:291,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:295,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:296,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:299,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:301,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:303,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:304,1
    - Dst: send_buffer
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:306,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 309
    functionName: libtorrent::bt_peer_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached:
    - send_buffer
    - send_message
    - libtorrent::packet_finished
    - static_cast<char>
    - TORRENT_ASSERT
    - libtorrent::aux::write_int32
    - auto::was_introduced_by
    - lock
    - libtorrent::move
    - libtorrent::stats_counters
    - TORRENT_UNUSED
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT bt_peer_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: libtorrent::our_pid
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id our_pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: libtorrent::supports_encryption
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_encryption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: libtorrent::rc4_encrypted
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rc4_encrypted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: connection_type
    signature: connection_type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::packet_finished
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: libtorrent::packet_finished
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::packet_finished
    linkageType: ''
    returnType: bool
    signature: bool packet_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: libtorrent::supports_holepunch
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_holepunch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ut_pex
    argTypes:
    - std::weak_ptr<ut_pex_peer_store>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: libtorrent::set_ut_pex
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void set_ut_pex(std::weak_ptr<ut_pex_peer_store> ut_pex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:201,1
    - Dst: auto::was_introduced_by
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: libtorrent::was_introduced_by
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached:
    - auto::was_introduced_by
    - lock
    linkageType: ''
    returnType: bool
    signature: bool was_introduced_by(tcp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: libtorrent::support_extensions
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool support_extensions() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_send_plaintext
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:351,1
    - Dst: Holder::data
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:355,1
    - Dst: libtorrent::append_send_buffer
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:356,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:356,1
    - Dst: libtorrent::append_send_buffer
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:361,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - holder
    - size
    argTypes:
    - Holder
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 363
    functionName: libtorrent::append_const_send_buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::is_send_plaintext
    - libtorrent::move
    - Holder::data
    - libtorrent::append_send_buffer
    linkageType: ''
    returnType: "public:\n\n\t\t// these functions encrypt the send buffer if m_rc4_encrypted\n\t\t//
      is true, otherwise it passes the call to the\n\t\t// peer_connection functions
      of the same names\n\t\ttemplate <typename Holder>"
    signature: "public:\n\n\t\t// these functions encrypt the send buffer if m_rc4_encrypted\n\t\t//
      is true, otherwise it passes the call to the\n\t\t// peer_connection functions
      of the same names\n\t\ttemplate <typename Holder> append_const_send_buffer(Holder
      holder, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - l
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: libtorrent::range
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void range(int s, int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: libtorrent::ut_pex_peer_store
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT ut_pex_peer_store
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: ~ut_pex_peer_store()
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ut_pex_peer_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::packet_finished
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:194,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:199,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:201,1
    - Dst: auto::was_introduced_by
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:201,1
    - Dst: send_message
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:291,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:295,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:296,1
    - Dst: static_cast<char>
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:299,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:301,1
    - Dst: libtorrent::aux::write_int32
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:303,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:304,1
    - Dst: send_buffer
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:306,1
    - Dst: libtorrent::stats_counters
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 309
    functionName: libtorrent::bt_peer_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached:
    - send_buffer
    - send_message
    - libtorrent::packet_finished
    - static_cast<char>
    - TORRENT_ASSERT
    - libtorrent::aux::write_int32
    - auto::was_introduced_by
    - lock
    - libtorrent::move
    - libtorrent::stats_counters
    - TORRENT_UNUSED
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT bt_peer_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: libtorrent::our_pid
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id our_pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: libtorrent::supports_encryption
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_encryption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: libtorrent::rc4_encrypted
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rc4_encrypted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: connection_type
    signature: connection_type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::packet_finished
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: libtorrent::packet_finished
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::packet_finished
    linkageType: ''
    returnType: bool
    signature: bool packet_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: libtorrent::supports_holepunch
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_holepunch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ut_pex
    argTypes:
    - std::weak_ptr<ut_pex_peer_store>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: libtorrent::set_ut_pex
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void set_ut_pex(std::weak_ptr<ut_pex_peer_store> ut_pex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:201,1
    - Dst: auto::was_introduced_by
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: libtorrent::was_introduced_by
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached:
    - auto::was_introduced_by
    - lock
    linkageType: ''
    returnType: bool
    signature: bool was_introduced_by(tcp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: libtorrent::support_extensions
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool support_extensions() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_send_plaintext
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:351,1
    - Dst: Holder::data
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:355,1
    - Dst: libtorrent::append_send_buffer
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:356,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:356,1
    - Dst: libtorrent::append_send_buffer
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:361,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - holder
    - size
    argTypes:
    - Holder
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 363
    functionName: libtorrent::append_const_send_buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::is_send_plaintext
    - libtorrent::move
    - Holder::data
    - libtorrent::append_send_buffer
    linkageType: ''
    returnType: "public:\n\n\t\t// these functions encrypt the send buffer if m_rc4_encrypted\n\t\t//
      is true, otherwise it passes the call to the\n\t\t// peer_connection functions
      of the same names\n\t\ttemplate <typename Holder>"
    signature: "public:\n\n\t\t// these functions encrypt the send buffer if m_rc4_encrypted\n\t\t//
      is true, otherwise it passes the call to the\n\t\t// peer_connection functions
      of the same names\n\t\ttemplate <typename Holder> append_const_send_buffer(Holder
      holder, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:456,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - l
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: libtorrent::range
    functionSourceFile: /src/libtorrent/include/libtorrent/bt_peer_connection.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void range(int s, int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: libtorrent::peer_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: operator==(const peer_entry& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const peer_entry& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: operator<(const peer_entry& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const peer_entry& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: libtorrent::peer_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: operator==(const peer_entry& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const peer_entry& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: operator<(const peer_entry& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const peer_entry& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_channel
      Src: /src/libtorrent/include/libtorrent/stat.hpp:51,1
    - Dst: m_total_counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:52,1
    - Dst: m_counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:53,1
    - Dst: m_5_sec_average
      Src: /src/libtorrent/include/libtorrent/stat.hpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:59,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:61,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 107
    functionName: libtorrent::stat_channel
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 1
    functionsReached:
    - m_5_sec_average
    - m_total_counter
    - TORRENT_ASSERT
    - m_counter
    - libtorrent::stat_channel
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT stat_channel
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:59,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stat_channel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: operator+=(stat_channel const& s)
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void operator+=(stat_channel const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: libtorrent::add
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void add(int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::low_pass_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t low_pass_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::total
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: libtorrent::offset
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void offset(std::int64_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::counter
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t counter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for
      Src: /src/libtorrent/include/libtorrent/stat.hpp:114,1
    - Dst: sent_syn
      Src: /src/libtorrent/include/libtorrent/stat.hpp:118,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:120,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:126,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:126,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:133,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:135,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 137
    functionName: libtorrent::stat
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT
    - sent_syn
    - libtorrent::add
    - for
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT stat
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:141,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:142,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:144,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bytes_payload
    - bytes_protocol
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: libtorrent::sent_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::add
    linkageType: ''
    returnType: void
    signature: void sent_bytes(int bytes_payload, int bytes_protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:160,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes_transferred
    - ipv6
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: libtorrent::trancieve_ip_packet
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::add
    linkageType: ''
    returnType: void
    signature: void trancieve_ip_packet(int bytes_transferred, bool ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: libtorrent::upload_ip_overhead
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int upload_ip_overhead() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: libtorrent::download_ip_overhead
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int download_ip_overhead() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::second_tick
      Src: /src/libtorrent/include/libtorrent/stat.hpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - tick_interval_ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: libtorrent::second_tick
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::second_tick
    linkageType: ''
    returnType: void
    signature: void second_tick(int tick_interval_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:176,1
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:177,1
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: libtorrent::low_pass_upload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::low_pass_rate
    linkageType: ''
    returnType: int
    signature: int low_pass_upload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:183,1
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:184,1
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: libtorrent::low_pass_download_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::low_pass_rate
    linkageType: ''
    returnType: int
    signature: int low_pass_download_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:190,1
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:191,1
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: libtorrent::upload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int upload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:197,1
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:198,1
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: libtorrent::download_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int download_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:204,1
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:205,1
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: libtorrent::total_upload
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_upload() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:211,1
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:212,1
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: libtorrent::total_download
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: libtorrent::upload_payload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int upload_payload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: libtorrent::download_payload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int download_payload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: libtorrent::total_payload_upload
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_payload_upload() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: libtorrent::total_payload_download
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_payload_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: libtorrent::total_protocol_upload
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_protocol_upload() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: libtorrent::total_protocol_download
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_protocol_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: libtorrent::total_transfer
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_transfer(int channel) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: libtorrent::transfer_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int transfer_rate(int channel) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::offset
      Src: /src/libtorrent/include/libtorrent/stat.hpp:241,1
    - Dst: libtorrent::offset
      Src: /src/libtorrent/include/libtorrent/stat.hpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - downloaded
    - uploaded
    argTypes:
    - std::int64_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: libtorrent::add_stat
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::offset
    linkageType: ''
    returnType: void
    signature: void add_stat(std::int64_t downloaded, std::int64_t uploaded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: libtorrent::last_payload_downloaded
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int last_payload_downloaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: libtorrent::last_payload_uploaded
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int last_payload_uploaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: libtorrent::last_protocol_downloaded
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int last_protocol_downloaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: libtorrent::last_protocol_uploaded
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int last_protocol_uploaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/stat.hpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 57
    functionsReached:
    - libtorrent::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: '& operator[](int i) const'
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: stat_channel
    signature: stat_channel & operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_channel
      Src: /src/libtorrent/include/libtorrent/stat.hpp:51,1
    - Dst: m_total_counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:52,1
    - Dst: m_counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:53,1
    - Dst: m_5_sec_average
      Src: /src/libtorrent/include/libtorrent/stat.hpp:54,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:59,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:61,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:71,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 107
    functionName: libtorrent::stat_channel
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 2
    functionsReached:
    - m_5_sec_average
    - m_total_counter
    - TORRENT_ASSERT
    - m_counter
    - libtorrent::stat_channel
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT stat_channel
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:59,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stat_channel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: operator+=(stat_channel const& s)
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void operator+=(stat_channel const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:67,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:69,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: libtorrent::add
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void add(int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::low_pass_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t low_pass_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::total
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: libtorrent::offset
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void offset(std::int64_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::counter
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t counter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 57
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for
      Src: /src/libtorrent/include/libtorrent/stat.hpp:114,1
    - Dst: sent_syn
      Src: /src/libtorrent/include/libtorrent/stat.hpp:118,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:120,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:126,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:126,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:133,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:135,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 137
    functionName: libtorrent::stat
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 7
    functionsReached:
    - TORRENT_ASSERT
    - sent_syn
    - libtorrent::add
    - for
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT stat
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:141,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:142,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:144,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bytes_payload
    - bytes_protocol
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: libtorrent::sent_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::add
    linkageType: ''
    returnType: void
    signature: void sent_bytes(int bytes_payload, int bytes_protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:160,1
    - Dst: libtorrent::add
      Src: /src/libtorrent/include/libtorrent/stat.hpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes_transferred
    - ipv6
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: libtorrent::trancieve_ip_packet
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::add
    linkageType: ''
    returnType: void
    signature: void trancieve_ip_packet(int bytes_transferred, bool ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: libtorrent::upload_ip_overhead
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int upload_ip_overhead() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: libtorrent::download_ip_overhead
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int download_ip_overhead() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::second_tick
      Src: /src/libtorrent/include/libtorrent/stat.hpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - tick_interval_ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: libtorrent::second_tick
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::second_tick
    linkageType: ''
    returnType: void
    signature: void second_tick(int tick_interval_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:176,1
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:177,1
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: libtorrent::low_pass_upload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::low_pass_rate
    linkageType: ''
    returnType: int
    signature: int low_pass_upload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:183,1
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:184,1
    - Dst: libtorrent::low_pass_rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: libtorrent::low_pass_download_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::low_pass_rate
    linkageType: ''
    returnType: int
    signature: int low_pass_download_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:190,1
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:191,1
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: libtorrent::upload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int upload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:197,1
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:198,1
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: libtorrent::download_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int download_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:204,1
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:205,1
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: libtorrent::total_upload
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_upload() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:211,1
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:212,1
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: libtorrent::total_download
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: libtorrent::upload_payload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int upload_payload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: libtorrent::download_payload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int download_payload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: libtorrent::total_payload_upload
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_payload_upload() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: libtorrent::total_payload_download
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_payload_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: libtorrent::total_protocol_upload
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_protocol_upload() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: libtorrent::total_protocol_download
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_protocol_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total
      Src: /src/libtorrent/include/libtorrent/stat.hpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: libtorrent::total_transfer
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_transfer(int channel) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rate
      Src: /src/libtorrent/include/libtorrent/stat.hpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - channel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: libtorrent::transfer_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rate
    linkageType: ''
    returnType: int
    signature: int transfer_rate(int channel) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::offset
      Src: /src/libtorrent/include/libtorrent/stat.hpp:241,1
    - Dst: libtorrent::offset
      Src: /src/libtorrent/include/libtorrent/stat.hpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - downloaded
    - uploaded
    argTypes:
    - std::int64_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: libtorrent::add_stat
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::offset
    linkageType: ''
    returnType: void
    signature: void add_stat(std::int64_t downloaded, std::int64_t uploaded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: libtorrent::last_payload_downloaded
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int last_payload_downloaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: libtorrent::last_payload_uploaded
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int last_payload_uploaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: libtorrent::last_protocol_downloaded
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int last_protocol_downloaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::counter
      Src: /src/libtorrent/include/libtorrent/stat.hpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: libtorrent::last_protocol_uploaded
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::counter
    linkageType: ''
    returnType: int
    signature: int last_protocol_uploaded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/stat.hpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 58
    functionsReached:
    - libtorrent::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/stat.hpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: '& operator[](int i) const'
    functionSourceFile: /src/libtorrent/include/libtorrent/stat.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: stat_channel
    signature: stat_channel & operator[](int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: libtorrent::sliding_average
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sliding_average()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::sliding_average
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sliding_average(sliding_average const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(sliding_average const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sliding_average
    signature: sliding_average & operator=(sliding_average const&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/sliding_average.hpp:59,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/include/libtorrent/sliding_average.hpp:59,1
    - Dst: std::abs
      Src: /src/libtorrent/include/libtorrent/sliding_average.hpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 76
    functionName: libtorrent::add_sample
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::abs
    - libtorrent::aux::max
    linkageType: ''
    returnType: void
    signature: void add_sample(Int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::mean
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Int
    signature: Int mean() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::avg_deviation
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Int
    signature: Int avg_deviation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::num_samples
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: libtorrent::sliding_average
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sliding_average()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::sliding_average
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sliding_average(sliding_average const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(sliding_average const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sliding_average
    signature: sliding_average & operator=(sliding_average const&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/sliding_average.hpp:59,1
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/include/libtorrent/sliding_average.hpp:59,1
    - Dst: std::abs
      Src: /src/libtorrent/include/libtorrent/sliding_average.hpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 76
    functionName: libtorrent::add_sample
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::abs
    - libtorrent::aux::max
    linkageType: ''
    returnType: void
    signature: void add_sample(Int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::mean
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Int
    signature: Int mean() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::avg_deviation
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Int
    signature: Int avg_deviation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::num_samples
    functionSourceFile: /src/libtorrent/include/libtorrent/sliding_average.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::aux::socket_package
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_package(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::aux::socket_package
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_package(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::upnp_category
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: libtorrent::get_upnp_category
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::upnp_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_upnp_category()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rbegin
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:131,1
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:132,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:133,1
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:135,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: libtorrent::top_tags
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::rbegin
    - libtorrent::rend
    - libtorrent::string_equal_no_case
    linkageType: ''
    returnType: bool
    signature: bool top_tags(string_view str1, string_view str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:211,1
    - Dst: libtorrent::is_single_thread
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: libtorrent::router_model
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::is_single_thread
    linkageType: ''
    returnType: std::string
    signature: std::string router_model()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::aux::socket_package
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_package(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ios'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::aux::socket_package
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socket_package(io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::upnp_category
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: libtorrent::get_upnp_category
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::upnp_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_upnp_category()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rbegin
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:131,1
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:132,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:133,1
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:135,1
    - Dst: libtorrent::string_equal_no_case
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - string_view
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: libtorrent::top_tags
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::rbegin
    - libtorrent::rend
    - libtorrent::string_equal_no_case
    linkageType: ''
    returnType: bool
    signature: bool top_tags(string_view str1, string_view str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:211,1
    - Dst: libtorrent::is_single_thread
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: libtorrent::router_model
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::is_single_thread
    linkageType: ''
    returnType: std::string
    signature: std::string router_model()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/upnp.hpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: num_mappings
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 4
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_mappings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - rootdevice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: operator<(rootdevice const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/upnp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(rootdevice const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context::native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: libtorrent::ssl::get_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 6
    functionsReached:
    - context::native_handle
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_handle(context &c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: libtorrent::ssl::get_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 6
    functionsReached:
    - native_handle
    linkageType: ''
    returnType: stream_handle_type
    signature: stream_handle_type get_handle(stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:166,1
    - Dst: native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:166,1
    - Dst: libtorrent::ssl::get_context
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: libtorrent::ssl::get_context_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 0
    functionsReached:
    - native_handle
    - SSL_get_SSL_CTX
    - libtorrent::ssl::get_context
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_context_handle(stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context::native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: libtorrent::ssl::get_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 6
    functionsReached:
    - context::native_handle
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_handle(context &c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: libtorrent::ssl::get_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 6
    functionsReached:
    - native_handle
    linkageType: ''
    returnType: stream_handle_type
    signature: stream_handle_type get_handle(stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:166,1
    - Dst: native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:166,1
    - Dst: libtorrent::ssl::get_context
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: libtorrent::ssl::get_context_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 0
    functionsReached:
    - native_handle
    - SSL_get_SSL_CTX
    - libtorrent::ssl::get_context
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_context_handle(stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context::native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: libtorrent::ssl::get_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 6
    functionsReached:
    - context::native_handle
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_handle(context &c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: libtorrent::ssl::get_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 6
    functionsReached:
    - native_handle
    linkageType: ''
    returnType: stream_handle_type
    signature: stream_handle_type get_handle(stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:166,1
    - Dst: native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:166,1
    - Dst: libtorrent::ssl::get_context
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: libtorrent::ssl::get_context_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 0
    functionsReached:
    - native_handle
    - SSL_get_SSL_CTX
    - libtorrent::ssl::get_context
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_context_handle(stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context::native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: libtorrent::ssl::get_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 6
    functionsReached:
    - context::native_handle
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_handle(context &c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: libtorrent::ssl::get_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 6
    functionsReached:
    - native_handle
    linkageType: ''
    returnType: stream_handle_type
    signature: stream_handle_type get_handle(stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:166,1
    - Dst: native_handle
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:166,1
    - Dst: libtorrent::ssl::get_context
      Src: /src/libtorrent/include/libtorrent/ssl.hpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - stream<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: libtorrent::ssl::get_context_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl.hpp
    functionUses: 0
    functionsReached:
    - native_handle
    - SSL_get_SSL_CTX
    - libtorrent::ssl::get_context
    linkageType: ''
    returnType: context_handle_type
    signature: context_handle_type get_context_handle(stream<T>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/libtorrent/include/libtorrent/http_parser.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 164
    functionName: libtorrent::http_parser
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT http_parser
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: libtorrent::status_code
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void status_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::method
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::path
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::header_finished
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool header_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::finished
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::body_start
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int body_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::content_length
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t content_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/libtorrent/include/libtorrent/http_parser.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: libtorrent::content_range
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 4
    functionsReached:
    - std::make_pair
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: std::pair<std::int64_t, std::int64_t> content_range() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: libtorrent::chunked_encoding
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool chunked_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::connection_close
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool connection_close() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::headers
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::multimap<std::string, std::string, aux::strview_less>
    signature: std::multimap<std::string, std::string, aux::strview_less> & headers()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::chunks
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::pair<std::int64_t, std::int64_t>>
    signature: std::vector<std::pair<std::int64_t, std::int64_t>> & chunks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/libtorrent/include/libtorrent/http_parser.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 164
    functionName: libtorrent::http_parser
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached:
    - std::make_pair
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT http_parser
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: libtorrent::status_code
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void status_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::method
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::path
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::message
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::header_finished
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool header_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::finished
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::body_start
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int body_start() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::content_length
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t content_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/libtorrent/include/libtorrent/http_parser.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: libtorrent::content_range
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 4
    functionsReached:
    - std::make_pair
    linkageType: ''
    returnType: std::pair<std::int64_t, std::int64_t>
    signature: std::pair<std::int64_t, std::int64_t> content_range() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: libtorrent::chunked_encoding
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool chunked_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::connection_close
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool connection_close() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::headers
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::multimap<std::string, std::string, aux::strview_less>
    signature: std::multimap<std::string, std::string, aux::strview_less> & headers()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::chunks
    functionSourceFile: /src/libtorrent/include/libtorrent/http_parser.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::pair<std::int64_t, std::int64_t>>
    signature: std::vector<std::pair<std::int64_t, std::int64_t>> & chunks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_memory_usage
      Src: /src/libtorrent/include/libtorrent/session.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' set'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: libtorrent::min_memory_usage
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::min_memory_usage
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED min_memory_usage(settings_pack& set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::high_performance_seed
      Src: /src/libtorrent/include/libtorrent/session.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' set'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: libtorrent::high_performance_seed
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::high_performance_seed
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED high_performance_seed(settings_pack& set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_proxy
      Src: /src/libtorrent/include/libtorrent/session.hpp:120,1
    - Dst: libtorrent::session_proxy
      Src: /src/libtorrent/include/libtorrent/session.hpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: libtorrent::session_proxy
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::session_proxy
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_proxy
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session
      Src: /src/libtorrent/include/libtorrent/session.hpp:179,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/include/libtorrent/session.hpp:181,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session.hpp:210,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session.hpp:230,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 295
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - libtorrent::session
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session(session const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session.hpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 19
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void session(settings_pack&& pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session(settings_pack const& pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session.hpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' pack'
    - ' ios'
    argTypes:
    - settings_pack
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 19
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void session(settings_pack&& pack, io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pack'
    - ' ios'
    argTypes:
    - settings_pack
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session(settings_pack const& pack, io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min_memory_usage
      Src: /src/libtorrent/include/libtorrent/session.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' set'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: libtorrent::min_memory_usage
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::min_memory_usage
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED min_memory_usage(settings_pack& set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::high_performance_seed
      Src: /src/libtorrent/include/libtorrent/session.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' set'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: libtorrent::high_performance_seed
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::high_performance_seed
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED high_performance_seed(settings_pack& set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_proxy
      Src: /src/libtorrent/include/libtorrent/session.hpp:120,1
    - Dst: libtorrent::session_proxy
      Src: /src/libtorrent/include/libtorrent/session.hpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: libtorrent::session_proxy
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::session_proxy
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_proxy
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session
      Src: /src/libtorrent/include/libtorrent/session.hpp:179,1
    - Dst: libtorrent::session
      Src: /src/libtorrent/include/libtorrent/session.hpp:181,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session.hpp:210,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session.hpp:230,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 295
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - libtorrent::session
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session(session const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session.hpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void session(settings_pack&& pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' pack'
    argTypes:
    - settings_pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session(settings_pack const& pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session.hpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' pack'
    - ' ios'
    argTypes:
    - settings_pack
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void session(settings_pack&& pack, io_context& ios)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' pack'
    - ' ios'
    argTypes:
    - settings_pack
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/session.hpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session(settings_pack const& pack, io_context& ios)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: libtorrent::piece_block
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT piece_block
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::piece_block
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - p_index
    - b_index
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: libtorrent::piece_block
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_block(piece_index_t p_index, int b_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: operator<(piece_block const& b) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(piece_block const& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: operator==(piece_block const& b) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_block const& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: operator!=(piece_block const& b) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(piece_block const& b) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: libtorrent::piece_block
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT piece_block
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::piece_block
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - p_index
    - b_index
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: libtorrent::piece_block
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_block(piece_index_t p_index, int b_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: operator<(piece_block const& b) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(piece_block const& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: operator==(piece_block const& b) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_block const& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: operator!=(piece_block const& b) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_block.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(piece_block const& b) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:43,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:45,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:45,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:45,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:46,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:46,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' container'
    - ' v'
    argTypes:
    - Container
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: libtorrent::sorted_find
    functionSourceFile: /src/libtorrent/include/libtorrent/vector_utils.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end
    - libtorrent::begin
    - std::lower_bound
    linkageType: ''
    returnType: auto
    signature: "auto sorted_find(Container& container, T const& v)\n\t\t-> decltype(container.begin())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:54,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:54,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:54,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' container'
    - v
    argTypes:
    - std::vector<T>
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: libtorrent::sorted_insert
    functionSourceFile: /src/libtorrent/include/libtorrent/vector_utils.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end
    - libtorrent::begin
    - std::lower_bound
    - libtorrent::insert
    linkageType: ''
    returnType: void
    signature: void sorted_insert(std::vector<T>& container, U v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:43,1
    - Dst: std::lower_bound
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:45,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:45,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:45,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:46,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:46,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' container'
    - ' v'
    argTypes:
    - Container
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: libtorrent::sorted_find
    functionSourceFile: /src/libtorrent/include/libtorrent/vector_utils.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end
    - libtorrent::begin
    - std::lower_bound
    linkageType: ''
    returnType: auto
    signature: "auto sorted_find(Container& container, T const& v)\n\t\t-> decltype(container.begin())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:54,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:54,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:54,1
    - Dst: libtorrent::insert
      Src: /src/libtorrent/include/libtorrent/vector_utils.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' container'
    - v
    argTypes:
    - std::vector<T>
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: libtorrent::sorted_insert
    functionSourceFile: /src/libtorrent/include/libtorrent/vector_utils.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end
    - libtorrent::begin
    - std::lower_bound
    - libtorrent::insert
    linkageType: ''
    returnType: void
    signature: void sorted_insert(std::vector<T>& container, U v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/announce_entry.hpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 134
    functionName: libtorrent::announce_infohash
    functionSourceFile: /src/libtorrent/include/libtorrent/announce_entry.hpp
    functionUses: 0
    functionsReached:
    - seconds32
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_2
    signature: TORRENT_VERSION_NAMESPACE_2 announce_infohash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: libtorrent::is_working
    functionSourceFile: /src/libtorrent/include/libtorrent/announce_entry.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED is_working() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_endpoint
      Src: /src/libtorrent/include/libtorrent/announce_entry.hpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 195
    functionName: libtorrent::announce_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/announce_entry.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::announce_endpoint
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT announce_endpoint
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_entry
      Src: /src/libtorrent/include/libtorrent/announce_entry.hpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 285
    functionName: libtorrent::announce_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/announce_entry.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::announce_entry
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT announce_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/announce_entry.hpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 134
    functionName: libtorrent::announce_infohash
    functionSourceFile: /src/libtorrent/include/libtorrent/announce_entry.hpp
    functionUses: 0
    functionsReached:
    - seconds32
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_2
    signature: TORRENT_VERSION_NAMESPACE_2 announce_infohash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: libtorrent::is_working
    functionSourceFile: /src/libtorrent/include/libtorrent/announce_entry.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED is_working() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_endpoint
      Src: /src/libtorrent/include/libtorrent/announce_entry.hpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 195
    functionName: libtorrent::announce_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/announce_entry.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::announce_endpoint
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT announce_endpoint
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::announce_entry
      Src: /src/libtorrent/include/libtorrent/announce_entry.hpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 285
    functionName: libtorrent::announce_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/announce_entry.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::announce_entry
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT announce_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: libtorrent::union_address
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::address
    linkageType: ''
    returnType: void
    signature: void union_address()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::union_address
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void union_address(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:48,1
    - Dst: to_v4
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:50,1
    - Dst: to_v6
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: '& operator=(address const& a) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - to_v6
    - to_v4
    - is_v4
    linkageType: ''
    returnType: union_address
    signature: union_address & operator=(address const& a) &
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rh'
    argTypes:
    - union_address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: operator==(union_address const& rh) const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(union_address const& rh) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rh'
    argTypes:
    - union_address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: operator!=(union_address const& rh) const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(union_address const& rh) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:72,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:72,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:73,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator address() const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::address
    - address_v6
    - address_v4
    linkageType: ''
    returnType: void
    signature: void operator address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::union_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void union_endpoint(tcp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::union_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void union_endpoint(udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::union_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: void
    signature: void union_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:93,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: '& operator=(udp::endpoint const& ep) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: union_endpoint
    signature: union_endpoint & operator=(udp::endpoint const& ep) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: operator udp::endpoint() const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void operator udp::endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:102,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: '& operator=(tcp::endpoint const& ep) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: union_endpoint
    signature: union_endpoint & operator=(tcp::endpoint const& ep) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: libtorrent::address
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: libtorrent::address
    signature: libtorrent::address address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: operator tcp::endpoint() const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void operator tcp::endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: libtorrent::union_address
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::address
    linkageType: ''
    returnType: void
    signature: void union_address()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::union_address
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void union_address(address const& a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:48,1
    - Dst: to_v4
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:50,1
    - Dst: to_v6
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: '& operator=(address const& a) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - to_v6
    - to_v4
    - is_v4
    linkageType: ''
    returnType: union_address
    signature: union_address & operator=(address const& a) &
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' rh'
    argTypes:
    - union_address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: operator==(union_address const& rh) const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(union_address const& rh) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rh'
    argTypes:
    - union_address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: operator!=(union_address const& rh) const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(union_address const& rh) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:72,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:72,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:73,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: operator address() const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - address
    - address_v6
    - address_v4
    linkageType: ''
    returnType: void
    signature: void operator address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::union_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void union_endpoint(tcp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::union_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void union_endpoint(udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::union_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: void
    signature: void union_endpoint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:93,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: '& operator=(udp::endpoint const& ep) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: union_endpoint
    signature: union_endpoint & operator=(udp::endpoint const& ep) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: operator udp::endpoint() const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void operator udp::endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:102,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: '& operator=(tcp::endpoint const& ep) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - port
    - address
    linkageType: ''
    returnType: union_endpoint
    signature: union_endpoint & operator=(tcp::endpoint const& ep) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: libtorrent::address
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: libtorrent::address
    signature: libtorrent::address address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_endpoint
      Src: /src/libtorrent/include/libtorrent/union_endpoint.hpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: operator tcp::endpoint() const
    functionSourceFile: /src/libtorrent/include/libtorrent/union_endpoint.hpp
    functionUses: 0
    functionsReached:
    - local_endpoint
    linkageType: ''
    returnType: void
    signature: void operator tcp::endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - sim::asio::ip::tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::tcp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp(sim::asio::ip::tcp const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - sim::asio::ip::udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::udp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void udp(sim::asio::ip::udp const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - boost::asio::ip::tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: libtorrent::tcp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp(boost::asio::ip::tcp const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - boost::asio::ip::udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::udp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void udp(boost::asio::ip::udp const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/socket.hpp:113,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/include/libtorrent/socket.hpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ep
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: libtorrent::make_udp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - tcp::endpoint::port
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint make_udp(tcp::endpoint const ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/socket.hpp:117,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/include/libtorrent/socket.hpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ep
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: libtorrent::make_tcp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached:
    - udp::endpoint::port
    - udp::endpoint::address
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint make_tcp(udp::endpoint const ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::v6_protection_level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void v6_protection_level(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::exclusive_address_use
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exclusive_address_use(int enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: libtorrent::traffic_class
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void traffic_class(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tos_t
      Src: /src/libtorrent/include/libtorrent/socket.hpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - tos_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: libtorrent::type_of_service
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached:
    - tos_t
    linkageType: ''
    returnType: void
    signature: void type_of_service(tos_t const val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: tos_t
    signature: tos_t * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: libtorrent::dscp_traffic_type
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dscp_traffic_type(DWORD val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: libtorrent::dont_fragment
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dont_fragment(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: libtorrent::dont_fragment
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dont_fragment(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 255
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: libtorrent::no_enobufs
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void no_enobufs(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: libtorrent::tcp_notsent_lowat
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp_notsent_lowat(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - sim::asio::ip::tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::tcp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp(sim::asio::ip::tcp const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - sim::asio::ip::udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::udp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void udp(sim::asio::ip::udp const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - boost::asio::ip::tcp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: libtorrent::tcp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp(boost::asio::ip::tcp const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - boost::asio::ip::udp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::udp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void udp(boost::asio::ip::udp const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/socket.hpp:113,1
    - Dst: tcp::endpoint::port
      Src: /src/libtorrent/include/libtorrent/socket.hpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ep
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: libtorrent::make_udp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint::address
    - tcp::endpoint::port
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint make_udp(tcp::endpoint const ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: udp::endpoint::address
      Src: /src/libtorrent/include/libtorrent/socket.hpp:117,1
    - Dst: udp::endpoint::port
      Src: /src/libtorrent/include/libtorrent/socket.hpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ep
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: libtorrent::make_tcp
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached:
    - udp::endpoint::port
    - udp::endpoint::address
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint make_tcp(udp::endpoint const ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::v6_protection_level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void v6_protection_level(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::exclusive_address_use
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exclusive_address_use(int enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: libtorrent::traffic_class
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void traffic_class(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tos_t
      Src: /src/libtorrent/include/libtorrent/socket.hpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - tos_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: libtorrent::type_of_service
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached:
    - tos_t
    linkageType: ''
    returnType: void
    signature: void type_of_service(tos_t const val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: tos_t
    signature: tos_t * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: libtorrent::dscp_traffic_type
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dscp_traffic_type(DWORD val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: libtorrent::dont_fragment
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dont_fragment(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: libtorrent::dont_fragment
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dont_fragment(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 255
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: libtorrent::no_enobufs
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void no_enobufs(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: libtorrent::tcp_notsent_lowat
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tcp_notsent_lowat(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: libtorrent::level
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int level(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int * data(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket.hpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size(Protocol const&) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:122,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:123,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:124,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:125,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:126,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/entry.hpp:139,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/include/libtorrent/entry.hpp:139,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:155,1
    - Dst: destruct
      Src: /src/libtorrent/include/libtorrent/entry.hpp:177,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/entry.hpp:178,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/include/libtorrent/entry.hpp:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 310
    functionName: libtorrent::entry
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::entry
    - libtorrent::move
    - string_type::string_type
    - destruct
    linkageType: ''
    returnType: class TORRENT_EXPORT
    signature: class TORRENT_EXPORT entry
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/entry.hpp:139,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/include/libtorrent/entry.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: libtorrent::entry
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::move
    - string_type::string_type
    linkageType: ''
    returnType: void
    signature: void entry(U v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/include/libtorrent/entry.hpp:177,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/entry.hpp:178,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/include/libtorrent/entry.hpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: '& operator=(U v) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - string_type::string_type
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & operator=(U v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - entry
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: operator!=(entry const& lhs, entry const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(entry const& lhs, entry const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/include/libtorrent/entry.hpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' e'
    argTypes:
    - std::ostream
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: '& operator<<(std::ostream& os, const entry& e)'
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const entry& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:122,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:123,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:124,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:125,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:126,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/entry.hpp:139,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/include/libtorrent/entry.hpp:139,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/entry.hpp:155,1
    - Dst: destruct
      Src: /src/libtorrent/include/libtorrent/entry.hpp:177,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/entry.hpp:178,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/include/libtorrent/entry.hpp:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 310
    functionName: libtorrent::entry
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::entry
    - libtorrent::move
    - string_type::string_type
    - destruct
    linkageType: ''
    returnType: class TORRENT_EXPORT
    signature: class TORRENT_EXPORT entry
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/entry.hpp:139,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/include/libtorrent/entry.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: libtorrent::entry
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::move
    - string_type::string_type
    linkageType: ''
    returnType: void
    signature: void entry(U v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destruct
      Src: /src/libtorrent/include/libtorrent/entry.hpp:177,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/entry.hpp:178,1
    - Dst: string_type::string_type
      Src: /src/libtorrent/include/libtorrent/entry.hpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: '& operator=(U v) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 0
    functionsReached:
    - string_type::string_type
    - std::move
    - destruct
    linkageType: ''
    returnType: entry
    signature: entry & operator=(U v) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - entry
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: operator!=(entry const& lhs, entry const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(entry const& lhs, entry const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/libtorrent/include/libtorrent/entry.hpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' e'
    argTypes:
    - std::ostream
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: '& operator<<(std::ostream& os, const entry& e)'
    functionSourceFile: /src/libtorrent/include/libtorrent/entry.hpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, const entry& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_torrent_params
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:99,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:115,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:116,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:117,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:118,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:119,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:120,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:121,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:122,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:123,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:124,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:125,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:126,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:127,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:128,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:129,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:130,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:131,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:132,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:133,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 404
    functionName: libtorrent::add_torrent_params
    functionSourceFile: /src/libtorrent/include/libtorrent/add_torrent_params.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::add_torrent_params
    - DECL_FLAG
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT add_torrent_params
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: DECL_FLAG
    functionSourceFile: /src/libtorrent/include/libtorrent/add_torrent_params.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_FLAG(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: libtorrent::namespace
    functionSourceFile: /src/libtorrent/include/libtorrent/add_torrent_params.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3_END
    signature: TORRENT_VERSION_NAMESPACE_3_END namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::add_torrent_params
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:99,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:115,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:116,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:117,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:118,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:119,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:120,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:121,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:122,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:123,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:124,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:125,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:126,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:127,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:128,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:129,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:130,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:131,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:132,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:133,1
    - Dst: DECL_FLAG
      Src: /src/libtorrent/include/libtorrent/add_torrent_params.hpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 404
    functionName: libtorrent::add_torrent_params
    functionSourceFile: /src/libtorrent/include/libtorrent/add_torrent_params.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::add_torrent_params
    - DECL_FLAG
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT add_torrent_params
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: DECL_FLAG
    functionSourceFile: /src/libtorrent/include/libtorrent/add_torrent_params.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_FLAG(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: libtorrent::namespace
    functionSourceFile: /src/libtorrent/include/libtorrent/add_torrent_params.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3_END
    signature: TORRENT_VERSION_NAMESPACE_3_END namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_params
      Src: /src/libtorrent/include/libtorrent/session_params.hpp:76,1
    - Dst: libtorrent::session_params
      Src: /src/libtorrent/include/libtorrent/session_params.hpp:78,1
    - Dst: libtorrent::session_params
      Src: /src/libtorrent/include/libtorrent/session_params.hpp:85,1
    - Dst: libtorrent::ip_filter::ip_filter
      Src: /src/libtorrent/include/libtorrent/session_params.hpp:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 131
    functionName: libtorrent::session_params
    functionSourceFile: /src/libtorrent/include/libtorrent/session_params.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::session_params
    - libtorrent::ip_filter::ip_filter
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 session_params
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::session_params
      Src: /src/libtorrent/include/libtorrent/session_params.hpp:76,1
    - Dst: libtorrent::session_params
      Src: /src/libtorrent/include/libtorrent/session_params.hpp:78,1
    - Dst: libtorrent::session_params
      Src: /src/libtorrent/include/libtorrent/session_params.hpp:85,1
    - Dst: libtorrent::ip_filter::ip_filter
      Src: /src/libtorrent/include/libtorrent/session_params.hpp:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 131
    functionName: libtorrent::session_params
    functionSourceFile: /src/libtorrent/include/libtorrent/session_params.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::session_params
    - libtorrent::ip_filter::ip_filter
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 session_params
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - time_critical_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: operator<(time_critical_piece const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(time_critical_piece const& rhs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: web_seed_entry::operator=
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:242,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:242,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:243,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:244,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:245,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:246,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:247,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:248,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:249,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:250,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:251,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:252,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:253,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:254,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - web_seed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 257
    functionName: '& operator=(web_seed_t&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - web_seed_entry::operator=
    linkageType: ''
    returnType: web_seed_t
    signature: web_seed_t & operator=(web_seed_t&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: '& operator=(web_seed_t const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: web_seed_t
    signature: web_seed_t & operator=(web_seed_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: libtorrent::web_seed_t
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void web_seed_t(web_seed_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 358
    functionName: libtorrent::torrent_hot_members
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_hot_members
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: libtorrent::torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent(aux::session_interface&, bool, add_torrent_params const&
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    functionName: libtorrent::info_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: info_hash_t
    signature: info_hash_t & info_hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: libtorrent::is_deleted
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_deleted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:386,1
    - Dst: update_gauge
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 389
    functionName: libtorrent::added
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - update_gauge
    linkageType: ''
    returnType: void
    signature: void added()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:393,1
    - Dst: set_queue_position
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:395,1
    - Dst: update_gauge
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: libtorrent::removed
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - update_gauge
    - set_queue_position
    linkageType: ''
    returnType: void
    signature: void removed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: libtorrent::is_added
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_added() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::sorted_find
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:419,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 419
    functionName: libtorrent::has_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::sorted_find
    - libtorrent::end
    linkageType: ''
    returnType: bool
    signature: bool has_peer(peer_connection const* p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: libtorrent::is_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached:
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool is_single_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 461
    functionName: libtorrent::share_mode
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool share_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::graceful_pause
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool graceful_pause() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: libtorrent::upload_mode
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool upload_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_finished
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:473,1
    - Dst: libtorrent::upload_mode
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 473
    functionName: libtorrent::is_upload_only
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::upload_mode
    - libtorrent::is_finished
    linkageType: ''
    returnType: bool
    signature: bool is_upload_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 482
    functionName: libtorrent::set_progress_ppm
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void set_progress_ppm(int p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 501
    functionName: libtorrent::is_aborted
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_aborted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_status::state_t
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: libtorrent::state
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - torrent_status::state_t
    linkageType: ''
    returnType: torrent_status::state_t
    signature: torrent_status::state_t state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: aux::session_interface
    signature: aux::session_interface & session()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: libtorrent::is_sequential_download
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_sequential_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    functionName: libtorrent::queue_position
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: queue_position_t
    signature: queue_position_t queue_position() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state_updated
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - queue_position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: libtorrent::set_queue_position_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - state_updated
    linkageType: ''
    returnType: void
    signature: void set_queue_position_impl(queue_position_t const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: libtorrent::statistics
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: stat
    signature: stat statistics() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 552
    functionName: libtorrent::get_ip_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: ip_filter
    signature: ip_filter * get_ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    functionName: libtorrent::has_error
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: libtorrent::error
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: error_code
    signature: error_code error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: libtorrent::set_announce_to_dht
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_announce_to_dht(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 575
    functionName: libtorrent::set_announce_to_trackers
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_announce_to_trackers(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 576
    functionName: libtorrent::set_announce_to_lsd
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_announce_to_lsd(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    functionName: libtorrent::started
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point32
    signature: time_point32 started() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 591
    functionName: libtorrent::is_torrent_paused
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_torrent_paused() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: libtorrent::need_save_resume_data
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool need_save_resume_data(resume_data_flags_t flags) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state_updated
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - flag
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: libtorrent::set_need_save_resume
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - state_updated
    linkageType: ''
    returnType: void
    signature: void set_need_save_resume(resume_data_flags_t const flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 613
    functionName: libtorrent::is_auto_managed
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_auto_managed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 684
    functionName: libtorrent::peer_class
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_class_t
    signature: peer_class_t peer_class() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 687
    functionName: libtorrent::max_uploads
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_uploads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    functionName: libtorrent::max_connections
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_connections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 719
    functionName: libtorrent::free_upload_slots
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool free_upload_slots() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:764,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: libtorrent::num_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 47
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: const_peer_iterator
    signature: const_peer_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 772
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 52
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: const_peer_iterator
    signature: const_peer_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 774
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 48
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: peer_iterator
    signature: peer_iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 775
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 53
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: peer_iterator
    signature: peer_iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 856
    functionName: libtorrent::super_seeding
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool super_seeding() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:866,1
    - Dst: has_picker
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:867,1
    - Dst: libtorrent::have_piece
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 869
    functionName: libtorrent::have_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - has_picker
    - libtorrent::have_piece
    - valid_metadata
    linkageType: ''
    returnType: bool
    signature: bool have_piece(piece_index_t index) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:874,1
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:875,1
    - Dst: has_picker
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:876,1
    - Dst: libtorrent::have_piece
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 878
    functionName: libtorrent::user_have_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end_piece
    - libtorrent::have_piece
    - valid_metadata
    - has_picker
    linkageType: ''
    returnType: bool
    signature: bool user_have_piece(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::binary_search
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:886,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:886,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: libtorrent::is_predictive_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end
    - libtorrent::begin
    - std::binary_search
    linkageType: ''
    returnType: bool
    signature: bool is_predictive_piece(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - time_critical_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: operator<(time_critical_piece const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(time_critical_piece const& rhs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: web_seed_entry::operator=
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:242,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:242,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:243,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:244,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:245,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:246,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:247,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:248,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:250,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:251,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:252,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:253,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:254,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - web_seed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 257
    functionName: '& operator=(web_seed_t&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - web_seed_entry::operator=
    linkageType: ''
    returnType: web_seed_t
    signature: web_seed_t & operator=(web_seed_t&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: '& operator=(web_seed_t const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: web_seed_t
    signature: web_seed_t & operator=(web_seed_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: libtorrent::web_seed_t
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void web_seed_t(web_seed_t const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 358
    functionName: libtorrent::torrent_hot_members
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_hot_members
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - add_torrent_params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: libtorrent::torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent(aux::session_interface&, bool, add_torrent_params const&
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    functionName: libtorrent::info_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: info_hash_t
    signature: info_hash_t & info_hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: libtorrent::is_deleted
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_deleted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:386,1
    - Dst: update_gauge
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 389
    functionName: libtorrent::added
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - update_gauge
    linkageType: ''
    returnType: void
    signature: void added()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:393,1
    - Dst: set_queue_position
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:395,1
    - Dst: update_gauge
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: libtorrent::removed
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - update_gauge
    - set_queue_position
    linkageType: ''
    returnType: void
    signature: void removed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: libtorrent::is_added
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_added() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::sorted_find
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:419,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - peer_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 419
    functionName: libtorrent::has_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::sorted_find
    - libtorrent::end
    linkageType: ''
    returnType: bool
    signature: bool has_peer(peer_connection const* p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_connection::is_single_thread
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: libtorrent::is_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached:
    - peer_connection::is_single_thread
    linkageType: ''
    returnType: bool
    signature: bool is_single_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 461
    functionName: libtorrent::share_mode
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool share_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::graceful_pause
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool graceful_pause() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: libtorrent::upload_mode
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool upload_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::is_finished
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:473,1
    - Dst: libtorrent::upload_mode
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 473
    functionName: libtorrent::is_upload_only
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::upload_mode
    - libtorrent::is_finished
    linkageType: ''
    returnType: bool
    signature: bool is_upload_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 482
    functionName: libtorrent::set_progress_ppm
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void set_progress_ppm(int p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 501
    functionName: libtorrent::is_aborted
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_aborted() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: torrent_status::state_t
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: libtorrent::state
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - torrent_status::state_t
    linkageType: ''
    returnType: torrent_status::state_t
    signature: torrent_status::state_t state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: libtorrent::session
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: aux::session_interface
    signature: aux::session_interface & session()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: libtorrent::is_sequential_download
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_sequential_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    functionName: libtorrent::queue_position
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: queue_position_t
    signature: queue_position_t queue_position() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state_updated
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - queue_position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: libtorrent::set_queue_position_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - state_updated
    linkageType: ''
    returnType: void
    signature: void set_queue_position_impl(queue_position_t const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: libtorrent::statistics
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: stat
    signature: stat statistics() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 552
    functionName: libtorrent::get_ip_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: ip_filter
    signature: ip_filter * get_ip_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    functionName: libtorrent::has_error
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: libtorrent::error
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: error_code
    signature: error_code error() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: libtorrent::set_announce_to_dht
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_announce_to_dht(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 575
    functionName: libtorrent::set_announce_to_trackers
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_announce_to_trackers(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 576
    functionName: libtorrent::set_announce_to_lsd
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_announce_to_lsd(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    functionName: libtorrent::started
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point32
    signature: time_point32 started() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 591
    functionName: libtorrent::is_torrent_paused
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_torrent_paused() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: libtorrent::need_save_resume_data
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool need_save_resume_data(resume_data_flags_t flags) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state_updated
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - flag
    argTypes:
    - resume_data_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: libtorrent::set_need_save_resume
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - state_updated
    linkageType: ''
    returnType: void
    signature: void set_need_save_resume(resume_data_flags_t const flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 613
    functionName: libtorrent::is_auto_managed
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_auto_managed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 684
    functionName: libtorrent::peer_class
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: peer_class_t
    signature: peer_class_t peer_class() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 687
    functionName: libtorrent::max_uploads
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_uploads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    functionName: libtorrent::max_connections
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int max_connections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 719
    functionName: libtorrent::free_upload_slots
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool free_upload_slots() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:764,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: libtorrent::num_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 50
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: const_peer_iterator
    signature: const_peer_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 772
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 56
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: const_peer_iterator
    signature: const_peer_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 774
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 51
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: peer_iterator
    signature: peer_iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 775
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 57
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: peer_iterator
    signature: peer_iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 856
    functionName: libtorrent::super_seeding
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool super_seeding() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:866,1
    - Dst: has_picker
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:867,1
    - Dst: libtorrent::have_piece
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 869
    functionName: libtorrent::have_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 3
    functionsReached:
    - has_picker
    - libtorrent::have_piece
    - valid_metadata
    linkageType: ''
    returnType: bool
    signature: bool have_piece(piece_index_t index) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:874,1
    - Dst: libtorrent::end_piece
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:875,1
    - Dst: has_picker
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:876,1
    - Dst: libtorrent::have_piece
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 878
    functionName: libtorrent::user_have_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end_piece
    - libtorrent::have_piece
    - valid_metadata
    - has_picker
    linkageType: ''
    returnType: bool
    signature: bool user_have_piece(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::binary_search
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:886,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:886,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: libtorrent::is_predictive_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end
    - libtorrent::begin
    - std::binary_search
    linkageType: ''
    returnType: bool
    signature: bool is_predictive_piece(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valid_metadata
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:928,1
    - Dst: piece_length
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 931
    functionName: block_size
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 59
    functionsReached:
    - piece_length
    - valid_metadata
    linkageType: ''
    returnType: int
    signature: int block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 949
    functionName: is_i2p
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_i2p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1049,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1051
    functionName: picker
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 181
    functionsReached:
    - TORRENT_ASSERT
    - get
    linkageType: ''
    returnType: piece_picker
    signature: piece_picker & picker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1054,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1056
    functionName: picker
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 181
    functionsReached:
    - TORRENT_ASSERT
    - get
    linkageType: ''
    returnType: piece_picker
    signature: piece_picker & picker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1061
    functionName: has_picker
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 55
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool has_picker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1065,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1067
    functionName: get_hash_picker
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - get
    linkageType: ''
    returnType: hash_picker
    signature: hash_picker & get_hash_picker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1070,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1072
    functionName: get_hash_picker
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    - get
    linkageType: ''
    returnType: hash_picker
    signature: hash_picker & get_hash_picker() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1078
    functionName: has_hash_picker
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool has_hash_picker() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_peer_list_state
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1083,1
    - Dst: set_max_failcount
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1085
    functionName: update_max_failcount
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - set_max_failcount
    - get_peer_list_state
    linkageType: ''
    returnType: void
    signature: void update_max_failcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_peers
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1086
    functionName: num_known_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - num_peers
    linkageType: ''
    returnType: int
    signature: int num_known_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_connect_candidates
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1087
    functionName: num_connect_candidates
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 29
    functionsReached:
    - num_connect_candidates
    linkageType: ''
    returnType: int
    signature: int num_connect_candidates() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1091
    functionName: has_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_storage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1092
    functionName: storage
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 83
    functionsReached: []
    linkageType: ''
    returnType: storage_index_t
    signature: storage_index_t storage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1095
    functionName: torrent_file
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 145
    functionsReached: []
    linkageType: ''
    returnType: torrent_info
    signature: torrent_info & torrent_file() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1127
    functionDepth: 3
    functionLinenumber: 1127
    functionLinenumberEnd: 1127
    functionName: seen_complete
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 7
    functionsReached:
    - libtorrent::aux::posix_time
    linkageType: ''
    returnType: void
    signature: void seen_complete()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1128
    functionName: time_since_complete
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::posix_time
    linkageType: ''
    returnType: int
    signature: int time_since_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1129
    functionName: last_seen_complete
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t last_seen_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1162
    functionName: ready_for_connections
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ready_for_connections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1164
    functionName: valid_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 104
    functionsReached:
    - is_valid
    linkageType: ''
    returnType: bool
    signature: bool valid_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1166
    functionName: are_files_checked
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool are_files_checked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1177
    functionName: sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: queue_position_t
    signature: queue_position_t sequence_number() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1179
    functionName: seed_mode
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool seed_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_pieces
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1186
    functionName: all_verified
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - num_pieces
    linkageType: ''
    returnType: bool
    signature: bool all_verified() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bit
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1188
    functionName: verifying_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached:
    - get_bit
    linkageType: ''
    returnType: bool
    signature: bool verifying_piece(piece_index_t const piece) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1191,1
    - Dst: get_bit
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1191,1
    - Dst: set_bit
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1193
    functionName: verifying
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - set_bit
    - get_bit
    linkageType: ''
    returnType: void
    signature: void verifying(piece_index_t const piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bit
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1194
    functionDepth: 2
    functionLinenumber: 1194
    functionLinenumberEnd: 1195
    functionName: verified_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - get_bit
    linkageType: ''
    returnType: bool
    signature: bool verified_piece(piece_index_t piece) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::time_now32
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1202
    functionName: update_last_upload
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::time_now32
    linkageType: ''
    returnType: void
    signature: void update_last_upload()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1205
    functionName: apply_ip_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool apply_ip_filter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1209
    functionName: predictive_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<piece_index_t>
    signature: std::vector<piece_index_t> & predictive_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1218,1
    - Dst: in_list
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1218,1
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1220
    functionName: clear_in_state_update
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - clear
    - in_list
    linkageType: ''
    returnType: void
    signature: void clear_in_state_update()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pp
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1226
    functionName: inc_num_connecting
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void inc_num_connecting(torrent_peer* pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1229,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1233,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1236,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pp
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1237
    functionName: dec_num_connecting
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - size
    linkageType: ''
    returnType: void
    signature: void dec_num_connecting(torrent_peer* pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1239
    functionName: is_ssl_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ssl_torrent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1248
    functionName: ssl_ctx
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: ssl::context
    signature: ssl::context * ssl_ctx() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1258
    functionName: num_time_critical_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 3
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int num_time_critical_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_pieces
      Src: /src/libtorrent/include/libtorrent/torrent.hpp:1264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' p'
    - ' bits'
    - n
    argTypes:
    - std::vector<piece_index_t>
    - typed_bitfield<piece_index_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1265
    functionName: get_suggest_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 1
    functionsReached:
    - get_pieces
    linkageType: ''
    returnType: int
    signature: "int get_suggest_pieces(std::vector<piece_index_t>& p\n\t\t\t, typed_bitfield<piece_index_t>
      const& bits\n\t\t\t, int const n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1268
    functionName: get_userdata
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: client_data_t
    signature: client_data_t get_userdata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/part_file.hpp:91,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/part_file.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 135
    functionName: libtorrent::part_file
    functionSourceFile: /src/libtorrent/include/libtorrent/part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT part_file
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/part_file.hpp:91,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/part_file.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - slot_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: libtorrent::slot_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t slot_offset(slot_index_t const slot) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/part_file.hpp:91,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/part_file.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 135
    functionName: libtorrent::part_file
    functionSourceFile: /src/libtorrent/include/libtorrent/part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT part_file
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/part_file.hpp:91,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/part_file.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - slot_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: libtorrent::slot_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t slot_offset(slot_index_t const slot) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:104,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:159,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:161,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:171,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:224,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:312,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:323,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:457,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:507,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:605,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:1116,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:1130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 1134
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::entry
    - expired
    - std::string
    - lock
    - libtorrent::move
    - peer_conn::write_have_all
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - session_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle(session_handle const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - session_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle(session_handle&& t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 2
    functionsReached:
    - expired
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1116
    functionName: libtorrent::native_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 6
    functionsReached:
    - lock
    linkageType: ''
    returnType: std::shared_ptr<aux::session_impl>
    signature: std::shared_ptr<aux::session_impl> native_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - impl
    argTypes:
    - std::weak_ptr<aux::session_impl>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1131
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void session_handle(std::weak_ptr<aux::session_impl> impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:104,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:159,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:161,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:171,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:224,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:312,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:323,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:457,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:507,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:605,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:1116,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:1130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 1134
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::entry
    - expired
    - std::string
    - lock
    - libtorrent::move
    - peer_conn::write_have_all
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - session_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle(session_handle const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - session_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void session_handle(session_handle&& t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 2
    functionsReached:
    - expired
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1116
    functionName: libtorrent::native_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 6
    functionsReached:
    - lock
    linkageType: ''
    returnType: std::shared_ptr<aux::session_impl>
    signature: std::shared_ptr<aux::session_impl> native_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/session_handle.hpp:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - impl
    argTypes:
    - std::weak_ptr<aux::session_impl>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1131
    functionName: libtorrent::session_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/session_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void session_handle(std::weak_ptr<aux::session_impl> impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::disk_observer
      Src: /src/libtorrent/include/libtorrent/disk_observer.hpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: libtorrent::disk_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_observer.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::disk_observer
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT disk_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::disk_observer
      Src: /src/libtorrent/include/libtorrent/disk_observer.hpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: libtorrent::disk_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_observer.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::disk_observer
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT disk_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protocol_type
      Src: /src/libtorrent/include/libtorrent/netlink.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::basic_nl_endpoint::basic_nl_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached:
    - protocol_type
    linkageType: ''
    returnType: void
    signature: void basic_nl_endpoint() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/netlink.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - netlink_family
    - group
    argTypes:
    - protocol_type
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: libtorrent::basic_nl_endpoint::basic_nl_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached:
    - std::memset
    linkageType: ''
    returnType: void
    signature: void basic_nl_endpoint(protocol_type netlink_family, std::uint32_t
      group, std::uint32_t pid = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_nl_endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::basic_nl_endpoint::basic_nl_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_nl_endpoint(basic_nl_endpoint const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_nl_endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::basic_nl_endpoint::basic_nl_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_nl_endpoint(basic_nl_endpoint&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_nl_endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: '& operator=(basic_nl_endpoint const& other)'
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: basic_nl_endpoint
    signature: basic_nl_endpoint & operator=(basic_nl_endpoint const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_nl_endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: '& operator=(basic_nl_endpoint&& other) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: basic_nl_endpoint
    signature: basic_nl_endpoint & operator=(basic_nl_endpoint&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: libtorrent::basic_nl_endpoint::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: protocol_type
    signature: protocol_type protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<data_type*>
      Src: /src/libtorrent/include/libtorrent/netlink.hpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::basic_nl_endpoint::data
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<data_type*>
    linkageType: ''
    returnType: data_type
    signature: data_type * data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<data_type const*>
      Src: /src/libtorrent/include/libtorrent/netlink.hpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: libtorrent::basic_nl_endpoint::data
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<data_type const*>
    linkageType: ''
    returnType: data_type
    signature: data_type * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: libtorrent::basic_nl_endpoint::size
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: libtorrent::basic_nl_endpoint::capacity
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::netlink::netlink
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void netlink()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nl_family
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: libtorrent::netlink::netlink
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void netlink(int nl_family)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: libtorrent::netlink::type
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: libtorrent::netlink::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: libtorrent::netlink::family
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' l'
    - ' r'
    argTypes:
    - netlink
    - netlink
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: operator==(const netlink& l, const netlink& r)
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const netlink& l, const netlink& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' l'
    - ' r'
    argTypes:
    - netlink
    - netlink
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: operator!=(const netlink& l, const netlink& r)
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const netlink& l, const netlink& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protocol_type
      Src: /src/libtorrent/include/libtorrent/netlink.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::basic_nl_endpoint::basic_nl_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached:
    - protocol_type
    linkageType: ''
    returnType: void
    signature: void basic_nl_endpoint() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/netlink.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - netlink_family
    - group
    argTypes:
    - protocol_type
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: libtorrent::basic_nl_endpoint::basic_nl_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached:
    - std::memset
    linkageType: ''
    returnType: void
    signature: void basic_nl_endpoint(protocol_type netlink_family, std::uint32_t
      group, std::uint32_t pid = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_nl_endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::basic_nl_endpoint::basic_nl_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_nl_endpoint(basic_nl_endpoint const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_nl_endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::basic_nl_endpoint::basic_nl_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void basic_nl_endpoint(basic_nl_endpoint&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_nl_endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: '& operator=(basic_nl_endpoint const& other)'
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: basic_nl_endpoint
    signature: basic_nl_endpoint & operator=(basic_nl_endpoint const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_nl_endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: '& operator=(basic_nl_endpoint&& other) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: basic_nl_endpoint
    signature: basic_nl_endpoint & operator=(basic_nl_endpoint&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: libtorrent::basic_nl_endpoint::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: protocol_type
    signature: protocol_type protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<data_type*>
      Src: /src/libtorrent/include/libtorrent/netlink.hpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::basic_nl_endpoint::data
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<data_type*>
    linkageType: ''
    returnType: data_type
    signature: data_type * data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<data_type const*>
      Src: /src/libtorrent/include/libtorrent/netlink.hpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: libtorrent::basic_nl_endpoint::data
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<data_type const*>
    linkageType: ''
    returnType: data_type
    signature: data_type * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: libtorrent::basic_nl_endpoint::size
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: libtorrent::basic_nl_endpoint::capacity
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::netlink::netlink
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void netlink()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nl_family
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: libtorrent::netlink::netlink
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void netlink(int nl_family)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: libtorrent::netlink::type
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: libtorrent::netlink::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: libtorrent::netlink::family
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int family() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' l'
    - ' r'
    argTypes:
    - netlink
    - netlink
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: operator==(const netlink& l, const netlink& r)
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const netlink& l, const netlink& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' l'
    - ' r'
    argTypes:
    - netlink
    - netlink
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: operator!=(const netlink& l, const netlink& r)
    functionSourceFile: /src/libtorrent/include/libtorrent/netlink.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const netlink& l, const netlink& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_seed_connection
      Src: /src/libtorrent/include/libtorrent/http_seed_connection.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 113
    functionName: libtorrent::http_seed_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/http_seed_connection.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::http_seed_connection
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT http_seed_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/http_seed_connection.hpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: connection_type
    signature: connection_type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::url
    functionSourceFile: /src/libtorrent/include/libtorrent/http_seed_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & url() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_seed_connection
      Src: /src/libtorrent/include/libtorrent/http_seed_connection.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 113
    functionName: libtorrent::http_seed_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/http_seed_connection.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::http_seed_connection
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT http_seed_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/http_seed_connection.hpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: connection_type
    signature: connection_type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::url
    functionSourceFile: /src/libtorrent/include/libtorrent/http_seed_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & url() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::integer_type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:79,1
    - Dst: In
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:79,1
    - Dst: libtorrent::aux::integer_to_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:86,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:92,1
    - Dst: auto::size
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' out'
    - data
    argTypes:
    - OutIt
    - In
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::write_integer
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - entry::integer_type
    - In
    - TORRENT_ASSERT
    - auto::size
    - libtorrent::aux::integer_to_str
    linkageType: ''
    returnType: int
    signature: int write_integer(OutIt& out, In data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - OutIt
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::write_char
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_char(OutIt& out, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ' in'
    - end
    - end_token
    - ' err'
    argTypes:
    - InIt
    - InIt
    - char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_until
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string read_until(InIt& in, InIt end, char end_token, bool& err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' in'
    - end
    - len
    - ' str'
    - ' err'
    argTypes:
    - InIt
    - InIt
    - int
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::read_string
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void read_string(InIt& in, InIt end, int len, std::string& str, bool&
      err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:144,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:147,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:148,1
    - Dst: integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:148,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:149,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:153,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:153,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:154,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:155,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:155,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:159,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:160,1
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:161,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:162,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:166,1
    - Dst: dict
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:167,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:170,1
    - Dst: first::length
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:170,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:171,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:172,1
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:174,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:177,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:182,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:182,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:187,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:188,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - ' out'
    - ' e'
    argTypes:
    - OutIt
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 194
    functionName: libtorrent::aux::bencode_recursive
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - first::length
    - preformatted
    - string
    - list
    - dict
    - libtorrent::aux::write_integer
    - libtorrent::aux::write_string
    - integer
    - std::copy
    - libtorrent::aux::bencode_recursive
    - type
    - libtorrent::aux::write_char
    linkageType: ''
    returnType: int
    signature: int bencode_recursive(OutIt& out, const entry& e)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_until
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:223,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:225,1
    - Dst: integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::strtoll
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:231,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:242,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:246,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:247,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:248,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:268,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:275,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:280,1
    - Dst: entry::type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:281,1
    - Dst: entry::string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:288,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:289,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:309,1
    - Dst: is_digit
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:317,1
    - Dst: libtorrent::aux::read_until
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:327,1
    - Dst: atoi
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:329,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:329,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:330,1
    - Dst: libtorrent::aux::read_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:331,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:331,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 91
    argCount: 5
    argNames:
    - ' in'
    - end
    - ' ret'
    - ' err'
    - depth
    argTypes:
    - InIt
    - InIt
    - entry
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::bdecode_recursive
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::read_until
    - is_digit
    - entry
    - entry::type
    - list
    - string
    - std::strtoll
    - std::string::c_str
    - atoi
    - TORRENT_ASSERT
    - integer
    - libtorrent::aux::read_string
    - entry::string
    - libtorrent::aux::bdecode_recursive
    linkageType: ''
    returnType: void
    signature: void bdecode_recursive(InIt& in, InIt end, entry& ret, bool& err, int
      depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::integer_type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:79,1
    - Dst: In
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:79,1
    - Dst: libtorrent::aux::integer_to_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:86,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:92,1
    - Dst: auto::size
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' out'
    - data
    argTypes:
    - OutIt
    - In
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::write_integer
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - entry::integer_type
    - In
    - TORRENT_ASSERT
    - auto::size
    - libtorrent::aux::integer_to_str
    linkageType: ''
    returnType: int
    signature: int write_integer(OutIt& out, In data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - OutIt
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::write_char
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_char(OutIt& out, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ' in'
    - end
    - end_token
    - ' err'
    argTypes:
    - InIt
    - InIt
    - char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_until
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string read_until(InIt& in, InIt end, char end_token, bool& err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' in'
    - end
    - len
    - ' str'
    - ' err'
    argTypes:
    - InIt
    - InIt
    - int
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::read_string
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void read_string(InIt& in, InIt end, int len, std::string& str, bool&
      err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:144,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:147,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:148,1
    - Dst: integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:148,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:149,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:153,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:153,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:154,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:155,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:155,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:159,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:160,1
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:161,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:162,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:166,1
    - Dst: dict
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:167,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:170,1
    - Dst: first::length
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:170,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:171,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:172,1
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:174,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:177,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:182,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:182,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:187,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:188,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - ' out'
    - ' e'
    argTypes:
    - OutIt
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 194
    functionName: libtorrent::aux::bencode_recursive
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - first::length
    - preformatted
    - string
    - list
    - dict
    - libtorrent::aux::write_integer
    - libtorrent::aux::write_string
    - integer
    - std::copy
    - libtorrent::aux::bencode_recursive
    - type
    - libtorrent::aux::write_char
    linkageType: ''
    returnType: int
    signature: int bencode_recursive(OutIt& out, const entry& e)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_until
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:223,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:225,1
    - Dst: integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::strtoll
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:231,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:242,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:246,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:247,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:248,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:268,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:275,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:280,1
    - Dst: entry::type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:281,1
    - Dst: entry::string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:288,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:289,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:309,1
    - Dst: is_digit
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:317,1
    - Dst: libtorrent::aux::read_until
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:327,1
    - Dst: atoi
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:329,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:329,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:330,1
    - Dst: libtorrent::aux::read_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:331,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:331,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 91
    argCount: 5
    argNames:
    - ' in'
    - end
    - ' ret'
    - ' err'
    - depth
    argTypes:
    - InIt
    - InIt
    - entry
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::bdecode_recursive
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_until
    - is_digit
    - entry
    - entry::type
    - list
    - string
    - std::strtoll
    - std::string::c_str
    - atoi
    - TORRENT_ASSERT
    - integer
    - libtorrent::aux::read_string
    - entry::string
    - libtorrent::aux::bdecode_recursive
    linkageType: ''
    returnType: void
    signature: void bdecode_recursive(InIt& in, InIt end, entry& ret, bool& err, int
      depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - ' e'
    argTypes:
    - OutIt
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: libtorrent::bencode
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 38
    functionsReached:
    - libtorrent::aux::bencode_recursive
    linkageType: ''
    returnType: int
    signature: int bencode(OutIt out, const entry& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:386,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:387,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - InIt
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 27
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::entry
    - libtorrent::aux::bdecode_recursive
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED bdecode(InIt start, InIt end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:399,1
    - Dst: std::distance
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:401,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - start
    - end
    - ' len'
    argTypes:
    - InIt
    - InIt
    - typename std::iterator_traits<InIt>::difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 27
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::entry
    - std::distance
    - libtorrent::aux::bdecode_recursive
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: "TORRENT_DEPRECATED bdecode(InIt start, InIt end\n\t\t, typename std::iterator_traits<InIt>::difference_type&
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::integer_type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:79,1
    - Dst: In
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:79,1
    - Dst: libtorrent::aux::integer_to_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:86,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:92,1
    - Dst: auto::size
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' out'
    - data
    argTypes:
    - OutIt
    - In
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::write_integer
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - entry::integer_type
    - In
    - TORRENT_ASSERT
    - auto::size
    - libtorrent::aux::integer_to_str
    linkageType: ''
    returnType: int
    signature: int write_integer(OutIt& out, In data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - OutIt
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::write_char
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_char(OutIt& out, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ' in'
    - end
    - end_token
    - ' err'
    argTypes:
    - InIt
    - InIt
    - char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_until
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string read_until(InIt& in, InIt end, char end_token, bool& err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' in'
    - end
    - len
    - ' str'
    - ' err'
    argTypes:
    - InIt
    - InIt
    - int
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::read_string
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void read_string(InIt& in, InIt end, int len, std::string& str, bool&
      err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:144,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:147,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:148,1
    - Dst: integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:148,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:149,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:153,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:153,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:154,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:155,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:155,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:159,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:160,1
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:161,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:162,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:166,1
    - Dst: dict
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:167,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:170,1
    - Dst: first::length
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:170,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:171,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:172,1
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:174,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:177,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:182,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:182,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:187,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:188,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - ' out'
    - ' e'
    argTypes:
    - OutIt
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 194
    functionName: libtorrent::aux::bencode_recursive
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - first::length
    - preformatted
    - string
    - list
    - dict
    - libtorrent::aux::write_integer
    - libtorrent::aux::write_string
    - integer
    - std::copy
    - libtorrent::aux::bencode_recursive
    - type
    - libtorrent::aux::write_char
    linkageType: ''
    returnType: int
    signature: int bencode_recursive(OutIt& out, const entry& e)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_until
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:223,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:225,1
    - Dst: integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::strtoll
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:231,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:242,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:246,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:247,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:248,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:268,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:275,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:280,1
    - Dst: entry::type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:281,1
    - Dst: entry::string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:288,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:289,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:309,1
    - Dst: is_digit
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:317,1
    - Dst: libtorrent::aux::read_until
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:327,1
    - Dst: atoi
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:329,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:329,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:330,1
    - Dst: libtorrent::aux::read_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:331,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:331,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 91
    argCount: 5
    argNames:
    - ' in'
    - end
    - ' ret'
    - ' err'
    - depth
    argTypes:
    - InIt
    - InIt
    - entry
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::bdecode_recursive
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_until
    - is_digit
    - entry
    - entry::type
    - list
    - string
    - std::strtoll
    - std::string::c_str
    - atoi
    - TORRENT_ASSERT
    - integer
    - libtorrent::aux::read_string
    - entry::string
    - libtorrent::aux::bdecode_recursive
    linkageType: ''
    returnType: void
    signature: void bdecode_recursive(InIt& in, InIt end, entry& ret, bool& err, int
      depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry::integer_type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:79,1
    - Dst: In
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:79,1
    - Dst: libtorrent::aux::integer_to_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:86,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:92,1
    - Dst: auto::size
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' out'
    - data
    argTypes:
    - OutIt
    - In
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::write_integer
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - entry::integer_type
    - In
    - TORRENT_ASSERT
    - auto::size
    - libtorrent::aux::integer_to_str
    linkageType: ''
    returnType: int
    signature: int write_integer(OutIt& out, In data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - c
    argTypes:
    - OutIt
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::write_char
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_char(OutIt& out, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ' in'
    - end
    - end_token
    - ' err'
    argTypes:
    - InIt
    - InIt
    - char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_until
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string read_until(InIt& in, InIt end, char end_token, bool& err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' in'
    - end
    - len
    - ' str'
    - ' err'
    argTypes:
    - InIt
    - InIt
    - int
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::read_string
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void read_string(InIt& in, InIt end, int len, std::string& str, bool&
      err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:144,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:147,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:148,1
    - Dst: integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:148,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:149,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:153,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:153,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:154,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:155,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:155,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:159,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:160,1
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:161,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:162,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:166,1
    - Dst: dict
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:167,1
    - Dst: libtorrent::aux::write_integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:170,1
    - Dst: first::length
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:170,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:171,1
    - Dst: libtorrent::aux::write_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:172,1
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:174,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:177,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:181,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:182,1
    - Dst: preformatted
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:182,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:187,1
    - Dst: libtorrent::aux::write_char
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:188,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - ' out'
    - ' e'
    argTypes:
    - OutIt
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 194
    functionName: libtorrent::aux::bencode_recursive
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 5
    functionsReached:
    - static_cast<int>
    - first::length
    - preformatted
    - string
    - list
    - dict
    - libtorrent::aux::write_integer
    - libtorrent::aux::write_string
    - integer
    - std::copy
    - libtorrent::aux::bencode_recursive
    - type
    - libtorrent::aux::write_char
    linkageType: ''
    returnType: int
    signature: int bencode_recursive(OutIt& out, const entry& e)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_until
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:221,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:223,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:225,1
    - Dst: integer
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::strtoll
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:227,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:231,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:242,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:246,1
    - Dst: list
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:247,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:248,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:268,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:275,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:280,1
    - Dst: entry::type
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:281,1
    - Dst: entry::string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:288,1
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:289,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:309,1
    - Dst: is_digit
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:317,1
    - Dst: libtorrent::aux::read_until
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:319,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:327,1
    - Dst: atoi
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:329,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:329,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:330,1
    - Dst: libtorrent::aux::read_string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:331,1
    - Dst: string
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:331,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 91
    argCount: 5
    argNames:
    - ' in'
    - end
    - ' ret'
    - ' err'
    - depth
    argTypes:
    - InIt
    - InIt
    - entry
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 352
    functionName: libtorrent::aux::bdecode_recursive
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::read_until
    - is_digit
    - entry
    - entry::type
    - list
    - string
    - std::strtoll
    - std::string::c_str
    - atoi
    - TORRENT_ASSERT
    - integer
    - libtorrent::aux::read_string
    - entry::string
    - libtorrent::aux::bdecode_recursive
    linkageType: ''
    returnType: void
    signature: void bdecode_recursive(InIt& in, InIt end, entry& ret, bool& err, int
      depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::bencode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - ' e'
    argTypes:
    - OutIt
    - entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: libtorrent::bencode
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 38
    functionsReached:
    - libtorrent::aux::bencode_recursive
    linkageType: ''
    returnType: int
    signature: int bencode(OutIt out, const entry& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:386,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:387,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - InIt
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 27
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::entry
    - libtorrent::aux::bdecode_recursive
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED bdecode(InIt start, InIt end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::bdecode_recursive
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:399,1
    - Dst: std::distance
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:400,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:401,1
    - Dst: libtorrent::entry
      Src: /src/libtorrent/include/libtorrent/bencode.hpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - start
    - end
    - ' len'
    argTypes:
    - InIt
    - InIt
    - typename std::iterator_traits<InIt>::difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: libtorrent::bdecode
    functionSourceFile: /src/libtorrent/include/libtorrent/bencode.hpp
    functionUses: 27
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::entry
    - std::distance
    - libtorrent::aux::bdecode_recursive
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: "TORRENT_DEPRECATED bdecode(InIt start, InIt end\n\t\t, typename std::iterator_traits<InIt>::difference_type&
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::digest32::size
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type size() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::digest32::clear
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::clear
    linkageType: ''
    returnType: void
    signature: void digest32() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void digest32(digest32 const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '& operator=(digest32 const&) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: digest32
    signature: digest32 & operator=(digest32 const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digest32::m_number::fill
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - digest32::m_number::fill
    linkageType: ''
    returnType: void
    signature: void digest32 (max)() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void digest32 (min)() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::digest32::clear
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:112,1
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:113,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:113,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - libtorrent::digest32::data
    - libtorrent::digest32::clear
    - libtorrent::digest32::size
    linkageType: ''
    returnType: void
    signature: void digest32(char const* s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::digest32::assign
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:119,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::data
    - libtorrent::digest32::assign
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED digest32(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::digest32::assign
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::assign
    linkageType: ''
    returnType: void
    signature: void digest32(span<char const> s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:128,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:128,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:129,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:129,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:129,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:129,1
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:130,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:130,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:130,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: libtorrent::digest32::assign
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    - span<char const>::data
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - libtorrent::digest32::size
    - span<char const>::size
    - libtorrent::digest32::data
    linkageType: ''
    returnType: void
    signature: void assign(span<char const> s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:132,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:132,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: libtorrent::digest32::assign
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::digest32::data
    - std::memcpy
    - libtorrent::digest32::size
    linkageType: ''
    returnType: void
    signature: void assign(char const* str) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:134,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::digest32::data
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::digest32::data
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: char
    signature: char * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:135,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::digest32::data
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 6
    functionsReached:
    - reinterpret_cast<char*>
    - libtorrent::digest32::data
    linkageType: ''
    returnType: char
    signature: char * data() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: libtorrent::digest32::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 2
    functionsReached:
    - fill
    linkageType: ''
    returnType: void
    signature: void clear() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: all_of
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:143,1
    - Dst: libtorrent::digest32::begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:143,1
    - Dst: libtorrent::digest32::end
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: libtorrent::digest32::is_all_zeros
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::begin
    - libtorrent::digest32::end
    - all_of
    linkageType: ''
    returnType: bool
    signature: bool is_all_zeros() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:154,1
    - Dst: m_number::begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:154,1
    - Dst: m_number::end
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:154,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: operator==(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - m_number::begin
    - equal
    - m_number::end
    - libtorrent::begin
    linkageType: ''
    returnType: bool
    signature: bool operator==(digest32 const& n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:158,1
    - Dst: m_number::begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:158,1
    - Dst: m_number::end
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:158,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: operator!=(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - m_number::begin
    - equal
    - m_number::end
    - libtorrent::begin
    linkageType: ''
    returnType: bool
    signature: bool operator!=(digest32 const& n) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:162,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:164,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:164,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:165,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: operator<(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<1>
    - boost::get<0>
    - boost::combine
    - libtorrent::aux::network_to_host
    linkageType: ''
    returnType: bool
    signature: bool operator<(digest32 const& n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: libtorrent::digest32::count_leading_zeroes
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::count_leading_zeros
    linkageType: ''
    returnType: int
    signature: int count_leading_zeroes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:181,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:182,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: operator~() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<0>
    - boost::get<1>
    - boost::combine
    linkageType: ''
    returnType: digest32
    signature: digest32 operator~() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: operator^(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: digest32
    signature: digest32 operator^(digest32 const& n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:197,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:198,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: '& operator^=(digest32 const& n) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<1>
    - boost::get<0>
    - boost::combine
    linkageType: ''
    returnType: digest32
    signature: digest32 & operator^=(digest32 const& n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: operator&(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: digest32
    signature: digest32 operator&(digest32 const& n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:213,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:214,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: '& operator&=(digest32 const& n) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<1>
    - boost::get<0>
    - boost::combine
    linkageType: ''
    returnType: digest32
    signature: digest32 & operator&=(digest32 const& n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:221,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:222,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: '& operator|=(digest32 const& n) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<1>
    - boost::get<0>
    - boost::combine
    linkageType: ''
    returnType: digest32
    signature: digest32 & operator|=(digest32 const& n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:229,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:229,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:230,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: '& operator[](index_type i) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - reinterpret_cast<std::uint8_t*>
    - libtorrent::size
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t & operator[](index_type i) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:234,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:234,1
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:235,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: '& operator[](index_type i) const noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - reinterpret_cast<std::uint8_t const*>
    - libtorrent::size
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t & operator[](index_type i) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:244,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: libtorrent::digest32::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::digest32::data
    - reinterpret_cast<std::uint8_t const*>
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:246,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:246,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: libtorrent::digest32::end
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::digest32::size
    - libtorrent::digest32::data
    - reinterpret_cast<std::uint8_t const*>
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:248,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: libtorrent::digest32::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::digest32::data
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: iterator
    signature: iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:250,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:250,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: libtorrent::digest32::end
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::digest32::size
    - libtorrent::digest32::data
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: iterator
    signature: iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:256,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:256,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:256,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: libtorrent::digest32::to_string
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::data
    - std::string
    - libtorrent::digest32::size
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_out
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' val'
    argTypes:
    - std::ostream
    - digest32<N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: '& operator<<(std::ostream& os, digest32<N> const& val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - stream_out
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, digest32<N> const& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_in
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' is'
    - ' val'
    argTypes:
    - std::istream
    - digest32<N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: '& operator>>(std::istream& is, digest32<N>& val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - stream_in
    linkageType: ''
    returnType: std::istream
    signature: std::istream & operator>>(std::istream& is, digest32<N>& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:310,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - libtorrent::digest32<N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 312
    functionName: operator()(libtorrent::digest32<N> const& k) const
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - data
    linkageType: ''
    returnType: void
    signature: void operator()(libtorrent::digest32<N> const& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::digest32::size
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type size() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::digest32::clear
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::clear
    linkageType: ''
    returnType: void
    signature: void digest32() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void digest32(digest32 const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '& operator=(digest32 const&) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: digest32
    signature: digest32 & operator=(digest32 const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: digest32::m_number::fill
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - digest32::m_number::fill
    linkageType: ''
    returnType: void
    signature: void digest32 (max)() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void digest32 (min)() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::digest32::clear
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:112,1
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:113,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:113,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - libtorrent::digest32::data
    - libtorrent::digest32::clear
    - libtorrent::digest32::size
    linkageType: ''
    returnType: void
    signature: void digest32(char const* s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::digest32::assign
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:119,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::data
    - libtorrent::digest32::assign
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED digest32(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::digest32::assign
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: libtorrent::digest32::digest32
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::assign
    linkageType: ''
    returnType: void
    signature: void digest32(span<char const> s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:128,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:128,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:129,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:129,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:129,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:129,1
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:130,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:130,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:130,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: libtorrent::digest32::assign
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 4
    functionsReached:
    - std::memcpy
    - span<char const>::data
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - libtorrent::digest32::size
    - span<char const>::size
    - libtorrent::digest32::data
    linkageType: ''
    returnType: void
    signature: void assign(span<char const> s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:132,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:132,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: libtorrent::digest32::assign
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::digest32::data
    - std::memcpy
    - libtorrent::digest32::size
    linkageType: ''
    returnType: void
    signature: void assign(char const* str) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:134,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::digest32::data
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::digest32::data
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: char
    signature: char * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:135,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::digest32::data
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 17
    functionsReached:
    - reinterpret_cast<char*>
    - libtorrent::digest32::data
    linkageType: ''
    returnType: char
    signature: char * data() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: libtorrent::digest32::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 4
    functionsReached:
    - fill
    linkageType: ''
    returnType: void
    signature: void clear() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: all_of
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:143,1
    - Dst: libtorrent::digest32::begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:143,1
    - Dst: libtorrent::digest32::end
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: libtorrent::digest32::is_all_zeros
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::begin
    - libtorrent::digest32::end
    - all_of
    linkageType: ''
    returnType: bool
    signature: bool is_all_zeros() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:154,1
    - Dst: m_number::begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:154,1
    - Dst: m_number::end
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:154,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: operator==(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - m_number::begin
    - equal
    - m_number::end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool operator==(digest32 const& n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:158,1
    - Dst: m_number::begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:158,1
    - Dst: m_number::end
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:158,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: operator!=(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - m_number::begin
    - equal
    - m_number::end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool operator!=(digest32 const& n) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:162,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:164,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:164,1
    - Dst: libtorrent::aux::network_to_host
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:165,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: operator<(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<1>
    - boost::get<0>
    - boost::combine
    - libtorrent::aux::network_to_host
    linkageType: ''
    returnType: bool
    signature: bool operator<(digest32 const& n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::count_leading_zeros
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: libtorrent::digest32::count_leading_zeroes
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::count_leading_zeros
    linkageType: ''
    returnType: int
    signature: int count_leading_zeroes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:181,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:182,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: operator~() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<0>
    - boost::get<1>
    - boost::combine
    linkageType: ''
    returnType: digest32
    signature: digest32 operator~() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: operator^(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: digest32
    signature: digest32 operator^(digest32 const& n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:197,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:198,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: '& operator^=(digest32 const& n) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<1>
    - boost::get<0>
    - boost::combine
    linkageType: ''
    returnType: digest32
    signature: digest32 & operator^=(digest32 const& n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: operator&(digest32 const& n) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: digest32
    signature: digest32 operator&(digest32 const& n) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:213,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:214,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: '& operator&=(digest32 const& n) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<1>
    - boost::get<0>
    - boost::combine
    linkageType: ''
    returnType: digest32
    signature: digest32 & operator&=(digest32 const& n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::combine
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:221,1
    - Dst: boost::get<0>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:222,1
    - Dst: boost::get<1>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - digest32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: '& operator|=(digest32 const& n) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - boost::get<1>
    - boost::get<0>
    - boost::combine
    linkageType: ''
    returnType: digest32
    signature: digest32 & operator|=(digest32 const& n) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:229,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:229,1
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:230,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: '& operator[](index_type i) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - size
    - reinterpret_cast<std::uint8_t*>
    - data
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t & operator[](index_type i) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:234,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:234,1
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:235,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: '& operator[](index_type i) const noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - size
    - reinterpret_cast<std::uint8_t const*>
    - data
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t & operator[](index_type i) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:244,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: libtorrent::digest32::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::digest32::data
    - reinterpret_cast<std::uint8_t const*>
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:246,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:246,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: libtorrent::digest32::end
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::digest32::size
    - libtorrent::digest32::data
    - reinterpret_cast<std::uint8_t const*>
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:248,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: libtorrent::digest32::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::digest32::data
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: iterator
    signature: iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<std::uint8_t*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:250,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:250,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: libtorrent::digest32::end
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::digest32::size
    - libtorrent::digest32::data
    - reinterpret_cast<std::uint8_t*>
    linkageType: ''
    returnType: iterator
    signature: iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:256,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:256,1
    - Dst: libtorrent::digest32::data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:256,1
    - Dst: libtorrent::digest32::size
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: libtorrent::digest32::to_string
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::digest32::data
    - std::string
    - libtorrent::digest32::size
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_out
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' os'
    - ' val'
    argTypes:
    - std::ostream
    - digest32<N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: '& operator<<(std::ostream& os, digest32<N> const& val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - stream_out
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, digest32<N> const& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_in
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' is'
    - ' val'
    argTypes:
    - std::istream
    - digest32<N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: '& operator>>(std::istream& is, digest32<N>& val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - stream_in
    linkageType: ''
    returnType: std::istream
    signature: std::istream & operator>>(std::istream& is, digest32<N>& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:310,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/sha1_hash.hpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - libtorrent::digest32<N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 312
    functionName: operator()(libtorrent::digest32<N> const& k) const
    functionSourceFile: /src/libtorrent/include/libtorrent/sha1_hash.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - data
    linkageType: ''
    returnType: void
    signature: void operator()(libtorrent::digest32<N> const& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/natpmp.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::self
    functionSourceFile: /src/libtorrent/include/libtorrent/natpmp.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<natpmp>
    signature: std::shared_ptr<natpmp> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/natpmp.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::self
    functionSourceFile: /src/libtorrent/include/libtorrent/natpmp.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<natpmp>
    signature: std::shared_ptr<natpmp> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::peer_request
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_request.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: operator==(peer_request const& r) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_request.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(peer_request const& r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: libtorrent::peer_request
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_request.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - peer_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: operator==(peer_request const& r) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_request.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(peer_request const& r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(strong_typedef const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(strong_typedef&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(UnderlyingType val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: operator UnderlyingType() const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(UnderlyingType val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: operator UnderlyingType() const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: operator==(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: operator!=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: operator<(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: operator>(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: operator>=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: operator<=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '& operator--()'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: operator++(int) &
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator++(int) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: operator--(int) &
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator--(int) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: operator-(strong_typedef lhs, strong_typedef rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: diff_type
    signature: diff_type operator-(strong_typedef lhs, strong_typedef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: operator+(strong_typedef lhs, diff_type rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator+(strong_typedef lhs, diff_type rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - diff_type
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: operator+(diff_type lhs, strong_typedef rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator+(diff_type lhs, strong_typedef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: operator-(strong_typedef lhs, diff_type rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator-(strong_typedef lhs, diff_type rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: '& operator+=(diff_type rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator+=(diff_type rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: '& operator-=(diff_type rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator-=(diff_type rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: '& operator=(strong_typedef const& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator=(strong_typedef const& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(strong_typedef&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator=(strong_typedef&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<typename type_to_print_as<UnderlyingType>::type>
      Src: /src/libtorrent/include/libtorrent/units.hpp:109,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - val
    argTypes:
    - std::ostream
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: '& operator<<(std::ostream& os, strong_typedef val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<typename type_to_print_as<UnderlyingType>::type>
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, strong_typedef val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_string
      Src: /src/libtorrent/include/libtorrent/units.hpp:133,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/units.hpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::to_string
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::to_string
    - static_cast<T>
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(strong_typedef<T, Tag> const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::next
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef<T, Tag>
    signature: strong_typedef<T, Tag> next(strong_typedef<T, Tag> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::prev
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef<T, Tag>
    signature: strong_typedef<T, Tag> prev(strong_typedef<T, Tag> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(strong_typedef const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(strong_typedef&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(UnderlyingType val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: operator UnderlyingType() const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(UnderlyingType val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: operator UnderlyingType() const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: operator==(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: operator!=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: operator<(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: operator>(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: operator>=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: operator<=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '& operator--()'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: operator++(int) &
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator++(int) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: operator--(int) &
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator--(int) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: operator-(strong_typedef lhs, strong_typedef rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: diff_type
    signature: diff_type operator-(strong_typedef lhs, strong_typedef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: operator+(strong_typedef lhs, diff_type rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator+(strong_typedef lhs, diff_type rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - diff_type
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: operator+(diff_type lhs, strong_typedef rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator+(diff_type lhs, strong_typedef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: operator-(strong_typedef lhs, diff_type rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator-(strong_typedef lhs, diff_type rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: '& operator+=(diff_type rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator+=(diff_type rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: '& operator-=(diff_type rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator-=(diff_type rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: '& operator=(strong_typedef const& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator=(strong_typedef const& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(strong_typedef&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator=(strong_typedef&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<typename type_to_print_as<UnderlyingType>::type>
      Src: /src/libtorrent/include/libtorrent/units.hpp:109,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - val
    argTypes:
    - std::ostream
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: '& operator<<(std::ostream& os, strong_typedef val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<typename type_to_print_as<UnderlyingType>::type>
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, strong_typedef val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_string
      Src: /src/libtorrent/include/libtorrent/units.hpp:133,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/units.hpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::to_string
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::to_string
    - static_cast<T>
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(strong_typedef<T, Tag> const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::next
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef<T, Tag>
    signature: strong_typedef<T, Tag> next(strong_typedef<T, Tag> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::prev
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef<T, Tag>
    signature: strong_typedef<T, Tag> prev(strong_typedef<T, Tag> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(strong_typedef const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(strong_typedef&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(UnderlyingType val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: operator UnderlyingType() const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(UnderlyingType val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: operator UnderlyingType() const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: operator==(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: operator!=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: operator<(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: operator>(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: operator>=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: operator<=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '& operator--()'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: operator++(int) &
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator++(int) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: operator--(int) &
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator--(int) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: operator-(strong_typedef lhs, strong_typedef rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: diff_type
    signature: diff_type operator-(strong_typedef lhs, strong_typedef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: operator+(strong_typedef lhs, diff_type rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator+(strong_typedef lhs, diff_type rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - diff_type
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: operator+(diff_type lhs, strong_typedef rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator+(diff_type lhs, strong_typedef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: operator-(strong_typedef lhs, diff_type rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator-(strong_typedef lhs, diff_type rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: '& operator+=(diff_type rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator+=(diff_type rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: '& operator-=(diff_type rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator-=(diff_type rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: '& operator=(strong_typedef const& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator=(strong_typedef const& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(strong_typedef&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator=(strong_typedef&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<typename type_to_print_as<UnderlyingType>::type>
      Src: /src/libtorrent/include/libtorrent/units.hpp:109,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - val
    argTypes:
    - std::ostream
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: '& operator<<(std::ostream& os, strong_typedef val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<typename type_to_print_as<UnderlyingType>::type>
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, strong_typedef val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_string
      Src: /src/libtorrent/include/libtorrent/units.hpp:133,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/units.hpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::to_string
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::to_string
    - static_cast<T>
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(strong_typedef<T, Tag> const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::next
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef<T, Tag>
    signature: strong_typedef<T, Tag> next(strong_typedef<T, Tag> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::prev
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef<T, Tag>
    signature: strong_typedef<T, Tag> prev(strong_typedef<T, Tag> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(strong_typedef const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(strong_typedef&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(UnderlyingType val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: operator UnderlyingType() const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::strong_typedef
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strong_typedef(UnderlyingType val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: operator UnderlyingType() const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: operator==(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: operator!=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: operator<(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: operator>(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: operator>=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: operator<=(strong_typedef const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(strong_typedef const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '& operator--()'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: operator++(int) &
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator++(int) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: operator--(int) &
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator--(int) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: operator-(strong_typedef lhs, strong_typedef rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: diff_type
    signature: diff_type operator-(strong_typedef lhs, strong_typedef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: operator+(strong_typedef lhs, diff_type rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator+(strong_typedef lhs, diff_type rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - diff_type
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: operator+(diff_type lhs, strong_typedef rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator+(diff_type lhs, strong_typedef rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - strong_typedef
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: operator-(strong_typedef lhs, diff_type rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef operator-(strong_typedef lhs, diff_type rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: '& operator+=(diff_type rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator+=(diff_type rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: '& operator-=(diff_type rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator-=(diff_type rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: '& operator=(strong_typedef const& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator=(strong_typedef const& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(strong_typedef&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef
    signature: strong_typedef & operator=(strong_typedef&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<typename type_to_print_as<UnderlyingType>::type>
      Src: /src/libtorrent/include/libtorrent/units.hpp:109,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - val
    argTypes:
    - std::ostream
    - strong_typedef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: '& operator<<(std::ostream& os, strong_typedef val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - static_cast<typename type_to_print_as<UnderlyingType>::type>
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, strong_typedef val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_string
      Src: /src/libtorrent/include/libtorrent/units.hpp:133,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/units.hpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: libtorrent::aux::to_string
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::to_string
    - static_cast<T>
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(strong_typedef<T, Tag> const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: libtorrent::aux::next
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef<T, Tag>
    signature: strong_typedef<T, Tag> next(strong_typedef<T, Tag> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - strong_typedef<T, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::prev
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strong_typedef<T, Tag>
    signature: strong_typedef<T, Tag> prev(strong_typedef<T, Tag> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType, Tag>>::type
      Src: /src/libtorrent/include/libtorrent/units.hpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType,
      Tag>>::type
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 1
    functionsReached:
    - std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType, Tag>>::type
    linkageType: ''
    returnType: void
    signature: void type (min)()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType, Tag>>::type
      Src: /src/libtorrent/include/libtorrent/units.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType,
      Tag>>::type
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 2
    functionsReached:
    - std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType, Tag>>::type
    linkageType: ''
    returnType: void
    signature: void type (max)()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::base::operator()(static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: operator()(argument_type const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - std::base::operator()(static_cast<UnderlyingType>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType, Tag>>::type
      Src: /src/libtorrent/include/libtorrent/units.hpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType,
      Tag>>::type
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 3
    functionsReached:
    - std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType, Tag>>::type
    linkageType: ''
    returnType: void
    signature: void type (min)()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType, Tag>>::type
      Src: /src/libtorrent/include/libtorrent/units.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType,
      Tag>>::type
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 4
    functionsReached:
    - std::numeric_limits<libtorrent::aux::strong_typedef<UnderlyingType, Tag>>::type
    linkageType: ''
    returnType: void
    signature: void type (max)()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base::operator()(static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/units.hpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: operator()(argument_type const& s) const
    functionSourceFile: /src/libtorrent/include/libtorrent/units.hpp
    functionUses: 0
    functionsReached:
    - base::operator()(static_cast<UnderlyingType>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ip_range
    - ip_range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: operator==(ip_range const& lhs, ip_range const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(ip_range const& lhs, ip_range const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::plus_one
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t plus_one(std::uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::minus_one
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t minus_one(std::uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::zero
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t zero<std::uint16_t>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::max_addr
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t max_addr<std::uint16_t>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::filter_impl::range
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range(Addr addr, std::uint32_t a = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: operator<(range const& r) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(range const& r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator<(Addr const& a) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(Addr const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - range
    - range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: operator==(range const& lhs, range const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(range const& lhs, range const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::plus_one
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t plus_one(std::uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::minus_one
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t minus_one(std::uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::zero
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t zero<std::uint16_t>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::max_addr
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t max_addr<std::uint16_t>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::filter_impl::range
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range(Addr addr, std::uint32_t a = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: operator<(range const& r) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(range const& r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator<(Addr const& a) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(Addr const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - range
    - range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: operator==(range const& lhs, range const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(range const& lhs, range const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ip_filter
      Src: /src/libtorrent/include/libtorrent/ip_filter.hpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 198
    functionName: libtorrent::ip_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::ip_filter
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT ip_filter
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::port_filter
      Src: /src/libtorrent/include/libtorrent/ip_filter.hpp:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 237
    functionName: libtorrent::port_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::port_filter
    linkageType: ''
    returnType: class TORRENT_EXPORT
    signature: class TORRENT_EXPORT port_filter
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ip_range
    - ip_range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: operator==(ip_range const& lhs, ip_range const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(ip_range const& lhs, ip_range const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::plus_one
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t plus_one(std::uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::minus_one
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t minus_one(std::uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::zero
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t zero<std::uint16_t>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::max_addr
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t max_addr<std::uint16_t>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::filter_impl::range
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range(Addr addr, std::uint32_t a = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: operator<(range const& r) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(range const& r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator<(Addr const& a) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(Addr const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - range
    - range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: operator==(range const& lhs, range const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(range const& lhs, range const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::aux::plus_one
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t plus_one(std::uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::aux::minus_one
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t minus_one(std::uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::aux::zero
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t zero<std::uint16_t>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::max_addr
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t max_addr<std::uint16_t>()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - addr
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::filter_impl::range
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range(Addr addr, std::uint32_t a = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: operator<(range const& r) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(range const& r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: operator<(Addr const& a) const
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(Addr const& a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - range
    - range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: operator==(range const& lhs, range const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(range const& lhs, range const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ip_filter
      Src: /src/libtorrent/include/libtorrent/ip_filter.hpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 198
    functionName: libtorrent::ip_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::ip_filter
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT ip_filter
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::port_filter
      Src: /src/libtorrent/include/libtorrent/ip_filter.hpp:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 237
    functionName: libtorrent::port_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/ip_filter.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::port_filter
    linkageType: ''
    returnType: class TORRENT_EXPORT
    signature: class TORRENT_EXPORT port_filter
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::udp_tracker_connection
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:58,1
    - Dst: std::static_pointer_cast<udp_tracker_connection>
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:81,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:82,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:101,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 130
    functionName: libtorrent::udp_tracker_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::shared_from_this
    - seconds32
    - std::static_pointer_cast<udp_tracker_connection>
    - libtorrent::udp_tracker_connection
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT udp_tracker_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::transaction_id
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t transaction_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<udp_tracker_connection>
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:81,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::shared_from_this
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::shared_from_this
    - std::static_pointer_cast<udp_tracker_connection>
    linkageType: ''
    returnType: std::shared_ptr<udp_tracker_connection>
    signature: std::shared_ptr<udp_tracker_connection> shared_from_this()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::udp_tracker_connection
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:58,1
    - Dst: std::static_pointer_cast<udp_tracker_connection>
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:81,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:82,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:101,1
    - Dst: seconds32
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 130
    functionName: libtorrent::udp_tracker_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::shared_from_this
    - seconds32
    - std::static_pointer_cast<udp_tracker_connection>
    - libtorrent::udp_tracker_connection
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT udp_tracker_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::transaction_id
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t transaction_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::static_pointer_cast<udp_tracker_connection>
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:81,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::shared_from_this
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_tracker_connection.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::shared_from_this
    - std::static_pointer_cast<udp_tracker_connection>
    linkageType: ''
    returnType: std::shared_ptr<udp_tracker_connection>
    signature: std::shared_ptr<udp_tracker_connection> shared_from_this()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_tracker_connection
      Src: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp:59,1
    - Dst: return std::static_pointer_cast<http_tracker_connection>
      Src: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp:72,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: libtorrent::http_tracker_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::shared_from_this
    - return std::static_pointer_cast<http_tracker_connection>
    - libtorrent::http_tracker_connection
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT http_tracker_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::on_timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_timeout(error_code const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_tracker_connection
      Src: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp:59,1
    - Dst: return std::static_pointer_cast<http_tracker_connection>
      Src: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp:72,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: libtorrent::http_tracker_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::shared_from_this
    - return std::static_pointer_cast<http_tracker_connection>
    - libtorrent::http_tracker_connection
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT http_tracker_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::on_timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/http_tracker_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_timeout(error_code const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: libtorrent::bit_t
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bit_t(int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: operator int() const
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator int() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - unsigned long long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: operator ""_bit(unsigned long long int b)
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: bit_t
    signature: bit_t operator ""_bit(unsigned long long int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bitfield_flag const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bitfield_flag&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(UnderlyingType const val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:66,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bit
    argTypes:
    - bit_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bit_t const bit) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: operator UnderlyingType() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: operator UnderlyingType() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: operator bool() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::flags::bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:76,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: libtorrent::flags::all
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    - libtorrent::flags::bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: operator==(bitfield_flag const f) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(bitfield_flag const f) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator!=(bitfield_flag const f) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(bitfield_flag const f) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: '& operator|=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator|=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: '& operator&=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator&=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: '& operator^=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator^=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::flags::bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: operator|(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::flags::bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator|(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::flags::bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: operator&(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::flags::bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator&(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::flags::bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: operator^(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::flags::bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator^(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::flags::bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:123,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: operator~() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    - libtorrent::flags::bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator~() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: '& operator=(bitfield_flag const& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator=(bitfield_flag const& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: '& operator=(bitfield_flag&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator=(bitfield_flag&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - val
    argTypes:
    - std::ostream
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: '& operator<<(std::ostream& os, bitfield_flag val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, bitfield_flag val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bitfield_flag const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bitfield_flag&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(UnderlyingType const val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:66,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bit
    argTypes:
    - bit_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 5
    functionsReached:
    - static_cast<int>
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bit_t const bit) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: operator UnderlyingType() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: operator UnderlyingType() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: operator bool() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::flags::bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:76,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: libtorrent::flags::all
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    - libtorrent::flags::bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: operator==(bitfield_flag const f) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(bitfield_flag const f) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator!=(bitfield_flag const f) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(bitfield_flag const f) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: '& operator|=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator|=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: '& operator&=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator&=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: '& operator^=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator^=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: operator|(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator|(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: operator&(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator&(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: operator^(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator^(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:123,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: operator~() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator~() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: '& operator=(bitfield_flag const& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator=(bitfield_flag const& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: '& operator=(bitfield_flag&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator=(bitfield_flag&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - val
    argTypes:
    - std::ostream
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: '& operator<<(std::ostream& os, bitfield_flag val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, bitfield_flag val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: libtorrent::bit_t
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bit_t(int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: operator int() const
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator int() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - unsigned long long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: operator ""_bit(unsigned long long int b)
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: bit_t
    signature: bit_t operator ""_bit(unsigned long long int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bitfield_flag const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bitfield_flag&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(UnderlyingType const val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:66,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bit
    argTypes:
    - bit_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bit_t const bit) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: operator UnderlyingType() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: operator UnderlyingType() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: operator bool() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::flags::bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:76,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: libtorrent::flags::all
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    - libtorrent::flags::bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: operator==(bitfield_flag const f) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(bitfield_flag const f) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator!=(bitfield_flag const f) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(bitfield_flag const f) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: '& operator|=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator|=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: '& operator&=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator&=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: '& operator^=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator^=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: operator|(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator|(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: operator&(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator&(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: operator^(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator^(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:123,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: operator~() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator~() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: '& operator=(bitfield_flag const& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator=(bitfield_flag const& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: '& operator=(bitfield_flag&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator=(bitfield_flag&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - val
    argTypes:
    - std::ostream
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: '& operator<<(std::ostream& os, bitfield_flag val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, bitfield_flag val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bitfield_flag const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bitfield_flag&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - UnderlyingType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(UnderlyingType const val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:66,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bit
    argTypes:
    - bit_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: libtorrent::flags::bitfield_flag
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 7
    functionsReached:
    - static_cast<int>
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: void
    signature: void bitfield_flag(bit_t const bit) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: operator UnderlyingType() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: operator UnderlyingType() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator UnderlyingType() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: operator bool() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::flags::bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:76,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: libtorrent::flags::all
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    - libtorrent::flags::bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: operator==(bitfield_flag const f) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(bitfield_flag const f) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator!=(bitfield_flag const f) const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(bitfield_flag const f) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: '& operator|=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator|=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: '& operator&=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator&=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: '& operator^=(bitfield_flag const f) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator^=(bitfield_flag const f) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: operator|(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator|(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: operator&(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator&(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - bitfield_flag
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: operator^(bitfield_flag const lhs, bitfield_flag const rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator^(bitfield_flag const lhs, bitfield_flag const
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfield_flag
      Src: /src/libtorrent/include/libtorrent/flags.hpp:123,1
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: operator~() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - bitfield_flag
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag operator~() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: '& operator=(bitfield_flag const& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator=(bitfield_flag const& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: '& operator=(bitfield_flag&& rhs) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitfield_flag
    signature: bitfield_flag & operator=(bitfield_flag&& rhs) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UnderlyingType>
      Src: /src/libtorrent/include/libtorrent/flags.hpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - val
    argTypes:
    - std::ostream
    - bitfield_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: '& operator<<(std::ostream& os, bitfield_flag val)'
    functionSourceFile: /src/libtorrent/include/libtorrent/flags.hpp
    functionUses: 0
    functionsReached:
    - static_cast<UnderlyingType>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, bitfield_flag val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle(file_handle const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle(file_handle&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::aux::fd
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: handle_type
    signature: handle_type fd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle(file_handle const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle(file_handle&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::aux::fd
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: handle_type
    signature: handle_type fd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle(file_handle const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle(file_handle&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::aux::fd
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: handle_type
    signature: handle_type fd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle(file_handle const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - file_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: libtorrent::aux::file_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_handle(file_handle&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::aux::fd
    functionSourceFile: /src/libtorrent/include/libtorrent/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: handle_type
    signature: handle_type fd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::tailqueue_node
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<N*>
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - N*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: libtorrent::postinc
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - static_cast<N*>
    linkageType: ''
    returnType: N
    signature: N * postinc(N*& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::get
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::next
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void next()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cur
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: libtorrent::tailqueue_iterator
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue_iterator(T* cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::tailqueue
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::tailqueue
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue(tailqueue const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - tailqueue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: libtorrent::tailqueue
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue(tailqueue&& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '& operator=(tailqueue const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tailqueue
    signature: tailqueue & operator=(tailqueue const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:89,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - tailqueue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: '& operator=(tailqueue&& t)'
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: tailqueue
    signature: tailqueue & operator=(tailqueue&& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tailqueue_iterator
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: libtorrent::iterate
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::tailqueue_iterator
    linkageType: ''
    returnType: tailqueue_iterator<const T>
    signature: tailqueue_iterator<const T> iterate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tailqueue_iterator
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: libtorrent::iterate
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::tailqueue_iterator
    linkageType: ''
    returnType: tailqueue_iterator<T>
    signature: tailqueue_iterator<T> iterate()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:110,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:111,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - tailqueue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: libtorrent::append
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::swap
    linkageType: ''
    returnType: void
    signature: void append(tailqueue<T> rhs) &
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:133,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:139,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:143,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:144,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:144,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - tailqueue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: libtorrent::prepend
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::move
    - libtorrent::append
    - libtorrent::swap
    linkageType: ''
    returnType: void
    signature: void prepend(tailqueue<T> rhs) &
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: libtorrent::pop_front
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T * pop_front()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: libtorrent::push_front
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void push_front(T* e) &
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: libtorrent::push_back
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void push_back(T* e) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: libtorrent::get_all
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T * get_all() &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:189,1
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:190,1
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - tailqueue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: libtorrent::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 8
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void swap(tailqueue<T>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 127
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: libtorrent::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 60
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: libtorrent::first
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T * first() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: libtorrent::last
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T * last() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::tailqueue_node
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<N*>
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - N*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: libtorrent::postinc
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - static_cast<N*>
    linkageType: ''
    returnType: N
    signature: N * postinc(N*& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::get
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::next
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void next()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cur
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: libtorrent::tailqueue_iterator
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue_iterator(T* cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::tailqueue
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: libtorrent::tailqueue
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue(tailqueue const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - tailqueue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: libtorrent::tailqueue
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tailqueue(tailqueue&& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '& operator=(tailqueue const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tailqueue
    signature: tailqueue & operator=(tailqueue const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:88,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:89,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - tailqueue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: '& operator=(tailqueue&& t)'
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: tailqueue
    signature: tailqueue & operator=(tailqueue&& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tailqueue_iterator
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: libtorrent::iterate
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::tailqueue_iterator
    linkageType: ''
    returnType: tailqueue_iterator<const T>
    signature: tailqueue_iterator<const T> iterate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::tailqueue_iterator
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: libtorrent::iterate
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::tailqueue_iterator
    linkageType: ''
    returnType: tailqueue_iterator<T>
    signature: tailqueue_iterator<T> iterate()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:110,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:111,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:117,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - tailqueue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: libtorrent::append
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 9
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::swap
    linkageType: ''
    returnType: void
    signature: void append(tailqueue<T> rhs) &
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:130,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:131,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:132,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:133,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:139,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:143,1
    - Dst: libtorrent::append
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:144,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:144,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:145,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - tailqueue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: libtorrent::prepend
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::move
    - libtorrent::append
    - libtorrent::swap
    linkageType: ''
    returnType: void
    signature: void prepend(tailqueue<T> rhs) &
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: libtorrent::pop_front
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T * pop_front()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: libtorrent::push_front
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void push_front(T* e) &
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:170,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: libtorrent::push_back
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void push_back(T* e) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: libtorrent::get_all
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T * get_all() &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:189,1
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:190,1
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - tailqueue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: libtorrent::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 10
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void swap(tailqueue<T>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 127
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: libtorrent::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 60
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: libtorrent::first
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T * first() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: libtorrent::last
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T * last() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - libtorrent::tailqueue<T>
    - libtorrent::tailqueue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: std::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 27
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void swap(libtorrent::tailqueue<T>& lhs, libtorrent::tailqueue<T>&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/tailqueue.hpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - libtorrent::tailqueue<T>
    - libtorrent::tailqueue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: std::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/tailqueue.hpp
    functionUses: 28
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void swap(libtorrent::tailqueue<T>& lhs, libtorrent::tailqueue<T>&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_bits
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: libtorrent::find
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::has_bits
    linkageType: ''
    returnType: bool
    signature: bool find(sha1_hash const& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_bits
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: libtorrent::set
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::set_bits
    linkageType: ''
    returnType: void
    signature: void set(sha1_hash const& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:58,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: libtorrent::to_string
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 24
    functionsReached:
    - std::string
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: libtorrent::from_string
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: void
    signature: void from_string(char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 58
    functionsReached:
    - std::memset
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::count_zero_bits
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:67,1
    - Dst: log
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:69,1
    - Dst: log
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 127
    functionsReached:
    - log
    - libtorrent::count_zero_bits
    linkageType: ''
    returnType: float
    signature: float size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::bloom_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    linkageType: ''
    returnType: void
    signature: void bloom_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_bits
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: libtorrent::find
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::has_bits
    linkageType: ''
    returnType: bool
    signature: bool find(sha1_hash const& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_bits
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: libtorrent::set
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::set_bits
    linkageType: ''
    returnType: void
    signature: void set(sha1_hash const& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:58,1
    - Dst: reinterpret_cast<char const*>
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: libtorrent::to_string
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 24
    functionsReached:
    - std::string
    - reinterpret_cast<char const*>
    linkageType: ''
    returnType: std::string
    signature: std::string to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: libtorrent::from_string
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: void
    signature: void from_string(char const* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 59
    functionsReached:
    - std::memset
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::count_zero_bits
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:67,1
    - Dst: log
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:69,1
    - Dst: log
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 127
    functionsReached:
    - log
    - libtorrent::count_zero_bits
    linkageType: ''
    returnType: float
    signature: float size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::clear
      Src: /src/libtorrent/include/libtorrent/bloom_filter.hpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::bloom_filter
    functionSourceFile: /src/libtorrent/include/libtorrent/bloom_filter.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::clear
    linkageType: ''
    returnType: void
    signature: void bloom_filter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_entry
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 116
    functionName: libtorrent::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::file_entry
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT file_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry(file_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry(file_entry&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: libtorrent::file_slice
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_slice
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:224,1
    - Dst: std::int64_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:237,1
    - Dst: std::int64_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:238,1
    - Dst: std::int64_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:239,1
    - Dst: std::int32_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:244,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:329,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:333,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:339,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:343,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:357,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:370,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:372,1
    - Dst: libtorrent::rbegin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:374,1
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:376,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:387,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:388,1
    - Dst: libtorrent::rbegin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:389,1
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:390,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:434,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:438,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 712
    functionName: libtorrent::file_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 1
    functionsReached:
    - std::int32_t
    - std::int64_t
    - libtorrent::rbegin
    - TORRENT_ASSERT
    - libtorrent::file_storage
    - string_view
    - libtorrent::begin
    - libtorrent::end
    - libtorrent::rend
    - piece_index_t
    linkageType: ''
    returnType: class TORRENT_EXPORT
    signature: class TORRENT_EXPORT file_storage
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: libtorrent::is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 56
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 60
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reverse_iterator::rbegin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: libtorrent::reverse_iterator::rbegin
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::reverse_iterator::rbegin
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED reverse_iterator rbegin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reverse_iterator::rend
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: libtorrent::reverse_iterator::rend
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::reverse_iterator::rend
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED reverse_iterator rend() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 387
    functionName: libtorrent::begin_deprecated
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin_deprecated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    functionName: libtorrent::end_deprecated
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: iterator
    signature: iterator end_deprecated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rbegin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: libtorrent::rbegin_deprecated
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rbegin
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin_deprecated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: libtorrent::rend_deprecated
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rend
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend_deprecated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: libtorrent::total_size
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: libtorrent::set_num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_num_pieces(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 434
    functionName: libtorrent::num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: libtorrent::end_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 8
    functionsReached:
    - piece_index_t
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t end_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: libtorrent::last_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - piece_index_t
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t last_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: libtorrent::set_piece_length
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_piece_length(int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: libtorrent::piece_length
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int piece_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 475
    functionName: libtorrent::set_name
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_name(std::string const& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 476
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: libtorrent::paths
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::vector<std::string, aux::path_index_t>
    signature: aux::vector<std::string, aux::path_index_t> & paths() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 599
    functionName: libtorrent::owns_name
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool owns_name(file_index_t const f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: libtorrent::v2
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool v2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_entry
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 116
    functionName: libtorrent::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::file_entry
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT file_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry(file_entry const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_entry(file_entry&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: libtorrent::file_slice
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_slice
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::file_storage
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:224,1
    - Dst: std::int64_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:237,1
    - Dst: std::int64_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:238,1
    - Dst: std::int64_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:239,1
    - Dst: std::int32_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:244,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:329,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:333,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:339,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:343,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:357,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:370,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:372,1
    - Dst: libtorrent::rbegin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:374,1
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:376,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:387,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:388,1
    - Dst: libtorrent::rbegin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:389,1
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:390,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:434,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:438,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:444,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 712
    functionName: libtorrent::file_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached:
    - std::int32_t
    - std::int64_t
    - libtorrent::rbegin
    - TORRENT_ASSERT
    - libtorrent::file_storage
    - string_view
    - libtorrent::begin
    - libtorrent::end
    - libtorrent::rend
    - piece_index_t
    linkageType: ''
    returnType: class TORRENT_EXPORT
    signature: class TORRENT_EXPORT file_storage
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: libtorrent::is_valid
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 59
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 63
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reverse_iterator::rbegin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: libtorrent::reverse_iterator::rbegin
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::reverse_iterator::rbegin
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED reverse_iterator rbegin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reverse_iterator::rend
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: libtorrent::reverse_iterator::rend
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::reverse_iterator::rend
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED reverse_iterator rend() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 387
    functionName: libtorrent::begin_deprecated
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin_deprecated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    functionName: libtorrent::end_deprecated
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: iterator
    signature: iterator end_deprecated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rbegin
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: libtorrent::rbegin_deprecated
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rbegin
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin_deprecated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::rend
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: libtorrent::rend_deprecated
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::rend
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend_deprecated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: libtorrent::total_size
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: libtorrent::set_num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_num_pieces(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 434
    functionName: libtorrent::num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: libtorrent::end_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 8
    functionsReached:
    - piece_index_t
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t end_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: libtorrent::last_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached:
    - piece_index_t
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t last_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: libtorrent::set_piece_length
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_piece_length(int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/file_storage.hpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: libtorrent::piece_length
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int piece_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 475
    functionName: libtorrent::set_name
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_name(std::string const& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 476
    functionName: libtorrent::name
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: libtorrent::paths
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::vector<std::string, aux::path_index_t>
    signature: aux::vector<std::string, aux::path_index_t> & paths() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 599
    functionName: libtorrent::owns_name
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool owns_name(file_index_t const f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: libtorrent::v2
    functionSourceFile: /src/libtorrent/include/libtorrent/file_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool v2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:63,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:74,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:74,1
    - Dst: peer_source_flags_t
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 220
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::address
    - peer_source_flags_t
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_peer(torrent_peer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: ~torrent_peer()
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void ~torrent_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:74,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::ip
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::address
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint ip() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: protocol_version
    signature: protocol_version protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_source_flags_t
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: libtorrent::peer_source
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - peer_source_flags_t
    linkageType: ''
    returnType: peer_source_flags_t
    signature: peer_source_flags_t peer_source() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: libtorrent::i2p_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_peer(i2p_peer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: libtorrent::i2p_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_peer(i2p_peer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - torrent_peer*
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: operator()(torrent_peer const* lhs, address const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::address
    linkageType: ''
    returnType: bool
    signature: bool operator()(torrent_peer const* lhs, address const& rhs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - address
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: operator()(address const& lhs, torrent_peer const* rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::address
    linkageType: ''
    returnType: bool
    signature: bool operator()(address const& lhs, torrent_peer const* rhs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - torrent_peer*
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: operator()(torrent_peer const* lhs, string_view rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::dest
    linkageType: ''
    returnType: bool
    signature: bool operator()(torrent_peer const* lhs, string_view rhs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - string_view
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: operator()(string_view lhs, torrent_peer const* rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::dest
    linkageType: ''
    returnType: bool
    signature: bool operator()(string_view lhs, torrent_peer const* rhs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:292,1
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:292,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:294,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - torrent_peer*
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: operator()(torrent_peer const* lhs, torrent_peer const* rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::address
    - torrent_peer*::dest
    linkageType: ''
    returnType: bool
    signature: bool operator()(torrent_peer const* lhs, torrent_peer const* rhs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:305,1
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:305,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:307,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - torrent_peer*
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: libtorrent::torrent_peer_equal
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::address
    - torrent_peer*::dest
    linkageType: ''
    returnType: bool
    signature: bool torrent_peer_equal(torrent_peer const* lhs, torrent_peer const*
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:63,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:74,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:74,1
    - Dst: peer_source_flags_t
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 220
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::address
    - peer_source_flags_t
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_peer(torrent_peer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: ~torrent_peer()
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void ~torrent_peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:74,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::ip
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::address
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint ip() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: protocol_version
    signature: protocol_version protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_source_flags_t
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: libtorrent::peer_source
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - peer_source_flags_t
    linkageType: ''
    returnType: peer_source_flags_t
    signature: peer_source_flags_t peer_source() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: libtorrent::i2p_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_peer(i2p_peer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: libtorrent::i2p_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_peer(i2p_peer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: libtorrent::torrent_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - torrent_peer*
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: operator()(torrent_peer const* lhs, address const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::address
    linkageType: ''
    returnType: bool
    signature: bool operator()(torrent_peer const* lhs, address const& rhs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - address
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: operator()(address const& lhs, torrent_peer const* rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::address
    linkageType: ''
    returnType: bool
    signature: bool operator()(address const& lhs, torrent_peer const* rhs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - torrent_peer*
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: operator()(torrent_peer const* lhs, string_view rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::dest
    linkageType: ''
    returnType: bool
    signature: bool operator()(torrent_peer const* lhs, string_view rhs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - string_view
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: operator()(string_view lhs, torrent_peer const* rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::dest
    linkageType: ''
    returnType: bool
    signature: bool operator()(string_view lhs, torrent_peer const* rhs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:292,1
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:292,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:294,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - torrent_peer*
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: operator()(torrent_peer const* lhs, torrent_peer const* rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::address
    - torrent_peer*::dest
    linkageType: ''
    returnType: bool
    signature: bool operator()(torrent_peer const* lhs, torrent_peer const* rhs) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:305,1
    - Dst: torrent_peer*::dest
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:305,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:307,1
    - Dst: torrent_peer*::address
      Src: /src/libtorrent/include/libtorrent/torrent_peer.hpp:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - torrent_peer*
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: libtorrent::torrent_peer_equal
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer.hpp
    functionUses: 0
    functionsReached:
    - torrent_peer*::address
    - torrent_peer*::dest
    linkageType: ''
    returnType: bool
    signature: bool torrent_peer_equal(torrent_peer const* lhs, torrent_peer const*
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::udp_socket
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:61,1
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:73,1
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:78,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:78,1
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:84,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:84,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:114,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:120,1
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:129,1
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:135,1
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 171
    functionName: libtorrent::single_threaded
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get_option
    - libtorrent::get_executor
    - libtorrent::udp_socket
    - libtorrent::local_endpoint
    - libtorrent::set_option
    - libtorrent::async_wait
    - std::forward<Handler>
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT single_threaded
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::udp_socket
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void udp_socket(udp_socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::is_open
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::get_executor
    linkageType: ''
    returnType: udp::socket::executor_type
    signature: udp::socket::executor_type get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:78,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: libtorrent::async_read
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::async_wait
    - std::forward<Handler>
    linkageType: ''
    returnType: void
    signature: void async_read(Handler&& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:84,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::async_write
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::async_wait
    - std::forward<Handler>
    linkageType: ''
    returnType: void
    signature: void async_write(Handler&& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::local_port
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int local_port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::get_proxy_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::proxy_settings
    signature: aux::proxy_settings & get_proxy_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: libtorrent::is_closed
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint local_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 21
    functionsReached:
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint local_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::get_option
    linkageType: ''
    returnType: void
    signature: void get_option(SocketOption const& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 9
    functionsReached:
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void set_option(SocketOption const& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_option(tcp_notsent_lowat const&, error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 7
    functionsReached:
    - libtorrent::get_option
    linkageType: ''
    returnType: void
    signature: void get_option(SocketOption& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::udp_socket
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:61,1
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:73,1
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:78,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:78,1
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:84,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:84,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:114,1
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:120,1
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:129,1
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:135,1
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 171
    functionName: libtorrent::single_threaded
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get_option
    - libtorrent::get_executor
    - libtorrent::udp_socket
    - libtorrent::local_endpoint
    - libtorrent::set_option
    - libtorrent::async_wait
    - std::forward<Handler>
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT single_threaded
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::udp_socket
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void udp_socket(udp_socket const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::is_open
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::get_executor
    linkageType: ''
    returnType: udp::socket::executor_type
    signature: udp::socket::executor_type get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:78,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: libtorrent::async_read
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::async_wait
    - std::forward<Handler>
    linkageType: ''
    returnType: void
    signature: void async_read(Handler&& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::async_wait
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:84,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: libtorrent::async_write
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::async_wait
    - std::forward<Handler>
    linkageType: ''
    returnType: void
    signature: void async_write(Handler&& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::local_port
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int local_port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::get_proxy_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::proxy_settings
    signature: aux::proxy_settings & get_proxy_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: libtorrent::is_closed
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 23
    functionsReached:
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint local_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::local_endpoint
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 24
    functionsReached:
    - libtorrent::local_endpoint
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint local_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 9
    functionsReached:
    - libtorrent::get_option
    linkageType: ''
    returnType: void
    signature: void get_option(SocketOption const& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 11
    functionsReached:
    - libtorrent::set_option
    linkageType: ''
    returnType: void
    signature: void set_option(SocketOption const& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_option(tcp_notsent_lowat const&, error_code&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_option
      Src: /src/libtorrent/include/libtorrent/udp_socket.hpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/udp_socket.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::get_option
    linkageType: ''
    returnType: void
    signature: void get_option(SocketOption& opt, error_code& ec)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:281,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:293,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:293,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:294,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:294,1
    - Dst: libtorrent::downloading
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:297,1
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:496,1
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:499,1
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:520,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:520,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:550,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:583,1
    - Dst: static_cast<uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:584,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:588,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:589,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:590,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:623,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:625,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:627,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:632,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:633,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:638,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:639,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:640,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:641,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:646,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:647,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:648,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:649,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:701,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:701,1
    - Dst: prio_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:703,1
    - Dst: libtorrent::filtered
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:732,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:732,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:733,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:737,1
    - Dst: libtorrent::reverse
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:743,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:744,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:751,1
    - Dst: download_queue_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:763,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:764,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 922
    functionName: libtorrent::piece_picker
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::state
    - static_cast<std::uint16_t>
    - libtorrent::filtered
    - libtorrent::size
    - download_queue_t
    - libtorrent::have
    - libtorrent::num_pieces
    - TORRENT_ASSERT
    - prio_index_t
    - static_cast<uint8_t>
    - static_cast<std::uint8_t>
    - libtorrent::downloading
    - end_index
    - piece_index_t
    - libtorrent::reverse
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT piece_picker
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: libtorrent::block_info
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void block_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: libtorrent::downloading_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void downloading_piece()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: operator<(downloading_piece const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(downloading_piece const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: libtorrent::cursor
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t cursor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: libtorrent::reverse_cursor
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t reverse_cursor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: libtorrent::num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:293,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:293,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:294,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:294,1
    - Dst: libtorrent::downloading
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: libtorrent::is_downloading
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::downloading
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: bool
    signature: bool is_downloading(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 478
    functionName: libtorrent::num_have
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_have() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 497
    functionName: libtorrent::is_finished
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::num_pieces
    linkageType: ''
    returnType: bool
    signature: bool is_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: libtorrent::is_seeding
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_pieces
    linkageType: ''
    returnType: bool
    signature: bool is_seeding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 502
    functionName: libtorrent::num_want_left
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::num_pieces
    linkageType: ''
    returnType: int
    signature: int num_want_left() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:520,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: libtorrent::has_index
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void has_index(piece_index_t const i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: operator()(downloading_piece const& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(downloading_piece const& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: libtorrent::blocks_in_last_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blocks_in_last_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: libtorrent::block_size
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: libtorrent::num_pad_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t num_pad_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 581
    functionName: libtorrent::piece_pos
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_pos()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:583,1
    - Dst: static_cast<uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:584,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:588,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:589,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - peer_count_
    - index_
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 591
    functionName: libtorrent::piece_pos
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint16_t>
    - static_cast<uint8_t>
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void piece_pos(int const peer_count_, int const index_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:623,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:625,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 628
    functionName: libtorrent::download_queue
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: download_queue_t
    signature: download_queue_t download_queue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:632,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: libtorrent::reverse
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: bool
    signature: bool reverse() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:638,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:639,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:640,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 642
    functionName: libtorrent::unreverse
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: void
    signature: void unreverse()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:646,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:647,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:648,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: libtorrent::make_reverse
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: void
    signature: void make_reverse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 700
    functionName: libtorrent::have
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool have() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:701,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: libtorrent::set_have
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::have
    linkageType: ''
    returnType: void
    signature: void set_have()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prio_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 702
    functionName: libtorrent::set_not_have
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::have
    - prio_index_t
    linkageType: ''
    returnType: void
    signature: void set_not_have()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: libtorrent::downloading
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: bool
    signature: bool downloading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: libtorrent::filtered
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool filtered() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::filtered
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:732,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:732,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:733,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:737,1
    - Dst: libtorrent::reverse
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:743,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:744,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - picker
    argTypes:
    - piece_picker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 755
    functionName: libtorrent::priority
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::state
    - libtorrent::filtered
    - libtorrent::have
    - TORRENT_ASSERT
    - libtorrent::reverse
    linkageType: ''
    returnType: int
    signature: int priority(piece_picker const* picker) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - piece_pos
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 758
    functionName: operator!=(piece_pos const& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(piece_pos const& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - piece_pos
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: operator==(piece_pos const& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_pos const& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: download_queue_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 763
    functionName: libtorrent::state
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 7
    functionsReached:
    - download_queue_t
    linkageType: ''
    returnType: download_queue_t
    signature: download_queue_t state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - download_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: libtorrent::state
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 7
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void state(download_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 811
    functionName: libtorrent::categories
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: index_range<download_queue_t>
    signature: index_range<download_queue_t> categories() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:281,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:293,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:293,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:294,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:294,1
    - Dst: libtorrent::downloading
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:297,1
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:496,1
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:499,1
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:502,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:520,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:520,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:550,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:583,1
    - Dst: static_cast<uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:584,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:588,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:589,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:590,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:623,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:625,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:627,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:632,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:633,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:638,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:639,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:640,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:641,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:646,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:647,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:648,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:649,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:701,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:701,1
    - Dst: prio_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:703,1
    - Dst: libtorrent::filtered
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:732,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:732,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:733,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:737,1
    - Dst: libtorrent::reverse
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:743,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:744,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:751,1
    - Dst: download_queue_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:763,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:764,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 922
    functionName: libtorrent::piece_picker
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::state
    - static_cast<std::uint16_t>
    - libtorrent::filtered
    - libtorrent::size
    - download_queue_t
    - libtorrent::have
    - libtorrent::num_pieces
    - TORRENT_ASSERT
    - prio_index_t
    - static_cast<uint8_t>
    - static_cast<std::uint8_t>
    - libtorrent::downloading
    - end_index
    - piece_index_t
    - libtorrent::reverse
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT piece_picker
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: libtorrent::block_info
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void block_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: libtorrent::downloading_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void downloading_piece()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: operator<(downloading_piece const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(downloading_piece const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: libtorrent::cursor
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t cursor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: libtorrent::reverse_cursor
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: piece_index_t
    signature: piece_index_t reverse_cursor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: libtorrent::num_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 9
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:293,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:293,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:294,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:294,1
    - Dst: libtorrent::downloading
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: libtorrent::is_downloading
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::downloading
    - end_index
    - piece_index_t
    linkageType: ''
    returnType: bool
    signature: bool is_downloading(piece_index_t const index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 478
    functionName: libtorrent::num_have
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_have() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 497
    functionName: libtorrent::is_finished
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::num_pieces
    linkageType: ''
    returnType: bool
    signature: bool is_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: libtorrent::is_seeding
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::num_pieces
    linkageType: ''
    returnType: bool
    signature: bool is_seeding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::num_pieces
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 502
    functionName: libtorrent::num_want_left
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::num_pieces
    linkageType: ''
    returnType: int
    signature: int num_want_left() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:520,1
    - Dst: piece_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: libtorrent::has_index
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - piece_index_t
    linkageType: ''
    returnType: void
    signature: void has_index(piece_index_t const i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - downloading_piece
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: operator()(downloading_piece const& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(downloading_piece const& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: libtorrent::blocks_in_last_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blocks_in_last_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:549,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: libtorrent::block_size
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: libtorrent::num_pad_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t num_pad_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 581
    functionName: libtorrent::piece_pos
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_pos()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint16_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:583,1
    - Dst: static_cast<uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:584,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:585,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:588,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:589,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - peer_count_
    - index_
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 591
    functionName: libtorrent::piece_pos
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - static_cast<std::uint16_t>
    - static_cast<uint8_t>
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void piece_pos(int const peer_count_, int const index_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:623,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:625,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 628
    functionName: libtorrent::download_queue
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: download_queue_t
    signature: download_queue_t download_queue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:632,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: libtorrent::reverse
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: bool
    signature: bool reverse() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:638,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:639,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:640,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 642
    functionName: libtorrent::unreverse
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: void
    signature: void unreverse()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:646,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:647,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:648,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: libtorrent::make_reverse
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: void
    signature: void make_reverse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 700
    functionName: libtorrent::have
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool have() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:701,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: libtorrent::set_have
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::have
    linkageType: ''
    returnType: void
    signature: void set_have()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prio_index_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 702
    functionName: libtorrent::set_not_have
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::have
    - prio_index_t
    linkageType: ''
    returnType: void
    signature: void set_not_have()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: libtorrent::downloading
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::state
    linkageType: ''
    returnType: bool
    signature: bool downloading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: libtorrent::filtered
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool filtered() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::filtered
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:732,1
    - Dst: libtorrent::have
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:732,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:733,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:734,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:737,1
    - Dst: libtorrent::reverse
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:743,1
    - Dst: libtorrent::state
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:744,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:750,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - picker
    argTypes:
    - piece_picker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 755
    functionName: libtorrent::priority
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::state
    - libtorrent::filtered
    - libtorrent::have
    - TORRENT_ASSERT
    - libtorrent::reverse
    linkageType: ''
    returnType: int
    signature: int priority(piece_picker const* picker) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - piece_pos
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 758
    functionName: operator!=(piece_pos const& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(piece_pos const& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - piece_pos
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: operator==(piece_pos const& p) const
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_pos const& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: download_queue_t
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 763
    functionName: libtorrent::state
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 14
    functionsReached:
    - download_queue_t
    linkageType: ''
    returnType: download_queue_t
    signature: download_queue_t state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/piece_picker.hpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - download_queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: libtorrent::state
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 14
    functionsReached:
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void state(download_queue_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 811
    functionName: libtorrent::categories
    functionSourceFile: /src/libtorrent/include/libtorrent/piece_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: index_range<download_queue_t>
    signature: index_range<download_queue_t> categories() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: libtorrent::fingerprint
    functionSourceFile: /src/libtorrent/include/libtorrent/fingerprint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT fingerprint
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: libtorrent::fingerprint
    functionSourceFile: /src/libtorrent/include/libtorrent/fingerprint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT fingerprint
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - v
    - c
    - pos
    argTypes:
    - string_view
    - char
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: libtorrent::find_first_of
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 8
    functionsReached:
    - string_view::size
    linkageType: ''
    returnType: string_view::size_type
    signature: "string_view::size_type find_first_of(string_view const v, char const
      c\n\t, string_view::size_type pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:66,1
    - Dst: std::strchr
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - v
    - c
    - pos
    argTypes:
    - string_view
    - char*
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: libtorrent::find_first_of
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 8
    functionsReached:
    - string_view::size
    - std::strchr
    linkageType: ''
    returnType: string_view::size_type
    signature: "string_view::size_type find_first_of(string_view const v, char const*
      c\n\t, string_view::size_type pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - v
    - c
    - pos
    argTypes:
    - string_view
    - char
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: libtorrent::find_first_of
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 8
    functionsReached:
    - string_view::size
    linkageType: ''
    returnType: string_view::size_type
    signature: "string_view::size_type find_first_of(string_view const v, char const
      c\n\t, string_view::size_type pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_view::size
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:66,1
    - Dst: std::strchr
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - v
    - c
    - pos
    argTypes:
    - string_view
    - char*
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: libtorrent::find_first_of
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 8
    functionsReached:
    - string_view::size
    - std::strchr
    linkageType: ''
    returnType: string_view::size_type
    signature: "string_view::size_type find_first_of(string_view const v, char const*
      c\n\t, string_view::size_type pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - c
    - pos
    argTypes:
    - string_view
    - char
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: libtorrent::find_first_of
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 8
    functionsReached:
    - string_view::find_first_of
    linkageType: ''
    returnType: string_view::size_type
    signature: "string_view::size_type find_first_of(string_view const v, char const
      c\n\t, string_view::size_type pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - c
    - pos
    argTypes:
    - string_view
    - char*
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: libtorrent::find_first_of
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 8
    functionsReached:
    - string_view::find_first_of
    linkageType: ''
    returnType: string_view::size_type
    signature: "string_view::size_type find_first_of(string_view const v, char const*
      c\n\t, string_view::size_type pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - c
    - pos
    argTypes:
    - string_view
    - char
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: libtorrent::find_first_of
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 8
    functionsReached:
    - string_view::find_first_of
    linkageType: ''
    returnType: string_view::size_type
    signature: "string_view::size_type find_first_of(string_view const v, char const
      c\n\t, string_view::size_type pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::find_first_of
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - c
    - pos
    argTypes:
    - string_view
    - char*
    - string_view::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: libtorrent::find_first_of
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 8
    functionsReached:
    - string_view::find_first_of
    linkageType: ''
    returnType: string_view::size_type
    signature: "string_view::size_type find_first_of(string_view const v, char const*
      c\n\t, string_view::size_type pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: operator "" _sv(char const* str, std::size_t len)
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 0
    functionsReached:
    - string_view
    linkageType: ''
    returnType: string_view
    signature: string_view operator "" _sv(char const* str, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: operator "" _sv(char const* str, std::size_t len)
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 0
    functionsReached:
    - string_view
    linkageType: ''
    returnType: string_view
    signature: string_view operator "" _sv(char const* str, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: operator "" _sv(char const* str, std::size_t len)
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 0
    functionsReached:
    - string_view
    linkageType: ''
    returnType: string_view
    signature: string_view operator "" _sv(char const* str, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/string_view.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: operator "" _sv(char const* str, std::size_t len)
    functionSourceFile: /src/libtorrent/include/libtorrent/string_view.hpp
    functionUses: 0
    functionsReached:
    - string_view
    linkageType: ''
    returnType: string_view
    signature: string_view operator "" _sv(char const* str, std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::async_t
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find
      Src: /src/libtorrent/include/libtorrent/debug.hpp:96,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/debug.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: libtorrent::has_outstanding_async
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::find
    - libtorrent::end
    linkageType: ''
    returnType: bool
    signature: bool has_outstanding_async(char const* name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stack::empty
      Src: /src/libtorrent/include/libtorrent/debug.hpp:104,1
    - Dst: libtorrent::print_backtrace
      Src: /src/libtorrent/include/libtorrent/debug.hpp:107,1
    - Dst: strchr
      Src: /src/libtorrent/include/libtorrent/debug.hpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: libtorrent::add_outstanding_async
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - strchr
    - libtorrent::print_backtrace
    - stack::empty
    linkageType: ''
    returnType: void
    signature: void add_outstanding_async(char const* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/debug.hpp:122,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/debug.hpp:126,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/include/libtorrent/debug.hpp:128,1
    - Dst: wakeup_t
      Src: /src/libtorrent/include/libtorrent/debug.hpp:128,1
    - Dst: back
      Src: /src/libtorrent/include/libtorrent/debug.hpp:129,1
    - Dst: time_now
      Src: /src/libtorrent/include/libtorrent/debug.hpp:130,1
    - Dst: task_info
      Src: /src/libtorrent/include/libtorrent/debug.hpp:134,1
    - Dst: mach_task_self
      Src: /src/libtorrent/include/libtorrent/debug.hpp:134,1
    - Dst: reinterpret_cast<task_info_t>
      Src: /src/libtorrent/include/libtorrent/debug.hpp:135,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/include/libtorrent/debug.hpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 142
    functionName: libtorrent::complete_async
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - task_info
    - static_cast<std::uint64_t>
    - libtorrent::size
    - reinterpret_cast<task_info_t>
    - TORRENT_ASSERT
    - wakeup_t
    - back
    - libtorrent::push_back
    - mach_task_self
    linkageType: ''
    returnType: void
    signature: void complete_async(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: libtorrent::async_inc_threads
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_inc_threads()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: libtorrent::async_dec_threads
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_dec_threads()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/include/libtorrent/debug.hpp:164,1
    - Dst: first::c_str
      Src: /src/libtorrent/include/libtorrent/debug.hpp:164,1
    - Dst: second::stack::c_str
      Src: /src/libtorrent/include/libtorrent/debug.hpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: libtorrent::log_async
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 5
    functionsReached:
    - second::stack::c_str
    - std::printf
    - first::c_str
    linkageType: ''
    returnType: int
    signature: int log_async()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/include/libtorrent/debug.hpp:192,1
    - Dst: libtorrent::demangle
      Src: /src/libtorrent/include/libtorrent/debug.hpp:203,1
    - Dst: second::allocations::begin
      Src: /src/libtorrent/include/libtorrent/debug.hpp:203,1
    - Dst: libtorrent::name
      Src: /src/libtorrent/include/libtorrent/debug.hpp:203,1
    - Dst: std::printf
      Src: /src/libtorrent/include/libtorrent/debug.hpp:206,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/debug.hpp:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 209
    functionName: libtorrent::log_handler_allocators
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - libtorrent::name
    - libtorrent::demangle
    - second::allocations::begin
    - std::printf
    linkageType: ''
    returnType: void
    signature: void log_handler_allocators() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocations::emplace
      Src: /src/libtorrent/include/libtorrent/debug.hpp:217,1
    - Dst: typeid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:217,1
    - Dst: std::atexit
      Src: /src/libtorrent/include/libtorrent/debug.hpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - capacity
    argTypes:
    - int
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 223
    functionName: libtorrent::record_handler_allocation
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - allocations::emplace
    - typeid
    - std::atexit
    linkageType: ''
    returnType: void
    signature: void record_handler_allocation(int const type, std::size_t const capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::async_t
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::find
      Src: /src/libtorrent/include/libtorrent/debug.hpp:96,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/debug.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: libtorrent::has_outstanding_async
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::find
    - libtorrent::end
    linkageType: ''
    returnType: bool
    signature: bool has_outstanding_async(char const* name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stack::empty
      Src: /src/libtorrent/include/libtorrent/debug.hpp:104,1
    - Dst: libtorrent::print_backtrace
      Src: /src/libtorrent/include/libtorrent/debug.hpp:107,1
    - Dst: strchr
      Src: /src/libtorrent/include/libtorrent/debug.hpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: libtorrent::add_outstanding_async
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - strchr
    - libtorrent::print_backtrace
    - stack::empty
    linkageType: ''
    returnType: void
    signature: void add_outstanding_async(char const* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/debug.hpp:122,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/debug.hpp:126,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/include/libtorrent/debug.hpp:128,1
    - Dst: wakeup_t
      Src: /src/libtorrent/include/libtorrent/debug.hpp:128,1
    - Dst: back
      Src: /src/libtorrent/include/libtorrent/debug.hpp:129,1
    - Dst: time_now
      Src: /src/libtorrent/include/libtorrent/debug.hpp:130,1
    - Dst: task_info
      Src: /src/libtorrent/include/libtorrent/debug.hpp:134,1
    - Dst: mach_task_self
      Src: /src/libtorrent/include/libtorrent/debug.hpp:134,1
    - Dst: reinterpret_cast<task_info_t>
      Src: /src/libtorrent/include/libtorrent/debug.hpp:135,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/libtorrent/include/libtorrent/debug.hpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 142
    functionName: libtorrent::complete_async
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - time_now
    - task_info
    - static_cast<std::uint64_t>
    - libtorrent::size
    - reinterpret_cast<task_info_t>
    - TORRENT_ASSERT
    - wakeup_t
    - back
    - libtorrent::push_back
    - mach_task_self
    linkageType: ''
    returnType: void
    signature: void complete_async(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: libtorrent::async_inc_threads
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_inc_threads()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: libtorrent::async_dec_threads
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_dec_threads()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/include/libtorrent/debug.hpp:164,1
    - Dst: first::c_str
      Src: /src/libtorrent/include/libtorrent/debug.hpp:164,1
    - Dst: second::stack::c_str
      Src: /src/libtorrent/include/libtorrent/debug.hpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: libtorrent::log_async
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 5
    functionsReached:
    - second::stack::c_str
    - std::printf
    - first::c_str
    linkageType: ''
    returnType: int
    signature: int log_async()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::printf
      Src: /src/libtorrent/include/libtorrent/debug.hpp:192,1
    - Dst: libtorrent::demangle
      Src: /src/libtorrent/include/libtorrent/debug.hpp:203,1
    - Dst: second::allocations::begin
      Src: /src/libtorrent/include/libtorrent/debug.hpp:203,1
    - Dst: libtorrent::name
      Src: /src/libtorrent/include/libtorrent/debug.hpp:203,1
    - Dst: std::printf
      Src: /src/libtorrent/include/libtorrent/debug.hpp:206,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/debug.hpp:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 209
    functionName: libtorrent::log_handler_allocators
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - libtorrent::name
    - libtorrent::demangle
    - second::allocations::begin
    - std::printf
    linkageType: ''
    returnType: void
    signature: void log_handler_allocators() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocations::emplace
      Src: /src/libtorrent/include/libtorrent/debug.hpp:217,1
    - Dst: typeid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:217,1
    - Dst: std::atexit
      Src: /src/libtorrent/include/libtorrent/debug.hpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - capacity
    argTypes:
    - int
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 223
    functionName: libtorrent::record_handler_allocation
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - allocations::emplace
    - typeid
    - std::atexit
    linkageType: ''
    returnType: void
    signature: void record_handler_allocation(int const type, std::size_t const capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: ADD_OUTSTANDING_ASYNC
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 128
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_OUTSTANDING_ASYNC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: COMPLETE_ASYNC
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 100
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPLETE_ASYNC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: ADD_OUTSTANDING_ASYNC
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 128
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_OUTSTANDING_ASYNC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: COMPLETE_ASYNC
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 100
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPLETE_ASYNC(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:242,1
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:245,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:247,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:250,1
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:254,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:255,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 263
    functionName: libtorrent::single_threaded
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item_target_id
    - libtorrent::our_pid
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT single_threaded
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: libtorrent::single_threaded
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void single_threaded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: ~single_threaded()
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::our_pid
    linkageType: ''
    returnType: void
    signature: void ~single_threaded()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:245,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:247,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: libtorrent::is_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::item_target_id
    - libtorrent::our_pid
    linkageType: ''
    returnType: bool
    signature: bool is_single_thread() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:254,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: libtorrent::is_not_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item_target_id
    - libtorrent::our_pid
    linkageType: ''
    returnType: bool
    signature: bool is_not_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: libtorrent::thread_started
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item_target_id
    linkageType: ''
    returnType: void
    signature: void thread_started()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: libtorrent::is_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_single_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: libtorrent::thread_started
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_started()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: libtorrent::is_not_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_not_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/debug.hpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: libtorrent::increment_guard
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void increment_guard(int& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/debug.hpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: ~increment_guard()
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void ~increment_guard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: TORRENT_INCREMENT
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_INCREMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: TORRENT_INCREMENT
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_INCREMENT(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:242,1
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:245,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:247,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:250,1
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:254,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:255,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 263
    functionName: libtorrent::single_threaded
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item_target_id
    - libtorrent::our_pid
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT single_threaded
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: libtorrent::single_threaded
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void single_threaded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: ~single_threaded()
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - our_pid
    linkageType: ''
    returnType: void
    signature: void ~single_threaded()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:245,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:247,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: libtorrent::is_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::item_target_id
    - libtorrent::our_pid
    linkageType: ''
    returnType: bool
    signature: bool is_single_thread() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::our_pid
      Src: /src/libtorrent/include/libtorrent/debug.hpp:254,1
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: libtorrent::is_not_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item_target_id
    - libtorrent::our_pid
    linkageType: ''
    returnType: bool
    signature: bool is_not_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item_target_id
      Src: /src/libtorrent/include/libtorrent/debug.hpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: libtorrent::thread_started
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::item_target_id
    linkageType: ''
    returnType: void
    signature: void thread_started()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: libtorrent::is_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_single_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: libtorrent::thread_started
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_started()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: libtorrent::is_not_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_not_thread() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/debug.hpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: libtorrent::increment_guard
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void increment_guard(int& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/debug.hpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: ~increment_guard()
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void ~increment_guard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: TORRENT_INCREMENT
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_INCREMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: TORRENT_INCREMENT
    functionSourceFile: /src/libtorrent/include/libtorrent/debug.hpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_INCREMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_cache
      Src: /src/libtorrent/include/libtorrent/stat_cache.hpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 105
    functionName: libtorrent::stat_cache
    functionSourceFile: /src/libtorrent/include/libtorrent/stat_cache.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::stat_cache
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT stat_cache
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::stat_cache_t
    functionSourceFile: /src/libtorrent/include/libtorrent/stat_cache.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stat_cache_t(std::int64_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::stat_cache
      Src: /src/libtorrent/include/libtorrent/stat_cache.hpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 105
    functionName: libtorrent::stat_cache
    functionSourceFile: /src/libtorrent/include/libtorrent/stat_cache.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::stat_cache
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT stat_cache
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::stat_cache_t
    functionSourceFile: /src/libtorrent/include/libtorrent/stat_cache.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stat_cache_t(std::int64_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: libtorrent::copy_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::copy_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_ptr(T* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::copy_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void copy_ptr(copy_ptr const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: libtorrent::copy_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_ptr(copy_ptr&& p) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reset
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: libtorrent::reset
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 11
    functionsReached:
    - libtorrent::reset
    linkageType: ''
    returnType: void
    signature: void reset(T* t = nullptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reset
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:53,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: '& operator=(copy_ptr const& p) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - libtorrent::reset
    linkageType: ''
    returnType: copy_ptr
    signature: copy_ptr & operator=(copy_ptr const& p) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(copy_ptr&& p) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: copy_ptr
    signature: copy_ptr & operator=(copy_ptr&& p) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: '* operator->()'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: T
    signature: T * operator->()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& operator*()'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& operator*() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 10
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void swap(copy_ptr<T>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: libtorrent::copy_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::copy_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_ptr(T* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::copy_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - T::T
    linkageType: ''
    returnType: void
    signature: void copy_ptr(copy_ptr const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: libtorrent::copy_ptr
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_ptr(copy_ptr&& p) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::reset
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: libtorrent::reset
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::reset
    linkageType: ''
    returnType: void
    signature: void reset(T* t = nullptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:53,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: '& operator=(copy_ptr const& p) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - T::T
    - reset
    linkageType: ''
    returnType: copy_ptr
    signature: copy_ptr & operator=(copy_ptr const& p) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(copy_ptr&& p) & noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: copy_ptr
    signature: copy_ptr & operator=(copy_ptr&& p) & noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: '* operator->()'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T * operator->()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '* operator->() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& operator*()'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator*()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& operator*() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - copy_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 10
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void swap(copy_ptr<T>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/copy_ptr.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/include/libtorrent/copy_ptr.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::link
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void link()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::in_list
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool in_list() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/link.hpp:61,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/link.hpp:61,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/link.hpp:62,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/link.hpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' list'
    - link_index
    argTypes:
    - aux::vector<T*>
    - torrent_list_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: libtorrent::unlink
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - resize
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: "void unlink(aux::vector<T*>& list\n\t\t\t, torrent_list_index_t const
      link_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/link.hpp:76,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/include/libtorrent/link.hpp:77,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/link.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' list'
    - self
    argTypes:
    - aux::vector<T*>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: libtorrent::insert
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 22
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::push_back
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void insert(aux::vector<T*>& list, T* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::link
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void link()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: libtorrent::in_list
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool in_list() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/link.hpp:61,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/link.hpp:61,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/link.hpp:62,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/link.hpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' list'
    - link_index
    argTypes:
    - aux::vector<T*>
    - torrent_list_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: libtorrent::unlink
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - resize
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: "void unlink(aux::vector<T*>& list\n\t\t\t, torrent_list_index_t const
      link_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/link.hpp:76,1
    - Dst: libtorrent::push_back
      Src: /src/libtorrent/include/libtorrent/link.hpp:77,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/link.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' list'
    - self
    argTypes:
    - aux::vector<T*>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: libtorrent::insert
    functionSourceFile: /src/libtorrent/include/libtorrent/link.hpp
    functionUses: 22
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::push_back
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void insert(aux::vector<T*>& list, T* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::relative_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void relative_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::relative_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void relative_time(min_value_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds32>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reference
    - new_value
    argTypes:
    - time_point
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: libtorrent::aux::set
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - duration_cast<milliseconds32>
    linkageType: ''
    returnType: void
    signature: void set(time_point const reference, time_point const new_value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reference
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point get(time_point reference) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:121,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: libtorrent::aux::clamp_assign
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - libtorrent::aux::max
    linkageType: ''
    returnType: T
    signature: T clamp_assign(int const v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::relative_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void relative_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::relative_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void relative_time(min_value_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds32>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reference
    - new_value
    argTypes:
    - time_point
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: libtorrent::aux::set
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - duration_cast<milliseconds32>
    linkageType: ''
    returnType: void
    signature: void set(time_point const reference, time_point const new_value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reference
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point get(time_point reference) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:121,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: libtorrent::aux::clamp_assign
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - libtorrent::aux::max
    linkageType: ''
    returnType: T
    signature: T clamp_assign(int const v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: libtorrent::pending_block
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pending_block(piece_block const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - pending_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: operator==(pending_block const& b) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(pending_block const& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:192,1
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 270
    functionName: libtorrent::peer_connection_hot_members
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - expired
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_connection_hot_members
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:192,1
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - t
    - ' ses'
    - ' sett'
    argTypes:
    - std::weak_ptr<torrent>
    - aux::session_interface
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 202
    functionName: libtorrent::peer_connection_hot_members
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - expired
    linkageType: ''
    returnType: void
    signature: "void peer_connection_hot_members(\n\t\t\tstd::weak_ptr<torrent> t\n\t\t\t,
      aux::session_interface& ses\n\t\t\t, aux::session_settings const& sett)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:320,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pi
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: libtorrent::set_peer_info
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void set_peer_info(torrent_peer* pi) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: libtorrent::peer_info_struct
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * peer_info_struct() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: libtorrent::peer_exceeds_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_exceeds_limit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: libtorrent::peer_disconnected_other
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_disconnected_other()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: libtorrent::on_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_metadata()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: libtorrent::picker_options
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void picker_options(picker_options_t o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_parole
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: libtorrent::prefer_contiguous_blocks
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - on_parole
    linkageType: ''
    returnType: int
    signature: int prefer_contiguous_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::clamp_assign<std::uint16_t>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: libtorrent::prefer_contiguous_blocks
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - aux::clamp_assign<std::uint16_t>
    linkageType: ''
    returnType: void
    signature: void prefer_contiguous_blocks(int const num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: libtorrent::request_large_blocks
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool request_large_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: libtorrent::request_large_blocks
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void request_large_blocks(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: libtorrent::endgame
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool endgame() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::no_download
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 387
    functionName: libtorrent::no_download
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void no_download(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: libtorrent::ignore_stats
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ignore_stats() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: libtorrent::ignore_stats
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ignore_stats(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: libtorrent::fast_reconnect
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fast_reconnect() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: libtorrent::super_seeded_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool super_seeded_piece(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 422
    functionName: libtorrent::num_have_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_have_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 426
    functionName: libtorrent::share_mode
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool share_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: libtorrent::upload_only
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - is_seed
    linkageType: ''
    returnType: bool
    signature: bool upload_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: libtorrent::pid
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id & pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' peer_id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    functionName: libtorrent::set_pid
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_pid(peer_id const& peer_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: libtorrent::is_interesting
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_interesting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: libtorrent::is_choked
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_choked() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: libtorrent::is_peer_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_peer_interested() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: libtorrent::has_peer_choked
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_peer_choked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    functionName: libtorrent::associated_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::weak_ptr<torrent>
    signature: std::weak_ptr<torrent> associated_torrent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 479
    functionName: libtorrent::statistics
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: stat
    signature: stat & statistics() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 490
    functionName: libtorrent::get_socket
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::socket_type
    signature: aux::socket_type & get_socket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 491
    functionName: libtorrent::get_socket
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::socket_type
    signature: aux::socket_type & get_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: libtorrent::remote
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint & remote() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint local_endpoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 502
    functionName: libtorrent::suggested_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<piece_index_t>
    signature: std::vector<piece_index_t> & suggested_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: libtorrent::connected_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point connected_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 505
    functionName: libtorrent::last_received
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: time_point
    signature: time_point last_received() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 514
    functionName: libtorrent::is_disconnecting
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_disconnecting() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 523
    functionName: libtorrent::is_connecting
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_connecting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 533
    functionName: libtorrent::is_outgoing
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_outgoing() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 535
    functionName: libtorrent::received_listen_port
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool received_listen_port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: libtorrent::received_listen_port
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void received_listen_port()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: libtorrent::failed
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool failed() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: libtorrent::desired_queue_size
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int desired_queue_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::download_payload_rate
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 555
    functionName: libtorrent::download_payload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::download_payload_rate
    linkageType: ''
    returnType: int
    signature: int download_payload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 605
    functionName: libtorrent::set_has_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_metadata(bool m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 606
    functionName: libtorrent::has_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:673,1
    - Dst: libtorrent::is_single_thread
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:673,1
    - Dst: append_buffer
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:674,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - Holder
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 675
    functionName: libtorrent::append_send_buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::move
    - libtorrent::is_single_thread
    - append_buffer
    linkageType: ''
    returnType: void
    signature: void append_send_buffer(Holder buffer, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    functionName: libtorrent::outstanding_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int outstanding_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 680
    functionName: libtorrent::send_buffer_size
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int send_buffer_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 683
    functionName: libtorrent::send_buffer_capacity
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - capacity
    linkageType: ''
    returnType: int
    signature: int send_buffer_capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 688
    functionName: libtorrent::last_seen_complete
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t last_seen_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ago
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 689
    functionName: libtorrent::set_last_seen_complete
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_time
    linkageType: ''
    returnType: void
    signature: void set_last_seen_complete(int ago)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_payload_upload
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 692
    functionName: libtorrent::uploaded_in_last_round
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::total_payload_upload
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t uploaded_in_last_round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_payload_download
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 695
    functionName: libtorrent::downloaded_in_last_round
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total_payload_download
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t downloaded_in_last_round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_payload_upload
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: libtorrent::uploaded_since_unchoked
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total_payload_upload
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t uploaded_since_unchoked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 702
    functionName: libtorrent::time_of_last_unchoke
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: time_point
    signature: time_point time_of_last_unchoke() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 708
    functionName: libtorrent::num_reading_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_reading_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:714,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:715,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:716,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 718
    functionName: libtorrent::self
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<peer_connection>
    signature: std::shared_ptr<peer_connection> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 720
    functionName: libtorrent::stats_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: counters
    signature: counters & stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: libtorrent::on_tick
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:760,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 762
    functionName: libtorrent::hit_send_barrier
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::span
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<int, span<span<char const>>>
    signature: std::tuple<int, span<span<char const>>> hit_send_barrier(span<span<char>>
      /* iovec */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:772,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: libtorrent::set_send_barrier
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::send_buffer_size
    linkageType: ''
    returnType: void
    signature: void set_send_barrier(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    functionName: libtorrent::get_send_barrier
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_send_barrier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 780
    functionName: libtorrent::get_context
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: io_context
    signature: io_context & get_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::relative_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void relative_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::relative_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void relative_time(min_value_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds32>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reference
    - new_value
    argTypes:
    - time_point
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: libtorrent::aux::set
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - duration_cast<milliseconds32>
    linkageType: ''
    returnType: void
    signature: void set(time_point const reference, time_point const new_value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reference
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point get(time_point reference) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:121,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: libtorrent::aux::clamp_assign
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - libtorrent::aux::max
    linkageType: ''
    returnType: T
    signature: T clamp_assign(int const v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::relative_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void relative_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::min
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: libtorrent::aux::relative_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::min
    linkageType: ''
    returnType: void
    signature: void relative_time(min_value_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds32>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reference
    - new_value
    argTypes:
    - time_point
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: libtorrent::aux::set
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - duration_cast<milliseconds32>
    linkageType: ''
    returnType: void
    signature: void set(time_point const reference, time_point const new_value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reference
    argTypes:
    - time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point get(time_point reference) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::max
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:121,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: libtorrent::aux::clamp_assign
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - libtorrent::aux::max
    linkageType: ''
    returnType: T
    signature: T clamp_assign(int const v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - piece_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: libtorrent::pending_block
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pending_block(piece_block const& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - pending_block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: operator==(pending_block const& b) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(pending_block const& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:192,1
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 270
    functionName: libtorrent::peer_connection_hot_members
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - expired
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_connection_hot_members
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:192,1
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - t
    - ' ses'
    - ' sett'
    argTypes:
    - std::weak_ptr<torrent>
    - aux::session_interface
    - aux::session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 202
    functionName: libtorrent::peer_connection_hot_members
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    - expired
    linkageType: ''
    returnType: void
    signature: "void peer_connection_hot_members(\n\t\t\tstd::weak_ptr<torrent> t\n\t\t\t,
      aux::session_interface& ses\n\t\t\t, aux::session_settings const& sett)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:320,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pi
    argTypes:
    - torrent_peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: libtorrent::set_peer_info
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void set_peer_info(torrent_peer* pi) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: libtorrent::peer_info_struct
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: torrent_peer
    signature: torrent_peer * peer_info_struct() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: libtorrent::peer_exceeds_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_exceeds_limit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: libtorrent::peer_disconnected_other
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_disconnected_other()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: libtorrent::on_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_metadata()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - picker_options_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: libtorrent::picker_options
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void picker_options(picker_options_t o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_parole
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: libtorrent::prefer_contiguous_blocks
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - on_parole
    linkageType: ''
    returnType: int
    signature: int prefer_contiguous_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::clamp_assign<std::uint16_t>
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: libtorrent::prefer_contiguous_blocks
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - aux::clamp_assign<std::uint16_t>
    linkageType: ''
    returnType: void
    signature: void prefer_contiguous_blocks(int const num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: libtorrent::request_large_blocks
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool request_large_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: libtorrent::request_large_blocks
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void request_large_blocks(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: libtorrent::endgame
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool endgame() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: libtorrent::no_download
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_download() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 387
    functionName: libtorrent::no_download
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void no_download(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: libtorrent::ignore_stats
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ignore_stats() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: libtorrent::ignore_stats
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ignore_stats(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: libtorrent::fast_reconnect
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fast_reconnect() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - piece_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: libtorrent::super_seeded_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool super_seeded_piece(piece_index_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 422
    functionName: libtorrent::num_have_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_have_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 426
    functionName: libtorrent::share_mode
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool share_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_seed
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: libtorrent::upload_only
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - is_seed
    linkageType: ''
    returnType: bool
    signature: bool upload_only() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: libtorrent::pid
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: peer_id
    signature: peer_id & pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' peer_id'
    argTypes:
    - peer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    functionName: libtorrent::set_pid
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_pid(peer_id const& peer_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: libtorrent::is_interesting
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_interesting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: libtorrent::is_choked
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_choked() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: libtorrent::is_peer_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_peer_interested() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: libtorrent::has_peer_choked
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_peer_choked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    functionName: libtorrent::associated_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::weak_ptr<torrent>
    signature: std::weak_ptr<torrent> associated_torrent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 479
    functionName: libtorrent::statistics
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: stat
    signature: stat & statistics() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 490
    functionName: libtorrent::get_socket
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::socket_type
    signature: aux::socket_type & get_socket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 491
    functionName: libtorrent::get_socket
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::socket_type
    signature: aux::socket_type & get_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: libtorrent::remote
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint & remote() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: tcp::endpoint
    signature: tcp::endpoint local_endpoint() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 502
    functionName: libtorrent::suggested_pieces
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<piece_index_t>
    signature: std::vector<piece_index_t> & suggested_pieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: libtorrent::connected_time
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point connected_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 505
    functionName: libtorrent::last_received
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: time_point
    signature: time_point last_received() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 514
    functionName: libtorrent::is_disconnecting
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_disconnecting() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 523
    functionName: libtorrent::is_connecting
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_connecting() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 533
    functionName: libtorrent::is_outgoing
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_outgoing() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 535
    functionName: libtorrent::received_listen_port
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool received_listen_port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: libtorrent::received_listen_port
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void received_listen_port()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: libtorrent::failed
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool failed() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: libtorrent::desired_queue_size
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int desired_queue_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::download_payload_rate
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 555
    functionName: libtorrent::download_payload_rate
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::download_payload_rate
    linkageType: ''
    returnType: int
    signature: int download_payload_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 605
    functionName: libtorrent::set_has_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_metadata(bool m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 606
    functionName: libtorrent::has_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_metadata() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:673,1
    - Dst: libtorrent::is_single_thread
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:673,1
    - Dst: append_buffer
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:674,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - Holder
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 675
    functionName: libtorrent::append_send_buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::move
    - libtorrent::is_single_thread
    - append_buffer
    linkageType: ''
    returnType: void
    signature: void append_send_buffer(Holder buffer, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    functionName: libtorrent::outstanding_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int outstanding_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 680
    functionName: libtorrent::send_buffer_size
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 9
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int send_buffer_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 683
    functionName: libtorrent::send_buffer_capacity
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - capacity
    linkageType: ''
    returnType: int
    signature: int send_buffer_capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 688
    functionName: libtorrent::last_seen_complete
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::time_t
    signature: std::time_t last_seen_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::posix_time
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ago
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 689
    functionName: libtorrent::set_last_seen_complete
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::posix_time
    linkageType: ''
    returnType: void
    signature: void set_last_seen_complete(int ago)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_payload_upload
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 692
    functionName: libtorrent::uploaded_in_last_round
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::total_payload_upload
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t uploaded_in_last_round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_payload_download
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 695
    functionName: libtorrent::downloaded_in_last_round
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total_payload_download
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t downloaded_in_last_round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::total_payload_upload
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: libtorrent::uploaded_since_unchoked
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::total_payload_upload
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t uploaded_since_unchoked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 702
    functionName: libtorrent::time_of_last_unchoke
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    linkageType: ''
    returnType: time_point
    signature: time_point time_of_last_unchoke() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 708
    functionName: libtorrent::num_reading_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_reading_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:714,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:715,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:716,1
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 718
    functionName: libtorrent::self
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<peer_connection>
    signature: std::shared_ptr<peer_connection> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 720
    functionName: libtorrent::stats_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: counters
    signature: counters & stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: libtorrent::on_tick
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:760,1
    - Dst: libtorrent::span
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 762
    functionName: libtorrent::hit_send_barrier
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::span
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<int, span<span<char const>>>
    signature: std::tuple<int, span<span<char const>>> hit_send_barrier(span<span<char>>
      /* iovec */)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:772,1
    - Dst: libtorrent::send_buffer_size
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: libtorrent::set_send_barrier
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::send_buffer_size
    linkageType: ''
    returnType: void
    signature: void set_send_barrier(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    functionName: libtorrent::get_send_barrier
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_send_barrier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 780
    functionName: libtorrent::get_context
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: io_context
    signature: io_context & get_context()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - peer_connection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1232
    functionName: cork
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cork(peer_connection& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1233
    functionName: cork
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cork(cork const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1234
    functionName: '& operator=(cork const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cork
    signature: cork & operator=(cork const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_send
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:1241,1
    - Dst: disconnect
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:1244,1
    - Dst: make_error_code
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:1244,1
    - Dst: disconnect
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:1248,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:1248,1
    - Dst: disconnect
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:1251,1
    - Dst: make_error_code
      Src: /src/libtorrent/include/libtorrent/peer_connection.hpp:1251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1254
    functionName: ~cork()
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection.hpp
    functionUses: 0
    functionsReached:
    - setup_send
    - make_error_code
    - disconnect
    - code
    linkageType: ''
    returnType: void
    signature: void ~cork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_peer_allocator_interface
      Src: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: libtorrent::torrent_peer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::torrent_peer_allocator_interface
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 98
    functionName: libtorrent::torrent_peer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: ~torrent_peer_allocator()
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~torrent_peer_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::total_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t total_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::total_allocations
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t total_allocations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::live_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int live_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::live_allocations
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int live_allocations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::torrent_peer_allocator_interface
      Src: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: libtorrent::torrent_peer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::torrent_peer_allocator_interface
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 98
    functionName: libtorrent::torrent_peer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT torrent_peer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: ~torrent_peer_allocator()
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~torrent_peer_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: libtorrent::total_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t total_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::total_allocations
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t total_allocations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::live_bytes
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int live_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: libtorrent::live_allocations
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_peer_allocator.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int live_allocations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: libtorrent::is_digit
    functionSourceFile: /src/libtorrent/include/libtorrent/string_util.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_digit(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/include/libtorrent/string_util.hpp:63,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/string_util.hpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: libtorrent::ensure_trailing_slash
    functionSourceFile: /src/libtorrent/include/libtorrent/string_util.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::empty
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void ensure_trailing_slash(std::string& url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - listen_interface_t
    - listen_interface_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: operator==(listen_interface_t const& lhs, listen_interface_t const&
      rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/string_util.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(listen_interface_t const& lhs, listen_interface_t const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: libtorrent::is_digit
    functionSourceFile: /src/libtorrent/include/libtorrent/string_util.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_digit(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::empty
      Src: /src/libtorrent/include/libtorrent/string_util.hpp:63,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/string_util.hpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' url'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: libtorrent::ensure_trailing_slash
    functionSourceFile: /src/libtorrent/include/libtorrent/string_util.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::empty
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void ensure_trailing_slash(std::string& url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - listen_interface_t
    - listen_interface_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: operator==(listen_interface_t const& lhs, listen_interface_t const&
      rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/string_util.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(listen_interface_t const& lhs, listen_interface_t const&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/alert.hpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 305
    functionName: libtorrent::alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert.hpp
    functionUses: 0
    functionsReached:
    - peer_conn::write_have_all
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: libtorrent::alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert(alert&& rhs) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alert*::type
      Src: /src/libtorrent/include/libtorrent/alert.hpp:319,1
    - Dst: static_cast<T*>
      Src: /src/libtorrent/include/libtorrent/alert.hpp:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: libtorrent::alert_cast
    functionSourceFile: /src/libtorrent/include/libtorrent/alert.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T*>
    - alert*::type
    linkageType: ''
    returnType: T
    signature: T * alert_cast(alert* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alert*::type
      Src: /src/libtorrent/include/libtorrent/alert.hpp:327,1
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/include/libtorrent/alert.hpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: libtorrent::alert_cast
    functionSourceFile: /src/libtorrent/include/libtorrent/alert.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T const*>
    - alert*::type
    linkageType: ''
    returnType: T
    signature: T * alert_cast(alert const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/alert.hpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 305
    functionName: libtorrent::alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert.hpp
    functionUses: 0
    functionsReached:
    - peer_conn::write_have_all
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: libtorrent::alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void alert(alert&& rhs) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alert*::type
      Src: /src/libtorrent/include/libtorrent/alert.hpp:319,1
    - Dst: static_cast<T*>
      Src: /src/libtorrent/include/libtorrent/alert.hpp:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: libtorrent::alert_cast
    functionSourceFile: /src/libtorrent/include/libtorrent/alert.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T*>
    - alert*::type
    linkageType: ''
    returnType: T
    signature: T * alert_cast(alert* a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alert*::type
      Src: /src/libtorrent/include/libtorrent/alert.hpp:327,1
    - Dst: static_cast<T const*>
      Src: /src/libtorrent/include/libtorrent/alert.hpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - alert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: libtorrent::alert_cast
    functionSourceFile: /src/libtorrent/include/libtorrent/alert.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T const*>
    - alert*::type
    linkageType: ''
    returnType: T
    signature: T * alert_cast(alert const* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::min_time
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point min_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::max_time
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point max_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<seconds>
      Src: /src/libtorrent/include/libtorrent/time.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - td
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: libtorrent::total_seconds
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 1
    functionsReached:
    - duration_cast<seconds>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_seconds(T td)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/include/libtorrent/time.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - td
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: libtorrent::total_milliseconds
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 99
    functionsReached:
    - duration_cast<milliseconds>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_milliseconds(T td)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<microseconds>
      Src: /src/libtorrent/include/libtorrent/time.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - td
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: libtorrent::total_microseconds
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 28
    functionsReached:
    - duration_cast<microseconds>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_microseconds(T td)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::min_time
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point min_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::max_time
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point max_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<seconds>
      Src: /src/libtorrent/include/libtorrent/time.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - td
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: libtorrent::total_seconds
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 1
    functionsReached:
    - duration_cast<seconds>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_seconds(T td)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<milliseconds>
      Src: /src/libtorrent/include/libtorrent/time.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - td
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: libtorrent::total_milliseconds
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 99
    functionsReached:
    - duration_cast<milliseconds>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_milliseconds(T td)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: duration_cast<microseconds>
      Src: /src/libtorrent/include/libtorrent/time.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - td
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: libtorrent::total_microseconds
    functionSourceFile: /src/libtorrent/include/libtorrent/time.hpp
    functionUses: 28
    functionsReached:
    - duration_cast<microseconds>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_microseconds(T td)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_peer_connection
      Src: /src/libtorrent/include/libtorrent/web_peer_connection.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 144
    functionName: libtorrent::web_peer_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/web_peer_connection.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::web_peer_connection
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT web_peer_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/web_peer_connection.hpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: connection_type
    signature: connection_type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::url
    functionSourceFile: /src/libtorrent/include/libtorrent/web_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & url() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_peer_connection
      Src: /src/libtorrent/include/libtorrent/web_peer_connection.hpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 144
    functionName: libtorrent::web_peer_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/web_peer_connection.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::web_peer_connection
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT web_peer_connection
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/web_peer_connection.hpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: connection_type
    signature: connection_type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::url
    functionSourceFile: /src/libtorrent/include/libtorrent/web_peer_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & url() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: libtorrent::open_file_state
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT open_file_state
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::function<void()>
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:254,1
    - Dst: std::function<void()>
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 368
    functionName: libtorrent::disk_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached:
    - std::function<void()>
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT disk_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: ~disk_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~disk_interface()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:385,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:392,1
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:398,1
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:415,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 424
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::remove_torrent
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_holder
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_holder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - idx
    - ' disk_io'
    argTypes:
    - storage_index_t
    - disk_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_holder(storage_index_t idx, disk_interface& disk_io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: ~storage_holder()
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::remove_torrent
    linkageType: ''
    returnType: void
    signature: void ~storage_holder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: operator storage_index_t() const
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void operator storage_index_t() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: libtorrent::reset
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::remove_torrent
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_holder(storage_holder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - storage_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_holder(storage_holder&& rhs) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - storage_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: '& operator=(storage_holder&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::remove_torrent
    linkageType: ''
    returnType: storage_holder
    signature: storage_holder & operator=(storage_holder&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: libtorrent::open_file_state
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT open_file_state
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::function<void()>
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:254,1
    - Dst: std::function<void()>
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 368
    functionName: libtorrent::disk_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached:
    - std::function<void()>
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT disk_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: ~disk_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~disk_interface()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:385,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:392,1
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:398,1
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:415,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 424
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::remove_torrent
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_holder
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_holder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - idx
    - ' disk_io'
    argTypes:
    - storage_index_t
    - disk_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_holder(storage_index_t idx, disk_interface& disk_io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: ~storage_holder()
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached:
    - remove_torrent
    linkageType: ''
    returnType: void
    signature: void ~storage_holder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: operator storage_index_t() const
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void operator storage_index_t() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: libtorrent::reset
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::remove_torrent
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_holder(storage_holder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - storage_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: libtorrent::storage_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_holder(storage_holder&& rhs) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove_torrent
      Src: /src/libtorrent/include/libtorrent/disk_interface.hpp:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - storage_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: '& operator=(storage_holder&& rhs) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_interface.hpp
    functionUses: 0
    functionsReached:
    - remove_torrent
    linkageType: ''
    returnType: storage_holder
    signature: storage_holder & operator=(storage_holder&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: libtorrent::stats_metric
    functionSourceFile: /src/libtorrent/include/libtorrent/session_stats.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT stats_metric
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: libtorrent::stats_metric
    functionSourceFile: /src/libtorrent/include/libtorrent/session_stats.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT stats_metric
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:161,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:162,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:167,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:168,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:169,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:170,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:175,1
    - Dst: std::pair<iterator, iterator>
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: std::equal_range
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:178,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: std::equal_range
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:184,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 267
    functionName: libtorrent::single_threaded
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - peer_address_compare
    - libtorrent::end
    - libtorrent::begin
    - libtorrent::address
    - std::equal_range
    - std::pair<iterator, iterator>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT single_threaded
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::peer_list
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_list(peer_list const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: libtorrent::num_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: libtorrent::num_candidate_cache
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_candidate_cache() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 62
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 68
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: iterator
    signature: iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 63
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 69
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:175,1
    - Dst: std::pair<iterator, iterator>
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: std::equal_range
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:178,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: libtorrent::find_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 8
    functionsReached:
    - peer_address_compare
    - libtorrent::end
    - libtorrent::address
    - libtorrent::begin
    - std::equal_range
    - std::pair<iterator, iterator>
    linkageType: ''
    returnType: std::pair<iterator, iterator>
    signature: std::pair<iterator, iterator> find_peers(address const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal_range
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:184,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: libtorrent::find_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 8
    functionsReached:
    - std::equal_range
    - peer_address_compare
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: std::pair<const_iterator, const_iterator>
    signature: std::pair<const_iterator, const_iterator> find_peers(address const&
      a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: libtorrent::num_seeds
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: libtorrent::num_connect_candidates
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_connect_candidates() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:161,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:162,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:167,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:168,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:169,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:170,1
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:175,1
    - Dst: std::pair<iterator, iterator>
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: std::equal_range
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:178,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: std::equal_range
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:184,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 267
    functionName: libtorrent::single_threaded
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - peer_address_compare
    - libtorrent::end
    - libtorrent::begin
    - libtorrent::address
    - std::equal_range
    - std::pair<iterator, iterator>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT single_threaded
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: libtorrent::peer_list
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_list(peer_list const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: libtorrent::num_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: libtorrent::num_candidate_cache
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    linkageType: ''
    returnType: int
    signature: int num_candidate_cache() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 67
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 73
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: iterator
    signature: iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 68
    functionsReached:
    - libtorrent::begin
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 74
    functionsReached:
    - libtorrent::end
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::address
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:175,1
    - Dst: std::pair<iterator, iterator>
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:176,1
    - Dst: std::equal_range
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:178,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: libtorrent::find_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 8
    functionsReached:
    - peer_address_compare
    - libtorrent::end
    - libtorrent::address
    - libtorrent::begin
    - std::equal_range
    - std::pair<iterator, iterator>
    linkageType: ''
    returnType: std::pair<iterator, iterator>
    signature: std::pair<iterator, iterator> find_peers(address const& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal_range
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:184,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    - Dst: peer_address_compare
      Src: /src/libtorrent/include/libtorrent/peer_list.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: libtorrent::find_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 8
    functionsReached:
    - std::equal_range
    - peer_address_compare
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: std::pair<const_iterator, const_iterator>
    signature: std::pair<const_iterator, const_iterator> find_peers(address const&
      a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: libtorrent::num_seeds
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_seeds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: libtorrent::num_connect_candidates
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_list.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_connect_candidates() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::buffer_allocator_interface
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: libtorrent::buffer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::buffer_allocator_interface
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT buffer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:89,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:90,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 108
    functionName: libtorrent::disk_buffer_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::swap
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT disk_buffer_holder
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::disk_buffer_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder(disk_buffer_holder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::disk_buffer_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:89,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:90,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - disk_buffer_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: libtorrent::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::swap
    linkageType: ''
    returnType: void
    signature: void swap(disk_buffer_holder& h) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: libtorrent::is_mutable
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_mutable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: operator bool() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 147
    functionsReached: []
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: std::ptrdiff_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::buffer_allocator_interface
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: libtorrent::buffer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::buffer_allocator_interface
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT buffer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:89,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:90,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 108
    functionName: libtorrent::disk_buffer_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::swap
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT disk_buffer_holder
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::disk_buffer_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder(disk_buffer_holder const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::disk_buffer_holder
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_holder() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:89,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:90,1
    - Dst: libtorrent::swap
      Src: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - disk_buffer_holder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: libtorrent::swap
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::swap
    linkageType: ''
    returnType: void
    signature: void swap(disk_buffer_holder& h) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: libtorrent::is_mutable
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_mutable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: operator bool() const noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/disk_buffer_holder.hpp
    functionUses: 147
    functionsReached: []
    linkageType: ''
    returnType: std::ptrdiff_t
    signature: std::ptrdiff_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:95,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:96,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:99,1
    - Dst: libtorrent::has_v1
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:100,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:106,1
    - Dst: sha1_hash
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:107,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:107,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:114,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:114,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:119,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:119,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:124,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:124,1
    - Dst: libtorrent::has_v1
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:133,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:133,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: sha1_hash
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:139,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 151
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached:
    - is_all_zeros
    - libtorrent::has_v2
    - std::tie
    - libtorrent::has_v1
    - libtorrent::data
    - f
    - TORRENT_ASSERT
    - libtorrent::get
    - sha1_hash
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT info_hash_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h1
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t(sha1_hash h1) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h2
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t(sha256_hash h2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - sha1_hash
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t(sha1_hash h1, sha256_hash h2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t(info_hash_t const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: libtorrent::has_v1
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 1
    functionsReached:
    - is_all_zeros
    linkageType: ''
    returnType: bool
    signature: bool has_v1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: libtorrent::has_v2
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 1
    functionsReached:
    - is_all_zeros
    linkageType: ''
    returnType: bool
    signature: bool has_v2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:99,1
    - Dst: libtorrent::has_v1
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:100,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: libtorrent::has
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::has_v1
    - libtorrent::has_v2
    linkageType: ''
    returnType: bool
    signature: bool has(protocol_version v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:106,1
    - Dst: sha1_hash
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:107,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::get
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 32
    functionsReached:
    - TORRENT_ASSERT
    - sha1_hash
    - libtorrent::data
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash get(protocol_version v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:114,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: libtorrent::get_best
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    - libtorrent::has_v2
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash get_best() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:119,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - info_hash_t
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: operator!=(info_hash_t const& lhs, info_hash_t const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: friend
    signature: friend operator!=(info_hash_t const& lhs, info_hash_t const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:124,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - info_hash_t
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: operator==(info_hash_t const& lhs, info_hash_t const& rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: friend
    signature: friend operator==(info_hash_t const& lhs, info_hash_t const& rhs) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_v1
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:133,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:133,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: sha1_hash
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: libtorrent::for_each
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::has_v2
    - libtorrent::has_v1
    - libtorrent::data
    - f
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void for_each(F f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:139,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: operator<(info_hash_t const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool operator<(info_hash_t const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' ih'
    argTypes:
    - std::ostream
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: '& operator<<(std::ostream& os, info_hash_t const& ih)'
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend & operator<<(std::ostream& os, info_hash_t const& ih)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:95,1
    - Dst: is_all_zeros
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:96,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:99,1
    - Dst: libtorrent::has_v1
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:100,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:100,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:106,1
    - Dst: sha1_hash
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:107,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:107,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:114,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:114,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:119,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:119,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:124,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:124,1
    - Dst: libtorrent::has_v1
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:133,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:133,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: sha1_hash
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:139,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 151
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached:
    - is_all_zeros
    - libtorrent::has_v2
    - std::tie
    - libtorrent::has_v1
    - libtorrent::data
    - f
    - TORRENT_ASSERT
    - libtorrent::get
    - sha1_hash
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT info_hash_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h1
    argTypes:
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t(sha1_hash h1) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - h2
    argTypes:
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t(sha256_hash h2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - sha1_hash
    - sha256_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t(sha1_hash h1, sha256_hash h2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: libtorrent::info_hash_t
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void info_hash_t(info_hash_t const&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: libtorrent::has_v1
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 4
    functionsReached:
    - is_all_zeros
    linkageType: ''
    returnType: bool
    signature: bool has_v1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_all_zeros
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: libtorrent::has_v2
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 5
    functionsReached:
    - is_all_zeros
    linkageType: ''
    returnType: bool
    signature: bool has_v2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:99,1
    - Dst: libtorrent::has_v1
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:100,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: libtorrent::has
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::has_v1
    - libtorrent::has_v2
    linkageType: ''
    returnType: bool
    signature: bool has(protocol_version v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:106,1
    - Dst: sha1_hash
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:107,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::get
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 34
    functionsReached:
    - TORRENT_ASSERT
    - sha1_hash
    - libtorrent::data
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash get(protocol_version v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:114,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: libtorrent::get_best
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::get
    - libtorrent::has_v2
    linkageType: ''
    returnType: sha1_hash
    signature: sha1_hash get_best() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:119,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - info_hash_t
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: operator!=(info_hash_t const& lhs, info_hash_t const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: friend
    signature: friend operator!=(info_hash_t const& lhs, info_hash_t const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:124,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - info_hash_t
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: operator==(info_hash_t const& lhs, info_hash_t const& rhs) noexcept
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: friend
    signature: friend operator==(info_hash_t const& lhs, info_hash_t const& rhs) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::has_v1
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:133,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:133,1
    - Dst: libtorrent::has_v2
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: sha1_hash
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: libtorrent::for_each
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::has_v2
    - libtorrent::has_v1
    - libtorrent::data
    - f
    - sha1_hash
    linkageType: ''
    returnType: void
    signature: void for_each(F f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:139,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/info_hash.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: operator<(info_hash_t const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached:
    - std::tie
    linkageType: ''
    returnType: bool
    signature: bool operator<(info_hash_t const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - ' ih'
    argTypes:
    - std::ostream
    - info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: '& operator<<(std::ostream& os, info_hash_t const& ih)'
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend & operator<<(std::ostream& os, info_hash_t const& ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - libtorrent::info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: operator()(libtorrent::info_hash_t const& k) const
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(libtorrent::info_hash_t const& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - libtorrent::info_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: operator()(libtorrent::info_hash_t const& k) const
    functionSourceFile: /src/libtorrent/include/libtorrent/info_hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(libtorrent::info_hash_t const& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::i2p_category
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: libtorrent::get_i2p_category
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::i2p_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_i2p_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: libtorrent::i2p_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_stream(i2p_stream&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& operator=(i2p_stream const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i2p_stream
    signature: i2p_stream & operator=(i2p_stream const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - command_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::set_command
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_command(command_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session_options'
    argTypes:
    - i2p_session_options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: libtorrent::set_session_options
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_session_options(i2p_session_options const& session_options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: libtorrent::set_session_id
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_session_id(char const* id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: libtorrent::set_local_i2p_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - string_view::to_string
    linkageType: ''
    returnType: void
    signature: void set_local_i2p_endpoint(string_view d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '& local_i2p_endpoint() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & local_i2p_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: libtorrent::set_destination
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - string_view::to_string
    linkageType: ''
    returnType: void
    signature: void set_destination(string_view d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& destination() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & destination() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_resolve
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:156,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:156,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:156,1
    - Dst: libtorrent::do_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:158,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:158,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:158,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: libtorrent::async_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::wrap_allocator
    - async_resolve
    - libtorrent::to_string
    - libtorrent::do_connect
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_connect(endpoint_type const&, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: libtorrent::name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name_lookup() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::set_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_name_lookup(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:168,1
    - Dst: std::snprintf
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:171,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:171,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:172,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:173,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:173,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:173,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:173,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:175,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:175,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: libtorrent::send_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - c_str
    - std::snprintf
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::start_read_line
    - libtorrent::move
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void send_name_lookup(Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:184,1
    - Dst: tcp::resolver::results_type::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:185,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:187,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:189,1
    - Dst: tcp::resolver::results_type::begin
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:193,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:194,1
    - Dst: libtorrent::async_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:195,1
    - Dst: auto::endpoint
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:195,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:195,1
    - Dst: libtorrent::connected
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:197,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:197,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' e'
    - ips
    - h
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 199
    functionName: libtorrent::do_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - h
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - auto::endpoint
    - libtorrent::async_connect
    - tcp::resolver::results_type::empty
    - libtorrent::connected
    - libtorrent::close
    - TORRENT_ASSERT
    - tcp::resolver::results_type::begin
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void do_connect(error_code const& e, tcp::resolver::results_type ips,
      Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:204,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:205,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:206,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:212,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:213,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:213,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:213,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:215,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:215,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: libtorrent::connected
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - libtorrent::handle_error
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - libtorrent::start_read_line
    - libtorrent::move
    - COMPLETE_ASYNC
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void connected(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:222,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:223,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:224,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:226,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:227,1
    - Dst: libtorrent::async_read
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:228,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:228,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:228,1
    - Dst: libtorrent::read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:230,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:230,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 232
    functionName: libtorrent::start_read_line
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - libtorrent::read_line
    - libtorrent::handle_error
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - resize
    - libtorrent::async_read
    - libtorrent::move
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void start_read_line(error_code const& e, Handler h)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:237,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:238,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:239,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:241,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:246,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:248,1
    - Dst: libtorrent::async_read
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:249,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:249,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:249,1
    - Dst: libtorrent::read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:251,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:251,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:252,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:262,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:294,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:294,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:295,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:295,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:298,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:298,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:299,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:300,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:302,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:302,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:303,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:304,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:311,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:311,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:312,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:316,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:316,1
    - Dst: string_view::substr
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:316,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:317,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:317,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:318,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:322,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:322,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:324,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:324,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:355,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:359,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:366,1
    - Dst: libtorrent::send_session_create
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:376,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:376,1
    - Dst: libtorrent::send_accept
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:379,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:379,1
    - Dst: libtorrent::send_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:382,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:382,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:387,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:388,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:394,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:395,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:403,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:404,1
    - Dst: libtorrent::async_read
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:405,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:405,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:405,1
    - Dst: libtorrent::read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:407,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:407,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:408,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 132
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 411
    functionName: libtorrent::read_line
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - h
    - libtorrent::handle_error
    - libtorrent::move
    - std::forward<Handler>
    - ADD_OUTSTANDING_ASYNC
    - string_view::empty
    - string_view::to_string
    - libtorrent::async_read
    - std::vector<char>
    - COMPLETE_ASYNC
    - libtorrent::split_string
    - libtorrent::size
    - libtorrent::send_session_create
    - libtorrent::data
    - TORRENT_ASSERT
    - libtorrent::wrap_allocator
    - libtorrent::read_line
    - string_view::substr
    - std::tie
    - string_view::remove_suffix
    - libtorrent::send_accept
    - both_sides_from_store_buffer
    - resize
    - libtorrent::send_connect
    linkageType: ''
    returnType: void
    signature: void read_line(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:416,1
    - Dst: std::snprintf
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:419,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:420,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:421,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:422,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:422,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:422,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:422,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:424,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:424,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: libtorrent::send_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - c_str
    - std::snprintf
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::start_read_line
    - libtorrent::move
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void send_connect(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:431,1
    - Dst: std::snprintf
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:434,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:435,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:436,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:436,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:436,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:436,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:438,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:438,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 440
    functionName: libtorrent::send_accept
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - std::snprintf
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::start_read_line
    - libtorrent::move
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void send_accept(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:445,1
    - Dst: std::snprintf
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:448,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:456,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:457,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:457,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:457,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:457,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:459,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:459,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 461
    functionName: libtorrent::send_session_create
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - std::snprintf
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::start_read_line
    - libtorrent::move
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void send_session_create(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 491
    functionName: '& operator=(i2p_connection const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i2p_connection
    signature: i2p_connection & operator=(i2p_connection const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::i2p_connection::is_open
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: libtorrent::i2p_connection::is_open
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::i2p_connection::is_open
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::i2p_connection::is_open
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:509,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:514,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:519,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:520,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:521,1
    - Dst: std::make_shared<i2p_stream>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:523,1
    - Dst: set_proxy
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:524,1
    - Dst: set_command
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:525,1
    - Dst: set_session_id
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:526,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:526,1
    - Dst: set_session_options
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:527,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:529,1
    - Dst: async_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:530,1
    - Dst: local_endpoint
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:530,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:530,1
    - Dst: libtorrent::i2p_connection::on_sam_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:532,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:532,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ' hostname'
    - port
    - ' session_options'
    - handler
    argTypes:
    - std::string
    - int
    - i2p_session_options
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 534
    functionName: libtorrent::i2p_connection::open
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - set_session_id
    - std::move
    - libtorrent::aux::to_hex
    - c_str
    - async_connect
    - empty
    - set_command
    - resize
    - set_proxy
    - local_endpoint
    - wrap_allocator
    - set_session_options
    - std::make_shared<i2p_stream>
    - libtorrent::aux::random_bytes
    - libtorrent::i2p_connection::is_open
    - libtorrent::i2p_connection::on_sam_connect
    linkageType: ''
    returnType: void
    signature: "void open(std::string const& hostname, int port,\n\t\ti2p_session_options
      const& session_options, Handler handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: libtorrent::i2p_connection::session_id
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char * session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: '& local_endpoint() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:544,1
    - Dst: libtorrent::i2p_connection::is_open
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:544,1
    - Dst: libtorrent::i2p_connection::do_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:545,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:545,1
    - Dst: emplace_back
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:547,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:547,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - name
    - handler
    argTypes:
    - char*
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: libtorrent::i2p_connection::async_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::i2p_connection::do_name_lookup
    - std::move
    - empty
    - std::string
    - emplace_back
    - libtorrent::i2p_connection::is_open
    linkageType: ''
    returnType: void
    signature: void async_name_lookup(char const* name, Handler handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:556,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:561,1
    - Dst: libtorrent::i2p_connection::do_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:565,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:565,1
    - Dst: libtorrent::i2p_connection::set_local_endpoint
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:567,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:567,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' ec'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 569
    functionName: libtorrent::i2p_connection::on_sam_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - h
    - libtorrent::i2p_connection::do_name_lookup
    - std::move
    - libtorrent::i2p_connection::set_local_endpoint
    - wrap_allocator
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void on_sam_connect(error_code const& ec, std::shared_ptr<i2p_stream>,
      Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:576,1
    - Dst: set_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:578,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:578,1
    - Dst: send_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:579,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:579,1
    - Dst: libtorrent::i2p_connection::on_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:581,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:581,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' name'
    - handler
    argTypes:
    - std::string
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 583
    functionName: libtorrent::i2p_connection::do_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - set_name_lookup
    - std::move
    - c_str
    - libtorrent::i2p_connection::on_name_lookup
    - TORRENT_ASSERT
    - wrap_allocator
    - send_name_lookup
    linkageType: ''
    returnType: void
    signature: void do_name_lookup(std::string const& name, Handler handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:590,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:591,1
    - Dst: front
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:593,1
    - Dst: libtorrent::i2p_connection::do_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:594,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:594,1
    - Dst: pop_front
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:595,1
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:600,1
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:604,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - handler
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 605
    functionName: libtorrent::i2p_connection::on_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::i2p_connection::do_name_lookup
    - std::move
    - empty
    - std::string::c_str
    - front
    - pop_front
    - name_lookup
    - handler
    linkageType: ''
    returnType: void
    signature: void on_name_lookup(error_code const& ec, std::shared_ptr<i2p_stream>,
      Handler handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:614,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' ec'
    - dest
    - h
    argTypes:
    - error_code
    - char*
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 617
    functionName: libtorrent::i2p_connection::set_local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - h
    - clear
    linkageType: ''
    returnType: void
    signature: void set_local_endpoint(error_code const& ec, char const* dest, Handler
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::i2p_category
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: libtorrent::get_i2p_category
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::i2p_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_i2p_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: libtorrent::i2p_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void i2p_stream(i2p_stream&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& operator=(i2p_stream const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i2p_stream
    signature: i2p_stream & operator=(i2p_stream const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - command_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::set_command
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_command(command_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session_options'
    argTypes:
    - i2p_session_options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: libtorrent::set_session_options
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_session_options(i2p_session_options const& session_options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: libtorrent::set_session_id
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_session_id(char const* id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: libtorrent::set_local_i2p_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - string_view::to_string
    linkageType: ''
    returnType: void
    signature: void set_local_i2p_endpoint(string_view d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '& local_i2p_endpoint() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & local_i2p_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: libtorrent::set_destination
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - string_view::to_string
    linkageType: ''
    returnType: void
    signature: void set_destination(string_view d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& destination() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & destination() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_resolve
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:156,1
    - Dst: libtorrent::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:156,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:156,1
    - Dst: libtorrent::do_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:158,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:158,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:158,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: libtorrent::async_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::wrap_allocator
    - async_resolve
    - libtorrent::to_string
    - libtorrent::do_connect
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_connect(endpoint_type const&, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: libtorrent::name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name_lookup() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::set_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_name_lookup(char const* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:168,1
    - Dst: std::snprintf
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:171,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:171,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:172,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:173,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:173,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:173,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:173,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:175,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:175,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: libtorrent::send_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - c_str
    - std::snprintf
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::start_read_line
    - libtorrent::move
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void send_name_lookup(Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:184,1
    - Dst: tcp::resolver::results_type::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:185,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:187,1
    - Dst: libtorrent::close
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:189,1
    - Dst: tcp::resolver::results_type::begin
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:193,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:194,1
    - Dst: libtorrent::async_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:195,1
    - Dst: auto::endpoint
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:195,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:195,1
    - Dst: libtorrent::connected
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:197,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:197,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' e'
    - ips
    - h
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 199
    functionName: libtorrent::do_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - h
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - auto::endpoint
    - libtorrent::async_connect
    - tcp::resolver::results_type::empty
    - libtorrent::connected
    - libtorrent::close
    - TORRENT_ASSERT
    - tcp::resolver::results_type::begin
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void do_connect(error_code const& e, tcp::resolver::results_type ips,
      Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:204,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:205,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:206,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:212,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:213,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:213,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:213,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:215,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:215,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: libtorrent::connected
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - libtorrent::handle_error
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - libtorrent::start_read_line
    - libtorrent::move
    - COMPLETE_ASYNC
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void connected(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:222,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:223,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:224,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:226,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:227,1
    - Dst: libtorrent::async_read
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:228,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:228,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:228,1
    - Dst: libtorrent::read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:230,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:230,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 232
    functionName: libtorrent::start_read_line
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 7
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - libtorrent::read_line
    - libtorrent::handle_error
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - resize
    - libtorrent::async_read
    - libtorrent::move
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void start_read_line(error_code const& e, Handler h)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:237,1
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:238,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:239,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:241,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:246,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:248,1
    - Dst: libtorrent::async_read
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:249,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:249,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:249,1
    - Dst: libtorrent::read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:251,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:251,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:252,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:262,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:263,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:294,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:294,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:295,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:295,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:298,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:298,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:299,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:300,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:302,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:302,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:303,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:304,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:311,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:311,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:312,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:316,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:316,1
    - Dst: string_view::substr
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:316,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:317,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:317,1
    - Dst: string_view::remove_suffix
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:318,1
    - Dst: std::tie
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:322,1
    - Dst: libtorrent::split_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:322,1
    - Dst: string_view::empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:324,1
    - Dst: libtorrent::handle_error
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:324,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:355,1
    - Dst: string_view::to_string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:359,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:366,1
    - Dst: libtorrent::send_session_create
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:376,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:376,1
    - Dst: libtorrent::send_accept
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:379,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:379,1
    - Dst: libtorrent::send_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:382,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:382,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:387,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:388,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:394,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:395,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:403,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:404,1
    - Dst: libtorrent::async_read
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:405,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:405,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:405,1
    - Dst: libtorrent::read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:407,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:407,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:408,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 132
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 411
    functionName: libtorrent::read_line
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 4
    functionsReached:
    - h
    - libtorrent::handle_error
    - libtorrent::move
    - std::forward<Handler>
    - ADD_OUTSTANDING_ASYNC
    - string_view::empty
    - string_view::to_string
    - libtorrent::async_read
    - std::vector<char>
    - COMPLETE_ASYNC
    - libtorrent::split_string
    - libtorrent::size
    - libtorrent::send_session_create
    - libtorrent::data
    - TORRENT_ASSERT
    - libtorrent::wrap_allocator
    - libtorrent::read_line
    - string_view::substr
    - std::tie
    - string_view::remove_suffix
    - libtorrent::send_accept
    - both_sides_from_store_buffer
    - resize
    - libtorrent::send_connect
    linkageType: ''
    returnType: void
    signature: void read_line(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:416,1
    - Dst: std::snprintf
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:419,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:420,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:421,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:422,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:422,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:422,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:422,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:424,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:424,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: libtorrent::send_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - c_str
    - std::snprintf
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::start_read_line
    - libtorrent::move
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void send_connect(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:431,1
    - Dst: std::snprintf
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:434,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:435,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:436,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:436,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:436,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:436,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:438,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:438,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 440
    functionName: libtorrent::send_accept
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - std::snprintf
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::start_read_line
    - libtorrent::move
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void send_accept(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:445,1
    - Dst: std::snprintf
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:448,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:456,1
    - Dst: libtorrent::async_write
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:457,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:457,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:457,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:457,1
    - Dst: libtorrent::start_read_line
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:459,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:459,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 461
    functionName: libtorrent::send_session_create
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::wrap_allocator
    - std::snprintf
    - TORRENT_ASSERT
    - both_sides_from_store_buffer
    - std::size_t
    - libtorrent::start_read_line
    - libtorrent::move
    - libtorrent::async_write
    linkageType: ''
    returnType: void
    signature: void send_session_create(Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 491
    functionName: '& operator=(i2p_connection const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i2p_connection
    signature: i2p_connection & operator=(i2p_connection const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::i2p_connection::is_open
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: libtorrent::i2p_connection::is_open
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::i2p_connection::is_open
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::i2p_connection::is_open
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:509,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:514,1
    - Dst: libtorrent::aux::random_bytes
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:519,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:520,1
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:521,1
    - Dst: std::make_shared<i2p_stream>
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:523,1
    - Dst: set_proxy
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:524,1
    - Dst: set_command
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:525,1
    - Dst: set_session_id
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:526,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:526,1
    - Dst: set_session_options
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:527,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:529,1
    - Dst: async_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:530,1
    - Dst: local_endpoint
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:530,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:530,1
    - Dst: libtorrent::i2p_connection::on_sam_connect
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:532,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:532,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ' hostname'
    - port
    - ' session_options'
    - handler
    argTypes:
    - std::string
    - int
    - i2p_session_options
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 534
    functionName: libtorrent::i2p_connection::open
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - set_session_id
    - std::move
    - libtorrent::aux::to_hex
    - c_str
    - async_connect
    - empty
    - set_command
    - resize
    - set_proxy
    - local_endpoint
    - wrap_allocator
    - set_session_options
    - std::make_shared<i2p_stream>
    - libtorrent::aux::random_bytes
    - libtorrent::i2p_connection::is_open
    - libtorrent::i2p_connection::on_sam_connect
    linkageType: ''
    returnType: void
    signature: "void open(std::string const& hostname, int port,\n\t\ti2p_session_options
      const& session_options, Handler handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: libtorrent::i2p_connection::session_id
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char * session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: '& local_endpoint() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & local_endpoint() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:544,1
    - Dst: libtorrent::i2p_connection::is_open
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:544,1
    - Dst: libtorrent::i2p_connection::do_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:545,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:545,1
    - Dst: emplace_back
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:547,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:547,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - name
    - handler
    argTypes:
    - char*
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: libtorrent::i2p_connection::async_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::i2p_connection::do_name_lookup
    - std::move
    - empty
    - std::string
    - emplace_back
    - libtorrent::i2p_connection::is_open
    linkageType: ''
    returnType: void
    signature: void async_name_lookup(char const* name, Handler handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:556,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:561,1
    - Dst: libtorrent::i2p_connection::do_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:565,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:565,1
    - Dst: libtorrent::i2p_connection::set_local_endpoint
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:567,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:567,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' ec'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 569
    functionName: libtorrent::i2p_connection::on_sam_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - h
    - libtorrent::i2p_connection::do_name_lookup
    - std::move
    - libtorrent::i2p_connection::set_local_endpoint
    - wrap_allocator
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void on_sam_connect(error_code const& ec, std::shared_ptr<i2p_stream>,
      Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:576,1
    - Dst: set_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:578,1
    - Dst: c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:578,1
    - Dst: send_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:579,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:579,1
    - Dst: libtorrent::i2p_connection::on_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:581,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:581,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' name'
    - handler
    argTypes:
    - std::string
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 583
    functionName: libtorrent::i2p_connection::do_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 5
    functionsReached:
    - set_name_lookup
    - std::move
    - c_str
    - libtorrent::i2p_connection::on_name_lookup
    - TORRENT_ASSERT
    - wrap_allocator
    - send_name_lookup
    linkageType: ''
    returnType: void
    signature: void do_name_lookup(std::string const& name, Handler handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:590,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:591,1
    - Dst: front
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:593,1
    - Dst: libtorrent::i2p_connection::do_name_lookup
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:594,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:594,1
    - Dst: pop_front
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:595,1
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:600,1
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:604,1
    - Dst: std::string::c_str
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' ec'
    - handler
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 605
    functionName: libtorrent::i2p_connection::on_name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::i2p_connection::do_name_lookup
    - std::move
    - empty
    - std::string::c_str
    - front
    - pop_front
    - name_lookup
    - handler
    linkageType: ''
    returnType: void
    signature: void on_name_lookup(error_code const& ec, std::shared_ptr<i2p_stream>,
      Handler handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:614,1
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/i2p_stream.hpp:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' ec'
    - dest
    - h
    argTypes:
    - error_code
    - char*
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 617
    functionName: libtorrent::i2p_connection::set_local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/i2p_stream.hpp
    functionUses: 2
    functionsReached:
    - h
    - clear
    linkageType: ''
    returnType: void
    signature: void set_local_endpoint(error_code const& ec, char const* dest, Handler
      h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 416
    functionName: TORRENT_UNUSED
    functionSourceFile: /src/libtorrent/include/libtorrent/config.hpp
    functionUses: 250
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_UNUSED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - ellipsis
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 419
    functionName: TORRENT_FORMAT
    functionSourceFile: /src/libtorrent/include/libtorrent/config.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_FORMAT(fmt, ellipsis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: __has_builtin
    functionSourceFile: /src/libtorrent/include/libtorrent/config.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_builtin(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 625
    functionName: TORRENT_RVO
    functionSourceFile: /src/libtorrent/include/libtorrent/config.hpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_RVO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 627
    functionName: TORRENT_RVO
    functionSourceFile: /src/libtorrent/include/libtorrent/config.hpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_RVO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_category
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: libtorrent::get_socks_category
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::socks_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_socks_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::socks5_stream::socks5_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socks5_stream(socks5_stream&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: libtorrent::socks5_stream::socks5_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socks5_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: libtorrent::socks5_stream::set_version
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_version(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::socks5_stream::set_command
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void set_command(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' user'
    - ' password'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: libtorrent::socks5_stream::set_username
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_username(std::string const& user\n\t\t, std::string const&
      password)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:133,1
    - Dst: libtorrent::aux::is_ip_address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:133,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:135,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' host'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: libtorrent::socks5_stream::set_dst_name
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - resize
    - size
    - libtorrent::aux::is_ip_address
    linkageType: ''
    returnType: void
    signature: void set_dst_name(std::string const& host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:141,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: libtorrent::socks5_stream::close
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - clear
    linkageType: ''
    returnType: void
    signature: void close(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:148,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: libtorrent::socks5_stream::close
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - clear
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:159,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:159,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:159,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:160,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:173,1
    - Dst: async_resolve
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:174,1
    - Dst: to_string
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:174,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:174,1
    - Dst: libtorrent::socks5_stream::name_lookup
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' endpoint'
    - handler
    argTypes:
    - endpoint_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 178
    functionName: libtorrent::socks5_stream::async_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - to_string
    - std::move
    - async_resolve
    - empty
    - libtorrent::socks5_stream::name_lookup
    - TORRENT_ASSERT
    - wrap_allocator
    - address
    linkageType: ''
    returnType: void
    signature: void async_connect(endpoint_type const& endpoint, Handler handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:186,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:187,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:187,1
    - Dst: tcp::resolver::results_type::begin
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:189,1
    - Dst: is_open
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:190,1
    - Dst: open
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:193,1
    - Dst: auto::endpoint
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:193,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:194,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:194,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:199,1
    - Dst: libtorrent::socks5_stream::async_connect
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:200,1
    - Dst: auto::endpoint
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:200,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:200,1
    - Dst: libtorrent::socks5_stream::connected
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:202,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:202,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' e'
    - ips
    - h
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: libtorrent::socks5_stream::name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - auto::endpoint
    - is_open
    - std::move
    - handle_error
    - open
    - libtorrent::socks5_stream::connected
    - wrap_allocator
    - tcp::resolver::results_type::begin
    - libtorrent::socks5_stream::async_connect
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: "void name_lookup(error_code const& e, tcp::resolver::results_type
      ips\n\t\t, Handler h)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:208,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:209,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:209,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:215,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:215,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:217,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:218,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:220,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:221,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:225,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:226,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:227,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:229,1
    - Dst: async_write
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:230,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:230,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:230,1
    - Dst: libtorrent::socks5_stream::handshake1
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:232,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:232,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:233,1
    - Dst: libtorrent::socks5_stream::socks_connect
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:241,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 243
    functionName: libtorrent::socks5_stream::connected
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - async_write
    - std::move
    - handle_error
    - libtorrent::socks5_stream::handshake1
    - error_code
    - empty
    - both_sides_from_store_buffer
    - resize
    - wrap_allocator
    - write_uint8
    - libtorrent::socks5_stream::socks_connect
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void connected(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:248,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:249,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:251,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:252,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:253,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:253,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:253,1
    - Dst: libtorrent::socks5_stream::handshake2
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:255,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:255,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 257
    functionName: libtorrent::socks5_stream::handshake1
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::move
    - handle_error
    - async_read
    - resize
    - both_sides_from_store_buffer
    - wrap_allocator
    - libtorrent::socks5_stream::handshake2
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void handshake1(error_code const& e, Handler h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:262,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:263,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:263,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:268,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:269,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:273,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:273,1
    - Dst: libtorrent::socks5_stream::socks_connect
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:279,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:279,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:283,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:285,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:285,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:290,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:290,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:290,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:293,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:293,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:294,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:294,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:295,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:296,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:296,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:297,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:297,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:298,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:300,1
    - Dst: async_write
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:301,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:301,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:301,1
    - Dst: libtorrent::socks5_stream::handshake3
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:303,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:303,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:308,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 311
    functionName: libtorrent::socks5_stream::handshake2
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::socks5_stream::handshake3
    - async_write
    - std::move
    - handle_error
    - error_code
    - empty
    - TORRENT_ASSERT
    - write_string
    - resize
    - both_sides_from_store_buffer
    - write_uint8
    - wrap_allocator
    - read_uint8
    - libtorrent::socks5_stream::socks_connect
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void handshake2(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:316,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:317,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:317,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:319,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:320,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:321,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:321,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:321,1
    - Dst: libtorrent::socks5_stream::handshake4
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:323,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:323,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: libtorrent::socks5_stream::handshake3
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::move
    - handle_error
    - async_read
    - resize
    - both_sides_from_store_buffer
    - wrap_allocator
    - libtorrent::socks5_stream::handshake4
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void handshake3(error_code const& e, Handler h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:330,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:331,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:331,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:336,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:341,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:341,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:347,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:347,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:351,1
    - Dst: libtorrent::socks5_stream::socks_connect
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:352,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 353
    functionName: libtorrent::socks5_stream::handshake4
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - std::move
    - handle_error
    - error_code
    - std::vector<char>
    - read_uint8
    - libtorrent::socks5_stream::socks_connect
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void handshake4(error_code const& e, Handler h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:363,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:363,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:364,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:365,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:367,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:368,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:368,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:369,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:370,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:373,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:373,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:374,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:374,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:375,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:375,1
    - Dst: end
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:375,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:376,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:381,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:381,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:381,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:383,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:383,1
    - Dst: write_address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:384,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:384,1
    - Dst: write_uint16
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:386,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:386,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:393,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:393,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:396,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:396,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:398,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:399,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:399,1
    - Dst: write_uint16
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:400,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:400,1
    - Dst: write_uint32
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:401,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:401,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:402,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:402,1
    - Dst: end
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:402,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:403,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:404,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:408,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:408,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:412,1
    - Dst: async_write
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:413,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:413,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:413,1
    - Dst: libtorrent::socks5_stream::connect1
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 417
    functionName: libtorrent::socks5_stream::socks_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 3
    functionsReached:
    - write_uint16
    - std::move
    - begin
    - empty
    - libtorrent::socks5_stream::connect1
    - wrap_allocator
    - ADD_OUTSTANDING_ASYNC
    - std::uint8_t
    - end
    - std::copy
    - address
    - write_address
    - libtorrent::aux::is_v4
    - TORRENT_ASSERT
    - write_uint32
    - port
    - write_uint8
    - size
    - async_write
    - error_code
    - both_sides_from_store_buffer
    - resize
    linkageType: ''
    returnType: void
    signature: void socks_connect(Handler h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:422,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:423,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:423,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:426,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:428,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:430,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:431,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:431,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:431,1
    - Dst: libtorrent::socks5_stream::connect2
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:433,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:433,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 435
    functionName: libtorrent::socks5_stream::connect1
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::move
    - handle_error
    - libtorrent::socks5_stream::connect2
    - async_read
    - resize
    - both_sides_from_store_buffer
    - wrap_allocator
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void connect1(error_code const& e, Handler h)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:440,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:441,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:446,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:447,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:453,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:453,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:469,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:473,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:478,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:479,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:491,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:495,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:495,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:498,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:498,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:500,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:501,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:502,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:502,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:502,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:503,1
    - Dst: libtorrent::socks5_stream::connect3
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:504,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:504,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:505,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:511,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:511,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:519,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:530,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 532
    functionName: libtorrent::socks5_stream::connect2
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::socks5_stream::connect3
    - std::move
    - handle_error
    - error_code
    - TORRENT_ASSERT
    - async_read
    - resize
    - both_sides_from_store_buffer
    - wrap_allocator
    - std::vector<char>
    - read_uint8
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void connect2(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:537,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:540,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:540,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:542,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 544
    functionName: libtorrent::socks5_stream::connect3
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - std::vector<char>
    - COMPLETE_ASYNC
    - std::move
    - handle_error
    linkageType: ''
    returnType: void
    signature: void connect3(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::socks_category
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: libtorrent::get_socks_category
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::socks_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_socks_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::socks5_stream::socks5_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socks5_stream(socks5_stream&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' io_context'
    argTypes:
    - io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: libtorrent::socks5_stream::socks5_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socks5_stream(io_context& io_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: libtorrent::socks5_stream::set_version
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_version(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::socks5_stream::set_command
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void set_command(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' user'
    - ' password'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: libtorrent::socks5_stream::set_username
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_username(std::string const& user\n\t\t, std::string const&
      password)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:133,1
    - Dst: libtorrent::aux::is_ip_address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:133,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:135,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' host'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: libtorrent::socks5_stream::set_dst_name
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - resize
    - size
    - libtorrent::aux::is_ip_address
    linkageType: ''
    returnType: void
    signature: void set_dst_name(std::string const& host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:141,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: libtorrent::socks5_stream::close
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - clear
    linkageType: ''
    returnType: void
    signature: void close(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:148,1
    - Dst: peer_conn::close
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: libtorrent::socks5_stream::close
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 0
    functionsReached:
    - peer_conn::close
    - clear
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:159,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:159,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:159,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:160,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:173,1
    - Dst: async_resolve
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:174,1
    - Dst: to_string
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:174,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:174,1
    - Dst: libtorrent::socks5_stream::name_lookup
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' endpoint'
    - handler
    argTypes:
    - endpoint_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 178
    functionName: libtorrent::socks5_stream::async_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 1
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - to_string
    - std::move
    - async_resolve
    - empty
    - libtorrent::socks5_stream::name_lookup
    - TORRENT_ASSERT
    - wrap_allocator
    - address
    linkageType: ''
    returnType: void
    signature: void async_connect(endpoint_type const& endpoint, Handler handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:186,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:187,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:187,1
    - Dst: tcp::resolver::results_type::begin
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:189,1
    - Dst: is_open
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:190,1
    - Dst: open
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:193,1
    - Dst: auto::endpoint
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:193,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:194,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:194,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:199,1
    - Dst: libtorrent::socks5_stream::async_connect
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:200,1
    - Dst: auto::endpoint
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:200,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:200,1
    - Dst: libtorrent::socks5_stream::connected
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:202,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:202,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' e'
    - ips
    - h
    argTypes:
    - error_code
    - tcp::resolver::results_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: libtorrent::socks5_stream::name_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - auto::endpoint
    - is_open
    - std::move
    - handle_error
    - open
    - libtorrent::socks5_stream::connected
    - wrap_allocator
    - tcp::resolver::results_type::begin
    - libtorrent::socks5_stream::async_connect
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: "void name_lookup(error_code const& e, tcp::resolver::results_type
      ips\n\t\t, Handler h)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:208,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:209,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:209,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:215,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:215,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:217,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:218,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:220,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:221,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:225,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:226,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:227,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:229,1
    - Dst: async_write
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:230,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:230,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:230,1
    - Dst: libtorrent::socks5_stream::handshake1
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:232,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:232,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:233,1
    - Dst: libtorrent::socks5_stream::socks_connect
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:237,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:241,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 243
    functionName: libtorrent::socks5_stream::connected
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - async_write
    - std::move
    - handle_error
    - libtorrent::socks5_stream::handshake1
    - error_code
    - empty
    - both_sides_from_store_buffer
    - resize
    - wrap_allocator
    - write_uint8
    - libtorrent::socks5_stream::socks_connect
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void connected(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:248,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:249,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:249,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:251,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:252,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:253,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:253,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:253,1
    - Dst: libtorrent::socks5_stream::handshake2
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:255,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:255,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 257
    functionName: libtorrent::socks5_stream::handshake1
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::move
    - handle_error
    - async_read
    - resize
    - both_sides_from_store_buffer
    - wrap_allocator
    - libtorrent::socks5_stream::handshake2
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void handshake1(error_code const& e, Handler h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:262,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:263,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:263,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:268,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:269,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:273,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:273,1
    - Dst: libtorrent::socks5_stream::socks_connect
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:279,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:279,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:283,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:285,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:285,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:290,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:290,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:290,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:292,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:293,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:293,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:294,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:294,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:295,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:296,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:296,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:297,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:297,1
    - Dst: write_string
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:298,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:300,1
    - Dst: async_write
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:301,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:301,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:301,1
    - Dst: libtorrent::socks5_stream::handshake3
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:303,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:303,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:304,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:308,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 311
    functionName: libtorrent::socks5_stream::handshake2
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::socks5_stream::handshake3
    - async_write
    - std::move
    - handle_error
    - error_code
    - empty
    - TORRENT_ASSERT
    - write_string
    - resize
    - both_sides_from_store_buffer
    - write_uint8
    - wrap_allocator
    - read_uint8
    - libtorrent::socks5_stream::socks_connect
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void handshake2(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:316,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:317,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:317,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:319,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:320,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:321,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:321,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:321,1
    - Dst: libtorrent::socks5_stream::handshake4
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:323,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:323,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: libtorrent::socks5_stream::handshake3
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::move
    - handle_error
    - async_read
    - resize
    - both_sides_from_store_buffer
    - wrap_allocator
    - libtorrent::socks5_stream::handshake4
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void handshake3(error_code const& e, Handler h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:330,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:331,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:331,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:336,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:337,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:341,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:341,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:347,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:347,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:351,1
    - Dst: libtorrent::socks5_stream::socks_connect
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:352,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 353
    functionName: libtorrent::socks5_stream::handshake4
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - std::move
    - handle_error
    - error_code
    - std::vector<char>
    - read_uint8
    - libtorrent::socks5_stream::socks_connect
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void handshake4(error_code const& e, Handler h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:363,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:363,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:364,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:365,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:367,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:368,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:368,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:369,1
    - Dst: empty
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:370,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:372,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:373,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:373,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:374,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:374,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:375,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:375,1
    - Dst: end
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:375,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:376,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:381,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:381,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:381,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:383,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:383,1
    - Dst: write_address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:384,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:384,1
    - Dst: write_uint16
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:386,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:386,1
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:391,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:393,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:393,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:396,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:396,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:398,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:399,1
    - Dst: std::uint8_t
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:399,1
    - Dst: write_uint16
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:400,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:400,1
    - Dst: write_uint32
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:401,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:401,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:402,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:402,1
    - Dst: end
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:402,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:403,1
    - Dst: write_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:404,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:408,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:408,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:412,1
    - Dst: async_write
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:413,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:413,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:413,1
    - Dst: libtorrent::socks5_stream::connect1
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:415,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - h
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 417
    functionName: libtorrent::socks5_stream::socks_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 6
    functionsReached:
    - write_uint16
    - std::move
    - begin
    - empty
    - libtorrent::socks5_stream::connect1
    - wrap_allocator
    - ADD_OUTSTANDING_ASYNC
    - std::uint8_t
    - end
    - std::copy
    - address
    - write_address
    - libtorrent::aux::is_v4
    - TORRENT_ASSERT
    - write_uint32
    - port
    - write_uint8
    - size
    - async_write
    - error_code
    - both_sides_from_store_buffer
    - resize
    linkageType: ''
    returnType: void
    signature: void socks_connect(Handler h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:422,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:423,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:423,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:426,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:428,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:430,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:431,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:431,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:431,1
    - Dst: libtorrent::socks5_stream::connect2
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:433,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:433,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 435
    functionName: libtorrent::socks5_stream::connect1
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - std::move
    - handle_error
    - libtorrent::socks5_stream::connect2
    - async_read
    - resize
    - both_sides_from_store_buffer
    - wrap_allocator
    - COMPLETE_ASYNC
    linkageType: ''
    returnType: void
    signature: void connect1(error_code const& e, Handler h)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:440,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:441,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:441,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:446,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:447,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:453,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:453,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:469,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:473,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:478,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:479,1
    - Dst: read_uint8
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:491,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:495,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:495,1
    - Dst: resize
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:498,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:498,1
    - Dst: ADD_OUTSTANDING_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:500,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:501,1
    - Dst: async_read
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:502,1
    - Dst: both_sides_from_store_buffer
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:502,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:502,1
    - Dst: wrap_allocator
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:503,1
    - Dst: libtorrent::socks5_stream::connect3
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:504,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:504,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:505,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:511,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:511,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:518,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:519,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:530,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 532
    functionName: libtorrent::socks5_stream::connect2
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - ADD_OUTSTANDING_ASYNC
    - libtorrent::socks5_stream::connect3
    - std::move
    - handle_error
    - error_code
    - TORRENT_ASSERT
    - async_read
    - resize
    - both_sides_from_store_buffer
    - wrap_allocator
    - std::vector<char>
    - read_uint8
    - COMPLETE_ASYNC
    - size
    linkageType: ''
    returnType: void
    signature: void connect2(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPLETE_ASYNC
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:537,1
    - Dst: handle_error
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:540,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:540,1
    - Dst: std::vector<char>
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:542,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/socks5_stream.hpp:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 544
    functionName: libtorrent::socks5_stream::connect3
    functionSourceFile: /src/libtorrent/include/libtorrent/socks5_stream.hpp
    functionUses: 2
    functionsReached:
    - std::vector<char>
    - COMPLETE_ASYNC
    - std::move
    - handle_error
    linkageType: ''
    returnType: void
    signature: void connect3(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/lsd.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::self
    functionSourceFile: /src/libtorrent/include/libtorrent/lsd.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<lsd>
    signature: std::shared_ptr<lsd> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::shared_from_this
      Src: /src/libtorrent/include/libtorrent/lsd.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::self
    functionSourceFile: /src/libtorrent/include/libtorrent/lsd.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<lsd>
    signature: std::shared_ptr<lsd> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: TORRENT_ASSERT_PRECOND_MSG
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_PRECOND_MSG(x, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: TORRENT_ASSERT_PRECOND
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 111
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_PRECOND(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: TORRENT_ASSERT
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 2365
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: TORRENT_ASSERT_VAL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_VAL(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: TORRENT_ASSERT_FAIL_VAL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_FAIL_VAL(y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: TORRENT_ASSERT_VAL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_VAL(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: TORRENT_ASSERT_FAIL_VAL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_FAIL_VAL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: TORRENT_ASSERT_FAIL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 78
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_FAIL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: TORRENT_ASSERT_PRECOND_MSG
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_PRECOND_MSG(x, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: TORRENT_ASSERT_PRECOND
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 111
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_PRECOND(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: TORRENT_ASSERT
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 2365
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: TORRENT_ASSERT_VAL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_VAL(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: TORRENT_ASSERT_FAIL_VAL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_FAIL_VAL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: TORRENT_ASSERT_FAIL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 78
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_FAIL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: TORRENT_ASSERT_PRECOND_MSG
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_PRECOND_MSG(a, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: TORRENT_ASSERT_PRECOND
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 111
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_PRECOND(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: TORRENT_ASSERT
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 2365
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: TORRENT_ASSERT_VAL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_VAL(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: TORRENT_ASSERT_FAIL_VAL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_FAIL_VAL(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: TORRENT_ASSERT_FAIL
    functionSourceFile: /src/libtorrent/include/libtorrent/assert.hpp
    functionUses: 78
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_ASSERT_FAIL()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: static_cast<Type>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: libtorrent::settings_interface
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 123
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - libtorrent::settings_interface
    - static_cast<Type>
    - libtorrent::set_int
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT settings_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: static_cast<Type>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - flags::bitfield_flag<Type, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: libtorrent::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 6
    functionsReached:
    - static_cast<int>
    - static_cast<Type>
    - libtorrent::set_int
    linkageType: ''
    returnType: void
    signature: void set_int(int name, flags::bitfield_flag<Type, Tag> const val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_interface(settings_interface const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_interface(settings_interface&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: static_cast<Type>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:195,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:196,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 2274
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - static_cast<Type>
    - f
    - libtorrent::set_int
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT settings_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::settings_pack
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_pack()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::settings_pack
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_pack(settings_pack const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: libtorrent::settings_pack
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_pack(settings_pack&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: static_cast<Type>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - flags::bitfield_flag<Type, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: libtorrent::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 8
    functionsReached:
    - static_cast<int>
    - static_cast<Type>
    - libtorrent::set_int
    linkageType: ''
    returnType: void
    signature: void set_int(int name, flags::bitfield_flag<Type, Tag> const val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:195,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:196,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: libtorrent::for_each
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 2
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void for_each(Fun&& f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: static_cast<Type>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: libtorrent::settings_interface
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 123
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - libtorrent::settings_interface
    - static_cast<Type>
    - libtorrent::set_int
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT settings_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    - Dst: static_cast<Type>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - flags::bitfield_flag<Type, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: libtorrent::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 10
    functionsReached:
    - static_cast<int>
    - static_cast<Type>
    - libtorrent::set_int
    linkageType: ''
    returnType: void
    signature: void set_int(int name, flags::bitfield_flag<Type, Tag> const val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_interface(settings_interface const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_interface(settings_interface&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: static_cast<Type>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:195,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:196,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 2274
    functionName: libtorrent::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - static_cast<Type>
    - f
    - libtorrent::set_int
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT settings_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: libtorrent::settings_pack
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_pack()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: libtorrent::settings_pack
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_pack(settings_pack const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: libtorrent::settings_pack
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void settings_pack(settings_pack&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_int
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    - Dst: static_cast<Type>
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - int
    - flags::bitfield_flag<Type, Tag>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: libtorrent::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 12
    functionsReached:
    - static_cast<int>
    - static_cast<Type>
    - libtorrent::set_int
    linkageType: ''
    returnType: void
    signature: void set_int(int name, flags::bitfield_flag<Type, Tag> const val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:195,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:196,1
    - Dst: f
      Src: /src/libtorrent/include/libtorrent/settings_pack.hpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - Fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: libtorrent::for_each
    functionSourceFile: /src/libtorrent/include/libtorrent/settings_pack.hpp
    functionUses: 2
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void for_each(Fun&& f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_set.hpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: libtorrent::peer_class_set
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_set.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_class_set
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::peer_class_set
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_set.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_class_set()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: libtorrent::num_classes
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_set.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_classes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_set.hpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: libtorrent::class_at
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_set.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: peer_class_t
    signature: peer_class_t class_at(int i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_set.hpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: libtorrent::peer_class_set
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_set.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_class_set
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::peer_class_set
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_set.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_class_set()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: libtorrent::num_classes
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_set.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_classes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/peer_class_set.hpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: libtorrent::class_at
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_class_set.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: peer_class_t
    signature: peer_class_t class_at(int i) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:52,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:60,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:71,1
    - Dst: static_cast<T*>
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:72,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:77,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 100
    functionName: libtorrent::client_data_t
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T*>
    - libtorrent::type
    - static_cast<T>
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT client_data_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: libtorrent::client_data_t
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void client_data_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: libtorrent::client_data_t
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    linkageType: ''
    returnType: void
    signature: void client_data_t(T* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: '& operator=(T* v)'
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    linkageType: ''
    returnType: client_data_t
    signature: client_data_t & operator=(T* v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:71,1
    - Dst: static_cast<T*>
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: libtorrent::get
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 35
    functionsReached:
    - static_cast<T*>
    - libtorrent::type
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:77,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: operator T() const
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void operator T() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: "private:\n\ttemplate <typename T>"
    signature: "private:\n\ttemplate <typename T> * type() const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:52,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:60,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:71,1
    - Dst: static_cast<T*>
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:72,1
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:77,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 100
    functionName: libtorrent::client_data_t
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T*>
    - libtorrent::type
    - static_cast<T>
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT client_data_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: libtorrent::client_data_t
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void client_data_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: libtorrent::client_data_t
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::type
    linkageType: ''
    returnType: void
    signature: void client_data_t(T* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: '& operator=(T* v)'
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: client_data_t
    signature: client_data_t & operator=(T* v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:71,1
    - Dst: static_cast<T*>
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: libtorrent::get
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 35
    functionsReached:
    - static_cast<T*>
    - libtorrent::type
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:77,1
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/client_data.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: operator T() const
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - type
    linkageType: ''
    returnType: void
    signature: void operator T() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/client_data.hpp
    functionUses: 57
    functionsReached: []
    linkageType: ''
    returnType: "private:\n\ttemplate <typename T>"
    signature: "private:\n\ttemplate <typename T> * type() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/include/libtorrent/hex.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - len
    - out
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: libtorrent::to_hex
    functionSourceFile: /src/libtorrent/include/libtorrent/hex.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED to_hex(char const* in, int len, char* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/include/libtorrent/hex.hpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: std::string to_hex(std::string const& s)
    functionSourceFile: /src/libtorrent/include/libtorrent/hex.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED std::string to_hex(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/include/libtorrent/hex.hpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - len
    - out
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: libtorrent::from_hex
    functionSourceFile: /src/libtorrent/include/libtorrent/hex.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::from_hex
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED from_hex(char const *in, int len, char* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/include/libtorrent/hex.hpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - len
    - out
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: libtorrent::to_hex
    functionSourceFile: /src/libtorrent/include/libtorrent/hex.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED to_hex(char const* in, int len, char* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::to_hex
      Src: /src/libtorrent/include/libtorrent/hex.hpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: std::string to_hex(std::string const& s)
    functionSourceFile: /src/libtorrent/include/libtorrent/hex.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::to_hex
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED std::string to_hex(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::from_hex
      Src: /src/libtorrent/include/libtorrent/hex.hpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - len
    - out
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: libtorrent::from_hex
    functionSourceFile: /src/libtorrent/include/libtorrent/hex.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::from_hex
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED from_hex(char const *in, int len, char* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:56,1
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:100,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:114,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:114,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:116,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:116,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:118,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:122,1
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 134
    functionName: libtorrent::peer_connection_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::lt
    - TORRENT_FORMAT
    - lock
    - libtorrent::move
    - owner_before
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_connection_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - impl
    argTypes:
    - std::weak_ptr<peer_connection>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: libtorrent::peer_connection_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle(std::weak_ptr<peer_connection> impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:114,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: operator==(peer_connection_handle const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::lt
    linkageType: ''
    returnType: bool
    signature: bool operator==(peer_connection_handle const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:116,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: operator!=(peer_connection_handle const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::lt
    linkageType: ''
    returnType: bool
    signature: bool operator!=(peer_connection_handle const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: operator<(peer_connection_handle const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::lt
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_connection_handle const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: libtorrent::native_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 6
    functionsReached:
    - lock
    linkageType: ''
    returnType: std::shared_ptr<peer_connection>
    signature: std::shared_ptr<peer_connection> native_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - std::weak_ptr<peer_connection>
    - std::weak_ptr<peer_connection>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: libtorrent::lt
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 4
    functionsReached:
    - owner_before
    linkageType: ''
    returnType: bool
    signature: "bool lt(std::weak_ptr<peer_connection> const& a\n\t\t, std::weak_ptr<peer_connection>
      const& b) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::bt_peer_connection_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT bt_peer_connection_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pc
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: libtorrent::bt_peer_connection_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection_handle(peer_connection_handle pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:56,1
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:100,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:114,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:114,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:116,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:116,1
    - Dst: libtorrent::lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:118,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:122,1
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 134
    functionName: libtorrent::peer_connection_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::lt
    - TORRENT_FORMAT
    - lock
    - libtorrent::move
    - owner_before
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_connection_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - impl
    argTypes:
    - std::weak_ptr<peer_connection>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: libtorrent::peer_connection_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void peer_connection_handle(std::weak_ptr<peer_connection> impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:114,1
    - Dst: lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: operator==(peer_connection_handle const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - lt
    linkageType: ''
    returnType: bool
    signature: bool operator==(peer_connection_handle const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:116,1
    - Dst: lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: operator!=(peer_connection_handle const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - lt
    linkageType: ''
    returnType: bool
    signature: bool operator!=(peer_connection_handle const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: operator<(peer_connection_handle const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - lt
    linkageType: ''
    returnType: bool
    signature: bool operator<(peer_connection_handle const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: libtorrent::native_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 6
    functionsReached:
    - lock
    linkageType: ''
    returnType: std::shared_ptr<peer_connection>
    signature: std::shared_ptr<peer_connection> native_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - std::weak_ptr<peer_connection>
    - std::weak_ptr<peer_connection>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: libtorrent::lt
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 5
    functionsReached:
    - owner_before
    linkageType: ''
    returnType: bool
    signature: "bool lt(std::weak_ptr<peer_connection> const& a\n\t\t, std::weak_ptr<peer_connection>
      const& b) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: libtorrent::bt_peer_connection_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT bt_peer_connection_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pc
    argTypes:
    - peer_connection_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: libtorrent::bt_peer_connection_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_connection_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void bt_peer_connection_handle(peer_connection_handle pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::gzip_category
      Src: /src/libtorrent/include/libtorrent/gzip.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: libtorrent::get_gzip_category
    functionSourceFile: /src/libtorrent/include/libtorrent/gzip.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::gzip_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_gzip_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::gzip_category
      Src: /src/libtorrent/include/libtorrent/gzip.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: libtorrent::get_gzip_category
    functionSourceFile: /src/libtorrent/include/libtorrent/gzip.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::gzip_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_gzip_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_info
      Src: /src/libtorrent/include/libtorrent/peer_info.hpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 454
    functionName: libtorrent::peer_info
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_info.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::peer_info
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_2
    signature: TORRENT_VERSION_NAMESPACE_2 peer_info
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 476
    functionName: libtorrent::peer_list_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_info.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_list_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::peer_info
      Src: /src/libtorrent/include/libtorrent/peer_info.hpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 454
    functionName: libtorrent::peer_info
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_info.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::peer_info
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_2
    signature: TORRENT_VERSION_NAMESPACE_2 peer_info
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 476
    functionName: libtorrent::peer_list_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/peer_info.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT peer_list_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 147
    functionName: libtorrent::block_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_info
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 209
    functionName: libtorrent::partial_piece_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT partial_piece_info
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: libtorrent::partial_piece_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void partial_piece_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: libtorrent::partial_piece_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void partial_piece_info(partial_piece_info&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: libtorrent::partial_piece_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void partial_piece_info(partial_piece_info const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:386,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:387,1
    - Dst: libtorrent::set_metadata
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:582,1
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1369,1
    - Dst: m_torrent::owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1369,1
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1371,1
    - Dst: m_torrent::owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1371,1
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1373,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1379,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1379,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1382,1
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1420,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 1423
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::set_metadata
    - m_torrent::owner_before
    - expired
    - std::uint32_t
    - reinterpret_cast<uintptr_t>
    - lock
    - peer_conn::write_have_all
    - owner_before
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle(torrent_handle const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle(torrent_handle&& t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_metadata
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - metadata
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 582
    functionName: libtorrent::set_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::set_metadata
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED set_metadata(char const* metadata, int size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1369,1
    - Dst: m_torrent::owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1369
    functionName: operator==(const torrent_handle& h) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - m_torrent::owner_before
    - owner_before
    linkageType: ''
    returnType: bool
    signature: bool operator==(const torrent_handle& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1371,1
    - Dst: m_torrent::owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1371
    functionName: operator!=(const torrent_handle& h) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - m_torrent::owner_before
    - owner_before
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const torrent_handle& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1373
    functionName: operator<(const torrent_handle& h) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - owner_before
    linkageType: ''
    returnType: bool
    signature: bool operator<(const torrent_handle& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1379,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1379,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1383
    functionName: libtorrent::id
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - std::uint32_t
    - lock
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t id() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - std::weak_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1420
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached:
    - expired
    linkageType: ''
    returnType: void
    signature: void torrent_handle(std::weak_ptr<torrent> const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 147
    functionName: libtorrent::block_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_info
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 209
    functionName: libtorrent::partial_piece_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT partial_piece_info
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: libtorrent::partial_piece_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void partial_piece_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: libtorrent::partial_piece_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void partial_piece_info(partial_piece_info&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: libtorrent::partial_piece_info
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void partial_piece_info(partial_piece_info const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:386,1
    - Dst: peer_conn::write_have_all
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:387,1
    - Dst: libtorrent::set_metadata
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:582,1
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1369,1
    - Dst: m_torrent::owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1369,1
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1371,1
    - Dst: m_torrent::owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1371,1
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1373,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1379,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1379,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1382,1
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1420,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 1423
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::set_metadata
    - m_torrent::owner_before
    - expired
    - std::uint32_t
    - reinterpret_cast<uintptr_t>
    - lock
    - peer_conn::write_have_all
    - owner_before
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_handle
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle(torrent_handle const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void torrent_handle(torrent_handle&& t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_metadata
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - metadata
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 582
    functionName: libtorrent::set_metadata
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::set_metadata
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED set_metadata(char const* metadata, int size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1369,1
    - Dst: m_torrent::owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1369
    functionName: operator==(const torrent_handle& h) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - m_torrent::owner_before
    - owner_before
    linkageType: ''
    returnType: bool
    signature: bool operator==(const torrent_handle& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1371,1
    - Dst: m_torrent::owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1371
    functionName: operator!=(const torrent_handle& h) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - m_torrent::owner_before
    - owner_before
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const torrent_handle& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: owner_before
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1373
    functionName: operator<(const torrent_handle& h) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - owner_before
    linkageType: ''
    returnType: bool
    signature: bool operator<(const torrent_handle& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1379,1
    - Dst: lock
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1379,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1383
    functionName: libtorrent::id
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - std::uint32_t
    - lock
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t id() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expired
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - std::weak_ptr<torrent>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1420
    functionName: libtorrent::torrent_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 4
    functionsReached:
    - expired
    linkageType: ''
    returnType: void
    signature: void torrent_handle(std::weak_ptr<torrent> const& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::hash_value
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - libtorrent::torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1433
    functionName: operator()(libtorrent::torrent_handle const& th) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::hash_value
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(libtorrent::torrent_handle const& th) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::hash_value
      Src: /src/libtorrent/include/libtorrent/torrent_handle.hpp:1432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' th'
    argTypes:
    - libtorrent::torrent_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1433
    functionName: operator()(libtorrent::torrent_handle const& th) const
    functionSourceFile: /src/libtorrent/include/libtorrent/torrent_handle.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::hash_value
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(libtorrent::torrent_handle const& th) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_t
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:85,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:85,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - status_t
    - status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: operator|(status_t lhs, status_t rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached:
    - status_t
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: status_t
    signature: status_t operator|(status_t lhs, status_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_t
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:89,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:89,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - status_t
    - status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: operator&(status_t lhs, status_t rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached:
    - status_t
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: status_t
    signature: status_t operator&(status_t lhs, status_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_t
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:93,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: operator~(status_t lhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached:
    - status_t
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: status_t
    signature: status_t operator~(status_t lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: libtorrent::storage_params
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_params
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' f'
    - mf
    - ' sp'
    - sm
    - ' prio'
    - ' ih'
    argTypes:
    - file_storage
    - file_storage*
    - std::string
    - storage_mode_t
    - aux::vector<download_priority_t, file_index_t>
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: libtorrent::storage_params
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void storage_params(file_storage const& f, file_storage const* mf\n\t\t\t,
      std::string const& sp, storage_mode_t const sm\n\t\t\t, aux::vector<download_priority_t,
      file_index_t> const& prio\n\t\t\t, sha1_hash const& ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_t
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:85,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:85,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - status_t
    - status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: operator|(status_t lhs, status_t rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached:
    - status_t
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: status_t
    signature: status_t operator|(status_t lhs, status_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_t
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:89,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:89,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - status_t
    - status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: operator&(status_t lhs, status_t rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached:
    - status_t
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: status_t
    signature: status_t operator&(status_t lhs, status_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_t
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:93,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/storage_defs.hpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: operator~(status_t lhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached:
    - status_t
    - static_cast<std::uint8_t>
    linkageType: ''
    returnType: status_t
    signature: status_t operator~(status_t lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: libtorrent::storage_params
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_params
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - ' f'
    - mf
    - ' sp'
    - sm
    - ' prio'
    - ' ih'
    argTypes:
    - file_storage
    - file_storage*
    - std::string
    - storage_mode_t
    - aux::vector<download_priority_t, file_index_t>
    - sha1_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: libtorrent::storage_params
    functionSourceFile: /src/libtorrent/include/libtorrent/storage_defs.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void storage_params(file_storage const& f, file_storage const* mf\n\t\t\t,
      std::string const& sp, storage_mode_t const sm\n\t\t\t, aux::vector<download_priority_t,
      file_index_t> const& prio\n\t\t\t, sha1_hash const& ih)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 92
    functionName: libtorrent::resolve_links
    functionSourceFile: /src/libtorrent/include/libtorrent/resolve_links.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT resolve_links
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: libtorrent::link_t
    functionSourceFile: /src/libtorrent/include/libtorrent/resolve_links.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT link_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: libtorrent::get_links
    functionSourceFile: /src/libtorrent/include/libtorrent/resolve_links.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::vector<link_t, file_index_t>
    signature: aux::vector<link_t, file_index_t> & get_links() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 92
    functionName: libtorrent::resolve_links
    functionSourceFile: /src/libtorrent/include/libtorrent/resolve_links.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT resolve_links
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: libtorrent::link_t
    functionSourceFile: /src/libtorrent/include/libtorrent/resolve_links.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT link_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: libtorrent::get_links
    functionSourceFile: /src/libtorrent/include/libtorrent/resolve_links.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::vector<link_t, file_index_t>
    signature: aux::vector<link_t, file_index_t> & get_links() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::set_block_hash_result
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_block_hash_result(result s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - st
    - first_block
    - num
    argTypes:
    - result
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::set_block_hash_result
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_block_hash_result(result st, int first_block, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: delta
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:75,1
    - Dst: delta
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - piece
    - blocks_per_piece
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::piece_range
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached:
    - delta
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: "index_range<piece_index_t> piece_range(\n\t\t\tpiece_index_t const
      piece\n\t\t\t, int const blocks_per_piece) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_block_hash_result
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first_block
    - num
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::success
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::set_block_hash_result
    linkageType: ''
    returnType: set_block_hash_result
    signature: set_block_hash_result success(int first_block, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_block_hash_result
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::unknown
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::set_block_hash_result
    linkageType: ''
    returnType: set_block_hash_result
    signature: set_block_hash_result unknown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_block_hash_result
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::block_hash_failed
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::set_block_hash_result
    linkageType: ''
    returnType: set_block_hash_result
    signature: set_block_hash_result block_hash_failed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_block_hash_result
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first_block
    - num
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: libtorrent::piece_hash_failed
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::set_block_hash_result
    linkageType: ''
    returnType: set_block_hash_result
    signature: set_block_hash_result piece_hash_failed(int first_block, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::add_hashes_result
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_hashes_result(bool const v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f
    - n
    argTypes:
    - file_index_t
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: libtorrent::node_index
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_index(file_index_t f, std::int32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - node_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator==(node_index const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(node_index const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 138
    functionName: libtorrent::hash_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT hash_request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::hash_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hash_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - f
    - b
    - i
    - c
    - p
    argTypes:
    - file_index_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: libtorrent::hash_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hash_request(file_index_t const f, int const b, int const i, int
      const c, int const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::hash_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hash_request(hash_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - hash_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: operator==(hash_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(hash_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::hash_picker
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:149,1
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:176,1
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 243
    functionName: libtorrent::hash_picker
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::hash_picker
    - libtorrent::min_time
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT hash_picker
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::piece_layer
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int piece_layer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f
    - b
    argTypes:
    - file_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: libtorrent::priority_block_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void priority_block_request(file_index_t const f, int const b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - priority_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: operator==(priority_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(priority_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - priority_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: operator!=(priority_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(priority_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - priority_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: operator<(priority_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(priority_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - file_index_t
    - piece_index_t::diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: libtorrent::piece_block_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_block_request(file_index_t const f, piece_index_t::diff_type
      const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - piece_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: operator==(piece_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - piece_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: operator!=(piece_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(piece_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - piece_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: operator<(piece_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(piece_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::set_block_hash_result
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_block_hash_result(result s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - st
    - first_block
    - num
    argTypes:
    - result
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::set_block_hash_result
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_block_hash_result(result st, int first_block, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: delta
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:75,1
    - Dst: delta
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - piece
    - blocks_per_piece
    argTypes:
    - piece_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libtorrent::piece_range
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached:
    - delta
    linkageType: ''
    returnType: index_range<piece_index_t>
    signature: "index_range<piece_index_t> piece_range(\n\t\t\tpiece_index_t const
      piece\n\t\t\t, int const blocks_per_piece) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_block_hash_result
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first_block
    - num
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::success
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::set_block_hash_result
    linkageType: ''
    returnType: set_block_hash_result
    signature: set_block_hash_result success(int first_block, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_block_hash_result
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::unknown
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::set_block_hash_result
    linkageType: ''
    returnType: set_block_hash_result
    signature: set_block_hash_result unknown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_block_hash_result
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::block_hash_failed
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::set_block_hash_result
    linkageType: ''
    returnType: set_block_hash_result
    signature: set_block_hash_result block_hash_failed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_block_hash_result
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first_block
    - num
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: libtorrent::piece_hash_failed
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::set_block_hash_result
    linkageType: ''
    returnType: set_block_hash_result
    signature: set_block_hash_result piece_hash_failed(int first_block, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::add_hashes_result
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_hashes_result(bool const v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f
    - n
    argTypes:
    - file_index_t
    - std::int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: libtorrent::node_index
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_index(file_index_t f, std::int32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - node_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator==(node_index const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(node_index const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 138
    functionName: libtorrent::hash_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT hash_request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::hash_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hash_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - f
    - b
    - i
    - c
    - p
    argTypes:
    - file_index_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: libtorrent::hash_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hash_request(file_index_t const f, int const b, int const i, int
      const c, int const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::hash_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hash_request(hash_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - hash_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: operator==(hash_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(hash_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::hash_picker
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:149,1
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:176,1
    - Dst: libtorrent::min_time
      Src: /src/libtorrent/include/libtorrent/hash_picker.hpp:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 243
    functionName: libtorrent::hash_picker
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::hash_picker
    - libtorrent::min_time
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT hash_picker
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: libtorrent::piece_layer
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int piece_layer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f
    - b
    argTypes:
    - file_index_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: libtorrent::priority_block_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void priority_block_request(file_index_t const f, int const b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - priority_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: operator==(priority_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(priority_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - priority_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: operator!=(priority_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(priority_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - priority_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: operator<(priority_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(priority_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - file_index_t
    - piece_index_t::diff_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: libtorrent::piece_block_request
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void piece_block_request(file_index_t const f, piece_index_t::diff_type
      const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - piece_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: operator==(piece_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(piece_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - piece_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: operator!=(piece_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(piece_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - piece_block_request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: operator<(piece_block_request const& o) const
    functionSourceFile: /src/libtorrent/include/libtorrent/hash_picker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(piece_block_request const& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_connection_base
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:58,1
    - Dst: peer_id
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:75,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 134
    functionName: libtorrent::web_connection_base
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT_FAIL
    - libtorrent::web_connection_base
    - peer_id
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT web_connection_base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_id
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::our_pid
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 7
    functionsReached:
    - peer_id
    linkageType: ''
    returnType: peer_id
    signature: peer_id our_pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::write_choke
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_choke() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::write_unchoke
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_unchoke() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::write_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_interested() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::write_not_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_not_interested() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::write_cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_cancel(peer_request const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::write_have
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_have(piece_index_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::write_dont_have
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_dont_have(piece_index_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: libtorrent::write_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: void write_piece(peer_request const&, disk_buffer_holder) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::write_keepalive
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_keepalive() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::write_reject_request
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_reject_request(peer_request const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: libtorrent::write_allow_fast
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_allow_fast(piece_index_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: libtorrent::write_suggest
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_suggest(piece_index_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::write_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_bitfield() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: libtorrent::write_upload_only
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_upload_only(bool) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::web_connection_base
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:58,1
    - Dst: peer_id
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:75,1
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 134
    functionName: libtorrent::web_connection_base
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_ASSERT_FAIL
    - libtorrent::web_connection_base
    - peer_id
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT web_connection_base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_id
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::our_pid
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 7
    functionsReached:
    - peer_id
    linkageType: ''
    returnType: peer_id
    signature: peer_id our_pid() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::write_choke
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_choke() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::write_unchoke
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_unchoke() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::write_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_interested() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: libtorrent::write_not_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_not_interested() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::write_cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_cancel(peer_request const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::write_have
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_have(piece_index_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::write_dont_have
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_dont_have(piece_index_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT_FAIL
      Src: /src/libtorrent/include/libtorrent/web_connection_base.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: libtorrent::write_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT_FAIL
    linkageType: ''
    returnType: void
    signature: void write_piece(peer_request const&, disk_buffer_holder) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::write_keepalive
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_keepalive() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::write_reject_request
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_reject_request(peer_request const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: libtorrent::write_allow_fast
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_allow_fast(piece_index_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: libtorrent::write_suggest
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_suggest(piece_index_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::write_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_bitfield() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: libtorrent::write_upload_only
    functionSourceFile: /src/libtorrent/include/libtorrent/web_connection_base.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_upload_only(bool) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<torrent_plugin>
      Src: /src/libtorrent/include/libtorrent/extensions.hpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 291
    functionName: libtorrent::struct
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<torrent_plugin>
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: ~plugin()
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~plugin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: libtorrent::implemented_features
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: feature_flags_t
    signature: feature_flags_t implemented_features()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<torrent_plugin>
      Src: /src/libtorrent/include/libtorrent/extensions.hpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: libtorrent::new_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<torrent_plugin>
    linkageType: ''
    returnType: std::shared_ptr<torrent_plugin>
    signature: std::shared_ptr<torrent_plugin> new_torrent(torrent_handle const&,
      client_data_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: libtorrent::added
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void added(session_handle const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: libtorrent::abort
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: libtorrent::on_dht_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_dht_request(string_view /* query */\n\t\t\t, udp::endpoint
      const& /* source */, bdecode_node const& /* message */\n\t\t\t, entry& /* response
      */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: libtorrent::on_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_alert(alert const*)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: libtorrent::on_unknown_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_unknown_torrent(info_hash_t const& /* info_hash */\n\t\t\t,
      peer_connection_handle const& /* pc */, add_torrent_params& /* p */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: libtorrent::on_tick
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: libtorrent::get_unchoke_priority
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_unchoke_priority(peer_connection_handle const& /* peer
      */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: libtorrent::save_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void save_state(entry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: libtorrent::load_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void load_state(bdecode_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: libtorrent::save_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> save_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: libtorrent::load_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void load_state(std::map<std::string, std::string> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<peer_plugin>
      Src: /src/libtorrent/include/libtorrent/extensions.hpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 379
    functionName: libtorrent::torrent_plugin
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<peer_plugin>
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_plugin
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: ~torrent_plugin()
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~torrent_plugin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<peer_plugin>
      Src: /src/libtorrent/include/libtorrent/extensions.hpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: libtorrent::new_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<peer_plugin>
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: std::shared_ptr<peer_plugin> new_connection(peer_connection_handle
      const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: libtorrent::on_piece_failed
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_piece_failed(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: libtorrent::on_pause
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_pause()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    functionName: libtorrent::on_resume
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_resume()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    functionName: libtorrent::on_files_checked
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_files_checked()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: libtorrent::on_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_state(torrent_status::state_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: libtorrent::on_add_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void on_add_peer(tcp::endpoint const&,\n\t\t\tpeer_source_flags_t,
      add_peer_flags_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 509
    functionName: libtorrent::peer_plugin
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_plugin
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: ~peer_plugin()
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~peer_plugin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 57
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: libtorrent::on_disconnect
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_disconnect(error_code const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 407
    functionName: libtorrent::on_connected
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_connected()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: libtorrent::on_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_handshake(span<char const>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 423
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: libtorrent::on_choke
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_choke()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: libtorrent::on_unchoke
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_unchoke()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: libtorrent::on_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: libtorrent::on_not_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_not_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 434
    functionName: libtorrent::on_have
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_have(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 435
    functionName: libtorrent::on_dont_have
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_dont_have(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 436
    functionName: libtorrent::on_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_bitfield(bitfield const& /*bitfield*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: libtorrent::on_have_all
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_have_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    functionName: libtorrent::on_have_none
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_have_none()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 439
    functionName: libtorrent::on_allowed_fast
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_allowed_fast(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    functionName: libtorrent::on_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_request(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: libtorrent::on_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_piece(peer_request const& /*piece*/\n\t\t\t, span<char const>
      /*buf*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 451
    functionName: libtorrent::on_cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_cancel(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 452
    functionName: libtorrent::on_reject
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_reject(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: libtorrent::on_suggest
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_suggest(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: libtorrent::sent_have_all
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_have_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: libtorrent::sent_have_none
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_have_none()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: libtorrent::sent_reject_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_reject_request(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: libtorrent::sent_allow_fast
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_allow_fast(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: libtorrent::sent_suggest
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_suggest(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 460
    functionName: libtorrent::sent_cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_cancel(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 461
    functionName: libtorrent::sent_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_request(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 462
    functionName: libtorrent::sent_choke
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_choke()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 464
    functionName: libtorrent::sent_unchoke
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_unchoke()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 465
    functionName: libtorrent::sent_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::sent_not_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_not_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 467
    functionName: libtorrent::sent_have
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_have(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 468
    functionName: libtorrent::sent_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_piece(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: libtorrent::sent_payload
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_payload(int /* bytes */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 476
    functionName: libtorrent::can_disconnect
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool can_disconnect(error_code const& /*ec*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_extended(int /*length*/, int /*msg*/,\n\t\t\tspan<char const>
      /*body*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 495
    functionName: libtorrent::on_unknown_message
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_unknown_message(int /*length*/, int /*msg*/,\n\t\t\tspan<char
      const> /*body*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 500
    functionName: libtorrent::on_piece_failed
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_piece_failed(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 503
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    functionName: libtorrent::write_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool write_request(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 547
    functionName: libtorrent::crypto_plugin
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT crypto_plugin
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 517
    functionName: ~crypto_plugin()
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~crypto_plugin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<torrent_plugin>
      Src: /src/libtorrent/include/libtorrent/extensions.hpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 291
    functionName: libtorrent::struct
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<torrent_plugin>
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: ~plugin()
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~plugin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: libtorrent::implemented_features
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: feature_flags_t
    signature: feature_flags_t implemented_features()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<torrent_plugin>
      Src: /src/libtorrent/include/libtorrent/extensions.hpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: libtorrent::new_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<torrent_plugin>
    linkageType: ''
    returnType: std::shared_ptr<torrent_plugin>
    signature: std::shared_ptr<torrent_plugin> new_torrent(torrent_handle const&,
      client_data_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: libtorrent::added
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void added(session_handle const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: libtorrent::abort
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: libtorrent::on_dht_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_dht_request(string_view /* query */\n\t\t\t, udp::endpoint
      const& /* source */, bdecode_node const& /* message */\n\t\t\t, entry& /* response
      */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: libtorrent::on_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_alert(alert const*)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: libtorrent::on_unknown_torrent
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_unknown_torrent(info_hash_t const& /* info_hash */\n\t\t\t,
      peer_connection_handle const& /* pc */, add_torrent_params& /* p */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: libtorrent::on_tick
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: libtorrent::get_unchoke_priority
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_unchoke_priority(peer_connection_handle const& /* peer
      */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: libtorrent::save_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void save_state(entry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    functionName: libtorrent::load_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void load_state(bdecode_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: libtorrent::save_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> save_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: libtorrent::load_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void load_state(std::map<std::string, std::string> const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<peer_plugin>
      Src: /src/libtorrent/include/libtorrent/extensions.hpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 379
    functionName: libtorrent::torrent_plugin
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<peer_plugin>
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_plugin
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: ~torrent_plugin()
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~torrent_plugin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::shared_ptr<peer_plugin>
      Src: /src/libtorrent/include/libtorrent/extensions.hpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: libtorrent::new_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<peer_plugin>
    linkageType: ''
    returnType: std::shared_ptr<peer_plugin>
    signature: std::shared_ptr<peer_plugin> new_connection(peer_connection_handle
      const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: libtorrent::on_piece_failed
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_piece_failed(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: libtorrent::on_pause
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_pause()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    functionName: libtorrent::on_resume
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_resume()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    functionName: libtorrent::on_files_checked
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_files_checked()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: libtorrent::on_state
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_state(torrent_status::state_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: libtorrent::on_add_peer
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void on_add_peer(tcp::endpoint const&,\n\t\t\tpeer_source_flags_t,
      add_peer_flags_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 509
    functionName: libtorrent::peer_plugin
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_plugin
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: ~peer_plugin()
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~peer_plugin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: libtorrent::type
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 57
    functionsReached: []
    linkageType: ''
    returnType: string_view
    signature: string_view type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: libtorrent::add_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_handshake(entry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: libtorrent::on_disconnect
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_disconnect(error_code const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 407
    functionName: libtorrent::on_connected
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_connected()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: libtorrent::on_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_handshake(span<char const>)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 423
    functionName: libtorrent::on_extension_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_extension_handshake(bdecode_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    functionName: libtorrent::on_choke
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_choke()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: libtorrent::on_unchoke
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_unchoke()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: libtorrent::on_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: libtorrent::on_not_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_not_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 434
    functionName: libtorrent::on_have
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_have(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 435
    functionName: libtorrent::on_dont_have
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_dont_have(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 436
    functionName: libtorrent::on_bitfield
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_bitfield(bitfield const& /*bitfield*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: libtorrent::on_have_all
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_have_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    functionName: libtorrent::on_have_none
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_have_none()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 439
    functionName: libtorrent::on_allowed_fast
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_allowed_fast(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    functionName: libtorrent::on_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_request(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: libtorrent::on_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_piece(peer_request const& /*piece*/\n\t\t\t, span<char const>
      /*buf*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 451
    functionName: libtorrent::on_cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_cancel(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 452
    functionName: libtorrent::on_reject
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_reject(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 453
    functionName: libtorrent::on_suggest
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on_suggest(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    functionName: libtorrent::sent_have_all
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_have_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 456
    functionName: libtorrent::sent_have_none
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_have_none()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 457
    functionName: libtorrent::sent_reject_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_reject_request(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: libtorrent::sent_allow_fast
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_allow_fast(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: libtorrent::sent_suggest
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_suggest(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 460
    functionName: libtorrent::sent_cancel
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_cancel(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 461
    functionName: libtorrent::sent_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_request(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 462
    functionName: libtorrent::sent_choke
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_choke()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 464
    functionName: libtorrent::sent_unchoke
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_unchoke()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 465
    functionName: libtorrent::sent_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: libtorrent::sent_not_interested
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_not_interested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 467
    functionName: libtorrent::sent_have
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_have(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 468
    functionName: libtorrent::sent_piece
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_piece(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: libtorrent::sent_payload
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sent_payload(int /* bytes */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 476
    functionName: libtorrent::can_disconnect
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool can_disconnect(error_code const& /*ec*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: libtorrent::on_extended
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_extended(int /*length*/, int /*msg*/,\n\t\t\tspan<char const>
      /*body*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 495
    functionName: libtorrent::on_unknown_message
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool on_unknown_message(int /*length*/, int /*msg*/,\n\t\t\tspan<char
      const> /*body*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: libtorrent::on_piece_pass
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_piece_pass(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 500
    functionName: libtorrent::on_piece_failed
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void on_piece_failed(piece_index_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 503
    functionName: libtorrent::tick
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    functionName: libtorrent::write_request
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool write_request(peer_request const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 547
    functionName: libtorrent::crypto_plugin
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT crypto_plugin
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 517
    functionName: ~crypto_plugin()
    functionSourceFile: /src/libtorrent/include/libtorrent/extensions.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~crypto_plugin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::libtorrent_category
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: libtorrent::get_libtorrent_category
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::libtorrent_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_libtorrent_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_category
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: libtorrent::get_http_category
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::http_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_http_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:556,1
    - Dst: file_index_t
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:564,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:565,1
    - Dst: libtorrent::operation_name
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 585
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached:
    - value
    - static_cast<int>
    - file_index_t
    - libtorrent::operation_name
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_error
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 547
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 548
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_error(error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - e
    - op
    argTypes:
    - error_code
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_error(error_code e, operation_t const op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - e
    - f
    - op
    argTypes:
    - error_code
    - file_index_t
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_error(error_code e, file_index_t f, operation_t const
      op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 556
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: libtorrent::file
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 4
    functionsReached:
    - file_index_t
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    functionName: libtorrent::file
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void file(file_index_t f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::operation_name
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: libtorrent::operation_str
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::operation_name
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED * operation_str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::libtorrent_category
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: libtorrent::get_libtorrent_category
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::libtorrent_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_libtorrent_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::http_category
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: libtorrent::get_http_category
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::http_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_http_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:556,1
    - Dst: file_index_t
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:564,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:565,1
    - Dst: libtorrent::operation_name
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 585
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached:
    - value
    - static_cast<int>
    - file_index_t
    - libtorrent::operation_name
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_error
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 547
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - e
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 548
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_error(error_code e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - e
    - op
    argTypes:
    - error_code
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_error(error_code e, operation_t const op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - e
    - f
    - op
    argTypes:
    - error_code
    - file_index_t
    - operation_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: libtorrent::storage_error
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storage_error(error_code e, file_index_t f, operation_t const
      op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 556
    functionName: operator bool() const
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_index_t
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: libtorrent::file
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 4
    functionsReached:
    - file_index_t
    linkageType: ''
    returnType: file_index_t
    signature: file_index_t file() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - file_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    functionName: libtorrent::file
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void file(file_index_t f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::operation_name
      Src: /src/libtorrent/include/libtorrent/error_code.hpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: libtorrent::operation_str
    functionSourceFile: /src/libtorrent/include/libtorrent/error_code.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::operation_name
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED * operation_str() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_category
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: libtorrent::get_bdecode_category
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_bdecode_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::bdecode_category
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: libtorrent::get_bdecode_category
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::bdecode_category
    linkageType: ''
    returnType: TORRENT_DEPRECATED
    signature: TORRENT_DEPRECATED & get_bdecode_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:193,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:194,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - 'off'
    - t
    argTypes:
    - std::ptrdiff_t
    - bdecode_token::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: libtorrent::aux::bdecode_token
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void bdecode_token(std::ptrdiff_t off, bdecode_token::type_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:202,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:205,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - 'off'
    - next
    - t
    argTypes:
    - std::ptrdiff_t
    - std::uint32_t
    - bdecode_token::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 219
    functionName: libtorrent::aux::bdecode_token
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: "void bdecode_token(std::ptrdiff_t const off, std::uint32_t const next\n\t\t,
      bdecode_token::type_t const t, std::uint32_t const header_size = 0)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: libtorrent::aux::start_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int start_offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:193,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:194,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - 'off'
    - t
    argTypes:
    - std::ptrdiff_t
    - bdecode_token::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: libtorrent::aux::bdecode_token
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void bdecode_token(std::ptrdiff_t off, bdecode_token::type_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:202,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:205,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - 'off'
    - next
    - t
    argTypes:
    - std::ptrdiff_t
    - std::uint32_t
    - bdecode_token::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 219
    functionName: libtorrent::aux::bdecode_token
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: "void bdecode_token(std::ptrdiff_t const off, std::uint32_t const next\n\t\t,
      bdecode_token::type_t const t, std::uint32_t const header_size = 0)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: libtorrent::aux::start_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int start_offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:340,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:368,1
    - Dst: libtorrent::bdecode_node
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 440
    functionName: libtorrent::bdecode_node
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 1
    functionsReached:
    - string_view
    - libtorrent::bdecode_node
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT bdecode_node
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: libtorrent::bdecode_node
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdecode_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:193,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:194,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - 'off'
    - t
    argTypes:
    - std::ptrdiff_t
    - bdecode_token::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: libtorrent::aux::bdecode_token
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void bdecode_token(std::ptrdiff_t off, bdecode_token::type_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:202,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:205,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - 'off'
    - next
    - t
    argTypes:
    - std::ptrdiff_t
    - std::uint32_t
    - bdecode_token::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 219
    functionName: libtorrent::aux::bdecode_token
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: "void bdecode_token(std::ptrdiff_t const off, std::uint32_t const next\n\t\t,
      bdecode_token::type_t const t, std::uint32_t const header_size = 0)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: libtorrent::aux::start_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int start_offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:188,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:193,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:194,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - 'off'
    - t
    argTypes:
    - std::ptrdiff_t
    - bdecode_token::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: libtorrent::aux::bdecode_token
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: void bdecode_token(std::ptrdiff_t off, bdecode_token::type_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:202,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:205,1
    - Dst: std::uint32_t
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:206,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:208,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:209,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:210,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:211,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:213,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - 'off'
    - next
    - t
    argTypes:
    - std::ptrdiff_t
    - std::uint32_t
    - bdecode_token::type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 219
    functionName: libtorrent::aux::bdecode_token
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - std::uint32_t
    linkageType: ''
    returnType: void
    signature: "void bdecode_token(std::ptrdiff_t const off, std::uint32_t const next\n\t\t,
      bdecode_token::type_t const t, std::uint32_t const header_size = 0)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: libtorrent::aux::start_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int start_offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:340,1
    - Dst: string_view
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:368,1
    - Dst: libtorrent::bdecode_node
      Src: /src/libtorrent/include/libtorrent/bdecode.hpp:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 440
    functionName: libtorrent::bdecode_node
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 2
    functionsReached:
    - string_view
    - libtorrent::bdecode_node
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT bdecode_node
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: libtorrent::bdecode_node
    functionSourceFile: /src/libtorrent/include/libtorrent/bdecode.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdecode_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: libtorrent::dht_routing_bucket
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_routing_bucket
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 164
    functionName: libtorrent::alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: libtorrent::torrent_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 221
    functionName: libtorrent::tracker_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - seq
    - ','
    - prio
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: TORRENT_DEFINE_ALERT_IMPL
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_DEFINE_ALERT_IMPL(name, seq, prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - seq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: TORRENT_DEFINE_ALERT
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_DEFINE_ALERT(name, seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - seq
    - ','
    - prio
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: TORRENT_DEFINE_ALERT_PRIO
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_DEFINE_ALERT_PRIO(name, seq, prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: libtorrent::torrent_added_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT torrent_added_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: libtorrent::torrent_removed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_removed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 330
    functionName: libtorrent::read_piece_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT read_piece_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 354
    functionName: libtorrent::file_completed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_completed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 388
    functionName: libtorrent::file_renamed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_renamed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: libtorrent::file_rename_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_rename_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 513
    functionName: libtorrent::performance_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT performance_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 534
    functionName: libtorrent::state_changed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT state_changed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:547,1
    - Dst: failure_reason
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 580
    functionName: libtorrent::tracker_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - failure_reason
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: failure_reason
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    functionName: libtorrent::error_message
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - failure_reason
    linkageType: ''
    returnType: char
    signature: char * error_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 610
    functionName: libtorrent::tracker_warning_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_warning_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 632
    functionName: libtorrent::scrape_reply_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT scrape_reply_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 671
    functionName: libtorrent::scrape_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT scrape_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 695
    functionName: libtorrent::tracker_reply_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_reply_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 714
    functionName: libtorrent::dht_reply_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_reply_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 736
    functionName: libtorrent::tracker_announce_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_announce_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 752
    functionName: libtorrent::hash_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT hash_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 766
    functionName: libtorrent::peer_ban_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_ban_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 780
    functionName: libtorrent::peer_unsnubbed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_unsnubbed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 794
    functionName: libtorrent::peer_snubbed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_snubbed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 821
    functionName: libtorrent::peer_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 844
    functionName: libtorrent::peer_connect_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_connect_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 878
    functionName: libtorrent::peer_disconnected_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_disconnected_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 909
    functionName: libtorrent::invalid_request_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT invalid_request_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 924
    functionName: libtorrent::torrent_finished_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_finished_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 952
    functionName: libtorrent::piece_finished_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT piece_finished_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 976
    functionName: libtorrent::request_dropped_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT request_dropped_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 1000
    functionName: libtorrent::block_timeout_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_timeout_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1023
    functionName: libtorrent::block_finished_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_finished_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1048
    functionName: libtorrent::block_downloading_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_downloading_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1066
    functionName: libtorrent::unwanted_block_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT unwanted_block_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1095
    functionName: libtorrent::storage_moved_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_moved_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1126
    functionName: libtorrent::storage_moved_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_moved_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1152
    functionName: libtorrent::torrent_deleted_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_deleted_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1180
    functionName: libtorrent::torrent_delete_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_delete_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1212
    functionName: libtorrent::save_resume_data_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT save_resume_data_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1234
    functionName: libtorrent::save_resume_data_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT save_resume_data_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1248
    functionName: libtorrent::torrent_paused_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_paused_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1261
    functionName: libtorrent::torrent_resumed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_resumed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1274
    functionName: libtorrent::torrent_checked_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_checked_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1313
    functionName: libtorrent::url_seed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT url_seed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1348
    functionName: libtorrent::file_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1368
    functionName: libtorrent::metadata_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT metadata_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1394
    functionDepth: 1
    functionLinenumber: 1394
    functionLinenumberEnd: 1404
    functionName: libtorrent::metadata_received_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT metadata_received_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1431
    functionName: libtorrent::udp_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT udp_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1449
    functionName: libtorrent::external_ip_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT external_ip_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1544
    functionName: libtorrent::listen_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT listen_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1598
    functionName: libtorrent::listen_succeeded_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT listen_succeeded_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1636
    functionName: libtorrent::portmap_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT portmap_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1680
    functionName: libtorrent::portmap_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT portmap_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1688
    functionDepth: 1
    functionLinenumber: 1688
    functionLinenumberEnd: 1718
    functionName: libtorrent::portmap_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT portmap_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1756
    functionName: libtorrent::fastresume_rejected_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT fastresume_rejected_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1766
    functionDepth: 1
    functionLinenumber: 1766
    functionLinenumberEnd: 1792
    functionName: libtorrent::peer_blocked_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_blocked_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1810
    functionName: libtorrent::dht_announce_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_announce_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1825
    functionName: libtorrent::dht_get_peers_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_get_peers_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 1879
    functionName: libtorrent::torrent_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT torrent_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1891
    functionDepth: 1
    functionLinenumber: 1891
    functionLinenumberEnd: 1899
    functionName: libtorrent::cache_flushed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT cache_flushed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 1931
    functionName: libtorrent::anonymous_mode_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT anonymous_mode_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1949
    functionName: libtorrent::lsd_peer_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT lsd_peer_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1975
    functionName: libtorrent::trackerid_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT trackerid_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 1987
    functionName: libtorrent::dht_bootstrap_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_bootstrap_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2018
    functionName: libtorrent::torrent_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2037
    functionName: libtorrent::torrent_need_cert_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_need_cert_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2066
    functionName: libtorrent::incoming_connection_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT incoming_connection_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2072
    functionDepth: 1
    functionLinenumber: 2072
    functionLinenumberEnd: 2102
    functionName: libtorrent::add_torrent_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT add_torrent_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2109
    functionDepth: 1
    functionLinenumber: 2109
    functionLinenumberEnd: 2126
    functionName: libtorrent::state_update_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT state_update_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2140
    functionName: libtorrent::mmap_cache_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT mmap_cache_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2154
    functionDepth: 1
    functionLinenumber: 2154
    functionLinenumberEnd: 2190
    functionName: libtorrent::session_stats_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_stats_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2194
    functionDepth: 1
    functionLinenumber: 2194
    functionLinenumberEnd: 2221
    functionName: libtorrent::dht_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2243
    functionName: libtorrent::dht_immutable_item_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_immutable_item_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2247
    functionDepth: 1
    functionLinenumber: 2247
    functionLinenumberEnd: 2281
    functionName: libtorrent::dht_mutable_item_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_mutable_item_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2285
    functionDepth: 1
    functionLinenumber: 2285
    functionLinenumberEnd: 2316
    functionName: libtorrent::dht_put_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_put_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2319
    functionDepth: 1
    functionLinenumber: 2319
    functionLinenumberEnd: 2331
    functionName: libtorrent::i2p_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT i2p_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2335
    functionDepth: 1
    functionLinenumber: 2335
    functionLinenumberEnd: 2361
    functionName: libtorrent::dht_outgoing_get_peers_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_outgoing_get_peers_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2367
    functionDepth: 1
    functionLinenumber: 2367
    functionLinenumberEnd: 2390
    functionName: libtorrent::log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2396
    functionDepth: 1
    functionLinenumber: 2396
    functionLinenumberEnd: 2418
    functionName: libtorrent::torrent_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2424
    functionDepth: 1
    functionLinenumber: 2424
    functionLinenumberEnd: 2465
    functionName: libtorrent::peer_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2486
    functionName: libtorrent::lsd_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT lsd_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2492
    functionDepth: 0
    functionLinenumber: 2492
    functionLinenumberEnd: 2534
    functionName: libtorrent::dht_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_lookup
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2537
    functionDepth: 1
    functionLinenumber: 2537
    functionLinenumberEnd: 2562
    functionName: libtorrent::dht_stats_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_stats_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2568
    functionDepth: 1
    functionLinenumber: 2568
    functionLinenumberEnd: 2582
    functionName: libtorrent::incoming_request_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT incoming_request_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2586
    functionDepth: 1
    functionLinenumber: 2586
    functionLinenumberEnd: 2615
    functionName: libtorrent::dht_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2620
    functionDepth: 1
    functionLinenumber: 2620
    functionLinenumberEnd: 2656
    functionName: libtorrent::dht_pkt_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_pkt_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2687
    functionName: libtorrent::dht_get_peers_reply_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_get_peers_reply_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2691
    functionDepth: 1
    functionLinenumber: 2691
    functionLinenumberEnd: 2720
    functionName: libtorrent::dht_direct_response_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_direct_response_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2728
    functionDepth: 1
    functionLinenumber: 2728
    functionLinenumberEnd: 2767
    functionName: libtorrent::picker_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT picker_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2771
    functionDepth: 1
    functionLinenumber: 2771
    functionLinenumberEnd: 2788
    functionName: libtorrent::session_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2793
    functionDepth: 1
    functionLinenumber: 2793
    functionLinenumberEnd: 2818
    functionName: libtorrent::dht_live_nodes_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_live_nodes_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2829
    functionDepth: 1
    functionLinenumber: 2829
    functionLinenumberEnd: 2837
    functionName: libtorrent::session_stats_header_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_stats_header_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2895
    functionName: libtorrent::dht_sample_infohashes_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_sample_infohashes_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2901
    functionDepth: 1
    functionLinenumber: 2901
    functionLinenumberEnd: 2920
    functionName: libtorrent::block_uploaded_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_uploaded_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2926
    functionDepth: 1
    functionLinenumber: 2926
    functionLinenumberEnd: 2941
    functionName: libtorrent::alerts_dropped_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT alerts_dropped_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2945
    functionDepth: 1
    functionLinenumber: 2945
    functionLinenumberEnd: 2963
    functionName: libtorrent::socks5_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT socks5_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2970
    functionDepth: 1
    functionLinenumber: 2970
    functionLinenumberEnd: 2984
    functionName: libtorrent::file_prio_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_prio_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 2986
    functionDepth: 1
    functionLinenumber: 2986
    functionLinenumberEnd: 3006
    functionName: libtorrent::torrent_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3_END
    signature: TORRENT_VERSION_NAMESPACE_3_END torrent_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3035
      start: 3016
    functionDepth: 1
    functionLinenumber: 3016
    functionLinenumberEnd: 3035
    functionName: libtorrent::torrent_conflict_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_conflict_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3038
    functionDepth: 1
    functionLinenumber: 3038
    functionLinenumberEnd: 3050
    functionName: libtorrent::peer_info_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_info_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3053
    functionDepth: 1
    functionLinenumber: 3053
    functionLinenumberEnd: 3065
    functionName: libtorrent::file_progress_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_progress_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3068
    functionDepth: 1
    functionLinenumber: 3068
    functionLinenumberEnd: 3083
    functionName: libtorrent::piece_info_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT piece_info_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3098
      start: 3086
    functionDepth: 1
    functionLinenumber: 3086
    functionLinenumberEnd: 3098
    functionName: libtorrent::piece_availability_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT piece_availability_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3101
    functionDepth: 1
    functionLinenumber: 3101
    functionLinenumberEnd: 3113
    functionName: libtorrent::tracker_list_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_list_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: libtorrent::dht_routing_bucket
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_routing_bucket
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 164
    functionName: libtorrent::alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3
    signature: TORRENT_VERSION_NAMESPACE_3 alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: libtorrent::torrent_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 221
    functionName: libtorrent::tracker_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - seq
    - ','
    - prio
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: TORRENT_DEFINE_ALERT_IMPL
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_DEFINE_ALERT_IMPL(name, seq, prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - seq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: TORRENT_DEFINE_ALERT
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_DEFINE_ALERT(name, seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - seq
    - ','
    - prio
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: TORRENT_DEFINE_ALERT_PRIO
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TORRENT_DEFINE_ALERT_PRIO(name, seq, prio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: libtorrent::torrent_added_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT torrent_added_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: libtorrent::torrent_removed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_removed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 330
    functionName: libtorrent::read_piece_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT read_piece_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 354
    functionName: libtorrent::file_completed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_completed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 388
    functionName: libtorrent::file_renamed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_renamed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: libtorrent::file_rename_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_rename_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 513
    functionName: libtorrent::performance_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT performance_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 534
    functionName: libtorrent::state_changed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT state_changed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:547,1
    - Dst: failure_reason
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 580
    functionName: libtorrent::tracker_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - failure_reason
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: failure_reason
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    functionName: libtorrent::error_message
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - failure_reason
    linkageType: ''
    returnType: char
    signature: char * error_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 610
    functionName: libtorrent::tracker_warning_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_warning_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 632
    functionName: libtorrent::scrape_reply_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT scrape_reply_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 671
    functionName: libtorrent::scrape_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT scrape_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 695
    functionName: libtorrent::tracker_reply_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_reply_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 714
    functionName: libtorrent::dht_reply_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_reply_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 736
    functionName: libtorrent::tracker_announce_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_announce_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 752
    functionName: libtorrent::hash_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT hash_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 766
    functionName: libtorrent::peer_ban_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_ban_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 780
    functionName: libtorrent::peer_unsnubbed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_unsnubbed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 794
    functionName: libtorrent::peer_snubbed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_snubbed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 821
    functionName: libtorrent::peer_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 844
    functionName: libtorrent::peer_connect_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_connect_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 878
    functionName: libtorrent::peer_disconnected_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_disconnected_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 909
    functionName: libtorrent::invalid_request_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT invalid_request_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 924
    functionName: libtorrent::torrent_finished_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_finished_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 952
    functionName: libtorrent::piece_finished_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT piece_finished_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 976
    functionName: libtorrent::request_dropped_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT request_dropped_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 1000
    functionName: libtorrent::block_timeout_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_timeout_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1023
    functionName: libtorrent::block_finished_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_finished_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1048
    functionName: libtorrent::block_downloading_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_downloading_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1066
    functionName: libtorrent::unwanted_block_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT unwanted_block_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1095
    functionName: libtorrent::storage_moved_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_moved_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1126
    functionName: libtorrent::storage_moved_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT storage_moved_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1152
    functionName: libtorrent::torrent_deleted_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_deleted_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1180
    functionName: libtorrent::torrent_delete_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_delete_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1212
    functionName: libtorrent::save_resume_data_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT save_resume_data_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1234
    functionName: libtorrent::save_resume_data_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT save_resume_data_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1248
    functionName: libtorrent::torrent_paused_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_paused_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1261
    functionName: libtorrent::torrent_resumed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_resumed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1274
    functionName: libtorrent::torrent_checked_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_checked_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1313
    functionName: libtorrent::url_seed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT url_seed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1348
    functionName: libtorrent::file_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1368
    functionName: libtorrent::metadata_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT metadata_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1394
    functionDepth: 1
    functionLinenumber: 1394
    functionLinenumberEnd: 1404
    functionName: libtorrent::metadata_received_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT metadata_received_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1431
    functionName: libtorrent::udp_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT udp_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1449
    functionName: libtorrent::external_ip_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT external_ip_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1544
    functionName: libtorrent::listen_failed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT listen_failed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1598
    functionName: libtorrent::listen_succeeded_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT listen_succeeded_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1636
    functionName: libtorrent::portmap_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT portmap_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1680
    functionName: libtorrent::portmap_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT portmap_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1688
    functionDepth: 1
    functionLinenumber: 1688
    functionLinenumberEnd: 1718
    functionName: libtorrent::portmap_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT portmap_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1756
    functionName: libtorrent::fastresume_rejected_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT fastresume_rejected_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1766
    functionDepth: 1
    functionLinenumber: 1766
    functionLinenumberEnd: 1792
    functionName: libtorrent::peer_blocked_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_blocked_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1810
    functionName: libtorrent::dht_announce_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_announce_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1825
    functionName: libtorrent::dht_get_peers_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_get_peers_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 1879
    functionName: libtorrent::torrent_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT torrent_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1891
    functionDepth: 1
    functionLinenumber: 1891
    functionLinenumberEnd: 1899
    functionName: libtorrent::cache_flushed_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT cache_flushed_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 1931
    functionName: libtorrent::anonymous_mode_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT anonymous_mode_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1949
    functionName: libtorrent::lsd_peer_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT lsd_peer_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1975
    functionName: libtorrent::trackerid_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT trackerid_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 1987
    functionName: libtorrent::dht_bootstrap_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_bootstrap_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2018
    functionName: libtorrent::torrent_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2037
    functionName: libtorrent::torrent_need_cert_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_need_cert_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2066
    functionName: libtorrent::incoming_connection_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT incoming_connection_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2072
    functionDepth: 1
    functionLinenumber: 2072
    functionLinenumberEnd: 2102
    functionName: libtorrent::add_torrent_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT add_torrent_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2109
    functionDepth: 1
    functionLinenumber: 2109
    functionLinenumberEnd: 2126
    functionName: libtorrent::state_update_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT state_update_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2140
    functionName: libtorrent::mmap_cache_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT mmap_cache_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2154
    functionDepth: 1
    functionLinenumber: 2154
    functionLinenumberEnd: 2190
    functionName: libtorrent::session_stats_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_stats_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2194
    functionDepth: 1
    functionLinenumber: 2194
    functionLinenumberEnd: 2221
    functionName: libtorrent::dht_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2243
    functionName: libtorrent::dht_immutable_item_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_immutable_item_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2247
    functionDepth: 1
    functionLinenumber: 2247
    functionLinenumberEnd: 2281
    functionName: libtorrent::dht_mutable_item_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_mutable_item_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2285
    functionDepth: 1
    functionLinenumber: 2285
    functionLinenumberEnd: 2316
    functionName: libtorrent::dht_put_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_put_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2319
    functionDepth: 1
    functionLinenumber: 2319
    functionLinenumberEnd: 2331
    functionName: libtorrent::i2p_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT i2p_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2335
    functionDepth: 1
    functionLinenumber: 2335
    functionLinenumberEnd: 2361
    functionName: libtorrent::dht_outgoing_get_peers_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_outgoing_get_peers_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2367
    functionDepth: 1
    functionLinenumber: 2367
    functionLinenumberEnd: 2390
    functionName: libtorrent::log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2396
    functionDepth: 1
    functionLinenumber: 2396
    functionLinenumberEnd: 2418
    functionName: libtorrent::torrent_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2424
    functionDepth: 1
    functionLinenumber: 2424
    functionLinenumberEnd: 2465
    functionName: libtorrent::peer_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2486
    functionName: libtorrent::lsd_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT lsd_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2492
    functionDepth: 0
    functionLinenumber: 2492
    functionLinenumberEnd: 2534
    functionName: libtorrent::dht_lookup
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_lookup
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2537
    functionDepth: 1
    functionLinenumber: 2537
    functionLinenumberEnd: 2562
    functionName: libtorrent::dht_stats_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_stats_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2568
    functionDepth: 1
    functionLinenumber: 2568
    functionLinenumberEnd: 2582
    functionName: libtorrent::incoming_request_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT incoming_request_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2586
    functionDepth: 1
    functionLinenumber: 2586
    functionLinenumberEnd: 2615
    functionName: libtorrent::dht_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2620
    functionDepth: 1
    functionLinenumber: 2620
    functionLinenumberEnd: 2656
    functionName: libtorrent::dht_pkt_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_pkt_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2687
    functionName: libtorrent::dht_get_peers_reply_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_get_peers_reply_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2691
    functionDepth: 1
    functionLinenumber: 2691
    functionLinenumberEnd: 2720
    functionName: libtorrent::dht_direct_response_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_direct_response_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2728
    functionDepth: 1
    functionLinenumber: 2728
    functionLinenumberEnd: 2767
    functionName: libtorrent::picker_log_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT picker_log_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2771
    functionDepth: 1
    functionLinenumber: 2771
    functionLinenumberEnd: 2788
    functionName: libtorrent::session_error_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_error_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2793
    functionDepth: 1
    functionLinenumber: 2793
    functionLinenumberEnd: 2818
    functionName: libtorrent::dht_live_nodes_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_live_nodes_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2829
    functionDepth: 1
    functionLinenumber: 2829
    functionLinenumberEnd: 2837
    functionName: libtorrent::session_stats_header_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT session_stats_header_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2895
    functionName: libtorrent::dht_sample_infohashes_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_sample_infohashes_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2901
    functionDepth: 1
    functionLinenumber: 2901
    functionLinenumberEnd: 2920
    functionName: libtorrent::block_uploaded_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT block_uploaded_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2926
    functionDepth: 1
    functionLinenumber: 2926
    functionLinenumberEnd: 2941
    functionName: libtorrent::alerts_dropped_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT alerts_dropped_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2945
    functionDepth: 1
    functionLinenumber: 2945
    functionLinenumberEnd: 2963
    functionName: libtorrent::socks5_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT socks5_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2970
    functionDepth: 1
    functionLinenumber: 2970
    functionLinenumberEnd: 2984
    functionName: libtorrent::file_prio_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_prio_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:2999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 2986
    functionDepth: 1
    functionLinenumber: 2986
    functionLinenumberEnd: 3006
    functionName: libtorrent::torrent_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT
    linkageType: ''
    returnType: TORRENT_VERSION_NAMESPACE_3_END
    signature: TORRENT_VERSION_NAMESPACE_3_END torrent_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3035
      start: 3016
    functionDepth: 1
    functionLinenumber: 3016
    functionLinenumberEnd: 3035
    functionName: libtorrent::torrent_conflict_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT torrent_conflict_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3038
    functionDepth: 1
    functionLinenumber: 3038
    functionLinenumberEnd: 3050
    functionName: libtorrent::peer_info_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT peer_info_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3053
    functionDepth: 1
    functionLinenumber: 3053
    functionLinenumberEnd: 3065
    functionName: libtorrent::file_progress_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT file_progress_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3068
    functionDepth: 1
    functionLinenumber: 3068
    functionLinenumberEnd: 3083
    functionName: libtorrent::piece_info_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT piece_info_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3098
      start: 3086
    functionDepth: 1
    functionLinenumber: 3086
    functionLinenumberEnd: 3098
    functionName: libtorrent::piece_availability_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT piece_availability_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_DEFINE_ALERT_PRIO
      Src: /src/libtorrent/include/libtorrent/alert_types.hpp:3106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3101
    functionDepth: 1
    functionLinenumber: 3101
    functionLinenumberEnd: 3113
    functionName: libtorrent::tracker_list_alert
    functionSourceFile: /src/libtorrent/include/libtorrent/alert_types.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_DEFINE_ALERT_PRIO
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT tracker_list_alert
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bind_info_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: operator==(bind_info_t const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(bind_info_t const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/include/libtorrent/http_connection.hpp:117,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/http_connection.hpp:119,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/http_connection.hpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 258
    functionName: std::enable_shared_from_this<http_connection>
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached:
    - seconds
    - std::string
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<http_connection>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: libtorrent::http_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_connection(http_connection const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: libtorrent::rate_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rate_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: libtorrent::socket
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::socket_type
    signature: aux::socket_type & socket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: libtorrent::endpoints
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<tcp::endpoint>
    signature: std::vector<tcp::endpoint> & endpoints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: libtorrent::url
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & url() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - bind_info_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: operator==(bind_info_t const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(bind_info_t const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seconds
      Src: /src/libtorrent/include/libtorrent/http_connection.hpp:117,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/http_connection.hpp:119,1
    - Dst: std::string
      Src: /src/libtorrent/include/libtorrent/http_connection.hpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 258
    functionName: std::enable_shared_from_this<http_connection>
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached:
    - seconds
    - std::string
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<http_connection>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: libtorrent::http_connection
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_connection(http_connection const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: libtorrent::rate_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rate_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: libtorrent::socket
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::socket_type
    signature: aux::socket_type & socket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: libtorrent::endpoints
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<tcp::endpoint>
    signature: std::vector<tcp::endpoint> & endpoints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: libtorrent::url
    functionSourceFile: /src/libtorrent/include/libtorrent/http_connection.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & url() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:79,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - span<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(span<U> const& v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span(T& p) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - l
    argTypes:
    - T*
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void span(T* p, difference_type const l) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:87,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/span.hpp:87,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' arr'
    argTypes:
    - std::array<U, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - static_cast<difference_type>
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(std::array<U, N>& arr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/span.hpp:92,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::basic_string<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - static_cast<difference_type>
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(std::basic_string<U>& str) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - U[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span(U (&arr)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:104,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/span.hpp:104,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - Cont
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - static_cast<difference_type>
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(Cont& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:113,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/span.hpp:113,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - Cont
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - static_cast<difference_type>
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(Cont const& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:119,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - span<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: '& operator=(span<U> const& rhs) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span
    signature: span & operator=(span<U> const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 155
    functionsReached: []
    linkageType: ''
    returnType: index_type
    signature: index_type size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: libtorrent::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/libtorrent/include/libtorrent/span.hpp:135,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/span.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::rbegin
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::end
    - reverse_iterator
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/libtorrent/include/libtorrent/span.hpp:136,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: libtorrent::rend
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::begin
    - reverse_iterator
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '& front() const noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T & front() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: '& back() const noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T & back() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:143,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:143,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: libtorrent::first
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span<T>
    signature: span<T> first(difference_type const n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:149,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:149,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:150,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: libtorrent::last
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span<T>
    signature: span<T> last(difference_type const n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:155,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:155,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:156,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: libtorrent::subspan
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span<T>
    signature: span<T> subspan(index_type const offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:162,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:163,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:163,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - count
    argTypes:
    - index_type
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: libtorrent::subspan
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span<T>
    signature: span<T> subspan(index_type const offset, difference_type const count)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:169,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: '& operator[](index_type const idx) const'
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T & operator[](index_type const idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:182,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:182,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: equal
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - span<T>
    - span<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: operator==(span<T> const& lhs, span<U> const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - libtorrent::data
    - equal
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: bool
    signature: bool operator==(span<T> const& lhs, span<U> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:189,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:189,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: equal
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - span<T>
    - span<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: operator!=(span<T> const& lhs, span<U> const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::size
    - libtorrent::data
    - equal
    - libtorrent::end
    - libtorrent::begin
    linkageType: ''
    returnType: bool
    signature: bool operator!=(span<T> const& lhs, span<U> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:79,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - span<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(span<U> const& v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span(T& p) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - l
    argTypes:
    - T*
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: void
    signature: void span(T* p, difference_type const l) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:87,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/span.hpp:87,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' arr'
    argTypes:
    - std::array<U, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - static_cast<difference_type>
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(std::array<U, N>& arr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/span.hpp:92,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::basic_string<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - static_cast<difference_type>
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(std::basic_string<U>& str) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (arr)
    argTypes:
    - U[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void span(U (&arr)[N]) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:104,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/span.hpp:104,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - Cont
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - static_cast<difference_type>
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(Cont& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:113,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/span.hpp:113,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - Cont
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: libtorrent::span
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 12
    functionsReached:
    - static_cast<difference_type>
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: void
    signature: void span(Cont const& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/span.hpp:119,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/span.hpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - span<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: '& operator=(span<U> const& rhs) noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - size
    - data
    linkageType: ''
    returnType: span
    signature: span & operator=(span<U> const& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: libtorrent::size
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 166
    functionsReached: []
    linkageType: ''
    returnType: index_type
    signature: index_type size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: libtorrent::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: libtorrent::data
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * data() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: libtorrent::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 73
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::end
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 79
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/libtorrent/include/libtorrent/span.hpp:135,1
    - Dst: libtorrent::end
      Src: /src/libtorrent/include/libtorrent/span.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::rbegin
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::end
    - reverse_iterator
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/libtorrent/include/libtorrent/span.hpp:136,1
    - Dst: libtorrent::begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: libtorrent::rend
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::begin
    - reverse_iterator
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '& front() const noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T & front() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: '& back() const noexcept'
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T & back() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:143,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:143,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: libtorrent::first
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span<T>
    signature: span<T> first(difference_type const n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:149,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:149,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:150,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: libtorrent::last
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span<T>
    signature: span<T> last(difference_type const n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:155,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:155,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:156,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: libtorrent::subspan
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span<T>
    signature: span<T> subspan(index_type const offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:161,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:162,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:162,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:163,1
    - Dst: libtorrent::size
      Src: /src/libtorrent/include/libtorrent/span.hpp:163,1
    - Dst: libtorrent::data
      Src: /src/libtorrent/include/libtorrent/span.hpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - count
    argTypes:
    - index_type
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: libtorrent::subspan
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::data
    - libtorrent::size
    linkageType: ''
    returnType: span<T>
    signature: span<T> subspan(index_type const offset, difference_type const count)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:169,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/span.hpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - index_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: '& operator[](index_type const idx) const'
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: T
    signature: T & operator[](index_type const idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/span.hpp:182,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/span.hpp:182,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: equal
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: end
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - span<T>
    - span<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: operator==(span<T> const& lhs, span<U> const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - equal
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: bool operator==(span<T> const& lhs, span<U> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/span.hpp:189,1
    - Dst: size
      Src: /src/libtorrent/include/libtorrent/span.hpp:189,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: data
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: equal
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: end
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    - Dst: begin
      Src: /src/libtorrent/include/libtorrent/span.hpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - span<T>
    - span<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: operator!=(span<T> const& lhs, span<U> const& rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/span.hpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - equal
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: bool operator!=(span<T> const& lhs, span<U> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl::stream<Stream>::stream<Stream>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' io_context'
    - ' ctx'
    argTypes:
    - io_context
    - ssl::context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: libtorrent::ssl_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - ssl::stream<Stream>::stream<Stream>
    linkageType: ''
    returnType: void
    signature: void ssl_stream(io_context& io_context, ssl::context& ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<S>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:64,1
    - Dst: ssl::stream<Stream>::stream<Stream>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' s'
    - ' ctx'
    argTypes:
    - S
    - ssl::context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: libtorrent::ssl_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - std::forward<S>
    - ssl::stream<Stream>::stream<Stream>
    linkageType: ''
    returnType: void
    signature: void ssl_stream(S&& s, ssl::context& ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::ssl_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_stream(ssl_stream&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 9
    functionsReached:
    - libtorrent::get_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: libtorrent::handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::ssl::get_handle
    linkageType: ''
    returnType: ssl::stream_handle_type
    signature: ssl::stream_handle_type handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::get_context_handle
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: libtorrent::context_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::ssl::get_context_handle
    linkageType: ''
    returnType: ssl::context_handle_type
    signature: ssl::context_handle_type context_handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_host_name
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:92,1
    - Dst: boost::throw_exception
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:93,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: libtorrent::set_host_name
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 1
    functionsReached:
    - boost::system::system_error
    - libtorrent::set_host_name
    - boost::throw_exception
    linkageType: ''
    returnType: void
    signature: void set_host_name(std::string const& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::set_host_name
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:98,1
    - Dst: libtorrent::handle
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: libtorrent::set_host_name
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::ssl::set_host_name
    - libtorrent::handle
    linkageType: ''
    returnType: void
    signature: void set_host_name(std::string const& name, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_verify_callback
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - ' ec'
    argTypes:
    - T
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: libtorrent::set_verify_callback
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::set_verify_callback
    linkageType: ''
    returnType: void
    signature: void set_verify_callback(T const& fun, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:114,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:114,1
    - Dst: libtorrent::connected
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:116,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:116,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' endpoint'
    - ' h'
    argTypes:
    - endpoint_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: libtorrent::async_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::wrap_allocator
    - libtorrent::move
    - libtorrent::connected
    - next_layer
    linkageType: ''
    returnType: void
    signature: void async_connect(endpoint_type const& endpoint, Handler const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:124,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:124,1
    - Dst: libtorrent::handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:126,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:126,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: libtorrent::async_accept_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::wrap_allocator
    - libtorrent::move
    - libtorrent::handshake
    - async_handshake
    linkageType: ''
    returnType: void
    signature: void async_accept_handshake(Handler const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: libtorrent::accept_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::handshake
    linkageType: ''
    returnType: void
    signature: void accept_handshake(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:140,1
    - Dst: libtorrent::async_shutdown
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:141,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: libtorrent::async_shutdown
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::async_shutdown
    - libtorrent::move
    - next_layer
    linkageType: ''
    returnType: void
    signature: void async_shutdown(Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::shutdown
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: libtorrent::shutdown
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::shutdown
    linkageType: ''
    returnType: void
    signature: void shutdown(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::async_read_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:152,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffers'
    - handler
    argTypes:
    - Mutable_Buffers
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: libtorrent::async_read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::move
    - libtorrent::async_read_some
    linkageType: ''
    returnType: void
    signature: void async_read_some(Mutable_Buffers const& buffers, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - Mutable_Buffers
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: libtorrent::read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(Mutable_Buffers const& buffers, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - SettableSocketOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 11
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void set_option(SettableSocketOption const& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SettableSocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 11
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void set_option(SettableSocketOption const& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - GettableSocketOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 10
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void get_option(GettableSocketOption& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - GettableSocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 10
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void get_option(GettableSocketOption& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - Mutable_Buffers
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: libtorrent::read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(Mutable_Buffers const& buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - IO_Control_Command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: libtorrent::io_control
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void io_control(IO_Control_Command& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' ec'
    argTypes:
    - IO_Control_Command
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::io_control
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void io_control(IO_Control_Command& ioc, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: libtorrent::non_blocking
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: libtorrent::non_blocking
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::async_write_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:219,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffers'
    - handler
    argTypes:
    - Const_Buffers
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: libtorrent::async_write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::async_write_some
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_write_some(Const_Buffers const& buffers, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - Const_Buffers
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: libtorrent::write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(Const_Buffers const& buffers, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<sock_type&>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: libtorrent::available
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - const_cast<sock_type&>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<sock_type&>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: libtorrent::available
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - const_cast<sock_type&>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t available(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' endpoint'
    argTypes:
    - endpoint_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: libtorrent::bind
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 16
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void bind(endpoint_type const& endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' endpoint'
    - ' ec'
    argTypes:
    - endpoint_type
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: libtorrent::bind
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 16
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void bind(endpoint_type const& endpoint, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - protocol_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: libtorrent::open
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void open(protocol_type const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - protocol_type
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::open
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void open(protocol_type const& p, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: libtorrent::is_open
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 13
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 13
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void close(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: libtorrent::remote_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type remote_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: libtorrent::remote_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type remote_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 24
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type local_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 24
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type local_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lowest_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: '& lowest_layer()'
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lowest_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: '& lowest_layer() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: '& next_layer()'
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: '& next_layer() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:331,1
    - Dst: async_handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:335,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:335,1
    - Dst: libtorrent::handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:337,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:337,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 339
    functionName: libtorrent::connected
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 3
    functionsReached:
    - h
    - libtorrent::wrap_allocator
    - libtorrent::handshake
    - async_handshake
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void connected(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: libtorrent::handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 3
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void handshake(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl::stream<Stream>::stream<Stream>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' io_context'
    - ' ctx'
    argTypes:
    - io_context
    - ssl::context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: libtorrent::ssl_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - ssl::stream<Stream>::stream<Stream>
    linkageType: ''
    returnType: void
    signature: void ssl_stream(io_context& io_context, ssl::context& ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<S>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:64,1
    - Dst: ssl::stream<Stream>::stream<Stream>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' s'
    - ' ctx'
    argTypes:
    - S
    - ssl::context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: libtorrent::ssl_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - std::forward<S>
    - ssl::stream<Stream>::stream<Stream>
    linkageType: ''
    returnType: void
    signature: void ssl_stream(S&& s, ssl::context& ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: libtorrent::ssl_stream
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_stream(ssl_stream&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get_executor
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::get_executor
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::get_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::get_handle
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: libtorrent::handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::ssl::get_handle
    linkageType: ''
    returnType: ssl::stream_handle_type
    signature: ssl::stream_handle_type handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::get_context_handle
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: libtorrent::context_handle
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::ssl::get_context_handle
    linkageType: ''
    returnType: ssl::context_handle_type
    signature: ssl::context_handle_type context_handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_host_name
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:92,1
    - Dst: boost::throw_exception
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:93,1
    - Dst: boost::system::system_error
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: libtorrent::set_host_name
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 2
    functionsReached:
    - boost::system::system_error
    - libtorrent::set_host_name
    - boost::throw_exception
    linkageType: ''
    returnType: void
    signature: void set_host_name(std::string const& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::ssl::set_host_name
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:98,1
    - Dst: libtorrent::handle
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' ec'
    argTypes:
    - std::string
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: libtorrent::set_host_name
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::ssl::set_host_name
    - libtorrent::handle
    linkageType: ''
    returnType: void
    signature: void set_host_name(std::string const& name, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::set_verify_callback
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fun'
    - ' ec'
    argTypes:
    - T
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: libtorrent::set_verify_callback
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::set_verify_callback
    linkageType: ''
    returnType: void
    signature: void set_verify_callback(T const& fun, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:114,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:114,1
    - Dst: libtorrent::connected
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:116,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:116,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' endpoint'
    - ' h'
    argTypes:
    - endpoint_type
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: libtorrent::async_connect
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::wrap_allocator
    - libtorrent::move
    - libtorrent::connected
    - next_layer
    linkageType: ''
    returnType: void
    signature: void async_connect(endpoint_type const& endpoint, Handler const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:124,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:124,1
    - Dst: libtorrent::handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:126,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:126,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: libtorrent::async_accept_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::wrap_allocator
    - libtorrent::move
    - libtorrent::handshake
    - async_handshake
    linkageType: ''
    returnType: void
    signature: void async_accept_handshake(Handler const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: libtorrent::accept_handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::handshake
    linkageType: ''
    returnType: void
    signature: void accept_handshake(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:140,1
    - Dst: libtorrent::async_shutdown
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:141,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: libtorrent::async_shutdown
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::async_shutdown
    - libtorrent::move
    - next_layer
    linkageType: ''
    returnType: void
    signature: void async_shutdown(Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::shutdown
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: libtorrent::shutdown
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::shutdown
    linkageType: ''
    returnType: void
    signature: void shutdown(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::async_read_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:152,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffers'
    - handler
    argTypes:
    - Mutable_Buffers
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: libtorrent::async_read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::move
    - libtorrent::async_read_some
    linkageType: ''
    returnType: void
    signature: void async_read_some(Mutable_Buffers const& buffers, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - Mutable_Buffers
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: libtorrent::read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 7
    functionsReached:
    - libtorrent::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(Mutable_Buffers const& buffers, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - SettableSocketOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 11
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void set_option(SettableSocketOption const& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - SettableSocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: libtorrent::set_option
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 11
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void set_option(SettableSocketOption const& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - GettableSocketOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 10
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void get_option(GettableSocketOption& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt'
    - ' ec'
    argTypes:
    - GettableSocketOption
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: libtorrent::get_option
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 10
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void get_option(GettableSocketOption& opt, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::read_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - Mutable_Buffers
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: libtorrent::read_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(Mutable_Buffers const& buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ioc'
    argTypes:
    - IO_Control_Command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: libtorrent::io_control
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void io_control(IO_Control_Command& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ioc'
    - ' ec'
    argTypes:
    - IO_Control_Command
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: libtorrent::io_control
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void io_control(IO_Control_Command& ioc, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: libtorrent::non_blocking
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - ' ec'
    argTypes:
    - bool
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: libtorrent::non_blocking
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void non_blocking(bool b, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::async_write_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:219,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffers'
    - handler
    argTypes:
    - Const_Buffers
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: libtorrent::async_write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::async_write_some
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void async_write_some(Const_Buffers const& buffers, Handler handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::write_some
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - Const_Buffers
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: libtorrent::write_some
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::write_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(Const_Buffers const& buffers, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<sock_type&>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: libtorrent::available
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - const_cast<sock_type&>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<sock_type&>
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: libtorrent::available
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - const_cast<sock_type&>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t available(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' endpoint'
    argTypes:
    - endpoint_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: libtorrent::bind
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 16
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void bind(endpoint_type const& endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' endpoint'
    - ' ec'
    argTypes:
    - endpoint_type
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: libtorrent::bind
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 16
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void bind(endpoint_type const& endpoint, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - protocol_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: libtorrent::open
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void open(protocol_type const& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' ec'
    argTypes:
    - protocol_type
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: libtorrent::open
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void open(protocol_type const& p, error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: libtorrent::is_open
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 13
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: libtorrent::close
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 13
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: void
    signature: void close(error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: libtorrent::remote_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type remote_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: libtorrent::remote_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type remote_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 24
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type local_endpoint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: libtorrent::local_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 24
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: endpoint_type
    signature: endpoint_type local_endpoint(error_code& ec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lowest_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: '& lowest_layer()'
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lowest_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: '& lowest_layer() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: '& next_layer()'
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: '& next_layer() const'
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 0
    functionsReached:
    - next_layer
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:331,1
    - Dst: async_handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:335,1
    - Dst: libtorrent::wrap_allocator
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:335,1
    - Dst: libtorrent::handshake
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:337,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:337,1
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 339
    functionName: libtorrent::connected
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 4
    functionsReached:
    - h
    - libtorrent::wrap_allocator
    - libtorrent::handshake
    - async_handshake
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: void connected(error_code const& e, Handler h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/libtorrent/include/libtorrent/ssl_stream.hpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' e'
    - h
    argTypes:
    - error_code
    - Handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: libtorrent::handshake
    functionSourceFile: /src/libtorrent/include/libtorrent/ssl_stream.hpp
    functionUses: 6
    functionsReached:
    - h
    linkageType: ''
    returnType: void
    signature: void handshake(error_code const& e, Handler h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Proto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::address_size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 12
    functionsReached:
    - rand_v6
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t address_size(Proto p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:74,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:76,1
    - Dst: to_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:76,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:78,1
    - Dst: to_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:80,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' out'
    argTypes:
    - address
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: libtorrent::aux::write_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 11
    functionsReached:
    - libtorrent::aux::is_v6
    - libtorrent::aux::is_v4
    - to_v4
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - to_v6
    linkageType: ''
    returnType: void
    signature: void write_address(address const& a, OutIt&& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:88,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::read_v4_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 12
    functionsReached:
    - address_v4
    - libtorrent::aux::read_uint32
    linkageType: ''
    returnType: address_v4
    signature: address_v4 read_v4_address(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:97,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::read_v6_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::read_uint8
    - address_v6
    linkageType: ''
    returnType: address_v6
    signature: address_v6 read_v6_address(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:104,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:104,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:105,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' e'
    - ' out'
    argTypes:
    - Endpoint
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::write_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 39
    functionsReached:
    - libtorrent::aux::write_address
    - port
    - address
    - libtorrent::aux::write_uint16
    linkageType: ''
    returnType: void
    signature: void write_endpoint(Endpoint const& e, OutIt&& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:111,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:112,1
    - Dst: Endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_v4_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 0
    functionsReached:
    - Endpoint
    - libtorrent::aux::read_v4_address
    - libtorrent::aux::read_uint16
    linkageType: ''
    returnType: Endpoint
    signature: Endpoint read_v4_endpoint(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:119,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:120,1
    - Dst: Endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_v6_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 0
    functionsReached:
    - Endpoint
    - libtorrent::aux::read_v6_address
    - libtorrent::aux::read_uint16
    linkageType: ''
    returnType: Endpoint
    signature: Endpoint read_v6_endpoint(InIt&& in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:128,1
    - Dst: list_size
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:129,1
    - Dst: list_at
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:131,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:132,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:133,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:134,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:135,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:136,1
    - Dst: libtorrent::aux::read_v4_endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:136,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:137,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:138,1
    - Dst: libtorrent::aux::read_v6_endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - libtorrent::bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::read_endpoint_list
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 0
    functionsReached:
    - list_size
    - libtorrent::aux::read_v4_endpoint
    - bdecode_node::type
    - std::vector::push_back
    - libtorrent::aux::read_v6_endpoint
    - bdecode_node::string_length
    - type
    - list_at
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: std::vector<EndpointType>
    signature: std::vector<EndpointType> read_endpoint_list(libtorrent::bdecode_node
      const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Proto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::address_size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 12
    functionsReached:
    - rand_v6
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t address_size(Proto p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:74,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:76,1
    - Dst: to_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:76,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:78,1
    - Dst: to_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:80,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' out'
    argTypes:
    - address
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: libtorrent::aux::write_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::is_v6
    - libtorrent::aux::is_v4
    - to_v4
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - to_v6
    linkageType: ''
    returnType: void
    signature: void write_address(address const& a, OutIt&& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:88,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::read_v4_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 13
    functionsReached:
    - address_v4
    - libtorrent::aux::read_uint32
    linkageType: ''
    returnType: address_v4
    signature: address_v4 read_v4_address(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:97,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::read_v6_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::read_uint8
    - address_v6
    linkageType: ''
    returnType: address_v6
    signature: address_v6 read_v6_address(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:104,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:104,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:105,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' e'
    - ' out'
    argTypes:
    - Endpoint
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::write_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 39
    functionsReached:
    - libtorrent::aux::write_address
    - port
    - address
    - libtorrent::aux::write_uint16
    linkageType: ''
    returnType: void
    signature: void write_endpoint(Endpoint const& e, OutIt&& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:111,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:112,1
    - Dst: Endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_v4_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 1
    functionsReached:
    - Endpoint
    - libtorrent::aux::read_v4_address
    - libtorrent::aux::read_uint16
    linkageType: ''
    returnType: Endpoint
    signature: Endpoint read_v4_endpoint(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:119,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:120,1
    - Dst: Endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_v6_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 1
    functionsReached:
    - Endpoint
    - libtorrent::aux::read_v6_address
    - libtorrent::aux::read_uint16
    linkageType: ''
    returnType: Endpoint
    signature: Endpoint read_v6_endpoint(InIt&& in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:128,1
    - Dst: list_size
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:129,1
    - Dst: list_at
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:131,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:132,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:133,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:134,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:135,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:136,1
    - Dst: libtorrent::aux::read_v4_endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:136,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:137,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:138,1
    - Dst: libtorrent::aux::read_v6_endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - libtorrent::bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::read_endpoint_list
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 0
    functionsReached:
    - list_size
    - libtorrent::aux::read_v4_endpoint
    - bdecode_node::type
    - std::vector::push_back
    - libtorrent::aux::read_v6_endpoint
    - bdecode_node::string_length
    - type
    - list_at
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: std::vector<EndpointType>
    signature: std::vector<EndpointType> read_endpoint_list(libtorrent::bdecode_node
      const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Proto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::address_size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 12
    functionsReached:
    - rand_v6
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t address_size(Proto p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:74,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:76,1
    - Dst: to_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:76,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:78,1
    - Dst: to_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:80,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' out'
    argTypes:
    - address
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: libtorrent::aux::write_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 13
    functionsReached:
    - libtorrent::aux::is_v6
    - libtorrent::aux::is_v4
    - to_v4
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - to_v6
    linkageType: ''
    returnType: void
    signature: void write_address(address const& a, OutIt&& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:88,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::read_v4_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 14
    functionsReached:
    - address_v4
    - libtorrent::aux::read_uint32
    linkageType: ''
    returnType: address_v4
    signature: address_v4 read_v4_address(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:97,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::read_v6_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::read_uint8
    - address_v6
    linkageType: ''
    returnType: address_v6
    signature: address_v6 read_v6_address(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:104,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:104,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:105,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' e'
    - ' out'
    argTypes:
    - Endpoint
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::write_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 39
    functionsReached:
    - libtorrent::aux::write_address
    - port
    - address
    - libtorrent::aux::write_uint16
    linkageType: ''
    returnType: void
    signature: void write_endpoint(Endpoint const& e, OutIt&& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:111,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:112,1
    - Dst: Endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_v4_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 2
    functionsReached:
    - Endpoint
    - libtorrent::aux::read_v4_address
    - libtorrent::aux::read_uint16
    linkageType: ''
    returnType: Endpoint
    signature: Endpoint read_v4_endpoint(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:119,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:120,1
    - Dst: Endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_v6_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 2
    functionsReached:
    - Endpoint
    - libtorrent::aux::read_v6_address
    - libtorrent::aux::read_uint16
    linkageType: ''
    returnType: Endpoint
    signature: Endpoint read_v6_endpoint(InIt&& in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:128,1
    - Dst: list_size
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:129,1
    - Dst: list_at
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:131,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:132,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:133,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:134,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:135,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:136,1
    - Dst: libtorrent::aux::read_v4_endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:136,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:137,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:138,1
    - Dst: libtorrent::aux::read_v6_endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - libtorrent::bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::read_endpoint_list
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 0
    functionsReached:
    - list_size
    - libtorrent::aux::read_v4_endpoint
    - bdecode_node::type
    - std::vector::push_back
    - libtorrent::aux::read_v6_endpoint
    - bdecode_node::string_length
    - type
    - list_at
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: std::vector<EndpointType>
    signature: std::vector<EndpointType> read_endpoint_list(libtorrent::bdecode_node
      const& n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Proto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::address_size
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 12
    functionsReached:
    - rand_v6
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t address_size(Proto p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::is_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:74,1
    - Dst: libtorrent::aux::write_uint32
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:76,1
    - Dst: to_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:76,1
    - Dst: libtorrent::aux::is_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:78,1
    - Dst: to_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:80,1
    - Dst: libtorrent::aux::write_uint8
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' a'
    - ' out'
    argTypes:
    - address
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: libtorrent::aux::write_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::is_v6
    - libtorrent::aux::is_v4
    - to_v4
    - libtorrent::aux::write_uint32
    - libtorrent::aux::write_uint8
    - to_v6
    linkageType: ''
    returnType: void
    signature: void write_address(address const& a, OutIt&& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_uint32
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:88,1
    - Dst: address_v4
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::read_v4_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 15
    functionsReached:
    - address_v4
    - libtorrent::aux::read_uint32
    linkageType: ''
    returnType: address_v4
    signature: address_v4 read_v4_address(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_uint8
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:97,1
    - Dst: address_v6
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::read_v6_address
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::read_uint8
    - address_v6
    linkageType: ''
    returnType: address_v6
    signature: address_v6 read_v6_address(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:104,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:104,1
    - Dst: libtorrent::aux::write_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:105,1
    - Dst: port
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' e'
    - ' out'
    argTypes:
    - Endpoint
    - OutIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::write_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 39
    functionsReached:
    - libtorrent::aux::write_address
    - port
    - address
    - libtorrent::aux::write_uint16
    linkageType: ''
    returnType: void
    signature: void write_endpoint(Endpoint const& e, OutIt&& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_v4_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:111,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:112,1
    - Dst: Endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_v4_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 3
    functionsReached:
    - Endpoint
    - libtorrent::aux::read_v4_address
    - libtorrent::aux::read_uint16
    linkageType: ''
    returnType: Endpoint
    signature: Endpoint read_v4_endpoint(InIt&& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_v6_address
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:119,1
    - Dst: libtorrent::aux::read_uint16
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:120,1
    - Dst: Endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_v6_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 3
    functionsReached:
    - Endpoint
    - libtorrent::aux::read_v6_address
    - libtorrent::aux::read_uint16
    linkageType: ''
    returnType: Endpoint
    signature: Endpoint read_v6_endpoint(InIt&& in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:128,1
    - Dst: list_size
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:129,1
    - Dst: list_at
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:131,1
    - Dst: bdecode_node::type
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:132,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:133,1
    - Dst: bdecode_node::string_ptr
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:134,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:135,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:136,1
    - Dst: libtorrent::aux::read_v4_endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:136,1
    - Dst: bdecode_node::string_length
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:137,1
    - Dst: std::vector::push_back
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:138,1
    - Dst: libtorrent::aux::read_v6_endpoint
      Src: /src/libtorrent/include/libtorrent/socket_io.hpp:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - libtorrent::bdecode_node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: libtorrent::aux::read_endpoint_list
    functionSourceFile: /src/libtorrent/include/libtorrent/socket_io.hpp
    functionUses: 0
    functionsReached:
    - list_size
    - libtorrent::aux::read_v4_endpoint
    - bdecode_node::type
    - std::vector::push_back
    - libtorrent::aux::read_v6_endpoint
    - bdecode_node::string_length
    - type
    - list_at
    - bdecode_node::string_ptr
    linkageType: ''
    returnType: std::vector<EndpointType>
    signature: std::vector<EndpointType> read_endpoint_list(libtorrent::bdecode_node
      const& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dos_blocker
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:51,1
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:60,1
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: libtorrent::dht::dos_blocker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::dos_blocker
    - std::max
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dos_blocker
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::set_rate_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void set_rate_limit(int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: libtorrent::dht::set_block_timer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void set_block_timer(int t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::node_ban_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_ban_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dos_blocker
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:51,1
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:60,1
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: libtorrent::dht::dos_blocker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::dos_blocker
    - std::max
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dos_blocker
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::set_rate_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void set_rate_limit(int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: libtorrent::dht::set_block_timer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void set_block_timer(int t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::node_ban_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_ban_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dos_blocker
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:51,1
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:60,1
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: libtorrent::dht::dos_blocker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::dos_blocker
    - std::max
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dos_blocker
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::set_rate_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void set_rate_limit(int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: libtorrent::dht::set_block_timer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void set_block_timer(int t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::node_ban_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_ban_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dos_blocker
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:51,1
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:60,1
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: libtorrent::dht::dos_blocker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::dos_blocker
    - std::max
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dos_blocker
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::set_rate_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void set_rate_limit(int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: libtorrent::dht::set_block_timer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: void
    signature: void set_block_timer(int t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::node_ban_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dos_blocker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_ban_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:73,1
    - Dst: libtorrent::dht::dht_logger
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: libtorrent::dht::dht_logger
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::dht::dht_logger
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dht_logger
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: libtorrent::dht::dht_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::dht_observer
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dht_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:73,1
    - Dst: libtorrent::dht::dht_logger
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: libtorrent::dht::dht_logger
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::dht::dht_logger
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dht_logger
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: libtorrent::dht::dht_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::dht_observer
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dht_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:73,1
    - Dst: libtorrent::dht::dht_logger
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: libtorrent::dht::dht_logger
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::dht::dht_logger
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dht_logger
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: libtorrent::dht::dht_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::dht_observer
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dht_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:73,1
    - Dst: libtorrent::dht::dht_logger
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: libtorrent::dht::dht_logger
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::dht::dht_logger
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dht_logger
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::dht_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: libtorrent::dht::dht_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_observer.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::dht_observer
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT dht_observer
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:53,1
    - Dst: node_endpoint::id::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:53,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:55,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:56,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - protocol
    - ' in'
    argTypes:
    - udp
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::read_node_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/io.hpp
    functionUses: 4
    functionsReached:
    - aux::read_v6_endpoint<udp::endpoint>
    - rand_v6
    - std::copy
    - aux::read_v4_endpoint<udp::endpoint>
    - node_endpoint::id::begin
    linkageType: ''
    returnType: node_endpoint
    signature: node_endpoint read_node_endpoint(udp protocol, InIt&& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:53,1
    - Dst: node_endpoint::id::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:53,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:55,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:56,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - protocol
    - ' in'
    argTypes:
    - udp
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::read_node_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/io.hpp
    functionUses: 4
    functionsReached:
    - aux::read_v6_endpoint<udp::endpoint>
    - rand_v6
    - std::copy
    - aux::read_v4_endpoint<udp::endpoint>
    - node_endpoint::id::begin
    linkageType: ''
    returnType: node_endpoint
    signature: node_endpoint read_node_endpoint(udp protocol, InIt&& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:53,1
    - Dst: node_endpoint::id::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:53,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:55,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:56,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - protocol
    - ' in'
    argTypes:
    - udp
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::read_node_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/io.hpp
    functionUses: 4
    functionsReached:
    - aux::read_v6_endpoint<udp::endpoint>
    - rand_v6
    - std::copy
    - aux::read_v4_endpoint<udp::endpoint>
    - node_endpoint::id::begin
    linkageType: ''
    returnType: node_endpoint
    signature: node_endpoint read_node_endpoint(udp protocol, InIt&& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:53,1
    - Dst: node_endpoint::id::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:53,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:55,1
    - Dst: aux::read_v6_endpoint<udp::endpoint>
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:56,1
    - Dst: aux::read_v4_endpoint<udp::endpoint>
      Src: /src/libtorrent/include/libtorrent/kademlia/io.hpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - protocol
    - ' in'
    argTypes:
    - udp
    - InIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::read_node_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/io.hpp
    functionUses: 4
    functionsReached:
    - aux::read_v6_endpoint<udp::endpoint>
    - rand_v6
    - std::copy
    - aux::read_v4_endpoint<udp::endpoint>
    - node_endpoint::id::begin
    linkageType: ''
    returnType: node_endpoint
    signature: node_endpoint read_node_endpoint(udp protocol, InIt&& in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:58,1
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:59,1
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:60,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:63,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:73,1
    - Dst: min_time
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::node_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    - min_time
    - std::make_tuple
    - address
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT node_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: libtorrent::dht::node_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::dht::pinged
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pinged() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::dht::set_pinged
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_pinged()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::dht::timed_out
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: void
    signature: void timed_out()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::dht::fail_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: int
    signature: int fail_count() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::reset_fail_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: void
    signature: void reset_fail_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::ep
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint ep() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::dht::confirmed
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool confirmed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::dht::addr
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 4
    functionsReached:
    - address
    linkageType: ''
    returnType: address
    signature: address addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::dht::port
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: operator<(node_entry const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    linkageType: ''
    returnType: bool
    signature: bool operator<(node_entry const& rhs) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:58,1
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:59,1
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:60,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:63,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:73,1
    - Dst: min_time
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::node_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    - min_time
    - std::make_tuple
    - address
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT node_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: libtorrent::dht::node_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::dht::pinged
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pinged() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::dht::set_pinged
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_pinged()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::dht::timed_out
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: void
    signature: void timed_out()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::dht::fail_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: int
    signature: int fail_count() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::reset_fail_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: void
    signature: void reset_fail_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::ep
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint ep() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::dht::confirmed
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool confirmed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::dht::addr
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 4
    functionsReached:
    - address
    linkageType: ''
    returnType: address
    signature: address addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::dht::port
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: operator<(node_entry const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    linkageType: ''
    returnType: bool
    signature: bool operator<(node_entry const& rhs) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:58,1
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:59,1
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:60,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:63,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:73,1
    - Dst: min_time
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::node_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    - min_time
    - std::make_tuple
    - address
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT node_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: libtorrent::dht::node_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::dht::pinged
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pinged() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::dht::set_pinged
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_pinged()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::dht::timed_out
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: void
    signature: void timed_out()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::dht::fail_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: int
    signature: int fail_count() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::reset_fail_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: void
    signature: void reset_fail_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::ep
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint ep() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::dht::confirmed
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool confirmed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::dht::addr
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 4
    functionsReached:
    - address
    linkageType: ''
    returnType: address
    signature: address addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::dht::port
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: operator<(node_entry const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    linkageType: ''
    returnType: bool
    signature: bool operator<(node_entry const& rhs) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:58,1
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:59,1
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:60,1
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:63,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:73,1
    - Dst: min_time
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::node_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    - min_time
    - std::make_tuple
    - address
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT node_entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: libtorrent::dht::node_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::dht::pinged
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pinged() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::dht::set_pinged
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_pinged()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: libtorrent::dht::timed_out
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: void
    signature: void timed_out()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::dht::fail_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: int
    signature: int fail_count() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::pinged
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::reset_fail_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::pinged
    linkageType: ''
    returnType: void
    signature: void reset_fail_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::ep
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: udp::endpoint
    signature: udp::endpoint ep() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: libtorrent::dht::confirmed
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool confirmed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: address
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: libtorrent::dht::addr
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 4
    functionsReached:
    - address
    linkageType: ''
    returnType: address
    signature: address addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::dht::port
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    - Dst: std::make_tuple
      Src: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - node_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: operator<(node_entry const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node_entry.hpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    linkageType: ''
    returnType: bool
    signature: bool operator<(node_entry const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' node'
    - ' target'
    - cb
    argTypes:
    - node
    - node_id
    - message_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: libtorrent::dht::direct_traversal
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void direct_traversal(node& node\n\t\t, node_id const& target\n\t\t,
      message_callback cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::dht::name
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_cb
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:62,1
    - Dst: done
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: libtorrent::dht::invoke_cb
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - m_cb
    - done
    linkageType: ''
    returnType: void
    signature: void invoke_cb(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algo
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::direct_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void direct_observer(std::shared_ptr<traversal_algorithm> algo\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<direct_traversal*>
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:82,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::algorithm
    - static_cast<direct_traversal*>
    linkageType: ''
    returnType: void
    signature: void reply(msg const& m) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<direct_traversal*>
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:91,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::algorithm
    - static_cast<direct_traversal*>
    linkageType: ''
    returnType: void
    signature: void timeout() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' node'
    - ' target'
    - cb
    argTypes:
    - node
    - node_id
    - message_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: libtorrent::dht::direct_traversal
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void direct_traversal(node& node\n\t\t, node_id const& target\n\t\t,
      message_callback cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::dht::name
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_cb
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:62,1
    - Dst: done
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: libtorrent::dht::invoke_cb
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - m_cb
    - done
    linkageType: ''
    returnType: void
    signature: void invoke_cb(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algo
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::direct_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void direct_observer(std::shared_ptr<traversal_algorithm> algo\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<direct_traversal*>
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:82,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::algorithm
    - static_cast<direct_traversal*>
    linkageType: ''
    returnType: void
    signature: void reply(msg const& m) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<direct_traversal*>
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:91,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::algorithm
    - static_cast<direct_traversal*>
    linkageType: ''
    returnType: void
    signature: void timeout() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' node'
    - ' target'
    - cb
    argTypes:
    - node
    - node_id
    - message_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: libtorrent::dht::direct_traversal
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void direct_traversal(node& node\n\t\t, node_id const& target\n\t\t,
      message_callback cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::dht::name
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_cb
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:62,1
    - Dst: done
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: libtorrent::dht::invoke_cb
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - m_cb
    - done
    linkageType: ''
    returnType: void
    signature: void invoke_cb(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algo
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::direct_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void direct_observer(std::shared_ptr<traversal_algorithm> algo\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<direct_traversal*>
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:82,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::algorithm
    - static_cast<direct_traversal*>
    linkageType: ''
    returnType: void
    signature: void reply(msg const& m) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<direct_traversal*>
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:91,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::algorithm
    - static_cast<direct_traversal*>
    linkageType: ''
    returnType: void
    signature: void timeout() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' node'
    - ' target'
    - cb
    argTypes:
    - node
    - node_id
    - message_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: libtorrent::dht::direct_traversal
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void direct_traversal(node& node\n\t\t, node_id const& target\n\t\t,
      message_callback cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: libtorrent::dht::name
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_cb
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:62,1
    - Dst: done
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: libtorrent::dht::invoke_cb
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - m_cb
    - done
    linkageType: ''
    returnType: void
    signature: void invoke_cb(msg const& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algo
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: libtorrent::dht::direct_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void direct_observer(std::shared_ptr<traversal_algorithm> algo\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<direct_traversal*>
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:82,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - msg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::algorithm
    - static_cast<direct_traversal*>
    linkageType: ''
    returnType: void
    signature: void reply(msg const& m) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<direct_traversal*>
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:91,1
    - Dst: libtorrent::dht::algorithm
      Src: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: libtorrent::dht::timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/direct_request.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::algorithm
    - static_cast<direct_traversal*>
    linkageType: ''
    returnType: void
    signature: void timeout() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_item.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: libtorrent::dht::get_item_observer::get_item_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_item.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_item.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: libtorrent::dht::get_item_observer::get_item_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_item.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_item.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: libtorrent::dht::get_item_observer::get_item_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_item.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_item.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: libtorrent::dht::get_item_observer::get_item_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_item.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_item_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::set_data
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 8
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_data(item&& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::set_data
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_data(item const& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:80,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    - token
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::put_data_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void put_data_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id, std::string token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: done
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 0
    functionsReached:
    - done
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::set_data
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 8
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_data(item&& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::set_data
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_data(item const& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:80,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    - token
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::put_data_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void put_data_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id, std::string token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: done
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 0
    functionsReached:
    - done
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::set_data
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 8
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_data(item&& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::set_data
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_data(item const& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:80,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    - token
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::put_data_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void put_data_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id, std::string token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: done
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 0
    functionsReached:
    - done
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: libtorrent::dht::set_data
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 8
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_data(item&& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - item
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: libtorrent::dht::set_data
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_data(item const& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:80,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    - token
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::put_data_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void put_data_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id, std::string token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: done
      Src: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/put_data.hpp
    functionUses: 0
    functionsReached:
    - done
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:87,1
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 104
    functionName: std::enable_shared_from_this<traversal_algorithm>
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - shared_from_this
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<traversal_algorithm>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::dht::target
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm(traversal_algorithm const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::invoke_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int invoke_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::dht::branch_factor
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int branch_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::get_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: node & get_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::dht::abort
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::dht::invoke
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool invoke(observer_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::num_responses
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_responses() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::dht::num_timeouts
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_timeouts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: libtorrent::dht::num_sorted_results
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_sorted_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:87,1
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 104
    functionName: std::enable_shared_from_this<traversal_algorithm>
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - shared_from_this
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<traversal_algorithm>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::dht::target
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm(traversal_algorithm const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::invoke_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int invoke_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::dht::branch_factor
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int branch_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::get_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: node & get_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::dht::abort
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::dht::invoke
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool invoke(observer_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::num_responses
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_responses() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::dht::num_timeouts
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_timeouts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: libtorrent::dht::num_sorted_results
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_sorted_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: libtorrent::traversal_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void traversal_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:87,1
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 104
    functionName: std::enable_shared_from_this<traversal_algorithm>
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - shared_from_this
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<traversal_algorithm>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::dht::target
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm(traversal_algorithm const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::invoke_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int invoke_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::dht::branch_factor
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int branch_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::get_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: node & get_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::dht::abort
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::dht::invoke
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool invoke(observer_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::num_responses
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_responses() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::dht::num_timeouts
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_timeouts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: libtorrent::dht::num_sorted_results
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_sorted_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:86,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:87,1
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 104
    functionName: std::enable_shared_from_this<traversal_algorithm>
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_ASSERT
    - shared_from_this
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<traversal_algorithm>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: libtorrent::dht::target
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & target() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void traversal_algorithm(traversal_algorithm const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: libtorrent::dht::invoke_count
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int invoke_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: libtorrent::dht::branch_factor
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    linkageType: ''
    returnType: int
    signature: int branch_factor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::dht::get_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node
    signature: node & get_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: libtorrent::dht::abort
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::dht::invoke
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool invoke(observer_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::num_responses
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_responses() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::dht::num_timeouts
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_timeouts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: libtorrent::dht::num_sorted_results
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_sorted_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: libtorrent::traversal_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/traversal_algorithm.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: void
    signature: "void traversal_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algo
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: libtorrent::dht::announce_observer::announce_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void announce_observer(std::shared_ptr<traversal_algorithm> algo\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::announce_observer::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~socket_manager()
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~socket_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:109,1
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:134,1
    - Dst: libtorrent::dht::num_peers
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:135,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:146,1
    - Dst: libtorrent::dht::num_global_nodes
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:148,1
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:151,1
    - Dst: insert
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:200,1
    - Dst: erase
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:206,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: node_id
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 300
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::dht::num_global_nodes
    - is_v6
    - rand_v4
    - libtorrent::dht::size
    - libtorrent::dht::node
    - libtorrent::dht::protocol
    - libtorrent::dht::num_torrents
    - erase
    - insert
    - rand_v6
    - node_id
    - libtorrent::dht::num_peers
    - is_v4
    - protocol::family
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT node
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node(node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node(node&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::num_torrents
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::num_torrents
    linkageType: ''
    returnType: int
    signature: int num_torrents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_peers
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::num_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::num_peers
    linkageType: ''
    returnType: int
    signature: int num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: libtorrent::dht::nid
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & nid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: libtorrent::dht::search_id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t search_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: libtorrent::dht::size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 30
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_global_nodes
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: libtorrent::dht::num_global_nodes
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::num_global_nodes
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t num_global_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::data_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::num_torrents
    linkageType: ''
    returnType: int
    signature: int data_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - traversal_algorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::add_traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void add_traversal_algorithm(traversal_algorithm* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - traversal_algorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: libtorrent::dht::remove_traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: void remove_traversal_algorithm(traversal_algorithm* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: libtorrent::dht::settings
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings & settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::stats_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: counters
    signature: counters & stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: dht_observer
    signature: dht_observer * observer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: libtorrent::dht::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: udp
    signature: udp protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: libtorrent::dht::protocol_family_name
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocol_family_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: libtorrent::dht::protocol_nodes_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocol_nodes_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    - protocol::family
    linkageType: ''
    returnType: bool
    signature: bool native_address(udp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    - protocol::family
    linkageType: ''
    returnType: bool
    signature: bool native_address(tcp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v6
    - rand_v4
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool native_address(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algo
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: libtorrent::dht::announce_observer::announce_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void announce_observer(std::shared_ptr<traversal_algorithm> algo\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::announce_observer::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~socket_manager()
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~socket_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:109,1
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:134,1
    - Dst: libtorrent::dht::num_peers
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:135,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:146,1
    - Dst: libtorrent::dht::num_global_nodes
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:148,1
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:151,1
    - Dst: insert
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:200,1
    - Dst: erase
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:206,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: node_id
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 300
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::num_global_nodes
    - is_v6
    - rand_v4
    - libtorrent::dht::size
    - libtorrent::dht::node
    - libtorrent::dht::protocol
    - libtorrent::dht::num_torrents
    - erase
    - insert
    - rand_v6
    - node_id
    - libtorrent::dht::num_peers
    - is_v4
    - protocol::family
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT node
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node(node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node(node&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::num_torrents
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::dht::num_torrents
    linkageType: ''
    returnType: int
    signature: int num_torrents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_peers
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::num_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::num_peers
    linkageType: ''
    returnType: int
    signature: int num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: libtorrent::dht::nid
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & nid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: libtorrent::dht::search_id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t search_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: libtorrent::dht::size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 32
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_global_nodes
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: libtorrent::dht::num_global_nodes
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::num_global_nodes
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t num_global_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::data_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::num_torrents
    linkageType: ''
    returnType: int
    signature: int data_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - traversal_algorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::add_traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void add_traversal_algorithm(traversal_algorithm* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - traversal_algorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: libtorrent::dht::remove_traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: void remove_traversal_algorithm(traversal_algorithm* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: libtorrent::dht::settings
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings & settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::stats_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: counters
    signature: counters & stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: dht_observer
    signature: dht_observer * observer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: libtorrent::dht::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: udp
    signature: udp protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: libtorrent::dht::protocol_family_name
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocol_family_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: libtorrent::dht::protocol_nodes_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocol_nodes_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    - protocol::family
    linkageType: ''
    returnType: bool
    signature: bool native_address(udp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    - protocol::family
    linkageType: ''
    returnType: bool
    signature: bool native_address(tcp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v6
    - rand_v4
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool native_address(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algo
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: libtorrent::dht::announce_observer::announce_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void announce_observer(std::shared_ptr<traversal_algorithm> algo\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::announce_observer::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~socket_manager()
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~socket_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:109,1
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:134,1
    - Dst: libtorrent::dht::num_peers
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:135,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:146,1
    - Dst: libtorrent::dht::num_global_nodes
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:148,1
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:151,1
    - Dst: insert
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:200,1
    - Dst: erase
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:206,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: node_id
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 300
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::dht::num_global_nodes
    - is_v6
    - rand_v4
    - libtorrent::dht::size
    - libtorrent::dht::node
    - libtorrent::dht::protocol
    - libtorrent::dht::num_torrents
    - erase
    - insert
    - rand_v6
    - node_id
    - libtorrent::dht::num_peers
    - is_v4
    - protocol::family
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT node
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node(node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node(node&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::num_torrents
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::num_torrents
    linkageType: ''
    returnType: int
    signature: int num_torrents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_peers
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::num_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::dht::num_peers
    linkageType: ''
    returnType: int
    signature: int num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: libtorrent::dht::nid
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & nid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: libtorrent::dht::search_id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t search_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: libtorrent::dht::size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 34
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_global_nodes
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: libtorrent::dht::num_global_nodes
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::dht::num_global_nodes
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t num_global_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::data_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::num_torrents
    linkageType: ''
    returnType: int
    signature: int data_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - traversal_algorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::add_traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void add_traversal_algorithm(traversal_algorithm* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - traversal_algorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: libtorrent::dht::remove_traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: void remove_traversal_algorithm(traversal_algorithm* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: libtorrent::dht::settings
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings & settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::stats_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: counters
    signature: counters & stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: dht_observer
    signature: dht_observer * observer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: libtorrent::dht::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: udp
    signature: udp protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: libtorrent::dht::protocol_family_name
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocol_family_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: libtorrent::dht::protocol_nodes_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocol_nodes_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    - protocol::family
    linkageType: ''
    returnType: bool
    signature: bool native_address(udp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    - protocol::family
    linkageType: ''
    returnType: bool
    signature: bool native_address(tcp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v6
    - rand_v4
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool native_address(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algo
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: libtorrent::dht::announce_observer::announce_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void announce_observer(std::shared_ptr<traversal_algorithm> algo\n\t\t,
      udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::announce_observer::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~socket_manager()
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~socket_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::node
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:109,1
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:134,1
    - Dst: libtorrent::dht::num_peers
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:135,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:146,1
    - Dst: libtorrent::dht::num_global_nodes
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:148,1
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:151,1
    - Dst: insert
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:200,1
    - Dst: erase
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:206,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: node_id
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 300
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::num_global_nodes
    - is_v6
    - rand_v4
    - libtorrent::dht::size
    - libtorrent::dht::node
    - libtorrent::dht::protocol
    - libtorrent::dht::num_torrents
    - erase
    - insert
    - rand_v6
    - node_id
    - libtorrent::dht::num_peers
    - is_v4
    - protocol::family
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT node
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node(node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: libtorrent::dht::node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void node(node&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: libtorrent::dht::num_torrents
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 11
    functionsReached:
    - libtorrent::dht::num_torrents
    linkageType: ''
    returnType: int
    signature: int num_torrents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_peers
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: libtorrent::dht::num_peers
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::num_peers
    linkageType: ''
    returnType: int
    signature: int num_peers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: libtorrent::dht::nid
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & nid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: libtorrent::dht::search_id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t search_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: libtorrent::dht::size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 36
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: std::tuple<int, int, int>
    signature: std::tuple<int, int, int> size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_global_nodes
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: libtorrent::dht::num_global_nodes
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::num_global_nodes
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t num_global_nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::num_torrents
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: libtorrent::dht::data_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::num_torrents
    linkageType: ''
    returnType: int
    signature: int data_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - traversal_algorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: libtorrent::dht::add_traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void add_traversal_algorithm(traversal_algorithm* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - traversal_algorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: libtorrent::dht::remove_traversal_algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: void remove_traversal_algorithm(traversal_algorithm* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: libtorrent::dht::settings
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: aux::session_settings
    signature: aux::session_settings & settings() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: libtorrent::dht::stats_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: counters
    signature: counters & stats_counters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: dht_observer
    signature: dht_observer * observer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: libtorrent::dht::protocol
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: udp
    signature: udp protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: libtorrent::dht::protocol_family_name
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocol_family_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: libtorrent::dht::protocol_nodes_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocol_nodes_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    - protocol::family
    linkageType: ''
    returnType: bool
    signature: bool native_address(udp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    - Dst: protocol::family
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - tcp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    - protocol::family
    linkageType: ''
    returnType: bool
    signature: bool native_address(tcp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:234,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/node.hpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/node.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v6
    - rand_v4
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool native_address(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::dht_state
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_state.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_state
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::dht_state
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_state.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_state
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::dht_state
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_state.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_state
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: libtorrent::dht::dht_state
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_state.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_state
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 7
    argNames:
    - observer
    - ' ios'
    - ' send_fun'
    - ' settings'
    - ' cnt'
    - ' storage'
    - ' state'
    argTypes:
    - dht_observer*
    - io_context
    - send_fun_t
    - aux::session_settings
    - counters
    - dht_storage_interface
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: libtorrent::dht::dht_tracker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_tracker(dht_observer* observer\n\t\t\t, io_context& ios\n\t\t\t,
      send_fun_t const& send_fun\n\t\t\t, aux::session_settings const& settings\n\t\t\t,
      counters& cnt\n\t\t\t, dht_storage_interface& storage\n\t\t\t, dht_state const&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: libtorrent::dht::dht_tracker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_tracker(dht_tracker const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: libtorrent::dht::tracker_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_node(tracker_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: libtorrent::dht::tracker_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_node(tracker_node&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: libtorrent::dht::self
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<dht_tracker>
    signature: std::shared_ptr<dht_tracker> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 7
    argNames:
    - observer
    - ' ios'
    - ' send_fun'
    - ' settings'
    - ' cnt'
    - ' storage'
    - ' state'
    argTypes:
    - dht_observer*
    - io_context
    - send_fun_t
    - aux::session_settings
    - counters
    - dht_storage_interface
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: libtorrent::dht::dht_tracker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_tracker(dht_observer* observer\n\t\t\t, io_context& ios\n\t\t\t,
      send_fun_t const& send_fun\n\t\t\t, aux::session_settings const& settings\n\t\t\t,
      counters& cnt\n\t\t\t, dht_storage_interface& storage\n\t\t\t, dht_state const&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: libtorrent::dht::dht_tracker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_tracker(dht_tracker const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: libtorrent::dht::tracker_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_node(tracker_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: libtorrent::dht::tracker_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_node(tracker_node&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: libtorrent::dht::self
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<dht_tracker>
    signature: std::shared_ptr<dht_tracker> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 7
    argNames:
    - observer
    - ' ios'
    - ' send_fun'
    - ' settings'
    - ' cnt'
    - ' storage'
    - ' state'
    argTypes:
    - dht_observer*
    - io_context
    - send_fun_t
    - aux::session_settings
    - counters
    - dht_storage_interface
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: libtorrent::dht::dht_tracker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_tracker(dht_observer* observer\n\t\t\t, io_context& ios\n\t\t\t,
      send_fun_t const& send_fun\n\t\t\t, aux::session_settings const& settings\n\t\t\t,
      counters& cnt\n\t\t\t, dht_storage_interface& storage\n\t\t\t, dht_state const&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: libtorrent::dht::dht_tracker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_tracker(dht_tracker const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: libtorrent::dht::tracker_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_node(tracker_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: libtorrent::dht::tracker_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_node(tracker_node&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: libtorrent::dht::self
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<dht_tracker>
    signature: std::shared_ptr<dht_tracker> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 7
    argNames:
    - observer
    - ' ios'
    - ' send_fun'
    - ' settings'
    - ' cnt'
    - ' storage'
    - ' state'
    argTypes:
    - dht_observer*
    - io_context
    - send_fun_t
    - aux::session_settings
    - counters
    - dht_storage_interface
    - dht_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: libtorrent::dht::dht_tracker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dht_tracker(dht_observer* observer\n\t\t\t, io_context& ios\n\t\t\t,
      send_fun_t const& send_fun\n\t\t\t, aux::session_settings const& settings\n\t\t\t,
      counters& cnt\n\t\t\t, dht_storage_interface& storage\n\t\t\t, dht_state const&
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: libtorrent::dht::dht_tracker
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dht_tracker(dht_tracker const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: libtorrent::dht::tracker_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_node(tracker_node const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: libtorrent::dht::tracker_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tracker_node(tracker_node&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: libtorrent::dht::self
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_tracker.hpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    linkageType: ''
    returnType: std::shared_ptr<dht_tracker>
    signature: std::shared_ptr<dht_tracker> self()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' m'
    - ' ep'
    argTypes:
    - bdecode_node
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: libtorrent::dht::msg
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void msg(bdecode_node const& m, udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& operator=(msg const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg
    signature: msg & operator=(msg const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::verify_message_impl
      Src: /src/libtorrent/include/libtorrent/kademlia/msg.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msg'
    - (desc)
    - (ret)
    - error
    argTypes:
    - bdecode_node
    - key_desc_t[]
    - bdecode_node[]
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::verify_message
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::verify_message_impl
    linkageType: ''
    returnType: bool
    signature: "bool verify_message(bdecode_node const& msg, key_desc_t const (&desc)[Size]\n\t,
      bdecode_node (&ret)[Size], span<char> error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' m'
    - ' ep'
    argTypes:
    - bdecode_node
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: libtorrent::dht::msg
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void msg(bdecode_node const& m, udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& operator=(msg const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg
    signature: msg & operator=(msg const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::verify_message_impl
      Src: /src/libtorrent/include/libtorrent/kademlia/msg.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msg'
    - (desc)
    - (ret)
    - error
    argTypes:
    - bdecode_node
    - key_desc_t[]
    - bdecode_node[]
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::verify_message
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::verify_message_impl
    linkageType: ''
    returnType: bool
    signature: "bool verify_message(bdecode_node const& msg, key_desc_t const (&desc)[Size]\n\t,
      bdecode_node (&ret)[Size], span<char> error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' m'
    - ' ep'
    argTypes:
    - bdecode_node
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: libtorrent::dht::msg
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void msg(bdecode_node const& m, udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& operator=(msg const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg
    signature: msg & operator=(msg const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::verify_message_impl
      Src: /src/libtorrent/include/libtorrent/kademlia/msg.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msg'
    - (desc)
    - (ret)
    - error
    argTypes:
    - bdecode_node
    - key_desc_t[]
    - bdecode_node[]
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::verify_message
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::verify_message_impl
    linkageType: ''
    returnType: bool
    signature: "bool verify_message(bdecode_node const& msg, key_desc_t const (&desc)[Size]\n\t,
      bdecode_node (&ret)[Size], span<char> error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' m'
    - ' ep'
    argTypes:
    - bdecode_node
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: libtorrent::dht::msg
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void msg(bdecode_node const& m, udp::endpoint const& ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& operator=(msg const&)'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: msg
    signature: msg & operator=(msg const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::verify_message_impl
      Src: /src/libtorrent/include/libtorrent/kademlia/msg.hpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msg'
    - (desc)
    - (ret)
    - error
    argTypes:
    - bdecode_node
    - key_desc_t[]
    - bdecode_node[]
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::verify_message
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/msg.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::verify_message_impl
    linkageType: ''
    returnType: bool
    signature: "bool verify_message(bdecode_node const& msg, key_desc_t const (&desc)[Size]\n\t,
      bdecode_node (&ret)[Size], span<char> error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::dht::null_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT null_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: libtorrent::dht::null_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void null_observer(std::shared_ptr<traversal_algorithm> a\n\t\t, udp::endpoint
      const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::rpc_manager
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:77,1
    - Dst: libtorrent::dht::allocate_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:107,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:112,1
    - Dst: ~observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:113,1
    - Dst: free_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:114,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 142
    functionName: libtorrent::dht::rpc_manager
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 1
    functionsReached:
    - ~observer
    - free_observer
    - TORRENT_ASSERT
    - T::T
    - libtorrent::dht::allocate_observer
    - std::forward<Args>
    - std::shared_ptr<T>
    - libtorrent::dht::rpc_manager
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT rpc_manager
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::allocate_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:107,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:112,1
    - Dst: ~observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:113,1
    - Dst: free_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:114,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: libtorrent::dht::allocate_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 2
    functionsReached:
    - ~observer
    - free_observer
    - TORRENT_ASSERT
    - T::T
    - libtorrent::dht::allocate_observer
    - std::forward<Args>
    - std::shared_ptr<T>
    linkageType: ''
    returnType: std::shared_ptr<T>
    signature: std::shared_ptr<T> allocate_observer(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: libtorrent::dht::num_allocated_observers
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_allocated_observers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::dht::update_node_id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_id(node_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::dht::null_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT null_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: libtorrent::dht::null_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void null_observer(std::shared_ptr<traversal_algorithm> a\n\t\t, udp::endpoint
      const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::rpc_manager
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:77,1
    - Dst: libtorrent::dht::allocate_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:107,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:112,1
    - Dst: ~observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:113,1
    - Dst: free_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:114,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 142
    functionName: libtorrent::dht::rpc_manager
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 2
    functionsReached:
    - ~observer
    - free_observer
    - TORRENT_ASSERT
    - T::T
    - libtorrent::dht::allocate_observer
    - std::forward<Args>
    - std::shared_ptr<T>
    - libtorrent::dht::rpc_manager
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT rpc_manager
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::allocate_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:107,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:112,1
    - Dst: ~observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:113,1
    - Dst: free_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:114,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: libtorrent::dht::allocate_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 4
    functionsReached:
    - ~observer
    - free_observer
    - TORRENT_ASSERT
    - T::T
    - libtorrent::dht::allocate_observer
    - std::forward<Args>
    - std::shared_ptr<T>
    linkageType: ''
    returnType: std::shared_ptr<T>
    signature: std::shared_ptr<T> allocate_observer(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: libtorrent::dht::num_allocated_observers
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_allocated_observers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::dht::update_node_id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_id(node_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::dht::null_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT null_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: libtorrent::dht::null_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void null_observer(std::shared_ptr<traversal_algorithm> a\n\t\t, udp::endpoint
      const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::rpc_manager
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:77,1
    - Dst: libtorrent::dht::allocate_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:107,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:112,1
    - Dst: ~observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:113,1
    - Dst: free_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:114,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 142
    functionName: libtorrent::dht::rpc_manager
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 3
    functionsReached:
    - ~observer
    - free_observer
    - TORRENT_ASSERT
    - T::T
    - libtorrent::dht::allocate_observer
    - std::forward<Args>
    - std::shared_ptr<T>
    - libtorrent::dht::rpc_manager
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT rpc_manager
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::allocate_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:107,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:112,1
    - Dst: ~observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:113,1
    - Dst: free_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:114,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: libtorrent::dht::allocate_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 6
    functionsReached:
    - ~observer
    - free_observer
    - TORRENT_ASSERT
    - T::T
    - libtorrent::dht::allocate_observer
    - std::forward<Args>
    - std::shared_ptr<T>
    linkageType: ''
    returnType: std::shared_ptr<T>
    signature: std::shared_ptr<T> allocate_observer(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: libtorrent::dht::num_allocated_observers
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_allocated_observers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::dht::update_node_id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_id(node_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: libtorrent::dht::null_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT null_observer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - a
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: libtorrent::dht::null_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void null_observer(std::shared_ptr<traversal_algorithm> a\n\t\t, udp::endpoint
      const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::dht::reply
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reply(msg const&) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::rpc_manager
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:77,1
    - Dst: libtorrent::dht::allocate_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:107,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:112,1
    - Dst: ~observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:113,1
    - Dst: free_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:114,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 142
    functionName: libtorrent::dht::rpc_manager
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 4
    functionsReached:
    - ~observer
    - free_observer
    - TORRENT_ASSERT
    - T::T
    - libtorrent::dht::allocate_observer
    - std::forward<Args>
    - std::shared_ptr<T>
    - libtorrent::dht::rpc_manager
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT rpc_manager
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::allocate_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:107,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:108,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:112,1
    - Dst: ~observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:113,1
    - Dst: free_observer
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:114,1
    - Dst: std::shared_ptr<T>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: std::forward<Args>
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    - Dst: T::T
      Src: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: libtorrent::dht::allocate_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 8
    functionsReached:
    - ~observer
    - free_observer
    - TORRENT_ASSERT
    - T::T
    - libtorrent::dht::allocate_observer
    - std::forward<Args>
    - std::shared_ptr<T>
    linkageType: ''
    returnType: std::shared_ptr<T>
    signature: std::shared_ptr<T> allocate_observer(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: libtorrent::dht::num_allocated_observers
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_allocated_observers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: libtorrent::dht::update_node_id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/rpc_manager.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_node_id(node_id const& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 161
    functionName: libtorrent::dht::dht_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_settings.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT dht_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 161
    functionName: libtorrent::dht::dht_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_settings.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT dht_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 161
    functionName: libtorrent::dht::dht_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_settings.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT dht_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 161
    functionName: libtorrent::dht::dht_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_settings.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_DEPRECATED_EXPORT
    signature: struct TORRENT_DEPRECATED_EXPORT dht_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: libtorrent::dht::get_peers_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_peers_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::dht::obfuscated_get_peers_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void obfuscated_get_peers_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: libtorrent::dht::get_peers_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_peers_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::dht::obfuscated_get_peers_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void obfuscated_get_peers_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: libtorrent::dht::get_peers_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_peers_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::dht::obfuscated_get_peers_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void obfuscated_get_peers_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: libtorrent::dht::get_peers_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void get_peers_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::dht::obfuscated_get_peers_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/get_peers.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void obfuscated_get_peers_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:67,1
    - Dst: set_target
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:68,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:98,1
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 139
    functionName: std::enable_shared_from_this<observer>
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - set_target
    - std::move
    - TORRENT_ASSERT
    - get
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<observer>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:67,1
    - Dst: set_target
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - set_target
    - std::move
    linkageType: ''
    returnType: void
    signature: "void observer(std::shared_ptr<traversal_algorithm> a\n\t\t, udp::endpoint
      const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void observer(observer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::has_short_timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_short_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 12
    functionsReached:
    - get
    linkageType: ''
    returnType: traversal_algorithm
    signature: traversal_algorithm * algorithm() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::dht::sent
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:67,1
    - Dst: set_target
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:68,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:98,1
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 139
    functionName: std::enable_shared_from_this<observer>
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - set_target
    - std::move
    - TORRENT_ASSERT
    - get
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<observer>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:67,1
    - Dst: set_target
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - set_target
    - std::move
    linkageType: ''
    returnType: void
    signature: "void observer(std::shared_ptr<traversal_algorithm> a\n\t\t, udp::endpoint
      const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void observer(observer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::has_short_timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_short_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 12
    functionsReached:
    - get
    linkageType: ''
    returnType: traversal_algorithm
    signature: traversal_algorithm * algorithm() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::dht::sent
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:67,1
    - Dst: set_target
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:68,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:98,1
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 139
    functionName: std::enable_shared_from_this<observer>
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - set_target
    - std::move
    - TORRENT_ASSERT
    - get
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<observer>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:67,1
    - Dst: set_target
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - set_target
    - std::move
    linkageType: ''
    returnType: void
    signature: "void observer(std::shared_ptr<traversal_algorithm> a\n\t\t, udp::endpoint
      const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void observer(observer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::has_short_timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_short_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 12
    functionsReached:
    - get
    linkageType: ''
    returnType: traversal_algorithm
    signature: traversal_algorithm * algorithm() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::dht::sent
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:67,1
    - Dst: set_target
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:68,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:98,1
    - Dst: shared_from_this
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 139
    functionName: std::enable_shared_from_this<observer>
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - set_target
    - std::move
    - TORRENT_ASSERT
    - get
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT std::enable_shared_from_this<observer>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:63,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:67,1
    - Dst: set_target
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - set_target
    - std::move
    linkageType: ''
    returnType: void
    signature: "void observer(std::shared_ptr<traversal_algorithm> a\n\t\t, udp::endpoint
      const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: libtorrent::dht::observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void observer(observer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: libtorrent::dht::has_short_timeout
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_short_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/kademlia/observer.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: libtorrent::dht::algorithm
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 12
    functionsReached:
    - get
    linkageType: ''
    returnType: traversal_algorithm
    signature: traversal_algorithm * algorithm() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::dht::sent
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_point
    signature: time_point sent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/observer.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::dht::public_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void public_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:48,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: libtorrent::dht::public_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 6
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void public_key(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: operator==(public_key const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(public_key const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::dht::secret_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void secret_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:59,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: libtorrent::dht::secret_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 4
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void secret_key(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: operator==(secret_key const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(secret_key const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::dht::signature
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:70,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::signature
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void signature(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: operator==(signature const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(signature const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number(std::int64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' sqn'
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number(sequence_number const& sqn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator<(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: operator>(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: '& operator=(sequence_number rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number & operator=(sequence_number rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: operator<=(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: operator==(sequence_number const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(sequence_number const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::dht::public_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void public_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:48,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: libtorrent::dht::public_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 6
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void public_key(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: operator==(public_key const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(public_key const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::dht::secret_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void secret_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:59,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: libtorrent::dht::secret_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 4
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void secret_key(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: operator==(secret_key const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(secret_key const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::dht::signature
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:70,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::signature
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void signature(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: operator==(signature const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(signature const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number(std::int64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' sqn'
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number(sequence_number const& sqn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator<(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: operator>(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: '& operator=(sequence_number rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number & operator=(sequence_number rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: operator<=(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: operator==(sequence_number const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(sequence_number const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::dht::public_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void public_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:48,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: libtorrent::dht::public_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 6
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void public_key(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: operator==(public_key const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(public_key const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::dht::secret_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void secret_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:59,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: libtorrent::dht::secret_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 4
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void secret_key(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: operator==(secret_key const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(secret_key const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::dht::signature
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:70,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::signature
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void signature(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: operator==(signature const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(signature const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number(std::int64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' sqn'
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number(sequence_number const& sqn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator<(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: operator>(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: '& operator=(sequence_number rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number & operator=(sequence_number rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: operator<=(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: operator==(sequence_number const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(sequence_number const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::dht::public_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void public_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:48,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: libtorrent::dht::public_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 6
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void public_key(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - public_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: operator==(public_key const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(public_key const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: libtorrent::dht::secret_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void secret_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:59,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: libtorrent::dht::secret_key
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 4
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void secret_key(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - secret_key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: operator==(secret_key const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(secret_key const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: libtorrent::dht::signature
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:70,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/types.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: libtorrent::dht::signature
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached:
    - std::copy
    - libtorrent::dht::begin
    linkageType: ''
    returnType: void
    signature: void signature(char const* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: operator==(signature const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(signature const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number(std::int64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' sqn'
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: libtorrent::dht::sequence_number
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sequence_number(sequence_number const& sqn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: operator<(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: operator>(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: '& operator=(sequence_number rhs) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number & operator=(sequence_number rhs) &
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: operator<=(sequence_number rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(sequence_number rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - sequence_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: operator==(sequence_number const& rhs) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(sequence_number const& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: '& operator++()'
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/types.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: libtorrent::dht::dht_storage_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_storage_counters
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 231
    functionName: libtorrent::dht::dht_storage_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_storage_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: ~dht_storage_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_storage_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: libtorrent::dht::dht_storage_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_storage_counters
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 231
    functionName: libtorrent::dht::dht_storage_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_storage_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: ~dht_storage_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_storage_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: libtorrent::dht::dht_storage_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_storage_counters
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 231
    functionName: libtorrent::dht::dht_storage_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_storage_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: ~dht_storage_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_storage_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: libtorrent::dht::dht_storage_counters
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_storage_counters
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 231
    functionName: libtorrent::dht::dht_storage_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT dht_storage_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: ~dht_storage_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/dht_storage.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~dht_storage_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::hash<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:79,1
    - Dst: reinterpret_cast<std::uint32_t const*>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: operator()(argument_type const& ip) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<std::uint32_t const*>
    - std::hash<std::uint32_t>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::hash<std::uint64_t>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:89,1
    - Dst: reinterpret_cast<std::uint64_t const*>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: operator()(argument_type const& ip) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - std::hash<std::uint64_t>
    - reinterpret_cast<std::uint64_t const*>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:101,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:102,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::ip_set
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::clear
    - libtorrent::dht::size
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT ip_set
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:101,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: libtorrent::dht::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::dht::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rh'
    argTypes:
    - ip_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(ip_set const& rh)
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(ip_set const& rh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 38
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:182,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:183,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:222,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:225,1
    - Dst: std::advance
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:226,1
    - Dst: table_t::const_iterator::live_nodes::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:227,1
    - Dst: libtorrent::dht::for_each_node
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:234,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:250,1
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 333
    functionName: libtorrent::dht::routing_table
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v4
    - std::advance
    - libtorrent::dht::size
    - libtorrent::dht::protocol
    - rand_v6
    - libtorrent::dht::end
    - table_t::const_iterator::live_nodes::size
    - libtorrent::dht::begin
    - libtorrent::dht::for_each_node
    - is_v4
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT routing_table
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::dht::routing_table
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void routing_table(routing_table const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: libtorrent::dht::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 38
    functionsReached:
    - libtorrent::dht::begin
    linkageType: ''
    returnType: router_iterator
    signature: router_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: libtorrent::dht::end
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 34
    functionsReached:
    - libtorrent::dht::end
    linkageType: ''
    returnType: router_iterator
    signature: router_iterator end() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:222,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:225,1
    - Dst: std::advance
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:226,1
    - Dst: table_t::const_iterator::live_nodes::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: libtorrent::dht::bucket_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - table_t::const_iterator::live_nodes::size
    - std::advance
    - libtorrent::dht::begin
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int bucket_size(int bucket) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::for_each_node
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(node_entry const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: libtorrent::dht::for_each_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::dht::for_each_node
    linkageType: ''
    returnType: void
    signature: void for_each_node(std::function<void(node_entry const&)> f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: libtorrent::dht::bucket_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bucket_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: libtorrent::dht::num_active_buckets
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int num_active_buckets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v6
    - rand_v4
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool native_address(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: libtorrent::dht::native_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    linkageType: ''
    returnType: bool
    signature: bool native_endpoint(udp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: libtorrent::dht::buckets
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: table_t
    signature: table_t & buckets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::hash<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:79,1
    - Dst: reinterpret_cast<std::uint32_t const*>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: operator()(argument_type const& ip) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<std::uint32_t const*>
    - std::hash<std::uint32_t>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::hash<std::uint64_t>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:89,1
    - Dst: reinterpret_cast<std::uint64_t const*>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: operator()(argument_type const& ip) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - std::hash<std::uint64_t>
    - reinterpret_cast<std::uint64_t const*>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:101,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:102,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::ip_set
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::clear
    - libtorrent::dht::size
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT ip_set
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:101,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: libtorrent::dht::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rh'
    argTypes:
    - ip_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(ip_set const& rh)
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(ip_set const& rh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 43
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:182,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:183,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:222,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:225,1
    - Dst: std::advance
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:226,1
    - Dst: table_t::const_iterator::live_nodes::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:227,1
    - Dst: libtorrent::dht::for_each_node
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:234,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:250,1
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 333
    functionName: libtorrent::dht::routing_table
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v4
    - std::advance
    - libtorrent::dht::size
    - libtorrent::dht::protocol
    - rand_v6
    - libtorrent::dht::end
    - table_t::const_iterator::live_nodes::size
    - libtorrent::dht::begin
    - libtorrent::dht::for_each_node
    - is_v4
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT routing_table
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::dht::routing_table
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void routing_table(routing_table const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: libtorrent::dht::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 41
    functionsReached:
    - libtorrent::dht::begin
    linkageType: ''
    returnType: router_iterator
    signature: router_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: libtorrent::dht::end
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 36
    functionsReached:
    - libtorrent::dht::end
    linkageType: ''
    returnType: router_iterator
    signature: router_iterator end() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:222,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:225,1
    - Dst: std::advance
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:226,1
    - Dst: table_t::const_iterator::live_nodes::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: libtorrent::dht::bucket_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - table_t::const_iterator::live_nodes::size
    - std::advance
    - libtorrent::dht::begin
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int bucket_size(int bucket) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::for_each_node
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(node_entry const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: libtorrent::dht::for_each_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::dht::for_each_node
    linkageType: ''
    returnType: void
    signature: void for_each_node(std::function<void(node_entry const&)> f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: libtorrent::dht::bucket_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bucket_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: libtorrent::dht::num_active_buckets
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int num_active_buckets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v6
    - rand_v4
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool native_address(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: libtorrent::dht::native_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    linkageType: ''
    returnType: bool
    signature: bool native_endpoint(udp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: libtorrent::dht::buckets
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: table_t
    signature: table_t & buckets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::hash<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:79,1
    - Dst: reinterpret_cast<std::uint32_t const*>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: operator()(argument_type const& ip) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<std::uint32_t const*>
    - std::hash<std::uint32_t>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::hash<std::uint64_t>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:89,1
    - Dst: reinterpret_cast<std::uint64_t const*>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: operator()(argument_type const& ip) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - std::hash<std::uint64_t>
    - reinterpret_cast<std::uint64_t const*>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:101,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:102,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::ip_set
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::clear
    - libtorrent::dht::size
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT ip_set
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:101,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: libtorrent::dht::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::dht::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rh'
    argTypes:
    - ip_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(ip_set const& rh)
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(ip_set const& rh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 48
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:182,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:183,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:222,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:225,1
    - Dst: std::advance
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:226,1
    - Dst: table_t::const_iterator::live_nodes::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:227,1
    - Dst: libtorrent::dht::for_each_node
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:234,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:250,1
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 333
    functionName: libtorrent::dht::routing_table
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v4
    - std::advance
    - libtorrent::dht::size
    - libtorrent::dht::protocol
    - rand_v6
    - libtorrent::dht::end
    - table_t::const_iterator::live_nodes::size
    - libtorrent::dht::begin
    - libtorrent::dht::for_each_node
    - is_v4
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT routing_table
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::dht::routing_table
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void routing_table(routing_table const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: libtorrent::dht::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 44
    functionsReached:
    - libtorrent::dht::begin
    linkageType: ''
    returnType: router_iterator
    signature: router_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: libtorrent::dht::end
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 38
    functionsReached:
    - libtorrent::dht::end
    linkageType: ''
    returnType: router_iterator
    signature: router_iterator end() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:222,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:225,1
    - Dst: std::advance
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:226,1
    - Dst: table_t::const_iterator::live_nodes::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: libtorrent::dht::bucket_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - table_t::const_iterator::live_nodes::size
    - std::advance
    - libtorrent::dht::begin
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int bucket_size(int bucket) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::for_each_node
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(node_entry const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: libtorrent::dht::for_each_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::dht::for_each_node
    linkageType: ''
    returnType: void
    signature: void for_each_node(std::function<void(node_entry const&)> f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: libtorrent::dht::bucket_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bucket_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: libtorrent::dht::num_active_buckets
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int num_active_buckets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v6
    - rand_v4
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool native_address(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: libtorrent::dht::native_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    linkageType: ''
    returnType: bool
    signature: bool native_endpoint(udp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: libtorrent::dht::buckets
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: table_t
    signature: table_t & buckets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::hash<std::uint32_t>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:79,1
    - Dst: reinterpret_cast<std::uint32_t const*>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: operator()(argument_type const& ip) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<std::uint32_t const*>
    - std::hash<std::uint32_t>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::hash<std::uint64_t>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:89,1
    - Dst: reinterpret_cast<std::uint64_t const*>
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ip'
    argTypes:
    - argument_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: operator()(argument_type const& ip) const
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - std::hash<std::uint64_t>
    - reinterpret_cast<std::uint64_t const*>
    linkageType: ''
    returnType: result_type
    signature: result_type operator()(argument_type const& ip) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:101,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:102,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::ip_set
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::clear
    - libtorrent::dht::size
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT ip_set
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:101,1
    - Dst: libtorrent::dht::clear
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: libtorrent::dht::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::dht::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rh'
    argTypes:
    - ip_set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: operator==(ip_set const& rh)
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(ip_set const& rh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 53
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:182,1
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:183,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:222,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:225,1
    - Dst: std::advance
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:226,1
    - Dst: table_t::const_iterator::live_nodes::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:227,1
    - Dst: libtorrent::dht::for_each_node
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:234,1
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:250,1
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 333
    functionName: libtorrent::dht::routing_table
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v4
    - std::advance
    - libtorrent::dht::size
    - libtorrent::dht::protocol
    - rand_v6
    - libtorrent::dht::end
    - table_t::const_iterator::live_nodes::size
    - libtorrent::dht::begin
    - libtorrent::dht::for_each_node
    - is_v4
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT routing_table
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::dht::routing_table
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void routing_table(routing_table const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: libtorrent::dht::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 47
    functionsReached:
    - libtorrent::dht::begin
    linkageType: ''
    returnType: router_iterator
    signature: router_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::end
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: libtorrent::dht::end
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 40
    functionsReached:
    - libtorrent::dht::end
    linkageType: ''
    returnType: router_iterator
    signature: router_iterator end() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:222,1
    - Dst: libtorrent::dht::begin
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:225,1
    - Dst: std::advance
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:226,1
    - Dst: table_t::const_iterator::live_nodes::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: libtorrent::dht::bucket_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - table_t::const_iterator::live_nodes::size
    - std::advance
    - libtorrent::dht::begin
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int bucket_size(int bucket) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::for_each_node
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::function<void(node_entry const&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: libtorrent::dht::for_each_node
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::dht::for_each_node
    linkageType: ''
    returnType: void
    signature: void for_each_node(std::function<void(node_entry const&)> f) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: libtorrent::dht::bucket_size
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bucket_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::size
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: libtorrent::dht::num_active_buckets
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::size
    linkageType: ''
    returnType: int
    signature: int num_active_buckets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: rand_v4
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:262,1
    - Dst: is_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    - Dst: rand_v6
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: libtorrent::dht::native_address
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - is_v6
    - rand_v6
    - rand_v4
    - is_v4
    linkageType: ''
    returnType: bool
    signature: bool native_address(address const& addr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::protocol
      Src: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ep'
    argTypes:
    - udp::endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: libtorrent::dht::native_endpoint
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::dht::protocol
    linkageType: ''
    returnType: bool
    signature: bool native_endpoint(udp::endpoint const& ep) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: libtorrent::dht::id
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: node_id
    signature: node_id & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: libtorrent::dht::buckets
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/routing_table.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: table_t
    signature: table_t & buckets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/find_data.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::find_data_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/find_data.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void find_data_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/find_data.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::find_data_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/find_data.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void find_data_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/find_data.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::find_data_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/find_data.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void find_data_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/kademlia/find_data.hpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - algorithm
    - ' ep'
    - ' id'
    argTypes:
    - std::shared_ptr<traversal_algorithm>
    - udp::endpoint
    - node_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: libtorrent::dht::find_data_observer
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/find_data.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void find_data_observer(\n\t\tstd::shared_ptr<traversal_algorithm>
      algorithm\n\t\t, udp::endpoint const& ep, node_id const& id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:80,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:105,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::item
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 1
    functionsReached:
    - entry
    - libtorrent::dht::item
    - type
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT item
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 12
    functionsReached:
    - entry
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::dht::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 20
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: libtorrent::dht::is_mutable
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_mutable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::value
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: entry
    signature: entry & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: libtorrent::dht::pk
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: public_key
    signature: public_key & pk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::sig
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: signature
    signature: signature & sig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::seq
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number seq() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::salt
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & salt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:80,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:105,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::item
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 2
    functionsReached:
    - entry
    - libtorrent::dht::item
    - type
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT item
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 12
    functionsReached:
    - entry
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::dht::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 20
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: libtorrent::dht::is_mutable
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_mutable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::value
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: entry
    signature: entry & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: libtorrent::dht::pk
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: public_key
    signature: public_key & pk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::sig
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: signature
    signature: signature & sig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::seq
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number seq() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::salt
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & salt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:80,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:105,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::item
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 3
    functionsReached:
    - entry
    - libtorrent::dht::item
    - type
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT item
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 12
    functionsReached:
    - entry
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::dht::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 20
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: libtorrent::dht::is_mutable
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_mutable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::value
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: entry
    signature: entry & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: libtorrent::dht::pk
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: public_key
    signature: public_key & pk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::sig
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: signature
    signature: signature & sig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::seq
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number seq() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::salt
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & salt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::dht::item
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:80,1
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:105,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 125
    functionName: libtorrent::dht::item
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 4
    functionsReached:
    - entry
    - libtorrent::dht::item
    - type
    linkageType: ''
    returnType: class TORRENT_EXTRA_EXPORT
    signature: class TORRENT_EXTRA_EXPORT item
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: libtorrent::dht::clear
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 12
    functionsReached:
    - entry
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/kademlia/item.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: libtorrent::dht::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 20
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: libtorrent::dht::is_mutable
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_mutable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: libtorrent::dht::value
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: entry
    signature: entry & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: libtorrent::dht::pk
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: public_key
    signature: public_key & pk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::dht::sig
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: signature
    signature: signature & sig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: libtorrent::dht::seq
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: sequence_number
    signature: sequence_number seq() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: libtorrent::dht::salt
    functionSourceFile: /src/libtorrent/include/libtorrent/kademlia/item.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & salt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 127
    functionName: libtorrent::aux::buffer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT buffer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::disk_buffer_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool(disk_buffer_pool const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::free_disk_buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: void
    signature: void free_disk_buffer(char* b) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::in_use
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int in_use() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 127
    functionName: libtorrent::aux::buffer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT buffer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::disk_buffer_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool(disk_buffer_pool const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::free_disk_buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: void
    signature: void free_disk_buffer(char* b) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::in_use
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int in_use() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 127
    functionName: libtorrent::aux::buffer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT buffer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::disk_buffer_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool(disk_buffer_pool const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::free_disk_buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: void
    signature: void free_disk_buffer(char* b) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::in_use
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int in_use() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 127
    functionName: libtorrent::aux::buffer_allocator_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT buffer_allocator_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::disk_buffer_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disk_buffer_pool(disk_buffer_pool const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_buffer
      Src: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::free_disk_buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached:
    - free_buffer
    linkageType: ''
    returnType: void
    signature: void free_disk_buffer(char* b) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: libtorrent::aux::in_use
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/disk_buffer_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int in_use() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::convert_to_native
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/escape_string.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & convert_to_native(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::convert_from_native
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/escape_string.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & convert_from_native(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: libtorrent::convert_to_native
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/escape_string.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & convert_to_native(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: libtorrent::convert_from_native
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/escape_string.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & convert_from_native(std::string const& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::aux::end
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter end()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Iter
    - Iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: iterator_range<Iter>
    signature: iterator_range<Iter> range(Iter begin, Iter end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' vec'
    - begin
    - end
    argTypes:
    - vector<T, IndexType>
    - IndexType
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::data
    - static_cast<type>
    linkageType: ''
    returnType: iterator_range<T*>
    signature: "iterator_range<T*> range(vector<T, IndexType>& vec\n\t\t, IndexType
      begin, IndexType end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' vec'
    - begin
    - end
    argTypes:
    - vector<T, IndexType>
    - IndexType
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::data
    - static_cast<type>
    linkageType: ''
    returnType: iterator_range<T const*>
    signature: "iterator_range<T const*> range(vector<T, IndexType> const& vec\n\t\t,
      IndexType begin, IndexType end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::aux::end
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter end()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Iter
    - Iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: iterator_range<Iter>
    signature: iterator_range<Iter> range(Iter begin, Iter end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' vec'
    - begin
    - end
    argTypes:
    - vector<T, IndexType>
    - IndexType
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::data
    - static_cast<type>
    linkageType: ''
    returnType: iterator_range<T*>
    signature: "iterator_range<T*> range(vector<T, IndexType>& vec\n\t\t, IndexType
      begin, IndexType end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' vec'
    - begin
    - end
    argTypes:
    - vector<T, IndexType>
    - IndexType
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::data
    - static_cast<type>
    linkageType: ''
    returnType: iterator_range<T const*>
    signature: "iterator_range<T const*> range(vector<T, IndexType> const& vec\n\t\t,
      IndexType begin, IndexType end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::aux::end
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter end()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Iter
    - Iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: iterator_range<Iter>
    signature: iterator_range<Iter> range(Iter begin, Iter end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' vec'
    - begin
    - end
    argTypes:
    - vector<T, IndexType>
    - IndexType
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::data
    - static_cast<type>
    linkageType: ''
    returnType: iterator_range<T*>
    signature: "iterator_range<T*> range(vector<T, IndexType>& vec\n\t\t, IndexType
      begin, IndexType end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' vec'
    - begin
    - end
    argTypes:
    - vector<T, IndexType>
    - IndexType
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::data
    - static_cast<type>
    linkageType: ''
    returnType: iterator_range<T const*>
    signature: "iterator_range<T const*> range(vector<T, IndexType> const& vec\n\t\t,
      IndexType begin, IndexType end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: libtorrent::aux::begin
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: libtorrent::aux::end
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Iter
    signature: Iter end()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Iter
    - Iter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: iterator_range<Iter>
    signature: iterator_range<Iter> range(Iter begin, Iter end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' vec'
    - begin
    - end
    argTypes:
    - vector<T, IndexType>
    - IndexType
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::data
    - static_cast<type>
    linkageType: ''
    returnType: iterator_range<T*>
    signature: "iterator_range<T*> range(vector<T, IndexType>& vec\n\t\t, IndexType
      begin, IndexType end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: libtorrent::aux::data
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    - Dst: static_cast<type>
      Src: /src/libtorrent/include/libtorrent/aux_/range.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' vec'
    - begin
    - end
    argTypes:
    - vector<T, IndexType>
    - IndexType
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/range.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::data
    - static_cast<type>
    linkageType: ''
    returnType: iterator_range<T const*>
    signature: "iterator_range<T const*> range(vector<T, IndexType> const& vec\n\t\t,
      IndexType begin, IndexType end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::directory
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT directory
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::directory
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(directory const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::done
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::directory
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT directory
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::directory
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(directory const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::done
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::directory
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT directory
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::directory
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(directory const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::done
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::directory
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT directory
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::directory
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void directory(directory const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::done
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/directory.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::proxy_settings
      Src: /src/libtorrent/include/libtorrent/aux_/proxy_settings.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::proxy_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/proxy_settings.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::proxy_settings
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT proxy_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::proxy_settings
      Src: /src/libtorrent/include/libtorrent/aux_/proxy_settings.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::proxy_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/proxy_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::proxy_settings
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT proxy_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::proxy_settings
      Src: /src/libtorrent/include/libtorrent/aux_/proxy_settings.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::proxy_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/proxy_settings.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::proxy_settings
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT proxy_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::proxy_settings
      Src: /src/libtorrent/include/libtorrent/aux_/proxy_settings.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::proxy_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/proxy_settings.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::proxy_settings
    linkageType: ''
    returnType: struct TORRENT_EXPORT
    signature: struct TORRENT_EXPORT proxy_settings
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void container_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void container_wrapper(Base&& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:62,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - static_cast<underlying_index>
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: void
    signature: void container_wrapper(IndexType const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:66,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:67,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:67,1
    - Dst: libtorrent::aux::Base::operator[](std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:68,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: operator[](IndexType idx) const
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - IndexType
    - static_cast<underlying_index>
    - TORRENT_ASSERT
    - libtorrent::aux::end_index
    - libtorrent::aux::Base::operator[](std::size_t
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator[](IndexType idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:73,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:74,1
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:74,1
    - Dst: libtorrent::aux::Base::operator[](std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:75,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: operator[](IndexType idx)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - IndexType
    - static_cast<underlying_index>
    - TORRENT_ASSERT
    - libtorrent::aux::end_index
    - libtorrent::aux::Base::operator[](std::size_t
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator[](IndexType idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::end_index
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 10
    functionsReached:
    - IndexType
    - libtorrent::aux::size
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: IndexType
    signature: IndexType end_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::end_index
    linkageType: ''
    returnType: index_range<IndexType>
    signature: index_range<IndexType> range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:95,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:96,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - underlying_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(underlying_index s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:103,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:104,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ' v'
    argTypes:
    - underlying_index
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(underlying_index s, T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:109,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:109,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:115,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:115,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ' v'
    argTypes:
    - std::size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t s, T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:123,1
    - Dst: libtorrent::aux::Base::reserve
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:124,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - underlying_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: libtorrent::aux::reserve
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::Base::reserve
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void reserve(underlying_index s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:129,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:129,1
    - Dst: libtorrent::aux::Base::reserve
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::reserve
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::Base::reserve
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void reserve(std::size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void container_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void container_wrapper(Base&& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:62,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - static_cast<underlying_index>
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: void
    signature: void container_wrapper(IndexType const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:66,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:67,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:67,1
    - Dst: libtorrent::Base::operator[](std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:68,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: operator[](IndexType idx) const
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - IndexType
    - static_cast<underlying_index>
    - libtorrent::Base::operator[](std::size_t
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator[](IndexType idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:73,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:74,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:74,1
    - Dst: libtorrent::Base::operator[](std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:75,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: operator[](IndexType idx)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - IndexType
    - static_cast<underlying_index>
    - libtorrent::Base::operator[](std::size_t
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator[](IndexType idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::end_index
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 11
    functionsReached:
    - IndexType
    - libtorrent::aux::size
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: IndexType
    signature: IndexType end_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::end_index
    linkageType: ''
    returnType: index_range<IndexType>
    signature: index_range<IndexType> range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:95,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:96,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - underlying_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(underlying_index s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:103,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:104,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ' v'
    argTypes:
    - underlying_index
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(underlying_index s, T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:109,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:109,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:115,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:115,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ' v'
    argTypes:
    - std::size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t s, T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:123,1
    - Dst: libtorrent::aux::Base::reserve
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:124,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - underlying_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: libtorrent::aux::reserve
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::Base::reserve
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void reserve(underlying_index s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:129,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:129,1
    - Dst: libtorrent::aux::Base::reserve
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::reserve
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::Base::reserve
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void reserve(std::size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void container_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void container_wrapper(Base&& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:62,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - static_cast<underlying_index>
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: void
    signature: void container_wrapper(IndexType const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:66,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:67,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:67,1
    - Dst: aux::Base::operator[](std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:68,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: operator[](IndexType idx) const
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - IndexType
    - aux::Base::operator[](std::size_t
    - static_cast<underlying_index>
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator[](IndexType idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:73,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:74,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:74,1
    - Dst: aux::Base::operator[](std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:75,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: operator[](IndexType idx)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - IndexType
    - aux::Base::operator[](std::size_t
    - static_cast<underlying_index>
    - TORRENT_ASSERT
    - end_index
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator[](IndexType idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::end_index
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 12
    functionsReached:
    - IndexType
    - libtorrent::aux::size
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: IndexType
    signature: IndexType end_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::end_index
    linkageType: ''
    returnType: index_range<IndexType>
    signature: index_range<IndexType> range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:95,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:96,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - underlying_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(underlying_index s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:103,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:104,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ' v'
    argTypes:
    - underlying_index
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(underlying_index s, T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:109,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:109,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:115,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:115,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ' v'
    argTypes:
    - std::size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t s, T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:123,1
    - Dst: libtorrent::aux::Base::reserve
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:124,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - underlying_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: libtorrent::aux::reserve
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::Base::reserve
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void reserve(underlying_index s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:129,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:129,1
    - Dst: libtorrent::aux::Base::reserve
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::reserve
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::Base::reserve
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void reserve(std::size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void container_wrapper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' b'
    argTypes:
    - Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void container_wrapper(Base&& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:62,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::container_wrapper
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - static_cast<underlying_index>
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: void
    signature: void container_wrapper(IndexType const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:66,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:67,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:67,1
    - Dst: Base::operator[](std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:68,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: operator[](IndexType idx) const
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - IndexType
    - static_cast<underlying_index>
    - TORRENT_ASSERT
    - Base::operator[](std::size_t
    - end_index
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator[](IndexType idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:73,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:73,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:74,1
    - Dst: end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:74,1
    - Dst: Base::operator[](std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:75,1
    - Dst: static_cast<underlying_index>
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - IndexType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: operator[](IndexType idx)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 0
    functionsReached:
    - IndexType
    - static_cast<underlying_index>
    - TORRENT_ASSERT
    - Base::operator[](std::size_t
    - end_index
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator[](IndexType idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:80,1
    - Dst: IndexType
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: libtorrent::aux::end_index
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 13
    functionsReached:
    - IndexType
    - libtorrent::aux::size
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: IndexType
    signature: IndexType end_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::end_index
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: libtorrent::aux::range
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::end_index
    linkageType: ''
    returnType: index_range<IndexType>
    signature: index_range<IndexType> range() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:95,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:96,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - underlying_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(underlying_index s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:103,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:104,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ' v'
    argTypes:
    - underlying_index
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(underlying_index s, T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:109,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:109,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:115,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:115,1
    - Dst: libtorrent::aux::Base::resize
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ' v'
    argTypes:
    - std::size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: libtorrent::aux::resize
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::size_t
    - libtorrent::aux::Base::resize
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t s, T const& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:123,1
    - Dst: libtorrent::aux::Base::reserve
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:124,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - underlying_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: libtorrent::aux::reserve
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::Base::reserve
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void reserve(underlying_index s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:129,1
    - Dst: std::size_t
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:129,1
    - Dst: libtorrent::aux::Base::reserve
      Src: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::reserve
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/container_wrapper.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::Base::reserve
    - std::size_t
    linkageType: ''
    returnType: void
    signature: void reserve(std::size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:55,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:58,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 32
    functionsReached:
    - static_cast<std::uint8_t>
    - first
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, T>::type
    signature: typename std::enable_if<sizeof(Byte)==1, T>::type read_impl(span<Byte>&
      view, type<T>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:71,1
    - Dst: static_cast<In>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:71,1
    - Dst: first
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:73,1
    - Dst: static_cast<Byte>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:76,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ' view'
    argTypes:
    - In
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 36
    functionsReached:
    - first
    - static_cast<T>
    - subspan
    - TORRENT_ASSERT
    - static_cast<In>
    - static_cast<Byte>
    linkageType: ''
    returnType: "typename std::enable_if<std::is_integral<T>::value\n\t\t&& (std::is_integral<In>::value
      || std::is_enum<In>::value)\n\t\t&& sizeof(Byte)==1>::type"
    signature: "typename std::enable_if<std::is_integral<T>::value\n\t\t&& (std::is_integral<In>::value
      || std::is_enum<In>::value)\n\t\t&& sizeof(Byte)==1>::type write_impl(In data,
      span<Byte>& view)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:88,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 32
    functionsReached:
    - static_cast<std::uint8_t>
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, std::uint8_t>::type
    signature: typename std::enable_if<sizeof(Byte)==1, std::uint8_t>::type read_impl(span<Byte>&
      view, type<std::uint8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::int8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:97,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 32
    functionsReached:
    - static_cast<std::int8_t>
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, std::int8_t>::type
    signature: typename std::enable_if<sizeof(Byte)==1, std::int8_t>::type read_impl(span<Byte>&
      view, type<std::int8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:106,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::read_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t read_int64(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:110,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::read_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t read_uint64(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:114,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 22
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t read_uint32(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:118,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::read_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t read_int32(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:122,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int16_t
    signature: std::int16_t read_int16(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:126,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::read_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 21
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t read_uint16(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:130,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::read_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_int8(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:134,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::read_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_uint8(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::write_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint64(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::write_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int64(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::write_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 39
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint32(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::write_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int32(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::write_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint16(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::write_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int16(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::write_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 37
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint8(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: libtorrent::aux::write_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int8(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::begin
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::begin
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:174,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:174,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' str'
    - ' view'
    argTypes:
    - std::string
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::size
    - subspan
    - TORRENT_ASSERT
    - std::copy
    - libtorrent::aux::begin
    - libtorrent::aux::end
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& str, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:55,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:58,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 40
    functionsReached:
    - static_cast<std::uint8_t>
    - first
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, T>::type
    signature: typename std::enable_if<sizeof(Byte)==1, T>::type read_impl(span<Byte>&
      view, type<T>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:71,1
    - Dst: static_cast<In>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:71,1
    - Dst: first
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:73,1
    - Dst: static_cast<Byte>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:76,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ' view'
    argTypes:
    - In
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 44
    functionsReached:
    - first
    - static_cast<T>
    - subspan
    - TORRENT_ASSERT
    - static_cast<In>
    - static_cast<Byte>
    linkageType: ''
    returnType: "typename std::enable_if<std::is_integral<T>::value\n\t\t&& (std::is_integral<In>::value
      || std::is_enum<In>::value)\n\t\t&& sizeof(Byte)==1>::type"
    signature: "typename std::enable_if<std::is_integral<T>::value\n\t\t&& (std::is_integral<In>::value
      || std::is_enum<In>::value)\n\t\t&& sizeof(Byte)==1>::type write_impl(In data,
      span<Byte>& view)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:88,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 40
    functionsReached:
    - static_cast<std::uint8_t>
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, std::uint8_t>::type
    signature: typename std::enable_if<sizeof(Byte)==1, std::uint8_t>::type read_impl(span<Byte>&
      view, type<std::uint8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::int8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:97,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 40
    functionsReached:
    - static_cast<std::int8_t>
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, std::int8_t>::type
    signature: typename std::enable_if<sizeof(Byte)==1, std::int8_t>::type read_impl(span<Byte>&
      view, type<std::int8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:106,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::read_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t read_int64(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:110,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::read_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t read_uint64(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:114,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 22
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t read_uint32(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:118,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::read_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t read_int32(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:122,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int16_t
    signature: std::int16_t read_int16(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:126,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::read_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 21
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t read_uint16(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:130,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::read_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_int8(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:134,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::read_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_uint8(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::write_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint64(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::write_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int64(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::write_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 39
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint32(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::write_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int32(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::write_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint16(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::write_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int16(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::write_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 37
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint8(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: libtorrent::aux::write_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int8(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::begin
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::begin
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:174,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:174,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' str'
    - ' view'
    argTypes:
    - std::string
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::size
    - subspan
    - TORRENT_ASSERT
    - std::copy
    - libtorrent::aux::begin
    - libtorrent::aux::end
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& str, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:55,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:58,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 48
    functionsReached:
    - static_cast<std::uint8_t>
    - first
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, T>::type
    signature: typename std::enable_if<sizeof(Byte)==1, T>::type read_impl(span<Byte>&
      view, type<T>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:71,1
    - Dst: static_cast<In>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:71,1
    - Dst: first
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:73,1
    - Dst: static_cast<Byte>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:76,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ' view'
    argTypes:
    - In
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 52
    functionsReached:
    - first
    - static_cast<T>
    - subspan
    - TORRENT_ASSERT
    - static_cast<In>
    - static_cast<Byte>
    linkageType: ''
    returnType: "typename std::enable_if<std::is_integral<T>::value\n\t\t&& (std::is_integral<In>::value
      || std::is_enum<In>::value)\n\t\t&& sizeof(Byte)==1>::type"
    signature: "typename std::enable_if<std::is_integral<T>::value\n\t\t&& (std::is_integral<In>::value
      || std::is_enum<In>::value)\n\t\t&& sizeof(Byte)==1>::type write_impl(In data,
      span<Byte>& view)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:88,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 48
    functionsReached:
    - static_cast<std::uint8_t>
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, std::uint8_t>::type
    signature: typename std::enable_if<sizeof(Byte)==1, std::uint8_t>::type read_impl(span<Byte>&
      view, type<std::uint8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::int8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:97,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 48
    functionsReached:
    - static_cast<std::int8_t>
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, std::int8_t>::type
    signature: typename std::enable_if<sizeof(Byte)==1, std::int8_t>::type read_impl(span<Byte>&
      view, type<std::int8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:106,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::read_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t read_int64(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:110,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::read_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t read_uint64(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:114,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 22
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t read_uint32(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:118,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::read_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t read_int32(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:122,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int16_t
    signature: std::int16_t read_int16(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:126,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::read_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 21
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t read_uint16(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:130,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::read_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_int8(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:134,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::read_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_uint8(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::write_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint64(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::write_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int64(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::write_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 39
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint32(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::write_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int32(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::write_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint16(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::write_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int16(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::write_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 37
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint8(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: libtorrent::aux::write_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int8(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::begin
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::begin
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:174,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:174,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' str'
    - ' view'
    argTypes:
    - std::string
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::size
    - subspan
    - TORRENT_ASSERT
    - std::copy
    - libtorrent::aux::begin
    - libtorrent::aux::end
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& str, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:55,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:58,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 56
    functionsReached:
    - static_cast<std::uint8_t>
    - first
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, T>::type
    signature: typename std::enable_if<sizeof(Byte)==1, T>::type read_impl(span<Byte>&
      view, type<T>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:70,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:71,1
    - Dst: static_cast<In>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:71,1
    - Dst: first
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:73,1
    - Dst: static_cast<Byte>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:76,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ' view'
    argTypes:
    - In
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: libtorrent::aux::write_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 60
    functionsReached:
    - first
    - static_cast<T>
    - subspan
    - TORRENT_ASSERT
    - static_cast<In>
    - static_cast<Byte>
    linkageType: ''
    returnType: "typename std::enable_if<std::is_integral<T>::value\n\t\t&& (std::is_integral<In>::value
      || std::is_enum<In>::value)\n\t\t&& sizeof(Byte)==1>::type"
    signature: "typename std::enable_if<std::is_integral<T>::value\n\t\t&& (std::is_integral<In>::value
      || std::is_enum<In>::value)\n\t\t&& sizeof(Byte)==1>::type write_impl(In data,
      span<Byte>& view)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:88,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 56
    functionsReached:
    - static_cast<std::uint8_t>
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, std::uint8_t>::type
    signature: typename std::enable_if<sizeof(Byte)==1, std::uint8_t>::type read_impl(span<Byte>&
      view, type<std::uint8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::int8_t>
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:97,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::read_impl
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 56
    functionsReached:
    - static_cast<std::int8_t>
    - subspan
    linkageType: ''
    returnType: typename std::enable_if<sizeof(Byte)==1, std::int8_t>::type
    signature: typename std::enable_if<sizeof(Byte)==1, std::int8_t>::type read_impl(span<Byte>&
      view, type<std::int8_t>)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:106,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::read_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t read_int64(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:110,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: libtorrent::aux::read_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 5
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint64_t
    signature: std::uint64_t read_uint64(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:114,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::read_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 22
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint32_t
    signature: std::uint32_t read_uint32(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:118,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: libtorrent::aux::read_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int32_t
    signature: std::int32_t read_int32(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:122,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::read_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int16_t
    signature: std::int16_t read_int16(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:126,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: libtorrent::aux::read_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 21
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint16_t
    signature: std::uint16_t read_uint16(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:130,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: libtorrent::aux::read_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::int8_t
    signature: std::int8_t read_int8(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::read_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:134,1
    - Dst: type
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' view'
    argTypes:
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: libtorrent::aux::read_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::read_impl
    - type
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t read_uint8(span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: libtorrent::aux::write_uint64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint64(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: libtorrent::aux::write_int64
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int64(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: libtorrent::aux::write_uint32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 39
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint32(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: libtorrent::aux::write_int32
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int32(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::write_uint16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 15
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint16(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: libtorrent::aux::write_int16
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int16(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::write_uint8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 37
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_uint8(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::write_impl
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ' view'
    argTypes:
    - T
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: libtorrent::aux::write_int8
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::write_impl
    linkageType: ''
    returnType: void
    signature: void write_int8(T val, span<Byte>& view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::numeric_cast
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:172,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::begin
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::end
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: libtorrent::aux::begin
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:173,1
    - Dst: subspan
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:174,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:174,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/io.hpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' str'
    - ' view'
    argTypes:
    - std::string
    - span<Byte>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: libtorrent::aux::write_string
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/io.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::size
    - subspan
    - TORRENT_ASSERT
    - std::copy
    - libtorrent::aux::begin
    - libtorrent::aux::end
    - libtorrent::aux::numeric_cast
    linkageType: ''
    returnType: int
    signature: int write_string(std::string const& str, span<Byte>& view)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:54,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - provider_type
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::crypt_acquire_provider
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - system_category
    - error_code
    - CryptAcquireContext
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: HCRYPTPROV
    signature: HCRYPTPROV crypt_acquire_provider(DWORD provider_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypt_acquire_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:64,1
    - Dst: CryptGenRandom
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:65,1
    - Dst: span<char>::size
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:65,1
    - Dst: reinterpret_cast<BYTE*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:66,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::crypt_gen_random
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - libtorrent::aux::crypt_acquire_provider
    - error_code
    - CryptGenRandom
    - reinterpret_cast<BYTE*>
    - libtorrent::aux::throw_ex
    - GetLastError
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: void
    signature: void crypt_gen_random(span<char> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::create
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::crypt_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::create
    linkageType: ''
    returnType: void
    signature: void crypt_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::duplicate
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::crypt_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::duplicate
    linkageType: ''
    returnType: void
    signature: void crypt_hash(crypt_hash const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ~crypt_hash()
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    linkageType: ''
    returnType: void
    signature: void ~crypt_hash()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::duplicate
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:82,1
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: '& operator=(crypt_hash const& h) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    - libtorrent::aux::duplicate
    linkageType: ''
    returnType: crypt_hash
    signature: crypt_hash & operator=(crypt_hash const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::create
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:90,1
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::reset
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    - libtorrent::aux::create
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashData
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: reinterpret_cast<BYTE const*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::update
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - reinterpret_cast<BYTE const*>
    - span<char const>::size
    - libtorrent::aux::throw_ex
    - CryptHashData
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void update(span<char const> data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DWORD
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:105,1
    - Dst: CryptGetHashParam
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:106,1
    - Dst: reinterpret_cast<BYTE*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:107,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:111,1
    - Dst: DWORD
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - digest
    - digest_size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: libtorrent::aux::get_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptGetHashParam
    - system_category
    - error_code
    - TORRENT_ASSERT
    - reinterpret_cast<BYTE*>
    - DWORD
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void get_hash(char *digest, std::size_t digest_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptCreateHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:117,1
    - Dst: libtorrent::aux::get_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:117,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::create
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 2
    functionsReached:
    - system_category
    - error_code
    - CryptCreateHash
    - libtorrent::aux::throw_ex
    - GetLastError
    - libtorrent::aux::get_provider
    linkageType: ''
    returnType: HCRYPTHASH
    signature: HCRYPTHASH create()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptDuplicateHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:127,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: libtorrent::aux::duplicate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 2
    functionsReached:
    - system_category
    - error_code
    - CryptDuplicateHash
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: HCRYPTHASH
    signature: HCRYPTHASH duplicate(crypt_hash const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypt_acquire_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::get_provider
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::crypt_acquire_provider
    linkageType: ''
    returnType: HCRYPTPROV
    signature: HCRYPTPROV get_provider()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:54,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - provider_type
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::crypt_acquire_provider
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 2
    functionsReached:
    - system_category
    - error_code
    - CryptAcquireContext
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: HCRYPTPROV
    signature: HCRYPTPROV crypt_acquire_provider(DWORD provider_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypt_acquire_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:64,1
    - Dst: CryptGenRandom
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:65,1
    - Dst: span<char>::size
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:65,1
    - Dst: reinterpret_cast<BYTE*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:66,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::crypt_gen_random
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - libtorrent::aux::crypt_acquire_provider
    - error_code
    - CryptGenRandom
    - reinterpret_cast<BYTE*>
    - libtorrent::aux::throw_ex
    - GetLastError
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: void
    signature: void crypt_gen_random(span<char> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::create
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::crypt_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::create
    linkageType: ''
    returnType: void
    signature: void crypt_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::duplicate
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::crypt_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::duplicate
    linkageType: ''
    returnType: void
    signature: void crypt_hash(crypt_hash const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ~crypt_hash()
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    linkageType: ''
    returnType: void
    signature: void ~crypt_hash()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duplicate
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:82,1
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: '& operator=(crypt_hash const& h) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    - duplicate
    linkageType: ''
    returnType: crypt_hash
    signature: crypt_hash & operator=(crypt_hash const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::create
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:90,1
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::reset
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    - libtorrent::aux::create
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashData
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: reinterpret_cast<BYTE const*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::update
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - reinterpret_cast<BYTE const*>
    - span<char const>::size
    - libtorrent::aux::throw_ex
    - CryptHashData
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void update(span<char const> data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DWORD
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:105,1
    - Dst: CryptGetHashParam
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:106,1
    - Dst: reinterpret_cast<BYTE*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:107,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:111,1
    - Dst: DWORD
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - digest
    - digest_size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: libtorrent::aux::get_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptGetHashParam
    - system_category
    - error_code
    - TORRENT_ASSERT
    - reinterpret_cast<BYTE*>
    - DWORD
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void get_hash(char *digest, std::size_t digest_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptCreateHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:117,1
    - Dst: libtorrent::aux::get_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:117,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::create
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - CryptCreateHash
    - libtorrent::aux::throw_ex
    - GetLastError
    - libtorrent::aux::get_provider
    linkageType: ''
    returnType: HCRYPTHASH
    signature: HCRYPTHASH create()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptDuplicateHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:127,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: libtorrent::aux::duplicate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 3
    functionsReached:
    - system_category
    - error_code
    - CryptDuplicateHash
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: HCRYPTHASH
    signature: HCRYPTHASH duplicate(crypt_hash const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypt_acquire_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::get_provider
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::crypt_acquire_provider
    linkageType: ''
    returnType: HCRYPTPROV
    signature: HCRYPTPROV get_provider()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:54,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - provider_type
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::crypt_acquire_provider
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - CryptAcquireContext
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: HCRYPTPROV
    signature: HCRYPTPROV crypt_acquire_provider(DWORD provider_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypt_acquire_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:64,1
    - Dst: CryptGenRandom
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:65,1
    - Dst: span<char>::size
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:65,1
    - Dst: reinterpret_cast<BYTE*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:66,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::crypt_gen_random
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - libtorrent::aux::crypt_acquire_provider
    - error_code
    - CryptGenRandom
    - reinterpret_cast<BYTE*>
    - libtorrent::aux::throw_ex
    - GetLastError
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: void
    signature: void crypt_gen_random(span<char> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::create
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::crypt_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::create
    linkageType: ''
    returnType: void
    signature: void crypt_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::duplicate
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::crypt_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::duplicate
    linkageType: ''
    returnType: void
    signature: void crypt_hash(crypt_hash const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ~crypt_hash()
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    linkageType: ''
    returnType: void
    signature: void ~crypt_hash()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duplicate
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:82,1
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: '& operator=(crypt_hash const& h) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    - duplicate
    linkageType: ''
    returnType: crypt_hash
    signature: crypt_hash & operator=(crypt_hash const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::create
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:90,1
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::reset
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    - libtorrent::aux::create
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashData
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: reinterpret_cast<BYTE const*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::update
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - reinterpret_cast<BYTE const*>
    - span<char const>::size
    - libtorrent::aux::throw_ex
    - CryptHashData
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void update(span<char const> data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DWORD
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:105,1
    - Dst: CryptGetHashParam
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:106,1
    - Dst: reinterpret_cast<BYTE*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:107,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:111,1
    - Dst: DWORD
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - digest
    - digest_size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: libtorrent::aux::get_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptGetHashParam
    - system_category
    - error_code
    - TORRENT_ASSERT
    - reinterpret_cast<BYTE*>
    - DWORD
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void get_hash(char *digest, std::size_t digest_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptCreateHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:117,1
    - Dst: libtorrent::aux::get_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:117,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::create
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 6
    functionsReached:
    - system_category
    - error_code
    - CryptCreateHash
    - libtorrent::aux::throw_ex
    - GetLastError
    - libtorrent::aux::get_provider
    linkageType: ''
    returnType: HCRYPTHASH
    signature: HCRYPTHASH create()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptDuplicateHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:127,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: libtorrent::aux::duplicate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - CryptDuplicateHash
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: HCRYPTHASH
    signature: HCRYPTHASH duplicate(crypt_hash const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypt_acquire_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::get_provider
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::crypt_acquire_provider
    linkageType: ''
    returnType: HCRYPTPROV
    signature: HCRYPTPROV get_provider()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:54,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - provider_type
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::crypt_acquire_provider
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 6
    functionsReached:
    - system_category
    - error_code
    - CryptAcquireContext
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: HCRYPTPROV
    signature: HCRYPTPROV crypt_acquire_provider(DWORD provider_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypt_acquire_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:64,1
    - Dst: CryptGenRandom
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:65,1
    - Dst: span<char>::size
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:65,1
    - Dst: reinterpret_cast<BYTE*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:66,1
    - Dst: span<char>::data
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:66,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - span<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: libtorrent::aux::crypt_gen_random
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - libtorrent::aux::crypt_acquire_provider
    - error_code
    - CryptGenRandom
    - reinterpret_cast<BYTE*>
    - libtorrent::aux::throw_ex
    - GetLastError
    - span<char>::data
    - span<char>::size
    linkageType: ''
    returnType: void
    signature: void crypt_gen_random(span<char> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::create
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::crypt_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::create
    linkageType: ''
    returnType: void
    signature: void crypt_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::duplicate
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::crypt_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::duplicate
    linkageType: ''
    returnType: void
    signature: void crypt_hash(crypt_hash const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ~crypt_hash()
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    linkageType: ''
    returnType: void
    signature: void ~crypt_hash()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: duplicate
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:82,1
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: '& operator=(crypt_hash const& h) &'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    - duplicate
    linkageType: ''
    returnType: crypt_hash
    signature: crypt_hash & operator=(crypt_hash const& h) &
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::create
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:90,1
    - Dst: CryptDestroyHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: libtorrent::aux::reset
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptDestroyHash
    - libtorrent::aux::create
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashData
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: reinterpret_cast<BYTE const*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: span<char const>::data
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:97,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::update
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - system_category
    - error_code
    - span<char const>::data
    - reinterpret_cast<BYTE const*>
    - span<char const>::size
    - libtorrent::aux::throw_ex
    - CryptHashData
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void update(span<char const> data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DWORD
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:105,1
    - Dst: CryptGetHashParam
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:106,1
    - Dst: reinterpret_cast<BYTE*>
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:107,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:109,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:111,1
    - Dst: DWORD
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - digest
    - digest_size
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: libtorrent::aux::get_hash
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 0
    functionsReached:
    - CryptGetHashParam
    - system_category
    - error_code
    - TORRENT_ASSERT
    - reinterpret_cast<BYTE*>
    - DWORD
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void get_hash(char *digest, std::size_t digest_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptCreateHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:117,1
    - Dst: libtorrent::aux::get_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:117,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: libtorrent::aux::create
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 8
    functionsReached:
    - system_category
    - error_code
    - CryptCreateHash
    - libtorrent::aux::throw_ex
    - GetLastError
    - libtorrent::aux::get_provider
    linkageType: ''
    returnType: HCRYPTHASH
    signature: HCRYPTHASH create()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptDuplicateHash
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:127,1
    - Dst: libtorrent::aux::throw_ex
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: error_code
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: GetLastError
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    - Dst: system_category
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - crypt_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: libtorrent::aux::duplicate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 5
    functionsReached:
    - system_category
    - error_code
    - CryptDuplicateHash
    - libtorrent::aux::throw_ex
    - GetLastError
    linkageType: ''
    returnType: HCRYPTHASH
    signature: HCRYPTHASH duplicate(crypt_hash const& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::crypt_acquire_provider
      Src: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: libtorrent::aux::get_provider
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/win_crypto_provider.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::crypt_acquire_provider
    linkageType: ''
    returnType: HCRYPTPROV
    signature: HCRYPTPROV get_provider()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 241
    functionName: libtorrent::aux::file_view_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_handle
    - std::make_shared<file_mapping>
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_view_pool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::file_view_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool(file_view_pool const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: libtorrent::aux::size_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int size_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - k
    - name
    - m
    - size
    - open_unmap_lock
    argTypes:
    - file_id
    - string_view
    - open_mode_t
    - std::int64_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_handle
    - std::make_shared<file_mapping>
    linkageType: ''
    returnType: void
    signature: "void file_entry(file_id k\n\t\t\t\t, string_view name\n\t\t\t\t, open_mode_t
      const m\n\t\t\t\t, std::int64_t const size\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 241
    functionName: libtorrent::aux::file_view_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_handle
    - std::make_shared<file_mapping>
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_view_pool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::file_view_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool(file_view_pool const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: libtorrent::aux::size_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int size_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - k
    - name
    - m
    - size
    - open_unmap_lock
    argTypes:
    - file_id
    - string_view
    - open_mode_t
    - std::int64_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_handle
    - std::make_shared<file_mapping>
    linkageType: ''
    returnType: void
    signature: "void file_entry(file_id k\n\t\t\t\t, string_view name\n\t\t\t\t, open_mode_t
      const m\n\t\t\t\t, std::int64_t const size\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 241
    functionName: libtorrent::aux::file_view_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_handle
    - std::make_shared<file_mapping>
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_view_pool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::file_view_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool(file_view_pool const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: libtorrent::aux::size_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int size_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - k
    - name
    - m
    - size
    - open_unmap_lock
    argTypes:
    - file_id
    - string_view
    - open_mode_t
    - std::int64_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_handle
    - std::make_shared<file_mapping>
    linkageType: ''
    returnType: void
    signature: "void file_entry(file_id k\n\t\t\t\t, string_view name\n\t\t\t\t, open_mode_t
      const m\n\t\t\t\t, std::int64_t const size\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::time_now
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 241
    functionName: libtorrent::aux::file_view_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_handle
    - std::make_shared<file_mapping>
    - libtorrent::aux::time_now
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_view_pool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: libtorrent::aux::file_view_pool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_view_pool(file_view_pool const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: libtorrent::aux::size_limit
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int size_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<file_mapping>
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    - Dst: libtorrent::aux::file_handle
      Src: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - k
    - name
    - m
    - size
    - open_unmap_lock
    argTypes:
    - file_id
    - string_view
    - open_mode_t
    - std::int64_t
    - std::shared_ptr<std::mutex>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: libtorrent::aux::file_entry
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_view_pool.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::file_handle
    - std::make_shared<file_mapping>
    linkageType: ''
    returnType: void
    signature: "void file_entry(file_id k\n\t\t\t\t, string_view name\n\t\t\t\t, open_mode_t
      const m\n\t\t\t\t, std::int64_t const size\n#if TORRENT_HAVE_MAP_VIEW_OF_FILE\n\t\t\t\t,
      std::shared_ptr<std::mutex> open_unmap_lock\n#endif\n\t\t\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::wrap
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T && wrap(T&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:62,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:66,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: '& operator=(noexcept_movable const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& operator=(noexcept_movable&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:88,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:92,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: '& operator=(noexcept_move_only const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_move_only
    signature: noexcept_move_only & operator=(noexcept_move_only const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(noexcept_move_only&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_move_only
    signature: noexcept_move_only & operator=(noexcept_move_only&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::wrap
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T && wrap(T&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:62,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:66,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: '& operator=(noexcept_movable const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& operator=(noexcept_movable&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:88,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:92,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: '& operator=(noexcept_move_only const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_move_only
    signature: noexcept_move_only & operator=(noexcept_move_only const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(noexcept_move_only&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_move_only
    signature: noexcept_move_only & operator=(noexcept_move_only&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::wrap
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T && wrap(T&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:62,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:66,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: '& operator=(noexcept_movable const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& operator=(noexcept_movable&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:88,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:92,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: '& operator=(noexcept_move_only const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_move_only
    signature: noexcept_move_only & operator=(noexcept_move_only const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(noexcept_move_only&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_move_only
    signature: noexcept_move_only & operator=(noexcept_move_only&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: libtorrent::aux::wrap
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T && wrap(T&& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:62,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:66,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(noexcept_movable<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::noexcept_movable
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_movable(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: '& operator=(noexcept_movable const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_movable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& operator=(noexcept_movable&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_movable
    signature: noexcept_movable & operator=(noexcept_movable&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:88,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:92,1
    - Dst: libtorrent::aux::wrap
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::wrap
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T>&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<T>
      Src: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T&& rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(noexcept_move_only<T> const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::noexcept_move_only
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noexcept_move_only(T const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: '& operator=(noexcept_move_only const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_move_only
    signature: noexcept_move_only & operator=(noexcept_move_only const& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - noexcept_move_only
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator=(noexcept_move_only&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/noexcept_movable.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: noexcept_move_only
    signature: noexcept_move_only & operator=(noexcept_move_only&& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:55,1
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:57,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:60,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:62,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:64,1
    - Dst: libtorrent::aux::session_settings_single_thread
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::session_settings_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::set
    - std::move
    - libtorrent::aux::size
    - TORRENT_ASSERT
    - libtorrent::aux::session_settings_single_thread
    - libtorrent::aux::get
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT session_settings_single_thread
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::set_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::set
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_str(int name, std::string value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: libtorrent::aux::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::set
    linkageType: ''
    returnType: void
    signature: void set_int(int name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::set_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::set
    linkageType: ''
    returnType: void
    signature: void set_bool(int name, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::get_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: std::string
    signature: std::string & get_str(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::get_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: int
    signature: int get_int(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::get_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: bool
    signature: bool get_bool(int name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' c'
    - name
    - val
    - type
    argTypes:
    - Container
    - int
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: libtorrent::aux::set
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    - libtorrent::aux::size
    linkageType: ''
    returnType: "private:\n\n\t\ttemplate <typename T, typename Container>"
    signature: "private:\n\n\t\ttemplate <typename T, typename Container> set(Container&
      c, int const name, T val\n\t\t\t, int const type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' c'
    - name
    - type
    argTypes:
    - Container
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 36
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::size
    linkageType: ''
    returnType: T
    signature: T get(Container const& c, int const name, int const type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: libtorrent::aux::set_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:107,1
    - Dst: libtorrent::aux::set_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:112,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:118,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:123,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:128,1
    - Dst: libtorrent::aux::session_settings
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:133,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:144,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::lock
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:154,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:163,1
    - Dst: libtorrent::aux::settings_interface
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:170,1
    - Dst: m_store
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:171,1
    - Dst: libtorrent::aux::settings_interface
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:175,1
    - Dst: m_store
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 181
    functionName: libtorrent::aux::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::get_str
    - std::move
    - libtorrent::aux::get_bool
    - libtorrent::aux::session_settings
    - libtorrent::aux::set_str
    - libtorrent::aux::get_int
    - std::unique_lock<std::mutex>
    - m_store
    - libtorrent::aux::settings_interface
    - libtorrent::aux::set_int
    - libtorrent::aux::set_bool
    - std::lock
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT settings_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::set_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::set_str
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_str(int name, std::string value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::aux::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::set_int
    linkageType: ''
    returnType: void
    signature: void set_int(int name, int value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::set_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::set_bool
    linkageType: ''
    returnType: void
    signature: void set_bool(int name, bool value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::aux::get_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::get_str
    linkageType: ''
    returnType: std::string
    signature: std::string & get_str(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::get_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::get_int
    linkageType: ''
    returnType: int
    signature: int get_int(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::get_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::get_bool
    linkageType: ''
    returnType: bool
    signature: bool get_bool(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::has_val
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_val(int) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: libtorrent::aux::session_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 1
    functionsReached:
    - std::unique_lock<std::mutex>
    linkageType: ''
    returnType: void
    signature: void session_settings(session_settings const& lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::session_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 1
    functionsReached:
    - std::move
    - std::unique_lock<std::mutex>
    linkageType: ''
    returnType: void
    signature: void session_settings(session_settings&& lhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lock
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: '& operator=(session_settings const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - std::lock
    linkageType: ''
    returnType: session_settings
    signature: session_settings & operator=(session_settings const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: '& operator=(session_settings&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: session_settings
    signature: session_settings & operator=(session_settings&& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:55,1
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:57,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:60,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:62,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:64,1
    - Dst: libtorrent::aux::session_settings_single_thread
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::session_settings_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::set
    - std::move
    - libtorrent::aux::size
    - TORRENT_ASSERT
    - libtorrent::aux::session_settings_single_thread
    - libtorrent::aux::get
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT session_settings_single_thread
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::set_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::set
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_str(int name, std::string value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: libtorrent::aux::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::set
    linkageType: ''
    returnType: void
    signature: void set_int(int name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::set_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::set
    linkageType: ''
    returnType: void
    signature: void set_bool(int name, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::get_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: std::string
    signature: std::string & get_str(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::get_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: int
    signature: int get_int(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::get_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 10
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: bool
    signature: bool get_bool(int name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' c'
    - name
    - val
    - type
    argTypes:
    - Container
    - int
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: libtorrent::aux::set
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 8
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    - libtorrent::aux::size
    linkageType: ''
    returnType: "private:\n\n\t\ttemplate <typename T, typename Container>"
    signature: "private:\n\n\t\ttemplate <typename T, typename Container> set(Container&
      c, int const name, T val\n\t\t\t, int const type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' c'
    - name
    - type
    argTypes:
    - Container
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 40
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::size
    linkageType: ''
    returnType: T
    signature: T get(Container const& c, int const name, int const type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: libtorrent::aux::set_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:107,1
    - Dst: libtorrent::aux::set_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:112,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:118,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:123,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:128,1
    - Dst: libtorrent::aux::session_settings
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:133,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:144,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::lock
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:154,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:163,1
    - Dst: libtorrent::aux::settings_interface
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:170,1
    - Dst: m_store
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:171,1
    - Dst: libtorrent::aux::settings_interface
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:175,1
    - Dst: m_store
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 181
    functionName: libtorrent::aux::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::get_str
    - std::move
    - libtorrent::aux::get_bool
    - libtorrent::aux::session_settings
    - libtorrent::aux::set_str
    - libtorrent::aux::get_int
    - std::unique_lock<std::mutex>
    - m_store
    - libtorrent::aux::settings_interface
    - libtorrent::aux::set_int
    - libtorrent::aux::set_bool
    - std::lock
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT settings_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::set_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::set_str
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_str(int name, std::string value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::aux::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::set_int
    linkageType: ''
    returnType: void
    signature: void set_int(int name, int value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::set_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::set_bool
    linkageType: ''
    returnType: void
    signature: void set_bool(int name, bool value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::aux::get_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::aux::get_str
    linkageType: ''
    returnType: std::string
    signature: std::string & get_str(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::get_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::get_int
    linkageType: ''
    returnType: int
    signature: int get_int(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::get_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::get_bool
    linkageType: ''
    returnType: bool
    signature: bool get_bool(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::has_val
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_val(int) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: libtorrent::aux::session_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - std::unique_lock<std::mutex>
    linkageType: ''
    returnType: void
    signature: void session_settings(session_settings const& lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::session_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 2
    functionsReached:
    - std::move
    - std::unique_lock<std::mutex>
    linkageType: ''
    returnType: void
    signature: void session_settings(session_settings&& lhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lock
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: '& operator=(session_settings const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - std::lock
    linkageType: ''
    returnType: session_settings
    signature: session_settings & operator=(session_settings const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: '& operator=(session_settings&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::move
    linkageType: ''
    returnType: session_settings
    signature: session_settings & operator=(session_settings&& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:55,1
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:57,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:60,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:62,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:64,1
    - Dst: libtorrent::aux::session_settings_single_thread
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::session_settings_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::set
    - std::move
    - libtorrent::aux::size
    - TORRENT_ASSERT
    - libtorrent::aux::session_settings_single_thread
    - libtorrent::aux::get
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT session_settings_single_thread
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::set_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::set
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_str(int name, std::string value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: libtorrent::aux::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::set
    linkageType: ''
    returnType: void
    signature: void set_int(int name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::set_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::set
    linkageType: ''
    returnType: void
    signature: void set_bool(int name, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::get_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: std::string
    signature: std::string & get_str(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::get_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: int
    signature: int get_int(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::get_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 12
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: bool
    signature: bool get_bool(int name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' c'
    - name
    - val
    - type
    argTypes:
    - Container
    - int
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: libtorrent::aux::set
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 12
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    - libtorrent::aux::size
    linkageType: ''
    returnType: "private:\n\n\t\ttemplate <typename T, typename Container>"
    signature: "private:\n\n\t\ttemplate <typename T, typename Container> set(Container&
      c, int const name, T val\n\t\t\t, int const type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' c'
    - name
    - type
    argTypes:
    - Container
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 44
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::size
    linkageType: ''
    returnType: T
    signature: T get(Container const& c, int const name, int const type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: libtorrent::aux::set_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:107,1
    - Dst: libtorrent::aux::set_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:112,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:118,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:123,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:128,1
    - Dst: libtorrent::aux::session_settings
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:133,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:144,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::lock
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:154,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:163,1
    - Dst: libtorrent::aux::settings_interface
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:170,1
    - Dst: m_store
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:171,1
    - Dst: libtorrent::aux::settings_interface
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:175,1
    - Dst: m_store
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 181
    functionName: libtorrent::aux::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::get_str
    - std::move
    - libtorrent::aux::get_bool
    - libtorrent::aux::session_settings
    - libtorrent::aux::set_str
    - libtorrent::aux::get_int
    - std::unique_lock<std::mutex>
    - m_store
    - libtorrent::aux::settings_interface
    - libtorrent::aux::set_int
    - libtorrent::aux::set_bool
    - std::lock
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT settings_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::set_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::set_str
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_str(int name, std::string value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::aux::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::set_int
    linkageType: ''
    returnType: void
    signature: void set_int(int name, int value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::set_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::set_bool
    linkageType: ''
    returnType: void
    signature: void set_bool(int name, bool value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::aux::get_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::aux::get_str
    linkageType: ''
    returnType: std::string
    signature: std::string & get_str(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::get_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::get_int
    linkageType: ''
    returnType: int
    signature: int get_int(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::get_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::get_bool
    linkageType: ''
    returnType: bool
    signature: bool get_bool(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::has_val
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_val(int) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: libtorrent::aux::session_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 3
    functionsReached:
    - std::unique_lock<std::mutex>
    linkageType: ''
    returnType: void
    signature: void session_settings(session_settings const& lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::session_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 3
    functionsReached:
    - std::move
    - std::unique_lock<std::mutex>
    linkageType: ''
    returnType: void
    signature: void session_settings(session_settings&& lhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lock
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: '& operator=(session_settings const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - std::lock
    linkageType: ''
    returnType: session_settings
    signature: session_settings & operator=(session_settings const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: '& operator=(session_settings&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: session_settings
    signature: session_settings & operator=(session_settings&& rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:55,1
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:57,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:60,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:62,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:64,1
    - Dst: libtorrent::aux::session_settings_single_thread
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:66,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:78,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: libtorrent::aux::session_settings_single_thread
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::set
    - std::move
    - libtorrent::aux::size
    - TORRENT_ASSERT
    - libtorrent::aux::session_settings_single_thread
    - libtorrent::aux::get
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT session_settings_single_thread
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: libtorrent::aux::set_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::set
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_str(int name, std::string value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: libtorrent::aux::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::set
    linkageType: ''
    returnType: void
    signature: void set_int(int name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: libtorrent::aux::set_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 6
    functionsReached:
    - libtorrent::aux::set
    linkageType: ''
    returnType: void
    signature: void set_bool(int name, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: libtorrent::aux::get_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: std::string
    signature: std::string & get_str(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: libtorrent::aux::get_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: int
    signature: int get_int(int name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::get_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: bool
    signature: bool get_bool(int name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:74,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:77,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' c'
    - name
    - val
    - type
    argTypes:
    - Container
    - int
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: libtorrent::aux::set
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 16
    functionsReached:
    - TORRENT_ASSERT
    - std::move
    - libtorrent::aux::size
    linkageType: ''
    returnType: "private:\n\n\t\ttemplate <typename T, typename Container>"
    signature: "private:\n\n\t\ttemplate <typename T, typename Container> set(Container&
      c, int const name, T val\n\t\t\t, int const type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:85,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    - Dst: libtorrent::aux::size
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' c'
    - name
    - type
    argTypes:
    - Container
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: libtorrent::aux::get
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 48
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::size
    linkageType: ''
    returnType: T
    signature: T get(Container const& c, int const name, int const type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: libtorrent::aux::set_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:107,1
    - Dst: libtorrent::aux::set_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:112,1
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:118,1
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:123,1
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:128,1
    - Dst: libtorrent::aux::session_settings
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:133,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:144,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::lock
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:154,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:163,1
    - Dst: libtorrent::aux::settings_interface
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:170,1
    - Dst: m_store
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:171,1
    - Dst: libtorrent::aux::settings_interface
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:175,1
    - Dst: m_store
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:176,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 181
    functionName: libtorrent::aux::settings_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::get_str
    - std::move
    - libtorrent::aux::get_bool
    - libtorrent::aux::session_settings
    - libtorrent::aux::set_str
    - libtorrent::aux::get_int
    - std::unique_lock<std::mutex>
    - m_store
    - libtorrent::aux::settings_interface
    - libtorrent::aux::set_int
    - libtorrent::aux::set_bool
    - std::lock
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT settings_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: libtorrent::aux::set_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::set_str
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_str(int name, std::string value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: libtorrent::aux::set_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::set_int
    linkageType: ''
    returnType: void
    signature: void set_int(int name, int value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::set_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libtorrent::aux::set_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 8
    functionsReached:
    - libtorrent::aux::set_bool
    linkageType: ''
    returnType: void
    signature: void set_bool(int name, bool value) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_str
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: libtorrent::aux::get_str
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::get_str
    linkageType: ''
    returnType: std::string
    signature: std::string & get_str(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_int
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::get_int
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::aux::get_int
    linkageType: ''
    returnType: int
    signature: int get_int(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get_bool
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::get_bool
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::aux::get_bool
    linkageType: ''
    returnType: bool
    signature: bool get_bool(int name) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: libtorrent::aux::has_val
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_val(int) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: libtorrent::aux::session_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - std::unique_lock<std::mutex>
    linkageType: ''
    returnType: void
    signature: void session_settings(session_settings const& lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    - Dst: std::unique_lock<std::mutex>
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: libtorrent::aux::session_settings
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 4
    functionsReached:
    - std::move
    - std::unique_lock<std::mutex>
    linkageType: ''
    returnType: void
    signature: void session_settings(session_settings&& lhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lock
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: '& operator=(session_settings const& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - std::lock
    linkageType: ''
    returnType: session_settings
    signature: session_settings & operator=(session_settings const& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - session_settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: '& operator=(session_settings&& rhs)'
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_settings.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: session_settings
    signature: session_settings & operator=(session_settings&& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 135
    functionName: libtorrent::aux::posix_part_file
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT posix_part_file
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - slot_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::slot_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t slot_offset(slot_index_t const slot) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 135
    functionName: libtorrent::aux::posix_part_file
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT posix_part_file
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - slot_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::slot_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t slot_offset(slot_index_t const slot) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 135
    functionName: libtorrent::aux::posix_part_file
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT posix_part_file
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - slot_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::slot_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t slot_offset(slot_index_t const slot) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 135
    functionName: libtorrent::aux::posix_part_file
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT posix_part_file
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    - Dst: static_cast<std::int64_t>
      Src: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - slot_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libtorrent::aux::slot_offset
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/posix_part_file.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t slot_offset(slot_index_t const slot) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::file_progress
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::empty
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_progress
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::file_progress
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_progress()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::total_on_disk
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_on_disk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 14
    functionsReached:
    - libtorrent::aux::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::file_progress
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::empty
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_progress
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::file_progress
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_progress()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::total_on_disk
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_on_disk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 16
    functionsReached:
    - libtorrent::aux::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::file_progress
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::empty
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_progress
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::file_progress
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_progress()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::total_on_disk
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_on_disk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 18
    functionsReached:
    - libtorrent::aux::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 106
    functionName: libtorrent::aux::file_progress
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::empty
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT file_progress
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: libtorrent::aux::file_progress
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_progress()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: libtorrent::aux::total_on_disk
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::int64_t
    signature: std::int64_t total_on_disk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::empty
      Src: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: libtorrent::aux::empty
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/file_progress.hpp
    functionUses: 20
    functionsReached:
    - libtorrent::aux::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::handler_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::handler_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_storage(handler_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::error_handler_interface
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: libtorrent::aux::error_handler_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::error_handler_interface
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT error_handler_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - handler_allocator
    - handler_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: operator==(handler_allocator lhs, handler_allocator rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(handler_allocator lhs, handler_allocator rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - handler_allocator
    - handler_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: operator!=(handler_allocator lhs, handler_allocator rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(handler_allocator lhs, handler_allocator rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - handler_storage<Size, Name>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: libtorrent::aux::handler_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_allocator(handler_storage<Size, Name>* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - handler_allocator<U, Size, Name>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::handler_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_allocator(handler_allocator<U, Size, Name> const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:217,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:218,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:220,1
    - Dst: record_handler_allocation<T>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:225,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:225,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:227,1
    - Dst: bytes::data
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: libtorrent::aux::allocate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<T*>
    - TORRENT_ASSERT_VAL
    - record_handler_allocation<T>
    - TORRENT_ASSERT
    - bytes::data
    - TORRENT_UNUSED
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:232,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:233,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:235,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:236,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: bytes::data
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: libtorrent::aux::deallocate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - TORRENT_ASSERT_VAL
    - TORRENT_ASSERT
    - bytes::data
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr, std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - h
    - s
    - eh
    argTypes:
    - Handler
    - handler_storage<Size, Name>*
    - error_handler_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: libtorrent::aux::allocating_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void allocating_handler(\n\t\t\tHandler h, handler_storage<Size, Name>*
      s, error_handler_interface* eh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::handler
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:268,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:268,1
    - Dst: libtorrent::aux::handler
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:272,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:272,1
    - Dst: on_error
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:276,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:276,1
    - Dst: on_exception
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:285,1
    - Dst: on_exception
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 290
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::handler
    - on_error
    - on_exception
    - TORRENT_ASSERT
    - code
    - std::forward<A>
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: libtorrent::aux::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::allocating_handler<Handler, Size, Name>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:312,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handler
    - ' storage'
    - ' err_handler'
    argTypes:
    - Handler
    - handler_storage<Size, Name>
    - error_handler_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: libtorrent::aux::make_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 2
    functionsReached:
    - aux::allocating_handler<Handler, Size, Name>
    - std::forward<Handler>
    linkageType: ''
    returnType: aux::allocating_handler<Handler, Size, Name>
    signature: "aux::allocating_handler<Handler, Size, Name> make_handler(Handler
      handler\n\t\t, handler_storage<Size, Name>& storage\n\t\t, error_handler_interface&
      err_handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::shared_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: libtorrent::aux::handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void handler(std::shared_ptr<T> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:334,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:334,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:338,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:338,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:342,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:342,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:346,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:351,1
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 356
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - libtorrent::aux::get
    - std::forward<A>
    - code
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: libtorrent::aux::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::handler_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::handler_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_storage(handler_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::error_handler_interface
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: libtorrent::aux::error_handler_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::error_handler_interface
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT error_handler_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - handler_allocator
    - handler_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: operator==(handler_allocator lhs, handler_allocator rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(handler_allocator lhs, handler_allocator rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - handler_allocator
    - handler_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: operator!=(handler_allocator lhs, handler_allocator rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(handler_allocator lhs, handler_allocator rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - handler_storage<Size, Name>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: libtorrent::aux::handler_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_allocator(handler_storage<Size, Name>* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - handler_allocator<U, Size, Name>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::handler_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_allocator(handler_allocator<U, Size, Name> const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:217,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:218,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:220,1
    - Dst: record_handler_allocation<T>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:225,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:225,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:227,1
    - Dst: bytes::data
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: libtorrent::aux::allocate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<T*>
    - TORRENT_ASSERT_VAL
    - record_handler_allocation<T>
    - TORRENT_ASSERT
    - bytes::data
    - TORRENT_UNUSED
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:232,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:233,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:235,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:236,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: bytes::data
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: libtorrent::aux::deallocate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - TORRENT_ASSERT_VAL
    - TORRENT_ASSERT
    - bytes::data
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr, std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - h
    - s
    - eh
    argTypes:
    - Handler
    - handler_storage<Size, Name>*
    - error_handler_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: libtorrent::aux::allocating_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void allocating_handler(\n\t\t\tHandler h, handler_storage<Size, Name>*
      s, error_handler_interface* eh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:268,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:268,1
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:272,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:272,1
    - Dst: on_error
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:276,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:276,1
    - Dst: on_exception
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:285,1
    - Dst: on_exception
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 290
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - on_error
    - on_exception
    - TORRENT_ASSERT
    - code
    - std::forward<A>
    - handler
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: libtorrent::aux::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::allocating_handler<Handler, Size, Name>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:312,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handler
    - ' storage'
    - ' err_handler'
    argTypes:
    - Handler
    - handler_storage<Size, Name>
    - error_handler_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: libtorrent::aux::make_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 2
    functionsReached:
    - aux::allocating_handler<Handler, Size, Name>
    - std::forward<Handler>
    linkageType: ''
    returnType: aux::allocating_handler<Handler, Size, Name>
    signature: "aux::allocating_handler<Handler, Size, Name> make_handler(Handler
      handler\n\t\t, handler_storage<Size, Name>& storage\n\t\t, error_handler_interface&
      err_handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::shared_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: libtorrent::aux::handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void handler(std::shared_ptr<T> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:334,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:334,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:338,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:338,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:342,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:342,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:346,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:351,1
    - Dst: libtorrent::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 356
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - code
    - libtorrent::get
    - std::forward<A>
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: libtorrent::aux::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::handler_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::handler_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_storage(handler_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::error_handler_interface
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: libtorrent::aux::error_handler_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::error_handler_interface
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT error_handler_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - handler_allocator
    - handler_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: operator==(handler_allocator lhs, handler_allocator rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(handler_allocator lhs, handler_allocator rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - handler_allocator
    - handler_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: operator!=(handler_allocator lhs, handler_allocator rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(handler_allocator lhs, handler_allocator rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - handler_storage<Size, Name>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: libtorrent::aux::handler_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_allocator(handler_storage<Size, Name>* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - handler_allocator<U, Size, Name>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::handler_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_allocator(handler_allocator<U, Size, Name> const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:217,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:218,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:220,1
    - Dst: record_handler_allocation<T>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:225,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:225,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:227,1
    - Dst: bytes::data
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: libtorrent::aux::allocate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<T*>
    - TORRENT_ASSERT_VAL
    - record_handler_allocation<T>
    - TORRENT_ASSERT
    - bytes::data
    - TORRENT_UNUSED
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:232,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:233,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:235,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:236,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: bytes::data
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: libtorrent::aux::deallocate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - TORRENT_ASSERT_VAL
    - TORRENT_ASSERT
    - bytes::data
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr, std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - h
    - s
    - eh
    argTypes:
    - Handler
    - handler_storage<Size, Name>*
    - error_handler_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: libtorrent::aux::allocating_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void allocating_handler(\n\t\t\tHandler h, handler_storage<Size, Name>*
      s, error_handler_interface* eh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:268,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:268,1
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:272,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:272,1
    - Dst: on_error
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:276,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:276,1
    - Dst: on_exception
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:285,1
    - Dst: on_exception
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 290
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - on_error
    - on_exception
    - TORRENT_ASSERT
    - code
    - std::forward<A>
    - handler
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: libtorrent::aux::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::allocating_handler<Handler, Size, Name>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:312,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handler
    - ' storage'
    - ' err_handler'
    argTypes:
    - Handler
    - handler_storage<Size, Name>
    - error_handler_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: libtorrent::aux::make_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 2
    functionsReached:
    - aux::allocating_handler<Handler, Size, Name>
    - std::forward<Handler>
    linkageType: ''
    returnType: aux::allocating_handler<Handler, Size, Name>
    signature: "aux::allocating_handler<Handler, Size, Name> make_handler(Handler
      handler\n\t\t, handler_storage<Size, Name>& storage\n\t\t, error_handler_interface&
      err_handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::shared_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: libtorrent::aux::handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void handler(std::shared_ptr<T> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:334,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:334,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:338,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:338,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:342,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:342,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:346,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:351,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 356
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - code
    - get
    - std::forward<A>
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: libtorrent::aux::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: libtorrent::aux::handler_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: libtorrent::aux::handler_storage
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_storage(handler_storage const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::error_handler_interface
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: libtorrent::aux::error_handler_interface
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::error_handler_interface
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT error_handler_interface
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - handler_allocator
    - handler_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: operator==(handler_allocator lhs, handler_allocator rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(handler_allocator lhs, handler_allocator rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - handler_allocator
    - handler_allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: operator!=(handler_allocator lhs, handler_allocator rhs)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(handler_allocator lhs, handler_allocator rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - handler_storage<Size, Name>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: libtorrent::aux::handler_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_allocator(handler_storage<Size, Name>* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - handler_allocator<U, Size, Name>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: libtorrent::aux::handler_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handler_allocator(handler_allocator<U, Size, Name> const& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:217,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:218,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:219,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:220,1
    - Dst: record_handler_allocation<T>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:225,1
    - Dst: static_cast<int>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:225,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:227,1
    - Dst: bytes::data
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: libtorrent::aux::allocate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - reinterpret_cast<T*>
    - TORRENT_ASSERT_VAL
    - record_handler_allocation<T>
    - TORRENT_ASSERT
    - bytes::data
    - TORRENT_UNUSED
    linkageType: ''
    returnType: T
    signature: T * allocate(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:232,1
    - Dst: TORRENT_UNUSED
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:233,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:235,1
    - Dst: TORRENT_ASSERT_VAL
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:236,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: reinterpret_cast<T*>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: bytes::data
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:237,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: libtorrent::aux::deallocate
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T*>
    - TORRENT_ASSERT_VAL
    - TORRENT_ASSERT
    - bytes::data
    - TORRENT_UNUSED
    linkageType: ''
    returnType: void
    signature: void deallocate(T* ptr, std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - h
    - s
    - eh
    argTypes:
    - Handler
    - handler_storage<Size, Name>*
    - error_handler_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: libtorrent::aux::allocating_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void allocating_handler(\n\t\t\tHandler h, handler_storage<Size, Name>*
      s, error_handler_interface* eh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:268,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:268,1
    - Dst: handler
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:272,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:272,1
    - Dst: on_error
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:276,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:276,1
    - Dst: on_exception
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:280,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:285,1
    - Dst: on_exception
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 290
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - on_error
    - on_exception
    - TORRENT_ASSERT
    - code
    - std::forward<A>
    - handler
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: libtorrent::aux::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aux::allocating_handler<Handler, Size, Name>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:312,1
    - Dst: std::forward<Handler>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handler
    - ' storage'
    - ' err_handler'
    argTypes:
    - Handler
    - handler_storage<Size, Name>
    - error_handler_interface
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: libtorrent::aux::make_handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 2
    functionsReached:
    - aux::allocating_handler<Handler, Size, Name>
    - std::forward<Handler>
    linkageType: ''
    returnType: aux::allocating_handler<Handler, Size, Name>
    signature: "aux::allocating_handler<Handler, Size, Name> make_handler(Handler
      handler\n\t\t, handler_storage<Size, Name>& storage\n\t\t, error_handler_interface&
      err_handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::shared_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: libtorrent::aux::handler
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void handler(std::shared_ptr<T> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:334,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:334,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:338,1
    - Dst: std::forward<A>
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:338,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:342,1
    - Dst: code
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:342,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:346,1
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:351,1
    - Dst: get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 356
    functionName: operator()(A&&... a)
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - TORRENT_ASSERT
    - code
    - get
    - std::forward<A>
    linkageType: ''
    returnType: void
    signature: void operator()(A&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::get
      Src: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: libtorrent::aux::get_allocator
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/allocating_handler.hpp
    functionUses: 0
    functionsReached:
    - libtorrent::aux::get
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp:113,1
    - Dst: libtorrent::aux::session_logger
      Src: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::session_logger
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp
    functionUses: 1
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::aux::session_logger
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT session_logger
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: ~session_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~session_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp:113,1
    - Dst: libtorrent::aux::session_logger
      Src: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::session_logger
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp
    functionUses: 2
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::aux::session_logger
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT session_logger
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: ~session_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~session_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp:113,1
    - Dst: libtorrent::aux::session_logger
      Src: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::session_logger
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp
    functionUses: 3
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::aux::session_logger
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT session_logger
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: ~session_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~session_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_FORMAT
      Src: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp:113,1
    - Dst: libtorrent::aux::session_logger
      Src: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: libtorrent::aux::session_logger
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp
    functionUses: 4
    functionsReached:
    - TORRENT_FORMAT
    - libtorrent::aux::session_logger
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT session_logger
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: ~session_interface()
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/session_interface.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~session_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::hasher512
      Src: /src/libtorrent/include/libtorrent/aux_/hasher512.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::hasher512
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/hasher512.hpp
    functionUses: 1
    functionsReached:
    - libtorrent::aux::hasher512
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT hasher512
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::hasher512
      Src: /src/libtorrent/include/libtorrent/aux_/hasher512.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::hasher512
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/hasher512.hpp
    functionUses: 2
    functionsReached:
    - libtorrent::aux::hasher512
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT hasher512
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::hasher512
      Src: /src/libtorrent/include/libtorrent/aux_/hasher512.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::hasher512
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/hasher512.hpp
    functionUses: 3
    functionsReached:
    - libtorrent::aux::hasher512
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT hasher512
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libtorrent::aux::hasher512
      Src: /src/libtorrent/include/libtorrent/aux_/hasher512.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 129
    functionName: libtorrent::aux::hasher512
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/hasher512.hpp
    functionUses: 4
    functionsReached:
    - libtorrent::aux::hasher512
    linkageType: ''
    returnType: struct TORRENT_EXTRA_EXPORT
    signature: struct TORRENT_EXTRA_EXPORT hasher512
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:76,1
    - Dst: difference_type
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:83,1
    - Dst: static_cast<char*>
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:87,1
    - Dst: std::malloc
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:87,1
    - Dst: static_cast<std::size_t>
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:87,1
    - Dst: aux::throw_ex<std::bad_alloc>
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:88,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:93,1
    - Dst: ::malloc_usable_size
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:93,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:95,1
    - Dst: ::_msize
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:95,1
    - Dst: static_cast<difference_type>
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:97,1
    - Dst: ::malloc_size
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 101
    functionName: libtorrent::aux::buffer::buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/buffer.hpp
    functionUses: 0
    functionsReached:
    - ::malloc_usable_size
    - difference_type
    - static_cast<std::size_t>
    - TORRENT_ASSERT
    - static_cast<char*>
    - aux::throw_ex<std::bad_alloc>
    - static_cast<difference_type>
    - std::malloc
    - ::_msize
    - ::malloc_size
    linkageType: ''
    returnType: void
    signature: void buffer(difference_type size = 0)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TORRENT_ASSERT
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:108,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:108,1
    - Dst: span<char const>::empty
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:109,1
    - Dst: std::copy
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:111,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:111,1
    - Dst: span<char const>::begin
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:111,1
    - Dst: span<char const>::size
      Src: /src/libtorrent/include/libtorrent/aux_/buffer.hpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - size
    - initialize
    argTypes:
    - difference_type
    - span<char const>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: libtorrent::aux::buffer::buffer
    functionSourceFile: /src/libtorrent/include/libtorrent/aux_/buffer.hpp
    functionUses: 0
    functionsReached:
    - TOR